public Results Insert(SalesOrderPaymentsVM model)
        {
            try
            {
                var cheque        = unitOfWork.ChequesRepo.Find(x => x.Id == model.ChequeId);
                var chequeBalance = cheque?.Amount;

                foreach (var i in unitOfWork.SalesOrderRepo.Get(x => x.CustomerId == model.CustomerId && x.Balance > 0))
                {
                    decimal?amountPaid = 0;
                    if (chequeBalance > i.Balance)
                    {
                        chequeBalance -= i.Balance;
                        amountPaid     = i.Balance;
                    }
                    else
                    {
                        amountPaid    = chequeBalance;
                        chequeBalance = 0;
                    }

                    unitOfWork.SalesOrderPaymentRepo.Insert(new SalesOrderPayments()
                    {
                        ChequeId     = model.ChequeId,
                        Amount       = amountPaid,
                        SalesOrderId = i.Id,
                        DateCreated  = DateTime.Now
                    });

                    i.AmountPaid += amountPaid;



                    unitOfWork.SalesOrderPaymentRepo.SaveChanges();
                    UpdateSalesOrder(i);
                }
                return(new Results()
                {
                    Succeeded = true
                });
            }
            catch (Exception e)
            {
                Debug.Write(e.Message);
                return(new Results()
                {
                    Succeeded = false,
                    Errors = new List <string>()
                    {
                        e.Message
                    }
                });
            }
        }
Beispiel #2
0
        public IActionResult BulkSettlePaymentPartial(SalesOrderPaymentsVM model)
        {
            model.Customers = salesOrderPaymentService.GetCustomers();
            model.Cheques   = salesOrderPaymentService.GetCheques();

            if (!ModelState.IsValid)
            {
                return(PartialView("PaymentSalesOrderDetail", model));
            }

            //Getting result of service
            var result = salesOrderPaymentService.Insert(model);

            //return partial view with error if the service fail in trycatch
            if (!result.Succeeded)
            {
                ViewData["Errors"] = result.Errors;
                return(PartialView("PaymentSalesOrderDetail", model));
            }


            return(Json(new { isSuccess = true }));
        }
Beispiel #3
0
 public IActionResult PaymentSalesOrderDetail(SalesOrderPaymentsVM model)
 {
     model.Customers = salesOrderPaymentService.GetCustomers();
     model.Cheques   = salesOrderPaymentService.GetCheques();
     return(PartialView(model));
 }