1609 lines
81 KiB
C#
1609 lines
81 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Ease.Core.Model;
|
|
using HRM.BO;
|
|
using HRM.DA;
|
|
using Microsoft.Reporting.NETCore;
|
|
|
|
namespace HRM.Report
|
|
{
|
|
public class rptJV
|
|
{
|
|
DateTime _dEffectDate;
|
|
|
|
//public byte[] ShowMultipleTaxCard(string sEmpIDs, bool ITStatus, int nTaxParamID, int systemTaxParamID, DateTime nextPayProcessDate, int payrollTypeID, string reportType)
|
|
public byte[] showJVLoactionWReport(int JVTypeID, DateTime dEffectDate, int? nLocID, int payrollTypeID, string reportType)
|
|
{
|
|
ReportProcessor reportProcessor = new ReportProcessor();
|
|
string RDLCName = null;
|
|
|
|
|
|
|
|
DataSet ds = new DataSet();
|
|
|
|
DataTable dt = this.JVLoactionWReport(JVTypeID, dEffectDate, nLocID, payrollTypeID);
|
|
dt.TableName = "PayrollDataSet_JVLoactionWReport";
|
|
ds.Tables.Add(dt);
|
|
//DataSet dsSub = new DataSet();
|
|
|
|
//bool otherInvestment = false;
|
|
//SystemInformation systemInformation = new SystemInformationService().Get();
|
|
//if (systemInformation.name == "SGS Bangladesh Limited")
|
|
// otherInvestment = true;
|
|
|
|
List<ReportParameter> _parameters = new List<ReportParameter>();
|
|
|
|
//ReportParameter parameter = new ReportParameter("AssesmentYear", _taxParameter.AssessmentYear);
|
|
//_parameters.Add(parameter);
|
|
|
|
//parameter = new ReportParameter("FiscalYear", _taxParameter.FiscalYear);
|
|
//_parameters.Add(parameter);
|
|
|
|
//parameter = new ReportParameter("OtherInvestment", otherInvestment.ToString());
|
|
//_parameters.Add(parameter);
|
|
|
|
RDLCName = "JVLoactionWReport.rdlc";
|
|
|
|
return reportProcessor.CommonReportViewForReports(null, ds, null, RDLCName, _parameters, true, payrollTypeID, reportType);
|
|
//return reportProcessor.CommonReportView(null, RDLCName, ds, dsSub, _parameters, true, payrollTypeID, reportType);
|
|
}
|
|
public DataTable JVLoactionWReport(int JVTypeID, DateTime dEffectDate, int? nLocID, int payrolltypeId)
|
|
{
|
|
_dEffectDate = dEffectDate;
|
|
DataRow dr = null;
|
|
PayrollDataSet.PayrollDataSet.JVLoactionWReportDataTable dTJVInfo = new PayrollDataSet.PayrollDataSet.JVLoactionWReportDataTable();
|
|
|
|
//JVSetup osetp = new JVSetupService();
|
|
DateTime maxdate = new JVSetupService().GetMaxDate(_dEffectDate, payrolltypeId);
|
|
|
|
List<JVSetup> oJVSetups = new List<JVSetup>();
|
|
oJVSetups = new JVSetupService().GetByJVTypeAndEffectDate(JVTypeID, maxdate);
|
|
|
|
//bool earnedBasic = new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic, "pf", "earnedbasic");
|
|
//int earnedBasic = new SystemConfigarationService().GetconfigIntValue(EnumConfigurationType.Logic, "Location", "tier");
|
|
|
|
//int nLocationTire = ConfigurationManager.GetIntValue("Location", "tier", EnumConfigurationType.Logic);
|
|
int nLocationTire = new SystemConfigarationService().GetconfigIntValue(EnumConfigurationType.Logic, "Location", "tier");
|
|
|
|
List<Location> oLocations = new List<Location>();
|
|
oLocations = new LocationService().GetByTier(2); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
//int nCCTire = ConfigurationManager.GetIntValue("costcenter", "tier", EnumConfigurationType.Logic);
|
|
int nCCTire = new SystemConfigarationService().GetconfigIntValue(EnumConfigurationType.Logic, "costcenter", "tier");
|
|
List<Costcenter> oCostCenters = new List<Costcenter>();
|
|
oCostCenters = new CostcenterService().GetByTire(nCCTire, payrolltypeId); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
List<SalaryMonthly> salaries = new SalaryMonthlyService().Get(GlobalFunctions.LastDateOfMonth(dEffectDate), payrolltypeId);
|
|
//List<Employee> employees = new EmployeeService().GetAllEmps(payrolltypeId);
|
|
List<Employee> employees = new EmployeeService().GetWithDiscontinue(payrolltypeId);
|
|
|
|
string sEmpID = "";
|
|
foreach (SalaryMonthly sm in salaries)
|
|
{
|
|
sm.Employee = employees.Find(x => x.ID == sm.EmployeeID);
|
|
|
|
sm.CostCentersInvolments = new SalaryMonthlyService().GetForCC(sm.ID);
|
|
|
|
if (sEmpID == "")
|
|
sEmpID += sm.Employee.ID.ToString();
|
|
//sEmpID += sm.EmployeeID.ToString();
|
|
else
|
|
sEmpID += "," + sm.Employee.ID.ToString();
|
|
}
|
|
DataSet oSalarySheets = null;
|
|
oSalarySheets = new SalaryMonthlyService().GetSGSSalarySheet(GlobalFunctions.LastDateOfMonth(dEffectDate), sEmpID);
|
|
PayrollDataSet.PayrollDataSet.SalarySheetDataTable dTSalarySheet = new PayrollDataSet.PayrollDataSet.SalarySheetDataTable();
|
|
DataRow oDR = null;
|
|
foreach (DataRow source in oSalarySheets.Tables[0].Rows)
|
|
{
|
|
if ((Convert.ToInt32(source["ItemID"]) == -101 && Convert.ToInt32(source["ItemCode"]) == -101) ||
|
|
(Convert.ToInt32(source["ItemID"]) == 2 && Convert.ToInt32(source["ItemCode"]) == -113) ||
|
|
(Convert.ToInt32(source["ItemID"]) == 1 && Convert.ToInt32(source["ItemCode"]) == -113) ||
|
|
(Convert.ToInt32(source["ItemID"]) == 10 && Convert.ToInt32(source["ItemCode"]) == -113))
|
|
{
|
|
SalaryMonthly osalary = null;
|
|
if (nLocID == null)
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
else
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
if (osalary != null)
|
|
{
|
|
foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
{
|
|
if (ecc.Percentage == 0) continue;
|
|
oDR = dTJVInfo.NewRow();
|
|
this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
dTJVInfo.Rows.Add(oDR);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
foreach (DataRow source in oSalarySheets.Tables[1].Rows)
|
|
{
|
|
SalaryMonthly osalary = null;
|
|
if (nLocID == null)
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
else
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
if (osalary != null)
|
|
{
|
|
foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
{
|
|
if (ecc.Percentage == 0) continue;
|
|
oDR = dTJVInfo.NewRow();
|
|
this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
dTJVInfo.Rows.Add(oDR);
|
|
}
|
|
}
|
|
}
|
|
foreach (DataRow source in oSalarySheets.Tables[0].Rows)
|
|
{
|
|
if ((Convert.ToInt32(source["ItemID"]) == -101 && Convert.ToInt32(source["ItemCode"]) == -101) ||
|
|
(Convert.ToInt32(source["ItemID"]) == 2 && Convert.ToInt32(source["ItemCode"]) == -113) ||
|
|
(Convert.ToInt32(source["ItemID"]) == 1 && Convert.ToInt32(source["ItemCode"]) == -113) ||
|
|
(Convert.ToInt32(source["ItemID"]) == 10 && Convert.ToInt32(source["ItemCode"]) == -113))
|
|
{
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
SalaryMonthly osalary = null;
|
|
if (nLocID == null)
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
else
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
if (osalary != null)
|
|
{
|
|
foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
{
|
|
if (ecc.Percentage == 0) continue;
|
|
oDR = dTJVInfo.NewRow();
|
|
this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
dTJVInfo.Rows.Add(oDR);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
foreach (DataRow source in oSalarySheets.Tables[2].Rows)
|
|
{
|
|
SalaryMonthly osalary = null;
|
|
if (nLocID == null)
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
else
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
if (osalary != null)
|
|
{
|
|
foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
{
|
|
if (ecc.Percentage == 0) continue;
|
|
oDR = dTJVInfo.NewRow();
|
|
this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
dTJVInfo.Rows.Add(oDR);
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach (DataRow source in oSalarySheets.Tables[3].Rows)
|
|
{
|
|
SalaryMonthly osalary = null;
|
|
if (nLocID == null)
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
else
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
if (osalary != null)
|
|
{
|
|
foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
{
|
|
if (ecc.Percentage == 0) continue;
|
|
oDR = dTJVInfo.NewRow();
|
|
this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
dTJVInfo.Rows.Add(oDR);
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach (DataRow source in oSalarySheets.Tables[4].Rows)
|
|
{
|
|
SalaryMonthly osalary = null;
|
|
if (nLocID == null)
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
else
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
if (osalary != null)
|
|
{
|
|
foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
{
|
|
if (ecc.Percentage == 0) continue;
|
|
oDR = dTJVInfo.NewRow();
|
|
this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
dTJVInfo.Rows.Add(oDR);
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach (DataRow source in oSalarySheets.Tables[5].Rows)
|
|
{
|
|
SalaryMonthly osalary = null;
|
|
if (nLocID == null)
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
else
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
if (osalary != null)
|
|
{
|
|
foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
{
|
|
if (ecc.Percentage == 0) continue;
|
|
oDR = dTJVInfo.NewRow();
|
|
this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
dTJVInfo.Rows.Add(oDR);
|
|
}
|
|
}
|
|
}
|
|
foreach (DataRow source in oSalarySheets.Tables[6].Rows)
|
|
{
|
|
SalaryMonthly osalary = null;
|
|
if (nLocID == null)
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
else
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
if (osalary != null)
|
|
{
|
|
foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
{
|
|
if (ecc.Percentage == 0) continue;
|
|
oDR = dTJVInfo.NewRow();
|
|
this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
dTJVInfo.Rows.Add(oDR);
|
|
}
|
|
}
|
|
}
|
|
foreach (DataRow source in oSalarySheets.Tables[7].Rows)
|
|
{
|
|
SalaryMonthly osalary = null;
|
|
if (nLocID == null)
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
else
|
|
osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
if (osalary != null)
|
|
{
|
|
foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
{
|
|
if (ecc.Percentage == 0) continue;
|
|
oDR = dTJVInfo.NewRow();
|
|
this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
dTJVInfo.Rows.Add(oDR);
|
|
}
|
|
}
|
|
}
|
|
//foreach(Location oLocation in oLocations)
|
|
//{
|
|
// foreach(Costcenter oCC in oCostCenters)
|
|
// {
|
|
// foreach (JVSetup osetup in oJVSetups)
|
|
// {
|
|
// foreach (SalaryMonthly osalary in salaries)
|
|
// {
|
|
// if (osalary.LocationID == oLocation.ID)
|
|
// {
|
|
// double percent = SalaryEmpCostCenter.InvolvedPercent(osalary.CostCentersInvolments, oCC.ID);
|
|
// if (percent == 0) continue;
|
|
// dr = dTJVInfo.NewRow();
|
|
// dr["Location"] = oLocation.Name;
|
|
// dr["CostCenter"] = oCC.Name;
|
|
// dr["EmpNo"] = osalary.Employee.EmployeeNo;
|
|
// dr["Name"] = osalary.Employee.Name;
|
|
// dr["Description"] = osetup.Description;
|
|
// dr["Amount"] = osetup.GetAmount(osalary) * percent/100;
|
|
// dr["JVMonth"] = dEffectDate;
|
|
// dTJVInfo.Rows.Add(dr);
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|
|
DataView dv = dTJVInfo.DefaultView;
|
|
//dv.Sort = "Tier,CostCenterCode,Description";
|
|
DataTable sortedDT = dv.ToTable();
|
|
return sortedDT;
|
|
}
|
|
private void CopySS(DataRow source, DataRow destination, SalaryMonthly osalary, List<Location> oLocations, List<Costcenter> oCostCenters, double nPercentage, int nCCID, DateTime dEffectDate)
|
|
{
|
|
Location loc = oLocations.Find(x => x.ID == osalary.LocationID);
|
|
double nAmount = Convert.ToDouble(destination["Amount"]);
|
|
source["Location"] = loc == null ? "" : loc.Name;
|
|
Costcenter cc = oCostCenters.Find(x => x.ID == nCCID);
|
|
string costCenter = string.Empty;
|
|
if (cc != null)
|
|
{
|
|
costCenter = cc.Code + "-" + cc.Name;
|
|
source["CostCenter"] = costCenter;
|
|
}
|
|
else
|
|
{
|
|
source["CostCenter"] = costCenter;
|
|
}
|
|
source["CostCenterCode"] = cc == null ? "" : cc.Code.Trim();
|
|
//source["CostCenter"] = cc == null ? "" : cc.Name;
|
|
source["EmpNo"] = destination["EMPLOYEENO"];
|
|
source["Name"] = destination["Name"];
|
|
source["Description"] = destination["Description"];
|
|
source["Amount"] = nAmount * nPercentage / 100;
|
|
source["JVMonth"] = dEffectDate;
|
|
}
|
|
|
|
|
|
public byte[] showJVSummaryReport(int JVTypeID, DateTime dEffectDate, int? nLocID, int payrollTypeID, string reportType)
|
|
{
|
|
ReportProcessor reportProcessor = new ReportProcessor();
|
|
string RDLCName = null;
|
|
|
|
|
|
|
|
DataSet ds = new DataSet();
|
|
|
|
DataTable dt = this.JVLoactionWReport(JVTypeID, dEffectDate, nLocID, payrollTypeID);
|
|
dt.TableName = "PayrollDataSet_JVSummaryReport";
|
|
ds.Tables.Add(dt);
|
|
|
|
List<ReportParameter> _parameters = null;
|
|
|
|
RDLCName = "JVSummaryReport.rdlc";
|
|
|
|
return reportProcessor.CommonReportViewForReports(null, ds, null, RDLCName, _parameters, true, payrollTypeID, reportType);
|
|
//return reportProcessor.CommonReportView(null, RDLCName, ds, dsSub, _parameters, true, payrollTypeID, reportType);
|
|
}
|
|
|
|
//public DataTable JVLoactionWReport(int JVTypeID, DateTime dEffectDate, int nLocID, int payrolltypeId)
|
|
//{
|
|
// _dEffectDate = dEffectDate;
|
|
// DataRow dr = null;
|
|
// PayrollDataSet.PayrollDataSet.JVLoactionWReportDataTable dTJVInfo = new PayrollDataSet.PayrollDataSet.JVLoactionWReportDataTable();
|
|
|
|
// DateTime maxdate = new JVSetupService().GetMaxDate(_dEffectDate, payrolltypeId);
|
|
|
|
// JVSetup osetp = new JVSetup();
|
|
// List<JVSetup> oJVSetups = new List<JVSetup>();
|
|
// oJVSetups = new JVSetupService().GetByJVTypeAndEffectDate(JVTypeID, maxdate);
|
|
|
|
// int nLocationTire = ConfigurationManager.GetIntValue("Location", "tier", EnumConfigurationType.Logic);
|
|
// List<Location> oLocations = new List<Location>();
|
|
// oLocations = new LocationService().GetByTier(2); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
// int nCCTire = ConfigurationManager.GetIntValue("costcenter", "tier", EnumConfigurationType.Logic);
|
|
// List<Costcenter> oCostCenters = new List<Costcenter>();
|
|
// oCostCenters = new CostcenterService().GetByTire(nCCTire, payrolltypeId); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
// List<SalaryMonthly> salaries = new SalaryMonthlyService().Get(GlobalFunctions.LastDateOfMonth(dEffectDate), payrolltypeId);
|
|
// string sEmpID = "";
|
|
// foreach (SalaryMonthly sm in salaries)
|
|
// {
|
|
// if (sEmpID == "")
|
|
// sEmpID += sm.Employee.ID.ToString();
|
|
// else
|
|
// sEmpID += "," + sm.Employee.ID.ToString();
|
|
// }
|
|
// DataSet oSalarySheets = null;
|
|
// oSalarySheets = new SalaryMonthlyService().GetSGSSalarySheet(GlobalFunctions.LastDateOfMonth(dEffectDate), sEmpID);
|
|
// PayrollDataSet.PayrollDataSet.SalarySheetDataTable dTSalarySheet = new PayrollDataSet.PayrollDataSet.SalarySheetDataTable();
|
|
// DataRow oDR = null;
|
|
// foreach (DataRow source in oSalarySheets.Tables[0].Rows)
|
|
// {
|
|
// SalaryMonthly osalary = null;
|
|
// if (nLocID == null)
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
// else
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
// if (osalary != null)
|
|
// {
|
|
// foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
// {
|
|
// if (ecc.Percentage == 0) continue;
|
|
// oDR = dTJVInfo.NewRow();
|
|
// this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
// dTJVInfo.Rows.Add(oDR);
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// foreach (DataRow source in oSalarySheets.Tables[1].Rows)
|
|
// {
|
|
// SalaryMonthly osalary = null;
|
|
// if (nLocID == null)
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
// else
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
// if (osalary != null)
|
|
// {
|
|
// foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
// {
|
|
// if (ecc.Percentage == 0) continue;
|
|
// oDR = dTJVInfo.NewRow();
|
|
// this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
// dTJVInfo.Rows.Add(oDR);
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// foreach (DataRow source in oSalarySheets.Tables[2].Rows)
|
|
// {
|
|
// SalaryMonthly osalary = null;
|
|
// if (nLocID == null)
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
// else
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
// if (osalary != null)
|
|
// {
|
|
// foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
// {
|
|
// if (ecc.Percentage == 0) continue;
|
|
// oDR = dTJVInfo.NewRow();
|
|
// this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
// dTJVInfo.Rows.Add(oDR);
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// foreach (DataRow source in oSalarySheets.Tables[3].Rows)
|
|
// {
|
|
// SalaryMonthly osalary = null;
|
|
// if (nLocID == null)
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
// else
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
// if (osalary != null)
|
|
// {
|
|
// foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
// {
|
|
// if (ecc.Percentage == 0) continue;
|
|
// oDR = dTJVInfo.NewRow();
|
|
// this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
// dTJVInfo.Rows.Add(oDR);
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// foreach (DataRow source in oSalarySheets.Tables[4].Rows)
|
|
// {
|
|
// SalaryMonthly osalary = null;
|
|
// if (nLocID == null)
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
// else
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
// if (osalary != null)
|
|
// {
|
|
// foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
// {
|
|
// if (ecc.Percentage == 0) continue;
|
|
// oDR = dTJVInfo.NewRow();
|
|
// this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
// dTJVInfo.Rows.Add(oDR);
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// foreach (DataRow source in oSalarySheets.Tables[5].Rows)
|
|
// {
|
|
// SalaryMonthly osalary = null;
|
|
// if (nLocID == null)
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
// else
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
// if (osalary != null)
|
|
// {
|
|
// foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
// {
|
|
// if (ecc.Percentage == 0) continue;
|
|
// oDR = dTJVInfo.NewRow();
|
|
// this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
// dTJVInfo.Rows.Add(oDR);
|
|
// }
|
|
// }
|
|
// }
|
|
// foreach (DataRow source in oSalarySheets.Tables[6].Rows)
|
|
// {
|
|
// SalaryMonthly osalary = null;
|
|
// if (nLocID == null)
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
// else
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
// if (osalary != null)
|
|
// {
|
|
// foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
// {
|
|
// if (ecc.Percentage == 0) continue;
|
|
// oDR = dTJVInfo.NewRow();
|
|
// this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
// dTJVInfo.Rows.Add(oDR);
|
|
// }
|
|
// }
|
|
// }
|
|
// foreach (DataRow source in oSalarySheets.Tables[7].Rows)
|
|
// {
|
|
// SalaryMonthly osalary = null;
|
|
// if (nLocID == null)
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString());
|
|
// else
|
|
// osalary = salaries.Find(x => x.Employee.EmployeeNo == source["EMPLOYEENO"].ToString() && x.LocationID == nLocID);
|
|
// if (osalary != null)
|
|
// {
|
|
// foreach (SalaryEmpCostCenter ecc in osalary.CostCentersInvolments)
|
|
// {
|
|
// if (ecc.Percentage == 0) continue;
|
|
// oDR = dTJVInfo.NewRow();
|
|
// this.CopySS(oDR, source, osalary, oLocations, oCostCenters, ecc.Percentage, ecc.CostCenterID, _dEffectDate);
|
|
// dTJVInfo.Rows.Add(oDR);
|
|
// }
|
|
// }
|
|
// }
|
|
// //foreach(Location oLocation in oLocations)
|
|
// //{
|
|
// // foreach(Costcenter oCC in oCostCenters)
|
|
// // {
|
|
// // foreach (JVSetup osetup in oJVSetups)
|
|
// // {
|
|
// // foreach (SalaryMonthly osalary in salaries)
|
|
// // {
|
|
// // if (osalary.LocationID == oLocation.ID)
|
|
// // {
|
|
// // double percent = SalaryEmpCostCenter.InvolvedPercent(osalary.CostCentersInvolments, oCC.ID);
|
|
// // if (percent == 0) continue;
|
|
// // dr = dTJVInfo.NewRow();
|
|
// // dr["Location"] = oLocation.Name;
|
|
// // dr["CostCenter"] = oCC.Name;
|
|
// // dr["EmpNo"] = osalary.Employee.EmployeeNo;
|
|
// // dr["Name"] = osalary.Employee.Name;
|
|
// // dr["Description"] = osetup.Description;
|
|
// // dr["Amount"] = osetup.GetAmount(osalary) * percent/100;
|
|
// // dr["JVMonth"] = dEffectDate;
|
|
// // dTJVInfo.Rows.Add(dr);
|
|
// // }
|
|
// // }
|
|
// // }
|
|
// // }
|
|
// //}
|
|
// DataView dv = dTJVInfo.DefaultView;
|
|
// dv.Sort = "Tier,CostCenterCode,Description";
|
|
// DataTable sortedDT = dv.ToTable();
|
|
// return sortedDT;
|
|
//}
|
|
|
|
public byte[] showJVSalaryDetailEmployeeWReport(int JVTypeID, DateTime dEffectDate, int? nLocID, int payrollTypeID, string reportType)
|
|
{
|
|
ReportProcessor reportProcessor = new ReportProcessor();
|
|
string RDLCName = null;
|
|
|
|
|
|
|
|
DataSet ds = new DataSet();
|
|
|
|
DataTable dt = this.JVSalaryDetail(JVTypeID, dEffectDate, payrollTypeID);
|
|
dt.TableName = "PayrollDataSet_JVSalaryDetail";
|
|
ds.Tables.Add(dt);
|
|
|
|
List<ReportParameter> _parameters = null;
|
|
|
|
RDLCName = "JVSalaryDetail.rdlc";
|
|
|
|
return reportProcessor.CommonReportViewForReports(null, ds, null, RDLCName, _parameters, true, payrollTypeID, reportType);
|
|
//return reportProcessor.CommonReportView(null, RDLCName, ds, dsSub, _parameters, true, payrollTypeID, reportType);
|
|
}
|
|
public DataTable JVSalaryDetail(int JVTypeID, DateTime dEffectDate, int payrolltypeId)
|
|
{
|
|
int count = 1;
|
|
_dEffectDate = dEffectDate;
|
|
DataRow dr = null;
|
|
PayrollDataSet.PayrollDataSet.JVSalaryDetailDataTable dTJVSDetail = new PayrollDataSet.PayrollDataSet.JVSalaryDetailDataTable();
|
|
JVSetup osetp = new JVSetup();
|
|
DateTime maxdate = new JVSetupService().GetMaxDate(_dEffectDate, payrolltypeId);
|
|
|
|
List<JVSetup> oJVSetups = new List<JVSetup>();
|
|
oJVSetups = new JVSetupService().GetByJVTypeAndEffectDate(JVTypeID, maxdate);
|
|
|
|
//int nLocationTire = ConfigurationManager.GetIntValue("Location", "tier", EnumConfigurationType.Logic);
|
|
int nLocationTire = new SystemConfigarationService().GetconfigIntValue(EnumConfigurationType.Logic, "Location", "tier");
|
|
List<Location> oLocations = new List<Location>();
|
|
oLocations = new LocationService().GetByTier(2); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
//int nCCTire = new SystemConfigarationService().GetconfigIntValue(EnumConfigurationType.Logic, "costcenter", "tier");
|
|
int nCCTire = new SystemConfigarationService().GetconfigIntValue(EnumConfigurationType.Logic, "costcenter", "tier");
|
|
List<Costcenter> oCostCenters = new List<Costcenter>();
|
|
oCostCenters = new CostcenterService().GetByTire(nCCTire, payrolltypeId); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
|
|
List<SalaryMonthly> salaries = new SalaryMonthlyService().Get(GlobalFunctions.LastDateOfMonth(dEffectDate), payrolltypeId);
|
|
|
|
List<JVSetupDetail> oJVSetupDetail = new JVSetupDetailService().Get();
|
|
foreach (SalaryMonthly item in salaries)
|
|
{
|
|
item.Employee = new EmployeeService().Get(item.EmployeeID);
|
|
foreach (JVSetup osetup in oJVSetups)
|
|
{
|
|
//List<JVSetupDetail> oJVSetupDetail = new JVSetupDetailService().GetByJVSetup(osetup.ID);
|
|
JVSetupDetail itemDetail = oJVSetupDetail.Find(x=> x.JVSetupID == osetup.ID);
|
|
dr = dTJVSDetail.NewRow();
|
|
dr["SLNo"] = count;
|
|
dr["EmpNo"] = item.Employee.EmployeeNo;
|
|
dr["Name"] = item.Employee.Name;
|
|
dr["Description"] = osetup.Description;
|
|
//dr["Amount"] = new JVSetupService().GetAmount(item, oJVSetupDetail);
|
|
dr["Amount"] = this.GetAmount(item, itemDetail);
|
|
dr["JVMonth"] = dEffectDate;
|
|
dTJVSDetail.Rows.Add(dr);
|
|
}
|
|
count++;
|
|
}
|
|
return dTJVSDetail;
|
|
|
|
}
|
|
|
|
public double GetAmount(SalaryMonthly salary, JVSetupDetail oItem)
|
|
{
|
|
double nAmount = 0;
|
|
//foreach (JVSetupDetail oItem in JVSetupDetails)
|
|
//{
|
|
switch (oItem.JVItemType)
|
|
{
|
|
case enumPayrollComponentType.Basic_salary:
|
|
nAmount = nAmount + new SalaryMonthlyService().GetGrossAmount(EnumSalaryItemCode.Basic_Salary, (int)EnumSalaryItemCode.Basic_Salary, salary.Details);
|
|
break;
|
|
case enumPayrollComponentType.Allowance:
|
|
nAmount = nAmount + new SalaryMonthlyService().GetGrossAmount(EnumSalaryItemCode.Allowance, oItem.ItemID, salary.Details);
|
|
break;
|
|
case enumPayrollComponentType.Deduction:
|
|
nAmount = nAmount + new SalaryMonthlyService().GetDeductAmount(EnumSalaryItemCode.Deduction, oItem.ItemID, salary.Details);
|
|
break;
|
|
case enumPayrollComponentType.Over_Time:
|
|
nAmount = nAmount + new SalaryMonthlyService().GetGrossAmount(EnumSalaryItemCode.Over_Time_Amount, oItem.ItemID, salary.Details);
|
|
break;
|
|
case enumPayrollComponentType.Bonus:
|
|
nAmount = nAmount + new SalaryMonthlyService().GetGrossAmount(EnumSalaryItemCode.Bonus, oItem.ItemID, salary.Details);
|
|
break;
|
|
case enumPayrollComponentType.Loan:
|
|
nAmount = nAmount + this.GetAmountValue(EnumSalaryGroup.Deductions, EnumSalaryItemCode.Loan_Monthly_Installment, oItem.ItemID, salary.Details);
|
|
break;
|
|
case enumPayrollComponentType.PF:
|
|
nAmount = nAmount + this.GetAmountValue(EnumSalaryGroup.Deductions, EnumSalaryItemCode.PF_Contribution, (int)EnumSalaryItemCode.PF_Contribution, salary.Details);
|
|
break;
|
|
case enumPayrollComponentType.Gratuity:
|
|
//nAmount = nAmount + new SalaryMonthlyService().GetAmount(EnumSalaryGroup.Deductions, EnumSalaryItemCode., oItem.ItemID);
|
|
break;
|
|
case enumPayrollComponentType.IncomeTax:
|
|
nAmount = nAmount + this.GetAmountValue(EnumSalaryGroup.Deductions, EnumSalaryItemCode.Inc_Tax_Deduction, (int)EnumSalaryItemCode.Inc_Tax_Deduction, salary.Details);
|
|
break;
|
|
case enumPayrollComponentType.Net_pay:
|
|
if (salary.BranchID != null && oItem.ItemID == salary.BranchID)
|
|
nAmount = nAmount + this.GetAmountValue(EnumSalaryGroup.OtherItem, EnumSalaryItemCode.Net_Payable, (int)EnumSalaryItemCode.Net_Payable, salary.Details);
|
|
break;
|
|
case enumPayrollComponentType.OPI:
|
|
nAmount = nAmount + this.GetAmountValue(EnumSalaryGroup.OtherItem, EnumSalaryItemCode.OPI, oItem.ItemID, salary.Details);
|
|
break;
|
|
case enumPayrollComponentType.Final_settlement:
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
//}
|
|
return nAmount;
|
|
}
|
|
public double GetAmountValue(EnumSalaryGroup groupcode, EnumSalaryItemCode itemCode, int itemId, List<SalaryMonthlyDetail> Details)
|
|
{
|
|
double amount = 0;
|
|
foreach (SalaryMonthlyDetail item in Details)
|
|
{
|
|
if (item.ItemCode == itemCode && item.itemGroupCode == groupcode && item.ItemID == itemId)
|
|
amount = amount + item.ChangedAmount;
|
|
}
|
|
return amount;
|
|
}
|
|
#region Old
|
|
//DateTime _dEffectDate;
|
|
//private ReportSetup _selectedParameter;
|
|
//public ReportSetup SelectedParameter
|
|
//{
|
|
// set
|
|
// {
|
|
// _selectedParameter = value;
|
|
// }
|
|
//}
|
|
//public rptJV()
|
|
//{
|
|
|
|
//}
|
|
//public DataTable JVSalaryDetail(ID JVTypeID, DateTime dEffectDate)
|
|
//{
|
|
// int count = 1;
|
|
// _dEffectDate = dEffectDate;
|
|
// DataRow dr = null;
|
|
// PayrollDataSet.PayrollDataSet.JVSalaryDetailDataTable dTJVSDetail = new Payroll.Report.PayrollDataSet.PayrollDataSet.JVSalaryDetailDataTable();
|
|
// JVSetup osetp = new JVSetup();
|
|
// DateTime maxdate = osetp.GetMaxDate(_dEffectDate);
|
|
|
|
// List<JVSetup> oJVSetups = new List<JVSetup>();
|
|
// oJVSetups = JVSetup.GetByJVTypeAndEffectDate(JVTypeID, maxdate);
|
|
|
|
// int nLocationTire = ConfigurationManager.GetIntValue("Location", "tier", EnumConfigurationType.Logic);
|
|
// List<Location> oLocations = new List<Location>();
|
|
// oLocations = Location.GetByTier(2); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
// int nCCTire = ConfigurationManager.GetIntValue("costcenter", "tier", EnumConfigurationType.Logic);
|
|
// List<Costcenter> oCostCenters = new List<Costcenter>();
|
|
// oCostCenters = Costcenter.GetByTire(nCCTire); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
|
|
// List<SalaryMonthly> salaries = SalaryMonthly.Get(GlobalFunctions.LastDateOfMonth(dEffectDate));
|
|
|
|
// foreach (SalaryMonthly item in salaries)
|
|
// {
|
|
// foreach (JVSetup osetup in oJVSetups)
|
|
// {
|
|
// dr = dTJVSDetail.NewRow();
|
|
// dr["SLNo"] = count;
|
|
// dr["EmpNo"] = item.Employee.EmployeeNo;
|
|
// dr["Name"] = item.Employee.Name;
|
|
// dr["Description"] = osetup.Description;
|
|
// dr["Amount"] = osetup.GetAmount(item);
|
|
// dr["JVMonth"] = dEffectDate;
|
|
// dTJVSDetail.Rows.Add(dr);
|
|
// }
|
|
// count++;
|
|
// }
|
|
// return dTJVSDetail;
|
|
|
|
//}
|
|
|
|
//public DataSet MemorandumSalaryDetail(ID JVTypeID, DateTime dEffectDate, int nEmpID)
|
|
//{
|
|
// DataSet oDS = new DataSet();
|
|
// _dEffectDate = dEffectDate;
|
|
// DataRow drDebit = null;
|
|
// DataRow drCredit = null;
|
|
|
|
// PayrollDataSet.PayrollDataSet.MemoDebitDataTable dTMemoDebit = new Payroll.Report.PayrollDataSet.PayrollDataSet.MemoDebitDataTable();
|
|
// PayrollDataSet.PayrollDataSet.MemoCreditDataTable dTMemoCredit = new Payroll.Report.PayrollDataSet.PayrollDataSet.MemoCreditDataTable();
|
|
|
|
// string sEmpID = Convert.ToString(nEmpID);
|
|
|
|
// JVSetup osetp = new JVSetup();
|
|
// DateTime maxdate = osetp.GetMaxDate(_dEffectDate);
|
|
|
|
// List<JVSetup> oJVSetups = new List<JVSetup>();
|
|
// oJVSetups = JVSetup.GetByJVTypeAndEffectDate(JVTypeID, maxdate);
|
|
|
|
// //sEmpID,
|
|
// List<SalaryMonthly> salaries = SalaryMonthly.Get(GlobalFunctions.LastDateOfMonth(dEffectDate));
|
|
|
|
// string sFGLCode = "";
|
|
// double dFAmount = 0.0;
|
|
|
|
// List<JVSetup> oJVSetupDebits = new List<JVSetup>();
|
|
// List<JVSetup> oJVSetupCredits = new List<JVSetup>();
|
|
|
|
// foreach (JVSetup oJVItem in oJVSetups)
|
|
// {
|
|
// if (oJVItem.Side == (int)EnumTranSide.Debit)
|
|
// {
|
|
// oJVSetupDebits.Add(oJVItem);
|
|
// }
|
|
// else if (oJVItem.Side == (int)EnumTranSide.Credit)
|
|
// {
|
|
// oJVSetupCredits.Add(oJVItem);
|
|
// }
|
|
// }
|
|
|
|
// double ItemDebitHeadAmount = 0.0;
|
|
// foreach (JVSetup oJVDebit in oJVSetupDebits)
|
|
// {
|
|
// ItemDebitHeadAmount = 0.0;
|
|
// if (oJVDebit.ID == 1)
|
|
// {
|
|
// sFGLCode = oJVDebit.GLCode;
|
|
|
|
// }
|
|
// drDebit = dTMemoDebit.NewRow();
|
|
// drDebit["DDescription"] = oJVDebit.Description;
|
|
// drDebit["DAccount"] = oJVDebit.GLCode;
|
|
|
|
// drDebit["FGLDes"] = sFGLCode;
|
|
|
|
// foreach (SalaryMonthly oSM in salaries)
|
|
// {
|
|
// //if (oJVDebit.ID == 1)
|
|
// // dFAmount = oJVDebit.GetAmount(oSM);
|
|
|
|
// ItemDebitHeadAmount += oJVDebit.GetAmount(oSM, oJVDebit.JVSetupDetails);
|
|
// }
|
|
// if (oJVDebit.ID == 1)
|
|
// drDebit["FGLAmount"] = Convert.ToString(ItemDebitHeadAmount);
|
|
|
|
// drDebit["DAmount"] = ItemDebitHeadAmount;
|
|
// dTMemoDebit.Rows.Add(drDebit);
|
|
// }
|
|
|
|
|
|
// double ItemCreditHeadAmount = 0.0;
|
|
// foreach (JVSetup oJVCredit in oJVSetupCredits)
|
|
// {
|
|
// ItemCreditHeadAmount = 0.0;
|
|
// drCredit = dTMemoCredit.NewRow();
|
|
// //drCredit = dTMemoCredit.NewRow();
|
|
// drCredit["CDescription"] = oJVCredit.Description;
|
|
// drCredit["CAccount"] = oJVCredit.GLCode;
|
|
|
|
// foreach (SalaryMonthly oSM in salaries)
|
|
// {
|
|
// ItemCreditHeadAmount += oJVCredit.GetAmount(oSM, oJVCredit.JVSetupDetails);
|
|
// }
|
|
// drCredit["CAmount"] = ItemCreditHeadAmount;
|
|
// dTMemoCredit.Rows.Add(drCredit);
|
|
// }
|
|
|
|
|
|
|
|
// //foreach (SalaryMonthly item in salaries)
|
|
// //{
|
|
// // foreach (JVSetup osetup in oJVSetups)
|
|
// // {
|
|
// // if(osetup.ID==1)
|
|
// // {
|
|
// // sFGLCode = osetup.GLCode;
|
|
// // dFAmount = osetup.GetAmount(item);
|
|
// // }
|
|
|
|
// // if(osetup.Side==(int)EnumTranSide.Debit)
|
|
// // {
|
|
// // drDebit = dTMemoDebit.NewRow();
|
|
// // drDebit["DDescription"] = osetup.Description;
|
|
// // drDebit["DAccount"] = osetup.GLCode;
|
|
// // drDebit["DAmount"] = osetup.GetAmount(item);
|
|
// // drDebit["FGLDes"] = sFGLCode;
|
|
// // drDebit["FGLAmount"] = Convert.ToString(dFAmount);
|
|
// // dTMemoDebit.Rows.Add(drDebit);
|
|
|
|
// // }
|
|
// // else if (osetup.Side == (int)EnumTranSide.Credit)
|
|
// // {
|
|
// // drCredit = dTMemoCredit.NewRow();
|
|
// // drCredit["CDescription"] = osetup.Description;
|
|
// // drCredit["CAccount"] = osetup.GLCode;
|
|
// // drCredit["CAmount"] = osetup.GetAmount(item);
|
|
// // dTMemoCredit.Rows.Add(drCredit);
|
|
// // }
|
|
// // }
|
|
// // count++;
|
|
// //}
|
|
|
|
|
|
|
|
// DolarRate oDRate = new DolarRate();
|
|
// oDRate = oDRate.Get(GlobalFunctions.LastDateOfMonth(_dEffectDate));
|
|
|
|
// if (oDRate != null)
|
|
// {
|
|
// drDebit = dTMemoDebit.NewRow();
|
|
// drDebit["DDescription"] = oDRate.DDescription;
|
|
// drDebit["DAccount"] = oDRate.DAccountNo;
|
|
// drDebit["DAmount"] = (oDRate.Amount * oDRate.Rate);
|
|
// dTMemoDebit.Rows.Add(drDebit);
|
|
|
|
// drCredit = dTMemoCredit.NewRow();
|
|
// drCredit["CDescription"] = oDRate.DDescription;
|
|
// drCredit["CAccount"] = oDRate.DAccountNo;
|
|
// drCredit["CAmount"] = (oDRate.Amount * oDRate.Rate);
|
|
// dTMemoCredit.Rows.Add(drCredit);
|
|
// }
|
|
|
|
|
|
// dTMemoDebit.TableName = "PayrollDataSet_MemoDebit";
|
|
// dTMemoCredit.TableName = "PayrollDataSet_MemoCredit";
|
|
// oDS.Tables.Add(dTMemoDebit);
|
|
// oDS.Tables.Add(dTMemoCredit);
|
|
// return oDS;
|
|
|
|
//}
|
|
|
|
//public DataTable JVReport(ID JVTypeID, DateTime dEffectDate)
|
|
//{
|
|
// _dEffectDate = dEffectDate;
|
|
// DataRow dr = null;
|
|
// double nAmount = 0.0;
|
|
// PayrollDataSet.PayrollDataSet.JVReportDataTable dTJVInfo = new Payroll.Report.PayrollDataSet.PayrollDataSet.JVReportDataTable();
|
|
|
|
// JVSetup osetp = new JVSetup();
|
|
// DateTime maxdate = osetp.GetMaxDate(_dEffectDate);
|
|
|
|
// List<JVSetup> oJVSetups = new List<JVSetup>();
|
|
// oJVSetups = JVSetup.GetByJVTypeAndEffectDate(JVTypeID, maxdate);
|
|
|
|
// List<JVSetupDetail> oJVSetupDetails = new List<JVSetupDetail>();
|
|
|
|
// int nLocationTire = ConfigurationManager.GetIntValue("Location", "tier", EnumConfigurationType.Logic);
|
|
// List<Location> oLocations = new List<Location>();
|
|
// oLocations = Location.GetByTier(2); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
// int nCCTire = ConfigurationManager.GetIntValue("costcenter", "tier", EnumConfigurationType.Logic);
|
|
// List<Costcenter> oCostCenters = new List<Costcenter>();
|
|
// oCostCenters = Costcenter.GetByTire(nCCTire); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
// List<SalaryMonthly> salaries = SalaryMonthly.Get(dEffectDate);
|
|
// foreach (JVSetup oJVSetup in oJVSetups)
|
|
// {
|
|
// foreach (Costcenter oCC in oCostCenters)
|
|
// {
|
|
// foreach (Location oLocation in oLocations)
|
|
// {
|
|
// nAmount = 0.0;
|
|
// nAmount = GetSalaries(oLocation.ID, oCC.ID, salaries, oJVSetup);
|
|
// if (nAmount == 0) continue;
|
|
// oJVSetupDetails = JVSetupDetail.GetByJVSetup(oJVSetup.ID);
|
|
// dr = dTJVInfo.NewRow();
|
|
// dr["GLCode"] = oJVSetup.GLCode;
|
|
// dr["GLDescription"] = oJVSetup.Description;
|
|
// dr["JType"] = "GJ";
|
|
// dr["JSource"] = "MA";
|
|
// dr["Reference"] = "110001";
|
|
// dr["JVDate"] = dEffectDate.ToString("dd MMM yyyy");
|
|
|
|
// if (oJVSetup.Side == (int)EnumTranSide.Debit)
|
|
// {
|
|
// dr["JVTranType"] = "D";
|
|
// }
|
|
// else if (oJVSetup.Side == (int)EnumTranSide.Credit)
|
|
// {
|
|
// dr["JVTranType"] = "C";
|
|
// }
|
|
// dr["Amount"] = GlobalFunctions.Round(nAmount);
|
|
// dr["Period"] = dEffectDate.ToString("dd MMM yyyy");
|
|
// if (oCC.Parent.Code == "106X")
|
|
// {
|
|
// dr["T5"] = oCC.Code;
|
|
// }
|
|
// else
|
|
// {
|
|
// dr["T5"] = "XX";
|
|
// }
|
|
// dr["CostCenter"] = oCC.Parent.Code;
|
|
// dr["Location"] = oLocation.Code;
|
|
// dTJVInfo.Rows.Add(dr);
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// return dTJVInfo;
|
|
//}
|
|
|
|
//public DataTable JVLoactionWReport(ID JVTypeID, DateTime dEffectDate)
|
|
//{
|
|
// _dEffectDate = dEffectDate;
|
|
// DataRow dr = null;
|
|
// //PayrollDataSet.PayrollDataSet.JVLoactionWReportDataTable dTJVInfo = new Payroll.Report.PayrollDataSet.PayrollDataSet.JVLoactionWReportDataTable();
|
|
// PayrollDataSet.PayrollDataSet.JVReportDataTable dTJVInfo = new Payroll.Report.PayrollDataSet.PayrollDataSet.JVReportDataTable();
|
|
// JVSetup osetp = new JVSetup();
|
|
// DateTime maxdate = osetp.GetMaxDate(_dEffectDate);
|
|
|
|
// List<JVSetup> oJVSetups = new List<JVSetup>();
|
|
// oJVSetups = JVSetup.GetByJVTypeAndEffectDate(JVTypeID, maxdate);
|
|
|
|
// int nLocationTire = ConfigurationManager.GetIntValue("Location", "tier", EnumConfigurationType.Logic);
|
|
// List<Location> oLocations = new List<Location>();
|
|
// oLocations = Location.GetByTier(1); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
// int nCCTire = ConfigurationManager.GetIntValue("costcenter", "tier", EnumConfigurationType.Logic);
|
|
// List<Costcenter> oCostCenters = new List<Costcenter>();
|
|
// // oCostCenters = Costcenter.GetByTire(nCCTire); // get the last tier data and last tier is defined in Logic configuration file
|
|
// oCostCenters = Costcenter.Get();
|
|
// List<BonusProcess.BonusProcessDetail> bonusprocesss = new List<BonusProcess.BonusProcessDetail>();
|
|
// List<SalaryMonthly> salaries = new List<SalaryMonthly>();
|
|
// List<OPIProcessDetail> opidetails = new List<OPIProcessDetail>();
|
|
// List<OPIProcessDetailItem> opis = new List<OPIProcessDetailItem>();
|
|
// OPIProcessDetail opidetail = null;
|
|
// if (JVTypeID == 2)
|
|
// {
|
|
// // bonusprocesss = BonusProcess.GetBonusDetails(GlobalFunctions.LastDateOfMonth(dEffectDate));
|
|
// }
|
|
// else if (JVTypeID == 1)
|
|
// {
|
|
// salaries = SalaryMonthly.Get(GlobalFunctions.LastDateOfMonth(dEffectDate));
|
|
// opidetails = OPIProcess.GetProcessDetails(GlobalFunctions.LastDateOfMonth(dEffectDate));
|
|
// opis = OPIProcess.GetOPiProcessItems(GlobalFunctions.LastDateOfMonth(dEffectDate));
|
|
// }
|
|
|
|
// List<EmployeeCostCenter> epmCostCenters = EmployeeCostCenter.Get();
|
|
// string preCCCode = "";
|
|
// ID preOsetupID = null;
|
|
// string spPreCCCode = "";
|
|
// ID SpPreOsetupID = null;
|
|
// double nAmount = 0.0;
|
|
// string ccc = "";
|
|
// Costcenter cc = null;
|
|
// Costcenter cc2 = null;
|
|
// List<SalaryMonthly> SalaryOfMonth = null;
|
|
// List<Employee> oEmps = Employee.Get();
|
|
|
|
// Employee oEmp = null;
|
|
// foreach (JVSetup osetup in oJVSetups)
|
|
// {
|
|
|
|
|
|
// if (osetup.ShowCC) //CC wise Sum ?
|
|
// {
|
|
// foreach (Costcenter oCC in oCostCenters)
|
|
// {
|
|
|
|
// cc2 = null;
|
|
// ccc = "";
|
|
// cc = oCostCenters.FirstOrDefault(o => o.ID == oCC.ParentID);
|
|
// if (cc != null)
|
|
// {
|
|
// cc2 = (oCostCenters.FirstOrDefault(x => x.ID == cc.ParentID));
|
|
// }
|
|
// if (cc2 != null)
|
|
// {
|
|
// ccc = cc2.Code;
|
|
// }
|
|
// foreach (SalaryMonthly osalary in salaries)
|
|
// {
|
|
// oEmp = null;
|
|
// if (osetup.EMPLOYEETYPE == EnumJVEmpType.Expat || osetup.EMPLOYEETYPE == EnumJVEmpType.Local)
|
|
// {
|
|
// oEmp = oEmps.FirstOrDefault(o => o.ID == osalary.EmployeeID);
|
|
// }
|
|
// if ((osetup.EMPLOYEETYPE == EnumJVEmpType.Expat && oEmp != null && oEmp.ForeignExPat) || (osetup.EMPLOYEETYPE == EnumJVEmpType.Local && oEmp != null && !oEmp.ForeignExPat) || osetup.EMPLOYEETYPE == EnumJVEmpType.RegardLess)
|
|
// {
|
|
// SalaryOfMonth = new List<SalaryMonthly>();
|
|
// SalaryOfMonth.Add(osalary);
|
|
// if (preCCCode != oCC.Code)
|
|
// {
|
|
// if (dr != null && nAmount != 0)
|
|
// {
|
|
// dTJVInfo.Rows.Add(dr);
|
|
|
|
// }
|
|
// dr = null;
|
|
// nAmount = 0.0;
|
|
// preOsetupID = osetup.ID;
|
|
// preCCCode = oCC.Code;
|
|
// dr = dTJVInfo.NewRow();
|
|
// //dr["Location"] = oLocation.Name;
|
|
// if (3 < ccc.Length)
|
|
// ccc = ccc.Substring(ccc.Length - 3);
|
|
// if (ccc == "WBS")
|
|
// {
|
|
// dr["WBS"] = oCC.Code;
|
|
// }
|
|
// else
|
|
// {
|
|
// dr["CostCenter"] = oCC.Code;
|
|
// }
|
|
// dr["JVDate"] = dEffectDate;
|
|
|
|
// }
|
|
// nAmount = nAmount + GetSalaries(null, oCC.ID, SalaryOfMonth, osetup);
|
|
// //if (nAmount == 0) continue;
|
|
|
|
// dr["GLDescription"] = osetup.Description + " " + dEffectDate.ToString("MM-yyyy");
|
|
// dr["GLCode"] = osetup.GLCode;
|
|
// dr["JVTranType"] = osetup.SideCode;
|
|
// dr["Amount"] = nAmount;
|
|
// }
|
|
// }
|
|
// foreach (OPIProcessDetailItem opi in opis)
|
|
// {
|
|
|
|
// oEmp = null;
|
|
// if (osetup.EMPLOYEETYPE == EnumJVEmpType.Expat || osetup.EMPLOYEETYPE == EnumJVEmpType.Local)
|
|
// {
|
|
// opidetail = opidetails.FirstOrDefault(o => o.ID == opi.OPIProcessDetailID);
|
|
// if (opidetail != null)
|
|
// oEmp = oEmps.FirstOrDefault(o => o.ID == opidetail.EmployeeID);
|
|
// }
|
|
// if ((osetup.EMPLOYEETYPE == EnumJVEmpType.Expat && oEmp != null && oEmp.ForeignExPat) || (osetup.EMPLOYEETYPE == EnumJVEmpType.Local && oEmp != null && !oEmp.ForeignExPat) || osetup.EMPLOYEETYPE == EnumJVEmpType.RegardLess)
|
|
// {
|
|
|
|
// if (osetup.JVSetupCC.Any(o => o.CCID == oCC.ID))
|
|
// {
|
|
|
|
// if (spPreCCCode != oCC.Code || osetup.ID != SpPreOsetupID)
|
|
// {
|
|
// if (dr != null && nAmount != 0)
|
|
// {
|
|
// dTJVInfo.Rows.Add(dr);
|
|
|
|
// }
|
|
// dr = null;
|
|
// nAmount = 0.0;
|
|
// SpPreOsetupID = osetup.ID;
|
|
// spPreCCCode = oCC.Code;
|
|
// dr = dTJVInfo.NewRow();
|
|
// //dr["Location"] = oLocation.Name;
|
|
// if (3 < ccc.Length)
|
|
// ccc = ccc.Substring(ccc.Length - 3);
|
|
// if (ccc == "WBS")
|
|
// {
|
|
// dr["WBS"] = oCC.Code;
|
|
// }
|
|
// else
|
|
// {
|
|
// dr["CostCenter"] = oCC.Code;
|
|
// }
|
|
// dr["JVDate"] = dEffectDate;
|
|
|
|
// }
|
|
// nAmount = nAmount + GetOPIs(null, oCC.ID, opidetails, opi, epmCostCenters, osetup);
|
|
// //if (nAmount == 0) continue;
|
|
|
|
// dr["GLDescription"] = osetup.Description + " " + dEffectDate.ToString("MM-yyyy");
|
|
// dr["GLCode"] = osetup.GLCode;
|
|
// dr["JVTranType"] = osetup.SideCode;
|
|
// dr["Amount"] = nAmount;
|
|
// }
|
|
// }
|
|
// }
|
|
// foreach (BonusProcess.BonusProcessDetail bpro in bonusprocesss)
|
|
// {
|
|
// oEmp = null;
|
|
// if (osetup.EMPLOYEETYPE == EnumJVEmpType.Expat || osetup.EMPLOYEETYPE == EnumJVEmpType.Local)
|
|
// {
|
|
// oEmp = oEmps.FirstOrDefault(o => o.ID == bpro.EmployeeID);
|
|
// }
|
|
// if ((osetup.EMPLOYEETYPE == EnumJVEmpType.Expat && oEmp != null && oEmp.ForeignExPat) || (osetup.EMPLOYEETYPE == EnumJVEmpType.Local && oEmp != null && !oEmp.ForeignExPat) || osetup.EMPLOYEETYPE == EnumJVEmpType.RegardLess)
|
|
// {
|
|
// if (osetup.JVSetupCC.Any(o => o.CCID == oCC.ID))
|
|
// {
|
|
|
|
// if (spPreCCCode != oCC.Code || osetup.ID != SpPreOsetupID)
|
|
// {
|
|
// if (dr != null && nAmount != 0)
|
|
// {
|
|
// dTJVInfo.Rows.Add(dr);
|
|
|
|
// }
|
|
// dr = null;
|
|
// nAmount = 0.0;
|
|
// SpPreOsetupID = osetup.ID;
|
|
// spPreCCCode = oCC.Code;
|
|
// dr = dTJVInfo.NewRow();
|
|
// //dr["Location"] = oLocation.Name;
|
|
// if (3 < ccc.Length)
|
|
// ccc = ccc.Substring(ccc.Length - 3);
|
|
// if (ccc == "WBS")
|
|
// {
|
|
// dr["WBS"] = oCC.Code;
|
|
// }
|
|
// else
|
|
// {
|
|
// dr["CostCenter"] = oCC.Code;
|
|
// }
|
|
// dr["JVDate"] = dEffectDate;
|
|
|
|
// }
|
|
// nAmount = nAmount + GetBonuses(null, oCC.ID, bpro, epmCostCenters);
|
|
// //if (nAmount == 0) continue;
|
|
|
|
// dr["GLDescription"] = osetup.Description + " " + dEffectDate.ToString("MM-yyyy");
|
|
// dr["GLCode"] = osetup.GLCode;
|
|
// dr["JVTranType"] = osetup.SideCode;
|
|
// dr["Amount"] = nAmount;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// else if (osetup.BookToCC) //IsSpecificCost ?
|
|
// {
|
|
|
|
// foreach (Costcenter oCC in oCostCenters)
|
|
// {
|
|
|
|
// cc2 = null;
|
|
// ccc = "";
|
|
// cc = oCostCenters.FirstOrDefault(o => o.ID == oCC.ParentID);
|
|
// if (cc != null)
|
|
// {
|
|
// cc2 = (oCostCenters.FirstOrDefault(x => x.ID == cc.ParentID));
|
|
// }
|
|
// if (cc2 != null)
|
|
// {
|
|
// ccc = cc2.Code;
|
|
// }
|
|
// foreach (SalaryMonthly osalary in salaries)
|
|
// {
|
|
// oEmp = null;
|
|
// if (osetup.EMPLOYEETYPE == EnumJVEmpType.Expat || osetup.EMPLOYEETYPE == EnumJVEmpType.Local)
|
|
// {
|
|
// oEmp = oEmps.FirstOrDefault(o => o.ID == osalary.EmployeeID);
|
|
// }
|
|
// if ((osetup.EMPLOYEETYPE == EnumJVEmpType.Expat && oEmp != null && oEmp.ForeignExPat) || (osetup.EMPLOYEETYPE == EnumJVEmpType.Local && oEmp != null && !oEmp.ForeignExPat) || osetup.EMPLOYEETYPE == EnumJVEmpType.RegardLess)
|
|
// {
|
|
// SalaryOfMonth = new List<SalaryMonthly>();
|
|
// SalaryOfMonth.Add(osalary);
|
|
// if (osetup.JVSetupCC.Any(o => o.CCID == oCC.ID))
|
|
// {
|
|
|
|
// if (spPreCCCode != oCC.Code || osetup.ID != SpPreOsetupID)
|
|
// {
|
|
// if (dr != null && nAmount != 0)
|
|
// {
|
|
// dTJVInfo.Rows.Add(dr);
|
|
|
|
// }
|
|
// dr = null;
|
|
// nAmount = 0.0;
|
|
// SpPreOsetupID = osetup.ID;
|
|
// spPreCCCode = oCC.Code;
|
|
// dr = dTJVInfo.NewRow();
|
|
// //dr["Location"] = oLocation.Name;
|
|
// if (3 < ccc.Length)
|
|
// ccc = ccc.Substring(ccc.Length - 3);
|
|
// if (ccc == "WBS")
|
|
// {
|
|
// dr["WBS"] = oCC.Code;
|
|
// }
|
|
// else
|
|
// {
|
|
// dr["CostCenter"] = oCC.Code;
|
|
// }
|
|
// dr["JVDate"] = dEffectDate;
|
|
|
|
// }
|
|
// nAmount = nAmount + GetSalaries(null, oCC.ID, SalaryOfMonth, osetup);
|
|
// //if (nAmount == 0) continue;
|
|
|
|
// dr["GLDescription"] = osetup.Description + " " + dEffectDate.ToString("MM-yyyy");
|
|
// dr["GLCode"] = osetup.GLCode;
|
|
// dr["JVTranType"] = osetup.SideCode;
|
|
// dr["Amount"] = nAmount;
|
|
// }
|
|
// }
|
|
|
|
// }
|
|
// foreach (OPIProcessDetailItem opi in opis)
|
|
// {
|
|
// oEmp = null;
|
|
// if (osetup.EMPLOYEETYPE == EnumJVEmpType.Expat || osetup.EMPLOYEETYPE == EnumJVEmpType.Local)
|
|
// {
|
|
// opidetail = opidetails.FirstOrDefault(o => o.ID == opi.OPIProcessDetailID);
|
|
// if (opidetail != null)
|
|
// oEmp = oEmps.FirstOrDefault(o => o.ID == opidetail.EmployeeID);
|
|
// }
|
|
// if ((osetup.EMPLOYEETYPE == EnumJVEmpType.Expat && oEmp != null && oEmp.ForeignExPat) || (osetup.EMPLOYEETYPE == EnumJVEmpType.Local && oEmp != null && !oEmp.ForeignExPat) || osetup.EMPLOYEETYPE == EnumJVEmpType.RegardLess)
|
|
// {
|
|
// if (osetup.JVSetupCC.Any(o => o.CCID == oCC.ID))
|
|
// {
|
|
|
|
// if (spPreCCCode != oCC.Code || osetup.ID != SpPreOsetupID)
|
|
// {
|
|
// if (dr != null && nAmount != 0)
|
|
// {
|
|
// dTJVInfo.Rows.Add(dr);
|
|
|
|
// }
|
|
// dr = null;
|
|
// nAmount = 0.0;
|
|
// SpPreOsetupID = osetup.ID;
|
|
// spPreCCCode = oCC.Code;
|
|
// dr = dTJVInfo.NewRow();
|
|
// //dr["Location"] = oLocation.Name;
|
|
// if (3 < ccc.Length)
|
|
// ccc = ccc.Substring(ccc.Length - 3);
|
|
// if (ccc == "WBS")
|
|
// {
|
|
// dr["WBS"] = oCC.Code;
|
|
// }
|
|
// else
|
|
// {
|
|
// dr["CostCenter"] = oCC.Code;
|
|
// }
|
|
// dr["JVDate"] = dEffectDate;
|
|
|
|
// }
|
|
// nAmount = nAmount + GetOPIs(null, oCC.ID, opidetails, opi, epmCostCenters, osetup);
|
|
// //if (nAmount == 0) continue;
|
|
|
|
// dr["GLDescription"] = osetup.Description + " " + dEffectDate.ToString("MM-yyyy");
|
|
// dr["GLCode"] = osetup.GLCode;
|
|
// dr["JVTranType"] = osetup.SideCode;
|
|
// dr["Amount"] = nAmount;
|
|
// }
|
|
// }
|
|
// }
|
|
// foreach (BonusProcess.BonusProcessDetail bpro in bonusprocesss)
|
|
// {
|
|
// oEmp = null;
|
|
// if (osetup.EMPLOYEETYPE == EnumJVEmpType.Expat || osetup.EMPLOYEETYPE == EnumJVEmpType.Local)
|
|
// {
|
|
// oEmp = oEmps.FirstOrDefault(o => o.ID == bpro.EmployeeID);
|
|
// }
|
|
// if ((osetup.EMPLOYEETYPE == EnumJVEmpType.Expat && oEmp != null && oEmp.ForeignExPat) || (osetup.EMPLOYEETYPE == EnumJVEmpType.Local && oEmp != null && !oEmp.ForeignExPat) || osetup.EMPLOYEETYPE == EnumJVEmpType.RegardLess)
|
|
// {
|
|
// if (osetup.JVSetupCC.Any(o => o.CCID == oCC.ID))
|
|
// {
|
|
|
|
// if (spPreCCCode != oCC.Code || osetup.ID != SpPreOsetupID)
|
|
// {
|
|
// if (dr != null && nAmount != 0)
|
|
// {
|
|
// dTJVInfo.Rows.Add(dr);
|
|
|
|
// }
|
|
// dr = null;
|
|
// nAmount = 0.0;
|
|
// SpPreOsetupID = osetup.ID;
|
|
// spPreCCCode = oCC.Code;
|
|
// dr = dTJVInfo.NewRow();
|
|
// //dr["Location"] = oLocation.Name;
|
|
// if (3 < ccc.Length)
|
|
// ccc = ccc.Substring(ccc.Length - 3);
|
|
// if (ccc == "WBS")
|
|
// {
|
|
// dr["WBS"] = oCC.Code;
|
|
// }
|
|
// else
|
|
// {
|
|
// dr["CostCenter"] = oCC.Code;
|
|
// }
|
|
// dr["JVDate"] = dEffectDate;
|
|
|
|
// }
|
|
// nAmount = nAmount + GetBonuses(null, oCC.ID, bpro, epmCostCenters);
|
|
// //if (nAmount == 0) continue;
|
|
|
|
// dr["GLDescription"] = osetup.Description + " " + dEffectDate.ToString("MM-yyyy");
|
|
// dr["GLCode"] = osetup.GLCode;
|
|
// dr["JVTranType"] = osetup.SideCode;
|
|
// dr["Amount"] = nAmount;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// else
|
|
// {
|
|
// //double percent = SalaryEmpCostCenter.InvolvedPercent(osalary.CostCentersInvolments, oCC.ID);
|
|
// //if (percent == 0) continue;
|
|
// nAmount = 0.0;
|
|
// foreach (SalaryMonthly osalary in salaries)
|
|
// {
|
|
// oEmp = null;
|
|
// if (osetup.EMPLOYEETYPE == EnumJVEmpType.Expat || osetup.EMPLOYEETYPE == EnumJVEmpType.Local)
|
|
// {
|
|
// oEmp = oEmps.FirstOrDefault(o => o.ID == osalary.EmployeeID);
|
|
// }
|
|
// if ((osetup.EMPLOYEETYPE == EnumJVEmpType.Expat && oEmp != null && oEmp.ForeignExPat) || (osetup.EMPLOYEETYPE == EnumJVEmpType.Local && oEmp != null && !oEmp.ForeignExPat) || osetup.EMPLOYEETYPE == EnumJVEmpType.RegardLess)
|
|
// {
|
|
// nAmount = nAmount + osetup.GetAmount(osalary);
|
|
// }
|
|
// }//GetSalaries(null, oCC.ID, SalaryOfMonth, osetup);
|
|
// foreach (OPIProcessDetailItem opi in opis)
|
|
// {
|
|
|
|
// foreach (JVSetupDetail item in osetup.JVSetupDetails)
|
|
// {
|
|
// if (item.JVItemType == enumPayrollComponentType.OPI && item.ItemID == opi.OPIItemID)
|
|
// {
|
|
|
|
// // List<SalaryMonthly> salaries = new List<SalaryMonthly>();
|
|
|
|
// //double Percent = 0;
|
|
|
|
// // OPIProcessDetail
|
|
// //OPIProcessDetail opidetail = opidetails.FirstOrDefault(o => o.ID == opi.OPIProcessDetailID);
|
|
// //EmployeeCostCenter empC = epmCostCenters.FirstOrDefault(o => o.EmployeeID == opidetail.EmployeeID && o.CostCenterID == CrgID);
|
|
// //Percent = empC != null ? empC.Percentage : 0;
|
|
// //if (Percent != 0)
|
|
// oEmp = null;
|
|
// if (osetup.EMPLOYEETYPE == EnumJVEmpType.Expat || osetup.EMPLOYEETYPE == EnumJVEmpType.Local)
|
|
// {
|
|
// opidetail = opidetails.FirstOrDefault(o => o.ID == opi.OPIProcessDetailID);
|
|
// if (opidetail != null)
|
|
// oEmp = oEmps.FirstOrDefault(o => o.ID == opidetail.EmployeeID);
|
|
// }
|
|
// if ((osetup.EMPLOYEETYPE == EnumJVEmpType.Expat && oEmp != null && oEmp.ForeignExPat) || (osetup.EMPLOYEETYPE == EnumJVEmpType.Local && oEmp != null && !oEmp.ForeignExPat) || osetup.EMPLOYEETYPE == EnumJVEmpType.RegardLess)
|
|
// {
|
|
|
|
// nAmount = nAmount + (opi.ChangeNetAmount);// * Percent / 100;
|
|
// //nAmount = nAmount + oPIProcessDetailItem.OPIProcessDetailItems.Sum(o => o.ChangeNetAmount) * Percent / 100;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// foreach (BonusProcess.BonusProcessDetail bpro in bonusprocesss)
|
|
// {
|
|
// oEmp = null;
|
|
// if (osetup.EMPLOYEETYPE == EnumJVEmpType.Expat || osetup.EMPLOYEETYPE == EnumJVEmpType.Local)
|
|
// {
|
|
// oEmp = oEmps.FirstOrDefault(o => o.ID == bpro.EmployeeID);
|
|
// }
|
|
// if ((osetup.EMPLOYEETYPE == EnumJVEmpType.Expat && oEmp != null && oEmp.ForeignExPat) || (osetup.EMPLOYEETYPE == EnumJVEmpType.Local && oEmp != null && !oEmp.ForeignExPat) || osetup.EMPLOYEETYPE == EnumJVEmpType.RegardLess)
|
|
// {
|
|
// nAmount = nAmount + bpro.BonusAmount;
|
|
// }
|
|
// }
|
|
// if (nAmount == 0) continue;
|
|
// dr = dTJVInfo.NewRow();
|
|
// // dr["Location"] = oLocation.Name;
|
|
// //if (ccc == "WBS")
|
|
// //{
|
|
// // dr["WBS"] = oCC.Code;
|
|
// //}
|
|
// //else
|
|
// //{
|
|
// // dr["CostCenter"] = oCC.Code;
|
|
// //}
|
|
// dr["Reference"] = "BDC00L";
|
|
|
|
// //dr["EmpNo"] = osalary.Employee.EmployeeNo;
|
|
// //dr["Name"] = osalary.Employee.Name;
|
|
// dr["GLDescription"] = osetup.Description + " " + dEffectDate.ToString("MM-yyyy");
|
|
// dr["Amount"] = nAmount;//osetup.GetAmount(osalary) * percent / 100;
|
|
// dr["JVDate"] = dEffectDate;
|
|
// dr["GLCode"] = osetup.GLCode;
|
|
// dr["JVTranType"] = osetup.SideCode;
|
|
// dTJVInfo.Rows.Add(dr);
|
|
// dr = null;
|
|
// }
|
|
|
|
|
|
// if (osetup.ShowCC && dr != null && nAmount != 0)
|
|
// {
|
|
// dTJVInfo.Rows.Add(dr);
|
|
|
|
// }
|
|
// if (osetup.BookToCC && dr != null && nAmount != 0)
|
|
// {
|
|
// dTJVInfo.Rows.Add(dr);
|
|
// }
|
|
// dr = null;
|
|
// }
|
|
|
|
// return dTJVInfo;
|
|
//}
|
|
|
|
//public DataTable JVSummaryReport(ID JVTypeID, DateTime dEffectDate)
|
|
//{
|
|
// _dEffectDate = dEffectDate;
|
|
// DataRow dr = null;
|
|
// PayrollDataSet.PayrollDataSet.JVSummaryReportDataTable dTJVInfo = new Payroll.Report.PayrollDataSet.PayrollDataSet.JVSummaryReportDataTable();
|
|
|
|
// List<JVSetup> oJVSetups = new List<JVSetup>();
|
|
// oJVSetups = JVSetup.GetByJVType(JVTypeID);
|
|
|
|
// int nLocationTire = ConfigurationManager.GetIntValue("Location", "tier", EnumConfigurationType.Logic);
|
|
// List<Location> oLocations = new List<Location>();
|
|
// oLocations = Location.GetByTier(2); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
// int nCCTire = ConfigurationManager.GetIntValue("costcenter", "tier", EnumConfigurationType.Logic);
|
|
// List<Costcenter> oCostCenters = new List<Costcenter>();
|
|
// oCostCenters = Costcenter.GetByTire(nCCTire); // get the last tier data and last tier is defined in Logic configuration file
|
|
|
|
// List<SalaryMonthly> salaries = SalaryMonthly.Get(GlobalFunctions.LastDateOfMonth(dEffectDate));
|
|
|
|
// foreach (Costcenter oCC in oCostCenters)
|
|
// {
|
|
// foreach (Location oLocation in oLocations)
|
|
// {
|
|
// foreach (JVSetup osetup in oJVSetups)
|
|
// {
|
|
// double amount = GetSalaries(oLocation.ID, oCC.ID, salaries, osetup);
|
|
// if (amount == 0) continue;
|
|
// dr = dTJVInfo.NewRow();
|
|
// dr["Location"] = oLocation.Name;
|
|
// dr["CostCenter"] = oCC.Name;
|
|
// dr["Description"] = osetup.Description;
|
|
// dr["Amount"] = amount;// GetSalaries(oLocation.ID, oCC.ID, salaries, osetup);
|
|
// dr["JVMonth"] = dEffectDate;
|
|
// dTJVInfo.Rows.Add(dr);
|
|
// }
|
|
// }
|
|
// }
|
|
// return dTJVInfo;
|
|
//}
|
|
//public double GetBonuses(ID LocationID, ID CrgID, BonusProcess.BonusProcessDetail oBProcessDetail, List<EmployeeCostCenter> epmCostCenters)
|
|
//{
|
|
// List<SalaryMonthly> salaries = new List<SalaryMonthly>();
|
|
// double nAmount = 0;
|
|
// double Percent = 0;
|
|
|
|
// // OPIProcessDetail
|
|
// EmployeeCostCenter empC = epmCostCenters.FirstOrDefault(o => o.EmployeeID == oBProcessDetail.EmployeeID && o.CostCenterID == CrgID);
|
|
// Percent = empC != null ? empC.Percentage : 0;
|
|
// if (Percent == 0) return nAmount;
|
|
// nAmount = nAmount + oBProcessDetail.BonusAmount * Percent / 100;
|
|
|
|
// return nAmount;
|
|
//}
|
|
//public double GetOPIs(ID LocationID, ID CrgID, List<OPIProcessDetail> opidetails, OPIProcessDetailItem oPIProcessDetailItem, List<EmployeeCostCenter> epmCostCenters, JVSetup oSetup)
|
|
//{
|
|
// double nAmount = 0;
|
|
// foreach (JVSetupDetail item in oSetup.JVSetupDetails)
|
|
// {
|
|
// if (item.ItemID == oPIProcessDetailItem.OPIItemID)
|
|
// {
|
|
|
|
// List<SalaryMonthly> salaries = new List<SalaryMonthly>();
|
|
|
|
// double Percent = 0;
|
|
|
|
// // OPIProcessDetail
|
|
|
|
// OPIProcessDetail opidetail = opidetails.FirstOrDefault(o => o.ID == oPIProcessDetailItem.OPIProcessDetailID);
|
|
// if (opidetail != null)
|
|
// {
|
|
// EmployeeCostCenter empC = epmCostCenters.FirstOrDefault(o => o.EmployeeID == opidetail.EmployeeID && o.CostCenterID == CrgID);
|
|
// Percent = empC != null ? empC.Percentage : 0;
|
|
// if (Percent == 0) return nAmount;
|
|
// nAmount = nAmount + (oPIProcessDetailItem.ChangeNetAmount) * Percent / 100;
|
|
// }
|
|
// //nAmount = nAmount + oPIProcessDetailItem.OPIProcessDetailItems.Sum(o => o.ChangeNetAmount) * Percent / 100;
|
|
// }
|
|
// }
|
|
// return nAmount;
|
|
|
|
//}
|
|
//public double GetSalaries(ID LocationID, ID CrgID, List<SalaryMonthly> SalaryOfMonth, JVSetup oJvSetup)
|
|
//{
|
|
// List<SalaryMonthly> salaries = new List<SalaryMonthly>();
|
|
// double nAmount = 0;
|
|
// double Percent = 0;
|
|
// foreach (SalaryMonthly item in SalaryOfMonth)
|
|
// {
|
|
// //if (item.LocationID == LocationID)
|
|
// //{
|
|
// Percent = SalaryEmpCostCenter.InvolvedPercent(item.CostCentersInvolments, CrgID);
|
|
// if (Percent == 0) continue;
|
|
// nAmount = nAmount + oJvSetup.GetAmount(item) * Percent / 100;
|
|
// //}
|
|
// }
|
|
|
|
// return nAmount;
|
|
//}
|
|
|
|
//public int GetEmp(ID LocationID, ID CrgID, List<SalaryMonthly> SalaryOfMonth, JVSetup oJvSetup)
|
|
//{
|
|
// List<SalaryMonthly> salaries = new List<SalaryMonthly>();
|
|
// double Percent;
|
|
// foreach (SalaryMonthly item in SalaryOfMonth)
|
|
// {
|
|
// if (item.LocationID == LocationID)
|
|
// {
|
|
// Percent = SalaryEmpCostCenter.InvolvedPercent(item.CostCentersInvolments, CrgID);
|
|
// if (Percent > 0) return item.EmployeeID;
|
|
// }
|
|
// }
|
|
|
|
// return 0;
|
|
//}
|
|
//public static string WriteToTxtFile(string sStringToWrite, string sFilePath, string sFileName)
|
|
//{
|
|
// string sSuccess = string.Empty;
|
|
|
|
// try
|
|
// {
|
|
// DirectoryInfo oFileDirectory = new DirectoryInfo(sFilePath);
|
|
// if (!oFileDirectory.Exists)
|
|
// {
|
|
// oFileDirectory.Create();
|
|
// }
|
|
|
|
// StreamWriter oSWriter = new StreamWriter(sFilePath + "/" + sFileName + ".txt", false);
|
|
// oSWriter.WriteLine(sStringToWrite);
|
|
// sSuccess = "You can find a file named - " + sFileName + " at " + sFilePath;
|
|
// oSWriter.Flush();
|
|
// oSWriter.Close();
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// throw new ServiceException(ex.Message);
|
|
// }
|
|
|
|
// return sSuccess;
|
|
//}
|
|
#endregion
|
|
}
|
|
}
|