From 6ea175f06ab6ee819bc371cc9b5b792bb1db7072 Mon Sep 17 00:00:00 2001 From: Daniel Cortes Date: Wed, 6 Mar 2019 23:49:07 -0300 Subject: [PATCH] Se reescribio el informe de egresos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Para lograrlo se realizo el mismo procedimiento que con el informe de libro de ventas Primero que nada se elmino el objeto de InformeEgresosContent que se tenia porque realmente no aportaba nada, era basicamente lo mismo que el objeto egresos con un campo de fecha añadido y creo que un campo menos. Por lo que se paso a utilizar el objeto de Egresos directamente. Debido a lo anterior no era necesario tener una query especial para juntar los datos, ya que solo eran los egresos de todas las cajas de un tipo en especifico, por lo que solo se hizo una query nueva en el EgresoDAO en el que se satisfacia esta necesidad. Luego fue solo hacer compatible el InformeEgresosToExcel y listo! --- dist/Programa Caja.jar | Bin 14039907 -> 14037473 bytes .../InformesSideBarController.java | 9 +- src/danielcortes/xyz/data/DAOManager.java | 7 - .../xyz/informes/InformeEgresos.java | 328 ++---------------- .../xyz/informes/InformeEgresosToExcel.java | 302 ++++++++++++++++ .../xyz/models/egreso/EgresoDAO.java | 2 + .../xyz/models/egreso/SQLiteEgresoDAO.java | 23 ++ .../egresos/InformeEgresosContent.java | 77 ---- .../egresos/InformeEgresosContentDAO.java | 43 --- .../SQLiteInformeEgresosContentDAO.java | 90 ----- 10 files changed, 361 insertions(+), 520 deletions(-) create mode 100644 src/danielcortes/xyz/informes/InformeEgresosToExcel.java delete mode 100644 src/danielcortes/xyz/models/informes/egresos/InformeEgresosContent.java delete mode 100644 src/danielcortes/xyz/models/informes/egresos/InformeEgresosContentDAO.java delete mode 100644 src/danielcortes/xyz/models/informes/egresos/SQLiteInformeEgresosContentDAO.java diff --git a/dist/Programa Caja.jar b/dist/Programa Caja.jar index aaff2b292a7b144a32d03fa28223e4d49f7ae9dc..ea37db6100e8cc8ebaaa26ce0fde93586926b6ba 100644 GIT binary patch delta 108444 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%0A(bC9vSw4DhY*f)2o<73Dd`xchulyh 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 t&6i864)u-zHO{h-c{SPE&u7A6JsA2uT@2m> informe; - private List informe; - private Path saveFile; - - //Filas donde se almacenaran los totales - private ArrayList totalRows; - //Filas donde se almacenaran los egresos. - private ArrayList dataRows; - //Fila que contiene el total final; - private Row totalFinal; - - - //Rango que corresponde a un dia de egresos; - private ArrayList> totalRange; - private Workbook wb; - private Sheet sheet; - private CreationHelper createHelper; - private HashMap styles; - - public InformeEgresos(int tipoEgresoId, YearMonth mes, Path saveFile) { - new SQLiteCajaDAO().createCajasForMonth(mes); - this.informe = new SQLiteInformeEgresosContentDAO() - .getInformeEgresosFactuasMateriaPrima(mes, tipoEgresoId); - this.saveFile = saveFile; - - this.wb = new HSSFWorkbook(); - this.sheet = wb.createSheet(); - this.createHelper = wb.getCreationHelper(); - - this.totalRows = new ArrayList<>(); - this.totalRange = new ArrayList<>(); - this.dataRows = new ArrayList<>(); - - this.styles = this.generateStyles(); + private InformeEgresos() { } - private void fillHeaders() { - Row titles = sheet.createRow(0); - - for (int x = 0; x < this.titles.length; x++) { - titles.createCell(x).setCellValue(this.titles[x]); - } + public List get(LocalDate localDate) { + return informe.get(localDate); } - private void fillData() { - int rowCounter = 1; - int dayStart = rowCounter; - int dayEnd; - - for (int informeID = 0; informeID < informe.size(); informeID++) { - InformeEgresosContent data = informe.get(informeID); - int cellCounter = 0; - Row dataRow = sheet.createRow(rowCounter); - dataRows.add(dataRow); - Date fecha = Date.from(data.getFecha().atStartOfDay(ZoneId.systemDefault()).toInstant()); - - dataRow.createCell(cellCounter++).setCellValue(fecha); - dataRow.createCell(cellCounter++).setCellValue(data.getNro()); - dataRow.createCell(cellCounter++).setCellValue(data.getDescripcion()); - dataRow.createCell(cellCounter).setCellValue(data.getValor()); - - // Comprueba si es que el siguiente elemento en la lista de informe es del siguiente dia, si es asi, agrega una linea con los totales diarios. - if (informeID + 1 >= informe.size() || !data.getFecha() - .equals(informe.get(informeID + 1).getFecha())) { - totalRows.add(sheet.createRow(rowCounter + 1)); - - dayEnd = rowCounter; - totalRange.add(new Pair<>(dayStart, dayEnd)); - dayStart = rowCounter + 2; - rowCounter++; - } - - rowCounter++; - } + private void put(LocalDate localDate, List egresos) { + informe.put(localDate, egresos); } - private void fillTotales() { - StringBuilder sumTotalFinal = new StringBuilder(); - - //Se aprovechara la iteracion para agregar los totales individuales y para construir la suma del total final - for (int x = 0; x < totalRows.size(); x++) { - Row row = totalRows.get(x); - Pair range = totalRange.get(x); - - row.createCell(2).setCellValue("TOTAL DIARIO"); - row.createCell(3) - .setCellFormula("SUM(D" + (range.getLeft() + 1) + ":D" + (range.getRight() + 1) + ")"); - - sumTotalFinal.append("D").append(row.getRowNum() + 1); - if (x + 1 != totalRows.size()) { - sumTotalFinal.append("+"); - } else { - this.totalFinal = sheet.createRow(row.getRowNum() + 1); - this.totalFinal.createCell(2).setCellValue("TOTAL MENSUAL"); - this.totalFinal.createCell(3).setCellFormula(sumTotalFinal.toString()); - } - } - - + public int size(){ + return informe.size(); } - private void freezeCells() { - this.sheet.createFreezePane(0, 1); - } + public static InformeEgresos generate(YearMonth mes, TipoEgreso tipoEgreso) { + InformeEgresos informeEgresos = new InformeEgresos(); + informeEgresos.informe = new HashMap<>(); - private void addBorders() { - int rows = this.totalRows.size() + this.dataRows.size() + 1; - PropertyTemplate pt = new PropertyTemplate(); + LocalDate currentDate = mes.atDay(1); + LocalDate endDatePlusOne = mes.atEndOfMonth().plusDays(1); - //Bordes Internos - pt.drawBorders(new CellRangeAddress(0, rows, 0, 3), BorderStyle.THIN, BorderExtent.ALL); + CajaDAO cajaDAO = DAOManager.getCajaDAO(); + EgresoDAO egresoDAO = DAOManager.getEgresoDAO(); - //Bordes de los Headers - pt.drawBorders(new CellRangeAddress(0, 0, 0, 3), BorderStyle.MEDIUM, BorderExtent.OUTSIDE); + while (currentDate.isBefore(endDatePlusOne)) { + Caja caja = cajaDAO.getByFecha(currentDate).orElse(Caja.EMPTY); - //Bordes de los Totales - for (Row row : this.totalRows) { - int index = row.getRowNum(); - pt.drawBorders(new CellRangeAddress(index, index, 0, 3), BorderStyle.NONE, BorderExtent.ALL); - pt.drawBorders(new CellRangeAddress(index, index, 0, 3), BorderStyle.MEDIUM, - BorderExtent.OUTSIDE); + List egresos = egresoDAO.getByTipoEgresoEnCaja(tipoEgreso, caja); + informeEgresos.put(currentDate, egresos); + + currentDate = currentDate.plusDays(1); } - //Borde del Total Final - pt.drawBorders( - new CellRangeAddress(this.totalFinal.getRowNum(), this.totalFinal.getRowNum(), 0, 3), - BorderStyle.NONE, BorderExtent.ALL); - pt.drawBorders( - new CellRangeAddress(this.totalFinal.getRowNum(), this.totalFinal.getRowNum(), 0, 3), - BorderStyle.MEDIUM, BorderExtent.OUTSIDE); - - //Borde externo - pt.drawBorders(new CellRangeAddress(0, rows, 0, 3), BorderStyle.MEDIUM, BorderExtent.OUTSIDE); - - pt.applyBorders(this.sheet); - } - - private void setStyles() { - //Estilo para el header - this.sheet.getRow(0).getCell(0).setCellStyle(this.styles.get("header")); - this.sheet.getRow(0).getCell(1).setCellStyle(this.styles.get("header")); - this.sheet.getRow(0).getCell(2).setCellStyle(this.styles.get("header")); - this.sheet.getRow(0).getCell(3).setCellStyle(this.styles.get("header")); - - //Estilo para el Total Final - this.totalFinal.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) - .setCellStyle(this.styles.get("gray")); - this.totalFinal.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) - .setCellStyle(this.styles.get("gray")); - this.totalFinal.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) - .setCellStyle(this.styles.get("gray")); - this.totalFinal.getCell(3).setCellStyle(this.styles.get("total_final")); - - //Estilo para las filas de datos - for (Row row : this.dataRows) { - row.getCell(0).setCellStyle(this.styles.get("date")); - row.getCell(1).setCellStyle(this.styles.get("regular")); - row.getCell(2).setCellStyle(this.styles.get("regular")); - row.getCell(3).setCellStyle(this.styles.get("money")); - } - - //Estilo para las filas de totales - for (Row row : this.totalRows) { - row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) - .setCellStyle(this.styles.get("not_so_gray")); - row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) - .setCellStyle(this.styles.get("not_so_gray")); - row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) - .setCellStyle(this.styles.get("not_so_gray")); - row.getCell(3, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) - .setCellStyle(this.styles.get("total")); - } - - //Setea el alto de las filas - this.sheet.getRow(0).setHeightInPoints(30); - this.totalFinal.setHeightInPoints(20); - for (Row row : this.dataRows) { - row.setHeightInPoints(15); - } - for (Row row : this.totalRows) { - row.setHeightInPoints(18); - } - - //Setea el ancho de las columnas - sheet.autoSizeColumn(0); - sheet.autoSizeColumn(1); - sheet.autoSizeColumn(2); - sheet.autoSizeColumn(3); - } - - private HashMap generateStyles() { - Font font = this.wb.createFont(); - font.setBold(true); - font.setColor(IndexedColors.WHITE.getIndex()); - - CellStyle regularStyle = this.wb.createCellStyle(); - - CellStyle grayStyle = this.wb.createCellStyle(); - grayStyle.setFont(font); - grayStyle.setVerticalAlignment(VerticalAlignment.CENTER); - grayStyle.setFillForegroundColor(IndexedColors.GREY_80_PERCENT.getIndex()); - grayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); - - CellStyle notSoGrayStyle = this.wb.createCellStyle(); - notSoGrayStyle.setFont(font); - notSoGrayStyle.setVerticalAlignment(VerticalAlignment.CENTER); - notSoGrayStyle.setFillForegroundColor(IndexedColors.GREY_40_PERCENT.getIndex()); - notSoGrayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); - - CellStyle dateStyle = this.wb.createCellStyle(); - dateStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("dd/mm/yyyy")); - - CellStyle moneyStyle = this.wb.createCellStyle(); - moneyStyle - .setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)")); - - CellStyle headerStyle = this.wb.createCellStyle(); - headerStyle.cloneStyleFrom(grayStyle); - headerStyle.setAlignment(HorizontalAlignment.CENTER); - - CellStyle totalStyle = this.wb.createCellStyle(); - totalStyle.cloneStyleFrom(notSoGrayStyle); - totalStyle - .setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)")); - - CellStyle totalFinalStyle = this.wb.createCellStyle(); - totalFinalStyle.cloneStyleFrom(grayStyle); - totalFinalStyle - .setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)")); - - HashMap styles = new HashMap<>(); - styles.put("regular", regularStyle); - styles.put("gray", grayStyle); - styles.put("not_so_gray", notSoGrayStyle); - styles.put("date", dateStyle); - styles.put("money", moneyStyle); - styles.put("header", headerStyle); - styles.put("total", totalStyle); - styles.put("total_final", totalFinalStyle); - - return styles; - } - - public Path generarInforme() { - fillHeaders(); - fillData(); - fillTotales(); - freezeCells(); - setStyles(); - addBorders(); - - try (OutputStream fileOut = Files.newOutputStream(this.saveFile)) { - wb.write(fileOut); - return this.saveFile; - } catch (IOException e) { - e.printStackTrace(); - } - return null; + return informeEgresos; } } diff --git a/src/danielcortes/xyz/informes/InformeEgresosToExcel.java b/src/danielcortes/xyz/informes/InformeEgresosToExcel.java new file mode 100644 index 0000000..bc99313 --- /dev/null +++ b/src/danielcortes/xyz/informes/InformeEgresosToExcel.java @@ -0,0 +1,302 @@ +/* + * MIT License + * + * Copyright (c) 2018-2019 Daniel Cortes + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package danielcortes.xyz.informes; + +import danielcortes.xyz.models.egreso.Egreso; +import danielcortes.xyz.models.tipo_egreso.TipoEgreso; +import danielcortes.xyz.utils.Pair; +import java.time.LocalDate; +import java.time.YearMonth; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.BorderExtent; +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.CreationHelper; +import org.apache.poi.ss.usermodel.FillPatternType; +import org.apache.poi.ss.usermodel.Font; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.ss.util.PropertyTemplate; + +public class InformeEgresosToExcel { + + private final String[] titles = { + "FECHA", + "N°", + "DESCRIPCION", + "VALOR" + }; + + private InformeEgresos informe; + private YearMonth mes; + + //Filas donde se almacenaran los totales + private ArrayList totalRows; + //Filas donde se almacenaran los egresos. + private ArrayList dataRows; + //Fila que contiene el total final; + private Row totalFinal; + + + //Rango que corresponde a un dia de egresos; + private ArrayList> totalRange; + private Workbook wb; + private Sheet sheet; + private CreationHelper createHelper; + private HashMap styles; + + public InformeEgresosToExcel(TipoEgreso tipoEgreso, YearMonth mes) { + this.informe = InformeEgresos.generate(mes, tipoEgreso); + this.mes = mes; + + this.wb = new HSSFWorkbook(); + this.sheet = wb.createSheet(); + this.createHelper = wb.getCreationHelper(); + + this.totalRows = new ArrayList<>(); + this.totalRange = new ArrayList<>(); + this.dataRows = new ArrayList<>(); + + this.styles = this.generateStyles(); + } + + private void fillHeaders() { + Row titles = sheet.createRow(0); + + for (int x = 0; x < this.titles.length; x++) { + titles.createCell(x).setCellValue(this.titles[x]); + } + } + + private void fillData() { + int currentRow = 1; + + LocalDate currentDay = mes.atDay(1); + LocalDate endDayPlusOne = mes.atEndOfMonth().plusDays(1); + + while (currentDay.isBefore(endDayPlusOne)) { + int firstRow = currentRow; + + Date fecha = Date.from(currentDay.atStartOfDay(ZoneId.systemDefault()).toInstant()); + List egresos = informe.get(currentDay); + + for (Egreso egreso : egresos) { + Row dataRow = sheet.createRow(currentRow); + this.dataRows.add(dataRow); + + dataRow.createCell(0).setCellValue(fecha); + dataRow.createCell(1).setCellValue(egreso.getNro()); + dataRow.createCell(2).setCellValue(egreso.getDescripcion()); + dataRow.createCell(3).setCellValue(egreso.getValor()); + + currentRow++; + } + + int lastRow = currentRow - 1; + + if (egresos.size() > 0) { + Row totalRow = sheet.createRow(currentRow++); + totalRows.add(totalRow); + totalRow.createCell(2).setCellValue("TOTAL DIARIO"); + totalRow.createCell(3) + .setCellFormula("SUM(D" + (firstRow + 1) + ":D" + (lastRow + 1) + ")"); + } + + currentDay = currentDay.plusDays(1); + } + } + + private void fillTotales() { + String operation = totalRows.stream().map(row -> "D" + (row.getRowNum() + 1)) + .reduce((a, b) -> String.join("+", a, b)).get(); + this.totalFinal = sheet.createRow(this.dataRows.get(this.dataRows.size()-1).getRowNum() + 2); + this.totalFinal.createCell(2).setCellValue("TOTAL MENSUAL"); + this.totalFinal.createCell(3).setCellFormula(operation); + + } + + private void freezeCells() { + this.sheet.createFreezePane(0, 1); + } + + private void addBorders() { + int rows = this.totalRows.size() + this.dataRows.size() + 1; + PropertyTemplate pt = new PropertyTemplate(); + + //Bordes Internos + pt.drawBorders(new CellRangeAddress(0, rows, 0, 3), BorderStyle.THIN, BorderExtent.ALL); + + //Bordes de los Headers + pt.drawBorders(new CellRangeAddress(0, 0, 0, 3), BorderStyle.MEDIUM, BorderExtent.OUTSIDE); + + //Bordes de los Totales + for (Row row : this.totalRows) { + int index = row.getRowNum(); + pt.drawBorders(new CellRangeAddress(index, index, 0, 3), BorderStyle.NONE, BorderExtent.ALL); + pt.drawBorders(new CellRangeAddress(index, index, 0, 3), BorderStyle.MEDIUM, + BorderExtent.OUTSIDE); + } + + //Borde del Total Final + pt.drawBorders( + new CellRangeAddress(this.totalFinal.getRowNum(), this.totalFinal.getRowNum(), 0, 3), + BorderStyle.NONE, BorderExtent.ALL); + pt.drawBorders( + new CellRangeAddress(this.totalFinal.getRowNum(), this.totalFinal.getRowNum(), 0, 3), + BorderStyle.MEDIUM, BorderExtent.OUTSIDE); + + //Borde externo + pt.drawBorders(new CellRangeAddress(0, rows, 0, 3), BorderStyle.MEDIUM, BorderExtent.OUTSIDE); + + pt.applyBorders(this.sheet); + } + + private void setStyles() { + //Estilo para el header + this.sheet.getRow(0).getCell(0).setCellStyle(this.styles.get("header")); + this.sheet.getRow(0).getCell(1).setCellStyle(this.styles.get("header")); + this.sheet.getRow(0).getCell(2).setCellStyle(this.styles.get("header")); + this.sheet.getRow(0).getCell(3).setCellStyle(this.styles.get("header")); + + //Estilo para el Total Final + this.totalFinal.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) + .setCellStyle(this.styles.get("gray")); + this.totalFinal.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) + .setCellStyle(this.styles.get("gray")); + this.totalFinal.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) + .setCellStyle(this.styles.get("gray")); + this.totalFinal.getCell(3).setCellStyle(this.styles.get("total_final")); + + //Estilo para las filas de datos + for (Row row : this.dataRows) { + row.getCell(0).setCellStyle(this.styles.get("date")); + row.getCell(1).setCellStyle(this.styles.get("regular")); + row.getCell(2).setCellStyle(this.styles.get("regular")); + row.getCell(3).setCellStyle(this.styles.get("money")); + } + + //Estilo para las filas de totales + for (Row row : this.totalRows) { + row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) + .setCellStyle(this.styles.get("not_so_gray")); + row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) + .setCellStyle(this.styles.get("not_so_gray")); + row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) + .setCellStyle(this.styles.get("not_so_gray")); + row.getCell(3, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) + .setCellStyle(this.styles.get("total")); + } + + //Setea el alto de las filas + this.sheet.getRow(0).setHeightInPoints(30); + this.totalFinal.setHeightInPoints(20); + for (Row row : this.dataRows) { + row.setHeightInPoints(15); + } + for (Row row : this.totalRows) { + row.setHeightInPoints(18); + } + + //Setea el ancho de las columnas + sheet.autoSizeColumn(0); + sheet.autoSizeColumn(1); + sheet.autoSizeColumn(2); + sheet.autoSizeColumn(3); + } + + private HashMap generateStyles() { + Font font = this.wb.createFont(); + font.setBold(true); + font.setColor(IndexedColors.WHITE.getIndex()); + + CellStyle regularStyle = this.wb.createCellStyle(); + + CellStyle grayStyle = this.wb.createCellStyle(); + grayStyle.setFont(font); + grayStyle.setVerticalAlignment(VerticalAlignment.CENTER); + grayStyle.setFillForegroundColor(IndexedColors.GREY_80_PERCENT.getIndex()); + grayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + + CellStyle notSoGrayStyle = this.wb.createCellStyle(); + notSoGrayStyle.setFont(font); + notSoGrayStyle.setVerticalAlignment(VerticalAlignment.CENTER); + notSoGrayStyle.setFillForegroundColor(IndexedColors.GREY_40_PERCENT.getIndex()); + notSoGrayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + + CellStyle dateStyle = this.wb.createCellStyle(); + dateStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("dd/mm/yyyy")); + + CellStyle moneyStyle = this.wb.createCellStyle(); + moneyStyle + .setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)")); + + CellStyle headerStyle = this.wb.createCellStyle(); + headerStyle.cloneStyleFrom(grayStyle); + headerStyle.setAlignment(HorizontalAlignment.CENTER); + + CellStyle totalStyle = this.wb.createCellStyle(); + totalStyle.cloneStyleFrom(notSoGrayStyle); + totalStyle + .setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)")); + + CellStyle totalFinalStyle = this.wb.createCellStyle(); + totalFinalStyle.cloneStyleFrom(grayStyle); + totalFinalStyle + .setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)")); + + HashMap styles = new HashMap<>(); + styles.put("regular", regularStyle); + styles.put("gray", grayStyle); + styles.put("not_so_gray", notSoGrayStyle); + styles.put("date", dateStyle); + styles.put("money", moneyStyle); + styles.put("header", headerStyle); + styles.put("total", totalStyle); + styles.put("total_final", totalFinalStyle); + + return styles; + } + + public Workbook generarInforme() { + fillHeaders(); + fillData(); + fillTotales(); + freezeCells(); + setStyles(); + addBorders(); + + return this.wb; + } +} diff --git a/src/danielcortes/xyz/models/egreso/EgresoDAO.java b/src/danielcortes/xyz/models/egreso/EgresoDAO.java index e425fe2..39df1bd 100644 --- a/src/danielcortes/xyz/models/egreso/EgresoDAO.java +++ b/src/danielcortes/xyz/models/egreso/EgresoDAO.java @@ -55,6 +55,8 @@ public abstract class EgresoDAO { public abstract List findByTipoEgreso(TipoEgreso tipoEgreso); + public abstract List getByTipoEgresoEnCaja(TipoEgreso tipoEgreso, Caja caja); + public abstract boolean insertEgreso(Egreso egreso); public abstract boolean updateEgreso(Egreso egreso); diff --git a/src/danielcortes/xyz/models/egreso/SQLiteEgresoDAO.java b/src/danielcortes/xyz/models/egreso/SQLiteEgresoDAO.java index cda16ee..d35cc03 100644 --- a/src/danielcortes/xyz/models/egreso/SQLiteEgresoDAO.java +++ b/src/danielcortes/xyz/models/egreso/SQLiteEgresoDAO.java @@ -150,6 +150,29 @@ public class SQLiteEgresoDAO extends EgresoDAO { return egresoList; } + @Override + public List getByTipoEgresoEnCaja(TipoEgreso tipoEgreso, Caja caja) { + List egresoList = new ArrayList<>(); + + if (caja == Caja.EMPTY) { + return egresoList; + } + + String query = "select * from egresos where tipo_egreso_id = ? and caja_id = ?"; + try (Connection conn = connectionHolder.getConnection()) { + try (PreparedStatement ps = conn.prepareStatement(query)) { + ps.setInt(1, tipoEgreso.getId()); + ps.setInt(2, caja.getId()); + try (ResultSet rs = ps.executeQuery()) { + egresoList = this.egresosFromResultSet(rs); + } + } + } catch (SQLException e) { + LOGGER.log(Level.SEVERE, e.toString(), e); + } + return egresoList; + } + @Override public boolean insertEgreso(Egreso egreso) { int updates; diff --git a/src/danielcortes/xyz/models/informes/egresos/InformeEgresosContent.java b/src/danielcortes/xyz/models/informes/egresos/InformeEgresosContent.java deleted file mode 100644 index e6ce691..0000000 --- a/src/danielcortes/xyz/models/informes/egresos/InformeEgresosContent.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2018-2019 Daniel Cortes - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package danielcortes.xyz.models.informes.egresos; - -import java.time.LocalDate; - -public class InformeEgresosContent { - - private LocalDate fecha; - private String nro; - private String descripcion; - private int valor; - - public LocalDate getFecha() { - return fecha; - } - - public void setFecha(LocalDate fecha) { - this.fecha = fecha; - } - - public String getNro() { - return nro; - } - - public void setNro(String nro) { - this.nro = nro; - } - - public String getDescripcion() { - return descripcion; - } - - public void setDescripcion(String descripcion) { - this.descripcion = descripcion; - } - - public int getValor() { - return valor; - } - - public void setValor(int valor) { - this.valor = valor; - } - - @Override - public String toString() { - return "InformeEgresosContent{" + - "fecha=" + fecha + - ", nro='" + nro + '\'' + - ", descripcion='" + descripcion + '\'' + - ", valor=" + valor + - '}'; - } -} diff --git a/src/danielcortes/xyz/models/informes/egresos/InformeEgresosContentDAO.java b/src/danielcortes/xyz/models/informes/egresos/InformeEgresosContentDAO.java deleted file mode 100644 index 062bde3..0000000 --- a/src/danielcortes/xyz/models/informes/egresos/InformeEgresosContentDAO.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2018-2019 Daniel Cortes - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package danielcortes.xyz.models.informes.egresos; - -import danielcortes.xyz.data.ConnectionHolder; -import java.time.YearMonth; -import java.util.List; - -public abstract class InformeEgresosContentDAO { - - protected ConnectionHolder connectionHolder; - - /** - * Genera el informe con nombre muy largo - * - * @param mes mes sobre el cual se quiere le informe - * @return lista del objeto que contiene los datos necesarios para el informe - */ - public abstract List getInformeEgresosFactuasMateriaPrima(YearMonth mes, - int tipoEgresoId); -} diff --git a/src/danielcortes/xyz/models/informes/egresos/SQLiteInformeEgresosContentDAO.java b/src/danielcortes/xyz/models/informes/egresos/SQLiteInformeEgresosContentDAO.java deleted file mode 100644 index d665216..0000000 --- a/src/danielcortes/xyz/models/informes/egresos/SQLiteInformeEgresosContentDAO.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2018-2019 Daniel Cortes - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package danielcortes.xyz.models.informes.egresos; - -import danielcortes.xyz.data.SQLiteConnectionHolder; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.time.LocalDate; -import java.time.YearMonth; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -public class SQLiteInformeEgresosContentDAO extends InformeEgresosContentDAO { - - private static final Logger LOGGER = Logger.getLogger(InformeEgresosContentDAO.class.getName()); - - private List list; - - public SQLiteInformeEgresosContentDAO() { - this.connectionHolder = new SQLiteConnectionHolder(); - } - - @Override - public List getInformeEgresosFactuasMateriaPrima(YearMonth mes, - int tipoEgresoId) { - list = new ArrayList<>(); - try (Connection conn = connectionHolder.getConnection()) { - - String query = "select caja.fecha as \"fecha\"," + - "egresos.nro as \"nro\"," + - "egresos.descripcion as \"descripcion\"," + - "egresos.valor as \"valor\"" + - "from egresos inner join caja on egresos.caja_id = caja.id " + - "where caja.fecha between date(?) and date(?) and egresos.tipo_egreso_id = ? " + - "order by caja.fecha;"; - - PreparedStatement ps = conn.prepareStatement(query); - ps.setString(1, mes.atDay(1).toString()); - ps.setString(2, mes.atEndOfMonth().toString()); - ps.setInt(3, tipoEgresoId); - ResultSet rs = ps.executeQuery(); - - LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2},{3}]", - new Object[]{mes.atDay(1), mes.atEndOfMonth(), tipoEgresoId}); - - this.fillInforme(rs); - } catch (SQLException e) { - LOGGER.log(Level.SEVERE, e.toString(), e); - } - return list; - } - - private void fillInforme(ResultSet rs) throws SQLException { - while (rs.next()) { - InformeEgresosContent content = new InformeEgresosContent(); - content.setFecha(LocalDate.parse(rs.getString("fecha"))); - content.setDescripcion(rs.getString("descripcion")); - content.setNro(rs.getString("nro")); - content.setValor(rs.getInt("valor")); - LOGGER.log(Level.FINER, "Se a creado: {0}", content); - list.add(content); - } - } -}