public Purchase_Order_Record FindByOrderID(int orderID) { StationeryModel Entity = new StationeryModel(); Purchase_Order_Record por = Entity.Purchase_Order_Records.Where(x => x.orderNo == orderID).First(); return(por); }
public bool AddNewPurchaseOrder(Purchase_Order_Record purchase_order_record) { StationeryModel Entity = new StationeryModel(); Entity.Purchase_Order_Records.Add(purchase_order_record); Entity.SaveChanges(); return(true); }
public bool DeletePurchaseOrder(int orderID) { using (StationeryModel Entity = new StationeryModel()) { Purchase_Order_Record por = Entity.Purchase_Order_Records.Where(x => x.orderNo == orderID).First(); Entity.Purchase_Order_Records.Remove(por); Entity.SaveChanges(); return(true); } }
public ActionResult GeneratePO(int?page) { string loggedInUser = HttpContext.User.Identity.Name; int orderNo = findNextOrderNo(); List <Purchase_Detail> po = details.Keys.ToList <Purchase_Detail>(); details = (Dictionary <Purchase_Detail, string>)Session["detailsBundle"]; if (details == null) { TempData["ErrorMessage"] = "No PO to generate."; return(RedirectToAction("RaisePurchaseOrder")); } else { List <string> suppliers = details.Values.Distinct().ToList(); for (int i = 0; i < suppliers.Count; i++) { Purchase_Order_Record p = new Purchase_Order_Record(); p.clerkID = loggedInUser; p.date = DateTime.Now; p.orderNo = orderNo + i; p.status = "incomplete"; //the default starting status p.supplierCode = suppliers[i]; p.expectedDeliveryDate = DateTime.Now.AddDays(14); //HARD CODED currently pos.AddNewPurchaseOrder(p); foreach (KeyValuePair <Purchase_Detail, string> entry in details) { Purchase_Detail pd = entry.Key; string supplierCode = entry.Value; //find the orderNo matching supplier and create the purchase detail if (supplierCode == suppliers[i]) { pd.orderNo = orderNo + i; pos.AddPurchaseDetail(pd); } } } Session["detailsBundle"] = null; //clear the orderCart List <Purchase_Order_Record> model = pos.GetAllPurchaseOrder(); //return View("ListPurchaseOrders", model); int pageSize = 6; int pageNumber = (page ?? 1); return(View("ListPurchaseOrders", model.ToPagedList(pageNumber, pageSize))); } }
public int UpdatePurchaseOrderInfo(Purchase_Order_Record record) { using (StationeryModel Entity = new StationeryModel()) { Purchase_Order_Record por = (from x in Entity.Purchase_Order_Records where x.orderNo == record.orderNo select x).FirstOrDefault(); por.status = record.status; por.expectedDeliveryDate = record.expectedDeliveryDate; por.clerkID = record.clerkID; por.date = record.date; int rowAffected = Entity.SaveChanges(); return(rowAffected); } }
public ActionResult gen(string id) //id is purchase order number { int orderNo = Int32.Parse(id); Purchase_Order_Record por = pos.FindByOrderID(orderNo); Inventory_mvc.Models.User clerk = ctx.Users.Where(x => x.userID == por.clerkID).First(); Supplier s = ctx.Suppliers.Where(x => x.supplierCode == por.supplierCode).First(); ViewBag.orderNo = id; ViewBag.clerkID = por.clerkID; ViewBag.clerkName = clerk.name; ViewBag.supplier = s.supplierName; ViewBag.delivery = por.expectedDeliveryDate; List <Purchase_Detail> model = ctx.Purchase_Detail.Where(x => x.orderNo == orderNo).ToList(); return(View(model)); }
private ReportViewModel ConvertToReportViewModel(Purchase_Detail detail) { Stationery stationery = stationeryService.FindStationeryByItemCode(detail.itemCode); Purchase_Order_Record record = detail.Purchase_Order_Record; ReportViewModel vm = new ReportViewModel(); vm.CategoryName = stationery.Category.categoryName; vm.Cost = detail.price; vm.ItemCode = stationery.itemCode; vm.ItemDescription = stationery.description; vm.Month = record.date.Month; vm.OrderQuantity = detail.qty; vm.Status = record.status; vm.Supplier = record.supplierCode; vm.Year = record.date.Year; return(vm); }
//FormCollection form public ActionResult ListPurchaseOrders(string search, string searchBy, int?page) { ViewBag.Search = search; ViewBag.SearchBy = searchBy; List <Purchase_Order_Record> model = new List <Purchase_Order_Record>(); List <Purchase_Order_Record> searchResults = new List <Purchase_Order_Record>(); try { switch (searchBy) { case ("orderNo"): por = pos.FindByOrderID(Int32.Parse(search)); model.Add(por); break; case ("status"): searchResults = pos.FindByStatus(search); model.AddRange(searchResults); break; case ("supplier"): searchResults = pos.FindBySupplier(search); model.AddRange(searchResults); break; default: model = pos.GetAllPurchaseOrder(); break; } } catch { model = new List <Purchase_Order_Record>(); //return empty list if nothing can be found } int pageSize = 6; int pageNumber = (page ?? 1); return(View(model.ToPagedList(pageNumber, pageSize))); //return View(model); }
public ActionResult StockReceive(string searchPONumber) { List <Purchase_Detail> model = new List <Purchase_Detail>(); try { model = pos.GetPurchaseDetailsByOrderNo(Int32.Parse(searchPONumber)); Purchase_Order_Record por = pos.FindByOrderID(Int32.Parse(searchPONumber)); ViewBag.PONumber = searchPONumber; ViewBag.Supplier = ctx.Suppliers.Where(x => x.supplierCode == por.supplierCode).First().supplierName; } catch { TempData["searchError"] = "PO Number is required"; //return RedirectToAction("StockReceive"); } return(View(model)); }
public ActionResult GeneratePDF(string id) //id is purchase order number { int orderNo = Int32.Parse(id); Purchase_Order_Record por = pos.FindByOrderID(orderNo); Inventory_mvc.Models.User clerk = ctx.Users.Where(x => x.userID == por.clerkID).First(); Supplier s = ctx.Suppliers.Where(x => x.supplierCode == por.supplierCode).First(); ViewBag.orderNo = id; ViewBag.clerkID = por.clerkID; ViewBag.clerkName = clerk.name; ViewBag.supplier = s.supplierName; ViewBag.delivery = por.expectedDeliveryDate; List <Purchase_Detail> model = ctx.Purchase_Detail.Where(x => x.orderNo == orderNo).ToList(); string fileName = String.Format("{0}_PO_{1}.pdf", s.supplierCode, id); return(new ViewAsPdf("_GeneratePDF", model) { FileName = fileName }); }
public int UpdatePurchaseOrderInfo(Purchase_Order_Record purchase_order_record) { return(dao.UpdatePurchaseOrderInfo(purchase_order_record)); }
public bool AddNewPurchaseOrder(Purchase_Order_Record purchase_order_record) { return(dao.AddNewPurchaseOrder(purchase_order_record)); }
public ActionResult UpdateReceived(string DONumber, string ReceivedDate, string PONumber, string supplier, string sbutton) { string clerkID = HttpContext.User.Identity.Name; Purchase_Order_Record por = pos.FindByOrderID(Int32.Parse(PONumber)); int pdOutstanding = por.Purchase_Detail.Count; //update transaction records table Transaction_Record tr = new Transaction_Record(); int nextTransactionNo = findNextTransactionNo(); tr.transactionNo = nextTransactionNo; tr.clerkID = clerkID; tr.date = DateTime.Now; tr.type = "DO-" + DONumber; trs.AddNewTransactionRecord(tr); List <Purchase_Detail> model = pos.GetPurchaseDetailsByOrderNo(Int32.Parse(PONumber)); List <string> filledItems = new List <string>(); List <string> unfilledItems = new List <string>(); //total number of rows updated int totalItemsUpdated = 0; foreach (Purchase_Detail pd in model) { string ic = pd.itemCode; string received = Request.QueryString.GetValues("num-" + ic).First(); int receivedNum = Int32.Parse(received); //condition check if option for button" all received" if (sbutton == "Submit All") { if (pd.fulfilledQty == null) { pd.fulfilledQty = 0; } receivedNum = pd.qty - pd.fulfilledQty.Value; } if (receivedNum != 0) { string remarks = Request.QueryString.GetValues("rem-" + ic).First(); pd.fulfilledQty += receivedNum; pd.remarks = remarks; //delete? pd.deliveryOrderNo = DONumber; //update stationery table Stationery s = (from x in ctx.Stationeries where x.itemCode == ic select x).First(); s.stockQty += receivedNum; ctx.SaveChanges(); totalItemsUpdated++; //update number of rows updated //update transaction details table Transaction_Detail td = new Transaction_Detail(); td.itemCode = pd.itemCode; td.adjustedQty = receivedNum; td.balanceQty = s.stockQty + receivedNum; td.remarks = remarks; //delete? td.transactionNo = nextTransactionNo; AddNewTransactionDetail(td); //update purchase details table pos.UpdatePurchaseDetailsInfo(pd); pd.deliveryOrderNo = DONumber; //need to update this code once DB is altered //update purchase order record to partially fulfilled por.status = "partially fulfilled"; pos.UpdatePurchaseOrderInfo(por); if (pd.qty == pd.fulfilledQty) { pdOutstanding--; } } } if (totalItemsUpdated == 0) { TempData["Items updated"] = "No records saved"; } //check if all pd in por are fulfilled, and update por table if (pdOutstanding == 0) { por.status = "completed"; pos.UpdatePurchaseOrderInfo(por); } ViewBag.Supplier = supplier; ViewBag.PONumber = PONumber; return(View("StockReceive", model)); }