示例#1
0
        protected void btnNotCollected_Click(object sender, EventArgs e)
        {
            //return stock, update stock management, update DD
            foreach (DisbursementDetail dd in ddList)
            {
                Stationery stat = myBz.FindStationeryByItemCode(dd.ItemCode);
                stat.QuantityInStock += dd.QuantityReceived;
                myBz.UpdateStationery(stat);
                StockManagement sm = new StockManagement();
                sm.Date         = DateTime.Today;
                sm.ItemCode     = dd.ItemCode;
                sm.StoreClerkId = storeClerkId;
                sm.Source       = "DIS";
                sm.QtyAdjusted  = dd.QuantityReceived;
                sm.Balance      = stat.QuantityInStock;
                myBz.AddNewStockManagement(sm);

                dd.QuantityReceived = 0;
                myBz.UpdateDisbursementDetail(dd);
            }

            //update disbursement status
            currentDisb.Status = "Not Collected";
            myBz.UpdateDisbursement(currentDisb);
            DisplayForAllocated(false);
            Response.Redirect("~/Store/DisbursementDetails.aspx");
        }
示例#2
0
 public ItemOutputStockApp(IFactoryConnection efc)
 {
     _epr                      = new ItemOutputStockRepo(efc);
     _stockManagement          = new StockManagement(efc);
     _stockItemApp             = new StockItemApp(efc);
     _unitMeasureConversionApp = new UnitMeasureConversionApp(efc);
     Logs                      = new List <Log>();
 }
        //4
        public int SaveEachDisbursingDetail(int storeClerkId, int disbursementDetailId, int receivedQty, int SAVQty, string reason)
        {
            try
            {
                DisbursementDetail dd   = FindDisbursementDetailById(disbursementDetailId);
                Stationery         stat = FindStationeryByItemCode(dd.ItemCode);

                //check amount
                if (receivedQty - SAVQty != dd.QuantityReceived)
                {
                    //"Please make sure Quantity Received + Quantity to Raise SAV = Expected Received Quantity";
                    return(0);
                }

                if (receivedQty < dd.QuantityReceived)
                {
                    //add Stock Adjustment
                    if (SAVQty != 0)
                    {
                        StockAdjustment stkAdjustment = new StockAdjustment();
                        stkAdjustment.ItemCode         = dd.ItemCode;
                        stkAdjustment.QuantityAdjusted = SAVQty;
                        stkAdjustment.Reason           = reason;
                        stkAdjustment.DateCreated      = DateTime.Today;
                        stkAdjustment.ClerkEmployeeId  = storeClerkId;
                        stkAdjBz.AddAdjustment(stkAdjustment, "In Progress");
                    }

                    //update Stock
                    stat.QuantityInStock -= SAVQty;
                    UpdateStationery(stat);

                    //update Stock Management
                    StockManagement smNew = new StockManagement();
                    smNew.Date         = DateTime.Today;
                    smNew.ItemCode     = dd.ItemCode;
                    smNew.StoreClerkId = storeClerkId;
                    smNew.Source       = "DIS";
                    smNew.SourceId     = dd.DisbursementDetailsId;
                    smNew.QtyAdjusted  = -SAVQty;
                    smNew.Balance      = stat.QuantityInStock;
                    smNew.Date         = DateTime.Today;
                    AddNewStockManagement(smNew);

                    //save disbDets
                    dd.QuantityReceived = receivedQty;
                    dd.Remark           = SAVQty + " " + reason;
                    UpdateDisbursementDetail(dd);
                }
                return(1);
            }
            catch (Exception e)
            {
                return(0);
            }
        }
        public int UpdateStockManagement(StockManagement sm)
        {
            SSAEntities     context = new SSAEntities();
            StockManagement s       = context.StockManagements.Where(x => x.StockManagementId == sm.StockManagementId).First();

            s.Date         = sm.Date;
            s.StoreClerkId = sm.StoreClerkId;
            s.QtyAdjusted  = sm.QtyAdjusted;
            s.Balance      = sm.Balance;
            return(context.SaveChanges());
        }
示例#5
0
        private void button1_Click(object sender, EventArgs e)
        {
            String username = txtusername.Text;
            String password = txtpassword.Text;

            if (username == "c" && password == "c")
            {
                CustomerForm form = new CustomerForm();

                form.Show();
            }
            else if (username == "g" && password == "g")
            {
                GymManagementForm gymForm = new GymManagementForm();
                gymForm.Show();
            }
            else if (username == "i" && password == "i")
            {
                StockManagement gymForm = new StockManagement();
                gymForm.Show();
            }
            else if (username == "k" && password == "k")
            {
                KMS gymForm = new KMS();
                gymForm.Show();
            }
            else if (username == "h" && password == "h")
            {
                HRS_MAIN hallMain = new HRS_MAIN();
                hallMain.Show();
            }
            else if (username == "e" && password == "e")
            {
                EmployeeMangementSystem ems = new EmployeeMangementSystem();
                ems.Show();
            }
            else if (username == "s" && password == "s")
            {
                spaForm spa = new spaForm();
                spa.Show();
            }
            else if (username == "f" && password == "f")
            {
                FinanceForm finance = new FinanceForm();
                finance.Show();
            }
            else if (username == "cat" && password == "cat")
            {
                ThemeMenu themenu = new ThemeMenu();
                themenu.Show();
            }
        }
        public int AddStockManagement(StockManagement sm)
        {
            SSAEntities context = new SSAEntities();

            try
            {
                context.StockManagements.Add(sm);
                return(context.SaveChanges());
            }
            catch (Exception e)
            {
                return(0);
            }
        }
        protected void btnReceive_Click(object sender, EventArgs e)
        {
            if (orderDetailslist.Count > 0)
            {
                Order o1 = new Order();
                o1 = ios.FindOrderById(poNumber);
                if (o1.Status != "Delivered")
                {
                    int p = o1.PoNumber;
                    o1.DateDelivery = DateTime.Today;
                    o1.Status       = "Delivered";
                    ios.UpdateOrder(o1);
                    for (int i = 0; i < orderDetailslist.Count(); i++)
                    {
                        Stationery      s0  = new Stationery();
                        StockManagement sm0 = new StockManagement();
                        s0 = iss.FindStationeryById(orderDetailslist.ElementAt(i).ItemCode);
                        s0.QuantityInStock = s0.QuantityInStock + orderDetailslist.ElementAt(i).Quantity;

                        sm0.Date         = DateTime.Today;
                        sm0.ItemCode     = orderDetailslist.ElementAt(i).ItemCode;
                        sm0.StoreClerkId = (int)Session["employeeId"];
                        sm0.Source       = "ORD";
                        sm0.SourceId     = p;
                        sm0.QtyAdjusted  = orderDetailslist.ElementAt(i).Quantity;
                        sm0.Balance      = s0.QuantityInStock;
                        ism.AddStockManagement(sm0);

                        iss.UpdateStationery(s0);
                        Iod.UpdateOrderDetail(orderDetailslist.ElementAt(i));
                    }
                }
                else
                {
                    for (int i = 0; i < orderDetailslist.Count(); i++)
                    {
                        Iod.UpdateOrderDetail(orderDetailslist.ElementAt(i));
                    }
                }
                Response.Redirect("~/Store/RaisePurchaseOrder_OrderList.aspx");
            }
            else
            {
                Response.Write("<script>alert('No item to receive!');</script>");
                Response.Write("<script language=javascript>history.go(-1);</script>");
            }
        }
示例#8
0
        public void ApproveAdjustmentList(List <int> listAdjustmentId, string remarks, int approvedByEmployeeId)
        {
            // Generate voucherNumber
            int newVoucherNumber = saService.FindLastVoucherNumber() + 1;

            foreach (int id in listAdjustmentId)
            {
                // 1. ADJUSTMENT
                StockAdjustment s = saService.FindAdjustmentById(id); // Associated adjustment object

                // Check if negative adjustments exceeded stock quantity
                // Modify adjusted quantity and add remarks for user
                int currentQty = FindCurrentQuantityByItemCode(s.ItemCode);

                if ((currentQty + s.QuantityAdjusted) < 0)
                {
                    s.QuantityAdjusted = -currentQty;
                    remarks           += "SYSTEM GENERATED-As user input negative adjustment exceeded " +
                                         "current quantity, adjusted quantity has been modified to reduce current quantity to zero.";
                }

                s.ApproverRemarks      = remarks;
                s.DateApproved         = DateTime.Today;
                s.ApprovedByEmployeeId = approvedByEmployeeId;
                s.VoucherNumber        = newVoucherNumber;

                // 2. STATIONERY
                Stationery sta = stService.FindStationeryById(s.ItemCode);
                sta.QuantityInStock += s.QuantityAdjusted;

                // 3. STOCK MANAGEMENT
                StockManagement smt = new StockManagement();
                smt.Date         = (DateTime)s.DateApproved;
                smt.ItemCode     = s.ItemCode;
                smt.StoreClerkId = s.ClerkEmployeeId;
                smt.Source       = "ADJ";
                smt.SourceId     = s.AdjustmentId;
                smt.QtyAdjusted  = s.QuantityAdjusted;
                smt.Balance      = sta.QuantityInStock;

                // 3. ALL
                saService.ApproveAdjustment(s);
                stService.UpdateStationery(sta);
                smService.AddStockManagement(smt);
            }
        }
        //2
        public int MarkAsNotCollected(int storeClerkId, int currentDisbId)
        {
            try
            {
                Disbursement currentDisb         = FindDisbById(currentDisbId);
                List <DisbursementDetail> ddList = FindDisbDetByDisbId(currentDisbId);

                //return items to stock
                foreach (DisbursementDetail dd in ddList)
                {
                    Stationery stat = FindStationeryByItemCode(dd.ItemCode);
                    stat.QuantityInStock += dd.QuantityReceived;
                    UpdateStationery(stat);
                    StockManagement smNew = new StockManagement();
                    smNew.Date         = DateTime.Today;
                    smNew.ItemCode     = dd.ItemCode;
                    smNew.StoreClerkId = storeClerkId;
                    smNew.Source       = "DIS";
                    smNew.SourceId     = dd.DisbursementDetailsId;
                    smNew.QtyAdjusted  = dd.QuantityReceived;
                    smNew.Balance      = stat.QuantityInStock;
                    smNew.Date         = DateTime.Today;
                    AddNewStockManagement(smNew);

                    dd.QuantityReceived = 0;
                    UpdateDisbursementDetail(dd);
                }

                //update current disbursement status
                currentDisb.Status = "Not Collected";
                UpdateDisbursement(currentDisb);

                return(1);
            }
            catch (Exception e)
            {
                return(0);
            }
        }
        //webAPI for Retrieval New
        public int ConfirmRetrieval(int storeClerkId, int retrId)
        {
            try
            {
                List <RetrievalDetail> retrDetList = FindRetrDetByRetrId(retrId);
                for (int i = 0; i < retrDetList.Count; i++)
                {
                    //Update Disbursement Detail after retrieval
                    List <DisbursementDetail> disbursementDetails = FindDisbDetsForNestedList(storeClerkId, "In Progress", retrDetList[i].ItemCode);
                    if (retrDetList[i].QuantityRetrieved < retrDetList[i].QuantityNeeded)
                    {
                        int totalDisbQty = (int)retrDetList[i].QuantityRetrieved;
                        foreach (DisbursementDetail dd in disbursementDetails)
                        {
                            if (totalDisbQty > 0)
                            {
                                if (totalDisbQty >= dd.QuantityRequested)
                                {
                                    totalDisbQty -= dd.QuantityRequested;
                                }
                                else
                                {
                                    dd.QuantityReceived = totalDisbQty;
                                    UpdateDisbursementDetail(dd);
                                    totalDisbQty = 0;
                                }
                            }
                            else
                            {
                                dd.QuantityReceived = 0;
                                UpdateDisbursementDetail(dd);
                            }
                        }
                    }

                    //update stock
                    Stationery stat = FindStationeryByItemCode(retrDetList[i].ItemCode);
                    stat.QuantityInStock -= (int)retrDetList[i].QuantityRetrieved;
                    UpdateStationery(stat);

                    //Add Stock management
                    foreach (DisbursementDetail dd in disbursementDetails)
                    {
                        if (dd.QuantityReceived != 0)
                        {
                            StockManagement tm = new StockManagement();
                            tm.Date         = DateTime.Today;
                            tm.ItemCode     = retrDetList[i].ItemCode;
                            tm.StoreClerkId = storeClerkId;
                            tm.Source       = "DIS";
                            tm.SourceId     = dd.DisbursementDetailsId;
                            tm.QtyAdjusted  = -dd.QuantityReceived;
                            tm.Balance      = stat.QuantityInStock;
                            if (AddNewStockManagement(tm) == 0)
                            {
                                return(0);
                            }
                        }
                    }
                }

                //Check & update Disbursement status
                List <Disbursement> disbursements = FindDisbursementsByStatus("In Progress").Where(x => x.StoreClerkId == storeClerkId).ToList();
                foreach (Disbursement d in disbursements)
                {
                    d.Status = "Allocating";
                    UpdateDisbursement(d);
                }

                //update Retrieval status
                Retrieval retrieval = FindRetrByEmplIdAndStatus(storeClerkId, "In Progress");
                retrieval.Status = "Allocating";
                UpdateRetrieval(retrieval);

                //update requisitions status
                List <Department>  deptList        = FindDepartmentByStoreClerkId(storeClerkId);
                List <Requisition> approvedReqList = new List <Requisition>();
                foreach (Department dp in deptList)
                {
                    List <Requisition> r = FindAllReqByDeptIdAndStatus(dp.DeptId, "In Progress");
                    if (r != null)
                    {
                        approvedReqList.AddRange(r);
                    }
                }
                approvedReqList.Sort((x, y) => x.RequisitionDate.CompareTo(y.RequisitionDate));
                foreach (Requisition r in approvedReqList)
                {
                    UpdateReqStatus(r.RequisitionId, "Completed");
                }
                return(1);
            }
            catch (Exception e)
            {
                return(0);
            }
        }
 public int UpdateStockManagement(StockManagement sm)
 {
     return(stServ.UpdateStockManagement(sm));
 }
示例#12
0
        protected void btnRequestAcknowledgement_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < ddList.Count; i++)
            {
                Label   lblQtyReq     = (Label)gvUpdateReqDetails.Rows[i].FindControl("lblQtyReq");
                TextBox tbQtyReceived = (TextBox)gvUpdateReqDetails.Rows[i].FindControl("tbQtyReceived");
                TextBox tbRaiseSAV    = (TextBox)gvUpdateReqDetails.Rows[i].FindControl("tbRaiseSAV");
                TextBox tbReason      = (TextBox)gvUpdateReqDetails.Rows[i].FindControl("tbReason");

                int qtyRec      = (tbQtyReceived.Text != "") ? Int32.Parse(tbQtyReceived.Text) : 0;
                int qtyRaiseSAV = tbRaiseSAV.Text == null || tbRaiseSAV.Text == "" ? 0 : Int32.Parse(tbRaiseSAV.Text);

                Stationery stat = myBz.FindStationeryByItemCode(ddList[i].ItemCode);

                //check amount
                if (qtyRec - qtyRaiseSAV != ddList[i].QuantityReceived)
                {
                    lblNotification.Text    = "Please make sure Quantity Received + Quantity to Raise SAV = Expected Received Quantity";
                    lblNotification.Visible = true;
                    return;
                }
                else
                {
                    lblNotification.Visible = false;
                }

                if (Int32.Parse(tbQtyReceived.Text) < ddList[i].QuantityReceived)
                {
                    //add Stock Adjustment
                    if (tbRaiseSAV.Text != "0" && tbRaiseSAV.Text != null && tbRaiseSAV.Text != "")
                    {
                        StockAdjustment stkAdjustment = new StockAdjustment();
                        stkAdjustment.ItemCode         = ddList[i].ItemCode;
                        stkAdjustment.QuantityAdjusted = Int32.Parse(tbRaiseSAV.Text);
                        stkAdjustment.Reason           = tbReason.Text;
                        stkAdjustment.DateCreated      = DateTime.Today;
                        stkAdjustment.ClerkEmployeeId  = storeClerkId;
                        stkAdjBz.AddAdjustment(stkAdjustment, "In Progress");
                    }

                    //update Stock
                    stat.QuantityInStock += Int32.Parse(tbRaiseSAV.Text);
                    myBz.UpdateStationery(stat);

                    //update Stock Management
                    StockManagement sm = new StockManagement();
                    sm.Date         = DateTime.Today;
                    sm.ItemCode     = ddList[i].ItemCode;
                    sm.StoreClerkId = storeClerkId;
                    sm.Source       = "DIS";
                    sm.QtyAdjusted  = -Int32.Parse(tbRaiseSAV.Text);
                    sm.Balance      = stat.QuantityInStock;
                    sm.Date         = DateTime.Today;
                    myBz.AddNewStockManagement(sm);

                    //save disbDets
                    ddList[i].QuantityReceived = Int32.Parse(tbQtyReceived.Text);
                    ddList[i].Remark           = tbRaiseSAV.Text + " - " + tbReason.Text;
                    myBz.UpdateDisbursementDetail(ddList[i]);
                }
            }

            gvDeptReqDetails.DataSource = ddList;
            gvDeptReqDetails.DataBind();

            //create Req Details
            Dictionary <string, int> reqList = new Dictionary <string, int>();

            for (int i = 0; i < ddList.Count; i++)
            {
                Label lblQtyReq   = (Label)gvDeptReqDetails.Rows[i].FindControl("lblQtyReq");
                Label lblQtyRec   = (Label)gvDeptReqDetails.Rows[i].FindControl("lblQtyRec");
                Label lblRemark   = (Label)gvDeptReqDetails.Rows[i].FindControl("lblRemark");
                int   qtyReq      = Int32.Parse(lblQtyReq.Text);
                int   qtyReceived = Int32.Parse(lblQtyRec.Text);

                if (qtyReceived < qtyReq)
                {
                    reqList.Add(ddList[i].ItemCode, qtyReq - qtyReceived);
                }
            }

            if (reqList.Count != 0)
            {
                //create new requisition to store data for things not disbursed
                Requisition req = new Requisition();
                req.EmployeeId           = storeClerkId;
                req.RequisitionDate      = DateTime.Today;
                req.RequisitionStatus    = "Approved";
                req.Remark               = $"Additional Requisition due to not fullfilled Disbursement: {currentDisb.DisbursementId}";
                req.ApprovedByEmployeeId = currentDept.HeadId;
                myBz.AddRequisiton(req);

                Requisition currentReq = myBz.FindLatestReq();
                foreach (KeyValuePair <string, int> r in reqList)
                {
                    RequisitionDetail rd = new RequisitionDetail();
                    rd.RequisitionId   = currentReq.RequisitionId;
                    rd.ItemCode        = r.Key;
                    rd.QuantityRequest = r.Value;
                    myBz.AddRequisitionDetail(rd);
                }
            }

            //change disb status to "Waiting for Acknowledgement"
            currentDisb.Status = "Waiting for Acknowledgement";
            myBz.UpdateDisbursement(currentDisb);
            //onpage of representative: find:"Waiting for Acknowledgment", confirm:"Acknowledged", reject:"Allocated"

            BindData();
            DisplayForAllocated(false);
        }
        private void StockManagementBTN_Click(object sender, EventArgs e)
        {
            StockManagement stkm = new StockManagement();

            stkm.Show();
        }
示例#14
0
        private void viewReportToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            StockManagement stockManagement = new StockManagement();

            AddControlsToPanel(stockManagement);
        }
 public int AddNewStockManagement(StockManagement tm)
 {
     return(stServ.AddStockManagement(tm));
 }
        protected void btnComplete_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < retrDetList.Count; i++)
            {
                TextBox  tbRetrQty   = (TextBox)gvRetrList.Rows[i].FindControl("tbRetrQty");
                CheckBox cbRetrieved = (CheckBox)gvRetrList.Rows[i].FindControl("cbRetrieved");
                TextBox  tbRaiseSAV  = (TextBox)gvRetrList.Rows[i].FindControl("tbRaiseSAV");
                TextBox  tbReason    = (TextBox)gvRetrList.Rows[i].FindControl("tbReason");
                Label    lblReqQty   = (Label)gvRetrList.Rows[i].FindControl("lblReqQty");
                Label    lblStock    = (Label)gvRetrList.Rows[i].FindControl("lblStock");

                if (tbRetrQty.Text != "0" && tbRetrQty.Text != null && tbRetrQty.Text != "")
                {
                    if (Int32.Parse(tbRetrQty.Text) > Int32.Parse(lblStock.Text))
                    {
                        tbRetrQty.BackColor  = System.Drawing.Color.Red;
                        lblNotification.Text = "Please make sure you Retrieval Quantity is lesser or equal Stock Quantity";
                        return;
                    }
                    else
                    {
                        retrDetList[i].QuantityRetrieved = Int32.Parse(tbRetrQty.Text);
                    }
                }
                else
                {
                    retrDetList[i].QuantityRetrieved = 0;
                }

                retrDetList[i].Remark = tbRaiseSAV.Text + " " + tbReason.Text;
                myBz.UpdateRetrDet(retrDetList[i]);

                //update Stock
                Stationery stat = myBz.FindStationeryByItemCode(retrDetList[i].ItemCode);


                //Update Disbursement Detail after retrieval
                List <DisbursementDetail> disbursementDetails = myBz.FindDisbDetsForNestedList(storeClerkId, "In Progress", retrDetList[i].ItemCode);
                if (retrDetList[i].QuantityRetrieved < retrDetList[i].QuantityNeeded)
                {
                    int totalDisbQty = (int)retrDetList[i].QuantityRetrieved;
                    foreach (DisbursementDetail dd in disbursementDetails)
                    {
                        if (totalDisbQty > 0)
                        {
                            if (totalDisbQty >= dd.QuantityRequested)
                            {
                                totalDisbQty -= dd.QuantityRequested;
                            }
                            else
                            {
                                dd.QuantityReceived = totalDisbQty;
                                myBz.UpdateDisbursementDetail(dd);
                                totalDisbQty = 0;
                            }
                        }
                        else
                        {
                            dd.QuantityReceived = 0;
                            myBz.UpdateDisbursementDetail(dd);
                        }
                    }
                }

                //Add Stock management
                foreach (DisbursementDetail dd in disbursementDetails)
                {
                    if (dd.QuantityReceived != 0)
                    {
                        stat.QuantityInStock -= dd.QuantityReceived;
                        myBz.UpdateStationery(stat);

                        StockManagement tm = new StockManagement();
                        tm.Date         = DateTime.Today;
                        tm.ItemCode     = retrDetList[i].ItemCode;
                        tm.StoreClerkId = storeClerkId;
                        tm.Source       = "DIS";
                        tm.SourceId     = dd.DisbursementDetailsId;
                        tm.QtyAdjusted  = -dd.QuantityReceived;
                        tm.Balance      = stat.QuantityInStock;
                        myBz.AddNewStockManagement(tm);
                    }
                }

                //for adjustment voucher
                if (tbRaiseSAV.Text != "0" && tbRaiseSAV.Text != null && tbRaiseSAV.Text != "")
                {
                    StockAdjustment stkAdjustment = new StockAdjustment();
                    stkAdjustment.ItemCode         = retrDetList[i].ItemCode;
                    stkAdjustment.QuantityAdjusted = Int32.Parse(tbRaiseSAV.Text);
                    stkAdjustment.Reason           = tbReason.Text;
                    stkAdjustment.DateCreated      = DateTime.Today;
                    stkAdjustment.ClerkEmployeeId  = storeClerkId;
                    stkAdjBz.AddAdjustment(stkAdjustment, "In Progress");
                }
            }

            //Check & update Disbursement status
            List <Disbursement> disbursements = myBz.FindDisbursementsByStatus("In Progress").Where(x => x.StoreClerkId == storeClerkId).ToList();

            foreach (Disbursement d in disbursements)
            {
                d.Status = "Allocating";
                myBz.UpdateDisbursement(d);
            }

            //update Retrieval status
            Retrieval retrieval = myBz.FindRetrListByEmplIdAndStatus(storeClerkId, "In Progress").FirstOrDefault();

            retrieval.Status = "Allocating";
            myBz.UpdateRetrieval(retrieval);

            //update requisitions status
            List <Requisition> reqList = myBz.FindReqsByStoreClerkIdAndStatus(storeClerkId, "In Progress");

            foreach (Requisition r in reqList)
            {
                myBz.UpdateReqStatus(r.RequisitionId, "Completed");
            }

            Session["Retrieval"] = retrieval;
            Response.Redirect("~/Store/AllocationStationery.aspx");
        }
示例#17
0
 public IntegrationModule(IFactoryConnection efc)
 {
     StockIntegration = new StockManagement(efc);
 }