Example #1
0
        public ActionResult SalesInvoice(int id)
        {
            var order = _salesService.GetSalesInvoiceById(id);
            var model = new Models.ViewModels.Sales.SalesHeaderViewModel(_inventoryService, _financialService);

            model.Id         = order.Id;
            model.CustomerId = order.CustomerId;
            model.Date       = order.Date;
            model.No         = order.No;

            foreach (var line in order.SalesInvoiceLines)
            {
                var lineItem = new Models.ViewModels.Sales.SalesLineItemViewModel(_financialService);
                lineItem.Id              = line.Id;
                lineItem.ItemId          = line.ItemId;
                lineItem.ItemNo          = line.Item.No;
                lineItem.ItemDescription = line.Item.Description;
                lineItem.Measurement     = line.Measurement.Description;
                lineItem.Quantity        = line.Quantity;
                lineItem.Discount        = line.Discount;
                lineItem.Price           = line.Amount;
                model.SalesLine.SalesLineItems.Add(lineItem);
            }

            HttpContext.Response.Clear();
            HttpContext.Response.AddHeader("Content-Type", "application/pdf");
            var html = base.RenderPartialViewToString("~/Views/Reports/SalesInvoice.cshtml", model);

            HttpContext.Response.Filter = new PdfFilter(HttpContext.Response.Filter, html);
            return(View(model));
        }
        public ActionResult SalesInvoice(int id)
        {
            var order = _salesService.GetSalesInvoiceById(id);
            var model = new Models.ViewModels.Sales.SalesHeaderViewModel(_inventoryService, _financialService);
            model.Id = order.Id;
            model.CustomerId = order.CustomerId;
            model.Date = order.Date;
            model.No = order.No;

            foreach (var line in order.SalesInvoiceLines)
            {
                var lineItem = new Models.ViewModels.Sales.SalesLineItemViewModel(_financialService);
                lineItem.Id = line.Id;
                lineItem.ItemId = line.ItemId;
                lineItem.ItemNo = line.Item.No;
                lineItem.ItemDescription = line.Item.Description;
                lineItem.Measurement = line.Measurement.Description;
                lineItem.Quantity = line.Quantity;
                lineItem.Discount = line.Discount;
                lineItem.Price = line.Amount;
                model.SalesLine.SalesLineItems.Add(lineItem);
            }

            HttpContext.Response.Clear();
            HttpContext.Response.AddHeader("Content-Type", "application/pdf");
            var html = base.RenderPartialViewToString("~/Views/Reports/SalesInvoice.cshtml", model);
            HttpContext.Response.Filter = new PdfFilter(HttpContext.Response.Filter, html);
            return View(model);
        }
Example #3
0
        private void AddLineItem(Models.ViewModels.Sales.SalesHeaderViewModel model)
        {
            if (!model.CustomerId.HasValue)
            {
                throw new Exception("Please enter customer.");
            }

            var item    = _inventoryService.GetItemByNo(model.SalesLine.ItemNo);
            var newLine = new Models.ViewModels.Sales.SalesLineItemViewModel(_financialService);

            newLine.CustomerId      = model.CustomerId.HasValue ? model.CustomerId.Value : 0;
            newLine.ItemId          = item.Id;
            newLine.ItemNo          = item.No;
            newLine.ItemDescription = item.Description;
            newLine.Measurement     = item.SellMeasurement.Description;
            newLine.Quantity        = model.SalesLine.Quantity;
            newLine.Price           = model.SalesLine.Price;
            newLine.Discount        = model.SalesLine.Discount;
            model.SalesLine.SalesLineItems.Add(newLine);

            foreach (var line in model.SalesLine.SalesLineItems)
            {
                line.SetServiceHelpers(_financialService);
            }
        }
Example #4
0
        public ActionResult SaveInvoice(Models.ViewModels.Sales.SalesHeaderViewModel model)
        {
            SalesInvoiceHeader invoice = null;

            if (model.Id == 0)
            {
                invoice           = new SalesInvoiceHeader();
                invoice.CreatedBy = User.Identity.Name;
                invoice.CreatedOn = DateTime.Now;
            }
            else
            {
                invoice = _salesService.GetSalesInvoiceById(model.Id);
            }

            invoice.ModifiedBy             = User.Identity.Name;
            invoice.ModifiedOn             = DateTime.Now;
            invoice.CustomerId             = model.CustomerId.Value;
            invoice.Date                   = model.Date;
            invoice.ShippingHandlingCharge = model.ShippingHandlingCharges;

            foreach (var line in model.SalesLine.SalesLineItems)
            {
                SalesInvoiceLine lineItem = null;
                var item = _inventoryService.GetItemByNo(line.ItemNo);
                if (!line.Id.HasValue)
                {
                    lineItem           = new SalesInvoiceLine();
                    lineItem.CreatedBy = User.Identity.Name;
                    lineItem.CreatedOn = DateTime.Now;
                    invoice.SalesInvoiceLines.Add(lineItem);
                }
                else
                {
                    lineItem = invoice.SalesInvoiceLines.Where(i => i.Id == line.Id).FirstOrDefault();
                }

                lineItem.ModifiedBy    = User.Identity.Name;
                lineItem.ModifiedOn    = DateTime.Now;
                lineItem.ItemId        = line.ItemId;
                lineItem.MeasurementId = item.SellMeasurementId.Value;
                lineItem.Quantity      = line.Quantity;
                lineItem.Discount      = line.Discount;
                lineItem.Amount        = line.Price;
            }

            if (model.Id == 0)
            {
                _salesService.AddSalesInvoice(invoice, null);
            }
            else
            {
                _salesService.UpdateSalesInvoice(invoice);
            }

            return(RedirectToAction("SalesInvoices"));
        }
Example #5
0
        public ActionResult SaveOrder(Models.ViewModels.Sales.SalesHeaderViewModel model)
        {
            SalesOrderHeader order = null;

            if (model.Id == 0)
            {
                order           = new SalesOrderHeader();
                order.CreatedBy = User.Identity.Name;
                order.CreatedOn = DateTime.Now;
            }
            else
            {
                order = _salesService.GetSalesOrderById(model.Id);
            }

            order.ModifiedBy    = User.Identity.Name;
            order.ModifiedOn    = DateTime.Now;
            order.CustomerId    = model.CustomerId.Value;
            order.PaymentTermId = model.PaymentTermId;
            order.Date          = model.Date;

            foreach (var line in model.SalesLine.SalesLineItems)
            {
                SalesOrderLine lineItem = null;
                var            item     = _inventoryService.GetItemByNo(line.ItemNo);
                if (!line.Id.HasValue)
                {
                    lineItem           = new SalesOrderLine();
                    lineItem.CreatedBy = User.Identity.Name;
                    lineItem.CreatedOn = DateTime.Now;
                    order.SalesOrderLines.Add(lineItem);
                }
                else
                {
                    lineItem = order.SalesOrderLines.Where(i => i.Id == line.Id).FirstOrDefault();
                }

                lineItem.ModifiedBy    = User.Identity.Name;
                lineItem.ModifiedOn    = DateTime.Now;
                lineItem.ItemId        = line.ItemId;
                lineItem.MeasurementId = item.SellMeasurementId.Value;
                lineItem.Quantity      = line.Quantity;
                lineItem.Discount      = line.Discount;
                lineItem.Amount        = line.Price;
            }

            if (model.Id == 0)
            {
                _salesService.AddSalesOrder(order, true);
            }
            else
            {
                _salesService.UpdateSalesOrder(order);
            }

            return(RedirectToAction("SalesOrders"));
        }
Example #6
0
        public ActionResult SaveDelivery(Models.ViewModels.Sales.SalesHeaderViewModel model)
        {
            SalesDeliveryHeader delivery = null;

            if (model.Id == 0)
            {
                delivery           = new SalesDeliveryHeader();
                delivery.CreatedBy = User.Identity.Name;
                delivery.CreatedOn = DateTime.Now;
            }
            else
            {
                delivery = _salesService.GetSalesDeliveryById(model.Id);
            }

            delivery.ModifiedBy    = User.Identity.Name;
            delivery.ModifiedOn    = DateTime.Now;
            delivery.CustomerId    = model.CustomerId.Value;
            delivery.PaymentTermId = model.PaymentTermId;
            delivery.Date          = model.Date;

            foreach (var line in model.SalesLine.SalesLineItems)
            {
                SalesDeliveryLine lineItem = null;
                var item = _inventoryService.GetItemByNo(line.ItemNo);
                if (!line.Id.HasValue)
                {
                    lineItem           = new SalesDeliveryLine();
                    lineItem.CreatedBy = User.Identity.Name;
                    lineItem.CreatedOn = DateTime.Now;
                    delivery.SalesDeliveryLines.Add(lineItem);
                }
                else
                {
                    lineItem = delivery.SalesDeliveryLines.Where(i => i.Id == line.Id).FirstOrDefault();
                }

                lineItem.ModifiedBy    = User.Identity.Name;
                lineItem.ModifiedOn    = DateTime.Now;
                lineItem.ItemId        = line.ItemId;
                lineItem.MeasurementId = item.SellMeasurementId.Value;
                lineItem.Quantity      = line.Quantity;
                lineItem.Discount      = line.Discount;
                lineItem.Price         = line.Price;
            }

            if (model.Id == 0)
            {
                _salesService.AddSalesDelivery(delivery, true);
            }
            else
            {
            }

            return(RedirectToAction("SalesDeliveries"));
        }
Example #7
0
        private void DeleteLineItem(Models.ViewModels.Sales.SalesHeaderViewModel model)
        {
            model.SetServiceHelpers(_inventoryService, _financialService);
            var request     = HttpContext.Request;
            var deletedItem = request.Form["DeletedLineItem"];

            if (!string.IsNullOrEmpty(deletedItem))
            {
                model.SalesLine.SalesLineItems.RemoveAt(int.Parse(deletedItem));
            }
        }
Example #8
0
        private void AddLineItem(Models.ViewModels.Sales.SalesHeaderViewModel model)
        {
            var item    = _inventoryService.GetItemByNo(model.SalesLine.ItemNo);
            var newLine = new Models.ViewModels.Sales.SalesLineItemViewModel(_financialService);

            newLine.ItemId          = item.Id;
            newLine.ItemNo          = item.No;
            newLine.ItemDescription = item.Description;
            newLine.Measurement     = item.SellMeasurement.Description;
            newLine.Quantity        = model.SalesLine.Quantity;
            newLine.Price           = model.SalesLine.Price;
            newLine.Discount        = model.SalesLine.Discount;
            model.SalesLine.SalesLineItems.Add(newLine);

            foreach (var line in model.SalesLine.SalesLineItems)
            {
                line.SetServiceHelpers(_financialService);
            }
        }
Example #9
0
        public ActionResult ReturnView(Models.ViewModels.Sales.SalesHeaderViewModel model)
        {
            string actionName = string.Empty;

            switch (model.DocumentType)
            {
            case Core.Domain.DocumentTypes.SalesOrder:
                actionName = "SalesOrder";
                break;

            case Core.Domain.DocumentTypes.SalesInvoice:
                actionName = "SalesInvoice";
                break;

            case Core.Domain.DocumentTypes.SalesDelivery:
                actionName = "SalesDelivery";
                break;
            }

            return(View(actionName, model));
        }
Example #10
0
        public ActionResult SalesOrder(int id = 0)
        {
            var model = new Models.ViewModels.Sales.SalesHeaderViewModel(_inventoryService, _financialService);

            model.DocumentType = Core.Domain.DocumentTypes.SalesOrder;

            if (id == 0)
            {
                return(View(model));
            }
            else
            {
                var order = _salesService.GetSalesOrderById(id);
                model.Id            = order.Id;
                model.CustomerId    = order.CustomerId;
                model.PaymentTermId = order.PaymentTermId;
                model.Date          = order.Date;
                model.Reference     = order.ReferenceNo;
                model.No            = order.No;

                foreach (var line in order.SalesOrderLines)
                {
                    var lineItem = new Models.ViewModels.Sales.SalesLineItemViewModel(_financialService);
                    lineItem.Id              = line.Id;
                    lineItem.ItemId          = line.ItemId;
                    lineItem.ItemNo          = line.Item.No;
                    lineItem.ItemDescription = line.Item.Description;
                    lineItem.Measurement     = line.Measurement.Description;
                    lineItem.Quantity        = line.Quantity;
                    lineItem.Discount        = line.Discount;
                    lineItem.Price           = line.Amount;
                    model.SalesLine.SalesLineItems.Add(lineItem);
                }
                return(View(model));
            }
        }
Example #11
0
        public ActionResult SalesOrder(int id = 0)
        {
            var model = new Models.ViewModels.Sales.SalesHeaderViewModel(_inventoryService, _financialService);
            model.DocumentType = Core.Domain.DocumentTypes.SalesOrder;

            if (id == 0)
            {
                return View(model);
            }
            else
            {
                var order = _salesService.GetSalesOrderById(id);
                model.Id = order.Id;
                model.CustomerId = order.CustomerId;
                model.PaymentTermId = order.PaymentTermId;
                model.Date = order.Date;
                model.Reference = order.ReferenceNo;
                model.No = order.No;

                foreach (var line in order.SalesOrderLines)
                {
                    var lineItem = new Models.ViewModels.Sales.SalesLineItemViewModel(_financialService);
                    lineItem.Id = line.Id;
                    lineItem.ItemId = line.ItemId;
                    lineItem.ItemNo = line.Item.No;
                    lineItem.ItemDescription = line.Item.Description;
                    lineItem.Measurement = line.Measurement.Description;
                    lineItem.Quantity = line.Quantity;
                    lineItem.Discount = line.Discount;
                    lineItem.Price = line.Amount;
                    model.SalesLine.SalesLineItems.Add(lineItem);
                }
                return View(model);
            }
        }
Example #12
0
 public ActionResult AddLineItemDelivery(Models.ViewModels.Sales.SalesHeaderViewModel model)
 {
     AddLineItem(model);
     return(ReturnView(model));
 }
Example #13
0
 public ActionResult DeleteLineItemInvoice(Models.ViewModels.Sales.SalesHeaderViewModel model)
 {
     DeleteLineItem(model);
     return(ReturnView(model));
 }