//private SickLeaveCat2BalanceProcess CAT2Process = null; public SickLeaveBalanceProcess(DatabaseConnection dbConn, int EmpID) : base(dbConn, EmpID, 0) { EntitlePeriodUnit = "M"; allowEntitleProrata = false; m_LeaveTypeID = ELeaveType.SLCAT1_LEAVE_TYPE(dbConn).LeaveTypeID; ELeaveType Cat2LeaveType = ELeaveType.SLCAT2_LEAVE_TYPE(dbConn); if (Cat2LeaveType != null) { leaveTypeIDSLCat2 = Cat2LeaveType.LeaveTypeID; leaveTypeDisabledSLCat2 = Cat2LeaveType.LeaveTypeIsDisabled; // Start 2013-12-02, Ricky So, pretend CAT2 always enabled to retain Jimmy's calculation. leaveTypeDisabledSLCat2 = false; // End 2013-12-02, Ricky So, pretend CAT2 always enabled to retain Jimmy's calculation. } }
public ArrayList getCurrentBalanceList(bool forESSOnly) { ArrayList balanceList = new ArrayList(); foreach (LeaveBalanceProcess balanceProcess in leaveBalanceProcessList.Values) { ELeaveBalance leaveBalance = balanceProcess.getLatestLeaveBalance(); if (leaveBalance != null) { //bool addToList = true; if (forESSOnly) { ELeaveType leaveType = new ELeaveType(); leaveType.LeaveTypeID = leaveBalance.LeaveTypeID; if (!ELeaveType.db.select(dbConn, leaveType)) { continue; } if (leaveType.LeaveTypeIsESSHideLeaveBalance) { continue; } DBFilter countESSLeaveCodeFilter = new DBFilter(); countESSLeaveCodeFilter.add(new Match("LeaveTypeID", leaveBalance.LeaveTypeID)); countESSLeaveCodeFilter.add(new Match("LeaveCodeHideInESS", false)); if (ELeaveCode.db.count(dbConn, countESSLeaveCodeFilter) <= 0) { continue; } //addToList = false; } //if (addToList) { LoadLeaveTypeAndRounding(leaveBalance); if (leaveBalance.LeaveBalanceEntitled != 0 || leaveBalance.getBalance() != 0 || leaveBalance.Taken != 0 || leaveBalance.Reserved != 0) { balanceList.Add(leaveBalance); } } } // Start 2013-12-02, Ricky So, Avoid showing CAT2 Sick Leave entry if ((ELeaveType.SLCAT2_LEAVE_TYPE(dbConn)).LeaveTypeIsDisabled == false) { if (balanceProcess is SickLeaveBalanceProcess) { leaveBalance = ((SickLeaveBalanceProcess)balanceProcess).getLatestCAT2LeaveBalance(); if (leaveBalance != null) { bool addToList = true; if (forESSOnly) { DBFilter countESSLeaveCodeFilter = new DBFilter(); countESSLeaveCodeFilter.add(new Match("LeaveTypeID", leaveBalance.LeaveTypeID)); countESSLeaveCodeFilter.add(new Match("LeaveCodeHideInESS", false)); if (ELeaveCode.db.count(dbConn, countESSLeaveCodeFilter) <= 0) { addToList = false; } } if (addToList) { LoadLeaveTypeAndRounding(leaveBalance); if (leaveBalance.LeaveBalanceEntitled != 0 || leaveBalance.getBalance() != 0 || leaveBalance.Taken != 0 || leaveBalance.Reserved != 0) { balanceList.Add(leaveBalance); } } } } } //if (balanceProcess is SickLeaveBalanceProcess) //{ // leaveBalance = ((SickLeaveBalanceProcess)balanceProcess).getLatestCAT2LeaveBalance(); // if (leaveBalance != null) // { // bool addToList = true; // if (forESSOnly) // { // DBFilter countESSLeaveCodeFilter = new DBFilter(); // countESSLeaveCodeFilter.add(new Match("LeaveTypeID", leaveBalance.LeaveTypeID)); // countESSLeaveCodeFilter.add(new Match("LeaveCodeHideInESS", false)); // if (ELeaveCode.db.count(dbConn, countESSLeaveCodeFilter) <= 0) // addToList = false; // } // if (addToList) // { // LoadLeaveTypeAndRounding(leaveBalance); // if (leaveBalance.LeaveBalanceEntitled != 0 || leaveBalance.getBalance() != 0 || leaveBalance.Taken != 0 || leaveBalance.Reserved != 0) // balanceList.Add(leaveBalance); // } // } //} // End 2013-12-02, Ricky So, Avoid showing CAT2 Sick Leave entry } return(balanceList); }
protected void btnGenerate_Click(object sender, EventArgs e) { PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); DateTime currentDate = AppUtils.ServerDateTime().Date; DateTime asOfDate = currentDate; if (!DateTime.TryParse(BalanceAsOfDate.Value, out asOfDate)) { asOfDate = currentDate; } ESSAuthorizationProcess authProcess = new ESSAuthorizationProcess(dbConn); List <EAuthorizationGroup> groupList = authProcess.GetAuthorizerAuthorizationGroupList(CurID); ArrayList EmpIDList = new ArrayList(); if (groupList.Count > 0) { DBFilter authWorkFlowDetailFilter = new DBFilter(); string authGroupIDList = string.Empty; foreach (EAuthorizationGroup group in groupList) { if (string.IsNullOrEmpty(authGroupIDList)) { authGroupIDList = group.AuthorizationGroupID.ToString(); } else { authGroupIDList += ", " + group.AuthorizationGroupID.ToString(); } } authWorkFlowDetailFilter.add(new IN("AuthorizationGroupID", authGroupIDList, null)); DBFilter empPosFilter = EEmpPositionInfo.CreateDateRangeDBFilter("epi", currentDate, currentDate); empPosFilter.add(new IN("epi.AuthorizationWorkFlowIDLeaveApp", "SELECT DISTINCT awfd.AuthorizationWorkFlowID FROM " + EAuthorizationWorkFlowDetail.db.dbclass.tableName + " awfd", authWorkFlowDetailFilter)); DBFilter empInfoFilter = new DBFilter(); empInfoFilter.add(new IN("EmpID", "SELECT DISTINCT epi.EmpID FROM " + EEmpPositionInfo.db.dbclass.tableName + " epi", empPosFilter)); DBFilter empTermFilter = new DBFilter(); empTermFilter.add(new Match("EmpTermLastDate", "<", currentDate < asOfDate?currentDate:asOfDate)); empInfoFilter.add(new IN("NOT EMPID", "SELECT et.EmpID FROM " + EEmpTermination.db.dbclass.tableName + " et", empTermFilter)); ArrayList EmpList = EEmpPersonalInfo.db.select(dbConn, empInfoFilter); foreach (EEmpPersonalInfo empInfo in EmpList) { EmpIDList.Add(empInfo.EmpID); } } // Start Ricky So, 0000119, 2014/10/28 EmpIDList.Add(WebUtils.GetCurUser(Session).EmpID); // End Ricky So, 0000119, 2014/10/28 if (EmpIDList.Count > 0) { ArrayList leaveTypeList = new ArrayList(); leaveTypeList.Add(ELeaveType.ANNUAL_LEAVE_TYPE(dbConn)); // Start 0000057, Ricky So, 2014/07/03 DBFilter m_leaveTypeFilter = new DBFilter(); DBFilter m_leaveCodeFilter = new DBFilter(); OR m_orLeaveType = new OR(); m_orLeaveType.add(new Match("LeaveType", "SLCAT1")); m_orLeaveType.add(new Match("LeaveType", "SLCAT2")); m_leaveTypeFilter.add(m_orLeaveType); m_leaveCodeFilter.add(new IN("LeaveTypeID", "SELECT LeaveTypeID FROM LeaveType", m_leaveTypeFilter)); ArrayList m_leaveCodeList = ELeaveCode.db.select(dbConn, m_leaveCodeFilter); if (m_leaveCodeList.Count > 0) { leaveTypeList.Add(ELeaveType.SLCAT1_LEAVE_TYPE(dbConn)); leaveTypeList.Add(ELeaveType.SLCAT2_LEAVE_TYPE(dbConn)); } // End 0000057, Ricky So, 2014/07/03 HROne.Reports.Employee.LeaveBalanceProcess rpt = new HROne.Reports.Employee.LeaveBalanceProcess(dbConn, EmpIDList, asOfDate, leaveTypeList); string reportFileName = WebUtils.GetLocalizedReportFile(Server.MapPath("~/Report_Employee_LeaveBalance.rpt")); WebUtils.ReportExport(Response, rpt, reportFileName, "PDF", "LeaveBalance"); } else { errors.addError("No employee can be generated"); } }