private void CheckForOutstandingItem(int quantityCollected, DisbursementListDetail dListDetails, string remarks) { string departmentId; using (SA45Team12AD ctx = new SA45Team12AD()) { departmentId = ctx.DisbursementLists.Where(x => x.DisbursementID == dListDetails.DisbursementID).Select(x => x.DepartmentID).FirstOrDefault(); } if (quantityCollected < dListDetails.ActualQuantity) { int Reqid = CreateSystemStationeryRequest(DateTime.Now.Date, departmentId, ("DisbursementLogic for: DL" + dListDetails.DisbursementID.ToString("0000"))); CreateStationeryRequestDetails(Reqid, dListDetails.ItemID, (int)dListDetails.ActualQuantity - quantityCollected); } }
public bool UpdateDisbursementListDetails(int id, int quantityCollected, string remarks) { bool success = false; using (SA45Team12AD ctx = new SA45Team12AD()) { DisbursementListDetail dListDetails = ctx.DisbursementListDetails.Where(x => x.ID == id).FirstOrDefault(); CheckForOutstandingItem(quantityCollected, dListDetails, remarks); dListDetails.QuantityCollected = quantityCollected; dListDetails.Remarks = remarks; ctx.SaveChanges(); success = true; } return(success); }
public void CreateDisbursementListDetails(int disbursementId, string itemId, int actualQuantity, int quantityRequested, int quantityCollected, string uom, string remarks) { DisbursementListDetail dListDetails = new DisbursementListDetail(); dListDetails.DisbursementID = disbursementId; dListDetails.ItemID = itemId; dListDetails.ActualQuantity = actualQuantity; dListDetails.QuantityRequested = quantityRequested; dListDetails.QuantityCollected = quantityCollected; dListDetails.UOM = uom; dListDetails.Remarks = remarks; using (SA45Team12AD ctx = new SA45Team12AD()) { ctx.DisbursementListDetails.Add(dListDetails); ctx.SaveChanges(); } }
protected void OnRowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow && ((DisbursementListDetail)e.Row.DataItem).ItemID != null) { DisbursementListDetail dLD = (DisbursementListDetail)e.Row.DataItem; string itemId = dLD.ItemID; string itemName = InventoryLogic.GetItemName(itemId); string uom = InventoryLogic.GetInventoryItem(itemId).UOM; Label LblDesc = (e.Row.FindControl("LblDesc") as Label); if (LblDesc != null) { LblDesc.Text = itemName; } Label LblUom = (e.Row.FindControl("LblUom") as Label); if (LblUom != null) { LblUom.Text = uom; } } }
public ActionResult Edit(List <RForm> commitedRetrievalForm, 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) { List <string> departmentList = new List <string>(); int outstandingListCount = db.OutstandingLists.Count(); //update retrieval form status to "Submitted" StationeryRetrievalForm existingStationeryRetrievalForm = db.StationeryRetrievalForms.Find(commitedRetrievalForm[0].stationeryRetrievalFormDetail.FormNumber); existingStationeryRetrievalForm.Status = "Submitted"; foreach (RForm commitedFormDetail in commitedRetrievalForm) { //Update actual values into retrieval form details StationeryRetrievalFormDetail existingStationeryRetrievalFormDetail = db.StationeryRetrievalFormDetails.Find(commitedFormDetail.stationeryRetrievalFormDetail.FormDetailsNumber); existingStationeryRetrievalFormDetail.Actual = commitedFormDetail.stationeryRetrievalFormDetail.Actual; //update stationery catalog StationeryCatalog existingCatalog = db.StationeryCatalogs.Find(commitedFormDetail.stationeryRetrievalFormDetail.ItemNumber); existingCatalog.Balance -= commitedFormDetail.stationeryRetrievalFormDetail.Actual; //add the department code to our department list created above, to generate disbursement list by department below if (!departmentList.Contains(commitedFormDetail.stationeryRetrievalFormDetail.DepartmentCode)) { departmentList.Add(commitedFormDetail.stationeryRetrievalFormDetail.DepartmentCode); } //If insufficient inventory, generate a outstanding list object for each retrieval form detail if (commitedFormDetail.stationeryRetrievalFormDetail.Needed > commitedFormDetail.stationeryRetrievalFormDetail.Actual) { outstandingListCount++; OutstandingList outstandingItem = new OutstandingList { OutstandingListNumber = outstandingListCount.ToString(), RetrievalFormDetailsNumber = commitedFormDetail.stationeryRetrievalFormDetail.FormDetailsNumber, Status = "Outstanding" }; db.OutstandingLists.Add(outstandingItem); } db.SaveChanges(); } //create a single disbursement list for each department foreach (string deptCode in departmentList) { DisbursementList dl = new DisbursementList { ListNumber = (db.DisbursementLists.Count() + 1).ToString(), DepartmentCode = deptCode, Date = DateTime.Today, Status = "Pending" }; db.DisbursementLists.Add(dl); db.SaveChanges(); DepartmentList dept = db.DepartmentLists.Where(x => x.DepartmentCode == deptCode).FirstOrDefault(); string Eid = dept.RepresentativeId; Employee repo = db.Employees.Find(Eid); string emailAddress = repo.EmailAddress; string pointId = dept.CollectionPoint; CollectionPoint point = db.CollectionPoints.Find(pointId); string subject = "Your items are ready for collection"; string message = "<p>Dear " + repo.UserName + "." + "</p><br/><p>Your items are ready for collection</p><br/><p>Collection point and time: " + point.CollectionPointName + "---" + point.CollectionTime + "</p><br/><p>Stationery Management Team</p>"; util.SendEmail(emailAddress, subject, message); int disbursementListDetailsCount = db.DisbursementListDetails.Count(); foreach (RForm commitedFormDetail in commitedRetrievalForm) { if (commitedFormDetail.stationeryRetrievalFormDetail.DepartmentCode.Equals(deptCode)) { disbursementListDetailsCount++; DisbursementListDetail dld = new DisbursementListDetail { ListDetailsNumber = disbursementListDetailsCount.ToString(), ListNumber = dl.ListNumber, ItemNumber = commitedFormDetail.stationeryRetrievalFormDetail.ItemNumber, Quantity = commitedFormDetail.stationeryRetrievalFormDetail.Actual }; db.DisbursementListDetails.Add(dld); db.SaveChanges(); } } } return(RedirectToAction("Index", "StationeryRetrievalForms", 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; return(View(commitedRetrievalForm)); } 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; return(View(commitedRetrievalForm)); } 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; return(View(commitedRetrievalForm)); } else { return(RedirectToAction("Login", "Login")); } }
public JsonResult PostRetrieval(Retrieval Details) { List <RetrievalItem> cc = JsonConvert.DeserializeObject <List <RetrievalItem> >(Details.RetData[0]); if (ModelState.IsValid) { List <string> departmentList = new List <string>(); int outstandingListCount = db.OutstandingLists.Count(); //update retrieval form status to "Submitted" StationeryRetrievalForm existingStationeryRetrievalForm = db.StationeryRetrievalForms.Find(cc[0].FormNumber); existingStationeryRetrievalForm.Status = "Submitted"; foreach (RetrievalItem commitedFormDetail in cc) { //Update actual values into retrieval form details StationeryRetrievalFormDetail existingStationeryRetrievalFormDetail = db.StationeryRetrievalFormDetails.Find(commitedFormDetail.FormDetailsnumber); existingStationeryRetrievalFormDetail.Actual = Convert.ToInt32(commitedFormDetail.Actual); //update stationery catalog StationeryCatalog existingCatalog = db.StationeryCatalogs.Find(commitedFormDetail.ItemNumber); existingCatalog.Balance -= Convert.ToInt32(commitedFormDetail.Actual); //add the department code to our department list created above, to generate disbursement list by department below if (!departmentList.Contains(commitedFormDetail.Dept)) { departmentList.Add(commitedFormDetail.Dept); } //If insufficient inventory, add the item code to our item code list created above, so that we can generate a Outstanding List by item code if (Convert.ToInt32(commitedFormDetail.Needed) > Convert.ToInt32(commitedFormDetail.Actual)) { outstandingListCount++; OutstandingList outstandingItem = new OutstandingList { OutstandingListNumber = outstandingListCount.ToString(), RetrievalFormDetailsNumber = commitedFormDetail.FormDetailsnumber, Status = "Outstanding" }; db.OutstandingLists.Add(outstandingItem); } db.SaveChanges(); } //create a single disbursement list for each department foreach (string deptCode in departmentList) { DisbursementList dl = new DisbursementList { ListNumber = (db.DisbursementLists.Count() + 1).ToString(), DepartmentCode = deptCode, Date = DateTime.Today, Status = "Pending" }; db.DisbursementLists.Add(dl); db.SaveChanges(); DepartmentList dept = db.DepartmentLists.Where(x => x.DepartmentCode == deptCode).FirstOrDefault(); string Eid = dept.RepresentativeId; Employee repo = db.Employees.Find(Eid); string emailAddress = repo.EmailAddress; string pointId = dept.CollectionPoint; CollectionPoint point = db.CollectionPoints.Find(pointId); string subject = "Your items are ready for collection"; string message = "<p>Dear " + repo.UserName + "." + "</p><br/><p>Your items are ready for collection</p><br/><p>Collection point and time: " + point.CollectionPointName + "---" + point.CollectionTime + "</p><br/><p>Stationery Management Team</p>"; util.SendEmail(emailAddress, subject, message); int disbursementListDetailsCount = db.DisbursementListDetails.Count(); foreach (RetrievalItem commitedFormDetail in cc) { if (commitedFormDetail.Dept.Equals(deptCode)) { disbursementListDetailsCount++; DisbursementListDetail dld = new DisbursementListDetail { ListDetailsNumber = disbursementListDetailsCount.ToString(), ListNumber = dl.ListNumber, ItemNumber = commitedFormDetail.ItemNumber, Quantity = Convert.ToInt32(commitedFormDetail.Actual) }; db.DisbursementListDetails.Add(dld); db.SaveChanges(); } } } } return(Json(new { status = "success" })); }
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")); } }