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