EchoTex_Payroll/HRM.Report/Class/PaySlip.cs

5587 lines
274 KiB
C#
Raw Normal View History

2024-10-14 10:01:49 +06:00
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 System.Net.Mail;
using HRM.BO.Configuration;
using Microsoft.Reporting.NETCore;
namespace HRM.Report
{
public class PaySlip
{
List<EmployeeBankAccount> _empBankAccs = null;
List<ESBDefinition> _oGratuityParams = null;
private DateTime _dSalaryMonth = DateTime.MinValue;
private DateTime _dMonthEndDate = DateTime.MinValue;
DateTime _fiscalyearStart;
DateTime _SalaryMonth;
public PaySlip()
{
}
public byte[] ReportOverAllSummary(int payrollTypeId, string sEmpID, DateTime SalaryMonth, string reportType)
{
DateTime salaryMonth = SalaryMonth.LastDateOfMonth();
string[] sEmp = sEmpID.Split(new char[] { ',' });
int nTotalEmp = sEmp.Count();
int nCount = 0;
DataSet oSalaryMonthlys = new SalaryMonthlyService().GetEmpOverAllSummaryGross(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable PayslipData = new PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable();
PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable deducDataTable = new PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable();
foreach (DataRow odRow in oSalaryMonthlys.Tables[0].Rows)
{
DataRow oRow = this.GetItemForOverAll(PayslipData, (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
if (oRow == null)
{
oRow = PayslipData.NewRow();
oRow = this.GrossMergeForOverAll(oRow, odRow, nTotalEmp, salaryMonth);
nCount = nCount + 1;
PayslipData.Rows.Add(oRow);
}
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
oRow["Earnings"] = odRow["Amount"];
else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
oRow["Arrear"] = odRow["Amount"];
else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
oRow["UnAuthLeave"] = odRow["Amount"];
}
oSalaryMonthlys = new SalaryMonthlyService().GetEmpOverAllSummaryDeduct(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
int deductRowCount = oSalaryMonthlys.Tables[0].Rows.Count;
int addedDeductRowCount = 0;
try
{
foreach (DataRow odRow in oSalaryMonthlys.Tables[0].Rows)
{
if (deductRowCount <= nCount)
{
DataRow oRow = PayslipData.Rows[addedDeductRowCount];
oRow["DeducDescription"] = odRow["DESCRIPTION"];
oRow["DeducAmount"] = odRow["Amount"];
deductRowCount--;
addedDeductRowCount++;
}
else
{
DataRow oRow = PayslipData.NewRow();
oRow["DeducDescription"] = odRow["Description"];
oRow["DeducAmount"] = odRow["Amount"];
deductRowCount--;
PayslipData.Rows.Add(oRow);
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
ReportProcessor reportProcessor = new ReportProcessor();
return reportProcessor.ShowDlgForPaySlipOverAllSummary(null, PayslipData, reportType, payrollTypeId);
}
private DataRow GrossMergeForOverAll(DataRow destination, DataRow source, int nTotalEmp, DateTime sMonth)
{
destination["TotalEmp"] = nTotalEmp;
if (source["Description"].ToString().Contains("'"))
{
destination["Description"] = source["Description"].ToString().Replace("'", "\'");
}
else if (source["Description"].ToString().Contains("/"))
{
destination["Description"] = source["Description"].ToString().Replace("/", "/'");
}
else
{
destination["Description"] = source["Description"];
}
destination["ItemGroup"] = source["ITEMGROUP"];
destination["ItemCode"] = source["ITEMCode"];
destination["ItemID"] = source["ITEMID"];
destination["Month"] = sMonth;
return destination;
}
private DataRow GetItemForOverAll(PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable Source, EnumSalaryGroup groupCode, EnumSalaryItemCode itemCode, int ITemID)
{
foreach (DataRow odRow in Source.Rows)
{
if (Convert.ToInt32(odRow["ItemCode"]) == (int)itemCode && Convert.ToInt32(odRow["ItemID"]) == ITemID)
{
return odRow;
}
}
return null;
}
public byte[] ShowReport(int payrollTypeID, DateTime SalaryMonth, string sEmpID, bool isForESS)
{
DataSet oFDST = new DataSet();
_empBankAccs = new List<EmployeeBankAccount>();
_empBankAccs = new EmployeeBankAccountService().Get();
_oGratuityParams = new ESBDefinitionService().Get();
Employee oEmployee = null;
List<Employee> oEmps = new List<Employee>();
oEmps = new EmployeeService().GetAllEmps();
List<Designation> oDesigs = new DesignationService().Get(EnumStatus.Regardless, payrollTypeID);
ReportProcessor reportProcessor = new ReportProcessor();
DateTime salaryMonth = SalaryMonth.LastDateOfMonth();
List<SalaryProcess> oSaProcess = new List<SalaryProcess>();
oSaProcess = new SalaryProcessService().Get(salaryMonth, payrollTypeID);
//DataTable basicInfo = new HRM.Report.PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable();
if (isForESS)
{
foreach (SalaryProcess item in oSaProcess)
{
if (!item.ShowInDesktops)
{
throw new Exception("Salary is not approved yet.");
}
}
}
//bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
DataSet oSalaryMonthlysGross = new SalaryMonthlyService().GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
HRM.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable loanDT = new HRM.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable();
//bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
_dSalaryMonth = GlobalFunctions.LastDateOfMonth(salaryMonth);
if (oSaProcess != null && oSaProcess.Count > 0 && oSalaryMonthlysGross.Tables[0].Rows.Count > 0)
{
if (oSaProcess[0].PaymentDate != DateTime.MinValue)
{
_dMonthEndDate = Convert.ToDateTime(oSaProcess[0].PaymentDate);
}
else
{
_dMonthEndDate = DateTime.MinValue;
}
}
foreach (DataRow odRow in oSalaryMonthlysGross.Tables[0].Rows)
{
double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
if (dbl == 0)
{
continue;
}
DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
if (oRow == null)
{
oRow = PayslipData.NewRow();
oRow = this.GrossMergePayslip(oRow, odRow);
PayslipData.Rows.Add(oRow);
}
if (Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross)
{
oRow["Earning"] = odRow["CHANGEDAMOUNT"];
}
else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
{
double dArrear = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
oRow["Arrear"] = dArrear;
}
else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
{
oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
}
}
int nCount = 0;
DataSet oSalaryMonthlysDeduct = new SalaryMonthlyService().GetEmpPaySlipDeductForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo = "";
DataRow[] odros = null;
if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
{
employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
double dGratuityAmount = 0;
double dPFAmount = 0;
string sTEmpEmpNo = "";
double nCurrPFAmount = 0;
foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
{
double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
if (dbl == 0)
{
continue;
}
DataRow oRow = null;
if (employeeNo != odRow["EMPLOYEENO"].ToString())
{
odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros.Length <= nCount)
{
oRow = PayslipData.NewRow();
oRow = this.GrossMergePayslip(oRow, odRow);
PayslipData.Rows.Add(oRow);
}
else oRow = odros[nCount];
oRow["DeducDescription"] = odRow["Description"];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
oRow["DeducDescription"] = odRow["Description"];
//oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
if (sTEmpEmpNo == "" || sTEmpEmpNo != odRow["EMPLOYEENO"].ToString())
{
nCurrPFAmount = 0;
dPFAmount = 0;
oEmployee = oEmps.Find(delegate (Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
DataRow[] odrosPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEENO='" + odRow["EMPLOYEENO"].ToString() + "'");
if (odrosPF.Length > 0)
{
DataRow oRowPF = odrosPF[0];
nCurrPFAmount = Convert.ToDouble(oRowPF["CHANGEDAMOUNT"]);
}
if (oEmployee != null)
{
if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
{
dGratuityAmount = GetGratuityAmount(_oGratuityParams, oEmployee, salaryMonth);
}
else
{
dGratuityAmount = 0;
}
dPFAmount = GetPFAmount(oEmployee, salaryMonth);
}
}
oRow["Gratuity"] = dGratuityAmount;
double nServiceLength = 0;
if (oEmployee != null)
nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmployee);
if (nServiceLength > 5)
{
//oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
oRow["PF"] = dPFAmount + nCurrPFAmount;
}
else
{
oRow["PF"] = dPFAmount + nCurrPFAmount;
}
nCount = nCount + 1;
employeeNo = odRow["EMPLOYEENO"].ToString();
sTEmpEmpNo = odRow["EMPLOYEENO"].ToString();
}
nCount = 0;
DataSet oSalaryMonthlysIncomeTax = new SalaryMonthlyService().GetEmpPaySlipIncomeTaxAmountForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo1 = "";
DataRow[] odros1 = null;
if (oSalaryMonthlysIncomeTax.Tables[0].Rows.Count > 0)
{
employeeNo1 = oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
foreach (DataRow odRow in oSalaryMonthlysIncomeTax.Tables[0].Rows)
{
DataRow oRow = null;
if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
{
odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros1.Length <= nCount) continue;
oRow = odros1[nCount];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Inc_Tax_Deduction))
oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
nCount = nCount + 1;
employeeNo1 = odRow["EMPLOYEENO"].ToString();
}
nCount = 0;
DataSet oSalaryMonthlysLaonAmount = new SalaryMonthlyService().GetEmpPaySlipDeductForLR(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo12 = "";
DataRow[] odros12 = null;
if (oSalaryMonthlysLaonAmount.Tables[0].Rows.Count > 0)
{
employeeNo12 = oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros12 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
{
DataRow oRow = null;
if (employeeNo12 != odRow["EMPLOYEENO"].ToString())
{
odros12 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros12.Length <= nCount) continue;
oRow = odros12[nCount];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Miscellaneous) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Remain_Balance))
{
oRow["LoanDescription"] = odRow["Description"];
oRow["LoanAmount"] = odRow["CHANGEDAMOUNT"];
}
nCount = nCount + 1;
employeeNo12 = odRow["EMPLOYEENO"].ToString();
}
bool isDesigFromEmp = false;// ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
foreach (DataRow oRow in PayslipData.Rows)
{
Employee oEmp = oEmps
.Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
.SingleOrDefault();
if (oEmp != null)
{
if (isDesigFromEmp)
{
oRow["Designation"] = oEmp.DescriptionText;
}
else
{
Designation oDesg = oDesigs.Where(o => o.ID == oEmp.DesignationID).SingleOrDefault();
if (oDesg != null)
{
oRow["Designation"] = oDesg.Name;
}
}
}
}
//basicInfo = oSalaryMonthlysGross.Tables[0].Copy();
//basicInfo.TableName = "BasicInfo";
//DateTime joinDate = DateTime.MinValue;
//foreach (DataRow oRow in basicInfo.Rows)
//{
// joinDate = oRow["JoinIngDate"] == DBNull.Value ? DateTime.MinValue : Convert.ToDateTime(oRow["JoinIngDate"]);
// if (joinDate != DateTime.MinValue)
// oRow["JOININGDATE"] = joinDate.ToString("dd MMM yyyy");
// if (oRow["PaymentMode"].ToString() == "1")
// {
// oRow["PaymentMode"] = "CashPayment";
// }
// else if (oRow["PaymentMode"].ToString() == "2")
// {
// oRow["PaymentMode"] = "BankTransfer";
// }
// else if (oRow["PaymentMode"] == "3")
// {
// oRow["PaymentMode"] = "Provision";
// }
//}
loanDT.TableName = "PayrollDataSet_LoanData";
PayslipData.TableName = "PayrollDataSet_Payslip";
oFDST.Tables.Add(PayslipData);
oFDST.Tables.Add(loanDT);
if (PayslipData != null && PayslipData.Rows.Count <= 0)
{
return null;
}
return reportProcessor.GetPayslipReport(null, oFDST, payrollTypeID);
}
public byte[] ShowReportNew(int payrollTypeID, DateTime SalaryMonth, string sEmpID, bool isForESS)
{
DataSet oFDST = new DataSet();
//_empBankAccs = new List<EmployeeBankAccount>();
//_empBankAccs = new EmployeeBankAccountService().Get();
//_oGratuityParams = new ESBDefinitionService().Get();
Employee oEmployee = null;
List<Employee> oEmps = new List<Employee>();
oEmps = new EmployeeService().GetByEmpIDs(sEmpID, payrollTypeID);
List<Designation> oDesigs = new DesignationService().Get(EnumStatus.Regardless, payrollTypeID);
ReportProcessor reportProcessor = new ReportProcessor();
DateTime salaryMonth = SalaryMonth.LastDateOfMonth();
List<SalaryProcess> oSaProcess = new List<SalaryProcess>();
oSaProcess = new SalaryProcessService().Get(salaryMonth, payrollTypeID);
DataTable basicInfo = new HRM.Report.PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable();
if (isForESS)
{
foreach (SalaryProcess item in oSaProcess)
{
if (!item.ShowInDesktops)
{
throw new Exception("Salary is not approved yet.");
}
}
}
//bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
DataSet oSalaryMonthlysGross = new SalaryMonthlyService().GetEmpPaySlipGrossForOthersNew(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
HRM.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable loanDT = new HRM.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable();
//bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
_dSalaryMonth = GlobalFunctions.LastDateOfMonth(salaryMonth);
if (oSaProcess != null && oSaProcess.Count > 0 && oSalaryMonthlysGross.Tables[1].Rows.Count > 0)
{
if (oSaProcess[0].PaymentDate != DateTime.MinValue)
{
_dMonthEndDate = Convert.ToDateTime(oSaProcess[0].PaymentDate);
}
else
{
_dMonthEndDate = DateTime.MinValue;
}
}
foreach (DataRow odRow in oSalaryMonthlysGross.Tables[1].Rows)
{
double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
if (dbl == 0)
{
continue;
}
DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
if (oRow == null)
{
oRow = PayslipData.NewRow();
oRow = this.GrossMergePayslip(oRow, odRow);
PayslipData.Rows.Add(oRow);
}
if (Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross)
{
oRow["Earning"] = odRow["CHANGEDAMOUNT"];
}
else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
{
double dArrear = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
oRow["Arrear"] = dArrear;
}
else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
{
oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
}
}
int nCount = 0;
DataSet oSalaryMonthlysDeduct = new SalaryMonthlyService().GetEmpPaySlipDeductForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo = "";
DataRow[] odros = null;
if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
{
employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
double dGratuityAmount = 0;
double dPFAmount = 0;
string sTEmpEmpNo = "";
double nCurrPFAmount = 0;
foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
{
double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
if (dbl == 0)
{
continue;
}
DataRow oRow = null;
if (employeeNo != odRow["EMPLOYEENO"].ToString())
{
odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros.Length <= nCount)
{
oRow = PayslipData.NewRow();
oRow = this.GrossMergePayslip(oRow, odRow);
PayslipData.Rows.Add(oRow);
}
else oRow = odros[nCount];
oRow["DeducDescription"] = odRow["Description"];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
oRow["DeducDescription"] = odRow["Description"];
//oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
if (sTEmpEmpNo == "" || sTEmpEmpNo != odRow["EMPLOYEENO"].ToString())
{
nCurrPFAmount = 0;
dPFAmount = 0;
oEmployee = oEmps.Find(delegate (Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
DataRow[] odrosPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEENO='" + odRow["EMPLOYEENO"].ToString() + "'");
if (odrosPF.Length > 0)
{
DataRow oRowPF = odrosPF[0];
nCurrPFAmount = Convert.ToDouble(oRowPF["CHANGEDAMOUNT"]);
}
if (oEmployee != null)
{
//if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
//{
// dGratuityAmount = GetGratuityAmount(_oGratuityParams, oEmployee, salaryMonth);
//}
//else
//{
// dGratuityAmount = 0;
//}
dPFAmount = GetPFAmount(oEmployee, salaryMonth);
}
}
oRow["Gratuity"] = dGratuityAmount;
double nServiceLength = 0;
if (oEmployee != null)
nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmployee);
if (nServiceLength > 5)
{
//oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
oRow["PF"] = dPFAmount + nCurrPFAmount;
}
else
{
oRow["PF"] = dPFAmount + nCurrPFAmount;
}
nCount = nCount + 1;
employeeNo = odRow["EMPLOYEENO"].ToString();
sTEmpEmpNo = odRow["EMPLOYEENO"].ToString();
}
nCount = 0;
DataSet oSalaryMonthlysIncomeTax = new SalaryMonthlyService().GetEmpPaySlipIncomeTaxAmountForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo1 = "";
DataRow[] odros1 = null;
if (oSalaryMonthlysIncomeTax.Tables[0].Rows.Count > 0)
{
employeeNo1 = oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
foreach (DataRow odRow in oSalaryMonthlysIncomeTax.Tables[0].Rows)
{
DataRow oRow = null;
if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
{
odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros1.Length <= nCount) continue;
oRow = odros1[nCount];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Inc_Tax_Deduction))
oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
nCount = nCount + 1;
employeeNo1 = odRow["EMPLOYEENO"].ToString();
}
nCount = 0;
DataSet oSalaryMonthlysLaonAmount = new SalaryMonthlyService().GetEmpPaySlipDeductForLR(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo12 = "";
DataRow[] odros12 = null;
if (oSalaryMonthlysLaonAmount.Tables[0].Rows.Count > 0)
{
employeeNo12 = oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros12 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
{
DataRow oRow = null;
if (employeeNo12 != odRow["EMPLOYEENO"].ToString())
{
odros12 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros12.Length <= nCount) continue;
oRow = odros12[nCount];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Miscellaneous) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Remain_Balance))
{
oRow["LoanDescription"] = odRow["Description"];
oRow["LoanAmount"] = odRow["CHANGEDAMOUNT"];
}
nCount = nCount + 1;
employeeNo12 = odRow["EMPLOYEENO"].ToString();
}
bool isDesigFromEmp = false;// ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
foreach (DataRow oRow in PayslipData.Rows)
{
Employee oEmp = oEmps
.Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
.SingleOrDefault();
if (oEmp != null)
{
if (isDesigFromEmp)
{
oRow["Designation"] = oEmp.DescriptionText;
}
else
{
Designation oDesg = oDesigs.Where(o => o.ID == oEmp.DesignationID).SingleOrDefault();
if (oDesg != null)
{
oRow["Designation"] = oDesg.Name;
}
}
}
}
basicInfo = oSalaryMonthlysGross.Tables[0].Copy();
basicInfo.TableName = "BasicInfo";
DateTime joinDate = DateTime.MinValue;
foreach (DataRow oRow in basicInfo.Rows)
{
joinDate = oRow["JoinIngDate"] == DBNull.Value ? DateTime.MinValue : Convert.ToDateTime(oRow["JoinIngDate"]);
if (joinDate != DateTime.MinValue)
oRow["JOININGDATE"] = joinDate.ToString("dd MMM yyyy");
if (oRow["PaymentMode"].ToString() == "1")
{
oRow["PaymentMode"] = "CashPayment";
oRow["AccountNO"] = oRow["OutAccountNo"];
oRow["BName"] = oRow["OutBank"];
}
else if (oRow["PaymentMode"].ToString() == "2")
{
oRow["PaymentMode"] = "BankTransfer";
}
else if (oRow["PaymentMode"] == "3")
{
oRow["PaymentMode"] = "Provision";
}
}
//DataSet dsSubReport = new DataSet();
//PayslipData.TableName = "SalaryMonthlysGross";
//dsSubReport.Tables.Add(PayslipData);
//rlforPayslipdt.TableName = "RemainingLoanforPayslip";
//dsSubReport.Tables.Add(rlforPayslipdt);
loanDT.TableName = "RemainingLoanforPayslip";
PayslipData.TableName = "SalaryMonthlysGross";
oFDST.Tables.Add(PayslipData);
oFDST.Tables.Add(loanDT);
if (PayslipData != null && PayslipData.Rows.Count <= 0)
{
return null;
}
return reportProcessor.ShowDlgForNewPaySlip(null, basicInfo,oFDST, payrollTypeID);
}
public void PayslipMail(int payrollTypeID, DateTime SalaryMonth, string sEmpID, bool isForESS, EmailSettings emailSettings)
{
DataSet oFDST = new DataSet();
byte[] bytes = null;
_empBankAccs = new List<EmployeeBankAccount>();
_empBankAccs = new EmployeeBankAccountService().Get();
_oGratuityParams = new ESBDefinitionService().Get();
Employee oEmployee = null;
List<Employee> oEmps = new List<Employee>();
oEmps = new EmployeeService().GetByEmpNos(sEmpID);
List<Designation> oDesigs = new DesignationService().Get(EnumStatus.Regardless, payrollTypeID);
ReportProcessor reportProcessor = new ReportProcessor();
DateTime salaryMonth = SalaryMonth.LastDateOfMonth();
List<SalaryProcess> oSaProcess = new List<SalaryProcess>();
oSaProcess = new SalaryProcessService().Get(salaryMonth, payrollTypeID);
if (isForESS)
{
foreach (SalaryProcess item in oSaProcess)
{
if (!item.ShowInDesktops)
{
throw new Exception("Salary is not approved yet.");
}
}
}
//bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
DataSet oSalaryMonthlysGross = new SalaryMonthlyService().GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
//HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipDatatemp = new HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
HRM.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable loanDT = new HRM.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable();
//bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
DataTable PayslipDatatemp = new DataTable();
DataTable loanDatatemp = new DataTable();
_dSalaryMonth = GlobalFunctions.LastDateOfMonth(salaryMonth);
if (oSaProcess != null && oSaProcess.Count > 0 && oSalaryMonthlysGross.Tables[0].Rows.Count > 0)
{
if (oSaProcess[0].PaymentDate != DateTime.MinValue)
{
_dMonthEndDate = Convert.ToDateTime(oSaProcess[0].PaymentDate);
}
else
{
_dMonthEndDate = DateTime.MinValue;
}
}
foreach (DataRow odRow in oSalaryMonthlysGross.Tables[0].Rows)
{
double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
if (dbl == 0)
{
continue;
}
DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
if (oRow == null)
{
oRow = PayslipData.NewRow();
oRow = this.GrossMergePayslip(oRow, odRow);
PayslipData.Rows.Add(oRow);
}
if (Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross)
{
oRow["Earning"] = odRow["CHANGEDAMOUNT"];
}
else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
{
double dArrear = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
oRow["Arrear"] = dArrear;
}
else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
{
oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
}
}
int nCount = 0;
DataSet oSalaryMonthlysDeduct = new SalaryMonthlyService().GetEmpPaySlipDeductForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo = "";
DataRow[] odros = null;
if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
{
employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
double dGratuityAmount = 0;
double dPFAmount = 0;
string sTEmpEmpNo = "";
double nCurrPFAmount = 0;
foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
{
double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
if (dbl == 0)
{
continue;
}
DataRow oRow = null;
if (employeeNo != odRow["EMPLOYEENO"].ToString())
{
odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros.Length <= nCount)
{
oRow = PayslipData.NewRow();
oRow = this.GrossMergePayslip(oRow, odRow);
PayslipData.Rows.Add(oRow);
}
else oRow = odros[nCount];
oRow["DeducDescription"] = odRow["Description"];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
oRow["DeducDescription"] = odRow["Description"];
//oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
if (sTEmpEmpNo == "" || sTEmpEmpNo != odRow["EMPLOYEENO"].ToString())
{
nCurrPFAmount = 0;
dPFAmount = 0;
oEmployee = oEmps.Find(delegate (Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
DataRow[] odrosPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEENO='" + odRow["EMPLOYEENO"].ToString() + "'");
if (odrosPF.Length > 0)
{
DataRow oRowPF = odrosPF[0];
nCurrPFAmount = Convert.ToDouble(oRowPF["CHANGEDAMOUNT"]);
}
if (oEmployee != null)
{
if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
{
dGratuityAmount = GetGratuityAmount(_oGratuityParams, oEmployee, salaryMonth);
}
else
{
dGratuityAmount = 0;
}
dPFAmount = GetPFAmount(oEmployee, salaryMonth);
}
}
oRow["Gratuity"] = dGratuityAmount;
double nServiceLength = 0;
if (oEmployee != null)
nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmployee);
if (nServiceLength > 5)
{
//oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
oRow["PF"] = dPFAmount + nCurrPFAmount;
}
else
{
oRow["PF"] = dPFAmount + nCurrPFAmount;
}
nCount = nCount + 1;
employeeNo = odRow["EMPLOYEENO"].ToString();
sTEmpEmpNo = odRow["EMPLOYEENO"].ToString();
}
nCount = 0;
DataSet oSalaryMonthlysIncomeTax = new SalaryMonthlyService().GetEmpPaySlipIncomeTaxAmountForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo1 = "";
DataRow[] odros1 = null;
if (oSalaryMonthlysIncomeTax.Tables[0].Rows.Count > 0)
{
employeeNo1 = oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
foreach (DataRow odRow in oSalaryMonthlysIncomeTax.Tables[0].Rows)
{
DataRow oRow = null;
if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
{
odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros1.Length <= nCount) continue;
oRow = odros1[nCount];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Inc_Tax_Deduction))
oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
nCount = nCount + 1;
employeeNo1 = odRow["EMPLOYEENO"].ToString();
}
nCount = 0;
DataSet oSalaryMonthlysLaonAmount = new SalaryMonthlyService().GetEmpPaySlipDeductForLR(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo12 = "";
DataRow[] odros12 = null;
if (oSalaryMonthlysLaonAmount.Tables[0].Rows.Count > 0)
{
employeeNo12 = oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros12 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
{
DataRow oRow = null;
if (employeeNo12 != odRow["EMPLOYEENO"].ToString())
{
odros12 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros12.Length <= nCount) continue;
oRow = odros12[nCount];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Miscellaneous) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Remain_Balance))
{
oRow["LoanDescription"] = odRow["Description"];
oRow["LoanAmount"] = odRow["CHANGEDAMOUNT"];
}
nCount = nCount + 1;
employeeNo12 = odRow["EMPLOYEENO"].ToString();
}
bool isDesigFromEmp = false;// ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
foreach (DataRow oRow in PayslipData.Rows)
{
Employee oEmp = oEmps
.Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
.SingleOrDefault();
if (oEmp != null)
{
if (isDesigFromEmp)
{
oRow["Designation"] = oEmp.DescriptionText;
}
else
{
Designation oDesg = oDesigs.Where(o => o.ID == oEmp.DesignationID).SingleOrDefault();
if (oDesg != null)
{
oRow["Designation"] = oDesg.Name;
}
}
}
}
foreach (Employee emp in oEmps)
{
if (oFDST.Tables.Count > 0)
{
oFDST.Tables.Remove("PayrollDataSet_LoanData");
oFDST.Tables.Remove("PayrollDataSet_Payslip");
}
PayslipDatatemp = PayslipData.AsEnumerable().Where(x => x["EMPLOYEENO"].ToString() == emp.EmployeeNo).Any()? PayslipData.AsEnumerable().Where(x => x["EMPLOYEENO"].ToString() == emp.EmployeeNo).CopyToDataTable():new DataTable();
loanDatatemp= loanDT.AsEnumerable().Where(x => x["EMPLOYEENO"].ToString() == emp.EmployeeNo).Any()? loanDT.AsEnumerable().Where(x => x["EMPLOYEENO"].ToString() == emp.EmployeeNo).CopyToDataTable():new DataTable();
loanDatatemp.TableName = "PayrollDataSet_LoanData";
PayslipDatatemp.TableName = "PayrollDataSet_Payslip";
oFDST.Tables.Add(PayslipDatatemp);
oFDST.Tables.Add(loanDatatemp);
bytes= reportProcessor.GetPayslipReport(null, oFDST, payrollTypeID);
MailSender mailSender = new MailSender();
mailSender.AddTo(emp.EmailAddress.ToString());
mailSender.Subject = "Payslip for the month "+ salaryMonth.ToString("MMM yyyy");
Attachment att = new Attachment(new MemoryStream(bytes), "Payslip.pdf");
mailSender.Body = "<p>" + "" + "</p>";
mailSender.SendMail(emailSettings, att);
//System.Threading.Thread.Sleep(60000);
}
}
public static ESBDefinition GetESBDefinition(List<ESBDefinition> definations, Employee employee)
{
ESBDefinition odefinaiton = null;
ESBGrade oESBGrade = null;
odefinaiton = definations.Where(x => x.PayrollTypeID == employee.PayrollTypeID).SingleOrDefault();
if (odefinaiton != null)
oESBGrade = odefinaiton.ESBGrades.Where(t => t.GradeID == employee.GradeID).SingleOrDefault();
return odefinaiton;
}
public double GetGratuityAmount(List<ESBDefinition> oItems, Employee oEmp, DateTime salaryMonth)
{
double nAmout = 0.0;
double nFracYear = 0.0;
ESBDefinition item = GetESBDefinition(oItems, oEmp);
double nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmp);
if (item != null)
{
foreach (ESBSlab eslb in item.ESBSlabs)
{
nAmout = 0.0;
if (eslb.ServiceYear <= nServiceLength)
{
string[] sFracMonth = nServiceLength.ToString().Split(new char[] { '.' });
nFracYear = 0;
if (sFracMonth.Length > 1)
nFracYear = GlobalFunctions.Round(Convert.ToDouble("." + sFracMonth[1]));
if (nFracYear >= 0.5)
{
nServiceLength = Convert.ToDouble(sFracMonth[0]) + 1;
}
else
{
nServiceLength = Convert.ToDouble(sFracMonth[0]);
}
nAmout = oEmp.BasicSalary * eslb.CalculateNo * nServiceLength;
}
else
{
nAmout = 0;
}
}
}
return nAmout;
}
public double GetPFAmount(Employee oEmp, DateTime salaryMonth)
{
double nAmout = 0.0;
DataSet ds = new PFTransactionService().GetPFBalance(oEmp.ID, GlobalFunctions.LastDateOfMonth(salaryMonth));
double nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmp);
foreach (DataRow dr in ds.Tables[0].Rows)
{
if (Convert.ToInt16(dr["TranTP"]) == 1)
{
nAmout = Convert.ToDouble(dr["Amount"]);
}
//if (nServiceLength > 5)
//{
// nAmout += Convert.ToDouble(dr["Amount"]);
//}
//else
//{
// if (Convert.ToInt16(dr["TranTP"]) != 2)
// {
// nAmout += Convert.ToDouble(dr["Amount"]);
// }
//}
}
return nAmout;
}
private double ServiceYears(DateTime dt, Employee oEmp)
{
double n = Global.DateFunctions.DateDiff("d", oEmp.JoiningDate, dt);
if (n >= 365)
return n / 365;
else
return 0.0;
}
private DataRow GrossMergePayslip(DataRow destination, DataRow source)
{
if (Convert.ToInt32(source["ItemGroup"]) == 3)
{
destination["Name"] = source["Name"];
destination["TINNo"] = source["TINNo"];
destination["EMPLOYEENO"] = source["EMPLOYEENO"];
destination["Grade"] = source["Grade"];
destination["Designation"] = source["Designation"];
destination["Department"] = source["Department"];
destination["LName"] = source["LName"];
destination["JoiningDate"] = source["JoiningDate"];
destination["BName"] = source["BName"];
destination["ActualBasic"] = source["ActualBasic"];
if (source["PAYMENTMODE"].Equals(1))
{
destination["PAYMENTMODE"] = "CashPayment";
}
else if (source["PAYMENTMODE"].Equals(2))
{
destination["PAYMENTMODE"] = "BankTransfer";
}
else if (source["PAYMENTMODE"].Equals(3))
{
destination["PAYMENTMODE"] = "Provision";
}
//EmployeeBankAccount oemp = new EmployeeBankAccount();
//oemp = _empBankAccs.Where(x => x.EmployeeID == Convert.ToInt32(source["EmployeeID"].ToString()) && x.AccountType == EnumBankAccountType.OutPayAccount).FirstOrDefault();
//if (oemp != null)
//{
// destination["ACCOUNTNO"] = oemp.AccountNo;
//}
//else
//{
destination["ACCOUNTNO"] = source["ACCOUNTNO"];
//}
destination["SalaryMonth"] = Convert.ToDateTime(source["SalaryMonth"]).ToString("dd MMM yyyy");
destination["Description"] = "";
destination["ItemGroup"] = source["ITEMGROUP"];
destination["ItemCode"] = source["ITEMCode"];
destination["ItemID"] = source["ITEMID"];
_SalaryMonth = Convert.ToDateTime(source["SalaryMonth"]);
if (_SalaryMonth.Month >= 1 && _SalaryMonth.Month < 7)
{
_fiscalyearStart = new DateTime(_SalaryMonth.Year - 1, 7, 1);
destination["TaxMonth"] = _fiscalyearStart.ToString("MMM yyyy");
}
else
{
_fiscalyearStart = new DateTime(_SalaryMonth.Year, 7, 1);
destination["TaxMonth"] = _fiscalyearStart.ToString("MMM yyyy");
}
//destination["TaxMonth"] = Payroll.BO.SystemInformation.CurrentSysInfo.TaxYearEndDate.AddMonths(1);
// destination["TaxFiscalYearAmount"] = GlobalFunctions.Round(item.GetAmountOnRange(oEmp, _dFiscalYear, _SalaryMonth.AddMinutes(1), EnumSalaryGroup.Deductions, EnumSalaryItemCode.Inc_Tax_Deduction, (int)EnumSalaryItemCode.Inc_Tax_Deduction));
return destination;
}
else
{
destination["Name"] = source["Name"];
destination["TINNo"] = source["TINNo"];
destination["EMPLOYEENO"] = source["EMPLOYEENO"];
destination["Grade"] = source["Grade"];
destination["Designation"] = source["Designation"];
destination["Department"] = source["Department"];
destination["LName"] = source["LName"];
destination["JoiningDate"] = source["JoiningDate"];
destination["BName"] = source["BName"];
destination["ActualBasic"] = source["ActualBasic"];
if (source["PAYMENTMODE"].Equals(1))
{
destination["PAYMENTMODE"] = "CashPayment";
}
else if (source["PAYMENTMODE"].Equals(2))
{
destination["PAYMENTMODE"] = "BankTransfer";
}
else if (source["PAYMENTMODE"].Equals(3))
{
destination["PAYMENTMODE"] = "Provision";
}
//EmployeeBankAccount oemp = new EmployeeBankAccount();
//oemp = _empBankAccs.Where(x => x.EmployeeID == Convert.ToInt32(source["EmployeeID"].ToString()) && x.AccountType == EnumBankAccountType.OutPayAccount).FirstOrDefault();
//if (oemp != null)
//{
// destination["ACCOUNTNO"] = oemp.AccountNo;
//}
//else
//{
destination["ACCOUNTNO"] = source["ACCOUNTNO"];
//}
destination["SalaryMonth"] = Convert.ToDateTime(source["SalaryMonth"]).ToString("dd MMM yyyy");
destination["Description"] = source["Description"];
destination["ItemGroup"] = source["ITEMGROUP"];
destination["ItemCode"] = source["ITEMCode"];
destination["ItemID"] = source["ITEMID"];
_SalaryMonth = Convert.ToDateTime(source["SalaryMonth"]);
if (_SalaryMonth.Month >= 1 && _SalaryMonth.Month < 7)
{
_fiscalyearStart = new DateTime(_SalaryMonth.Year - 1, 7, 1);
destination["TaxMonth"] = _fiscalyearStart.ToString("MMM yyyy");
}
else
{
_fiscalyearStart = new DateTime(_SalaryMonth.Year, 7, 1);
destination["TaxMonth"] = _fiscalyearStart.ToString("MMM yyyy");
}
// destination["TaxFiscalYearAmount"] = GlobalFunctions.Round(item.GetAmountOnRange(oEmp, _dFiscalYear, _SalaryMonth.AddMinutes(1), EnumSalaryGroup.Deductions, EnumSalaryItemCode.Inc_Tax_Deduction, (int)EnumSalaryItemCode.Inc_Tax_Deduction));
return destination;
}
}
private DataRow GetItem(HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable Source, string sEmpNo, EnumSalaryGroup groupCode, EnumSalaryItemCode itemCode, int ITemID)
{
foreach (DataRow odRow in Source.Rows)
{
if (Convert.ToString(odRow["EMPLOYEENO"]) == sEmpNo &&
Convert.ToInt32(odRow["ItemCode"]) == (int)itemCode && Convert.ToInt32(odRow["ItemID"]) == ITemID)
{
return odRow;
}
}
return null;
}
public byte[] DownloadPayslip(int payrollTypeID, DateTime SalaryMonth, string sEmpID, bool isForESS)
{
DataSet oFDST = new DataSet();
//_empBankAccs = new List<EmployeeBankAccount>();
//_empBankAccs = new EmployeeBankAccountService().Get();
//_oGratuityParams = new ESBDefinitionService().Get();
Employee oEmployee = null;
List<Employee> oEmps = new List<Employee>();
oEmps = new EmployeeService().GetByEmpIDs(sEmpID, payrollTypeID);
List<Designation> oDesigs = new DesignationService().Get(EnumStatus.Regardless, payrollTypeID);
ReportProcessor reportProcessor = new ReportProcessor();
DateTime salaryMonth = SalaryMonth.LastDateOfMonth();
List<SalaryProcess> oSaProcess = new List<SalaryProcess>();
oSaProcess = new SalaryProcessService().Get(salaryMonth, payrollTypeID);
DataTable basicInfo = new HRM.Report.PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable();
if (isForESS)
{
foreach (SalaryProcess item in oSaProcess)
{
if (!item.ShowInDesktops)
{
throw new Exception("Salary is not approved yet.");
}
}
}
//bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
DataSet oSalaryMonthlysGross = new SalaryMonthlyService().GetEmpPaySlipGrossForOthersNew(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
HRM.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable loanDT = new HRM.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable();
//bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
_dSalaryMonth = GlobalFunctions.LastDateOfMonth(salaryMonth);
if (oSaProcess != null && oSaProcess.Count > 0 && oSalaryMonthlysGross.Tables[1].Rows.Count > 0)
{
if (oSaProcess[0].PaymentDate != DateTime.MinValue)
{
_dMonthEndDate = Convert.ToDateTime(oSaProcess[0].PaymentDate);
}
else
{
_dMonthEndDate = DateTime.MinValue;
}
}
foreach (DataRow odRow in oSalaryMonthlysGross.Tables[1].Rows)
{
double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
if (dbl == 0)
{
continue;
}
DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
if (oRow == null)
{
oRow = PayslipData.NewRow();
oRow = this.GrossMergePayslip(oRow, odRow);
PayslipData.Rows.Add(oRow);
}
if (Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross)
{
oRow["Earning"] = odRow["CHANGEDAMOUNT"];
}
else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
{
double dArrear = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
oRow["Arrear"] = dArrear;
}
else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
{
oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
}
}
int nCount = 0;
DataSet oSalaryMonthlysDeduct = new SalaryMonthlyService().GetEmpPaySlipDeductForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo = "";
DataRow[] odros = null;
if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
{
employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
double dGratuityAmount = 0;
double dPFAmount = 0;
string sTEmpEmpNo = "";
double nCurrPFAmount = 0;
foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
{
double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
if (dbl == 0)
{
continue;
}
DataRow oRow = null;
if (employeeNo != odRow["EMPLOYEENO"].ToString())
{
odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros.Length <= nCount)
{
oRow = PayslipData.NewRow();
oRow = this.GrossMergePayslip(oRow, odRow);
PayslipData.Rows.Add(oRow);
}
else oRow = odros[nCount];
oRow["DeducDescription"] = odRow["Description"];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
oRow["DeducDescription"] = odRow["Description"];
//oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
if (sTEmpEmpNo == "" || sTEmpEmpNo != odRow["EMPLOYEENO"].ToString())
{
nCurrPFAmount = 0;
dPFAmount = 0;
oEmployee = oEmps.Find(delegate (Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
DataRow[] odrosPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEENO='" + odRow["EMPLOYEENO"].ToString() + "'");
if (odrosPF.Length > 0)
{
DataRow oRowPF = odrosPF[0];
nCurrPFAmount = Convert.ToDouble(oRowPF["CHANGEDAMOUNT"]);
}
if (oEmployee != null)
{
//if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
//{
// dGratuityAmount = GetGratuityAmount(_oGratuityParams, oEmployee, salaryMonth);
//}
//else
//{
// dGratuityAmount = 0;
//}
dPFAmount = GetPFAmount(oEmployee, salaryMonth);
}
}
oRow["Gratuity"] = dGratuityAmount;
double nServiceLength = 0;
if (oEmployee != null)
nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmployee);
if (nServiceLength > 5)
{
//oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
oRow["PF"] = dPFAmount + nCurrPFAmount;
}
else
{
oRow["PF"] = dPFAmount + nCurrPFAmount;
}
nCount = nCount + 1;
employeeNo = odRow["EMPLOYEENO"].ToString();
sTEmpEmpNo = odRow["EMPLOYEENO"].ToString();
}
nCount = 0;
DataSet oSalaryMonthlysIncomeTax = new SalaryMonthlyService().GetEmpPaySlipIncomeTaxAmountForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo1 = "";
DataRow[] odros1 = null;
if (oSalaryMonthlysIncomeTax.Tables[0].Rows.Count > 0)
{
employeeNo1 = oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
foreach (DataRow odRow in oSalaryMonthlysIncomeTax.Tables[0].Rows)
{
DataRow oRow = null;
if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
{
odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros1.Length <= nCount) continue;
oRow = odros1[nCount];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Inc_Tax_Deduction))
oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
nCount = nCount + 1;
employeeNo1 = odRow["EMPLOYEENO"].ToString();
}
nCount = 0;
DataSet oSalaryMonthlysLaonAmount = new SalaryMonthlyService().GetEmpPaySlipDeductForLR(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
string employeeNo12 = "";
DataRow[] odros12 = null;
if (oSalaryMonthlysLaonAmount.Tables[0].Rows.Count > 0)
{
employeeNo12 = oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
odros12 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
}
foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
{
DataRow oRow = null;
if (employeeNo12 != odRow["EMPLOYEENO"].ToString())
{
odros12 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
nCount = 0;
}
if (odros12.Length <= nCount) continue;
oRow = odros12[nCount];
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Miscellaneous) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Remain_Balance))
{
oRow["LoanDescription"] = odRow["Description"];
oRow["LoanAmount"] = odRow["CHANGEDAMOUNT"];
}
nCount = nCount + 1;
employeeNo12 = odRow["EMPLOYEENO"].ToString();
}
bool isDesigFromEmp = false;// ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
foreach (DataRow oRow in PayslipData.Rows)
{
Employee oEmp = oEmps
.Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
.SingleOrDefault();
if (oEmp != null)
{
if (isDesigFromEmp)
{
oRow["Designation"] = oEmp.DescriptionText;
}
else
{
Designation oDesg = oDesigs.Where(o => o.ID == oEmp.DesignationID).SingleOrDefault();
if (oDesg != null)
{
oRow["Designation"] = oDesg.Name;
}
}
}
}
basicInfo = oSalaryMonthlysGross.Tables[0].Copy();
basicInfo.TableName = "BasicInfo";
DateTime joinDate = DateTime.MinValue;
foreach (DataRow oRow in basicInfo.Rows)
{
joinDate = oRow["JoinIngDate"] == DBNull.Value ? DateTime.MinValue : Convert.ToDateTime(oRow["JoinIngDate"]);
if (joinDate != DateTime.MinValue)
oRow["JOININGDATE"] = joinDate.ToString("dd MMM yyyy");
if (oRow["PaymentMode"].ToString() == "1")
{
oRow["PaymentMode"] = "CashPayment";
oRow["AccountNO"] = oRow["OutAccountNo"];
oRow["BName"] = oRow["OutBank"];
}
else if (oRow["PaymentMode"].ToString() == "2")
{
oRow["PaymentMode"] = "BankTransfer";
}
else if (oRow["PaymentMode"] == "3")
{
oRow["PaymentMode"] = "Provision";
}
}
//DataSet dsSubReport = new DataSet();
//PayslipData.TableName = "SalaryMonthlysGross";
//dsSubReport.Tables.Add(PayslipData);
//rlforPayslipdt.TableName = "RemainingLoanforPayslip";
//dsSubReport.Tables.Add(rlforPayslipdt);
loanDT.TableName = "RemainingLoanforPayslip";
PayslipData.TableName = "SalaryMonthlysGross";
oFDST.Tables.Add(PayslipData);
oFDST.Tables.Add(loanDT);
if (PayslipData != null && PayslipData.Rows.Count <= 0)
{
return null;
}
return reportProcessor.ShowDlgForNewPaySlip(null, basicInfo, oFDST, payrollTypeID);
}
//public void DownloadPayslip(int payrollTypeID, DateTime SalaryMonth, string sEmpID, bool isForESS)
//{
// DataSet oFDST = new DataSet();
// byte[] bytes = null;
// _empBankAccs = new List<EmployeeBankAccount>();
// _empBankAccs = new EmployeeBankAccountService().Get();
// _oGratuityParams = new ESBDefinitionService().Get();
// Employee oEmployee = null;
// List<Employee> oEmps = new List<Employee>();
// oEmps = new EmployeeService().GetByEmpNos(sEmpID);
// List<Designation> oDesigs = new DesignationService().Get(EnumStatus.Regardless, payrollTypeID);
// ReportProcessor reportProcessor = new ReportProcessor();
// DateTime salaryMonth = SalaryMonth.LastDateOfMonth();
// List<SalaryProcess> oSaProcess = new List<SalaryProcess>();
// oSaProcess = new SalaryProcessService().Get(salaryMonth, payrollTypeID);
// if (isForESS)
// {
// foreach (SalaryProcess item in oSaProcess)
// {
// if (!item.ShowInDesktops)
// {
// throw new Exception("Salary is not approved yet.");
// }
// }
// }
// //bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
// DataSet oSalaryMonthlysGross = new SalaryMonthlyService().GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
// //HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipDatatemp = new HRM.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
// HRM.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable loanDT = new HRM.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable();
// //bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
// DataTable PayslipDatatemp = new DataTable();
// DataTable loanDatatemp = new DataTable();
// _dSalaryMonth = GlobalFunctions.LastDateOfMonth(salaryMonth);
// if (oSaProcess != null && oSaProcess.Count > 0 && oSalaryMonthlysGross.Tables[0].Rows.Count > 0)
// {
// if (oSaProcess[0].PaymentDate != DateTime.MinValue)
// {
// _dMonthEndDate = Convert.ToDateTime(oSaProcess[0].PaymentDate);
// }
// else
// {
// _dMonthEndDate = DateTime.MinValue;
// }
// }
// foreach (DataRow odRow in oSalaryMonthlysGross.Tables[0].Rows)
// {
// double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// if (dbl == 0)
// {
// continue;
// }
// DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
// if (oRow == null)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMergePayslip(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// if (Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross)
// {
// oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
// {
// double dArrear = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// oRow["Arrear"] = dArrear;
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
// {
// oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
// }
// }
// int nCount = 0;
// DataSet oSalaryMonthlysDeduct = new SalaryMonthlyService().GetEmpPaySlipDeductForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo = "";
// DataRow[] odros = null;
// if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
// {
// employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// double dGratuityAmount = 0;
// double dPFAmount = 0;
// string sTEmpEmpNo = "";
// double nCurrPFAmount = 0;
// foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
// {
// double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// if (dbl == 0)
// {
// continue;
// }
// DataRow oRow = null;
// if (employeeNo != odRow["EMPLOYEENO"].ToString())
// {
// odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros.Length <= nCount)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMergePayslip(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// else oRow = odros[nCount];
// oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
// oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// oRow["DeducDescription"] = odRow["Description"];
// //oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// if (sTEmpEmpNo == "" || sTEmpEmpNo != odRow["EMPLOYEENO"].ToString())
// {
// nCurrPFAmount = 0;
// dPFAmount = 0;
// oEmployee = oEmps.Find(delegate (Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// DataRow[] odrosPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEENO='" + odRow["EMPLOYEENO"].ToString() + "'");
// if (odrosPF.Length > 0)
// {
// DataRow oRowPF = odrosPF[0];
// nCurrPFAmount = Convert.ToDouble(oRowPF["CHANGEDAMOUNT"]);
// }
// if (oEmployee != null)
// {
// if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
// {
// dGratuityAmount = GetGratuityAmount(_oGratuityParams, oEmployee, salaryMonth);
// }
// else
// {
// dGratuityAmount = 0;
// }
// dPFAmount = GetPFAmount(oEmployee, salaryMonth);
// }
// }
// oRow["Gratuity"] = dGratuityAmount;
// double nServiceLength = 0;
// if (oEmployee != null)
// nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmployee);
// if (nServiceLength > 5)
// {
// //oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
// oRow["PF"] = dPFAmount + nCurrPFAmount;
// }
// else
// {
// oRow["PF"] = dPFAmount + nCurrPFAmount;
// }
// nCount = nCount + 1;
// employeeNo = odRow["EMPLOYEENO"].ToString();
// sTEmpEmpNo = odRow["EMPLOYEENO"].ToString();
// }
// nCount = 0;
// DataSet oSalaryMonthlysIncomeTax = new SalaryMonthlyService().GetEmpPaySlipIncomeTaxAmountForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo1 = "";
// DataRow[] odros1 = null;
// if (oSalaryMonthlysIncomeTax.Tables[0].Rows.Count > 0)
// {
// employeeNo1 = oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlysIncomeTax.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
// {
// odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros1.Length <= nCount) continue;
// oRow = odros1[nCount];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Inc_Tax_Deduction))
// oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
// nCount = nCount + 1;
// employeeNo1 = odRow["EMPLOYEENO"].ToString();
// }
// nCount = 0;
// DataSet oSalaryMonthlysLaonAmount = new SalaryMonthlyService().GetEmpPaySlipDeductForLR(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo12 = "";
// DataRow[] odros12 = null;
// if (oSalaryMonthlysLaonAmount.Tables[0].Rows.Count > 0)
// {
// employeeNo12 = oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros12 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo12 != odRow["EMPLOYEENO"].ToString())
// {
// odros12 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros12.Length <= nCount) continue;
// oRow = odros12[nCount];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Miscellaneous) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Remain_Balance))
// {
// oRow["LoanDescription"] = odRow["Description"];
// oRow["LoanAmount"] = odRow["CHANGEDAMOUNT"];
// }
// nCount = nCount + 1;
// employeeNo12 = odRow["EMPLOYEENO"].ToString();
// }
// bool isDesigFromEmp = false;// ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
// foreach (DataRow oRow in PayslipData.Rows)
// {
// Employee oEmp = oEmps
// .Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
// .SingleOrDefault();
// if (oEmp != null)
// {
// if (isDesigFromEmp)
// {
// oRow["Designation"] = oEmp.DescriptionText;
// }
// else
// {
// Designation oDesg = oDesigs.Where(o => o.ID == oEmp.DesignationID).SingleOrDefault();
// if (oDesg != null)
// {
// oRow["Designation"] = oDesg.Name;
// }
// }
// }
// }
// foreach (Employee emp in oEmps)
// {
// if (oFDST.Tables.Count > 0)
// {
// oFDST.Tables.Remove("PayrollDataSet_LoanData");
// oFDST.Tables.Remove("PayrollDataSet_Payslip");
// }
// PayslipDatatemp = PayslipData.AsEnumerable().Where(x => x["EMPLOYEENO"].ToString() == emp.EmployeeNo).Any() ? PayslipData.AsEnumerable().Where(x => x["EMPLOYEENO"].ToString() == emp.EmployeeNo).CopyToDataTable() : new DataTable();
// loanDatatemp = loanDT.AsEnumerable().Where(x => x["EMPLOYEENO"].ToString() == emp.EmployeeNo).Any() ? loanDT.AsEnumerable().Where(x => x["EMPLOYEENO"].ToString() == emp.EmployeeNo).CopyToDataTable() : new DataTable();
// loanDatatemp.TableName = "PayrollDataSet_LoanData";
// PayslipDatatemp.TableName = "PayrollDataSet_Payslip";
// oFDST.Tables.Add(PayslipDatatemp);
// oFDST.Tables.Add(loanDatatemp);
// bytes = reportProcessor.GetPayslipReport(null, oFDST, payrollTypeID);
// //MailSender mailSender = new MailSender();
// //mailSender.AddTo(emp.EmailAddress.ToString());
// //mailSender.Subject = "Payslip for the month " + salaryMonth.ToString("MMM yyyy");
// Attachment att = new Attachment(new MemoryStream(bytes), "Payslip.pdf");
// //mailSender.Body = "<p>" + "" + "</p>";
// //mailSender.SendMail(emailSettings, att);
// //System.Threading.Thread.Sleep(60000);
// }
//}
//public byte[] ShowBanglaPaySlip(int payrollTypeId, DateTime salaryMonth, int reportId, string sEmpID, string reportType)
//{
// ReportProcessor form = new ReportProcessor();
// string RDLCName = "HRM.Report.RDLC.BanglaPayslip.rdlc";
// string[] sEmp = sEmpID.Split(',');
// TotalEmp = sEmp.Length;
// DataTable dtExtendedSalarySheet = ExtendedSalarySheet(salaryMonth, sEmpID);
// dtExtendedSalarySheet.TableName = "PayrollDataSet_ExtendedSalarySheet";
// PayrollDataSet.PayrollDataSet.ExtendedSalarySheetDataTable _extendedSalarySheet;
// DataSet resultDataSet = new DataSet();
// resultDataSet.Tables.Add(dtExtendedSalarySheet);
// _extendedSalarySheet = new PayrollDataSet.PayrollDataSet.ExtendedSalarySheetDataTable();
// List<ReportParameter> reportParameters = new List<ReportParameter>();
// //ReportParameter rParam = new ReportParameter("ReportType", reportType);
// //reportParameters.Add(rParam);
// return form.CommonReportView(null, RDLCName, resultDataSet, null, reportParameters, true, payrollTypeId, reportType);
//}
//public void PrepareReport( string empIds)
//{
// MailSender oMailSender = new MailSender();
// List<SearchEmployee> _ToSendEmps = new List<SearchEmployee>();
// lblEmployee.Text = "";
// lblEmployee.Refresh();
// PaySlip _payslip = new PaySlip();
// if (ctlEmployee.SelectedEmployee != null)
// {
// _ToSendEmps.Add((SearchEmployee)ctlEmployee.SelectedEmployee);
// }
// else if (lsvEmployee.CheckedItems.Count > 0)
// {
// int index = 0;
// foreach (ListViewItem item in lsvEmployee.CheckedItems)
// {
// _ToSendEmps.Add((SearchEmployee)lsvEmployee.CheckedItems[index++].Tag);
// }
// }
// if (_ToSendEmps.Count > 0)
// {
// string path = string.Empty;
// string filename = string.Empty;
// byte[] filetoSendBytes = null;
// int count = 0;
// try
// {
// this.Cursor = Cursors.WaitCursor;
// EnumSendMail sendMail = EnumSendMail.None;
// foreach (SearchEmployee item in _ToSendEmps)
// {
// lblEmployee.Text = "Sending Mail :" + (++count).ToString() + "/" + _ToSendEmps.Count;
// lblEmployee.Refresh();
// if (_Type == 1)
// filetoSendBytes = _payslip.ShowReport(dtpfromDate.Value, item.EmployeeID.Integer.ToString());
// else
// filetoSendBytes = _payslip.SKFExpencesPaySlip1(dtpfromDate.Value, item.EmployeeID.Integer.ToString());
// if (filetoSendBytes != null)
// {
// if (!Directory.Exists(Application.StartupPath + @"\Report"))
// {
// DirectoryInfo dirInfo = new DirectoryInfo(Application.StartupPath + @"\Report");
// dirInfo.Create();
// }
// if (_Type == 1)
// filename = "Payslip_" + item.EmployeeNo + "-" + dtpfromDate.Value.Month + "-" + dtpfromDate.Value.Year + "_" + DateTime.Now.ToString("hh_mm_ss") + ".pdf";
// else
// filename = "Expense_" + item.EmployeeNo + "-" + dtpfromDate.Value.Month + "-" + dtpfromDate.Value.Year + "_" + DateTime.Now.ToString("hh_mm_ss") + ".pdf";
// path = Application.StartupPath + @"\Report\" + filename;
// using (FileStream fs = new FileStream(path, FileMode.Create))
// {
// fs.Write(filetoSendBytes, 0, filetoSendBytes.Length);
// fs.Dispose();
// }
// sendMail = SendMail(item, path, _Type);
// switch (sendMail)
// {
// case EnumSendMail.ToMissing:
// MessageBox.Show("Employee mail address is missing", item.EmployeeNo, MessageBoxButtons.OK, MessageBoxIcon.Error);
// break;
// case EnumSendMail.FromMissing:
// MessageBox.Show("Missing from address", item.EmployeeNo, MessageBoxButtons.OK, MessageBoxIcon.Error);
// break;
// case EnumSendMail.BodyMissing:
// MessageBox.Show("Missing mail body", item.EmployeeNo, MessageBoxButtons.OK, MessageBoxIcon.Error);
// break;
// case EnumSendMail.SubjectMissing:
// MessageBox.Show("Mail subject is missing", item.EmployeeNo, MessageBoxButtons.OK, MessageBoxIcon.Error);
// break;
// case EnumSendMail.ServerNotFound:
// MessageBox.Show("Server not found", item.EmployeeNo, MessageBoxButtons.OK, MessageBoxIcon.Error);
// break;
// case EnumSendMail.SendError:
// MessageBox.Show("Sending Mail Error", item.EmployeeNo, MessageBoxButtons.OK, MessageBoxIcon.Error);
// break;
// default:
// break;
// }
// }
// }
// if (sendMail == EnumSendMail.SuccessFullySend)
// {
// lblEmployee.Text = string.Empty;
// lblEmployee.Refresh();
// MessageBox.Show("Mail Sent Successfully", "Payslip", MessageBoxButtons.OK, MessageBoxIcon.Information);
// }
// this.Cursor = Cursors.Default;
// }
// catch (Exception ex)
// {
// MessageBox.Show(this, ex.Message, "Error Sending Mail", MessageBoxButtons.OK, MessageBoxIcon.Error);
// lblEmployee.Text = string.Empty;
// lblEmployee.Refresh();
// this.Cursor = Cursors.Default;
// }
// }
//}
//private EnumSendMail SendMail(SearchEmployee item, string sPath, int nType)
//{
// MS = new MailSender();
// MS.To = item.EmployeeEmail; // "sujon.ahmed@celimited.com";
// if (nType == 1)
// {
// MS.Subject = "Salary Pay slip of " + dtpfromDate.Value.ToString("MMMM yyyy");
// StringBuilder sb = new StringBuilder();
// sb.AppendLine("Dear " + item.Name + "<br/>");
// sb.AppendLine("Attached the pay slip of your Salary of " + dtpfromDate.Value.ToString("MMMM yyyy") + "." + "<br/>");
// sb.AppendLine("If you have any query, please contact with any resposible person." + "<br/>");
// //sb.AppendLine("1. Mr. Md. Suzaet Hossain-Asstt. Manager-HR & Payroll, mobile-01729073233, email: suzaet@skf.transcombd.com" + "<br/>");
// //sb.AppendLine("2. Mr. Md. Shahabuddin Molla- HR Manager, Operations, mobile-01714098171, email: sum@skf.transcombd.com" + "<br/>");
// //sb.AppendLine("3. Mr. K. M. Shirazul Haque- Sr. HR Manager, Operations, mobile-01713065410, email: shiraz@skf.transcombd.com" + "<br/>");
// MS.Body = sb.ToString();
// }
// else if (nType == 2)
// {
// MS.Subject = "Expense Pay slip of " + dtpfromDate.Value.ToString("MMMM yyyy");
// StringBuilder sb = new StringBuilder();
// sb.AppendLine("Dear " + item.Name + "<br/>");
// sb.AppendLine("Attached the pay slip of your Expense of " + dtpfromDate.Value.ToString("MMMM yyyy") + "." + "<br/>");
// sb.AppendLine("If you have any query, please contact with anyone under mentioned personnel:" + "<br/>");
// sb.AppendLine("1. Mr. Md. Suzaet Hossain-Asstt. Manager-HR & Payroll, mobile-01729073233, email: suzaet@skf.transcombd.com" + "<br/>");
// sb.AppendLine("2. Mr. Md. Shahabuddin Molla- HR Manager, Operations, mobile-01714098171, email: sum@skf.transcombd.com" + "<br/>");
// sb.AppendLine("3. Mr. K. M. Shirazul Haque- Sr. HR Manager, Operations, mobile-01713065410, email: shiraz@skf.transcombd.com" + "<br/>");
// MS.Body = sb.ToString();
// }
// MS.AddAttachment(sPath);
// return MS.SendPaySlipMail();
//}
}
}
#region old
//namespace Payroll.Report
//{
// public class PaySlip
// {
// DataSet dSet = new DataSet();
// private ReportSetup _selectedParameter;
// ObjectsTemplate<ESBDefinition> _oGratuityParams = null;
// private DateTime _dSalaryMonth = DateTime.MinValue;
// private DateTime _dMonthEndDate = DateTime.MinValue;
// DataTable _hourTable = null;
// ObjectsTemplate<TermParameter> _termParamenters = null;
// TermParameter termParam = null;
// private double _InvestmentAmount = 0.0;
// private double _TotalTaxAmount = 0.0;
// private double _LessExemptedAmount = 0.0;
// private double _PaidTillDateAmount = 0.0;
// private double _ThisMonthAmount = 0.0;
// private double _ProjectedAmount = 0.0;
// private double _AmountPerAnnum = 0.0;
// private double _TotalSalaryExempted = 0.0;
// private double _TotalAnnuaExempted = 0.0;
// private double _TPaidTillDateAmount = 0.0;
// private double _TThisMonthAmount = 0.0;
// private double _TProjectedAmount = 0.0;
// private double _TAmountPerAnnum = 0.0;
// private double _pfInvestment;
// private double _otherInvestment;
// private double _investmentAllowed;
// private double _20Investment;
// private ObjectsTemplate<IncomeTax> _incometaxes;
// private TaxParameter _taxParameter;
// private Employee _employee;
// private bool _investmentwithoutPF;
// private bool _IsTaxCertificate;
// private double _actualInvestment;
// private bool _isPrvs = false;
// DataSet _dSet = new DataSet();
// public PaySlip()
// {
// }
// public ReportSetup SelectedParameter
// {
// set
// {
// _selectedParameter = value;
// }
// }
// private DataRow GrossMerge(DataRow destination, DataRow source)
// {
// if (Convert.ToInt32(source["ItemGroup"]) == 3)
// {
// destination["Name"] = source["Name"];
// destination["EMPLOYEENO"] = source["EMPLOYEENO"];
// destination["Grade"] = source["Grade"];
// destination["Designation"] = source["Designation"];
// destination["Department"] = source["Department"];
// destination["ActualBasic"] = source["ActualBasic"];
// if (Convert.ToInt16(source["PAYMENTMODE"].ToString().Trim()) == (int)EnumPaymentMode.CashPayment)
// {
// destination["PAYMENTMODE"] = "CashPayment";
// }
// else if (Convert.ToInt16(source["PAYMENTMODE"].ToString().Trim()) == (int)EnumPaymentMode.BankTransfer)
// {
// destination["PAYMENTMODE"] = "BankTransfer";
// }
// else if (Convert.ToInt16(source["PAYMENTMODE"].ToString().Trim()) == (int)EnumPaymentMode.Provision)
// {
// destination["PAYMENTMODE"] = "Provision";
// }
// destination["BName"] = source["BName"];
// destination["ACCOUNTNO"] = source["ACCOUNTNO"];
// if (_dMonthEndDate != DateTime.MinValue)
// {
// destination["MonthEndDate"] = Convert.ToDateTime(_dMonthEndDate.ToString("dd MMM yyyy"));
// }
// else
// {
// destination["MonthEndDate"] = DateTime.MinValue;
// }
// destination["SalaryMonth"] = Convert.ToDateTime(_dSalaryMonth.ToString("MMM yyyy"));
// destination["Description"] = "";
// destination["ItemGroup"] = source["ITEMGROUP"];
// destination["ItemCode"] = source["ITEMCode"];
// destination["ItemID"] = source["ITEMID"];
// destination["JoiningDate"] = Convert.ToDateTime(source["JoiningDate"]).ToString("dd MMM yyyy");
// destination["TINNo"] = source["TINNo"];
// return destination;
// }
// else
// {
// destination["Name"] = source["Name"];
// destination["EMPLOYEENO"] = source["EMPLOYEENO"];
// destination["Grade"] = source["Grade"];
// destination["Designation"] = source["Designation"];
// destination["Department"] = source["Department"];
// destination["ActualBasic"] = source["ActualBasic"];
// if (Convert.ToInt16(source["PAYMENTMODE"].ToString().Trim()) == (int)EnumPaymentMode.CashPayment)
// {
// destination["PAYMENTMODE"] = "CashPayment";
// }
// else if (Convert.ToInt16(source["PAYMENTMODE"].ToString().Trim()) == (int)EnumPaymentMode.BankTransfer)
// {
// destination["PAYMENTMODE"] = "BankTransfer";
// }
// else if (Convert.ToInt16(source["PAYMENTMODE"].ToString().Trim()) == (int)EnumPaymentMode.Provision)
// {
// destination["PAYMENTMODE"] = "Provision";
// }
// destination["BName"] = source["BName"];
// destination["ACCOUNTNO"] = source["ACCOUNTNO"];
// if (_dMonthEndDate != DateTime.MinValue)
// {
// destination["MonthEndDate"] = Convert.ToDateTime(_dMonthEndDate.ToString("dd MMM yyyy"));
// }
// else
// {
// destination["MonthEndDate"] = DateTime.MinValue;
// }
// destination["SalaryMonth"] = Convert.ToDateTime(_dSalaryMonth.ToString("MMM yyyy"));
// //*********
// //Added by Chapal
// if (Payroll.BO.SystemInformation.CurrentSysInfo.PayrollTypeID.Integer == 1)
// {
// destination["Description"] = source["Description"];
// }
// else
// {
// if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Basic_Salary) && Convert.ToInt32(source["ItemID"]) == (int)EnumSalaryItemCode.Basic_Salary)
// {
// decimal hour = (decimal)_hourTable.AsEnumerable().Where(x => x.Field<int>("ItemGroup") == (int)EnumSalaryGroup.Miscellaneous
// && x.Field<int>("ItemCode") == (int)EnumSalaryItemCode.Basic_Salary
// && x.Field<int>("ItemID") == (int)EnumSalaryItemCode.Basic_Salary
// && x["EMPLOYEENO"].ToString() == source["EMPLOYEENO"].ToString())
// .Sum(o => Convert.ToDouble(o["ChangedAmount"].ToString()));
// //destination["Description"] = source["Description"] + " (" + hour + " Hours)";
// destination["Description"] = source["Description"];
// }
// else if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Over_Time_Amount))//'Over Time'
// {
// decimal hour = 0;
// if ((Convert.ToInt32(source["ITEMID"]) == 2))
// {
// termParam = _termParamenters.Where(o => o.TermID.Integer == 2).FirstOrDefault();
// hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Over_Time_Hours && Convert.ToInt32(x["ItemID"]) == Convert.ToInt32(source["ItemID"]) && x["EMPLOYEENO"].ToString() == source["EMPLOYEENO"].ToString()).Sum(o => o.Field<decimal>("ChangedAmount"));
// hour = hour * Convert.ToDecimal((termParam.Amount / 100));
// hour = hour / 2;
// //destination["Description"] = source["Description"] + " (" + hour + " Hours)";
// destination["Description"] = source["Description"];
// }
// else if ((Convert.ToInt32(source["ITEMID"]) == (int)3))
// {
// termParam = _termParamenters.Where(o => o.TermID.Integer == 3).FirstOrDefault();
// hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Over_Time_Hours && Convert.ToInt32(x["ItemID"]) == Convert.ToInt32(source["ItemID"]) && x["EMPLOYEENO"].ToString() == source["EMPLOYEENO"].ToString()).Sum(o => o.Field<decimal>("ChangedAmount"));
// hour = hour * Convert.ToDecimal((termParam.Amount / 100));
// hour = hour / 2;
// //destination["Description"] = source["Description"] + " (" + hour + " Hours)";
// destination["Description"] = source["Description"];
// }
// else if ((Convert.ToInt32(source["ITEMID"]) == (int)4))
// {
// termParam = _termParamenters.Where(o => o.TermID.Integer == 4).FirstOrDefault();
// hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Over_Time_Hours && Convert.ToInt32(x["ItemID"]) == Convert.ToInt32(source["ItemID"]) && x["EMPLOYEENO"].ToString() == source["EMPLOYEENO"].ToString()).Sum(o => o.Field<decimal>("ChangedAmount"));
// hour = hour * Convert.ToDecimal((termParam.Amount / 100));
// hour = hour / 2;
// //destination["Description"] = source["Description"] + " (" + hour + " Hours)";
// destination["Description"] = source["Description"];
// }
// else
// {
// hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Over_Time_Hours && Convert.ToInt32(x["ItemID"]) == Convert.ToInt32(source["ItemID"]) && x["EMPLOYEENO"].ToString() == source["EMPLOYEENO"].ToString()).Sum(o => o.Field<decimal>("ChangedAmount"));
// //destination["Description"] = source["Description"] + " (" + hour + " Hours)";
// destination["Description"] = source["Description"];
// }
// }
// else if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Allowance) && Convert.ToInt32(source["ItemID"]) == 107) //T shift
// {
// decimal hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(x["ItemID"]) == 107 && x["EMPLOYEENO"].ToString() == source["EMPLOYEENO"].ToString()).Sum(o => o.Field<decimal>("ChangedAmount"));
// //destination["Description"] = source["Description"] + " (" + hour + " Days)";
// destination["Description"] = source["Description"];
// }
// else if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Allowance) && Convert.ToInt32(source["ItemID"]) == 13) //Tea Allowance
// {
// decimal hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(x["ItemID"]) == 13 && x["EMPLOYEENO"].ToString() == source["EMPLOYEENO"].ToString()).Sum(o => o.Field<decimal>("ChangedAmount"));
// //destination["Description"] = source["Description"] + " (" + hour + " Days)";
// destination["Description"] = source["Description"];
// }
// else if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Allowance) && Convert.ToInt32(source["ItemID"]) == 106)
// {
// decimal hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(x["ItemID"]) == 106 && x["EMPLOYEENO"].ToString() == source["EMPLOYEENO"].ToString()).Sum(o => o.Field<decimal>("ChangedAmount"));
// //destination["Description"] = source["Description"] + " (" + hour + " Days)";
// destination["Description"] = source["Description"];
// }
// else if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Allowance) && Convert.ToInt32(source["ItemID"]) == 82) // Convence
// {
// decimal hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(x["ItemID"]) == 82 && x["EMPLOYEENO"].ToString() == source["EMPLOYEENO"].ToString()).Sum(o => o.Field<decimal>("ChangedAmount"));
// //destination["Description"] = source["Description"] + " (" + hour + " Days)";
// destination["Description"] = source["Description"];
// }
// else
// {
// destination["Description"] = source["Description"];
// }
// }
// //*******
// destination["ItemGroup"] = source["ITEMGROUP"];
// destination["ItemCode"] = source["ITEMCode"];
// destination["ItemID"] = source["ITEMID"];
// destination["JoiningDate"] = Convert.ToDateTime(source["JoiningDate"]).ToString("dd MMM yyyy");
// destination["TINNo"] = source["TINNo"];
// return destination;
// }
// }
// private DataRow GrossMergeForOverAll(DataRow destination, DataRow source, int nTotalEmp, DateTime sMonth)
// {
// destination["TotalEmp"] = nTotalEmp;
// if (source["Description"].ToString().Contains("'"))
// {
// source["Description"] = source["Description"].ToString().Replace("'", "\'");
// }
// else if (source["Description"].ToString().Contains("/"))
// {
// source["Description"] = source["Description"].ToString().Replace("/", "/'");
// }
// else
// {
// source["Description"] = source["Description"];
// }
// //Added by Chapal
// if (Payroll.BO.SystemInformation.CurrentSysInfo.PayrollTypeID.Integer == 1)
// {
// destination["Description"] = source["Description"];
// }
// else
// {
// if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Basic_Salary) && Convert.ToInt32(source["ItemID"]) == (int)EnumSalaryItemCode.Basic_Salary)
// {
// decimal hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Basic_Salary && Convert.ToInt32(x["ItemID"]) == (int)EnumSalaryItemCode.Basic_Salary ).Sum(o => o.Field<decimal>("Amount"));
// //destination["Description"] = source["Description"] + " (" + hour + " Hours)";
// destination["Description"] = source["Description"];
// }
// else if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Over_Time_Amount))//'Over Time'
// {
// decimal hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Over_Time_Hours && Convert.ToInt32(x["ItemID"]) == Convert.ToInt32(source["ItemID"])).Sum(o => o.Field<decimal>("Amount"));
// //destination["Description"] = source["Description"] + " (" + hour + " Hours)";
// destination["Description"] = source["Description"];
// }
// else if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Allowance) && Convert.ToInt32(source["ItemID"]) == 107) //T shift
// {
// decimal hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(x["ItemID"]) == 107).Sum(o => o.Field<decimal>("Amount"));
// //destination["Description"] = source["Description"] + " (" + hour + " Days)";
// destination["Description"] = source["Description"];
// }
// else if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Allowance) && Convert.ToInt32(source["ItemID"]) == 13) //Tea Allowance
// {
// decimal hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(x["ItemID"]) == 13).Sum(o => o.Field<decimal>("Amount"));
// //destination["Description"] = source["Description"] + " (" + hour + " Days)";
// destination["Description"] = source["Description"];
// }
// else if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Allowance) && Convert.ToInt32(source["ItemID"]) == 106)
// {
// decimal hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(x["ItemID"]) == 106).Sum(o => o.Field<decimal>("Amount"));
// //destination["Description"] = source["Description"] + " (" + hour + " Days)";
// destination["Description"] = source["Description"];
// }
// else if ((Convert.ToInt32(source["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross) && (Convert.ToInt32(source["ItemCode"]) == (int)EnumSalaryItemCode.Allowance) && Convert.ToInt32(source["ItemID"]) == 82) // Convence
// {
// decimal hour = _hourTable.AsEnumerable().Where(x => Convert.ToInt32(x["ItemGroup"]) == (int)EnumSalaryGroup.Miscellaneous && Convert.ToInt32(x["ItemCode"]) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(x["ItemID"]) == 82).Sum(o => o.Field<decimal>("Amount"));
// //destination["Description"] = source["Description"] + " (" + hour + " Days)";
// destination["Description"] = source["Description"];
// }
// else
// {
// destination["Description"] = source["Description"];
// }
// }
// destination["ItemGroup"] = source["ITEMGROUP"];
// destination["ItemCode"] = source["ITEMCode"];
// destination["ItemID"] = source["ITEMID"];
// destination["Month"] = sMonth;
// return destination;
// }
// private DataRow GetItem(PayrollDataSet.PayrollDataSet.PayslipDataTable Source, string sEmpNo, EnumSalaryGroup groupCode, EnumSalaryItemCode itemCode, int ITemID)
// {
// foreach (DataRow odRow in Source.Rows)
// {
// if (Convert.ToString(odRow["EMPLOYEENO"]) == sEmpNo &&
// Convert.ToInt32(odRow["ItemCode"]) == (int)itemCode && Convert.ToInt32(odRow["ItemID"]) == ITemID)
// {
// return odRow;
// }
// }
// return null;
// }
// private DataRow GetItem(PayrollDataSet.PayrollDataSet.PayslipDataTable Source, string sEmpNo, EnumSalaryGroup groupCode, EnumSalaryItemCode itemCode, int ITemID, string position)
// {
// foreach (DataRow odRow in Source.Rows)
// {
// if (Convert.ToString(odRow["EMPLOYEENO"]) == sEmpNo &&
// Convert.ToInt32(odRow["ItemCode"]) == (int)itemCode && Convert.ToInt32(odRow["ItemID"]) == ITemID && Convert.ToString(odRow["Position"]) == position)
// {
// return odRow;
// }
// }
// return null;
// }
// private DataRow GetItemForOverAll(PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable Source, EnumSalaryGroup groupCode, EnumSalaryItemCode itemCode, int ITemID)
// {
// foreach (DataRow odRow in Source.Rows)
// {
// if (Convert.ToInt32(odRow["ItemCode"]) == (int)itemCode && Convert.ToInt32(odRow["ItemID"]) == ITemID)
// {
// return odRow;
// }
// }
// return null;
// }
// //Added By Anup 21 Dec 2010 : ShowReport For Send Mail Individual Payslip
// public byte[] ShowReport(string sEmpID, DateTime salaryMonth)
// {
// fReportViewer form = new fReportViewer();
// ReportItem _reportItem = new ReportItem();
// _reportItem = ReportItem.Get(ID.FromInteger(Convert.ToInt32(41)));
// DataSet oSalaryMonthlys = SalaryMonthly.GetEmpPaySlipGross(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new Payroll.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
// foreach (DataRow odRow in oSalaryMonthlys.Tables[0].Rows)
// {
// DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
// if (oRow == null)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
// oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
// oRow["Arrear"] = odRow["CHANGEDAMOUNT"];
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
// oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
// }
// int nCount = 0;
// oSalaryMonthlys = SalaryMonthly.GetEmpPaySlipDeduct(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo = "";
// DataRow[] odros = null;
// if (oSalaryMonthlys.Tables[0].Rows.Count > 0)
// {
// employeeNo = oSalaryMonthlys.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlys.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlys.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo != odRow["EMPLOYEENO"].ToString())
// {
// odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros.Length <= nCount) continue;
// oRow = odros[nCount];
// oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
// oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// nCount = nCount + 1;
// employeeNo = odRow["EMPLOYEENO"].ToString();
// }
// int nCount1 = 0;
// oSalaryMonthlys = SalaryMonthly.GetEmpPaySlipIncomeTaxAmount(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo1 = "";
// DataRow[] odros1 = null;
// if (oSalaryMonthlys.Tables[0].Rows.Count > 0)
// {
// employeeNo1 = oSalaryMonthlys.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlys.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlys.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
// {
// odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount1 = 0;
// }
// if (odros1.Length <= nCount1) continue;
// oRow = odros1[nCount1];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem))
// oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
// nCount = nCount + 1;
// employeeNo = odRow["EMPLOYEENO"].ToString();
// }
// return form.WriteFileForPaySlip(_reportItem, PayslipData);
// }
// private double ServiceYears(DateTime dt, Employee oEmp)
// {
// double n = Ease.CoreV35.Utility.Global.DateFunctions.DateDiff("d", oEmp.JoiningDate, dt);
// if (n >= 365)
// return n / 365;
// else
// return 0.0;
// }
// public double GetGratuityAmount(ObjectsTemplate<ESBDefinition> oItems, Employee oEmp, DateTime salaryMonth)
// {
// double nAmout = 0.0;
// double nFracYear = 0.0;
// ESBDefinition item = ESBDefinition.Get(oItems, oEmp);
// double nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmp);
// foreach (ESBSlab eslb in item.ESBSlabs)
// {
// nAmout = 0.0;
// if (eslb.ServiceYear <= nServiceLength)
// {
// string[] sFracMonth = nServiceLength.ToString().Split(new char[] { '.' });
// nFracYear = 0;
// if (sFracMonth.Length > 1)
// nFracYear = GlobalFunctions.Round(Convert.ToDouble("." + sFracMonth[1]));
// if (nFracYear >= 0.5)
// {
// nServiceLength = Convert.ToDouble(sFracMonth[0]) + 1;
// }
// else
// {
// nServiceLength = Convert.ToDouble(sFracMonth[0]);
// }
// nAmout = oEmp.BasicSalary * eslb.CalculateNo * nServiceLength;
// }
// else
// {
// nAmout = 0;
// }
// }
// return nAmout;
// }
// public double GetPFAmount(Employee oEmp, DateTime salaryMonth)
// {
// double nAmout = 0.0;
// DataSet ds = PFTransaction.GetPFBalance(oEmp.ID.Integer, GlobalFunctions.LastDateOfMonth(salaryMonth));
// double nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmp);
// foreach (DataRow dr in ds.Tables[0].Rows)
// {
// if (Convert.ToInt16(dr["TranTP"]) == 1)
// {
// nAmout = Convert.ToDouble(dr["Amount"]);
// }
// //if (nServiceLength > 5)
// //{
// // nAmout += Convert.ToDouble(dr["Amount"]);
// //}
// //else
// //{
// // if (Convert.ToInt16(dr["TranTP"]) != 2)
// // {
// // nAmout += Convert.ToDouble(dr["Amount"]);
// // }
// //}
// }
// return nAmout;
// }
// //public void ShowReport()
// //{
// // _oGratuityParams = ESBDefinition.Get();
// // Employee oEmployee = null;
// // ObjectsTemplate<Employee> oEmps = new ObjectsTemplate<Employee>();
// // oEmps = Employee.Get();
// // ObjectsTemplate<LoanSchedule> oLoanScheduls = new ObjectsTemplate<LoanSchedule>();
// // oLoanScheduls = LoanSchedule.Get();
// // //ObjectsTemplate<LoanIssue> oLoanIssues = new ObjectsTemplate<LoanIssue>();
// // //oLoanIssues = LoanIssue.GetE Get();
// // fReportViewer form = new fReportViewer();
// // DateTime salaryMonth = _selectedParameter.FromDate.Value;
// // string sEmpID = _selectedParameter.ReportItem.INSQL;
// // SalaryProcess oSaProcess = new SalaryProcess();
// // //bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
// // DataSet oSalaryMonthlysGross = SalaryMonthly.GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// // PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new Payroll.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
// // //bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
// // foreach (DataRow odRow in oSalaryMonthlysGross.Tables[0].Rows)
// // {
// // DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
// // if (oRow == null)
// // {
// // oRow = PayslipData.NewRow();
// // oRow = this.GrossMerge(oRow, odRow);
// // PayslipData.Rows.Add(oRow);
// // }
// // if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
// // oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// // else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
// // oRow["Arrear"] = odRow["CHANGEDAMOUNT"];
// // else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
// // oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
// // }
// // int nCount = 0;
// // DataSet oSalaryMonthlysDeduct = SalaryMonthly.GetEmpPaySlipDeductForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// // string employeeNo = "";
// // DataRow[] odros = null;
// // if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
// // {
// // employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// // odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// // }
// // //if(oSalaryMonthlysDeduct.Tables[0].Rows.Count>oSalaryMonthlysGross.Tables[0].Rows.Count)
// // //{
// // // odros=new DataRow[oSalaryMonthlysDeduct.Tables[0].Rows.Count];
// // //}
// // foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
// // {
// // DataRow oRow = null;
// // if (employeeNo != odRow["EMPLOYEENO"].ToString())
// // {
// // odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// // nCount = 0;
// // }
// // if (odros.Length <= nCount)
// // {
// // oRow = PayslipData.NewRow();
// // oRow = this.GrossMerge(oRow, odRow);
// // PayslipData.Rows.Add(oRow);
// // }
// // else oRow = odros[nCount];
// // //if (odros.Length <= nCount) continue;
// // //oRow = odros[nCount];
// // oRow["DeducDescription"] = odRow["Description"];
// // if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
// // oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// // oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// // //GetGratuityAmount(_oGratuityParams, oEmployee);
// // // GetPFAmount(oEmployee);
// // //Gratuity
// // if (oEmployee != null)
// // {
// // if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
// // {
// // oRow["Gratuity"] = GetGratuityAmount(_oGratuityParams, oEmployee);
// // }
// // else
// // {
// // oRow["Gratuity"] = 0;
// // }
// // oRow["PF"] = GetPFAmount(oEmployee);
// // }
// // #region Loan Issue
// // ////Personal Loan
// // //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Monthly_Installment) && ((Convert.ToInt32(odRow["ItemID"]) == 3)))
// // //{
// // // loanAmounn = 0.0;
// // // actuInterest = 0.0;
// // // principleAmount = 0.0;
// // // interest = 0.0;
// // // balance = 0.0;
// // // sattelmentAmount = 0.0;
// // // LoanIssue oLIssue=LoanIssue.GetExistingLoan(ID.FromInteger(Convert.ToInt32(odRow["ItemID"])),oEmployee.ID);
// // // //LoanIssue oLIssue = oLoanIssues.Find(delegate(LoanIssue item1) { return oEmployee.ID == item1.EmployeeID && item1.LoanID == ID.FromInteger(Convert.ToInt32(odRow["ItemID"])); });
// // // if (oLIssue != null)
// // // {
// // // loanAmounn = oLIssue.LoanAmount;
// // // List<LoanSchedule> oLSS = oLoanScheduls.FindAll(delegate(LoanSchedule oitem) { return oitem.LoanIssueID == oLIssue.ID; });
// // // if (oLSS.Count>0)
// // // {
// // // List<LoanSchedule> oBeforeSMonths = oLSS.FindAll(delegate(LoanSchedule oitem) { return oitem.DueInstallmentDate <= GlobalFunctions.LastDateOfMonth(salaryMonth); });
// // // foreach (LoanSchedule oScedule in oBeforeSMonths)
// // // {
// // // actuInterest = actuInterest + oScedule.ActualInterest;
// // // principleAmount = principleAmount + oScedule.InstallmentPrincipal;
// // // interest = interest + oScedule.InstallmentInterest;
// // // balance = balance + oScedule.OpeningBalance;
// // // //oTemLoanSchedule.Add(oScedule);
// // // }
// // // }
// // // sattelmentAmount = (loanAmounn + actuInterest) - (principleAmount + interest);
// // // }
// // // oRow["PersonalLoan"] = sattelmentAmount;//odRow["CHANGEDAMOUNT"];
// // //}
// // //Vehicle Loan
// // //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Monthly_Installment && (Convert.ToInt32(odRow["ItemID"]) == 4)))
// // //{
// // // loanAmounn = 0.0;
// // // actuInterest = 0.0;
// // // principleAmount = 0.0;
// // // interest = 0.0;
// // // balance = 0.0;
// // // sattelmentAmount = 0.0;
// // // LoanIssue oLIssue=LoanIssue.GetExistingLoan(ID.FromInteger(Convert.ToInt32(odRow["ItemID"])),oEmployee.ID);
// // // //LoanIssue oLIssue = oLoanIssues.Find(delegate(LoanIssue item1) { return oEmployee.ID == item1.EmployeeID && item1.LoanID == ID.FromInteger(Convert.ToInt32(odRow["ItemID"])); });
// // // if (oLIssue != null)
// // // {
// // // loanAmounn = oLIssue.LoanAmount;
// // // List<LoanSchedule> oLSS = oLoanScheduls.FindAll(delegate(LoanSchedule oitem) { return oitem.LoanIssueID == oLIssue.ID; });
// // // if (oLSS.Count > 0)
// // // {
// // // List<LoanSchedule> oBeforeSMonths = oLSS.FindAll(delegate(LoanSchedule oitem) { return oitem.DueInstallmentDate <= GlobalFunctions.LastDateOfMonth(salaryMonth); });
// // // foreach (LoanSchedule oScedule in oBeforeSMonths)
// // // {
// // // actuInterest = actuInterest + oScedule.ActualInterest;
// // // principleAmount = principleAmount + oScedule.InstallmentPrincipal;
// // // interest = interest + oScedule.InstallmentInterest;
// // // balance = balance + oScedule.OpeningBalance;
// // // //oTemLoanSchedule.Add(oScedule);
// // // }
// // // }
// // // sattelmentAmount = (loanAmounn + actuInterest) - (principleAmount + interest);
// // // }
// // // oRow["VechileLoan"] = sattelmentAmount;//odRow["CHANGEDAMOUNT"];
// // //}
// // //House Loan
// // //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Monthly_Installment && (Convert.ToInt32(odRow["ItemID"]) == 2)))
// // //{
// // // loanAmounn = 0.0;
// // // actuInterest = 0.0;
// // // principleAmount = 0.0;
// // // interest = 0.0;
// // // balance = 0.0;
// // // sattelmentAmount = 0.0;
// // // LoanIssue oLIssue=LoanIssue.GetExistingLoan(ID.FromInteger(Convert.ToInt32(odRow["ItemID"])),oEmployee.ID);
// // // //LoanIssue oLIssue = oLoanIssues.Find(delegate(LoanIssue item1) { return oEmployee.ID == item1.EmployeeID && item1.LoanID == ID.FromInteger(Convert.ToInt32(odRow["ItemID"])); });
// // // if (oLIssue != null)
// // // {
// // // loanAmounn = oLIssue.LoanAmount;
// // // List<LoanSchedule> oLSS = oLoanScheduls.FindAll(delegate(LoanSchedule oitem) { return oitem.LoanIssueID == oLIssue.ID; });
// // // if (oLSS.Count > 0)
// // // {
// // // List<LoanSchedule> oBeforeSMonths = oLSS.FindAll(delegate(LoanSchedule oitem) { return oitem.DueInstallmentDate <= GlobalFunctions.LastDateOfMonth(salaryMonth); });
// // // foreach (LoanSchedule oScedule in oBeforeSMonths)
// // // {
// // // actuInterest = actuInterest + oScedule.ActualInterest;
// // // principleAmount = principleAmount + oScedule.InstallmentPrincipal;
// // // interest = interest + oScedule.InstallmentInterest;
// // // balance = balance + oScedule.OpeningBalance;
// // // //oTemLoanSchedule.Add(oScedule);
// // // }
// // // }
// // // sattelmentAmount = (loanAmounn + actuInterest) - (principleAmount + interest);
// // // }
// // // oRow["HomeLoan"] = sattelmentAmount;//odRow["CHANGEDAMOUNT"];
// // //}
// // //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.PF_Contribution && (Convert.ToInt32(odRow["ItemID"]) == (int)EnumSalaryItemCode.PF_Contribution)))
// // //{
// // // oRow["PF"] = odRow["CHANGEDAMOUNT"];
// // //}
// // #endregion
// // nCount = nCount + 1;
// // employeeNo = odRow["EMPLOYEENO"].ToString();
// // }
// // nCount = 0;
// // DataSet oSalaryMonthlysIncomeTax = SalaryMonthly.GetEmpPaySlipIncomeTaxAmountForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// // string employeeNo1 = "";
// // DataRow[] odros1 = null;
// // if (oSalaryMonthlysIncomeTax.Tables[0].Rows.Count > 0)
// // {
// // employeeNo1 = oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// // odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// // }
// // foreach (DataRow odRow in oSalaryMonthlysIncomeTax.Tables[0].Rows)
// // {
// // DataRow oRow = null;
// // if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
// // {
// // odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// // nCount = 0;
// // }
// // if (odros1.Length <= nCount) continue;
// // oRow = odros1[nCount];
// // //oRow["DeducDescription"] = odRow["Description"];
// // if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Inc_Tax_Deduction))
// // oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
// // nCount = nCount + 1;
// // employeeNo1 = odRow["EMPLOYEENO"].ToString();
// // }
// // nCount = 0;
// // DataSet oSalaryMonthlysLaonAmount = SalaryMonthly.GetEmpPaySlipDeductForLR(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// // string employeeNo12 = "";
// // DataRow[] odros12 = null;
// // if (oSalaryMonthlysLaonAmount.Tables[0].Rows.Count > 0)
// // {
// // employeeNo12 = oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// // odros12 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// // }
// // foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
// // {
// // DataRow oRow = null;
// // if (employeeNo12 != odRow["EMPLOYEENO"].ToString())
// // {
// // odros12 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// // nCount = 0;
// // }
// // if (odros12.Length <= nCount) continue;
// // oRow = odros12[nCount];
// // //oRow["DeducDescription"] = odRow["Description"];
// // if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Miscellaneous) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Remain_Balance))
// // {
// // oRow["LoanDescription"] = odRow["Description"];
// // oRow["LoanAmount"] = odRow["CHANGEDAMOUNT"];
// // }
// // nCount = nCount + 1;
// // employeeNo12 = odRow["EMPLOYEENO"].ToString();
// // }
// // //if (IsApproved)
// // //{
// // form.ShowDlgForPaySlip(_selectedParameter.ReportItem, PayslipData);
// // //}
// // //else
// // //{
// // // MessageBox.Show("This salary process is not approve for the month of " + salaryMonth.ToString("MMM yyyy"), "Salary Approved", MessageBoxButtons.OK, MessageBoxIcon.Information);
// // //}
// //}
// public void ShowReportOld()
// {
// DataSet oFDST = new DataSet();
// _oGratuityParams = ESBDefinition.Get();
// Employee oEmployee = null;
// ObjectsTemplate<Employee> oEmps = new ObjectsTemplate<Employee>();
// oEmps = Employee.Get();
// List<Designation> oDesigs = Designation.Get(EnumStatus.Regardless);
// fReportViewer form = new fReportViewer();
// DateTime salaryMonth = _selectedParameter.FromDate.Value;
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// ObjectsTemplate<SalaryProcess> oSaProcess = new ObjectsTemplate<SalaryProcess>();
// oSaProcess = SalaryProcess.Get(GlobalFunctions.LastDateOfMonth(salaryMonth));
// //bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
// DataSet oSalaryMonthlysGross = SalaryMonthly.GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new Payroll.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
// //PayrollDataSet.PayrollDataSet.LoanDataDataTable loanDT = new Payroll.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable();
// PayrollDataSet.PayrollDataSet.RemainingLoanforPayslipDataTable rlforPayslipdt = new PayrollDataSet.PayrollDataSet.RemainingLoanforPayslipDataTable();
// //bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
// _dSalaryMonth = GlobalFunctions.LastDateOfMonth(salaryMonth);
// if (oSaProcess != null && oSaProcess.Count > 0 && oSalaryMonthlysGross.Tables[0].Rows.Count > 0)
// {
// if (oSaProcess[0].PaymentDate != DateTime.MinValue)
// {
// _dMonthEndDate = Convert.ToDateTime(oSaProcess[0].PaymentDate);
// }
// else
// {
// _dMonthEndDate = DateTime.MinValue;
// }
// }
// foreach (DataRow odRow in oSalaryMonthlysGross.Tables[0].Rows)
// {
// double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// if (dbl == 0)
// {
// continue;
// }
// DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"].ToString() == "" ? 0 : odRow["ItemID"]));
// if (oRow == null)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
// {
// oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
// {
// double dArrear = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// oRow["Arrear"] = dArrear;
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
// {
// oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
// }
// }
// int nCount = 0;
// DataSet oSalaryMonthlysDeduct = SalaryMonthly.GetEmpPaySlipDeductForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo = "";
// DataRow[] odros = null;
// if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
// {
// employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// double dGratuityAmount = 0;
// double dPFAmount = 0;
// string sTEmpEmpNo = "";
// double nCurrPFAmount = 0;
// foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
// {
// double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// if (dbl == 0)
// {
// continue;
// }
// DataRow oRow = null;
// if (employeeNo != odRow["EMPLOYEENO"].ToString())
// {
// odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros.Length <= nCount)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// else oRow = odros[nCount];
// oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
// oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// oRow["DeducDescription"] = odRow["Description"];
// //oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// if (sTEmpEmpNo == "" || sTEmpEmpNo != odRow["EMPLOYEENO"].ToString())
// {
// nCurrPFAmount = 0;
// dPFAmount = 0;
// oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// DataRow[] odrosPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEENO='" + odRow["EMPLOYEENO"].ToString() + "'");
// if (odrosPF.Length > 0)
// {
// DataRow oRowPF = odrosPF[0];
// nCurrPFAmount = Convert.ToDouble(oRowPF["CHANGEDAMOUNT"]);
// }
// //if(oEmployee!=null)
// //{
// // if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
// // {
// // dGratuityAmount = GetGratuityAmount(_oGratuityParams, oEmployee, salaryMonth);
// // }
// // else
// // {
// // dGratuityAmount = 0;
// // }
// // dPFAmount = GetPFAmount(oEmployee, salaryMonth);
// //}
// }
// oRow["Gratuity"] = dGratuityAmount;
// double nServiceLength = 0;
// if (oEmployee != null)
// nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmployee);
// if (nServiceLength > 5)
// {
// //oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
// oRow["PF"] = dPFAmount + nCurrPFAmount;
// }
// else
// {
// oRow["PF"] = dPFAmount + nCurrPFAmount;
// }
// nCount = nCount + 1;
// employeeNo = odRow["EMPLOYEENO"].ToString();
// sTEmpEmpNo = odRow["EMPLOYEENO"].ToString();
// }
// nCount = 0;
// DataSet oSalaryMonthlysIncomeTax = SalaryMonthly.GetEmpPaySlipIncomeTaxAmountForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo1 = "";
// DataRow[] odros1 = null;
// if (oSalaryMonthlysIncomeTax.Tables[0].Rows.Count > 0)
// {
// employeeNo1 = oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlysIncomeTax.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
// {
// odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros1.Length <= nCount) continue;
// oRow = odros1[nCount];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Inc_Tax_Deduction))
// oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
// nCount = nCount + 1;
// employeeNo1 = odRow["EMPLOYEENO"].ToString();
// }
// nCount = 0;
// DataSet oSalaryMonthlysLaonAmount = SalaryMonthly.GetEmpPaySlipDeductForLR(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo12 = "";
// DataRow[] odros12 = null;
// if (oSalaryMonthlysLaonAmount.Tables[0].Rows.Count > 0)
// {
// employeeNo12 = oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros12 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo12 != odRow["EMPLOYEENO"].ToString())
// {
// odros12 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros12.Length <= nCount) continue;
// oRow = odros12[nCount];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Miscellaneous) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Remain_Balance))
// {
// oRow["LoanDescription"] = odRow["Description"];
// oRow["LoanAmount"] = odRow["CHANGEDAMOUNT"];
// }
// nCount = nCount + 1;
// employeeNo12 = odRow["EMPLOYEENO"].ToString();
// }
// bool isDesigFromEmp = ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
// foreach (DataRow oRow in PayslipData.Rows)
// {
// Employee oEmp = oEmps
// .Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
// .SingleOrDefault();
// if (oEmp != null)
// {
// if (isDesigFromEmp)
// {
// oRow["Designation"] = oEmp.DescriptionText;
// }
// else
// {
// Designation oDesg = oDesigs.Where(o => o.ID == oEmp.DesignationID).SingleOrDefault();
// if (oDesg != null)
// {
// oRow["Designation"] = oDesg.Name;
// }
// }
// }
// }
// // DataSet rlFPayslip = LoanIssue.RemainingLoanforPayslip(sEmpID);
// ObjectsTemplate<LoanIssue> oExistingLoan = LoanIssue.GetExistingLoan(sEmpID);
// if (oExistingLoan != null)
// {
// foreach (LoanIssue li in oExistingLoan)
// {
// double actuInterest = 0.0;
// double principleAmount = 0.0;
// double interest = 0.0;
// double balance = 0.0;
// string loanName = string.Empty;
// DataRow orow = null;
// try
// {
// actuInterest = 0.0;
// principleAmount = 0.0;
// interest = 0.0;
// balance = 0.0;
// if (li.Schedules != null)
// {
// foreach (LoanSchedule oScedule in li.Schedules)
// {
// if (oScedule.PaymentDate != null && oScedule.PaymentDate != DateTime.MinValue)
// {
// actuInterest = actuInterest + oScedule.ActualInterest;
// principleAmount = principleAmount + oScedule.InstallmentPrincipal;
// interest = interest + oScedule.InstallmentInterest;
// balance = balance + oScedule.OpeningBalance;
// orow = rlforPayslipdt.NewRow();
// orow["LoanName"] = li.LoanObj.Name;
// orow["RemainingBalance"] = balance;
// orow["RemainingInterest"] = interest;
// rlforPayslipdt.Rows.Add(orow);
// }
// }
// }
// }
// catch (Exception ex)
// {
// throw new ServiceException(ex.Message);
// }
// }
// }
// PayslipData.TableName = "PayrollDataSet_Payslip";
// rlforPayslipdt.TableName = "PayrollDataSet_RemainingLoanforPayslip";
// oFDST.Tables.Add(PayslipData);
// oFDST.Tables.Add(rlforPayslipdt);
// form.ShowDlgForPaySlipCiti1(_selectedParameter.ReportItem, oFDST);
// }
// public void ShowReport()
// {
// _oGratuityParams = ESBDefinition.Get();
// Employee oEmployee = null;
// ObjectsTemplate<Costcenter> costCenters = Costcenter.Get();
// ObjectsTemplate<EmployeeCostCenter> _empCostCeneters = EmployeeCostCenter.Get();
// Costcenter cCenter = null;
// EmployeeCostCenter empCC = null;
// ObjectsTemplate<Employee> oEmps = new ObjectsTemplate<Employee>();
// _termParamenters = TermParameter.Get();
// string takaInWord = string.Empty;
// List<Designation> oDesigs = Designation.Get(EnumStatus.Regardless);
// fReportViewer form = new fReportViewer();
// DateTime salaryMonth = _selectedParameter.FromDate.Value;
// salaryMonth = GlobalFunctions.LastDateOfMonth(salaryMonth);
// DateTime startMonth = salaryMonth.AddMonths(-1);
// startMonth = new DateTime(startMonth.Year, startMonth.Month, 26);
// DateTime endMonth = new DateTime(salaryMonth.Year, salaryMonth.Month, 25);
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// oEmps = Employee.GetByEmpIDs(sEmpID);
// ObjectsTemplate<DailyAttnProcess> _dailyAttnProcess = DailyAttnProcess.Get(sEmpID,startMonth, endMonth);
// ObjectsTemplate<DailyAttnProcess> _dailyAttnProcessEmp = new ObjectsTemplate<DailyAttnProcess>();
// ObjectsTemplate<SalaryProcess> oSaProcess = new ObjectsTemplate<SalaryProcess>();
// oSaProcess = SalaryProcess.Get(GlobalFunctions.LastDateOfMonth(salaryMonth));
// ObjectsTemplate<SalaryMonthly> _salaryMonthlys = SalaryMonthly.Get(sEmpID, GlobalFunctions.LastDateOfMonth(salaryMonth));
// SalaryMonthly sMonthly = null;
// //bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
// DataSet oSalaryMonthlysGross = SalaryMonthly.GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// DataSet dsetEmpBasicInfo = Employee.GetEmpBasicInfoForReport(sEmpID);
// _hourTable = oSalaryMonthlysGross.Tables[2];
// DataTable basicInfo = new PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable();
// PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new Payroll.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
// //PayrollDataSet.PayrollDataSet.LoanDataDataTable loanDT = new Payroll.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable();
// PayrollDataSet.PayrollDataSet.RemainingLoanforPayslipDataTable rlforPayslipdt = new PayrollDataSet.PayrollDataSet.RemainingLoanforPayslipDataTable();
// //bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
// _dSalaryMonth = GlobalFunctions.LastDateOfMonth(salaryMonth);
// if (oSaProcess != null && oSaProcess.Count > 0 && oSalaryMonthlysGross.Tables[1].Rows.Count > 0)
// {
// if (oSaProcess[0].PaymentDate != DateTime.MinValue)
// {
// _dMonthEndDate = Convert.ToDateTime(oSaProcess[0].PaymentDate);
// }
// else
// {
// _dMonthEndDate = DateTime.MinValue;
// }
// }
// bool isDesigFromEmp = ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
// foreach (DataRow oRow in oSalaryMonthlysGross.Tables[0].Rows)
// {
// Employee oEmp = oEmps
// .Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
// .SingleOrDefault();
// if (oEmp != null)
// {
// if (isDesigFromEmp)
// {
// oRow["Designation"] = oEmp.DescriptionText;
// }
// }
// }
// foreach (DataRow odRow in oSalaryMonthlysGross.Tables[1].Rows)
// {
// double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// if (dbl == 0)
// {
// continue;
// }
// DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"].ToString() == "" ? 0 : odRow["ItemID"]));
// if (oRow == null)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// oEmployee = oEmps
// .Where(o => o.EmployeeNo.ToUpper().Trim() == odRow["EMPLOYEENO"].ToString().ToUpper().Trim())
// .FirstOrDefault();
// sMonthly = _salaryMonthlys.Where(o => o.EmployeeID == oEmployee.ID).FirstOrDefault();
// takaInWord = Ease.CoreV35.Utility.Global.NumericFunctions.TakaWords(sMonthly.Details.Where(o => o.itemGroupCode == EnumSalaryGroup.OtherItem && o.ItemCode == EnumSalaryItemCode.Net_Payable).FirstOrDefault().ChangedAmount);
// oRow["STaka"] = takaInWord;
// PayslipData.Rows.Add(oRow);
// }
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
// {
// oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
// {
// double dArrear = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// oRow["Arrear"] = dArrear;
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
// {
// oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
// }
// if (odRow["PaymentMode"].ToString()=="1")
// {
// oRow["PaymentMode"] = "CashPayment";
// }
// else if (odRow["PaymentMode"].ToString() == "2")
// {
// oRow["PaymentMode"] = "BankTransfer";
// }
// else if (odRow["PaymentMode"] == "3")
// {
// oRow["PaymentMode"] = "Provision";
// }
// }
// int nCount = 0;
// DataSet oSalaryMonthlysDeduct = SalaryMonthly.GetEmpPaySlipDeductForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo = "";
// DataRow[] odros = null;
// if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
// {
// employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// double dGratuityAmount = 0;
// double dPFAmount = 0;
// string sTEmpEmpNo = "";
// double nCurrPFAmount = 0;
// foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
// {
// double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// if (dbl == 0)
// {
// continue;
// }
// DataRow oRow = null;
// if (employeeNo != odRow["EMPLOYEENO"].ToString())
// {
// odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros.Length <= nCount)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// else oRow = odros[nCount];
// oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
// oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// oRow["DeducDescription"] = odRow["Description"];
// //oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// if (sTEmpEmpNo == "" || sTEmpEmpNo != odRow["EMPLOYEENO"].ToString())
// {
// nCurrPFAmount = 0;
// dPFAmount = 0;
// oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// DataRow[] odrosPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEENO='" + odRow["EMPLOYEENO"].ToString() + "'");
// if (odrosPF.Length > 0)
// {
// DataRow oRowPF = odrosPF[0];
// nCurrPFAmount = Convert.ToDouble(oRowPF["CHANGEDAMOUNT"]);
// }
// }
// #region UnusedCode
// //oRow["Gratuity"] = dGratuityAmount;
// //double nServiceLength = 0;
// //if (oEmployee != null)
// // nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmployee);
// //if (nServiceLength > 5)
// //{
// // //oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
// // oRow["PF"] = dPFAmount + nCurrPFAmount;
// //}
// //else
// //{
// // oRow["PF"] = dPFAmount + nCurrPFAmount;
// //}
// #endregion
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions) &&
// Convert.ToInt32(odRow["ITEMCODE"]) == (int)EnumSalaryItemCode.Loan_Monthly_Installment)
// {
// double balance = 0.0;
// double interest = 0.0;
// DataRow orow = null;
// LoanSchedule oSchedule = LoanSchedule.Get(ID.FromInteger(Convert.ToInt32(odRow["SUPPORTID"])));
// ObjectsTemplate<LoanSchedule> oSchedules = new ObjectsTemplate<LoanSchedule>();
// if (oSchedule != null)
// {
// oSchedules = LoanSchedule.GetByIssueID(oSchedule.LoanIssueID);
// }
// foreach (LoanSchedule oSchdl in oSchedules)
// {
// if (oSchdl.ScheduleNo > oSchedule.ScheduleNo)
// {
// balance += oSchdl.InstallmentPrincipal;
// interest += oSchdl.InstallmentInterest;
// }
// }
// orow = rlforPayslipdt.NewRow();
// orow["LoanName"] = odRow["Description"];
// orow["RemainingBalance"] = balance;
// orow["RemainingInterest"] = interest;
// orow["EmpNo"] = oEmployee.EmployeeNo;
// rlforPayslipdt.Rows.Add(orow);
// }
// nCount = nCount + 1;
// employeeNo = odRow["EMPLOYEENO"].ToString();
// sTEmpEmpNo = odRow["EMPLOYEENO"].ToString();
// }
// #region Unused Code
// //nCount = 0;
// //DataSet oSalaryMonthlysIncomeTax = SalaryMonthly.GetEmpPaySlipIncomeTaxAmountForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// //string employeeNo1 = "";
// //DataRow[] odros1 = null;
// //if (oSalaryMonthlysIncomeTax.Tables[0].Rows.Count > 0)
// //{
// // employeeNo1 = oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// // odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// //}
// //foreach (DataRow odRow in oSalaryMonthlysIncomeTax.Tables[0].Rows)
// //{
// // DataRow oRow = null;
// // if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
// // {
// // odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// // nCount = 0;
// // }
// // if (odros1.Length <= nCount) continue;
// // oRow = odros1[nCount];
// // if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Inc_Tax_Deduction))
// // oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
// // nCount = nCount + 1;
// // employeeNo1 = odRow["EMPLOYEENO"].ToString();
// //}
// //nCount = 0;
// //DataSet oSalaryMonthlysLaonAmount = SalaryMonthly.GetEmpPaySlipDeductForLR(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// //string employeeNo12 = "";
// //DataRow[] odros12 = null;
// //if (oSalaryMonthlysLaonAmount.Tables[0].Rows.Count > 0)
// //{
// // employeeNo12 = oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// // odros12 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// //}
// //foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
// //{
// // DataRow oRow = null;
// // if (employeeNo12 != odRow["EMPLOYEENO"].ToString())
// // {
// // odros12 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// // nCount = 0;
// // }
// // if (odros12.Length <= nCount) continue;
// // oRow = odros12[nCount];
// // if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Miscellaneous) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Remain_Balance))
// // {
// // oRow["LoanDescription"] = odRow["Description"];
// // oRow["LoanAmount"] = odRow["CHANGEDAMOUNT"];
// // }
// // nCount = nCount + 1;
// // employeeNo12 = odRow["EMPLOYEENO"].ToString();
// //}
// //bool isDesigFromEmp = ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
// //foreach (DataRow oRow in PayslipData.Rows)
// //{
// // Employee oEmp = oEmps
// // .Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
// // .SingleOrDefault();
// // if (oEmp != null)
// // {
// // if (isDesigFromEmp)
// // {
// // oRow["Designation"] = oEmp.DescriptionText;
// // }
// // else
// // {
// // Designation oDesg = oDesigs.Where(o => o.ID == oEmp.DesignationID).SingleOrDefault();
// // if (oDesg != null)
// // {
// // oRow["Designation"] = oDesg.Name;
// // }
// // }
// // }
// //}
// //foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
// // {
// // double actuInterest = 0.0;
// // double principleAmount = 0.0;
// // double interest = 0.0;
// // double balance = 0.0;
// // string loanName = string.Empty;
// // DataRow orow = null;
// // LoanSchedule oschedule = LoanSchedule.Get(ID.FromInteger(Convert.ToInt32(odRow["SupportID"])));
// // try
// // {
// // oEmployee = oEmps.FirstOrDefault(o => o.ID.Integer == Convert.ToInt32( odRow["EmployeeId"])); //oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.ID == li.EmployeeID};
// // actuInterest = 0.0;
// // principleAmount = 0.0;
// // interest = 0.0;
// // balance = 0.0;
// // orow = rlforPayslipdt.NewRow();
// // orow["LoanName"] = odRow["Description"];
// // orow["RemainingBalance"] = oschedule.OpeningBalance;
// // orow["RemainingInterest"] = oschedule.InstallmentInterest;
// // orow["EmpNo"] = oEmployee.EmployeeNo;
// // rlforPayslipdt.Rows.Add(orow);
// // }
// // catch (Exception ex)
// // {
// // throw new ServiceException(ex.Message);
// // }
// // }
// // DataSet rlFPayslip = LoanIssue.RemainingLoanforPayslip(sEmpID);
// //ObjectsTemplate<LoanIssue> oExistingLoan = LoanIssue.GetExistingLoan(sEmpID);
// //foreach (LoanIssue li in oExistingLoan)
// //{
// // double actuInterest = 0.0;
// // double principleAmount = 0.0;
// // double interest = 0.0;
// // double balance = 0.0;
// // string loanName = string.Empty;
// // DataRow orow = null;
// // try
// // {
// // oEmployee = oEmps.FirstOrDefault(o => o.ID == li.EmployeeID); //oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.ID == li.EmployeeID};
// // actuInterest = 0.0;
// // principleAmount = 0.0;
// // interest = 0.0;
// // balance = 0.0;
// // foreach (LoanSchedule oScedule in li.Schedules)
// // {
// // if (oScedule.PaymentDate != null && oScedule.PaymentDate == DateTime.MinValue)
// // {
// // actuInterest = actuInterest + oScedule.ActualInterest;
// // principleAmount = principleAmount + oScedule.InstallmentPrincipal;
// // interest = interest + oScedule.InstallmentInterest;
// // balance = balance + oScedule.OpeningBalance;
// // }
// // }
// // orow = rlforPayslipdt.NewRow();
// // orow["LoanName"] = li.LoanObj.Name;
// // orow["RemainingBalance"] = balance;
// // orow["RemainingInterest"] = interest;
// // orow["EmpNo"] = oEmployee.EmployeeNo;
// // rlforPayslipdt.Rows.Add(orow);
// // }
// // catch (Exception ex)
// // {
// // throw new ServiceException(ex.Message);
// // }
// //}
// #endregion
// basicInfo = dsetEmpBasicInfo.Tables[0].Copy(); //oSalaryMonthlysGross.Tables[0].Copy();
// basicInfo.Columns.Add("TotalAbsent", typeof(string));
// basicInfo.Columns.Add("TotalLWP", typeof(string));
// basicInfo.TableName = "BasicInfo";
// double totalAbsentDays = 0;
// double totalDaysOfMonth = Ease.CoreV35.Utility.Global.DateFunctions.DateDiff("d", startMonth, endMonth) + 1;
// ObjectsTemplate<EmployeeUnAuthorizeLeave> lwps = EmployeeUnAuthorizeLeave.Get(EnumLeaveEntryType.Normal ,GlobalFunctions.LastDateOfMonth(salaryMonth));
// foreach (DataRow oRow in basicInfo.Rows)
// {
// oEmployee = oEmps
// .Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
// .FirstOrDefault();
// _dailyAttnProcessEmp = _dailyAttnProcess.Where(o => o.EmployeeID == oEmployee.ID && o.AttenType == EnumAttendanceType.Absent).ToObjectsTemplate();
// oRow["PayPeriodFrom"] = startMonth.ToString("dd-MMM-yyyy");
// oRow["PayPeriodTo"] = endMonth.ToString("dd-MMM-yyyy");
// oRow["TotalDays"] = totalDaysOfMonth;
// totalAbsentDays = _dailyAttnProcessEmp.Count;
// oRow["TotalAbsent"] = totalAbsentDays;
// if (lwps.Count > 0)
// {
// oRow["TotalLWP"] = lwps.Where(x => x.EmployeeID == oEmployee.ID).Sum(x => x.LeaveDays);
// }
// oRow["PayableDays"] = totalDaysOfMonth - totalAbsentDays;
// oRow["SalaryMonth"] = salaryMonth.ToString("MMMM yyyy");
// oRow["PaymentDate"] = salaryMonth.ToString("dd MMM yyyy");
// }
// DataSet dsSubReport = new DataSet();
// PayslipData.TableName = "SalaryMonthlysGross";
// dsSubReport.Tables.Add(PayslipData);
// rlforPayslipdt.TableName = "RemainingLoanforPayslip";
// dsSubReport.Tables.Add(rlforPayslipdt);
// form.ShowDlgForNewPaySlip(_selectedParameter.ReportItem, basicInfo, dsSubReport, salaryMonth.ToString("MMMM yyyy"));
// }
// public byte[] SaveReportForGT(DateTime date, string empID)
// {
// fReportViewer form = new fReportViewer();
// DateTime fromDate = date;
// DateTime toDate = date.LastDateOfMonth();
// string sEmpIDs = empID;
// IncomeTax oIncomeTax = new IncomeTax();
// ObjectsTemplate<Employee> oEmps = new ObjectsTemplate<Employee>();
// oEmps = Employee.GetByEmpIDs(sEmpIDs);
// ObjectsTemplate<EmployeeCostCenter> oEmpCCs = EmployeeCostCenter.Get();
// ObjectsTemplate<Costcenter> oCCs = Costcenter.Get();
// EmployeeCostCenter oEmpCC = null;
// Costcenter oCC = null;
// _taxParameter = TaxParameter.Get(BO.SystemInformation.CurrentSysInfo.TaxParamID);
// PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable dtEmpBasicInfo = new Payroll.Report.PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable();
// DataSet dsSub = new DataSet();
// ObjectsTemplate<Department> oDepartments = Department.Get();
// ObjectsTemplate<Grade> oGrades = Grade.Get(EnumStatus.Active);
// ObjectsTemplate<Designation> oDesignations = Designation.Get(EnumStatus.Active);
// Department oDepartment = null;
// Grade oGrade = null;
// Designation oDesignation = null;
// foreach (Employee oEmp in oEmps)
// {
// _employee = oEmp;
// DataRow dr = dtEmpBasicInfo.NewRow();
// dr["EmpID"] = oEmp.ID;
// dr["Name"] = oEmp.Name;
// dr["EMPLOYEENO"] = oEmp.EmployeeNo;
// dr["ActualBasic"] = oEmp.BasicSalary;
// oEmpCC = oEmpCCs.Where(x => x.EmployeeID.Integer == oEmp.ID.Integer && x.IsCurrentCC == true).FirstOrDefault();
// oCC = oEmpCC != null ? oCCs.Where(x => x.ID.Integer == oEmpCC.CostCenterID.Integer).FirstOrDefault() : null;
// dr["TINNo"] = BO.SystemInformation.CurrentSysInfo.PayrollTypeID.Integer == 1 ? oCC != null ? oCC.Code : "" : oEmp.TinNo;
// dr["AssessmentYear"] = _taxParameter.AssessmentYear;
// dr["FiscalYear"] = _taxParameter.FiscalYear;
// oDepartment = oDepartments.Where(x => x.ID.Integer == oEmp.DepartmentID.Integer).FirstOrDefault();
// dr["Department"] = oDepartment != null ? oDepartment.Name : "";
// oGrade = oGrades.Where(x => x.ID.Integer == oEmp.GradeID.Integer).FirstOrDefault();
// dr["Grade"] = oGrade != null ? oGrade.Name : "";
// dr["JOININGDATE"] = oEmp.JoiningDate;
// oDesignation = oDesignations.Where(x => x.ID.Integer == oEmp.DesignationID.Integer).FirstOrDefault();
// dr["Designation"] = oDesignation != null ? oDesignation.Name : "";
// dr["ACCOUNTNO"] = oEmp.AccountNo;
// dr["PAYMENTMODE"] = oEmp.PaymentMode == EnumPaymentMode.BankTransfer ? "Bank Transfer" : "Cash Payment";
// dtEmpBasicInfo.Rows.Add(dr);
// _incometaxes = IncomeTax.Get(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID, BO.SystemInformation.CurrentSysInfo.TaxParamID);
// _dSet = PrepareDataset(oEmp.ID, oEmp.EmployeeNo);
// if (dsSub.Tables.Count <= 0)
// {
// dsSub = _dSet;
// }
// else
// {
// dsSub.Merge(_dSet);
// }
// }
// DataSet dsPaySlip = PrepareDataSetForPaySlip(sEmpIDs, fromDate, toDate, oEmps);
// dsSub.Merge(dsPaySlip);
// return form.SaveReportForGT(null, dtEmpBasicInfo, dsSub);
// }
// public void ShowReportForGT()
// {
// fReportViewer form = new fReportViewer();
// DateTime fromDate = _selectedParameter.FromDate.Value;
// DateTime toDate = _selectedParameter.FromDate.Value.LastDateOfMonth();
// string sEmpIDs = _selectedParameter.ReportItem.INSQL;
// IncomeTax oIncomeTax = new IncomeTax();
// ObjectsTemplate<Employee> oEmps = new ObjectsTemplate<Employee>();
// oEmps = Employee.GetByEmpIDs(sEmpIDs);
// ObjectsTemplate<EmployeeCostCenter> oEmpCCs = EmployeeCostCenter.Get();
// ObjectsTemplate<Costcenter> oCCs = Costcenter.Get();
// EmployeeCostCenter oEmpCC = null;
// Costcenter oCC = null;
// _taxParameter = TaxParameter.Get(BO.SystemInformation.CurrentSysInfo.TaxParamID);
// PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable dtEmpBasicInfo = new Payroll.Report.PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable();
// DataSet dsSub = new DataSet();
// ObjectsTemplate<Department> oDepartments = Department.Get();
// ObjectsTemplate<Grade> oGrades = Grade.Get(EnumStatus.Active);
// ObjectsTemplate<Designation> oDesignations = Designation.Get(EnumStatus.Active);
// Department oDepartment = null;
// Grade oGrade = null;
// Designation oDesignation = null;
// foreach (Employee oEmp in oEmps)
// {
// _employee = oEmp;
// DataRow dr = dtEmpBasicInfo.NewRow();
// dr["EmpID"] = oEmp.ID;
// dr["Name"] = oEmp.Name;
// dr["EMPLOYEENO"] = oEmp.EmployeeNo;
// dr["ActualBasic"] = oEmp.BasicSalary;
// oEmpCC = oEmpCCs.Where(x => x.EmployeeID.Integer == oEmp.ID.Integer && x.IsCurrentCC == true).FirstOrDefault();
// oCC = oEmpCC != null ? oCCs.Where(x => x.ID.Integer == oEmpCC.CostCenterID.Integer).FirstOrDefault() : null;
// dr["TINNo"] = BO.SystemInformation.CurrentSysInfo.PayrollTypeID.Integer == 1 ? oCC != null ? oCC.Code : "" : oEmp.TinNo;
// dr["AssessmentYear"] = _taxParameter.AssessmentYear;
// dr["FiscalYear"] = _taxParameter.FiscalYear;
// oDepartment = oDepartments.Where(x => x.ID.Integer == oEmp.DepartmentID.Integer).FirstOrDefault();
// dr["Department"] = oDepartment != null ? oDepartment.Name : "";
// oGrade = oGrades.Where(x => x.ID.Integer == oEmp.GradeID.Integer).FirstOrDefault();
// dr["Grade"] = oGrade != null ? oGrade.Name : "";
// dr["JOININGDATE"] = oEmp.JoiningDate;
// oDesignation = oDesignations.Where(x => x.ID.Integer == oEmp.DesignationID.Integer).FirstOrDefault();
// dr["Designation"] = oDesignation != null ? oDesignation.Name : "";
// dr["ACCOUNTNO"] = oEmp.AccountNo;
// dr["PAYMENTMODE"] = oEmp.PaymentMode == EnumPaymentMode.BankTransfer ? "Bank Transfer" : "Cash Payment";
// dtEmpBasicInfo.Rows.Add(dr);
// _incometaxes = IncomeTax.Get(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID, BO.SystemInformation.CurrentSysInfo.TaxParamID);
// _dSet = PrepareDataset(oEmp.ID, oEmp.EmployeeNo);
// if (dsSub.Tables.Count <= 0)
// {
// dsSub = _dSet;
// }
// else
// {
// dsSub.Merge(_dSet);
// }
// }
// DataSet dsPaySlip = PrepareDataSetForPaySlip(sEmpIDs, fromDate, toDate, oEmps);
// dsSub.Merge(dsPaySlip);
// form.ShowDlgForGT(_selectedParameter.ReportItem, dtEmpBasicInfo, dsSub);
// }
// public DataSet PrepareDataSetForPaySlip(string sEmpIDs, DateTime fromDate, DateTime toDate, ObjectsTemplate<Employee> oEmps)
// {
// Employee oEmployee = null;
// string takaInWord = string.Empty;
// List<Designation> oDesigs = Designation.Get(EnumStatus.Regardless);
// ObjectsTemplate<DailyAttnProcess> _dailyAttnProcess = DailyAttnProcess.Get(sEmpIDs, fromDate, toDate);
// ObjectsTemplate<DailyAttnProcess> _dailyAttnProcessEmp = new ObjectsTemplate<DailyAttnProcess>();
// ObjectsTemplate<SalaryProcess> oSaProcess = new ObjectsTemplate<SalaryProcess>();
// oSaProcess = SalaryProcess.Get(toDate);
// ObjectsTemplate<SalaryMonthly> _salaryMonthlys = SalaryMonthly.Get(sEmpIDs, toDate);
// SalaryMonthly sMonthly = null;
// //bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
// DataSet oSalaryMonthlysGross = SalaryMonthly.GetEmpPaySlipGrossForOthers(toDate, sEmpIDs);
// DataSet dsetEmpBasicInfo = Employee.GetEmpBasicInfoForReport(sEmpIDs);
// _hourTable = oSalaryMonthlysGross.Tables[2];
// DataTable basicInfo = new PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable();
// PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new Payroll.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
// //PayrollDataSet.PayrollDataSet.LoanDataDataTable loanDT = new Payroll.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable();
// PayrollDataSet.PayrollDataSet.RemainingLoanforPayslipDataTable rlforPayslipdt = new PayrollDataSet.PayrollDataSet.RemainingLoanforPayslipDataTable();
// //bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
// _dSalaryMonth = toDate;
// if (oSaProcess != null && oSaProcess.Count > 0 && oSalaryMonthlysGross.Tables[1].Rows.Count > 0)
// {
// if (oSaProcess[0].PaymentDate != DateTime.MinValue)
// {
// _dMonthEndDate = Convert.ToDateTime(oSaProcess[0].PaymentDate);
// }
// else
// {
// _dMonthEndDate = DateTime.MinValue;
// }
// }
// bool isDesigFromEmp = ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
// foreach (DataRow oRow in oSalaryMonthlysGross.Tables[0].Rows)
// {
// Employee oEmp = oEmps
// .Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
// .SingleOrDefault();
// if (oEmp != null)
// {
// if (isDesigFromEmp)
// {
// oRow["Designation"] = oEmp.DescriptionText;
// }
// }
// }
// foreach (DataRow odRow in oSalaryMonthlysGross.Tables[1].Rows)
// {
// double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// if (dbl == 0)
// {
// continue;
// }
// DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"].ToString() == "" ? 0 : odRow["ItemID"]));
// if (oRow == null)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// oEmployee = oEmps
// .Where(o => o.EmployeeNo.ToUpper().Trim() == odRow["EMPLOYEENO"].ToString().ToUpper().Trim())
// .FirstOrDefault();
// sMonthly = _salaryMonthlys.Where(o => o.EmployeeID == oEmployee.ID).FirstOrDefault();
// takaInWord = Ease.CoreV35.Utility.Global.NumericFunctions.TakaWords(sMonthly.Details.Where(o => o.itemGroupCode == EnumSalaryGroup.OtherItem && o.ItemCode == EnumSalaryItemCode.Net_Payable).FirstOrDefault().ChangedAmount);
// oRow["STaka"] = takaInWord;
// PayslipData.Rows.Add(oRow);
// }
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
// {
// oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
// {
// double dArrear = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// oRow["Arrear"] = dArrear;
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
// {
// oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
// }
// if (odRow["PaymentMode"].ToString() == "1")
// {
// oRow["PaymentMode"] = "CashPayment";
// }
// else if (odRow["PaymentMode"].ToString() == "2")
// {
// oRow["PaymentMode"] = "BankTransfer";
// }
// else if (odRow["PaymentMode"] == "3")
// {
// oRow["PaymentMode"] = "Provision";
// }
// }
// int nCount = 0;
// DataSet oSalaryMonthlysDeduct = SalaryMonthly.GetEmpPaySlipDeductForOthers(toDate, sEmpIDs);
// string employeeNo = "";
// DataRow[] odros = null;
// if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
// {
// employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// double dGratuityAmount = 0;
// double dPFAmount = 0;
// string sTEmpEmpNo = "";
// double nCurrPFAmount = 0;
// foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
// {
// double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// if (dbl == 0)
// {
// continue;
// }
// DataRow oRow = null;
// if (employeeNo != odRow["EMPLOYEENO"].ToString())
// {
// odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros.Length <= nCount)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// else
// {
// oRow = odros[nCount];
// }
// if (Payroll.BO.SystemInformation.CurrentSysInfo.PayrollTypeID.Integer == 1)
// {
// oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// oRow["DeducDescription"] = odRow["Description"];
// if (Convert.ToInt32(odRow["ItemCode"].ToString()) == (int)EnumSalaryItemCode.PF_Contribution)
// {
// oRow["DeducDescription"] = "EE Contribution to PF";
// nCount++;
// if (odros.Length <= nCount)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// else
// {
// oRow = odros[nCount];
// }
// oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// oRow["DeducDescription"] = "ER Contribution to PF";
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// oRow["Description"] = "Company Contribution of PF";
// }
// }
// else
// {
// oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
// oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// oRow["DeducDescription"] = odRow["Description"];
// //oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// if (sTEmpEmpNo == "" || sTEmpEmpNo != odRow["EMPLOYEENO"].ToString())
// {
// nCurrPFAmount = 0;
// dPFAmount = 0;
// oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// DataRow[] odrosPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEENO='" + odRow["EMPLOYEENO"].ToString() + "'");
// if (odrosPF.Length > 0)
// {
// DataRow oRowPF = odrosPF[0];
// nCurrPFAmount = Convert.ToDouble(oRowPF["CHANGEDAMOUNT"]);
// }
// }
// }
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions) &&
// Convert.ToInt32(odRow["ITEMCODE"]) == (int)EnumSalaryItemCode.Loan_Monthly_Installment)
// {
// double balance = 0.0;
// double interest = 0.0;
// DataRow orow = null;
// LoanSchedule oSchedule = LoanSchedule.Get(ID.FromInteger(Convert.ToInt32(odRow["SUPPORTID"])));
// ObjectsTemplate<LoanSchedule> oSchedules = new ObjectsTemplate<LoanSchedule>();
// if (oSchedule != null)
// {
// oSchedules = LoanSchedule.GetByIssueID(oSchedule.LoanIssueID);
// }
// foreach (LoanSchedule oSchdl in oSchedules)
// {
// if (oSchdl.ScheduleNo > oSchedule.ScheduleNo)
// {
// balance += oSchdl.InstallmentPrincipal;
// interest += oSchdl.InstallmentInterest;
// }
// }
// orow = rlforPayslipdt.NewRow();
// orow["LoanName"] = odRow["Description"];
// orow["RemainingBalance"] = balance;
// orow["RemainingInterest"] = interest;
// orow["EmpNo"] = oEmployee.EmployeeNo;
// rlforPayslipdt.Rows.Add(orow);
// }
// nCount = nCount + 1;
// employeeNo = odRow["EMPLOYEENO"].ToString();
// sTEmpEmpNo = odRow["EMPLOYEENO"].ToString();
// }
// basicInfo = dsetEmpBasicInfo.Tables[0].Copy(); //oSalaryMonthlysGross.Tables[0].Copy();
// basicInfo.Columns.Add("TotalAbsent", typeof(string));
// basicInfo.Columns.Add("TotalLWP", typeof(string));
// basicInfo.TableName = "BasicInfo";
// double totalAbsentDays = 0;
// double totalDaysOfMonth = Ease.CoreV35.Utility.Global.DateFunctions.DateDiff("d", fromDate, toDate) + 1;
// ObjectsTemplate<EmployeeUnAuthorizeLeave> lwps = EmployeeUnAuthorizeLeave.Get(EnumLeaveEntryType.Normal, toDate);
// foreach (DataRow oRow in basicInfo.Rows)
// {
// oEmployee = oEmps
// .Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
// .FirstOrDefault();
// _dailyAttnProcessEmp = _dailyAttnProcess.Where(o => o.EmployeeID == oEmployee.ID && o.AttenType == EnumAttendanceType.Absent).ToObjectsTemplate();
// oRow["PayPeriodFrom"] = fromDate.ToString("dd-MMM-yyyy");
// oRow["PayPeriodTo"] = toDate.ToString("dd-MMM-yyyy");
// oRow["TotalDays"] = totalDaysOfMonth;
// totalAbsentDays = _dailyAttnProcessEmp.Count;
// oRow["TotalAbsent"] = totalAbsentDays;
// if (lwps.Count > 0)
// {
// oRow["TotalLWP"] = lwps.Where(x => x.EmployeeID == oEmployee.ID).Sum(x => x.LeaveDays);
// }
// oRow["PayableDays"] = totalDaysOfMonth - totalAbsentDays;
// oRow["SalaryMonth"] = fromDate.ToString("MMMM yyyy");
// oRow["PaymentDate"] = fromDate.ToString("dd MMM yyyy");
// }
// DataSet dsSubReport = new DataSet();
// PayslipData.TableName = "PayrollDataSet_Payslip";
// dsSubReport.Tables.Add(PayslipData);
// rlforPayslipdt.TableName = "RemainingLoanforPayslip";
// dsSubReport.Tables.Add(rlforPayslipdt);
// return dsSubReport;
// }
// private DataSet PrepareDataset(ID nEmpID, string EmpNo)
// {
// DataSet orootDataset = new DataSet();
// DataRow dr = null;
// IncomeTax oIncomeTax = new IncomeTax();
// PayrollDataSet.PayrollDataSet.IncomeTaxDataTable dTable1 = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxDataTable();
// PayrollDataSet.PayrollDataSet.IncomeTaxDataTable dTable2 = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxDataTable();
// DataRow houseRent = null;
// DataRow Conveyance = null;
// DataRow Medical = null;
// DataRow lfa = null;
// DataRow wppf = null;
// DataRow TotalSalaryExepted = null;
// DataRow TotalAnnualExepted = null;
// _InvestmentAmount = 0.0;
// _TotalTaxAmount = 0.0;
// _LessExemptedAmount = 0.0;
// _PaidTillDateAmount = 0.0;
// _ThisMonthAmount = 0.0;
// _ProjectedAmount = 0.0;
// _AmountPerAnnum = 0.0;
// _TotalSalaryExempted = 0.0;
// _TotalAnnuaExempted = 0.0;
// _TPaidTillDateAmount = 0.0;
// _TThisMonthAmount = 0.0;
// _TProjectedAmount = 0.0;
// _TAmountPerAnnum = 0.0;
// _pfInvestment = 0;
// _otherInvestment = 0;
// _investmentAllowed = 0;
// _20Investment = 0;
// foreach (IncomeTax oItem in _incometaxes)
// {
// if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance ||
// oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance ||
// oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_Medical_Allowance ||
// oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_LFA_Allowance ||
// oItem.ItemGroup == EnumIncomeTaxItemGroup.WPPF_Examption) continue;
// if (oItem.Side == EnumIncomeTaxSide.Inc_SalaryIncome || oItem.Side == EnumIncomeTaxSide.Dec_SalaryIncome)
// {
// dr = dTable1.NewRow();
// dTable1.Rows.Add(this.getARow(dr, oItem, EmpNo));
// if (oItem.ItemGroup == EnumIncomeTaxItemGroup.House_Rent_Allowance)
// houseRent = dr;
// if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Medical_Allowance)
// Medical = dr;
// if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Conveyance_Allowance)
// Conveyance = dr;
// if (oItem.ItemGroup == EnumIncomeTaxItemGroup.LFA_Allowance)
// lfa = dr;
// if (oItem.ItemGroup == EnumIncomeTaxItemGroup.WPPF_Allowance)
// wppf = dr;
// }
// }
// if (houseRent != null)
// {
// IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID,
// EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance);
// if (taxAmount != null)
// {
// _TotalSalaryExempted += taxAmount.TotalAmount;
// houseRent["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
// }
// }
// if (Medical != null)
// {
// IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID,
// EnumIncomeTaxItemGroup.Exemption_Medical_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Medical_Allowance);
// if (taxAmount != null)
// {
// _TotalSalaryExempted += taxAmount.TotalAmount;
// Medical["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
// }
// }
// if (Conveyance != null)
// {
// IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID,
// EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance);
// if (taxAmount != null)
// {
// _TotalSalaryExempted += taxAmount.TotalAmount;
// Conveyance["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
// }
// }
// if (lfa != null)
// {
// IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID,
// EnumIncomeTaxItemGroup.Exemption_LFA_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_LFA_Allowance);
// if (taxAmount != null)
// {
// _TotalSalaryExempted += taxAmount.TotalAmount;
// lfa["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
// }
// }
// if (wppf != null)
// {
// IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID,
// EnumIncomeTaxItemGroup.WPPF_Examption, (int)EnumIncomeTaxItemGroup.WPPF_Examption);
// if (taxAmount != null)
// {
// _TotalSalaryExempted += taxAmount.TotalAmount;
// wppf["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
// }
// }
// IncomeTax salaryIncome = IncomeTax.Get(_incometaxes, nEmpID,
// EnumIncomeTaxItemGroup.Annual_Salary_Income, (int)EnumIncomeTaxItemGroup.Annual_Salary_Income);
// if (salaryIncome != null)
// {
// dr = dTable1.NewRow();
// dTable1.Rows.Add(this.getARow(dr, salaryIncome, EmpNo));
// TotalSalaryExepted = dr;
// TotalSalaryExepted["LessExaempted"] = _TotalSalaryExempted;
// }
// foreach (IncomeTax oItem in _incometaxes)
// {
// if (oItem.Side == EnumIncomeTaxSide.Inc_AnnualIncome || oItem.Side == EnumIncomeTaxSide.Dec_AnnualIncome)
// {
// dr = dTable1.NewRow();
// dTable1.Rows.Add(this.getARow(dr, oItem, EmpNo));
// //_TotalAnnuaExempted = oItem.TotalAmount;
// }
// }
// IncomeTax totalAnnualIncome = IncomeTax.Get(_incometaxes, nEmpID,
// EnumIncomeTaxItemGroup.Annual_Income, (int)EnumIncomeTaxItemGroup.Annual_Income);
// if (totalAnnualIncome != null)
// {
// dr = dTable1.NewRow();
// dTable1.Rows.Add(this.getARow(dr, totalAnnualIncome, EmpNo));
// TotalAnnualExepted = dr;
// TotalAnnualExepted["LessExaempted"] = _TotalSalaryExempted;
// }
// dTable1.TableName = "PayrollDataSet_IncomeTax";
// orootDataset.Tables.Add(dTable1);
// // Crate Slab Data
// double ngrossTax = 0;
// PayrollDataSet.PayrollDataSet.IncomeTaxSlabDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxSlabDataTable();
// _InvestmentAmount = _taxParameter.MaxInvAmount;
// if (totalAnnualIncome != null)
// {
// ObjectsTemplate<TaxParameterSlab> empTaxSlabs = TaxParameter.CalculateTaxOnSlab(_taxParameter, _employee, totalAnnualIncome.TotalAmount);
// int index = 0;
// dr = null;
// foreach (TaxParameterSlab drr in empTaxSlabs)
// {
// dr = dTable.NewRow();
// dr["EmpID"] = nEmpID;
// dr["EmpNo"] = EmpNo;
// dr["CurrentRate"] = drr.TaxPercent.ToString() + "%";
// if (index == 0)
// dr["Parameter"] = "On First BDT-" + drr.IncomeAmount.ToString();
// else if (index + 1 == empTaxSlabs.Count)
// dr["Parameter"] = "On Remaining Balance";// + drr.IncomeAmount.ToString();
// else
// dr["Parameter"] = "On Next BDT-" + drr.IncomeAmount.ToString();
// dr["TaxableIncome"] = drr.SlabTaxableAmount.ToString();
// dr["IndividualTaxLiability"] = drr.SlabTaxAmount.ToString();
// index++;
// dTable.Rows.Add(dr);
// ngrossTax = ngrossTax + drr.SlabTaxAmount;
// }
// }
// dTable.TableName = "PayrollDataSet_IncomeTaxSlab";
// orootDataset.Tables.Add(dTable);
// //Create other items
// PayrollDataSet.PayrollDataSet.IncomeTaxOtherDataTable oDTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxOtherDataTable();
// // DataSet oIncomeTaxOth = IncomeTax.GetEmpIDforOthTax(dataFrom, nEmpID);
// DataRow oDRow = null;
// //IncomeTax oInvestment = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment,
// // (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment);
// //if (oInvestment != null)
// //{
// // oDRow = oDTable.NewRow();
// // oDRow["DataColumn1"] = oInvestment.Description;
// // oDRow["DataColumn2"] = "";
// // oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oInvestment.TotalAmount);
// // oDTable.Rows.Add(oDRow);
// //}
// IncomeTax investmentCapdo;
// if (_investmentwithoutPF == false)
// {
// investmentCapdo = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Annual_Income,
// (int)EnumIncomeTaxItemGroup.Annual_Income);
// if (investmentCapdo != null)
// _20Investment = (investmentCapdo.TotalAmount * _taxParameter.MaxInvestPercent) / 100;
// }
// else
// {
// investmentCapdo = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Annual_Salary_Income,
// (int)EnumIncomeTaxItemGroup.Annual_Salary_Income);
// if (investmentCapdo != null)
// _20Investment = (investmentCapdo.TotalAmount * _taxParameter.MaxInvestPercent) / 100;
// }
// IncomeTax acinvestment = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Investment_Actual,
// (int)EnumIncomeTaxItemGroup.Investment_Actual);
// if (acinvestment != null)
// _actualInvestment = acinvestment.TotalAmount;
// IncomeTax taxRebate = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Investment_Allowed,
// (int)EnumIncomeTaxItemGroup.Investment_Allowed);
// if (taxRebate != null)
// {
// _investmentAllowed = taxRebate.TotalAmount;
// string spf = "";
// IncomeTax pf = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Company_Contri_PF,
// (int)EnumIncomeTaxItemGroup.Company_Contri_PF);
// if (pf != null)
// {
// _pfInvestment = pf.TotalAmount;
// double npfamount = 0;
// double otherAmount = 0;
// IncomeTax actualInvestment = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Investment_Actual,
// (int)EnumIncomeTaxItemGroup.Investment_Actual);
// npfamount = (pf.TotalAmount * 2 > taxRebate.TotalAmount) ? taxRebate.TotalAmount : pf.TotalAmount * 2;
// if (actualInvestment == null)
// {
// otherAmount = taxRebate.TotalAmount - pf.TotalAmount * 2;
// if (otherAmount < 0) otherAmount = 0;
// _otherInvestment = otherAmount;
// }
// else
// {
// otherAmount = actualInvestment.TotalAmount;
// _otherInvestment = otherAmount;
// }
// if (ngrossTax <= 0) _otherInvestment = 0;
// // spf = "PF: " + GlobalFunctions.TakaFormat(npfamount) + ", Other: " + GlobalFunctions.TakaFormat(otherAmount);
// spf = "";
// }
// //oDRow = oDTable.NewRow();
// //oDRow["EmpID"] = nEmpID;
// //oDRow["EmpNo"] = EmpNo;
// //oDRow["DataColumn1"] = taxRebate.Description;
// //oDRow["DataColumn2"] = spf;
// //oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(taxRebate.TotalAmount);
// ////oDTable.Rows.Add(oDRow);
// }
// foreach (IncomeTax oItem in _incometaxes)
// {
// // Only "Tax Rebate on Investment" will show as requirement for GT
// if (oItem.Description.ToLower() == "Tax Rebate on Investment".ToLower())
// {
// if (oItem.Side == EnumIncomeTaxSide.Inc_GrossTax || oItem.Side == EnumIncomeTaxSide.Dec_GrossTax)
// {
// oDRow = oDTable.NewRow();
// oDRow["EmpID"] = nEmpID;
// oDRow["EmpNo"] = EmpNo;
// if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Tax_Credit_On_Investment || oItem.ItemGroup == EnumIncomeTaxItemGroup.Tax_Gross_OtherRebate)
// {
// if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Tax_Gross_OtherRebate)
// {
// oDRow["DataColumn1"] = "AIT for vehicale/others";
// }
// else
// oDRow["DataColumn1"] = oItem.Description;
// if (ngrossTax > 0)
// oDRow["DataColumn3"] = "(" + oItem.TotalAmount.ToString("#,##") + ")";
// else oDRow["DataColumn3"] = "(0)";
// }
// else
// {
// oDRow["DataColumn1"] = oItem.Description;
// oDRow["DataColumn3"] = oItem.TotalAmount.ToString("#,##");
// }
// oDRow["DataColumn2"] = "";
// oDTable.Rows.Add(oDRow);
// }
// }
// }
// IncomeTax oNetTaxPayable = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Net_Payable,
// (int)EnumIncomeTaxItemGroup.Net_Payable);
// if (oNetTaxPayable != null)
// {
// oDRow = oDTable.NewRow();
// oDRow["EmpID"] = nEmpID;
// oDRow["EmpNo"] = EmpNo;
// oDRow["DataColumn1"] = oNetTaxPayable.Description;
// oDRow["DataColumn2"] = "";
// oDRow["DataColumn3"] = oNetTaxPayable.TotalAmount.ToString("#,##");
// oDTable.Rows.Add(oDRow);
// }
// IncomeTax oTaxDeducted = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Tax_Deducted,
// (int)EnumIncomeTaxItemGroup.Tax_Deducted);
// // IncomeTax oTaxRefund = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Tax_Refund_On_Current_Year,
// //(int)EnumIncomeTaxItemGroup.Tax_Refund_On_Current_Year);
// if (_isPrvs)
// {
// if (oTaxDeducted != null)
// {
// //oDRow = oDTable.NewRow();
// //oDRow["EmpID"] = nEmpID;
// //oDRow["EmpNo"] = EmpNo;
// ////oDRow["DataColumn1"] = "Tax deducted from salary";
// //oDRow["DataColumn1"] = "Total Tax Paid to The Government";
// //oDRow["DataColumn2"] = "";
// //oDRow["DataColumn3"] = (oTaxDeducted.TotalAmount).ToString("#,##");
// //oDTable.Rows.Add(oDRow);
// }
// }
// else
// {
// if (oTaxDeducted != null)
// {
// //oDRow = oDTable.NewRow();
// //oDRow["EmpID"] = nEmpID;
// //oDRow["EmpNo"] = EmpNo;
// //oDRow["DataColumn1"] = "Tax paid up to previous month";
// //oDRow["DataColumn2"] = "";
// //oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oTaxDeducted.PreviousAmount);
// //oDTable.Rows.Add(oDRow);
// //oDRow = oDTable.NewRow();
// //oDRow["EmpID"] = nEmpID;
// //oDRow["EmpNo"] = EmpNo;
// //oDRow["DataColumn1"] = "Tax paid this month";
// //oDRow["DataColumn2"] = "";
// //oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oTaxDeducted.ThisMonthAmount);
// //oDTable.Rows.Add(oDRow);
// //oDRow = oDTable.NewRow();
// //oDRow["EmpID"] = nEmpID;
// //oDRow["EmpNo"] = EmpNo;
// //oDRow["DataColumn1"] = "Tax to be paid upto June";
// //oDRow["DataColumn2"] = "";
// //if (oNetTaxPayable != null)
// //{
// // oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oNetTaxPayable.TotalAmount - oTaxDeducted.TotalAmount);
// //}
// //oDTable.Rows.Add(oDRow);
// }
// }
// oDTable.TableName = "PayrollDataSet_IncomeTaxOther";
// orootDataset.Tables.Add(oDTable);
// //PayrollDataSet.PayrollDataSet.ITHeaderDataTable oMulIT = new Payroll.Report.PayrollDataSet.PayrollDataSet.ITHeaderDataTable();
// //Employee oEmp = Employee.Get(nEmpID);
// //oDRow = oMulIT.NewRow();
// //oDRow["EmpNo"] = oEmp.EmployeeNo;
// //oDRow["EmpName"] = oEmp.Name;
// //oDRow["TINNo"] = oEmp.TinNo;
// //oDRow["AssesmentYear"] = _taxParameter.AssessmentYear;
// //oDRow["FiscalYear"] = _taxParameter.FiscalYear;
// //oMulIT.Rows.Add(oDRow);
// //oMulIT.TableName = "PayrollDataSet_ITHeader";
// //orootDataset.Tables.Add(oMulIT);
// return orootDataset;
// }
// private DataRow getARow(DataRow orow, IncomeTax oItem, string EmpNo)
// {
// if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Annual_Salary_Income)
// {
// DataRow dr = orow;
// dr["EmpID"] = oItem.EmployeeID;
// dr["EmpNo"] = EmpNo;
// dr["ItemCode"] = oItem.ItemGroup;
// dr["ItemID"] = oItem.ItemID;
// dr["IncomeHead"] = oItem.Description;
// dr["AmountPerAnnum"] = GlobalFunctions.TakaFormat(_AmountPerAnnum); //oDRow["AmountPerannum"];
// dr["ThisMonth"] = GlobalFunctions.TakaFormat(_ThisMonthAmount);
// dr["PaidTillDate"] = GlobalFunctions.TakaFormat(_PaidTillDateAmount);//oDRow["PaidTillDate"];
// dr["Projected"] = GlobalFunctions.TakaFormat(_ProjectedAmount);
// dr["Position"] = oItem.Position;
// dr["Side"] = oItem.Side;
// dr["LessExaempted"] = "0";
// dr["RowSequence"] = oItem.Position;
// return dr;
// }
// else if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Annual_Income)
// {
// DataRow dr = orow;
// dr["EmpID"] = oItem.EmployeeID;
// dr["EmpNo"] = EmpNo;
// dr["ItemCode"] = oItem.ItemGroup;
// dr["ItemID"] = oItem.ItemID;
// dr["IncomeHead"] = oItem.Description;
// dr["AmountPerAnnum"] = GlobalFunctions.TakaFormat(_TAmountPerAnnum); //oDRow["AmountPerannum"];
// dr["ThisMonth"] = GlobalFunctions.TakaFormat(_TThisMonthAmount);
// dr["PaidTillDate"] = GlobalFunctions.TakaFormat(_TPaidTillDateAmount);//oDRow["PaidTillDate"];
// dr["Projected"] = GlobalFunctions.TakaFormat(_TProjectedAmount);
// dr["Position"] = oItem.Position;
// dr["Side"] = oItem.Side;
// dr["LessExaempted"] = "0";
// dr["RowSequence"] = oItem.Position;
// return dr;
// }
// else
// {
// DataRow dr = orow;
// dr["EmpID"] = oItem.EmployeeID;
// dr["EmpNo"] = EmpNo;
// dr["ItemCode"] = oItem.ItemGroup;
// dr["ItemID"] = oItem.ItemID;
// dr["IncomeHead"] = oItem.Description;
// dr["AmountPerAnnum"] = GlobalFunctions.TakaFormat(oItem.TotalAmount); //oDRow["AmountPerannum"];
// dr["ThisMonth"] = GlobalFunctions.TakaFormat(oItem.ThisMonthAmount);
// dr["PaidTillDate"] = GlobalFunctions.TakaFormat(oItem.PreviousAmount);//oDRow["PaidTillDate"];
// dr["Projected"] = GlobalFunctions.TakaFormat(oItem.ProjectedAmount);
// dr["Position"] = oItem.Position;
// dr["Side"] = oItem.Side;
// if (!(oItem.ItemGroup == EnumIncomeTaxItemGroup.Company_Contri_PF))
// {
// _AmountPerAnnum += oItem.TotalAmount;
// _ThisMonthAmount += oItem.ThisMonthAmount;
// _PaidTillDateAmount += oItem.PreviousAmount;
// _ProjectedAmount += oItem.ProjectedAmount;
// }
// _TAmountPerAnnum += oItem.TotalAmount;
// _TThisMonthAmount += oItem.ThisMonthAmount;
// _TPaidTillDateAmount += oItem.PreviousAmount;
// _TProjectedAmount += oItem.ProjectedAmount;
// dr["LessExaempted"] = "0";
// dr["RowSequence"] = oItem.Position;
// return dr;
// }
// }
// public byte[] ShowReport(DateTime salaryMonth2, string sEmpID2)
// {
// DataSet oFDST = new DataSet();
// _oGratuityParams = ESBDefinition.Get();
// Employee oEmployee = null;
// ObjectsTemplate<Employee> oEmps = new ObjectsTemplate<Employee>();
// oEmps = Employee.Get();
// List<Designation> oDesigs = Designation.Get(EnumStatus.Regardless);
// fReportViewer form = new fReportViewer();
// DateTime salaryMonth = salaryMonth2;
// string sEmpID = sEmpID2;
// ObjectsTemplate<SalaryProcess> oSaProcess = new ObjectsTemplate<SalaryProcess>();
// oSaProcess = SalaryProcess.Get(GlobalFunctions.LastDateOfMonth(salaryMonth));
// //bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
// DataSet oSalaryMonthlysGross = SalaryMonthly.GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new Payroll.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
// PayrollDataSet.PayrollDataSet.LoanDataDataTable loanDT = new Payroll.Report.PayrollDataSet.PayrollDataSet.LoanDataDataTable();
// //bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
// _dSalaryMonth = GlobalFunctions.LastDateOfMonth(salaryMonth);
// if (oSaProcess != null && oSaProcess.Count > 0 && oSalaryMonthlysGross.Tables[0].Rows.Count > 0)
// {
// if (oSaProcess[0].PaymentDate != DateTime.MinValue)
// {
// _dMonthEndDate = Convert.ToDateTime(oSaProcess[0].PaymentDate);
// }
// else
// {
// _dMonthEndDate = DateTime.MinValue;
// }
// }
// foreach (DataRow odRow in oSalaryMonthlysGross.Tables[1].Rows)
// {
// double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// if (dbl == 0)
// {
// continue;
// }
// DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
// if (oRow == null)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
// {
// oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// }
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
// {
// oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
// {
// double dArrear = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// oRow["Arrear"] = dArrear;
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
// {
// oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
// }
// }
// int nCount = 0;
// DataSet oSalaryMonthlysDeduct = SalaryMonthly.GetEmpPaySlipDeductForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo = "";
// DataRow[] odros = null;
// if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
// {
// employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// double dGratuityAmount = 0;
// double dPFAmount = 0;
// string sTEmpEmpNo = "";
// double nCurrPFAmount = 0;
// foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
// {
// double dbl = Convert.ToDouble(odRow["CHANGEDAMOUNT"].ToString());
// if (dbl == 0)
// {
// continue;
// }
// DataRow oRow = null;
// if (employeeNo != odRow["EMPLOYEENO"].ToString())
// {
// odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros.Length <= nCount)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// else oRow = odros[nCount];
// oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
// oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// oRow["DeducDescription"] = odRow["Description"];
// //if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.PF_Contribution))
// //{
// // oRow["DeducDescription"] = "PF Both Contribution";
// // oRow["DeducAmount"] = Convert.ToDouble(odRow["CHANGEDAMOUNT"]) * 2;
// // // oRow["Description"] = "PF Contribution (Co's)";
// // oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// //}
// //else
// //{
// // oRow["DeducDescription"] = odRow["Description"];
// // if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
// // oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// // //oRow["DeducDescription"] = odRow["Description"];
// //}
// //oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// if (sTEmpEmpNo == "" || sTEmpEmpNo != odRow["EMPLOYEENO"].ToString())
// {
// nCurrPFAmount = 0;
// dPFAmount = 0;
// oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// DataRow[] odrosPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEENO='" + odRow["EMPLOYEENO"].ToString() + "'");
// if (odrosPF.Length > 0)
// {
// DataRow oRowPF = odrosPF[0];
// nCurrPFAmount = Convert.ToDouble(oRowPF["CHANGEDAMOUNT"]);
// }
// if (oEmployee != null)
// {
// if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
// {
// dGratuityAmount = GetGratuityAmount(_oGratuityParams, oEmployee, salaryMonth);
// }
// else
// {
// dGratuityAmount = 0;
// }
// dPFAmount = GetPFAmount(oEmployee, salaryMonth);
// }
// }
// oRow["Gratuity"] = dGratuityAmount;
// double nServiceLength = 0;
// if (oEmployee != null)
// nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmployee);
// if (nServiceLength > 5)
// {
// //oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
// oRow["PF"] = dPFAmount + nCurrPFAmount;
// }
// else
// {
// oRow["PF"] = dPFAmount + nCurrPFAmount;
// }
// nCount = nCount + 1;
// employeeNo = odRow["EMPLOYEENO"].ToString();
// sTEmpEmpNo = odRow["EMPLOYEENO"].ToString();
// }
// nCount = 0;
// DataSet oSalaryMonthlysIncomeTax = SalaryMonthly.GetEmpPaySlipIncomeTaxAmountForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo1 = "";
// DataRow[] odros1 = null;
// if (oSalaryMonthlysIncomeTax.Tables[0].Rows.Count > 0)
// {
// employeeNo1 = oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlysIncomeTax.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
// {
// odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros1.Length <= nCount) continue;
// oRow = odros1[nCount];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Inc_Tax_Deduction))
// oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
// nCount = nCount + 1;
// employeeNo1 = odRow["EMPLOYEENO"].ToString();
// }
// nCount = 0;
// DataSet oSalaryMonthlysLaonAmount = SalaryMonthly.GetEmpPaySlipDeductForLR(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo12 = "";
// DataRow[] odros12 = null;
// if (oSalaryMonthlysLaonAmount.Tables[0].Rows.Count > 0)
// {
// employeeNo12 = oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros12 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo12 != odRow["EMPLOYEENO"].ToString())
// {
// odros12 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros12.Length <= nCount) continue;
// oRow = odros12[nCount];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Miscellaneous) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Remain_Balance))
// {
// oRow["LoanDescription"] = odRow["Description"];
// oRow["LoanAmount"] = odRow["CHANGEDAMOUNT"];
// }
// nCount = nCount + 1;
// employeeNo12 = odRow["EMPLOYEENO"].ToString();
// }
// bool isDesigFromEmp = ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
// foreach (DataRow oRow in PayslipData.Rows)
// {
// Employee oEmp = oEmps
// .Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
// .SingleOrDefault();
// if (oEmp != null)
// {
// if (isDesigFromEmp)
// {
// oRow["Designation"] = oEmp.DescriptionText;
// }
// else
// {
// Designation oDesg = oDesigs.Where(o => o.ID == oEmp.DesignationID).SingleOrDefault();
// if (oDesg != null)
// {
// oRow["Designation"] = oDesg.Name;
// }
// }
// }
// }
// loanDT.TableName = "PayrollDataSet_LoanData";
// PayslipData.TableName = "PayrollDataSet_Payslip";
// oFDST.Tables.Add(PayslipData);
// oFDST.Tables.Add(loanDT);
// return form.ShowDlgForPaySlipCiti2(null, oFDST);
// }
// public byte[] SKFExpencesPaySlip1(DateTime dDate, string sID)
// {
// fReportViewer form = new fReportViewer();
// DateTime salaryMonth = dDate;
// DateTime fromDate = GlobalFunctions.FirstDateOfMonth(salaryMonth);
// DateTime toDate = GlobalFunctions.LastDateOfMonth(salaryMonth);
// string sEmpID = sID;
// DataRow odr = null;
// string month = salaryMonth.ToString("MMM-yyyy");
// DataSet oDataset = new DataSet();
// DataSet oExpensesPSlipDSet = MiscellaneousDataset.GetExpensesPaySlipData(fromDate, toDate, sEmpID);
// PayrollDataSet.PayrollDataSet.SKFExpencesPaySlipDataTable skfExpTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.SKFExpencesPaySlipDataTable();
// foreach (DataRow odrow in oExpensesPSlipDSet.Tables[0].Rows)
// {
// odr = skfExpTable.NewRow();
// odr["EmpNo"] = odrow["EmployeeNo"];
// odr["EmpName"] = odrow["EmpName"];
// odr["Designation"] = odrow["Designation"];
// odr["Department"] = odrow["Department"];
// odr["AccountNo"] = odrow["OUTPAYACCOUNTNO"];
// odr["Tinno"] = odrow["TinNo"];
// odr["JoiningDate"] = odrow["JoiningDate"];
// odr["Grade"] = odrow["Grade"];
// if (odrow["PaymentMode"].Equals(1))
// {
// odr["PaymentMode"] = "CashPayment";
// }
// else if (odrow["PaymentMode"].Equals(2))
// {
// odr["PaymentMode"] = "BankTransfer";
// }
// else if (odrow["PaymentMode"].Equals(3))
// {
// odr["PaymentMode"] = "Provision";
// }
// if (!odrow.IsNull("Utility Expenses"))
// {
// odr["UtilityExp"] = odrow["Utility Expenses"];
// }
// if (!odrow.IsNull("Leave Fare Assistance Expense"))
// {
// odr["LFAExp"] = odrow["Leave Fare Assistance Expense"];
// }
// if (!odrow.IsNull("Medical Expenses"))
// {
// odr["MedicalExp"] = odrow["Medical Expenses"];
// }
// if (!odrow.IsNull("Servant Allowances"))
// {
// odr["ServantAllow"] = odrow["Servant Allowances"];
// }
// if (!odrow.IsNull("Car Allowances/ Expenses"))
// {
// odr["CarAllow"] = odrow["Car Allowances/ Expenses"];
// }
// if (!odrow.IsNull("Driver Allowances"))
// {
// odr["DriverAllow"] = odrow["Driver Allowances"];
// }
// if (!odrow.IsNull("Security Allowances"))
// {
// odr["SecurityAllow"] = odrow["Security Allowances"];
// }
// if (!odrow.IsNull("Workers Profit Participation Fund"))
// {
// odr["WPPFund"] = odrow["Workers Profit Participation Fund"];
// }
// if (!odrow.IsNull("Managers Telephone Expenses"))
// {
// odr["ManagerTelExp"] = odrow["Managers Telephone Expenses"];
// }
// if (!odrow.IsNull("Telephone Expenses (Mobile Bill)"))
// {
// odr["TelExp"] = odrow["Telephone Expenses (Mobile Bill)"];
// }
// if (!odrow.IsNull("Mobile Set"))
// {
// odr["MobileSet"] = odrow["Mobile Set"];
// }
// if (!odrow.IsNull("Group Insurance"))
// {
// odr["[GroupInsurance]"] = odrow["Group Insurance"];
// }
// if (!odrow.IsNull("Other Expenses"))
// {
// odr["OtherExp"] = odrow["Other Expenses"];
// }
// skfExpTable.Rows.Add(odr);
// }
// return form.ShowDlgForSkfExpensesPSlip1(skfExpTable, month);
// }
// public void BanglaPaySlip()
// {
// #region Initialize Components
// fReportViewer form = new fReportViewer();
// DateTime salaryMonth = _selectedParameter.FromDate.Value;
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// ObjectsTemplate<SalaryMonthly> salarymonthlies = SalaryMonthly.Get(sEmpID, GlobalFunctions.LastDateOfMonth(salaryMonth));
// DataSet oSalaryMonthlyDetails = SalaryMonthly.GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// List<AllowanceDeduction> oAllDeducts = AllowanceDeduction.Get(EnumStatus.Regardless);
// List<Leave> oLeaves = Leave.Get();
// List<Employee> oEmployees = Employee.GetByEmpIDs(sEmpID);
// DataRow oDR = null;
// double totalGross = 0.0;
// PayrollDataSet.PayrollDataSet.BanglaPaySlipDataTable banglaPaySlipData = new PayrollDataSet.PayrollDataSet.BanglaPaySlipDataTable();
// #region Calcullate Bangla Month
// string[] BanglaMonths = {"Rvbyqvwi","‡deªyqvix","gvP©","GwcÖj",
// "‡g","Ryb","RyjvB","AvMó",
// "‡m‡Þ¤^i","A‡±vei","b‡f¤^i","wW‡m¤^i"};
// string month = BanglaMonths[salaryMonth.Month - 1];
// #endregion
// //parameter = new ReportParameter("rptMonth", month);
// //parameters.Add(parameter);
// #endregion
// foreach (SalaryMonthly itemMonthly in salarymonthlies)
// {
// totalGross = 0.0;
// oDR = banglaPaySlipData.NewRow();
// oDR["SalaryMonth"] = salaryMonth;
// oDR["EmpNo"] = itemMonthly.Employee.EmployeeNo;
// oDR["Name"] = itemMonthly.Employee.Name;
// oDR["Grade"] = itemMonthly.Employee.Grade.Name;
// oDR["Designation"] = itemMonthly.Employee.Designation.Name;
// oDR["DOfJoining"] = itemMonthly.Employee.JoiningDate;
// #region Gross Payment
// oDR["Basic"] = itemMonthly.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Basic_Salary) +
// +itemMonthly.GetAmount(EnumSalaryGroup.Arrear, EnumSalaryItemCode.Basic_Salary);
// #region Calcullate Allowances
// // House rent code: 001
// AllowanceDeduction oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "001");
// oDR["HouseRent"] = oAllDeduct != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer) +
// itemMonthly.GetAmount(EnumSalaryGroup.Arrear, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer)
// : 0;
// // Conveyance code: 002
// oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "002");
// oDR["Transport"] = oAllDeduct != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer) +
// itemMonthly.GetAmount(EnumSalaryGroup.Arrear, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer)
// : 0;
// // medical code: 003
// oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "003");
// oDR["Medical"] = oAllDeduct != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer) +
// itemMonthly.GetAmount(EnumSalaryGroup.Arrear, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer)
// : 0;
// // FoodAllowance code: 004
// oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "004");
// oDR["Food"] = oAllDeduct != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer) +
// itemMonthly.GetAmount(EnumSalaryGroup.Arrear, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer)
// : 0;
// // Attendence Bonus code: 010
// oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "010");
// oDR["AttBon"] = oAllDeduct != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer) +
// itemMonthly.GetAmount(EnumSalaryGroup.Arrear, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer)
// : 0;
// // Conduct Bonus code: 011
// oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "011");
// oDR["ConductBonus"] = oAllDeduct != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer) +
// itemMonthly.GetAmount(EnumSalaryGroup.Arrear, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer)
// : 0;
// // Production Bonus code: 009
// oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "009");
// oDR["ProdBonus"] = oAllDeduct != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer) +
// itemMonthly.GetAmount(EnumSalaryGroup.Arrear, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer)
// : 0;
// #endregion
// totalGross = Convert.ToDouble(oDR["Basic"]) +
// Convert.ToDouble(oDR["HouseRent"]) +
// Convert.ToDouble(oDR["Medical"]) +
// Convert.ToDouble(oDR["Transport"]) +
// Convert.ToDouble(oDR["Food"]) +
// Convert.ToDouble(oDR["AttBon"]) +
// Convert.ToDouble(oDR["ConductBonus"]) +
// Convert.ToDouble(oDR["ProdBonus"]); // +Convert.ToDouble(oDR["SplAllow"]);
// oDR["MonthlyWages"] = totalGross;
// #endregion
// #region Day Calcullation
// oDR["WRDays"] = itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Total_Days);
// oDR["PRDays"] = itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Tot_Attend_Days);
// oDR["HolyDays"] = itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Total_HoliDays);
// oDR["DeducDays"] = itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Tot_UnauthLeave_Days);
// #endregion
// #region Leave Calcullation
// Leave currentLeave = null;
// currentLeave = oLeaves.SingleOrDefault(x => x.Code.ToUpper().Trim() == "CL");
// oDR["CLDays"] = currentLeave != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Leave_Days,
// currentLeave.ID.Integer)
// : 0;
// currentLeave = oLeaves.SingleOrDefault(x => x.Code.ToUpper().Trim() == "SL");
// oDR["SLDays"] = currentLeave != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Leave_Days,
// currentLeave.ID.Integer)
// : 0;
// currentLeave = oLeaves.SingleOrDefault(x => x.Code.ToUpper().Trim() == "EL");
// oDR["ELDays"] = currentLeave != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Leave_Days,
// currentLeave.ID.Integer)
// : 0;
// currentLeave = oLeaves.SingleOrDefault(x => x.Code.ToUpper().Trim() == "ML");
// oDR["MLDays"] = currentLeave != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Leave_Days,
// currentLeave.ID.Integer)
// : 0;
// currentLeave = oLeaves.SingleOrDefault(x => x.Code.ToUpper().Trim() == "PL");
// oDR["PLDays"] = currentLeave != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Leave_Days,
// currentLeave.ID.Integer)
// : 0;
// currentLeave = oLeaves.SingleOrDefault(x => x.Code.ToUpper().Trim() == "LWP");
// oDR["LWPDays"] = currentLeave != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Leave_Days,
// currentLeave.ID.Integer)
// : 0;
// currentLeave = oLeaves.SingleOrDefault(x => x.Code.ToUpper().Trim() == "L/OUT");
// oDR["LOUTDays"] = currentLeave != null ?
// itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Leave_Days,
// currentLeave.ID.Integer)
// : 0;
// oDR["MTRDays"] = 0; // ?? What is This
// #endregion
// #region Overtime
// oDR["OTHours"] = itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Over_Time_Hours);// (item.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Over_Time_Hours, 1) <= 52) ? item.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Over_Time_Hours, 1) : 52;
// oDR["OTPayable"] = itemMonthly.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Over_Time_Amount);
// oDR["OTRate"] = Convert.ToDouble(oDR["OTHours"]) > 0 ?
// Math.Round(Convert.ToDouble(oDR["OTPayable"]) / Convert.ToDouble(oDR["OTHours"]), 2)
// : 0.0;
// #endregion
// #region Deductions
// // variable used if muliple basic deduction exist
// double deductBasic = 0;
// // UnAuthorize Leave Basic Deduct
// deductBasic += itemMonthly
// .GetAmount(EnumSalaryGroup.UnauthLeave, EnumSalaryItemCode.Basic_Salary);
// oDR["DeductAmnt"] = deductBasic;
// oDR["DeductPF"] = Convert.ToDouble(oDR["Basic"]) * 0.08;
// oDR["DeductSalaryAdvance"] = 0.0;
// oDR["NetDeductAmnt"] = Convert.ToDouble(oDR["DeductAmnt"]) + Convert.ToDouble(oDR["DeductPF"]) +
// Convert.ToDouble(oDR["DeductSalaryAdvance"]);
// #endregion
// // Gross + Overtime - Deductions
// oDR["NetWages"] = Convert.ToDouble(oDR["MonthlyWages"]) + Convert.ToDouble(oDR["OTPayable"])
// - Convert.ToDouble(oDR["NetDeductAmnt"]);
// oDR["ProdBonusDescription"] = string.Empty;
// if (Convert.ToDouble(oDR["ProdBonus"]) > 0)
// {
// ProdBonusProcessEmp oPREmp = ProdBonusProcess.GetProdBonusEmp(itemMonthly.EmployeeID, salaryMonth.LastDateOfMonth());
// oDR["ProdBonusDescription"] = oPREmp.Description;
// }
// banglaPaySlipData.Rows.Add(oDR);
// }
// form.ShowDlgForBanglaPaySlipOverAllSummary(_selectedParameter.ReportItem, banglaPaySlipData, month);
// }
// public void ShowReportCiti1()
// {
// _oGratuityParams = ESBDefinition.Get();
// Employee oEmployee = null;
// ObjectsTemplate<Employee> oEmps = new ObjectsTemplate<Employee>();
// oEmps = Employee.Get();
// ObjectsTemplate<LoanSchedule> oLoanScheduls = new ObjectsTemplate<LoanSchedule>();
// oLoanScheduls = LoanSchedule.Get();
// //ObjectsTemplate<LoanIssue> oLoanIssues = new ObjectsTemplate<LoanIssue>();
// //oLoanIssues = LoanIssue.GetE Get();
// fReportViewer form = new fReportViewer();
// DateTime salaryMonth = _selectedParameter.FromDate.Value;
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// SalaryProcess oSaProcess = new SalaryProcess();
// //bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
// DataSet oSalaryMonthlysGross = SalaryMonthly.GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new Payroll.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
// //bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
// foreach (DataRow odRow in oSalaryMonthlysGross.Tables[0].Rows)
// {
// DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
// if (oRow == null)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
// oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
// oRow["Arrear"] = odRow["CHANGEDAMOUNT"];
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
// oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
// }
// int nCount = 0;
// DataSet oSalaryMonthlysDeduct = SalaryMonthly.GetEmpPaySlipDeductForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo = "";
// DataRow[] odros = null;
// if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
// {
// employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// //if(oSalaryMonthlysDeduct.Tables[0].Rows.Count>oSalaryMonthlysGross.Tables[0].Rows.Count)
// //{
// // odros=new DataRow[oSalaryMonthlysDeduct.Tables[0].Rows.Count];
// //}
// foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo != odRow["EMPLOYEENO"].ToString())
// {
// odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros.Length <= nCount)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// else oRow = odros[nCount];
// //if (odros.Length <= nCount) continue;
// //oRow = odros[nCount];
// oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
// oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// //GetGratuityAmount(_oGratuityParams, oEmployee);
// // GetPFAmount(oEmployee);
// //Gratuity
// if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
// {
// oRow["Gratuity"] = GetGratuityAmount(_oGratuityParams, oEmployee, salaryMonth);
// }
// else
// {
// oRow["Gratuity"] = 0;
// }
// oRow["PF"] = GetPFAmount(oEmployee, salaryMonth);
// #region Loan Issue
// ////Personal Loan
// //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Monthly_Installment) && ((Convert.ToInt32(odRow["ItemID"]) == 3)))
// //{
// // loanAmounn = 0.0;
// // actuInterest = 0.0;
// // principleAmount = 0.0;
// // interest = 0.0;
// // balance = 0.0;
// // sattelmentAmount = 0.0;
// // LoanIssue oLIssue=LoanIssue.GetExistingLoan(ID.FromInteger(Convert.ToInt32(odRow["ItemID"])),oEmployee.ID);
// // //LoanIssue oLIssue = oLoanIssues.Find(delegate(LoanIssue item1) { return oEmployee.ID == item1.EmployeeID && item1.LoanID == ID.FromInteger(Convert.ToInt32(odRow["ItemID"])); });
// // if (oLIssue != null)
// // {
// // loanAmounn = oLIssue.LoanAmount;
// // List<LoanSchedule> oLSS = oLoanScheduls.FindAll(delegate(LoanSchedule oitem) { return oitem.LoanIssueID == oLIssue.ID; });
// // if (oLSS.Count>0)
// // {
// // List<LoanSchedule> oBeforeSMonths = oLSS.FindAll(delegate(LoanSchedule oitem) { return oitem.DueInstallmentDate <= GlobalFunctions.LastDateOfMonth(salaryMonth); });
// // foreach (LoanSchedule oScedule in oBeforeSMonths)
// // {
// // actuInterest = actuInterest + oScedule.ActualInterest;
// // principleAmount = principleAmount + oScedule.InstallmentPrincipal;
// // interest = interest + oScedule.InstallmentInterest;
// // balance = balance + oScedule.OpeningBalance;
// // //oTemLoanSchedule.Add(oScedule);
// // }
// // }
// // sattelmentAmount = (loanAmounn + actuInterest) - (principleAmount + interest);
// // }
// // oRow["PersonalLoan"] = sattelmentAmount;//odRow["CHANGEDAMOUNT"];
// //}
// //Vehicle Loan
// //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Monthly_Installment && (Convert.ToInt32(odRow["ItemID"]) == 4)))
// //{
// // loanAmounn = 0.0;
// // actuInterest = 0.0;
// // principleAmount = 0.0;
// // interest = 0.0;
// // balance = 0.0;
// // sattelmentAmount = 0.0;
// // LoanIssue oLIssue=LoanIssue.GetExistingLoan(ID.FromInteger(Convert.ToInt32(odRow["ItemID"])),oEmployee.ID);
// // //LoanIssue oLIssue = oLoanIssues.Find(delegate(LoanIssue item1) { return oEmployee.ID == item1.EmployeeID && item1.LoanID == ID.FromInteger(Convert.ToInt32(odRow["ItemID"])); });
// // if (oLIssue != null)
// // {
// // loanAmounn = oLIssue.LoanAmount;
// // List<LoanSchedule> oLSS = oLoanScheduls.FindAll(delegate(LoanSchedule oitem) { return oitem.LoanIssueID == oLIssue.ID; });
// // if (oLSS.Count > 0)
// // {
// // List<LoanSchedule> oBeforeSMonths = oLSS.FindAll(delegate(LoanSchedule oitem) { return oitem.DueInstallmentDate <= GlobalFunctions.LastDateOfMonth(salaryMonth); });
// // foreach (LoanSchedule oScedule in oBeforeSMonths)
// // {
// // actuInterest = actuInterest + oScedule.ActualInterest;
// // principleAmount = principleAmount + oScedule.InstallmentPrincipal;
// // interest = interest + oScedule.InstallmentInterest;
// // balance = balance + oScedule.OpeningBalance;
// // //oTemLoanSchedule.Add(oScedule);
// // }
// // }
// // sattelmentAmount = (loanAmounn + actuInterest) - (principleAmount + interest);
// // }
// // oRow["VechileLoan"] = sattelmentAmount;//odRow["CHANGEDAMOUNT"];
// //}
// //House Loan
// //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Monthly_Installment && (Convert.ToInt32(odRow["ItemID"]) == 2)))
// //{
// // loanAmounn = 0.0;
// // actuInterest = 0.0;
// // principleAmount = 0.0;
// // interest = 0.0;
// // balance = 0.0;
// // sattelmentAmount = 0.0;
// // LoanIssue oLIssue=LoanIssue.GetExistingLoan(ID.FromInteger(Convert.ToInt32(odRow["ItemID"])),oEmployee.ID);
// // //LoanIssue oLIssue = oLoanIssues.Find(delegate(LoanIssue item1) { return oEmployee.ID == item1.EmployeeID && item1.LoanID == ID.FromInteger(Convert.ToInt32(odRow["ItemID"])); });
// // if (oLIssue != null)
// // {
// // loanAmounn = oLIssue.LoanAmount;
// // List<LoanSchedule> oLSS = oLoanScheduls.FindAll(delegate(LoanSchedule oitem) { return oitem.LoanIssueID == oLIssue.ID; });
// // if (oLSS.Count > 0)
// // {
// // List<LoanSchedule> oBeforeSMonths = oLSS.FindAll(delegate(LoanSchedule oitem) { return oitem.DueInstallmentDate <= GlobalFunctions.LastDateOfMonth(salaryMonth); });
// // foreach (LoanSchedule oScedule in oBeforeSMonths)
// // {
// // actuInterest = actuInterest + oScedule.ActualInterest;
// // principleAmount = principleAmount + oScedule.InstallmentPrincipal;
// // interest = interest + oScedule.InstallmentInterest;
// // balance = balance + oScedule.OpeningBalance;
// // //oTemLoanSchedule.Add(oScedule);
// // }
// // }
// // sattelmentAmount = (loanAmounn + actuInterest) - (principleAmount + interest);
// // }
// // oRow["HomeLoan"] = sattelmentAmount;//odRow["CHANGEDAMOUNT"];
// //}
// //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.PF_Contribution && (Convert.ToInt32(odRow["ItemID"]) == (int)EnumSalaryItemCode.PF_Contribution)))
// //{
// // oRow["PF"] = odRow["CHANGEDAMOUNT"];
// //}
// #endregion
// nCount = nCount + 1;
// employeeNo = odRow["EMPLOYEENO"].ToString();
// }
// nCount = 0;
// DataSet oSalaryMonthlysIncomeTax = SalaryMonthly.GetEmpPaySlipIncomeTaxAmountForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo1 = "";
// DataRow[] odros1 = null;
// if (oSalaryMonthlysIncomeTax.Tables[0].Rows.Count > 0)
// {
// employeeNo1 = oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlysIncomeTax.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
// {
// odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros1.Length <= nCount) continue;
// oRow = odros1[nCount];
// //oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Inc_Tax_Deduction))
// oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
// nCount = nCount + 1;
// employeeNo = odRow["EMPLOYEENO"].ToString();
// }
// nCount = 0;
// DataSet oSalaryMonthlysLaonAmount = SalaryMonthly.GetEmpPaySlipDeductForLR(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo12 = "";
// DataRow[] odros12 = null;
// if (oSalaryMonthlysLaonAmount.Tables[0].Rows.Count > 0)
// {
// employeeNo12 = oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros12 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo12 != odRow["EMPLOYEENO"].ToString())
// {
// odros12 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros12.Length <= nCount) continue;
// oRow = odros12[nCount];
// //oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Miscellaneous) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Remain_Balance))
// {
// oRow["LoanDescription"] = odRow["Description"];
// oRow["LoanAmount"] = odRow["CHANGEDAMOUNT"];
// }
// nCount = nCount + 1;
// employeeNo = odRow["EMPLOYEENO"].ToString();
// }
// //if (IsApproved)
// //{
// form.ShowDlgForPaySlipCiti(_selectedParameter.ReportItem, PayslipData);
// //}
// //else
// //{
// // MessageBox.Show("This salary process is not approve for the month of " + salaryMonth.ToString("MMM yyyy"), "Salary Approved", MessageBoxButtons.OK, MessageBoxIcon.Information);
// //}
// }
// public void ReportOverAllSummeryForManagement()
// {
// fReportViewer form = new fReportViewer();
// DateTime salaryMonth = _selectedParameter.FromDate.Value;
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// string[] sEmp = sEmpID.Split(new char[] { ',' });
// int nTotalEmp = sEmp.Count();
// int nCount = 0;
// // int noofCashPayment = 0;
// DataSet oSalaryMonthlys = SalaryMonthly.GetEmpOverAllSummaryGross(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// // DataSet cashpaymentNo = MiscellaneousDataset.GetCashPaymentSummaryData(GlobalFunctions.LastDateOfMonth(salaryMonth));
// PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable PayslipData = new Payroll.Report.PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable();
// PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable deducDataTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable();
// foreach (DataRow odRow in oSalaryMonthlys.Tables[0].Rows)
// {
// DataRow oRow = this.GetItemForOverAll(PayslipData, (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
// if (oRow == null)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMergeForOverAll(oRow, odRow, nTotalEmp, salaryMonth);
// nCount = nCount + 1;
// PayslipData.Rows.Add(oRow);
// }
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
// {
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == 1 && Convert.ToInt32(odRow["ITEMCODE"]) == -113 && Convert.ToInt32(odRow["ITEMID"]) == 36) || (Convert.ToInt32(odRow["ITEMGROUP"]) == 1 && Convert.ToInt32(odRow["ITEMCODE"]) == -113 && Convert.ToInt32(odRow["ITEMID"]) == 144))
// {
// oRow["PPAmount"] = odRow["Amount"];
// oRow["Earnings"] = odRow["Amount"];
// }
// else {
// oRow["Earnings"] = odRow["Amount"];
// }
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
// {
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == 8 && Convert.ToInt32(odRow["ITEMCODE"]) == -113 && Convert.ToInt32(odRow["ITEMID"]) == 36) || (Convert.ToInt32(odRow["ITEMGROUP"]) == 8 && Convert.ToInt32(odRow["ITEMCODE"]) == -113 && Convert.ToInt32(odRow["ITEMID"]) == 144))
// {
// oRow["PPAmount"] = odRow["Amount"];
// oRow["Arrear"] = odRow["Amount"];
// }
// else {
// oRow["Arrear"] = odRow["Amount"];
// }
// }
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
// oRow["UnAuthLeave"] = odRow["Amount"];
// }
// oSalaryMonthlys = SalaryMonthly.GetEmpOverAllSummaryDeduct(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// // noofCashPayment = cashpaymentNo.Tables[0].Rows.Count;
// int deductRowCount = oSalaryMonthlys.Tables[0].Rows.Count;
// int addedDeductRowCount = 0;
// try
// {
// foreach (DataRow odRow in oSalaryMonthlys.Tables[0].Rows)
// {
// if (deductRowCount <= nCount)
// {
// DataRow oRow = PayslipData.Rows[addedDeductRowCount];
// if (Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ITEMCODE"]) == -118 && Convert.ToInt32(odRow["ITEMID"]) == 2)
// {//Religious Principle
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -119 && Convert.ToInt32(odRow["ItemID"]) == 2)
// {//Religious Interest
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -118 && Convert.ToInt32(odRow["ItemID"])== 1)
// {//House Rent Advance Principle
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -119 && Convert.ToInt32(odRow["ItemID"]) == 1)
// {//House Rent Advance Interest
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -118 && Convert.ToInt32(odRow["ItemID"]) == 4)
// {//House Building Principle
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -119 && Convert.ToInt32(odRow["ItemID"]) == 4)
// {//House Building Interest
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -118 && Convert.ToInt32(odRow["ItemID"]) == 8)
// {//Pre Leave Pay Principle
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -119 && Convert.ToInt32(odRow["ItemID"]) == 8)
// {//Pre Leave Pay Interest
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -118 && Convert.ToInt32(odRow["ItemID"]) == 21)
// {//Co-Operative Principle
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -119 && Convert.ToInt32(odRow["ItemID"]) == 21)
// {//Co-Operative interest
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToString(odRow["DESCRIPTION"]) == "WPPF")
// {
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToString(odRow["DESCRIPTION"]) == "PLP")
// {
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToString(odRow["DESCRIPTION"]) == "Flood/Cyclone")
// {
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else if (Convert.ToString(odRow["DESCRIPTION"]) == "Bank EMI")
// {
// oRow["LoanName"] = odRow["DESCRIPTION"];
// oRow["LoanAmount"] = odRow["Amount"];
// }
// else
// {
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -115 && Convert.ToInt32(odRow["ItemID"]) == 117) || ((Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -115 && Convert.ToInt32(odRow["ItemID"]) == 121)) || ((Convert.ToInt32(odRow["ITEMGROUP"]) == 3 && Convert.ToInt32(odRow["ItemCode"]) == -115 && Convert.ToInt32(odRow["ItemID"]) == 122)))
// {
// oRow["SCIAmount"] = odRow["Amount"];
// oRow["DeducDescription"] = odRow["Description"];
// oRow["DeducAmount"] = odRow["Amount"];
// }
// else
// {
// oRow["DeducDescription"] = odRow["Description"];
// oRow["DeducAmount"] = odRow["Amount"];
// }
// }
// deductRowCount--;
// addedDeductRowCount++;
// }
// else
// {
// DataRow oRow = PayslipData.NewRow();
// oRow["DeducDescription"] = odRow["Description"];
// oRow["DeducAmount"] = odRow["Amount"];
// deductRowCount--;
// PayslipData.Rows.Add(oRow);
// }
// }
// }
// catch (Exception ex)
// {
// throw new Exception(ex.Message);
// }
// form.ShowDlgForPaySlipOverAllSummary(_selectedParameter.ReportItem, PayslipData);
// }
// public void ReportOverAllSummeryForNonManagement()
// {
// fReportViewer form = new fReportViewer();
// DateTime salaryMonth = _selectedParameter.FromDate.Value;
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// string[] sEmp = sEmpID.Split(new char[] { ',' });
// int nTotalEmp = sEmp.Count();
// int nCount = 0;
// DataSet oSalaryMonthlys = SalaryMonthly.GetEmpOverAllSummaryGross(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// _hourTable = oSalaryMonthlys.Tables[1];
// PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable PayslipData = new Payroll.Report.PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable();
// PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable deducDataTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.OverAllSummaryDataTable();
// foreach (DataRow odRow in oSalaryMonthlys.Tables[0].Rows)
// {
// DataRow oRow = this.GetItemForOverAll(PayslipData, (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
// if (oRow == null)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMergeForOverAll(oRow, odRow, nTotalEmp, salaryMonth);
// nCount = nCount + 1;
// PayslipData.Rows.Add(oRow);
// }
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
// oRow["Earnings"] = odRow["Amount"];
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
// oRow["Arrear"] = odRow["Amount"];
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
// oRow["UnAuthLeave"] = odRow["Amount"];
// }
// oSalaryMonthlys = SalaryMonthly.GetEmpOverAllSummaryDeduct(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// int deductRowCount = oSalaryMonthlys.Tables[0].Rows.Count;
// int addedDeductRowCount = 0;
// try
// {
// foreach (DataRow odRow in oSalaryMonthlys.Tables[0].Rows)
// {
// if (deductRowCount <= nCount)
// {
// DataRow oRow = PayslipData.Rows[addedDeductRowCount];
// oRow["DeducDescription"] = odRow["DESCRIPTION"];
// oRow["DeducAmount"] = odRow["Amount"];
// deductRowCount--;
// addedDeductRowCount++;
// }
// else
// {
// DataRow oRow = PayslipData.NewRow();
// oRow["DeducDescription"] = odRow["Description"];
// oRow["DeducAmount"] = odRow["Amount"];
// deductRowCount--;
// PayslipData.Rows.Add(oRow);
// }
// }
// }
// catch (Exception ex)
// {
// throw new Exception(ex.Message);
// }
// form.ShowDlgForPaySlipOverAllSummary(_selectedParameter.ReportItem, PayslipData);
// }
// public void ReportOverAllSummary()
// {
// if (Payroll.BO.SystemInformation.CurrentSysInfo.PayrollTypeID.Integer == 1)
// {
// ReportOverAllSummeryForManagement();
// }
// else
// {
// ReportOverAllSummeryForNonManagement();
// }
// }
// }
//}
#endregion