public ActionResult Disbursements(int id) { Disbursement d = DisbursementDao.GetDisbursement(id); ViewData["Disbursement"] = d; return(View("DeliveryDetail")); }
public ActionResult GetDeliveredDisbursementsMobile() { int departmentId = Convert.ToInt32(RouteData.Values["departmentId"]); int userId = Convert.ToInt32(RouteData.Values["userId"]); List <Disbursement> disbursements = DisbursementDao.GetDisbursementsByDepartmentAndMonth(userId, departmentId, DateTime.Now.Month, (int)DisbursementStatus.Delivered); List <object> disbursementList = new List <object>(); foreach (Disbursement d in disbursements) { List <object> dDetailsList = new List <object>(); foreach (var disbursementDetail in d.DisbursementDetails) { dDetailsList.Add(new { DisbursementDetailId = disbursementDetail.DisbursementDetailId, ItemName = disbursementDetail.Item.Description, ItemId = disbursementDetail.Item.ItemId, Quantity = disbursementDetail.Quantity }); } var temp = new { DepartmentName = d.Department.DepartmentName, DisbursementId = d.DisbursementId, DisbursementDetails = dDetailsList }; disbursementList.Add(temp); } return(Json(disbursementList, JsonRequestBehavior.AllowGet)); }
public ActionResult GetDeliveredDisbursementDetailByIdMobile(int disbursementId) { int departmentId = Convert.ToInt32(RouteData.Values["departmentId"]); Disbursement d = DisbursementDao.GetDeliveredDisbursementById(disbursementId); return(Json(d, JsonRequestBehavior.AllowGet)); }
public ActionResult DeliveriesMobile() { int userId = Convert.ToInt32(RouteData.Values["userId"]); List <Disbursement> retrievedList = DisbursementDao.GetPreparedDisbursementsForMobile(userId); List <object> disbursementList = new List <object>(); foreach (Disbursement d in retrievedList) { List <object> dDetailsList = new List <object>(); foreach (var disbursementDetail in d.DisbursementDetails) { dDetailsList.Add(new { DisbursementDetailId = disbursementDetail.DisbursementDetailId, ItemName = disbursementDetail.Item.Description, ItemId = disbursementDetail.Item.ItemId, Quantity = disbursementDetail.Quantity }); } var temp = new { DisbursementId = d.DisbursementId, Representative = d.Department.Representative.Name, DepartmentName = d.Department.DepartmentName, DisbursementDetails = dDetailsList }; disbursementList.Add(temp); } return(Json(disbursementList, JsonRequestBehavior.AllowGet)); }
public ActionResult Retrieval() { List <RetrievalItem> items = DisbursementDao.GetAllItemsForRetrieval(); ViewData["RetrievalItems"] = items; return(View()); }
public async static Task SendEmailForItemsPickUp() { var senderEmail = new MailAddress("*****@*****.**"); List <int> deptIds = await DisbursementDao.GetDepartmentIdWithPreparedDisbursement(); List <User> reps = UserDao.FindRepresentativeByDepartmentIds(deptIds); var smtp = new SmtpClient() { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(senderEmail.Address, "spottybottyhotty") }; foreach (var u in reps) { if (u.Email != null || u.Email != "") { var receiverEmail = new MailAddress(u.Email); var msg = new MailMessage(senderEmail, receiverEmail) { Subject = "Items Pick Up", Body = "The store side has prepared for disbursements. Please check it on items pick up tab." }; smtp.Send(msg); } } }
public ActionResult GetAllDisbursementByDepartment() { int departmentId = Convert.ToInt32(RouteData.Values["departmentId"]); List <Disbursement> disbursements = DisbursementDao.GetAllDisbursementsByDepartment(departmentId); ViewData["Disbursements"] = disbursements; return(View("DepartmentDisbursements")); }
public ActionResult ApprovedDisbursements(int disbursementId) { Disbursement d = DisbursementDao.GetDisbursementDetailById(disbursementId); ViewData["Disbursement"] = d; return(View("ApprovedDisbursementDetail")); }
public ActionResult GetDeliveredDisbursementDetailById(int disbursementId) { int departmentId = Convert.ToInt32(RouteData.Values["departmentId"]); Disbursement d = DisbursementDao.GetDeliveredDisbursementById(disbursementId); ViewData["Disbursement"] = d; return(View("DisbursementDetail")); }
public ActionResult Deliveries() { int userId = Convert.ToInt32(RouteData.Values["userId"]); List <Disbursement> disbursements = DisbursementDao.GetPreparedDisbursements(userId); ViewData["Disbursements"] = disbursements; return(View("Deliveries")); }
public ActionResult GetPreparedDisbursementsByDepartment() { int departmentId = Convert.ToInt32(RouteData.Values["departmentId"]); int userId = Convert.ToInt32(RouteData.Values["userId"]); List <Disbursement> disbursements = DisbursementDao.GetPreparedDisbursements(departmentId, userId); ViewData["Disbursements"] = disbursements; return(View("PickUpDisbursements")); }
public ActionResult GetDeliveredDisbursements() { int departmentId = Convert.ToInt32(RouteData.Values["departmentId"]); int userId = Convert.ToInt32(RouteData.Values["userId"]); List <Disbursement> disbursements = DisbursementDao.GetDisbursementsByDepartmentAndMonth(userId, departmentId, DateTime.Now.Month, (int)DisbursementStatus.Delivered); ViewData["Disbursements"] = disbursements; return(View("DeliveredDisbursements")); }
public ActionResult Disbursements(List <RetrievalItem> items) { List <AdjustmentDetail> adjustmentDetails = new List <AdjustmentDetail>(); bool valid = true; foreach (var i in items) { if (i.AllocatedQuantity > i.ActualQuantity) { AdjustmentDetail detail = new AdjustmentDetail() { Count = (i.StockQuantity - i.ActualQuantity), Item = new Item() { ItemId = i.ItemId } }; adjustmentDetails.Add(detail); } else if (i.AllocatedQuantity == i.ActualQuantity) { } else { valid = false; break; } } if (valid != false) { if (adjustmentDetails.Count > 0) { int userId = Convert.ToInt32(RouteData.Values["userId"]); User u = new User() { UserId = userId }; Adjustment ad = AdjustmentDao.InsertAdjustment(adjustmentDetails, u); AdjustmentDao.CalculateAdjustmentCost(ad); ItemDao.UpdateStockForAdjustment(adjustmentDetails); } DisbursementDao.GenerateDisbursements(items); Task.Run(() => EmailUtility.SendEmailForItemsPickUp()); return(RedirectToAction("Retrieval", "Stationery")); } else { return(RedirectToAction("Retrieval", "Stationery")); } }
public ActionResult GenerateInvoice(int requestedDepartmentId, int month) { try { Debug.WriteLine("Department Id is " + requestedDepartmentId); DisbursementDao.GenerateInvoiceByDepartmentAndMonth(requestedDepartmentId, month); return(RedirectToAction("GenerateInvoices")); } catch (Exception e) { return(RedirectToAction("GenerateInvoices")); } }
public ActionResult ReceiveItemsByDepartment(List <DisbursementDetail> details, int id) { Dictionary <int, DisbursementDetail> dDict = DisbursementDao.GetDisbursementDetailDictByDisbursementId(id); //generate adjustment if items are missing List <AdjustmentDetail> adjustmentDetails = new List <AdjustmentDetail>(); foreach (var d in details) { DisbursementDetail disDetail = dDict[d.DisbursementDetailId]; if (disDetail.Quantity != d.Quantity && d.Quantity < disDetail.Quantity) { AdjustmentDetail adDetail = new AdjustmentDetail() { Item = new Item() { ItemId = d.Item.ItemId }, Count = disDetail.Quantity - d.Quantity }; adjustmentDetails.Add(adDetail); } } if (adjustmentDetails.Count > 0) { int userId = Convert.ToInt32(RouteData.Values["userId"]); User u = new User() { UserId = userId }; Adjustment ad = AdjustmentDao.InsertAdjustment(adjustmentDetails, u); AdjustmentDao.CalculateAdjustmentCost(ad); } Disbursement dis = DisbursementDao.DeliverDisbursement(id, details); //need to update the request such as status, delivered Qty RequestDao.UpdateRequestById(dis.Request.RequestId); return(RedirectToAction("Deliveries")); }
public ActionResult GetDisbursementListWithMonth(int requestedDepartmentId, int month) { Debug.WriteLine("Department Id is " + requestedDepartmentId + " month is " + month); List <Disbursement> disbursements = DisbursementDao.GetDisbursementsByDepartmentAndMonth(requestedDepartmentId, month, (int)DisbursementStatus.Approved); List <object> data = new List <object>(); if (disbursements != null) { foreach (var d in disbursements) { data.Add(new { DisbursementId = d.DisbursementId, Total = d.DisbursementDetails.Sum(dd => dd.Item.Price * dd.Quantity) }); } } return(Json(new { results = data }, JsonRequestBehavior.AllowGet)); }
public ActionResult ApproveDisbursementById(int disbursementId) { int departmentId = Convert.ToInt32(RouteData.Values["departmentId"]); int userId = Convert.ToInt32(RouteData.Values["userId"]); Department d = new Department() { DepartmentId = departmentId }; User u = new User() { UserId = userId }; u.Department = d; DisbursementDao.ApproveDisubrsementById(u, disbursementId); return(RedirectToAction("GetDeliveredDisbursements")); }
public bool ProcessDisbursement(int disbId, string key, int receivedBy, List <Tuple <int, int> > itemQtys) { bool result = true; LogicUniStoreModel dbContext = new LogicUniStoreModel(); dbContext.Database.Connection.Open(); using (var txn = dbContext.Database.BeginTransaction()) { DisbursementDao disbDao = new DisbursementDao(dbContext); if (disbDao.ValidateDisbKey(disbId, key)) { disbDao.AcceptDisbursement(disbId, receivedBy); disbDao.UpdateDisbusedQuantity(disbId, itemQtys); } else { result = false; } txn.Commit(); } dbContext.Database.Connection.Close(); return(result); }
public ActionResult ReceivingMobile(List <DisbursementDetail> details) { int ddid = details[0].DisbursementDetailId; int id = DisbursementDao.GetDisbursementByDetailId(ddid).DisbursementId; Disbursement d = DisbursementDao.GetDisbursement(id); foreach (var item in d.DisbursementDetails) { foreach (var detail in details) { Console.WriteLine("Before: " + item.DisbursementDetailId + "----" + item.Quantity); if (detail.DisbursementDetailId == item.DisbursementDetailId) { item.Quantity = detail.Quantity; } Console.WriteLine("After: " + item.DisbursementDetailId + "----" + item.Quantity); } } ReceiveItemsByDepartment(d.DisbursementDetails, d.DisbursementId); return(Json(details, JsonRequestBehavior.AllowGet)); }
public ActionResult ReceiveItemsByDepartment(List <DisbursementDetail> details, int id) { Dictionary <int, DisbursementDetail> dDict = DisbursementDao.GetDisbursementDetailDictByDisbursementId(id); //generate adjustment if items are missing List <AdjustmentDetail> adjustmentDetails = new List <AdjustmentDetail>(); //if detail drop to 0 , it should be removed List <DisbursementDetail> disDetails = new List <DisbursementDetail>(); foreach (var d in details) { DisbursementDetail disDetail = dDict[d.DisbursementDetailId]; if (disDetail.Quantity != d.Quantity && d.Quantity < disDetail.Quantity) { AdjustmentDetail adDetail = new AdjustmentDetail() { Item = new Item() { ItemId = d.Item.ItemId }, Count = disDetail.Quantity - d.Quantity }; if (d.Quantity == 0) { disDetails.Add(disDetail); } adjustmentDetails.Add(adDetail); } } if (adjustmentDetails.Count > 0) { int userId = Convert.ToInt32(RouteData.Values["userId"]); User u = new User() { UserId = userId }; Adjustment ad = AdjustmentDao.InsertAdjustment(adjustmentDetails, u); AdjustmentDao.CalculateAdjustmentCost(ad); } Disbursement dis = DisbursementDao.GetDisbursement(id); int requestId = dis.Request.RequestId; dis = DisbursementDao.DeliverDisbursement(id, details); //remove disbursement detail with quantity of zero if (disDetails.Count > 0) { DisbursementDao.RemoveDisbursementDetails(disDetails); //details have been removed, need to remove disbursement if disbursement got no details //removedDisbursement = DisbursementDao.RemoveDisbursementWithoutDetails(id); } dis = DisbursementDao.GetDeliveredDisbursement(id); if (dis != null) { //need to update the request such as status, delivered Qty RequestDao.UpdateRequestById(requestId); } else { //if disbursement is removed, change disbursement status of request back to not prepared RequestDao.UpdateRequestDisbursementStatus(requestId); } return(RedirectToAction("Deliveries")); }
public ActionResult GetPriorityItemsForReOrder() { List <RequestDetail> unfulfilledRequestDetails = RequestDao.GetUnfulfilledRequestDetails(); //need to consider which requests are prepared but not delivered yet List <int> requestIdWithPreparedDisbursement = unfulfilledRequestDetails.Where(rd => rd.Request.DisbursementStatus == (int)RequestRetrievalStatus.Prepared) .Select(rd => rd.Request.RequestId).Distinct().ToList(); //get prepared disbursement details List <DisbursementDetail> disbursementDetails = DisbursementDao.GetPreparedDisbursementByRequestIds(requestIdWithPreparedDisbursement); //get prepared item id as key and prepared amount as value in dictionary Dictionary <int, int> preparedItemsDict = disbursementDetails.GroupBy(dd => dd.Item.ItemId) .ToDictionary(cl => cl.Key, cl => cl.Sum(dd => dd.Quantity)); //item id as key and required amount as dictionary value Dictionary <int, int> requiredItemDict = unfulfilledRequestDetails.GroupBy(rd => rd.Item.ItemId) .ToDictionary(cl => cl.Key, cl => cl.Sum(rd => (rd.Quantity - rd.DeliveredQuantity))); //get item key to pass as an argument to finding item instock info List <int> itemIds = requiredItemDict.Keys.ToList(); List <Item> currentStockItems = ItemDao.GetCurrentStockInfoByIds(itemIds); List <object> requiredItemsInfo = new List <object>(); foreach (var i in currentStockItems) { int unfulfilledAmount = requiredItemDict[i.ItemId]; if (i.Quantity == 0 || i.Quantity <= unfulfilledAmount) { int preparedAmount = 0; int requiredQty = 0; int suggestedQty = 0; if (preparedItemsDict.ContainsKey(i.ItemId)) { preparedAmount = preparedItemsDict[i.ItemId]; requiredQty = unfulfilledAmount; if (requiredQty == preparedAmount) { suggestedQty = 0; } else { suggestedQty = requiredQty - preparedAmount + 10; } } else { requiredQty = unfulfilledAmount - i.Quantity; if (requiredQty == 0) { suggestedQty = 0; } else { suggestedQty = requiredQty + 10; } } if (suggestedQty != 0) { var itemInfo = new { Description = i.Description, ItemId = i.ItemId, Category = i.Category, SuggestedQty = suggestedQty, UOM = i.UnitOfMeasure }; requiredItemsInfo.Add(itemInfo); } } } return(Json(requiredItemsInfo, JsonRequestBehavior.AllowGet)); }
public ActionResult RetrievalMobile() { List <RetrievalItem> items = DisbursementDao.GetAllItemsForRetrieval(); return(Json(items, JsonRequestBehavior.AllowGet)); }
public DisbursementController() { userDao = new UserDao(); disbDao = new DisbursementDao(); }