Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
                }
            }
        }
Exemplo n.º 3
0
        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
                    }
                }
            }
        }