Пример #1
0
        public async Task TestCustomerCashPayment2()
        {
            int customerId = 2;


            GeneralLedgerView ledgerView = new GeneralLedgerView();

            CustomerModule custMod   = new CustomerModule();
            long?          addressId = await custMod.AddressBook.Query().GetAddressIdByCustomerId(customerId);

            ChartOfAccountModule coaMod = new ChartOfAccountModule();

            ChartOfAccount coa = await coaMod.ChartOfAccount.Query().GetEntity("1000", "1200", "101", "");

            ledgerView.GeneralLedgerId = -1;
            ledgerView.DocNumber       = 1;
            ledgerView.DocType         = "PV";
            ledgerView.Amount          = 250M;
            ledgerView.LedgerType      = "AA";
            ledgerView.GLDate          = DateTime.Parse("8/10/2018");
            ledgerView.AccountId       = coa.AccountId;
            ledgerView.CreatedDate     = DateTime.Parse("8/10/2018");
            ledgerView.AddressId       = addressId ?? 0;
            ledgerView.Comment         = "First installment payment for dashboard";
            ledgerView.DebitAmount     = 250;
            ledgerView.CreditAmount    = 0;
            ledgerView.FiscalPeriod    = 8;
            ledgerView.FiscalYear      = 2018;
            ledgerView.CheckNumber     = "112";

            AccountReceivableModule acctRecMod = new AccountReceivableModule();
            bool result = await acctRecMod.CreateCustomerLedger(ledgerView);

            Assert.True(result);
        }
Пример #2
0
        public async Task TestOpenAccountReceivables()
        {
            AccountReceivableModule           acctRecMod = new AccountReceivableModule();
            IList <AccountReceivableFlatView> list       = await acctRecMod.AccountReceivable.Query().GetOpenAccountReceivables();

            Assert.True(true);
        }
Пример #3
0
        //http://localhost:61612/api/AccountReceivable/OpenReceivables
        public async Task <IList <AccountReceivableFlatView> > GetReceivables()
        {
            AccountReceivableModule           acctRecMod = new AccountReceivableModule();
            IList <AccountReceivableFlatView> list       = await acctRecMod.AccountReceivable.Query().GetOpenAccountReceivables();

            return(list);
        }
Пример #4
0
        public async Task UnitTestLatePayment()
        {
            DateTime asOfDate = DateTime.Now;

            AccountReceivableModule acctRecMod = new AccountReceivableModule();

            IList <AccountReceivableFlatView> list = await acctRecMod.AccountReceivable.Query().GetOpenAccountReceivables();

            foreach (var item in list)
            {
                bool status = acctRecMod.AccountReceivable.Query().IsPaymentLate(item.InvoiceId, asOfDate);
                if (status == true)
                {
                    bool statusFee = acctRecMod.AccountReceivable.Query().HasLateFee(item.AccountReceivableId);

                    if (statusFee == false)
                    {
                        acctRecMod.AccountReceivableFee.CreateLateFee(item).Apply();
                    }
                    acctRecMod.AccountReceivable.AdjustOpenAmount(item).Apply();
                }
            }
        }
Пример #5
0
        public async Task TestCustomerCashPayment()
        {
            long?customerId = 9;

            GeneralLedgerView ledgerView = new GeneralLedgerView();

            CustomerModule custMod   = new CustomerModule();
            long?          addressId = await custMod.AddressBook.Query().GetAddressIdByCustomerId(customerId);

            ChartOfAccountModule coaMod = new ChartOfAccountModule();

            ChartOfAccount coa = await coaMod.ChartOfAccount.Query().GetEntity("1000", "1200", "101", "");

            ledgerView.GeneralLedgerId = -1;
            ledgerView.DocNumber       = 12;
            ledgerView.DocType         = "PV";
            ledgerView.Amount          = 189.63M;
            ledgerView.LedgerType      = "AA";
            ledgerView.GLDate          = DateTime.Parse("7/21/2018");
            ledgerView.AccountId       = coa.AccountId;
            ledgerView.CreatedDate     = DateTime.Parse("7/21/2018");
            ledgerView.AddressId       = addressId ?? 0;
            ledgerView.Comment         = "Payment in Part for 50% sharing of project income";
            ledgerView.DebitAmount     = 189.63M;
            ledgerView.CreditAmount    = 0;
            ledgerView.FiscalPeriod    = 7;
            ledgerView.FiscalYear      = 2018;
            ledgerView.CheckNumber     = "111";


            AccountReceivableModule acctRecMod = new AccountReceivableModule();

            bool result = await acctRecMod.CreateCustomerCashPayment(ledgerView);


            Assert.True(true);
        }
Пример #6
0
        public async Task TestPostInvoiceAndDetailToAcctRec()
        {
            try
            {
                //NextNumber nextNumber = await unitOfWork.invoiceRepository.Get("InvoiceNumber");
                InvoiceModule           invoiceModule = new InvoiceModule();
                AccountReceivableModule acctRecMod    = new AccountReceivableModule();
                Customer customer = await acctRecMod.Customer.Query().GetEntityById(9);

                AddressBook addressBookCustomer = await acctRecMod.AddressBook.Query().GetEntityById(customer?.AddressId);

                ChartOfAccount chartOfAccount = await acctRecMod.ChartOfAccount.Query().GetEntity("1000", "1200", "101", "");

                PurchaseOrder purchaseOrder = await acctRecMod.PurchaseOrder.Query().GetEntityById(20);

                Udc udcReceivable = await acctRecMod.Udc.Query().GetEntityById(66);

                TaxRatesByCode taxRatesByCode = await invoiceModule.TaxRatesByCode.Query().GetEntityById(1);

                AccountReceivableView newAccountReceivableView = new AccountReceivableView
                {
                    Amount                  = 1500M,
                    OpenAmount              = 1500M,
                    DiscountDueDate         = DateTime.Parse("1/21/2020"),
                    Gldate                  = DateTime.Parse("1/21/2020"),
                    CreateDate              = DateTime.Parse("1/21/2020"),
                    DocNumber               = (await acctRecMod.AccountReceivable.Query().GetDocNumber()).NextNumberValue,
                    Remark                  = " partial payment",
                    PaymentTerms            = "Net 30",
                    CustomerId              = customer.CustomerId,
                    CustomerName            = addressBookCustomer?.Name,
                    PurchaseOrderId         = purchaseOrder.PurchaseOrderId,
                    Description             = "Fixed Asset Project",
                    AcctRecDocTypeXrefId    = udcReceivable.XrefId,
                    DocType                 = udcReceivable.KeyCode,
                    AccountId               = chartOfAccount.AccountId,
                    AccountReceivableNumber = (await acctRecMod.AccountReceivable.Query().GetNextNumber()).NextNumberValue
                };

                AccountReceivable accountReceivable = await acctRecMod.AccountReceivable.Query().MapToEntity(newAccountReceivableView);

                acctRecMod.AccountReceivable.AddAccountReceivable(accountReceivable).Apply();

                InvoiceView invoiceView = new InvoiceView();

                invoiceView.InvoiceDocument  = accountReceivable.DocNumber.ToString();
                invoiceView.InvoiceDate      = DateTime.Parse("8/10/2018");
                invoiceView.PurchaseOrderId  = purchaseOrder.PurchaseOrderId;
                invoiceView.Amount           = 1500.0M;
                invoiceView.CustomerId       = customer.CustomerId;
                invoiceView.Description      = "VNW Fixed Asset project";
                invoiceView.PaymentTerms     = "Net 30";
                invoiceView.TaxAmount        = 0;
                invoiceView.CompanyId        = 1;
                invoiceView.TaxRatesByCodeId = taxRatesByCode.TaxRatesByCodeId;
                invoiceView.TaxCode          = taxRatesByCode.TaxCode;
                invoiceView.InvoiceNumber    = (await invoiceModule.Invoice.Query().GetNextNumber()).NextNumberValue;


                IList <PurchaseOrderDetail> listPurchaseOrderDetail = await acctRecMod.PurchaseOrderDetail.Query().GetEntitiesByPurchaseOrderId(purchaseOrder.PurchaseOrderId);

                IList <InvoiceDetailView> listInvoiceDetailView = new List <InvoiceDetailView>();
                //invoiceDetailView.InvoiceId = invoice.InvoiceId;

                foreach (var item in listPurchaseOrderDetail)
                {
                    listInvoiceDetailView.Add(
                        new InvoiceDetailView()
                    {
                        UnitOfMeasure         = item.UnitOfMeasure,
                        Quantity              = (int)item.OrderedQuantity,
                        PurchaseOrderId       = item.PurchaseOrderId,
                        PurchaseOrderDetailId = item.PurchaseOrderDetailId,
                        UnitPrice             = item.UnitPrice,
                        Amount              = item.Amount,
                        DiscountPercent     = 0,
                        DiscountAmount      = 0,
                        ItemId              = item.ItemId,
                        InvoiceDetailNumber = (await invoiceModule.InvoiceDetail.Query().GetNextNumber()).NextNumberValue
                    });
                }

                invoiceView.InvoiceDetailViews = listInvoiceDetailView;

                bool result = await invoiceModule.PostInvoiceAndDetailToAcctRec(invoiceView);



                Assert.True(result);
            }
            catch (Exception ex)
            {
                throw new Exception("TestPostInvoiceAndDetailToAcctRec", ex);
            }
        }