/* * Created on Jan 12, 2005 * */ package net.sourceforge.fenixedu.persistenceTierOracle.Oracle; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import net.sourceforge.fenixedu.domain.projectsManagement.ExpensesReportLine; import net.sourceforge.fenixedu.domain.projectsManagement.IExpensesReportLine; import net.sourceforge.fenixedu.persistenceTier.ExcepcaoPersistencia; import net.sourceforge.fenixedu.persistenceTierOracle.IPersistentExpensesReport; import net.sourceforge.fenixedu.util.projectsManagement.ReportType; import net.sourceforge.fenixedu.util.projectsManagement.RubricType; import org.apache.struts.util.LabelValueBean; import com.linkare.commons.metainfo.Linkare; /** * @author Susana Fernandes * */ public class PersistentExpensesReport extends PersistentReport implements IPersistentExpensesReport { @Linkare(author = "Paulo Zenida", comments = "Used Integer.valueOf() instead of new Integer()") public List getCompleteReport(ReportType reportType, Integer projectCode, Boolean it) throws ExcepcaoPersistencia { List result = new ArrayList(); try { PersistentSuportOracle p = PersistentSuportOracle.getProjectDBInstance(it); p.startTransaction(); String tableOrView = getTableOrViewName(p, reportType); StringBuilder query = new StringBuilder(); query .append("select \"idMov\", \"Membro\", \"Rubrica\", \"Tipo\", \"data\", \"Descrição\", \"Valor\", \"Iva\", \"Total\" from "); query.append(tableOrView); query.append(" where PROJECTCODE='"); query.append(projectCode); query.append("' order by \"data\", \"idMov\""); PreparedStatement stmt = p.prepareStatement(query.toString()); ResultSet rs = stmt.executeQuery(); while (rs.next()) { IExpensesReportLine report = new ExpensesReportLine(); report.setProjectCode(projectCode); report.setMovementId(rs.getString("idMov")); report.setMember(rs.getString("Membro")); report.setRubric(Integer.valueOf(rs.getInt("Rubrica"))); report.setMovementType(rs.getString("Tipo")); SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); Date date = rs.getDate("data"); report.setDate(formatter.format(date)); report.setDescription(rs.getString("Descrição")); report.setValue(Double.valueOf(rs.getDouble("Valor"))); report.setTax(Double.valueOf(rs.getDouble("Iva"))); report.setTotal(Double.valueOf(rs.getDouble("Total"))); result.add(report); } rs.close(); p.commitTransaction(); } catch (SQLException e) { throw new ExcepcaoPersistencia(); } return result; } @Linkare(author = "Paulo Zenida", comments = "Used Integer.valueOf() instead of new Integer()") public List getReportByRubric(ReportType reportType, Integer projectCode, String rubric, Boolean it) throws ExcepcaoPersistencia { List result = new ArrayList(); try { PersistentSuportOracle p = PersistentSuportOracle.getProjectDBInstance(it); p.startTransaction(); String tableOrView = getTableOrViewName(p, reportType); StringBuilder query = new StringBuilder(); query .append("select \"idMov\", \"Membro\", \"Rubrica\", \"Tipo\", \"data\", \"Descrição\", \"Valor\", \"Iva\", \"Total\" from "); query.append(tableOrView); query.append(" where PROJECTCODE='"); query.append(projectCode); query.append("' and \"Rubrica\"='"); query.append(rubric); query.append("' order by \"data\", \"idMov\""); PreparedStatement stmt = p.prepareStatement(query.toString()); ResultSet rs = stmt.executeQuery(); while (rs.next()) { IExpensesReportLine report = new ExpensesReportLine(); report.setProjectCode(projectCode); report.setMovementId(rs.getString("idMov")); report.setMember(rs.getString("Membro")); report.setRubric(Integer.valueOf(rs.getInt("Rubrica"))); report.setMovementType(rs.getString("Tipo")); SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); Date date = rs.getDate("data"); report.setDate(formatter.format(date)); report.setDescription(rs.getString("Descrição")); report.setValue(Double.valueOf(rs.getDouble("Valor"))); report.setTax(Double.valueOf(rs.getDouble("Iva"))); report.setTotal(Double.valueOf(rs.getDouble("Total"))); result.add(report); } rs.close(); p.commitTransaction(); } catch (SQLException e) { throw new ExcepcaoPersistencia(); } return result; } public List getRubricList(ReportType reportType, Integer projectCode, Boolean it) throws ExcepcaoPersistencia { List rubricList = new ArrayList(); try { PersistentSuportOracle p = PersistentSuportOracle.getProjectDBInstance(it); p.startTransaction(); StringBuilder query = new StringBuilder(); query.append("select distinct r.COD, r.DESCRICAO from "); query.append(RubricType.EXPENSES_RUBRIC_TABLE_NAME); query.append(" r, "); query.append(getTableOrViewName(p, reportType)); query.append(" p where p.PROJECTCODE='"); query.append(projectCode); query.append("' and p.\"Rubrica\"=r.COD"); PreparedStatement stmt = p.prepareStatement(query.toString()); ResultSet rs = stmt.executeQuery(); while (rs.next()) { rubricList.add(new LabelValueBean(rs.getString("COD"), rs.getString("DESCRICAO"))); } rs.close(); p.commitTransaction(); } catch (SQLException e) { throw new ExcepcaoPersistencia(); } return rubricList; } }