From 13704086c3c6da6389a282dc2f1470d5ca691e1f Mon Sep 17 00:00:00 2001 From: Shahadat Hossain Date: Sun, 21 Jun 2026 13:50:33 +0600 Subject: [PATCH] 20260621-2633 Implementation of the New Tax Policy --- Payroll.BO/Basic/Enums.cs | 4 ++- Payroll.BO/Tax/TaxCalculator.cs | 27 ++++++++++++++++++- .../Payroll.UI/Properties/AssemblyInfo.cs | 4 +-- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/Payroll.BO/Basic/Enums.cs b/Payroll.BO/Basic/Enums.cs index dbd49a1..afe2780 100644 --- a/Payroll.BO/Basic/Enums.cs +++ b/Payroll.BO/Basic/Enums.cs @@ -913,7 +913,9 @@ namespace Payroll.BO Exemption_LFA_Allowance = -234, Tax_Refund_On_Current_Year = -235, Tax_on_Tax_Net_Payable = -236, - AnnualExemption = -305 + AnnualExemption = -305, + + Tax_Incentive = -155 } [Serializable] diff --git a/Payroll.BO/Tax/TaxCalculator.cs b/Payroll.BO/Tax/TaxCalculator.cs index 7242428..22c83d8 100644 --- a/Payroll.BO/Tax/TaxCalculator.cs +++ b/Payroll.BO/Tax/TaxCalculator.cs @@ -1930,7 +1930,32 @@ namespace Payroll.BO EnumIncomeTaxItemGroup.Tax_Credit_On_Investment, (int)EnumIncomeTaxItemGroup.Tax_Credit_On_Investment); if (InvestItem == null) this.CalculateInvestment(); - netPayable.ProjectedAmount = GrossTax.TotalAmount - InvestItem.TotalAmount; + netPayable.ProjectedAmount = netPayable.ProjectedAmount + GrossTax.TotalAmount - InvestItem.TotalAmount; + #region Tax Incentive + ProcessItem pitem = _processItems.FirstOrDefault(x => x.ItemGroup == (int)EnumIncomeTaxSide.Dec_GrossTax && x.ItemCode == (int)EnumIncomeTaxItemGroup.Tax_Incentive); + if (netPayable.ProjectedAmount > 0 && pitem != null) + { + IncomeTax incentive = _currentYearTax.FirstOrDefault(x => x.EmployeeID == _employee.ID && + x.ItemGroup == EnumIncomeTaxItemGroup.Tax_Incentive && x.ItemID == (int)EnumIncomeTaxItemGroup.Tax_Incentive); + if (incentive == null) incentive = this.Add(EnumIncomeTaxItemGroup.Tax_Incentive, + (int)EnumIncomeTaxItemGroup.Tax_Incentive, "Tax Incentive", 0, 0, EnumIncomeTaxSide.Dec_GrossTax); + + incentive.TotalAmount = 0; + incentive.PreviousAmount = 0; + incentive.ThisMonthAmount = 0; + incentive.ProjectedAmount = 0; + + incentive.ProjectedAmount = GlobalFunctions.Round(netPayable.ProjectedAmount * 0.05); + if (incentive.ProjectedAmount > 25000) + { + incentive.ProjectedAmount = 25000; + } + incentive.TotalAmount = GlobalFunctions.Round(incentive.ProjectedAmount); + netPayable.ProjectedAmount = netPayable.ProjectedAmount - incentive.TotalAmount; + } + #endregion + + //netPayable.ProjectedAmount = GrossTax.TotalAmount - InvestItem.TotalAmount; if (netPayable.ProjectedAmount < _taxParameter.MinTaxAmount) netPayable.ProjectedAmount = _taxParameter.MinTaxAmount; diff --git a/Payroll.UI/Payroll.UI/Properties/AssemblyInfo.cs b/Payroll.UI/Payroll.UI/Properties/AssemblyInfo.cs index 9e7a75c..2feef9f 100644 --- a/Payroll.UI/Payroll.UI/Properties/AssemblyInfo.cs +++ b/Payroll.UI/Payroll.UI/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("9.20.23.0")] -[assembly: AssemblyFileVersion("9.20.23.0")] +[assembly: AssemblyVersion("21.6.26.0")] +[assembly: AssemblyFileVersion("21.6.26.0")] -- 2.40.0.windows.1