CEL_Payroll/Payroll.Report/Class/PaySlip.cs

3402 lines
154 KiB
C#
Raw Permalink Normal View History

2024-09-17 14:30:13 +06:00
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Payroll.BO;
using Ease.CoreV35.Model;
using Microsoft.Reporting.WinForms;
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;
DateTime _fiscalyearStart;
DateTime _SalaryMonth;
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["LName"] = source["LName"];
destination["JoiningDate"] = source["JoiningDate"];
destination["BName"] = source["BName"];
destination["REMARKS"] = source["REMARKS"];
destination["ActualBasic"] = source["ActualBasic"];
destination["TINNo"] = source["TINNo"];
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";
}
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["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"];
destination["TINNo"] = source["TINNo"];
destination["REMARKS"] = source["REMARKS"];
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";
}
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 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 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 GetItem2(DataTable Source, string sEmpNo, EnumSalaryGroup groupCode, EnumSalaryItemCode itemCode, int ITemID,string sDescription)
{
foreach (DataRow odRow in Source.Rows)
{
if (Convert.ToString(odRow["EMPLOYEENO"]) == sEmpNo &&
Convert.ToInt32(odRow["ItemCode"]) == (int)itemCode && Convert.ToInt32(odRow["ItemID"]) == ITemID
&& odRow["Description"].ToString().Replace(" hour", "").Trim() == sDescription)
{
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;
}
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);
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 = 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 ShowReport()
{
DataSet dBasicInfoDset = null;
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);
DataRow oRow = null;
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);
dBasicInfoDset = Employee.GetEmpBasicInfoForPSlipNew(sEmpID, GlobalFunctions.LastDateOfMonth(salaryMonth));
DataSet oSalaryMonthlysGross = SalaryMonthly.GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
DataSet oSalaryMonthlysDeduct = SalaryMonthly.GetEmpPaySlipDeductForOthers(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));
DataTable basicInfo = new PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable();
_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;
}
if ((EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]) == EnumSalaryItemCode.Over_Time_Amount)
oRow = this.GetItem2(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]), odRow["Description"].ToString().Trim());
else
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 ((EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]) == EnumSalaryItemCode.Over_Time_Amount)
{
DataRow oRow6 = this.GetItem2(oSalaryMonthlysGross.Tables[1], Convert.ToString(odRow["EMPLOYEENO"]), EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Over_Time_Hours, Convert.ToInt32(odRow["ItemID"]), odRow["Description"].ToString().Replace(" hour","").Trim());
if (oRow6 != null)
{
if (oRow["Description"].ToString().IndexOf('[') < 0)
oRow["Description"] += " [" + Convert.ToDouble(oRow6["CHANGEDAMOUNT"]).ToString("#") + " Hours]";
}
}
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
{
if (oRow["Earning"].ToString() != "" && (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"])!=EnumSalaryItemCode.Over_Time_Amount)
{
oRow["Earning"] = Convert.ToDouble(oRow["Earning"]) + Convert.ToDouble(odRow["CHANGEDAMOUNT"]);
}
else
{
oRow["Earning"] = odRow["CHANGEDAMOUNT"];
}
}
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions) && (Convert.ToInt32(odRow["ITEMID"]) == (int)EnumSalaryItemCode.PF_Contribution))
{
if (oRow["Earning"].ToString() != "")
{
oRow["Earning"] = Convert.ToDouble(oRow["Earning"]) + (Convert.ToDouble(odRow["CHANGEDAMOUNT"]));
oRow["Description"] = "Company PF Contribution";
}
else
{
oRow["Earning"] = Convert.ToDouble(odRow["CHANGEDAMOUNT"]);
oRow["Description"] = "Company PF Contribution";
}
}
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"];
}
}
//DataRow[] odrowsPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEEID='" + Convert.ToInt32(sEmpID) + "'");
//if (odrowsPF.Length > 0)
//{
// DataRow orowPF = odrowsPF[0];
// if (Convert.ToDouble( orowPF["CHANGEDAMOUNT"].ToString()) >0)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, orowPF);
// oRow["Description"] = "Company PF Contribution";
// oRow["Earning"] = Convert.ToDouble(orowPF["CHANGEDAMOUNT"]);
// PayslipData.Rows.Add(oRow);
// }
//}
int nCount = 0;
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;
}
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))
{
if (oRow["DeducDescription"].ToString().ToLower() == "pf contribution")
oRow["DeducAmount"] = Convert.ToDouble(odRow["CHANGEDAMOUNT"]) * 2;
else
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"]) * 2;
}
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)
{
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)
{
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 row in PayslipData.Rows)
{
Employee oEmp = oEmps
.Where(o => o.EmployeeNo.ToUpper().Trim() == row["EMPLOYEENO"].ToString().ToUpper().Trim())
.SingleOrDefault();
if (oEmp != null)
{
if (isDesigFromEmp)
{
row["Designation"] = oEmp.DescriptionText;
}
else
{
Designation oDesg = oDesigs.Where(o => o.ID == oEmp.DesignationID).SingleOrDefault();
if (oDesg != null)
{
row["Designation"] = oDesg.Name;
}
}
}
}
basicInfo = dBasicInfoDset.Tables[0];
basicInfo.TableName = "BasicInfo";
//loanDT.TableName = "PayrollDataSet_LoanData";
//PayslipData.TableName = "PayrollDataSet_Payslip";
//oFDST.Tables.Add(PayslipData);
//oFDST.Tables.Add(loanDT);
//form.ShowDlgForPaySlipCiti1(_selectedParameter.ReportItem, oFDST);
DataSet dsSubReport = new DataSet();
PayslipData.TableName = "SalaryMonthlysGross";
dsSubReport.Tables.Add(PayslipData);
form.ShowDlgForNewPaySlip(_selectedParameter.ReportItem, basicInfo, dsSubReport, salaryMonth.ToString("MMMM yyyy"));
}
public byte[] MailReport(DateTime salaryMonth2, string sEmpID2)
{
DataSet dBasicInfoDset = null;
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);
DataRow oRow = null;
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);
dBasicInfoDset = Employee.GetEmpBasicInfoForPSlipNew(sEmpID, GlobalFunctions.LastDateOfMonth(salaryMonth));
DataSet oSalaryMonthlysGross = SalaryMonthly.GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
DataSet oSalaryMonthlysDeduct = SalaryMonthly.GetEmpPaySlipDeductForOthers(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));
DataTable basicInfo = new PayrollDataSet.PayrollDataSet.PayslipBasicInfoDataTable();
_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;
}
if ((EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]) == EnumSalaryItemCode.Over_Time_Amount)
oRow = this.GetItem2(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]), odRow["Description"].ToString().Trim());
else
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 ((EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]) == EnumSalaryItemCode.Over_Time_Amount)
{
DataRow oRow6 = this.GetItem2(oSalaryMonthlysGross.Tables[1], Convert.ToString(odRow["EMPLOYEENO"]), EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Over_Time_Hours, Convert.ToInt32(odRow["ItemID"]), odRow["Description"].ToString().Replace(" hour", "").Trim());
if (oRow6 != null)
{
if (oRow["Description"].ToString().IndexOf('[') < 0)
oRow["Description"] += " [" + Convert.ToDouble(oRow6["CHANGEDAMOUNT"]).ToString("#") + " Hours]";
}
}
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
{
if (oRow["Earning"].ToString() != "" && (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]) != EnumSalaryItemCode.Over_Time_Amount)
{
oRow["Earning"] = Convert.ToDouble(oRow["Earning"]) + Convert.ToDouble(odRow["CHANGEDAMOUNT"]);
}
else
{
oRow["Earning"] = odRow["CHANGEDAMOUNT"];
}
}
if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions) && (Convert.ToInt32(odRow["ITEMID"]) == (int)EnumSalaryItemCode.PF_Contribution))
{
if (oRow["Earning"].ToString() != "")
{
oRow["Earning"] = Convert.ToDouble(oRow["Earning"]) + (Convert.ToDouble(odRow["CHANGEDAMOUNT"]));
oRow["Description"] = "Company PF Contribution";
}
else
{
oRow["Earning"] = Convert.ToDouble(odRow["CHANGEDAMOUNT"]);
oRow["Description"] = "Company PF Contribution";
}
}
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"];
}
}
//DataRow[] odrowsPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEEID='" + Convert.ToInt32(sEmpID) + "'");
//if (odrowsPF.Length > 0)
//{
// DataRow orowPF = odrowsPF[0];
// if (Convert.ToDouble( orowPF["CHANGEDAMOUNT"].ToString()) >0)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, orowPF);
// oRow["Description"] = "Company PF Contribution";
// oRow["Earning"] = Convert.ToDouble(orowPF["CHANGEDAMOUNT"]);
// PayslipData.Rows.Add(oRow);
// }
//}
int nCount = 0;
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;
}
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))
{
if (oRow["DeducDescription"].ToString().ToLower() == "pf contribution")
oRow["DeducAmount"] = Convert.ToDouble(odRow["CHANGEDAMOUNT"]) * 2;
else
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"]) * 2;
}
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)
{
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)
{
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 row in PayslipData.Rows)
{
Employee oEmp = oEmps
.Where(o => o.EmployeeNo.ToUpper().Trim() == row["EMPLOYEENO"].ToString().ToUpper().Trim())
.SingleOrDefault();
if (oEmp != null)
{
if (isDesigFromEmp)
{
row["Designation"] = oEmp.DescriptionText;
}
else
{
Designation oDesg = oDesigs.Where(o => o.ID == oEmp.DesignationID).SingleOrDefault();
if (oDesg != null)
{
row["Designation"] = oDesg.Name;
}
}
}
}
basicInfo = dBasicInfoDset.Tables[0];
basicInfo.TableName = "BasicInfo";
//loanDT.TableName = "PayrollDataSet_LoanData";
//PayslipData.TableName = "PayrollDataSet_Payslip";
//oFDST.Tables.Add(PayslipData);
//oFDST.Tables.Add(loanDT);
//form.ShowDlgForPaySlipCiti1(_selectedParameter.ReportItem, oFDST);
DataSet dsSubReport = new DataSet();
PayslipData.TableName = "SalaryMonthlysGross";
dsSubReport.Tables.Add(PayslipData);
return form.MailNewPaySlip(null, basicInfo, dsSubReport, salaryMonth.ToString("MMMM yyyy"));
}
public void ShowReport(SalaryMonthly oSalMonthly)
{
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);
List<Department> oDepts = Department.Get();
List<Location> oLocs = Location.Get();
List<Grade> oGrades = Grade.Get(EnumStatus.Regardless);
List<Category> oCategories = Category.Get(EnumStatus.Regardless);
List<Branch> oBranchs = Branch.Get(EnumStatus.Regardless);
// List<Department> oDepts = Department.Get();
fReportViewer form = new fReportViewer();
DateTime salaryMonth = oSalMonthly.SalaryMonth;
string sEmpID = oSalMonthly.EmployeeID.Integer.ToString();
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);
Employee emp = oSalMonthly.Employee;
Designation deg = oDesigs.Find(x => x.ID == oSalMonthly.DesignationID);
Department dep = oDepts.Find(x => x.ID == oSalMonthly.DepartmentID);
Location loc = oLocs.Find(x => x.ID == oSalMonthly.LocationID);
Grade grd = oGrades.Find(x => x.ID == oSalMonthly.GradeID);
Category cat = oCategories.Find(x => x.ID == oSalMonthly.CategoryID);
Branch branch = oBranchs.Find(x => x.ID == oSalMonthly.BranchID);
try
{
foreach (SalaryMonthlyDetail smd in oSalMonthly.Details)
{
if (smd.itemGroupCode == EnumSalaryGroup.Gross || smd.itemGroupCode == EnumSalaryGroup.UnauthLeave || smd.itemGroupCode == EnumSalaryGroup.Arrear)
{
oSalaryMonthlysGross.Tables[0].Rows.Add(
emp.Name,
emp.EmployeeNo,
grd.Name,
deg.Name,
loc.Name,
dep.Name,
branch.Name,
oSalMonthly.ThisMonthBasic,
emp.PaymentMode,
oSalMonthly.AccountNo,
oSalMonthly.SalaryMonth,
oSalMonthly.Remarks,
smd.Description,
smd.itemGroupCode,
oSalMonthly.IsFinalized,
smd.ChangedAmount,
smd.ItemCode,
smd.ItemID,
cat.Name,
emp.JoiningDate,
emp.TinNo,
oSalMonthly.DepartmentID.Integer
);
}
}
}
catch (Exception exp)
{
}
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[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.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.AddYears(-80)), sEmpID);
foreach (SalaryMonthlyDetail smd in oSalMonthly.Details)
{
if (smd.itemGroupCode == EnumSalaryGroup.Deductions)
{
oSalaryMonthlysDeduct.Tables[0].Rows.Add(
emp.Name,
emp.ID.Integer,
emp.EmployeeNo,
emp.JoiningDate,
emp.TinNo,
grd.Name,
deg.Name,
loc.Name,
dep.Name,
branch==null?"":branch.Name,
oSalMonthly.ThisMonthBasic,
emp.PaymentMode,
oSalMonthly.AccountNo,
oSalMonthly.SalaryMonth,
oSalMonthly.Remarks,
smd.Description,
smd.itemGroupCode,
smd.ChangedAmount,
smd.ItemCode,
smd.ItemID
);
}
}
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))
{
if (oRow["DeducDescription"].ToString().ToLower() == "pf contibution")
oRow["DeducAmount"] = Convert.ToDouble(odRow["CHANGEDAMOUNT"]) * 2;
else
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 = emp;
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.AddYears(-80)), sEmpID);
foreach (SalaryMonthlyDetail smd in oSalMonthly.Details)
{
if (smd.itemGroupCode == EnumSalaryGroup.OtherItem || smd.ItemCode == EnumSalaryItemCode.Inc_Tax_Deduction || smd.ItemCode == EnumSalaryItemCode.Net_Payable)
{
oSalaryMonthlysIncomeTax.Tables[0].Rows.Add(
emp.Name,
emp.EmployeeNo,
grd.Name,
deg.Name,
loc.Name,
dep.Name,
oSalMonthly.ThisMonthBasic,
emp.PaymentMode,
oSalMonthly.AccountNo,
oSalMonthly.SalaryMonth,
smd.Description,
smd.itemGroupCode,
smd.ChangedAmount,
smd.ItemCode,
smd.ItemID
);
}
}
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.AddYears(-80)), sEmpID);
foreach (SalaryMonthlyDetail smd in oSalMonthly.Details)
{
if (smd.itemGroupCode == EnumSalaryGroup.Miscellaneous || smd.ItemCode == EnumSalaryItemCode.Loan_Remain_Balance)
{
oSalaryMonthlysLaonAmount.Tables[0].Rows.Add(
emp.Name,
emp.EmployeeNo,
grd.Name,
deg.Name,
loc.Name,
dep.Name,
branch == null ? "" : branch.Name,
oSalMonthly.ThisMonthBasic,
emp.PaymentMode,
oSalMonthly.AccountNo,
oSalMonthly.SalaryMonth,
smd.Description,
smd.itemGroupCode,
smd.ChangedAmount,
smd.ItemCode,
smd.ItemID
);
}
}
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 = emp;
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);
form.ShowDlgForPaySlipCiti4(oFDST);
}
public void ShowReportOld(DateTime dtFrom, string sEmpIDs)
{
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 = dtFrom;
string sEmpID = sEmpIDs;
ObjectsTemplate<SalaryProcess> oSaProcess = new ObjectsTemplate<SalaryProcess>();
oSaProcess = SalaryProcess.Get(GlobalFunctions.LastDateOfMonth(salaryMonth));
//bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
DataSet oSalaryMonthlysGross = SalaryMonthly.GetEmpPaySlipGrossForOthersOld(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[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.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.GetEmpPaySlipDeductForOthersOld(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))
{
if (oRow["DeducDescription"].ToString().ToLower() == "pf contibution")
oRow["DeducAmount"] = Convert.ToDouble(odRow["CHANGEDAMOUNT"]) * 2;
else
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.GetEmpPaySlipIncomeTaxAmountForOthersOld(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.GetEmpPaySlipDeductForLROld(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);
form.ShowDlgForPaySlipCiti1(null, oFDST);
}
public void SKFExpencesPaySlip()
{
fReportViewer form = new fReportViewer();
DateTime salaryMonth = _selectedParameter.FromDate.Value;
DateTime fromDate = GlobalFunctions.FirstDateOfMonth(salaryMonth);
DateTime toDate = GlobalFunctions.LastDateOfMonth(salaryMonth);
string sEmpID = _selectedParameter.ReportItem.INSQL;
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["AccountNo"];
odr["Tinno"] = odrow["TinNo"];
odr["JoiningDate"] = odrow["JoiningDate"];
odr["Grade"] = odrow["Grade"];
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);
}
form.ShowDlgForSkfExpensesPSlip(skfExpTable, month);
}
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"];
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 SKFSalaryPaySlip()
{
fReportViewer form = new fReportViewer();
DateTime salaryMonth = _selectedParameter.FromDate.Value;
DateTime dmonth = GlobalFunctions.LastDateOfMonth(salaryMonth);
string sEmpID = _selectedParameter.ReportItem.INSQL;
string month = dmonth.ToString("MMM-yyyy");
DataRow odr = null;
DataSet oDataset = new DataSet();
PayrollDataSet.PayrollDataSet.SkfSalaryPaySlipDataTable skfSPPdTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.SkfSalaryPaySlipDataTable();
DataSet oSalaryPSlipSet = MiscellaneousDataset.GetSalaryPaySlipData(dmonth, sEmpID);
foreach (DataRow odrow in oSalaryPSlipSet.Tables[0].Rows)
{
odr = skfSPPdTable.NewRow();
odr["EmpNo"] = odrow["EMPLOYEENO"];
odr["EmpName"] = odrow["Name"];
odr["Designation"] = odrow["Designation"];
odr["Department"] = odrow["Department"];
if (!odrow.IsNull("Children Education Allowances"))
{
odr["ChildEduAllow"] = odrow["Children Education Allowances"];
}
if (!odrow.IsNull("Medical Allowances"))
{
odr["MedicAllow"] = odrow["Medical Allowances"];
}
if (!odrow.IsNull("Other Allowances"))
{
odr["OtherAllow"] = odrow["Other Allowances"];
}
if (!odrow.IsNull("Manager's Incentive"))
{
odr["ManagerIncentive"] = odrow["Manager's Incentive"];
}
if (!odrow.IsNull("Entertainment Allowances"))
{
odr["EntertainmentAllow"] = odrow["Entertainment Allowances"];
}
if (!odrow.IsNull("Motor Bike (Penalty) Deduction"))
{
odr["MotorBike"] = odrow["Motor Bike (Penalty) Deduction"];
}
if (!odrow.IsNull("Conveyance Allowances"))
{
odr["ConveyAllow"] = odrow["Conveyance Allowances"];
}
if (!odrow.IsNull("Basic"))
{
odr["Basic"] = odrow["Basic"];
}
if (!odrow.IsNull("PF"))
{
odr["PF"] = odrow["PF"];
}
if (!odrow.IsNull("Provident Fund Loan"))
{
odr["PFloan"] = odrow["Provident Fund Loan"];
}
if (!odrow.IsNull("Provident Fund Loan interest"))
{
odr["PFLoanInt"] = odrow["Provident Fund Loan interest"];
}
if (!odrow.IsNull("House Rent Allowances"))
{
odr["HouseRent"] = odrow["House Rent Allowances"];
}
if (!odrow.IsNull("PF"))
{
odr["PFCom"] = odrow["PF"];
}
if (!odrow.IsNull("Gift for Anniversary"))
{
odr["GiftAnivers"] = odrow["Gift for Anniversary"];
}
if (!odrow.IsNull("Income Tax"))
{
odr["IncomeTax"] = odrow["Income Tax"];
}
if (!odrow.IsNull("Article Loan"))
{
odr["ArticleLoan"] = odrow["Article Loan"];
}
skfSPPdTable.Rows.Add(odr);
}
form.ShowDlgForSkfSalaryPSlip(_selectedParameter.ReportItem, skfSPPdTable, month);
}
public byte[] SKFSalaryPaySlip1(DateTime dDate, string sID)
{
fReportViewer form = new fReportViewer();
DateTime salaryMonth = dDate;
DateTime dmonth = GlobalFunctions.LastDateOfMonth(salaryMonth);
string sEmpID = sID;
string month = dmonth.ToString("MMM-yyyy");
DataRow odr = null;
DataSet oDataset = new DataSet();
PayrollDataSet.PayrollDataSet.SkfSalaryPaySlipDataTable skfSPPdTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.SkfSalaryPaySlipDataTable();
DataSet oSalaryPSlipSet = MiscellaneousDataset.GetSalaryPaySlipData(dmonth, sEmpID);
foreach (DataRow odrow in oSalaryPSlipSet.Tables[0].Rows)
{
odr = skfSPPdTable.NewRow();
odr["EmpNo"] = odrow["EMPLOYEENO"];
odr["EmpName"] = odrow["Name"];
odr["Designation"] = odrow["Designation"];
odr["Department"] = odrow["Department"];
if (!odrow.IsNull("Children Education Allowances"))
{
odr["ChildEduAllow"] = odrow["Children Education Allowances"];
}
if (!odrow.IsNull("Medical Allowances"))
{
odr["MedicAllow"] = odrow["Medical Allowances"];
}
if (!odrow.IsNull("Other Allowances"))
{
odr["OtherAllow"] = odrow["Other Allowances"];
}
if (!odrow.IsNull("Manager's Incentive"))
{
odr["ManagerIncentive"] = odrow["Manager's Incentive"];
}
if (!odrow.IsNull("Entertainment Allowances"))
{
odr["EntertainmentAllow"] = odrow["Entertainment Allowances"];
}
if (!odrow.IsNull("Motor Bike (Penalty) Deduction"))
{
odr["MotorBike"] = odrow["Motor Bike (Penalty) Deduction"];
}
if (!odrow.IsNull("Conveyance Allowances"))
{
odr["ConveyAllow"] = odrow["Conveyance Allowances"];
}
if (!odrow.IsNull("Basic"))
{
odr["Basic"] = odrow["Basic"];
}
if (!odrow.IsNull("PF"))
{
odr["PF"] = odrow["PF"];
}
if (!odrow.IsNull("Provident Fund Loan"))
{
odr["PFloan"] = odrow["Provident Fund Loan"];
}
if (!odrow.IsNull("Provident Fund Loan interest"))
{
odr["PFLoanInt"] = odrow["Provident Fund Loan interest"];
}
if (!odrow.IsNull("House Rent Allowances"))
{
odr["HouseRent"] = odrow["House Rent Allowances"];
}
if (!odrow.IsNull("PF"))
{
odr["PFCom"] = odrow["PF"];
}
if (!odrow.IsNull("Gift for Anniversary"))
{
odr["GiftAnivers"] = odrow["Gift for Anniversary"];
}
if (!odrow.IsNull("Income Tax"))
{
odr["IncomeTax"] = odrow["Income Tax"];
}
if (!odrow.IsNull("Article Loan"))
{
odr["ArticleLoan"] = odrow["Article Loan"];
}
skfSPPdTable.Rows.Add(odr);
}
return form.ShowDlgForSkfSalaryPSlip1(null, skfSPPdTable, month);
}
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[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.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))
{
if (oRow["DeducDescription"].ToString().ToLower() == "pf contibution")
oRow["DeducAmount"] = Convert.ToDouble(odRow["CHANGEDAMOUNT"]) * 2;
else
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 void BanglaPaySlipOld()
{
#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 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);
List<AccessCard> oCards = AccessCard.Get();
DataRow oDR = null;
double totalGross = 0.0;
PayrollDataSet.PayrollDataSet.BanglaPaySlipNewDataTable banglaPaySlipData = new PayrollDataSet.PayrollDataSet.BanglaPaySlipNewDataTable();
PayrollDataSet.PayrollDataSet.BanglaPaySlipNewProdBonusDataTable banglaPaySlipProdData = new PayrollDataSet.PayrollDataSet.BanglaPaySlipNewProdBonusDataTable();
DataSet dsProdBonus = ProdBonusProcess.GetDetailItems(GlobalFunctions.LastDateOfMonth(salaryMonth));
if (dsProdBonus.Tables != null && dsProdBonus.Tables.Count > 0)
{
foreach (DataRow dRow in dsProdBonus.Tables[0].Rows)
{
DataRow ToRow = banglaPaySlipProdData.NewRow();
ToRow["EmployeeNo"] = dRow["EMPLOYEENO"];
ToRow["Name"] = dRow["Description"];
ToRow["Amount"] = dRow["Amount"];
banglaPaySlipProdData.Rows.Add(ToRow);
}
}
#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] + "," + salaryMonth.Year + "Bs gv‡mi †eZb I Ab¨vb¨ fvZvi cÖ‡`q wej t";
#endregion
#endregion
//SalaryProcess oProcess = SalaryProcess.Get(GlobalFunctions.LastDateOfMonth(salaryMonth));
foreach (SalaryMonthly itemMonthly in salarymonthlies)
{
totalGross = 0.0;
oDR = banglaPaySlipData.NewRow();
string sDiv = "";
string sDivBangla = "";
if (itemMonthly.Employee.Department.Tier == 1)
{
sDiv = itemMonthly.Employee.Department.Name;
}
else if (itemMonthly.Employee.Department.Tier == 2)
{
sDiv = itemMonthly.Employee.Department.Parent.Name;
}
else if (itemMonthly.Employee.Department.Tier == 3)
{
sDiv = itemMonthly.Employee.Department.Parent.Parent.Name;
}
else if (itemMonthly.Employee.Department.Tier == 4)
{
sDiv = itemMonthly.Employee.Department.Parent.Parent.Parent.Name;
}
if (itemMonthly.Employee.Department.Tier == 4)
{
oDR["Line"] = itemMonthly.Employee.Department.Name;
}
oDR["Division"] = sDiv;
oDR["BanglaDivision"] = sDivBangla;
oDR["SalaryMonth"] = salaryMonth;
oDR["EmpNo"] = itemMonthly.Employee.EmployeeNo;
oDR["Name"] = itemMonthly.Employee.Name;
oDR["Designation"] = itemMonthly.Employee.Designation.Name;
oDR["DOfJoining"] = itemMonthly.Employee.JoiningDate.Day.ToString() + " " + BanglaMonths[salaryMonth.Month - 1] + " " + itemMonthly.Employee.JoiningDate.Year.ToString();
AccessCard ac = oCards.Find(x => x.ID.Integer == itemMonthly.Employee.CardID.Integer);
oDR["CardNo"] = ac != null ? ac.CardNumber : string.Empty;
#region Gross Payment
oDR["BasicSalary"] = itemMonthly.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Basic_Salary) +
+itemMonthly.GetAmount(EnumSalaryGroup.Arrear, EnumSalaryItemCode.Basic_Salary);
#region Calcullate Allowances
// House rent code: 008
AllowanceDeduction oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "008");
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: 010
oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "010");
oDR["Conveynce"] = oAllDeduct != null ?
itemMonthly.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer) +
itemMonthly.GetAmount(EnumSalaryGroup.Arrear, EnumSalaryItemCode.Allowance, oAllDeduct.ID.Integer)
: 0;
// medical code: 011
oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "011");
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: 009
oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "006");
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: 001
oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "001");
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: 002
oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "002");
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: 012
oAllDeduct = oAllDeducts.FirstOrDefault(x => x.Code.Trim() == "012");
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["BasicSalary"]) +
Convert.ToDouble(oDR["HouseRent"]) +
Convert.ToDouble(oDR["Medical"]) +
Convert.ToDouble(oDR["Conveynce"]) +
Convert.ToDouble(oDR["Food"]);
oDR["NetPayment"] = totalGross;
#endregion
#region Day Calcullation
oDR["TotalWorkDays"] = itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Total_Days);
oDR["PresentDays"] = itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Tot_Attend_Days);
oDR["HolidayDays"] = itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Total_HoliDays);
oDR["AbsentDays"] = itemMonthly.GetAmount(EnumSalaryGroup.Miscellaneous, EnumSalaryItemCode.Tot_UnauthLeave_Days);
#endregion
oDR["DeductPF"] = Convert.ToDouble(oDR["BasicSalary"]) * 0.08;
oDR["DeductSalaryAdvance"] = 0.0;
double givenTaka = Convert.ToDouble(oDR["DeductPF"]) +
Convert.ToDouble(oDR["DeductSalaryAdvance"]) +
Convert.ToDouble(oDR["AbsentDays"]);
givenTaka = totalGross - givenTaka;
oDR["GivenSalary"] = givenTaka;
#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 Production Bonus
int nCount = 0;
if (dsProdBonus.Tables != null && dsProdBonus.Tables.Count > 0)
{
if (dsProdBonus.Tables[0] != null && dsProdBonus.Tables[0].Rows.Count > 0)
{
DataTable dt2 = new DataTable();
oDR["ProdBonus"] = 0;
var accItems = dsProdBonus.Tables[0].AsEnumerable().Where(x => x["EMPLOYEENO"].ToString().Trim() == oDR["EmpNo"].ToString());
if (accItems.Count() > 0)
dt2 = accItems.CopyToDataTable();
if (dt2 != null && dt2.Rows.Count > 0)
{
//int i = 1;
foreach (DataRow dr in dt2.Rows)
{
// This is not needed as we show detail in a subreport
//oDR["ProdBonusName" + i.ToString()] = dr["LineName"];
//oDR["ProdBonusAmount" + i.ToString()] = Convert.ToDouble(dr["Amount"]);
oDR["ProdBonus"] = Convert.ToDouble(oDR["ProdBonus"]) + Convert.ToDouble(dr["Amount"]);
//i++;
}
}
}
}
#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;
double totalTaka = givenTaka + Convert.ToDouble(oDR["AttBon"]) +
Convert.ToDouble(oDR["ConductBonus"]) +
Convert.ToDouble(oDR["ProdBonus"]) +
Convert.ToDouble(oDR["OTPayable"]);
oDR["TotalTaka"] = totalTaka;
#endregion
banglaPaySlipData.Rows.Add(oDR);
}
DataSet ds = new DataSet();
banglaPaySlipData.TableName = "PayrollDataSet_BanglaPaySlipNew";
ds.Tables.Add(banglaPaySlipData);
DataSet dsSub = new DataSet();
banglaPaySlipProdData.TableName = "PayrollDataSet_BanglaPaySlipNewProdBonus";
dsSub.Tables.Add(banglaPaySlipProdData);
string reportName = "Payroll.Report.RDLC.BanglaPSlip.rdlc";
List<ReportParameter> _parameters = new List<ReportParameter>();
ReportParameter parameter = new ReportParameter("rptMonth", month);
_parameters = new List<ReportParameter>();
_parameters.Add(parameter);
parameter = new ReportParameter("companyName", System.Configuration.ConfigurationSettings.AppSettings["companyBanglaName"]);
_parameters.Add(parameter);
parameter = new ReportParameter("SalalyMonthEng", salaryMonth.ToString("MMM-yyyy"));
_parameters.Add(parameter);
form.CommonReportView(_selectedParameter.ReportItem, ds, dsSub, reportName, _parameters, false);
}
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))
{
if (oRow["DeducDescription"].ToString().ToLower() == "pf contibution")
oRow["DeducAmount"] = Convert.ToDouble(odRow["CHANGEDAMOUNT"]) * 2;
else
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 ReportOverAllSummary()
{
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);
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);
}
}
}