using Ease.Core.Model; using System; using System.Collections.Generic; using System.Data; namespace HRM.BO { public class BonusCalculation { public BonusCalculation() { } public void BCalculate(List oEmployees,int BonusID,DateTime payDate) { } public double ConvertToDailyRate(double nBasic, DateTime dMonthDate) { double amount = 0; amount = nBasic / Convert.ToDouble(DateTime.DaysInMonth(dMonthDate.Year, dMonthDate.Month)); return amount; } public double GeneralAmount(Employee oEmp,BonusParameter oBParameter,DateTime SalaryMonthDate) { double nTotalBonus = 0.0; nTotalBonus = oBParameter.FlatAmount +(oEmp.GrossSalary*oBParameter.NoOfGross) + (oEmp.BasicSalary * oBParameter.NoOfBasic) + (oEmp.GrossSalary * oBParameter.PercentOfGross / 100) + (oEmp.BasicSalary * oBParameter.NoOfEarnedBasic); nTotalBonus = nTotalBonus + ConvertToDailyRate(oEmp.BasicSalary, SalaryMonthDate) * oBParameter.NoOfDays + ConvertToDailyRate(oEmp.GrossSalary, SalaryMonthDate) * oBParameter.GrossOfDays; return nTotalBonus; } //public double CaculatedSalaryComponentAmount( BonusParameter.BonusParamSalaryItem oBonusPSalaryItem,Employee oEmp,DateTime dSalaryMonth) //{ // List _SalaryComponents = SalaryComponent.Benefits(); // double BonusSalaryComponentAmount = 0.0; // foreach(SalaryComponent oSComponent in _SalaryComponents) // { // if (oBonusPSalaryItem.AllowDeductID == oSComponent.ObjectID.Integer) // { // BonusSalaryComponentAmount = ((oEmp.BasicSalary * oBonusPSalaryItem.NoOfSalary) * oBonusPSalaryItem.Percent) / 100; // break; // } // } // return BonusSalaryComponentAmount; //} public double CaculatedServiceLengthAmount(BonusParameter oBonusParameter,Employee oEmp,double TotalBonusAmount,DateTime dCuttOffDate) { DateTime toDate = DateTime.Now; DateTime joiningDate = oEmp.JoiningDate; double BonusSLengthAmount = 0.0; int ServiceLength = 0; int Counter = 0; //while (joiningDate.ToString("MMMM yyyy") != toDate.ToString("MMMM yyyy")) //{ // Counter++; // joiningDate = joiningDate.AddMonths(1); //} //while (joiningDate.ToString("dd") != toDate.ToString("dd")) //{ // Counter++; // joiningDate = joiningDate.AddDays(1); //} Counter = (dCuttOffDate - joiningDate).Days + 1; //countDays = DateTime.Compare(DateTime.Now, joiningDate); if (oBonusParameter.BonusServiceLengths != null) { for (int i = oBonusParameter.BonusServiceLengths.Count; i >=1 ; i--) { ServiceLength = oBonusParameter.BonusServiceLengths[i-1].LengthOfService; if (oBonusParameter.BonusServiceLengths[i-1].LengthOfService < Counter) { ServiceLength = oBonusParameter.BonusServiceLengths[i-1].EntitlePercent; break; } } BonusSLengthAmount = (TotalBonusAmount * ServiceLength)/100; } return BonusSLengthAmount; } //public double CalculationBDearnessAmount(BonusParameter oBonusParameter, Employee oEmp) //{ // double BonusDearnessAmount=0.0; // if (oBonusParameter.BonusSlabs != null) // { // for (int i = oBonusParameter.BonusSlabs.Count; i >= 1; i--) // { // if (oBonusParameter.BonusSlabs[i - 1].SlabAmount < oEmp.BasicSalary) // { // if(oBonusParameter.BonusSlabs[i - 1].AmountType==EnumSlabAmountType.ActualBasic) // { // BonusDearnessAmount = oEmp.BasicSalary;//oBonusParameter.BonusSlabs[i - 1].Amount; // break; // } // else if (oBonusParameter.BonusSlabs[i - 1].AmountType == EnumSlabAmountType.FlatAmount) // { // BonusDearnessAmount = oBonusParameter.BonusSlabs[i - 1].Amount; // break; // } // } // } // } // return BonusDearnessAmount; //} //public double CaculatedBonusAdjustAmount(BonusParameter.BonusParamAdjustItem oBonusPAdjustAmount) //{ // double BonusAdjustAmount = 0.0; // if (oBonusParameter.BonusParamAdjustItems != null) // { // foreach (BonusParameter.BonusParamAdjustItem oBAdjustAmount in oBonusParameter.BonusParamAdjustItems) // { // BonusAdjustAmount += oBAdjustAmount.Amount; // } // } // return BonusAdjustAmount; //} } }