public static void CreateRequisition(List <Cart> carts, long empId) { List <long> reqs = RequisitionDAO.GetAllRequisitions(); Employee emp = new Employee(); emp.EmpId = empId; Requisition req = new Requisition(); long arg = reqs.Count == 0 ? 0 : reqs.Max(); req.ReqCode = string.Format(String.Format("#R{0:0000000000}", arg + 1)); req.DateOfRequest = DateTime.Now; req.Status = "Pending Approval"; req.Employee = emp; long reqId = RequisitionDAO.SaveRequisition(req); req.ReqId = reqId; List <RequisitionDetails> reqDetailsList = new List <RequisitionDetails>(); Inventory item = null; foreach (Cart c in carts) { item = new Inventory(); item.ItemId = c.Item.ItemId; RequisitionDetails reqDetail = new RequisitionDetails(); reqDetail.Requisition = req; reqDetail.Item = item; reqDetail.Quantity = c.Quantity; reqDetail.Balance = c.Quantity; reqDetailsList.Add(reqDetail); } RequisitionDetailsDAO.SaveRequisitionDetails(reqDetailsList); CartDAO.DeleteCarts(empId); }
public static void ReorderCart(int reqId, long empId) { List <RequisitionDetails> reqDetails = new List <RequisitionDetails>(); reqDetails = RequisitionDetailsDAO.GetRequisitionDetailsByReqId(reqId); foreach (RequisitionDetails r in reqDetails) { if (r.Item.Flag == 0) { SaveToCart(r.Item.ItemId, empId, r.Quantity); } } }
private void UpdateChargeBack(long listId) { /* Move the following code to RestRepresentativeController*/ ////Attention: DisbursementList can only disburse once, date for that list is not null ///*The following code is for ChargeBack table*/ ////By the time disburse item, calculate the amount of this list, update ChargeBack table DisbursementList disbursementList = DisbursementListService.GetDisbursementListByListId(listId); List <DisbursementListDetails> disbursementListDetails = DisbursementListDetailsDAO.ViewDetails(listId); foreach (DisbursementListDetails details in disbursementListDetails) { PriceList priceList = PriceListService.GetPriceListByItemId(details.Item.ItemId); double price = 0; if (priceList != null) { price = priceList.Supplier1UnitPrice; } double amount = price * details.Quantity; ChargeBackService.UpdateChargeBackData(amount, disbursementList); ///*The following code is for StockCard table*/ ////By the time disburse item, update StockCard table with itemId, deptId and date, souceType = 2 int balance = CatalogueService.GetCatalogueById(details.Item.ItemId).StockLevel - details.Quantity; StockCardService.CreateStockCardFromDisburse(details, disbursementList, balance); StockDAO.UpdateWithReduceInventoryStockById(details.Item.ItemId, details.Quantity); ////following code will update and close requisitions int disbursedAmount = details.Quantity; List <Requisition> requisitions = RequisitionDAO.GetOutstandingRequisitionsAndDetailsByDeptIdAndItemId(disbursementList.Department.DeptId, details.Item.ItemId, listId); //will get those status assigned/partially completed(assigned) foreach (var requisition in requisitions) { if (requisition.RequisitionDetail.Balance <= disbursedAmount) // if the balance is less than what was disbursed { RequisitionDetailsDAO.UpdateBalanceAmount(requisition.ReqId, details.Item.ItemId, 0); //change balance to 0 if (RequisitionDetailsDAO.GetRemainingRequisitionDetailsByReqId(requisition.ReqId).Count > 0) //will get those the remaining amounts !=0 if { RequisitionDAO.UpdateStatus(requisition.ReqId, "Partially Completed"); } else { RequisitionDAO.UpdateStatus(requisition.ReqId, "Completed"); } disbursedAmount -= requisition.RequisitionDetail.Balance; // minusing the balance from what was disbursed } else// when the balance amount is more than the remainder of the disbursed amount { RequisitionDetailsDAO.UpdateBalanceAmount(requisition.ReqId, details.Item.ItemId, disbursedAmount);// change balance to remainder of disbursed amount RequisitionDAO.UpdateStatus(requisition.ReqId, "Partially Completed"); break;//break out of for loop when disbursed amount become 0 } } } }