public ActionResult Edit([Bind(Include = "AdjustmentVoucherNumber,Status,Remarks,Date")] StockAdjustmentVoucher stockAdjustmentVoucher, string sessionId) { if (sessionId == null) { return(RedirectToAction("Login", "Login")); } StoreClerk storeclerk = db.StoreClerks.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreManager storeManager = db.StoreManagers.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreSupervisor storeSupervisor = db.StoreSupervisors.Where(p => p.SessionId == sessionId).FirstOrDefault(); if (storeclerk != null && ModelState.IsValid) { db.Entry(stockAdjustmentVoucher).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", "StockAdjustmentVouchers", new { sessionId = sessionId })); } else if (storeManager != null && ModelState.IsValid) { db.Entry(stockAdjustmentVoucher).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", "StockAdjustmentVouchers", new { sessionId = sessionId })); } else if (storeSupervisor != null && ModelState.IsValid) { db.Entry(stockAdjustmentVoucher).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", "StockAdjustmentVouchers", new { sessionId = sessionId })); } else { return(RedirectToAction("Login", "Login")); } }
public ActionResult AdjustRetrieval([Bind(Include = "Id,DateCreated")] StockAdjustmentVoucher stockAdjustmentVoucher, FormCollection form, string sessionId) { //stockAdjustmentVoucher = (StockAdjustmentVoucher)TempData["s"]; string VoucherId = Request.Form["Id"]; string DeptString = Request.Form["DeptString"]; string RequisitionDetailsString = Request.Form["RequisitionDetailsString"]; int count = int.Parse(Request.Form["count"]); sessionId = Request["sessionId"]; List <StockAdjustmentVoucherDetail> sList = db.StockAdjustmentVoucherDetails.Where(sd1 => sd1.StockAdjustmentVoucherId == VoucherId).ToList(); for (int i = 0; i < count; i++) { string itemcode = Request.Form["ItemCode[" + i + "]"]; int qtyadjusted = int.Parse(Request.Form["QuantityAdjusted[" + i + "]"]); string reason = Request.Form["StockAdjustmentVoucherDetails[" + i + "].Reason"]; if (sList.Any(a => a.ItemCode.Contains(itemcode))) { StockAdjustmentVoucherDetail s0 = sList.Find(b => b.ItemCode == itemcode); //s0.QuantityAdjusted = s0.QuantityAdjusted + qtyadjusted; s0.Reason = "RETRIEVAL: " + reason; } else { sList = AddVoucherDetailToVoucherDetailList(sList, itemcode, qtyadjusted, reason); } } AllocateAuthorizer(sList); ViewData["count"] = count; return(RedirectToAction("DisplayDisbursement", "Disbursements", new { RequisitionDetailsString = RequisitionDetailsString, DeptString = DeptString, sessionId = sessionId })); }
public ActionResult Create(List <StockAdjustmentVoucherDetail> savdlist, string sessionId) { if (sessionId == null) { return(RedirectToAction("Login", "Login")); } StoreClerk storeclerk = db.StoreClerks.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreManager storeManager = db.StoreManagers.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreSupervisor storeSupervisor = db.StoreSupervisors.Where(p => p.SessionId == sessionId).FirstOrDefault(); StockAdjustmentVoucher stockAdjustmentVoucher = new StockAdjustmentVoucher(); stockAdjustmentVoucher.AdjustmentVoucherNumber = (db.StockAdjustmentVouchers.Count() + 1).ToString(); stockAdjustmentVoucher.Status = "Pending"; stockAdjustmentVoucher.Date = DateTime.Today; stockAdjustmentVoucher.Remarks = "Store clerk"; db.StockAdjustmentVouchers.Add(stockAdjustmentVoucher); db.SaveChanges(); for (int i = 0; i < savdlist.Count; i++) { StockAdjustmentVoucherDetail savd = new StockAdjustmentVoucherDetail { AdjustmentDetailsNumber = savdlist[i].AdjustmentDetailsNumber, AdjustmentVoucherNumber = stockAdjustmentVoucher.AdjustmentVoucherNumber, ItemNumber = savdlist[i].ItemNumber, QuantityAdjusted = savdlist[i].QuantityAdjusted, Reason = savdlist[i].Reason }; db.StockAdjustmentVoucherDetails.Add(savd); db.SaveChanges(); } return(RedirectToAction("Index", "StockAdjustmentVouchers", new { sessionId = sessionId })); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Team10ADModel context = new Team10ADModel(); string id = (string)Session["AdjustVoucherId"]; int adjId = Convert.ToInt32(id); int storestaffid = (int)Session["clerkid"]; StoreStaff staff = RayBizLogic.GetStoreStaffById(storestaffid); dgvVoucherDetail.DataSource = RayBizLogic.AdjustmentVoucherDetailList(adjId); dgvVoucherDetail.DataBind(); StockAdjustmentVoucher voucher = context.StockAdjustmentVouchers.Where(v => v.VoucherID == adjId).First(); VouchderIdBox.Text = voucher.VoucherID.ToString(); DateTextBox.Text = voucher.DateIssue.ToString(); GenByTextBox.Text = voucher.StoreStaff.Name; if (staff.Title == "Supervisor" && voucher.Status == "Pending" && RayBizLogic.AdjustmentVoucherCost(adjId) <= 250) { AcknowledgeButton.Visible = true; } else if (staff.Title == "Manager" && voucher.Status == "Pending" && RayBizLogic.AdjustmentVoucherCost(adjId) > 250) { AcknowledgeButton.Visible = true; } } }
public JsonResult PostAdjustment(AdjList savdlist) { List <Info> aa = JsonConvert.DeserializeObject <List <Info> >(savdlist.Infos[0]); StockAdjustmentVoucher stockAdjustmentVoucher = new StockAdjustmentVoucher(); stockAdjustmentVoucher.AdjustmentVoucherNumber = (db.StockAdjustmentVouchers.Count() + 1).ToString(); stockAdjustmentVoucher.Status = "Pending"; stockAdjustmentVoucher.Date = DateTime.Today; stockAdjustmentVoucher.Remarks = "Store clerk"; int num = db.StockAdjustmentVoucherDetails.Count(); db.StockAdjustmentVouchers.Add(stockAdjustmentVoucher); db.SaveChanges(); for (int i = 0; i < aa.Count; i++) { int hh = num + 1 + i; StockAdjustmentVoucherDetail savd = new StockAdjustmentVoucherDetail { AdjustmentDetailsNumber = hh, AdjustmentVoucherNumber = stockAdjustmentVoucher.AdjustmentVoucherNumber, ItemNumber = aa[i].ItemNumber, QuantityAdjusted = Convert.ToInt32(aa[i].QuantityAdjusted), Reason = aa[i].Reason }; db.StockAdjustmentVoucherDetails.Add(savd); db.SaveChanges(); } return(Json(new { status = "Submited Successfully" })); }
// GET: StockAdjustmentVouchers/Create /* * Create prepares a voucher id (Auto incremented) * It prepares the form by giving the number of rows that match with the number of product types, with an additional buffer of 5. * An improvement could be done that allows the user to add the number of rows in the view. */ public ActionResult Create(string sessionId) { if (Sessions.IsValidSession(sessionId)) { ViewData["sessionId"] = sessionId; List <Products> ProductList = new List <Products>(db.Products); ProductList.Insert(0, new Products()); //5 is just an estimate on the extras int rows = db.Products.Count() + 5; StockAdjustmentVoucher s0 = new StockAdjustmentVoucher(); int id = db.StockAdjustmentVouchers.Count() + 1; s0.Id = "V" + id; s0.DateCreated = DateTime.Now; List <StockAdjustmentVoucherDetail> s0List = new List <StockAdjustmentVoucherDetail>(); for (int i = 0; i < rows; i++) { s0List.Add(new StockAdjustmentVoucherDetail()); } s0.StockAdjustmentVoucherDetails = s0List; ViewData["ProductList"] = ProductList; ViewData["StockAdjustmentVoucher_Default"] = s0; return(View(s0)); } else { return(RedirectToAction("Login", "Login")); } }
public ActionResult DeleteConfirmed(string id) { StockAdjustmentVoucher stockAdjustmentVoucher = db.StockAdjustmentVouchers.Find(id); db.StockAdjustmentVouchers.Remove(stockAdjustmentVoucher); db.SaveChanges(); return(RedirectToAction("Index")); }
public StockAdjustmentVoucher PrepareVoucher() { StockAdjustmentVoucher s = new StockAdjustmentVoucher(); int id = db.StockAdjustmentVouchers.Count() + 1; s.Id = "V" + id; s.DateCreated = DateTime.Now; return(s); }
public ActionResult Edit([Bind(Include = "Id,DateCreated")] StockAdjustmentVoucher stockAdjustmentVoucher) { if (ModelState.IsValid) { db.Entry(stockAdjustmentVoucher).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(stockAdjustmentVoucher)); }
public ActionResult Create([Bind(Include = "Id,DateCreated")] StockAdjustmentVoucher stockAdjustmentVoucher, FormCollection form, string sessionId) { if (Sessions.IsValidSession(sessionId)) { ViewData["sessionId"] = sessionId; if (ModelState.IsValid) { //A: //5 is just the buffer given in the Get int rows = db.Products.Count() + 5; List <StockAdjustmentVoucherDetail> s0List = new List <StockAdjustmentVoucherDetail>(); for (int i = 0; i < rows; i++) { if (form["StockAdjustmentVoucherDetails[" + i + "].ItemCode"] != "") { string itemcode = form["StockAdjustmentVoucherDetails[" + i + "].ItemCode"]; //B: if (s0List.Any(s => s.ItemCode.Contains(itemcode))) { StockAdjustmentVoucherDetail s0 = s0List.Find(s => s.ItemCode == itemcode); s0.QuantityAdjusted = s0.QuantityAdjusted + double.Parse(form["StockAdjustmentVoucherDetails[" + i + "].QuantityAdjusted"]); } else { StockAdjustmentVoucherDetail s0 = new StockAdjustmentVoucherDetail(); s0.ItemCode = itemcode; s0.QuantityAdjusted = double.Parse(form["StockAdjustmentVoucherDetails[" + i + "].QuantityAdjusted"]); s0.Reason = form["StockAdjustmentVoucherDetails[" + i + "].Reason"]; s0.Status = "Pending"; s0.Product = db.Products.Find(s0.ItemCode); s0List.Add(s0); } } } //C: stockAdjustmentVoucher.StockAdjustmentVoucherDetails = s0List; db.StockAdjustmentVouchers.Add(stockAdjustmentVoucher); db.SaveChanges(); //D: AllocateAuthorizer(stockAdjustmentVoucher); return(RedirectToAction("Index", new { sessionId = sessionId })); } return(View(stockAdjustmentVoucher)); } else { return(RedirectToAction("Login", "Login")); } }
protected void AcknowledgeButton_Click(object sender, EventArgs e) { Team10ADModel context = new Team10ADModel(); int voucherid = Convert.ToInt32(VouchderIdBox.Text); StockAdjustmentVoucher voucher = context.StockAdjustmentVouchers.Where(v => v.VoucherID == voucherid).First(); voucher.ApproverID = (int)Session["clerkid"]; voucher.DateApproved = DateTime.Now; voucher.Status = "Approved"; context.SaveChanges(); Response.Redirect("AdjustmentVoucherList.aspx"); }
// GET: StockAdjustmentVouchers/Details/5 public ActionResult Details(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } StockAdjustmentVoucher stockAdjustmentVoucher = db.StockAdjustmentVouchers.Find(id); if (stockAdjustmentVoucher == null) { return(HttpNotFound()); } return(View(stockAdjustmentVoucher)); }
public StockAdjustmentVoucher AllocateAuthorizer(StockAdjustmentVoucher stockAdjustmentVoucher) { List <StockAdjustmentVoucherDetail> sDetailList = stockAdjustmentVoucher.StockAdjustmentVoucherDetails; foreach (StockAdjustmentVoucherDetail d0 in sDetailList) { string itemcode = d0.ItemCode; Products prod = db.Products.FirstOrDefault(p => p.ItemCode == itemcode); d0.Product = prod; var sDetailsFromDb0 = from v in db.StockAdjustmentVoucherDetails where v.ItemCode == itemcode && v.Status == "Pending" select v; //added for retrieval var sDetailsFromDb = sDetailsFromDb0.Include(s => s.Product); //end retrieval List <StockAdjustmentVoucherDetail> sDetailListPerProduct = new List <StockAdjustmentVoucherDetail>(); foreach (var p in sDetailsFromDb) { sDetailListPerProduct.Add(p); } //Products p1 = db.Products.FirstOrDefault(s => s.ItemCode == itemcode); double totalQuantity = sDetailListPerProduct.Sum(x => x.QuantityAdjusted); double totalAdjustedCost = Math.Abs(totalQuantity * d0.Product.UnitPrice); foreach (StockAdjustmentVoucherDetail s in sDetailListPerProduct) { if (totalAdjustedCost < 250) { s.Approver = "Supervisor"; //db.Entry(s).State = EntityState.Modified; //db.SaveChanges(); } else { s.Approver = "Manager"; //db.Entry(s).State = EntityState.Modified; //db.SaveChanges(); } s.Balance = s.Product.Balance; s.ApproverRemarks = "NA"; db.Entry(stockAdjustmentVoucher).State = EntityState.Modified; db.SaveChanges(); } } return(stockAdjustmentVoucher); }
public ActionResult AdjustDisbursement([Bind(Include = "Id,DateCreated")] StockAdjustmentVoucher stockAdjustmentVoucher, FormCollection form, string sessionId) { if (sessionId == null) { sessionId = Request["sessionId"]; } int count = int.Parse(Request.Form["count"]); List <StockAdjustmentVoucherDetail> sList = new List <StockAdjustmentVoucherDetail>(); for (int i = 0; i < count; i++) { string itemcode = Request.Form["ItemCode[" + i + "]"]; int qtyadjusted = int.Parse(Request.Form["QuantityAdjusted[" + i + "]"]); string reason = Request.Form["StockAdjustmentVoucherDetails[" + i + "].Reason"]; if (sList.Any(a => a.ItemCode.Contains(itemcode))) { StockAdjustmentVoucherDetail s0 = sList.Find(b => b.ItemCode == itemcode); s0.QuantityAdjusted = s0.QuantityAdjusted + qtyadjusted; } else { StockAdjustmentVoucherDetail s0 = new StockAdjustmentVoucherDetail(); s0.ItemCode = itemcode; s0.QuantityAdjusted = qtyadjusted; s0.Reason = "DISBURSEMENT: " + reason; s0.Status = "Pending"; s0.Product = db.Products.FirstOrDefault(o => o.Description == itemcode); sList.Add(s0); } } //C: stockAdjustmentVoucher.StockAdjustmentVoucherDetails = sList; db.StockAdjustmentVouchers.Add(stockAdjustmentVoucher); db.SaveChanges(); //D: StockAdjustmentVoucher s = new StockAdjustmentVoucher(); AllocateAuthorizer(stockAdjustmentVoucher); ViewData["count"] = count; return(RedirectToAction("Index", new { sessionId = sessionId })); }
//////Voucher public static void InsertVoucher(List <StockAdjustmentVoucherDetail> detailList, int storeStaffID) { using (Team10ADModel m = new Team10ADModel()) { StockAdjustmentVoucher voucher = new StockAdjustmentVoucher(); voucher.StoreStaffID = storeStaffID; voucher.DateIssue = DateTime.Now; voucher.Status = "Pending"; m.StockAdjustmentVouchers.Add(voucher); m.SaveChanges(); foreach (StockAdjustmentVoucherDetail detail in detailList) { detail.VoucherID = voucher.VoucherID; m.StockAdjustmentVoucherDetails.Add(detail); m.SaveChanges(); } } }
public ActionResult DeleteConfirmed(string id, string sessionId) { if (sessionId == null) { return(RedirectToAction("Login", "Login")); } StoreClerk storeclerk = db.StoreClerks.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreManager storeManager = db.StoreManagers.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreSupervisor storeSupervisor = db.StoreSupervisors.Where(p => p.SessionId == sessionId).FirstOrDefault(); StockAdjustmentVoucher stockAdjustmentVoucher = db.StockAdjustmentVouchers.Find(id); List <StockAdjustmentVoucherDetail> savd = db.StockAdjustmentVoucherDetails.ToList(); var toDelete = (from stockAdjustmentVoucherDetail in savd where stockAdjustmentVoucher.AdjustmentVoucherNumber == id select stockAdjustmentVoucherDetail).ToList(); foreach (StockAdjustmentVoucherDetail stockAdjustmentVoucherDetail in toDelete) { db.StockAdjustmentVoucherDetails.Remove(stockAdjustmentVoucherDetail); } db.StockAdjustmentVouchers.Remove(stockAdjustmentVoucher); db.SaveChanges(); if (storeclerk != null) { return(RedirectToAction("Index", "StockAdjustmentVouchers", new { sessionId = sessionId })); } else if (storeManager != null) { return(RedirectToAction("Index", "StockAdjustmentVouchers", new { sessionId = sessionId })); } else if (storeSupervisor != null) { return(RedirectToAction("Index", "StockAdjustmentVouchers", new { sessionId = sessionId })); } else { return(RedirectToAction("Login", "Login")); } }
// no need,can remove public ActionResult Delete(string id, string sessionId) { if (sessionId == null) { return(RedirectToAction("Login", "Login")); } StoreClerk storeclerk = db.StoreClerks.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreManager storeManager = db.StoreManagers.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreSupervisor storeSupervisor = db.StoreSupervisors.Where(p => p.SessionId == sessionId).FirstOrDefault(); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } StockAdjustmentVoucher stockAdjustmentVoucher = db.StockAdjustmentVouchers.Find(id); if (stockAdjustmentVoucher == null) { return(HttpNotFound()); } if (storeclerk != null) { int num = db.RequisitionForms.Where(x => x.Status == "Approved").Count(); int numDisbuserment = db.DisbursementLists.Where(x => x.Status == "Pending").Count(); int numOutS = db.OutstandingLists.Where(x => x.Status == "Awaiting Goods").Count(); int numRetrive = db.StationeryRetrievalForms.Where(x => x.Status == "Pending").Count(); int numPO = db.PurchaseOrders.Where(x => x.Status == "Not Submitted").Count(); int numStock = db.StockAdjustmentVouchers.Where(x => x.Status == "Pending").Count(); ViewData["sumTotal"] = (num + numDisbuserment + numOutS + numRetrive + numPO + numStock).ToString(); ViewData["sessionId"] = storeclerk.SessionId; ViewData["username"] = storeclerk.UserName; ViewData["tag"] = "storeclerk"; return(View(stockAdjustmentVoucher)); } else if (storeManager != null) { int num = db.RequisitionForms.Where(x => x.Status == "Approved").Count(); int numDisbuserment = db.DisbursementLists.Where(x => x.Status == "Pending").Count(); int numOutS = db.OutstandingLists.Where(x => x.Status == "Awaiting Goods").Count(); int numRetrive = db.StationeryRetrievalForms.Where(x => x.Status == "Pending").Count(); int numPO = db.PurchaseOrders.Where(x => x.Status == "Not Submitted").Count(); int numStock = db.StockAdjustmentVouchers.Where(x => x.Status == "Pending").Count(); ViewData["sumTotal"] = (num + numDisbuserment + numOutS + numRetrive + numPO + numStock).ToString(); ViewData["sessionId"] = storeManager.SessionId; ViewData["username"] = storeManager.UserName; ViewData["tag"] = "storeManager"; return(View(stockAdjustmentVoucher)); } else if (storeSupervisor != null) { int num = db.RequisitionForms.Where(x => x.Status == "Approved").Count(); int numDisbuserment = db.DisbursementLists.Where(x => x.Status == "Pending").Count(); int numOutS = db.OutstandingLists.Where(x => x.Status == "Awaiting Goods").Count(); int numRetrive = db.StationeryRetrievalForms.Where(x => x.Status == "Pending").Count(); int numPO = db.PurchaseOrders.Where(x => x.Status == "Not Submitted").Count(); int numStock = db.StockAdjustmentVouchers.Where(x => x.Status == "Pending").Count(); ViewData["sumTotal"] = (num + numDisbuserment + numOutS + numRetrive + numPO + numStock).ToString(); ViewData["sessionId"] = storeSupervisor.SessionId; ViewData["username"] = storeSupervisor.UserName; ViewData["tag"] = "storeSupervisor"; return(View(stockAdjustmentVoucher)); } else { return(RedirectToAction("Login", "Login")); } }
public ActionResult DisplayDisbursement(FormCollection form, string sessionId) { sessionId = Request["sessionId"]; if (Sessions.IsValidSession(sessionId)) { ViewData["sessionId"] = sessionId; string RequisitionDetailsString = Request.Form["RequisitionDetailsString"]; //create another submit button for the search department string if (Request.Form["SearchDept"] != null) { string deptname = Request.Form["SearchDeptName"]; return(RedirectToAction("DisplayDisbursement", new { RequisitionDetailsString = "All", DeptString = deptname, sessionId = sessionId })); } if (Request.Form["SearchCP"] != null) { string CPId = Request.Form["SearchCPId"]; List <Department> dListByCp = db.Departments.Where(d => d.CollectionLocationId == CPId).ToList(); string deptname = ""; foreach (Department d in dListByCp) { deptname = deptname + "," + d.DeptName; } return(RedirectToAction("DisplayDisbursement", new { RequisitionDetailsString = RequisitionDetailsString, DeptString = deptname, sessionId = sessionId })); } int count = int.Parse(Request.Form["count"]); string dept = Request.Form["DeptString"]; List <Department> dList = splitDString(dept); StockAdjustmentVoucher s = PrepareVoucher(); List <StockAdjustmentVoucherDetail> sList = new List <StockAdjustmentVoucherDetail>(); foreach (Department d in dList) { Disbursement disbursement = new Disbursement(); disbursement = PrepareAndIncludeAllDisbursement(disbursement, d); List <DisbursementDetail> ddList = new List <DisbursementDetail>(); for (int i = 0; i < count; i++) { string itemcode = Request.Form["Disbursement[" + i + "].itemcode"]; Products p = db.Products.FirstOrDefault(o => o.ItemCode == itemcode); int quantity = int.Parse(Request.Form["Disbursement[" + i + "].quantity"]); int collected = int.Parse(Request.Form["Disbursement[" + i + "].collected"]); if (quantity != collected) { //if any of the voucher in sList itemcode == itemcode if (sList.Any(sdv => sdv.ItemCode == itemcode)) { StockAdjustmentVoucherDetail sd1 = sList.FirstOrDefault(sdv1 => sdv1.ItemCode == itemcode); //sd1.QuantityAdjusted = sd1.QuantityAdjusted; } else { sList = AddVoucherDetailToVoucherDetailList(sList, itemcode, quantity - collected); } } ddList = AddDisbursementDetailToDDList(ddList, itemcode, quantity, collected); } if (ddList.Count() != 0) { disbursement.Status = RequisitionDetailsString; disbursement.DisbursementDetails = ddList; db.Disbursements.Add(disbursement); db.SaveChanges(); } s.StockAdjustmentVoucherDetails = sList; } if (sList.Count() != 0) { ViewData["s"] = s; ViewData["count"] = sList.Count(); ViewData["sessionId"] = sessionId; return(View("AdjustDisbursement", s)); } else { return(RedirectToAction("Index", "Disbursements", new { sessionId = sessionId })); } } else { return(RedirectToAction("Login", "Login")); } }
public ActionResult Details(StockAdjustmentVoucher sav, string Command, string sessionId) { if (sessionId == null) { return(RedirectToAction("Login", "Login")); } StoreClerk storeclerk = db.StoreClerks.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreManager storeManager = db.StoreManagers.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreSupervisor storeSupervisor = db.StoreSupervisors.Where(p => p.SessionId == sessionId).FirstOrDefault(); if (ModelState.IsValid) { if (Command == "Reject") { sav.Status = "Rejected"; } else if (Command == "Approve") { sav.Status = "Approved"; } StockAdjustmentVoucher stockAdjustmentVoucher = db.StockAdjustmentVouchers.Find(sav.AdjustmentVoucherNumber); stockAdjustmentVoucher.Status = sav.Status; db.SaveChanges(); return(RedirectToAction("Index", "StockAdjustmentVouchers", new { sessionId = sessionId })); } if (storeclerk != null) { int num = db.RequisitionForms.Where(x => x.Status == "Approved").Count(); int numDisbuserment = db.DisbursementLists.Where(x => x.Status == "Pending").Count(); int numOutS = db.OutstandingLists.Where(x => x.Status == "Awaiting Goods").Count(); int numRetrive = db.StationeryRetrievalForms.Where(x => x.Status == "Pending").Count(); int numPO = db.PurchaseOrders.Where(x => x.Status == "Not Submitted").Count(); int numStock = db.StockAdjustmentVouchers.Where(x => x.Status == "Pending").Count(); ViewData["sumTotal"] = (num + numDisbuserment + numOutS + numRetrive + numPO + numStock).ToString(); ViewData["sessionId"] = storeclerk.SessionId; ViewData["username"] = storeclerk.UserName; ViewData["tag"] = "storeclerk"; return(View(sav)); } else if (storeManager != null) { int num = db.RequisitionForms.Where(x => x.Status == "Approved").Count(); int numDisbuserment = db.DisbursementLists.Where(x => x.Status == "Pending").Count(); int numOutS = db.OutstandingLists.Where(x => x.Status == "Awaiting Goods").Count(); int numRetrive = db.StationeryRetrievalForms.Where(x => x.Status == "Pending").Count(); int numPO = db.PurchaseOrders.Where(x => x.Status == "Not Submitted").Count(); int numStock = db.StockAdjustmentVouchers.Where(x => x.Status == "Pending").Count(); ViewData["sumTotal"] = (num + numDisbuserment + numOutS + numRetrive + numPO + numStock).ToString(); ViewData["sessionId"] = storeManager.SessionId; ViewData["username"] = storeManager.UserName; ViewData["tag"] = "storeManager"; return(View(sav)); } else if (storeSupervisor != null) { int num = db.RequisitionForms.Where(x => x.Status == "Approved").Count(); int numDisbuserment = db.DisbursementLists.Where(x => x.Status == "Pending").Count(); int numOutS = db.OutstandingLists.Where(x => x.Status == "Awaiting Goods").Count(); int numRetrive = db.StationeryRetrievalForms.Where(x => x.Status == "Pending").Count(); int numPO = db.PurchaseOrders.Where(x => x.Status == "Not Submitted").Count(); int numStock = db.StockAdjustmentVouchers.Where(x => x.Status == "Pending").Count(); ViewData["sumTotal"] = (num + numDisbuserment + numOutS + numRetrive + numPO + numStock).ToString(); ViewData["sessionId"] = storeSupervisor.SessionId; ViewData["username"] = storeSupervisor.UserName; ViewData["tag"] = "storeSupervisor"; return(View(sav)); } else { return(RedirectToAction("Login", "Login")); } }
// GET: StockAdjustmentVouchers/Create public ActionResult Create(string sessionId) { if (sessionId == null) { return(RedirectToAction("Login", "Login")); } StoreClerk storeclerk = db.StoreClerks.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreManager storeManager = db.StoreManagers.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreSupervisor storeSupervisor = db.StoreSupervisors.Where(p => p.SessionId == sessionId).FirstOrDefault(); StockAdjustmentVoucher stockAdjustmentVoucher = new StockAdjustmentVoucher(); stockAdjustmentVoucher.AdjustmentVoucherNumber = (db.StockAdjustmentVouchers.Count() + 1).ToString(); stockAdjustmentVoucher.Status = "Pending"; stockAdjustmentVoucher.Date = DateTime.Today; stockAdjustmentVoucher.Remarks = "Store clerk"; ViewBag.voucher = stockAdjustmentVoucher; StockAdjustmentVoucherDetail savd = new StockAdjustmentVoucherDetail(); savd.AdjustmentVoucherNumber = stockAdjustmentVoucher.AdjustmentVoucherNumber; savd.AdjustmentDetailsNumber = (db.StockAdjustmentVoucherDetails.Count() + 1); List <StockAdjustmentVoucherDetail> savdList = new List <StockAdjustmentVoucherDetail>(); savdList.Add(savd); if (storeclerk != null) { int num = db.RequisitionForms.Where(x => x.Status == "Approved").Count(); int numDisbuserment = db.DisbursementLists.Where(x => x.Status == "Pending").Count(); int numOutS = db.OutstandingLists.Where(x => x.Status == "Awaiting Goods").Count(); int numRetrive = db.StationeryRetrievalForms.Where(x => x.Status == "Pending").Count(); int numPO = db.PurchaseOrders.Where(x => x.Status == "Not Submitted").Count(); int numStock = db.StockAdjustmentVouchers.Where(x => x.Status == "Pending").Count(); ViewData["sumTotal"] = (num + numDisbuserment + numOutS + numRetrive + numPO + numStock).ToString(); ViewData["sessionId"] = storeclerk.SessionId; ViewData["username"] = storeclerk.UserName; ViewData["tag"] = "storeclerk"; return(View(savdList)); } else if (storeManager != null) { int num = db.RequisitionForms.Where(x => x.Status == "Approved").Count(); int numDisbuserment = db.DisbursementLists.Where(x => x.Status == "Pending").Count(); int numOutS = db.OutstandingLists.Where(x => x.Status == "Awaiting Goods").Count(); int numRetrive = db.StationeryRetrievalForms.Where(x => x.Status == "Pending").Count(); int numPO = db.PurchaseOrders.Where(x => x.Status == "Not Submitted").Count(); int numStock = db.StockAdjustmentVouchers.Where(x => x.Status == "Pending").Count(); ViewData["sumTotal"] = (num + numDisbuserment + numOutS + numRetrive + numPO + numStock).ToString(); ViewData["sessionId"] = storeManager.SessionId; ViewData["username"] = storeManager.UserName; ViewData["tag"] = "storeManager"; return(View(savdList)); } else if (storeSupervisor != null) { int num = db.RequisitionForms.Where(x => x.Status == "Approved").Count(); int numDisbuserment = db.DisbursementLists.Where(x => x.Status == "Pending").Count(); int numOutS = db.OutstandingLists.Where(x => x.Status == "Awaiting Goods").Count(); int numRetrive = db.StationeryRetrievalForms.Where(x => x.Status == "Pending").Count(); int numPO = db.PurchaseOrders.Where(x => x.Status == "Not Submitted").Count(); int numStock = db.StockAdjustmentVouchers.Where(x => x.Status == "Pending").Count(); ViewData["sumTotal"] = (num + numDisbuserment + numOutS + numRetrive + numPO + numStock).ToString(); ViewData["sessionId"] = storeSupervisor.SessionId; ViewData["username"] = storeSupervisor.UserName; ViewData["tag"] = "storeSupervisor"; return(View(savdList)); } else { return(RedirectToAction("Login", "Login")); } }
public ActionResult Create(FormCollection form, string sessionId) { sessionId = Request["sessionId"]; if (Sessions.IsValidSession(sessionId)) { ViewData["sessionId"] = sessionId; int count = int.Parse(Request.Form["count"]); string DeptString = ""; List <Department> dStringList = new List <Department>(); StockAdjustmentVoucher s = PrepareVoucher(); Retrieval r = PrepareRetrieval(); List <RetrievalDetail> rdList = new List <RetrievalDetail>(); List <StockAdjustmentVoucherDetail> sList = new List <StockAdjustmentVoucherDetail>(); for (int i = 0; i < count; i++) { string itemdesc = Request.Form["ICR[" + i + "].product"]; Products p = db.Products.FirstOrDefault(o => o.Description == itemdesc); string itemcode = p.ItemCode; int retrievedqty = int.Parse(Request.Form["ICR[" + i + "].retrieved"]); int qtyininventory = int.Parse(Request.Form["ICR[" + i + "].qtyininventory"]); int TotalNeeded = int.Parse(Request.Form["ICR[" + i + "].TotalNeeded"]); string dept = Request.Form["ICR[" + i + "].Dept"]; List <Department> dList = splitString(dept); foreach (Department d in dList) { if (!dStringList.Any(d1 => d1 == d)) { dStringList.Add(d); } } List <RequisitionDetails> requisitiondetaillist = new List <RequisitionDetails>(); List <RequisitionDetails> requisitiondetaillist1 = db.RequisitionDetails.Where(a => a.ItemCode == itemcode).Where(b => b.Status != "Retrieved").Include(c => c.Requisition).ToList(); requisitiondetaillist = RetrieveRequisitionDetailsByDepartment(requisitiondetaillist, dList, requisitiondetaillist1); requisitiondetaillist = IncludeSaveAllRequisitionDetails(requisitiondetaillist); if (TotalNeeded != retrievedqty) { sList = AddVoucherDetailToVoucherDetailList(sList, itemcode, retrievedqty - TotalNeeded, null); requisitiondetaillist = requisitiondetaillist.Where(q => q.ItemCode == itemcode).OrderBy(w => w.Requisition.Date).ToList(); for (int j = 0; j < requisitiondetaillist.Count(); j++) { if (retrievedqty >= requisitiondetaillist[j].Quantity) { retrievedqty = retrievedqty - requisitiondetaillist[j].Quantity; } else { int newquantity = requisitiondetaillist[j].Quantity - retrievedqty; requisitiondetaillist[j].Quantity = retrievedqty; RequisitionDetails newRD = new RequisitionDetails(); newRD.Quantity = newquantity; newRD.ItemCode = itemcode; newRD.RequisitionId = requisitiondetaillist[j].RequisitionId; db.Entry(newRD).State = EntityState.Added; db.Entry(requisitiondetaillist[j]).State = EntityState.Modified; db.SaveChanges(); } } if (!db.StockAdjustmentVouchers.Any(s1 => s1.Id.Contains(s.Id))) { db.Entry(s).State = EntityState.Added; db.SaveChanges(); } rdList = AddRetrievalDetailToRdList(rdList, p.ItemCode, retrievedqty, TotalNeeded, s.Id); } else { rdList = AddRetrievalDetailToRdList(rdList, p.ItemCode, retrievedqty, TotalNeeded, null); } r = CreateRequisitionString(r, requisitiondetaillist); } s.StockAdjustmentVoucherDetails = sList; CheckRequisitionComplete(); foreach (Department dString in dStringList) { DeptString = DeptString + "," + dString.DeptName; } if (sList.Count() != 0) { r = SaveRetrieval(r, rdList); ViewData["s"] = s; ViewData["count"] = sList.Count(); ViewData["RequisitionDetailsString"] = r.RequisitionString; ViewData["DeptString"] = DeptString; return(View("AdjustRetrieval", s)); //TempData["s"] = s; //return RedirectToAction("AdjustRetrieval", "Retrievals",new { sessionId = sessionId }); } else { r = SaveRetrieval(r, rdList); string RequisitionDetailsString = r.RequisitionString; return(RedirectToAction("DisplayDisbursement", "Disbursements", new { RequisitionDetailsString = RequisitionDetailsString, DeptString = DeptString, sessionId = sessionId })); } } else { return(RedirectToAction("Login", "Login")); } }
public static int GenerateAdjustmentVoucherDetails(List <RetrievalDetail> suggested, List <RetrievalDetail> userinput, int clerkid) { using (Team10ADModel context = new Team10ADModel()) { //To be returned for redirecting to the correct adjustment detail int adjustmentVoucherId = 0; //Counter to check whether there is any item that need adjustment int needAdjustment = 0; //StockAdjustmentVoucher adjNew = new StockAdjustmentVoucher(); List <StockAdjustmentVoucherDetail> adjDetailList = new List <StockAdjustmentVoucherDetail>(); foreach (RetrievalDetail sDetail in suggested) { foreach (RetrievalDetail uDetail in userinput) { if (sDetail.ItemCode == uDetail.ItemCode) { //Check that there is a change in suggested quantity and that the balance is below the requested quantity //This is to give clerk the flexibility to still reduce the quantity and not trigger an adjustment if (sDetail.RetrievedQuantity < sDetail.RequestedQuantity && sDetail.RetrievedQuantity != uDetail.RetrievedQuantity) { needAdjustment++; if (needAdjustment == 1) { StockAdjustmentVoucher adj = new StockAdjustmentVoucher(); adj.StoreStaffID = clerkid; adj.DateIssue = DateTime.Now; adj.Status = "Pending"; context.StockAdjustmentVouchers.Add(adj); context.SaveChanges(); //adjNew = context.StockAdjustmentVouchers.OrderByDescending(x => x.VoucherID).First(); //adjustmentVoucherId = adjNew.VoucherID; adjustmentVoucherId = adj.VoucherID; } StockAdjustmentVoucherDetail adjDetail = new StockAdjustmentVoucherDetail(); adjDetail.VoucherID = adjustmentVoucherId; adjDetail.ItemCode = uDetail.ItemCode; adjDetail.QuantityAdjusted = -(uDetail.Catalogue.BalanceQuantity - uDetail.RetrievedQuantity); Catalogue item = context.Catalogues.Where(x => x.ItemCode == adjDetail.ItemCode).First(); item.BalanceQuantity -= (uDetail.Catalogue.BalanceQuantity - uDetail.RetrievedQuantity); adjDetail.QuantityAfter = item.BalanceQuantity; adjDetailList.Add(adjDetail); context.SaveChanges(); } } } } if (needAdjustment > 0) { foreach (StockAdjustmentVoucherDetail detail in adjDetailList) { context.StockAdjustmentVoucherDetails.Add(detail); context.SaveChanges(); } } StoreStaff supervisor = context.StoreStaffs.Where(x => x.Title == "Supervisor").First(); StoreStaff manager = context.StoreStaffs.Where(x => x.Title == "Manager").First(); if (adjustmentVoucherId > 0 && AdjustmentVoucherCost(adjustmentVoucherId) <= 250) { LogicUtility.Instance.SendAdjustmentEmail(adjustmentVoucherId, supervisor.StoreStaffID); } else if (adjustmentVoucherId > 0 && AdjustmentVoucherCost(adjustmentVoucherId) > 250) { LogicUtility.Instance.SendAdjustmentEmail(adjustmentVoucherId, manager.StoreStaffID); } return(adjustmentVoucherId); } }
public JsonResult PostDetails(Detail Details) { List <Infos> bb = JsonConvert.DeserializeObject <List <Infos> >(Details.Infos1[0]); DisbursementList disbursementList = db.DisbursementLists.Find(bb[0].ListId); int newNumer = db.StockAdjustmentVouchers.Count(); int length = bb.Count() + newNumer + 1; int newNumer2 = db.StockAdjustmentVoucherDetails.Count() + 1; bool flag = false; int countnotshow = 0; int recivedX; foreach (Infos item in bb) { DisbursementListDetail existing = db.DisbursementListDetails.Find(item.DetailId); existing.QuantityReceived = Convert.ToInt32(item.Actual); existing.Remarks = item.Remark; recivedX = Convert.ToInt32(existing.Quantity) - Convert.ToInt32(item.Actual); if (recivedX > 0) { flag = true; } if (Convert.ToInt32(item.Actual) == 0) { countnotshow++; } db.Entry(existing).State = EntityState.Modified; db.SaveChanges(); } if (flag) { StockAdjustmentVoucher stockAdjustment = new StockAdjustmentVoucher(); stockAdjustment.AdjustmentVoucherNumber = Convert.ToString(newNumer + 1); stockAdjustment.Status = "Pending"; stockAdjustment.Date = DateTime.Now; stockAdjustment.Remarks = "System Genarate"; adb.StockAdjustmentVouchers.Add(stockAdjustment); adb.SaveChanges(); } foreach (Infos item in bb) { DisbursementListDetail existing = db.DisbursementListDetails.Find(item.DetailId); existing.QuantityReceived = Convert.ToInt32(item.Actual); existing.Remarks = item.Remark; recivedX = Convert.ToInt32(existing.Quantity) - Convert.ToInt32(item.Actual); if (recivedX > 0) { StockAdjustmentVoucherDetail adjustmentVoucherDetail = new StockAdjustmentVoucherDetail(); adjustmentVoucherDetail.AdjustmentVoucherNumber = (newNumer + 1).ToString(); adjustmentVoucherDetail.AdjustmentDetailsNumber = newNumer2; newNumer2++; adjustmentVoucherDetail.QuantityAdjusted = recivedX; adjustmentVoucherDetail.ItemNumber = existing.ItemNumber; // remarks from where? adjustmentVoucherDetail.Reason = existing.Remarks; db.StockAdjustmentVoucherDetails.Add(adjustmentVoucherDetail); db.SaveChanges(); } } if (countnotshow == bb.Count()) { disbursementList.Status = "Cancelled"; db.Entry(disbursementList).State = EntityState.Modified; db.SaveChanges(); } else { disbursementList.Status = "Collected"; db.Entry(disbursementList).State = EntityState.Modified; db.SaveChanges(); } return(Json(new { status = "Submitted Successfully" })); }
public ActionResult Update(List <ViewModelDDetails> Details, string sessionId) { if (sessionId == null) { return(RedirectToAction("Login", "Login")); } StoreClerk storeclerk = db.StoreClerks.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreManager storeManager = db.StoreManagers.Where(p => p.SessionId == sessionId).FirstOrDefault(); StoreSupervisor storeSupervisor = db.StoreSupervisors.Where(p => p.SessionId == sessionId).FirstOrDefault(); DisbursementList disbursementList = db.DisbursementLists.Find(Details[0].disbursementList.ListNumber); int newNumer = db.StockAdjustmentVouchers.Count(); int length = Details.Count() + newNumer + 1; int newNumer2 = db.StockAdjustmentVoucherDetails.Count() + 1; bool flag = false; int countnotshow = 0; int recivedX; foreach (ViewModelDDetails item in Details) { DisbursementListDetail existing = db.DisbursementListDetails.Find(item.disbursementListDetail.ListDetailsNumber); if (item.disbursementListDetail.QuantityReceived < 0 || item.disbursementListDetail.QuantityReceived > existing.Quantity) { string errorMeg = "Error: " + "QuantityReceived cannot be LESS THAN 0 or GREATER THAN Quantity"; return(RedirectToAction("Details", "DisbursementListDetails", new { @sessionId = sessionId, @id = Details[0].disbursementList.ListNumber, @errorMeg = errorMeg })); } } foreach (ViewModelDDetails item in Details) { DisbursementListDetail existing = db.DisbursementListDetails.Find(item.disbursementListDetail.ListDetailsNumber); existing.QuantityReceived = item.disbursementListDetail.QuantityReceived; existing.Remarks = item.disbursementListDetail.Remarks; recivedX = Convert.ToInt32(existing.Quantity) - Convert.ToInt32(item.disbursementListDetail.QuantityReceived); if (recivedX > 0) { flag = true; } if (Convert.ToInt32(item.disbursementListDetail.QuantityReceived) == 0) { countnotshow++; } db.Entry(existing).State = EntityState.Modified; db.SaveChanges(); } if (flag) { StockAdjustmentVoucher stockAdjustment = new StockAdjustmentVoucher(); stockAdjustment.AdjustmentVoucherNumber = Convert.ToString(newNumer + 1); stockAdjustment.Status = "Pending"; stockAdjustment.Date = DateTime.Now; stockAdjustment.Remarks = "System Generate"; adb.StockAdjustmentVouchers.Add(stockAdjustment); adb.SaveChanges(); } foreach (ViewModelDDetails item in Details) { DisbursementListDetail existing = db.DisbursementListDetails.Find(item.disbursementListDetail.ListDetailsNumber); existing.QuantityReceived = item.disbursementListDetail.QuantityReceived; existing.Remarks = item.disbursementListDetail.Remarks; recivedX = Convert.ToInt32(existing.Quantity) - Convert.ToInt32(item.disbursementListDetail.QuantityReceived); if (recivedX > 0) { StockAdjustmentVoucherDetail adjustmentVoucherDetail = new StockAdjustmentVoucherDetail(); adjustmentVoucherDetail.AdjustmentVoucherNumber = (newNumer + 1).ToString(); adjustmentVoucherDetail.AdjustmentDetailsNumber = newNumer2; newNumer2++; adjustmentVoucherDetail.QuantityAdjusted = recivedX; adjustmentVoucherDetail.ItemNumber = existing.ItemNumber; // remarks from where? adjustmentVoucherDetail.Reason = existing.Remarks; db.StockAdjustmentVoucherDetails.Add(adjustmentVoucherDetail); db.SaveChanges(); } } if (countnotshow == Details.Count()) { disbursementList.Status = "Cancelled"; db.Entry(disbursementList).State = EntityState.Modified; db.SaveChanges(); } else { disbursementList.Status = "Collected"; db.Entry(disbursementList).State = EntityState.Modified; db.SaveChanges(); } if (storeclerk != null) { return(RedirectToAction("Index", "Home", new { @sessionId = sessionId, @tag = "storeclerk" })); } else if (storeManager != null) { return(RedirectToAction("Index", "StoreManagers", new { @sessionId = sessionId, @tag = "storeManager" })); } else if (storeSupervisor != null) { return(RedirectToAction("Index", "StoreSupervisors", new { @sessionId = sessionId, @tag = "storeSupervisor" })); } else { return(RedirectToAction("Login", "Login")); } }