2025-08-06 14:31:52 +06:00
using System ;
using System.Collections.Generic ;
using System.ComponentModel ;
using System.Data ;
using System.Drawing ;
using System.Linq ;
using System.Text ;
using System.Windows.Forms ;
using Payroll.BO ;
using Ease.CoreV35.Model ;
using Microsoft.Reporting.WinForms ;
namespace Payroll.Report
{
public class PaySlip
{
DataSet dSet = new DataSet ( ) ;
private ReportSetup _selectedParameter ;
ObjectsTemplate < ESBDefinition > _oGratuityParams = null ;
private DateTime _dSalaryMonth = DateTime . MinValue ;
private DateTime _dMonthEndDate = DateTime . MinValue ;
DateTime _fiscalyearStart ;
DateTime _SalaryMonth ;
public PaySlip ( )
{
}
public ReportSetup SelectedParameter
{
set
{
_selectedParameter = value ;
}
}
private DataRow GrossMerge ( DataRow destination , DataRow source )
{
if ( Convert . ToInt32 ( source [ "ItemGroup" ] ) = = 3 )
{
destination [ "Name" ] = source [ "Name" ] ;
destination [ "EMPLOYEENO" ] = source [ "EMPLOYEENO" ] ;
destination [ "Grade" ] = source [ "Grade" ] ;
destination [ "Designation" ] = source [ "Designation" ] ;
destination [ "Department" ] = source [ "Department" ] ;
destination [ "LName" ] = source [ "LName" ] ;
destination [ "JoiningDate" ] = source [ "JoiningDate" ] ;
destination [ "BName" ] = source [ "BName" ] ;
destination [ "REMARKS" ] = source [ "REMARKS" ] ;
destination [ "ActualBasic" ] = source [ "ActualBasic" ] ;
destination [ "TINNo" ] = source [ "TINNo" ] ;
if ( source [ "PAYMENTMODE" ] . Equals ( 1 ) )
{
destination [ "PAYMENTMODE" ] = "CashPayment" ;
}
else if ( source [ "PAYMENTMODE" ] . Equals ( 2 ) )
{
destination [ "PAYMENTMODE" ] = "BankTransfer" ;
}
else if ( source [ "PAYMENTMODE" ] . Equals ( 3 ) )
{
destination [ "PAYMENTMODE" ] = "Provision" ;
}
destination [ "ACCOUNTNO" ] = source [ "ACCOUNTNO" ] ;
destination [ "SalaryMonth" ] = Convert . ToDateTime ( source [ "SalaryMonth" ] ) . ToString ( "dd MMM yyyy" ) ;
destination [ "Description" ] = "" ;
destination [ "ItemGroup" ] = source [ "ITEMGROUP" ] ;
destination [ "ItemCode" ] = source [ "ITEMCode" ] ;
destination [ "ItemID" ] = source [ "ITEMID" ] ;
_SalaryMonth = Convert . ToDateTime ( source [ "SalaryMonth" ] ) ;
if ( _SalaryMonth . Month > = 1 & & _SalaryMonth . Month < 7 )
{
_fiscalyearStart = new DateTime ( _SalaryMonth . Year - 1 , 7 , 1 ) ;
destination [ "TaxMonth" ] = _fiscalyearStart . ToString ( "MMM yyyy" ) ;
}
else
{
_fiscalyearStart = new DateTime ( _SalaryMonth . Year , 7 , 1 ) ;
destination [ "TaxMonth" ] = _fiscalyearStart . ToString ( "MMM yyyy" ) ;
}
//destination["TaxMonth"] = Payroll.BO.SystemInformation.CurrentSysInfo.TaxYearEndDate.AddMonths(1);
// destination["TaxFiscalYearAmount"] = GlobalFunctions.Round(item.GetAmountOnRange(oEmp, _dFiscalYear, _SalaryMonth.AddMinutes(1), EnumSalaryGroup.Deductions, EnumSalaryItemCode.Inc_Tax_Deduction, (int)EnumSalaryItemCode.Inc_Tax_Deduction));
return destination ;
}
else
{
destination [ "Name" ] = source [ "Name" ] ;
destination [ "EMPLOYEENO" ] = source [ "EMPLOYEENO" ] ;
destination [ "Grade" ] = source [ "Grade" ] ;
destination [ "Designation" ] = source [ "Designation" ] ;
destination [ "Department" ] = source [ "Department" ] ;
destination [ "LName" ] = source [ "LName" ] ;
destination [ "JoiningDate" ] = source [ "JoiningDate" ] ;
destination [ "BName" ] = source [ "BName" ] ;
destination [ "ActualBasic" ] = source [ "ActualBasic" ] ;
destination [ "TINNo" ] = source [ "TINNo" ] ;
destination [ "REMARKS" ] = source [ "REMARKS" ] ;
if ( source [ "PAYMENTMODE" ] . Equals ( 1 ) )
{
destination [ "PAYMENTMODE" ] = "CashPayment" ;
}
else if ( source [ "PAYMENTMODE" ] . Equals ( 2 ) )
{
destination [ "PAYMENTMODE" ] = "BankTransfer" ;
}
else if ( source [ "PAYMENTMODE" ] . Equals ( 3 ) )
{
destination [ "PAYMENTMODE" ] = "Provision" ;
}
destination [ "ACCOUNTNO" ] = source [ "ACCOUNTNO" ] ;
destination [ "SalaryMonth" ] = Convert . ToDateTime ( source [ "SalaryMonth" ] ) . ToString ( "dd MMM yyyy" ) ;
destination [ "Description" ] = source [ "Description" ] ;
destination [ "ItemGroup" ] = source [ "ITEMGROUP" ] ;
destination [ "ItemCode" ] = source [ "ITEMCode" ] ;
destination [ "ItemID" ] = source [ "ITEMID" ] ;
_SalaryMonth = Convert . ToDateTime ( source [ "SalaryMonth" ] ) ;
if ( _SalaryMonth . Month > = 1 & & _SalaryMonth . Month < 7 )
{
_fiscalyearStart = new DateTime ( _SalaryMonth . Year - 1 , 7 , 1 ) ;
destination [ "TaxMonth" ] = _fiscalyearStart . ToString ( "MMM yyyy" ) ;
}
else
{
_fiscalyearStart = new DateTime ( _SalaryMonth . Year , 7 , 1 ) ;
destination [ "TaxMonth" ] = _fiscalyearStart . ToString ( "MMM yyyy" ) ;
}
// destination["TaxFiscalYearAmount"] = GlobalFunctions.Round(item.GetAmountOnRange(oEmp, _dFiscalYear, _SalaryMonth.AddMinutes(1), EnumSalaryGroup.Deductions, EnumSalaryItemCode.Inc_Tax_Deduction, (int)EnumSalaryItemCode.Inc_Tax_Deduction));
return destination ;
}
}
private DataRow GrossMergeForOverAll ( DataRow destination , DataRow source , int nTotalEmp , DateTime sMonth )
{
destination [ "TotalEmp" ] = nTotalEmp ;
if ( source [ "Description" ] . ToString ( ) . Contains ( "'" ) )
{
destination [ "Description" ] = source [ "Description" ] . ToString ( ) . Replace ( "'" , "\'" ) ;
}
else if ( source [ "Description" ] . ToString ( ) . Contains ( "/" ) )
{
destination [ "Description" ] = source [ "Description" ] . ToString ( ) . Replace ( "/" , "/'" ) ;
}
else
{
destination [ "Description" ] = source [ "Description" ] ;
}
destination [ "ItemGroup" ] = source [ "ITEMGROUP" ] ;
destination [ "ItemCode" ] = source [ "ITEMCode" ] ;
destination [ "ItemID" ] = source [ "ITEMID" ] ;
destination [ "Month" ] = sMonth ;
return destination ;
}
private DataRow GetItem ( PayrollDataSet . PayrollDataSet . PayslipDataTable Source , string sEmpNo , EnumSalaryGroup groupCode , EnumSalaryItemCode itemCode , int ITemID )
{
foreach ( DataRow odRow in Source . Rows )
{
if ( Convert . ToString ( odRow [ "EMPLOYEENO" ] ) = = sEmpNo & &
Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = ( int ) itemCode & & Convert . ToInt32 ( odRow [ "ItemID" ] ) = = ITemID )
{
return odRow ;
}
}
return null ;
}
private DataRow GetItem2 ( DataTable Source , string sEmpNo , EnumSalaryGroup groupCode , EnumSalaryItemCode itemCode , int ITemID , string sDescription )
{
foreach ( DataRow odRow in Source . Rows )
{
if ( Convert . ToString ( odRow [ "EMPLOYEENO" ] ) = = sEmpNo & &
Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = ( int ) itemCode & & Convert . ToInt32 ( odRow [ "ItemID" ] ) = = ITemID
& & odRow [ "Description" ] . ToString ( ) . Replace ( " hour" , "" ) . Trim ( ) = = sDescription )
{
return odRow ;
}
}
return null ;
}
private DataRow GetItemForOverAll ( PayrollDataSet . PayrollDataSet . OverAllSummaryDataTable Source , EnumSalaryGroup groupCode , EnumSalaryItemCode itemCode , int ITemID )
{
foreach ( DataRow odRow in Source . Rows )
{
if ( Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = ( int ) itemCode & & Convert . ToInt32 ( odRow [ "ItemID" ] ) = = ITemID )
{
return odRow ;
}
}
return null ;
}
private double ServiceYears ( DateTime dt , Employee oEmp )
{
double n = Ease . CoreV35 . Utility . Global . DateFunctions . DateDiff ( "d" , oEmp . JoiningDate , dt ) ;
if ( n > = 365 )
return n / 365 ;
else
return 0.0 ;
}
public double GetGratuityAmount ( ObjectsTemplate < ESBDefinition > oItems , Employee oEmp , DateTime salaryMonth )
{
double nAmout = 0.0 ;
double nFracYear = 0.0 ;
ESBDefinition item = ESBDefinition . Get ( oItems , oEmp ) ;
double nServiceLength = ServiceYears ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , oEmp ) ;
if ( item ! = null )
{
foreach ( ESBSlab eslb in item . ESBSlabs )
{
nAmout = 0.0 ;
if ( eslb . ServiceYear < = nServiceLength )
{
string [ ] sFracMonth = nServiceLength . ToString ( ) . Split ( new char [ ] { '.' } ) ;
nFracYear = 0 ;
if ( sFracMonth . Length > 1 )
nFracYear = GlobalFunctions . Round ( Convert . ToDouble ( "." + sFracMonth [ 1 ] ) ) ;
if ( nFracYear > = 0.5 )
{
nServiceLength = Convert . ToDouble ( sFracMonth [ 0 ] ) + 1 ;
}
else
{
nServiceLength = Convert . ToDouble ( sFracMonth [ 0 ] ) ;
}
nAmout = oEmp . BasicSalary * eslb . CalculateNo * nServiceLength ;
}
else
{
nAmout = 0 ;
}
}
}
return nAmout ;
}
public double GetPFAmount ( Employee oEmp , DateTime salaryMonth )
{
double nAmout = 0.0 ;
DataSet ds = PFTransaction . GetPFBalance ( oEmp . ID . Integer , GlobalFunctions . LastDateOfMonth ( salaryMonth ) ) ;
double nServiceLength = ServiceYears ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , oEmp ) ;
foreach ( DataRow dr in ds . Tables [ 0 ] . Rows )
{
if ( Convert . ToInt16 ( dr [ "TranTP" ] ) = = 1 )
{
nAmout = Convert . ToDouble ( dr [ "Amount" ] ) ;
}
//if (nServiceLength > 5)
//{
// nAmout += Convert.ToDouble(dr["Amount"]);
//}
//else
//{
// if (Convert.ToInt16(dr["TranTP"]) != 2)
// {
// nAmout += Convert.ToDouble(dr["Amount"]);
// }
//}
}
return nAmout ;
}
//public void ShowReport()
//{
// _oGratuityParams = ESBDefinition.Get();
// Employee oEmployee = null;
// ObjectsTemplate<Employee> oEmps = new ObjectsTemplate<Employee>();
// oEmps = Employee.Get();
// ObjectsTemplate<LoanSchedule> oLoanScheduls = new ObjectsTemplate<LoanSchedule>();
// oLoanScheduls = LoanSchedule.Get();
// //ObjectsTemplate<LoanIssue> oLoanIssues = new ObjectsTemplate<LoanIssue>();
// //oLoanIssues = LoanIssue.GetE Get();
// fReportViewer form = new fReportViewer();
// DateTime salaryMonth = _selectedParameter.FromDate.Value;
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// SalaryProcess oSaProcess = new SalaryProcess();
// //bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
// DataSet oSalaryMonthlysGross = SalaryMonthly.GetEmpPaySlipGrossForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// PayrollDataSet.PayrollDataSet.PayslipDataTable PayslipData = new Payroll.Report.PayrollDataSet.PayrollDataSet.PayslipDataTable();
// //bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
// foreach (DataRow odRow in oSalaryMonthlysGross.Tables[0].Rows)
// {
// DataRow oRow = this.GetItem(PayslipData, Convert.ToString(odRow["EMPLOYEENO"]), (EnumSalaryGroup)Convert.ToInt32(odRow["ITEMGROUP"]), (EnumSalaryItemCode)Convert.ToInt32(odRow["ItemCode"]), Convert.ToInt32(odRow["ItemID"]));
// if (oRow == null)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Gross))
// oRow["Earning"] = odRow["CHANGEDAMOUNT"];
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Arrear))
// oRow["Arrear"] = odRow["CHANGEDAMOUNT"];
// else if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.UnauthLeave))
// oRow["unAuthLeave"] = odRow["CHANGEDAMOUNT"];
// }
// int nCount = 0;
// DataSet oSalaryMonthlysDeduct = SalaryMonthly.GetEmpPaySlipDeductForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo = "";
// DataRow[] odros = null;
// if (oSalaryMonthlysDeduct.Tables[0].Rows.Count > 0)
// {
// employeeNo = oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysDeduct.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// //if(oSalaryMonthlysDeduct.Tables[0].Rows.Count>oSalaryMonthlysGross.Tables[0].Rows.Count)
// //{
// // odros=new DataRow[oSalaryMonthlysDeduct.Tables[0].Rows.Count];
// //}
// foreach (DataRow odRow in oSalaryMonthlysDeduct.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo != odRow["EMPLOYEENO"].ToString())
// {
// odros = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros.Length <= nCount)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, odRow);
// PayslipData.Rows.Add(oRow);
// }
// else oRow = odros[nCount];
// //if (odros.Length <= nCount) continue;
// //oRow = odros[nCount];
// oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Deductions))
// oRow["DeducAmount"] = odRow["CHANGEDAMOUNT"];
// oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
// //GetGratuityAmount(_oGratuityParams, oEmployee);
// // GetPFAmount(oEmployee);
// //Gratuity
// if (oEmployee != null)
// {
// if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
// {
// oRow["Gratuity"] = GetGratuityAmount(_oGratuityParams, oEmployee);
// }
// else
// {
// oRow["Gratuity"] = 0;
// }
// oRow["PF"] = GetPFAmount(oEmployee);
// }
// #region Loan Issue
// ////Personal Loan
// //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Monthly_Installment) && ((Convert.ToInt32(odRow["ItemID"]) == 3)))
// //{
// // loanAmounn = 0.0;
// // actuInterest = 0.0;
// // principleAmount = 0.0;
// // interest = 0.0;
// // balance = 0.0;
// // sattelmentAmount = 0.0;
// // LoanIssue oLIssue=LoanIssue.GetExistingLoan(ID.FromInteger(Convert.ToInt32(odRow["ItemID"])),oEmployee.ID);
// // //LoanIssue oLIssue = oLoanIssues.Find(delegate(LoanIssue item1) { return oEmployee.ID == item1.EmployeeID && item1.LoanID == ID.FromInteger(Convert.ToInt32(odRow["ItemID"])); });
// // if (oLIssue != null)
// // {
// // loanAmounn = oLIssue.LoanAmount;
// // List<LoanSchedule> oLSS = oLoanScheduls.FindAll(delegate(LoanSchedule oitem) { return oitem.LoanIssueID == oLIssue.ID; });
// // if (oLSS.Count>0)
// // {
// // List<LoanSchedule> oBeforeSMonths = oLSS.FindAll(delegate(LoanSchedule oitem) { return oitem.DueInstallmentDate <= GlobalFunctions.LastDateOfMonth(salaryMonth); });
// // foreach (LoanSchedule oScedule in oBeforeSMonths)
// // {
// // actuInterest = actuInterest + oScedule.ActualInterest;
// // principleAmount = principleAmount + oScedule.InstallmentPrincipal;
// // interest = interest + oScedule.InstallmentInterest;
// // balance = balance + oScedule.OpeningBalance;
// // //oTemLoanSchedule.Add(oScedule);
// // }
// // }
// // sattelmentAmount = (loanAmounn + actuInterest) - (principleAmount + interest);
// // }
// // oRow["PersonalLoan"] = sattelmentAmount;//odRow["CHANGEDAMOUNT"];
// //}
// //Vehicle Loan
// //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Monthly_Installment && (Convert.ToInt32(odRow["ItemID"]) == 4)))
// //{
// // loanAmounn = 0.0;
// // actuInterest = 0.0;
// // principleAmount = 0.0;
// // interest = 0.0;
// // balance = 0.0;
// // sattelmentAmount = 0.0;
// // LoanIssue oLIssue=LoanIssue.GetExistingLoan(ID.FromInteger(Convert.ToInt32(odRow["ItemID"])),oEmployee.ID);
// // //LoanIssue oLIssue = oLoanIssues.Find(delegate(LoanIssue item1) { return oEmployee.ID == item1.EmployeeID && item1.LoanID == ID.FromInteger(Convert.ToInt32(odRow["ItemID"])); });
// // if (oLIssue != null)
// // {
// // loanAmounn = oLIssue.LoanAmount;
// // List<LoanSchedule> oLSS = oLoanScheduls.FindAll(delegate(LoanSchedule oitem) { return oitem.LoanIssueID == oLIssue.ID; });
// // if (oLSS.Count > 0)
// // {
// // List<LoanSchedule> oBeforeSMonths = oLSS.FindAll(delegate(LoanSchedule oitem) { return oitem.DueInstallmentDate <= GlobalFunctions.LastDateOfMonth(salaryMonth); });
// // foreach (LoanSchedule oScedule in oBeforeSMonths)
// // {
// // actuInterest = actuInterest + oScedule.ActualInterest;
// // principleAmount = principleAmount + oScedule.InstallmentPrincipal;
// // interest = interest + oScedule.InstallmentInterest;
// // balance = balance + oScedule.OpeningBalance;
// // //oTemLoanSchedule.Add(oScedule);
// // }
// // }
// // sattelmentAmount = (loanAmounn + actuInterest) - (principleAmount + interest);
// // }
// // oRow["VechileLoan"] = sattelmentAmount;//odRow["CHANGEDAMOUNT"];
// //}
// //House Loan
// //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Monthly_Installment && (Convert.ToInt32(odRow["ItemID"]) == 2)))
// //{
// // loanAmounn = 0.0;
// // actuInterest = 0.0;
// // principleAmount = 0.0;
// // interest = 0.0;
// // balance = 0.0;
// // sattelmentAmount = 0.0;
// // LoanIssue oLIssue=LoanIssue.GetExistingLoan(ID.FromInteger(Convert.ToInt32(odRow["ItemID"])),oEmployee.ID);
// // //LoanIssue oLIssue = oLoanIssues.Find(delegate(LoanIssue item1) { return oEmployee.ID == item1.EmployeeID && item1.LoanID == ID.FromInteger(Convert.ToInt32(odRow["ItemID"])); });
// // if (oLIssue != null)
// // {
// // loanAmounn = oLIssue.LoanAmount;
// // List<LoanSchedule> oLSS = oLoanScheduls.FindAll(delegate(LoanSchedule oitem) { return oitem.LoanIssueID == oLIssue.ID; });
// // if (oLSS.Count > 0)
// // {
// // List<LoanSchedule> oBeforeSMonths = oLSS.FindAll(delegate(LoanSchedule oitem) { return oitem.DueInstallmentDate <= GlobalFunctions.LastDateOfMonth(salaryMonth); });
// // foreach (LoanSchedule oScedule in oBeforeSMonths)
// // {
// // actuInterest = actuInterest + oScedule.ActualInterest;
// // principleAmount = principleAmount + oScedule.InstallmentPrincipal;
// // interest = interest + oScedule.InstallmentInterest;
// // balance = balance + oScedule.OpeningBalance;
// // //oTemLoanSchedule.Add(oScedule);
// // }
// // }
// // sattelmentAmount = (loanAmounn + actuInterest) - (principleAmount + interest);
// // }
// // oRow["HomeLoan"] = sattelmentAmount;//odRow["CHANGEDAMOUNT"];
// //}
// //if ((Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.PF_Contribution && (Convert.ToInt32(odRow["ItemID"]) == (int)EnumSalaryItemCode.PF_Contribution)))
// //{
// // oRow["PF"] = odRow["CHANGEDAMOUNT"];
// //}
// #endregion
// nCount = nCount + 1;
// employeeNo = odRow["EMPLOYEENO"].ToString();
// }
// nCount = 0;
// DataSet oSalaryMonthlysIncomeTax = SalaryMonthly.GetEmpPaySlipIncomeTaxAmountForOthers(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo1 = "";
// DataRow[] odros1 = null;
// if (oSalaryMonthlysIncomeTax.Tables[0].Rows.Count > 0)
// {
// employeeNo1 = oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros1 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysIncomeTax.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlysIncomeTax.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo1 != odRow["EMPLOYEENO"].ToString())
// {
// odros1 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros1.Length <= nCount) continue;
// oRow = odros1[nCount];
// //oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.OtherItem) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Inc_Tax_Deduction))
// oRow["IncomTaxAmount"] = odRow["CHANGEDAMOUNT"];
// nCount = nCount + 1;
// employeeNo1 = odRow["EMPLOYEENO"].ToString();
// }
// nCount = 0;
// DataSet oSalaryMonthlysLaonAmount = SalaryMonthly.GetEmpPaySlipDeductForLR(GlobalFunctions.LastDateOfMonth(salaryMonth), sEmpID);
// string employeeNo12 = "";
// DataRow[] odros12 = null;
// if (oSalaryMonthlysLaonAmount.Tables[0].Rows.Count > 0)
// {
// employeeNo12 = oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString();
// odros12 = PayslipData.Select(" EmployeeNo='" + oSalaryMonthlysLaonAmount.Tables[0].Rows[0]["EMPLOYEENO"].ToString() + "'");
// }
// foreach (DataRow odRow in oSalaryMonthlysLaonAmount.Tables[0].Rows)
// {
// DataRow oRow = null;
// if (employeeNo12 != odRow["EMPLOYEENO"].ToString())
// {
// odros12 = PayslipData.Select(" EmployeeNo='" + odRow["EMPLOYEENO"].ToString() + "'");
// nCount = 0;
// }
// if (odros12.Length <= nCount) continue;
// oRow = odros12[nCount];
// //oRow["DeducDescription"] = odRow["Description"];
// if ((Convert.ToInt32(odRow["ITEMGROUP"]) == (int)EnumSalaryGroup.Miscellaneous) && (Convert.ToInt32(odRow["ItemCode"]) == (int)EnumSalaryItemCode.Loan_Remain_Balance))
// {
// oRow["LoanDescription"] = odRow["Description"];
// oRow["LoanAmount"] = odRow["CHANGEDAMOUNT"];
// }
// nCount = nCount + 1;
// employeeNo12 = odRow["EMPLOYEENO"].ToString();
// }
// //if (IsApproved)
// //{
// form.ShowDlgForPaySlip(_selectedParameter.ReportItem, PayslipData);
// //}
// //else
// //{
// // MessageBox.Show("This salary process is not approve for the month of " + salaryMonth.ToString("MMM yyyy"), "Salary Approved", MessageBoxButtons.OK, MessageBoxIcon.Information);
// //}
//}
public void ShowReport ( )
{
DataSet dBasicInfoDset = null ;
DataSet oFDST = new DataSet ( ) ;
_oGratuityParams = ESBDefinition . Get ( ) ;
Employee oEmployee = null ;
ObjectsTemplate < Employee > oEmps = new ObjectsTemplate < Employee > ( ) ;
oEmps = Employee . Get ( ) ;
List < Designation > oDesigs = Designation . Get ( EnumStatus . Regardless ) ;
DataRow oRow = null ;
fReportViewer form = new fReportViewer ( ) ;
DateTime salaryMonth = _selectedParameter . FromDate . Value ;
string sEmpID = _selectedParameter . ReportItem . INSQL ;
ObjectsTemplate < SalaryProcess > oSaProcess = new ObjectsTemplate < SalaryProcess > ( ) ;
oSaProcess = SalaryProcess . Get ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) ) ;
//bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
dBasicInfoDset = Employee . GetEmpBasicInfoForPSlipNew ( sEmpID , GlobalFunctions . LastDateOfMonth ( salaryMonth ) ) ;
DataSet oSalaryMonthlysGross = SalaryMonthly . GetEmpPaySlipGrossForOthers ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
DataSet oSalaryMonthlysDeduct = SalaryMonthly . GetEmpPaySlipDeductForOthers ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
PayrollDataSet . PayrollDataSet . PayslipDataTable PayslipData = new Payroll . Report . PayrollDataSet . PayrollDataSet . PayslipDataTable ( ) ;
PayrollDataSet . PayrollDataSet . LoanDataDataTable loanDT = new Payroll . Report . PayrollDataSet . PayrollDataSet . LoanDataDataTable ( ) ;
//bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
DataTable basicInfo = new PayrollDataSet . PayrollDataSet . PayslipBasicInfoDataTable ( ) ;
_dSalaryMonth = GlobalFunctions . LastDateOfMonth ( salaryMonth ) ;
if ( oSaProcess ! = null & & oSaProcess . Count > 0 & & oSalaryMonthlysGross . Tables [ 0 ] . Rows . Count > 0 )
{
if ( oSaProcess [ 0 ] . PaymentDate ! = DateTime . MinValue )
{
_dMonthEndDate = Convert . ToDateTime ( oSaProcess [ 0 ] . PaymentDate ) ;
}
else
{
_dMonthEndDate = DateTime . MinValue ;
}
}
foreach ( DataRow odRow in oSalaryMonthlysGross . Tables [ 0 ] . Rows )
{
double dbl = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
if ( dbl = = 0 )
{
continue ;
}
if ( ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = EnumSalaryItemCode . Over_Time_Amount )
oRow = this . GetItem2 ( PayslipData , Convert . ToString ( odRow [ "EMPLOYEENO" ] ) , ( EnumSalaryGroup ) Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) , ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) , Convert . ToInt32 ( odRow [ "ItemID" ] ) , odRow [ "Description" ] . ToString ( ) . Trim ( ) ) ;
else
oRow = this . GetItem ( PayslipData , Convert . ToString ( odRow [ "EMPLOYEENO" ] ) , ( EnumSalaryGroup ) Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) , ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) , Convert . ToInt32 ( odRow [ "ItemID" ] ) ) ;
if ( oRow = = null )
{
oRow = PayslipData . NewRow ( ) ;
oRow = this . GrossMerge ( oRow , odRow ) ;
PayslipData . Rows . Add ( oRow ) ;
}
if ( ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = EnumSalaryItemCode . Over_Time_Amount )
{
DataRow oRow6 = this . GetItem2 ( oSalaryMonthlysGross . Tables [ 1 ] , Convert . ToString ( odRow [ "EMPLOYEENO" ] ) , EnumSalaryGroup . Miscellaneous , EnumSalaryItemCode . Over_Time_Hours , Convert . ToInt32 ( odRow [ "ItemID" ] ) , odRow [ "Description" ] . ToString ( ) . Replace ( " hour" , "" ) . Trim ( ) ) ;
if ( oRow6 ! = null )
{
if ( oRow [ "Description" ] . ToString ( ) . IndexOf ( '[' ) < 0 )
oRow [ "Description" ] + = " [" + Convert . ToDouble ( oRow6 [ "CHANGEDAMOUNT" ] ) . ToString ( "#" ) + " Hours]" ;
}
}
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Gross ) )
{
if ( oRow [ "Earning" ] . ToString ( ) ! = "" & & ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) ! = EnumSalaryItemCode . Over_Time_Amount )
{
oRow [ "Earning" ] = Convert . ToDouble ( oRow [ "Earning" ] ) + Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] ) ;
}
else
{
oRow [ "Earning" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
}
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Deductions ) & & ( Convert . ToInt32 ( odRow [ "ITEMID" ] ) = = ( int ) EnumSalaryItemCode . PF_Contribution ) )
{
if ( oRow [ "Earning" ] . ToString ( ) ! = "" )
{
oRow [ "Earning" ] = Convert . ToDouble ( oRow [ "Earning" ] ) + ( Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] ) ) ;
oRow [ "Description" ] = "Company PF Contribution" ;
}
else
{
oRow [ "Earning" ] = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] ) ;
oRow [ "Description" ] = "Company PF Contribution" ;
}
}
else if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Arrear ) )
{
double dArrear = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
oRow [ "Arrear" ] = dArrear ;
}
else if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . UnauthLeave ) )
{
oRow [ "unAuthLeave" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
}
//DataRow[] odrowsPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEEID='" + Convert.ToInt32(sEmpID) + "'");
//if (odrowsPF.Length > 0)
//{
// DataRow orowPF = odrowsPF[0];
// if (Convert.ToDouble( orowPF["CHANGEDAMOUNT"].ToString()) >0)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, orowPF);
// oRow["Description"] = "Company PF Contribution";
// oRow["Earning"] = Convert.ToDouble(orowPF["CHANGEDAMOUNT"]);
// PayslipData.Rows.Add(oRow);
// }
//}
int nCount = 0 ;
string employeeNo = "" ;
DataRow [ ] odros = null ;
if ( oSalaryMonthlysDeduct . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo = oSalaryMonthlysDeduct . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysDeduct . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
double dGratuityAmount = 0 ;
double dPFAmount = 0 ;
string sTEmpEmpNo = "" ;
double nCurrPFAmount = 0 ;
foreach ( DataRow odRow in oSalaryMonthlysDeduct . Tables [ 0 ] . Rows )
{
double dbl = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
if ( dbl = = 0 )
{
continue ;
}
oRow = null ;
if ( employeeNo ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros . Length < = nCount )
{
oRow = PayslipData . NewRow ( ) ;
oRow = this . GrossMerge ( oRow , odRow ) ;
PayslipData . Rows . Add ( oRow ) ;
}
else oRow = odros [ nCount ] ;
oRow [ "DeducDescription" ] = odRow [ "Description" ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Deductions ) )
{
if ( oRow [ "DeducDescription" ] . ToString ( ) . ToLower ( ) = = "pf contribution" )
oRow [ "DeducAmount" ] = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] ) * 2 ;
else
oRow [ "DeducAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
oRow [ "DeducDescription" ] = odRow [ "Description" ] ;
//oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
if ( sTEmpEmpNo = = "" | | sTEmpEmpNo ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
nCurrPFAmount = 0 ;
dPFAmount = 0 ;
oEmployee = oEmps . Find ( delegate ( Employee oEmpItem ) { return oEmpItem . EmployeeNo = = odRow [ "EMPLOYEENO" ] . ToString ( ) . Trim ( ) ; } ) ;
DataRow [ ] odrosPF = oSalaryMonthlysDeduct . Tables [ 0 ] . Select ( " ItemCode='" + ( int ) EnumSalaryItemCode . PF_Contribution + "' AND EMPLOYEENO='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
if ( odrosPF . Length > 0 )
{
DataRow oRowPF = odrosPF [ 0 ] ;
nCurrPFAmount = Convert . ToDouble ( oRowPF [ "CHANGEDAMOUNT" ] ) * 2 ;
}
if ( oEmployee ! = null )
{
if ( _oGratuityParams . Count > 0 & & _oGratuityParams ! = null )
{
dGratuityAmount = GetGratuityAmount ( _oGratuityParams , oEmployee , salaryMonth ) ;
}
else
{
dGratuityAmount = 0 ;
}
dPFAmount = GetPFAmount ( oEmployee , salaryMonth ) ;
}
}
oRow [ "Gratuity" ] = dGratuityAmount ;
double nServiceLength = 0 ;
if ( oEmployee ! = null )
nServiceLength = ServiceYears ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , oEmployee ) ;
if ( nServiceLength > 5 )
{
//oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
oRow [ "PF" ] = ( dPFAmount + nCurrPFAmount ) ;
}
else
{
oRow [ "PF" ] = ( dPFAmount + nCurrPFAmount ) ;
}
nCount = nCount + 1 ;
employeeNo = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
sTEmpEmpNo = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
nCount = 0 ;
DataSet oSalaryMonthlysIncomeTax = SalaryMonthly . GetEmpPaySlipIncomeTaxAmountForOthers ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
string employeeNo1 = "" ;
DataRow [ ] odros1 = null ;
if ( oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo1 = oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros1 = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
foreach ( DataRow odRow in oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows )
{
oRow = null ;
if ( employeeNo1 ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros1 = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros1 . Length < = nCount ) continue ;
oRow = odros1 [ nCount ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . OtherItem ) & & ( Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = ( int ) EnumSalaryItemCode . Inc_Tax_Deduction ) )
oRow [ "IncomTaxAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
nCount = nCount + 1 ;
employeeNo1 = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
nCount = 0 ;
DataSet oSalaryMonthlysLaonAmount = SalaryMonthly . GetEmpPaySlipDeductForLR ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
string employeeNo12 = "" ;
DataRow [ ] odros12 = null ;
if ( oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo12 = oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros12 = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
foreach ( DataRow odRow in oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows )
{
oRow = null ;
if ( employeeNo12 ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros12 = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros12 . Length < = nCount ) continue ;
oRow = odros12 [ nCount ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Miscellaneous ) & & ( Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = ( int ) EnumSalaryItemCode . Loan_Remain_Balance ) )
{
oRow [ "LoanDescription" ] = odRow [ "Description" ] ;
oRow [ "LoanAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
nCount = nCount + 1 ;
employeeNo12 = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
bool isDesigFromEmp = ConfigurationManager . GetBoolValue ( "designation" , "desigfromdescriptiontext" , EnumConfigurationType . Logic ) ;
foreach ( DataRow row in PayslipData . Rows )
{
Employee oEmp = oEmps
. Where ( o = > o . EmployeeNo . ToUpper ( ) . Trim ( ) = = row [ "EMPLOYEENO" ] . ToString ( ) . ToUpper ( ) . Trim ( ) )
. SingleOrDefault ( ) ;
if ( oEmp ! = null )
{
if ( isDesigFromEmp )
{
row [ "Designation" ] = oEmp . DescriptionText ;
}
else
{
Designation oDesg = oDesigs . Where ( o = > o . ID = = oEmp . DesignationID ) . SingleOrDefault ( ) ;
if ( oDesg ! = null )
{
row [ "Designation" ] = oDesg . Name ;
}
}
}
}
basicInfo = dBasicInfoDset . Tables [ 0 ] ;
basicInfo . TableName = "BasicInfo" ;
//loanDT.TableName = "PayrollDataSet_LoanData";
//PayslipData.TableName = "PayrollDataSet_Payslip";
//oFDST.Tables.Add(PayslipData);
//oFDST.Tables.Add(loanDT);
//form.ShowDlgForPaySlipCiti1(_selectedParameter.ReportItem, oFDST);
DataSet dsSubReport = new DataSet ( ) ;
PayslipData . TableName = "SalaryMonthlysGross" ;
dsSubReport . Tables . Add ( PayslipData ) ;
form . ShowDlgForNewPaySlip ( _selectedParameter . ReportItem , basicInfo , dsSubReport , salaryMonth . ToString ( "MMMM yyyy" ) ) ;
}
public byte [ ] MailReport ( DateTime salaryMonth2 , string sEmpID2 )
{
DataSet dBasicInfoDset = null ;
DataSet oFDST = new DataSet ( ) ;
_oGratuityParams = ESBDefinition . Get ( ) ;
Employee oEmployee = null ;
ObjectsTemplate < Employee > oEmps = new ObjectsTemplate < Employee > ( ) ;
oEmps = Employee . Get ( ) ;
List < Designation > oDesigs = Designation . Get ( EnumStatus . Regardless ) ;
DataRow oRow = null ;
fReportViewer form = new fReportViewer ( ) ;
DateTime salaryMonth = salaryMonth2 ;
string sEmpID = sEmpID2 ;
ObjectsTemplate < SalaryProcess > oSaProcess = new ObjectsTemplate < SalaryProcess > ( ) ;
oSaProcess = SalaryProcess . Get ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) ) ;
//bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
dBasicInfoDset = Employee . GetEmpBasicInfoForPSlipNew ( sEmpID , GlobalFunctions . LastDateOfMonth ( salaryMonth ) ) ;
DataSet oSalaryMonthlysGross = SalaryMonthly . GetEmpPaySlipGrossForOthers ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
DataSet oSalaryMonthlysDeduct = SalaryMonthly . GetEmpPaySlipDeductForOthers ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
PayrollDataSet . PayrollDataSet . PayslipDataTable PayslipData = new Payroll . Report . PayrollDataSet . PayrollDataSet . PayslipDataTable ( ) ;
PayrollDataSet . PayrollDataSet . LoanDataDataTable loanDT = new Payroll . Report . PayrollDataSet . PayrollDataSet . LoanDataDataTable ( ) ;
//bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
DataTable basicInfo = new PayrollDataSet . PayrollDataSet . PayslipBasicInfoDataTable ( ) ;
_dSalaryMonth = GlobalFunctions . LastDateOfMonth ( salaryMonth ) ;
if ( oSaProcess ! = null & & oSaProcess . Count > 0 & & oSalaryMonthlysGross . Tables [ 0 ] . Rows . Count > 0 )
{
if ( oSaProcess [ 0 ] . PaymentDate ! = DateTime . MinValue )
{
_dMonthEndDate = Convert . ToDateTime ( oSaProcess [ 0 ] . PaymentDate ) ;
}
else
{
_dMonthEndDate = DateTime . MinValue ;
}
}
foreach ( DataRow odRow in oSalaryMonthlysGross . Tables [ 0 ] . Rows )
{
double dbl = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
if ( dbl = = 0 )
{
continue ;
}
if ( ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = EnumSalaryItemCode . Over_Time_Amount )
oRow = this . GetItem2 ( PayslipData , Convert . ToString ( odRow [ "EMPLOYEENO" ] ) , ( EnumSalaryGroup ) Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) , ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) , Convert . ToInt32 ( odRow [ "ItemID" ] ) , odRow [ "Description" ] . ToString ( ) . Trim ( ) ) ;
else
oRow = this . GetItem ( PayslipData , Convert . ToString ( odRow [ "EMPLOYEENO" ] ) , ( EnumSalaryGroup ) Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) , ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) , Convert . ToInt32 ( odRow [ "ItemID" ] ) ) ;
if ( oRow = = null )
{
oRow = PayslipData . NewRow ( ) ;
oRow = this . GrossMerge ( oRow , odRow ) ;
PayslipData . Rows . Add ( oRow ) ;
}
if ( ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = EnumSalaryItemCode . Over_Time_Amount )
{
DataRow oRow6 = this . GetItem2 ( oSalaryMonthlysGross . Tables [ 1 ] , Convert . ToString ( odRow [ "EMPLOYEENO" ] ) , EnumSalaryGroup . Miscellaneous , EnumSalaryItemCode . Over_Time_Hours , Convert . ToInt32 ( odRow [ "ItemID" ] ) , odRow [ "Description" ] . ToString ( ) . Replace ( " hour" , "" ) . Trim ( ) ) ;
if ( oRow6 ! = null )
{
if ( oRow [ "Description" ] . ToString ( ) . IndexOf ( '[' ) < 0 )
oRow [ "Description" ] + = " [" + Convert . ToDouble ( oRow6 [ "CHANGEDAMOUNT" ] ) . ToString ( "#" ) + " Hours]" ;
}
}
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Gross ) )
{
if ( oRow [ "Earning" ] . ToString ( ) ! = "" & & ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) ! = EnumSalaryItemCode . Over_Time_Amount )
{
oRow [ "Earning" ] = Convert . ToDouble ( oRow [ "Earning" ] ) + Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] ) ;
}
else
{
oRow [ "Earning" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
}
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Deductions ) & & ( Convert . ToInt32 ( odRow [ "ITEMID" ] ) = = ( int ) EnumSalaryItemCode . PF_Contribution ) )
{
if ( oRow [ "Earning" ] . ToString ( ) ! = "" )
{
oRow [ "Earning" ] = Convert . ToDouble ( oRow [ "Earning" ] ) + ( Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] ) ) ;
oRow [ "Description" ] = "Company PF Contribution" ;
}
else
{
oRow [ "Earning" ] = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] ) ;
oRow [ "Description" ] = "Company PF Contribution" ;
}
}
else if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Arrear ) )
{
double dArrear = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
oRow [ "Arrear" ] = dArrear ;
}
else if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . UnauthLeave ) )
{
oRow [ "unAuthLeave" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
}
//DataRow[] odrowsPF = oSalaryMonthlysDeduct.Tables[0].Select(" ItemCode='" + (int)EnumSalaryItemCode.PF_Contribution + "' AND EMPLOYEEID='" + Convert.ToInt32(sEmpID) + "'");
//if (odrowsPF.Length > 0)
//{
// DataRow orowPF = odrowsPF[0];
// if (Convert.ToDouble( orowPF["CHANGEDAMOUNT"].ToString()) >0)
// {
// oRow = PayslipData.NewRow();
// oRow = this.GrossMerge(oRow, orowPF);
// oRow["Description"] = "Company PF Contribution";
// oRow["Earning"] = Convert.ToDouble(orowPF["CHANGEDAMOUNT"]);
// PayslipData.Rows.Add(oRow);
// }
//}
int nCount = 0 ;
string employeeNo = "" ;
DataRow [ ] odros = null ;
if ( oSalaryMonthlysDeduct . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo = oSalaryMonthlysDeduct . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysDeduct . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
double dGratuityAmount = 0 ;
double dPFAmount = 0 ;
string sTEmpEmpNo = "" ;
double nCurrPFAmount = 0 ;
foreach ( DataRow odRow in oSalaryMonthlysDeduct . Tables [ 0 ] . Rows )
{
double dbl = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
if ( dbl = = 0 )
{
continue ;
}
oRow = null ;
if ( employeeNo ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros . Length < = nCount )
{
oRow = PayslipData . NewRow ( ) ;
oRow = this . GrossMerge ( oRow , odRow ) ;
PayslipData . Rows . Add ( oRow ) ;
}
else oRow = odros [ nCount ] ;
oRow [ "DeducDescription" ] = odRow [ "Description" ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Deductions ) )
{
if ( oRow [ "DeducDescription" ] . ToString ( ) . ToLower ( ) = = "pf contribution" )
oRow [ "DeducAmount" ] = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] ) * 2 ;
else
oRow [ "DeducAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
oRow [ "DeducDescription" ] = odRow [ "Description" ] ;
//oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
if ( sTEmpEmpNo = = "" | | sTEmpEmpNo ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
nCurrPFAmount = 0 ;
dPFAmount = 0 ;
oEmployee = oEmps . Find ( delegate ( Employee oEmpItem ) { return oEmpItem . EmployeeNo = = odRow [ "EMPLOYEENO" ] . ToString ( ) . Trim ( ) ; } ) ;
DataRow [ ] odrosPF = oSalaryMonthlysDeduct . Tables [ 0 ] . Select ( " ItemCode='" + ( int ) EnumSalaryItemCode . PF_Contribution + "' AND EMPLOYEENO='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
if ( odrosPF . Length > 0 )
{
DataRow oRowPF = odrosPF [ 0 ] ;
nCurrPFAmount = Convert . ToDouble ( oRowPF [ "CHANGEDAMOUNT" ] ) * 2 ;
}
if ( oEmployee ! = null )
{
if ( _oGratuityParams . Count > 0 & & _oGratuityParams ! = null )
{
dGratuityAmount = GetGratuityAmount ( _oGratuityParams , oEmployee , salaryMonth ) ;
}
else
{
dGratuityAmount = 0 ;
}
dPFAmount = GetPFAmount ( oEmployee , salaryMonth ) ;
}
}
oRow [ "Gratuity" ] = dGratuityAmount ;
double nServiceLength = 0 ;
if ( oEmployee ! = null )
nServiceLength = ServiceYears ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , oEmployee ) ;
if ( nServiceLength > 5 )
{
//oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
oRow [ "PF" ] = ( dPFAmount + nCurrPFAmount ) ;
}
else
{
oRow [ "PF" ] = ( dPFAmount + nCurrPFAmount ) ;
}
nCount = nCount + 1 ;
employeeNo = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
sTEmpEmpNo = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
nCount = 0 ;
DataSet oSalaryMonthlysIncomeTax = SalaryMonthly . GetEmpPaySlipIncomeTaxAmountForOthers ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
string employeeNo1 = "" ;
DataRow [ ] odros1 = null ;
if ( oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo1 = oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros1 = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
foreach ( DataRow odRow in oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows )
{
oRow = null ;
if ( employeeNo1 ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros1 = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros1 . Length < = nCount ) continue ;
oRow = odros1 [ nCount ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . OtherItem ) & & ( Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = ( int ) EnumSalaryItemCode . Inc_Tax_Deduction ) )
oRow [ "IncomTaxAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
nCount = nCount + 1 ;
employeeNo1 = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
nCount = 0 ;
DataSet oSalaryMonthlysLaonAmount = SalaryMonthly . GetEmpPaySlipDeductForLR ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
string employeeNo12 = "" ;
DataRow [ ] odros12 = null ;
if ( oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo12 = oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros12 = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
foreach ( DataRow odRow in oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows )
{
oRow = null ;
if ( employeeNo12 ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros12 = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros12 . Length < = nCount ) continue ;
oRow = odros12 [ nCount ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Miscellaneous ) & & ( Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = ( int ) EnumSalaryItemCode . Loan_Remain_Balance ) )
{
oRow [ "LoanDescription" ] = odRow [ "Description" ] ;
oRow [ "LoanAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
nCount = nCount + 1 ;
employeeNo12 = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
bool isDesigFromEmp = ConfigurationManager . GetBoolValue ( "designation" , "desigfromdescriptiontext" , EnumConfigurationType . Logic ) ;
foreach ( DataRow row in PayslipData . Rows )
{
Employee oEmp = oEmps
. Where ( o = > o . EmployeeNo . ToUpper ( ) . Trim ( ) = = row [ "EMPLOYEENO" ] . ToString ( ) . ToUpper ( ) . Trim ( ) )
. SingleOrDefault ( ) ;
if ( oEmp ! = null )
{
if ( isDesigFromEmp )
{
row [ "Designation" ] = oEmp . DescriptionText ;
}
else
{
Designation oDesg = oDesigs . Where ( o = > o . ID = = oEmp . DesignationID ) . SingleOrDefault ( ) ;
if ( oDesg ! = null )
{
row [ "Designation" ] = oDesg . Name ;
}
}
}
}
basicInfo = dBasicInfoDset . Tables [ 0 ] ;
basicInfo . TableName = "BasicInfo" ;
//loanDT.TableName = "PayrollDataSet_LoanData";
//PayslipData.TableName = "PayrollDataSet_Payslip";
//oFDST.Tables.Add(PayslipData);
//oFDST.Tables.Add(loanDT);
//form.ShowDlgForPaySlipCiti1(_selectedParameter.ReportItem, oFDST);
DataSet dsSubReport = new DataSet ( ) ;
PayslipData . TableName = "SalaryMonthlysGross" ;
dsSubReport . Tables . Add ( PayslipData ) ;
return form . MailNewPaySlip ( null , basicInfo , dsSubReport , salaryMonth . ToString ( "MMMM yyyy" ) ) ;
}
public void ShowReport ( SalaryMonthly oSalMonthly )
{
DataSet oFDST = new DataSet ( ) ;
//_oGratuityParams = ESBDefinition.Get();
Employee oEmployee = null ;
//ObjectsTemplate<Employee> oEmps = new ObjectsTemplate<Employee>();
//oEmps = Employee.Get();
List < Designation > oDesigs = Designation . Get ( EnumStatus . Regardless ) ;
List < Department > oDepts = Department . Get ( ) ;
List < Location > oLocs = Location . Get ( ) ;
List < Grade > oGrades = Grade . Get ( EnumStatus . Regardless ) ;
List < Category > oCategories = Category . Get ( EnumStatus . Regardless ) ;
List < Branch > oBranchs = Branch . Get ( EnumStatus . Regardless ) ;
// List<Department> oDepts = Department.Get();
fReportViewer form = new fReportViewer ( ) ;
DateTime salaryMonth = oSalMonthly . SalaryMonth ;
string sEmpID = oSalMonthly . EmployeeID . Integer . ToString ( ) ;
ObjectsTemplate < SalaryProcess > oSaProcess = new ObjectsTemplate < SalaryProcess > ( ) ;
oSaProcess = SalaryProcess . Get ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) ) ;
//bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
DataSet oSalaryMonthlysGross = SalaryMonthly . GetEmpPaySlipGrossForOthers ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
Employee emp = oSalMonthly . Employee ;
Designation deg = oDesigs . Find ( x = > x . ID = = oSalMonthly . DesignationID ) ;
Department dep = oDepts . Find ( x = > x . ID = = oSalMonthly . DepartmentID ) ;
Location loc = oLocs . Find ( x = > x . ID = = oSalMonthly . LocationID ) ;
Grade grd = oGrades . Find ( x = > x . ID = = oSalMonthly . GradeID ) ;
Category cat = oCategories . Find ( x = > x . ID = = oSalMonthly . CategoryID ) ;
Branch branch = oBranchs . Find ( x = > x . ID = = oSalMonthly . BranchID ) ;
try
{
foreach ( SalaryMonthlyDetail smd in oSalMonthly . Details )
{
if ( smd . itemGroupCode = = EnumSalaryGroup . Gross | | smd . itemGroupCode = = EnumSalaryGroup . UnauthLeave | | smd . itemGroupCode = = EnumSalaryGroup . Arrear )
{
oSalaryMonthlysGross . Tables [ 0 ] . Rows . Add (
emp . Name ,
emp . EmployeeNo ,
grd . Name ,
deg . Name ,
loc . Name ,
dep . Name ,
branch . Name ,
oSalMonthly . ThisMonthBasic ,
emp . PaymentMode ,
oSalMonthly . AccountNo ,
oSalMonthly . SalaryMonth ,
oSalMonthly . Remarks ,
smd . Description ,
smd . itemGroupCode ,
oSalMonthly . IsFinalized ,
smd . ChangedAmount ,
smd . ItemCode ,
smd . ItemID ,
cat . Name ,
emp . JoiningDate ,
emp . TinNo ,
oSalMonthly . DepartmentID . Integer
) ;
}
}
}
catch ( Exception exp )
{
}
PayrollDataSet . PayrollDataSet . PayslipDataTable PayslipData = new Payroll . Report . PayrollDataSet . PayrollDataSet . PayslipDataTable ( ) ;
PayrollDataSet . PayrollDataSet . LoanDataDataTable loanDT = new Payroll . Report . PayrollDataSet . PayrollDataSet . LoanDataDataTable ( ) ;
//bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
_dSalaryMonth = GlobalFunctions . LastDateOfMonth ( salaryMonth ) ;
//if (oSaProcess != null && oSaProcess.Count > 0 && oSalaryMonthlysGross.Tables[0].Rows.Count > 0)
//{
// if (oSaProcess[0].PaymentDate != DateTime.MinValue)
// {
// _dMonthEndDate = Convert.ToDateTime(oSaProcess[0].PaymentDate);
// }
// else
// {
// _dMonthEndDate = DateTime.MinValue;
// }
//}
foreach ( DataRow odRow in oSalaryMonthlysGross . Tables [ 0 ] . Rows )
{
double dbl = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
if ( dbl = = 0 )
{
continue ;
}
DataRow oRow = this . GetItem ( PayslipData , Convert . ToString ( odRow [ "EMPLOYEENO" ] ) , ( EnumSalaryGroup ) Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) , ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) , Convert . ToInt32 ( odRow [ "ItemID" ] ) ) ;
if ( oRow = = null )
{
oRow = PayslipData . NewRow ( ) ;
oRow = this . GrossMerge ( oRow , odRow ) ;
PayslipData . Rows . Add ( oRow ) ;
}
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Gross ) )
{
oRow [ "Earning" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
else if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Arrear ) )
{
double dArrear = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
oRow [ "Arrear" ] = dArrear ;
}
else if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . UnauthLeave ) )
{
oRow [ "unAuthLeave" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
}
int nCount = 0 ;
DataSet oSalaryMonthlysDeduct = SalaryMonthly . GetEmpPaySlipDeductForOthers ( GlobalFunctions . LastDateOfMonth ( salaryMonth . AddYears ( - 80 ) ) , sEmpID ) ;
foreach ( SalaryMonthlyDetail smd in oSalMonthly . Details )
{
if ( smd . itemGroupCode = = EnumSalaryGroup . Deductions )
{
oSalaryMonthlysDeduct . Tables [ 0 ] . Rows . Add (
emp . Name ,
emp . ID . Integer ,
emp . EmployeeNo ,
emp . JoiningDate ,
emp . TinNo ,
grd . Name ,
deg . Name ,
loc . Name ,
dep . Name ,
branch = = null ? "" : branch . Name ,
oSalMonthly . ThisMonthBasic ,
emp . PaymentMode ,
oSalMonthly . AccountNo ,
oSalMonthly . SalaryMonth ,
oSalMonthly . Remarks ,
smd . Description ,
smd . itemGroupCode ,
smd . ChangedAmount ,
smd . ItemCode ,
smd . ItemID
) ;
}
}
string employeeNo = "" ;
DataRow [ ] odros = null ;
if ( oSalaryMonthlysDeduct . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo = oSalaryMonthlysDeduct . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysDeduct . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
double dGratuityAmount = 0 ;
double dPFAmount = 0 ;
string sTEmpEmpNo = "" ;
double nCurrPFAmount = 0 ;
foreach ( DataRow odRow in oSalaryMonthlysDeduct . Tables [ 0 ] . Rows )
{
double dbl = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
if ( dbl = = 0 )
{
continue ;
}
DataRow oRow = null ;
if ( employeeNo ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros . Length < = nCount )
{
oRow = PayslipData . NewRow ( ) ;
oRow = this . GrossMerge ( oRow , odRow ) ;
PayslipData . Rows . Add ( oRow ) ;
}
else oRow = odros [ nCount ] ;
oRow [ "DeducDescription" ] = odRow [ "Description" ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Deductions ) )
{
if ( oRow [ "DeducDescription" ] . ToString ( ) . ToLower ( ) = = "pf contibution" )
oRow [ "DeducAmount" ] = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] ) * 2 ;
else
oRow [ "DeducAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
oRow [ "DeducDescription" ] = odRow [ "Description" ] ;
//oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
if ( sTEmpEmpNo = = "" | | sTEmpEmpNo ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
nCurrPFAmount = 0 ;
dPFAmount = 0 ;
oEmployee = emp ;
DataRow [ ] odrosPF = oSalaryMonthlysDeduct . Tables [ 0 ] . Select ( " ItemCode='" + ( int ) EnumSalaryItemCode . PF_Contribution + "' AND EMPLOYEENO='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
if ( odrosPF . Length > 0 )
{
DataRow oRowPF = odrosPF [ 0 ] ;
nCurrPFAmount = Convert . ToDouble ( oRowPF [ "CHANGEDAMOUNT" ] ) ;
}
if ( oEmployee ! = null )
{
//if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
//{
// dGratuityAmount = GetGratuityAmount(_oGratuityParams, oEmployee, salaryMonth);
//}
//else
//{
// dGratuityAmount = 0;
//}
dPFAmount = GetPFAmount ( oEmployee , salaryMonth ) ;
}
}
oRow [ "Gratuity" ] = dGratuityAmount ;
double nServiceLength = 0 ;
if ( oEmployee ! = null )
nServiceLength = ServiceYears ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , oEmployee ) ;
if ( nServiceLength > 5 )
{
//oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
oRow [ "PF" ] = dPFAmount + nCurrPFAmount ;
}
else
{
oRow [ "PF" ] = dPFAmount + nCurrPFAmount ;
}
nCount = nCount + 1 ;
employeeNo = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
sTEmpEmpNo = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
nCount = 0 ;
DataSet oSalaryMonthlysIncomeTax = SalaryMonthly . GetEmpPaySlipIncomeTaxAmountForOthers ( GlobalFunctions . LastDateOfMonth ( salaryMonth . AddYears ( - 80 ) ) , sEmpID ) ;
foreach ( SalaryMonthlyDetail smd in oSalMonthly . Details )
{
if ( smd . itemGroupCode = = EnumSalaryGroup . OtherItem | | smd . ItemCode = = EnumSalaryItemCode . Inc_Tax_Deduction | | smd . ItemCode = = EnumSalaryItemCode . Net_Payable )
{
oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows . Add (
emp . Name ,
emp . EmployeeNo ,
grd . Name ,
deg . Name ,
loc . Name ,
dep . Name ,
oSalMonthly . ThisMonthBasic ,
emp . PaymentMode ,
oSalMonthly . AccountNo ,
oSalMonthly . SalaryMonth ,
smd . Description ,
smd . itemGroupCode ,
smd . ChangedAmount ,
smd . ItemCode ,
smd . ItemID
) ;
}
}
string employeeNo1 = "" ;
DataRow [ ] odros1 = null ;
if ( oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo1 = oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros1 = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
foreach ( DataRow odRow in oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows )
{
DataRow oRow = null ;
if ( employeeNo1 ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros1 = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros1 . Length < = nCount ) continue ;
oRow = odros1 [ nCount ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . OtherItem ) & & ( Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = ( int ) EnumSalaryItemCode . Inc_Tax_Deduction ) )
oRow [ "IncomTaxAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
nCount = nCount + 1 ;
employeeNo1 = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
nCount = 0 ;
DataSet oSalaryMonthlysLaonAmount = SalaryMonthly . GetEmpPaySlipDeductForLR ( GlobalFunctions . LastDateOfMonth ( salaryMonth . AddYears ( - 80 ) ) , sEmpID ) ;
foreach ( SalaryMonthlyDetail smd in oSalMonthly . Details )
{
if ( smd . itemGroupCode = = EnumSalaryGroup . Miscellaneous | | smd . ItemCode = = EnumSalaryItemCode . Loan_Remain_Balance )
{
oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows . Add (
emp . Name ,
emp . EmployeeNo ,
grd . Name ,
deg . Name ,
loc . Name ,
dep . Name ,
branch = = null ? "" : branch . Name ,
oSalMonthly . ThisMonthBasic ,
emp . PaymentMode ,
oSalMonthly . AccountNo ,
oSalMonthly . SalaryMonth ,
smd . Description ,
smd . itemGroupCode ,
smd . ChangedAmount ,
smd . ItemCode ,
smd . ItemID
) ;
}
}
string employeeNo12 = "" ;
DataRow [ ] odros12 = null ;
if ( oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo12 = oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros12 = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
foreach ( DataRow odRow in oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows )
{
DataRow oRow = null ;
if ( employeeNo12 ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros12 = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros12 . Length < = nCount ) continue ;
oRow = odros12 [ nCount ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Miscellaneous ) & & ( Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = ( int ) EnumSalaryItemCode . Loan_Remain_Balance ) )
{
oRow [ "LoanDescription" ] = odRow [ "Description" ] ;
oRow [ "LoanAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
nCount = nCount + 1 ;
employeeNo12 = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
bool isDesigFromEmp = ConfigurationManager . GetBoolValue ( "designation" , "desigfromdescriptiontext" , EnumConfigurationType . Logic ) ;
foreach ( DataRow oRow in PayslipData . Rows )
{
Employee oEmp = emp ;
if ( oEmp ! = null )
{
if ( isDesigFromEmp )
{
oRow [ "Designation" ] = oEmp . DescriptionText ;
}
else
{
Designation oDesg = oDesigs . Where ( o = > o . ID = = oEmp . DesignationID ) . SingleOrDefault ( ) ;
if ( oDesg ! = null )
{
oRow [ "Designation" ] = oDesg . Name ;
}
}
}
}
loanDT . TableName = "PayrollDataSet_LoanData" ;
PayslipData . TableName = "PayrollDataSet_Payslip" ;
oFDST . Tables . Add ( PayslipData ) ;
oFDST . Tables . Add ( loanDT ) ;
form . ShowDlgForPaySlipCiti4 ( oFDST ) ;
}
public void ShowReportOld ( DateTime dtFrom , string sEmpIDs )
{
DataSet oFDST = new DataSet ( ) ;
_oGratuityParams = ESBDefinition . Get ( ) ;
Employee oEmployee = null ;
ObjectsTemplate < Employee > oEmps = new ObjectsTemplate < Employee > ( ) ;
oEmps = Employee . Get ( ) ;
List < Designation > oDesigs = Designation . Get ( EnumStatus . Regardless ) ;
fReportViewer form = new fReportViewer ( ) ;
DateTime salaryMonth = dtFrom ;
string sEmpID = sEmpIDs ;
ObjectsTemplate < SalaryProcess > oSaProcess = new ObjectsTemplate < SalaryProcess > ( ) ;
oSaProcess = SalaryProcess . Get ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) ) ;
//bool bIsProcess = SalaryMonthly.IsSalaryProcessed(SessionManager.CurrentEmployee.ID, _SalaryMonth);
DataSet oSalaryMonthlysGross = SalaryMonthly . GetEmpPaySlipGrossForOthersOld ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
PayrollDataSet . PayrollDataSet . PayslipDataTable PayslipData = new Payroll . Report . PayrollDataSet . PayrollDataSet . PayslipDataTable ( ) ;
PayrollDataSet . PayrollDataSet . LoanDataDataTable loanDT = new Payroll . Report . PayrollDataSet . PayrollDataSet . LoanDataDataTable ( ) ;
//bool IsApproved = oSaProcess.GetBySMonth(GlobalFunctions.LastDateOfMonth(salaryMonth));
_dSalaryMonth = GlobalFunctions . LastDateOfMonth ( salaryMonth ) ;
if ( oSaProcess ! = null & & oSaProcess . Count > 0 & & oSalaryMonthlysGross . Tables [ 0 ] . Rows . Count > 0 )
{
if ( oSaProcess [ 0 ] . PaymentDate ! = DateTime . MinValue )
{
_dMonthEndDate = Convert . ToDateTime ( oSaProcess [ 0 ] . PaymentDate ) ;
}
else
{
_dMonthEndDate = DateTime . MinValue ;
}
}
foreach ( DataRow odRow in oSalaryMonthlysGross . Tables [ 0 ] . Rows )
{
double dbl = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
if ( dbl = = 0 )
{
continue ;
}
DataRow oRow = this . GetItem ( PayslipData , Convert . ToString ( odRow [ "EMPLOYEENO" ] ) , ( EnumSalaryGroup ) Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) , ( EnumSalaryItemCode ) Convert . ToInt32 ( odRow [ "ItemCode" ] ) , Convert . ToInt32 ( odRow [ "ItemID" ] ) ) ;
if ( oRow = = null )
{
oRow = PayslipData . NewRow ( ) ;
oRow = this . GrossMerge ( oRow , odRow ) ;
PayslipData . Rows . Add ( oRow ) ;
}
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Gross ) )
{
oRow [ "Earning" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
else if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Arrear ) )
{
double dArrear = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
oRow [ "Arrear" ] = dArrear ;
}
else if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . UnauthLeave ) )
{
oRow [ "unAuthLeave" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
}
int nCount = 0 ;
DataSet oSalaryMonthlysDeduct = SalaryMonthly . GetEmpPaySlipDeductForOthersOld ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
string employeeNo = "" ;
DataRow [ ] odros = null ;
if ( oSalaryMonthlysDeduct . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo = oSalaryMonthlysDeduct . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysDeduct . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
double dGratuityAmount = 0 ;
double dPFAmount = 0 ;
string sTEmpEmpNo = "" ;
double nCurrPFAmount = 0 ;
foreach ( DataRow odRow in oSalaryMonthlysDeduct . Tables [ 0 ] . Rows )
{
double dbl = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
if ( dbl = = 0 )
{
continue ;
}
DataRow oRow = null ;
if ( employeeNo ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros . Length < = nCount )
{
oRow = PayslipData . NewRow ( ) ;
oRow = this . GrossMerge ( oRow , odRow ) ;
PayslipData . Rows . Add ( oRow ) ;
}
else oRow = odros [ nCount ] ;
oRow [ "DeducDescription" ] = odRow [ "Description" ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Deductions ) )
{
if ( oRow [ "DeducDescription" ] . ToString ( ) . ToLower ( ) = = "pf contibution" )
oRow [ "DeducAmount" ] = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] ) * 2 ;
else
oRow [ "DeducAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
oRow [ "DeducDescription" ] = odRow [ "Description" ] ;
//oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
if ( sTEmpEmpNo = = "" | | sTEmpEmpNo ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
nCurrPFAmount = 0 ;
dPFAmount = 0 ;
// oEmployee = oEmps.Find(delegate(Employee oEmpItem) { return oEmpItem.EmployeeNo == odRow["EMPLOYEENO"].ToString().Trim(); });
DataRow [ ] odrosPF = oSalaryMonthlysDeduct . Tables [ 0 ] . Select ( " ItemCode='" + ( int ) EnumSalaryItemCode . PF_Contribution + "' AND EMPLOYEENO='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
if ( odrosPF . Length > 0 )
{
DataRow oRowPF = odrosPF [ 0 ] ;
nCurrPFAmount = Convert . ToDouble ( oRowPF [ "CHANGEDAMOUNT" ] ) ;
}
//if (oEmployee != null)
//{
// if (_oGratuityParams.Count > 0 && _oGratuityParams != null)
// {
// dGratuityAmount = GetGratuityAmount(_oGratuityParams, oEmployee, salaryMonth);
// }
// else
// {
// dGratuityAmount = 0;
// }
// dPFAmount = GetPFAmount(oEmployee, salaryMonth);
//}
}
oRow [ "Gratuity" ] = dGratuityAmount ;
double nServiceLength = 0 ;
//if (oEmployee != null)
// nServiceLength = ServiceYears(GlobalFunctions.LastDateOfMonth(salaryMonth), oEmployee);
if ( nServiceLength > 5 )
{
//oRow["PF"] = dPFAmount + nCurrPFAmount * 2;
oRow [ "PF" ] = dPFAmount + nCurrPFAmount ;
}
else
{
oRow [ "PF" ] = dPFAmount + nCurrPFAmount ;
}
nCount = nCount + 1 ;
employeeNo = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
sTEmpEmpNo = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
nCount = 0 ;
DataSet oSalaryMonthlysIncomeTax = SalaryMonthly . GetEmpPaySlipIncomeTaxAmountForOthersOld ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
string employeeNo1 = "" ;
DataRow [ ] odros1 = null ;
if ( oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo1 = oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros1 = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
foreach ( DataRow odRow in oSalaryMonthlysIncomeTax . Tables [ 0 ] . Rows )
{
DataRow oRow = null ;
if ( employeeNo1 ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros1 = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros1 . Length < = nCount ) continue ;
oRow = odros1 [ nCount ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . OtherItem ) & & ( Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = ( int ) EnumSalaryItemCode . Inc_Tax_Deduction ) )
oRow [ "IncomTaxAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
nCount = nCount + 1 ;
employeeNo1 = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
nCount = 0 ;
DataSet oSalaryMonthlysLaonAmount = SalaryMonthly . GetEmpPaySlipDeductForLROld ( GlobalFunctions . LastDateOfMonth ( salaryMonth ) , sEmpID ) ;
string employeeNo12 = "" ;
DataRow [ ] odros12 = null ;
if ( oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows . Count > 0 )
{
employeeNo12 = oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
odros12 = PayslipData . Select ( " EmployeeNo='" + oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
foreach ( DataRow odRow in oSalaryMonthlysLaonAmount . Tables [ 0 ] . Rows )
{
DataRow oRow = null ;
if ( employeeNo12 ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
odros12 = PayslipData . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
nCount = 0 ;
}
if ( odros12 . Length < = nCount ) continue ;
oRow = odros12 [ nCount ] ;
if ( ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = ( int ) EnumSalaryGroup . Miscellaneous ) & & ( Convert . ToInt32 ( odRow [ "ItemCode" ] ) = = ( int ) EnumSalaryItemCode . Loan_Remain_Balance ) )
{
oRow [ "LoanDescription" ] = odRow [ "Description" ] ;
oRow [ "LoanAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
nCount = nCount + 1 ;
employeeNo12 = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
bool isDesigFromEmp = ConfigurationManager . GetBoolValue ( "designation" , "desigfromdescriptiontext" , EnumConfigurationType . Logic ) ;
//foreach (DataRow oRow in PayslipData.Rows)
//{
// Employee oEmp = oEmps
// .Where(o => o.EmployeeNo.ToUpper().Trim() == oRow["EMPLOYEENO"].ToString().ToUpper().Trim())
// .SingleOrDefault();
// if (oEmp != null)
// {
// if (isDesigFromEmp)
// {
// oRow["Designation"] = oEmp.DescriptionText;
// }
// else
// {
// Designation oDesg = oDesigs.Where(o => o.ID == oEmp.DesignationID).SingleOrDefault();
// if (oDesg != null)
// {
// oRow["Designation"] = oDesg.Name;
// }
// }
// }
//}
loanDT . TableName = "PayrollDataSet_LoanData" ;
PayslipData . TableName = "PayrollDataSet_Payslip" ;
oFDST . Tables . Add ( PayslipData ) ;
oFDST . Tables . Add ( loanDT ) ;
form . ShowDlgForPaySlipCiti1 ( null , oFDST ) ;
}
public void SKFExpencesPaySlip ( )
{
fReportViewer form = new fReportViewer ( ) ;
DateTime salaryMonth = _selectedParameter . FromDate . Value ;
DateTime fromDate = GlobalFunctions . FirstDateOfMonth ( salaryMonth ) ;
DateTime toDate = GlobalFunctions . LastDateOfMonth ( salaryMonth ) ;
string sEmpID = _selectedParameter . ReportItem . INSQL ;
DataRow odr = null ;
string month = salaryMonth . ToString ( "MMM-yyyy" ) ;
DataSet oDataset = new DataSet ( ) ;
DataSet oExpensesPSlipDSet = MiscellaneousDataset . GetExpensesPaySlipData ( fromDate , toDate , sEmpID ) ;
PayrollDataSet . PayrollDataSet . SKFExpencesPaySlipDataTable skfExpTable = new Payroll . Report . PayrollDataSet . PayrollDataSet . SKFExpencesPaySlipDataTable ( ) ;
foreach ( DataRow odrow in oExpensesPSlipDSet . Tables [ 0 ] . Rows )
{
odr = skfExpTable . NewRow ( ) ;
odr [ "EmpNo" ] = odrow [ "EmployeeNo" ] ;
odr [ "EmpName" ] = odrow [ "EmpName" ] ;
odr [ "Designation" ] = odrow [ "Designation" ] ;
odr [ "Department" ] = odrow [ "Department" ] ;
odr [ "AccountNo" ] = odrow [ "AccountNo" ] ;
odr [ "Tinno" ] = odrow [ "TinNo" ] ;
odr [ "JoiningDate" ] = odrow [ "JoiningDate" ] ;
odr [ "Grade" ] = odrow [ "Grade" ] ;
if ( ! odrow . IsNull ( "Utility Expenses" ) )
{
odr [ "UtilityExp" ] = odrow [ "Utility Expenses" ] ;
}
if ( ! odrow . IsNull ( "Leave Fare Assistance Expense" ) )
{
odr [ "LFAExp" ] = odrow [ "Leave Fare Assistance Expense" ] ;
}
if ( ! odrow . IsNull ( "Medical Expenses" ) )
{
odr [ "MedicalExp" ] = odrow [ "Medical Expenses" ] ;
}
if ( ! odrow . IsNull ( "Servant Allowances" ) )
{
odr [ "ServantAllow" ] = odrow [ "Servant Allowances" ] ;
}
if ( ! odrow . IsNull ( "Car Allowances/ Expenses" ) )
{
odr [ "CarAllow" ] = odrow [ "Car Allowances/ Expenses" ] ;
}
if ( ! odrow . IsNull ( "Driver Allowances" ) )
{
odr [ "DriverAllow" ] = odrow [ "Driver Allowances" ] ;
}
if ( ! odrow . IsNull ( "Security Allowances" ) )
{
odr [ "SecurityAllow" ] = odrow [ "Security Allowances" ] ;
}
if ( ! odrow . IsNull ( "Worker’ s Profit Participation Fund" ) )
{
odr [ "WPPFund" ] = odrow [ "Worker’ s Profit Participation Fund" ] ;
}
if ( ! odrow . IsNull ( "Manager’ s Telephone Expenses" ) )
{
odr [ "ManagerTelExp" ] = odrow [ "Manager’ s 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 ( "Worker’ s Profit Participation Fund" ) )
{
odr [ "WPPFund" ] = odrow [ "Worker’ s Profit Participation Fund" ] ;
}
if ( ! odrow . IsNull ( "Manager’ s Telephone Expenses" ) )
{
odr [ "ManagerTelExp" ] = odrow [ "Manager’ s 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 ) ;
}
2025-09-22 11:18:05 +06:00
public byte [ ] MailReportWithAccountNoMask ( DateTime salaryMonth2 , string sEmpID2 )
{
DataSet dataSet = null ;
DataSet dataSet2 = new DataSet ( ) ;
_oGratuityParams = ESBDefinition . Get ( ) ;
Employee employee = null ;
ObjectsTemplate < Employee > val = new ObjectsTemplate < Employee > ( ) ;
val = Employee . Get ( ) ;
List < Designation > source = ( List < Designation > ) ( object ) Designation . Get ( EnumStatus . Regardless ) ;
DataRow dataRow = null ;
fReportViewer fReportViewer2 = new fReportViewer ( ) ;
DateTime dateTime = salaryMonth2 ;
ObjectsTemplate < SalaryProcess > val2 = new ObjectsTemplate < SalaryProcess > ( ) ;
val2 = SalaryProcess . Get ( GlobalFunctions . LastDateOfMonth ( dateTime ) ) ;
dataSet = Employee . GetEmpBasicInfoForPSlipNew ( sEmpID2 , GlobalFunctions . LastDateOfMonth ( dateTime ) ) ;
if ( dataSet ! = null & & dataSet . Tables . Count > 0 )
{
DataTable dataTable = dataSet . Tables [ 0 ] ;
foreach ( DataRow row2 in dataTable . Rows )
{
string text = row2 [ "AccountNo" ] . ToString ( ) . Trim ( ) ;
if ( text . Length > = 6 )
{
string text2 = text . Substring ( 0 , 3 ) ;
string text3 = text . Substring ( text . Length - 3 ) ;
row2 [ "AccountNo" ] = text2 + "******" + text3 ;
}
else
{
row2 [ "AccountNo" ] = text ;
}
}
}
//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();
DataSet empPaySlipGrossForOthers = SalaryMonthly . GetEmpPaySlipGrossForOthers ( GlobalFunctions . LastDateOfMonth ( dateTime ) , sEmpID2 ) ;
DataSet empPaySlipDeductForOthers = SalaryMonthly . GetEmpPaySlipDeductForOthers ( GlobalFunctions . LastDateOfMonth ( dateTime ) , sEmpID2 ) ;
PayrollDataSet . PayrollDataSet . PayslipDataTable payslipDataTable = new PayrollDataSet . PayrollDataSet . PayslipDataTable ( ) ;
PayrollDataSet . PayrollDataSet . LoanDataDataTable loanDataDataTable = new PayrollDataSet . PayrollDataSet . LoanDataDataTable ( ) ;
DataTable dataTable2 = new PayrollDataSet . PayrollDataSet . PayslipBasicInfoDataTable ( ) ;
_dSalaryMonth = GlobalFunctions . LastDateOfMonth ( dateTime ) ;
if ( val2 ! = null & & ( ( List < SalaryProcess > ) ( object ) val2 ) . Count > 0 & & empPaySlipGrossForOthers . Tables [ 0 ] . Rows . Count > 0 )
{
if ( ( ( List < SalaryProcess > ) ( object ) val2 ) [ 0 ] . PaymentDate ! = DateTime . MinValue )
{
_dMonthEndDate = Convert . ToDateTime ( ( ( List < SalaryProcess > ) ( object ) val2 ) [ 0 ] . PaymentDate ) ;
}
else
{
_dMonthEndDate = DateTime . MinValue ;
}
}
foreach ( DataRow row3 in empPaySlipGrossForOthers . Tables [ 0 ] . Rows )
{
double num = Convert . ToDouble ( row3 [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
if ( num = = 0.0 )
{
continue ;
}
dataRow = ( ( Convert . ToInt32 ( row3 [ "ItemCode" ] ) ! = - 103 ) ? GetItem ( payslipDataTable , Convert . ToString ( row3 [ "EMPLOYEENO" ] ) , ( EnumSalaryGroup ) Convert . ToInt32 ( row3 [ "ITEMGROUP" ] ) , ( EnumSalaryItemCode ) Convert . ToInt32 ( row3 [ "ItemCode" ] ) , Convert . ToInt32 ( row3 [ "ItemID" ] ) ) : GetItem2 ( payslipDataTable , Convert . ToString ( row3 [ "EMPLOYEENO" ] ) , ( EnumSalaryGroup ) Convert . ToInt32 ( row3 [ "ITEMGROUP" ] ) , ( EnumSalaryItemCode ) Convert . ToInt32 ( row3 [ "ItemCode" ] ) , Convert . ToInt32 ( row3 [ "ItemID" ] ) , row3 [ "Description" ] . ToString ( ) . Trim ( ) ) ) ;
if ( dataRow = = null )
{
dataRow = payslipDataTable . NewRow ( ) ;
dataRow = GrossMerge ( dataRow , row3 ) ;
payslipDataTable . Rows . Add ( dataRow ) ;
}
if ( Convert . ToInt32 ( row3 [ "ItemCode" ] ) = = - 103 )
{
DataRow item = GetItem2 ( empPaySlipGrossForOthers . Tables [ 1 ] , Convert . ToString ( row3 [ "EMPLOYEENO" ] ) , EnumSalaryGroup . Miscellaneous , EnumSalaryItemCode . Over_Time_Hours , Convert . ToInt32 ( row3 [ "ItemID" ] ) , row3 [ "Description" ] . ToString ( ) . Replace ( " hour" , "" ) . Trim ( ) ) ;
if ( item ! = null & & dataRow [ "Description" ] . ToString ( ) . IndexOf ( '[' ) < 0 )
{
DataRow dataRow4 = dataRow ;
dataRow4 [ "Description" ] = dataRow4 [ "Description" ] ? . ToString ( ) + " [" + Convert . ToDouble ( item [ "CHANGEDAMOUNT" ] ) . ToString ( "#" ) + " Hours]" ;
}
}
if ( Convert . ToInt32 ( row3 [ "ITEMGROUP" ] ) = = 1 )
{
if ( dataRow [ "Earning" ] . ToString ( ) ! = "" & & Convert . ToInt32 ( row3 [ "ItemCode" ] ) ! = - 103 )
{
dataRow [ "Earning" ] = Convert . ToDouble ( dataRow [ "Earning" ] ) + Convert . ToDouble ( row3 [ "CHANGEDAMOUNT" ] ) ;
}
else
{
dataRow [ "Earning" ] = row3 [ "CHANGEDAMOUNT" ] ;
}
}
if ( Convert . ToInt32 ( row3 [ "ITEMGROUP" ] ) = = 3 & & Convert . ToInt32 ( row3 [ "ITEMID" ] ) = = - 128 )
{
if ( dataRow [ "Earning" ] . ToString ( ) ! = "" )
{
dataRow [ "Earning" ] = Convert . ToDouble ( dataRow [ "Earning" ] ) + Convert . ToDouble ( row3 [ "CHANGEDAMOUNT" ] ) ;
dataRow [ "Description" ] = "Company PF Contribution" ;
}
else
{
dataRow [ "Earning" ] = Convert . ToDouble ( row3 [ "CHANGEDAMOUNT" ] ) ;
dataRow [ "Description" ] = "Company PF Contribution" ;
}
}
else if ( Convert . ToInt32 ( row3 [ "ITEMGROUP" ] ) = = 8 )
{
double num2 = Convert . ToDouble ( row3 [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
dataRow [ "Arrear" ] = num2 ;
}
else if ( Convert . ToInt32 ( row3 [ "ITEMGROUP" ] ) = = 2 )
{
dataRow [ "unAuthLeave" ] = row3 [ "CHANGEDAMOUNT" ] ;
}
}
int num3 = 0 ;
string text4 = "" ;
DataRow [ ] array = null ;
if ( empPaySlipDeductForOthers . Tables [ 0 ] . Rows . Count > 0 )
{
text4 = empPaySlipDeductForOthers . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
array = payslipDataTable . Select ( " EmployeeNo='" + empPaySlipDeductForOthers . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
double num4 = 0.0 ;
double num5 = 0.0 ;
string text5 = "" ;
double num6 = 0.0 ;
foreach ( DataRow odRow in empPaySlipDeductForOthers . Tables [ 0 ] . Rows )
{
double num7 = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] . ToString ( ) ) ;
if ( num7 = = 0.0 )
{
continue ;
}
dataRow = null ;
if ( text4 ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
array = payslipDataTable . Select ( " EmployeeNo='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
num3 = 0 ;
}
if ( array . Length < = num3 )
{
dataRow = payslipDataTable . NewRow ( ) ;
dataRow = GrossMerge ( dataRow , odRow ) ;
payslipDataTable . Rows . Add ( dataRow ) ;
}
else
{
dataRow = array [ num3 ] ;
}
dataRow [ "DeducDescription" ] = odRow [ "Description" ] ;
if ( Convert . ToInt32 ( odRow [ "ITEMGROUP" ] ) = = 3 )
{
if ( dataRow [ "DeducDescription" ] . ToString ( ) . ToLower ( ) = = "pf contribution" )
{
dataRow [ "DeducAmount" ] = Convert . ToDouble ( odRow [ "CHANGEDAMOUNT" ] ) * 2.0 ;
}
else
{
dataRow [ "DeducAmount" ] = odRow [ "CHANGEDAMOUNT" ] ;
}
}
dataRow [ "DeducDescription" ] = odRow [ "Description" ] ;
if ( text5 = = "" | | text5 ! = odRow [ "EMPLOYEENO" ] . ToString ( ) )
{
num6 = 0.0 ;
num5 = 0.0 ;
employee = ( ( List < Employee > ) ( object ) val ) . Find ( ( Predicate < Employee > ) ( ( Employee oEmpItem ) = > oEmpItem . EmployeeNo = = odRow [ "EMPLOYEENO" ] . ToString ( ) . Trim ( ) ) ) ;
DataRow [ ] array2 = empPaySlipDeductForOthers . Tables [ 0 ] . Select ( " ItemCode='" + - 128 + "' AND EMPLOYEENO='" + odRow [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
if ( array2 . Length ! = 0 )
{
DataRow dataRow5 = array2 [ 0 ] ;
num6 = Convert . ToDouble ( dataRow5 [ "CHANGEDAMOUNT" ] ) * 2.0 ;
}
if ( ( ObjectTemplate ) ( object ) employee ! = ( ObjectTemplate ) null )
{
num4 = ( ( ( ( List < ESBDefinition > ) ( object ) _oGratuityParams ) . Count < = 0 | | _oGratuityParams = = null ) ? 0.0 : GetGratuityAmount ( _oGratuityParams , employee , dateTime ) ) ;
num5 = GetPFAmount ( employee , dateTime ) ;
}
}
dataRow [ "Gratuity" ] = num4 ;
double num8 = 0.0 ;
if ( ( ObjectTemplate ) ( object ) employee ! = ( ObjectTemplate ) null )
{
num8 = ServiceYears ( GlobalFunctions . LastDateOfMonth ( dateTime ) , employee ) ;
}
if ( num8 > 5.0 )
{
dataRow [ "PF" ] = num5 + num6 ;
}
else
{
dataRow [ "PF" ] = num5 + num6 ;
}
num3 + + ;
text4 = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
text5 = odRow [ "EMPLOYEENO" ] . ToString ( ) ;
}
num3 = 0 ;
DataSet empPaySlipIncomeTaxAmountForOthers = SalaryMonthly . GetEmpPaySlipIncomeTaxAmountForOthers ( GlobalFunctions . LastDateOfMonth ( dateTime ) , sEmpID2 ) ;
string text6 = "" ;
DataRow [ ] array3 = null ;
if ( empPaySlipIncomeTaxAmountForOthers . Tables [ 0 ] . Rows . Count > 0 )
{
text6 = empPaySlipIncomeTaxAmountForOthers . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
array3 = payslipDataTable . Select ( " EmployeeNo='" + empPaySlipIncomeTaxAmountForOthers . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
foreach ( DataRow row4 in empPaySlipIncomeTaxAmountForOthers . Tables [ 0 ] . Rows )
{
dataRow = null ;
if ( text6 ! = row4 [ "EMPLOYEENO" ] . ToString ( ) )
{
array3 = payslipDataTable . Select ( " EmployeeNo='" + row4 [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
num3 = 0 ;
}
if ( array3 . Length > num3 )
{
dataRow = array3 [ num3 ] ;
if ( Convert . ToInt32 ( row4 [ "ITEMGROUP" ] ) = = 5 & & Convert . ToInt32 ( row4 [ "ItemCode" ] ) = = - 129 )
{
dataRow [ "IncomTaxAmount" ] = row4 [ "CHANGEDAMOUNT" ] ;
}
num3 + + ;
text6 = row4 [ "EMPLOYEENO" ] . ToString ( ) ;
}
}
num3 = 0 ;
DataSet empPaySlipDeductForLR = SalaryMonthly . GetEmpPaySlipDeductForLR ( GlobalFunctions . LastDateOfMonth ( dateTime ) , sEmpID2 ) ;
string text7 = "" ;
DataRow [ ] array4 = null ;
if ( empPaySlipDeductForLR . Tables [ 0 ] . Rows . Count > 0 )
{
text7 = empPaySlipDeductForLR . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) ;
array4 = payslipDataTable . Select ( " EmployeeNo='" + empPaySlipDeductForLR . Tables [ 0 ] . Rows [ 0 ] [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
}
foreach ( DataRow row5 in empPaySlipDeductForLR . Tables [ 0 ] . Rows )
{
dataRow = null ;
if ( text7 ! = row5 [ "EMPLOYEENO" ] . ToString ( ) )
{
array4 = payslipDataTable . Select ( " EmployeeNo='" + row5 [ "EMPLOYEENO" ] . ToString ( ) + "'" ) ;
num3 = 0 ;
}
if ( array4 . Length > num3 )
{
dataRow = array4 [ num3 ] ;
if ( Convert . ToInt32 ( row5 [ "ITEMGROUP" ] ) = = 4 & & Convert . ToInt32 ( row5 [ "ItemCode" ] ) = = - 126 )
{
dataRow [ "LoanDescription" ] = row5 [ "Description" ] ;
dataRow [ "LoanAmount" ] = row5 [ "CHANGEDAMOUNT" ] ;
}
num3 + + ;
text7 = row5 [ "EMPLOYEENO" ] . ToString ( ) ;
}
}
bool boolValue = ConfigurationManager . GetBoolValue ( "designation" , "desigfromdescriptiontext" , EnumConfigurationType . Logic ) ;
foreach ( DataRow row in payslipDataTable . Rows )
{
Employee oEmp = ( ( IEnumerable < Employee > ) val ) . Where ( ( Employee o ) = > o . EmployeeNo . ToUpper ( ) . Trim ( ) = = row [ "EMPLOYEENO" ] . ToString ( ) . ToUpper ( ) . Trim ( ) ) . SingleOrDefault ( ) ;
if ( ! ( ( ObjectTemplate ) ( object ) oEmp ! = ( ObjectTemplate ) null ) )
{
continue ;
}
if ( boolValue )
{
row [ "Designation" ] = oEmp . DescriptionText ;
continue ;
}
Designation designation = source . Where ( ( Designation o ) = > ( ( ObjectTemplate ) o ) . ID = = oEmp . DesignationID ) . SingleOrDefault ( ) ;
if ( ( ObjectTemplate ) ( object ) designation ! = ( ObjectTemplate ) null )
{
row [ "Designation" ] = designation . Name ;
}
}
dataTable2 = dataSet . Tables [ 0 ] ;
dataTable2 . TableName = "BasicInfo" ;
DataSet dataSet3 = new DataSet ( ) ;
payslipDataTable . TableName = "SalaryMonthlysGross" ;
dataSet3 . Tables . Add ( payslipDataTable ) ;
return fReportViewer2 . MailNewPaySlip ( null , dataTable2 , dataSet3 , dateTime . ToString ( "MMMM yyyy" ) ) ;
}
2025-08-06 14:31:52 +06:00
}
}