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

4258 lines
211 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Payroll.BO;
using Ease.CoreV35.Model;
using Ease.Printing;
using System.Drawing;
using Payroll.Service;
namespace Payroll.Report
{
public class rptIncomeTax
{
private ID _TaxParameterID;
private double _InvestmentAmount = 0.0;
private double _TotalTaxAmount = 0.0;
private double _LessExemptedAmount = 0.0;
private double _PaidTillDateAmount = 0.0;
private double _ThisMonthAmount = 0.0;
private double _ProjectedAmount = 0.0;
private double _AmountPerAnnum = 0.0;
private double _TotalSalaryExempted = 0.0;
private double _TotalAnnuaExempted = 0.0;
private double _TPaidTillDateAmount = 0.0;
private double _TThisMonthAmount = 0.0;
private double _TProjectedAmount = 0.0;
private double _TAmountPerAnnum = 0.0;
private Ease.Printing.EPDoc m_oDoc;
private double[] m_nXpos;
private double[] m_nCXpos;
private double[] m_nCXpos2;
private double[] m_nExptXpos;
private double[] m_nColWidth;
private double[] m_nCColWidth;
private double[] m_nCColWidth2;
private double m_nYpos;
private int m_nCurPage;
private double m_nTotalWidth;
private double m_nCTotalWidth;
private double m_nCTotalWidth2;
private double _pfInvestment;
private double _otherInvestment;
private double _investmentAllowed;
private double _20Investment;
DataSet _dSet = new DataSet();
DataSet _dITSlabs = new DataSet();
ReportItem _item = null;
DataTable _dTable = new DataTable();
string RDLC = string.Empty;
private ObjectsTemplate<IncomeTax> _incometaxes;
private TaxParameter _taxParameter;
private Employee _employee;
private ReportSetup _selectedParameter;
private bool _investmentwithoutPF;
private bool _IsTaxCertificate;
private double _actualInvestment;
private bool _isPrvs = false;
EPPicture _EPPicture = null;
ObjectsTemplate<TaxParameter> _taxParameters = null;
public rptIncomeTax()
{
_taxParameters = new ObjectsTemplate<TaxParameter>();
_taxParameters = TaxParameter.Get();
_investmentwithoutPF = ConfigurationManager.GetBoolValue("incometax", "investmentwithoutpf", EnumConfigurationType.Logic);
}
public void showChallan(DataTable oChallans, TaxParameter oParam)
{
fReportViewer form = new fReportViewer();
PayrollDataSet.PayrollDataSet.ChallanDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.ChallanDataTable();
DataRow dr = null;
foreach (DataRow oItem in oChallans.Rows)
{
dr = dTable.NewRow();
dr["SalaryMonth"] = Convert.ToDateTime(oItem[0].ToString()).ToString("MMM yyyy");
dr["ChallanNo"] = oItem[1].ToString();
dr["TotalEmployee"] = oItem[2].ToString();
dTable.Rows.Add(dr);
}
dTable.TableName = "PayrollDataSet_Challan";
DataSet ds = new DataSet();
ds.Tables.Add(dTable);
RDLC = "Payroll.Report.RDLC.rptTaxChallan.rdlc";
form.ShowDlgForChallan(ds, RDLC, oParam.AssessmentYear, oParam.FiscalYear);
}
private void InitDoc()
{
m_oDoc.DocumentName = "Income Tax Computation Sheet";
m_oDoc.Device.ScaleMode = EPScaleMode.EPSCentimeters;
m_oDoc.Device.PaperKind = System.Drawing.Printing.PaperKind.A4;
m_oDoc.Device.Orientation = EPOrientation.EPOPortrait;
m_oDoc.DefaultPage.LeftMargin = 1;
m_oDoc.DefaultPage.RightMargin = 0.5;
m_oDoc.DefaultPage.TopMargin = 1;
m_oDoc.DefaultPage.BottomMargin = 0.5;
m_oDoc.DefaultText.Font.Name = "Times New Roman";
m_oDoc.DefaultText.Font.Size = 9;
m_oDoc.DefaultText.Margin = 0.07;
}
private void InitWidths()
{
m_nColWidth = new double[7];
m_nCColWidth = new double[3];
m_nCColWidth2 = new double[4];
m_nXpos = new double[8];
m_nCXpos = new double[4];
m_nCXpos2 = new double[5];
m_nColWidth[0] = 6;
m_nColWidth[1] = 2;
m_nColWidth[2] = 2; //Paid Till Date
m_nColWidth[3] = 2; //This Month
m_nColWidth[4] = 2;//Projected
m_nColWidth[5] = 2; //Paid Till Date
m_nColWidth[6] = 2;//This Month
m_nXpos[0] = 0;
m_nXpos[1] = m_nXpos[0] + m_nColWidth[0];
m_nXpos[2] = m_nXpos[1] + m_nColWidth[1];
m_nXpos[3] = m_nXpos[2] + m_nColWidth[2];
m_nXpos[4] = m_nXpos[3] + m_nColWidth[3];
m_nXpos[5] = m_nXpos[4] + m_nColWidth[4];
m_nXpos[6] = m_nXpos[5] + m_nColWidth[5];
m_nXpos[7] = m_nXpos[6] + m_nColWidth[6];
m_nTotalWidth = m_nXpos[7];
m_nCColWidth[0] = 6;//Challan
m_nCColWidth[1] = 5; //Date
m_nCColWidth[2] = 5;//Amount
m_nCColWidth2[0] = 5;//Date
m_nCColWidth2[1] = 3.5;//Amount
m_nCColWidth2[2] = 3.5; //Amount
m_nCColWidth2[3] = 4; //Amount
m_nCXpos[0] = 1.5;
m_nCXpos[1] = m_nCXpos[0] + m_nCColWidth[0];
m_nCXpos[2] = m_nCXpos[1] + m_nCColWidth[1];
m_nCXpos[3] = m_nCXpos[2] + m_nCColWidth[2];
m_nCTotalWidth = m_nCXpos[3] - m_nCXpos[0];
m_nCXpos2[0] = 1.5;
m_nCXpos2[1] = m_nCXpos2[0] + m_nCColWidth2[0];
m_nCXpos2[2] = m_nCXpos2[1] + m_nCColWidth2[1];
m_nCXpos2[3] = m_nCXpos2[2] + m_nCColWidth2[2];
m_nCXpos2[4] = m_nCXpos2[3] + m_nCColWidth2[3];
m_nCTotalWidth2 = m_nCXpos2[4] - m_nCXpos2[0];
}
public void InitWidthsforSlab()
{
m_nColWidth = new double[7];
m_nXpos = new double[8];
m_nColWidth[0] = 4;
m_nColWidth[1] = 5; //Paid Till Date
m_nColWidth[2] = 5; //This Month
m_nColWidth[3] = 4; //Projected
m_nXpos[0] = 0;
m_nXpos[1] = m_nXpos[0] + m_nColWidth[0];
m_nXpos[2] = m_nXpos[1] + m_nColWidth[1];
m_nXpos[3] = m_nXpos[2] + m_nColWidth[2];
m_nXpos[4] = m_nXpos[3] + m_nColWidth[3];
m_nTotalWidth = m_nXpos[4];
}
private void AddPage()
{
m_nCurPage = m_nCurPage + 1;
m_oDoc.AddPage();
m_nYpos = .2;
// ReportHeader m_oDoc, m_nYpos, m_nCurPage, m_oReport, m_oDoc.CurrentPage.PrintWidth, False, True
PrintCaption();
}
private void AddPageForTC()
{
m_nCurPage = m_nCurPage + 1;
m_oDoc.AddPage();
m_nYpos = .2;
// ReportHeader m_oDoc, m_nYpos, m_nCurPage, m_oReport, m_oDoc.CurrentPage.PrintWidth, False, True
PrintCaptionForTC();
}
private void PrintCaption()
{
double nLineHeight;
EPText[] oCaptions = new EPText[7];
EPText oCaption;
double m_nYpos1;
nLineHeight = 0;
InitWidths();
//oCaption = m_oDoc.CreateText(SystemInformation.CurrentSysInfo.name, m_nTotalWidth);
//oCaption = m_oDoc.CreateText("", m_nTotalWidth);
//oCaption.Style.Font.Size = 12;
//oCaption.Style.Font.Bold = true;
//oCaption.HAlignment = EPHAlignConstants.EPHAlignCenter;
//if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
//m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
//m_nYpos = m_nYpos + nLineHeight;
//nLineHeight = 0;
//m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
nLineHeight = 0;
m_nYpos = m_nYpos + 2.20;
oCaption = m_oDoc.CreateText("INCOME CERTIFICATE", m_nTotalWidth);
oCaption.Style.Font.Size = 12;
oCaption.Style.Font.Bold = true;
oCaption.HAlignment = EPHAlignConstants.EPHAlignCenter;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
//m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
m_nYpos = 2.5 + 1.03128;
//m_nYpos = m_nYpos - 0.5;
m_nYpos1 = m_nYpos;
double nsecond = 3;
//Name
oCaption = m_oDoc.CreateText("Name :", m_nColWidth[1] + 2);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
oCaption = m_oDoc.CreateText(_employee.Name, m_nTotalWidth);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1] - nsecond, m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("Employee ID:", m_nColWidth[1]);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
oCaption = m_oDoc.CreateText(_employee.EmployeeNo, m_nColWidth[1]);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1] - nsecond, m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("Designation:", m_nColWidth[1]);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
oCaption = m_oDoc.CreateText((_employee.Designation == null) ? "" : _employee.DescriptionText, 7);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1] - nsecond, m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
//oCaption = m_oDoc.CreateText("RC:", m_nColWidth[1]);
//oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
//if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
//m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0] , m_nYpos);
//ObjectsTemplate<EmployeeCostCenter> empCrg = EmployeeCostCenter.GetByEmpID(_employee.ID);
//string scrg="";
//if (empCrg != null)
//{
// foreach (EmployeeCostCenter crg in empCrg)
// {
// if (crg.Costcenter != null)
// {
// scrg = crg.Costcenter.Code;
// }
// }
//}
//oCaption = m_oDoc.CreateText(scrg, 7);
//oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
//if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
//m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1] - nsecond, m_nYpos);
//m_nYpos = m_nYpos + nLineHeight;
//nLineHeight = 0;
oCaption = m_oDoc.CreateText("Location:", m_nColWidth[1]);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
oCaption = m_oDoc.CreateText((_employee.Location == null) ? "" : _employee.Location.Name, 7);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1] - nsecond, m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("TIN:", m_nColWidth[1]);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
oCaption = m_oDoc.CreateText(_employee.TinNo, 7);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1], m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
m_nYpos = 2.5 + 1.03128;
double nthrid = 2.5;
oCaption = m_oDoc.CreateText("Division:", m_nColWidth[1]);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[2] + nthrid, m_nYpos);
string devision = "";
if (_employee.Department != null && _employee.Department.Parent != null && _employee.Department.Parent.Parent != null)
{
devision = _employee.Department.Parent.Parent.Name;
}
oCaption = m_oDoc.CreateText(devision, 7);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[5], m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("Gender:", m_nColWidth[1]);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[2] + nthrid, m_nYpos);
oCaption = m_oDoc.CreateText((_employee.Gender == EnumGender.Female) ? "Female" : "Male", 7);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[5], m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("Income Year:", m_nColWidth[1]);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[2] + nthrid, m_nYpos);
oCaption = m_oDoc.CreateText(_taxParameter.FiscalYear, 7);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[5], m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("Assessment Year:", m_nColWidth[1] + 1);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[2] + nthrid, m_nYpos);
oCaption = m_oDoc.CreateText(_taxParameter.AssessmentYear, 7);
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[5], m_nYpos);
m_nYpos = m_nYpos + nLineHeight + .5;
nLineHeight = 0;
//oCaption = m_oDoc.CreateText("TIN:", m_nColWidth[1] + 1);
//oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
//if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
//m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[2] + nthrid, m_nYpos);
//oCaption = m_oDoc.CreateText(_employee.TinNo, 7);
//oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
//if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
//m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[5], m_nYpos);
//m_nYpos = m_nYpos + nLineHeight + .5;
//nLineHeight = 0;
//m_oDoc.CreateLine(0, m_nYpos - m_nYpos1).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos1);
//m_oDoc.CreateLine(0, m_nYpos - m_nYpos1).AddToPage(m_oDoc.CurrentPage, m_nXpos[7], m_nYpos1);
//m_oDoc.CreateLine(m_nTotalWidth ).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
m_nYpos = m_nYpos + 0.3;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
oCaptions[0] = m_oDoc.CreateText("Income Head", m_nColWidth[0]);
oCaptions[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
oCaptions[0].Style.Font.Bold = true;
if (oCaptions[0].Height > nLineHeight) nLineHeight = oCaptions[0].Height;
oCaptions[1] = m_oDoc.CreateText("Paid Till Date", m_nColWidth[1]);
oCaptions[1].HAlignment = EPHAlignConstants.EPHAlignCenter;
oCaptions[1].Style.Font.Bold = true;
if (oCaptions[1].Height > nLineHeight) nLineHeight = oCaptions[1].Height;
oCaptions[2] = m_oDoc.CreateText("This Month", m_nColWidth[2]);
oCaptions[2].HAlignment = EPHAlignConstants.EPHAlignCenter;
oCaptions[2].Style.Font.Bold = true;
if (oCaptions[2].Height > nLineHeight) nLineHeight = oCaptions[2].Height;
oCaptions[3] = m_oDoc.CreateText("Projected", m_nColWidth[3]);
oCaptions[3].HAlignment = EPHAlignConstants.EPHAlignCenter;
oCaptions[3].Style.Font.Bold = true;
if (oCaptions[3].Height > nLineHeight) nLineHeight = oCaptions[3].Height;
oCaptions[4] = m_oDoc.CreateText("Amount Per Annum", m_nColWidth[4]);
oCaptions[4].HAlignment = EPHAlignConstants.EPHAlignCenter;
oCaptions[4].Style.Font.Bold = true;
if (oCaptions[4].Height > nLineHeight) nLineHeight = oCaptions[4].Height;
oCaptions[5] = m_oDoc.CreateText("Less Exempted", m_nColWidth[5]);
oCaptions[5].HAlignment = EPHAlignConstants.EPHAlignCenter;
oCaptions[5].Style.Font.Bold = true;
if (oCaptions[5].Height > nLineHeight) nLineHeight = oCaptions[5].Height;
oCaptions[6] = m_oDoc.CreateText("Total Taxable Income", m_nColWidth[6]);
oCaptions[6].HAlignment = EPHAlignConstants.EPHAlignCenter;
oCaptions[6].Style.Font.Bold = true;
if (oCaptions[6].Height > nLineHeight) nLineHeight = oCaptions[6].Height;
for (int i = 0; i <= 6; i++)
{
m_oDoc.CurrentPage.AddText(oCaptions[i], m_nXpos[i], m_nYpos);
}
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 1 || i == 4 || i == 7)
m_oDoc.CreateLine(0, nLineHeight).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
m_nYpos = m_nYpos + 0.02;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
}
private void PrintCaptionForTC()
{
double nLineHeight;
EPText[] oCaptions = new EPText[7];
EPText oCaption;
double m_nYpos1;
nLineHeight = 0;
InitWidths();
Payroll.BO.SystemInformation _systemInfo = Payroll.BO.SystemInformation.Get();
//oCaption = m_oDoc.CreateText(SystemInformation.CurrentSysInfo.name, m_nTotalWidth);
StringBuilder companyInfo = new StringBuilder();
companyInfo.AppendFormat("{0}\n{1}", _systemInfo.name, _systemInfo.corporateAddress);
oCaption = m_oDoc.CreateText(companyInfo.ToString(), m_nTotalWidth);
oCaption.Style.Font.Size = 8;
oCaption.Style.Font.Bold = false;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
nLineHeight = 0;
_EPPicture = m_oDoc.CreatePicture(Image.FromFile(System.Windows.Forms.Application.StartupPath + @"\Logo.jpg"), 2.55, 1.5);
m_oDoc.CurrentPage.AddPicture(_EPPicture, m_nXpos[0] + 15, m_nYpos);
//m_nYpos = m_nYpos + nLineHeight;
//nLineHeight = 0;
//m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
nLineHeight = 0;
m_nYpos = m_nYpos + 2.2;
oCaption = m_oDoc.CreateText("CALCULATION OF TAX ON SALARIES AND PAYMENT CERTIFICATE", m_nTotalWidth);
oCaption.Style.Font.Size = 8;
oCaption.Style.Font.UnderLine = true;
oCaption.Style.Font.Bold = true;
oCaption.HAlignment = EPHAlignConstants.EPHAlignCenter;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
//m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
m_nYpos = 2.5 + 1.03128;
//m_nYpos = m_nYpos - 0.5;
m_nYpos1 = m_nYpos;
double nsecond = 3;
//Name
oCaption = m_oDoc.CreateText("Name :", m_nColWidth[1] + 2);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
oCaption = m_oDoc.CreateText(_employee.Name, m_nTotalWidth);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1] - nsecond, m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("Employee ID:", m_nColWidth[1]);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
oCaption = m_oDoc.CreateText(_employee.EmployeeNo, m_nColWidth[1]);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1] - nsecond, m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("Designation:", m_nColWidth[1]);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
oCaption = m_oDoc.CreateText((_employee.Designation == null) ? "" : _employee.DescriptionText, 7);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1] - nsecond, m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
//oCaption = m_oDoc.CreateText("RC:", m_nColWidth[1]);
//oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
//if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
//m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
//ObjectsTemplate<EmployeeCostCenter> empCrg = EmployeeCostCenter.GetByEmpID(_employee.ID);
//string scrg = "";
//if (empCrg != null)
//{
// foreach (EmployeeCostCenter crg in empCrg)
// {
// if (crg.Costcenter != null)
// {
// scrg = crg.Costcenter.Code;
// }
// }
//}
//oCaption = m_oDoc.CreateText(scrg, 7);
//oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
//if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
//m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1] - nsecond, m_nYpos);
//m_nYpos = m_nYpos + nLineHeight;
//nLineHeight = 0;
oCaption = m_oDoc.CreateText("Location:", m_nColWidth[1]);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
oCaption = m_oDoc.CreateText((_employee.Location == null) ? "" : _employee.Location.Name, 7);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1] - nsecond, m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("TIN:", m_nColWidth[1]);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[0], m_nYpos);
oCaption = m_oDoc.CreateText(_employee.TinNo, 7);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[1] - nsecond, m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
m_nYpos = 2.5 + 1.03128;
double nthrid = 2.5;
oCaption = m_oDoc.CreateText("Division:", m_nColWidth[1]);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[2] + nthrid, m_nYpos);
string devision = "";
if (_employee.Department != null && _employee.Department.Parent != null && _employee.Department.Parent.Parent != null)
{
devision = _employee.Department.Parent.Parent.Name;
}
oCaption = m_oDoc.CreateText(devision, 7);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[5], m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("Gender:", m_nColWidth[1]);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[2] + nthrid, m_nYpos);
oCaption = m_oDoc.CreateText((_employee.Gender == EnumGender.Female) ? "Female" : "Male", 7);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[5], m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("Income Year:", m_nColWidth[1]);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[2] + nthrid, m_nYpos);
oCaption = m_oDoc.CreateText(_taxParameter.FiscalYear, 7);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[5], m_nYpos);
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
oCaption = m_oDoc.CreateText("Assessment Year:", m_nColWidth[1] + 1);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[2] + nthrid, m_nYpos);
oCaption = m_oDoc.CreateText(_taxParameter.AssessmentYear, 7);
oCaption.Style.Font.Size = 8;
oCaption.HAlignment = EPHAlignConstants.EPHAlignLeft;
if (oCaption.Height > nLineHeight) nLineHeight = oCaption.Height;
m_oDoc.CurrentPage.AddText(oCaption, m_nXpos[5], m_nYpos);
m_nYpos = m_nYpos + nLineHeight + 0.5;
nLineHeight = 0;
//m_nYpos = m_nYpos + 0.3;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
oCaptions[0] = m_oDoc.CreateText("Income Head", m_nColWidth[0] + m_nColWidth[1] + m_nColWidth[2] + m_nColWidth[3]);
oCaptions[0].Style.Font.Size = 8;
oCaptions[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
oCaptions[0].Style.Font.Bold = true;
if (oCaptions[0].Height > nLineHeight) nLineHeight = oCaptions[0].Height;
oCaptions[4] = m_oDoc.CreateText("Amount Per Annum", m_nColWidth[4]);
oCaptions[4].Style.Font.Size = 8;
oCaptions[4].HAlignment = EPHAlignConstants.EPHAlignCenter;
oCaptions[4].Style.Font.Bold = true;
if (oCaptions[4].Height > nLineHeight) nLineHeight = oCaptions[4].Height;
oCaptions[5] = m_oDoc.CreateText("Less Exempted", m_nColWidth[5]);
oCaptions[5].Style.Font.Size = 8;
oCaptions[5].HAlignment = EPHAlignConstants.EPHAlignCenter;
oCaptions[5].Style.Font.Bold = true;
if (oCaptions[5].Height > nLineHeight) nLineHeight = oCaptions[5].Height;
oCaptions[6] = m_oDoc.CreateText("Total Taxable Income", m_nColWidth[6]);
oCaptions[6].Style.Font.Size = 8;
oCaptions[6].HAlignment = EPHAlignConstants.EPHAlignCenter;
oCaptions[6].Style.Font.Bold = true;
if (oCaptions[6].Height > nLineHeight) nLineHeight = oCaptions[6].Height;
for (int i = 0; i <= 6; i++)
{
if (i == 1 || i == 2 || i == 3)
{
continue;
}
m_oDoc.CurrentPage.AddText(oCaptions[i], m_nXpos[i], m_nYpos);
}
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 4 || i == 7)
m_oDoc.CreateLine(0, nLineHeight).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
m_nYpos = m_nYpos + 0.02;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
}
private void PrintBody()
{
EPText[] otValues = new EPText[7];
double nLineHeight = 0;
double nTotalAmount = 0;
foreach (DataRow oItem in _dSet.Tables[0].Rows)
{
nTotalAmount = 0;
otValues[0] = m_oDoc.CreateText(oItem["IncomeHead"].ToString(), m_nColWidth[0]);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[1] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(oItem["PaidTillDate"])), m_nColWidth[1]);
otValues[1].HAlignment = EPHAlignConstants.EPHAlignRight;
if (otValues[1].Height > nLineHeight) nLineHeight = otValues[1].Height;
otValues[2] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(oItem["ThisMonth"])), m_nColWidth[2]);
otValues[2].HAlignment = EPHAlignConstants.EPHAlignRight;
if (otValues[2].Height > nLineHeight) nLineHeight = otValues[2].Height;
otValues[3] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(oItem["Projected"])), m_nColWidth[3]);
otValues[3].HAlignment = EPHAlignConstants.EPHAlignRight;
if (otValues[3].Height > nLineHeight) nLineHeight = otValues[3].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(oItem["AmountPerAnnum"])), m_nColWidth[4]);
otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
otValues[5] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(oItem["LessExaempted"])), m_nColWidth[5]);
otValues[5].HAlignment = EPHAlignConstants.EPHAlignRight;
if (otValues[5].Height > nLineHeight) nLineHeight = otValues[5].Height;
nTotalAmount = Convert.ToDouble(oItem["AmountPerAnnum"]) - Convert.ToDouble(oItem["LessExaempted"]);
otValues[6] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(nTotalAmount)), m_nColWidth[6]);
otValues[6].HAlignment = EPHAlignConstants.EPHAlignRight;
if (otValues[6].Height > nLineHeight) nLineHeight = otValues[6].Height;
for (int i = 0; i <= 6; i++)
{
if (oItem["ItemID"].ToString() == "-216" || oItem["ItemID"].ToString() == "-217")
{
otValues[i].Style.Font.Bold = true;
otValues[i].Style.Font.Size = 8;
}
m_oDoc.CurrentPage.AddText(otValues[i], m_nXpos[i], m_nYpos);
}
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 1 || i == 4 || i == 7)
m_oDoc.CreateLine(0, nLineHeight).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
}
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
m_nYpos = m_nYpos + .15;
}
private void PrintBodyForTC()
{
EPText[] otValues = new EPText[7];
double nLineHeight = 0;
double nTotalAmount = 0;
foreach (DataRow oItem in _dSet.Tables[0].Rows)
{
nTotalAmount = 0;
otValues[0] = m_oDoc.CreateText(oItem["IncomeHead"].ToString(), m_nColWidth[0] + m_nColWidth[1] + m_nColWidth[2] + m_nColWidth[3]);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(oItem["AmountPerAnnum"])), m_nColWidth[4]);
otValues[4].Style.Font.Size = 8;
otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
otValues[5] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(oItem["LessExaempted"])), m_nColWidth[5]);
otValues[5].Style.Font.Size = 8;
otValues[5].HAlignment = EPHAlignConstants.EPHAlignRight;
if (otValues[5].Height > nLineHeight) nLineHeight = otValues[5].Height;
nTotalAmount = Convert.ToDouble(oItem["AmountPerAnnum"]) - Convert.ToDouble(oItem["LessExaempted"]);
otValues[6] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(nTotalAmount)), m_nColWidth[6]);
otValues[6].Style.Font.Size = 8;
otValues[6].HAlignment = EPHAlignConstants.EPHAlignRight;
if (otValues[6].Height > nLineHeight) nLineHeight = otValues[6].Height;
for (int i = 0; i <= 6; i++)
{
if (i == 1 || i == 2 || i == 3)
{
continue;
}
if (oItem["ItemID"].ToString() == "-216" || oItem["ItemID"].ToString() == "-217")
{
otValues[i].Style.Font.Bold = true;
otValues[i].Style.Font.Size = 8;
}
m_oDoc.CurrentPage.AddText(otValues[i], m_nXpos[i], m_nYpos);
}
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 4 || i == 7)
m_oDoc.CreateLine(0, nLineHeight).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
}
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
m_nYpos = m_nYpos + .15;
}
private void PrintSlab()
{
double nLineHeight = 0;
InitWidthsforSlab();
EPText[] otValues = new EPText[7];
m_nYpos = m_nYpos + 0.08;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, 0, m_nYpos);
nLineHeight = 0.5;
otValues[0] = m_oDoc.CreateText("Current Rate", m_nColWidth[0]);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[0].Style.Font.Bold = true;
otValues[1] = m_oDoc.CreateText("Parameter", m_nColWidth[1]);
otValues[1].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[1].Style.Font.Bold = true;
otValues[2] = m_oDoc.CreateText("Taxable Income", m_nColWidth[2]);
otValues[2].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[2].Style.Font.Bold = true;
otValues[3] = m_oDoc.CreateText("Individual Tax Liability", m_nColWidth[3]);
otValues[3].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[3].Style.Font.Bold = true;
for (int i = 0; i < 4; i++)
{
m_oDoc.CurrentPage.AddText(otValues[i], m_nXpos[i], m_nYpos);
}
for (int i = 0; i < 6; i++)
{
m_oDoc.CreateLine(0, 0.5).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
double nTemYPos = 0;
nTemYPos = m_nYpos;
double nTotalTAx = 0;
double nTotalIncome = 0;
foreach (DataRow oRow in _dSet.Tables[1].Rows)
{
otValues[0] = m_oDoc.CreateText(oRow["CurrentRate"].ToString() + "", 5);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignCenter;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
otValues[1] = m_oDoc.CreateText(oRow["Parameter"].ToString(), 5);
otValues[1].HAlignment = EPHAlignConstants.EPHAlignCenter;
m_oDoc.CurrentPage.AddText(otValues[1], m_nXpos[1], m_nYpos);
otValues[2] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["TaxableIncome"])), 5);
otValues[2].HAlignment = EPHAlignConstants.EPHAlignCenter;
m_oDoc.CurrentPage.AddText(otValues[2], m_nXpos[2], m_nYpos);
nTotalIncome = nTotalIncome + Convert.ToDouble(oRow["TaxableIncome"]);
otValues[3] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["IndividualTaxLiability"])), 5);
otValues[3].HAlignment = EPHAlignConstants.EPHAlignCenter;
m_oDoc.CurrentPage.AddText(otValues[3], m_nXpos[3], m_nYpos);
nTotalTAx = nTotalTAx + Convert.ToDouble(oRow["IndividualTaxLiability"]);
for (int i = 0; i < 5; i++)
{
m_oDoc.CreateLine(0, 0.5).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
}
otValues[0] = m_oDoc.CreateText("Total", 5);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[0].Style.Font.Bold = true;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
otValues[1] = m_oDoc.CreateText("", 5);
otValues[1].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[1].Style.Font.Bold = true;
m_oDoc.CurrentPage.AddText(otValues[1], m_nXpos[1], m_nYpos);
otValues[2] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(nTotalIncome)), 5);
otValues[2].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[2].Style.Font.Bold = true;
m_oDoc.CurrentPage.AddText(otValues[2], m_nXpos[2], m_nYpos);
otValues[3] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(nTotalTAx)), 5);
otValues[3].Style.Font.Bold = true;
otValues[3].HAlignment = EPHAlignConstants.EPHAlignCenter;
m_oDoc.CurrentPage.AddText(otValues[3], m_nXpos[3], m_nYpos);
for (int i = 0; i < 5; i++)
{
m_oDoc.CreateLine(0, 0.5).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
//m_nYpos = m_nYpos + .5;
//m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
InitWidths();
double nYPos = m_nYpos;
if (_dSet.Tables[2].Rows.Count > 0)
{
m_nYpos = m_nYpos + .3;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("Tax rebate for investment", 5);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[6] = m_oDoc.CreateText("Amount", 2);
otValues[6].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[6], m_nXpos[6], m_nYpos);
if (otValues[6].Height > nLineHeight) nLineHeight = otValues[6].Height;
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 7)
m_oDoc.CreateLine(0, nLineHeight).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
nYPos = m_nYpos;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("Investment allowed (" + _taxParameter.MaxInvestPercent.ToString() + "% of annual taxable income) (a)", 10);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_20Investment), 2);
otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
//m_nYpos = m_nYpos + nLineHeight;
//nLineHeight = 0;
//otValues[0] = m_oDoc.CreateText(_taxParameter.MaxInvestPercent.ToString() + "% of annual taxable income ", 5);
//otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
//m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0] + 2, m_nYpos);
//if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
//otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_20Investment), 5);
//otValues[4].HAlignment = EPHAlignConstants.EPHAlignLeft;
//m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[4], m_nYpos);
//if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
//m_nYpos = m_nYpos + nLineHeight;
//nLineHeight = 0;
//otValues[0] = m_oDoc.CreateText("Maximum investment allowed", 5);
//otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
//m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0] + 2, m_nYpos);
//if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
//otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_taxParameter.MaxInvAmount) , 5);
//otValues[4].HAlignment = EPHAlignConstants.EPHAlignLeft;
//m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[4], m_nYpos);
//if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
//m_nYpos = m_nYpos + nLineHeight;
//nLineHeight = 0;
//otValues[0] = m_oDoc.CreateText("Lower one", 5);
//otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
//m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0] + 2, m_nYpos);
//if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
////
////m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos - .05);
////m_nYpos = m_nYpos + .2;
//otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_investmentAllowed), 2);
//otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
//m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
//if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("PF contribution by Employee (b)", 5);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_pfInvestment), 5);
otValues[4].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[4], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("PF contribution by Company (c)", 5);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_pfInvestment), 5);
otValues[4].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[4], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
//m_nYpos = m_nYpos + nLineHeight;
//nLineHeight = 0;
//otValues[0] = m_oDoc.CreateText("PF contribution by Employee (b)", 10);
//otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
//m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
//if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
//otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_pfInvestment), 2);
//otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
//m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
//if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
//m_nYpos = m_nYpos + nLineHeight;
//nLineHeight = 0;
//otValues[0] = m_oDoc.CreateText("PF contribution by Company (c)", 10);
//otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
//m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
//if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
//otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_pfInvestment), 2);
//otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
//m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
//if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("PF Investment amount (d=b+c)", 10);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_pfInvestment * 2), 2);
otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("Other eligible investment except PF (e=a-d)", m_nTotalWidth);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
//otValues[0].Style.BackColor = System.Drawing.Color.Gray;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_20Investment - (_pfInvestment * 2)), 2);
otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("Actual other investment (f)", m_nTotalWidth);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
//otValues[0].Style.BackColor = System.Drawing.Color.Gray;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_otherInvestment), 2);
otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 5 || i == 7)
m_oDoc.CreateLine(0, m_nYpos - nYPos - .05).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], nYPos);
}
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos - .05);
m_nYpos = m_nYpos + .2;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
}
int nconut = 1;
foreach (DataRow oRow in _dSet.Tables[2].Rows)
{
nLineHeight = 0;
if (nconut == 1)
{
otValues[0] = m_oDoc.CreateText(oRow["DataColumn1"].ToString() + " ( " + _20Investment.ToString() + " )", 10);
}
else
otValues[0] = m_oDoc.CreateText(oRow["DataColumn1"].ToString(), 5);
nconut++;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[1] = m_oDoc.CreateText(oRow["DataColumn2"].ToString(), 5);
otValues[1].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[1], m_nXpos[1], m_nYpos);
if (otValues[1].Height > nLineHeight) nLineHeight = otValues[1].Height;
otValues[6] = m_oDoc.CreateText(oRow["DataColumn3"].ToString(), 2);
otValues[6].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[6], m_nXpos[6], m_nYpos);
if (otValues[6].Height > nLineHeight) nLineHeight = otValues[6].Height;
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 5 || i == 7)
m_oDoc.CreateLine(0, nLineHeight).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
}
//foreach (DataRow oRow in _dSet.Tables[3].Rows)
//{
// nLineHeight = 0;
// otValues[0] = m_oDoc.CreateText("Tax Challan", 5);
// otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
// otValues[0].Style.Font.Bold = true;
// m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
// if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
// otValues[3] = m_oDoc.CreateText(Convert.ToString(oRow["ChallanNo"]), 5);
// otValues[3].HAlignment = EPHAlignConstants.EPHAlignRight;
// m_oDoc.CurrentPage.AddText(otValues[3], m_nXpos[3], m_nYpos);
// if (otValues[3].Height > nLineHeight) nLineHeight = otValues[3].Height;
// for (int i = 0; i < 8; i++)
// {
// if (i == 0 || i == 2 ||i==7 )
// m_oDoc.CreateLine(0, nLineHeight).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
// }
// m_nYpos = m_nYpos + nLineHeight;
//}
//m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
string bottomcaption = "This statement is electronicaly generated on " + DateTime.Today.ToString("dd MMM yyyy") + " and does not require any signature. ";
bottomcaption = bottomcaption + " You are resposible for ensuring the confidentility of this statement.";
m_nYpos = m_oDoc.CurrentPage.PrintHeight - 2;
otValues[0] = m_oDoc.CreateText(bottomcaption, m_nTotalWidth);
otValues[0].HAlignment = EPHAlignConstants.EPHAlignJustified;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
}
private void PrintSlabForTC()
{
double nLineHeight = 0;
InitWidthsforSlab();
EPText[] otValues = new EPText[7];
//m_nYpos = m_nYpos + 0.08;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, 0, m_nYpos);
nLineHeight = 0.5;
otValues[0] = m_oDoc.CreateText("Current Rate", m_nColWidth[0]);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[0].Style.Font.Bold = true;
otValues[1] = m_oDoc.CreateText("Parameter", m_nColWidth[1]);
otValues[1].Style.Font.Size = 8;
otValues[1].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[1].Style.Font.Bold = true;
otValues[2] = m_oDoc.CreateText("Taxable Income", m_nColWidth[2]);
otValues[2].Style.Font.Size = 8;
otValues[2].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[2].Style.Font.Bold = true;
otValues[3] = m_oDoc.CreateText("Individual Tax Liability", m_nColWidth[3]);
otValues[3].Style.Font.Size = 8;
otValues[3].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[3].Style.Font.Bold = true;
for (int i = 0; i < 4; i++)
{
m_oDoc.CurrentPage.AddText(otValues[i], m_nXpos[i], m_nYpos);
}
for (int i = 0; i < 6; i++)
{
m_oDoc.CreateLine(0, 0.5).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
double nTemYPos = 0;
nTemYPos = m_nYpos;
double nTotalTAx = 0;
double nTotalIncome = 0;
foreach (DataRow oRow in _dSet.Tables[1].Rows)
{
// otValues[0] = m_oDoc.CreateText(oRow["CurrentRate"].ToString() + "%", 5);//previous
otValues[0] = m_oDoc.CreateText(oRow["CurrentRate"].ToString(), 5);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignCenter;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
otValues[1] = m_oDoc.CreateText(oRow["Parameter"].ToString(), 5);
otValues[1].Style.Font.Size = 8;
otValues[1].HAlignment = EPHAlignConstants.EPHAlignCenter;
m_oDoc.CurrentPage.AddText(otValues[1], m_nXpos[1], m_nYpos);
otValues[2] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["TaxableIncome"])), 5);
otValues[2].Style.Font.Size = 8;
otValues[2].HAlignment = EPHAlignConstants.EPHAlignCenter;
m_oDoc.CurrentPage.AddText(otValues[2], m_nXpos[2], m_nYpos);
nTotalIncome = nTotalIncome + Convert.ToDouble(oRow["TaxableIncome"]);
otValues[3] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["IndividualTaxLiability"])), 5);
otValues[3].Style.Font.Size = 8;
otValues[3].HAlignment = EPHAlignConstants.EPHAlignCenter;
m_oDoc.CurrentPage.AddText(otValues[3], m_nXpos[3], m_nYpos);
nTotalTAx = nTotalTAx + Convert.ToDouble(oRow["IndividualTaxLiability"]);
for (int i = 0; i < 5; i++)
{
m_oDoc.CreateLine(0, 0.5).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
}
otValues[0] = m_oDoc.CreateText("Total", 5);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[0].Style.Font.Bold = true;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
otValues[1] = m_oDoc.CreateText("", 5);
otValues[1].Style.Font.Size = 8;
otValues[1].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[1].Style.Font.Bold = true;
m_oDoc.CurrentPage.AddText(otValues[1], m_nXpos[1], m_nYpos);
otValues[2] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(nTotalIncome)), 5);
otValues[2].Style.Font.Size = 8;
otValues[2].HAlignment = EPHAlignConstants.EPHAlignCenter;
otValues[2].Style.Font.Bold = true;
m_oDoc.CurrentPage.AddText(otValues[2], m_nXpos[2], m_nYpos);
otValues[3] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(Convert.ToDouble(nTotalTAx)), 5);
otValues[3].Style.Font.Size = 8;
otValues[3].Style.Font.Bold = true;
otValues[3].HAlignment = EPHAlignConstants.EPHAlignCenter;
m_oDoc.CurrentPage.AddText(otValues[3], m_nXpos[3], m_nYpos);
for (int i = 0; i < 5; i++)
{
m_oDoc.CreateLine(0, 0.5).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
//m_nYpos = m_nYpos + .5;
//m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
InitWidths();
double nYPos = m_nYpos;
if (_dSet.Tables[2].Rows.Count > 0)
{
//m_nYpos = m_nYpos + .3;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("Tax rebate for investment", 5);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[6] = m_oDoc.CreateText("Amount", 2);
otValues[6].Style.Font.Size = 8;
otValues[6].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[6], m_nXpos[6], m_nYpos);
if (otValues[6].Height > nLineHeight) nLineHeight = otValues[6].Height;
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 7)
m_oDoc.CreateLine(0, nLineHeight).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
nYPos = m_nYpos;
#region New Code
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("Investment allowed (a)", 5);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText(_taxParameter.MaxInvestPercent.ToString() + "% of annual taxable income ", 5);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0] + 2, m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_20Investment), 5);
otValues[4].Style.Font.Size = 8;
otValues[4].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[4], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("Maximum investment allowed", 5);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0] + 2, m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_taxParameter.MaxInvAmount), 5);
otValues[4].Style.Font.Size = 8;
otValues[4].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[4], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("Lower one", 5);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0] + 2, m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
//
//m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos - .05);
//m_nYpos = m_nYpos + .2;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_investmentAllowed), 2);
otValues[4].Style.Font.Size = 8;
otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("PF contribution by Employee (b)", 5);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_pfInvestment), 2);
otValues[4].Style.Font.Size = 8;
otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("PF contribution by Company (c)", 5);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_pfInvestment), 2);
otValues[4].Style.Font.Size = 8;
otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText("Other investment to be made by the employee (d = a-b-c)", m_nTotalWidth);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
otValues[0].Style.BackColor = System.Drawing.Color.Gray;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_otherInvestment), 2);
otValues[4].Style.Font.Size = 8;
otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 5 || i == 7)
m_oDoc.CreateLine(0, m_nYpos - nYPos - .05).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], nYPos);
}
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos - .05);
//m_nYpos = m_nYpos + .2;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
#endregion
#region Old Code
// nLineHeight = 0;
// otValues[0] = m_oDoc.CreateText("Investment allowed (a)", 5);
// otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
// m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
// if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
// m_nYpos = m_nYpos + nLineHeight;
// nLineHeight = 0;
// otValues[0] = m_oDoc.CreateText(_taxParameter.MaxInvestPercent.ToString() + "% of annual taxable income ", 5);
// otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
// m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0] + 2, m_nYpos);
// if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
// otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_20Investment), 5);
// otValues[4].HAlignment = EPHAlignConstants.EPHAlignLeft;
// m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[4], m_nYpos);
// if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
// m_nYpos = m_nYpos + nLineHeight;
// nLineHeight = 0;
// otValues[0] = m_oDoc.CreateText("Maximum investment allowed", 5);
// otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
// m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0] + 2, m_nYpos);
// if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
// otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_taxParameter.MaxInvAmount), 5);
// otValues[4].HAlignment = EPHAlignConstants.EPHAlignLeft;
// m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[4], m_nYpos);
// if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
// m_nYpos = m_nYpos + nLineHeight;
// nLineHeight = 0;
// otValues[0] = m_oDoc.CreateText("Lower one", 5);
// otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
// m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0] + 2, m_nYpos);
// if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
// otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_investmentAllowed), 2);
// otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
// m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
// if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
// m_nYpos = m_nYpos + nLineHeight;
// nLineHeight = 0;
////
// for (int i = 0; i < 8; i++)
// {
// if (i == 0 || i == 5 || i == 7)
// m_oDoc.CreateLine(0, m_nYpos - nYPos - .05).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], nYPos);
// }
// m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos - .05);
// m_nYpos = m_nYpos + .2;
////
// otValues[0] = m_oDoc.CreateText("PF contribution by Employee (b)", 5);
// otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
// m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
// if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
// otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_pfInvestment), 2);
// otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
// m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
// if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
// m_nYpos = m_nYpos + nLineHeight;
// nLineHeight = 0;
// otValues[0] = m_oDoc.CreateText("PF contribution by Company (c)", 5);
// otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
// m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
// if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
// otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_pfInvestment), 2);
// otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
// m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
// if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
// m_nYpos = m_nYpos + nLineHeight;
// nLineHeight = 0;
//// otValues[0] = m_oDoc.CreateText("Other investment to be made by the employee (d = a-b-c)", m_nTotalWidth);
// otValues[0] = m_oDoc.CreateText("Other investment(d)", m_nTotalWidth);//new
// otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
// //otValues[0].Style.BackColor = System.Drawing.Color.Gray;
// otValues[0].Style.BackColor = System.Drawing.Color.Transparent;//new
// m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
// if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
// otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_actualInvestment), 2);
// otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
// m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
// if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
// m_nYpos = m_nYpos + nLineHeight;
// nLineHeight = 0;
// //otValues[0] = m_oDoc.CreateText("Total investment(b + c + d)", m_nTotalWidth);//new
// //otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
// //otValues[0].Style.BackColor = System.Drawing.Color.Gray;
// //m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
// //if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
// //otValues[4] = m_oDoc.CreateText(GlobalFunctions.TakaFormat(_actualInvestment + _pfInvestment + _pfInvestment), 2);
// //otValues[4].HAlignment = EPHAlignConstants.EPHAlignRight;
// //m_oDoc.CurrentPage.AddText(otValues[4], m_nXpos[6], m_nYpos);
// //if (otValues[4].Height > nLineHeight) nLineHeight = otValues[4].Height;
// //m_nYpos = m_nYpos + nLineHeight;
// //nLineHeight = 0;
// for (int i = 0; i < 8; i++)
// {
// if (i == 0 || i == 5 || i == 7)
// m_oDoc.CreateLine(0, m_nYpos - nYPos - .05).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], nYPos);
// }
// m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos - .05);
// m_nYpos = m_nYpos + .2;
// m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
#endregion
}
foreach (DataRow oRow in _dSet.Tables[2].Rows)
{
nLineHeight = 0;
otValues[0] = m_oDoc.CreateText(oRow["DataColumn1"].ToString(), 5);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
otValues[1] = m_oDoc.CreateText(oRow["DataColumn2"].ToString(), 5);
otValues[1].Style.Font.Size = 8;
otValues[1].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[1], m_nXpos[1], m_nYpos);
if (otValues[1].Height > nLineHeight) nLineHeight = otValues[1].Height;
otValues[6] = m_oDoc.CreateText(oRow["DataColumn3"].ToString(), 2);
otValues[6].Style.Font.Size = 8;
otValues[6].HAlignment = EPHAlignConstants.EPHAlignRight;
m_oDoc.CurrentPage.AddText(otValues[6], m_nXpos[6], m_nYpos);
if (otValues[6].Height > nLineHeight) nLineHeight = otValues[6].Height;
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 5 || i == 7)
m_oDoc.CreateLine(0, nLineHeight).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
}
//m_nYpos = m_nYpos + .3;
//m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos);
nLineHeight = 0;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
StringBuilder sb = new StringBuilder();
sb.AppendFormat("We hereby certify that the above statement contains SALARY income of the above mentioned employee which has been paid by Grameenphone Ltd. During the Year {0} Corresponding to the Assesment Year {1} Tax has been deducted from his/her salary considering the actual investment under the Income Tax law. We also certify that above mentioned tax liability was duly deducted at source on monthly basis and deposited to Bangladesh Bank through Treasury Challan(s) along with all employees Tax liability which is enumerated below: \nChallan Number:", _taxParameter.FiscalYear, _taxParameter.AssessmentYear);
otValues[0] = m_oDoc.CreateText(sb.ToString(), m_nTotalWidth);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos + 0.1);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 7)
m_oDoc.CreateLine(0, nLineHeight + 0.1).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos + 0.1);
DataRow drEmp = _dSet.Tables[3].AsEnumerable().FirstOrDefault();
if (Convert.ToString(drEmp["ChallanNo"]) != string.Empty)
{
nLineHeight = 0;
m_nYpos = 21.5;
foreach (DataRow oRow in _dSet.Tables[3].Rows)
{
if (Convert.ToString(oRow["ChallanNo"]) != string.Empty)
{
//nLineHeight = 0;
otValues[0] = m_oDoc.CreateText(Convert.ToString(oRow["ChallanNo"]), 18);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos + 0.2);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
//m_nYpos = m_nYpos + nLineHeight;
}
}
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 7)
m_oDoc.CreateLine(0, nLineHeight + 0.1).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos + 0.1);
}
double tempYPos = 0;
//m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0;
_EPPicture = m_oDoc.CreatePicture(Image.FromFile(System.Windows.Forms.Application.StartupPath + @"\AuthSignature.png"), 2.55, 1.2);
//m_nYpos = m_nYpos + _EPPicture.Width;
//tempYPos = m_oDoc.CurrentPage.PrintHeight - 5.54;
tempYPos = m_nYpos + 0.13;
m_oDoc.CurrentPage.AddPicture(_EPPicture, m_nXpos[0] + 14, tempYPos);
if (_EPPicture.Height > nLineHeight) nLineHeight = _EPPicture.Height;
//m_nYpos = m_nYpos + nLineHeight;
string bottomcaption = "Authorized Signature";
m_nYpos = tempYPos + 1;//1.5
otValues[0] = m_oDoc.CreateText(bottomcaption, m_nTotalWidth);
otValues[0].Style.Font.Size = 8;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
//m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0] + 14, m_nYpos);
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 7)
m_oDoc.CreateLine(0, nLineHeight + 0.5).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], tempYPos);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos - 0.5);
nLineHeight = 0;
m_nYpos = m_nYpos + nLineHeight;
nLineHeight = 0; otValues[0] = m_oDoc.CreateText("Note: Submission of Tax return of an individual employee to the Tax office is compulsory on or before 30th November, 2017. GP staff is personally held responsible for submission of Tax return.", m_nTotalWidth);
otValues[0].Style.Font.Size = 7;
otValues[0].HAlignment = EPHAlignConstants.EPHAlignLeft;
m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos - 0.4);
if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
for (int i = 0; i < 8; i++)
{
if (i == 0 || i == 7)
m_oDoc.CreateLine(0, nLineHeight+0.05).AddToPage(m_oDoc.CurrentPage, m_nXpos[i], m_nYpos - 0.5);
}
m_nYpos = m_nYpos + nLineHeight;
m_oDoc.CreateLine(m_nTotalWidth).AddToPage(m_oDoc.CurrentPage, m_nXpos[0], m_nYpos - 0.45);
//string bottomcaption = "This statement is electronicaly generated on " + DateTime.Today.ToString("dd MMM yyyy") + " and does not require any signature. ";
//bottomcaption = bottomcaption + " You are resposible for ensuring the confidentility of this statement.";
//m_nYpos = m_oDoc.CurrentPage.PrintHeight - 2;
//otValues[0] = m_oDoc.CreateText(bottomcaption, m_nTotalWidth);
//otValues[0].HAlignment = EPHAlignConstants.EPHAlignJustified;
//m_oDoc.CurrentPage.AddText(otValues[0], m_nXpos[0], m_nYpos);
//if (otValues[0].Height > nLineHeight) nLineHeight = otValues[0].Height;
}
public void showTaxCardMultiple()
{
bool isCurrentYear = false;
DataSet orootDataset = new DataSet();
fReportViewer form = new fReportViewer();
IncomeTax oIncomeTax = new IncomeTax();
_TaxParameterID = _selectedParameter.TaxParameters[0].ID;
ObjectsTemplate<TaxParameter> _taxParameters = TaxParameter.Get();
if (Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID == _TaxParameterID)
isCurrentYear = true;
else
isCurrentYear = false;
string sEmpID = _selectedParameter.ReportItem.INSQL;
ObjectsTemplate<Employee> oEMployees = Employee.GetEmpsWithDiscontinue(sEmpID);
if (_TaxParameterID == SystemInformation.CurrentSysInfo.TaxParamID)
{
//SystemInformation.CurrentSysInfo.TaxParamID
_taxParameter = TaxParameter.Get(SystemInformation.CurrentSysInfo.TaxParamID);
m_oDoc = new EPDoc();
InitDoc();
foreach (Employee oEmp in oEMployees)
{
_employee = oEmp;
_incometaxes = IncomeTax.Get(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID, SystemInformation.CurrentSysInfo.TaxParamID);
//As this method has not been used yet then A Boolean value is used as Parameter
_dSet = PrepareDataset(oEmp.ID, isCurrentYear);
AddPage();
PrintBody();
PrintSlab();
}
}
else
{
ObjectsTemplate<TaxChallan> oTaxChallans = new ObjectsTemplate<TaxChallan>();
_taxParameter = TaxParameter.Get(_TaxParameterID);
m_oDoc = new EPDoc();
InitDoc();
_isPrvs = true;
foreach (Employee oEmp in oEMployees)
{
_employee = oEmp;
//EnumIncomeTaxDataFrom.ProcessedData
//oIncomeTax.GetEnumForSalaryIT(oEmp.ID)
_incometaxes = IncomeTax.Get(EnumIncomeTaxDataFrom.ProcessedData, oEmp.ID, _TaxParameterID);
//As this method has not been used yet then A Boolean value is used as Parameter
_dSet = PrepareDataset(oEmp.ID, isCurrentYear);
PayrollDataSet.PayrollDataSet.TaxChallanDataTable dTChallan = new Payroll.Report.PayrollDataSet.PayrollDataSet.TaxChallanDataTable();
DataRow dChallan = null;
dChallan = dTChallan.NewRow();
oTaxChallans = TaxChallan.Get(oEmp.ID, _TaxParameterID);
int count = 1;
string sChallanNo = "";// "# 57 dated 06-Sep-2010, # 56/88 dated 05-Oct-2010, # 54 dated 03-Nov-2010, # 58 dated 07-Dec-2010, # 57 dated 06-Jan-2011, # 56 dated 10-Feb-2011, # 58 dated 09-Mar-2011, # 50 dated 13-Apr-2011, # 47 dated 03-May-2011, # 55 dated 09-Jun-2011, # 71/49 dated 21-Jul-2011.";
if (oTaxChallans != null && oTaxChallans.Count > 0)
{
foreach (TaxChallan oItem in oTaxChallans)
{
if (count == oTaxChallans.Count)
{
sChallanNo += "Challan: " + oItem.ChallanNo + " Date: " + oItem.DepositDate.ToString("dd-MMM-yyyy");
//sChallanNo += oItem.ChallanNo;
}
else
{
sChallanNo += "Challan: " + oItem.ChallanNo + " Date: " + oItem.DepositDate.ToString("dd-MMM-yyyy") + ", ";
//sChallanNo += oItem.ChallanNo + ",";
count++;
}
}
}
dChallan["ChallanNo"] = sChallanNo;
dTChallan.Rows.Add(dChallan);
dTChallan.TableName = "PayrollDataSet_TaxChallan";
_dSet.Tables.Add(dTChallan);
AddPageForTC();
PrintBodyForTC();
PrintSlabForTC();
}
}
m_oDoc.PreviewDoc();
}
public void showTaxCardMultiple(ObjectsTemplate<IncomeTax> oincometaxes, Employee oEmp, bool ITStatus)
{
DataSet orootDataset = new DataSet();
fReportViewer form = new fReportViewer();
IncomeTax oIncomeTax = new IncomeTax();
//_TaxParameterID = _selectedParameter.TaxParameters[0].ID;
//string sEmpID = _selectedParameter.ReportItem.INSQL;
//ObjectsTemplate<Employee> oEMployees = Employee.GetEmpsWithDiscontinue(sEmpID);
//if (_TaxParameterID == SystemInformation.CurrentSysInfo.TaxParamID)
//{
//SystemInformation.CurrentSysInfo.TaxParamID
_taxParameter = TaxParameter.Get(SystemInformation.CurrentSysInfo.TaxParamID);
m_oDoc = new EPDoc();
InitDoc();
_employee = oEmp;
_incometaxes = oincometaxes;// IncomeTax.Get(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID, SystemInformation.CurrentSysInfo.TaxParamID);
_dSet = PrepareDataset(oEmp.ID, false);
AddPage();
PrintBody();
PrintSlab();
//}
//else
//{
// ObjectsTemplate<TaxChallan> oTaxChallans = new ObjectsTemplate<TaxChallan>();
// _taxParameter = TaxParameter.Get(_TaxParameterID);
// m_oDoc = new EPDoc();
// InitDoc();
// _employee = oEmp;
// //EnumIncomeTaxDataFrom.ProcessedData
// //oIncomeTax.GetEnumForSalaryIT(oEmp.ID)
// _incometaxes = oincometaxes;// IncomeTax.Get(EnumIncomeTaxDataFrom.ProcessedData, oEmp.ID, _TaxParameterID);
// _dSet = PrepareDataset(oEmp.ID);
// PayrollDataSet.PayrollDataSet.TaxChallanDataTable dTChallan = new Payroll.Report.PayrollDataSet.PayrollDataSet.TaxChallanDataTable();
// DataRow dChallan = null;
// dChallan = dTChallan.NewRow();
// oTaxChallans = TaxChallan.Get(oEmp.ID, _TaxParameterID);
// //int count = 1;
// string sChallanNo = "# 57 dated 06-Sep-2010, # 56/88 dated 05-Oct-2010, # 54 dated 03-Nov-2010, # 58 dated 07-Dec-2010, # 57 dated 06-Jan-2011, # 56 dated 10-Feb-2011, # 58 dated 09-Mar-2011, # 50 dated 13-Apr-2011, # 47 dated 03-May-2011, # 55 dated 09-Jun-2011, # 71/49 dated 21-Jul-2011.";
// //if (oTaxChallans != null && oTaxChallans.Count > 0)
// //{
// // foreach (TaxChallan oItem in oTaxChallans)
// // {
// // if (count == oTaxChallans.Count)
// // {
// // sChallanNo += "#" + oItem.ChallanNo + " dated " + oItem.DepositDate.ToString("dd-MMM-yyyy");
// // //sChallanNo += oItem.ChallanNo;
// // }
// // else
// // {
// // sChallanNo +="#"+oItem.ChallanNo + " dated " +oItem.DepositDate.ToString("dd-MMM-yyyy") +",";
// // //sChallanNo += oItem.ChallanNo + ",";
// // count++;
// // }
// // }
// //}
// dChallan["ChallanNo"] = sChallanNo;
// dTChallan.Rows.Add(dChallan);
// dTChallan.TableName = "PayrollDataSet_TaxChallan";
// _dSet.Tables.Add(dTChallan);
// AddPageForTC();
// PrintBodyForTC();
// PrintSlabForTC();
//}
m_oDoc.PreviewDoc();
}
public ReportSetup SelectedParameter
{
set
{
_selectedParameter = value;
}
}
private DataRow getARow(DataRow orow, IncomeTax oItem)
{
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Annual_Salary_Income)
{
DataRow dr = orow;
dr["EmpID"] = oItem.EmployeeID;
dr["ItemCode"] = oItem.ItemGroup;
dr["ItemID"] = oItem.ItemID;
dr["IncomeHead"] = oItem.Description;
dr["AmountPerAnnum"] = GlobalFunctions.TakaFormat(_AmountPerAnnum); //oDRow["AmountPerannum"];
dr["ThisMonth"] = GlobalFunctions.TakaFormat(_ThisMonthAmount);
dr["PaidTillDate"] = GlobalFunctions.TakaFormat(_PaidTillDateAmount);//oDRow["PaidTillDate"];
dr["Projected"] = GlobalFunctions.TakaFormat(_ProjectedAmount);
dr["Position"] = oItem.Position;
dr["Side"] = oItem.Side;
dr["LessExaempted"] = "0";
dr["RowSequence"] = oItem.Position;
return dr;
}
else if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Annual_Income)
{
DataRow dr = orow;
dr["EmpID"] = oItem.EmployeeID;
dr["ItemCode"] = oItem.ItemGroup;
dr["ItemID"] = oItem.ItemID;
dr["IncomeHead"] = oItem.Description;
dr["AmountPerAnnum"] = GlobalFunctions.TakaFormat(_TAmountPerAnnum); //oDRow["AmountPerannum"];
dr["ThisMonth"] = GlobalFunctions.TakaFormat(_TThisMonthAmount);
dr["PaidTillDate"] = GlobalFunctions.TakaFormat(_TPaidTillDateAmount);//oDRow["PaidTillDate"];
dr["Projected"] = GlobalFunctions.TakaFormat(_TProjectedAmount);
dr["Position"] = oItem.Position;
dr["Side"] = oItem.Side;
dr["LessExaempted"] = "0";
dr["RowSequence"] = oItem.Position;
return dr;
}
else
{
DataRow dr = orow;
dr["EmpID"] = oItem.EmployeeID;
dr["ItemCode"] = oItem.ItemGroup;
dr["ItemID"] = oItem.ItemID;
dr["IncomeHead"] = oItem.Description;
dr["AmountPerAnnum"] = GlobalFunctions.TakaFormat(oItem.TotalAmount); //oDRow["AmountPerannum"];
dr["ThisMonth"] = GlobalFunctions.TakaFormat(oItem.ThisMonthAmount);
dr["PaidTillDate"] = GlobalFunctions.TakaFormat(oItem.PreviousAmount);//oDRow["PaidTillDate"];
dr["Projected"] = GlobalFunctions.TakaFormat(oItem.ProjectedAmount);
dr["Position"] = oItem.Position;
dr["Side"] = oItem.Side;
if (!(oItem.ItemGroup == EnumIncomeTaxItemGroup.Company_Contri_PF))
{
_AmountPerAnnum += oItem.TotalAmount;
_ThisMonthAmount += oItem.ThisMonthAmount;
_PaidTillDateAmount += oItem.PreviousAmount;
_ProjectedAmount += oItem.ProjectedAmount;
}
_TAmountPerAnnum += oItem.TotalAmount;
_TThisMonthAmount += oItem.ThisMonthAmount;
_TPaidTillDateAmount += oItem.PreviousAmount;
_TProjectedAmount += oItem.ProjectedAmount;
dr["LessExaempted"] = "0";
dr["RowSequence"] = oItem.Position;
return dr;
}
}
private DataSet PrepareDataset(ID nEmpID, bool isCurrentYear)
{
DataSet orootDataset = new DataSet();
DataRow dr = null;
IncomeTax oIncomeTax = new IncomeTax();
PayrollDataSet.PayrollDataSet.IncomeTaxDataTable dTable1 = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxDataTable();
PayrollDataSet.PayrollDataSet.IncomeTaxDataTable dTable2 = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxDataTable();
DataRow houseRent = null;
DataRow Conveyance = null;
DataRow Medical = null;
DataRow lfa = null;
DataRow TotalSalaryExepted = null;
DataRow TotalAnnualExepted = null;
_InvestmentAmount = 0.0;
_TotalTaxAmount = 0.0;
_LessExemptedAmount = 0.0;
_PaidTillDateAmount = 0.0;
_ThisMonthAmount = 0.0;
_ProjectedAmount = 0.0;
_AmountPerAnnum = 0.0;
_TotalSalaryExempted = 0.0;
_TotalAnnuaExempted = 0.0;
_TPaidTillDateAmount = 0.0;
_TThisMonthAmount = 0.0;
_TProjectedAmount = 0.0;
_TAmountPerAnnum = 0.0;
_pfInvestment = 0;
_otherInvestment = 0;
_investmentAllowed = 0;
_20Investment = 0;
foreach (IncomeTax oItem in _incometaxes)
{
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance ||
oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance ||
oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_Medical_Allowance ||
oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_LFA_Allowance) continue;
if (oItem.Side == EnumIncomeTaxSide.Inc_SalaryIncome || oItem.Side == EnumIncomeTaxSide.Dec_SalaryIncome)
{
dr = dTable1.NewRow();
dTable1.Rows.Add(this.getARow(dr, oItem));
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.House_Rent_Allowance)
houseRent = dr;
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Medical_Allowance)
Medical = dr;
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Conveyance_Allowance)
Conveyance = dr;
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.LFA_Allowance)
lfa = dr;
}
}
if (houseRent != null)
{
IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID,
EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance);
if (taxAmount != null)
{
_TotalSalaryExempted += taxAmount.TotalAmount;
houseRent["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
}
}
if (Medical != null)
{
IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID,
EnumIncomeTaxItemGroup.Exemption_Medical_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Medical_Allowance);
if (taxAmount != null)
{
_TotalSalaryExempted += taxAmount.TotalAmount;
Medical["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
}
}
if (Conveyance != null)
{
IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID,
EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance);
if (taxAmount != null)
{
_TotalSalaryExempted += taxAmount.TotalAmount;
Conveyance["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
}
}
if (lfa != null)
{
IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID,
EnumIncomeTaxItemGroup.Exemption_LFA_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_LFA_Allowance);
if (taxAmount != null)
{
_TotalSalaryExempted += taxAmount.TotalAmount;
lfa["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
}
}
IncomeTax salaryIncome = IncomeTax.Get(_incometaxes, nEmpID,
EnumIncomeTaxItemGroup.Annual_Salary_Income, (int)EnumIncomeTaxItemGroup.Annual_Salary_Income);
if (salaryIncome != null)
{
dr = dTable1.NewRow();
dTable1.Rows.Add(this.getARow(dr, salaryIncome));
TotalSalaryExepted = dr;
TotalSalaryExepted["LessExaempted"] = _TotalSalaryExempted;
}
foreach (IncomeTax oItem in _incometaxes)
{
if (oItem.Side == EnumIncomeTaxSide.Inc_AnnualIncome || oItem.Side == EnumIncomeTaxSide.Dec_AnnualIncome)
{
if (oItem.Side == EnumIncomeTaxSide.Dec_AnnualIncome)
{
oItem.ProjectedAmount = -oItem.ProjectedAmount;
oItem.TotalAmount = -oItem.TotalAmount;
}
dr = dTable1.NewRow();
dTable1.Rows.Add(this.getARow(dr, oItem));
}
}
IncomeTax totalAnnualIncome = IncomeTax.Get(_incometaxes, nEmpID,
EnumIncomeTaxItemGroup.Annual_Income, (int)EnumIncomeTaxItemGroup.Annual_Income);
if (totalAnnualIncome != null)
{
dr = dTable1.NewRow();
dTable1.Rows.Add(this.getARow(dr, totalAnnualIncome));
TotalAnnualExepted = dr;
TotalAnnualExepted["LessExaempted"] = _TotalSalaryExempted;
}
dTable1.TableName = "PayrollDataSet_IncomeTax";
orootDataset.Tables.Add(dTable1);
// Crate Slab Data
double ngrossTax = 0;
PayrollDataSet.PayrollDataSet.IncomeTaxSlabDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxSlabDataTable();
_InvestmentAmount = _taxParameter.MaxInvAmount;
if (totalAnnualIncome != null)
{
ObjectsTemplate<TaxParameterSlab> empTaxSlabs = TaxParameter.CalculateTaxOnSlab(_taxParameter, _employee, totalAnnualIncome.TotalAmount);
int index = 0;
dr = null;
foreach (TaxParameterSlab drr in empTaxSlabs)
{
dr = dTable.NewRow();
dr["CurrentRate"] = drr.TaxPercent.ToString() + "%";
if (index == 0)
dr["Parameter"] = "On First BDT-" + drr.IncomeAmount.ToString();
else if (index + 1 == empTaxSlabs.Count)
dr["Parameter"] = "On Remaining Balance";// + drr.IncomeAmount.ToString();
else
dr["Parameter"] = "On Next BDT-" + drr.IncomeAmount.ToString();
dr["TaxableIncome"] = drr.SlabTaxableAmount.ToString();
dr["IndividualTaxLiability"] = drr.SlabTaxAmount.ToString();
index++;
dTable.Rows.Add(dr);
ngrossTax = ngrossTax + drr.SlabTaxAmount;
}
}
dTable.TableName = "PayrollDataSet_IncomeTaxSlab";
orootDataset.Tables.Add(dTable);
//Create other items
PayrollDataSet.PayrollDataSet.IncomeTaxOtherDataTable oDTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxOtherDataTable();
// DataSet oIncomeTaxOth = IncomeTax.GetEmpIDforOthTax(dataFrom, nEmpID);
DataRow oDRow = null;
//IncomeTax oInvestment = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment,
// (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment);
//if (oInvestment != null)
//{
// oDRow = oDTable.NewRow();
// oDRow["DataColumn1"] = oInvestment.Description;
// oDRow["DataColumn2"] = "";
// oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oInvestment.TotalAmount);
// oDTable.Rows.Add(oDRow);
//}
IncomeTax investmentCapdo;
if (_investmentwithoutPF == false)
{
investmentCapdo = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Annual_Income,
(int)EnumIncomeTaxItemGroup.Annual_Income);
if (investmentCapdo != null)
_20Investment = (investmentCapdo.TotalAmount * _taxParameter.MaxInvestPercent) / 100;
}
else
{
investmentCapdo = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Annual_Income,
(int)EnumIncomeTaxItemGroup.Annual_Income);
if (investmentCapdo != null)
_20Investment = (investmentCapdo.TotalAmount * _taxParameter.MaxInvestPercent) / 100;
}
IncomeTax acinvestment = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Investment_Actual,
(int)EnumIncomeTaxItemGroup.Investment_Actual);
if (acinvestment != null)
_actualInvestment = acinvestment.TotalAmount;
IncomeTax taxRebate = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Investment_Allowed,
(int)EnumIncomeTaxItemGroup.Investment_Allowed);
if (taxRebate != null)
{
_investmentAllowed = taxRebate.TotalAmount;
string spf = "";
IncomeTax pf = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Company_Contri_PF,
(int)EnumIncomeTaxItemGroup.Company_Contri_PF);
if (pf != null)
{
_pfInvestment = pf.TotalAmount;
double npfamount = 0;
double otherAmount = 0;
IncomeTax actualInvestment = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Investment_Actual,
(int)EnumIncomeTaxItemGroup.Investment_Actual);
npfamount = (pf.TotalAmount * 2 > taxRebate.TotalAmount) ? taxRebate.TotalAmount : pf.TotalAmount * 2;
if (actualInvestment == null)
{
otherAmount = taxRebate.TotalAmount - pf.TotalAmount * 2;
if (otherAmount < 0) otherAmount = 0;
_otherInvestment = otherAmount;
}
else
{
otherAmount = actualInvestment.TotalAmount;
_otherInvestment = otherAmount;
}
if (ngrossTax <= 0) _otherInvestment = 0;
// spf = "PF: " + GlobalFunctions.TakaFormat(npfamount) + ", Other: " + GlobalFunctions.TakaFormat(otherAmount);
spf = "";
}
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = taxRebate.Description;
oDRow["DataColumn2"] = spf;
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(taxRebate.TotalAmount);
// oDTable.Rows.Add(oDRow);
}
foreach (IncomeTax oItem in _incometaxes)
{
if (oItem.Side == EnumIncomeTaxSide.Inc_GrossTax || oItem.Side == EnumIncomeTaxSide.Dec_GrossTax)
{
oDRow = oDTable.NewRow();
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Tax_Credit_On_Investment)
{
oDRow["DataColumn1"] = oItem.Description;// +" @ " + _taxParameter.MaxInvExempPercent.ToString() + "%";
if (ngrossTax > 0)
oDRow["DataColumn3"] = "(" + GlobalFunctions.TakaFormat(oItem.TotalAmount) + ")";
else oDRow["DataColumn3"] = "(0)";
}
else
{
oDRow["DataColumn1"] = oItem.Description;
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oItem.TotalAmount);
}
oDRow["DataColumn2"] = "";
oDTable.Rows.Add(oDRow);
}
}
IncomeTax oNetTaxPayable = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Net_Payable,
(int)EnumIncomeTaxItemGroup.Net_Payable);
if (oNetTaxPayable != null)
{
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = oNetTaxPayable.Description;
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oNetTaxPayable.TotalAmount);
oDTable.Rows.Add(oDRow);
}
IncomeTax oTaxDeducted = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Tax_Deducted,
(int)EnumIncomeTaxItemGroup.Tax_Deducted);
if (!isCurrentYear)
{
if (oTaxDeducted != null)
{
if (oTaxDeducted.PreviousAmount > 0)
{
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = "Tax paid up to previous month";
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oTaxDeducted.PreviousAmount);
oDTable.Rows.Add(oDRow);
}
if (oTaxDeducted.ThisMonthAmount > 0)
{
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = "Tax paid this month";
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oTaxDeducted.ThisMonthAmount);
oDTable.Rows.Add(oDRow);
}
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = "Total Tax Deducted";
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oTaxDeducted.TotalAmount);
oDTable.Rows.Add(oDRow);
}
}
else
{
if (oTaxDeducted != null)
{
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = "Tax paid up to previous month";
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oTaxDeducted.PreviousAmount);
oDTable.Rows.Add(oDRow);
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = "Tax paid this month";
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oTaxDeducted.ThisMonthAmount);
oDTable.Rows.Add(oDRow);
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = "Tax to be paid upto June";
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oNetTaxPayable.TotalAmount - oTaxDeducted.TotalAmount);
oDTable.Rows.Add(oDRow);
}
}
oDTable.TableName = "PayrollDataSet_IncomeTaxOther";
orootDataset.Tables.Add(oDTable);
//PayrollDataSet.PayrollDataSet.ITHeaderDataTable oMulIT = new Payroll.Report.PayrollDataSet.PayrollDataSet.ITHeaderDataTable();
//Employee oEmp = Employee.Get(nEmpID);
//oDRow = oMulIT.NewRow();
//oDRow["EmpNo"] = oEmp.EmployeeNo;
//oDRow["EmpName"] = oEmp.Name;
//oDRow["TINNo"] = oEmp.TinNo;
//oDRow["AssesmentYear"] = _taxParameter.AssessmentYear;
//oDRow["FiscalYear"] = _taxParameter.FiscalYear;
//oMulIT.Rows.Add(oDRow);
//oMulIT.TableName = "PayrollDataSet_ITHeader";
//orootDataset.Tables.Add(oMulIT);
return orootDataset;
}
private DataSet PrepareOldDataset(ID nEmpID, DataRow employee)
{
DataSet orootDataset = new DataSet();
DataRow dr = null;
IncomeTax oIncomeTax = new IncomeTax();
PayrollDataSet.PayrollDataSet.IncomeTaxDataTable dTable1 = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxDataTable();
PayrollDataSet.PayrollDataSet.IncomeTaxDataTable dTable2 = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxDataTable();
DataRow houseRent = null;
DataRow Conveyance = null;
DataRow Medical = null;
DataRow lfa = null;
DataRow TotalSalaryExepted = null;
DataRow TotalAnnualExepted = null;
_InvestmentAmount = 0.0;
_TotalTaxAmount = 0.0;
_LessExemptedAmount = 0.0;
_PaidTillDateAmount = 0.0;
_ThisMonthAmount = 0.0;
_ProjectedAmount = 0.0;
_AmountPerAnnum = 0.0;
_TotalSalaryExempted = 0.0;
_TotalAnnuaExempted = 0.0;
_TPaidTillDateAmount = 0.0;
_TThisMonthAmount = 0.0;
_TProjectedAmount = 0.0;
_TAmountPerAnnum = 0.0;
_pfInvestment = 0;
_otherInvestment = 0;
_investmentAllowed = 0;
_20Investment = 0;
foreach (IncomeTax oItem in _incometaxes)
{
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance ||
oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance ||
oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_Medical_Allowance ||
oItem.ItemGroup == EnumIncomeTaxItemGroup.Exemption_LFA_Allowance) continue;
if (oItem.Side == EnumIncomeTaxSide.Inc_SalaryIncome || oItem.Side == EnumIncomeTaxSide.Dec_SalaryIncome)
{
dr = dTable1.NewRow();
dTable1.Rows.Add(this.getARow(dr, oItem));
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.House_Rent_Allowance)
houseRent = dr;
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Medical_Allowance)
Medical = dr;
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Conveyance_Allowance)
Conveyance = dr;
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.LFA_Allowance)
lfa = dr;
}
}
if (houseRent != null)
{
IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_House_Rent_Allowance);
if (taxAmount != null)
{
_TotalSalaryExempted += taxAmount.TotalAmount;
houseRent["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
}
}
if (Medical != null)
{
IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Exemption_Medical_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Medical_Allowance);
if (taxAmount != null)
{
_TotalSalaryExempted += taxAmount.TotalAmount;
Medical["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
}
}
if (Conveyance != null)
{
IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_Conveyance_Allowance);
if (taxAmount != null)
{
_TotalSalaryExempted += taxAmount.TotalAmount;
Conveyance["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
}
}
if (lfa != null)
{
IncomeTax taxAmount = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Exemption_LFA_Allowance, (int)EnumIncomeTaxItemGroup.Exemption_LFA_Allowance);
if (taxAmount != null)
{
_TotalSalaryExempted += taxAmount.TotalAmount;
lfa["LessExaempted"] = GlobalFunctions.TakaFormat(taxAmount.TotalAmount);
}
}
IncomeTax salaryIncome = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Annual_Salary_Income, (int)EnumIncomeTaxItemGroup.Annual_Salary_Income);
if (salaryIncome != null)
{
dr = dTable1.NewRow();
dTable1.Rows.Add(this.getARow(dr, salaryIncome));
TotalSalaryExepted = dr;
TotalSalaryExepted["LessExaempted"] = _TotalSalaryExempted;
}
foreach (IncomeTax oItem in _incometaxes)
{
if (oItem.Side == EnumIncomeTaxSide.Inc_AnnualIncome || oItem.Side == EnumIncomeTaxSide.Dec_AnnualIncome)
{
dr = dTable1.NewRow();
dTable1.Rows.Add(this.getARow(dr, oItem));
//_TotalAnnuaExempted = oItem.TotalAmount;
}
}
IncomeTax totalAnnualIncome = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Annual_Income, 0);
if (totalAnnualIncome != null)
{
dr = dTable1.NewRow();
dTable1.Rows.Add(this.getARow(dr, totalAnnualIncome));
TotalAnnualExepted = dr;
TotalAnnualExepted["LessExaempted"] = _TotalSalaryExempted;
}
dTable1.TableName = "PayrollDataSet_IncomeTax";
orootDataset.Tables.Add(dTable1);
// Crate Slab Data
double ngrossTax = 0;
PayrollDataSet.PayrollDataSet.IncomeTaxSlabDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxSlabDataTable();
_InvestmentAmount = _taxParameter.MaxInvAmount;
if (totalAnnualIncome != null)
{
ObjectsTemplate<TaxParameterSlab> empTaxSlabs = TaxParameter.CalculateOldTaxOnSlab(_taxParameter, employee, totalAnnualIncome.TotalAmount);
int index = 0;
dr = null;
foreach (TaxParameterSlab drr in empTaxSlabs)
{
dr = dTable.NewRow();
dr["CurrentRate"] = drr.TaxPercent.ToString() + "%";
if (index == 0)
dr["Parameter"] = "On First BDT-" + drr.IncomeAmount.ToString();
else if (index + 1 == empTaxSlabs.Count)
dr["Parameter"] = "On Remaining Balance";// + drr.IncomeAmount.ToString();
else
dr["Parameter"] = "On Next BDT-" + drr.IncomeAmount.ToString();
dr["TaxableIncome"] = drr.SlabTaxableAmount.ToString();
dr["IndividualTaxLiability"] = drr.SlabTaxAmount.ToString();
index++;
dTable.Rows.Add(dr);
ngrossTax = ngrossTax + drr.SlabTaxAmount;
}
}
dTable.TableName = "PayrollDataSet_IncomeTaxSlab";
orootDataset.Tables.Add(dTable);
//Create other items
PayrollDataSet.PayrollDataSet.IncomeTaxOtherDataTable oDTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxOtherDataTable();
// DataSet oIncomeTaxOth = IncomeTax.GetEmpIDforOthTax(dataFrom, nEmpID);
DataRow oDRow = null;
//IncomeTax oInvestment = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Tax_Credit_On_Investment,
// (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment);
//if (oInvestment != null)
//{
// oDRow = oDTable.NewRow();
// oDRow["DataColumn1"] = oInvestment.Description;
// oDRow["DataColumn2"] = "";
// oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oInvestment.TotalAmount);
// oDTable.Rows.Add(oDRow);
//}
IncomeTax investmentCapdo;
if (_investmentwithoutPF == false)
{
investmentCapdo = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Annual_Income, (int)EnumIncomeTaxItemGroup.Annual_Income);
if (investmentCapdo != null)
_20Investment = (investmentCapdo.TotalAmount * _taxParameter.MaxInvestPercent) / 100;
}
else
{
investmentCapdo = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Annual_Salary_Income, (int)EnumIncomeTaxItemGroup.Annual_Salary_Income);
if (investmentCapdo != null)
_20Investment = (investmentCapdo.TotalAmount * _taxParameter.MaxInvestPercent) / 100;
}
IncomeTax acinvestment = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Investment_Actual, (int)EnumIncomeTaxItemGroup.Investment_Actual);
if (acinvestment != null)
_actualInvestment = acinvestment.TotalAmount;
IncomeTax taxRebate = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Investment_Allowed, (int)EnumIncomeTaxItemGroup.Investment_Allowed);
if (taxRebate != null)
{
_investmentAllowed = taxRebate.TotalAmount;
string spf = "";
IncomeTax pf = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Company_Contri_PF, (int)EnumIncomeTaxItemGroup.Company_Contri_PF);
if (pf != null)
{
_pfInvestment = pf.TotalAmount;
double npfamount = 0;
double otherAmount = 0;
IncomeTax actualInvestment = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Investment_Actual, (int)EnumIncomeTaxItemGroup.Investment_Actual);
npfamount = (pf.TotalAmount * 2 > taxRebate.TotalAmount) ? taxRebate.TotalAmount : pf.TotalAmount * 2;
if (actualInvestment == null)
{
otherAmount = taxRebate.TotalAmount - pf.TotalAmount * 2;
if (otherAmount < 0) otherAmount = 0;
_otherInvestment = otherAmount;
}
else
{
otherAmount = actualInvestment.TotalAmount;
_otherInvestment = otherAmount;
}
if (ngrossTax <= 0) _otherInvestment = 0;
// spf = "PF: " + GlobalFunctions.TakaFormat(npfamount) + ", Other: " + GlobalFunctions.TakaFormat(otherAmount);
spf = "";
}
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = taxRebate.Description;
oDRow["DataColumn2"] = spf;
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(taxRebate.TotalAmount);
// oDTable.Rows.Add(oDRow);
}
foreach (IncomeTax oItem in _incometaxes)
{
if (oItem.Side == EnumIncomeTaxSide.Inc_GrossTax || oItem.Side == EnumIncomeTaxSide.Dec_GrossTax)
{
oDRow = oDTable.NewRow();
if (oItem.ItemGroup == EnumIncomeTaxItemGroup.Tax_Credit_On_Investment)
{
oDRow["DataColumn1"] = oItem.Description + " @ " + _taxParameter.MaxInvExempPercent.ToString() + "%";
if (ngrossTax > 0)
oDRow["DataColumn3"] = "(" + GlobalFunctions.TakaFormat(oItem.TotalAmount) + ")";
else oDRow["DataColumn3"] = "(0)";
}
else
{
oDRow["DataColumn1"] = oItem.Description;
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oItem.TotalAmount);
}
oDRow["DataColumn2"] = "";
oDTable.Rows.Add(oDRow);
}
}
IncomeTax oNetTaxPayable = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Net_Payable, (int)EnumIncomeTaxItemGroup.Net_Payable);
if (oNetTaxPayable != null)
{
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = oNetTaxPayable.Description;
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oNetTaxPayable.TotalAmount);
oDTable.Rows.Add(oDRow);
}
IncomeTax oTaxDeducted = IncomeTax.Get(_incometaxes, nEmpID, EnumIncomeTaxItemGroup.Tax_Deducted, (int)EnumIncomeTaxItemGroup.Tax_Deducted);
if (_isPrvs)
{
if (oTaxDeducted != null)
{
oDRow = oDTable.NewRow();
//oDRow["DataColumn1"] = "Tax deducted from salary";
oDRow["DataColumn1"] = "Total Tax Paid";
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oTaxDeducted.TotalAmount);
oDTable.Rows.Add(oDRow);
}
}
else
{
if (oTaxDeducted != null)
{
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = "Tax paid up to previous month";
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oTaxDeducted.PreviousAmount);
oDTable.Rows.Add(oDRow);
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = "Tax paid this month";
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oTaxDeducted.ThisMonthAmount);
oDTable.Rows.Add(oDRow);
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = "Tax to be paid upto June";
oDRow["DataColumn2"] = "";
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(oNetTaxPayable.TotalAmount - oTaxDeducted.TotalAmount);
oDTable.Rows.Add(oDRow);
}
}
oDTable.TableName = "PayrollDataSet_IncomeTaxOther";
orootDataset.Tables.Add(oDTable);
//PayrollDataSet.PayrollDataSet.ITHeaderDataTable oMulIT = new Payroll.Report.PayrollDataSet.PayrollDataSet.ITHeaderDataTable();
//Employee oEmp = Employee.Get(nEmpID);
//oDRow = oMulIT.NewRow();
//oDRow["EmpNo"] = oEmp.EmployeeNo;
//oDRow["EmpName"] = oEmp.Name;
//oDRow["TINNo"] = oEmp.TinNo;
//oDRow["AssesmentYear"] = _taxParameter.AssessmentYear;
//oDRow["FiscalYear"] = _taxParameter.FiscalYear;
//oMulIT.Rows.Add(oDRow);
//oMulIT.TableName = "PayrollDataSet_ITHeader";
//orootDataset.Tables.Add(oMulIT);
return orootDataset;
}
private DataTable GetIncomeTaxData(EnumIncomeTaxDataFrom dataFrom, ID nEmpID)
{
DataRow dr = null;
IncomeTax oIncomeTax = new IncomeTax();
DataSet oIncomeTaxs = IncomeTax.GetByEmpID(dataFrom, nEmpID);
PayrollDataSet.PayrollDataSet.IncomeTaxDataTable dTable1 = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxDataTable();
PayrollDataSet.PayrollDataSet.IncomeTaxDataTable dTable2 = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxDataTable();
foreach (DataRow oDRow in oIncomeTaxs.Tables[0].Rows)
{
if (Convert.ToInt32(oDRow["ItemCode"]) == Convert.ToInt32(EnumIncomeTaxItemGroup.Basic_Salary)) //-201
{
dr = dTable1.NewRow();
dr["EmpID"] = oDRow["EMPLOYEEID"];
dr["ItemCode"] = oDRow["ItemCode"];
dr["ItemID"] = oDRow["ItemID"];
dr["IncomeHead"] = oDRow["IncomeHead"];
dr["AmountPerAnnum"] = oDRow["AmountPerannum"];
dr["ThisMonth"] = oDRow["ThisMonth"];
dr["PaidTillDate"] = oDRow["PaidTillDate"];
dr["Projected"] = oDRow["Projected"];
dr["Position"] = oDRow["Position"];
dr["Side"] = oDRow["Side"];
_AmountPerAnnum += Convert.ToDouble(oDRow["AmountPerannum"]);
_ThisMonthAmount += Convert.ToDouble(oDRow["ThisMonth"]);
_PaidTillDateAmount += Convert.ToDouble(oDRow["PaidTillDate"]);
_ProjectedAmount += Convert.ToDouble(oDRow["Projected"]);
if (oDRow["Exempted"].ToString() != string.Empty)
{
_LessExemptedAmount += Convert.ToDouble(oDRow["Exempted"]);
dr["LessExaempted"] = oDRow["Exempted"];
}
else
{
dr["LessExaempted"] = "0";
}
dr["RowSequence"] = 1;
dTable1.Rows.Add(dr);
}
else if (Convert.ToInt32(oDRow["Side"]) == Convert.ToInt32(EnumIncomeTaxSide.Inc_SalaryIncome) && Convert.ToInt32(oDRow["ItemCode"]) != Convert.ToInt32(EnumIncomeTaxItemGroup.Basic_Salary)) //Side=6 and -201
{
dr = dTable1.NewRow();
dr["EmpID"] = oDRow["EMPLOYEEID"];
dr["ItemCode"] = oDRow["ItemCode"];
dr["ItemID"] = oDRow["ItemID"];
dr["IncomeHead"] = oDRow["IncomeHead"];
dr["AmountPerAnnum"] = oDRow["AmountPerannum"];
dr["ThisMonth"] = oDRow["ThisMonth"];
dr["PaidTillDate"] = oDRow["PaidTillDate"];
dr["Projected"] = oDRow["Projected"];
dr["Position"] = oDRow["Position"];
dr["Side"] = oDRow["Side"];
_AmountPerAnnum += Convert.ToDouble(oDRow["AmountPerannum"]);
_ThisMonthAmount += Convert.ToDouble(oDRow["ThisMonth"]);
_PaidTillDateAmount += Convert.ToDouble(oDRow["PaidTillDate"]);
_ProjectedAmount += Convert.ToDouble(oDRow["Projected"]);
if (oDRow["Exempted"].ToString() != string.Empty)
{
_LessExemptedAmount += Convert.ToDouble(oDRow["Exempted"]);
dr["LessExaempted"] = oDRow["Exempted"];
}
else
{
dr["LessExaempted"] = "0";
}
dr["RowSequence"] = 2;
dTable1.Rows.Add(dr);
}
else if (Convert.ToInt32(oDRow["Side"]) == Convert.ToInt32(EnumIncomeTaxSide.Tax_fixed_Item) && Convert.ToInt32(oDRow["ItemCode"]) == Convert.ToInt32(EnumIncomeTaxItemGroup.Annual_Salary_Income)) //Side=10 TaxGroup=-216
{
dr = dTable1.NewRow();
dr["EmpID"] = oDRow["EMPLOYEEID"];
dr["ItemCode"] = oDRow["ItemCode"];
dr["ItemID"] = oDRow["ItemID"];
dr["IncomeHead"] = oDRow["IncomeHead"];
dr["AmountPerAnnum"] = _AmountPerAnnum;//oDRow["AmountPerannum"];
dr["ThisMonth"] = _ThisMonthAmount;//oDRow["ThisMonth"];
dr["PaidTillDate"] = _PaidTillDateAmount;//oDRow["PaidTillDate"];
dr["Projected"] = _ProjectedAmount;//oDRow["Projected"];
dr["Position"] = oDRow["Position"];
dr["Side"] = oDRow["Side"];
//if (oDRow["Exempted"].ToString() != string.Empty)
//{
dr["LessExaempted"] = _LessExemptedAmount;//oDRow["Exempted"];
//}
//else
//{
// dr["LessExaempted"] = "0";
//}
dr["RowSequence"] = 3;
dTable1.Rows.Add(dr);
}
else if (Convert.ToInt32(oDRow["Side"]) == Convert.ToInt32(EnumIncomeTaxSide.Inc_AnnualIncome) || Convert.ToInt32(oDRow["Side"]) == Convert.ToInt32(EnumIncomeTaxSide.Dec_AnnualIncome)) //Side=8 and 9
{
dr = dTable1.NewRow();
dr["EmpID"] = oDRow["EMPLOYEEID"];
dr["ItemCode"] = oDRow["ItemCode"];
dr["ItemID"] = oDRow["ItemID"];
dr["IncomeHead"] = oDRow["IncomeHead"];
dr["AmountPerAnnum"] = oDRow["AmountPerannum"];
dr["ThisMonth"] = oDRow["ThisMonth"];
dr["PaidTillDate"] = oDRow["PaidTillDate"];
dr["Projected"] = oDRow["Projected"];
dr["Position"] = oDRow["Position"];
dr["Side"] = oDRow["Side"];
dr["LessExaempted"] = oDRow["Exempted"];
_AmountPerAnnum += Convert.ToDouble(oDRow["AmountPerannum"]);
_ThisMonthAmount += Convert.ToDouble(oDRow["ThisMonth"]);
_PaidTillDateAmount += Convert.ToDouble(oDRow["PaidTillDate"]);
_ProjectedAmount += Convert.ToDouble(oDRow["Projected"]);
if (oDRow["Exempted"].ToString() != string.Empty)
{
_LessExemptedAmount += Convert.ToDouble(oDRow["Exempted"]);
dr["LessExaempted"] = oDRow["Exempted"];
}
else
{
dr["LessExaempted"] = "0";
}
dr["RowSequence"] = 4;
dTable1.Rows.Add(dr);
}
else if (Convert.ToInt32(oDRow["Side"]) == Convert.ToInt32(EnumIncomeTaxSide.Tax_fixed_Item) && Convert.ToInt32(oDRow["ItemCode"]) == Convert.ToInt32(EnumIncomeTaxItemGroup.Annual_Income)) //Side=10 ItemGroup=-217
{
dr = dTable1.NewRow();
dr["EmpID"] = oDRow["EMPLOYEEID"];
dr["ItemCode"] = oDRow["ItemCode"];
dr["ItemID"] = oDRow["ItemID"];
dr["IncomeHead"] = oDRow["IncomeHead"];
dr["AmountPerAnnum"] = _AmountPerAnnum;//oDRow["AmountPerannum"];
dr["ThisMonth"] = _ThisMonthAmount;//oDRow["ThisMonth"];
dr["PaidTillDate"] = _PaidTillDateAmount;//oDRow["PaidTillDate"];
dr["Projected"] = _ProjectedAmount;//oDRow["Projected"];
dr["Position"] = oDRow["Position"];
dr["Side"] = oDRow["Side"];
dr["LessExaempted"] = oDRow["Exempted"];
//if (oDRow["Exempted"].ToString() != string.Empty)
//{
dr["LessExaempted"] = _LessExemptedAmount;//oDRow["Exempted"];
//}
//else
//{
// dr["LessExaempted"] = "0";
//}
_TotalTaxAmount = Convert.ToDouble(oDRow["AmountPerannum"]);
dr["RowSequence"] = 5;
dTable1.Rows.Add(dr);
}
}
return dTable1;
}
private DataSet GetIncomeTaxSlabs(ID TaxParamID, ID EmpID)
{
DataSet dSet = new DataSet();
TaxParameter oTaxParameter = new TaxParameter();
Employee emp = Employee.Get(EmpID);
TaxParameter parameter = TaxParameter.Get(TaxParamID);
_InvestmentAmount = parameter.MaxInvAmount;
ObjectsTemplate<TaxParameterSlab> empTaxSlabs = TaxParameter.CalculateTaxOnSlab(parameter, emp, _TotalTaxAmount);
PayrollDataSet.PayrollDataSet.IncomeTaxSlabDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxSlabDataTable();
int index = 0;
DataRow dr = null;
foreach (TaxParameterSlab drr in empTaxSlabs)
{
dr = dTable.NewRow();
dr["CurrentRate"] = drr.TaxPercent.ToString();
if (index == 0)
dr["Parameter"] = "On First BDT-" + drr.IncomeAmount.ToString();
else if (index + 1 == empTaxSlabs.Count)
dr["Parameter"] = "On Remaining Balance" + drr.IncomeAmount.ToString();
else
dr["Parameter"] = "On Next BDT-" + drr.IncomeAmount.ToString();
dr["TaxableIncome"] = drr.SlabTaxableAmount.ToString();
dr["IndividualTaxLiability"] = drr.SlabTaxAmount.ToString();
index++;
dTable.Rows.Add(dr);
}
dSet.Tables.Add(dTable);
return dSet;
}
private DataTable GetIncomeTaxOthers(EnumIncomeTaxDataFrom dataFrom, ID nEmpID)
{
PayrollDataSet.PayrollDataSet.IncomeTaxOtherDataTable oDTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.IncomeTaxOtherDataTable();
DataSet oIncomeTaxOth = IncomeTax.GetEmpIDforOthTax(dataFrom, nEmpID);
DataRow oDRow = null;
double TotalPFInvest = 0.0;
double TotalOtherInvest = 0.0;
double CPFAmount = 0.0;
foreach (DataRow oRow in oIncomeTaxOth.Tables[0].Rows)
{
//if(Convert.ToInt32(oRow["ItemCode"])==Convert.ToInt32(EnumIncomeTaxItemGroup.Investment_Allowed)) //Item Group=-220
//{
// oDRow=oDTable.NewRow();
// oDRow["DataColumn1"] = oRow["IncomeHead"];
// foreach (DataRow oR in oIncomeTaxOth.Tables[0].Rows)
// {
// if (Convert.ToInt32(oR["ItemCode"]) == Convert.ToInt32(EnumIncomeTaxItemGroup.Company_Contri_PF) && Convert.ToInt32(oR["Side"]) == Convert.ToInt32(EnumIncomeTaxSide.Inc_SalaryIncome)) //Item Group=-207 and Side=8
// {
// CPFAmount = Convert.ToDouble(oR["PaidTillDate"]) + Convert.ToDouble(oR["ThisMonth"]) + Convert.ToDouble(oR["Projected"]);
// if (CPFAmount > _InvestmentAmount)
// {
// TotalPFInvest = _InvestmentAmount;
// }
// else
// {
// TotalPFInvest = CPFAmount;
// }
// }
// }
// TotalOtherInvest = Convert.ToDouble(oRow["PaidTillDate"]) + Convert.ToDouble(oRow["ThisMonth"]) + Convert.ToDouble(oRow["Projected"]);
// oDRow["DataColumn2"] = "PF Inv." + GlobalFunctions.TakaFormat(TotalPFInvest) + "," + "Others:" + GlobalFunctions.TakaFormat(TotalOtherInvest);
// oDRow["DataColumn3"] = "(PF + Other):" + GlobalFunctions.TakaFormat((TotalPFInvest + TotalOtherInvest));
// oDTable.Rows.Add(oDRow);
//}
if (Convert.ToInt32(oRow["ItemCode"]) == Convert.ToInt32(EnumIncomeTaxItemGroup.Tax_Credit_On_Investment)) //Item Group=-210
{
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = oRow["IncomeHead"];
oDRow["DataColumn2"] = "";//"PF Inv.(10%)" + GlobalFunctions.TakaFormat((TotalPFInvest / 10)) + "," + "Others(10%):" + GlobalFunctions.TakaFormat((TotalOtherInvest / 10));
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"]) + Convert.ToDouble(oRow["ThisMonth"]) + Convert.ToDouble(oRow["Projected"]));//"(" + GlobalFunctions.TakaFormat((TotalPFInvest + TotalOtherInvest) / 10) + ")";
oDTable.Rows.Add(oDRow);
}
//else if (Convert.ToInt32(oRow["ItemCode"]) == Convert.ToInt32(EnumIncomeTaxItemGroup.Gross_Tax)) //Item Group=-218
//{
// oDRow = oDTable.NewRow();
// oDRow["DataColumn1"] = oRow["IncomeHead"];
// oDRow["DataColumn2"] = "";
// oDRow["DataColumn3"] =GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"]) + Convert.ToDouble(oRow["ThisMonth"]) + Convert.ToDouble(oRow["Projected"]));
// oDTable.Rows.Add(oDRow);
//}
else if (Convert.ToInt32(oRow["ItemCode"]) == Convert.ToInt32(EnumIncomeTaxItemGroup.Tax_Gross_OtherRebate)) //Item Group=-211
{
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = oRow["IncomeHead"];
oDRow["DataColumn2"] = "";//"Prv.Deduct:" + GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"])) + ", " + "Curr.Deduct:" + GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["ThisMonth"]));
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"]) + Convert.ToDouble(oRow["ThisMonth"]) + Convert.ToDouble(oRow["Projected"])); ;//GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"]) + Convert.ToDouble(oRow["ThisMonth"]) + Convert.ToDouble(oRow["Projected"]));
oDTable.Rows.Add(oDRow);
}
else if (Convert.ToInt32(oRow["ItemCode"]) == Convert.ToInt32(EnumIncomeTaxItemGroup.Tax_Gross_OtherAddable)) //Item Group=-211
{
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = oRow["IncomeHead"];
oDRow["DataColumn2"] = "";//"Prv.Deduct:" + GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"])) + ", " + "Curr.Deduct:" + GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["ThisMonth"]));
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"]) + Convert.ToDouble(oRow["ThisMonth"]) + Convert.ToDouble(oRow["Projected"])); ;//GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"]) + Convert.ToDouble(oRow["ThisMonth"]) + Convert.ToDouble(oRow["Projected"]));
oDTable.Rows.Add(oDRow);
}
else if (Convert.ToInt32(oRow["ItemCode"]) == Convert.ToInt32(EnumIncomeTaxItemGroup.Net_Payable)) //Item Group=-211
{
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = oRow["IncomeHead"];
oDRow["DataColumn2"] = "";//"Prv.Deduct:" + GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"])) + ", " + "Curr.Deduct:" + GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["ThisMonth"]));
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"]) + Convert.ToDouble(oRow["ThisMonth"]) + Convert.ToDouble(oRow["Projected"])); ;//GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"]) + Convert.ToDouble(oRow["ThisMonth"]) + Convert.ToDouble(oRow["Projected"]));
oDTable.Rows.Add(oDRow);
}
else if (Convert.ToInt32(oRow["ItemCode"]) == Convert.ToInt32(EnumIncomeTaxItemGroup.Tax_Deducted)) //Item Group=-212
{
oDRow = oDTable.NewRow();
oDRow["DataColumn1"] = oRow["IncomeHead"];
oDRow["DataColumn2"] = "Prv.Deduct:" + GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"])) + ", " + "Curr.Deduct:" + GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["ThisMonth"]));
oDRow["DataColumn3"] = GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"]) + Convert.ToDouble(oRow["ThisMonth"]) + Convert.ToDouble(oRow["Projected"])); ;//GlobalFunctions.TakaFormat(Convert.ToDouble(oRow["PaidTillDate"]) + Convert.ToDouble(oRow["ThisMonth"]) + Convert.ToDouble(oRow["Projected"]));
oDTable.Rows.Add(oDRow);
}
}
return oDTable;
}
public void showTaxCard(bool IsCurrentYear, Employee oEmp, ID nTaxParamID, string sAssYear, string sFiscalYear)
{
IncomeTax oIncomeTax = new IncomeTax();
DataTable oDTableOthers = null;
DataTable oDTableIncomeTax = null;
_dSet = new DataSet();
fReportViewer form = new fReportViewer();
Payroll.Report.rptIncomeTax orptIncomeTax = new Payroll.Report.rptIncomeTax();
_item = ReportItem.GetByReportType(Convert.ToInt32(EnumReportType.ITIndividual));
if (IsCurrentYear)
{
oDTableIncomeTax = orptIncomeTax.GetIncomeTaxData(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID);
}
else
{
oDTableIncomeTax = orptIncomeTax.GetIncomeTaxData(EnumIncomeTaxDataFrom.ProcessedData, oEmp.ID);
}
oDTableIncomeTax.TableName = "PayrollDataSet_IncomeTax";
_dSet.Tables.Add(oDTableIncomeTax);
_dITSlabs = orptIncomeTax.GetIncomeTaxSlabs(nTaxParamID, oEmp.ID);
_dITSlabs.Tables[0].TableName = "PayrollDataSet_IncomeTaxSlab";
_dSet.Tables.Add(_dITSlabs.Tables[0].Copy());
if (IsCurrentYear)
{
oDTableOthers = orptIncomeTax.GetIncomeTaxOthers(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID);
}
else
{
oDTableOthers = orptIncomeTax.GetIncomeTaxOthers(EnumIncomeTaxDataFrom.ProcessedData, oEmp.ID);
}
oDTableOthers.TableName = "PayrollDataSet_IncomeTaxOther";
_dSet.Tables.Add(oDTableOthers.Copy());
RDLC = "Payroll.Report.RDLC.IncomeTax.rdlc";
form.ShowDlgForTaxCard(_item, _dSet, RDLC, oEmp.Name, oEmp.EmployeeNo, oEmp.TinNo, sAssYear, sFiscalYear);
}
//public void showTaxCard()
//{
// DataSet orootDataset = new DataSet();
// fReportViewer form = new fReportViewer();
// IncomeTax oIncomeTax = new IncomeTax();
// DateTime salaryMonth = _selectedParameter.FromDate.Value;
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// ObjectsTemplate<Employee> oEMployees = Employee.GetByEmpIDs(sEmpID);
// DataTable oFinalDSFMultipleEmp=null;
// foreach(Employee oEmp in oEMployees)
// {
// ObjectsTemplate<IncomeTax> oincometaxes = IncomeTax.Get(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID,Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID);
// oFinalDSFMultipleEmp=showMultipleEmployeeTaxCard(oincometaxes, oEmp);
// }
// oFinalDSFMultipleEmp.TableName = "PayrollDataSet_MultipleEmpIT";
// orootDataset.Tables.Add(oFinalDSFMultipleEmp);
// RDLC = "Payroll.Report.RDLC.ITMultipleEmp.rdlc";
// form.ShowDlgForMultipleEmpTaxCard(_item, orootDataset, RDLC);
//}
//public DataTable showMultipleEmployeeTaxCard(ObjectsTemplate<IncomeTax> oincometaxes, Employee oEmp)
//{
// IncomeTax oIncomeTax = new IncomeTax();
// DataTable oDFinalIncomeTax = null;
// _dSet = new DataSet();
// fReportViewer form = new fReportViewer();
// _taxParameter = TaxParameter.Get(SystemInformation.CurrentSysInfo.TaxParamID);
// _employee = oEmp;
// _item = ReportItem.GetByReportType(Convert.ToInt32(EnumReportType.ITIndividual));
// _incometaxes = oincometaxes;
// oDFinalIncomeTax = PrepareMultipleEmpDataset(oEmp);
// return oDFinalIncomeTax;
//}
//public void xshowTaxCardMultiple()
//{
// DataSet orootDataset = new DataSet();
// fReportViewer form = new fReportViewer();
// IncomeTax oIncomeTax = new IncomeTax();
// string sEmpID = _selectedParameter.ReportItem.INSQL;
// ObjectsTemplate<Employee> oEMployees = Employee.GetByEmpIDs(sEmpID);
// DataSet oDFinalIncomeTax = null;
// _taxParameter = TaxParameter.Get(SystemInformation.CurrentSysInfo.TaxParamID);
// PayrollDataSet.PayrollDataSet.MultipleEmpITDataTable allTaxSheets = new Payroll.Report.PayrollDataSet.PayrollDataSet.MultipleEmpITDataTable();
// int nRowCount=0;
// int ncount=0;
// int nthirdRowcount = 0;
// foreach (Employee oEmp in oEMployees)
// {
// _employee = oEmp;
// _incometaxes = IncomeTax.Get(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID, Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID);
// oDFinalIncomeTax = PrepareDataset(oEmp.ID);
// ncount = nRowCount;
// nthirdRowcount = nRowCount;
// DataRow oNewRow = null;
// foreach (DataRow oRow in oDFinalIncomeTax.Tables[0].Rows)
// {
// oNewRow = allTaxSheets.NewRow();
// oNewRow["EmpID"] = oEmp.ID;
// oNewRow["EmpNo"] = oEmp.EmployeeNo;
// oNewRow["EmpName"] = oEmp.Name;
// oNewRow["TINNo"] = oEmp.TinNo;
// oNewRow["AssesmentYear"] = _taxParameter.AssessmentYear;
// oNewRow["FiscalYear"] = _taxParameter.FiscalYear;
// oNewRow["ItemCode"] = oRow["ItemCode"];
// oNewRow["ItemID"] = oRow["ItemID"];
// oNewRow["IncomeHead"] = oRow["IncomeHead"];
// oNewRow["AmountPerAnnum"] = oRow["AmountPerAnnum"];
// oNewRow["ThisMonth"] = oRow["ThisMonth"];
// oNewRow["PaidTillDate"] = oRow["PaidTillDate"];
// oNewRow["Projected"] = oRow["Projected"];
// oNewRow["Position"] = oRow["Position"];
// oNewRow["Side"] = oRow["Side"];
// oNewRow["LessExaempted"] = oRow["LessExaempted"];
// oNewRow["RowSequence"] = oRow["RowSequence"];
// allTaxSheets.Rows.Add(oNewRow);
// nRowCount = nRowCount + 1;
// }
// foreach (DataRow oRow in oDFinalIncomeTax.Tables[1].Rows)
// {
// allTaxSheets.Rows[ncount]["CurrentRate"] = oRow["CurrentRate"];
// allTaxSheets.Rows[ncount]["Parameter"] = oRow["Parameter"];
// allTaxSheets.Rows[ncount]["TaxableIncome"] = oRow["TaxableIncome"];
// allTaxSheets.Rows[ncount]["IndividualTaxLiability"] = oRow["IndividualTaxLiability"];
// ncount = ncount + 1;
// }
// foreach (DataRow oRow in oDFinalIncomeTax.Tables[2].Rows)
// {
// allTaxSheets.Rows[nthirdRowcount]["DataColumn1"] = oRow["DataColumn1"];
// allTaxSheets.Rows[nthirdRowcount]["DataColumn2"] = oRow["DataColumn2"];
// allTaxSheets.Rows[nthirdRowcount]["DataColumn3"] = oRow["DataColumn3"];
// nthirdRowcount = nthirdRowcount + 1;
// }
// }
// allTaxSheets.TableName = "PayrollDataSet_MultipleEmpIT";
// orootDataset.Tables.Add(allTaxSheets);
// RDLC = "Payroll.Report.RDLC.ITMultipleEmp.rdlc";
// form.ShowDlgForMultipleEmpTaxCard(_item, orootDataset, RDLC);
//}
public void showTaxCard(ObjectsTemplate<IncomeTax> oincometaxes, Employee oEmp, bool ITStatus)
{
_IsTaxCertificate = ITStatus;
IncomeTax oIncomeTax = new IncomeTax();
ObjectsTemplate<TaxChallan> oTaxChallans = new ObjectsTemplate<TaxChallan>();
DataSet oDFinalIncomeTax = null;
_dSet = new DataSet();
fReportViewer form = new fReportViewer();
if (oincometaxes.Count > 0 && oincometaxes[0].TaxParameterID != null && oincometaxes[0].TaxParameterID.IsUnassigned == false)
_taxParameter = TaxParameter.Get(oincometaxes[0].TaxParameterID);
else
_taxParameter = TaxParameter.Get(SystemInformation.CurrentSysInfo.TaxParamID);
_employee = oEmp;
_item = ReportItem.GetByReportType(Convert.ToInt32(EnumReportType.ITIndividual));
_incometaxes = oincometaxes;
oDFinalIncomeTax = PrepareDataset(oEmp.ID, ITStatus);
IncomeTax pf = IncomeTax.Get(_incometaxes, _employee.ID, EnumIncomeTaxItemGroup.Company_Contri_PF,
(int)EnumIncomeTaxItemGroup.Company_Contri_PF);
double PFInvestment = 0.0;
if (pf != null)
PFInvestment = pf.TotalAmount;
//oDFinalIncomeTax.Tables[0].TableName = "PayrollDataSet_IncomeTax";
//_dSet.Tables.Add(oDFinalIncomeTax.Tables[0].TableName);
////_dITSlabs = GetIncomeTaxSlabs(oparameter.ID, oEmp.ID);
//oDFinalIncomeTax.Tables[1].TableName = "PayrollDataSet_IncomeTaxSlab";
//_dSet.Tables.Add(oDFinalIncomeTax.Tables[1].Copy());
//oDTableOthers = GetIncomeTaxOthers(oIncomeTax.GetEnumForSalaryIT(oEmp.ID), oEmp.ID);
//oDFinalIncomeTax.Tables[2].TableName = "PayrollDataSet_IncomeTaxOther";
//_dSet.Tables.Add(oDFinalIncomeTax.Tables[2].Copy());
PayrollDataSet.PayrollDataSet.TaxRebeatInvestmentDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.TaxRebeatInvestmentDataTable();
DataRow dr = null;
dr = dTable.NewRow();
dr["TaxPercent"] = _taxParameter.MaxInvestPercent;
dr["TaxableIncome"] = Math.Round(_20Investment);
dr["MaxInvestment"] = Math.Round(_taxParameter.MaxInvAmount);
dr["PFInvestment"] = Math.Round(PFInvestment);
dTable.Rows.Add(dr);
dTable.TableName = "PayrollDataSet_TaxRebeatInvestment";
oDFinalIncomeTax.Tables.Add(dTable);
PayrollDataSet.PayrollDataSet.TaxChallanDataTable dTChallan = new Payroll.Report.PayrollDataSet.PayrollDataSet.TaxChallanDataTable();
DataRow dChallan = null;
dChallan = dTChallan.NewRow();
if (!ITStatus)
{
oTaxChallans = TaxChallan.Get(oEmp.ID, oincometaxes[0].TaxParameterID);
int count = 1;
string sChallanNo = "";
// "# 57 dated 06-Sep-2010, # 56/88 dated 05-Oct-2010, # 54 dated 03-Nov-2010, # 58 dated 07-Dec-2010, # 57 dated 06-Jan-2011, # 56 dated 10-Feb-2011, # 58 dated 09-Mar-2011, # 50 dated 13-Apr-2011, # 47 dated 03-May-2011, # 55 dated 09-Jun-2011, # 71/49 dated 21-Jul-2011.";
if (oTaxChallans != null && oTaxChallans.Count > 0)
{
foreach (TaxChallan oItem in oTaxChallans)
{
if (count == oTaxChallans.Count)
{
sChallanNo += "Challan: " + oItem.ChallanNo + " Date: " + oItem.DepositDate.ToString("dd-MMM-yyyy");
}
else
{
sChallanNo += "Challan: " + oItem.ChallanNo + " Date: " + oItem.DepositDate.ToString("dd-MMM-yyyy") + ", ";
count++;
}
}
}
dChallan["ChallanNo"] = sChallanNo;
}
double _taxInvestment = _actualInvestment;
//string trget = "Tax Investment";
//var rslt = from item in oincometaxes
// where item.Description.ToLower() == trget.ToLower()
// select item;
//if(rslt.Count() == 1)
//{
// _taxInvestment = rslt.First().TotalAmount;
//}
if (!ITStatus)
{
EmployeeTaxInvestment etax = new EmployeeTaxInvestment();
_taxInvestment = etax.GetAmount(_taxParameter.ID, _employee.ID);
}
dChallan["TaxInvestment"] = _taxInvestment;
dTChallan.Rows.Add(dChallan);
dTChallan.TableName = "PayrollDataSet_TaxChallan";
oDFinalIncomeTax.Tables.Add(dTChallan);
if (ITStatus)
{
//RDLC = "Payroll.Report.RDLC.ITCertificate.rdlc";
RDLC = "Payroll.Report.RDLC.IncomeTax.rdlc";
}
else
{
RDLC = "Payroll.Report.RDLC.ITCertificate.rdlc";
}
form.ShowDlgForTaxCard(_item, oDFinalIncomeTax, RDLC, oEmp.Name, oEmp.EmployeeNo, oEmp.TinNo, _taxParameter.AssessmentYear, _taxParameter.FiscalYear);
}
//Tax Card From Old Table
public void showOldTaxCard(ObjectsTemplate<IncomeTax> oincometaxes, DataRow oEmp, bool ITStatus)
{
_IsTaxCertificate = ITStatus;
IncomeTax oIncomeTax = new IncomeTax();
ObjectsTemplate<TaxChallan> oTaxChallans = new ObjectsTemplate<TaxChallan>();
DataSet oDFinalIncomeTax = null;
_dSet = new DataSet();
fReportViewer form = new fReportViewer();
if (oincometaxes.Count > 0 && oincometaxes[0].TaxParameterID != null && oincometaxes[0].TaxParameterID.IsUnassigned == false)
_taxParameter = TaxParameter.GetOldTaxParameter(oincometaxes[0].TaxParameterID);
else
_taxParameter = TaxParameter.GetOldTaxParameter(SystemInformation.CurrentSysInfo.TaxParamID);
_item = ReportItem.GetByReportType(Convert.ToInt32(EnumReportType.ITIndividual));
_incometaxes = oincometaxes;
oDFinalIncomeTax = PrepareOldDataset(ID.FromInteger(Convert.ToInt32(oEmp["EmployeeID"])), oEmp);
IncomeTax pf = IncomeTax.Get(_incometaxes, ID.FromInteger(Convert.ToInt32(oEmp["EmployeeID"])), EnumIncomeTaxItemGroup.Company_Contri_PF, (int)EnumIncomeTaxItemGroup.Company_Contri_PF);
double PFInvestment = 0.0;
if (pf != null)
PFInvestment = pf.TotalAmount;
PayrollDataSet.PayrollDataSet.TaxRebeatInvestmentDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.TaxRebeatInvestmentDataTable();
DataRow dr = null;
dr = dTable.NewRow();
dr["TaxPercent"] = _taxParameter.MaxInvestPercent;
dr["TaxableIncome"] = _20Investment;
dr["MaxInvestment"] = _taxParameter.MaxInvAmount;
dr["PFInvestment"] = PFInvestment;
dTable.Rows.Add(dr);
dTable.TableName = "PayrollDataSet_TaxRebeatInvestment";
oDFinalIncomeTax.Tables.Add(dTable);
PayrollDataSet.PayrollDataSet.TaxChallanDataTable dTChallan = new Payroll.Report.PayrollDataSet.PayrollDataSet.TaxChallanDataTable();
DataRow dChallan = null;
dChallan = dTChallan.NewRow();
if (!ITStatus)
{
oTaxChallans = TaxChallan.GetOldTaxChallan(ID.FromInteger(Convert.ToInt32(oEmp["EmployeeID"])), oincometaxes[0].TaxParameterID);
int count = 1;
string sChallanNo = "Certified that the above mentioned amount of tax has already been deposited base on the employers confirmation of investment amount in allowed instruments, Bangladesh Bank by Grameen Phone vide challan ";
// "# 57 dated 06-Sep-2010, # 56/88 dated 05-Oct-2010, # 54 dated 03-Nov-2010, # 58 dated 07-Dec-2010, # 57 dated 06-Jan-2011, # 56 dated 10-Feb-2011, # 58 dated 09-Mar-2011, # 50 dated 13-Apr-2011, # 47 dated 03-May-2011, # 55 dated 09-Jun-2011, # 71/49 dated 21-Jul-2011.";
if (oTaxChallans != null && oTaxChallans.Count > 0)
{
foreach (TaxChallan oItem in oTaxChallans)
{
if (count == oTaxChallans.Count)
{
sChallanNo += "#" + oItem.ChallanNo + " dated " + oItem.DepositDate.ToString("dd-MMM-yyyy");
}
else
{
sChallanNo += "#" + oItem.ChallanNo + " dated " + oItem.DepositDate.ToString("dd-MMM-yyyy") + ",";
count++;
}
}
}
dChallan["ChallanNo"] = sChallanNo;
}
double _taxInvestment = _actualInvestment;
dChallan["TaxInvestment"] = _taxInvestment;
dTChallan.Rows.Add(dChallan);
dTChallan.TableName = "PayrollDataSet_TaxChallan";
oDFinalIncomeTax.Tables.Add(dTChallan);
if (ITStatus)
{
RDLC = "Payroll.Report.RDLC.IncomeTax.rdlc";
}
else
{
RDLC = "Payroll.Report.RDLC.ITCertificate.rdlc";
}
form.ShowDlgForTaxCard(_item, oDFinalIncomeTax, RDLC, oEmp["Name"].ToString(), oEmp["EmployeeNo"].ToString(), oEmp["TinNo"].ToString(), _taxParameter.AssessmentYear, _taxParameter.FiscalYear);
}
public void ShowITPfAndOtherDetails()
{
//string sEmpID = _selectedParameter.ReportItem.INSQL;
//ObjectsTemplate<TaxParameter> _TaxParameters = null;
//_TaxParameters = TaxParameter.Get(true);
//string[] sEmps = sEmpID.Split(',');
//ObjectsTemplate<Employee> allEmps = Employee.Get();
//ObjectsTemplate<EmployeeTaxInvestment> oEmpsITInvestment = EmployeeTaxInvestment.GetAllUsersInfo();
//Dictionary <int, Employee> mapAllEmps = new Dictionary<int, Employee>();
//Dictionary<int , EmployeeTaxInvestment> mapITInvestment = new Dictionary<int,EmployeeTaxInvestment> ();
//foreach (EmployeeTaxInvestment oEmpInvestment in oEmpsITInvestment)
//{
// mapITInvestment.Add(oEmpInvestment.EmployeeID.Integer, oEmpInvestment);
//}
//foreach (Employee emp in allEmps)
//{
// if (!mapAllEmps.ContainsKey(emp.ID.Integer))
// {
// mapAllEmps.Add(emp.ID.Integer, emp);
// }
//}
//PayrollDataSet.PayrollDataSet.ITPfAndOtherDetailsDataTable dTPFAndInvestment = new Payroll.Report.PayrollDataSet.PayrollDataSet.ITPfAndOtherDetailsDataTable();
//foreach (string oEmp in sEmps)
//{
// IncomeTax oIncomeTax = new IncomeTax();
// DataRow dr = dTPFAndInvestment.NewRow();
// int id = Convert.ToInt32(oEmp);
// ID eid = ID.FromInteger(id);
// ObjectsTemplate<IncomeTax> _IncomeTaxs = IncomeTax.Get(oIncomeTax.GetEnumForSalaryIT(eid), eid, _TaxParameters[0].ID);
// int count = 0;
// dr["EmployeeNo"] = String.Empty;
// dr["EmployeeName"] = String.Empty;
// if (mapAllEmps.ContainsKey(Convert.ToInt32(oEmp)))
// {
// dr["EmployeeName"] = mapAllEmps[Convert.ToInt32(oEmp)].Name;
// dr["EmployeeNo"] = mapAllEmps[Convert.ToInt32(oEmp)].EmployeeNo;
// }
// if (mapITInvestment.ContainsKey(Convert.ToInt32(oEmp)))
// {
// dr["CumulativeAmount"] = mapITInvestment[Convert.ToInt32(oEmp)].Amount;
// }
// else dr["CumulativeAmount"] = 0.0;
// double total = 0.0,pfamount = 0.0;
// foreach (IncomeTax tetax in _IncomeTaxs)
// {
// if (tetax.ItemID == -220)
// {
// total = tetax.PreviousAmount + tetax.ProjectedAmount + tetax.ThisMonthAmount;
// count++;
// }
// if (tetax.ItemID == -207)
// {
// pfamount = (tetax.PreviousAmount + tetax.ProjectedAmount + tetax.ThisMonthAmount) * 2;
// count++;
// }
// if (count == 2) break;
// }
// if (pfamount != 0.0)
// {
// dr["TotalPFAmount"] = pfamount;
// }
// else
// {
// }
// if (total - pfamount != 0.0)
// {
// dr["InvestmentAllowed"] = total - pfamount;
// }
// else
// {
// }
// if (pfamount == 0.0 && (total - pfamount) == 0.0) continue;
// if (pfamount == 0.0)
// {
// dr["TotalPFAmount"] = 0.0;
// }
// if (total - pfamount == 0.0)
// {
// dr["InvestmentAllowed"] = 0.0;
// }
// dTPFAndInvestment.Rows.Add(dr);
//}
//DataSet ds = new DataSet();
//dTPFAndInvestment.TableName = "PayrollDataSet_ITPfAndOtherDetails";
//ds.Tables.Add(dTPFAndInvestment);
//fReportViewer form = new fReportViewer();
//form.ShowShowAllPFandDetails(ds);
}
public void showTaxCertificate(ObjectsTemplate<IncomeTax> _IncomeTaxs, Employee employee, bool _bIsForCurrentYear, DateTime fromDate, DateTime toDate)
{
double basic = 0.0;
double HR = 0.0;
double MAA = 0.0;
double CA = 0.0;
double BasicArrer = 0.0;
double HRArrear = 0.0;
double MArrear = 0.0;
double CArraer = 0.0;
double otherAllo = 0.00;
double otherAlloChildren = 0.00;
double nConvence = 0.0;
double nConvenceCar = 0.0;
double nTempConvenceCar = 0.0;
double nComCar = 0.0;
_IsTaxCertificate = _bIsForCurrentYear;
IncomeTax oIncomeTax = new IncomeTax();
ObjectsTemplate<TaxChallan> oTaxChallans = new ObjectsTemplate<TaxChallan>();
ObjectsTemplate<AllowanceDeduction> oAllDeduntions = AllowanceDeduction.Get(EnumStatus.Active);
TaxParameter param = TaxParameter.Get(Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID);
List<ITEmpHead> oHeads = null;
if (param != null)
oHeads = ITEmpHead.Get(param.ID.Integer);
DataRow oDR = null;
DataSet oDset = null;
oDset = MiscellaneousDataset.GetSalaryData(employee.ID.Integer.ToString(), fromDate, toDate);
PayrollDataSet.PayrollDataSet.SalaryCertificateDataTable oSalary = new Payroll.Report.PayrollDataSet.PayrollDataSet.SalaryCertificateDataTable();
PayrollDataSet.PayrollDataSet.SalaryCertificateDataTable dtTempSalarySheet = new Payroll.Report.PayrollDataSet.PayrollDataSet.SalaryCertificateDataTable();
DataSet oDFinalIncomeTax = null;
ObjectsTemplate<SalaryMonthly> _salarymonthlies = null;
_dSet = new DataSet();
fReportViewer form = new fReportViewer();
if (_IncomeTaxs.Count > 0 && _IncomeTaxs[0].TaxParameterID != null && _IncomeTaxs[0].TaxParameterID.IsUnassigned == false)
_taxParameter = TaxParameter.Get(_IncomeTaxs[0].TaxParameterID);
else
_taxParameter = TaxParameter.Get(SystemInformation.CurrentSysInfo.TaxParamID);
_employee = employee;
_item = ReportItem.GetByReportType(Convert.ToInt32(EnumReportType.ITIndividual));
_incometaxes = _IncomeTaxs;
string sEmpNo = "";
double amount = 0.00;
ObjectsTemplate<IncomeTax> oTaxes = new ObjectsTemplate<IncomeTax>();
if (Payroll.BO.SystemInformation.CurrentSysInfo.TaxParamID == _taxParameter.ID)
oTaxes = IncomeTax.Get(EnumIncomeTaxDataFrom.ProcessTempData, _employee.ID, _taxParameter.ID);
else
oTaxes = IncomeTax.Get(EnumIncomeTaxDataFrom.ProcessedData, _employee.ID, _taxParameter.ID);
if (oDset != null)
{
foreach (DataRow oRow in oDset.Tables[0].Rows)
{
if (sEmpNo != _employee.EmployeeNo)
{
BasicArrer = 0.0;
MArrear = 0.0;
CArraer = 0.0;
HRArrear = 0.0;
basic = 0.0;
HR = 0.0;
MAA = 0.0;
CA = 0.0;
amount = 0.00;
otherAllo = 0.00;
otherAlloChildren = 0.00;
nConvence = 0.0;
nConvenceCar = 0.0;
nComCar = 0.0;
nTempConvenceCar = 0.0;
oDR = oSalary.NewRow();
foreach (IncomeTax inTax in oTaxes)
{
if (inTax.ItemGroup == EnumIncomeTaxItemGroup.Medical_Allowance && inTax.ItemID == -222)
oDR["Medical"] = GlobalFunctions.Round(inTax.TotalAmount);
else if (inTax.Description.ToLower() == "award")
oDR["Awards"] = GlobalFunctions.Round(inTax.TotalAmount);
else if (inTax.Description.ToLower() == "previous award")
oDR["Awards"] = GlobalFunctions.Round(inTax.TotalAmount);
else if (inTax.Description.ToLower() == "children education expenses")
oDR["Children"] = GlobalFunctions.Round(inTax.TotalAmount);
else if (inTax.ItemGroup == EnumIncomeTaxItemGroup.Cmp_Provided_car && inTax.ItemID == -215)
nComCar = GlobalFunctions.Round(inTax.TotalAmount);
else if (inTax.ItemGroup == EnumIncomeTaxItemGroup.Conveyance_Allowance && inTax.ItemID == 0)
nConvence = GlobalFunctions.Round(inTax.TotalAmount);
else if (inTax.ItemGroup == EnumIncomeTaxItemGroup.Conveyance_Allowance && inTax.ItemID == -205)
{
nConvenceCar += GlobalFunctions.Round(inTax.TotalAmount);
nTempConvenceCar = GlobalFunctions.Round(inTax.TotalAmount);
}
else if (inTax.ItemGroup == EnumIncomeTaxItemGroup.Other_Allowance && inTax.ItemID == -202)
{
if (inTax.Description.ToLower() != "other allowances")
nConvenceCar += GlobalFunctions.Round(inTax.TotalAmount);
}
}
if (nComCar > 0)
{
oDR["Conveyance"] = 0.0;
ITEmpHead oHe = oHeads.Find(delegate(ITEmpHead oh) { return oh.EmployeeID == _employee.ID && oh.HeadID == EnumIncomeTaxHead.Car && oh.TaxparamID == _taxParameter.ID; });
if (oHe == null)
{
oDR["sts"] = 0;
oDR["daterange"] = "";
}
else
{
oDR["sts"] = 1;
oDR["daterange"] = oHe.StartDate.ToString("dd MMM yyyy") + " to " + oHe.EndDate.ToString("dd MMM yyyy");
oDR["Conveyance"] = nTempConvenceCar;
}
}
else if (nConvence > 0)
{
oDR["Conveyance"] = nConvence;
}
else if (nConvenceCar > 0)
oDR["Conveyance"] = nConvenceCar;
AllowanceDeduction oAllDe = oAllDeduntions.Find(delegate(AllowanceDeduction oad) { return oad.ID.Integer == Convert.ToInt32(oRow["ITEMID"]); });
oDR["EmpNo"] = _employee.EmployeeNo;
sEmpNo = _employee.EmployeeNo;
oDR["EmpName"] = _employee.Name;
if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Basic_Salary && (Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross || Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Arrear) && Convert.ToInt32(oRow["ItemID"].ToString().Trim()) == (int)EnumSalaryItemCode.Basic_Salary)
{
basic = basic + GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
oDR["Basic"] = basic;
amount = Convert.ToDouble(oDR["Basic"]);
}
else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && (Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross || Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Arrear) && oRow["ITEMID"].ToString().Trim() == "1")
{
HR = HR + GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
oDR["HousrRent"] = HR;
amount = Convert.ToDouble(oDR["HousrRent"]);
}
//else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && (Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross || Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Arrear) && oAllDe.Code == "004")
//{
// CA = CA + GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
// oDR["Conveyance"] = CA;
//}
//else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Deduction && (Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Deductions || Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Arrear) && oAllDe.Code == "002")
//{
// CA = CA - GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
// oDR["Conveyance"] = CA;
//}
//else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && (Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross || Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Arrear) && oRow["ITEMID"].ToString().Trim() == "10")
//{
// oDR["Medical"] = oRow["Amount"];
// amount = amount + GlobalFunctions.Round(Convert.ToDouble(oDR["Medical"]));
//}
else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.PF_Contribution && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Deductions && Convert.ToInt32(oRow["ItemID"].ToString().Trim()) == (int)EnumSalaryItemCode.PF_Contribution)
{
oDR["PFContri"] = oRow["Amount"];
amount = amount + GlobalFunctions.Round(Convert.ToDouble(oDR["PFContri"]));
}
else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.PF_Contribution && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Deductions && Convert.ToInt32(oRow["ItemID"].ToString().Trim()) == 0)
{
oDR["PFPrev"] = oRow["Amount"];
amount = amount + GlobalFunctions.Round(Convert.ToDouble(oDR["PFPrev"]));
}
//else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross && oRow["ITEMID"].ToString().Trim() == "5")
//{
// CA = CA + Convert.ToDouble(oRow["Amount"]);
// oDR["Conveyance"] = CA;
// amount = amount + Convert.ToDouble(oDR["CarAll"]);
//}
else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross && (oAllDe.Code == "005" || oAllDe.Code == "006" || oAllDe.Code == "003"))
{
otherAllo = otherAllo + GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
oDR["OtherAll"] = otherAllo;
amount = amount + Convert.ToDouble(oDR["OtherAll"]);
}
//else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross && oAllDe.Code == "007")
//{
// oDR["Awards"] = GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));//GlobalFunctions.Round(item.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Allowance, 5));
//}
oSalary.Rows.Add(oDR);
}
else if (sEmpNo == _employee.EmployeeNo)
{
AllowanceDeduction oAllDe = oAllDeduntions.Find(delegate(AllowanceDeduction oad) { return oad.ID.Integer == Convert.ToInt32(oRow["ITEMID"]); });
if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Basic_Salary && (Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross || Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Arrear) && Convert.ToInt32(oRow["ItemID"].ToString().Trim()) == (int)EnumSalaryItemCode.Basic_Salary)
{
basic = basic + GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
oDR["Basic"] = basic;
amount = amount + Convert.ToDouble(oDR["Basic"]);
}
else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && (Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross || Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Arrear) && oRow["ITEMID"].ToString().Trim() == "1")
{
HR = HR + GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
oDR["HousrRent"] = HR;
amount = amount + Convert.ToDouble(oDR["HousrRent"]);
}
//else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && (Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross || Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Arrear) && (oAllDe.Code == "002" || oAllDe.Code == "004"))
//{
// CA = CA + GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
// oDR["Conveyance"] = CA;
// amount = amount + Convert.ToDouble(oDR["Conveyance"]);
//}
//else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && (Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross || Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Arrear) && oAllDe.Code == "008")
//{
// oDR["Medical"] = oRow["Amount"];
// amount = amount + GlobalFunctions.Round(Convert.ToDouble(oDR["Medical"]));
//}
else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.PF_Contribution && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Deductions && Convert.ToInt32(oRow["ItemID"].ToString().Trim()) == (int)EnumSalaryItemCode.PF_Contribution)
{
oDR["PFContri"] = oRow["Amount"];
amount = amount + GlobalFunctions.Round(Convert.ToDouble(oDR["PFContri"]));
}
else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.PF_Contribution && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Deductions && Convert.ToInt32(oRow["ItemID"].ToString().Trim()) == 0)
{
oDR["PFPrev"] = oRow["Amount"];
amount = amount + GlobalFunctions.Round(Convert.ToDouble(oDR["PFPrev"]));
}
//else if(Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim())==(int)EnumSalaryGroup.Gross && oRow["ITEMID"].ToString().Trim() == "5")
//{
// oDR["CarAll"] = oRow["Amount"];
// amount = amount + Convert.ToDouble(oDR["CarAll"]);
//}
else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross && (oAllDe.Code == "005" || oAllDe.Code == "006" || oAllDe.Code == "003"))
{
otherAllo = otherAllo + GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
oDR["OtherAll"] = otherAllo;
amount = amount + Convert.ToDouble(oDR["OtherAll"]);
}
//else if(Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Bonus && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim())==(int)EnumSalaryGroup.Gross && oRow["ITEMID"].ToString().Trim() == "2")
//{
// oDR["BonusIC"] = oRow["Amount"];
// amount = amount + Convert.ToDouble(oDR["BonusIC"]);
//}
//else if(Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Bonus && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim())==(int)EnumSalaryGroup.Gross && oRow["ITEMID"].ToString().Trim() == "1")
//{
// oDR["BonusFes"] = oRow["Amount"];
// amount = amount + Convert.ToDouble(oDR["BonusFes"]);
//}
//else if (Convert.ToInt32(oRow["ItemCode"].ToString().Trim()) == (int)EnumSalaryItemCode.Allowance && Convert.ToInt32(oRow["ItemGroup"].ToString().Trim()) == (int)EnumSalaryGroup.Gross && oAllDe.Code == "007")
//{
// oDR["Awards"] = GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));//GlobalFunctions.Round(item.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Allowance, 5));
//}
oDR["TotalGross"] = amount;
}
}
}
PayrollDataSet.PayrollDataSet.TaxChallanDataTable dTChallan = new Payroll.Report.PayrollDataSet.PayrollDataSet.TaxChallanDataTable();
PayrollDataSet.PayrollDataSet.ChallanNoWithMonthDataTable dTChallan2 = new Payroll.Report.PayrollDataSet.PayrollDataSet.ChallanNoWithMonthDataTable();
DataRow dChallan = null;
dChallan = dTChallan.NewRow();
oTaxChallans = TaxChallan.Get(_employee.ID, _taxParameter.ID);
int count = 1;
string sChallanNo = "Certified that the above mentioned amount of tax has already been deposited base on the employers confirmation of investment amount in allowed instruments, Bangladesh Bank by Grameen Phone as per following details: ";
// "# 57 dated 06-Sep-2010, # 56/88 dated 05-Oct-2010, # 54 dated 03-Nov-2010, # 58 dated 07-Dec-2010, # 57 dated 06-Jan-2011, # 56 dated 10-Feb-2011, # 58 dated 09-Mar-2011, # 50 dated 13-Apr-2011, # 47 dated 03-May-2011, # 55 dated 09-Jun-2011, # 71/49 dated 21-Jul-2011.";
//if (oTaxChallans != null && oTaxChallans.Count > 0)
//{
// foreach (TaxChallan oItem in oTaxChallans)
// {
// if (count == oTaxChallans.Count)
// {
// sChallanNo += "#" + oItem.ChallanNo + " dated " + oItem.DepositDate.ToString("dd-MMM-yyyy");
// }
// else
// {
// sChallanNo += "#" + oItem.ChallanNo + " dated " + oItem.DepositDate.ToString("dd-MMM-yyyy") + ",";
// count++;
// }
// }
//}
dChallan["ChallanNo"] = sChallanNo;
double _taxInvestment = _actualInvestment;
dChallan["TaxInvestment"] = _taxInvestment;
dTChallan.Rows.Add(dChallan);
//string sChallanNo = "Certified that the above mentioned amount of tax has already been deposited base on the employers confirmation of investment amount in allowed instruments, Bangladesh Bank by Citibank, N. A. as per following details : ";
if (oTaxChallans != null && oTaxChallans.Count > 0)
{
foreach (TaxChallan oItem in oTaxChallans)
{
dChallan = null;
dChallan = dTChallan2.NewRow();
dChallan["ChallanNo"] = oItem.ChallanNo;
dChallan["Amount"] = GlobalFunctions.Round(oItem.Amount);
dChallan["ChallanDate"] = oItem.SalaryMonthly.ToString("dd MMM yyyy");
dTChallan2.Rows.Add(dChallan);
}
}
var sortedData = from DataRow dr in oSalary.Rows orderby _employee.EmployeeNo select dr;
foreach (DataRow dr in sortedData)
{
DataRow nDr = dtTempSalarySheet.NewRow();
nDr.ItemArray = dr.ItemArray;
dtTempSalarySheet.Rows.Add(nDr);
}
string empNo = string.Empty;
double nAmount1 = 0.0;
double nAmount2 = 0.0;
double nAmount3 = 0.0;
double nAmount4 = 0.0;
double nChildrenTaxAmount = 0.0;
double nBinusTaxAmount = 0.0;
foreach (IncomeTax inTax in oTaxes)
{
if (inTax.Description.ToLower() == "adjustment on previous year tax slab change")
{
nAmount1 = GlobalFunctions.Round(inTax.TotalAmount);
//break;
}
else if (inTax.Description.ToLower() == "adjustment on previous year tax slab change-inc")
{
nAmount2 = GlobalFunctions.Round(inTax.TotalAmount);
///break;
}
else if (inTax.Description.ToLower() == "award tax adjustment")
{
nAmount3 = GlobalFunctions.Round(inTax.TotalAmount);
///break;
}
else if (inTax.Description.ToLower() == "lta tax adjustment")
{
nAmount4 = GlobalFunctions.Round(inTax.TotalAmount);
///break;
}
else if (inTax.Description.ToLower() == "children education tax adjustment")
{
nChildrenTaxAmount = GlobalFunctions.Round(inTax.TotalAmount);
///break;
}
}
foreach (DataRow oDR1 in dtTempSalarySheet)
{
double bAmount = 0.0;
double inc = 0.0;
foreach (DataRow oRow in oDset.Tables[2].Rows)
{
if (oDR1["EmpNo"].ToString() == _employee.EmployeeNo)
{
inc = GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
}
}
foreach (DataRow oRow in oDset.Tables[3].Rows)
{
if (oDR1["EmpNo"].ToString() == oRow["EmployeeNo"].ToString())
{
if (Convert.ToInt32(oRow["BonusID"]) != 1)
{
bAmount = bAmount + GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
nBinusTaxAmount = GlobalFunctions.Round(Convert.ToDouble(oRow["taxamount"]));
oDR1["BonusIC"] = bAmount;
}
else
{
oDR1["BonusFes"] = GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
nBinusTaxAmount = GlobalFunctions.Round(Convert.ToDouble(oRow["taxamount"]));
}
}
}
foreach (DataRow oRow in oDset.Tables[1].Rows)
{
if (oDR1["EmpNo"].ToString() == _employee.EmployeeNo)
{
inc += GlobalFunctions.Round(Convert.ToDouble(oRow["Amount"]));
inc += nAmount1 - nAmount2 + nAmount3 + nAmount4 + nBinusTaxAmount + nChildrenTaxAmount;
oDR1["TotalDeduct"] = inc.ToString("#,###.##");
oDR1["ChallanNo"] = sChallanNo;
}
}
}
form.ShowDlgForSalaryCertificate(dtTempSalarySheet, dTChallan, fromDate, toDate, dTChallan2);
}
public void ShowEmployeestaxDeduction()
{
fReportViewer form = new fReportViewer();
TaxParameter taxparam = _selectedParameter.TaxParameters[0];
_TaxParameterID = _selectedParameter.TaxParameters[0].ID;
string sEmpIDs = _selectedParameter.ReportItem.INSQL;
string taxYear = _taxParameters.Max(x => x.FiscalYear);
string sMDate = taxparam.FiscalYear.ToString();
string sfDate = sMDate.Substring(0, 4);
int index = sMDate.IndexOf("-");
string stDate = sMDate.Substring(index + 1);
double dTotal = 0;
double dsalTotal = 0;
double dBonusTot = 0;
double dDeductedTax = 0;
double dFonalsettTot = 0;
DateTime fromdate = new DateTime(Convert.ToInt32(sfDate), 7, 1);
DateTime toDate = new DateTime(Convert.ToInt32(stDate), 6, 30);
ObjectsTemplate<Employee> oEMployees = Employee.GetEmpsWithDiscontinue(sEmpIDs);
DataSet ds = new DataSet();
DataRow odrow = null;
if (taxYear == taxparam.FiscalYear)
{
ds = MiscellaneousDataset.GetEmpsFiscalYeartax(sEmpIDs, fromdate, toDate, 0);
}
else
{
ds = MiscellaneousDataset.GetEmpsFiscalYeartax(sEmpIDs, fromdate, toDate, _TaxParameterID.Integer);
}
PayrollDataSet.dsEmpLeaveLedger.EmployeesTaxDeductionDataTable dTEmpTax = new Payroll.Report.PayrollDataSet.dsEmpLeaveLedger.EmployeesTaxDeductionDataTable();
if (ds.Tables[0].Rows.Count > 0)
{
foreach (Employee oem in oEMployees)
{
dTotal = 0; dsalTotal = 0; dBonusTot = 0; dDeductedTax = 0; dFonalsettTot = 0;
foreach (DataRow orow in ds.Tables[0].Rows)
{
if (oem.ID.Integer == Convert.ToInt32(orow["EMPLOYEEID"].ToString()))
{
odrow = dTEmpTax.NewRow();
odrow["EmployeeNo"] = oem.EmployeeNo;
odrow["Name"] = oem.Name;
odrow["Designation"] = oem.Designation.Name;
DateTime dtDOJ = Convert.ToDateTime(oem.JoiningDate);
odrow["DOJ"] = dtDOJ.ToString("dd MMM yyyy");
DateTime dtFiscalyear = Convert.ToDateTime(orow["Fiscalmonth"].ToString());
odrow["Description"] = dtFiscalyear.ToString("MMM");
if (Convert.ToDouble(orow["Amount"].ToString()) != 0)
{
double dsTax = Convert.ToDouble(orow["Amount"].ToString());
odrow["Value"] = dsTax.ToString("##,###");
}
else
{
odrow["Value"] = "0";
}
odrow["Group"] = "Salary";
dsalTotal = dsalTotal + Convert.ToDouble(odrow["Value"].ToString());
dTEmpTax.Rows.Add(odrow);
}
}
foreach (DataRow orow in ds.Tables[1].Rows)
{
if (oem.ID.Integer == Convert.ToInt32(orow["EMPLOYEEID"].ToString()))
{
odrow = dTEmpTax.NewRow();
odrow["EmployeeNo"] = oem.EmployeeNo;
odrow["Name"] = oem.Name;
odrow["Designation"] = oem.Designation.Name;
DateTime dtDOJ = Convert.ToDateTime(oem.JoiningDate);
odrow["DOJ"] = dtDOJ.ToString("dd MMM yyyy");
DateTime dtFiscalyear = Convert.ToDateTime(orow["Fiscalmonth"].ToString());
odrow["Description"] = dtFiscalyear.ToString("MMM");
double dBTax = Convert.ToDouble(orow["Amount"].ToString());
if (dBTax == 0)
{
continue;
}
odrow["Value"] = dBTax.ToString("##,###");
odrow["Group"] = "Bonus";
dBonusTot = dBonusTot + dBTax;
dTEmpTax.Rows.Add(odrow);
}
}
foreach (DataRow orow in ds.Tables[2].Rows)
{
if (oem.ID.Integer == Convert.ToInt32(orow["EMPLOYEEID"].ToString()))
{
odrow = dTEmpTax.NewRow();
odrow["EmployeeNo"] = oem.EmployeeNo;
odrow["Name"] = oem.Name;
odrow["Designation"] = oem.Designation.Name;
DateTime dtDOJ3 = Convert.ToDateTime(oem.JoiningDate);
odrow["DOJ"] = dtDOJ3.ToString("dd MMM yyyy");
odrow["Description"] = "FinalSettlement Tax";
double dfsTax = Convert.ToDouble(orow["Amount"].ToString());
odrow["Value"] = dfsTax.ToString("##,###");
odrow["Group"] = "";
dFonalsettTot = dFonalsettTot + Convert.ToDouble(odrow["Value"].ToString());
dTEmpTax.Rows.Add(odrow);
}
}
odrow = dTEmpTax.NewRow();
odrow["EmployeeNo"] = oem.EmployeeNo;
odrow["Name"] = oem.Name;
odrow["Designation"] = oem.Designation.Name;
DateTime dtDOJ4 = Convert.ToDateTime(oem.JoiningDate);
odrow["DOJ"] = dtDOJ4.ToString("dd MMM yyyy");
odrow["Description"] = "Total";
dTotal = dsalTotal + dBonusTot + dFonalsettTot;
dTotal = Math.Round(dTotal);
odrow["Value"] = dTotal.ToString("##,###");
odrow["Group"] = "";
dTEmpTax.Rows.Add(odrow);
foreach (DataRow orow in ds.Tables[3].Rows)
{
if (oem.ID.Integer == Convert.ToInt32(orow["EMPLOYEEID"].ToString()))
{
odrow = dTEmpTax.NewRow();
odrow["EmployeeNo"] = oem.EmployeeNo;
odrow["Name"] = oem.Name;
odrow["Designation"] = oem.Designation.Name;
DateTime dtDOJ5 = Convert.ToDateTime(oem.JoiningDate);
odrow["DOJ"] = dtDOJ5.ToString("dd MMM yyyy");
odrow["Description"] = "Deducted";
double staxdeduct = Convert.ToDouble(orow["Amount"].ToString());
odrow["Value"] = staxdeduct.ToString("##,###");
odrow["Group"] = "";
dDeductedTax = Convert.ToDouble(dDeductedTax + odrow["Value"].ToString());
dTEmpTax.Rows.Add(odrow);
}
}
odrow = dTEmpTax.NewRow();
odrow["EmployeeNo"] = oem.EmployeeNo;
odrow["Name"] = oem.Name;
odrow["Designation"] = oem.Designation.Name;
DateTime dtDOJ6 = Convert.ToDateTime(oem.JoiningDate);
odrow["DOJ"] = dtDOJ6.ToString("dd MMM yyyy");
odrow["Description"] = "Difference";
odrow["Value"] = Convert.ToString(dTotal - dDeductedTax);
odrow["Group"] = "";
dTEmpTax.Rows.Add(odrow);
foreach (DataRow orow in ds.Tables[3].Rows)
{
if (oem.ID.Integer == Convert.ToInt32(orow["EMPLOYEEID"].ToString()))
{
odrow = dTEmpTax.NewRow();
odrow["EmployeeNo"] = oem.EmployeeNo;
odrow["Name"] = oem.Name;
odrow["Designation"] = oem.Designation.Name;
DateTime dtDOJ7 = Convert.ToDateTime(oem.JoiningDate);
odrow["DOJ"] = dtDOJ7.ToString("dd MMM yyyy");
odrow["Description"] = "Manual Edit";
if (orow["FiscalMonth"].ToString() != "")
{
odrow["Value"] = "Yes";
}
else
{
odrow["Value"] = "NO";
}
odrow["Group"] = "";
dTEmpTax.Rows.Add(odrow);
}
}
foreach (DataRow orow in ds.Tables[4].Rows)
{
if (oem.ID.Integer == Convert.ToInt32(orow["EMPLOYEEID"].ToString()))
{
odrow = dTEmpTax.NewRow();
odrow["EmployeeNo"] = oem.EmployeeNo;
odrow["Name"] = oem.Name;
odrow["Designation"] = oem.Designation.Name;
DateTime dtDOJ1 = Convert.ToDateTime(oem.JoiningDate);
odrow["DOJ"] = dtDOJ1.ToString("dd MMM yyyy");
odrow["Description"] = orow["Description"].ToString();
double sInctax = Convert.ToDouble(orow["Amount"].ToString());
odrow["Value"] = sInctax.ToString("##,###");
odrow["Group"] = "Others";
dTEmpTax.Rows.Add(odrow);
}
}
foreach (DataRow orow in ds.Tables[5].Rows)
{
if (oem.ID.Integer == Convert.ToInt32(orow["EMPLOYEEID"].ToString()))
{
odrow = dTEmpTax.NewRow();
odrow["EmployeeNo"] = oem.EmployeeNo;
odrow["Name"] = oem.Name;
odrow["Designation"] = oem.Designation.Name;
DateTime dtDOJ2 = Convert.ToDateTime(oem.JoiningDate);
odrow["DOJ"] = dtDOJ2.ToString("dd MMM yyyy");
odrow["Description"] = orow["Description"].ToString();
double sDecTax = Convert.ToDouble(orow["Amount"].ToString());
odrow["Value"] = sDecTax.ToString("##,###");
odrow["Group"] = "Others";
dTEmpTax.Rows.Add(odrow);
}
}
}
}
if (dTEmpTax.Rows.Count > 0)
{
form.ShowEmployeesTaxDeductionReport(dTEmpTax, taxparam.FiscalYear.ToString());
}
else
{
throw new ServiceException("No Data Found For these Employee!!!");
}
}
public void ShowTaxInvestment()
{
fReportViewer form = new fReportViewer();
TaxParameter taxparam = _selectedParameter.TaxParameters[0];
_TaxParameterID = _selectedParameter.TaxParameters[0].ID;
string sEmpIDs = _selectedParameter.ReportItem.INSQL;
string taxYear = _taxParameters.Max(x => x.FiscalYear);
string sMDate = taxparam.FiscalYear.ToString();
string sfDate = sMDate.Substring(0, 4);
int index = sMDate.IndexOf("-");
string stDate = sMDate.Substring(index + 1);
DateTime fromdate = new DateTime(Convert.ToInt32(sfDate), 7, 1);
DateTime toDate = new DateTime(Convert.ToInt32(stDate), 6, 30);
ObjectsTemplate<Employee> oEMployees = Employee.GetEmpsWithDiscontinue(sEmpIDs);
ObjectsTemplate<EmployeeTaxInvestment> oEmpsITInvestment = EmployeeTaxInvestment.GetAllUsersInfo();
DataSet ds = new DataSet();
DataRow odrow = null;
if (taxYear == taxparam.FiscalYear)
{
ds = MiscellaneousDataset.GetEmpstaxInvestment(sEmpIDs, 0);
}
else
{
ds = MiscellaneousDataset.GetEmpstaxInvestment(sEmpIDs, _TaxParameterID.Integer);
}
PayrollDataSet.dsEmpLeaveLedger.TaxInvestmentDataTable dttaxInvestment = new Payroll.Report.PayrollDataSet.dsEmpLeaveLedger.TaxInvestmentDataTable();
foreach (Employee oem in oEMployees)
{
foreach (DataRow orow in ds.Tables[0].Rows)
{
if (oem.ID.Integer == Convert.ToInt32(orow["EMPLOYEEID"].ToString()))
{
EmployeeTaxInvestment oEmpInvestment = oEmpsITInvestment.Where(x => x.EmployeeID == oem.ID).FirstOrDefault();
if (oEmpInvestment != null)
{
odrow = dttaxInvestment.NewRow();
odrow["EmpNo"] = oem.EmployeeNo;
odrow["Name"] = oem.Name;
odrow["Designation"] = oem.Designation.Name;
if (orow["Provident Fund"].ToString() != "")
{
odrow["PFBothPart"] = Convert.ToDouble(orow["Provident Fund"].ToString()) * 2;
}
if (orow["Salary Income"].ToString() != "")
{
odrow["SalaryIncome"] = Convert.ToDouble(orow["Salary Income"].ToString());
}
if (orow["Investment Required"].ToString() != "")
{
odrow["Investment"] = Convert.ToDouble(orow["Investment Required"].ToString());
}
odrow["ActualInvestment"] = oEmpInvestment.Amount;
dttaxInvestment.Rows.Add(odrow);
}
}
}
}
if (dttaxInvestment.Rows.Count > 0)
{
form.ShowtaxInvestmentReport(dttaxInvestment, taxparam.FiscalYear.ToString());
}
else
{
throw new ServiceException("No Data Found For these Employee!!!");
}
}
public void ShowTaxChallan()
{
fReportViewer form = new fReportViewer();
TaxParameter taxparam = _selectedParameter.TaxParameters[0];
_TaxParameterID = _selectedParameter.TaxParameters[0].ID;
string sEmpIDs = _selectedParameter.ReportItem.INSQL;
string sMDate = taxparam.FiscalYear.ToString();
string sfDate = sMDate.Substring(0, 4);
int index = sMDate.IndexOf("-");
string stDate = sMDate.Substring(index + 1);
DateTime fromdate = new DateTime(Convert.ToInt32(sfDate), 7, 1);
DateTime toDate = new DateTime(Convert.ToInt32(stDate), 6, 30);
ObjectsTemplate<Employee> oEMployees = Employee.GetEmpsWithDiscontinue(sEmpIDs);
DataSet ds = new DataSet();
DataRow odrow = null;
ds = MiscellaneousDataset.GetEmpstaxChallan(sEmpIDs, _TaxParameterID.Integer);
PayrollDataSet.dsEmpLeaveLedger.TaxChallanDataTable dtTaxChallan = new Payroll.Report.PayrollDataSet.dsEmpLeaveLedger.TaxChallanDataTable();
if (ds.Tables.Count > 0)
{
foreach (DataRow orow in ds.Tables[0].Rows)
{
odrow = dtTaxChallan.NewRow();
odrow["EmpNo"] = orow["EmployeeNo"].ToString();
odrow["Name"] = orow["Name"].ToString();
odrow["Designation"] = orow["Designation"].ToString();
DateTime dtDepositDate = Convert.ToDateTime(orow["DepositDate"].ToString());
odrow["SalaryMonth"] = dtDepositDate.ToString("dd MMM yyyy");
odrow["ChallanNo"] = orow["ChallenNo"].ToString();
odrow["Amount"] = Convert.ToDouble(orow["Amount"].ToString());
dtTaxChallan.Rows.Add(odrow);
}
}
if (dtTaxChallan.Rows.Count > 0)
{
form.ShowTaxChallanReport(dtTaxChallan, taxparam.FiscalYear.ToString());
}
else
{
throw new ServiceException("No Data Found For these Employee!!!");
}
}
public void ShowTaxWithProjection(int empID)
{
fReportViewer form = new fReportViewer();
DataSet oTaxWithProjection = IncomeTax.GetTaxWithProjection(empID);
DataTable dTTaxWithProjection = oTaxWithProjection.Tables[0].Copy();
DataSet dSet = new DataSet();
dTTaxWithProjection.TableName = "PayrollDataSet_TaxDetailsWithProjection";
dSet.Tables.Add(dTTaxWithProjection);
//List<ReportParameter> parameters = new List<ReportParameter>();
//parameters.Add(new ReportParameter("BankName", _selectedParameter.Banks[0].Name));
form.CommonReportView(null, dSet, "Payroll.Report.RDLC.rptTaxDetailsWithProjection.rdlc", null);
}
public void ShowTaxWithoutProjection(int empID)
{
fReportViewer form = new fReportViewer();
DataSet oTaxWithoutProjection = IncomeTax.GetTaxWithoutProjection(empID);
DataTable dTTaxWithoutProjection = oTaxWithoutProjection.Tables[0].Copy();
DataSet dSet = new DataSet();
dTTaxWithoutProjection.TableName = "PayrollDataSet_TaxDetailsWithoutProjection";
dSet.Tables.Add(dTTaxWithoutProjection);
//List<ReportParameter> parameters = new List<ReportParameter>();
//parameters.Add(new ReportParameter("BankName", _selectedParameter.Banks[0].Name));
form.CommonReportView(null, dSet, "Payroll.Report.RDLC.rptTaxDetailsWithoutProjection.rdlc", null);
}
}
}