public static int GetTotalLeaveDays(string toDate, string fromdate)
 {
     try
     {
         return(BLLGeneralTippani.GetDateDifference(toDate, fromdate));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
    private ATTGeneralTippaniSummary GetLeaveDetail(int orgID, int tippaniID, double empID, string entryBy)
    {
        ATTGeneralTippaniSummary leave = new ATTGeneralTippaniSummary();

        if (this.grdLeave.SelectedIndex < 0)
        {
            leave.OrgID      = orgID;
            leave.TippaniID  = tippaniID;
            leave.TippaniSNO = 0;
            leave.EmpID      = empID;
            leave.EmpName    = this.EmpName;
            leave.Action     = "A";
        }
        else
        {
            ATTGeneralTippaniSummary detail = this.LeaveList[this.grdLeave.SelectedIndex] as ATTGeneralTippaniSummary;
            leave.OrgID      = detail.OrgID;
            leave.TippaniID  = detail.TippaniID;
            leave.TippaniSNO = detail.TippaniSNO;
            leave.EmpID      = detail.EmpID;
            leave.EmpName    = detail.EmpName;

            if (this.LeaveList[this.grdLeave.SelectedIndex].Action == "A")
            {
                leave.Action = "A";
            }
            else
            {
                leave.Action = "E";
            }
        }

        leave.LeaveTypeID     = int.Parse(this.ddlLeaveType_Rqd.SelectedValue);
        leave.LeaveType       = this.ddlLeaveType_Rqd.SelectedItem.Text;
        leave.ReqFromDate     = this.txtFromDate_Rdt.Text;
        leave.ReqToDate       = this.txtToDate_Rdt.Text;
        leave.ApplicationDate = this.txtApplicationDate_Rdt.Text;
        leave.ReqNoOfDays     = BLLGeneralTippani.GetDateDifference(leave.ReqToDate, leave.ReqFromDate) + 1;
        leave.ReqReason       = this.txtRemark.Text.Trim();
        leave.LeaveLevel      = LeaveMode.Request;
        //leave.Action = "A";
        leave.LeaveEntryBy = entryBy;

        return(leave);
    }
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        if (this.grdRecommendation.SelectedIndex <= -1)
        {
            if (this.grdLeave.SelectedIndex <= -1)
            {
                this.lblStatusMessage.Text = "कृपया कर्मचारीको बिदाको अनुरोध बिबरण छन्नुहोस ।";
                this.programmaticModalPopup.Show();
                return;
            }
        }

        if (this.chkRec.Checked == true)
        {
            if (this.txtFromDate_Rdt.Text.Trim() == "" || this.txtToDate_Rdt.Text.Trim() == "" || this.txtTotalDays_Rqd.Text.Trim() == "")
            {
                this.lblStatusMessage.Text = "कृपया सिफरिस गरेको कर्मचारीको लागी बिदाको सिफारिस बिबरण राख्नुहोस।";
                this.programmaticModalPopup.Show();
                return;
            }

            if (string.Compare(this.txtToDate_Rdt.Text.Trim(), this.txtFromDate_Rdt.Text.Trim()) < 0)
            {
                this.lblStatusMessage.Text = "बिदाको अवधि देखि मिति अवधि सम्म मिति भन्दा सानो हुनुपर्छ ।";
                this.programmaticModalPopup.Show();
                return;
            }

            if (string.Compare(this.hdnFromDate.Value.Trim(), this.txtFromDate_Rdt.Text.Trim()) > 0)
            {
                this.lblStatusMessage.Text = "सिफारिसको अवधि देखि मिति अनुरोधको अवधि देखि मिति भन्दा सानो हुन सक्दैन् ।";
                this.programmaticModalPopup.Show();
                return;
            }

            if (string.Compare(this.hdnToDate.Value.Trim(), this.txtToDate_Rdt.Text.Trim()) < 0)
            {
                this.lblStatusMessage.Text = "सिफारिसको अवधि सम्म मिति अनुरोधको अवधि सम्म मिति भन्दा ठुलो हुन सक्दैन् ।";
                this.programmaticModalPopup.Show();
                return;
            }
        }

        ATTGeneralTippaniSummary leave = new ATTGeneralTippaniSummary();

        GridViewRow row;

        if (this.grdRecommendation.SelectedIndex < 0)
        {
            row = this.grdLeave.SelectedRow;
        }
        else
        {
            row = this.grdRecommendation.SelectedRow;
        }

        leave.OrgID     = int.Parse(row.Cells[0].Text);
        leave.TippaniID = int.Parse(row.Cells[1].Text);
        leave.EmpID     = double.Parse(row.Cells[2].Text);
        leave.EmpName   = row.Cells[3].Text;

        if (this.grdRecommendation.SelectedIndex < 0)
        {
            bool exist = this.LeaveRec.Exists
                         (
                delegate(ATTGeneralTippaniSummary l)
            {
                return(l.OrgID == leave.OrgID &&
                       l.TippaniID == leave.TippaniID &&
                       l.EmpID == leave.EmpID);
            }
                         );
            if (exist == true)
            {
                this.lblStatusMessage.Text = "यस कर्मचारीको बिदाको सिफारिस बिबरण दिइसकेको छ।";
                this.programmaticModalPopup.Show();
                return;
            }
        }

        //leave.LeaveTypeID = int.Parse(this.ddlLeaveType_Rqd.SelectedValue);
        //leave.LeaveType = this.ddlLeaveType_Rqd.SelectedItem.Text;
        leave.RecFromDate = this.txtFromDate_Rdt.Text;
        leave.RecToDate   = this.txtToDate_Rdt.Text;
        leave.OldFromDate = this.hdnFromDate.Value;
        leave.OldToDate   = this.hdnToDate.Value;
        leave.RecDate     = ""; //set nepali date from database
        leave.RecNoOfDays = BLLGeneralTippani.GetDateDifference(leave.RecToDate, leave.RecFromDate) + 1;
        leave.RecYesNo    = this.chkRec.Checked == true ? "Y" : "N";
        leave.RecReason   = this.txtRemark.Text.Trim();
        leave.LeaveLevel  = LeaveMode.Recommend;
        leave.Action      = "A";
        leave.RecBy       = this.User.PID;

        if (this.grdRecommendation.SelectedIndex < 0)
        {
            this.LeaveRec.Add(leave);
        }
        else
        {
            this.LeaveRec[this.grdRecommendation.SelectedIndex] = leave;
        }

        this.grdRecommendation.DataSource = this.LeaveRec;
        this.grdRecommendation.DataBind();

        this.ClearLeaveDetail();
    }