public string SubmitInvoice(SupplierInvoiceSubmissionDTO entity) { //Save the submission and get ID to save invoice ITS_Submission subObj = new ITS_Submission(); subObj = FindByPO(entity.POID); var submission = SaveSubmission(subObj, entity); //Save invoice var invoiceID = invService.SaveInvoices(entity, submission.ID); //Update PO to pending payment and due amount. ITS_PurchaseOrder poObj = new ITS_PurchaseOrder(); poObj = orderService.Get(entity.POID); orderService.UpdatePO(poObj); if (entity.FileUploadType == "") //Check if we are saving for file upload or saving permanantly { //Finally updated the submission number UpdateSubmissionNumber(submission); return(submission.SubmissionNumber); } else { return(Convert.ToString(invoiceID)); } }
public SupplierInvoiceSubmissionDTO MapDTO(ITS_PurchaseOrder PO) { System.Globalization.CultureInfo ITSCulture = System.Globalization.CultureInfo.CurrentUICulture; string DateFormat = ITSCulture.DateTimeFormat.ShortDatePattern; List <ITS_InvoiceCategories> lstCategories = new List <ITS_InvoiceCategories>(); lstCategories = invCatService.GetAll(); var Categories = new InvoiceCategoriesCountDTO(invCatService.GetAll()); List <ITS_POTypeDocTypeLink> obj = potypeService.LinkedDocuments(PO.POTypeID); PODocumentTypeDTO objDocTypeDTO = new PODocumentTypeDTO(); List <PODocumentTypeDTO> lst = new List <PODocumentTypeDTO>(); if (obj != null) { for (int i = 0; i < obj.Count(); i++) { lst.Add(new PODocumentTypeDTO() { DocTypeID = obj[i].DocumentTypeID, DocType = obj[i].ITS_DocumentType.DocumentType, Mandatory = Convert.ToString(obj[i].MandatoryYN) }); } } SupplierInvoiceSubmissionDTO sisDTO = new SupplierInvoiceSubmissionDTO(); sisDTO.POID = PO.ID; sisDTO.POStatus = PO.Status; sisDTO.PONumber = PO.PONumber; sisDTO.POAmount = PO.POAmount; sisDTO.PODate = PO.DateCreated.ToString(DateFormat); sisDTO.DueAmount = PO.PODueAmount; sisDTO.Name = PO.ITS_Supplier.Name; sisDTO.CSDNumber = PO.ITS_Supplier.CSDNumber; sisDTO.VendorCode = PO.ITS_Supplier.VendorCode; sisDTO.LinkedDocs = lst; if (Categories.Categories.Count != 0) { sisDTO.InvoiceCat = Categories.Categories; } // sisDTO.UploadedDocs = lstUpload; return(sisDTO); }
public void UpdatePO(ITS_PurchaseOrder order) { order.PODueAmount = invService.CalculateAmountsDue(order); try { Update(order); SaveChanges(); } catch (Exception ex) { throw ex; } }
public PODTO(ITS_PurchaseOrder PO) { ID = PO.ID; PONumber = PO.PONumber; POAmount = PO.POAmount; PODate = PO.PODate; POAmount = PO.POAmount; Status = PO.Status; foreach (ITS_Submission sub in PO.ITS_Submission.ToList()) { foreach (ITS_SupplierInvoice inv in sub.ITS_SupplierInvoice.ToList()) { InvoicedAmount += inv.InvoiceAmount; } } AmountOutstanding = POAmount - InvoicedAmount; }
public decimal CalculateAmountsDue(ITS_PurchaseOrder PO) { decimal duetotal = 0; decimal invamount = 0; SubmissionService subService = new SubmissionService(); var submission = subService.FindByPO(PO.ID); if (submission != null) { List <ITS_SupplierInvoice> invObj = new List <ITS_SupplierInvoice>(); invObj = GetAll().Where(s => s.SubmissionID == submission.ID).ToList(); foreach (var inv in invObj) { invamount = invamount + inv.InvoiceAmount; } } duetotal = PO.POAmount - invamount; return(duetotal); }
public IHttpActionResult Put([FromBody] ITS_PurchaseOrder PO) { return(Ok()); }