Example #1
0
        // Willis
        public List <int> UpdateDisbursementItem(List <int> IdDisbursementItemClerk)
        {
            List <int> IdDisbursement = new List <int>();

            foreach (int diid in IdDisbursementItemClerk)
            {
                DisbursementItem disbursementitem = context.DisbursementItems
                                                    .Where(x => x.IdDisbursementItem == diid)
                                                    .FirstOrDefault();


                if (disbursementitem != null)
                {
                    Status status = context.Status.Where(s => s.IdStatus == 9).FirstOrDefault();
                    disbursementitem.IdStatus = 9;
                    context.SaveChanges();

                    // As long as there is one item in disbursementitem that has been set to "prepared"
                    // It will retrieve it's IdDisbursement and set as "pepared"
                    if (!IdDisbursement.Contains(disbursementitem.IdDisbursement))
                    {
                        IdDisbursement.Add(disbursementitem.IdDisbursement);
                    }
                }
            }
            return(IdDisbursement);
        }
    public void updatedisbursement(int disbid, string itemcode, int actual)
    {
        DisbursementItem disb = sce.DisbursementItems.Where(x => x.disbursementid == disbid && x.itemcode == itemcode).First();

        disb.actualquantity = actual;
        sce.SaveChanges();
    }
Example #3
0
        public void UpdateStockRecord(int IdStoreClerk, List <int> IdDisbursementItem)
        {
            foreach (int x in IdDisbursementItem)
            {
                DisbursementItem disbursementItem = context.DisbursementItems
                                                    .Where(di => di.IdDisbursementItem == x)
                                                    .FirstOrDefault();

                Operation    operation    = context.Operations.Where(o => o.IdOperation == 1).FirstOrDefault();
                Item         item         = context.Items.Where(i => i.IdItem == disbursementItem.IdItem).FirstOrDefault();
                Employee     storeclerk   = context.Employees.Where(e => e.IdEmployee == IdStoreClerk).FirstOrDefault();
                Disbursement disbursement = context.Disbursements
                                            .Where(d => d.IdDisbursement == disbursementItem.IdDisbursement).FirstOrDefault();
                Department department = context.Departments
                                        .Where(dpt => dpt.CodeDepartment.Equals(disbursement.CodeDepartment)).FirstOrDefault();
                Supplier supplier = context.Suppliers.Where(s => s.CodeSupplier == item.CodeSupplier1).FirstOrDefault();

                StockRecord stockrecord = new StockRecord();
                stockrecord.Date         = DateTime.Now;
                stockrecord.IdDepartment = disbursement.CodeDepartment;
                stockrecord.Department   = department;
                stockrecord.IdOperation  = 1;
                stockrecord.Operation    = operation;
                stockrecord.IdItem       = disbursementItem.IdItem;
                stockrecord.Item         = item;
                stockrecord.IdSupplier   = item.CodeSupplier1;
                stockrecord.Supplier     = supplier;
                stockrecord.IdStoreClerk = IdStoreClerk;
                stockrecord.StoreClerk   = storeclerk;
                stockrecord.Unit         = disbursementItem.UnitIssued;
                context.StockRecords.Add(stockrecord);
                context.SaveChanges();
            }
        }
Example #4
0
        //Willis
        public void UpdateItem(List <int> IdDisbursementItem)
        {
            foreach (int x in IdDisbursementItem)
            {
                DisbursementItem disbursementItem = context.DisbursementItems
                                                    .Where(di => di.IdDisbursementItem == x)
                                                    .FirstOrDefault();

                Item items = context.Items.Where(i => i.IdItem == disbursementItem.IdItem).FirstOrDefault();

                if (items != null)
                {
                    if (items.StockUnit - disbursementItem.UnitIssued >= 0)
                    {
                        items.StockUnit = items.StockUnit - disbursementItem.UnitIssued;
                        context.SaveChanges();
                    }

                    /*if (items.AvailableUnit - disbursementItem.UnitIssued >= 0)
                     * {
                     *  items.AvailableUnit = items.AvailableUnit - disbursementItem.UnitIssued;
                     *  context.SaveChanges();
                     * }*/
                }
            }
        }
    public DisbursementItem findDisbursementByDisburseAndItem(int disid, string itmid)
    {
        DisbursementItem item = new DisbursementItem();

        item = StoreDepartmentDAO.findDisbursementByDisburseAndItem(disid, itmid);
        return(item);
    }
Example #6
0
        //James
        internal void StockAdjustmentDuringDisbursement(int qtyDisbursed, DisbursementItem di, int idStoreClerk)
        {
            // 1. Raise SA for damaged good for approval
            StockRecord raiseSA = new StockRecord
            {
                Date         = DateTime.Now,
                IdOperation  = 5,
                IdDepartment = di.Disbursement.CodeDepartment,
                IdStoreClerk = idStoreClerk,
                IdItem       = di.IdItem,
                Unit         = (di.UnitIssued - qtyDisbursed) * -1
            };

            context.StockRecords.Add(raiseSA);

            // 2. Create reversal StockRecord transaction for unit issued to the department
            StockRecord reverseSr = new StockRecord
            {
                Date         = DateTime.Now,
                IdOperation  = 1,
                IdDepartment = di.Disbursement.CodeDepartment,
                IdStoreClerk = idStoreClerk,
                IdItem       = di.IdItem,
                Unit         = di.UnitIssued - qtyDisbursed
            };

            context.StockRecords.Add(reverseSr);

            context.SaveChanges();
        }
Example #7
0
        private List <Disbursement> generateDisbersementList(List <RetrievalFormItem> reflist)
        {
            bool IsNewDepartment        = true;
            bool IsNewItem              = true;
            List <Disbursement> dislist = new List <Disbursement>();

            foreach (RetrievalFormItem refitem in reflist)
            {
                foreach (BreakdownByDepartment breaklist in refitem.BreakdownByDepartmentList)
                {
                    IsNewDepartment = true;//reset boolean
                    foreach (Disbursement dept in dislist)
                    {
                        if (dept.deptID == breaklist.DeptID)//not a new department
                        {
                            IsNewDepartment = false;
                            IsNewItem       = true;
                            foreach (DisbursementItem item in dept.DisbursementItems)
                            {
                                if (item.itemID == refitem.ItemID)// not a new item
                                {
                                    IsNewItem        = false;
                                    item.expectedQty = item.expectedQty + breaklist.Needed;
                                    item.actualQty   = item.actualQty + breaklist.Actual;
                                    break;
                                }
                            }
                            if (IsNewItem)// add a new item in disbursementItems
                            {
                                DisbursementItem item = new DisbursementItem();
                                //item.disbursementID = dept.disbursementID;
                                item.itemID      = refitem.ItemID;
                                item.expectedQty = breaklist.Needed;
                                item.actualQty   = breaklist.Actual;

                                dept.DisbursementItems.Add(item);
                            }
                        }
                    }
                    if (IsNewDepartment)//add a new department in disbursement
                    {
                        Disbursement dept = new Disbursement();
                        dept.deptID       = breaklist.DeptID;
                        dept.storeStaffID = (string)HttpContext.Current.Session["loginID"];
                        dept.disburseDate = DateTime.Now;
                        dept.status       = "Awaiting Delivery";

                        DisbursementItem item = new DisbursementItem();
                        item.itemID      = refitem.ItemID;
                        item.expectedQty = breaklist.Needed;
                        item.actualQty   = breaklist.Actual;
                        dept.DisbursementItems.Add(item);

                        dislist.Add(dept);
                    }
                }
            }
            return(dislist);
        }
Example #8
0
    public void UpdateDisbursementItem(List <WCFDisbursementItem> disitems)
    {
        AdjustmentVoucher adjs = new AdjustmentVoucher();
        int    clerkcode       = Convert.ToInt32(disitems[0].Supplier2);
        double cost            = 0;

        for (int i = 0; i < disitems.Count; i++)
        {
            DisbursementItem item = scmanager.findDisbursementByDisburseAndItem(disitems[i].Disbursementid, disitems[i].Itemcode);
            item.actualquantity = disitems[i].Actualquantity;

            int    al    = disitems[i].Allocatedquantity;
            int    ac    = (int)disitems[i].Actualquantity;
            int    minus = ac - al;
            string dept  = item.Disbursement.deptcode;
            List <RequisitionItem> rlist   = new List <RequisitionItem>();
            List <Requisition>     reqlist = new List <Requisition>();
            rlist   = scmanager.getrequisitions(dept);
            reqlist = scmanager.getreq(dept);
            if (minus < 0)
            {
                double price = scmanager.findPriceBySupplierAndItem(disitems[i].Supplier1, disitems[i].Itemcode);
                cost += price;

                scmanager.addadjustmentvoucher(price, 1025, item.itemcode, Math.Abs(minus));
                foreach (RequisitionItem it in rlist)
                {
                    if (it.itemcode == item.itemcode)
                    {
                        scmanager.deliverstatus(it.requisitionid, it.itemcode, Math.Abs(minus), ac, dept, it.Requisition.employeecode);
                    }
                }
            }
            else
            {
                foreach (RequisitionItem it in rlist)
                {
                    if (it.itemcode == item.itemcode)
                    {
                        scmanager.updatestatusto3(it.requisitionid, it.itemcode);
                    }
                }
            }
            scmanager.updatedisbursement(item.disbursementid, item.itemcode, ac);
            for (int z = 0; z < reqlist.Count; z++)
            {
                int reqcount    = scmanager.getreqcount(reqlist[z].requisitionid);
                int statuscount = scmanager.getstatuscount(reqlist[z].requisitionid);
                if (reqcount == statuscount)
                {
                    scmanager.updaterequisition(reqlist[z].requisitionid);
                }
            }
            scmanager.updatedisb(item.Disbursement.deptcode);
        }
    }
        //1.add retrieved-items to disbursement list
        public void createNewDisburesementItem(int disbId, string itemId, int expectedQty, int actualQty)
        {
            DisbursementItem disbItem = new DisbursementItem();

            disbItem.disbursementID = disbId;
            disbItem.itemID         = itemId;
            disbItem.expectedQty    = expectedQty;
            disbItem.actualQty      = actualQty;
            context.DisbursementItems.Add(disbItem);
            context.SaveChanges();
            //After finished requisition, use foreach to add items.
        }
Example #10
0
        public void savingActualQty(int disID, string itemID, int actualqty)
        {
            var k = model.DisbursementItems.Where(x => x.itemID == itemID && x.disbursementID == disID).ToList();

            if (k.Count == 0)
            {
                return;
            }
            DisbursementItem i = k.First();

            i.actualQty = actualqty;
            model.SaveChanges();
        }
        //Save the input actual qty
        public void savingActualQty(int disbursementItemID, int actualqty)
        {
            var k = context.DisbursementItems.Where(x => x.disbursementItemID == disbursementItemID).ToList();

            if (k.Count == 0)
            {
                return;
            }
            DisbursementItem i = k.First();

            i.actualQty = actualqty;
            context.SaveChanges();
        }
Example #12
0
    public static void UpdateDisbursementItem(List <DisbursementItem> items)
    {
        for (int i = 0; i < items.Count; i++)
        {
            string           itmid = items[i].itemcode;
            int              disid = items[i].disbursementid;
            DisbursementItem item  = ds.DisbursementItems.Where(x => x.itemcode == itmid && x.disbursementid == disid).FirstOrDefault();
            item.actualquantity = items[i].actualquantity;
        }
        int          id  = items[0].disbursementid;
        Disbursement dis = ds.Disbursements.Where(x => x.disbursementid == id).FirstOrDefault();

        dis.collectiondate = DateTime.Today;
        ds.SaveChanges();
    }
 public void addtodisbursementitem(Disbursement disb, DisbursementItem disbitem)
 {
     if (disb.DisbursementItems.Where(x => x.disbursementid == disbitem.disbursementid && x.itemcode == disbitem.itemcode).Count() == 0)
     {
         sce.DisbursementItems.Add(disbitem);
         sce.SaveChanges();
     }
     else
     {
         if (disb.DisbursementItems.Where(x => x.disbursementid == disbitem.disbursementid && x.itemcode == disbitem.itemcode && x.actualquantity == null).Count() != 0)
         {
             DisbursementItem disbursementitem = disb.DisbursementItems.Where(x => x.disbursementid == disbitem.disbursementid && x.itemcode == disbitem.itemcode && x.actualquantity == null).First();
             disbursementitem.allocatedquantity = disbursementitem.allocatedquantity + disbitem.allocatedquantity;
             sce.SaveChanges();
         }
     }
 }
Example #14
0
 public void sendRequestDepts(List <WCFRequestDept> rdlist)
 {
     foreach (WCFRequestDept i in rdlist)
     {
         string       deptname = i.Deptname;
         string       deptcode = scmanager.getdepartmentcode(deptname);
         int          recode   = scmanager.getrepresentativecode(deptcode);
         Disbursement disburse = new Disbursement();
         disburse.deptcode           = deptcode;
         disburse.representativecode = recode;
         Disbursement     newdisburse  = scmanager.addtodisbursement(disburse);
         int              id           = newdisburse.disbursementid;
         DisbursementItem disburseitem = new DisbursementItem();
         disburseitem.disbursementid    = id;
         disburseitem.itemcode          = i.Itemcode;
         disburseitem.allocatedquantity = i.Allocatedquantity;
         scmanager.addtodisbursementitem(disburse, disburseitem);
     }
 }
Example #15
0
        // Willis
        public void DisbursementItemByPriority(List <Retrieval> RetrievalItem)
        {
            // RetrievalItem Group by CodeDepartment, IdItem
            var Retrieval = RetrievalItem.GroupBy(x => new { x.IdItem, x.CodeDepartment })
                            .Select(y => new Retrieval
            {
                IdItem         = y.First().IdItem,
                StockUnit      = y.First().StockUnit,
                CodeDepartment = y.First().CodeDepartment,
                Unit           = y.Sum(z => z.Unit)
            }).ToList();
            // Select IdItem where total requested unit is more than stock unit
            var IdItem = Retrieval.Where(ri => ri.Unit > ri.StockUnit)
                         .Select(ri => ri.IdItem);

            // Select IdDisbursementItem order by ApprovedDate that stock unit is less than sum of the unit request
            List <int> IdDisbursementItem = new List <int>();

            foreach (var iditem in IdItem)
            {
                var JoinTable = context.DisbursementItems
                                .Join(context.Items, di => di.IdItem, i => i.IdItem,
                                      (di, i) => new { di, i })
                                .Join(context.RequisitionItems, idi => idi.i.IdItem, ri => ri.IdItem,
                                      (idi, ri) => new { idi, ri })
                                .Join(context.Requisitions, riidi => riidi.ri.IdRequisiton, r => r.IdRequisition,
                                      (riidi, r) => new { riidi, r })
                                .Where(x => x.riidi.ri.IdItem == iditem)
                                .OrderBy(x => x.r.ApprovedDate)
                                .Select(x => x.riidi.idi.di.IdDisbursementItem);
                if (JoinTable != null)
                {
                    foreach (var jt in JoinTable)
                    {
                        if (!IdDisbursementItem.Any())
                        {
                            IdDisbursementItem.Add(jt);
                        }
                        else if (!IdDisbursementItem.Contains(jt))
                        {
                            IdDisbursementItem.Add(jt);
                        }
                    }
                }
            }

            // Distribute stock item based on approved date given stockunit less than sum of requested unit
            foreach (var iditem in IdItem)
            {
                int stockunit = context.Items.Where(i => i.IdItem == iditem)
                                .Select(i => i.StockUnit).FirstOrDefault();

                foreach (var id in IdDisbursementItem)
                {
                    DisbursementItem disbursementItem = context.DisbursementItems
                                                        .Where(di => di.IdDisbursementItem == id)
                                                        .Where(di => di.IdItem == iditem).FirstOrDefault();

                    if (disbursementItem != null)
                    {
                        if (disbursementItem.UnitIssued >= stockunit)
                        {
                            disbursementItem.UnitIssued = stockunit;
                            stockunit = 0;
                            context.SaveChanges();
                        }
                        else
                        {
                            stockunit = stockunit - disbursementItem.UnitIssued;
                        }
                    }
                }
            }
        }
Example #16
0
    public static DisbursementItem findDisbursementByDisburseAndItem(int disid, string itmid)
    {
        DisbursementItem item = ds.DisbursementItems.Where(x => x.disbursementid == disid && x.itemcode == itmid).FirstOrDefault();

        return(item);
    }
Example #17
0
 private void savebtn_Click(object sender, RoutedEventArgs e)
 {
     if (SystemClass.CheckConnection())
     {
         try
         {
             ImusCityHallEntities db          = new ImusCityHallEntities();
             CDSSignatory         signatories = db.CDSSignatories.FirstOrDefault();
             if (payeecb.SelectedValue == null && optionpayeecb.IsChecked == false)
             {
                 MessageBox.Show("Please select payee from the dropdown list");
             }
             else if (optionpayeecb.IsChecked == true && String.IsNullOrEmpty(optionalpayee.Text))
             {
                 MessageBox.Show("Please enter payee name");
             }
             else if (paymenttypecb.SelectedValue == null)
             {
                 MessageBox.Show("Please select payment type");
             }
             else if (signatories == null)
             {
                 Mouse.OverrideCursor = null;
                 MessageBox.Show("Please add report signatories");
             }
             else if (String.IsNullOrEmpty(vouchernotb.Text))
             {
                 MessageBox.Show("Please enter voucher number");
             }
             else if (voucherList.Count() == 0)
             {
                 MessageBox.Show("Please input at least one voucher item");
             }
             else
             {
                 Disbursement disbursement = new Disbursement();
                 disbursement.PayeeID      = optionpayeecb.IsChecked == true ? null : payeecb.SelectedValue == null ? (int?)null : (int)payeecb.SelectedValue;
                 disbursement.PayeeName    = optionalpayee.Text.ToUpper();
                 disbursement.PayeeRepID   = payeerepcb.SelectedValue == null ? (int?)null : (int)payeerepcb.SelectedValue;
                 disbursement.DepartmentID = departmentcb.SelectedValue == null ? null : (int?)departmentcb.SelectedValue;
                 disbursement.PaymentType  = paymenttypecb.Text;
                 disbursement.VoucherNo    = voucherprefixtb.Text + vouchernotb.Text;
                 disbursement.DateCreated  = DateTime.Now;
                 disbursement.ProjectName  = projectnametb.Text;
                 disbursement.Obligated    = obligatedcb.IsChecked;
                 disbursement.DocCompleted = documentcb.IsChecked;
                 disbursement.CreatedBy    = App.EmployeeID;
                 foreach (var voucherItem in voucherList)
                 {
                     var item = new DisbursementItem()
                     {
                         Explanation = voucherItem.Explanation,
                         Amount      = Convert.ToDecimal(voucherItem.Amount)
                     };
                     disbursement.DisbursementItems.Add(item);
                 }
                 var x = db.Disbursements.Add(disbursement);
                 db.SaveChanges();
                 var audit = new AuditTrailModel
                 {
                     Activity   = "Created disbursement document",
                     ModuleName = this.GetType().Name,
                     EmployeeID = App.EmployeeID
                 };
                 SystemClass.InsertLog(audit);
                 MessageBox.Show("Check Disbursement Created!");
                 Print(x.DisbursementID);
                 this.Close();
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.ToString());
         }
     }
     else
     {
         MessageBox.Show(SystemClass.DBConnectionErrorMessage);
     }
 }
Example #18
0
        // Willis
        public List <int> CreateDisbursementItem(List <int> IdDisbursement, List <Retrieval> RetrievalItem)
        {
            // RetrievalItem Group by CodeDepartment, IdItem
            var Retrieval = RetrievalItem.GroupBy(x => new { x.IdItem, x.CodeDepartment })
                            .Select(y => new Retrieval
            {
                IdItem         = y.First().IdItem,
                StockUnit      = y.First().StockUnit,
                CodeDepartment = y.First().CodeDepartment,
                Unit           = y.Sum(z => z.Unit)
            }).ToList();

            List <int> IdDisbursementItem = new List <int>();

            // Get Disbursement with IdDisbursement
            foreach (int id in IdDisbursement)
            {
                Disbursement disbursement = context.Disbursements
                                            .Where(x => x.IdDisbursement == id)
                                            .FirstOrDefault();

                string DptCode = disbursement.CodeDepartment;
                // Create DisbursementItem List using Retrieval with CodeDepartment equals DptCode
                var RequestedItemByDept = Retrieval.Where(ri => ri.CodeDepartment.Equals(DptCode))
                                          .OrderBy(ri => ri.ApprovedDate)
                                          .ToList();

                // Status of "preparing"
                Status status = context.Status.Where(s => s.IdStatus == 8).FirstOrDefault();
                foreach (var ribd in RequestedItemByDept)
                {
                    Item items = context.Items.Where(i => i.IdItem == ribd.IdItem).FirstOrDefault();
                    Debug.WriteLine(ribd.IdItem);

                    DisbursementItem NewDisbursementItem = new DisbursementItem();
                    NewDisbursementItem.IdDisbursement = id;
                    NewDisbursementItem.Disbursement   = disbursement;
                    NewDisbursementItem.IdItem         = ribd.IdItem;
                    NewDisbursementItem.Item           = items;
                    NewDisbursementItem.IdStatus       = 8;
                    NewDisbursementItem.Status         = status;
                    NewDisbursementItem.UnitRequested  = ribd.Unit;
                    NewDisbursementItem.UnitIssued     = ribd.Unit;

                    // If stockunit is less that request unit, it will update once become "prepared"

                    /*if (ribd.StockUnit < ribd.Unit)
                     * {
                     *  NewDisbursementItem.UnitRequested = ribd.StockUnit;
                     *  NewDisbursementItem.UnitIssued = ribd.StockUnit;
                     * }
                     * else
                     * {
                     *  NewDisbursementItem.UnitRequested = ribd.Unit;
                     *  NewDisbursementItem.UnitIssued = ribd.Unit;
                     * }*/

                    context.DisbursementItems.Add(NewDisbursementItem);
                    context.SaveChanges();

                    // Get Id of Created DisbursementItem
                    int pk = NewDisbursementItem.IdDisbursementItem;
                    IdDisbursementItem.Add(pk);
                }
            }

            return(IdDisbursementItem);
        }
    protected void Button1_Click(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(1000);
        List <String> error = new List <string>();

        if (GridView1.Rows.Count != 0)
        {
            GridViewRow r      = GridView1.Rows[0];
            TextBox     t      = (TextBox)r.FindControl("Textfrom");
            int         actual = Convert.ToInt32(GridView1.Rows[0].Cells[3].Text);
            List <int>  dneed  = new List <int>();
            dneed.Add(Convert.ToInt32(t.Text));
            String itemdescription = GridView1.Rows[0].Cells[1].Text;
            for (int k = 1; k < GridView1.Rows.Count; k++)
            {
                GridViewRow row = GridView1.Rows[k];
                TextBox     tx  = (TextBox)row.FindControl("Textfrom");
                if (GridView1.Rows[k].Cells[3].Text.Equals(""))
                {
                    for (int j = k; j > 0; j--)
                    {
                        if (GridView1.Rows[j].Cells[3].Text != "")
                        {
                            actual = Convert.ToInt32(GridView1.Rows[j].Cells[3].Text);
                            break;
                        }
                    }
                    dneed.Add(Convert.ToInt32(tx.Text));
                    if (GridView1.Rows[k].RowIndex == GridView1.Rows.Count - 1)
                    {
                        if (dneed.Sum() > actual)
                        {
                            error.Add(itemdescription);
                        }
                    }
                }
                else
                {
                    if (dneed.Sum() > actual)
                    {
                        error.Add(itemdescription);
                    }
                    if (GridView1.Rows.Count > 0)
                    {
                        actual = Convert.ToInt32(GridView1.Rows[k].Cells[3].Text);
                        dneed.Clear();
                        dneed.Add(Convert.ToInt32(tx.Text));
                        itemdescription = GridView1.Rows[k].Cells[1].Text;
                    }
                    if (GridView1.Rows[k].RowIndex == GridView1.Rows.Count - 1)
                    {
                        if (dneed.Sum() > actual)
                        {
                            error.Add(itemdescription);
                        }
                    }
                }
            }
        }

        //

        if (error.Count == 0)
        {
            List <String> deptList = new List <string>();
            List <String> dlist = new List <string>();
            string        itemcode, dept;
            int           allocatedqty, actualqty1 = 0, repcode;

            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                Disbursement disb   = new Disbursement();
                Disbursement disbid = new Disbursement();
                String       d      = GridView1.Rows[i].Cells[5].Text;


                dept    = sc.getdepartmentcode(d);
                repcode = sc.getrepresentativecode(dept);

                disb.representativecode = repcode;
                disb.deptcode           = dept;
                disbid = sc.addtodisbursement(disb);


                GridViewRow row = GridView1.Rows[i];
                TextBox     tx  = (TextBox)row.FindControl("Textfrom");

                itemcode = GridView1.Rows[i].Cells[8].Text;

                allocatedqty = Convert.ToInt32(tx.Text);
                DisbursementItem disbitem = new DisbursementItem();
                disbitem.disbursementid    = disbid.disbursementid;
                disbitem.itemcode          = itemcode;
                disbitem.allocatedquantity = allocatedqty;
                sc.addtodisbursementitem(disbid, disbitem);



                int deptneedsum      = 0;
                int initialactualqty = 0;
                int deptneed         = Convert.ToInt32(GridView1.Rows[i].Cells[6].Text);
                if (GridView1.Rows[i].Cells[2].Text.Equals(""))
                {
                    deptneedsum = 0;
                }
                else
                {
                    deptneedsum = Convert.ToInt32(GridView1.Rows[i].Cells[2].Text);
                }
                int allocated = Convert.ToInt32(tx.Text);
                int requid    = Convert.ToInt32(GridView1.Rows[i].Cells[4].Text);
                if (GridView1.Rows[i].Cells[3].Text.Equals(""))
                {
                    initialactualqty = 0;
                }
                else
                {
                    initialactualqty = Convert.ToInt32(GridView1.Rows[i].Cells[3].Text);
                }
                String dep = GridView1.Rows[i].Cells[5].Text;
                dept = sc.getdepartmentcode(dep);
                int         requisition  = Convert.ToInt32(GridView1.Rows[i].Cells[4].Text);
                Requisition employeecode = sc.getemployeecode(requisition);

                if (GridView1.Rows[i].Cells[3].Text != " ")
                {
                    if (initialactualqty > deptneedsum)
                    {
                        initialactualqty = initialactualqty - deptneedsum;
                        Item reorderlevel = sc.getreorderlevel(GridView1.Rows[i].Cells[8].Text);
                        if (initialactualqty <= reorderlevel.reorderlevel)
                        {
                            sc.raiseReorder(reorderlevel, role);

                            //Add clerk code here
                        }
                    }
                    else
                    {
                        initialactualqty = deptneedsum - initialactualqty;
                        Item reorderlevel = sc.getreorderlevel(GridView1.Rows[i].Cells[8].Text);
                        if (initialactualqty <= reorderlevel.reorderlevel)
                        {
                            sc.raiseReorder(reorderlevel, role);
                        }
                    }
                }
                if (GridView1.Rows[i].Cells[3].Text.Equals(""))
                {
                    for (int j = i; j > 0; j--)
                    {
                        if (GridView1.Rows[j].Cells[3].Text != "")
                        {
                            actualqty1 = Convert.ToInt32(GridView1.Rows[j].Cells[3].Text);
                            break;
                        }
                    }
                }
                else
                {
                    actualqty1 = Convert.ToInt32(GridView1.Rows[i].Cells[3].Text);
                }
                string itemcode1 = GridView1.Rows[i].Cells[8].Text;



                RequisitionItem status = sc.getstatus(requid, itemcode1);

                if (deptneed == allocated)
                {
                    sc.updateStatus(requid, itemcode1, actualqty1 - allocated);
                }
                else if (deptneed != allocated)
                {
                    sc.owestatus(requid, itemcode1, deptneed - allocated, allocated, dept, employeecode.employeecode, status);
                }
            }
            Response.Redirect("SCprocessRequest.aspx");
        }
        else if (error.Count > 0)
        {
            //String s = "";
            //  BulletedList1.Items.Add("Allocation Exceeded the Actual Quantity");
            for (int i = 0; i < error.Count; i++)
            {
                BulletedList1.Items.Add(error[i]);
            }
            // Label1.Text = s;
        }
    }