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 int InsertRecord(Record record, JournalCollection jcollection) { using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess)) { return _recordAccessClient.Insert(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()); } } }