protected void btnSearch_Click(object sender, EventArgs e)
        {
            Staff  stf = (Staff)Session["LoginStaff"];
            string id  = txtDisbursmentID.Text;

            ViewState["DisID"] = id;
            if (ConfirmReceivedController.checkDisbursmentID(id, stf.Staff_ID) == 1)
            {
                LBStatus.Text = "";

                dgvDisbursmentItem.DataSource = ConfirmReceivedController.getDisbursmentItems(txtDisbursmentID.Text);
                dgvDisbursmentItem.DataBind();
                dgvDisbursmentItem.Visible = true;
                cbxReserved.Visible        = true;
                btnConfirm.Visible         = true;
            }
            else if (ConfirmReceivedController.checkDisbursmentID(id, stf.Staff_ID) == 2)
            {
                LBStatus.Text = "This disbursement list has been received.";
            }
            else if (ConfirmReceivedController.checkDisbursmentID(id, stf.Staff_ID) == 0)
            {
                LBStatus.Text = "Sorry, the disbursement ID is wrong.";
            }
        }
        protected void btnConfirm_Click(object sender, EventArgs e)
        {
            Staff  stf   = (Staff)Session["LoginStaff"];
            string DisId = (string)ViewState["DisID"];
            List <DisbursementDetail> DDList      = new List <DisbursementDetail>();
            List <ReceivedItemModel>  recItemList = new List <ReceivedItemModel>();

            for (int i = 0; i < dgvDisbursmentItem.Rows.Count; i++)
            {
                string itemCode = dgvDisbursmentItem.Rows[i].Cells[0].Text;
                string itemName = dgvDisbursmentItem.Rows[i].Cells[1].Text;
                int    needQty  = Convert.ToInt32(dgvDisbursmentItem.Rows[i].Cells[2].Text);
                txtQty = (TextBox)dgvDisbursmentItem.Rows[i].Cells[3].FindControl("txtQty");
                int    recQty = Convert.ToInt32(txtQty.Text);
                string uom    = dgvDisbursmentItem.Rows[i].Cells[4].Text;

                DisbursementDetail dd = new DisbursementDetail();
                dd.Disbursement_ID = DisId;
                dd.Item_ID         = itemCode;
                dd.Quantity        = recQty;
                DDList.Add(dd);

                ReceivedItemModel recItem = new ReceivedItemModel();
                recItem.itemCode = itemCode;
                recItem.itemName = itemName;
                recItem.needQty  = needQty;
                recItem.recQty   = recQty;
                recItem.restQty  = needQty - recQty;
                recItem.uom      = uom;
                recItemList.Add(recItem);
            }


            if (cbxReserved.Checked)
            {
                lblReqtype.Visible        = true;
                dgvSpeRequisition.Visible = true;
                btnCreate.Visible         = true;
                btnCancel.Visible         = true;


                List <ReceivedItemModel> restItemList = new List <ReceivedItemModel>();
                foreach (ReceivedItemModel recitem in recItemList)
                {
                    if (recitem.restQty > 0)
                    {
                        restItemList.Add(recitem);
                    }
                }
                Session["restItemList"]      = restItemList;
                dgvSpeRequisition.DataSource = restItemList;
                dgvSpeRequisition.DataBind();

                try
                {
                    ConfirmReceivedController.ConfirmRecivedItems(DisId, DDList, stf.Dept_ID);
                }
                catch (Exception ex)
                {
                    btnConfirm.Visible = false;
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Receive disbursement fail!')", true);
                }
                btnConfirm.Visible = false;
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Received success!')", true);
            }
            else
            {
                try
                {
                    ConfirmReceivedController.ConfirmRecivedItems(DisId, DDList, stf.Dept_ID);
                }
                catch (Exception ex)
                {
                    btnConfirm.Visible = false;
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Receive disbursement fail!')", true);
                    initPage();
                }

                btnConfirm.Visible = false;
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Received success!')", true);
                initPage();
            }
        }