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