public static StyledExcelSpreadsheet exportElectionsResultsToFile( List<Degree> degrees, ExecutionYear executionYear) throws IOException { StyledExcelSpreadsheet spreadsheet = new StyledExcelSpreadsheet(); final ResourceBundle BUNDLE = ResourceBundle.getBundle( "resources.PedagogicalCouncilResources", Language.getDefaultLocale()); for (Degree degree : degrees) { spreadsheet.getSheet(degree.getSigla()); List<YearDelegateElection> elections = sortByYear(degree.getYearDelegateElectionsGivenExecutionYear(executionYear)); for (YearDelegateElection election : elections) { if (election.hasLastVotingPeriod()) { DelegateElectionVotingPeriod votingPeriod = election.getLastVotingPeriod(); spreadsheet.newHeaderRow(); int fistHeaderRow = spreadsheet.getRow().getRowNum(); spreadsheet.addHeader( String.format( "%s - %s (%s)", BUNDLE.getString("label.elections.excel.curricularYear"), election.getCurricularYear().getYear(), votingPeriod.getPeriod()), 10000); spreadsheet .getSheet() .addMergedRegion(new Region(fistHeaderRow, (short) 0, fistHeaderRow, (short) 5)); spreadsheet.newRow(); if (votingPeriod.getVotesCount() == 0) { spreadsheet.addCell(BUNDLE.getString("label.elections.excel.not.have.votes")); } else { spreadsheet.addHeader(BUNDLE.getString("label.elections.excel.studentNumber"), 6000); spreadsheet.addHeader(BUNDLE.getString("label.elections.excel.studentName"), 10000); spreadsheet.addHeader(BUNDLE.getString("label.phone"), 4000); spreadsheet.addHeader(BUNDLE.getString("label.email"), 6000); spreadsheet.addHeader(BUNDLE.getString("label.address"), 12000); spreadsheet.addHeader(BUNDLE.getString("label.elections.excel.nrTotalVotes"), 5000); List<DelegateElectionResultsByStudentDTO> resultsByStudent = sortByResults(votingPeriod.getDelegateElectionResults()); for (DelegateElectionResultsByStudentDTO resultByStudent : resultsByStudent) { Student student = resultByStudent.getStudent(); Person person = student.getPerson(); String phone = (StringUtils.isEmpty(person.getDefaultPhoneNumber())) ? "-" : person.getDefaultPhoneNumber(); String email = (StringUtils.isEmpty(person.getDefaultEmailAddressValue())) ? "-" : person.getDefaultEmailAddressValue(); String address = (StringUtils.isEmpty(person.getAddress())) ? "-" : person.getAddress(); spreadsheet.newRow(); spreadsheet.addCell(student.getNumber()); spreadsheet.addCell(student.getName()); spreadsheet.addCell(phone); spreadsheet.addCell(email); spreadsheet.addCell(address); spreadsheet.addCell(resultByStudent.getVotesNumber()); } spreadsheet.setRegionBorder(fistHeaderRow, spreadsheet.getRow().getRowNum() + 1, 0, 2); spreadsheet.newRow(); spreadsheet.newRow(); spreadsheet.addCell(BUNDLE.getString("label.elections.excel.nrBlankTotalVotes")); spreadsheet.addCell( votingPeriod.getBlankVotesElection(), spreadsheet.getExcelStyle().getValueStyle()); } } spreadsheet.newRow(); spreadsheet.newRow(); } } return spreadsheet; }
@SuppressWarnings("unchecked") private ByteArrayOutputStream createAcademicAdminProcessSheet(Person person) throws JRException { InputStream istream = getClass().getResourceAsStream(ACADEMIC_ADMIN_SHEET_REPORT_PATH); JasperReport report = (JasperReport) JRLoader.loadObject(istream); @SuppressWarnings("rawtypes") HashMap map = new HashMap(); try { final Student student = person.getStudent(); final Registration registration = findRegistration(student); map.put("executionYear", ExecutionYear.readCurrentExecutionYear().getYear()); if (registration != null) { map.put("course", registration.getDegree().getNameI18N().toString()); } map.put("studentNumber", student.getNumber().toString()); map.put("fullName", person.getName()); try { map.put( "photo", new ByteArrayInputStream(person.getPersonalPhotoEvenIfPending().getDefaultAvatar())); } catch (Exception e) { // nothing; print everything else } map.put( "sex", BundleUtil.getStringFromResourceBundle( "resources/EnumerationResources", person.getGender().name())); map.put("maritalStatus", person.getMaritalStatus().getPresentationName()); map.put("profession", person.getProfession()); map.put("idDocType", person.getIdDocumentType().getLocalizedName()); map.put("idDocNumber", person.getDocumentIdNumber()); YearMonthDay emissionDate = person.getEmissionDateOfDocumentIdYearMonthDay(); if (emissionDate != null) { map.put( "idDocEmissionDate", emissionDate.toString(DateTimeFormat.forPattern("dd/MM/yyyy"))); } map.put( "idDocExpirationDate", person .getExpirationDateOfDocumentIdYearMonthDay() .toString(DateTimeFormat.forPattern("dd/MM/yyyy"))); map.put("idDocEmissionLocation", person.getEmissionLocationOfDocumentId()); String nif = person.getSocialSecurityNumber(); if (nif != null) { map.put("NIF", nif); } map.put( "birthDate", person.getDateOfBirthYearMonthDay().toString(DateTimeFormat.forPattern("dd/MM/yyyy"))); map.put("nationality", person.getCountryOfBirth().getCountryNationality().toString()); map.put("parishOfBirth", person.getParishOfBirth()); map.put("districtSubdivisionOfBirth", person.getDistrictSubdivisionOfBirth()); map.put("districtOfBirth", person.getDistrictOfBirth()); map.put("countryOfBirth", person.getCountryOfBirth().getName()); map.put("fathersName", person.getNameOfFather()); map.put("mothersName", person.getNameOfMother()); map.put("address", person.getAddress()); map.put("postalCode", person.getPostalCode()); map.put("locality", person.getAreaOfAreaCode()); map.put("cellphoneNumber", person.getDefaultMobilePhoneNumber()); map.put("telephoneNumber", person.getDefaultPhoneNumber()); map.put("emailAddress", getMail(person)); map.put( "currentDate", new java.text.SimpleDateFormat( "'Lisboa, 'dd' de 'MMMM' de 'yyyy", new java.util.Locale("PT", "pt")) .format(new java.util.Date())); } catch (NullPointerException e) { // nothing; will cause printing of incomplete form // better than no form at all } JasperPrint print = JasperFillManager.fillReport(report, map); ByteArrayOutputStream output = new ByteArrayOutputStream(); JasperExportManager.exportReportToPdfStream(print, output); return output; }
private static void drawPersonalInformation( final Page page, final PhdProgramPublicCandidacyHashCode hashCode, final String folderName) throws IOException { final Person person = hashCode.getPerson(); page.h(3, "Personal Information", "mtop2"); page.tableStart("tstyle2 thwhite thnowrap thlight thleft thtop ulnomargin "); page.rowStart("tdbold") .headerStartWithStyle("width: 125px;") .write("Name:") .headerEnd() .column(person.getName()) .rowEnd(); page.rowStart() .header("Gender:") .column(person.getGender().toLocalizedString(Locale.ENGLISH)) .rowEnd(); page.rowStart() .header("Identity card type:") .column(person.getIdDocumentType().getLocalizedName()) .rowEnd(); page.rowStart().header("Identity card #:").column(person.getDocumentIdNumber()).rowEnd(); page.rowStart().header("Issued by:").column(person.getEmissionLocationOfDocumentId()).rowEnd(); page.rowStart() .header("Fiscal number:") .column(string(person.getSocialSecurityNumber())) .rowEnd(); page.rowStart() .header("Date of birth:") .column(person.getDateOfBirthYearMonthDay().toString("dd/MM/yyyy")) .rowEnd(); page.rowStart().header("Birthplace:").column(person.getDistrictSubdivisionOfBirth()).rowEnd(); page.rowStart() .header("Nationality:") .column(person.getCountry().getCountryNationality().getContent()) .rowEnd(); page.rowStart().header("Address:").column(person.getAddress()).rowEnd(); page.rowStart().header("City:").column(person.getArea()).rowEnd(); page.rowStart().header("Zip code:").column(person.getAreaCode()).rowEnd(); page.rowStart() .header("Country:") .column( (person.getCountryOfResidence() != null ? person.getCountryOfResidence().getName() : "-")) .rowEnd(); page.rowStart().header("Phone:").column(person.getDefaultPhoneNumber()).rowEnd(); page.rowStart().header("Mobile:").column(person.getDefaultMobilePhoneNumber()).rowEnd(); page.rowStart().header("Email:").column(person.getDefaultEmailAddressValue()).rowEnd(); page.tableEnd(); page.h(3, "Photo"); String photoUrl = APPLICATION_PREFIX_LINK + "/phd/epfl/applications/photo"; final Photograph photo = person.getPersonalPhotoEvenIfPending(); if (photo != null) { photoUrl += "?photoOid=" + photo.getExternalId(); } page.photo(photoUrl); }