using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ease.CoreV35; using Ease.CoreV35.Model; using Ease.CoreV35.Caching; using System.Data.Linq.Mapping; using Ease.CoreV35.Utility; using System.Data; namespace Payroll.BO { public interface IworkflowInterface { string ObjectDescription { get; } ID SetupID { get; } ID ObjectID { get; } } #region SystemInformation [Serializable] public class SystemInformation : AuditTrailBase { #region Cache Store private static Cache _cache = new Cache(typeof(SystemInformation)); #endregion #region Constructor public SystemInformation() { _code = string.Empty; _name = string.Empty; _corporateAddress = string.Empty; _factoryAddress = string.Empty; _telephoneNo = string.Empty; _email = string.Empty; _webAddress = string.Empty; _systemStartDate = DateTime.MinValue; _taxYearEndDate = DateTime.MinValue; _nextPayProcessDate = DateTime.MinValue; _maxYearOfService = 0; _pFContriStaff = 0; _pFContriCompany = 0; _pFInterest = 0; _taxParamID = null; _oTFilePath = string.Empty; _pFYearEndDate = DateTime.MinValue; } #endregion #region Properties private static SystemInformation _currentSysInfo; #region Code : string private string _code; public string Code { get { return _code; } set { base.OnPropertyChange("Code", _code, value); _code = value; } } #endregion #region name : string private string _name; public string name { get { return _name; } set { base.OnPropertyChange("name", _name, value); _name = value; } } #endregion #region corporateAddress : string private string _corporateAddress; public string corporateAddress { get { return _corporateAddress; } set { base.OnPropertyChange("corporateAddress", _corporateAddress, value); _corporateAddress = value; } } #endregion #region factoryAddress : string private string _factoryAddress; public string factoryAddress { get { return _factoryAddress; } set { base.OnPropertyChange("factoryAddress", _factoryAddress, value); _factoryAddress = value; } } #endregion #region TelephoneNo : string private string _telephoneNo; public string TelephoneNo { get { return _telephoneNo; } set { base.OnPropertyChange("telephoneNo", _telephoneNo, value); _telephoneNo = value; } } #endregion #region email : string private string _email; public string email { get { return _email; } set { base.OnPropertyChange("email", _email, value); _email = value; } } #endregion #region webAddress : string private string _webAddress; public string webAddress { get { return _webAddress; } set { base.OnPropertyChange("webAddress", _webAddress, value); _webAddress = value; } } #endregion #region systemStartDate : DateTime private DateTime _systemStartDate; public DateTime systemStartDate { get { return _systemStartDate; } set { base.OnPropertyChange("systemStartDate", _systemStartDate, value); _systemStartDate = value; } } #endregion #region taxYearEndDate : DateTime private DateTime _taxYearEndDate; public DateTime TaxYearEndDate { get { return _taxYearEndDate; } set { base.OnPropertyChange("taxYearEndDate", _taxYearEndDate, value); _taxYearEndDate = value; } } #endregion #region nextPayProcessDate : DateTime private DateTime _nextPayProcessDate; public DateTime NextPayProcessDate { get { return _nextPayProcessDate; } set { base.OnPropertyChange("nextPayProcessDate", _nextPayProcessDate, value); _nextPayProcessDate = value; } } public DateTime LastPayProcessDate { get { return Global.DateFunctions.LastDateOfMonth(_nextPayProcessDate.AddMonths(-1)); } } #endregion #region maxYearOfService : int private int _maxYearOfService; public int maxYearOfService { get { return _maxYearOfService; } set { base.OnPropertyChange("maxYearOfService", _maxYearOfService, value); _maxYearOfService = value; } } #endregion #region pFContriStaff : double private double _pFContriStaff; public double pFContriStaff { get { return _pFContriStaff; } set { base.OnPropertyChange("pFContriStaff", _pFContriStaff, value); _pFContriStaff = value; } } #endregion #region pFContriCompany : double private double _pFContriCompany; public double pFContriCompany { get { return _pFContriCompany; } set { base.OnPropertyChange("pFContriCompany", _pFContriCompany, value); _pFContriCompany = value; } } #endregion #region pFInterest : double private double _pFInterest; public double pFInterest { get { return _pFInterest; } set { base.OnPropertyChange("pFInterest", _pFInterest, value); _pFInterest = value; } } #endregion #region taxParamID : int private ID _taxParamID; public ID TaxParamID { get { return _taxParamID; } set { base.OnPropertyChange("taxParamID", _taxParamID, value); _taxParamID = value; } } #endregion #region oTFilePath : string private string _oTFilePath; public string oTFilePath { get { return _oTFilePath; } set { base.OnPropertyChange("oTFilePath", _oTFilePath, value); _oTFilePath = value; } } #endregion #region pFYearEndDate : DateTime private DateTime _pFYearEndDate; public DateTime PFYearEndDate { get { return _pFYearEndDate; } set { base.OnPropertyChange("pFYearEndDate", _pFYearEndDate, value); _pFYearEndDate = value; } } #endregion #region PayrollTypeID : Int private ID _logInPayrollTypeID; public ID PayrollTypeID { get { return _logInPayrollTypeID; } set { _logInPayrollTypeID = value; } } #endregion #region PayrollTypeID : Int public static SystemInformation CurrentSysInfo { get { if (_currentSysInfo == null) { _currentSysInfo = SystemInformation.Get(); } return _currentSysInfo; } set { _currentSysInfo = null; } } #endregion #region Service Factory ISystemInformationService : ISystemInformationService internal static ISystemInformationService Service { get { return Services.Factory.CreateService(typeof(ISystemInformationService)); } } #endregion #endregion #region Functions public static SystemInformation Get() { SystemInformation oSystemInformation = null; #region Cache Header oSystemInformation = (SystemInformation)_cache["Get"]; if (oSystemInformation != null) return oSystemInformation; #endregion oSystemInformation = SystemInformation.Service.Get(); MergeWithLogInPayrollType(oSystemInformation); _currentSysInfo = oSystemInformation; #region Cache Footer _cache.Add(oSystemInformation, "Get"); #endregion return oSystemInformation; } public static DateTime GetServerDate() { return Service.GetServerDate(); } private static void MergeWithLogInPayrollType(SystemInformation systemInfo) { if (User.CurrentUser == null) return; if (User.CurrentUser.UserType != EnumSystemType.Web) if (User.CurrentUser.LogInMode != EnumUserLogInMode.Normal) return; PayrollType pType = PayrollType.Get(User.CurrentUser.LogInPayrollTypeID); systemInfo.NextPayProcessDate = pType.NextPayProcessDate; systemInfo.TaxParamID = pType.TaxParamID; systemInfo.PFYearEndDate = pType.PFYearEndDate; systemInfo.TaxYearEndDate = pType.TaxYearEndDate; systemInfo.PayrollTypeID = User.CurrentUser.LogInPayrollTypeID; //_currentSysInfo.NextPayProcessDate = pType.NextPayProcessDate; //_currentSysInfo.TaxParamID = pType.TaxParamID; //_currentSysInfo.PFYearEndDate = pType.PFYearEndDate; //_currentSysInfo.TaxYearEndDate = pType.TaxYearEndDate; //_currentSysInfo.LogInPayrollTypeID = User.CurrentUser.LogInPayrollTypeID; } public void Update() { SystemInformation.Service.Update(this); } public void Save(HardPasswordSetup oItem) { SystemInformation.Service.Save(oItem); } public void UpdCurrYerTaxParamter(ID nTaxYearId) { SystemInformation.Service.UpdCurrYerTaxParamter(nTaxYearId, SystemInformation.CurrentSysInfo.PayrollTypeID); } public string GetConnectionString() { return SystemInformation.Service.GetConnectionString(); } public HardPasswordSetup GetPasswordSetup() { DataTable ds = null; HardPasswordSetup oItem = new HardPasswordSetup(); try { ds = Service.GetPasswordSetup(); if (ds != null && ds.Rows.Count > 0) { foreach (DataRow dr in ds.Rows) { oItem.MaxLength = Convert.ToInt16(dr["MaxLength"]); oItem.MinLength = Convert.ToInt16(dr["MinLength"]); oItem.PasswordExpireNotificationDays = Convert.ToInt16(dr["PasswordExpireNotificationDays"]); oItem.PasswordExpireDays = Convert.ToInt16(dr["PasswordExpireDays"]); oItem.ContainLowercase = Convert.ToBoolean(dr["ContainLowercase"]); oItem.ContainNumber = Convert.ToBoolean(dr["ContainNumber"]); oItem.ContainSpecialCharacter = Convert.ToBoolean(dr["ContainSpecialCharacter"]); oItem.ContainUppercase = Convert.ToBoolean(dr["ContainUppercase"]); oItem.ContainLetter = Convert.ToBoolean(dr["ContainLetter"]); oItem.UserPasswordSame = Convert.ToBoolean(dr["UserPasswordSame"]); } } } catch (Exception e) { throw new Exception(e.Message, e); } return oItem; } public static string GetDatabaseName() { return SystemInformation.Service.GetDatabaseName(); } #endregion } #endregion public class HardPasswordSetup { public int MaxLength { get; set; } public int MinLength { get; set; } public bool ContainUppercase { get; set; } public bool ContainLowercase { get; set; } public bool ContainSpecialCharacter { get; set; } public bool ContainNumber { get; set; } public bool ContainLetter { get; set; } public bool UserPasswordSame { get; set; } public int PasswordExpireNotificationDays { get; set; } public int PasswordExpireDays { get; set; } } #region ISystemInformation Service public interface ISystemInformationService { SystemInformation Get(); ID Update(SystemInformation item); DateTime GetServerDate(); string GetConnectionString(); void UpdCurrYerTaxParamter(ID taxParameterID, ID PayrollTypeID); string GetDatabaseName(); DataTable GetPasswordSetup(); void Save(HardPasswordSetup oItem); } #endregion }