public ActionResult DeleteReceiptLineItem(Models.ViewModels.Sales.AddSalesReceipt model)
        {
            var request     = HttpContext.Request;
            var deletedItem = request.Form["DeletedLineItem"];

            model.AddSalesReceiptLines.Remove(model.AddSalesReceiptLines.Where(i => i.ItemId.ToString() == deletedItem.ToString()).FirstOrDefault());
            return(View(model));
        }
        /// <summary>
        /// Add new receipt with no invoice
        /// </summary>
        /// <returns></returns>
        public ActionResult AddReceipt()
        {
            var model = new Models.ViewModels.Sales.AddSalesReceipt();

            //TODO: get the default customer advances account from GL setting if there is.
            model.AccountToCreditId = _financialService.GetAccounts().Where(a => a.AccountName == "Customer Advances").FirstOrDefault() != null
                ? _financialService.GetAccounts().Where(a => a.AccountName == "Customer Advances").FirstOrDefault().Id
                : -1;

            return(View(model));
        }
        public ActionResult AddReceiptItem(Models.ViewModels.Sales.AddSalesReceipt model)
        {
            var rowId = Guid.NewGuid();

            if (model.ItemId.Value != -1 && model.Quantity > 0)
            {
                var item = _inventoryService.GetItemById(model.ItemId.Value);
                if (!item.Price.HasValue)
                {
                    ModelState.AddModelError("Amount", "Selling price is not set.");
                    return(View(model));
                }
                Models.ViewModels.Sales.AddSalesReceiptLine itemModel = new Models.ViewModels.Sales.AddSalesReceiptLine()
                {
                    RowId         = rowId.ToString(),
                    ItemId        = model.ItemId.Value,
                    MeasurementId = model.MeasurementId.Value,
                    Quantity      = model.Quantity,
                    Discount      = model.Discount,
                    Amount        = item.Price.Value * model.Quantity,
                    AmountToPay   = model.AmountToPay
                };
                if (model.AddSalesReceiptLines.FirstOrDefault(i => i.ItemId == model.ItemId) == null)
                {
                    model.AddSalesReceiptLines.Add(itemModel);
                }
            }
            else if (!string.IsNullOrEmpty(model.AccountCode) && model.Amount != 0)
            {
                var account = _financialService.GetAccounts().Where(a => a.AccountCode == model.AccountCode).FirstOrDefault();
                if (account != null)
                {
                    Models.ViewModels.Sales.AddSalesReceiptLine accountItemModel = new Models.ViewModels.Sales.AddSalesReceiptLine()
                    {
                        RowId             = rowId.ToString(),
                        AccountToCreditId = account.Id,
                        Amount            = model.AmountToPay,
                        AmountToPay       = model.AmountToPay,
                    };
                    model.AddSalesReceiptLines.Add(accountItemModel);
                }
            }
            return(View(model));
        }
Exemple #4
0
        public ActionResult SaveSalesReceipt(Models.ViewModels.Sales.AddSalesReceipt model)
        {
            var receipt = new SalesReceiptHeader()
            {
                AccountToDebitId = model.AccountToDebitId,
                //SalesInvoiceHeaderId = model.SalesInvoiceId,
                CustomerId = model.CustomerId.Value,
                Date       = model.Date,
                CreatedBy  = User.Identity.Name,
                CreatedOn  = DateTime.Now,
                ModifiedBy = User.Identity.Name,
                ModifiedOn = DateTime.Now,
            };

            foreach (var line in model.AddSalesReceiptLines)
            {
                if (line.AmountToPay > line.Amount)
                {
                    return(RedirectToAction("SalesInvoices"));
                }

                receipt.SalesReceiptLines.Add(new SalesReceiptLine()
                {
                    SalesInvoiceLineId = line.SalesInvoiceLineId,
                    ItemId             = line.ItemId,
                    MeasurementId      = line.MeasurementId,
                    Quantity           = line.Quantity,
                    Discount           = line.Discount,
                    Amount             = line.Amount,
                    AmountPaid         = line.AmountToPay,
                    CreatedBy          = User.Identity.Name,
                    CreatedOn          = DateTime.Now,
                    ModifiedBy         = User.Identity.Name,
                    ModifiedOn         = DateTime.Now,
                });
            }
            _salesService.AddSalesReceipt(receipt);
            return(RedirectToAction("SalesInvoices"));
        }
 /// <summary>
 /// Add new receipt with no invoice
 /// </summary>
 /// <returns></returns>
 public ActionResult AddReceipt()
 {
     var model = new Models.ViewModels.Sales.AddSalesReceipt();
     model.AccountToCreditId = _financialService.GetAccounts().Where(a => a.AccountName == "Accounts Receivable").FirstOrDefault().Id;
     return View(model);
 }
        public ActionResult AddSalesReceipt(int? salesInvoiceId = null)
        {
            var model = new Models.ViewModels.Sales.AddSalesReceipt();
            if (salesInvoiceId.HasValue)
            {
                var salesInvoice = _salesService.GetSalesInvoiceById(salesInvoiceId.Value);
                model.SalesInvoiceId = salesInvoice.Id;
                model.SalesInvoiceNo = salesInvoice.No;
                model.InvoiceDate = salesInvoice.Date;
                model.Date = DateTime.Now;
                model.CustomerId = salesInvoice.CustomerId;

                foreach (var line in salesInvoice.SalesInvoiceLines)
                {
                    model.AddSalesReceiptLines.Add(new Models.ViewModels.Sales.AddSalesReceiptLine()
                    {
                        SalesInvoiceLineId = line.Id,
                        ItemId = line.ItemId,
                        MeasurementId = line.MeasurementId,
                        Quantity = line.Quantity,
                        Discount = line.Discount,
                        Amount = line.Amount
                    });
                }
            }
            return View(model);
        }
        /// <summary>
        /// Add new receipt with no invoice
        /// </summary>
        /// <returns></returns>
        public ActionResult AddReceipt()
        {
            var model = new Models.ViewModels.Sales.AddSalesReceipt();
            //TODO: get the default customer advances account from GL setting if there is.
            model.AccountToCreditId = _financialService.GetAccounts().Where(a => a.AccountName == "Customer Advances").FirstOrDefault() != null
                ? _financialService.GetAccounts().Where(a => a.AccountName == "Customer Advances").FirstOrDefault().Id
                : -1;

            return View(model);
        }