public ActionResult SaveSalesInvoice(Models.ViewModels.Sales.AddSalesInvoice model) { if (model.AddSalesInvoiceLines.Sum(i => i.Amount) == 0 || model.AddSalesInvoiceLines.Count < 1) { model.Customers = Models.ModelViewHelper.Customers(); model.Items = Models.ModelViewHelper.Items(); model.Measurements = Models.ModelViewHelper.Measurements(); ModelState.AddModelError("Amount", "No invoice line"); return(View(model)); } var invoiceHeader = new SalesInvoiceHeader(); var invoiceLines = new List <SalesInvoiceLine>(); foreach (var item in model.AddSalesInvoiceLines) { var Item = _inventoryService.GetItemById(item.ItemId); var invoiceDetail = new SalesInvoiceLine(); invoiceDetail.TaxId = Item.ItemTaxGroupId; invoiceDetail.ItemId = item.ItemId; invoiceDetail.MeasurementId = item.MeasurementId; invoiceDetail.Quantity = item.Quantity; invoiceDetail.Discount = item.Discount; invoiceDetail.Amount = Convert.ToDecimal(item.Quantity * Item.Price); invoiceLines.Add(invoiceDetail); } invoiceHeader.SalesInvoiceLines = invoiceLines; invoiceHeader.CustomerId = model.CustomerId; invoiceHeader.Date = model.Date; invoiceHeader.ShippingHandlingCharge = 4;// model.ShippingHandlingCharge; _salesService.AddSalesInvoice(invoiceHeader, model.SalesOrderId); return(RedirectToAction("SalesInvoices")); }
public ActionResult GenerateBulkInvoice(Models.ViewModels.Administration.CreateBulkInvoice model) { var day = 15; var month = DateTime.Now.Month == 12 ? 1 : DateTime.Now.Month + 1; var year = DateTime.Now.Month == 12 ? DateTime.Now.Year + 1 : DateTime.Now.Year; DateTime invoiceDate = new DateTime(year, month, day); var query = from c in _salesService.GetCustomers() select c; var customers = query.ToList(); var itemAssociationDues = (from i in _inventoryService.GetAllItems().ToList() where (i != null && i.SellDescription.ToLower().Contains("dues")) select i).FirstOrDefault(); var invoices = new List <SalesInvoiceHeader>(); foreach (var customer in customers) { var current = (from si in _salesService.GetSalesInvoices() where si.CustomerId == customer.Id && si.Date.Year == invoiceDate.Year && si.Date.Month == invoiceDate.Month && si.Date.Day == invoiceDate.Day select si).FirstOrDefault(); if (current != null) { return(RedirectToAction("BulkInvoice")); } var invoiceLine = new SalesInvoiceLine(); invoiceLine.ItemId = itemAssociationDues.Id; invoiceLine.Quantity = 1; invoiceLine.Amount = Convert.ToDecimal(itemAssociationDues.Price * invoiceLine.Quantity); invoiceLine.MeasurementId = itemAssociationDues.SmallestMeasurementId.Value; invoiceLine.CreatedBy = User.Identity.Name; invoiceLine.CreatedOn = DateTime.Now; invoiceLine.ModifiedBy = User.Identity.Name; invoiceLine.ModifiedOn = DateTime.Now; var invoice = new SalesInvoiceHeader(); invoice.Date = invoiceDate; invoice.CustomerId = customer.Id; invoice.CreatedBy = User.Identity.Name; invoice.CreatedOn = DateTime.Now; invoice.ModifiedBy = User.Identity.Name; invoice.ModifiedOn = DateTime.Now; invoice.SalesInvoiceLines.Add(invoiceLine); invoices.Add(invoice); } foreach (var invoice in invoices) { _salesService.AddSalesInvoice(invoice, null); } return(RedirectToAction("SalesInvoices", "Sales")); }
public ActionResult AddAccount([FromBody] CustomerInvoiceModel customerInvoiceModel) { return(Ok(_salesService.AddSalesInvoice(customerInvoiceModel))); }