public List<decimal> GetjournalSum(int periodId, int typeid, int entityid) { using (RecordAccessClient _Client = new RecordAccessClient(EndpointName.RecordAccess)) { if (typeid.Equals(2)) { // Entity _entity = EntityAccessClient _enClient = new EntityAccessClient(EndpointName.EntityAccess); EntityCollection _accountcollection = new EntityCollection(_enClient.QueryAllSubEntity(entityid)); List<decimal> _allandsub = new List<decimal>(); decimal _base = 0; decimal _sgd = 0; _accountcollection.Add(_enClient.Query2(entityid)[0]); foreach (Entity _entity in _accountcollection) { if (_Client.GetjournalSum(periodId, typeid, _entity.EntityID).ToList().Count > 0) { _base += _Client.GetjournalSum(periodId, typeid, _entity.EntityID).ToList()[0]; _sgd += _Client.GetjournalSum(periodId, typeid, _entity.EntityID).ToList()[1]; } } _allandsub.Add(_base); _allandsub.Add(_sgd); return _allandsub.ToList(); } else { return _Client.GetjournalSum(periodId, typeid, entityid).ToList(); } } }
public void Approve(int MLJRecordID, int userID) { using (MLJRecordAccessClient _MLJAccessClient = new MLJRecordAccessClient(EndpointName.MLJRecordAccess)) { //First get all JournalCollection in this period MLJRecord _MLJ = new MLJRecordCollection(_MLJAccessClient.QueryByRecordID(MLJRecordID))[0]; //New Record Record _re = new Record(); _re.Period = _MLJ.Period; _re.RecordStatus = RecordStatus.Normal; _re.Type = RecordType.WinAndLoss; foreach (MLJJournal _MLJjur in _MLJ.MLJJournalCollection) { Journal _jur = new Journal(); decimal _baseamount = _MLJjur.Mon + _MLJjur.Tue + _MLJjur.Wed + _MLJjur.Thu + _MLJjur.Fri + _MLJjur.Sat + _MLJjur.Sun; _jur.BaseAmount = _baseamount; _jur.BaseCurrency = _MLJjur.BaseCurrency; _jur.ExchangeRate = _MLJjur.ExchangeRate; _jur.SGDAmount = _baseamount * _MLJjur.ExchangeRate; _jur.EntityID = _MLJjur.EntityID; _jur.EntryUser.UserID = userID; _re.JournalCollection.Add(_jur); } //Second insert Record using (RecordAccessClient _RecordClient = new RecordAccessClient(EndpointName.RecordAccess)) { _RecordClient.Insert(_re, _re.JournalCollection.ToArray()); } //Third Change MLJ_Record Status _MLJAccessClient.ChangeStatus(MLJRecordID, RecordStatus.Confirm, userID); } }
public RecordCollection GetRecordList() { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { return new RecordCollection(_recordAccessClient.QueryAll()); } }
public void Approve(int recordID) { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { _recordAccessClient.ChangeStatus(recordID, RecordStatus.Confirm); } }
public void Avoid(int recordID) { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { _recordAccessClient.ChangeStatus(recordID, RecordStatus.Avoid); } }
public int InsertRecord(Record record, JournalCollection jcollection) { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { return _recordAccessClient.Insert(record, jcollection.ToArray()); } }
public void UpdateRecord(User user,Record record,JournalCollection jcollection) { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { _recordAccessClient.Update(user, record, jcollection.ToArray()); } }
public int SaveRecord(Record record, JournalCollection jcollection) { //log record var _logRecord = LoadRecordByPeriodEntityID(record.EntityID, record.Period.ID); if (_logRecord.Any()) { JournalCollection _delJournalCollection= new JournalCollection(); JournalCollection _updJournalCollection = new JournalCollection(); var _newJournal = jcollection; foreach (var _journal in _logRecord[0].JournalCollection) { if (_newJournal.Any(x => _journal.EntityID == x.EntityID && _journal.BaseAmount == x.BaseAmount)) continue; else if (_newJournal.Any(x => _journal.EntityID == x.EntityID)) _updJournalCollection.Add(_newJournal.First(x => x.EntityID == _journal.EntityID)); else _delJournalCollection.Add(_journal); } #region "Update function" if (_updJournalCollection.Any()) { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { try { _recordAccessClient.UpdateJournalCollection(_updJournalCollection.ToArray()); } catch(Exception ex) { return -1; } } } #endregion #region "Delete function" if (_delJournalCollection.Any()) { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { try { _recordAccessClient.InsertDeletionLog(_delJournalCollection.ToArray()); } catch (Exception ex) { return -1; } } } #endregion return record.RecordID; } else { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { return _recordAccessClient.Insert(record, jcollection.ToArray()); } } }
public RecordCollection LoadRecordByPeriodEntityID(int entityid, int periodid) { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { return new RecordCollection(_recordAccessClient.QueryRecordByPeriodEntityID(entityid,periodid)); } }
public Record LoadRecord(int recordID) { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { return _recordAccessClient.QueryByrecordID(recordID)[0]; } }
public WeeklySummaryCollection Confirm(int confirmUserID, int entityID) { User _confirmUser = (new UserAccessClient(EndpointName.UserAccess)).QueryuserID(confirmUserID)[0]; WeeklySummaryCollection _confirm = new WeeklySummaryCollection(); Entity _entity = EntityService.Instance.LoadEntity(entityID)[0]; if ((_entity.SumType != SumType.Transaction) && (_entity.SumType != SumType.Subtotal)) { return _confirm; } _entity.SubEntities = ((_entity.SumType == SumType.Transaction) ? SetSubtotal(_entity.SubEntities, new WeeklySummaryCollection()) : SetLastLevel(_entity.SubEntities, new WeeklySummaryCollection())); ConfirmTransfer(new EntityCollection(new Entity[] { _entity }), _confirm); if (_confirm.Count <= 0) { return _confirm; } foreach (WeeklySummary _weeklySummary in _confirm) { _weeklySummary.Status = WeeklySummaryStatus.Confirm; _weeklySummary.ConfirmUser = _confirmUser; } using (WeeklySummaryAccessClient _weeklySummaryAccessClient = new WeeklySummaryAccessClient(EndpointName.WeeklySummaryAccess)) { _weeklySummaryAccessClient.Update2(_confirm.ToArray()); } //<EntityID, RecordID> Dictionary<int, int> _pairs = new Dictionary<int, int>(); foreach (WeeklySummary _weeklySummary in _confirm) { int _recordID = -1; using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { _pairs[_weeklySummary.Entity.EntityID] = (_recordID = _recordAccessClient.QueryRecordID(_weeklySummary.Entity.EntityID, PeriodService.Instance.GetCurrentPeriod()[0].ID)); } if (_recordID > 0) { if (_pairs.Values.Count(RecordID => (RecordID == _recordID)) == 1) { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { _recordAccessClient.ChangeStatus(_recordID, RecordStatus.Confirm); } } } } foreach (KeyValuePair<int, int> _pair in _pairs) { if (_pair.Value > 0) { continue; } Entity _subtotal = null; if (_entity.SumType == SumType.Transaction) { if ((_subtotal = _entity.SubEntities.FirstOrDefault(Entity => (_pair.Key == Entity.EntityID))) == null) { continue; } } else if (_pair.Key == _entity.EntityID) { _subtotal = _entity; } else { continue; } EntityCollection _entityCollection = new EntityCollection() { _subtotal }; _entityCollection.AddRange(_subtotal.SubEntities); decimal[] _baseTransfer = new decimal[_entityCollection.Count]; for (int i = 1; i < _entityCollection.Count; i++) { _baseTransfer[i] = _confirm.FirstOrDefault(WeeklySummary => (WeeklySummary.Entity.EntityID == _entityCollection[i].EntityID)).BaseTransfer; } Transfer _transfer = CalculateService.Instance.Transfer(confirmUserID, _entityCollection, _baseTransfer).Item1; DataEntryService.Instance.InsertTransfer(_transfer.RecordNotInDB, _transfer); } return _confirm; }