CEL_Payroll/Payroll.Report/Class/PaySlip.cs
2024-09-17 14:30:13 +06:00

3402 lines
154 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}
}