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

855 lines
60 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Payroll.BO;
using Ease.CoreV35.Model;
namespace Payroll.Report
{
public class Report108
{
ObjectsTemplate<Employee> _Employees = null;
private ReportSetup _selectedParameter;
public ReportSetup SelectedParameter
{
set
{
_selectedParameter = value;
}
}
public Report108()
{
}
public string GetFromDate(Employee oEmp, string sFiscalYear)
{
DateTime dStartDate;
DateTime dFromDate;
DateTime dToDate;
string[] sFiscalYear1 = sFiscalYear.Split(new char[] { '-' });
dFromDate = Convert.ToDateTime(sFiscalYear1[0].ToString());
dToDate = Convert.ToDateTime(sFiscalYear1[1]);
if (oEmp.JoiningDate > dFromDate)
{
dStartDate = oEmp.JoiningDate;
}
else
{
dStartDate = dFromDate;
}
return Convert.ToString(dStartDate);
}
public string GetToDate(Employee oEmp, string sFiscalYear)
{
DateTime dTempEndDate;
DateTime dFromDate;
DateTime dToDate;
DateTime dEndDate = DateTime.Now;
string[] sFiscalYear1 = sFiscalYear.Split(new char[] { '-' });
dFromDate = Convert.ToDateTime(sFiscalYear1[0]);
dToDate = Convert.ToDateTime(sFiscalYear1[1]);
if (oEmp.Status != EnumEmployeeStatus.Live)
{
dTempEndDate = oEmp.DiscontinueDate;
if (dTempEndDate < dToDate)
{
dEndDate = dTempEndDate;
}
}
else
{
dEndDate = dToDate;
}
return Convert.ToString(dEndDate);
}
#region Unused Code
//public void GetDataReport108()
//{
// fReportViewer form = new fReportViewer();
// ID nTaxParamID=_selectedParameter.TaxParameters[0].ID;
// string sEmpNo=_selectedParameter.ReportItem.INSQL;
// TaxParameter otaxparam = TaxParameter.Get(nTaxParamID);
// DataRow oDRow = null;
// PayrollDataSet.PayrollDataSet.Report108DataTable dTreport108 = new Payroll.Report.PayrollDataSet.PayrollDataSet.Report108DataTable();
// int nIndex;
// int nCount = 1;
// double GrandTotal;
// ObjectsTemplate<IncomeTax> oIncomeTaxs = null;
// IncomeTax oIncomeTax=new IncomeTax();
// _Employees = Employee.GetByEmpIDs(sEmpNo);
// double nAmount = 0;
// double nTempAmount = 0;
// foreach(Employee oEmp in _Employees)
// {
// GrandTotal=0.0;
// oDRow = dTreport108.NewRow();
// if(nTaxParamID==Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID)
// {
// oIncomeTaxs = IncomeTax.Get(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID, nTaxParamID);
// }
// else
// {
// oIncomeTaxs = IncomeTax.Get(EnumIncomeTaxDataFrom.ProcessedData, oEmp.ID, nTaxParamID);
// }
// nTempAmount = 0;
// nAmount = 0;
// GrandTotal = 0;
// if(oIncomeTax!=null)
// {
// nIndex = oIncomeTaxs.GetIndex(oEmp.ID);
// oDRow["TIN"] = oEmp.TinNo;
// oDRow["SLNo"] = nCount;//col 1
// oDRow["EmpNo"] = oEmp.EmployeeNo;
// oDRow["Name"] = oEmp.Name;//col 2
// oDRow["PostalAdd"] = "";//Postal Address ,col 3
// oDRow["NEmployee"] = oEmp.Designation.Name;//Nature of Employee ,col 4
// nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Basic_Salary, (int)EnumIncomeTaxItemGroup.Basic_Salary) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Basic_Salary, (int)EnumIncomeTaxItemGroup.Basic_Salary).TotalAmount : 0.0);//Total Amount of Salary Basic+Bonus, col 5
// GrandTotal = GrandTotal + nAmount;
// oDRow["Basic"] = GlobalFunctions.TakaFormat(nAmount);
// nAmount = GlobalFunctions.Round(IncomeTax.GetAmount(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Bonus));
// GrandTotal = GrandTotal + nAmount;
// oDRow["Bonus"] = GlobalFunctions.TakaFormat(nAmount);
// oDRow["Total"] = GlobalFunctions.TakaFormat(GrandTotal);
// nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.House_Rent_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.House_Rent_Allowance).TotalAmount : 0.0);//Periodical Cash Allowance, col 6
// nTempAmount = nTempAmount + nAmount;
// oDRow["HREarned"] = GlobalFunctions.TakaFormat(nAmount);
// nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance).TotalAmount : 0.0);
// oDRow["HRExempted"] = GlobalFunctions.TakaFormat(nAmount);
// nTempAmount = nTempAmount - nAmount;
// oDRow["HRTaxable"] = GlobalFunctions.TakaFormat(nTempAmount);
// GrandTotal = GrandTotal + nTempAmount;
// nTempAmount = 0;
// nAmount = 0;
// IncomeTax oITax = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Conveyance_Allowance);
// if (oITax != null)
// {
// nAmount = oITax.TotalAmount;
// oDRow["CEarned"] = GlobalFunctions.TakaFormat(oITax.TotalAmount);
// }
// else
// oDRow["CEarned"] = 0.0;
// nTempAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance).TotalAmount : 0.0);
// oDRow["CExempted"] = GlobalFunctions.TakaFormat(nTempAmount);
// oDRow["CTaxable"] = GlobalFunctions.TakaFormat(nAmount - nTempAmount);
// GrandTotal = GrandTotal + nAmount - nTempAmount;
// nTempAmount = 0;
// nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Medical_Allowance, (int)EnumIncomeTaxItemGroup.Medical_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Medical_Allowance, (int)EnumIncomeTaxItemGroup.Medical_Allowance).TotalAmount : 0);
// oDRow["MEarned"] = GlobalFunctions.TakaFormat(nAmount);
// nTempAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Medical_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Medical_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Medical_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Medical_Allowance).TotalAmount : 0.0);
// oDRow["MExempted"] = GlobalFunctions.TakaFormat(nTempAmount);
// oDRow["MTaxable"] = GlobalFunctions.TakaFormat(nAmount - nTempAmount);
// GrandTotal = GrandTotal + nAmount - nTempAmount;
// oDRow["Entertainment"] = 0;
// nAmount = 0;
// foreach (IncomeTax titem in oIncomeTaxs)
// {
// if (titem.Side == EnumIncomeTaxSide.Inc_SalaryIncome)
// {
// if (titem.ItemGroup != EnumIncomeTaxItemGroup.Basic_Salary
// && titem.ItemGroup != EnumIncomeTaxItemGroup.Bonus
// && titem.ItemGroup != EnumIncomeTaxItemGroup.House_Rent_Allowance
// && titem.ItemGroup != EnumIncomeTaxItemGroup.Conveyance_Allowance
// && titem.ItemGroup != EnumIncomeTaxItemGroup.Cmp_Provided_car
// && titem.ItemGroup != EnumIncomeTaxItemGroup.Cmp_Provided_House)
// {
// nAmount = nAmount + titem.TotalAmount;
// }
// }
// }
// oDRow["Others"] = GlobalFunctions.TakaFormat(nAmount);
// GrandTotal = GrandTotal + nAmount;
// oDRow["FDate"] = (oEmp.JoiningDate > otaxparam.FiscalyearDatefrom) ? oEmp.JoiningDate.ToString("dd MMM yyyy") : otaxparam.FiscalyearDatefrom.ToString("dd MMM yyyy");
// oDRow["TDate"] = (oEmp.Status != EnumEmployeeStatus.Live) ? oEmp.DiscontinueDate.ToString("dd MMM yyyy") : otaxparam.FiscalyearDateTo.ToString("dd MMM yyyy");
// oDRow["SANDOtherSum"] = 0;//Salary and all other Sum ,col 8
// nAmount =IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_House, (int)EnumIncomeTaxItemGroup.Other_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_House, (int)EnumIncomeTaxItemGroup.Cmp_Provided_House).TotalAmount : 0.0;
// GrandTotal = GrandTotal + nAmount;
// oDRow["BasicPercent"] = GlobalFunctions.TakaFormat(nAmount);
// oDRow["EnterAllowance"] = 0;//Amount of Entertaitment Allowance ,col 10
// oDRow["VechilesPercent"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_car, (int)EnumIncomeTaxItemGroup.Cmp_Provided_car) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_car, (int)EnumIncomeTaxItemGroup.Cmp_Provided_car).TotalAmount : 0.0);
// oDRow["SPByEmployeer"] = 0;//Salary Paid by employeer ,col 12
// oDRow["VOfFree"] = 0;//Value of Rent Free Accomodation or Value of any Concession in Rent for the Accomodation provided by the Employer,col 13
// nAmount = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Company_Contri_PF, (int)EnumIncomeTaxItemGroup.Company_Contri_PF) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Company_Contri_PF, (int)EnumIncomeTaxItemGroup.Company_Contri_PF).TotalAmount : 0;
// oDRow["EContribution"] = GlobalFunctions.TakaFormat(nAmount);
// GrandTotal = GrandTotal + nAmount;
// oDRow["InterestCredit"] = 0; //Math.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Gross_Tax, (int)EnumIncomeTaxItemGroup.Gross_Tax) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Gross_Tax, (int)EnumIncomeTaxItemGroup.Gross_Tax).TotalAmount : 0);//Interest Credit to the assessee's accout in a recognised provident fund,col 15
// oDRow["VofAnyBenefit"] = 0;//Value of any benefit ,col 15
// //GrandTotal = GrandTotal +
// // Convert.ToDouble(oDRow["SANDOtherSum"]) +
// // Convert.ToDouble(oDRow["BasicPercent"]) +
// // Convert.ToDouble(oDRow["EnterAllowance"]) +
// // Convert.ToDouble(oDRow["VechilesPercent"]) +
// // Convert.ToDouble(oDRow["SPByEmployeer"]) +
// // Convert.ToDouble(oDRow["VOfFree"]) +
// // Convert.ToDouble(oDRow["EContribution"])
// // + Convert.ToDouble(oDRow["InterestCredit"])
// // + Convert.ToDouble(oDRow["VofAnyBenefit"]);
// oDRow["TotalCol"] = GlobalFunctions.TakaFormat(GrandTotal);//Total Col 5,6,8 to 16 ,col 16
// oDRow["AmountLiable"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment, (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment, (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment).TotalAmount : 0);//Amount Liable to tax under section 21 of income tax ordinance 1984 ,col 17
// oDRow["ConToTheProvident"] = 0;//Contribution to the provident ,col 18
// oDRow["TaxIncome"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Gross_Refund, (int)EnumIncomeTaxItemGroup.Gross_Tax) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Gross_Refund, (int)EnumIncomeTaxItemGroup.Gross_Tax).TotalAmount : 0);//Taxable Income ,col 19
// //double ndjustedAmount = 0.0;
// //double totalAmountNow = 0.0;
// //if (nTaxParamID != Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID)
// //{
// // foreach (IncomeTax oItem in oIncomeTaxs)
// // {
// // if (oItem.Side == EnumIncomeTaxSide.Inc_GrossTax || oItem.Side == EnumIncomeTaxSide.Dec_GrossTax)
// // {
// // if (oItem.ItemGroup != EnumIncomeTaxItemGroup.Tax_Credit_On_Investment)
// // {
// // if (oItem.Side == EnumIncomeTaxSide.Inc_GrossTax)
// // ndjustedAmount = ndjustedAmount + oItem.TotalAmount;
// // else
// // ndjustedAmount = ndjustedAmount - oItem.TotalAmount;
// // }
// // }
// // }
// // IncomeTax oNetTaxPayable = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Net_Payable, (int)EnumIncomeTaxItemGroup.Net_Payable);
// // if (oNetTaxPayable != null)
// // {
// // oNetTaxPayable.TotalAmount = oNetTaxPayable.TotalAmount - ndjustedAmount;
// // totalAmountNow = oNetTaxPayable.TotalAmount;
// // oDRow["TaxPayable"] = GlobalFunctions.TakaFormat(oNetTaxPayable.TotalAmount);
// // }
// //}
// //else
// //{
// oDRow["TaxPayable"] =
// GlobalFunctions.TakaFormat(
// IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Net_Payable,
// (int) EnumIncomeTaxItemGroup.Net_Payable) != null
// ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Net_Payable,
// (int) EnumIncomeTaxItemGroup.Net_Payable).TotalAmount
// : 0); //Tax Payable ,col 20
// // }
// oDRow["ThisMonthAmount"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted, (int)EnumIncomeTaxItemGroup.Tax_Deducted) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted, (int)EnumIncomeTaxItemGroup.Tax_Deducted).ThisMonthAmount : 0);
// //if (nTaxParamID != Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID)
// //{
// // oDRow["TaxActualDeduct"] = GlobalFunctions.TakaFormat(totalAmountNow);
// //}
// //else
// //{
// oDRow["TaxActualDeduct"] =
// GlobalFunctions.TakaFormat(
// IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted,
// (int) EnumIncomeTaxItemGroup.Tax_Deducted) != null
// ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted,
// (int) EnumIncomeTaxItemGroup.Tax_Deducted).TotalAmount
// : 0); //Tax actually deduct ,col 21
// // }
// oDRow["Remarks"] = "";//Remarks ,col 22
// dTreport108.Rows.Add(oDRow);
// nCount++;
// }
// }
// form.ShowDlgForReport108(_selectedParameter.ReportItem, dTreport108);
//}
#endregion
public void GetDataReport108()
{
fReportViewer form = new fReportViewer();
ID nTaxParamID = _selectedParameter.TaxParameters[0].ID;
string sEmpNo = _selectedParameter.ReportItem.INSQL;
TaxParameter otaxparam = TaxParameter.Get(nTaxParamID);
DataRow oDRow = null;
PayrollDataSet.PayrollDataSet.Report108DataTable dTreport108 = new Payroll.Report.PayrollDataSet.PayrollDataSet.Report108DataTable();
int nIndex;
int nCount = 1;
double GrandTotal;
ObjectsTemplate<IncomeTax> oIncomeTaxs = null;
IncomeTax oIncomeTax = new IncomeTax();
//_Employees = Employee.GetWithDiscontinue();
_Employees = Employee.GetEmpsWithDiscontinue(sEmpNo);
double nAmount = 0;
double nTempAmount = 0;
foreach (Employee oEmp in _Employees)
{
GrandTotal = 0.0;
oDRow = dTreport108.NewRow();
if (nTaxParamID == Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID)
{
oIncomeTaxs = IncomeTax.Get(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID, nTaxParamID);
}
else
{
oIncomeTaxs = IncomeTax.Get(EnumIncomeTaxDataFrom.ProcessedData, oEmp.ID, nTaxParamID);
}
if (oIncomeTaxs == null) continue;
nTempAmount = 0;
nAmount = 0;
GrandTotal = 0;
if (oIncomeTax != null)
{
nIndex = oIncomeTaxs.GetIndex(oEmp.ID);
oDRow["TIN"] = oEmp.TinNo;
oDRow["SLNo"] = nCount;//col 1
oDRow["EmpNo"] = oEmp.EmployeeNo;
oDRow["Name"] = oEmp.Name;//col 2
oDRow["PostalAdd"] = "";//Postal Address ,col 3
oDRow["NEmployee"] = oEmp.DescriptionText;//Nature of Employee ,col 4
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Basic_Salary, (int)EnumIncomeTaxItemGroup.Basic_Salary) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Basic_Salary, (int)EnumIncomeTaxItemGroup.Basic_Salary).TotalAmount : 0.0);//Total Amount of Salary Basic+Bonus, col 5
GrandTotal = GrandTotal + nAmount;
oDRow["Basic"] = GlobalFunctions.TakaFormat(nAmount);
nAmount = GlobalFunctions.Round(IncomeTax.GetAmount(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Bonus));
GrandTotal = GrandTotal + nAmount;
oDRow["Bonus"] = GlobalFunctions.TakaFormat(nAmount);
oDRow["Total"] = GlobalFunctions.TakaFormat(GrandTotal);
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.House_Rent_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.House_Rent_Allowance).TotalAmount : 0.0);//Periodical Cash Allowance, col 6
nTempAmount = nTempAmount + nAmount;
oDRow["HREarned"] = GlobalFunctions.TakaFormat(nAmount);
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance).TotalAmount : 0.0);
oDRow["HRExempted"] = GlobalFunctions.TakaFormat(nAmount);
nTempAmount = nTempAmount - nAmount;
oDRow["HRTaxable"] = GlobalFunctions.TakaFormat(nTempAmount);
GrandTotal = GrandTotal + nTempAmount;
nTempAmount = 0;
nAmount = 0;
IncomeTax oITax = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Conveyance_Allowance);
if (oITax != null)
{
nAmount = oITax.TotalAmount;
oDRow["CEarned"] = GlobalFunctions.TakaFormat(oITax.TotalAmount);
}
else
oDRow["CEarned"] = 0.0;
nTempAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance).TotalAmount : 0.0);
oDRow["CExempted"] = GlobalFunctions.TakaFormat(nTempAmount);
oDRow["CTaxable"] = GlobalFunctions.TakaFormat(nAmount - nTempAmount);
GrandTotal = GrandTotal + nAmount - nTempAmount;
nTempAmount = 0;
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Medical_Allowance, (int)EnumIncomeTaxItemGroup.Medical_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Medical_Allowance, (int)EnumIncomeTaxItemGroup.Medical_Allowance).TotalAmount : 0);
oDRow["MEarned"] = GlobalFunctions.TakaFormat(nAmount);
nTempAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Medical_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Medical_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Medical_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Medical_Allowance).TotalAmount : 0.0);
oDRow["MExempted"] = GlobalFunctions.TakaFormat(nTempAmount);
oDRow["MTaxable"] = GlobalFunctions.TakaFormat(nAmount - nTempAmount);
GrandTotal = GrandTotal + nAmount - nTempAmount;
oDRow["Entertainment"] = 0;
nAmount = 0;
foreach (IncomeTax titem in oIncomeTaxs)
{
if (titem.Side == EnumIncomeTaxSide.Inc_SalaryIncome)
{
if (titem.ItemGroup != EnumIncomeTaxItemGroup.Basic_Salary
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Bonus
&& titem.ItemGroup != EnumIncomeTaxItemGroup.House_Rent_Allowance
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Conveyance_Allowance
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Cmp_Provided_car
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Cmp_Provided_House
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Medical_Allowance
&& titem.ItemGroup != EnumIncomeTaxItemGroup.LFA_Allowance)
{
nAmount = nAmount + titem.TotalAmount;
}
}
}
oDRow["Others"] = GlobalFunctions.TakaFormat(nAmount);
GrandTotal = GrandTotal + nAmount;
oDRow["FDate"] = (oEmp.JoiningDate > otaxparam.FiscalyearDatefrom) ? oEmp.JoiningDate.ToString("dd MMM yyyy") : otaxparam.FiscalyearDatefrom.ToString("dd MMM yyyy");
oDRow["TDate"] = (oEmp.Status != EnumEmployeeStatus.Live) ? oEmp.DiscontinueDate.ToString("dd MMM yyyy") : otaxparam.FiscalyearDateTo.ToString("dd MMM yyyy");
oDRow["SANDOtherSum"] = 0;//Salary and all other Sum ,col 8
nAmount = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_House, (int)EnumIncomeTaxItemGroup.Other_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_House, (int)EnumIncomeTaxItemGroup.Cmp_Provided_House).TotalAmount : 0.0;
GrandTotal = GrandTotal + nAmount;
oDRow["BasicPercent"] = GlobalFunctions.TakaFormat(nAmount);
oDRow["EnterAllowance"] = 0;//Amount of Entertaitment Allowance ,col 10
nAmount = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_car, (int)EnumIncomeTaxItemGroup.Cmp_Provided_car) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_car, (int)EnumIncomeTaxItemGroup.Cmp_Provided_car).TotalAmount : 0.0;
oDRow["VechilesPercent"] = GlobalFunctions.TakaFormat(nAmount);
GrandTotal = GrandTotal + nAmount;
oDRow["SPByEmployeer"] = 0;//Salary Paid by employeer ,col 12
oDRow["VOfFree"] = 0;//Value of Rent Free Accomodation or Value of any Concession in Rent for the Accomodation provided by the Employer,col 13
nAmount = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Company_Contri_PF, (int)EnumIncomeTaxItemGroup.Company_Contri_PF) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Company_Contri_PF, (int)EnumIncomeTaxItemGroup.Company_Contri_PF).TotalAmount : 0;
oDRow["EContribution"] = GlobalFunctions.TakaFormat(nAmount);
GrandTotal = GrandTotal + nAmount;
oDRow["InterestCredit"] = 0; //Math.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Gross_Tax, (int)EnumIncomeTaxItemGroup.Gross_Tax) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Gross_Tax, (int)EnumIncomeTaxItemGroup.Gross_Tax).TotalAmount : 0);//Interest Credit to the assessee's accout in a recognised provident fund,col 15
oDRow["VofAnyBenefit"] = 0;//Value of any benefit ,col 15
//GrandTotal = GrandTotal +
// Convert.ToDouble(oDRow["SANDOtherSum"]) +
// Convert.ToDouble(oDRow["BasicPercent"]) +
// Convert.ToDouble(oDRow["EnterAllowance"]) +
// Convert.ToDouble(oDRow["VechilesPercent"]) +
// Convert.ToDouble(oDRow["SPByEmployeer"]) +
// Convert.ToDouble(oDRow["VOfFree"]) +
// Convert.ToDouble(oDRow["EContribution"])
// + Convert.ToDouble(oDRow["InterestCredit"])
// + Convert.ToDouble(oDRow["VofAnyBenefit"]);
oDRow["TotalCol"] = GlobalFunctions.TakaFormat(GrandTotal);//Total Col 5,6,8 to 16 ,col 16
oDRow["AmountLiable"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Gross_Tax, (int)EnumIncomeTaxItemGroup.Gross_Tax) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Gross_Tax, (int)EnumIncomeTaxItemGroup.Gross_Tax).TotalAmount : 0);//Amount Liable to tax under section 21 of income tax ordinance 1984 ,col 17
//GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment, (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment, (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment).TotalAmount : 0);//Amount Liable to tax under section 21 of income tax ordinance 1984 ,col 17
oDRow["ConToTheProvident"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment, (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment, (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment).TotalAmount : 0);//Amount Liable to tax under section 21 of income tax ordinance 1984 ,col 17;//Contribution to the provident ,col 18
oDRow["TaxIncome"] = GlobalFunctions.TakaFormat(GrandTotal); //GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Gross_Refund, (int)EnumIncomeTaxItemGroup.Gross_Tax) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Gross_Refund, (int)EnumIncomeTaxItemGroup.Gross_Tax).TotalAmount : 0);//Taxable Income ,col 19
//double ndjustedAmount = 0.0;
//double totalAmountNow = 0.0;
//if (nTaxParamID != Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID)
//{
// foreach (IncomeTax oItem in oIncomeTaxs)
// {
// if (oItem.Side == EnumIncomeTaxSide.Inc_GrossTax || oItem.Side == EnumIncomeTaxSide.Dec_GrossTax)
// {
// if (oItem.ItemGroup != EnumIncomeTaxItemGroup.Tax_Credit_On_Investment)
// {
// if (oItem.Side == EnumIncomeTaxSide.Inc_GrossTax)
// ndjustedAmount = ndjustedAmount + oItem.TotalAmount;
// else
// ndjustedAmount = ndjustedAmount - oItem.TotalAmount;
// }
// }
// }
// IncomeTax oNetTaxPayable = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Net_Payable, (int)EnumIncomeTaxItemGroup.Net_Payable);
// if (oNetTaxPayable != null)
// {
// oNetTaxPayable.TotalAmount = oNetTaxPayable.TotalAmount - ndjustedAmount;
// totalAmountNow = oNetTaxPayable.TotalAmount;
// oDRow["TaxPayable"] = GlobalFunctions.TakaFormat(oNetTaxPayable.TotalAmount);
// }
//}
//else
//{
oDRow["TaxPayable"] =
GlobalFunctions.TakaFormat(
IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Net_Payable,
(int)EnumIncomeTaxItemGroup.Net_Payable) != null
? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Net_Payable,
(int)EnumIncomeTaxItemGroup.Net_Payable).TotalAmount
: 0); //Tax Payable ,col 20
// }
oDRow["ThisMonthAmount"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted, (int)EnumIncomeTaxItemGroup.Tax_Deducted) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted, (int)EnumIncomeTaxItemGroup.Tax_Deducted).ThisMonthAmount : 0);
//if (nTaxParamID != Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID)
//{
// oDRow["TaxActualDeduct"] = GlobalFunctions.TakaFormat(totalAmountNow);
//}
//else
//{
oDRow["TaxActualDeduct"] =
GlobalFunctions.TakaFormat(
IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted,
(int)EnumIncomeTaxItemGroup.Tax_Deducted) != null
? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted,
(int)EnumIncomeTaxItemGroup.Tax_Deducted).TotalAmount
: 0); //Tax actually deduct ,col 21
// }
oDRow["Remarks"] = "";//Remarks ,col 22
dTreport108.Rows.Add(oDRow);
nCount++;
}
}
form.ShowDlgForReport108(_selectedParameter.ReportItem, dTreport108);
}
public void GetDataReport108WPD()
{
fReportViewer form = new fReportViewer();
ID nTaxParamID = _selectedParameter.TaxParameters[0].ID;
string sEmpNo = _selectedParameter.ReportItem.INSQL;
TaxParameter otaxparam = TaxParameter.Get(nTaxParamID);
DataRow oDRow = null;
PayrollDataSet.PayrollDataSet.Report108DataTable dTreport108 = new Payroll.Report.PayrollDataSet.PayrollDataSet.Report108DataTable();
int nIndex;
int nCount = 1;
double GrandTotal;
ObjectsTemplate<IncomeTax> oIncomeTaxs = null;
IncomeTax oIncomeTax = new IncomeTax();
//IncomeTax oIT =null;
_Employees = Employee.GetByEmpIDs(sEmpNo);
double nAmount = 0;
double nTempAmount = 0;
foreach (Employee oEmp in _Employees)
{
GrandTotal = 0.0;
oDRow = dTreport108.NewRow();
if (nTaxParamID == Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID)
{
oIncomeTaxs = IncomeTax.Get(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID, nTaxParamID);
}
else
{
oIncomeTaxs = IncomeTax.Get(EnumIncomeTaxDataFrom.ProcessedData, oEmp.ID, nTaxParamID);
}
nTempAmount = 0;
nAmount = 0;
GrandTotal = 0;
if (oIncomeTaxs != null)
{
nIndex = oIncomeTaxs.GetIndex(oEmp.ID);
oDRow["TIN"] = oEmp.TinNo;
oDRow["SLNo"] = nCount;//col 1
oDRow["EmpNo"] = oEmp.EmployeeNo;
oDRow["Name"] = oEmp.Name;//col 2
oDRow["PostalAdd"] = "";//Postal Address ,col 3
oDRow["NEmployee"] = oEmp.DescriptionText;//Nature of Employee ,col 4
IncomeTax oITBasic = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Basic_Salary, (int)EnumIncomeTaxItemGroup.Basic_Salary);
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Basic_Salary, (int)EnumIncomeTaxItemGroup.Basic_Salary) != null ? (oITBasic.TotalAmount - oITBasic.ProjectedAmount) : 0.0);//Total Amount of Salary Basic+Bonus, col 5
GrandTotal = GrandTotal + nAmount;
oDRow["Basic"] = GlobalFunctions.TakaFormat(nAmount);
nAmount = GlobalFunctions.Round(IncomeTax.GetAmount(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Bonus));
GrandTotal = GrandTotal + nAmount;
oDRow["Bonus"] = GlobalFunctions.TakaFormat(nAmount);
oDRow["Total"] = GlobalFunctions.TakaFormat(GrandTotal);
IncomeTax oITHR = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.House_Rent_Allowance);
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.House_Rent_Allowance) != null ? (oITHR.TotalAmount - oITHR.ProjectedAmount) : 0.0);//Periodical Cash Allowance, col 6
nTempAmount = nTempAmount + nAmount;
oDRow["HREarned"] = GlobalFunctions.TakaFormat(nAmount);
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance).TotalAmount : 0.0);
oDRow["HRExempted"] = GlobalFunctions.TakaFormat(nAmount);
nTempAmount = nTempAmount - nAmount;
oDRow["HRTaxable"] = GlobalFunctions.TakaFormat(nTempAmount);
GrandTotal = GrandTotal + nTempAmount;
nTempAmount = 0;
nAmount = 0;
IncomeTax oITax = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Conveyance_Allowance);
if (oITax != null)
{
nAmount = oITax.TotalAmount;
oDRow["CEarned"] = GlobalFunctions.TakaFormat(oITax.TotalAmount - oITax.ProjectedAmount);
}
else
oDRow["CEarned"] = 0.0;
nTempAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance).TotalAmount : 0.0);
oDRow["CExempted"] = GlobalFunctions.TakaFormat(nTempAmount);
oDRow["CTaxable"] = GlobalFunctions.TakaFormat(nAmount - nTempAmount);
GrandTotal = GrandTotal + nAmount - nTempAmount;
nTempAmount = 0;
IncomeTax oITMEarned = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Medical_Allowance, (int)EnumIncomeTaxItemGroup.Medical_Allowance);
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Medical_Allowance, (int)EnumIncomeTaxItemGroup.Medical_Allowance) != null ? (oITMEarned.TotalAmount - oITMEarned.ProjectedAmount) : 0);
oDRow["MEarned"] = GlobalFunctions.TakaFormat(nAmount);
nTempAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Medical_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Medical_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Medical_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Medical_Allowance).TotalAmount : 0.0);
oDRow["MExempted"] = GlobalFunctions.TakaFormat(nTempAmount);
oDRow["MTaxable"] = GlobalFunctions.TakaFormat(nAmount - nTempAmount);
GrandTotal = GrandTotal + nAmount - nTempAmount;
oDRow["Entertainment"] = 0;
nAmount = 0;
foreach (IncomeTax titem in oIncomeTaxs)
{
if (titem.Side == EnumIncomeTaxSide.Inc_SalaryIncome)
{
if (titem.ItemGroup != EnumIncomeTaxItemGroup.Basic_Salary
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Bonus
&& titem.ItemGroup != EnumIncomeTaxItemGroup.House_Rent_Allowance
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Conveyance_Allowance
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Cmp_Provided_car
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Cmp_Provided_House)
{
nAmount = nAmount + titem.TotalAmount;
}
}
}
oDRow["Others"] = GlobalFunctions.TakaFormat(nAmount);
GrandTotal = GrandTotal + nAmount;
oDRow["FDate"] = (oEmp.JoiningDate > otaxparam.FiscalyearDatefrom) ? oEmp.JoiningDate.ToString("dd MMM yyyy") : otaxparam.FiscalyearDatefrom.ToString("dd MMM yyyy");
oDRow["TDate"] = (oEmp.Status != EnumEmployeeStatus.Live) ? oEmp.DiscontinueDate.ToString("dd MMM yyyy") : otaxparam.FiscalyearDateTo.ToString("dd MMM yyyy");
oDRow["SANDOtherSum"] = 0;//Salary and all other Sum ,col 8
nAmount = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_House, (int)EnumIncomeTaxItemGroup.Other_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_House, (int)EnumIncomeTaxItemGroup.Cmp_Provided_House).TotalAmount : 0.0;
GrandTotal = GrandTotal + nAmount;
oDRow["BasicPercent"] = GlobalFunctions.TakaFormat(nAmount);
oDRow["EnterAllowance"] = 0;//Amount of Entertaitment Allowance ,col 10
oDRow["VechilesPercent"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_car, (int)EnumIncomeTaxItemGroup.Cmp_Provided_car) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_car, (int)EnumIncomeTaxItemGroup.Cmp_Provided_car).TotalAmount : 0.0);
oDRow["SPByEmployeer"] = 0;//Salary Paid by employeer ,col 12
oDRow["VOfFree"] = 0;//Value of Rent Free Accomodation or Value of any Concession in Rent for the Accomodation provided by the Employer,col 13
nAmount = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Company_Contri_PF, (int)EnumIncomeTaxItemGroup.Company_Contri_PF) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Company_Contri_PF, (int)EnumIncomeTaxItemGroup.Company_Contri_PF).TotalAmount : 0;
oDRow["EContribution"] = GlobalFunctions.TakaFormat(nAmount);
GrandTotal = GrandTotal + nAmount;
oDRow["InterestCredit"] = 0; //Math.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Gross_Tax, (int)EnumIncomeTaxItemGroup.Gross_Tax) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Gross_Tax, (int)EnumIncomeTaxItemGroup.Gross_Tax).TotalAmount : 0);//Interest Credit to the assessee's accout in a recognised provident fund,col 15
oDRow["VofAnyBenefit"] = 0;//Value of any benefit ,col 15
//GrandTotal = GrandTotal +
// Convert.ToDouble(oDRow["SANDOtherSum"]) +
// Convert.ToDouble(oDRow["BasicPercent"]) +
// Convert.ToDouble(oDRow["EnterAllowance"]) +
// Convert.ToDouble(oDRow["VechilesPercent"]) +
// Convert.ToDouble(oDRow["SPByEmployeer"]) +
// Convert.ToDouble(oDRow["VOfFree"]) +
// Convert.ToDouble(oDRow["EContribution"])
// + Convert.ToDouble(oDRow["InterestCredit"])
// + Convert.ToDouble(oDRow["VofAnyBenefit"]);
oDRow["TotalCol"] = GlobalFunctions.TakaFormat(GrandTotal);//Total Col 5,6,8 to 16 ,col 16
oDRow["AmountLiable"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment, (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment, (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment).TotalAmount : 0);//Amount Liable to tax under section 21 of income tax ordinance 1984 ,col 17
oDRow["ConToTheProvident"] = 0;//Contribution to the provident ,col 18
oDRow["TaxIncome"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Gross_Refund, (int)EnumIncomeTaxItemGroup.Gross_Tax) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Gross_Refund, (int)EnumIncomeTaxItemGroup.Gross_Tax).TotalAmount : 0);//Taxable Income ,col 19
//double ndjustedAmount = 0.0;
//double totalAmountNow = 0.0;
//if (nTaxParamID != Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID)
//{
// foreach (IncomeTax oItem in oIncomeTaxs)
// {
// if (oItem.Side == EnumIncomeTaxSide.Inc_GrossTax || oItem.Side == EnumIncomeTaxSide.Dec_GrossTax)
// {
// if (oItem.ItemGroup != EnumIncomeTaxItemGroup.Tax_Credit_On_Investment)
// {
// if (oItem.Side == EnumIncomeTaxSide.Inc_GrossTax)
// ndjustedAmount = ndjustedAmount + oItem.TotalAmount;
// else
// ndjustedAmount = ndjustedAmount - oItem.TotalAmount;
// }
// }
// }
// IncomeTax oNetTaxPayable = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Net_Payable, (int)EnumIncomeTaxItemGroup.Net_Payable);
// if (oNetTaxPayable != null)
// {
// oNetTaxPayable.TotalAmount = oNetTaxPayable.TotalAmount - ndjustedAmount;
// totalAmountNow = oNetTaxPayable.TotalAmount;
// oDRow["TaxPayable"] = GlobalFunctions.TakaFormat(oNetTaxPayable.TotalAmount);
// }
//}
//else
//{
oDRow["TaxPayable"] =
GlobalFunctions.TakaFormat(
IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Net_Payable,
(int)EnumIncomeTaxItemGroup.Net_Payable) != null
? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Net_Payable,
(int)EnumIncomeTaxItemGroup.Net_Payable).TotalAmount
: 0); //Tax Payable ,col 20
// }
oDRow["ThisMonthAmount"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted, (int)EnumIncomeTaxItemGroup.Tax_Deducted) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted, (int)EnumIncomeTaxItemGroup.Tax_Deducted).ThisMonthAmount : 0);
//if (nTaxParamID != Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID)
//{
// oDRow["TaxActualDeduct"] = GlobalFunctions.TakaFormat(totalAmountNow);
//}
//else
//{
oDRow["TaxActualDeduct"] =
GlobalFunctions.TakaFormat(
IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted,
(int)EnumIncomeTaxItemGroup.Tax_Deducted) != null
? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted,
(int)EnumIncomeTaxItemGroup.Tax_Deducted).TotalAmount
: 0); //Tax actually deduct ,col 21
// }
oDRow["Remarks"] = "";//Remarks ,col 22
dTreport108.Rows.Add(oDRow);
nCount++;
}
}
form.ShowDlgForReport108(_selectedParameter.ReportItem, dTreport108);
}
public void GetDataReport108OnPaidAmount()
{
fReportViewer form = new fReportViewer();
ID nTaxParamID = _selectedParameter.TaxParameters[0].ID;
string sEmpNo = _selectedParameter.ReportItem.INSQL;
TaxParameter otaxparam = TaxParameter.Get(nTaxParamID);
DataRow oDRow = null;
PayrollDataSet.PayrollDataSet.Report108DataTable dTreport108 = new Payroll.Report.PayrollDataSet.PayrollDataSet.Report108DataTable();
int nIndex;
int nCount = 1;
double GrandTotal;
ObjectsTemplate<IncomeTax> oIncomeTaxs = null;
IncomeTax oIncomeTax = new IncomeTax();
_Employees = Employee.GetEmpsWithDiscontinue(sEmpNo);
double nAmount = 0;
double nTempAmount = 0;
foreach (Employee oEmp in _Employees)
{
GrandTotal = 0.0;
oDRow = dTreport108.NewRow();
if (nTaxParamID == Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID)
{
oIncomeTaxs = IncomeTax.Get(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID, nTaxParamID);
}
else
{
oIncomeTaxs = IncomeTax.Get(EnumIncomeTaxDataFrom.ProcessedData, oEmp.ID, nTaxParamID);
}
if (oIncomeTaxs == null) continue;
nTempAmount = 0;
nAmount = 0;
GrandTotal = 0;
if (oIncomeTax != null)
{
nIndex = oIncomeTaxs.GetIndex(oEmp.ID);
oDRow["TIN"] = oEmp.TinNo;
oDRow["SLNo"] = nCount;
oDRow["EmpNo"] = oEmp.EmployeeNo;
oDRow["Name"] = oEmp.Name;
oDRow["PostalAdd"] = "";
oDRow["NEmployee"] = oEmp.DescriptionText;
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Basic_Salary, (int)EnumIncomeTaxItemGroup.Basic_Salary) != null ? (IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Basic_Salary, (int)EnumIncomeTaxItemGroup.Basic_Salary).PreviousAmount + IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Basic_Salary, (int)EnumIncomeTaxItemGroup.Basic_Salary).ThisMonthAmount) : 0.0);//Total Amount of Salary Basic+Bonus, col 5
GrandTotal = GrandTotal + nAmount;
oDRow["Basic"] = GlobalFunctions.TakaFormat(nAmount);
nAmount = GlobalFunctions.Round(IncomeTax.GetAmount(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Bonus));
GrandTotal = GrandTotal + nAmount;
oDRow["Bonus"] = GlobalFunctions.TakaFormat(nAmount);
oDRow["Total"] = GlobalFunctions.TakaFormat(GrandTotal);
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.House_Rent_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.House_Rent_Allowance).TotalAmount : 0.0);//Periodical Cash Allowance, col 6
nTempAmount = nTempAmount + nAmount;
oDRow["HREarned"] = GlobalFunctions.TakaFormat(nAmount);
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance).TotalAmount : 0.0);
oDRow["HRExempted"] = GlobalFunctions.TakaFormat(nAmount);
nTempAmount = nTempAmount - nAmount;
oDRow["HRTaxable"] = GlobalFunctions.TakaFormat(nTempAmount);
GrandTotal = GrandTotal + nTempAmount;
nTempAmount = 0;
nAmount = 0;
IncomeTax oITax = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Conveyance_Allowance);
if (oITax != null)
{
nAmount = oITax.TotalAmount;
oDRow["CEarned"] = GlobalFunctions.TakaFormat(oITax.TotalAmount);
}
else
oDRow["CEarned"] = 0.0;
nTempAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance).TotalAmount : 0.0);
oDRow["CExempted"] = GlobalFunctions.TakaFormat(nTempAmount);
oDRow["CTaxable"] = GlobalFunctions.TakaFormat(nAmount - nTempAmount);
GrandTotal = GrandTotal + nAmount - nTempAmount;
nTempAmount = 0;
nAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Medical_Allowance, (int)EnumIncomeTaxItemGroup.Medical_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Medical_Allowance, (int)EnumIncomeTaxItemGroup.Medical_Allowance).TotalAmount : 0);
oDRow["MEarned"] = GlobalFunctions.TakaFormat(nAmount);
nTempAmount = GlobalFunctions.Round(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Medical_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Medical_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Exemption_Medical_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Medical_Allowance).TotalAmount : 0.0);
oDRow["MExempted"] = GlobalFunctions.TakaFormat(nTempAmount);
oDRow["MTaxable"] = GlobalFunctions.TakaFormat(nAmount - nTempAmount);
GrandTotal = GrandTotal + nAmount - nTempAmount;
oDRow["Entertainment"] = 0;
nAmount = 0;
foreach (IncomeTax titem in oIncomeTaxs)
{
if (titem.Side == EnumIncomeTaxSide.Inc_SalaryIncome)
{
if (titem.ItemGroup != EnumIncomeTaxItemGroup.Basic_Salary
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Bonus
&& titem.ItemGroup != EnumIncomeTaxItemGroup.House_Rent_Allowance
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Conveyance_Allowance
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Cmp_Provided_car
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Cmp_Provided_House
&& titem.ItemGroup != EnumIncomeTaxItemGroup.Medical_Allowance
&& titem.ItemGroup != EnumIncomeTaxItemGroup.LFA_Allowance)
{
nAmount = nAmount + titem.TotalAmount;
}
}
}
oDRow["Others"] = GlobalFunctions.TakaFormat(nAmount);
GrandTotal = GrandTotal + nAmount;
oDRow["FDate"] = (oEmp.JoiningDate > otaxparam.FiscalyearDatefrom) ? oEmp.JoiningDate.ToString("dd MMM yyyy") : otaxparam.FiscalyearDatefrom.ToString("dd MMM yyyy");
oDRow["TDate"] = (oEmp.Status != EnumEmployeeStatus.Live) ? oEmp.DiscontinueDate.ToString("dd MMM yyyy") : otaxparam.FiscalyearDateTo.ToString("dd MMM yyyy");
oDRow["SANDOtherSum"] = 0;
nAmount = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_House, (int)EnumIncomeTaxItemGroup.Other_Allowance) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_House, (int)EnumIncomeTaxItemGroup.Cmp_Provided_House).TotalAmount : 0.0;
GrandTotal = GrandTotal + nAmount;
oDRow["BasicPercent"] = GlobalFunctions.TakaFormat(nAmount);
oDRow["EnterAllowance"] = 0;
oDRow["VechilesPercent"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_car, (int)EnumIncomeTaxItemGroup.Cmp_Provided_car) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Cmp_Provided_car, (int)EnumIncomeTaxItemGroup.Cmp_Provided_car).TotalAmount : 0.0);
oDRow["SPByEmployeer"] = 0;
oDRow["VOfFree"] = 0;
nAmount = IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Company_Contri_PF, (int)EnumIncomeTaxItemGroup.Company_Contri_PF) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Company_Contri_PF, (int)EnumIncomeTaxItemGroup.Company_Contri_PF).TotalAmount : 0;
oDRow["EContribution"] = GlobalFunctions.TakaFormat(nAmount);
GrandTotal = GrandTotal + nAmount;
oDRow["InterestCredit"] = 0;
oDRow["VofAnyBenefit"] = 0;
oDRow["TotalCol"] = GlobalFunctions.TakaFormat(GrandTotal);
oDRow["AmountLiable"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Gross_Tax, (int)EnumIncomeTaxItemGroup.Gross_Tax) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Gross_Tax, (int)EnumIncomeTaxItemGroup.Gross_Tax).TotalAmount : 0);//Amount Liable to tax under section 21 of income tax ordinance 1984 ,col 17
oDRow["ConToTheProvident"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment, (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment, (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment).TotalAmount : 0);//Amount Liable to tax under section 21 of income tax ordinance 1984 ,col 17;//Contribution to the provident ,col 18
oDRow["TaxIncome"] = GlobalFunctions.TakaFormat(GrandTotal);
oDRow["TaxPayable"] =
GlobalFunctions.TakaFormat(
IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Net_Payable,
(int)EnumIncomeTaxItemGroup.Net_Payable) != null
? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Net_Payable,
(int)EnumIncomeTaxItemGroup.Net_Payable).TotalAmount
: 0); //Tax Payable ,col 20
oDRow["ThisMonthAmount"] = GlobalFunctions.TakaFormat(IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted, (int)EnumIncomeTaxItemGroup.Tax_Deducted) != null ? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted, (int)EnumIncomeTaxItemGroup.Tax_Deducted).ThisMonthAmount : 0);
oDRow["TaxActualDeduct"] =
GlobalFunctions.TakaFormat(
IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted,
(int)EnumIncomeTaxItemGroup.Tax_Deducted) != null
? IncomeTax.Get(oIncomeTaxs, oEmp.ID, EnumIncomeTaxItemGroup.Tax_Deducted,
(int)EnumIncomeTaxItemGroup.Tax_Deducted).TotalAmount
: 0);
oDRow["Remarks"] = "";
dTreport108.Rows.Add(oDRow);
nCount++;
}
}
form.ShowDlgForReport108(_selectedParameter.ReportItem, dTreport108);
}
}
}