using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using HRM.BO; namespace HRM.DA { public class payrollPaymentComponentService : IPayrollPaymentComponent { public payrollPaymentComponentService() { } public List get(int payrolltypeid) { List allItems = new List(); PayrollPaymentComponent obasic = new PayrollPaymentComponent(); obasic.type = enumPayrollComponentType.Basic_salary; obasic.name = "Basic Salary"; obasic.itemID = (int)enumPayrollComponentType.Basic_salary; allItems.Add(obasic); List allowances = new AllowanceDeductionService().Get(EnumStatus.Active, EnumAllowOrDeduct.Allowance, payrolltypeid); foreach (AllowanceDeduction item in allowances) { PayrollPaymentComponent oallance = new PayrollPaymentComponent(); oallance.type = enumPayrollComponentType.Allowance; oallance.name = item.Name; oallance.itemID = item.ID; allItems.Add(oallance); } List deductions = new AllowanceDeductionService().Get(EnumStatus.Active, EnumAllowOrDeduct.Deduction, payrolltypeid); foreach (AllowanceDeduction item in deductions) { PayrollPaymentComponent odeduction = new PayrollPaymentComponent(); odeduction.type = enumPayrollComponentType.Deduction; odeduction.name = item.Name; odeduction.itemID = item.ID; allItems.Add(odeduction); } List terms = new TermService().Get(EnumStatus.Active, payrolltypeid); foreach (Term item in terms) { PayrollPaymentComponent oterm = new PayrollPaymentComponent(); oterm.type = enumPayrollComponentType.Over_Time; oterm.name = item.Name; oterm.itemID = item.ID; allItems.Add(oterm); } List bonuss = new BonusService().Get(EnumStatus.Active, payrolltypeid); foreach (Bonus item in bonuss) { PayrollPaymentComponent obonus = new PayrollPaymentComponent(); obonus.type = enumPayrollComponentType.Bonus; obonus.name = item.Name; obonus.itemID = item.ID; allItems.Add(obonus); } List loans = new LoanService().Get(EnumStatus.Active); foreach (Loan item in loans) { PayrollPaymentComponent oloan = new PayrollPaymentComponent(); oloan.type = enumPayrollComponentType.Loan; oloan.name = item.Name; oloan.itemID = item.ID; allItems.Add(oloan); PayrollPaymentComponent oloanInterest = new PayrollPaymentComponent(); oloanInterest.type = enumPayrollComponentType.LoanInterest; oloanInterest.name = item.Name + "-Interest"; oloanInterest.itemID = item.ID; allItems.Add(oloanInterest); } PayrollPaymentComponent opf = new PayrollPaymentComponent(); opf.type = enumPayrollComponentType.PF; opf.name = "PF"; opf.itemID = (int)enumPayrollComponentType.PF; allItems.Add(opf); PayrollPaymentComponent ocpf = new PayrollPaymentComponent(); ocpf.type = enumPayrollComponentType.CPF; ocpf.name = "CPF"; ocpf.itemID = (int)enumPayrollComponentType.CPF; allItems.Add(ocpf); PayrollPaymentComponent ogratuity = new PayrollPaymentComponent(); ogratuity.type = enumPayrollComponentType.Gratuity; ogratuity.name = "Gratuity"; ogratuity.itemID = (int)enumPayrollComponentType.Gratuity; allItems.Add(ogratuity); PayrollPaymentComponent oincometax = new PayrollPaymentComponent(); oincometax.type = enumPayrollComponentType.IncomeTax; oincometax.name = "Income Tax"; oincometax.itemID = (int)enumPayrollComponentType.IncomeTax; allItems.Add(oincometax); List netpays = new BranchService().Get(EnumStatus.Active, payrolltypeid); List oBanks =new BankService().Get(EnumStatus.Active,payrolltypeid); Bank oBank = null; foreach (Branch item in netpays) { PayrollPaymentComponent onetpay = new PayrollPaymentComponent(); onetpay.type = enumPayrollComponentType.Net_pay; oBank = oBanks.FirstOrDefault(o => o.ID == item.BankID); if (oBank != null) { onetpay.name = item.Name + " [" + oBank.Name + "]"; } else { onetpay.name = item.Name; } onetpay.itemID = item.ID; allItems.Add(onetpay); } //List fSHeads = new FSHeadService().Get(EnumStatus.Active); //foreach (FSHead item in fSHeads) //{ // PayrollPaymentComponent fSHead = new PayrollPaymentComponent(); // fSHead.type = enumPayrollComponentType.Final_settlement; // fSHead.name = item.Name; // fSHead.itemID = item.ID; // allItems.Add(fSHead); //} bool hasOPI =new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic,"jv", "hasopi"); if (hasOPI) { List opiItems = new OpiItemService().Get(EnumStatus.Active); foreach (OpiItem item in opiItems) { PayrollPaymentComponent opiItem = new PayrollPaymentComponent(); opiItem.type = enumPayrollComponentType.OPI; opiItem.name = item.Name; opiItem.itemID = item.ID; allItems.Add(opiItem); } } int newid = 0; allItems.ForEach(x => { newid = newid + 1; x.id = newid; }); return allItems; } } }