using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ease.Core; using Ease.Core.Model; namespace HRM.BO { #region JVSetup public class JVSetup : BasicBaseObject { public delegate void ItemChanged(); #region Constructor public JVSetup() { Description = string.Empty; GLCode = string.Empty; IsConfirmed = false; IsEmployeeDetail = false; JVTypeID = 0; MonthDate = DateTime.MinValue; SequenceNo = 0; ShowCC = false; BookToCC = false; BookToPC = false; Side = (int)EnumSide.Add; SideCode = string.Empty; JVSetupDetails = null; EMPLOYEETYPE = EnumJVEmpType.RegardLess; } #endregion #region Properties public string Description { get; set; } public string GLCode { get; set; } public string GroupCode { get; set; } public bool IsConfirmed { get; set; } public bool IsEmployeeDetail { get; set; } public int JVTypeID { get; set; } public JVType JVType { get; set; } //#region jvType : JVType //private JVType _jvType; //public JVType JVType //{ // get // { // if (JVTypeID > 0) // { // _jvType = new JVType(); // _jvType = JVTypeDA.Get(JVTypeID); // } // return _jvType; // } // set // { // _jvType = value; // } //} //#endregion public DateTime MonthDate { get; set; } public int SequenceNo { get; set; } public bool ShowCC { get; set; } public bool BookToCC { get; set; } public bool BookToPC { get; set; } public int Side { get; set; } public string SideCode { get; set; } public int PayrollTypeID { get; set; } public EnumJVEmpType EMPLOYEETYPE { get; set; } public List JVSetupDetails { get; set; } //#region Property JVSetupDetails : List //private List _jvSetupDetails; //public List JVSetupDetails //{ // get // { // if (_jvSetupDetails == null && !this.ID.IsUnassigned && this.ID.Integer > 0) // { // _jvSetupDetails = JVSetupDetail.GetByJVSetup(this.ID); // } // if (_jvSetupDetails == null) // { // _jvSetupDetails = new List(); // } // return _jvSetupDetails; // } // set // { // _jvSetupDetails = value; // } //} //#endregion Property JVSetupDetails : List public List JVSetupCC { get; set; } public List JVSetupGrades { get; set; } //#region JVSetupCC : List //private List _jvSetupCCs; //public List JVSetupCC //{ // get // { // if (_jvSetupCCs == null && !this.ID.IsUnassigned && this.ID.Integer > 0) // { // _jvSetupCCs = Payroll.BO.JVSetupCC.GetByJVSetup(this.ID); // } // //if (_jvSetupDetails == null) // //{ // // _jvSetupCCs = new List(); // //} // return _jvSetupCCs; // } // set // { // _jvSetupCCs = value; // } //} //#endregion #endregion //#region Functions //public double GetAmount(SalaryMonthly salary, List jvsetupdetails) //{ // double nAmount = 0; // foreach (JVSetupDetail oItem in jvsetupdetails) // { // switch (oItem.JVItemType) // { // case enumPayrollComponentType.Ordinary_Hour: // nAmount = nAmount + salary.GetGrossAmount(EnumSalaryItemCode.Basic_Salary, (int)EnumSalaryItemCode.Basic_Salary); // break; // case enumPayrollComponentType.Allowance: // nAmount = nAmount + salary.GetGrossAmount(EnumSalaryItemCode.Allowance, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Deduction: // nAmount = nAmount + salary.GetDeductAmount(EnumSalaryItemCode.Deduction, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Over_Time: // nAmount = nAmount + salary.GetGrossAmount(EnumSalaryItemCode.Over_Time_Amount, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Bonus: // nAmount = nAmount + salary.GetGrossAmount(EnumSalaryItemCode.Bonus, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Loan: // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.Deductions, EnumSalaryItemCode.Loan_Monthly_Installment, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.LoanInterest: // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.Deductions, EnumSalaryItemCode.Loan_Monthly_Interest, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.PF: // nAmount = nAmount + salary.GetDeductAmount(EnumSalaryItemCode.PF_Contribution, (int)EnumSalaryItemCode.PF_Contribution); // break; // case enumPayrollComponentType.CPF: // nAmount = nAmount + salary.GetDeductAmount(EnumSalaryItemCode.PF_Contribution, (int)EnumSalaryItemCode.PF_Contribution) * 2; // break; // case enumPayrollComponentType.Gratuity: // //nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.Deductions, EnumSalaryItemCode.OPI, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.IncomeTax: // bool isOtherItem = ConfigurationManager.GetBoolValue("incometax", "taxissalaryotheritem", EnumConfigurationType.Logic); // if (isOtherItem == false) // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.Deductions, EnumSalaryItemCode.Inc_Tax_Deduction, (int)EnumSalaryItemCode.Inc_Tax_Deduction); // else // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.OtherItem, EnumSalaryItemCode.Inc_Tax_Deduction, (int)EnumSalaryItemCode.Inc_Tax_Deduction); // break; // case enumPayrollComponentType.Net_pay: // if (salary.BranchID != null && oItem.ItemID == salary.BranchID) // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.OtherItem, EnumSalaryItemCode.Net_Payable, (int)EnumSalaryItemCode.Net_Payable); // break; // //case enumPayrollComponentType.OPI: // // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.OtherItem, EnumSalaryItemCode.OPI, oItem.ItemID.Integer); // // break; // case enumPayrollComponentType.Final_settlement: // break; // default: // break; // } // } // return nAmount; //} //public double GetAmount(FSTran ofsTran, List jvsetupdetails) //{ // double nAmount = 0; // foreach (JVSetupDetail oItem in jvsetupdetails) // { // switch (oItem.JVItemType) // { // case enumPayrollComponentType.Ordinary_Hour: // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.FractionateSalary, (int)EnumSalaryItemCode.Basic_Salary); // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.Gross, (int)EnumSalaryItemCode.Basic_Salary); // break; // case enumPayrollComponentType.Allowance: // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.FractionateSalary, oItem.ItemID.Integer); // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.Gross, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Deduction: // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.FractionateSalary, oItem.ItemID.Integer); // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.Gross, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Over_Time: // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.OT, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Bonus: // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.Bonus, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Loan: // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.Loan, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.PF: // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.PF, (int)EnumFSItemCode.PF); // break; // case enumPayrollComponentType.CPF: // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.CPF, (int)EnumFSItemCode.CPF); // break; // case enumPayrollComponentType.Gratuity: // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.Gratuity, (int)EnumFSItemCode.Gratuity); // break; // case enumPayrollComponentType.IncomeTax: // nAmount = nAmount + ofsTran.TaxAmount; // break; // //case enumPayrollComponentType.Net_pay: // // if (salary.BranchID != null && oItem.ItemID == salary.BranchID) // // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.OtherItem, EnumSalaryItemCode.Net_Payable, (int)EnumSalaryItemCode.Net_Payable); // // break; // case enumPayrollComponentType.Final_settlement: // case enumPayrollComponentType.OPI: // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.Other, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Earn_Leave: // nAmount = nAmount + ofsTran.GetAmount(EnumFSItemCode.Leave, (int)EnumFSItemCode.Leave); // break; // //case enumPayrollComponentType.Final_settlement: // // break; // default: // break; // } // } // return nAmount; //} //public double GetAmount(SalaryMonthly salary) //{ // double nAmount = 0; // foreach (JVSetupDetail oItem in this.JVSetupDetails) // { // switch (oItem.JVItemType) // { // case enumPayrollComponentType.Ordinary_Hour: // nAmount = nAmount + salary.GetGrossAmount(EnumSalaryItemCode.Basic_Salary, (int)EnumSalaryItemCode.Basic_Salary); // break; // case enumPayrollComponentType.Allowance: // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Allowance, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Deduction: // nAmount = nAmount + salary.GetDeductAmount(EnumSalaryItemCode.Deduction, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Over_Time: // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.Gross, EnumSalaryItemCode.Over_Time_Amount, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Bonus: // nAmount = nAmount + salary.GetGrossAmount(EnumSalaryItemCode.Bonus, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Loan: // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.Deductions, EnumSalaryItemCode.Loan_Monthly_Installment, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.LoanInterest: // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.Deductions, EnumSalaryItemCode.Loan_Monthly_Interest, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.PF: // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.Deductions, EnumSalaryItemCode.PF_Contribution, (int)EnumSalaryItemCode.PF_Contribution); // break; // case enumPayrollComponentType.Gratuity: // //nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.Deductions, EnumSalaryItemCode., oItem.ItemID.Integer); // break; // case enumPayrollComponentType.IncomeTax: // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.Deductions, EnumSalaryItemCode.Inc_Tax_Deduction, (int)EnumSalaryItemCode.Inc_Tax_Deduction); // break; // case enumPayrollComponentType.Net_pay: // if (salary.BranchID != null && oItem.ItemID == salary.BranchID) // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.OtherItem, EnumSalaryItemCode.Net_Payable, (int)EnumSalaryItemCode.Net_Payable); // break; // case enumPayrollComponentType.OPI: // nAmount = nAmount + salary.GetAmount(EnumSalaryGroup.OtherItem, EnumSalaryItemCode.OPI, oItem.ItemID.Integer); // break; // case enumPayrollComponentType.Final_settlement: // break; // default: // break; // } // } // return nAmount; //} //public JVSetup Get(ID nJVSetupID) //{ // JVSetup oJVSetup = null; // #region Cache Header // oJVSetup = (JVSetup)_cache["Get", nJVSetupID]; // if (oJVSetup != null) // return oJVSetup; // #endregion // oJVSetup = JVSetup.Service.Get(nJVSetupID); // #region Cache Footer // _cache.Add(oJVSetup, "Get", nJVSetupID); // #endregion // return oJVSetup; //} //public static List Get() //{ // #region Cache Header // List jvsetups = _cache["Get"] as List; // if (jvsetups != null) // return jvsetups; // #endregion // try // { // jvsetups = Service.Get(); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // #region Cache Footer // _cache.Add(jvsetups, "Get"); // #endregion // return jvsetups; //} //public static List GetByJVType(ID jvSetupID) //{ // #region Cache Header // List jvsetups = _cache["GetByJVType", jvSetupID] as List; // if (jvsetups != null) // return jvsetups; // #endregion // try // { // jvsetups = Service.GetByJVType(jvSetupID); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // #region Cache Footer // _cache.Add(jvsetups, "GetByJVType", jvSetupID); // #endregion // return jvsetups; //} //public static List GetByJVTypeAndEffectDate(ID jvSetupID, DateTime dEffectDate) //{ // #region Cache Header // List jvsetups = _cache["GetByJVTypeAndEffectDate", jvSetupID, dEffectDate] as List; // if (jvsetups != null) // return jvsetups; // #endregion // try // { // jvsetups = Service.GetByJVTypeAndEffectDate(jvSetupID, dEffectDate); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // #region Cache Footer // _cache.Add(jvsetups, "GetByJVTypeAndEffectDate", jvSetupID, dEffectDate); // #endregion // return jvsetups; //} //public static List GetByMonthDate(DateTime dtMonthDate) //{ // #region Cache Header // List jvsetups = _cache["GetByMonthDate", dtMonthDate] as List; // if (jvsetups != null) // return jvsetups; // #endregion // try // { // jvsetups = Service.GetByMonthDate(dtMonthDate); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // #region Cache Footer // _cache.Add(jvsetups, "GetByMonthDate", dtMonthDate); // #endregion // return jvsetups; //} //public static List GetChildByParentID(ID JVSetupID) //{ // #region Cache Header // List jvsetupdetails = _cache["GetChildByParentID", JVSetupID] as List; // if (jvsetupdetails != null) // return jvsetupdetails; // #endregion // try // { // jvsetupdetails = Service.GetChildByParentID(JVSetupID); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // #region Cache Footer // _cache.Add(jvsetupdetails, "GetChildByParentID", JVSetupID); // #endregion // return jvsetupdetails; //} //public static List GetByJVTypeAndMonth(ID jvTypeID, DateTime dDate) //{ // #region Cache Header // List jvsetups = _cache["GetByJVTypeAndMonth", jvTypeID, dDate] as List; // if (jvsetups != null) // return jvsetups; // #endregion // try // { // jvsetups = Service.GetByJVTypeAndMonth(jvTypeID, dDate); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // #region Cache Footer // _cache.Add(jvsetups, "GetByJVTypeAndMonth", jvTypeID, dDate); // #endregion // return jvsetups; //} //public int GetSequenceNo() //{ // int nSeq = 0; // nSeq = JVSetup.Service.GetSequenceNo(); // return nSeq; //} //public DateTime GetMaxDate(DateTime dGivenDate) //{ // DateTime dMaxDate = DateTime.Now; // dMaxDate = JVSetup.Service.GetMaxDate(dGivenDate); // return dMaxDate; //} //public ID Save() //{ // this.SetAuditTrailProperties(); // return JVSetup.Service.Save(this); //} //public void UpdateSequence(List jvSetups) //{ // JVSetup.Service.UpdateSequence(jvSetups); //} //public void Delete() //{ // JVSetup.Service.Delete(this.ID); //} //#endregion //#region Service Factory //internal static IJVSetupService Service //{ // get // { // return Services.Factory.CreateService(typeof(IJVSetupService)); // } //} //#endregion } #endregion #region IJVSetup Service public interface IJVSetupService { JVSetup Get(int id); List Get(); List GetByJVType(int jvSetupID); List GetByJVTypeAndEffectDate(int jvSetupID, DateTime dEffectDate); int GetSequenceNo(); DateTime GetMaxDate(DateTime dGivenDate); List GetByMonthDate(DateTime dtMonthDate); List GetChildByParentID(int JVSetupID); List GetByJVTypeAndMonth(int jvTypeID, DateTime lastDate); int Save(JVSetup oJVSetup); void UpdateSequence(List oJVSetups); void Delete(int id); List GetLatestSetupByJVType(int payrolltypeid, int jvtypeid); } #endregion }