/// <summary> /// This method is used to add or edit purchase invoice /// </summary> /// <param name="invoiceData"></param> /// <returns></returns> public int AddUpdateInvoice(PurchaseInvoiceForm invoiceData) { int autoId = 0; //Add purchase invoice BusinessExpens obj = new BusinessExpens(); obj.ID = invoiceData.Invoice.ID; obj.Sup_Id = invoiceData.Invoice.SupplierID; obj.PI_Date = invoiceData.Invoice.InvoiceDate; obj.PI_GST_Amt = Convert.ToDecimal(invoiceData.Invoice.TotalTax); obj.PI_No = invoiceData.Invoice.InvoiceNo; obj.PI_TandC = invoiceData.Invoice.TermsAndConditions; obj.PI_Tot_aft_Tax = Convert.ToDecimal(invoiceData.Invoice.TotalAfterTax); obj.PI_Tot_bef_Tax = Convert.ToDecimal(invoiceData.Invoice.TotalBeforeTax); obj.Our_PO_No = invoiceData.Invoice.OurPONo; obj.PI_Pmt_Due_Date = invoiceData.Invoice.PaymentDueDate; obj.Exc_Inc_GST = invoiceData.Invoice.ExcIncGST; obj.PI_Status = Convert.ToByte(PI_Status.UnPaid); obj.IsDeleted = false; try { using (SASEntitiesEDM entities = new SASEntitiesEDM()) { if (entities.PurchaseInvoices.AsNoTracking().FirstOrDefault(x => x.ID == invoiceData.Invoice.ID) == null) { //obj.CreatedBy = invoiceData.PIModel.CreatedBy; obj.CreatedDate = DateTime.Now; entities.BusinessExpenses.Add(obj); entities.SaveChanges(); autoId = obj.ID; } else { // obj.ModifiedBy = invoiceData.PIModel.ModifiedBy; obj.ModifiedDate = DateTime.Now; entities.Entry(obj).State = EntityState.Modified; autoId = entities.SaveChanges(); } invoiceData.Invoice.ID = autoId; CreateDebitNote(invoiceData); if (autoId > 0) { BusinessExpensesDetail PIDetails; if (invoiceData.BEInvoiceDetails != null) { foreach (PurchaseInvoiceBEDetailsEntity beDetailEntity in invoiceData.BEInvoiceDetails) { PIDetails = new BusinessExpensesDetail(); PIDetails.PI_ID = autoId; PIDetails.Bus_Expenses_Acc_Name = beDetailEntity.AccountName; PIDetails.PI_Amount = beDetailEntity.PQAmount; PIDetails.GST_Code = beDetailEntity.GSTCode; PIDetails.GST_Rate = beDetailEntity.GSTRate; PIDetails.Bus_Expenses_Desc = beDetailEntity.Description; if (entities.PurchaseInvoiceDetails.AsNoTracking().FirstOrDefault(x => x.ID == beDetailEntity.ID) == null) { entities.BusinessExpensesDetails.Add(PIDetails); entities.SaveChanges(); } else { entities.Entry(PIDetails).State = EntityState.Modified; entities.SaveChanges(); } } } } } return(autoId); } catch (Exception ex) { throw ex; } }
public int UpdationInvoice(PurchaseInvoiceForm invoiceData) { try { using (SASEntitiesEDM entities = new SASEntitiesEDM()) { BusinessExpens obj = entities.BusinessExpenses.Where(e => e.PI_No == invoiceData.Invoice.InvoiceNo ).SingleOrDefault(); if (obj != null) { //obj.ID = invoiceData.Invoice.ID; obj.Sup_Id = invoiceData.Invoice.SupplierID; obj.PI_Date = Convert.ToDateTime(invoiceData.Invoice.InvoiceDateStr); obj.PI_GST_Amt = Convert.ToDecimal(invoiceData.Invoice.TotalTax); obj.PI_No = invoiceData.Invoice.InvoiceNo; obj.PI_TandC = invoiceData.Invoice.TermsAndConditions; obj.PI_Tot_aft_Tax = Convert.ToDecimal(invoiceData.Invoice.TotalAfterTax); obj.PI_Tot_bef_Tax = Convert.ToDecimal(invoiceData.Invoice.TotalBeforeTax); obj.PI_Pmt_Due_Date = Convert.ToDateTime(invoiceData.Invoice.PaymentDueDateStr); obj.Our_PO_No = invoiceData.Invoice.OurPONo; obj.Exc_Inc_GST = invoiceData.Invoice.ExcIncGST; obj.ModifiedDate = DateTime.Now; entities.SaveChanges(); } invoiceData.Invoice.ID = obj.ID; CreateDebitNote(invoiceData); var objPurchase = entities.PurchaseInvoiceDetails.Where (e => e.PI_ID == obj.ID && e.Type == "BE").ToList(); if (objPurchase != null) { foreach (var item in objPurchase) { entities.PurchaseInvoiceDetails.Remove(item); entities.SaveChanges(); } } BusinessExpensesDetail PIDetails; if (invoiceData.BEInvoiceDetails != null) { foreach (PurchaseInvoiceBEDetailsEntity beDetailEntity in invoiceData.BEInvoiceDetails) { PIDetails = new BusinessExpensesDetail(); PIDetails.PI_ID = obj.ID; PIDetails.Bus_Expenses_Acc_Name = beDetailEntity.AccountName; PIDetails.PI_Amount = beDetailEntity.PQAmount; PIDetails.GST_Code = beDetailEntity.GSTCode; PIDetails.GST_Rate = beDetailEntity.GSTRate; PIDetails.Bus_Expenses_Desc = beDetailEntity.Description; entities.BusinessExpensesDetails.Add(PIDetails); entities.SaveChanges(); } } return(obj.ID); } } catch (Exception ex) { throw ex; } }