Ejemplo n.º 1
0
 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());
                }
            }
        }