/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.module.tem.report; import static org.kuali.kfs.module.tem.TemConstants.Report.TEMPLATE_CLASSPATH; import static org.kuali.kfs.sys.KFSConstants.ReportGeneration.PDF_FILE_EXTENSION; import static org.springframework.ui.jasperreports.JasperReportsUtils.convertReportData; import java.awt.image.BufferedImage; import java.math.BigDecimal; import java.util.Collection; import java.util.Date; import java.util.List; import net.sf.jasperreports.engine.JRDataSource; import org.kuali.kfs.module.tem.report.annotations.ColumnHeader; import org.kuali.kfs.module.tem.report.annotations.Crosstab; import org.kuali.kfs.module.tem.report.annotations.DetailSection; import org.kuali.kfs.module.tem.report.annotations.JasperReport; import org.kuali.kfs.module.tem.report.annotations.Measure; import org.kuali.kfs.module.tem.report.annotations.ReportStyle; import org.kuali.kfs.module.tem.report.annotations.RowHeader; import org.kuali.kfs.module.tem.report.annotations.SubReport; import org.kuali.kfs.module.tem.report.annotations.TitleStyle; import org.kuali.kfs.sys.report.ReportInfoHolder; import org.kuali.rice.core.api.util.type.KualiDecimal; @JasperReport @ReportStyle("standard") @TitleStyle("standard") public class EntertainmentHostCertificationReport extends ReportInfoHolder{ private String documentId; private String eventId; private String eventTitle; private String businessPurpose; private String entertainmentHostName; private Date beginDate; private Date endDate; private KualiDecimal totalExpense; private String employeeName; private String purpose; private String tripId; private String institution; private String temFaxNumber; private String certificationDescription; private String approvingDepartment; List<NonEmployeeCertificationReport.Detail> expenseDetails; private BufferedImage barcodeImage; @Crosstab @DetailSection @SubReport private JRDataSource actualExpenses; public EntertainmentHostCertificationReport(){ setReportTemplateClassPath(TEMPLATE_CLASSPATH); setReportFileName("EntertainmentHostCertification" + PDF_FILE_EXTENSION); setReportTemplateName("EntertainmentHostCertification.jrxml"); } /** * * This method... * @param argDocumentId */ public void setDocumentId(String argDocumentId){ documentId = argDocumentId; } /** * * This method... * @return */ public String getDocumentId(){ return documentId; } /** * * This method... * @param argEventId */ public void setEventId(String argEventId){ eventId = argEventId; } /** * * This method... * @return */ public String getEventId(){ return eventId; } /** * * This method... * @param argEndDate */ public void setEndDate(Date argEndDate){ endDate = argEndDate; } /** * * This method... * @return */ public Date getEndDate(){ return endDate; } /** * * This method... * @param argTotalExpense */ public void setTotalExpense(KualiDecimal argTotalExpense){ totalExpense = argTotalExpense; } /** * * This method... * @return */ public KualiDecimal getTotalExpense(){ return totalExpense; } /** * Gets the value of TripId * * @return the value of TripId */ public String getTripId() { return this.tripId; } /** * Sets the value of TripId * * @param argTripId Value to assign to this.TripId */ public void setTripId(final String argTripId) { this.tripId = argTripId; } /** * Gets the value of Purpose * * @return the value of Purpose */ public String getPurpose() { return this.purpose; } /** * Sets the value of Purpose * * @param argPurpose Value to assign to this.Purpose */ public void setPurpose(final String argPurpose) { this.purpose = argPurpose; } /** * Gets the value of Institution * * @return the value of Institution */ public String getInstitution() { return this.institution; } /** * Sets the value of Institution * * @param argInstitution Value to assign to this.Institution */ public void setInstitution(final String argInstitution) { this.institution = argInstitution; } /** * Gets the value of Other * * @return the value of Other */ public JRDataSource getActualExpenses() { return this.actualExpenses; } /** * Sets the value of Other * * @param argOther Value to assign to this.Other */ public void setActualExpenses(final Collection<Detail> argOther) { this.actualExpenses = convertReportData(argOther); } public static class Detail { @ColumnHeader private String name; @RowHeader private String date; @Measure private BigDecimal amount; public Detail(final String name, final KualiDecimal amount, final String date) { this.name = name; if (amount != null) { this.amount = amount.bigDecimalValue(); } else { this.amount = KualiDecimal.ZERO.bigDecimalValue(); } this.date = date; } /** * Gets the value of Name * * @return the value of Name */ public String getName() { return this.name; } /** * Sets the value of Name * * @param argName Value to assign to this.Name */ public void setName(final String argName) { this.name = argName; } /** * Gets the value of Amount * * @return the value of Amount */ public BigDecimal getAmount() { return this.amount; } /** * Sets the value of Amount * * @param argAmount Value to assign to this.Amount */ public void setAmount(final BigDecimal argAmount) { this.amount = argAmount; } /** * Gets the value of Date * * @return the value of Date */ public String getDate() { return this.date; } /** * Sets the value of Date * * @param argDate Value to assign to this.Date */ public void setDate(final String argDate) { this.date = argDate; } } public String getEventTitle() { return eventTitle; } public void setEventTitle(String eventTitle) { this.eventTitle = eventTitle; } public String getBusinessPurpose() { return businessPurpose; } public void setBusinessPurpose(String businessPurpose) { this.businessPurpose = businessPurpose; } public String getEntertainmentHostName() { return entertainmentHostName; } public void setEntertainmentHostName(String entertainmentHostName) { this.entertainmentHostName = entertainmentHostName; } public String getEmployeeName() { return employeeName; } public void setEmployeeName(String employeeName) { this.employeeName = employeeName; } public void setActualExpenses(JRDataSource actualExpenses) { this.actualExpenses = actualExpenses; } public Date getBeginDate() { return beginDate; } public void setBeginDate(Date beginDate) { this.beginDate = beginDate; } public String getTemFaxNumber() { return temFaxNumber; } public void setTemFaxNumber(String temFaxNumber) { this.temFaxNumber = temFaxNumber; } public String getCertificationDescription() { return certificationDescription; } public void setCertificationDescription(String certificationDescription) { this.certificationDescription = certificationDescription; } public String getApprovingDepartment() { return approvingDepartment; } public void setApprovingDepartment(String approvingDepartment) { this.approvingDepartment = approvingDepartment; } public List<NonEmployeeCertificationReport.Detail> getExpenseDetails() { return expenseDetails; } public void setExpenseDetails(List<NonEmployeeCertificationReport.Detail> expenseDetails) { this.expenseDetails = expenseDetails; } public BufferedImage getBarcodeImage() { return barcodeImage; } public void setBarcodeImage(BufferedImage barcodeImage) { this.barcodeImage = barcodeImage; } }