Пример #1
0
        public async Task <AccountPayable> GetEntityByPurchaseOrderView(PurchaseOrderView poView)
        {
            List <AccountPayable> list = await(from detail in _dbContext.AccountPayable
                                               where detail.OrderNumber == poView.Ponumber
                                               select detail).ToListAsync <AccountPayable>();

            AccountPayable acctPay = null;

            if (list.Count == 0)
            {
                acctPay = new AccountPayable();

                acctPay.GrossAmount     = poView.Amount;
                acctPay.Remark          = "";
                acctPay.Gldate          = DateTime.Today.Date;
                acctPay.SupplierId      = poView.SupplierId ?? 0;
                acctPay.ContractId      = poView.ContractId;
                acctPay.PoquoteId       = poView.PoquoteId;
                acctPay.Description     = poView.Description;
                acctPay.PurchaseOrderId = poView.PurchaseOrderId;
                acctPay.Tax             = poView.Tax;
                acctPay.AccountId       = poView.AccountId;
                acctPay.DocType         = poView.DocType;
                acctPay.PaymentTerms    = poView.PaymentTerms;
                acctPay.AmountOpen      = poView.Amount;
                acctPay.OrderNumber     = poView.Ponumber;
                acctPay.AmountPaid      = 0;
            }
            return(acctPay);
        }
Пример #2
0
        public bool CreateByPurchaseOrderView(PurchaseOrderView purchaseOrderView)

        {
            try

            {
                PurchaseOrder

                .CreatePurchaseOrderByView(purchaseOrderView)

                .Apply();
                PurchaseOrderDetail

                .CreatePurchaseOrderDetailsByView(purchaseOrderView)

                .Apply();
                AccountPayable

                .CreateAcctPayByPurchaseOrderView(purchaseOrderView)

                .Apply();

                return(true);
            }

            catch (Exception ex) { throw new Exception("CreatePurchaseOrder", ex); }
        }
    protected void SearchEvent_Click(object sender, EventArgs e)
    {
        if (VendorsDisplay.SelectedValue == "0")
        {
            MessageUserControl.ShowInfo("Please select a valid vendor ID");
        }
        else
        {
            show_everything();
            PurchaseOrderController Sysmgr = new PurchaseOrderController();

            List <PurchaseOrderList> newOrder = new List <PurchaseOrderList>();
            newOrder = Sysmgr.Get_Order(int.Parse(VendorsDisplay.SelectedValue));

            PurchaseOrderView.DataSource = newOrder;
            PurchaseOrderView.DataBind();

            List <PurchaseOrderList> inventory = new List <PurchaseOrderList>();
            inventory = Sysmgr.Get_currentInventory(int.Parse(VendorsDisplay.SelectedValue));

            CurrentInventoryView.DataSource = inventory;
            CurrentInventoryView.DataBind();

            GenerateAmounts(newOrder);
        }
    }
Пример #4
0
        public IFluentPurchaseOrderDetail CreatePurchaseOrderDetailsByView(PurchaseOrderView purchaseOrderView)
        {
            try
            {
                Task <PurchaseOrder> purchaseOrderTask = Task.Run(async() => await unitOfWork.purchaseOrderRepository.GetEntityByOrderNumber(purchaseOrderView.Ponumber));
                Task.WaitAll(purchaseOrderTask);


                if (purchaseOrderTask.Result != null)
                {
                    long purchaseOrderId = purchaseOrderTask.Result.PurchaseOrderId;

                    foreach (var detailView in purchaseOrderView.PurchaseOrderDetailViews)
                    {
                        detailView.PurchaseOrderId = purchaseOrderId;

                        PurchaseOrderDetail poDetail = MapToEntity(detailView);

                        Task <PurchaseOrderDetail> detailLookupTask =
                            Task.Run(async() => await unitOfWork.purchaseOrderDetailRepository.FindEntityByExpression
                                         (e => e.PurchaseOrderId == purchaseOrderId
                                         ));
                        Task.WaitAll(detailLookupTask);


                        if (detailLookupTask.Result == null)
                        {
                            AddPurchaseOrderDetail(poDetail);
                        }
                    }
                }
                return(this as IFluentPurchaseOrderDetail);
            }
            catch (Exception ex) { throw new Exception("CreatePurchaseOrderDetailsByView", ex); }
        }
    protected void ADD(object sender, ListViewCommandEventArgs a)
    {
        ListViewDataItem  row     = a.Item as ListViewDataItem;
        PurchaseOrderList newItem = new PurchaseOrderList();

        newItem.itemid      = int.Parse((row.FindControl("itemid") as Label).Text);
        newItem.Description = (row.FindControl("Description") as Label).Text;
        newItem.QOH         = int.Parse((row.FindControl("QOH") as Label).Text);
        newItem.QOO         = int.Parse((row.FindControl("ROL") as Label).Text);
        newItem.ROL         = int.Parse((row.FindControl("QOO") as Label).Text);
        newItem.Price       = decimal.Parse((row.FindControl("Price") as Label).Text);
        newItem.Quantity    = 0;

        int index = row.DataItemIndex;

        List <PurchaseOrderList> datatoberemoved = Get_listitemdata(0);
        List <PurchaseOrderList> datatobeadded   = Get_listitemdata(1);

        datatoberemoved.RemoveAt(index);
        CurrentInventoryView.DataSource = datatoberemoved;
        CurrentInventoryView.DataBind();

        datatobeadded.Add(newItem);
        PurchaseOrderView.DataSource = datatobeadded;
        PurchaseOrderView.DataBind();

        GenerateAmounts(datatobeadded);
        show_everything();
    }
Пример #6
0
        public async Task <CreateProcessStatus> CreateAcctPayByPurchaseOrderView(PurchaseOrderView poView)
        {
            try
            {
                //Check if exists
                List <AcctPay> list = await GetObjectsQueryable(e => e.OrderNumber == poView.PONumber).ToListAsync <AcctPay>();

                if (list.Count == 0)
                {
                    NextNumber nextNumber = await base.GetNextNumber("DocNumber");

                    AcctPay acctPay = new AcctPay();
                    acctPay.DocNumber       = nextNumber.NextNumberValue;
                    acctPay.GrossAmount     = poView.GrossAmount;
                    acctPay.Remark          = "";
                    acctPay.GLDate          = DateTime.Today.Date;
                    acctPay.SupplierId      = poView.SupplierId;
                    acctPay.ContractId      = poView.ContractId;
                    acctPay.POQuoteId       = poView.POQuoteId;
                    acctPay.Description     = poView.Description;
                    acctPay.PurchaseOrderId = poView.PurchaseOrderId;
                    acctPay.Tax             = poView.Tax;
                    acctPay.AccountId       = poView.AccountId;
                    acctPay.DocType         = poView.DocType;
                    acctPay.PaymentTerms    = poView.PaymentTerms;
                    acctPay.AmountOpen      = poView.GrossAmount;
                    acctPay.OrderNumber     = poView.PONumber;
                    acctPay.AmountPaid      = 0;
                    AddObject(acctPay);
                    return(CreateProcessStatus.Insert);
                }
                return(CreateProcessStatus.AlreadyExists);
            }
            catch (Exception ex) { throw new Exception(GetMyMethodName(), ex); }
        }
Пример #7
0
        // GET: Orders/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var orden = await _context.PurchaseOrder
                        .Include(o => o.Customer)
                        .Include(o => o.Payment)
                        .FirstOrDefaultAsync(m => m.PurchaseId == id);

            if (orden == null)
            {
                return(NotFound());
            }

            var purchaseview   = new PurchaseOrderView();
            var purchasedetail = new PurchaseDetail();

            purchaseview.PurchaseOrder = await _context.PurchaseOrder
                                         .Include(o => o.Customer)
                                         .Include(o => o.Payment)
                                         .FirstOrDefaultAsync(m => m.PurchaseId == id);

            var datapurchase = _context.PurchaseDetail.Include(od => od.PurchaseOrder).Include(od => od.Item).Where(od => od.PurchaseId.Equals(id)).ToList();

            purchaseview.PurchaseDetails = datapurchase;

            ViewData["PurchaseId"] = new SelectList(_context.PurchaseOrder, "PurchaseId", "PurchaseId", purchasedetail.PurchaseId);
            ViewData["PaymentId"]  = new SelectList(_context.PurchaseOrder, "PaymentId", "Pway", purchasedetail.PurchaseId);
            ViewData["ItemId"]     = new SelectList(_context.Items, "ItemId", "ItemName", purchasedetail.ItemId);

            return(View(purchaseview));
        }
Пример #8
0
        public IPurchaseOrder CreatePurchaseOrderDetails(PurchaseOrderView purchaseOrderView)
        {
            Task <CreateProcessStatus> resultTask = Task.Run(() => unitOfWork.purchaseOrderRepository.CreatePurchaseOrderDetailsByView(purchaseOrderView));

            Task.WaitAll(resultTask);
            processStatus = resultTask.Result;
            return(this as IPurchaseOrder);
        }
Пример #9
0
        public async Task <IActionResult> GetPurchaseOrderView(long purchaseOrderId)
        {
            PurchaseOrderModule invMod = new PurchaseOrderModule();

            PurchaseOrderView view = await invMod.PurchaseOrder.Query().GetViewById(purchaseOrderId);

            return(Ok(view));
        }
Пример #10
0
        public IPurchaseOrder CreateAcctPayByPurchaseOrderNumber(PurchaseOrderView purchaseOrderView)
        {
            Task <CreateProcessStatus> resultTask = Task.Run(() => unitOfWork.accountPayableRepository.CreateAcctPayByPurchaseOrderView(purchaseOrderView));

            Task.WaitAll(resultTask);
            processStatus = resultTask.Result;
            return(this as IPurchaseOrder);
        }
Пример #11
0
        public async Task <IActionResult> DeletePurchaseOrder([FromBody] PurchaseOrderView view)
        {
            PurchaseOrderModule invMod        = new PurchaseOrderModule();
            PurchaseOrder       purchaseOrder = await invMod.PurchaseOrder.Query().MapToEntity(view);

            invMod.PurchaseOrder.DeletePurchaseOrder(purchaseOrder).Apply();

            return(Ok(view));
        }
    protected void Clear_Click(object sender, EventArgs e)
    {
        PurchaseOrderController sysmgr = new PurchaseOrderController();
        string message = sysmgr.transaction(null, 4, int.Parse(VendorsDisplay.SelectedValue), 0, 0);

        PurchaseOrderView.DataBind();
        CurrentInventoryView.DataBind();
        VendorsDisplay.SelectedIndex = 0;
        hide_everything();
        MessageUserControl.ShowInfo(message);
    }
Пример #13
0
        public async Task <IActionResult> UpdatePurchaseOrder([FromBody] PurchaseOrderView view)
        {
            PurchaseOrderModule invMod = new PurchaseOrderModule();

            PurchaseOrder purchaseOrder = await invMod.PurchaseOrder.Query().MapToEntity(view);


            invMod.PurchaseOrder.UpdatePurchaseOrder(purchaseOrder).Apply();

            PurchaseOrderView retView = await invMod.PurchaseOrder.Query().GetViewById(purchaseOrder.PurchaseOrderId);


            return(Ok(retView));
        }
Пример #14
0
        public async Task <ActionResult <PurchaseOrderView> > GetPo(int vendId)
        {
            var poview = new PurchaseOrderView();

            // get the vendor
            poview.Vendor = await _context.Vendors.FindAsync(vendId);

            // summarize the approved request lines for this vendor
            var approvedRequests = from r in _context.Requests
                                   join l in _context.Requestlines
                                   on r.Id equals l.RequestId
                                   join p in _context.Products
                                   on l.ProductId equals p.Id
                                   join v in _context.Vendors
                                   on p.VendorId equals v.Id
                                   where v.Id == vendId && r.Status == "APPROVED"
                                   select new {
                Requestlineid = l.Id, RequestlineQuantity = l.Quantity, RequestId = l.RequestId,
                ProductId     = l.Product.Id, ProductDescription = l.Product.Description,
                ProductPrice  = l.Product.Price, ProductPartNbr = l.Product.PartNbr
            };
            var polines = new Dictionary <int, Requestline>();

            foreach (var x in approvedRequests.ToList())
            {
                if (!polines.ContainsKey(x.ProductId))
                {
                    polines[x.ProductId] = new Requestline {
                        Id        = x.Requestlineid, RequestId = x.RequestId,
                        ProductId = x.ProductId, Quantity = x.RequestlineQuantity,
                        Product   = new Product {
                            Price   = x.ProductPrice, Description = x.ProductDescription,
                            PartNbr = x.ProductPartNbr
                        }
                    };
                    continue;
                }
                // key already exists
                polines[x.ProductId].Quantity += x.RequestlineQuantity;
            }
            foreach (var poline in polines.OrderBy(x => x.Value.Product.Description))
            {
                poview.Polines.Add(poline.Value);
                poview.Total += poline.Value.Product.Price * poline.Value.Quantity;
            }
            return(poview);
        }
Пример #15
0
        public async Task <IActionResult> AddPurchaseOrder([FromBody] PurchaseOrderView view)
        {
            PurchaseOrderModule invMod = new PurchaseOrderModule();

            NextNumber nnPurchaseOrder = await invMod.PurchaseOrder.Query().GetNextNumber();

            view.PurchaseOrderNumber = nnPurchaseOrder.NextNumberValue;

            PurchaseOrder purchaseOrder = await invMod.PurchaseOrder.Query().MapToEntity(view);

            invMod.PurchaseOrder.AddPurchaseOrder(purchaseOrder).Apply();

            PurchaseOrderView newView = await invMod.PurchaseOrder.Query().GetViewByNumber(view.PurchaseOrderNumber);


            return(Ok(newView));
        }
Пример #16
0
 public IFluentAccountPayable CreateAcctPayByPurchaseOrderView(PurchaseOrderView poView)
 {
     try
     {
         //Check if exists
         Task <AccountPayable> acctPayTask             = unitOfWork.accountPayableRepository.GetEntityByPurchaseOrderView(poView);
         Task <NextNumber>     nextNumberDocNumberTask = unitOfWork.nextNumberRepository.GetNextNumber(TypeOfPurchaseOrder.DocNumber.ToString());
         Task.WaitAll(acctPayTask, nextNumberDocNumberTask);
         if (acctPayTask.Result != null)
         {
             AccountPayable acctPay = acctPayTask.Result;
             acctPay.DocNumber = nextNumberDocNumberTask.Result?.NextNumberValue;
             AddAccountPayable(acctPayTask.Result);
             processStatus = CreateProcessStatus.Insert;
             return(this as IFluentAccountPayable);
         }
         processStatus = CreateProcessStatus.AlreadyExists;
         return(this as IFluentAccountPayable);
     }
     catch (Exception ex) { throw new Exception("CreateAcctPayByPurchaseOrderView", ex); }
 }
Пример #17
0
 public PurchaseOrderModel(PurchaseOrderView entityView, bool isForIndex)
 {
     if (entityView != null)
     {
         this.BuyerId        = entityView.BuyerId;
         this.CompanyId      = entityView.CompanyId;
         this.CreateBy       = entityView.CreateBy;
         this.CreateDate     = entityView.CreateDate;
         this.Description    = entityView.Description;
         this.Id             = entityView.Id;
         this.PODate         = entityView.PODate;
         this.PONo           = entityView.PONo;
         this.SOBId          = entityView.SOBId;
         this.Status         = entityView.Status;
         this.UpdateBy       = entityView.UpdateBy;
         this.UpdateDate     = entityView.UpdateDate;
         this.VendorId       = entityView.VendorId;
         this.VendorSiteId   = entityView.VendorSiteId;
         this.VendorName     = entityView.VendorName;
         this.VendorSiteName = entityView.VendorSiteName;
         this.BuyerName      = entityView.BuyerName;
     }
 }
    protected void Place_Click(object sender, EventArgs e)
    {
        List <PurchaseOrderList> updatefunctions = Get_listitemdata(1);
        PurchaseOrderController  sysmgr          = new PurchaseOrderController();

        if (updatefunctions.Any())
        {
            MessageUserControl.TryRun(() =>
            {
                string message = sysmgr.transaction(updatefunctions, 2, int.Parse(VendorsDisplay.SelectedValue), decimal.Parse(SubTotal.Text), decimal.Parse(Tax.Text));
                show_everything();
                GenerateAmounts(updatefunctions);
                PurchaseOrderView.DataBind();
                CurrentInventoryView.DataBind();
                VendorsDisplay.SelectedIndex = 0;
                hide_everything();
                MessageUserControl.ShowInfo(message);
            });
        }
        else
        {
            MessageUserControl.ShowInfo("No Order to update");
        }
    }
Пример #19
0
        public async Task TestAddUpdatDelete()
        {
            JobMasterModule JobMasterMod = new JobMasterModule();
            Customer        customer     = await JobMasterMod.Customer.Query().GetEntityById(12);

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

            Contract contract = await JobMasterMod.Contract.Query().GetEntityById(5);

            //public long? ProjectManagerId { get; set; }
            JobMasterView view = new JobMasterView()
            {
                CustomerId               = customer.CustomerId,
                CustomerName             = addressBookCustomer?.Name,
                ContractId               = contract.ContractId,
                ContractTitle            = contract?.Title,
                JobDescription           = "Kuna 4 plex project",
                Address1                 = " 123 ABC",
                City                     = "Kuna",
                State                    = "Id",
                Zipcode                  = "83709",
                TotalCommittedAmount     = 600000,
                RemainingCommittedAmount = 400000,
                RetainageAmount          = 200000,
                JobMasterNumber          = (await JobMasterMod.JobMaster.Query().GetNextNumber()).NextNumberValue
            };

            JobMaster jobMaster = await JobMasterMod.JobMaster.Query().MapToEntity(view);

            JobMasterMod.JobMaster.AddJobMaster(jobMaster).Apply();

            JobMaster newJobMaster = await JobMasterMod.JobMaster.Query().GetEntityByNumber(view.JobMasterNumber);

            JobCostType jobPhaseCostTypeMisc = await JobMasterMod.JobCostType.Query().GetEntityById(4);

            Assert.NotNull(newJobMaster);

            IList <JobPhaseView> listJobPhaseViews = new List <JobPhaseView> {
                new JobPhaseView {
                    ContractId     = contract.ContractId,
                    ContractTitle  = contract.Title,
                    JobMasterId    = newJobMaster.JobMasterId,
                    JobDescription = newJobMaster.JobDescription,
                    PhaseGroup     = 1,
                    Phase          = "Work Site Preparation - Safety",
                    JobPhaseNumber = (await JobMasterMod.JobPhase.Query().GetNextNumber()).NextNumberValue,
                    JobCostTypeId  = jobPhaseCostTypeMisc.JobCostTypeId,
                    CostCode       = jobPhaseCostTypeMisc.CostCode
                },
                new JobPhaseView {
                    ContractId     = contract.ContractId,
                    ContractTitle  = contract.Title,
                    JobMasterId    = newJobMaster.JobMasterId,
                    JobDescription = newJobMaster.JobDescription,
                    PhaseGroup     = 1,
                    Phase          = "Foundations",
                    JobPhaseNumber = (await JobMasterMod.JobPhase.Query().GetNextNumber()).NextNumberValue,
                    JobCostTypeId  = jobPhaseCostTypeMisc.JobCostTypeId,
                    CostCode       = jobPhaseCostTypeMisc.CostCode
                },
                new JobPhaseView {
                    ContractId     = contract.ContractId,
                    ContractTitle  = contract.Title,
                    JobMasterId    = newJobMaster.JobMasterId,
                    JobDescription = newJobMaster.JobDescription,
                    PhaseGroup     = 1,
                    Phase          = "Building Structure",
                    JobPhaseNumber = (await JobMasterMod.JobPhase.Query().GetNextNumber()).NextNumberValue,
                    JobCostTypeId  = jobPhaseCostTypeMisc.JobCostTypeId,
                    CostCode       = jobPhaseCostTypeMisc.CostCode
                }
                ,
                new JobPhaseView {
                    ContractId     = contract.ContractId,
                    ContractTitle  = contract.Title,
                    JobMasterId    = newJobMaster.JobMasterId,
                    JobDescription = newJobMaster.JobDescription,
                    PhaseGroup     = 1,
                    Phase          = "Facade",
                    JobPhaseNumber = (await JobMasterMod.JobPhase.Query().GetNextNumber()).NextNumberValue,
                    JobCostTypeId  = jobPhaseCostTypeMisc.JobCostTypeId,
                    CostCode       = jobPhaseCostTypeMisc.CostCode
                }
                ,
                new JobPhaseView {
                    ContractId     = contract.ContractId,
                    ContractTitle  = contract.Title,
                    JobMasterId    = newJobMaster.JobMasterId,
                    JobDescription = newJobMaster.JobDescription,
                    PhaseGroup     = 1,
                    Phase          = "Interior Construction",
                    JobPhaseNumber = (await JobMasterMod.JobPhase.Query().GetNextNumber()).NextNumberValue,
                    JobCostTypeId  = jobPhaseCostTypeMisc.JobCostTypeId,
                    CostCode       = jobPhaseCostTypeMisc.CostCode
                }
                ,
                new JobPhaseView {
                    ContractId     = contract.ContractId,
                    ContractTitle  = contract.Title,
                    JobMasterId    = newJobMaster.JobMasterId,
                    JobDescription = newJobMaster.JobDescription,
                    PhaseGroup     = 1,
                    Phase          = "Commissioning",
                    JobPhaseNumber = (await JobMasterMod.JobPhase.Query().GetNextNumber()).NextNumberValue,
                    JobCostTypeId  = jobPhaseCostTypeMisc.JobCostTypeId,
                    CostCode       = jobPhaseCostTypeMisc.CostCode
                }
                ,
                new JobPhaseView {
                    ContractId     = contract.ContractId,
                    ContractTitle  = contract.Title,
                    JobMasterId    = newJobMaster.JobMasterId,
                    JobDescription = newJobMaster.JobDescription,
                    PhaseGroup     = 1,
                    Phase          = "Grading and Landscaping",
                    JobPhaseNumber = (await JobMasterMod.JobPhase.Query().GetNextNumber()).NextNumberValue,
                    JobCostTypeId  = jobPhaseCostTypeMisc.JobCostTypeId,
                    CostCode       = jobPhaseCostTypeMisc.CostCode
                }
            };

            IList <JobPhase> listJobPhases = await JobMasterMod.JobPhase.Query().MapToEntity(listJobPhaseViews);

            JobMasterMod.JobPhase.AddJobPhases(listJobPhases.ToList <JobPhase>()).Apply();

            //Add Purchase Order
            PurchaseOrderModule PurchaseOrderMod = new PurchaseOrderModule();
            ChartOfAccount      chartOfAccount   = await PurchaseOrderMod.ChartOfAccount.Query().GetEntityById(16);

            Supplier supplier = await PurchaseOrderMod.Supplier.Query().GetEntityById(3);

            AddressBook addressBook = await PurchaseOrderMod.AddressBook.Query().GetEntityById(supplier?.AddressId);

            Contract pocontract = await PurchaseOrderMod.Contract.Query().GetEntityById(5);

            Buyer buyer = await PurchaseOrderMod.Buyer.Query().GetEntityById(1);

            AddressBook buyerAddressBook = await PurchaseOrderMod.AddressBook.Query().GetEntityById(buyer?.AddressId);

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

            //create purchase order and detail
            PurchaseOrderView viewPurchaseOrder = new PurchaseOrderView()
            {
                DocType               = "STD",
                PaymentTerms          = "Net 30",
                Amount                = (24 * 75) + 25,
                AmountPaid            = 0,
                Remark                = " installation not included ",
                Gldate                = DateTime.Parse("1/14/2020"),
                AccountId             = chartOfAccount.AccountId,
                Location              = chartOfAccount.Location,
                BusUnit               = chartOfAccount.BusUnit,
                Subsidiary            = chartOfAccount.Subsidiary,
                SubSub                = chartOfAccount.SubSub,
                Account               = chartOfAccount.Account,
                AccountDescription    = chartOfAccount.Description,
                SupplierId            = supplier.SupplierId,
                CustomerId            = contract?.CustomerId,
                SupplierName          = addressBook.Name,
                ContractId            = contract?.ContractId,
                Description           = " Standard doors - white",
                Ponumber              = "PO-123",
                TakenBy               = "David Nishimoto",
                ShippedToName         = " abc corp",
                ShippedToAddress1     = " 123 abc",
                ShippedToAddress2     = " zone 1",
                ShippedToCity         = "Kuna",
                ShippedToState        = "ID",
                ShippedToZipcode      = "83709",
                BuyerId               = buyer.BuyerId,
                BuyerName             = buyerAddressBook?.Name,
                RequestedDate         = DateTime.Parse("1/20/2014"),
                PromisedDeliveredDate = DateTime.Parse("1/20/2014"),
                Tax                 = 24 * 75 * taxRatesByCode.TaxRate,
                TransactionDate     = DateTime.Parse("1/14/2020"),
                TaxCode1            = taxRatesByCode.TaxCode,
                TaxCode2            = "",
                TaxRate             = taxRatesByCode.TaxRate ?? 0,
                PurchaseOrderNumber = (await PurchaseOrderMod.PurchaseOrder.Query().GetNextNumber()).NextNumberValue
            };

            PurchaseOrder purchaseOrder = await PurchaseOrderMod.PurchaseOrder.Query().MapToEntity(viewPurchaseOrder);

            PurchaseOrderMod.PurchaseOrder.AddPurchaseOrder(purchaseOrder).Apply();

            PurchaseOrder newPurchaseOrder = await PurchaseOrderMod.PurchaseOrder.Query().GetEntityByNumber(viewPurchaseOrder.PurchaseOrderNumber);

            Supplier supplierPODetail = await PurchaseOrderMod.Supplier.Query().GetEntityById(newPurchaseOrder?.SupplierId);

            AddressBook addressBookSupplier = await PurchaseOrderMod.AddressBook.Query().GetEntityById(supplierPODetail?.AddressId);

            IList <PurchaseOrderDetailView> listPurchaseOrderDetailViews = new List <PurchaseOrderDetailView> {
                new PurchaseOrderDetailView()
                {
                    PurchaseOrderId           = newPurchaseOrder.PurchaseOrderId,
                    Amount                    = 75 * 24,
                    OrderedQuantity           = 24,
                    LineDescription           = "Standard Door",
                    LineNumber                = 1,
                    UnitPrice                 = 75,
                    UnitOfMeasure             = "Each",
                    ExpectedDeliveryDate      = DateTime.Parse("1/30/2020"),
                    OrderDate                 = DateTime.Parse("1/16/2020"),
                    ReceivedQuantity          = 0,
                    RemainingQuantity         = 24,
                    SupplierId                = newPurchaseOrder.SupplierId,
                    SupplierName              = addressBookSupplier?.Name,
                    PurchaseOrderDetailNumber = (await PurchaseOrderMod.PurchaseOrderDetail.Query().GetNextNumber()).NextNumberValue
                },
                new PurchaseOrderDetailView()
                {
                    PurchaseOrderId           = newPurchaseOrder.PurchaseOrderId,
                    Amount                    = 25 * 1,
                    OrderedQuantity           = 25,
                    LineDescription           = "Door Hinges",
                    LineNumber                = 2,
                    UnitPrice                 = 25,
                    UnitOfMeasure             = "Box",
                    ExpectedDeliveryDate      = DateTime.Parse("1/30/2020"),
                    OrderDate                 = DateTime.Parse("1/16/2020"),
                    ReceivedQuantity          = 0,
                    RemainingQuantity         = 24,
                    SupplierId                = newPurchaseOrder.SupplierId,
                    SupplierName              = addressBookSupplier?.Name,
                    PurchaseOrderDetailNumber = (await PurchaseOrderMod.PurchaseOrderDetail.Query().GetNextNumber()).NextNumberValue
                }
            };
            IList <PurchaseOrderDetail> listPurchaseOrderDetail = await PurchaseOrderMod.PurchaseOrderDetail.Query().MapToEntity(listPurchaseOrderDetailViews);

            PurchaseOrderMod.PurchaseOrderDetail.AddPurchaseOrderDetails(listPurchaseOrderDetail.ToList <PurchaseOrderDetail>()).Apply();

            IList <PurchaseOrderDetail> listNewPurchaseOrderDetail = await PurchaseOrderMod.PurchaseOrderDetail.Query().GetEntitiesByPurchaseOrderId(newPurchaseOrder.PurchaseOrderId);


            //*****************Create Accounts Payable

            AccountPayableModule AccountPayableMod = new AccountPayableModule();
            ChartOfAccount       chartOfAccount2   = await AccountPayableMod.ChartOfAccount.Query().GetEntityById(17);

            AccountPayableView accountPayableView = new AccountPayableView()
            {
                DocNumber            = (await AccountPayableMod.AccountPayable.Query().GetNextDocNumber()),
                GrossAmount          = newPurchaseOrder.Amount,
                Tax                  = newPurchaseOrder.Tax,
                DiscountAmount       = null,
                Remark               = null,
                Gldate               = DateTime.Now,
                SupplierId           = newPurchaseOrder.SupplierId,
                ContractId           = newPurchaseOrder.ContractId,
                PoquoteId            = null,
                Description          = newPurchaseOrder.Description,
                PurchaseOrderId      = newPurchaseOrder.PurchaseOrderId,
                AccountId            = chartOfAccount.AccountId,
                DocType              = "STD",
                PaymentTerms         = newPurchaseOrder.PaymentTerms,
                DiscountPercent      = 0,
                AmountOpen           = newPurchaseOrder.Amount,
                OrderNumber          = newPurchaseOrder.Ponumber,
                AmountPaid           = 0,
                AccountPayableNumber = (await AccountPayableMod.AccountPayable.Query().GetNextNumber()).NextNumberValue
            };

            AccountPayable accountPayable = await AccountPayableMod.AccountPayable.Query().MapToEntity(accountPayableView);

            AccountPayableMod.AccountPayable.AddAccountPayable(accountPayable).Apply();
            AccountPayable lookupAccountPayable = await AccountPayableMod.AccountPayable.Query().GetEntityByNumber(accountPayableView.AccountPayableNumber);

            //****************Create the invoice payment
            InvoiceModule invoiceMod = new InvoiceModule();
            Supplier      supplier2  = await invoiceMod.Supplier.Query().GetEntityById(purchaseOrder.SupplierId);

            AddressBook addressBookSupplinvModier2 = await invoiceMod.AddressBook.Query().GetEntityById(supplier?.AddressId);

            TaxRatesByCode taxRatesByCode2 = await invoiceMod.TaxRatesByCode.Query().GetEntityByTaxCode(purchaseOrder.TaxCode1);

            NextNumber nextNumber = await invoiceMod.Invoice.Query().GetNextNumber();

            InvoiceView invoiceView = new InvoiceView
            {
                InvoiceDocument  = "Inv-" + nextNumber.NextNumberValue.ToString(),
                InvoiceDate      = DateTime.Parse("1/17/2020"),
                Amount           = purchaseOrder.Amount,
                SupplierId       = supplier2?.SupplierId,
                SupplierName     = addressBookCustomer?.Name,
                Description      = purchaseOrder.Description,
                PaymentTerms     = purchaseOrder.PaymentTerms,
                TaxAmount        = taxRatesByCode2.TaxRate * purchaseOrder.Amount,
                CompanyId        = 1,
                TaxRatesByCodeId = taxRatesByCode2.TaxRatesByCodeId,
                InvoiceNumber    = nextNumber.NextNumberValue
            };

            Invoice invoice = await invoiceMod.Invoice.Query().MapToEntity(invoiceView);

            invoiceMod.Invoice.AddInvoice(invoice).Apply();

            Invoice newInvoice = await invoiceMod.Invoice.Query().GetEntityByNumber(invoiceView.InvoiceNumber);

            InvoiceDetailModule       invDetailMod           = new InvoiceDetailModule();
            IList <InvoiceDetailView> listInvoiceDetailViews = new List <InvoiceDetailView>();

            foreach (var item in listNewPurchaseOrderDetail)
            {
                InvoiceDetailView invoiceDetailView = new InvoiceDetailView()
                {
                    Amount                = item.Amount,
                    InvoiceId             = newInvoice.InvoiceId,
                    InvoiceDetailNumber   = (await invDetailMod.InvoiceDetail.Query().GetNextNumber()).NextNumberValue,
                    UnitOfMeasure         = item.UnitOfMeasure,
                    Quantity              = (int)item.OrderedQuantity,
                    UnitPrice             = item.UnitPrice,
                    DiscountPercent       = 0,
                    DiscountAmount        = 0,
                    SupplierId            = item.SupplierId,
                    SupplierName          = (await(invDetailMod.AddressBook.Query().GetEntityById((await invDetailMod.Supplier.Query().GetEntityById(item.SupplierId)).AddressId))).Name,
                    PurchaseOrderId       = item.PurchaseOrderId,
                    PurchaseOrderDetailId = item.PurchaseOrderDetailId,
                    ExtendedDescription   = item.LineDescription
                };
                listInvoiceDetailViews.Add(invoiceDetailView);
            }

            List <InvoiceDetail> listInvoiceDetails = (await invDetailMod.InvoiceDetail.Query().MapToEntity(listInvoiceDetailViews)).ToList <InvoiceDetail>();

            invDetailMod.InvoiceDetail.AddInvoiceDetails(listInvoiceDetails).Apply();


            IList <InvoiceDetail> listLookupInvoiceDetails = await invDetailMod.InvoiceDetail.Query().GetEntitiesByInvoiceId(newInvoice.InvoiceId);

            //Update Accounts Payable - by invoices associated to a po

            IList <Invoice> listInvoiceByPurchaseOrder = await invoiceMod.Invoice.Query().GetEntitiesByPurchaseOrderId(newPurchaseOrder.PurchaseOrderId);

            lookupAccountPayable.AmountOpen = lookupAccountPayable.GrossAmount - listInvoiceByPurchaseOrder.Sum(e => e.Amount);
            AccountPayableMod.AccountPayable.UpdateAccountPayable(lookupAccountPayable).Apply();

            //add to job costing PO
            JobCostLedgerModule JobCostLedgerMod = new JobCostLedgerModule();
            JobPhase            jobPhase2        = await JobMasterMod.JobPhase.Query().GetEntityByJobIdAndPhase(newJobMaster.JobMasterId, "Work Site Preparation - Safety");

            JobCostType jobCostTypeMisc = await JobMasterMod.JobCostType.Query().GetEntityById(2);

            JobCostType jobCostTypeMaterial = await JobMasterMod.JobCostType.Query().GetEntityById(1);

            IList <JobCostLedgerView> listJobCostLedgerView = new List <JobCostLedgerView>
            {
                new JobCostLedgerView()
                {
                    JobMasterId         = jobMaster.JobMasterId,
                    ContractId          = jobMaster.ContractId,
                    EstimatedHours      = 0,
                    EstimatedAmount     = 0,
                    JobPhaseId          = jobPhase2.JobPhaseId,
                    ActualHours         = 0,
                    ActualCost          = 0,
                    ProjectedHours      = 0,
                    CommittedHours      = 0,
                    PurchaseOrderId     = newPurchaseOrder.PurchaseOrderId,
                    SupplierId          = newPurchaseOrder.SupplierId,
                    CommittedAmount     = newPurchaseOrder.Amount,
                    Description         = newPurchaseOrder.Description,
                    TransactionType     = "PO",
                    Source              = "Job Costing",
                    JobCostTypeId       = jobCostTypeMisc.JobCostTypeId,
                    JobCostLedgerNumber = (await JobCostLedgerMod.JobCostLedger.Query().GetNextNumber()).NextNumberValue
                },
                new JobCostLedgerView()
                {
                    JobMasterId         = jobMaster.JobMasterId,
                    ContractId          = jobMaster.ContractId,
                    EstimatedHours      = 0,
                    EstimatedAmount     = 0,
                    JobPhaseId          = jobPhase2.JobPhaseId,
                    ActualHours         = 0,
                    ActualCost          = lookupAccountPayable.AmountPaid,
                    ProjectedHours      = 0,
                    CommittedHours      = 0,
                    PurchaseOrderId     = lookupAccountPayable.PurchaseOrderId,
                    SupplierId          = lookupAccountPayable.SupplierId,
                    CommittedAmount     = 0,
                    Description         = lookupAccountPayable.Description,
                    TransactionType     = "AP",
                    Source              = "Job Costing",
                    TaxAmount           = lookupAccountPayable.Tax,
                    JobCostTypeId       = jobCostTypeMaterial.JobCostTypeId,
                    JobCostLedgerNumber = (await JobCostLedgerMod.JobCostLedger.Query().GetNextNumber()).NextNumberValue
                }
            };

            IList <JobCostLedger> listJobCostLedger = await JobCostLedgerMod.JobCostLedger.Query().MapToEntity(listJobCostLedgerView);

            JobCostLedgerMod.JobCostLedger.AddJobCostLedgers(listJobCostLedger.ToList <JobCostLedger>()).Apply();


            //Create the general ledger entry
            //Create the supplier ledger entry
            //Create Pay Roll
            //Add Pay Roll to job costing


            invDetailMod.InvoiceDetail.DeleteInvoiceDetails((listLookupInvoiceDetails).ToList <InvoiceDetail>()).Apply();
            invoiceMod.Invoice.DeleteInvoice(newInvoice).Apply();
            AccountPayableMod.AccountPayable.DeleteAccountPayable(lookupAccountPayable).Apply();
            PurchaseOrderMod.PurchaseOrderDetail.DeletePurchaseOrderDetails(listPurchaseOrderDetail.ToList <PurchaseOrderDetail>()).Apply();
            JobMasterMod.JobPhase.DeleteJobPhases(listJobPhases.ToList <JobPhase>()).Apply();
            IList <JobPhase> lookupListJobPhases = await JobMasterMod.JobPhase.Query().GetEntitiesByJobMasterId(newJobMaster.JobMasterId);

            if (lookupListJobPhases.Count > 0)
            {
                Assert.True(false);
            }
            newJobMaster.JobDescription = "JobMaster Test Update";
            JobMasterMod.JobMaster.UpdateJobMaster(newJobMaster).Apply();
            JobMasterView updateView = await JobMasterMod.JobMaster.Query().GetViewById(newJobMaster.JobMasterId);

            Assert.Same(updateView.JobDescription, "JobMaster Test Update");
            JobMasterMod.JobMaster.DeleteJobMaster(newJobMaster).Apply();
            JobMaster lookupJobMaster = await JobMasterMod.JobMaster.Query().GetEntityById(view.JobMasterId);

            Assert.Null(lookupJobMaster);
        }
Пример #20
0
        async Task TestCreateAccountReceivableFromPO()
        {
            AddressBook         addressBook      = null;
            AddressBook         buyerAddressBook = null;
            PurchaseOrderModule PurchaseOrderMod = new PurchaseOrderModule();
            ChartOfAccount      account          = await PurchaseOrderMod.ChartOfAccount.Query().GetEntityById(17);

            Supplier supplier = await PurchaseOrderMod.Supplier.Query().GetEntityById(3);

            if (supplier != null)
            {
                addressBook = await PurchaseOrderMod.AddressBook.Query().GetEntityById(supplier.AddressId);
            }
            Contract contract = await PurchaseOrderMod.Contract.Query().GetEntityById(1);

            Poquote poquote = await PurchaseOrderMod.POQuote.Query().GetEntityById(2);

            Buyer buyer = await PurchaseOrderMod.Buyer.Query().GetEntityById(1);

            if (buyer != null)
            {
                buyerAddressBook = await PurchaseOrderMod.AddressBook.Query().GetEntityById(buyer.AddressId);
            }
            TaxRatesByCode taxRatesByCode = await PurchaseOrderMod.TaxRatesByCode.Query().GetEntityById(1);

            PurchaseOrderView view = new PurchaseOrderView()
            {
                DocType               = "STD",
                PaymentTerms          = "Net 30",
                Amount                = 286.11M,
                AmountPaid            = 0,
                Remark                = "PO Remark",
                Gldate                = DateTime.Parse("11/29/2019"),
                AccountId             = account.AccountId,
                Location              = account.Location,
                BusUnit               = account.BusUnit,
                Subsidiary            = account.Subsidiary,
                SubSub                = account.SubSub,
                Account               = account.Account,
                AccountDescription    = account.Description,
                SupplierId            = supplier.SupplierId,
                CustomerId            = contract?.CustomerId,
                SupplierName          = addressBook.Name,
                ContractId            = contract?.ContractId,
                PoquoteId             = poquote?.PoquoteId,
                QuoteAmount           = poquote?.QuoteAmount,
                Description           = "PO Description",
                Ponumber              = "PO-123",
                TakenBy               = "David Nishimoto",
                ShippedToName         = " shipped name",
                ShippedToAddress1     = "shipped to address1",
                ShippedToAddress2     = "shipped to address2",
                ShippedToCity         = "shipped city",
                ShippedToState        = "ID",
                ShippedToZipcode      = "83709",
                BuyerId               = buyer.BuyerId,
                BuyerName             = buyerAddressBook?.Name,
                RequestedDate         = DateTime.Parse("11/29/2019"),
                PromisedDeliveredDate = DateTime.Parse("11/29/2019"),
                Tax                 = 0M,
                TransactionDate     = DateTime.Parse("11/29/2019"),
                TaxCode1            = taxRatesByCode.TaxCode,
                TaxCode2            = "",
                TaxRate             = taxRatesByCode.TaxRate ?? 0,
                PurchaseOrderNumber = (await PurchaseOrderMod.PurchaseOrder.Query().GetNextNumber()).NextNumberValue
            };

            PurchaseOrder purchaseOrder = await PurchaseOrderMod.PurchaseOrder.Query().MapToEntity(view);

            PurchaseOrderMod.PurchaseOrder.AddPurchaseOrder(purchaseOrder).Apply();

            Udc udcAccountReceivableType = await PurchaseOrderMod.Udc.Query().GetEntityById(66);

            ChartOfAccount coaAccountReceivable = await PurchaseOrderMod.ChartOfAccount.Query().GetEntityById(4);

            AccountReceivable accountReceivable = await PurchaseOrderMod.AccountReceivable.Query().MapEntityFromPurchaseOrder(purchaseOrder, udcAccountReceivableType, coaAccountReceivable);

            PurchaseOrderMod.AccountReceivable.AddAccountReceivable(accountReceivable).Apply();
        }
Пример #21
0
        public async Task TestCreatePurchaseOrder()
        {
            SupplierModule supplierMod = new SupplierModule();

            ItemMaster itemMaster = new ItemMaster();

            itemMaster.ItemCode      = "P2001Test";
            itemMaster.Branch        = "700";
            itemMaster.Description   = "Highlighter - 3 Color";
            itemMaster.UnitOfMeasure = "Sets";
            itemMaster.UnitPrice     = 6M;

            supplierMod.ItemMaster.CreateItemMaster(itemMaster);
            supplierMod.ItemMaster.Apply();


            AddressBook addressBook = new AddressBook();

            addressBook.CompanyName = "Sample Company Part Ltd";
            addressBook.Name        = "";
            addressBook.FirstName   = "";
            addressBook.LastName    = "";

            LocationAddress locationAddress = new LocationAddress();

            locationAddress.AddressLine1 = "204 Collins Street";
            locationAddress.City         = "Melbourne";
            locationAddress.Zipcode      = "3000";
            locationAddress.Country      = "Australia";

            EmailEntity email = new EmailEntity();

            email.Email      = "*****@*****.**";
            email.LoginEmail = true;
            email.Password   = "******";



            supplierMod.CreateSupplierProfile(addressBook, email, locationAddress);

            SupplierView supplierView = await supplierMod.Supplier.Query().GetViewByEmail(email);

            ChartOfAccount coa = await supplierMod.ChartOfAccount.Query().GetEntity("1000", "1200", "240", "");

            Company company = await supplierMod.ChartOfAccount.Query().GetCompany();

            ItemMaster[] itemMasterLookup = new ItemMaster[5];

            itemMasterLookup[0] = await supplierMod.ItemMaster.Query().GetEntityById(5);

            itemMasterLookup[1] = await supplierMod.ItemMaster.Query().GetEntityById(6);

            itemMasterLookup[2] = await supplierMod.ItemMaster.Query().GetEntityById(7);

            itemMasterLookup[3] = await supplierMod.ItemMaster.Query().GetEntityById(8);

            itemMasterLookup[4] = await supplierMod.ItemMaster.Query().GetEntityById(9);

            Udc udcAcctPayDocType = await supplierMod.Udc.Query().GetUdc("AcctPayDocType", "STD");

            string json = @"{
            ""DocType"" : """ + udcAcctPayDocType.KeyCode + @""",
            ""PaymentTerms"" : ""Net 30"",
            ""GLDate"" : """ + DateTime.Parse("7/30/2018") + @""",
            ""AccountId"" :" + coa.AccountId + @",
            ""SupplierId"" :" + (supplierView.SupplierId).ToString() + @",
            ""SupplierName"" :""" + supplierView.SupplierName + @""",
            ""Description"" :""Back to School Inventory"",
            ""PONumber"" :""PO-2"",
            ""TakenBy"" : ""David Nishimoto"",
            ""BuyerId"" :" + company.CompanyId + @",
            ""TaxCode1"" :""" + company.TaxCode1 + @""",
            ""TaxCode2"" :""" + company.TaxCode2 + @""",
            ""ShippedToName"" :""" + company.CompanyName + @""",
            ""ShippedToAddress1"" :""" + company.CompanyStreet + @""",
            ""ShippedToCity"" :""" + company.CompanyCity + @""",
            ""ShippedToState"" :""" + company.CompanyState + @""",
            ""ShippedToZipcode"" :""" + company.CompanyZipcode + @""",
            ""RequestedDate"" :""" + DateTime.Parse("7/24/2018") + @""",
            ""PromisedDeliveredDate"" :""" + DateTime.Parse("8/2/2018") + @""",
            ""TransactionDate"" :""" + DateTime.Parse("7/30/2018") + @""", 

            ""PurchaseOrderDetailViews"":[
                    {
                    ""ItemId"": 5,
                    ""OrderDate"":""" + DateTime.Parse("7 / 30 / 2018") + @""",
                    ""OrderedQuantity"": 5,
                    ""UnitPrice"" : " + itemMasterLookup[0].UnitPrice + @",
                    ""UnitOfMeasure"" : """ + itemMasterLookup[0].UnitOfMeasure + @""",
                    ""Amount"" : " + itemMasterLookup[0].UnitPrice * 5 + @",
                    ""Description"": """ + itemMasterLookup[0].Description + @""",
                    ""ExpectedDeliveryDate"" :""" + DateTime.Parse("8/2/2018") + @""",
                    ""ReceivedQuantity"":0,
                    ""RemainingQuantity"":5
                    },
                    {
                    ""ItemId"": 6,
                    ""OrderDate"":""" + DateTime.Parse("7 / 30 / 2018") + @""",
                    ""OrderedQuantity"": 4,
                    ""UnitPrice"" : " + itemMasterLookup[1].UnitPrice + @",
                    ""UnitOfMeasure"" : """ + itemMasterLookup[1].UnitOfMeasure + @""",
                    ""Amount"" : " + itemMasterLookup[1].UnitPrice * 4 + @",
                    ""Description"": """ + itemMasterLookup[1].Description + @""",
                    ""ExpectedDeliveryDate"" :""" + DateTime.Parse("8/2/2018") + @""",
                    ""ReceivedQuantity"":0,
                    ""RemainingQuantity"":4
                    },
                    {
                    ""ItemId"": 7,
                    ""OrderDate"":""" + DateTime.Parse("7 / 30 / 2018") + @""",
                    ""OrderedQuantity"": 10,
                    ""UnitPrice"" : " + itemMasterLookup[2].UnitPrice + @",
                    ""UnitOfMeasure"" : """ + itemMasterLookup[2].UnitOfMeasure + @""",
                    ""Amount"" : " + itemMasterLookup[2].UnitPrice * 10 + @",
                    ""Description"": """ + itemMasterLookup[2].Description + @""",
                    ""ExpectedDeliveryDate"" :""" + DateTime.Parse("8/2/2018") + @""",
                    ""ReceivedQuantity"":0,
                    ""RemainingQuantity"":10
                    },
                    {
                    ""ItemId"": 8,
                    ""OrderDate"":""" + DateTime.Parse("7 / 30 / 2018") + @""",
                    ""OrderedQuantity"": 15,
                    ""UnitPrice"" : " + itemMasterLookup[3].UnitPrice + @",
                    ""UnitOfMeasure"" : """ + itemMasterLookup[3].UnitOfMeasure + @""",
                    ""Amount"" : " + itemMasterLookup[3].UnitPrice * 15 + @",
                    ""Description"": """ + itemMasterLookup[3].Description + @""",
                    ""ExpectedDeliveryDate"" :""" + DateTime.Parse("8/2/2018") + @""",
                    ""ReceivedQuantity"":0,
                    ""RemainingQuantity"":15
                    },
                    {
                    ""ItemId"": 9,
                    ""OrderDate"":""" + DateTime.Parse("7 / 30 / 2018") + @""",
                    ""OrderedQuantity"": 10,
                    ""UnitPrice"" : " + itemMasterLookup[4].UnitPrice + @",
                    ""UnitOfMeasure"" : """ + itemMasterLookup[3].UnitOfMeasure + @""",
                    ""Amount"" : " + itemMasterLookup[4].UnitPrice * 10 + @",
                    ""Description"": """ + itemMasterLookup[4].Description + @""",
                    ""ExpectedDeliveryDate"" :""" + DateTime.Parse("8/2/2018") + @""",
                    ""ReceivedQuantity"":0,
                    ""RemainingQuantity"":10
                    }
                ]
    }";


            PurchaseOrderView purchaseOrderView = JsonConvert.DeserializeObject <PurchaseOrderView>(json);


            AccountPayableModule apMod = new AccountPayableModule();

            apMod.CreateByPurchaseOrderView(purchaseOrderView);
            apMod.AccountPayable.Apply();


            Assert.True(true);
        }