using System; using System.Linq; using System.Data; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Ease.Core.Model; using Ease.Core.DataAccess; using Ease.Core; namespace HRM.BO { #region Employee // do not change following class (Employee) without discuss Shamim public class Employee : AuditTrailBase { #region Constructor public Employee() { GlobalID = string.Empty; EmployeeNo = string.Empty; Name = string.Empty; Gender = EnumGender.Male; BirthDate = DateTime.MinValue; JoiningDate = DateTime.MinValue; EndOfContractDate = null; EmailAddress = string.Empty; MobileNo = string.Empty; TinNo = string.Empty; ForeignExPat = false; ContinueGratuity = 0; TaxCircle = EnumTaxCircle.CityCorporation; IsConfirmed = false; Status = EnumEmployeeStatus.Live; IsShownInTaxSheet = false; PFMemberType = EnumPFMembershipType.NotYetLive; PFMemberShiptDate = DateTime.MinValue; BranchID = null; AccountNo = string.Empty; OutPayBranchID = null; OutPayAccountNo = string.Empty; DepartmentID = null; LocationID = null; MaritalStatus = EnumMaritalStatus.UnMarried; DesignationID = null; GradeID = null; BasicSalary = 0; PrevBasic = 0; PaymentMode = EnumPaymentMode.CashPayment; OutPayPaymentMode = EnumPaymentMode.CashPayment; FatherName = string.Empty; IsEligibleOT = false; DescriptionText = string.Empty; DesktopUserPass = string.Empty; IsAutoProcess = false; CardID = null; GrossSalary = 0; PhotoPath = string.Empty; PayScaleId = null; TaxAmount = 0; ConfirDate = null; DiscontinueDate = null; CurrentHistoryID = null; //Branch = null; //Category = null; ////_costCenter = null; //Department = null; Designation = null; //Grade = null; //Location = null; ////_outPayBranch = null; //Religion = null; PFMemberShiptDate = null; EndOfContractDate = null; InclusionDate = null; MonthStatusUpdate = EnumEmployeeStatus.Live; VendorCode = string.Empty; Role = EnumRoleType.Admin; PersonType = EnumPersonType.None; LineManagerID = null; SecondLineManagerID = null; this.IsSalaryWithHeld = false; } #endregion #region Properties // do not change following class (Employee) without discuss Shamim public string FirstName { get; set; } public string LastName { get; set; } public string GlobalID { get; set; } public string EmployeeNo { get; set; } public string Name { get; set; } public EnumGender Gender { get; set; } public DateTime BirthDate { get; set; } public DateTime JoiningDate { get; set; } //public DateTime? RetirementDate { get; set; } public DateTime? EndOfContractDate { get; set; } public DateTime? CardDate { get; set; } public string EmailAddress { get; set; } public string MobileNo { get; set; } public string TinNo { get; set; } public int CategoryID { get; set; } public bool ForeignExPat { get; set; } public EnumPersonType PersonType { get; set; } public EnumProfileStatus ProfileStatus { get; set; } public string DesignationName { get; set; } public string DepartmentName { get; set; } public string GradeName { get; set; } public string LocationName { get; set; } //public string SBU { get; set; } // do not change following class (Employee) without discuss Shamim public double ContinueGratuity { get; set; } // R public EnumTaxCircle TaxCircle { get; set; } public bool IsConfirmed { get; set; } public virtual EnumEmployeeStatus Status { get; set; } public bool IsShownInTaxSheet { get; set; } // R public EnumPFMembershipType PFMemberType { get; set; } public DateTime? PFMemberShiptDate { get; set; } public int? BranchID { get; set; } public string AccountNo { get; set; } public int? OutPayBranchID { get; set; } public string OutPayAccountNo { get; set; } public int? DepartmentID { get; set; } public int? LocationID { get; set; } public int ReligionID { get; set; } public EnumMaritalStatus MaritalStatus { get; set; } public int? DesignationID { get; set; } public int? GradeID { get; set; } public double BasicSalary { get; set; } public int? CurrentHistoryID { get; set; } // do not change following class (Employee) without discuss Shamim public double PrevBasic { get; set; } public EnumPaymentMode PaymentMode { get; set; } public EnumPaymentMode OutPayPaymentMode { get; set; } public string FatherName { get; set; } public int FatherOccupationId { get; set; } public string MotherName { get; set; } public int MotherOccupationId { get; set; } public bool IsEligibleOT { get; set; } public string DescriptionText { get; set; } public string DesktopUserPass { get; set; } //R public int PayrollTypeID { get; set; } public bool IsAutoProcess { get; set; } // R public EnumRoleType Role { get; set; } //R public int? CardID { get; set; } public double GrossSalary { get; set; } public string PhotoPath { get; set; } //R public int? PayScaleId { get; set; } public double TaxAmount { get; set; } public DateTime? ConfirDate { get; set; } public DateTime? DiscontinueDate { get; set; } public string ArrearFrom { get; set; } //R public double SalaryFractionate { get; set; } public EnumEmployeeStatus MonthStatusUpdate { get; set; } public Branch Branch { get; set; } public Category Category { get; set; } public Department Department { get; set; } public Designation Designation { get; set; } public Grade Grade { get; set; } // do not change following class (Employee) without discuss Shamim public int? NationalityID { get; set; } public Nationality Nationality { get; set; } public Location Location { get; set; } public Religion Religion { get; set; } public int? LineManagerID { get; set; } public string LineManager { get; set; } public string LineManagerDeg { get; set; }//// template public string LineManagerDept { get; set; }// template public EnumGender LMGender { get; set; }// template public string LineManagerEmail { get; set; }// template public int? SecondLineManagerID { get; set; } List EmployeeCostCenters { get; set; } public string VendorCode { get; set; } public bool IsFixedLocation { get; set; } public bool IsSalaryWithHeld { get; set; } // do not change employee class without discuss Shamim public DateTime? LastWorkingDate { get; set; }//resignationrequest public DateTime? ResignationDate { get; set; }//resignationrequest private EmployeeGradeSalary _employeeGradeSalary; public EmployeeGradeSalary EmployeeGradeSalary { get { return _employeeGradeSalary; } set { _employeeGradeSalary = value; } } // do not change employee class without discuss Shamim private EmployeePosting _employeePosting; public EmployeePosting EmployeePosting { get { return _employeePosting; } set { _employeePosting = value; } } private EmployeeBankAccount _employeeBankAccount; public EmployeeBankAccount EmployeeBankAccount { get { return _employeeBankAccount; } set { _employeeBankAccount = value; } } private EmployeeBankAccount _employeeOPIBankAccount; public EmployeeBankAccount EmployeeOPIBankAccount { get { return _employeeOPIBankAccount; } set { _employeeOPIBankAccount = value; } } private EmpLifeCycle _EmpLifeCycle; public EmpLifeCycle EmpLifeCycle { get { return _EmpLifeCycle; } set { _EmpLifeCycle = value; } } public string LineManagerNo { get; set; } public string GeId { get; set; } public string ExtraField1 { get; set; } public EnumBaseStation ExtraField2 { get; set; } public string ExtraField3 { get; set; } public string ExtraField4 { get; set; } public string ExtraField5 { get; set; } public int? CrgId { get; set; } public int? ProfileCompletionPercent { get; set; } public string InsuranceId { get; set; } public DateTime? InclusionDate { get; set; } public bool HasDisableChildren { get; set; } public EnumResidence Residence { get; set; } public string HomeDistrict { get; set; } public string SpecialIdentificationMark { get; set; } public string NationalId { get; set; } public string PassportNo { get; set; } public string CategoryName { get; set; } public string Address { get; set; } // do not change employee class without discuss Shamim public static string getEmpID(List emps) { string str = ""; emps.ForEach(x => { if (x != null) str = str + x.ID + ","; }); if (str.Length > 0) str = str.Substring(0, str.Length - 1); return str; } public static List getSearchEmp(List emps) { List items = new List(); emps.ForEach(x => { SearchEmployee item = new SearchEmployee(); item.ID = x.ID; item.EmployeeID = x.ID; item.EmployeeNo = x.EmployeeNo; item.Name = x.Name; item.designationID = x.DepartmentID == null ? 0 : (int)x.DepartmentID; item.LocationID = x.LocationID == null ? 0 : (int)x.DepartmentID; item.GradeID = x.GradeID == null ? 0 : (int)x.DepartmentID; items.Add(item); }); return items; } //#region SearchEmployee : SearchEmployee public SearchEmployee getSearchEmployee() { SearchEmployee semp = new SearchEmployee(); semp.EmployeeID = this.ID; semp.DepartmentID = this.DepartmentID ==null? 0: (int) this.DepartmentID; semp.CategoryID = this.CategoryID; semp.LocationID = this.LocationID == null ? 0 : (int)this.LocationID ; semp.GradeID = this.GradeID == null ? 0 : (int)this.GradeID; semp.EmployeeNo = this.EmployeeNo; semp.Name = this.Name; return semp; } //#endregion //#region branch : Branch //private Branch _branch; //public Branch Branch //{ // get // { // if (_branch == null && _branchID != null && _branchID.IsUnassigned == false && _branchID.Integer > 0) // { // _branch = new Branch(); // _branch = Branch.Get(_branchID); // } // return this._branch; // } // set // { // _branch = value; // } //} //#endregion //#region category : Category //private Category _category; //public Category Category //{ // get // { // if (_categoryID != null && !_categoryID.IsUnassigned) // { // if (_categoryID.Integer > 0 && _category == null) // { // _category = new Category(); // _category = _category.Get(_categoryID); // } // } // return this._category; // } // set // { // _category = value; // } //} //#endregion //#region department : Department //private Department _department; //public Department Department //{ // get // { // if (_departmentID != null && _departmentID.IsUnassigned == false && _departmentID.Integer > 0 && _department == null) // { // _department = new Department(); // _department = Department.Get(_departmentID); // } // return this._department; // } // set // { // _department = value; // } //} //#endregion //#region designation : Designation //private Designation _designation; //public Designation Designation //{ // get // { // if (_designationID != null && _designationID.IsUnassigned == false && _designationID.Integer > 0 && _designation == null) // { // _designation = new Designation(); // _designation = Designation.Get(_designationID); // } // return this._designation; // } // set // { // _designation = value; // } //} //#endregion //#region grade : Grade //private Grade _grade; //public Grade Grade //{ // get // { // if (_gradeID != null && !_gradeID.IsUnassigned) // { // if (_gradeID.Integer > 0 && _grade == null) // { // _grade = new Grade(); // _grade = Grade.Get(_gradeID); // } // } // return this._grade; // } // set // { // _grade = value; // } //} //#endregion //#region location : Location //private Location _location; //public Location Location //{ // get // { // if (_locationID != null && _locationID.IsUnassigned == false && _locationID.Integer > 0 && _location == null) // { // _location = new Location(); // _location = Location.Get(_locationID); // } // return this._location; // } // set // { // _location = value; // } //} //#endregion //#region religion : Religion //private Religion _religion; //public Religion Religion //{ // get // { // if (_religionID.Integer > 0 && _religion == null) // { // _religion = new Religion(); // _religion = Religion.Get(_religionID); // } // return this._religion; // } // set // { // _religion = value; // } //} //#endregion #endregion //private List _employeeCostCenters; //public List EmployeeCostCenters //{ // get // { // if (this.ID != null && !this.ID.IsUnassigned && _employeeCostCenters == null) // { // _employeeCostCenters = EmployeeCostCenter.GetByEmpID(this.ID); // } // return _employeeCostCenters; // } // set // { // _employeeCostCenters = value; // } //} #region Service Factory IEmployeeService : IEmployeeService #endregion } #endregion #region IEmployee Service public interface IEmployeeService { DataTable GetDepartmentName(int empID, bool banglaDescriptionExits); DataSet GetAllEmpBasicInfo(string empIDs); List GetMaternityLeaveEmployee(DateTime formDate, DateTime toDate); DataSet GetEmpBasicInfoForPSlip(string sEmpIDs, DateTime dMonth); DataSet GetEmpDashBoardInfo(int empID); List GetAllSubordinatesNew(int employeeID); Employee Get(int id); List GetForSuperUser(); Employee GetByCardID(int id); Employee Get(string emloyeeNo, int payrollTypeID); Employee GetFromAll(string emloyeeNo, int payrollTypeID); Employee GetwitoutchekPayrolltype(String employeeNo); Employee GetParentEmployee(int employeeID); Employee GetDepartmentHead(EnumOGPositionType type, int departmentID); Employee GetLineManager(int empId); List GetWithPayrollType(int payrollTypeID); List GetAllEmps(); void UpdateLM2(List emps); List GetWithDiscontinue(int payrollTypeID); List GetSubordinates(int employeeID); //List GetAllSubordinates(int nodeID); List GetByDeptShiftGFType(string deptIDs, int shiftID, string GFType, int payrollTypeID); List GetMonthlyAttnEmployee(DateTime fromDate, DateTime toDate, int payrollTypeID); List GetAbsentEmp(DateTime attnDate, EnumWorkPlanGroup wpGroup, int payrollTypeID);//for Attendance Process List GetAttendaceEmp(EnumWorkPlanGroup wpGroup, int payrollTypeID);//for Attendance Process List GetEmpExceptAutoWP(DateTime attnDate, int payrollTypeID);//for Attendance Process List GetDiscontinueEmp(DateTime attnDate, DateTime currentDate, int payrollTypeID);//for Attendance Process List Get(int status, DateTime lastDateOfYear); List Get(EnumEmployeeStatus status, int payrollTypeID); DataTable GetEmpIDsOfManager(int status, DateTime lastDateOfYear); void DoConfirm(int employeeID, DateTime confirmDate, DateTime pfMShipDate, bool IsConfirm, bool IsPFMember); void UndoConfirm(int employeeID, bool IsPFMember); void UpdateStatus(int employeeID, int HistoryID, DateTime effectDate, EnumEmployeeStatus status); void UpdatePFMemship(int empID, EnumPFMembershipType PFType, DateTime dPFEffectDate); void UpdateTaxAmount(int empID, double TaxAmount); void UpdateEmpRole(Employee oEmp); List GetNew(DateTime dt, int payrollTypeID); void UpdatePayrollType(int empID, int payrollTypeID, DateTime dEffectDate); //void SaveIntegration(List oEmps); int Save(Employee item); //void Delete(int id); //void DeleteAll(); //string GenerateLoanNo(Employee oEmp, string sLoanName); void UpdateCardInformation(int employeeID, int CardID, bool IsAutoProcess); void UpdateEmpCardHistory(int employeeID, int CardID, DateTime cardDate, string cardNumber); //List Get(List searchEmployees, int payrollTypeID); DataSet GetEmpBasicInfo(string sEmpID); DataSet GetEmpBasicInfoForReport(string sEmpID); DataSet GetEmpDetails(string sEmpID); //DataSet GetEmployeeCV(string sEmpID); /*DataSet GetLineManager(int sEmpID);*/ DataSet GetEmpForLetterOfIntroDuction(string sEmpID, DateTime month); DataSet GetEmpPosting(string sEmpID); DataSet GetEmpJoining(DateTime dEffectDate, DateTime dEffectDate2); DataSet GetEmpConfirmHis(DateTime dEffectDate, DateTime dEffectDate2, int payrollTypeID); DataSet GetEmpPFHis(DateTime dEffectDate); int GetDays(int nPayrollTypeID); //void SaveBasicInfo(Employee item); List GetByEmpIDs(string empIDs, int payrollTypeID); List GetByEmpIDs(string empIDs); List GetFssEmp(string empIDs, int payrollTypeID); List GetEmpsWithDiscontinue(string empIDs, int payrollTypeID); DataSet GetEmpJoining4Novartis(DateTime dEffectDate, int payrollTypeID); List GetEmployeesYetNotAssigned(); List GetEmployeesByJoiningMonth(DateTime fromDate, DateTime toDate); List GetByDeptIDs(string sIDs, int payrollTypeID); DataSet GetByMonthStartMonthEndForContinueFromDiscontinue(DateTime startmonth, DateTime endmonth, int payrollTypeID); DataSet GetITAndBasic(DateTime startdate, DateTime endDate); List GetJoiningData(DateTime formDate); DataTable GetDesignationWiseEmployeeCountsByDepartmentID(int departmentID); DataTable GetGradeWiseEmployeeCountsByDepartmentID(int departmentID); DataTable GetGradeWiseEmployeeCounts(); Employee Get4Web(string employeeNo); DataSet GetCashAdvice(string sEmpIDs, string dSalDate); //string GenerateLoanNo(Employee employee, Loan oLonan); List GetTopMostEmployees(); List GetAssignedEmployees(int nPMPYearID, int nEmpID); List GetGrandChilds(int employeeID); List GetGrandChilds(string sEmpIds); void UpdateLineManager(List employees); DataSet GetAllGeneralInfo(string sEmpIDs); DataSet GetAllContactInfo(string sEmpIDs); DataSet GetSpouseInfo(string sEmpIDs); DataSet GetChildInfo(string sEmpIDs); DataSet GetEmpExperienceInfo(string sEmpIDs); DataSet GetEmpTrainingInfo(string sEmpIDs); DataSet GetEmpAcademicInfo(string sEmpIDs); DataSet GetEmpReferenceInfo(string sEmpIDs); DataSet GetEmpPublicationInfo(string sEmpIDs); DataSet GetEmpNomineeInfo(string sEmpIDs); DataSet GetEmployeeGeneralData(); DataSet GetEmployeeSpouseData(); DataSet GetEmployeeContactData(); DataSet GetEmployeeChildrenData(); DataSet GetEmployeeAcademicData(); DataSet GetEmployeeTrainingData(); DataSet GetEmployeeExperienceData(); //void GetLoggedUserCredentials(out Employee emp, out SystemInformation sysInfo, out DataSet dsNotiAndPendi, string logInID); DataTable GetEmpFromView(string empNo); DataTable GetShortInformation(string empIDs); DataTable GetDFSL(); DataSet GetEmpDetailsView(string sEmpID); DataSet GetEmpDetailsView(); int GetCurrentHeadCount(int departmentId, int designationId, int gradeId); List GetbyDepartment(int deptId); List NotYetAssigned(int payrollTypeID); DataSet GetEmployeeGenderRatio(); DataSet GetEmployeeSummaryData(); DataSet GetEmployeeAttritionData(); List GetByPrimaryLMID(int employeeID); List GetAllLive(); DataSet GetEmployeeSummaryDataByDepartment(Employee emp); Employee GetByName(string EmpName); List GetFirstLMTeamMembers(int employeeID); List GetSubordinatesByLineManager(int employeeID); DataSet GetDashBoardGraphData(); List GetAllHREmpsWorkAniversary(string payrollTypeId); List GetAllHREmpsBirthday(string payrollTypeId); List GetAllAbsentOnYesterdayEmps(string payrollTypeId); DataSet GetEstimatedConfirmationReport(); DataSet GetEstimatedRetirementReport(); DataSet GetListOfPromotion(); DataSet GetListOfTransfer(); DataSet GetJobSeparationList(); DataSet GetConfirmedEmployeeList(); DataSet GetSelfServiceBasicData(int employeeId); DataSet GetSelfServiceContactData(int employeeId); List GetEmployeesRequisitionID(int requisitionID); DataSet GetLandingPageData(int isEmployee, int isLeave, int isAttendance, int payrollTypeId); DataSet GetHolidayInfoForDashboard(); DataTable GetOtEligibleEmployees(int payrolltypeid); DataTable GetEmployeeForDashboard(int ID); DataTable GetUserForLandingPage(int userId); DataSet GetEncashmentReport(string sEmpIDs, string leaveYear); DataSet GetBankAdviceReport(string sEmpIDs, string leaveYear); DataSet GetEncashPayslip(string sEmpIDs, string leaveYear); DataSet GetLeaveCashAdvice(string sEmpIDs, string leaveYear); //Mobile Profile DataSet GetMobileProfile(int employeeId); DataSet GetMobileProfileNew(int employeeId); bool IsCCApplicable(int empid, string companyCode, string salesEmail); DataTable GetMyTeam(Employee oEmp); DataTable GetCordinatorTeam(Employee oEmp); DataTable GetEmployeeCount(Employee oEmp); DataTable GetEmpOrganogramInfo(Employee oEmp); DataTable getEmpInfoForGateman(int id); List GetEmployeeByCoordinator(int empID); DataSet GetEmployeeIncrement(string empIDs); string GetNextCode(int payrollTypeId); int SaveHnmEmployee(List employeeData); Employee GetEmployeeForHnm(int id); void SaveIntegration(List oEmps, int currentUserId, DateTime NextPayProcessDate, DateTime LastPayProcessDate); } #endregion }