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); }
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); } }
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(); }
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); } }
// 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)); }
public IPurchaseOrder CreatePurchaseOrderDetails(PurchaseOrderView purchaseOrderView) { Task <CreateProcessStatus> resultTask = Task.Run(() => unitOfWork.purchaseOrderRepository.CreatePurchaseOrderDetailsByView(purchaseOrderView)); Task.WaitAll(resultTask); processStatus = resultTask.Result; return(this as IPurchaseOrder); }
public async Task <IActionResult> GetPurchaseOrderView(long purchaseOrderId) { PurchaseOrderModule invMod = new PurchaseOrderModule(); PurchaseOrderView view = await invMod.PurchaseOrder.Query().GetViewById(purchaseOrderId); return(Ok(view)); }
public IPurchaseOrder CreateAcctPayByPurchaseOrderNumber(PurchaseOrderView purchaseOrderView) { Task <CreateProcessStatus> resultTask = Task.Run(() => unitOfWork.accountPayableRepository.CreateAcctPayByPurchaseOrderView(purchaseOrderView)); Task.WaitAll(resultTask); processStatus = resultTask.Result; return(this as IPurchaseOrder); }
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); }
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)); }
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); }
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)); }
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); } }
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"); } }
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); }
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(); }
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); }