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)); }
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); }
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("")); }
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)); }