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();
         }
     }
 }
Ejemplo n.º 2
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 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));
     }
 }
Ejemplo n.º 10
0
 public Record LoadRecord(int recordID)
 {
     using (RecordAccessClient _recordAccessClient = new RecordAccessClient(EndpointName.RecordAccess))
     {
         return _recordAccessClient.QueryByrecordID(recordID)[0];
     }
 }
Ejemplo n.º 11
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;
        }