Beispiel #1
0
        public SalesOrders Update(SalesOrderVM vm)
        {
            try
            {
                var item = unitOfWork.SalesOrderRepo.Find(x => x.Id == vm.saleOrderId, "SalesOrderPayments,SalesOrderDetails");

                var customer = customerService.Customers().FirstOrDefault(x => x.Id == vm.SalesOrder.CustomerId);

                //get total amount
                var totalAmount = item.SalesOrderDetails.Sum(x => x.SubTotal) ?? 0;


                item.CustomerId   = customer.Id;
                item.CustomerName = customer.FullName;
                item.AmountPaid   = vm.SalesOrder.AmountPaid ?? 0;
                item.Status       = "Tendered Transaction";
                //first is to clear just to be safe if cheque is already added
                unitOfWork.SalesOrderPaymentRepo.Delete(x => x.SalesOrderId == item.Id);

                foreach (var payment in item.SalesOrderPayments)
                {
                    unitOfWork.SalesOrderPaymentRepo.Insert(new SalesOrderPayments()
                    {
                        ChequeId     = payment.ChequeId,
                        Amount       = payment.Amount,
                        DateCreated  = payment.DateCreated,
                        SalesOrderId = payment.SalesOrderId
                    });
                }

                unitOfWork.SalesOrderPaymentRepo.Insert(new SalesOrderPayments()
                {
                    ChequeId     = vm.ChequeId,
                    Amount       = item.AmountPaid,
                    DateCreated  = DateTime.Now,
                    SalesOrderId = item.Id,
                });
                if (!string.IsNullOrEmpty(vm.ChequeId))
                {
                    item.AmountPaid = totalAmount;
                }

                if (item.AmountPaid < totalAmount)
                {
                    item.Status = "Partially Paid Transaction";
                }

                unitOfWork.SalesOrderPaymentRepo.SaveChanges();
                unitOfWork.SalesOrderRepo.SaveChanges();
                vm.SalesOrder = item;
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }

            return(vm.SalesOrder);
        }
        // GET: SalesOrder
        public ActionResult Index()
        {
            var roCreation   = _capitaContext.FinishedGoods.ToList();
            var packingType  = _capitaContext.MasterPackingTypes.ToList();
            var vmSalesOrder = new SalesOrderVM
            {
                fgGoods     = roCreation,
                packingType = packingType
            };

            return(View(vmSalesOrder));
        }
        public IActionResult TenderTransactionPartial(SalesOrderVM model)
        {
            model.Cheques = chequeService.Get();
            if (!ModelState.IsValid)
            {
                return(PartialView("TenderTransactionModalPartial", model));
            }
            salesOrderService.Update(model);
            model.isSuccess = true;

            return(PartialView("TenderTransactionModalPartial", model));
        }
        public IActionResult TenderTransactionModalPartial(string salesOrderId)
        {
            var model = new SalesOrderVM()
            {
                SalesOrder  = salesOrderService.Find(x => x.Id == salesOrderId),
                saleOrderId = salesOrderId
            };


            if (string.IsNullOrEmpty(model?.SalesOrder?.PaymentMethod))
            {
                model.SalesOrder.PaymentMethod = "Cash";
            }
            return(PartialView(model));
        }
Beispiel #5
0
        public async Task <SalesOrderVM> GetSOAsync(Guid id)
        {
            var so = await Table.GetAsync <SalesOrder>(SOPartition, id.ToSafeStorageKey());

            var items = await Table.GetAllFromPartition(id.ToSafeStorageKey());

            var vm = new SalesOrderVM {
                Name = so.Name, Items = new List <LineItem>()
            };

            foreach (var item in items)
            {
                vm.Items.Add(await item.Unwrap <LineItem>());
            }

            return(vm);
        }
        //Create Po
        public ActionResult redirectToSo(int id)
        {
            var soCreation = _capitaContext.FinishedGoods.Where(c => c.StockType.Trim() == "Self").ToList();
            var User       = _capitaContext.CustomerMasters.SingleOrDefault(v => v.S_No == id);

            if (User == null)
            {
                return(HttpNotFound());
            }

            var salesVM = new SalesOrderVM
            {
                customers = User,
                fgGoods   = soCreation
            };

            return(View("Index", salesVM));
        }