private void GetpaidLeavesData(int locationID, DateTime startDt, DateTime EndDt,int shiftID) { try { EmployeeBL obj = new EmployeeBL(); DataTable dt = obj.GetEmpPaidleavesDetailsByLocation(locationID,startDt,EndDt,shiftID); lblLeaveReport.Text = "(" + startDt.ToString("MM/dd/yyyy") + "-" + EndDt.ToString("MM/dd/yyyy") + ")"; if (dt.Rows.Count > 0) { grdUsers.DataSource = dt; Session["AllPaidLeavesData"] = dt; grdUsers.DataBind(); lblTotal.Visible = true; lblTotal.Text = "Total Employee(s) :" + dt.Rows.Count; lblNodata.Visible = false; dvlblNodata.Style["display"] = "none"; } else { lblNodata.Visible = true; dvlblNodata.Style["display"] = "block"; lblNodata.Text = "No data found"; lblTotal.Text = ""; grdUsers.DataSource = null; grdUsers.DataBind(); } } catch (Exception ex) { } }
private DataTable GetReportIndia1(DateTime StartDate, DateTime EndTime, int LocationID, int shiftID) { DataTable dtPayroll = new DataTable(); dtPayroll.Columns.Add("empid", typeof(string)); dtPayroll.Columns.Add("Empname", typeof(string)); dtPayroll.Columns.Add("PEmpname", typeof(string)); dtPayroll.Columns.Add("Termdate", typeof(DateTime)); dtPayroll.Columns.Add("Startdate", typeof(DateTime)); dtPayroll.Columns.Add("DeptName", typeof(string)); dtPayroll.Columns.Add("LocationName", typeof(string)); dtPayroll.Columns.Add("MasterEmpType", typeof(string)); dtPayroll.Columns.Add("LocDescriptiom", typeof(string)); dtPayroll.Columns.Add("userid", typeof(string)); dtPayroll.Columns.Add("Workingdays", typeof(int)); dtPayroll.Columns.Add("Present", typeof(double)); dtPayroll.Columns.Add("paidLeaves", typeof(int)); dtPayroll.Columns.Add("Leaves", typeof(int)); dtPayroll.Columns.Add("Holidays", typeof(int)); dtPayroll.Columns.Add("LeavesAvailable", typeof(int)); dtPayroll.Columns.Add("PaidLeaveStartDt", typeof(DateTime)); dtPayroll.Columns.Add("PaidLeavesBalanced", typeof(int)); dtPayroll.Columns.Add("PaidLeavesUsed", typeof(int)); dtPayroll.Columns.Add("CalLeaves", typeof(int)); dtPayroll.Columns.Add("Salary", typeof(double)); dtPayroll.Columns.Add("Noshow", typeof(int)); dtPayroll.Columns.Add("CalSalary", typeof(double)); dtPayroll.Columns.Add("Bonus", typeof(double)); dtPayroll.Columns.Add("Incentives", typeof(double)); dtPayroll.Columns.Add("PrevUnpaid", typeof(double)); dtPayroll.Columns.Add("AdvancePaid", typeof(double)); dtPayroll.Columns.Add("Expenses", typeof(double)); dtPayroll.Columns.Add("LoanDeduct", typeof(double)); dtPayroll.Columns.Add("TotalPay", typeof(double)); try { DataSet ds = new DataSet(); SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AttendanceConn"].ToString()); SqlCommand cmd = new SqlCommand(); SqlDataAdapter da = new SqlDataAdapter("[USP_FnAdmin]", con); da.SelectCommand.Parameters.Add(new SqlParameter("@shiftID", shiftID)); da.SelectCommand.Parameters.Add(new SqlParameter("@LocationID", LocationID)); da.SelectCommand.Parameters.Add(new SqlParameter("@startdate", StartDate)); da.SelectCommand.Parameters.Add(new SqlParameter("@EndDate", EndTime)); da.SelectCommand.CommandType = CommandType.StoredProcedure; da.Fill(ds); EmployeeBL obj = new EmployeeBL(); // DataTable dtPaid = GetPayrollDataByLoc(LocationID, StartDate.AddMonths(-1), StartDate.AddSeconds(-1)); DataTable dtPaid1 = obj.Usp_GetEmployeePayrollDataByLocation(LocationID, StartDate, EndTime,Convert.ToInt32(ddlShift.SelectedValue)); DataTable dtPaid = obj.GetEmpPaidleavesDetailsByLocation(LocationID, StartDate.AddMonths(-1), StartDate.AddSeconds(-1),Convert.ToInt32(ddlShift.SelectedValue)); int days = (Convert.ToInt32(EndTime.ToString("dd")) - Convert.ToInt32(StartDate.ToString("dd"))) + 1; if (ds.Tables.Count > 0) { if (ds.Tables.Count > 1) { for (int j = 0; j < ds.Tables[0].Rows.Count; j++) { dtPayroll.Rows.Add(); if (dtPaid1.Rows.Count > 0) { DataView dvP = dtPaid1.DefaultView; DataTable dtPaidLev = new DataTable(); dvP.RowFilter = "empid='" + ds.Tables[0].Rows[j]["empid"].ToString() + "'"; dtPaidLev = dvP.ToTable(); dtPayroll.Rows[j]["userid"] = ds.Tables[0].Rows[j]["userid"].ToString(); dtPayroll.Rows[j]["empid"] = ds.Tables[0].Rows[j]["empid"].ToString(); dtPayroll.Rows[j]["Empname"] = ds.Tables[0].Rows[j]["firstName"].ToString() + " " + ds.Tables[0].Rows[j]["lastname"].ToString(); dtPayroll.Rows[j]["PEmpname"] = ds.Tables[0].Rows[j]["PfirstName"].ToString() + " " + ds.Tables[0].Rows[j]["Plastname"].ToString(); dtPayroll.Rows[j]["Termdate"] = ds.Tables[0].Rows[j]["Termdate"].ToString() == "NULL" ? Convert.ToDateTime("01/01/1900") : ds.Tables[0].Rows[j]["Termdate"].ToString() == "" ? Convert.ToDateTime("01/01/1900") : Convert.ToDateTime(Convert.ToDateTime(ds.Tables[0].Rows[j]["Termdate"]).ToString("MM/dd/yyyy")); dtPayroll.Rows[j]["Startdate"] = ds.Tables[0].Rows[j]["Startdate"].ToString() == "NULL" ? Convert.ToDateTime("01/01/1900") : ds.Tables[0].Rows[j]["Startdate"].ToString() == "" ? Convert.ToDateTime("01/01/1900") : Convert.ToDateTime(Convert.ToDateTime(ds.Tables[0].Rows[j]["Startdate"]).ToString("MM/dd/yyyy")); dtPayroll.Rows[j]["DeptName"] = ds.Tables[0].Rows[j]["DeptName"].ToString() == "NULL" ? "" : ds.Tables[0].Rows[j]["DeptName"].ToString(); dtPayroll.Rows[j]["LocationName"] = ds.Tables[0].Rows[j]["LocationName"].ToString() == "NULL" ? "" : ds.Tables[0].Rows[j]["LocationName"].ToString(); dtPayroll.Rows[j]["MasterEmpType"] = ds.Tables[0].Rows[j]["EmpType"].ToString() == "NULL" ? "" : ds.Tables[0].Rows[j]["EmpType"].ToString(); dtPayroll.Rows[j]["LocDescriptiom"] = ds.Tables[0].Rows[j]["LocDescriptiom"].ToString() == "NULL" ? "" : ds.Tables[0].Rows[j]["LocDescriptiom"].ToString(); dtPayroll.Rows[j]["Salary"] = ds.Tables[0].Rows[j]["Salary"].ToString() == "" ? 0.0 : ds.Tables[0].Rows[j]["Salary"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(ds.Tables[0].Rows[j]["Salary"].ToString()); dtPayroll.Rows[j]["Workingdays"] = dtPaidLev.Rows[0]["WkngDays"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["WkngDays"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["WkngDays"].ToString()); dtPayroll.Rows[j]["Present"] = dtPaidLev.Rows[0]["Atndays"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["Atndays"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["Atndays"].ToString()); dtPayroll.Rows[j]["Leaves"] = dtPaidLev.Rows[0]["Leaves"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["Leaves"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["Leaves"].ToString()); dtPayroll.Rows[j]["Noshow"] = dtPaidLev.Rows[0]["Noshow"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["Noshow"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["Noshow"].ToString()); dtPayroll.Rows[j]["LeavesAvailable"] = dtPaidLev.Rows[0]["PaidLeaves"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["PaidLeaves"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["PaidLeaves"].ToString()); dtPayroll.Rows[j]["PaidLeavesUsed"] = dtPaidLev.Rows[0]["PaidLeavesUsed"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["PaidLeavesUsed"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["PaidLeavesUsed"].ToString()); dtPayroll.Rows[j]["PaidLeavesBalanced"] = dtPaidLev.Rows[0]["PaidLeavesBalanced"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["PaidLeavesBalanced"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["PaidLeavesBalanced"].ToString()); dtPayroll.Rows[j]["CalLeaves"] = dtPaidLev.Rows[0]["TotalCalLeaves"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["TotalCalLeaves"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["TotalCalLeaves"].ToString()); dtPayroll.Rows[j]["CalSalary"] = dtPaidLev.Rows[0]["CalSalary"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["CalSalary"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["CalSalary"].ToString()); dtPayroll.Rows[j]["Bonus"] = dtPaidLev.Rows[0]["Bonus"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["Bonus"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["Bonus"].ToString()); dtPayroll.Rows[j]["Incentives"] = dtPaidLev.Rows[0]["Incentives"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["Incentives"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["Incentives"].ToString()); dtPayroll.Rows[j]["PrevUnpaid"] = dtPaidLev.Rows[0]["PrevUnpaid"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["PrevUnpaid"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["PrevUnpaid"].ToString()); dtPayroll.Rows[j]["AdvancePaid"] = dtPaidLev.Rows[0]["Advancepaid"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["Advancepaid"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["Advancepaid"].ToString()); dtPayroll.Rows[j]["Expenses"] = dtPaidLev.Rows[0]["ExpensesRecieved"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["ExpensesRecieved"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["ExpensesRecieved"].ToString()); dtPayroll.Rows[j]["LoanDeduct"] = dtPaidLev.Rows[0]["LoanDeduct"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["LoanDeduct"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["LoanDeduct"].ToString()); dtPayroll.Rows[j]["TotalPay"] = dtPaidLev.Rows[0]["TotalPay"].ToString() == "" ? 0.0 : dtPaidLev.Rows[0]["TotalPay"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(dtPaidLev.Rows[0]["TotalPay"].ToString()); } else { DataTable dt = ds.Tables[1]; DataView dv = dt.DefaultView; DataTable dtname = new DataTable(); DateTime NextDate = GeneralFunction.GetNextDayOfWeekDate(StartDate); DataTable dtL = ds.Tables[2]; DataView dvL = dtL.DefaultView; DataTable dtLeave = new DataTable(); DataTable dtH = ds.Tables[3]; DataView dvH = dtH.DefaultView; DataTable dtHoliday = new DataTable(); DataView dvP = dtPaid.DefaultView; DataTable dtPaidLev = new DataTable(); dv.RowFilter = "empid='" + ds.Tables[0].Rows[j]["empid"].ToString() + "'"; dtname = dv.ToTable(); dvL.RowFilter = "empid='" + ds.Tables[0].Rows[j]["empid"].ToString() + "'"; dtLeave = dvL.ToTable(); dvH.RowFilter = "empid='" + ds.Tables[0].Rows[j]["empid"].ToString() + "'"; dtHoliday = dvH.ToTable(); dvP.RowFilter = "empid='" + ds.Tables[0].Rows[j]["empid"].ToString() + "'"; dtPaidLev = dvP.ToTable(); int holidays = 0; int leaves = 0; double present = 0.0; int noshow = 0; dtPayroll.Rows[j]["userid"] = ds.Tables[0].Rows[j]["userid"].ToString(); dtPayroll.Rows[j]["empid"] = ds.Tables[0].Rows[j]["empid"].ToString(); dtPayroll.Rows[j]["Empname"] = ds.Tables[0].Rows[j]["firstName"].ToString() + " " + ds.Tables[0].Rows[j]["lastname"].ToString(); dtPayroll.Rows[j]["PEmpname"] = ds.Tables[0].Rows[j]["PfirstName"].ToString() + " " + ds.Tables[0].Rows[j]["Plastname"].ToString(); dtPayroll.Rows[j]["Termdate"] = ds.Tables[0].Rows[j]["Termdate"].ToString() == "NULL" ? Convert.ToDateTime("01/01/1900") : ds.Tables[0].Rows[j]["Termdate"].ToString() == "" ? Convert.ToDateTime("01/01/1900") : Convert.ToDateTime(Convert.ToDateTime(ds.Tables[0].Rows[j]["Termdate"]).ToString("MM/dd/yyyy")); dtPayroll.Rows[j]["Startdate"] = ds.Tables[0].Rows[j]["Startdate"].ToString() == "NULL" ? Convert.ToDateTime("01/01/1900") : ds.Tables[0].Rows[j]["Startdate"].ToString() == "" ? Convert.ToDateTime("01/01/1900") : Convert.ToDateTime(Convert.ToDateTime(ds.Tables[0].Rows[j]["Startdate"]).ToString("MM/dd/yyyy")); dtPayroll.Rows[j]["DeptName"] = ds.Tables[0].Rows[j]["DeptName"].ToString() == "NULL" ? "" : ds.Tables[0].Rows[j]["DeptName"].ToString(); dtPayroll.Rows[j]["LocationName"] = ds.Tables[0].Rows[j]["LocationName"].ToString() == "NULL" ? "" : ds.Tables[0].Rows[j]["LocationName"].ToString(); dtPayroll.Rows[j]["MasterEmpType"] = ds.Tables[0].Rows[j]["EmpType"].ToString() == "NULL" ? "" : ds.Tables[0].Rows[j]["EmpType"].ToString(); dtPayroll.Rows[j]["LocDescriptiom"] = ds.Tables[0].Rows[j]["LocDescriptiom"].ToString() == "NULL" ? "" : ds.Tables[0].Rows[j]["LocDescriptiom"].ToString(); dtPayroll.Rows[j]["Salary"] = ds.Tables[0].Rows[j]["Salary"].ToString() == "" ? 0.0 : ds.Tables[0].Rows[j]["Salary"].ToString() == "NULL" ? 0.0 : Convert.ToDouble(ds.Tables[0].Rows[j]["Salary"].ToString()); dtPayroll.Rows[j]["LeavesAvailable"] = 0; if (dtPaidLev.Rows.Count > 0) { if (dtPaidLev.Rows[0]["PaidLeavesStartDt"].ToString()!="NULL" && dtPaidLev.Rows[0]["PaidLeavesStartDt"].ToString() != "" && Convert.ToDateTime(dtPaidLev.Rows[0]["PaidLeavesStartDt"]).ToString("MM/dd/yyyy") != "01/01/1900") { if (Convert.ToDateTime(dtPaidLev.Rows[0]["PaidLeavesStartDt"].ToString()) <= StartDate.AddSeconds(-1)) { int PaidLeaves = dtPaidLev.Rows[0]["PaidLeavesBalanced"].ToString() == "" ? 0 : dtPaidLev.Rows[0]["PaidLeavesBalanced"].ToString() == "NULL" ? 0 : Convert.ToInt32(dtPaidLev.Rows[0]["PaidLeavesBalanced"].ToString()); dtPayroll.Rows[j]["LeavesAvailable"] = PaidLeaves + (dtPaidLev.Rows[0]["MonthlyEligible"].ToString() == "" ? 0 : dtPaidLev.Rows[0]["MonthlyEligible"].ToString() == "NULL" ? 0 : Convert.ToInt32(dtPaidLev.Rows[0]["MonthlyEligible"].ToString())); dtPayroll.Rows[j]["PaidLeaveStartDt"] = dtPaidLev.Rows[0]["PaidLeavesStartDt"].ToString() == "" ? Convert.ToDateTime("01/01/1900") : dtPaidLev.Rows[0]["PaidLeavesStartDt"].ToString() == "NULL" ? Convert.ToDateTime("01/01/1900") : Convert.ToDateTime(dtPaidLev.Rows[0]["PaidLeavesStartDt"].ToString()); } else { dtPayroll.Rows[j]["LeavesAvailable"] = "0"; } } else { dtPayroll.Rows[j]["LeavesAvailable"] = "0"; } } else { if (ds.Tables[0].Rows[j]["PaidLeavesStartDt"].ToString() != "NULL" && ds.Tables[0].Rows[j]["PaidLeavesStartDt"].ToString() != "" && Convert.ToDateTime(ds.Tables[0].Rows[j]["PaidLeavesStartDt"]).ToString("MM/dd/yyyy") != "01/01/1900") { if (Convert.ToDateTime(ds.Tables[0].Rows[j]["PaidLeavesStartDt"].ToString()) <= StartDate.AddSeconds(-1)) { int PaidLeaves = 0; dtPayroll.Rows[j]["LeavesAvailable"] = PaidLeaves + (ds.Tables[0].Rows[j]["MonthlyEligible"].ToString() == "" ? 0 : ds.Tables[0].Rows[j]["MonthlyEligible"].ToString() == "NULL" ? 0 : Convert.ToInt32(ds.Tables[0].Rows[j]["MonthlyEligible"].ToString())); dtPayroll.Rows[j]["PaidLeaveStartDt"] = ds.Tables[0].Rows[j]["PaidLeavesStartDt"].ToString() == "" ? Convert.ToDateTime("01/01/1900") : ds.Tables[0].Rows[j]["PaidLeavesStartDt"].ToString() == "NULL" ? Convert.ToDateTime("01/01/1900") : Convert.ToDateTime(ds.Tables[0].Rows[j]["PaidLeavesStartDt"].ToString()); } else { dtPayroll.Rows[j]["LeavesAvailable"] = "0"; } } else { dtPayroll.Rows[j]["LeavesAvailable"] = "0"; } } if (dtname.Rows.Count > 0) { DateTime startDate = StartDate; DateTime nextdate = NextDate; for (int i = 0; i < days; i++) { DataView dv1 = dtname.DefaultView; dv1.RowFilter = "Logindate >= #" + startDate + "# and Logindate<#" + nextdate + "#"; DataTable dt1 = dv1.ToTable(); DataView dL = dtLeave.DefaultView; dL.RowFilter = "Fromdate<=#" + startDate + "# and #" + startDate + "#<=Todate"; DataTable dtLvResult = dL.ToTable(); DataView dH = dtHoliday.DefaultView; dH.RowFilter = "HolidayDate >= #" + startDate + "# and HolidayDate<#" + nextdate + "#"; DataTable dtHolResult = dH.ToTable(); if (dtHolResult.Rows.Count > 0) { holidays += 1; } if (dt1.Rows.Count > 0) { double dayhrs = 0.0; for (int k = 0; k < dt1.Rows.Count; k++) { if (dt1.Rows[k]["logoutdate"].ToString().Trim() != "") { if (dt1.Rows[k]["total hours worked"].ToString() == "") { dayhrs += 0.0; } else { dayhrs += Convert.ToDouble(dt1.Rows[k]["total hours worked"].ToString()); } } else { noshow += 1; } } if (dayhrs > 5) { present += 1; } else if (dayhrs > 3 && dayhrs < 5) { present += 0.5; } else if (dayhrs > 0.0 && dayhrs < 3) { leaves += 1; } } else if (dtHolResult.Rows.Count <= 0 && dtLvResult.Rows.Count > 0) { leaves += 1; } else if (dtHolResult.Rows.Count <= 0 && dtLvResult.Rows.Count <= 0 && dt1.Rows.Count <= 0) { noshow += 1; } else { noshow += 1; } dL.RowFilter = null; dH.RowFilter = null; dv1.RowFilter = null; startDate = nextdate; nextdate = GeneralFunction.GetNextDayOfWeekDate(nextdate); } } if (dtHoliday.Rows.Count > 0) { DateTime startDate = StartDate; DateTime nextdate = NextDate; for (int i = 0; i < days; i++) { DataView dH = dtHoliday.DefaultView; dH.RowFilter = "HolidayDate >= #" + startDate + "# and HolidayDate<#" + nextdate + "#"; DataTable dtHolResult = dH.ToTable(); DataView dL = dtLeave.DefaultView; dL.RowFilter = "Fromdate<=#" + startDate + "# and #" + startDate + "#<=Todate"; DataTable dtLvResult = dL.ToTable(); if (dtHolResult.Rows.Count > 0) { holidays += 1; } else if (dtLvResult.Rows.Count > 0) { leaves += 1; } else { noshow += 1; } dL.RowFilter = null; dH.RowFilter = null; startDate = nextdate; nextdate = GeneralFunction.GetNextDayOfWeekDate(nextdate); } } dtPayroll.Rows[j]["Present"] = present; dtPayroll.Rows[j]["Workingdays"] = days - holidays; dtPayroll.Rows[j]["Leaves"] = leaves; dtPayroll.Rows[j]["Holidays"] = holidays; if (Convert.ToInt32(dtPayroll.Rows[j]["LeavesAvailable"]) > Convert.ToInt32(dtPayroll.Rows[j]["leaves"])) { dtPayroll.Rows[j]["PaidLeavesBalanced"] = Convert.ToInt32(dtPayroll.Rows[j]["LeavesAvailable"]) - Convert.ToInt32(dtPayroll.Rows[j]["leaves"]); dtPayroll.Rows[j]["PaidLeavesUsed"] = Convert.ToInt32(dtPayroll.Rows[j]["LeavesAvailable"]) - Convert.ToInt32(dtPayroll.Rows[j]["PaidLeavesBalanced"]); dtPayroll.Rows[j]["CalLeaves"] = 0; } else if (Convert.ToInt32(dtPayroll.Rows[j]["leaves"]) > Convert.ToInt32(dtPayroll.Rows[j]["LeavesAvailable"])) { dtPayroll.Rows[j]["CalLeaves"] = Convert.ToInt32(dtPayroll.Rows[j]["leaves"]) - Convert.ToInt32(dtPayroll.Rows[j]["LeavesAvailable"]); dtPayroll.Rows[j]["PaidLeavesUsed"] = Convert.ToInt32(dtPayroll.Rows[j]["leaves"]) - Convert.ToInt32(dtPayroll.Rows[j]["CalLeaves"]); dtPayroll.Rows[j]["PaidLeavesBalanced"] = 0; } else { dtPayroll.Rows[j]["PaidLeavesBalanced"] = Convert.ToInt32(dtPayroll.Rows[j]["LeavesAvailable"]) - Convert.ToInt32(dtPayroll.Rows[j]["leaves"]); dtPayroll.Rows[j]["PaidLeavesUsed"] = Convert.ToInt32(dtPayroll.Rows[j]["LeavesAvailable"]) - Convert.ToInt32(dtPayroll.Rows[j]["PaidLeavesBalanced"]); dtPayroll.Rows[j]["CalLeaves"] = Convert.ToInt32(dtPayroll.Rows[j]["LeavesAvailable"]) - Convert.ToInt32(dtPayroll.Rows[j]["leaves"]); } //salary calculation CalSalary CalLeaves double CurntSalary = Convert.ToDouble(dtPayroll.Rows[j]["Salary"]); int wrkDays = Convert.ToInt32(dtPayroll.Rows[j]["Workingdays"]); double CalSalary = 0.0; if (Convert.ToInt32(dtPayroll.Rows[j]["Present"]) > 0) { double perdaySal = wrkDays == 0 ? 0 : Math.Round(CurntSalary / Convert.ToDouble(wrkDays)); double paiddaysOff = perdaySal * (dtPayroll.Rows[j]["PaidLeavesUsed"].ToString() == "" ? 0 : dtPayroll.Rows[j]["PaidLeavesUsed"].ToString() == "NULL" ? 0 : Convert.ToInt32(dtPayroll.Rows[j]["PaidLeavesUsed"])); double ActualSalary = perdaySal * Convert.ToInt32(dtPayroll.Rows[j]["Present"]); CalSalary = paiddaysOff + ActualSalary; dtPayroll.Rows[j]["CalSalary"] = CalSalary; dtPayroll.Rows[j]["TotalPay"] = CalSalary; } else { dtPayroll.Rows[j]["CalSalary"] = 0.0; dtPayroll.Rows[j]["TotalPay"] = 0.0; } } } } } } catch (Exception ex) { } return dtPayroll; }