public ActionResult Purchases()
        {
            ViewBag.vendors   = db.Vendors.ToList();
            ViewBag.products  = db.Products.ToList();
            ViewBag.purchases = db.Purchases.ToList();
            ViewBag.accounts  = db.ExpenseAccounts.Where(r => r.isGroup == false && r.isActive == true && r.accountType == "Assets" && r.name == "Cash").ToList();
            purchaseViewModel pvm = new purchaseViewModel();

            pvm.purchases = new Purchase();
            var maxId = db.Purchases.ToList().OrderByDescending(r => r.purchaseId).FirstOrDefault();

            pvm.purchases.purchaseId   = maxId == null ? 1 : (maxId.purchaseId) + 1;
            pvm.purchases.purchaseDate = DateTime.Now.Date;
            return(View(pvm));
        }
Esempio n. 2
0
        public purchaseViewModel LoadPurchaseSubFormPurchaseItems(long id)
        {
            purchaseViewModel purchaseViewModel = new purchaseViewModel();

            //Get the specific Purchase info...
            purchaseViewModel.purchase = FindById(id);
            purchaseViewModel.purchase.ListPurchaseTypes = repositoryPurchaseType.GetAllPurchaseTypes();
            purchaseViewModel.SelectedPurchaseTypeID     = purchaseViewModel.purchase.PurchaseTypeID;

            //and get then all PurchaseItems.
            purchaseViewModel.purchaseItems = repositoryPurchaseItem.GetAllPurchaseItemsPerPurchase(id);


            return(purchaseViewModel);
        }
Esempio n. 3
0
        public IActionResult Edit(long?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            purchaseViewModel purchase = service.LoadPurchaseSubFormPurchaseItems(id.Value);

            if (purchase == null)
            {
                return(NotFound());
            }
            ViewData["SupplierID"] = new List <SelectListItem>(service.GetSelectListSuppliers());
            return(View(purchase));
        }
        public ActionResult Edit(int?id)
        {
            ViewBag.vendors   = db.Vendors.ToList();
            ViewBag.products  = db.Products.ToList();
            ViewBag.purchases = db.Purchases.ToList();
            ViewBag.accounts  = db.ExpenseAccounts.Where(r => (r.isGroup == false) && (r.isActive == true) && (r.accountType == "Assets") && (r.name == "Cash")).ToList();
            purchaseViewModel pu = new purchaseViewModel();

            pu.purchases = new Purchase();
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var p = db.Purchases.Find(id);

            pu.purchases = p;
            if (pu == null)
            {
                return(HttpNotFound());
            }
            return(View("Purchases", pu));
        }
        public ActionResult voucher(purchaseViewModel pvm)
        {
            Voucher vo  = new Voucher();
            var     max = db.Vouchers.ToList().OrderByDescending(r => r.voucherNo).FirstOrDefault();

            vo.voucherNo   = max == null ? 1 : (max.voucherNo) + 1;
            vo.voucherDate = pvm.purchaseDate;
            vo.voucherType = 10; //Purchase Voucher
            db.Vouchers.Add(vo);
            db.SaveChanges();
            Purchase purchase = new Purchase();

            purchase.purchaseId   = pvm.purchaseId;
            purchase.purchaseDate = pvm.purchaseDate;
            purchase.vendorCode   = pvm.vendorCode;
            purchase.vendorName   = pvm.vendorName;
            purchase.purVoucherNo = vo.voucherNo;
            db.Purchases.Add(purchase);
            decimal cr = 0;

            foreach (var item in pvm.purchaseDetails)
            {
                PurchaseDetail pd = new PurchaseDetail();
                pd.serialNo = db.Purchases.Sum(r => r.purchaseId).ToString();
                Product uom = db.Products.Single(s => s.productCode == item.productCode);
                if (uom != null)
                {
                    uom.currentQuantity  += item.quantity;
                    uom.averagePrice      = uom.averagePrice + item.purchasePrice / 2;
                    uom.lastPurchasePrice = item.purchasePrice;
                    uom.price             = item.purchasePrice;
                }
                pd.purchaseDetailsId = pvm.purchaseId;
                pd.productCode       = item.productCode;
                pd.productName       = item.productName;
                pd.unitOfMeasure     = item.unitOfMeasure;
                pd.quantity          = item.quantity;
                pd.purchasePrice     = item.purchasePrice;
                pd.amount            = item.amount;
                db.PurchaseDetails.Add(pd);
                db.SaveChanges();
                VoucherBody    vbdp = new VoucherBody();
                ExpenseAccount ex   = new ExpenseAccount();
                ex               = db.ExpenseAccounts.Single(r => r.code == uom.chartOfAccCode);
                vbdp.accountNo   = ex.code;
                vbdp.accountName = ex.name;
                vbdp.debit       = item.amount;
                vbdp.credit      = 0;
                vbdp.description = "Item Purchased";
                vbdp.voucherNo   = vo.voucherNo;
                db.VoucherBodies.Add(vbdp);
                db.SaveChanges();
                cr += item.amount;
            }
            VoucherBody vbcp = new VoucherBody();
            var         ven  = db.Vendors.SingleOrDefault(r => r.vendorCode == pvm.vendorCode);
            var         ea   = db.ExpenseAccounts.Single(r => r.code == ven.chartOfAccCode);

            vbcp.accountNo   = ea.code;
            vbcp.accountName = ea.name;
            vbcp.credit      = cr;
            vbcp.debit       = 0;
            vbcp.description = "Item Purchased";
            vbcp.voucherNo   = vo.voucherNo;
            db.VoucherBodies.Add(vbcp);
            db.SaveChanges();
            if (pvm.transactionType == 1)
            {
                Voucher v       = new Voucher();
                var     maximum = db.Vouchers.ToList().OrderByDescending(r => r.voucherNo).FirstOrDefault();
                v.voucherNo   = max == null ? 1 : (maximum.voucherNo) + 1;
                v.voucherDate = pvm.purchaseDate;
                v.voucherType = 1; //Cash Payment
                db.Vouchers.Add(v);
                db.SaveChanges();
                VoucherBody vbd    = new VoucherBody();
                var         vender = db.Vendors.SingleOrDefault(r => r.vendorCode == pvm.vendorCode);
                var         exv    = db.ExpenseAccounts.Single(r => r.code == vender.chartOfAccCode);
                vbd.accountNo   = exv.code;
                vbd.accountName = exv.name;
                vbd.credit      = 0;
                vbd.debit       = pvm.netPayment;
                vbd.description = "Cash Payment";
                vbd.voucherNo   = v.voucherNo;
                db.VoucherBodies.Add(vbd);
                db.SaveChanges();
                VoucherBody    vbc = new VoucherBody();
                ExpenseAccount exp = db.ExpenseAccounts.Single(r => r.code == pvm.accountno);
                vbc.accountNo   = exp.code;
                vbc.accountName = exp.name;
                vbc.debit       = 0;
                vbc.credit      = pvm.netPayment;
                vbc.description = "Paid";
                vbc.voucherNo   = v.voucherNo;
                db.VoucherBodies.Add(vbc);
                db.SaveChanges();
            }
            return(Json(""));
        }
Esempio n. 6
0
        public IActionResult Edit(long id, bool?goToPurchaseItem, bool?hasHardware, bool?hasSoftware, purchaseViewModel purchaseViewModel, [Bind("PurchaseID,Type,IsPurchase,IsProcurement,SupplierID,No,Date")] Purchase purchase)
        {
            if (id != purchase.PurchaseID)
            {
                return(NotFound());
            }

            //Data comes back from the view via purchaseViewModel but need to be saved to purchase,

            //so, a) we need to actualised the PurchaseTypeID in purchase and ...
            purchase.PurchaseTypeID = purchaseViewModel.SelectedPurchaseTypeID;


            // ... b) we need to switch the ModelState.
            ModelState.Clear();
            TryValidateModel(purchase);

            if (ModelState.IsValid)
            {
                try
                {
                    service.Update(purchase);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PurchaseExists(purchase.PurchaseID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                if (goToPurchaseItem == true)
                {
                    return(RedirectToAction("Create", "PurchaseItem", new { purchaseID = purchase.PurchaseID, hasHardware, hasSoftware }));
                }
                else
                {
                    return(RedirectToAction(nameof(Index)));
                }
            }
            ViewData["SupplierID"] = new List <SelectListItem>(service.GetSelectListSuppliers());
            return(View(purchase));
        }