3402 lines
154 KiB
C#
3402 lines
154 KiB
C#
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);
|
||
}
|
||
}
|
||
}
|
||
|
||
|