Пример #1
0
        public void ThenTheContentOfTheTAccountIs(string accountNumber, string ledgerName, Table table)
        {
            var ledger  = this.cc.GetContext().Ledgers.FirstOrDefault(o => o.Name == ledgerName);
            var service = new TAccountService(this.cc.GetContext());
            var account = service.GetAggregatedAccountByNumber(ledger, accountNumber);

            foreach (var r in table.Rows)
            {
                var transDebit   = r["TransDebit"];
                var transCredit  = r["TransCredit"];
                var debitAmount  = r["Debit"];
                var creditAmount = r["Credit"];

                if (!string.IsNullOrWhiteSpace(transDebit))
                {
                    var transNb = int.Parse(transDebit);
                    var trans   = account.Entries.First(o => o.Transaction.Sequence == transNb);
                    trans.Type.Should().Be(TAccount_EntryType.Debit);
                    trans.Amount.Should().Be(decimal.Parse(debitAmount));
                }

                if (!string.IsNullOrWhiteSpace(transCredit))
                {
                    var transNb = int.Parse(transCredit);
                    var trans   = account.Entries.First(o => o.Transaction.Sequence == transNb);
                    trans.Type.Should().Be(TAccount_EntryType.Credit);
                    trans.Amount.Should().Be(decimal.Parse(creditAmount));
                }
            }
        }
Пример #2
0
        public void WhenICreateTheT_AccountWithTheProperties(string reference, Table table)
        {
            var service = new TAccountService(cc.GetContext());
            var account = service.CreateTAccount();

            foreach (var r in table.Rows)
            {
                var property = r["Property"];
                var value    = r["Value"];

                switch (property)
                {
                case "Ledger":
                {
                    var ledger = cc.GetContext().Ledgers.FirstOrDefault(o => o.Name == value);
                    account.Ledger = ledger;
                }
                break;

                case "Number":
                {
                    account.Number = value;
                }
                break;

                case "Label":
                {
                    account.Label = value;
                }
                break;
                }
            }
            cc.GetContext().SaveChanges();
        }
Пример #3
0
        public void ThenTheCreditBalanceOfTheTAccountOnLedgerIs(string accountNumber, string ledgerName, Decimal expected)
        {
            var ledger  = this.cc.GetContext().Ledgers.FirstOrDefault(o => o.Name == ledgerName);
            var service = new TAccountService(this.cc.GetContext());
            var account = service.GetAggregatedAccountByNumber(ledger, accountNumber);
            var amount  = service.GetCreditBalance(account);

            amount.Should().Be(expected);
        }
Пример #4
0
        public void GivenICreateMultipleTAccounts(Table table)
        {
            var service = new TAccountService(cc.GetContext());

            foreach (var r in table.Rows)
            {
                var number    = r["Number"];
                var ledgerStr = r["Ledger"];
                var label     = r["Label"];
                var ledger    = cc.GetContext().Ledgers.FirstOrDefault(o => o.Name == ledgerStr);
                var account   = service.CreateTAccount();
                account.Number = number;
                account.Label  = label;
                account.Ledger = ledger;
            }
            cc.GetContext().SaveChanges();
        }
Пример #5
0
        public void GivenILoadT_AccountsFromFile(string resFile, string ledgerRef)
        {
            var ledger = (Ledger)cc.ObjectBag[$"ledger-{ledgerRef}"];

            cc.GetContext().Entry(ledger).Reload();

            var accountService = new TAccountService(cc.GetContext());

            var content  = GetAssemblyData($"AccountingNET.Tests.Resources.TAccounts.{resFile}");
            var accounts = JsonConvert.DeserializeObject <List <tAccountFromFile> >(content);

            foreach (var a in accounts)
            {
                var c = accountService.CreateTAccount();
                c.Ledger = ledger;
                c.Label  = a.Label;
                c.Number = a.Number;
            }

            cc.GetContext().SaveChanges();
        }
Пример #6
0
        public void WhenIRecordATransactionOnLedger(string reference, string ledgerName, Table table)
        {
            var ledger             = this.cc.GetContext().Ledgers.FirstOrDefault(o => o.Name == ledgerName);
            var transactionService = new TransactionService(this.cc.GetContext());
            var accountService     = new TAccountService(cc.GetContext());
            var trans = transactionService.CreateTransaction(ledger);

            foreach (var r in table.Rows)
            {
                var     creditStr       = r["Credit"];
                var     debitStr        = r["Debit"];
                var     creditAmountStr = r["Amount Credit"];
                var     debitAmountStr  = r["Amount Debit"];
                decimal?creditAmount    = null;
                decimal?debitAmount     = null;
                if (!string.IsNullOrWhiteSpace(creditAmountStr))
                {
                    creditAmount = decimal.Parse(creditAmountStr);
                }
                if (!string.IsNullOrWhiteSpace(debitAmountStr))
                {
                    debitAmount = decimal.Parse(debitAmountStr);
                }

                var debitAccount  = accountService.GetAccountByNumber(ledger, debitStr);
                var creditAccount = accountService.GetAccountByNumber(ledger, creditStr);

                transactionService.AddEntryToTransaction(
                    trans,
                    debitAccount,
                    creditAccount,
                    debitAmount,
                    creditAmount
                    );
            }

            this.cc.GetContext().SaveChanges();

            this.cc.ObjectBag["transaction-" + reference] = trans;
        }