public void GetReport()
    {
        DateTime FromDate = new DateTime();
        DateTime ToDate   = new DateTime();
        string   Emplist  = string.Empty;

        if (Session["EmpList"] == null)
        {
            Response.Redirect("../Attendance_Report/AttendanceReport.aspx");
        }
        else
        {
            FromDate = objSys.getDateForInput(Session["FromDate"].ToString());
            ToDate   = objSys.getDateForInput(Session["ToDate"].ToString());

            Emplist = Session["EmpList"].ToString();

            DataTable dtFilter = new DataTable();

            AttendanceDataSet rptdata = new AttendanceDataSet();

            rptdata.EnforceConstraints = false;
            AttendanceDataSetTableAdapters.sp_Att_AttendanceRegister_ReportTableAdapter adp = new AttendanceDataSetTableAdapters.sp_Att_AttendanceRegister_ReportTableAdapter();

            adp.Fill(rptdata.sp_Att_AttendanceRegister_Report, Convert.ToDateTime(FromDate), Convert.ToDateTime(ToDate));



            if (Emplist != "")
            {
                dtFilter = new DataView(rptdata.sp_Att_AttendanceRegister_Report, "Emp_Id in (" + Emplist.Substring(0, Emplist.Length - 1) + ") ", "", DataViewRowState.CurrentRows).ToTable();
            }
            dtFilter = new DataView(dtFilter, "Is_Absent='True'", "", DataViewRowState.CurrentRows).ToTable();

            string CompanyName    = "";
            string CompanyAddress = "";
            string Imageurl       = "";

            DataTable DtCompany = objComp.GetCompanyMasterById(Session["CompId"].ToString());
            DataTable DtAddress = ObjAddress.GetAddressChildDataByAddTypeAndAddRefId("Company", Session["CompId"].ToString());
            if (DtCompany.Rows.Count > 0)
            {
                CompanyName = DtCompany.Rows[0]["Company_Name"].ToString();
                Imageurl    = "~/CompanyResource/" + Session["CompId"].ToString() + "/" + DtCompany.Rows[0]["Logo_Path"].ToString();
            }
            if (DtAddress.Rows.Count > 0)
            {
                CompanyAddress = DtAddress.Rows[0]["Address"].ToString();
            }
            RptShift.SetImage(Imageurl);
            RptShift.setTitleName("Absent Report" + " From " + FromDate.ToString(objSys.SetDateFormat()) + " To " + ToDate.ToString(objSys.SetDateFormat()));
            RptShift.setcompanyname(CompanyName);
            RptShift.setaddress(CompanyAddress);


            RptShift.DataSource     = dtFilter;
            RptShift.DataMember     = "sp_Att_AttendanceRegister_Report";
            rptViewer.Report        = RptShift;
            rptToolBar.ReportViewer = rptViewer;
        }
    }
    public void GetReport()
    {
        if (Session["SelectedEmpId"] == null)
        {
            return;
        }

        Table1.Rows.Clear();

        DataTable dtShortCode = (DataTable)Session["DtShortCode"];


        //set color and short code
        string Normal = "P";
        string Absent = (new DataView(dtShortCode, "Type='Absent'", "", DataViewRowState.CurrentRows).ToTable()).Rows[0]["ShortId"].ToString();


        string WeekOff   = (new DataView(dtShortCode, "Type='WeekOff'", "", DataViewRowState.CurrentRows).ToTable()).Rows[0]["ShortId"].ToString();
        string Holiday   = (new DataView(dtShortCode, "Type='Holiday'", "", DataViewRowState.CurrentRows).ToTable()).Rows[0]["ShortId"].ToString();
        string Leave     = "L";
        string Normalcol = (new DataView(dtShortCode, "Type='Normal'", "", DataViewRowState.CurrentRows).ToTable()).Rows[0]["ColorCOde"].ToString();
        string Absentcol = (new DataView(dtShortCode, "Type='Absent'", "", DataViewRowState.CurrentRows).ToTable()).Rows[0]["ColorCOde"].ToString();

        string Leavecol   = (new DataView(dtShortCode, "Type='Leave'", "", DataViewRowState.CurrentRows).ToTable()).Rows[0]["ColorCOde"].ToString();
        string WeekOffcol = (new DataView(dtShortCode, "Type='WeekOff'", "", DataViewRowState.CurrentRows).ToTable()).Rows[0]["ColorCOde"].ToString();
        string Holidaycol = (new DataView(dtShortCode, "Type='Holiday'", "", DataViewRowState.CurrentRows).ToTable()).Rows[0]["ColorCOde"].ToString();

        DateTime          dtFrom     = new DateTime(Convert.ToInt32(txtYear.Text), Convert.ToInt32(ddlMonth.SelectedValue), 1);
        DateTime          InitDtFrom = Convert.ToDateTime(dtFrom.ToString());
        int               totalDays  = DateTime.DaysInMonth(Convert.ToInt32(txtYear.Text), Convert.ToInt32(ddlMonth.SelectedValue.ToString()));
        DateTime          dtTo       = dtFrom.AddDays(totalDays - 1);
        DateTime          dtFromBK   = dtFrom;
        AttendanceDataSet rptdata    = new AttendanceDataSet();

        rptdata.EnforceConstraints = false;
        AttendanceDataSetTableAdapters.sp_Att_AttendanceRegister_ReportTableAdapter adp = new AttendanceDataSetTableAdapters.sp_Att_AttendanceRegister_ReportTableAdapter();
        adp.Fill(rptdata.sp_Att_AttendanceRegister_Report, Convert.ToDateTime(dtFrom.ToString()), Convert.ToDateTime(dtTo.ToString()));

        DataTable dtFilter = new DataTable();

        if (Session["SelectedEmpId"].ToString() != "")
        {
            dtFilter = new DataView(rptdata.sp_Att_AttendanceRegister_Report, "Emp_Id in (" + Session["SelectedEmpId"].ToString().Substring(0, Session["SelectedEmpId"].ToString().Length - 1) + ") ", "", DataViewRowState.CurrentRows).ToTable();
        }
        else
        {
            rptdata.sp_Att_AttendanceRegister_Report.Rows.Clear();
        }


        TableRow tr        = new TableRow();
        TableRow trWeekDay = new TableRow();

        trWeekDay.Cells.Add(new TableCell());
        trWeekDay.Cells.Add(new TableCell());
        trWeekDay.Cells.Add(new TableCell());
        TableCell tcSNO = new TableCell();

        tcSNO.Text = "SNO";
        tr.Cells.Add(tcSNO);
        TableCell tcId = new TableCell();

        tcId.Wrap = false;
        tcId.Text = "ID";

        tr.Cells.Add(tcId);
        TableCell tcName = new TableCell();

        tcName.Wrap = false;
        tcName.Text = "Name";

        tr.Cells.Add(tcName);
        int count = 1;

        while (count <= totalDays)
        {
            TableCell tcDay     = new TableCell();
            TableCell tcWeekDay = new TableCell();

            tcDay.Text     = count.ToString();
            tcWeekDay.Text = dtFrom.AddDays(count - 1).DayOfWeek.ToString().Substring(0, 2).ToUpper();
            tr.Cells.Add(tcDay);
            trWeekDay.Cells.Add(tcWeekDay);
            count++;
        }
        TableCell tcPresent = new TableCell();

        tcPresent.RowSpan = 2;

        tcPresent.Text = "Present/Total";
        tr.Cells.Add(tcPresent);

        Table1.Rows.Add(tr);
        Table1.Rows.Add(trWeekDay);

        DataTable dtEmpList  = dtFilter.DefaultView.ToTable(true, "Emp_Id");
        int       empCounter = 0;

        if (dtEmpList.Rows.Count > 0)
        {
            while (empCounter < dtEmpList.Rows.Count)
            {
                DataTable dtAttbyEmpId = new DataView(dtFilter, "Emp_Id = '" + dtEmpList.Rows[empCounter][0].ToString() + "'", "Att_Date", DataViewRowState.CurrentRows).ToTable();

                DateTime dtFromTemp = InitDtFrom;
                DateTime dtToTemp   = dtTo;
                int      maxshift   = 0;
                while (dtFromTemp < dtToTemp)
                {
                    dtFromTemp = dtFromTemp.AddDays(1);
                    DataTable dtTempDateRecordEmp = new DataView(dtAttbyEmpId, "Att_Date = '" + dtFromTemp.ToString("dd-MMM-yyyy") + "'", "Att_Date", DataViewRowState.CurrentRows).ToTable();

                    if (maxshift < dtTempDateRecordEmp.Rows.Count)
                    {
                        maxshift = dtTempDateRecordEmp.Rows.Count;
                    }
                }

                TableRow[] trEmp   = new TableRow[maxshift];
                int[]      absent  = new int[maxshift];
                int[]      present = new int[maxshift];
                int[]      early   = new int[maxshift];
                int[]      late    = new int[maxshift];
                int[]      total   = new int[maxshift];


                try
                {
                    present[0] = 0;
                    early[0]   = 0;
                    late[0]    = 0;
                    total[0]   = 0;
                }
                catch
                {
                }
                int tempcounter = 0;

                while (tempcounter < maxshift)
                {
                    trEmp[tempcounter] = new TableRow();
                    tempcounter++;
                }

                TableCell tcSNOEmp = new TableCell();
                tcSNOEmp.Text = (empCounter + 1).ToString();
                if (maxshift > 0)
                {
                    trEmp[0].Cells.Add(tcSNOEmp);



                    TableCell tcNameEmp1 = new TableCell();
                    tcNameEmp1.Text = dtAttbyEmpId.Rows[1]["Emp_Code"].ToString();

                    trEmp[0].Cells.Add(tcNameEmp1);



                    TableCell tcNameEmp = new TableCell();
                    tcNameEmp.Text = dtAttbyEmpId.Rows[0]["Emp_Name"].ToString();

                    trEmp[0].Cells.Add(tcNameEmp);



                    dtFrom = dtFromBK;
                }
                int presentcount = 0;
                while (dtFrom <= dtTo)
                {
                    int shiftCounter = 0;

                    DataTable dtTempDateRecordEmp = new DataView(dtAttbyEmpId, "Att_Date = '" + dtFrom.ToString("dd-MMM-yyyy") + "'", "Att_Date", DataViewRowState.CurrentRows).ToTable();


                    while (shiftCounter < maxshift)
                    {
                        TableCell tcDay  = new TableCell();
                        string    attEmp = string.Empty;

                        if (shiftCounter < dtTempDateRecordEmp.Rows.Count)
                        {
                            if ((Convert.ToBoolean(dtTempDateRecordEmp.Rows[shiftCounter]["Is_Week_Off"].ToString())))
                            {
                                attEmp          = attEmp + WeekOff;
                                tcDay.BackColor = System.Drawing.ColorTranslator.FromHtml(hextoint(WeekOffcol).ToString());
                            }
                            else if ((Convert.ToBoolean(dtTempDateRecordEmp.Rows[shiftCounter]["Is_Holiday"].ToString())))
                            {
                                attEmp          = attEmp + Holiday;
                                tcDay.BackColor = System.Drawing.ColorTranslator.FromHtml(hextoint(Holidaycol).ToString());
                            }


                            else if (Convert.ToBoolean(dtTempDateRecordEmp.Rows[shiftCounter]["Is_Leave"].ToString()))
                            {
                                attEmp          = attEmp + Leave;
                                tcDay.BackColor = System.Drawing.ColorTranslator.FromHtml(hextoint(Leavecol).ToString());
                            }
                            else if (Convert.ToBoolean(dtTempDateRecordEmp.Rows[shiftCounter]["Is_Absent"].ToString()))
                            {
                                attEmp          = attEmp + Absent;
                                tcDay.BackColor = System.Drawing.ColorTranslator.FromHtml(hextoint(Absentcol).ToString());
                            }
                            else
                            {
                                attEmp = attEmp + Normal;

                                tcDay.BackColor = System.Drawing.ColorTranslator.FromHtml(hextoint(Normalcol).ToString());
                                presentcount++;
                            }
                            absent[shiftCounter] = absent[shiftCounter] + 1;
                        }
                        else
                        {
                            attEmp = "-";
                        }


                        tcDay.Text = attEmp;
                        trEmp[shiftCounter].Cells.Add(tcDay);
                        trEmp[shiftCounter].Cells.Add(tcDay);

                        if (dtFrom == dtTo)
                        {
                            TableCell tcabsnt = new TableCell();
                            tcabsnt.Text = presentcount.ToString() + "/" + totalDays.ToString();
                            trEmp[shiftCounter].Cells.Add(tcabsnt);
                        }



                        //

                        shiftCounter = shiftCounter + 1;
                    }


                    dtFrom = dtFrom.AddDays(1);
                }



                for (int maxcounter = 1; maxcounter <= maxshift; maxcounter++)
                {
                    if (maxcounter < maxshift)
                    {
                        trEmp[maxcounter].Cells.AddAt(0, new TableCell());
                        trEmp[maxcounter].Cells.AddAt(0, new TableCell());
                        trEmp[maxcounter].Cells.AddAt(0, new TableCell());
                    }

                    Table1.Rows.Add(trEmp[maxcounter - 1]);
                }



                empCounter++;
            }
        }
        lblmonthname.Text = "Month " + ": " + ddlMonth.SelectedItem.Text;
    }
    public void GetReport()
    {
        DateTime FromDate = new DateTime();
        DateTime ToDate   = new DateTime();
        string   Emplist  = string.Empty;

        if (Session["EmpList"] == null)
        {
            Response.Redirect("../Attendance_Report/AttendanceReport.aspx");
        }
        else
        {
            FromDate = objSys.getDateForInput(Session["FromDate"].ToString());
            ToDate   = objSys.getDateForInput(Session["ToDate"].ToString());

            Emplist = Session["EmpList"].ToString();

            DataTable dtFilter = new DataTable();

            AttendanceDataSet rptdata = new AttendanceDataSet();

            rptdata.EnforceConstraints = false;
            AttendanceDataSetTableAdapters.sp_Att_AttendanceRegister_ReportTableAdapter adp = new AttendanceDataSetTableAdapters.sp_Att_AttendanceRegister_ReportTableAdapter();

            adp.Fill(rptdata.sp_Att_AttendanceRegister_Report, Convert.ToDateTime(FromDate), Convert.ToDateTime(ToDate));



            if (Emplist != "")
            {
                dtFilter = new DataView(rptdata.sp_Att_AttendanceRegister_Report, "Emp_Id in (" + Emplist.Substring(0, Emplist.Length - 1) + ") ", "", DataViewRowState.CurrentRows).ToTable();
            }

            DataTable dtReport = dtFilter.Clone();


            for (int i = 0; i < dtFilter.Rows.Count; i++)
            {
                if (dtFilter.Rows[i]["In_Time"].ToString().Contains("00:00") && dtFilter.Rows[i]["Out_Time"].ToString().Contains("00:00"))
                {
                    //  dtFilter.Rows[i]["Field1"] = "NA";
                    //  dtReport.ImportRow(dtFilter.Rows[i]);
                }
                else if (!dtFilter.Rows[i]["In_Time"].ToString().Contains("00:00") && dtFilter.Rows[i]["Out_Time"].ToString().Contains("00:00"))
                {
                    if (!Convert.ToBoolean(dtFilter.Rows[i]["Is_Leave"].ToString()) && !Convert.ToBoolean(dtFilter.Rows[i]["Is_Holiday"].ToString()) && !Convert.ToBoolean(dtFilter.Rows[i]["Is_Week_Off"].ToString()))
                    {
                        dtFilter.Rows[i]["Field1"] = "Out";
                        dtReport.ImportRow(dtFilter.Rows[i]);
                    }
                }

                else if (dtFilter.Rows[i]["In_Time"].ToString().Contains("00:00") && !dtFilter.Rows[i]["Out_Time"].ToString().Contains("00:00"))
                {
                    if (!Convert.ToBoolean(dtFilter.Rows[i]["Is_Leave"].ToString()) && !Convert.ToBoolean(dtFilter.Rows[i]["Is_Holiday"].ToString()) && !Convert.ToBoolean(dtFilter.Rows[i]["Is_Week_Off"].ToString()))
                    {
                        dtFilter.Rows[i]["Field1"] = "In";
                        dtReport.ImportRow(dtFilter.Rows[i]);
                    }
                }
            }



            string CompanyName    = "";
            string CompanyAddress = "";
            string Imageurl       = "";

            DataTable DtCompany = objComp.GetCompanyMasterById(Session["CompId"].ToString());
            DataTable DtAddress = ObjAddress.GetAddressChildDataByAddTypeAndAddRefId("Company", Session["CompId"].ToString());
            if (DtCompany.Rows.Count > 0)
            {
                CompanyName = DtCompany.Rows[0]["Company_Name"].ToString();
                Imageurl    = "~/CompanyResource/" + Session["CompId"].ToString() + "/" + DtCompany.Rows[0]["Logo_Path"].ToString();
            }
            if (DtAddress.Rows.Count > 0)
            {
                CompanyAddress = DtAddress.Rows[0]["Address"].ToString();
            }
            RptShift.SetImage(Imageurl);
            RptShift.setTitleName("In Out Exception Report" + " From " + FromDate.ToString(objSys.SetDateFormat()) + " To " + ToDate.ToString(objSys.SetDateFormat()));
            RptShift.setcompanyname(CompanyName);
            RptShift.setaddress(CompanyAddress);


            RptShift.DataSource     = dtReport;
            RptShift.DataMember     = "sp_Att_AttendanceRegister_Report";
            rptViewer.Report        = RptShift;
            rptToolBar.ReportViewer = rptViewer;
        }
    }
    public void GetReport()
    {
        DateTime FromDate  = new DateTime();
        DateTime ToDate    = new DateTime();
        DateTime FromDate1 = new DateTime();
        string   Emplist   = string.Empty;

        if (Session["EmpList"] == null)
        {
            Response.Redirect("../Attendance_Report/AttendanceReport.aspx");
        }
        else
        {
            FromDate  = objSys.getDateForInput(Session["FromDate"].ToString());
            ToDate    = objSys.getDateForInput(Session["ToDate"].ToString());
            FromDate1 = FromDate;
            Emplist   = Session["EmpList"].ToString();

            DataTable dtFilter = new DataTable();

            AttendanceDataSet rptdata = new AttendanceDataSet();

            rptdata.EnforceConstraints = false;
            AttendanceDataSetTableAdapters.sp_Att_AttendanceRegister_ReportTableAdapter adp = new AttendanceDataSetTableAdapters.sp_Att_AttendanceRegister_ReportTableAdapter();

            adp.Fill(rptdata.sp_Att_AttendanceRegister_Report, Convert.ToDateTime(FromDate), Convert.ToDateTime(ToDate));



            if (Emplist != "")
            {
                dtFilter = new DataView(rptdata.sp_Att_AttendanceRegister_Report, "Emp_Id in (" + Emplist.Substring(0, Emplist.Length - 1) + ") ", "", DataViewRowState.CurrentRows).ToTable();
            }

            DataTable dtEmp  = dtFilter.DefaultView.ToTable(true, "Emp_Id");
            DataTable dtTemp = new DataTable();

            DataTable dtSalary = new DataTable();
            dtSalary = dtFilter.Clone();
            int Total_Days          = 0;
            int Days_In_WorkMin     = 0;
            int Worked_Days         = 0;
            int Week_Off_Days       = 0;
            int Holiday_Days        = 0;
            int Leave_Days          = 0;
            int Absent_Days         = 0;
            int Assigned_Worked_Min = 0;


            double Basic_Salary              = 0;
            double Basic_Min_Salary          = 0;
            double Normal_OT_Salary          = 0;
            double Week_Off_OT_Salary        = 0;
            double Holiday_OT_Salary         = 0;
            double Absent_Penalty            = 0;
            double Late_Penalty_Min          = 0;
            double Early_Penalty_Min         = 0;
            double Partial_Penalty_Min       = 0;
            int    Total_Worked_Min          = 0;
            int    Holiday_OT_Min            = 0;
            int    Week_Off_OT_Min           = 0;
            int    Normal_OT_Min             = 0;
            int    Late_Min                  = 0;
            int    Early_Min                 = 0;
            int    Partial_Min               = 0;
            double Basic_Work_Salary         = 0;
            double Normal_OT_Work_Salary     = 0;
            double WeekOff_OT_Work_Salary    = 0;
            double Holiday_OT_Work_Salary    = 0;
            double Week_Off_Days_Salary      = 0;
            double Holiday_Days_Salary       = 0;
            double Leave_Days_Salary         = 0;
            double Absent_Day_Penalty        = 0;
            double Late_Min_Penalty          = 0;
            double Early_Min_Penalty         = 0;
            double Parital_Violation_Penalty = 0;


            bool   IsEmpLate            = false;
            bool   IsEmpEarly           = false;
            bool   IsEmpPartial         = false;
            string LateMethod           = string.Empty;
            string EarlyMethod          = string.Empty;
            string PartialMethod        = string.Empty;
            int    LatePenaltyDedMin    = 0;
            int    EarlyPenaltyDedMin   = 0;
            int    PartialPenaltyDedMin = 0;
            int    PartialMin           = 0;
            int    TotalOTMin           = 0;
            double TotalGrossSalary     = 0;
            int    j = 0;
            for (int i = 0; i < dtEmp.Rows.Count; i++)
            {
                FromDate             = FromDate1;
                IsEmpLate            = false;
                IsEmpEarly           = false;
                IsEmpPartial         = false;
                LateMethod           = string.Empty;
                EarlyMethod          = string.Empty;
                PartialMethod        = string.Empty;
                LatePenaltyDedMin    = 0;
                EarlyPenaltyDedMin   = 0;
                PartialPenaltyDedMin = 0;
                TotalOTMin           = 0;

                Assigned_Worked_Min = 0;


                Basic_Salary        = 0;
                Basic_Min_Salary    = 0;
                Normal_OT_Salary    = 0;
                Week_Off_OT_Salary  = 0;
                Holiday_OT_Salary   = 0;
                Absent_Penalty      = 0;
                Late_Penalty_Min    = 0;
                Early_Penalty_Min   = 0;
                Partial_Penalty_Min = 0;
                TotalGrossSalary    = 0;
                try
                {
                    IsEmpEarly   = Convert.ToBoolean(objEmpParam.GetEmployeeParameterByParameterName(dtEmp.Rows[i]["Emp_Id"].ToString(), "Field2"));
                    IsEmpLate    = Convert.ToBoolean(objEmpParam.GetEmployeeParameterByParameterName(dtEmp.Rows[i]["Emp_Id"].ToString(), "Field1"));
                    IsEmpPartial = Convert.ToBoolean(objEmpParam.GetEmployeeParameterByParameterName(dtEmp.Rows[i]["Emp_Id"].ToString(), "Is_Partial_Enable"));

                    LateMethod           = objAppParam.GetApplicationParameterValueByParamName("Is_Late_Penalty_Method", Session["CompId"].ToString());
                    EarlyMethod          = objAppParam.GetApplicationParameterValueByParamName("Is_Early_Penalty_Method", Session["CompId"].ToString());
                    PartialMethod        = objAppParam.GetApplicationParameterValueByParamName("Partial_Penalty_Method", Session["CompId"].ToString());
                    LatePenaltyDedMin    = int.Parse(objAppParam.GetApplicationParameterValueByParamName("Late_Penalty_Min_Deduct", Session["CompId"].ToString()));
                    EarlyPenaltyDedMin   = int.Parse(objAppParam.GetApplicationParameterValueByParamName("Early_Penalty_Min_Deduct", Session["CompId"].ToString()));
                    PartialPenaltyDedMin = int.Parse(objAppParam.GetApplicationParameterValueByParamName("Partial_Penalty_Min_Deduct", Session["CompId"].ToString()));
                    Total_Days           = ToDate.Subtract(FromDate).Days + 1;

                    Days_In_WorkMin = int.Parse(objEmpParam.GetEmployeeParameterByParameterName(dtEmp.Rows[i]["Emp_Id"].ToString(), "Assign_Min"));
                }
                catch
                {
                }

                try
                {
                    Basic_Salary = double.Parse(objEmpParam.GetEmployeeParameterByParameterName(dtEmp.Rows[i]["Emp_Id"].ToString(), "Basic_Salary"));
                }
                catch
                {
                }

                int assingmin = 0;
                try
                {
                    assingmin = int.Parse(objEmpParam.GetEmployeeParameterByParameterName(dtEmp.Rows[i]["Emp_Id"].ToString(), "Assign_Min"));
                }
                catch
                {
                }

                Basic_Min_Salary = Basic_Salary / (Total_Days * assingmin);
                if (Basic_Min_Salary.ToString() == "NaN")
                {
                    Basic_Min_Salary = 0;
                }

                Normal_OT_Salary   = GetOTOneMinSalary(dtEmp.Rows[i]["Emp_Id"].ToString(), "Normal", Basic_Min_Salary);
                Week_Off_OT_Salary = GetOTOneMinSalary(dtEmp.Rows[i]["Emp_Id"].ToString(), "WeekOff", Basic_Min_Salary);
                Holiday_OT_Salary  = GetOTOneMinSalary(dtEmp.Rows[i]["Emp_Id"].ToString(), "Holiday", Basic_Min_Salary);

                Absent_Penalty = OnDayAbsentSalary(Basic_Min_Salary, dtEmp.Rows[i]["Emp_Id"].ToString());

                Late_Penalty_Min = OnMinuteLatePenalty(Basic_Min_Salary, dtEmp.Rows[i]["Emp_Id"].ToString());

                Early_Penalty_Min = OnMinuteEarlyPenalty(Basic_Min_Salary, dtEmp.Rows[i]["Emp_Id"].ToString());

                Partial_Penalty_Min = OnMinuteParialPenalty(Basic_Min_Salary, dtEmp.Rows[i]["Emp_Id"].ToString());


                while (FromDate <= ToDate)
                {
                    PartialMin = 0;

                    Total_Worked_Min          = 0;
                    Holiday_OT_Min            = 0;
                    Week_Off_OT_Min           = 0;
                    Normal_OT_Min             = 0;
                    Late_Min                  = 0;
                    Early_Min                 = 0;
                    Partial_Min               = 0;
                    Basic_Work_Salary         = 0;
                    Normal_OT_Work_Salary     = 0;
                    WeekOff_OT_Work_Salary    = 0;
                    Holiday_OT_Work_Salary    = 0;
                    Week_Off_Days_Salary      = 0;
                    Holiday_Days_Salary       = 0;
                    Leave_Days_Salary         = 0;
                    Absent_Day_Penalty        = 0;
                    Late_Min_Penalty          = 0;
                    Early_Min_Penalty         = 0;
                    Parital_Violation_Penalty = 0;
                    PartialMin                = 0;


                    dtTemp = dtFilter.Clone();
                    dtTemp = new DataView(dtFilter, "Att_Date='" + FromDate.ToString("dd-MMM-yyyy") + "' and Emp_Id='" + dtEmp.Rows[i]["Emp_Id"].ToString() + "'   ", "", DataViewRowState.CurrentRows).ToTable();


                    if (dtTemp.Rows.Count > 0)
                    {
                        for (int k = 0; k < dtTemp.Rows.Count; k++)
                        {
                            dtSalary.ImportRow(dtTemp.Rows[k]);

                            dtSalary.Rows[j]["Field2"] = "";
                            dtSalary.Rows[j]["Field3"] = "";
                            dtSalary.Rows[j]["Field4"] = "";
                            //
                            Late_Min = int.Parse(dtTemp.Rows[k]["LateMin"].ToString());

                            if (IsEmpLate && LateMethod == "Min")
                            {
                                Late_Min = Late_Min * LatePenaltyDedMin;
                            }

                            Early_Min = int.Parse(dtTemp.Rows[k]["EarlyMin"].ToString());

                            if (IsEmpEarly && EarlyMethod == "Min")
                            {
                                Early_Min = Early_Min * EarlyPenaltyDedMin;
                            }

                            PartialMin       = int.Parse(dtTemp.Rows[k]["Partial_Violation_Min"].ToString());
                            Total_Worked_Min = int.Parse(dtTemp.Rows[k]["TotalAssign_Min"].ToString());
                            Days_In_WorkMin  = int.Parse(dtTemp.Rows[k]["EffectiveWork_Min"].ToString());

                            // Days_In_WorkMin = int.Parse(getWorkMinute(Days_In_WorkMin.ToString(),Total_Worked_Min.ToString()));

                            Normal_OT_Min   = int.Parse(dtTemp.Rows[k]["OverTime_Min"].ToString());
                            Week_Off_OT_Min = int.Parse(dtTemp.Rows[k]["Week_Off_Min"].ToString());
                            Holiday_OT_Min  = int.Parse(dtTemp.Rows[k]["Holiday_Min"].ToString());

                            Late_Min_Penalty          = Late_Min * Late_Penalty_Min;
                            Early_Min_Penalty         = Early_Penalty_Min * Early_Min;
                            Parital_Violation_Penalty = Partial_Penalty_Min * PartialMin;
                            Absent_Day_Penalty        = Absent_Penalty * Total_Worked_Min;

                            Basic_Work_Salary = Basic_Min_Salary * Days_In_WorkMin;

                            Normal_OT_Work_Salary  = Normal_OT_Salary * Normal_OT_Min;
                            WeekOff_OT_Work_Salary = Week_Off_OT_Salary * Week_Off_OT_Min;
                            Holiday_OT_Work_Salary = Holiday_OT_Salary * Holiday_OT_Min;

                            double TotalSalary = 0;

                            TotalOTMin += int.Parse(dtTemp.Rows[k]["OverTime_Min"].ToString());
                            if (Convert.ToBoolean(dtTemp.Rows[k]["Is_Week_Off"].ToString()))
                            {
                                dtSalary.Rows[j]["Field4"] = System.Math.Round(WeekOff_OT_Work_Salary, 2).ToString();
                                TotalSalary = Total_Worked_Min * Basic_Min_Salary;
                                dtSalary.Rows[j]["OverTime_Min"] = dtTemp.Rows[k]["Week_Off_Min"];
                                TotalOTMin += int.Parse(dtTemp.Rows[k]["Week_Off_Min"].ToString());
                            }
                            else if (Convert.ToBoolean(dtTemp.Rows[k]["Is_Holiday"].ToString()))
                            {
                                dtSalary.Rows[j]["Field4"] = System.Math.Round(Holiday_OT_Work_Salary, 2).ToString();
                                TotalSalary = Total_Worked_Min * Basic_Min_Salary;
                                dtSalary.Rows[j]["OverTime_Min"] = dtTemp.Rows[k]["Holiday_Min"];
                                TotalOTMin += int.Parse(dtTemp.Rows[k]["Holiday_Min"].ToString());
                            }
                            else if (Convert.ToBoolean(dtTemp.Rows[k]["Is_Leave"].ToString()))
                            {
                                TotalSalary = Total_Worked_Min * Basic_Min_Salary;
                                dtSalary.Rows[j]["Field4"] = "0";
                            }
                            else if (Convert.ToBoolean(dtTemp.Rows[k]["Is_Absent"].ToString()))
                            {
                                TotalSalary = Basic_Work_Salary - Absent_Day_Penalty;
                                dtSalary.Rows[j]["Field4"] = "0";
                            }
                            else if (Days_In_WorkMin != 0)
                            {
                                dtSalary.Rows[j]["Field4"] = System.Math.Round(Normal_OT_Work_Salary, 2).ToString();
                            }
                            TotalSalary = Basic_Work_Salary - Late_Min_Penalty - Early_Min_Penalty - Parital_Violation_Penalty;

                            dtSalary.Rows[j]["Field3"] = System.Math.Round(TotalSalary, 2).ToString();

                            dtSalary.Rows[j]["Field2"] = TotalOTMin.ToString();
                            try
                            {
                                TotalGrossSalary = TotalGrossSalary + TotalSalary + double.Parse(dtSalary.Rows[j]["Field4"].ToString());
                            }
                            catch
                            {
                                TotalGrossSalary = TotalGrossSalary + TotalSalary;
                            }
                            dtSalary.Rows[j]["Field5"] = System.Math.Round(TotalGrossSalary, 2).ToString();

                            //

                            j++;
                        }
                    }


                    FromDate = FromDate.AddDays(1);
                }
            }


            string CompanyName    = "";
            string CompanyAddress = "";
            string Imageurl       = "";

            DataTable DtCompany = objComp.GetCompanyMasterById(Session["CompId"].ToString());
            DataTable DtAddress = ObjAddress.GetAddressChildDataByAddTypeAndAddRefId("Company", Session["CompId"].ToString());
            if (DtCompany.Rows.Count > 0)
            {
                CompanyName = DtCompany.Rows[0]["Company_Name"].ToString();
                Imageurl    = "~/CompanyResource/" + Session["CompId"].ToString() + "/" + DtCompany.Rows[0]["Logo_Path"].ToString();
            }
            if (DtAddress.Rows.Count > 0)
            {
                CompanyAddress = DtAddress.Rows[0]["Address"].ToString();
            }
            RptShift.SetImage(Imageurl);
            RptShift.setTitleName("Daily Salary Report" + " From " + FromDate1.ToString(objSys.SetDateFormat()) + " To " + ToDate.ToString(objSys.SetDateFormat()));
            RptShift.setcompanyname(CompanyName);
            RptShift.setaddress(CompanyAddress);


            RptShift.DataSource     = dtSalary;
            RptShift.DataMember     = "sp_Att_AttendanceRegister_Report";
            rptViewer.Report        = RptShift;
            rptToolBar.ReportViewer = rptViewer;
        }
    }