EchoTex_Payroll/HRM.Report/Class/rptBonus.cs
2024-11-19 14:47:45 +06:00

1017 lines
50 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using Payroll.BO;
using Ease.CoreV35;
using Ease.Core.Model;
using Ease.Core.Utility;
using System.Windows.Forms;
using HRM.BO;
using HRM.DA;
using System.IO;
using Microsoft.Reporting.NETCore;
using Payroll.Service;
using static HRM.Report.PayrollDataSet.dsBonusDataSet;
using static HRM.Report.PayrollDataSet.PayrollDataSet;
using static NPOI.POIFS.Crypt.Dsig.SignatureInfo;
namespace HRM.Report
{
public class rptBonus
{
public byte[] BonusPaySlip(int nBonusID, DateTime dBonusMonth, string sEmpID, int payrollTypeId, string reportType,bool isForESS)
{
List<Branch> oBranches = new List<Branch>();
oBranches = new BranchService().Get(EnumStatus.Active, payrollTypeId);
List<Bank> oBanks = new BankService().Get(EnumStatus.Active, payrollTypeId);
string bonusName = "";
int count = 1;
DataRow oDR = null;
DataSet oBonusPaySlip = null;
List<BonusProcess> oBProcess = new List<BonusProcess>();
DataTable basicInfo = new HRM.Report.PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable();
if (isForESS)
{
oBProcess = new BonusProcessService().GetProcess(nBonusID,dBonusMonth, payrollTypeId);
foreach (BonusProcess item in oBProcess)
{
if (!item.IsApprove)
{
throw new Exception("Bonus is not approved yet.");
}
}
}
oBonusPaySlip = new BonusProcessService().GetBonusPaySlip(nBonusID, GlobalFunctions.FirstDateOfMonth(dBonusMonth), sEmpID, payrollTypeId);
PayrollDataSet.PayrollDataSet.BonusPaySlipDataTable dBonusPaySlipData = new PayrollDataSet.PayrollDataSet.BonusPaySlipDataTable();
foreach (DataRow oDRow in oBonusPaySlip.Tables[0].Rows)
{
oDR = dBonusPaySlipData.NewRow();
oDR["EmpNo"] = oDRow["EMPLOYEENO"];
oDR["Name"] = oDRow["NAME"];
oDR["Basic"] = oDRow["BasicSalary"];
oDR["BonusAmount"] = oDRow["BonusAmount"];
oDR["TaxAmount"] = oDRow["TaxAmount"];
oDR["Gross"] = oDRow["GROSSSALARY"];
oDR["Department"] = oDRow["Department"];
oDR["Designation"] = oDRow["Designation"];
oDR["BonusMonth"] = dBonusMonth;
//oDR["NetBonus"]=oDRow["PAYMENTMODE"];
StringBuilder sb = new StringBuilder();
if (oDRow["PAYMENTMODE"].ToString() == "1")
{
sb.Append("CashPayment");
}
else if (oDRow["PAYMENTMODE"].ToString() == "2")
{
sb.Append("BankTransfer");
}
else if (oDRow["PAYMENTMODE"].ToString() == "3")
{
sb.Append("Provision");
}
Branch oBranch = oBranches.Find(delegate (Branch dr) { return dr.ID.ToString() == oDRow["branchid"].ToString(); });
Bank oBank = oBranch != null ?
oBanks.Find(delegate (Bank dr) { return dr.ID.ToString() == oBranch.BankID.ToString(); })
: null ;
if (oBranch != null)
{
sb.Append(Environment.NewLine);
sb.Append(oBank.Name + " " + oBranch.Name);
}
oDR["PAYMENTMODE"] = sb.ToString();
oDR["AC"] = oDRow["accountno"].ToString();
//oDR["SLNo"] = count;
dBonusPaySlipData.Rows.Add(oDR);
count++;
}
if (oBonusPaySlip.Tables[0].Rows.Count > 0)
{
bonusName=oBonusPaySlip.Tables[0].Rows[0]["BonusName"].ToString();
}
ReportProcessor reportProcessor = new ReportProcessor();
return reportProcessor.ShowDlgForBonusPaySlip(null, dBonusPaySlipData, payrollTypeId,bonusName, reportType);
}
public byte[] BonusBankAdvice(int nBonusID, DateTime dBonusMonth, string sEmpID, int payrollTypeId, string reportType)
{
int count = 1;
DataRow oDR = null;
DataSet oBonusBankAdvice = null;
oBonusBankAdvice = new BonusProcessService().GetBonusBankAdvice(nBonusID, GlobalFunctions.LastDateOfMonth(dBonusMonth), sEmpID, payrollTypeId);
PayrollDataSet.dsCompany.BonusBankAdviceDataTable dBonusBankData = new PayrollDataSet.dsCompany.BonusBankAdviceDataTable();
foreach (DataRow oDRow in oBonusBankAdvice.Tables[0].Rows)
{
oDR = dBonusBankData.NewRow();
oDR["EmpNo"] = oDRow["EMPLOYEENO"];
oDR["Name"] = oDRow["NAME"];
//oDR["BonusAmount"] = Math.Round(Convert.ToDouble(oDRow["BonusAmount"]));
oDR["BonusAmount"] = GlobalFunctions.TakaFormat(Convert.ToDouble(oDRow["BonusAmount"]));
oDR["AccountNo"] = oDRow["ACCOUNTNO"];
oDR["EmailAddress"] = oDRow["EMAILADDRESS"];
oDR["BonusMonth"] = dBonusMonth;
oDR["SLNo"] = count;
dBonusBankData.Rows.Add(oDR);
count++;
}
ReportProcessor reportProcessor = new ReportProcessor();
string rdlcName = "BonusBankAdvice.rdlc";
return reportProcessor.ShowDlgForBankRegister(null, dBonusBankData, payrollTypeId, reportType, rdlcName);
}
public byte[] BonusRegister(int nBonusID, DateTime dBonusMonth, string sEmpID, int payrollTypeId, string reportType)
{
Bonus oBonus = new BonusService().Get(nBonusID);
int count = 1;
DataRow oDR = null;
DataSet oBonusRegister = null;
oBonusRegister = new BonusProcessService().GetBonusRegister(nBonusID, GlobalFunctions.FirstDateOfMonth(dBonusMonth), sEmpID, payrollTypeId);
PayrollDataSet.PayrollDataSet.BonusRegisterDataTable dBonusRegData = new PayrollDataSet.PayrollDataSet.BonusRegisterDataTable();
foreach (DataRow oDRow in oBonusRegister.Tables[0].Rows)
{
oDR = dBonusRegData.NewRow();
oDR["EmpNo"] = oDRow["EMPLOYEENO"];
oDR["Name"] = oDRow["NAME"];
oDR["Basic"] = oDRow["BasicSalary"];
oDR["BonusAmount"] = oDRow["ChangeBonusAmount"];
oDR["TaxAmount"] = oDRow["ChangeTaxAmount"];
oDR["Gross"] = oDRow["GROSSSALARY"];
oDR["JoiningDate"] = oDRow["JOININGDATE"];
oDR["BonusMonth"] = dBonusMonth;
oDR["BonusName"] = oBonus.Name;
oDR["ConfirmDate"] = oDRow["DATEOFCONFIRMATION"];
//oDR["NetBonus"]=oDRow[""];
oDR["SLNo"] = count;
int serlen = Convert.ToInt32(oDRow["ServiceLength"].ToString()) + 1;
oDR["ServiceLength"] = serlen;// oDRow["ServiceLength"];
oDR["AccountNo"] = oDRow["AccountNo"];
if (serlen >= 25)
{
oDR["Percent"] = "200%";
}
else if (serlen >= 20)
{
oDR["Percent"] = "150%";
}
else if (serlen >= 15)
{
oDR["Percent"] = "100%";
}
else if (serlen >= 10)
{
oDR["Percent"] = "50%";
}
else if (serlen > 5)
{
oDR["Percent"] = "30%";
}
dBonusRegData.Rows.Add(oDR);
count++;
}
string rdlcName = "BonusRegister.rdlc";
ReportProcessor reportProcessor = new ReportProcessor();
return reportProcessor.ShowDlgForBonusRegister(null, dBonusRegData, payrollTypeId, reportType, rdlcName);
}
#region Production Bonus
public byte[] MonthlyProdBonus(DateTime dBonusMonth, int payrollTypeId, string reportType)
{
int count = 1;
DataRow oDR = null;
DataSet oProdBonusProcessEmp = new ProdBonusProcessService().GetMontlyProdBonus(dBonusMonth);
PayrollDataSet.PayrollDataSet.dtMonthlyProdBonusDataTable dTable = new PayrollDataSet.PayrollDataSet.dtMonthlyProdBonusDataTable();
if (oProdBonusProcessEmp.Tables[0].Rows.Count > 0)
{
GlobalFunctions.bDataFound = true;
}
//else
//{
// throw new Exception();
//}
foreach (DataRow oDRow in oProdBonusProcessEmp.Tables[0].Rows)
{
oDR = dTable.NewRow();
oDR["EMPLOYEENO"] = oDRow["EMPLOYEENO"];
oDR["Name"] = oDRow["NAME"];
oDR["Designation"] = oDRow["Designation"];
oDR["DepartmentID"] = oDRow["DepartmentID"];
oDR["Department"] = oDRow["Department"];
oDR["Amount"] = Convert.ToDouble(oDRow["Amount"]).ToString("0.00");
dTable.Rows.Add(oDR);
count++;
}
DataSet dSet = new DataSet();
dTable.TableName = "PayrollDataSet_dtMonthlyProdBonus";
dSet.Tables.Add(dTable);
//string RDLC = "HRM.Report.RDLC.rptMontlyProdBonus.rdlc";
string RDLCName = "rptMontlyProdBonus.rdlc";
List<ReportParameter> _reportParameters = new List<ReportParameter>();
ReportParameter rParam = new ReportParameter("Month", dBonusMonth.ToString("MMM yyyy"));
_reportParameters.Add(rParam);
//form.CommonReportViewer(null, RDLC, dSet, _reportParameters, true);
ReportProcessor reportProcessor = new ReportProcessor();
return reportProcessor.CommonReportViewForReports(null, dSet, null, RDLCName, _reportParameters, true, payrollTypeId, reportType);
//CommonReportView(ReportItem item, string rdlcName, DataSet dSet, DataSet dSubReportDataSet, List<ReportParameter> PReportParameters, bool isBasicParametersNeeded, int payrollTypeId, string reportType = "PDF")
}
public byte[] EmpDesignWiseProdBonus(DateTime dBonusMonth, int payrollTypeId, string reportType)
{
int count = 1;
DataRow oDR = null;
DataSet oProdBonus = new ProdBonusProcessService().EmpDesignWiseProdBonus(dBonusMonth);
if (oProdBonus.Tables[0].Rows.Count > 0)
{
GlobalFunctions.bDataFound = true;
}
//else
//{
// throw new Exception();
//}
PayrollDataSet.PayrollDataSet.dtEmpDesWiseProdBonusDataTable dTable = new PayrollDataSet.PayrollDataSet.dtEmpDesWiseProdBonusDataTable();
foreach (DataRow oDRow in oProdBonus.Tables[0].Rows)
{
//if(Convert.ToInt64(oDRow["EMPLOYEENO"]) == 43030)
//{
//}
oDR = dTable.NewRow();
oDR["EMPLOYEENO"] = oDRow["EMPLOYEENO"];
oDR["Name"] = oDRow["NAME"];
oDR["Designation"] = oDRow["Designation"];
oDR["Department"] = oDRow["Department"];
oDR["DepartmentID"] = oDRow["DepartmentID"];
oDR["Amount"] = Convert.ToDouble(oDRow["Amount"]).ToString("0.00");
oDR["WorkingHour"] = Convert.ToDouble(oDRow["WorkingHour"]).ToString("0.00");
oDR["ScheduledHour"] = Convert.ToDouble(oDRow["ScheduledHour"]).ToString("0.00");
oDR["OTHour"] = Convert.ToDouble(oDRow["OTHour"]).ToString("0.00");
oDR["BonusHour"] = Convert.ToDouble(oDRow["BonusHour"]).ToString("0.00");
oDR["DesignNo"] = oDRow["DesignNo"];
oDR["StartDate"] = Convert.ToDateTime(oDRow["StartDate"]).ToString("dd MMM yyyy");
oDR["EndDate"] = Convert.ToDateTime(oDRow["EndDate"]).ToString("dd MMM yyyy");
dTable.Rows.Add(oDR);
count++;
}
DataSet dSet = new DataSet();
dTable.TableName = "PayrollDataSet_dtEmpDesWiseProdBonus";
dSet.Tables.Add(dTable);
//string RDLC = "Payroll.Report.RDLC.rptEmpDesignWiseProdBonus.rdlc";
string RDLC = "rptEmpDesignWiseProdBonus.rdlc";
List<ReportParameter> _reportParameters = new List<ReportParameter>();
ReportParameter rParam = new ReportParameter("Month", dBonusMonth.ToString("MMM yyyy"));
_reportParameters.Add(rParam);
ReportProcessor reportProcessor = new ReportProcessor();
return reportProcessor.CommonReportViewForReports(null, dSet, null, RDLC, _reportParameters, true, payrollTypeId, reportType);
//form.CommonReportViewer(null, RDLC, dSet, _reportParameters, true);
}
public byte[] ProdBonusDetail(int designId, DateTime dBonusMonth, int payrollTypeId, string reportType)
{
int count = 1;
DataRow oDR = null;
DataSet oProdBonusDetail = new ProdBonusProcessService().GetProdBonusDetail(designId);
if (oProdBonusDetail.Tables[0].Rows.Count > 0)
{
GlobalFunctions.bDataFound = true;
}
PayrollDataSet.PayrollDataSet.dtProdBonusDetailDataTable dTable = new PayrollDataSet.PayrollDataSet.dtProdBonusDetailDataTable();
foreach (DataRow oDRow in oProdBonusDetail.Tables[0].Rows)
{
oDR = dTable.NewRow();
oDR["EMPLOYEENO"] = oDRow["EMPLOYEENO"];
oDR["Name"] = oDRow["NAME"];
oDR["Designation"] = oDRow["Designation"];
oDR["Amount"] = Convert.ToDouble(oDRow["Amount"]).ToString("0.00");
oDR["WorkingHour"] = Convert.ToDouble(oDRow["WorkingHour"]).ToString("0.00");
oDR["ScheduledHour"] = Convert.ToDouble(oDRow["ScheduledHour"]).ToString("0.00");
oDR["OTHour"] = Convert.ToDouble(oDRow["OTHour"]).ToString("0.00");
dTable.Rows.Add(oDR);
count++;
}
DataSet dSet = new DataSet();
dTable.TableName = "PayrollDataSet_dtProdBonusDetail";
dSet.Tables.Add(dTable);
//string RDLC = "Payroll.Report.RDLC.rptProdBonusDetail.rdlc";
string RDLC = "rptProdBonusDetail.rdlc";
ReportParameter rParam;
List<ReportParameter> _reportParameters = new List<ReportParameter>();
rParam = new ReportParameter("DesignNo", new ProductionBonusSetupService().Get(designId).DesignNo);
_reportParameters.Add(rParam);
ReportProcessor reportProcessor = new ReportProcessor();
return reportProcessor.CommonReportViewForReports(null, dSet, null, RDLC, _reportParameters, true, payrollTypeId, reportType);
}
public byte[] DesignWiseProdBonusAttendance(int designId, DateTime dBonusMonth, int payrollTypeId, string reportType)
{
//fReportViewer form = new fReportViewer();
int count = 1;
DataRow oDR = null;
List<Shift> oShifts = new ShiftService().GetAllShift();
Shift oShift = null;
DateTime? bonusIntime = DateTime.MinValue;
DateTime? bonusOuttime = DateTime.MinValue;
List<ProdBonusAttn> prodAttn = new ProdBonusAttnService().GetBySetupID(designId);
string empIds = string.Empty;
empIds = prodAttn.Select(x => x.EmployeeID).Distinct().Aggregate(new StringBuilder(), (sb, empid) => sb.Append(empid + ","), sb => sb.ToString().Trim(','));
ProductionBonusSetup design = new ProductionBonusSetupService().Get(designId);
List<DailyAttnProcess> oDailyAttnProsess = new DailyAttnProcessService().Get(empIds, design.FromDate.Date, design.ToDate.Date);
//List<DailyAttnProcess> oDailyAttnProsess = DailyAttnProcess.Get(empIds,GlobalFunctions.FirstDateOfMonth(design.SalaryMonth.AddMonths(-1)), GlobalFunctions.LastDateOfMonth(design.SalaryMonth));
List<Employee> emps = new EmployeeService().GetByEmpIDs(empIds);
List<Employee> attnEmp = new List<Employee>();
PayrollDataSet.PayrollDataSet.dtProdAttendanceDataTable dTable = new PayrollDataSet.PayrollDataSet.dtProdAttendanceDataTable();
foreach (ProdBonusAttn item in prodAttn)
{
Employee tEmp = emps.FirstOrDefault(o => o.ID == item.EmployeeID);
if (!attnEmp.Any(o => o.ID == tEmp.ID))
{
attnEmp.Add(tEmp);
}
}
if (prodAttn != null && prodAttn.Count > 0)
{
foreach (Employee item in attnEmp)
{
List<ProdBonusAttn> tempAttn = prodAttn.Where(o => o.EmployeeID == item.ID).ToList();//.Sum(x => x.BonusHour);
double hour = 0;
foreach (ProdBonusAttn tAtt in tempAttn)
{
DailyAttnProcess dailyAtt = oDailyAttnProsess.FirstOrDefault(o => o.AttnDate.Date == tAtt.InTime.Date &&
o.EmployeeID == item.ID &&
(o.AttenType == EnumAttendanceType.Present ||
o.AttenType == EnumAttendanceType.HalfDay ||
o.AttenType == EnumAttendanceType.Delay ||
o.AttenType == EnumAttendanceType.Early ||
o.AttenType == EnumAttendanceType.Late ||
o.AttenType == EnumAttendanceType.OutSideDuty));
double wh = 0;
if (dailyAtt != null)
{
if (dailyAtt.OutTime != DateTime.MinValue && dailyAtt.InTime != DateTime.MinValue)
{
bonusIntime = dailyAtt.InTime;
bonusOuttime = dailyAtt.OutTime;
oShift = oShifts.FirstOrDefault(x => x.ID == dailyAtt.ShiftID);
//if (design.FromDate.Date == dailyAtt.AttnDate.Date)
// dailyAtt.InTime = design.FromDate > dailyAtt.InTime ? design.FromDate : dailyAtt.InTime;
//else if (design.ToDate.Date == dailyAtt.AttnDate.Date)
// dailyAtt.OutTime = design.ToDate < dailyAtt.OutTime ? design.ToDate : dailyAtt.OutTime;
//else if (oShift != null && dailyAtt.InTime.Value.TimeOfDay < oShift.InTime.TimeOfDay)
// dailyAtt.InTime = dailyAtt.InTime.Value.Date.AddHours(oShift.InTime.Hour).AddMinutes(oShift.InTime.Minute);
if (design.FromDate.Date == dailyAtt.AttnDate.Date)
bonusIntime = design.FromDate > dailyAtt.InTime ? design.FromDate : dailyAtt.InTime;
else if (dailyAtt.InTime.GetValueOrDefault().TimeOfDay < tAtt.InTime.TimeOfDay)
bonusIntime = dailyAtt.InTime.GetValueOrDefault().Date.AddHours(tAtt.InTime.Hour).AddMinutes(tAtt.InTime.Minute);
//if (design.ToDate.Date == dailyAtt.AttnDate.Date)
// bonusOuttime = design.ToDate < dailyAtt.OutTime ? design.ToDate : dailyAtt.OutTime;
if (dailyAtt.OutTime.GetValueOrDefault().TimeOfDay > tAtt.OutTime.TimeOfDay)
bonusOuttime = dailyAtt.OutTime.GetValueOrDefault().Date.AddHours(tAtt.OutTime.Hour).AddMinutes(tAtt.OutTime.Minute);
//else if (oShift != null && dailyAtt.InTime.GetValueOrDefault().TimeOfDay < oShift.InTime.TimeOfDay)
// bonusIntime = dailyAtt.InTime.GetValueOrDefault().Date.AddHours(oShift.InTime.Hour).AddMinutes(oShift.InTime.Minute);
//TimeSpan ts = dailyAtt.OutTime.Value - dailyAtt.InTime.Value;
TimeSpan ts = (TimeSpan)(bonusOuttime - bonusIntime);
if (ts.Minutes < 16 && ts.Hours < 5)
wh = ts.Hours;
else if (ts.Minutes < 16)
wh = ts.Hours - design.BreakHour;
else if (ts.TotalHours < 5)
wh = ts.TotalHours;
else
wh = ts.TotalHours - design.BreakHour;
// hour += ts.Hours < 0 ? 0 : ts.Hours;
hour = wh < 0 ? 0 : wh;
oDR = dTable.NewRow();
oDR["EMPLOYEENO"] = item.EmployeeNo;
oDR["Name"] = item.Name;
oDR["Date"] = dailyAtt.InTime.Value.Date.ToString("dd-MMM-yyyy");
oDR["WorkingHour"] = hour.ToString("0.00");
dTable.Rows.Add(oDR);
count++;
}
}
}
}
}
if (dTable.Rows.Count > 0)
{
GlobalFunctions.bDataFound = true;
}
DataSet dSet = new DataSet();
dTable.TableName = "PayrollDataSet_dtProdAttendance";
dSet.Tables.Add(dTable);
//string RDLC = "Payroll.Report.RDLC.rptProdBonusAttendance.rdlc";
string RDLC = "rptProdBonusAttendance.rdlc";
ReportParameter rParam;
List<ReportParameter> _reportParameters = new List<ReportParameter>();
rParam = new ReportParameter("DesignNo", design.DesignNo);
_reportParameters.Add(rParam);
//form.CommonReportViewer(null, RDLC, dSet, _reportParameters, true);
ReportProcessor reportProcessor = new ReportProcessor();
return reportProcessor.CommonReportViewForReports(null, dSet, null, RDLC, _reportParameters, true, payrollTypeId, reportType);
}
#endregion Production Bonus
public byte[] PRBBonusCalculation(int employeeID,DateTime prbYear)
{
DateTime lastDay = new DateTime(prbYear.Year, 12, 31);
PayrollDataSet.dsBonusDataSet.PRBCalculationDataTable PRBCalculationDt = new PayrollDataSet.dsBonusDataSet.PRBCalculationDataTable();
DataRow oDR = null;
PRBCalculation prbCalculation = new PRBCalculation();
List<PRBKpi> prbKpi = new List<PRBKpi>();
Employee employee = new Employee();
employee = new EmployeeService().Get(employeeID);
prbCalculation = new PRBCalculationService().GetByEmployeeIDDecData(employeeID,prbYear);
if (prbCalculation == null)
throw new Exception("No Data found on this date "+ lastDay.ToString("MMM yyyy"));
prbKpi = new PRBKpiService().GetKpiByPrbMonth(prbCalculation.EndDate);
string employeeName = "";
string employeeNo = "";
string grade = "";
double totalPRBamount = 0;
if (prbCalculation != null)
{
double? T1AcheiveTemp = 0;
double? T1BonusAcheiveAmount = 0;
double? T2AcheiveTemp = 0;
double? T2BonusAcheiveAmount = 0;
double? T3AcheiveTemp = 0;
double? T3BonusAcheiveAmount = 0;
double? T4AcheiveTemp = 0;
double? T4BonusAcheiveAmount = 0;
double? T5AcheiveTemp = 0;
double? T5BonusAcheiveAmount = 0;
double? T6AcheiveTemp = 0;
double? T6BonusAcheiveAmount = 0;
double? T7AcheiveTemp = 0;
double? T7BonusAcheiveAmount = 0;
double? T8AcheiveTemp = 0;
double? T8BonusAcheiveAmount = 0;
double? T9AcheiveTemp = 0;
double? T9BonusAcheiveAmount = 0;
double? T10BonusAcheiveAmount = 0;
double? T10AcheiveTemp = 0;
if (prbCalculation.TargetT1 > 0 && prbCalculation.AcheiveT1 > 0)
{
T1AcheiveTemp = prbCalculation.TargetT1 * (prbCalculation.AcheiveT1 / 100);
T1BonusAcheiveAmount = (prbCalculation.BonusAmount * T1AcheiveTemp) / 100;
oDR = PRBCalculationDt.NewRow();
oDR["Measure"] = prbKpi?.Where(x=>x.Serial.Trim() == "T1")?.FirstOrDefault().KpiName;
oDR["BonusTarget"] = prbCalculation.TargetT1.ToString() + '%';
oDR["PayoutPerformance"] = prbCalculation.AcheiveT1.ToString() + '%';
double val = Convert.ToDouble(T1BonusAcheiveAmount);
val = Math.Round(val, 2);
oDR["Amount"] = val.ToString("N2");
PRBCalculationDt.Rows.Add(oDR);
}
if (prbCalculation.TargetT2 > 0 && prbCalculation.AcheiveT2 > 0)
{
T2AcheiveTemp = prbCalculation.TargetT2 * (prbCalculation.AcheiveT2 / 100);
T2BonusAcheiveAmount = (prbCalculation.BonusAmount * T2AcheiveTemp) / 100;
oDR = PRBCalculationDt.NewRow();
oDR["Measure"] = prbKpi?.Where(x => x.Serial.Trim() == "T2")?.FirstOrDefault().KpiName;
oDR["BonusTarget"] = prbCalculation.TargetT2.ToString() + '%';
oDR["PayoutPerformance"] = prbCalculation.AcheiveT2.ToString() + '%';
double val = Convert.ToDouble(T2BonusAcheiveAmount);
val = Math.Round(val, 2);
oDR["Amount"] = val.ToString("N2");
PRBCalculationDt.Rows.Add(oDR);
}
if (prbCalculation.TargetT3 > 0 && prbCalculation.AcheiveT3 > 0)
{
T3AcheiveTemp = prbCalculation.TargetT3 * (prbCalculation.AcheiveT3 / 100);
T3BonusAcheiveAmount = (prbCalculation.BonusAmount * T3AcheiveTemp) / 100;
oDR = PRBCalculationDt.NewRow();
oDR["Measure"] = prbKpi?.Where(x => x.Serial.Trim() == "T3")?.FirstOrDefault().KpiName;
oDR["BonusTarget"] = prbCalculation.TargetT3.ToString() + '%';
oDR["PayoutPerformance"] = prbCalculation.AcheiveT3.ToString() + '%';
double val = Convert.ToDouble(T3BonusAcheiveAmount);
val = Math.Round(val, 2);
oDR["Amount"] = val.ToString("N2");
PRBCalculationDt.Rows.Add(oDR);
}
if (prbCalculation.TargetT4 > 0 && prbCalculation.AcheiveT4 > 0)
{
T4AcheiveTemp = prbCalculation.TargetT4 * (prbCalculation.AcheiveT4 / 100);
T4BonusAcheiveAmount = (prbCalculation.BonusAmount * T4AcheiveTemp) / 100;
oDR = PRBCalculationDt.NewRow();
oDR["Measure"] = prbKpi?.Where(x => x.Serial.Trim() == "T4")?.FirstOrDefault().KpiName;
oDR["BonusTarget"] = prbCalculation.TargetT4.ToString() + '%';
oDR["PayoutPerformance"] = prbCalculation.AcheiveT4.ToString() + '%';
double val = Convert.ToDouble(T4BonusAcheiveAmount);
val = Math.Round(val, 2);
oDR["Amount"] = val.ToString("N2");
PRBCalculationDt.Rows.Add(oDR);
}
if (prbCalculation.TargetT5 > 0 && prbCalculation.AcheiveT5 > 0)
{
T5AcheiveTemp = prbCalculation.TargetT5 * (prbCalculation.AcheiveT5 / 100);
T5BonusAcheiveAmount = (prbCalculation.BonusAmount * T5AcheiveTemp) / 100;
oDR = PRBCalculationDt.NewRow();
oDR["Measure"] = prbKpi?.Where(x => x.Serial.Trim() == "T5")?.FirstOrDefault().KpiName;
oDR["BonusTarget"] = prbCalculation.TargetT5.ToString() + '%';
oDR["PayoutPerformance"] = prbCalculation.AcheiveT5.ToString() + '%';
double val = Convert.ToDouble(T5BonusAcheiveAmount);
val = Math.Round(val, 2);
oDR["Amount"] = val.ToString("N2");
PRBCalculationDt.Rows.Add(oDR);
}
if (prbCalculation.TargetT6 > 0 && prbCalculation.AcheiveT6 > 0)
{
T6AcheiveTemp = prbCalculation.TargetT6 * (prbCalculation.AcheiveT6 / 100);
T6BonusAcheiveAmount = (prbCalculation.BonusAmount * T6AcheiveTemp) / 100;
oDR = PRBCalculationDt.NewRow();
oDR["Measure"] = prbKpi?.Where(x => x.Serial.Trim() == "T6")?.FirstOrDefault().KpiName;
oDR["BonusTarget"] = prbCalculation.TargetT6.ToString() + '%';
oDR["PayoutPerformance"] = prbCalculation.AcheiveT6.ToString() + '%';
double val = Convert.ToDouble(T6BonusAcheiveAmount);
val = Math.Round(val, 2);
oDR["Amount"] = val.ToString("N2");
PRBCalculationDt.Rows.Add(oDR);
}
if (prbCalculation.TargetT7 > 0 && prbCalculation.AcheiveT7 > 0)
{
T7AcheiveTemp = prbCalculation.TargetT7 * (prbCalculation.AcheiveT7 / 100);
T7BonusAcheiveAmount = (prbCalculation.BonusAmount * T7AcheiveTemp) / 100;
oDR = PRBCalculationDt.NewRow();
oDR["Measure"] = prbKpi?.Where(x => x.Serial.Trim() == "T7")?.FirstOrDefault().KpiName;
oDR["BonusTarget"] = prbCalculation.TargetT7.ToString() + '%';
oDR["PayoutPerformance"] = prbCalculation.AcheiveT7.ToString() + '%';
double val = Convert.ToDouble(T7BonusAcheiveAmount);
val = Math.Round(val, 2);
oDR["Amount"] = val.ToString("N2");
PRBCalculationDt.Rows.Add(oDR);
}
if (prbCalculation.TargetT8 > 0 && prbCalculation.AcheiveT8 > 0)
{
T8AcheiveTemp = prbCalculation.TargetT8 * (prbCalculation.AcheiveT8 / 100);
T8BonusAcheiveAmount = (prbCalculation.BonusAmount * T8AcheiveTemp) / 100;
oDR = PRBCalculationDt.NewRow();
oDR["Measure"] = prbKpi?.Where(x => x.Serial.Trim() == "T8")?.FirstOrDefault().KpiName;
oDR["BonusTarget"] = prbCalculation.TargetT8.ToString() + '%';
oDR["PayoutPerformance"] = prbCalculation.AcheiveT8.ToString() + '%';
double val = Convert.ToDouble(T8BonusAcheiveAmount);
val = Math.Round(val, 2);
oDR["Amount"] = val.ToString("N2");
PRBCalculationDt.Rows.Add(oDR);
}
if (prbCalculation.TargetT9 > 0 && prbCalculation.AcheiveT9 > 0)
{
T9AcheiveTemp = prbCalculation.TargetT8 * (prbCalculation.AcheiveT8 / 100);
T9BonusAcheiveAmount = (prbCalculation.BonusAmount * T8AcheiveTemp) / 100;
oDR = PRBCalculationDt.NewRow();
oDR["Measure"] = prbKpi?.Where(x => x.Serial.Trim() == "T9")?.FirstOrDefault().KpiName;
oDR["BonusTarget"] = prbCalculation.TargetT8.ToString() + '%';
oDR["PayoutPerformance"] = prbCalculation.AcheiveT8.ToString() + '%';
double val = Convert.ToDouble(T8BonusAcheiveAmount);
val = Math.Round(val, 2);
oDR["Amount"] = val.ToString("N2");
PRBCalculationDt.Rows.Add(oDR);
}
if (prbCalculation.TargetT10 > 0 && prbCalculation.AcheiveT10 > 0)
{
T10AcheiveTemp = prbCalculation.TargetT10 * (prbCalculation.AcheiveT10 / 100);
T10BonusAcheiveAmount = (prbCalculation.BonusAmount * T8AcheiveTemp) / 100;
oDR = PRBCalculationDt.NewRow();
oDR["Measure"] = prbKpi?.Where(x => x.Serial.Trim() == "T10")?.FirstOrDefault().KpiName;
oDR["BonusTarget"] = prbCalculation.TargetT10.ToString() + '%';
oDR["PayoutPerformance"] = prbCalculation.AcheiveT10.ToString() + '%';
double val = Convert.ToDouble(T8BonusAcheiveAmount);
val = Math.Round(val, 2);
oDR["Amount"] = val.ToString("N2");
PRBCalculationDt.Rows.Add(oDR);
}
double? totalAcheive = T1AcheiveTemp + T2AcheiveTemp + T3AcheiveTemp + T4AcheiveTemp + T5AcheiveTemp + T6AcheiveTemp + T7AcheiveTemp + T8AcheiveTemp + T9AcheiveTemp + T10AcheiveTemp;
double? totalPRB = prbCalculation.BonusAmount * (totalAcheive / 100);
double totalPRBAmount = Convert.ToDouble(totalPRB);
totalPRBamount = Math.Round(totalPRBAmount, 2);
}
if (employee != null)
{
employeeName = employee.Name;
employeeNo = employee.EmployeeNo;
grade = employee.GradeName;
}
List<AuthorizedPerson> authPersons = new AuthorizedPersonService().Get();
AuthorizedPerson authPersonHr = null;
AuthorizedPerson authPersonCountryManager = null;
string signaturePathHr = null;
string signaturePathCountryManager = null;
if (authPersons.Count > 0)
{
foreach (var item in authPersons)
{
var str = item.Designation.Replace(" ", "");
if (str.ToLower() == "countryhrmanager")
{
authPersonHr = item;
signaturePathHr = Convert.ToBase64String(authPersonHr.Signature);
}
if (str.ToLower() == "countrymanager")
{
authPersonCountryManager = item;
signaturePathCountryManager = Convert.ToBase64String(authPersonCountryManager.Signature);
}
}
}
ReportProcessor reportProcessor = new ReportProcessor();
string rdlcName = "PRBLetterSGS.rdlc";
ReportParameter rParam;
List<ReportParameter> _reportParameters = new List<ReportParameter>();
string _PATH = string.Empty;
rParam = new ReportParameter("ReportType", "PDF");
_reportParameters.Add(rParam);
rParam = new ReportParameter("EmployeeName", employeeName);
_reportParameters.Add(rParam);
rParam = new ReportParameter("EmployeeNo", employeeNo);
_reportParameters.Add(rParam);
rParam = new ReportParameter("Grade", grade);
_reportParameters.Add(rParam);
rParam = new ReportParameter("Amount", totalPRBamount.ToString("N2"));
_reportParameters.Add(rParam);
rParam = new ReportParameter("signaturehr", signaturePathHr);
_reportParameters.Add(rParam);
rParam = new ReportParameter("signaturePathCountryManager", signaturePathCountryManager);
_reportParameters.Add(rParam);
rParam = new ReportParameter("authNameHr", authPersonHr != null ? authPersonHr.Name : null);
_reportParameters.Add(rParam);
rParam = new ReportParameter("authNameCountryManager", authPersonCountryManager != null ? authPersonCountryManager.Name : null);
_reportParameters.Add(rParam);
DataSet dSet = new DataSet();
dSet.Tables.Add(PRBCalculationDt);
dSet.Tables[0].TableName = "dsCompany_PRBLetterSGS";
string RDLC = "PRBLetterSGS.rdlc";
return reportProcessor.CommonReportViewForReports(null, dSet, null, RDLC, _reportParameters, false, 1, "PDF");
}
}
}
//namespace Payroll.Report
//{
// public class rptBonus
// {
// private ReportSetup _selectedParameter;
// public rptBonus()
// {
// }
// public ReportSetup SelectedParameter
// {
// set
// {
// _selectedParameter = value;
// }
// }
// public void BonusRegister()
// {
// fReportViewer form = new fReportViewer();
// ID nBonusID = _selectedParameter.Bonuses[0].ID;
// Bonus oBonus = Bonus.Get(nBonusID);
// DateTime dBonusMonth=_selectedParameter.FromDate.Value;
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// int count = 1;
// DataRow oDR = null;
// DataSet oBonusRegister = null;
// oBonusRegister = BonusProcess.GetBonusRegister(nBonusID,GlobalFunctions.FirstDateOfMonth(dBonusMonth), sEmpID);
// PayrollDataSet.PayrollDataSet.BonusRegisterDataTable dBonusRegData = new Payroll.Report.PayrollDataSet.PayrollDataSet.BonusRegisterDataTable();
// foreach (DataRow oDRow in oBonusRegister.Tables[0].Rows)
// {
// oDR = dBonusRegData.NewRow();
// oDR["EmpNo"] = oDRow["EMPLOYEENO"];
// oDR["Name"] = oDRow["NAME"];
// oDR["Basic"] = oDRow["BasicSalary"];
// oDR["BonusAmount"] = oDRow["ChangeBonusAmount"];
// oDR["TaxAmount"] = oDRow["ChangeTaxAmount"];
// oDR["Gross"] = oDRow["GROSSSALARY"];
// oDR["JoiningDate"] = oDRow["JOININGDATE"];
// oDR["BonusMonth"] = dBonusMonth;
// //oDR["NetBonus"]=oDRow[""];
// oDR["SLNo"] = count;
// dBonusRegData.Rows.Add(oDR);
// count++;
// }
// form.ShowDlgForBonusRegister(_selectedParameter.ReportItem, dBonusRegData);
// }
// //public void BonusRegisterForSGS()
// //{
// // fReportViewer form = new fReportViewer();
// // ID nBonusID = _selectedParameter.Bonuses[0].ID;
// // Bonus oBonus = Bonus.Get(nBonusID);
// // DateTime dBonusMonth = _selectedParameter.FromDate.Value;
// // string sEmpID = _selectedParameter.ReportItem.INSQL;
// // int count = 1;
// // DataRow oDR = null;
// // DataSet oBonusRegister = null;
// // oBonusRegister = BonusProcess.GetBonusRegister(nBonusID, GlobalFunctions.FirstDateOfMonth(dBonusMonth), sEmpID);
// // PayrollDataSet.PayrollDataSet.BonusRegisterDataTable dBonusRegData = new Payroll.Report.PayrollDataSet.PayrollDataSet.BonusRegisterDataTable();
// // foreach (DataRow oDRow in oBonusRegister.Tables[0].Rows)
// // {
// // oDR = dBonusRegData.NewRow();
// // oDR["EmpNo"] = oDRow["EMPLOYEENO"];
// // oDR["Name"] = oDRow["NAME"];
// // oDR["Basic"] = oDRow["BasicSalary"];
// // oDR["BonusAmount"] = oDRow["BonusAmount"];
// // oDR["TaxAmount"] = oDRow["TaxAmount"];
// // oDR["Gross"] = oDRow["GROSSSALARY"];
// // oDR["JoiningDate"] = oDRow["JOININGDATE"];
// // oDR["BonusMonth"] = dBonusMonth;
// // //oDR["NetBonus"]=oDRow[""];
// // oDR["SLNo"] = count;
// // dBonusRegData.Rows.Add(oDR);
// // count++;
// // }
// // form.ShowDlgForBonusRegisterForSGS(_selectedParameter.ReportItem, dBonusRegData, oBonus.Name);
// //}
// public void BonusBankAdvice()
// {
// fReportViewer form = new fReportViewer();
// ID nBonusID = _selectedParameter.Bonuses[0].ID;
// DateTime dBonusMonth =_selectedParameter.FromDate.Value;
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// int count = 1;
// DataRow oDR = null;
// DataSet oBonusBankAdvice = null;
// oBonusBankAdvice = BonusProcess.GetBonusBankAdvice(nBonusID, GlobalFunctions.LastDateOfMonth(dBonusMonth), sEmpID);
// PayrollDataSet.dsCompany.BonusBankAdviceDataTable dBonusBankData = new Payroll.Report.PayrollDataSet.dsCompany.BonusBankAdviceDataTable();
// foreach (DataRow oDRow in oBonusBankAdvice.Tables[0].Rows)
// {
// oDR = dBonusBankData.NewRow();
// oDR["EmpNo"] = oDRow["EMPLOYEENO"];
// oDR["Name"] = oDRow["NAME"];
// oDR["BonusAmount"] = oDRow["BonusAmount"];
// oDR["AccountNo"] = oDRow["ACCOUNTNO"];
// oDR["EmailAddress"] = oDRow["EMAILADDRESS"];
// oDR["BonusMonth"] = dBonusMonth;
// oDR["CostCenter"] = oDRow["CostCenter"];
// oDR["SLNo"] = count;
// dBonusBankData.Rows.Add(oDR);
// count++;
// }
// form.ShowDlgForBankRegister(_selectedParameter.ReportItem, dBonusBankData);
// }
// public void BonusPaySlip()
// {
// fReportViewer form = new fReportViewer();
// List<Branch> oBranches = new List<Branch>();
// oBranches = Branch.Get(EnumStatus.Active);
// ID nBonusID = _selectedParameter.Bonuses[0].ID;
// DateTime dBonusMonth = _selectedParameter.FromDate.Value;
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// int count = 1;
// DataRow oDR = null;
// DataSet oBonusPaySlip = null;
// oBonusPaySlip = BonusProcess.GetBonusPaySlip(nBonusID, GlobalFunctions.FirstDateOfMonth(dBonusMonth), sEmpID);
// PayrollDataSet.PayrollDataSet.BonusPaySlipDataTable dBonusPaySlipData = new Payroll.Report.PayrollDataSet.PayrollDataSet.BonusPaySlipDataTable();
// foreach (DataRow oDRow in oBonusPaySlip.Tables[0].Rows)
// {
// oDR = dBonusPaySlipData.NewRow();
// oDR["EmpNo"] = oDRow["EMPLOYEENO"];
// oDR["Name"] = oDRow["NAME"];
// oDR["Basic"] = oDRow["BasicSalary"];
// oDR["BonusAmount"] = oDRow["BonusAmount"];
// oDR["TaxAmount"] = oDRow["TaxAmount"];
// oDR["Department"] = oDRow["Department"];
// oDR["Designation"] = oDRow["Designation"];
// oDR["BonusMonth"] = dBonusMonth;
// //oDR["NetBonus"]=oDRow["PAYMENTMODE"];
// StringBuilder sb = new StringBuilder();
// if (oDRow["PAYMENTMODE"].ToString()=="1")
// {
// sb.Append("CashPayment");
// }
// else if (oDRow["PAYMENTMODE"].ToString()=="2")
// {
// sb.Append("BankTransfer");
// }
// else if (oDRow["PAYMENTMODE"].ToString()=="3")
// {
// sb.Append("Provision");
// }
// Branch oBranch = oBranches.Find(delegate(Branch dr) { return dr.ID.Integer.ToString() == oDRow["branchid"].ToString(); });
// if (oBranch != null)
// {
// sb.Append(Environment.NewLine);
// sb.Append(oBranch.Bank.Name + " " + oBranch.Name);
// }
// oDR["PAYMENTMODE"] = sb.ToString();
// oDR["AC"] = oDRow["accountno"].ToString();
// //oDR["SLNo"] = count;
// dBonusPaySlipData.Rows.Add(oDR);
// count++;
// }
// form.ShowDlgForBonusPaySlip(_selectedParameter.ReportItem, dBonusPaySlipData, _selectedParameter.Bonuses[0].ID.Integer);
// }
// public void MonthlyProdBonus(DateTime dBonusMonth)
// {
// fReportViewer form = new fReportViewer();
// int count = 1;
// DataRow oDR = null;
// DataSet oProdBonusProcessEmp = ProdBonusProcess.GetMontlyProdBonus(dBonusMonth);
// PayrollDataSet.PayrollDataSet.dtMonthlyProdBonusDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.dtMonthlyProdBonusDataTable();
// if(oProdBonusProcessEmp.Tables[0].Rows.Count>0)
// {
// GlobalFunctions.bDataFound = true;
// }
// else
// {
// return;
// }
// foreach (DataRow oDRow in oProdBonusProcessEmp.Tables[0].Rows)
// {
// oDR = dTable.NewRow();
// oDR["EMPLOYEENO"] = oDRow["EMPLOYEENO"];
// oDR["Name"] = oDRow["NAME"];
// oDR["Designation"] = oDRow["Designation"];
// oDR["DepartmentID"] = oDRow["DepartmentID"];
// oDR["Department"] = oDRow["Department"];
// oDR["Amount"] = Convert.ToDouble(oDRow["Amount"]).ToString("0.00");
// dTable.Rows.Add(oDR);
// count++;
// }
// DataSet dSet = new DataSet();
// dTable.TableName = "PayrollDataSet_dtMonthlyProdBonus";
// dSet.Tables.Add(dTable);
// string RDLC = "Payroll.Report.RDLC.rptMontlyProdBonus.rdlc";
// ReportParameter rParam;
// List<ReportParameter> _reportParameters = new List<ReportParameter>();
// rParam = new ReportParameter("Month", dBonusMonth.ToString("MMM yyyy"));
// _reportParameters.Add(rParam);
// form.CommonReportViewer(null, RDLC, dSet, _reportParameters, true);
// }
// public void EmpDesignWiseProdBonus(DateTime dBonusMonth)
// {
// fReportViewer form = new fReportViewer();
// int count = 1;
// DataRow oDR = null;
// DataSet oProdBonus = ProdBonusProcess.EmpDesignWiseProdBonus(dBonusMonth);
// if (oProdBonus.Tables[0].Rows.Count > 0)
// {
// GlobalFunctions.bDataFound = true;
// }
// else
// {
// return;
// }
// //ObjectsTemplate<ProdBonusProcessEmp> oProdBonusProcessEmp = ProdBonusProcessEmp;
// PayrollDataSet.PayrollDataSet.dtEmpDesWiseProdBonusDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.dtEmpDesWiseProdBonusDataTable();
// foreach (DataRow oDRow in oProdBonus.Tables[0].Rows)
// {
// oDR = dTable.NewRow();
// oDR["EMPLOYEENO"] = oDRow["EMPLOYEENO"];
// oDR["Name"] = oDRow["NAME"];
// oDR["Designation"] = oDRow["Designation"];
// oDR["Amount"] = Convert.ToDouble(oDRow["Amount"]).ToString("0.00");
// oDR["WorkingHour"] = Convert.ToDouble(oDRow["WorkingHour"]).ToString("0.00");
// oDR["ScheduledHour"] = Convert.ToDouble(oDRow["ScheduledHour"]).ToString("0.00");
// oDR["OTHour"] = Convert.ToDouble(oDRow["OTHour"]).ToString("0.00");
// oDR["DesignNo"] = oDRow["DesignNo"];
// oDR["StartDate"] =Convert.ToDateTime(oDRow["StartDate"]).ToString("dd MMM yyy");
// oDR["EndDate"] = Convert.ToDateTime(oDRow["EndDate"]).ToString("dd MMM yyy");
// dTable.Rows.Add(oDR);
// count++;
// }
// DataSet dSet = new DataSet();
// dTable.TableName = "PayrollDataSet_dtEmpDesWiseProdBonus";
// dSet.Tables.Add(dTable);
// string RDLC = "Payroll.Report.RDLC.rptEmpDesignWiseProdBonus.rdlc";
// ReportParameter rParam;
// List<ReportParameter> _reportParameters = new List<ReportParameter>();
// rParam = new ReportParameter("Month", dBonusMonth.ToString("MMM yyyy"));
// _reportParameters.Add(rParam);
// form.CommonReportViewer(null, RDLC, dSet, _reportParameters, true);
// }
// public void ProdBonusDetail(ProductionBonusSetup design)
// {
// fReportViewer form = new fReportViewer();
// int count = 1;
// DataRow oDR = null;
// DataSet oProdBonusDetail = ProdBonusProcess.GetProdBonusDetail(design.ID.Integer);
// if (oProdBonusDetail.Tables[0].Rows.Count > 0)
// {
// GlobalFunctions.bDataFound = true;
// }
// PayrollDataSet.PayrollDataSet.dtProdBonusDetailDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.dtProdBonusDetailDataTable();
// foreach (DataRow oDRow in oProdBonusDetail.Tables[0].Rows)
// {
// oDR = dTable.NewRow();
// oDR["EMPLOYEENO"] = oDRow["EMPLOYEENO"];
// oDR["Name"] = oDRow["NAME"];
// oDR["Designation"] = oDRow["Designation"];
// oDR["Amount"] = Convert.ToDouble(oDRow["Amount"]).ToString("0.00");
// oDR["WorkingHour"] = oDRow["WorkingHour"];
// oDR["ScheduledHour"] = oDRow["ScheduledHour"];
// oDR["OTHour"] = Convert.ToDouble(oDRow["OTHour"]).ToString("0.00");
// dTable.Rows.Add(oDR);
// count++;
// }
// DataSet dSet = new DataSet();
// dTable.TableName = "PayrollDataSet_dtProdBonusDetail";
// dSet.Tables.Add(dTable);
// string RDLC = "Payroll.Report.RDLC.rptProdBonusDetail.rdlc";
// ReportParameter rParam;
// List<ReportParameter> _reportParameters = new List<ReportParameter>();
// rParam = new ReportParameter("DesignNo", design.DesignNo);
// _reportParameters.Add(rParam);
// form.CommonReportViewer(null, RDLC, dSet, _reportParameters, true);
// }
// }
//}