/** * Terminates all all high school placements not included in the import (except Nacka Gymnasium * placements). */ protected boolean terminateOldPlacements() { println("NackaHighSchoolPlacementHandler: Starting termination of old placements..."); boolean success = true; School schoolA = null; School schoolB = null; School schoolC = null; try { schoolA = schoolHome.findBySchoolName(NackaProgmaPlacementImportFileHandlerBean.SCHOOL_NAME_A); } catch (FinderException e) { println( "NackaHighSchoolPlacementHandler: School '" + NackaProgmaPlacementImportFileHandlerBean.SCHOOL_NAME_A + "' not found."); return false; } try { schoolB = schoolHome.findBySchoolName(NackaProgmaPlacementImportFileHandlerBean.SCHOOL_NAME_B); } catch (FinderException e) { println( "NackaHighSchoolPlacementHandler: School '" + NackaProgmaPlacementImportFileHandlerBean.SCHOOL_NAME_B + "' not found."); return false; } try { schoolC = schoolHome.findBySchoolName(NackaProgmaPlacementImportFileHandlerBean.SCHOOL_NAME_C); } catch (FinderException e) { println( "NackaHighSchoolPlacementHandler: School '" + NackaProgmaPlacementImportFileHandlerBean.SCHOOL_NAME_C + "' not found."); return false; } int schoolIdA = ((Integer) schoolA.getPrimaryKey()).intValue(); int schoolIdB = ((Integer) schoolB.getPrimaryKey()).intValue(); int schoolIdC = ((Integer) schoolC.getPrimaryKey()).intValue(); String[] schoolIds = new String[] { String.valueOf(schoolIdA), String.valueOf(schoolIdB), String.valueOf(schoolIdC) }; SchoolCategory highSchoolCategory = null; try { highSchoolCategory = schoolBusiness.getCategoryHighSchool(); } catch (RemoteException e) { println("NackaHighSchoolPlacementHandler: High school category not found."); return false; } Collection placements = null; try { placements = schoolClassMemberHome.findActiveByCategorySeasonAndSchools( highSchoolCategory, season, schoolIds, true); } catch (FinderException e) { println("NackaHighSchoolPlacementHandler: Error finding placements."); return false; } Commune defaultCommune = null; try { defaultCommune = ((CommuneBusiness) getServiceInstance(CommuneBusiness.class)).getDefaultCommune(); } catch (IBOLookupException e1) { e1.printStackTrace(); println("NackaHighSchoolPlacementHandler: Unable to get default commune."); return false; } catch (RemoteException e1) { e1.printStackTrace(); println("NackaHighSchoolPlacementHandler: Unable to get default commune."); return false; } Iterator iter = placements.iterator(); IWTimestamp now = IWTimestamp.RightNow(); now.setAsDate(); while (iter.hasNext()) { SchoolClassMember member = (SchoolClassMember) iter.next(); IWTimestamp placementDate = null; try { PlacementImportDate p = placementImportDateHome.findByPrimaryKey(member.getPrimaryKey()); placementDate = new IWTimestamp(p.getImportDate()); placementDate.setAsDate(); } catch (FinderException e) { } School memberSchool = member.getSchoolClass().getSchool(); if ((placementDate == null || placementDate.isEarlierThan(now)) && (memberSchool.getManagementTypeId().equals(SchoolManagementTypeBMPBean.TYPE_COMMUNE)) && (memberSchool.getCommune().equals(defaultCommune))) { member.setRemovedDate(lastDayInPreviousMonth); member.store(); println("Terminating placement with id: " + member.getPrimaryKey()); } } println("NackaHighSchoolPlacementHandler: Termination of old placements finished."); return success; }