Example #1
0
        protected void btn_Confirm_Clcik(object sender, EventArgs e)
        {
            try
            {
                string   OCODE     = ((SessionUser)Session["SessionUser"]).OCode;
                DateTime EDIT_DATE = DateTime.Now;
                Guid     userId    = ((SessionUser)Session["SessionUser"]).UserId;

                Attendance_BLL _attendancebll = new Attendance_BLL();

                List <HRM_AttendanceReason_Individual> lstHRM_AttendanceReason_Individual = new List <HRM_AttendanceReason_Individual>();

                if (chkIndividualShift.Checked)   //individual process
                {
                    for (int i = 0; i < Convert.ToInt16(hdfTotalDay.Value); i++)
                    {
                        if (txtbxEID.Text == "")
                        {
                            ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('Enter E-ID!')", true);
                            return;
                        }
                        if (txtFromDate.Text == "")
                        {
                            ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('Select Attendance Date!')", true);
                            return;
                        }

                        HRM_AttendanceReason_Individual _attendance = new HRM_AttendanceReason_Individual();

                        string   shiftCode = hdShiftCode.Value;
                        string   EID       = txtbxEID.Text;
                        DateTime fromdate  = Convert.ToDateTime(txtFromDate.Text);

                        var getAttendancedata = aAttendance_BLL.GetAttendanceByEID_Date(OCODE, EID, Convert.ToDateTime(txtFromDate.Text));

                        List <HRM_AttendanceReason_Individual> a_HRM_AttendanceReason_Individual = aAttendance_BLL.GetHRM_AttendanceReason_Individual(EID, fromdate.AddDays(i));

                        if (a_HRM_AttendanceReason_Individual.Count == 0)  //insert
                        {
                            _attendance.EID        = txtbxEID.Text;
                            _attendance.ReasonDate = fromdate.AddDays(i);
                            _attendance.Remarks    = txtbxremark.Text;
                            _attendance.Status     = "true";
                            _attendance.ShiftCode  = shiftCode;
                            _attendance.OCode      = ((SessionUser)Session["SessionUser"]).OCode;
                            _attendance.Edit_Date  = DateTime.Now;
                            _attendance.Edit_User  = ((SessionUser)Session["SessionUser"]).UserId;

                            TimeSpan start_time = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtAttInTime.Hour, txtAttInTime.Minute, txtAttInTime.Second));
                            _attendance.InTime = start_time;

                            TimeSpan end_time = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtAttOutTime.Hour, txtAttOutTime.Minute, txtAttOutTime.Second));
                            _attendance.OutTime = end_time;

                            TimeSpan lateAllowed = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtLateAllowed.Hour, txtLateAllowed.Minute, txtLateAllowed.Second));
                            _attendance.LateAllowed = lateAllowed;

                            TimeSpan totalHour, hour1, hour2;

                            if (start_time > end_time)
                            {
                                hour1     = TimeSpan.Parse("23:59:59");
                                hour2     = Calculations.timeDiff(start_time, hour1);
                                totalHour = hour2 + end_time;
                                _attendance.Shift_TotalHour = totalHour;
                            }
                            else
                            {
                                totalHour = Calculations.timeDiff(start_time, end_time);
                                _attendance.Shift_TotalHour = totalHour;
                            }

                            lstHRM_AttendanceReason_Individual.Add(_attendance);

                            _context.HRM_AttendanceReason_Individual.AddObject(_attendance);
                            try
                            {
                                _context.SaveChanges();

                                if (getAttendancedata.Count > 0)
                                {
                                    aAttendance_RPT_Bll.UpdateAll_AttStatus_ByDate(Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text)); // update attendnace status by date

                                    // insert/update leave/holiday attendnace status process by selected eid
                                    aAttendance_RPT_Bll.Insert_Update_AbsentLeaveStatus_ByDate_EID1(lstHRM_AttendanceReason_Individual, Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text));

                                    //ot process

                                    List <string> ShiftCodes = aAttendance_BLL.GetAllShiftCode(OCODE).ToList();

                                    foreach (string ashiftcode in ShiftCodes)
                                    {
                                        aAttendance_BLL.UpdateOT_ByDateandShift(Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text), ashiftcode);
                                    }

                                    //ot process log
                                    var    ParamempID1 = new SqlParameter("@DateFrom", Convert.ToDateTime(txtFromDate.Text));
                                    var    ParamempID2 = new SqlParameter("@DateTo", Convert.ToDateTime(txtFromDate.Text));
                                    var    ParamempID3 = new SqlParameter("@Edit_User", userId);
                                    var    ParamempID4 = new SqlParameter("@Edit_Date", DateTime.Now);
                                    var    ParamempID5 = new SqlParameter("@OCODE", OCODE);
                                    string SP_SQL      = "HRM_Insert_OTProcessLog @DateFrom, @DateTo, @Edit_User, @Edit_Date, @OCODE";
                                    _context.ExecuteStoreCommand(SP_SQL, ParamempID1, ParamempID2, ParamempID3, ParamempID4, ParamempID5);
                                    //
                                }

                                ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('Data Processed Successfully')", true);
                                grdview.DataSource = null;
                                grdview.DataBind();
                            }
                            catch (Exception ex)
                            {
                                ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('" + ex.Message + "')", true);
                            }
                            //ClearUI();
                        }
                        else   //update
                        {
                            DateTime iDate = fromdate.AddDays(i);
                            foreach (var AttendanceReason in _context.HRM_AttendanceReason_Individual.Where(x => x.EID == EID && x.ReasonDate == iDate))
                            {
                                //AttendanceReason.ReasonDate = Convert.ToDateTime(txtFromDate.Text);
                                AttendanceReason.Remarks   = txtbxremark.Text;
                                AttendanceReason.Status    = "true";
                                AttendanceReason.ShiftCode = shiftCode;
                                AttendanceReason.OCode     = ((SessionUser)Session["SessionUser"]).OCode;
                                AttendanceReason.Edit_Date = DateTime.Now;
                                AttendanceReason.Edit_User = ((SessionUser)Session["SessionUser"]).UserId;

                                TimeSpan start_time = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtAttInTime.Hour, txtAttInTime.Minute, txtAttInTime.Second));
                                AttendanceReason.InTime = start_time;

                                TimeSpan end_time = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtAttOutTime.Hour, txtAttOutTime.Minute, txtAttOutTime.Second));
                                AttendanceReason.OutTime = end_time;

                                TimeSpan lateAllowed = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtLateAllowed.Hour, txtLateAllowed.Minute, txtLateAllowed.Second));
                                _attendance.LateAllowed = lateAllowed;

                                TimeSpan totalHour, hour1, hour2;

                                if (start_time > end_time)
                                {
                                    hour1     = TimeSpan.Parse("23:59:59");
                                    hour2     = Calculations.timeDiff(start_time, hour1);
                                    totalHour = hour2 + end_time;
                                    AttendanceReason.Shift_TotalHour = totalHour;
                                }
                                else
                                {
                                    totalHour = Calculations.timeDiff(start_time, end_time);
                                    AttendanceReason.Shift_TotalHour = totalHour;
                                }
                                lstHRM_AttendanceReason_Individual.Add(_attendance);
                            }
                            try
                            {
                                _context.SaveChanges();

                                if (getAttendancedata.Count > 0)
                                {
                                    aAttendance_RPT_Bll.UpdateAll_AttStatus_ByDate(Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text)); // update attendnace status by date

                                    // insert/update leave/holiday attendnace status process by selected eid
                                    aAttendance_RPT_Bll.Insert_Update_AbsentLeaveStatus_ByDate_EID1(lstHRM_AttendanceReason_Individual, Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text));

                                    //ot process

                                    List <string> ShiftCodes = aAttendance_BLL.GetAllShiftCode(OCODE).ToList();

                                    foreach (string ashiftcode in ShiftCodes)
                                    {
                                        aAttendance_BLL.UpdateOT_ByDateandShift(Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text), ashiftcode);
                                    }

                                    //ot process log
                                    var    ParamempID1 = new SqlParameter("@DateFrom", Convert.ToDateTime(txtFromDate.Text));
                                    var    ParamempID2 = new SqlParameter("@DateTo", Convert.ToDateTime(txtFromDate.Text));
                                    var    ParamempID3 = new SqlParameter("@Edit_User", userId);
                                    var    ParamempID4 = new SqlParameter("@Edit_Date", DateTime.Now);
                                    var    ParamempID5 = new SqlParameter("@OCODE", OCODE);
                                    string SP_SQL      = "HRM_Insert_OTProcessLog @DateFrom, @DateTo, @Edit_User, @Edit_Date, @OCODE";
                                    _context.ExecuteStoreCommand(SP_SQL, ParamempID1, ParamempID2, ParamempID3, ParamempID4, ParamempID5);

                                    //
                                }

                                ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('Data Processed Successfully')", true);
                                grdview.DataSource = null;
                                grdview.DataBind();
                            }
                            catch (Exception ex)
                            {
                                ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('" + ex.Message + "')", true);
                            }
                        }
                    }
                    ClearUI();
                }

                else // dept/section/subsection wise process
                {
                    if (grdview.Rows.Count < 0)
                    {
                        ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('No Employee selected in the list!')", true);
                        return;
                    }



                    foreach (GridViewRow gvRow in grdview.Rows)
                    {
                        for (int i = 0; i < Convert.ToInt16(hdfTotalDay.Value); i++)
                        {
                            CheckBox rowChkBox = ((CheckBox)gvRow.FindControl("rowLevelCheckBox"));

                            HRM_AttendanceReason_Individual _attendance = new HRM_AttendanceReason_Individual();
                            Label    lblEID       = ((Label)gvRow.FindControl("lblEID"));
                            Label    lblShiftCode = ((Label)gvRow.FindControl("lblShiftCode"));
                            string   shiftCode    = lblShiftCode.Text;
                            string   EID          = lblEID.Text;
                            DateTime fromdate     = Convert.ToDateTime(txtFromDate.Text);

                            List <HRM_AttendanceReason_Individual> a_HRM_AttendanceReason_Individual = aAttendance_BLL.GetHRM_AttendanceReason_Individual(EID, fromdate.AddDays(i));

                            //var getAttendancedata = aAttendance_BLL.GetAttendanceByEID_Date(OCODE, EID, fromdate);

                            if (rowChkBox.Checked == true)
                            {
                                if (a_HRM_AttendanceReason_Individual.Count == 0)  //insert
                                {
                                    _attendance.EID        = lblEID.Text;
                                    _attendance.ReasonDate = fromdate.AddDays(i);
                                    _attendance.Remarks    = txtbxremark.Text;
                                    _attendance.Status     = "true";
                                    _attendance.ShiftCode  = shiftCode;
                                    _attendance.OCode      = ((SessionUser)Session["SessionUser"]).OCode;
                                    _attendance.Edit_Date  = DateTime.Now;
                                    _attendance.Edit_User  = ((SessionUser)Session["SessionUser"]).UserId;

                                    TimeSpan start_time = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtAttInTime.Hour, txtAttInTime.Minute, txtAttInTime.Second));
                                    _attendance.InTime = start_time;

                                    TimeSpan end_time = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtAttOutTime.Hour, txtAttOutTime.Minute, txtAttOutTime.Second));
                                    _attendance.OutTime = end_time;

                                    TimeSpan lateAllowed = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtLateAllowed.Hour, txtLateAllowed.Minute, txtLateAllowed.Second));
                                    _attendance.LateAllowed = lateAllowed;

                                    TimeSpan totalHour, hour1, hour2;

                                    if (start_time > end_time)
                                    {
                                        hour1     = TimeSpan.Parse("23:59:59");
                                        hour2     = Calculations.timeDiff(start_time, hour1);
                                        totalHour = hour2 + end_time;
                                        _attendance.Shift_TotalHour = totalHour;
                                    }
                                    else
                                    {
                                        totalHour = Calculations.timeDiff(start_time, end_time);
                                        _attendance.Shift_TotalHour = totalHour;
                                    }

                                    lstHRM_AttendanceReason_Individual.Add(_attendance);

                                    _context.HRM_AttendanceReason_Individual.AddObject(_attendance); //insert
                                    try
                                    {
                                        _context.SaveChanges();

                                        //if (getAttendancedata.Count > 0)
                                        //{
                                        //aAttendance_RPT_Bll.UpdateAll_AttStatus_ByDate(Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text)); // update attendnace status by date

                                        // insert/update leave/holiday attendnace status process by selected eid
                                        //aAttendance_RPT_Bll.Insert_Update_AbsentLeaveStatus_ByDate_EID1(lstHRM_AttendanceReason_Individual, Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text));

                                        //ot process

                                        //List<string> ShiftCodes = aAttendance_BLL.GetAllShiftCode(OCODE).ToList();

                                        //foreach (string ashiftcode in ShiftCodes)
                                        //{
                                        //    aAttendance_BLL.UpdateOT_ByDateandShift(Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text), ashiftcode);
                                        //}

                                        ////ot process log
                                        //var ParamempID1 = new SqlParameter("@DateFrom", Convert.ToDateTime(txtFromDate.Text));
                                        //var ParamempID2 = new SqlParameter("@DateTo", Convert.ToDateTime(txtFromDate.Text));
                                        //var ParamempID3 = new SqlParameter("@Edit_User", userId);
                                        //var ParamempID4 = new SqlParameter("@Edit_Date", DateTime.Now);
                                        //var ParamempID5 = new SqlParameter("@OCODE", OCODE);
                                        //string SP_SQL = "HRM_Insert_OTProcessLog @DateFrom, @DateTo, @Edit_User, @Edit_Date, @OCODE";
                                        //_context.ExecuteStoreCommand(SP_SQL, ParamempID1, ParamempID2, ParamempID3, ParamempID4, ParamempID5);

                                        //
                                        //}

                                        ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('Data Processed Successfully')", true);
                                        grdview.DataSource = null;
                                        grdview.DataBind();
                                    }
                                    catch (Exception ex)
                                    {
                                        ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('" + ex.Message + "')", true);
                                    }
                                }
                                else  //update
                                {
                                    DateTime iDate = fromdate.AddDays(i);

                                    foreach (var AttendanceReason in _context.HRM_AttendanceReason_Individual.Where(x => x.EID == EID && x.ReasonDate == iDate))
                                    {
                                        AttendanceReason.Remarks   = txtbxremark.Text;
                                        AttendanceReason.Status    = "true";
                                        AttendanceReason.ShiftCode = shiftCode;
                                        AttendanceReason.OCode     = ((SessionUser)Session["SessionUser"]).OCode;
                                        AttendanceReason.Edit_Date = DateTime.Now;
                                        AttendanceReason.Edit_User = ((SessionUser)Session["SessionUser"]).UserId;

                                        TimeSpan start_time = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtAttInTime.Hour, txtAttInTime.Minute, txtAttInTime.Second));
                                        AttendanceReason.InTime = start_time;

                                        TimeSpan end_time = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtAttOutTime.Hour, txtAttOutTime.Minute, txtAttOutTime.Second));
                                        AttendanceReason.OutTime = end_time;

                                        TimeSpan lateAllowed = TimeSpan.Parse(string.Format("{0}:{1}:{2}", txtLateAllowed.Hour, txtLateAllowed.Minute, txtLateAllowed.Second));
                                        _attendance.LateAllowed = lateAllowed;

                                        TimeSpan totalHour, hour1, hour2;

                                        if (start_time > end_time)
                                        {
                                            hour1     = TimeSpan.Parse("23:59:59");
                                            hour2     = Calculations.timeDiff(start_time, hour1);
                                            totalHour = hour2 + end_time;
                                            AttendanceReason.Shift_TotalHour = totalHour;
                                        }
                                        else
                                        {
                                            totalHour = Calculations.timeDiff(start_time, end_time);
                                            AttendanceReason.Shift_TotalHour = totalHour;
                                        }

                                        lstHRM_AttendanceReason_Individual.Add(AttendanceReason);
                                    }
                                    try
                                    {
                                        _context.SaveChanges();   //update

                                        //if (getAttendancedata.Count > 0)
                                        //{
                                        //aAttendance_RPT_Bll.UpdateAll_AttStatus_ByDate(Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text)); // update attendnace status by date

                                        // insert/update leave/holiday attendnace status process by selected eid
                                        //aAttendance_RPT_Bll.Insert_Update_AbsentLeaveStatus_ByDate_EID1(lstHRM_AttendanceReason_Individual, Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text));

                                        //ot process

                                        //List<string> ShiftCodes = aAttendance_BLL.GetAllShiftCode(OCODE).ToList();

                                        //foreach (string ashiftcode in ShiftCodes)
                                        //{
                                        //    aAttendance_BLL.UpdateOT_ByDateandShift(Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtFromDate.Text), ashiftcode);
                                        //}

                                        ////ot process log
                                        //var ParamempID1 = new SqlParameter("@DateFrom", Convert.ToDateTime(txtFromDate.Text));
                                        //var ParamempID2 = new SqlParameter("@DateTo", Convert.ToDateTime(txtFromDate.Text));
                                        //var ParamempID3 = new SqlParameter("@Edit_User", userId);
                                        //var ParamempID4 = new SqlParameter("@Edit_Date", DateTime.Now);
                                        //var ParamempID5 = new SqlParameter("@OCODE", OCODE);
                                        //string SP_SQL = "HRM_Insert_OTProcessLog @DateFrom, @DateTo, @Edit_User, @Edit_Date, @OCODE";
                                        //_context.ExecuteStoreCommand(SP_SQL, ParamempID1, ParamempID2, ParamempID3, ParamempID4, ParamempID5);

                                        //
                                        //}

                                        ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('Data Processed Successfully')", true);
                                        grdview.DataSource = null;
                                        grdview.DataBind();
                                    }
                                    catch (Exception ex)
                                    {
                                        ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('" + ex.Message + "')", true);
                                    }
                                }
                            }
                        }
                    }



                    ClearUI();
                }
            }
            catch (Exception ex)
            {
                string EID = Convert.ToString(((SessionUser)Session["SessionUser"]).EID);
                // LogController<ExtraShiftEmployeewise>.SetLog(ex, EID);
                ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "func('" + ex.Message + "')", true);
            }
        }