538 lines
24 KiB
C#
538 lines
24 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Data;
|
|||
|
using System.Drawing;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using Payroll.BO;
|
|||
|
using Ease.CoreV35;
|
|||
|
using Ease.Core.Model;
|
|||
|
using Ease.Core.Utility;
|
|||
|
using System.Windows.Forms;
|
|||
|
using HRM.BO;
|
|||
|
using HRM.DA;
|
|||
|
using System.IO;
|
|||
|
using HRM.Service;
|
|||
|
using Microsoft.Reporting.NETCore;
|
|||
|
using Ease.Core;
|
|||
|
|
|||
|
namespace HRM.Report
|
|||
|
{
|
|||
|
public class rptFSTran
|
|||
|
{
|
|||
|
int count = 1;
|
|||
|
ReportParameter rParam = null;
|
|||
|
private List<ReportParameter> reportParameters = new List<ReportParameter>();
|
|||
|
public byte[] ShowFSPaymentCalculationReport(int fsTranId, int payrollTypeId)
|
|||
|
{
|
|||
|
double nAddCount = 0;
|
|||
|
double nDeductCount = 0;
|
|||
|
double nAmount = 0.0;
|
|||
|
double nDeductAmount = 0.0;
|
|||
|
double nTaxAmount = 0.0;
|
|||
|
double nNetAmount = 0.0;
|
|||
|
double nReceivable = 0.0;
|
|||
|
double nPayable = 0.0;
|
|||
|
double nTotal = 0.0;
|
|||
|
double nALBalance = 0.0;
|
|||
|
double nEncashDays = 0.0;
|
|||
|
List<ReportDataSource> dataSource;
|
|||
|
OPIProcess _oprocess = new OPIProcess();
|
|||
|
Grade oGrade = new Grade();
|
|||
|
Employee oEmp = new Employee();
|
|||
|
|
|||
|
DateTime? dLastSalaryMonth = null;
|
|||
|
DateTime? dtOPI = null;
|
|||
|
double dpf = 0;
|
|||
|
EmployeeHistory oEmployeeHistory = new EmployeeHistory();
|
|||
|
|
|||
|
|
|||
|
FSTran otran = new FSTranService().Get(fsTranId);
|
|||
|
|
|||
|
var resignationByEmployee = new EmpResignationRequest();
|
|||
|
resignationByEmployee = new ResignationRequestService().GetByEmployeeId(otran.EmployeeID);
|
|||
|
int dDateDiff = resignationByEmployee.ResignationDate.Value.Date < resignationByEmployee.LastWorkingDate.Value.Date ? (resignationByEmployee.LastWorkingDate.Value.Date - resignationByEmployee.ResignationDate.Value.Date).Days : 0;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
SalaryMonthly _oSalaryMonthly = new SalaryMonthly();
|
|||
|
otran.Details = new FSTranDetailService().GetDetailAmountType(otran.ID);
|
|||
|
oEmp = new EmployeeService().Get(otran.EmployeeID);
|
|||
|
oGrade = new GradeService().Get((int)oEmp.GradeID);
|
|||
|
|
|||
|
oEmployeeHistory = new EmployeeHistoryService().GetEmpLastHistory(oEmp.ID);
|
|||
|
|
|||
|
|
|||
|
dLastSalaryMonth = new SalaryMonthlyService().GetLastPaidSalaryMonth(oEmp.ID);
|
|||
|
dtOPI = new OPIProcessService().GetLastPaidOPIMonth(oEmp.ID);
|
|||
|
|
|||
|
// DateTime dtDiscontinue = oEmp.EndOfContractDate == DateTime.MinValue ? DateTime.Now : (DateTime)oEmp.EndOfContractDate;
|
|||
|
|
|||
|
//if (dLastSalaryMonth == null)
|
|||
|
//{
|
|||
|
// _oSalaryMonthly = new SalaryMonthlyService().Get(oEmp.ID, dtDiscontinue.AddMonths(-1));
|
|||
|
//}
|
|||
|
//else
|
|||
|
//{
|
|||
|
// dtDiscontinue = Convert.ToDateTime(dLastSalaryMonth);
|
|||
|
// _oSalaryMonthly = new SalaryMonthlyService().Get(oEmp.ID, dtDiscontinue);
|
|||
|
//}
|
|||
|
|
|||
|
if (dtOPI != null)
|
|||
|
{
|
|||
|
_oprocess = new OPIProcessService().Get(Convert.ToDateTime(dtOPI), oEmp.ID);
|
|||
|
}
|
|||
|
|
|||
|
PayrollDataSet.dsCompany.DTFSSDataTable dtFSS = new PayrollDataSet.dsCompany.DTFSSDataTable();
|
|||
|
PayrollDataSet.dsCompany.DTFSSItemsDataTable dtItems = new PayrollDataSet.dsCompany.DTFSSItemsDataTable();
|
|||
|
PayrollDataSet.dsCompany.DTFSSItemsDataTable dtItems1 = new PayrollDataSet.dsCompany.DTFSSItemsDataTable();
|
|||
|
DataRow orow = null;
|
|||
|
|
|||
|
orow = dtFSS.NewRow();
|
|||
|
|
|||
|
orow["Name"] = oEmp.Name;
|
|||
|
orow["EmpID"] = oEmp.EmployeeNo;
|
|||
|
orow["Designation"] = oEmp.Designation == null ? null : oEmp.Designation.Name;
|
|||
|
orow["Dept"] = oEmp.Department == null ? null : oEmp.Department.Name;
|
|||
|
orow["DOJ"] = oEmp.JoiningDate.ToString("dd MMM yyyy");
|
|||
|
orow["SeparationMode"] = "Resignation";
|
|||
|
|
|||
|
foreach (SalaryMonthlyDetail oitem in _oSalaryMonthly.Details)
|
|||
|
{
|
|||
|
if ((int)EnumSalaryGroup.Gross == (int)oitem.itemGroupCode && (int)EnumSalaryItemCode.Basic_Salary == (int)oitem.ItemCode && (int)EnumSalaryItemCode.Basic_Salary == oitem.ItemID)
|
|||
|
{
|
|||
|
orow["MonthlyBasic"] = oitem.ChangedAmount;
|
|||
|
}
|
|||
|
else if ((int)EnumSalaryGroup.OtherItem == (int)oitem.itemGroupCode && (int)EnumSalaryItemCode.Net_Payable == (int)oitem.ItemCode && (int)EnumSalaryItemCode.Net_Payable == oitem.ItemID)
|
|||
|
{
|
|||
|
orow["Net"] = oitem.ChangedAmount;
|
|||
|
}
|
|||
|
}
|
|||
|
//discontinue date == last working Date
|
|||
|
orow["EffectiveDateofResigne"] = resignationByEmployee.LastWorkingDate.Value.Date.ToString("dd MMM yyyy");
|
|||
|
orow["RequiredPeriod"] = 30; //temporary
|
|||
|
orow["GivenPeriod"] = dDateDiff; //oItem.ShortNoticePeriod;
|
|||
|
orow["LastWorkingDay"] = resignationByEmployee.LastWorkingDate.Value.Date.ToString("dd MMM yyyy");
|
|||
|
orow["TerminationDate"] = resignationByEmployee.LastWorkingDate.Value.Date.ToString("dd MMM yyyy");
|
|||
|
|
|||
|
if ((int)oEmp.PFMemberType == (int)EnumPFMembershipType.Live)
|
|||
|
{
|
|||
|
orow["PFMembership"] = "Yes";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
orow["PFMembership"] = "No";
|
|||
|
}
|
|||
|
|
|||
|
TimeSpan ts = resignationByEmployee.LastWorkingDate.Value.Date - oEmp.JoiningDate;
|
|||
|
orow["LengthOfService"] = ts.Days;
|
|||
|
|
|||
|
double dd = (double)ts.Days / 365;
|
|||
|
double dYear = Math.Round(dd, 1);
|
|||
|
dYear = dYear - (int)dYear;
|
|||
|
if (dYear > .6)
|
|||
|
{
|
|||
|
orow["YearRound"] = (int)Math.Round(dd);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
orow["YearRound"] = (int)dd;
|
|||
|
}
|
|||
|
orow["Year"] = Math.Round(dd, 1);
|
|||
|
|
|||
|
//if (!_oprocess.ID.IsUnassigned)
|
|||
|
//{
|
|||
|
// foreach (OPIProcessDetail item in _oprocess.OPIProcessDetails)
|
|||
|
// {
|
|||
|
// foreach (OPIProcessDetailItem oDetail in item.OPIProcessDetailItems)
|
|||
|
// {
|
|||
|
// orow["MobileBill"] = oDetail.ChangeNetAmount;
|
|||
|
// }
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
dtFSS.Rows.Add(orow);
|
|||
|
int nse = 6;
|
|||
|
|
|||
|
double FractionateSalary = 0;
|
|||
|
double FractionateNet = 0;
|
|||
|
double FractionateDays = 0;
|
|||
|
|
|||
|
double GrossSalary = 0;
|
|||
|
double GrossNet = 0;
|
|||
|
|
|||
|
|
|||
|
foreach (FSTranDetail oDetail in otran.Details)
|
|||
|
{
|
|||
|
if ((int)EnumValueType.Amount == (int)oDetail.AmountType)
|
|||
|
{
|
|||
|
orow = dtItems.NewRow();
|
|||
|
|
|||
|
if ((int)oDetail.FsTranType == (int)EnumFSTranType.FSReceivable && (int)oDetail.Side == (int)EnumSide.Add)
|
|||
|
{
|
|||
|
|
|||
|
if ((int)EnumFSItemCode.LeaveEncashment == (int)oDetail.ItemCode && (int)EnumValueType.Amount == (int)oDetail.AmountType)
|
|||
|
{
|
|||
|
orow["Description"] = "Annual Leave Encashment";
|
|||
|
orow["Amount"] = oDetail.ChangedValue;
|
|||
|
orow["Sequence"] = 1;
|
|||
|
}
|
|||
|
else if ((int)EnumFSItemCode.NoticePay == (int)oDetail.ItemCode && (int)EnumValueType.Amount == (int)oDetail.AmountType)
|
|||
|
{
|
|||
|
orow["Description"] = "Payment inclued of Notice Priod";
|
|||
|
orow["Amount"] = oDetail.ChangedValue;
|
|||
|
orow["Sequence"] = 2;
|
|||
|
}
|
|||
|
else if ((int)EnumFSItemCode.PF == (int)oDetail.ItemCode)//||(int)EnumFSItemCode.CPF == (int)oDetail.ItemCode
|
|||
|
{
|
|||
|
orow["Description"] = "Provident Fund (Employer + Employee + Profit) 100%";
|
|||
|
FSTranDetail oDetailCPF = otran.Details.FirstOrDefault(x => x.ItemCode == EnumFSItemCode.CPF && x.FsTranType == EnumFSTranType.FSReceivable && x.Side == EnumSide.Add);
|
|||
|
if (oDetailCPF != null)
|
|||
|
{
|
|||
|
dpf = oDetail.ChangedValue + oDetailCPF.ChangedValue;
|
|||
|
}
|
|||
|
orow["Amount"] = dpf;
|
|||
|
orow["Sequence"] = 3;
|
|||
|
}
|
|||
|
else if ((int)EnumFSItemCode.FractionateSalary == (int)oDetail.ItemCode)
|
|||
|
{
|
|||
|
FractionateSalary += oDetail.ChangedValue;
|
|||
|
double tmpDPamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && x.FsTranType == EnumFSTranType.FSReceivable && x.Side == EnumSide.Add).Sum(x => x.ChangedValue);
|
|||
|
double tmpDDamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && x.FsTranType == EnumFSTranType.FSPayable && x.Side == EnumSide.Deduct).Sum(x => x.ChangedValue);
|
|||
|
double tempDNet = tmpDPamount - tmpDDamount;
|
|||
|
FractionateNet = tempDNet;
|
|||
|
continue;
|
|||
|
}
|
|||
|
else if ((int)EnumFSItemCode.Gross == (int)oDetail.ItemCode)
|
|||
|
{
|
|||
|
GrossSalary += oDetail.ChangedValue;
|
|||
|
double tmpDPamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && x.FsTranType == EnumFSTranType.FSReceivable && x.Side == EnumSide.Add).Sum(x => x.ChangedValue);
|
|||
|
double tmpDDamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && x.FsTranType == EnumFSTranType.FSPayable && x.Side == EnumSide.Deduct).Sum(x => x.ChangedValue);
|
|||
|
double tempDNet = tmpDPamount - tmpDDamount;
|
|||
|
GrossNet = tempDNet;
|
|||
|
continue;
|
|||
|
}
|
|||
|
else if ((int)EnumFSItemCode.Benifit == (int)oDetail.ItemCode)
|
|||
|
{
|
|||
|
orow["Description"] = "Benifit Bonus";
|
|||
|
orow["Amount"] = oDetail.ChangedValue;
|
|||
|
orow["Sequence"] = 4;
|
|||
|
}
|
|||
|
else if ((int)EnumFSItemCode.Other == (int)oDetail.ItemCode)
|
|||
|
{
|
|||
|
orow["Description"] = oDetail.Description;
|
|||
|
orow["Amount"] = oDetail.ChangedValue;
|
|||
|
orow["Sequence"] = 6;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if ((int)EnumFSItemCode.CPF == (int)oDetail.ItemCode)
|
|||
|
{
|
|||
|
continue;
|
|||
|
}
|
|||
|
nse++;
|
|||
|
orow["Description"] = oDetail.Description;
|
|||
|
orow["Amount"] = oDetail.ChangedValue;
|
|||
|
orow["Sequence"] = nse;
|
|||
|
}
|
|||
|
|
|||
|
double dPamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && x.FsTranType == EnumFSTranType.FSReceivable && x.Side == EnumSide.Add).Sum(x => x.ChangedValue);
|
|||
|
double dDamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && (x.FsTranType == EnumFSTranType.FSPayable && x.Side == EnumSide.Add) || (x.FsTranType == EnumFSTranType.FSReceivable && x.Side == EnumSide.Deduct)).Sum(x => x.ChangedValue);
|
|||
|
double dNet = dPamount - dDamount;
|
|||
|
nTotal = dNet;
|
|||
|
orow["NetTotal"] = dNet;
|
|||
|
orow["Group"] = "Payment Calculation";
|
|||
|
}
|
|||
|
else if (((int)oDetail.FsTranType == (int)EnumFSTranType.FSReceivable && (int)oDetail.Side == (int)EnumSide.Deduct) || ((int)oDetail.FsTranType == (int)EnumFSTranType.FSPayable && (int)oDetail.Side == (int)EnumSide.Add))
|
|||
|
{
|
|||
|
double dDamount = 0;
|
|||
|
double dPamount = 0;
|
|||
|
orow["Description"] = oDetail.Description;
|
|||
|
orow["Amount"] = oDetail.ChangedValue;
|
|||
|
//if(((int)oDetail.FsTranType == (int)EnumFSTranType.FSReceivable && (int)oDetail.Side == (int)EnumSide.Deduct)){
|
|||
|
// dDamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && x.FsTranType == EnumFSTranType.FSReceivable && x.Side == EnumSide.Deduct).Sum(x => x.ChangedValue);
|
|||
|
//}
|
|||
|
//else
|
|||
|
//{
|
|||
|
dPamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && x.FsTranType == EnumFSTranType.FSReceivable && x.Side == EnumSide.Add).Sum(x => x.ChangedValue);
|
|||
|
dDamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && (x.FsTranType == EnumFSTranType.FSPayable && x.Side == EnumSide.Add) || (x.FsTranType == EnumFSTranType.FSReceivable && x.Side == EnumSide.Deduct)).Sum(x => x.ChangedValue);
|
|||
|
// dDamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && x.FsTranType == EnumFSTranType.FSPayable && x.Side == EnumSide.Deduct).Sum(x => x.ChangedValue);
|
|||
|
// }
|
|||
|
|
|||
|
double dNet = dPamount - dDamount;
|
|||
|
nTotal = dNet;
|
|||
|
orow["NetTotal"] = dNet;
|
|||
|
orow["Group"] = "Deduction";
|
|||
|
nse++;
|
|||
|
orow["Sequence"] = nse;
|
|||
|
}
|
|||
|
//else if ((int)oDetail.FsTranType == (int)EnumFSTranType.FSPayable && (int)oDetail.Side == (int)EnumSide.Deduct)
|
|||
|
//{
|
|||
|
// orow["Description"] = oDetail.Description;
|
|||
|
// orow["Amount"] = oDetail.ChangedValue;
|
|||
|
// double dPamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && x.FsTranType == EnumFSTranType.FSReceivable && x.Side == EnumSide.Add).Sum(x => x.ChangedValue);
|
|||
|
// double dDamount = otran.Details.Where(x => x.AmountType == EnumValueType.Amount && x.FsTranType == EnumFSTranType.FSPayable && x.Side == EnumSide.Deduct).Sum(x => x.ChangedValue);
|
|||
|
// double dNet = dPamount - dDamount;
|
|||
|
// nTotal = dNet;
|
|||
|
// orow["NetTotal"] = dNet;
|
|||
|
// orow["Group"] = "Deduction";
|
|||
|
// nse++;
|
|||
|
// orow["Sequence"] = nse;
|
|||
|
//}
|
|||
|
|
|||
|
dtItems.Rows.Add(orow);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if ((int)EnumFSItemCode.FractionateSalary == (int)oDetail.ItemCode)
|
|||
|
FractionateDays = oDetail.ChangedValue;
|
|||
|
else
|
|||
|
orow["Days"] = Convert.ToString(oDetail.ChangedValue);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//All fractionate salary to single row
|
|||
|
if (FractionateSalary > 0)
|
|||
|
{
|
|||
|
orow = dtItems.NewRow();
|
|||
|
orow["Description"] = "Fractionate Salary";
|
|||
|
orow["Amount"] = FractionateSalary;
|
|||
|
orow["Sequence"] = 5;
|
|||
|
orow["NetTotal"] = FractionateNet;
|
|||
|
orow["Group"] = "Payment Calculation";
|
|||
|
orow["Days"] = Convert.ToString(FractionateDays);
|
|||
|
dtItems.Rows.Add(orow);
|
|||
|
}
|
|||
|
|
|||
|
if (GrossSalary > 0)
|
|||
|
{
|
|||
|
orow = dtItems.NewRow();
|
|||
|
orow["Description"] = "Gross Salary";
|
|||
|
orow["Amount"] = GrossSalary;
|
|||
|
orow["Sequence"] = 6;
|
|||
|
orow["NetTotal"] = GrossNet;
|
|||
|
orow["Group"] = "Payment Calculation";
|
|||
|
orow["Days"] = 0;
|
|||
|
dtItems.Rows.Add(orow);
|
|||
|
}
|
|||
|
|
|||
|
string sNetAmount = "BDT - " + GlobalFunctions.NumWordsWrapper(Convert.ToDouble(nTotal));
|
|||
|
|
|||
|
var sortedTempData = from DataRow dr in dtItems.Rows orderby dr["Sequence"] ascending select dr;
|
|||
|
|
|||
|
foreach (DataRow dr in dtItems.Rows)
|
|||
|
{
|
|||
|
if (dr["Group"] != DBNull.Value)
|
|||
|
{
|
|||
|
DataRow nDr = dtItems1.NewRow();
|
|||
|
nDr.ItemArray = dr.ItemArray;
|
|||
|
dtItems1.Rows.Add(nDr);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
rParam = new ReportParameter("ReportType", "PDF");
|
|||
|
reportParameters.Add(rParam);
|
|||
|
|
|||
|
rParam = new ReportParameter("Amount", sNetAmount);
|
|||
|
reportParameters.Add(rParam);
|
|||
|
|
|||
|
DataSet dSet = new DataSet();
|
|||
|
string RDLCName = "HRM.Report.RDLC.rptNewFSS.rdlc";
|
|||
|
dtFSS.TableName = "dsCompany_DTFSS";
|
|||
|
dtItems1.TableName = "dsCompany_DTFSSItems";
|
|||
|
dSet.Tables.Add(dtFSS);
|
|||
|
dSet.Tables.Add(dtItems1);
|
|||
|
|
|||
|
// return new ReportProcessor().ShowFSSReport(dtFSS, dtItems1, sNetAmount,payrollTypeId);
|
|||
|
ReportProcessor reportProcessor = new ReportProcessor();
|
|||
|
return reportProcessor.CommonReportView(null, RDLCName, dSet, null, reportParameters, true, payrollTypeId);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public byte[] ShowReport(int settlementAdviceId, string reportType, int payrollTypeId)
|
|||
|
{
|
|||
|
|
|||
|
DataRow oDR = null;
|
|||
|
DataSet oSettlementAdviceItems = null;
|
|||
|
|
|||
|
oSettlementAdviceItems = new FSTranService().GetEmpPaymentAdvice(settlementAdviceId);
|
|||
|
PayrollDataSet.PayrollDataSet.SettlementAdviceDataTable dTSettlementAdvice = new PayrollDataSet.PayrollDataSet.SettlementAdviceDataTable();
|
|||
|
|
|||
|
oSettlementAdviceItems.Tables[0].Columns.Add("SequenceNo");
|
|||
|
oSettlementAdviceItems.Tables[1].Columns.Add("SequenceNo");
|
|||
|
oSettlementAdviceItems.Tables[2].Columns.Add("SequenceNo");
|
|||
|
oSettlementAdviceItems.Tables[3].Columns.Add("SequenceNo");
|
|||
|
oSettlementAdviceItems.Tables[4].Columns.Add("SequenceNo");
|
|||
|
oSettlementAdviceItems.Tables[5].Columns.Add("SequenceNo");
|
|||
|
oSettlementAdviceItems.Tables[6].Columns.Add("SequenceNo");
|
|||
|
oSettlementAdviceItems.Tables[7].Columns.Add("SequenceNo");
|
|||
|
|
|||
|
int seq = 0;
|
|||
|
|
|||
|
foreach (DataRow dr in oSettlementAdviceItems.Tables["GrossItem"].AsEnumerable().Where(x => x.Field<string>("Description") == "Basic"))
|
|||
|
{
|
|||
|
seq++;
|
|||
|
dr["SequenceNo"] = seq;
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow dr in oSettlementAdviceItems.Tables["GrossItem"].AsEnumerable().Where(x => (x.Field<string>("Description") == "House Rent Allowance")))
|
|||
|
{
|
|||
|
seq++;
|
|||
|
dr["SequenceNo"] = seq;
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow dr in oSettlementAdviceItems.Tables["GrossItem"].AsEnumerable().Where(x => (x.Field<string>("Description") == "Medical Allowance")))
|
|||
|
{
|
|||
|
seq++;
|
|||
|
dr["SequenceNo"] = seq;
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow dr in oSettlementAdviceItems.Tables["GrossItem"].AsEnumerable())
|
|||
|
{
|
|||
|
if (dr.Field<string>("Description") != "Basic" && dr.Field<string>("Description") != "House Rent Allowance" && dr.Field<string>("Description") != "Medical Allowance")
|
|||
|
{
|
|||
|
seq++;
|
|||
|
dr["SequenceNo"] = seq;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow dr in oSettlementAdviceItems.Tables["TotalGross"].Rows)
|
|||
|
{
|
|||
|
seq++;
|
|||
|
dr["SequenceNo"] = seq;
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow dr in oSettlementAdviceItems.Tables["BasicItem"].Rows)
|
|||
|
{
|
|||
|
seq++;
|
|||
|
dr["SequenceNo"] = seq;
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow dr in oSettlementAdviceItems.Tables["OtherItems"].Rows)
|
|||
|
{
|
|||
|
seq++;
|
|||
|
dr["SequenceNo"] = seq;
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow dr in oSettlementAdviceItems.Tables["DeductItem"].Rows)
|
|||
|
{
|
|||
|
seq++;
|
|||
|
dr["SequenceNo"] = seq;
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow dr in oSettlementAdviceItems.Tables["TotalDeduction"].Rows)
|
|||
|
{
|
|||
|
seq++;
|
|||
|
dr["SequenceNo"] = seq;
|
|||
|
}
|
|||
|
foreach (DataRow dr in oSettlementAdviceItems.Tables["TaxAmount"].Rows)
|
|||
|
{
|
|||
|
seq++;
|
|||
|
dr["SequenceNo"] = seq;
|
|||
|
}
|
|||
|
foreach (DataRow dr in oSettlementAdviceItems.Tables["NetPay"].Rows)
|
|||
|
{
|
|||
|
seq++;
|
|||
|
dr["SequenceNo"] = seq;
|
|||
|
}
|
|||
|
|
|||
|
#region Loop Start
|
|||
|
foreach (DataRow source in oSettlementAdviceItems.Tables["GrossItem"].Rows)
|
|||
|
{
|
|||
|
oDR = dTSettlementAdvice.NewRow();
|
|||
|
this.Copy(oDR, source);
|
|||
|
dTSettlementAdvice.Rows.Add(oDR);
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow source in oSettlementAdviceItems.Tables["TotalGross"].Rows)
|
|||
|
{
|
|||
|
oDR = dTSettlementAdvice.NewRow();
|
|||
|
this.Copy(oDR, source);
|
|||
|
dTSettlementAdvice.Rows.Add(oDR);
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow source in oSettlementAdviceItems.Tables["BasicItem"].Rows)
|
|||
|
{
|
|||
|
oDR = dTSettlementAdvice.NewRow();
|
|||
|
this.Copy(oDR, source);
|
|||
|
dTSettlementAdvice.Rows.Add(oDR);
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow source in oSettlementAdviceItems.Tables["OtherItems"].Rows)
|
|||
|
{
|
|||
|
oDR = dTSettlementAdvice.NewRow();
|
|||
|
this.Copy(oDR, source);
|
|||
|
dTSettlementAdvice.Rows.Add(oDR);
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow source in oSettlementAdviceItems.Tables["DeductItem"].Rows)
|
|||
|
{
|
|||
|
oDR = dTSettlementAdvice.NewRow();
|
|||
|
this.Copy(oDR, source);
|
|||
|
dTSettlementAdvice.Rows.Add(oDR);
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow source in oSettlementAdviceItems.Tables["TotalDeduction"].Rows)
|
|||
|
{
|
|||
|
oDR = dTSettlementAdvice.NewRow();
|
|||
|
this.Copy(oDR, source);
|
|||
|
dTSettlementAdvice.Rows.Add(oDR);
|
|||
|
}
|
|||
|
foreach (DataRow source in oSettlementAdviceItems.Tables["TaxAmount"].Rows)
|
|||
|
{
|
|||
|
oDR = dTSettlementAdvice.NewRow();
|
|||
|
this.Copy(oDR, source);
|
|||
|
dTSettlementAdvice.Rows.Add(oDR);
|
|||
|
}
|
|||
|
|
|||
|
foreach (DataRow source in oSettlementAdviceItems.Tables["NetPay"].Rows)
|
|||
|
{
|
|||
|
oDR = dTSettlementAdvice.NewRow();
|
|||
|
this.Copy(oDR, source);
|
|||
|
dTSettlementAdvice.Rows.Add(oDR);
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region Report Setup
|
|||
|
|
|||
|
string RDLCName = "HRM.Report.RDLC.SettlementAdviceSheetNew.rdlc";
|
|||
|
DataSet resultDs = new DataSet();
|
|||
|
dTSettlementAdvice.TableName = "PayrollDataSet_SettlementAdvice";
|
|||
|
resultDs.Tables.Add(dTSettlementAdvice);
|
|||
|
|
|||
|
List<ReportParameter> rParams = new List<ReportParameter>();
|
|||
|
ReportParameter rParam = new ReportParameter("ReportType", reportType);
|
|||
|
rParams.Add(rParam);
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
return new ReportProcessor().CommonReportView(null, RDLCName, resultDs, null, rParams, true, payrollTypeId, reportType);
|
|||
|
}
|
|||
|
|
|||
|
private void Copy(DataRow source, DataRow destination)
|
|||
|
{
|
|||
|
source["EmpNo"] = destination["EMPLOYEENO"];
|
|||
|
source["EmpName"] = destination["Name"];
|
|||
|
source["JoiningDate"] = destination["JoiningDate"];
|
|||
|
source["Department"] = destination["Department"];
|
|||
|
source["Designation"] = destination["DESIGNATION"];
|
|||
|
source["Description"] = destination["Description"];
|
|||
|
source["AccountNo"] = destination["ACCOUNTNO"];
|
|||
|
source["Bank"] = destination["Bank"];
|
|||
|
source["Remarks"] = destination["Remarks"];
|
|||
|
source["Amount"] = destination["Amount"];
|
|||
|
source["Location"] = destination["Location"];
|
|||
|
source["CTC"] = destination["ctc"];
|
|||
|
source["CalenderDays"] = destination["calenderDays"];
|
|||
|
source["WorkDays"] = destination["workDays"];
|
|||
|
source["TranDate"] = destination["TranDate"];
|
|||
|
source["SequenceNo"] = Convert.ToInt32(destination["SequenceNo"]);
|
|||
|
source["EmpStatus"] = ((EnumEmployeeStatus)Convert.ToInt32(destination["STATUS"])).ToString();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|