private void AssertControls(StandardAccountingTransactionCM transactionCrate)
        {
            var firstTransaction = transactionCrate.AccountingTransactions[0];
            var firstLine1       = firstTransaction.FinancialLines[0];
            var secondLine1      = firstTransaction.FinancialLines[1];

            //First transaction data
            Assert.IsTrue(DateTime.Equals(DateTime.Parse("30-Dec-2015", new CultureInfo("en-US")), firstTransaction.TransactionDate), "The dates are not equal");
            Assert.AreEqual("The testing transactions", firstTransaction.Memo);
            //First transaction, first line
            Assert.AreEqual("Trip to Samarkand", firstLine1.Description);
            Assert.AreEqual("70", firstLine1.Amount);
            Assert.AreEqual("Phone", firstLine1.AccountName);
            Assert.AreEqual("1", firstLine1.AccountId);
            Assert.AreEqual("Credit", firstLine1.DebitOrCredit);
            //First transaction, second line
            Assert.AreEqual("Trip to Samarkand", secondLine1.Description);
            Assert.AreEqual("70", secondLine1.Amount);
            Assert.AreEqual("Accounts Payable", secondLine1.AccountName);
            Assert.AreEqual("Credit", firstLine1.DebitOrCredit);
            Assert.AreEqual("3", secondLine1.AccountId);
            Assert.AreEqual("Debit", secondLine1.DebitOrCredit);

            var secondTransaction = transactionCrate.AccountingTransactions[1];
            var firstLine2        = secondTransaction.FinancialLines[0];
            var secondLine2       = secondTransaction.FinancialLines[1];

            //Second transaction data
            Assert.IsTrue(DateTime.Equals(DateTime.Parse("30-Dec-2015", new CultureInfo("en-US")), secondTransaction.TransactionDate), "The dates are not equal");
            Assert.AreEqual("The testing transactions", secondTransaction.Memo);
            //Second transaction, first line
            Assert.AreEqual("Trip to Samarkand", firstLine2.Description);
            Assert.AreEqual("90", firstLine2.Amount);
            Assert.AreEqual("Travelling", firstLine2.AccountName);
            Assert.AreEqual("2", firstLine2.AccountId);
            Assert.AreEqual("Credit", firstLine2.DebitOrCredit);
            //Second transaction, second line
            Assert.AreEqual("Trip to Samarkand", secondLine2.Description);
            Assert.AreEqual("90", secondLine2.Amount);
            Assert.AreEqual("Accounts Payable", secondLine2.AccountName);
            Assert.AreEqual("3", secondLine2.AccountId);
            Assert.AreEqual("Debit", secondLine2.DebitOrCredit);
        }
示例#2
0
        public override async Task Run()
        {
            //Obtain the crate of type StandardAccountingTransactionCM that holds the required information
            var curStandardAccountingTransactionCM = Payload.CratesOfType <StandardAccountingTransactionCM>().Single().Content;
            //Obtain the crate of type OperationalStateCM to extract the correct StandardAccountingTransactionDTO
            var curOperationalStateCM = Payload.CratesOfType <OperationalStateCM>().Single().Content;

            //Get the LoopId that is equal to the Action.Id for to obtain the correct StandardAccountingTransactionDTO
            //Validate fields of the StandardAccountingTransactionCM crate
            StandardAccountingTransactionCM.Validate(curStandardAccountingTransactionCM);
            //Get the list of the StandardAccountingTransactionDTO
            var curTransactionList = curStandardAccountingTransactionCM.AccountingTransactions;
            //Take StandardAccountingTransactionDTO from curTransactionList using core function GetCurrentElement
            var curStandardAccountingTransactionDTO = curTransactionList[LoopIndex];

            //Check that all required fields exists in the StandardAccountingTransactionDTO object
            StandardAccountingTransactionCM.ValidateAccountingTransation(curStandardAccountingTransactionDTO);
            //Use service to create Journal Entry Object
            _journalEntry.Create(curStandardAccountingTransactionDTO, AuthorizationToken, HubCommunicator);
        }
示例#3
0
        public static StandardAccountingTransactionCM GetAccountingTransactionCM()
        {
            var curFinLineDTOList = new List <FinancialLineDTO>();
            var curFirstLineDTO   = new FinancialLineDTO()
            {
                Amount        = "100",
                AccountId     = "1",
                AccountName   = "Account-A",
                DebitOrCredit = "Debit",
                Description   = "Move money to Accout-B"
            };
            var curSecondLineDTO = new FinancialLineDTO()
            {
                Amount        = "100",
                AccountId     = "2",
                AccountName   = "Account-B",
                DebitOrCredit = "Credit",
                Description   = "Move money from Accout-A"
            };

            curFinLineDTOList.Add(curFirstLineDTO);
            curFinLineDTOList.Add(curSecondLineDTO);


            var curAccoutingTransactionDTO = new StandardAccountingTransactionDTO()
            {
                Memo            = "That is the test crate",
                FinancialLines  = curFinLineDTOList,
                Name            = "Code1",
                TransactionDate = DateTime.Parse("2015-12-15")
            };
            var curCrate = new StandardAccountingTransactionCM()
            {
                AccountingTransactions = new List <StandardAccountingTransactionDTO>()
                {
                    curAccoutingTransactionDTO
                }
            };

            return(curCrate);
        }