Пример #1
0
        public TransactionEntryVM(Transaction model, IEnumerable <Account> fromAccounts, IEnumerable <Account> toAccounts)
            : base(model)
        {
            FromAccounts = fromAccounts;
            ToAccounts   = toAccounts;

            var trans = Model;

            var payToAccount   = trans.Details.Where(t => t.CreditAmount > 0).FirstOrDefault();
            var payFromAccount = trans.Details.Where(t => t.DebitAmount > 0).FirstOrDefault();

            if (payToAccount != null)
            {
                ToAccountId = payToAccount.AccountId;
            }

            if (payFromAccount != null)
            {
                FromAccountId = payFromAccount.AccountId;
            }

            var payFromDetails = trans.Details.Where(t => t.AccountId == FromAccountId).ToArray();
            var payToDetails   = trans.Details.Where(t => t.AccountId == ToAccountId).ToArray();

            for (int i = 0; i < payFromDetails.Length; i++)
            {
                var lineItemVM = new TransactionEntryLineItemVM()
                {
                    Amount               = payToDetails[i].CreditAmount,
                    Reference            = payToDetails[i].Reference,
                    TransactionDetailId1 = payFromDetails[i].Id,
                    TransactionDetailId2 = payToDetails[i].Id
                };

                lineItemVM.PropertyChanged += LineItemVM_PropertyChanged;

                TransactionEntryLineItemVMs.Add(lineItemVM);
            }

            TransactionEntryLineItemVMs.CollectionChanged += LineItems_CollectionChanged1;
            ReCalculateTotals();

            PropertyChanging += ReceiptEntryVM_PropertyChanging;
        }
Пример #2
0
 private void ReCalculateTotals()
 {
     Total = TransactionEntryLineItemVMs.Sum(t => t.Amount);
 }