From 57d6d62b10c3334df06387401f40807e047eedcc Mon Sep 17 00:00:00 2001 From: Daniel Cortes Date: Wed, 27 Feb 2019 02:48:54 -0300 Subject: [PATCH] Metodos que creaban dialogos a clases Se separaron estos metodos para mayor claridad en el codigo y mas facil reutilizacion de los dialogos ya que ahora me vi en el caso de que me encontraba utilizando estos metodos en 2 vistas separadas y me vi copiando los metodos de una a otra, pero eso no es bonito! asi que las separe en clases con un solo metodo publico llamado execute el cual devuelve el objeto que se espera recibir o un null en caso de que el usuario cancele el dialogo o ocurra algun error. --- dist/Programa Caja.jar | Bin 14031212 -> 14039322 bytes dist/config/app.properties | 2 +- src/danielcortes/xyz/Main.java | 8 + .../EstadoResultadoController.java | 91 ++-- .../InformesSideBarController.java | 128 +----- .../xyz/informes/InformeEstadoResultado.java | 412 ++++++++++++++++++ .../xyz/informes/InformeLibroDeVentas.java | 4 +- .../dialogs/InformeGeneratedConfirmation.java | 33 ++ .../xyz/views/dialogs/MonthSelectDialog.java | 43 +- .../views/dialogs/TipoEgresoSelectDialog.java | 44 +- .../xyz/views/dialogs/XLSFileChooser.java | 79 ++++ .../listeners/WindowClosingListener.java | 18 + 12 files changed, 668 insertions(+), 194 deletions(-) create mode 100644 src/danielcortes/xyz/informes/InformeEstadoResultado.java create mode 100644 src/danielcortes/xyz/views/dialogs/InformeGeneratedConfirmation.java create mode 100644 src/danielcortes/xyz/views/dialogs/XLSFileChooser.java create mode 100644 src/danielcortes/xyz/views/listeners/WindowClosingListener.java diff --git a/dist/Programa Caja.jar b/dist/Programa Caja.jar index 2c599b8442f79e24265f1250f597cf99a21d5aa2..8b8482ac81c94462998582fd33e26a5d67d9cec3 100644 GIT binary patch delta 130611 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 A^Z)<= delta 121291 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 diff --git a/dist/config/app.properties b/dist/config/app.properties index c98d599..9940d3f 100644 --- a/dist/config/app.properties +++ b/dist/config/app.properties @@ -23,4 +23,4 @@ look_and_feel = javax.swing.plaf.metal.MetalLookAndFeel nombre_caja = DEV # directorio en el que sugerir donde guardar los informes. -base_save_directory =/home/ryuuji/src/caja/dist/local-release/informes/ +base_save_directory =/home/ryuuji/src/caja/dist/informes/ diff --git a/src/danielcortes/xyz/Main.java b/src/danielcortes/xyz/Main.java index 1b9ab40..9519af1 100644 --- a/src/danielcortes/xyz/Main.java +++ b/src/danielcortes/xyz/Main.java @@ -27,11 +27,14 @@ package danielcortes.xyz; import danielcortes.xyz.controllers.BaseLayoutController; import danielcortes.xyz.data.Configuration; import danielcortes.xyz.data.DAOManager; +import danielcortes.xyz.informes.InformeEstadoResultado; import danielcortes.xyz.views.BaseLayout; import javax.swing.*; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.time.YearMonth; import java.util.Locale; import java.util.logging.LogManager; @@ -47,6 +50,11 @@ public class Main { run(); } + public static void generarInforme(){ + File file = new File(Configuration.get("base_save_directory") + "test.xls"); + new InformeEstadoResultado(YearMonth.of(2019,2), file.toPath()).generarInforme(); + } + private static void run() { BaseLayout view = new BaseLayout(); BaseLayoutController controller = new BaseLayoutController(view); diff --git a/src/danielcortes/xyz/controllers/EstadoResultadoController.java b/src/danielcortes/xyz/controllers/EstadoResultadoController.java index 3f43091..317f494 100644 --- a/src/danielcortes/xyz/controllers/EstadoResultadoController.java +++ b/src/danielcortes/xyz/controllers/EstadoResultadoController.java @@ -1,15 +1,22 @@ package danielcortes.xyz.controllers; +import danielcortes.xyz.data.Configuration; import danielcortes.xyz.data.DAOManager; +import danielcortes.xyz.informes.InformeEstadoResultado; import danielcortes.xyz.models.estado_resultado.EstadoResultado; import danielcortes.xyz.models.estado_resultado.EstadoResultadoDAO; import danielcortes.xyz.models.tipo_egreso.TipoEgreso; +import danielcortes.xyz.utils.StringUtils; import danielcortes.xyz.views.EstadoResultadoView; +import danielcortes.xyz.views.dialogs.InformeGeneratedConfirmation; +import danielcortes.xyz.views.dialogs.XLSFileChooser; import danielcortes.xyz.views.listeners.FocusLostListener; +import java.nio.file.Path; import java.time.YearMonth; +import java.time.format.DateTimeFormatter; -public class EstadoResultadoController extends BaseController{ +public class EstadoResultadoController extends BaseController { private EstadoResultadoView view; private EstadoResultado estadoResultado; private YearMonth mes; @@ -20,11 +27,7 @@ public class EstadoResultadoController extends BaseController{ this.updateMonth(); } - public EstadoResultadoView getView() { - return view; - } - - public void update(){ + public void update() { this.updateMonth(); } @@ -36,9 +39,10 @@ public class EstadoResultadoController extends BaseController{ this.setupMovementViewEvents(); this.view.getGuardarButton().addActionListener(e -> EstadoResultadoController.this.guardarListener()); + this.view.getExportarButton().addActionListener(e -> EstadoResultadoController.this.exportarListener()); } - private void setupUpdateViewEvents(){ + private void setupUpdateViewEvents() { this.view.getGastosGeneralesCuentaCorrienteFactura().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosGenerales()); this.view.getGastosGeneralesCuentaCorrienteBoleta().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosGenerales()); this.view.getGastosGeneralesCuentaCorrienteSinRespaldo().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosGenerales()); @@ -89,6 +93,22 @@ public class EstadoResultadoController extends BaseController{ dao.updateEstadoResultado(this.estadoResultado); } + private void exportarListener() { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM yyyy"); + String formatedName = mes.format(formatter); + String capitalized = StringUtils.capitalize(formatedName); + + Path saveFile = new XLSFileChooser(Configuration.get("base_save_directory") + "Estado Resultado " + capitalized).execute(); + + if(saveFile == null){ + return; + } + + InformeEstadoResultado estadoResultado = new InformeEstadoResultado(this.mes, saveFile); + estadoResultado.generarInforme(); + new InformeGeneratedConfirmation(saveFile).execute(); + } + private void updateMonth() { this.mes = this.view.getMonth(); this.estadoResultado = DAOManager.getEstadoResultadoDAO().findByMonth(this.mes); @@ -108,8 +128,8 @@ public class EstadoResultadoController extends BaseController{ private void fillVentas() { int ventaBruta = DAOManager.getIngresoDAO().getTotalIngresoMes(this.mes); int ventaExentas = DAOManager.getIngresoDAO().getTotalExentasMes(this.mes); - int ventaIVA = (int) Math.round((double) ventaBruta * .19d); - int ventaNeta = ventaBruta - ventaIVA; + int ventaNeta = (int) Math.round((double) ventaBruta / 1.19d); + int ventaIVA = ventaBruta - ventaNeta; int ventaNetaYExentas = ventaExentas + ventaNeta; this.view.getVentaBrutaField().setValue(ventaBruta); @@ -120,21 +140,17 @@ public class EstadoResultadoController extends BaseController{ } private void fillGastosGenerales() { - TipoEgreso facturaMateriaPrima = DAOManager.getTipoEgresoDAO().findByNombre("Factura Materia Prima").get(0); TipoEgreso facturaGastosGenerales = DAOManager.getTipoEgresoDAO().findByNombre("Factura Gastos Generales").get(0); TipoEgreso gastoGeneralConBoleta = DAOManager.getTipoEgresoDAO().findByNombre("Gasto General Con Boleta").get(0); - TipoEgreso gastoMenorMateriaPrima = DAOManager.getTipoEgresoDAO().findByNombre("Gasto Menor Materia Prima").get(0); TipoEgreso gastoGeneralSinRespaldo = DAOManager.getTipoEgresoDAO().findByNombre("Gasto General Sin Respaldo").get(0); int cuentaCorrienteFactura = this.estadoResultado.getCuentaCorrienteFactura(); int cuentaCorrienteBoleta = this.estadoResultado.getCuentaCorrienteBoleta(); int cuentaCorrienteSinRespaldo = this.estadoResultado.getCuentaCorrienteSinRespaldo(); - int efectivoFacturaMateriaPrima = DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, facturaMateriaPrima); int efectivoFacturaGastosGenerales = DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, facturaGastosGenerales); int efectivoGastoGeneralConBoleta = DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, gastoGeneralConBoleta); - int efectivoGastoMenorMateriaPrima = DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, gastoMenorMateriaPrima); int efectivoGastoGeneralSinRespaldo = DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, gastoGeneralSinRespaldo); - int gastoTotal = efectivoFacturaMateriaPrima + efectivoFacturaGastosGenerales + efectivoGastoGeneralConBoleta + efectivoGastoMenorMateriaPrima + efectivoGastoGeneralSinRespaldo + cuentaCorrienteBoleta + cuentaCorrienteFactura + cuentaCorrienteSinRespaldo; + int gastoTotal = efectivoFacturaGastosGenerales + efectivoGastoGeneralConBoleta + efectivoGastoGeneralSinRespaldo + cuentaCorrienteBoleta + cuentaCorrienteFactura + cuentaCorrienteSinRespaldo; this.view.getGastosGeneralesEfectivoFacturaField().setValue(efectivoFacturaGastosGenerales); this.view.getGastosGeneralesEfectivoBoletaField().setValue(efectivoGastoGeneralConBoleta); @@ -160,7 +176,7 @@ public class EstadoResultadoController extends BaseController{ int total = costoVenta + remuneraciones + finiquitos + aguinaldo + bonosPersonal + honorariosContador + arriendo + partime; - double porcentajeCostoVenta = (double) costoVenta / (double)ventaBruta * 100d; + double porcentajeCostoVenta = (double) costoVenta / (double) ventaBruta * 100d; this.view.getGastosOperacionalesCostoVenta().setValue(costoVenta); this.view.getGastosOperacionesPorcentajeCostoVenta().setValue(porcentajeCostoVenta); @@ -285,7 +301,7 @@ public class EstadoResultadoController extends BaseController{ int total = oldTotal - (oldCostoVenta + oldRemuneraciones + oldFiniquitos + oldAguinaldo + oldBonos + oldHonorarios + oldArriendo) + (costoVenta + remuneraciones + finiquitos + aguinaldo + bonos + honorarios + arriendo); - double porcentajeCostoVenta = (double) costoVenta / (double)ventaBruta * 100d; + double porcentajeCostoVenta = (double) costoVenta / (double) ventaBruta * 100d; this.view.getGastosOperacionalesTotal().setValue(total); this.view.getGastosOperacionesPorcentajeCostoVenta().setValue(porcentajeCostoVenta); @@ -294,31 +310,32 @@ public class EstadoResultadoController extends BaseController{ } private void updateResumen() { - int bruto = this.view.getVentaBrutaField().getValue(); - int totalGastosOperacionales = this.view.getGastosOperacionalesTotal().getValue(); - int totalGastosGenerales = this.view.getGastosGeneralesTotal().getValue(); - int totalServicios = this.view.getServiciosTotal().getValue(); - int netoExentas = this.view.getVentasNetaExentasField().getValue(); - int iva = this.view.getVentaIVAField().getValue(); - double ppm = this.view.getResumenPPM().getValue(); - int ivaFavor = this.view.getResumenIVAFavor().getValue(); + int bruto = this.view.getVentaBrutaField().getValue(); + int totalGastosOperacionales = this.view.getGastosOperacionalesTotal().getValue(); + int totalGastosGenerales = this.view.getGastosGeneralesTotal().getValue(); + int totalServicios = this.view.getServiciosTotal().getValue(); + int netoExentas = this.view.getVentasNetaExentasField().getValue(); + int iva = this.view.getVentaIVAField().getValue(); + double ppm = this.view.getResumenPPM().getValue(); + int ivaFavor = this.view.getResumenIVAFavor().getValue(); - int utilidad = bruto - totalGastosGenerales - totalGastosOperacionales - totalServicios; - int ppmMes = (int) Math.round(ppm * (double)netoExentas / 100d); - int IVAPPM = iva + ppmMes; - int aPagar = IVAPPM - ivaFavor; - int resultado = utilidad - aPagar; + int utilidad = bruto - totalGastosGenerales - totalGastosOperacionales - totalServicios; + int ppmMes = (int) Math.round(ppm * (double) netoExentas / 100d); + int IVAPPM = iva + ppmMes; + int aPagar = IVAPPM - ivaFavor; + int resultado = utilidad - aPagar; - this.view.getResumenUtilidad().setValue(utilidad); - this.view.getResumenPPMMes().setValue(ppmMes); - this.view.getResumenIVAMes().setValue(iva); - this.view.getResumenIVAPPM().setValue(IVAPPM); - this.view.getResumenAPagar().setValue(aPagar); - this.view.getResumenResultado().setValue(resultado); + this.view.getResumenUtilidad().setValue(utilidad); + this.view.getResumenPPMMes().setValue(ppmMes); + this.view.getResumenIVAMes().setValue(iva); + this.view.getResumenIVAPPM().setValue(IVAPPM); + this.view.getResumenAPagar().setValue(aPagar); + this.view.getResumenResultado().setValue(resultado); - this.estadoResultado.setPpm(ppm); - this.estadoResultado.setIvaFavor(ivaFavor); + this.estadoResultado.setPpm(ppm); + this.estadoResultado.setIvaFavor(ivaFavor); } + } diff --git a/src/danielcortes/xyz/controllers/InformesSideBarController.java b/src/danielcortes/xyz/controllers/InformesSideBarController.java index bf9aaa0..5e93196 100644 --- a/src/danielcortes/xyz/controllers/InformesSideBarController.java +++ b/src/danielcortes/xyz/controllers/InformesSideBarController.java @@ -30,15 +30,12 @@ import danielcortes.xyz.informes.InformeLibroDeVentas; import danielcortes.xyz.models.tipo_egreso.TipoEgreso; import danielcortes.xyz.utils.StringUtils; import danielcortes.xyz.views.InformesSideBar; +import danielcortes.xyz.views.dialogs.InformeGeneratedConfirmation; import danielcortes.xyz.views.dialogs.MonthSelectDialog; import danielcortes.xyz.views.dialogs.TipoEgresoSelectDialog; +import danielcortes.xyz.views.dialogs.XLSFileChooser; -import javax.swing.*; -import javax.swing.filechooser.FileNameExtensionFilter; -import java.awt.*; -import java.io.File; -import java.io.IOException; -import java.nio.file.*; +import java.nio.file.Path; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @@ -60,7 +57,7 @@ public class InformesSideBarController { } private void generarInformeLibroDeVentasListener() { - LocalDate month = askForMonth(); + LocalDate month = new MonthSelectDialog().execute(); if (month == null) { return; } @@ -69,24 +66,25 @@ public class InformesSideBarController { String formatedName = month.format(formatter); String capitalized = StringUtils.capitalize(formatedName); - Path saveFile = askForFile(Configuration.get("base_save_directory") + "Libro " + capitalized); + Path saveFile = new XLSFileChooser(Configuration.get("base_save_directory") + "Libro " + capitalized).execute(); + if (saveFile == null) { return; } InformeLibroDeVentas informe = new InformeLibroDeVentas(month, saveFile); - Path generatedFile = informe.generarInforme(); + informe.generarInforme(); - this.showConfirmation(generatedFile); + new InformeGeneratedConfirmation(saveFile).execute(); } private void generarInformeEgresosListener() { - TipoEgreso tipoEgreso = askForTipoEgreso(); + TipoEgreso tipoEgreso = new TipoEgresoSelectDialog().execute(); if (tipoEgreso == null) { return; } - LocalDate month = askForMonth(); + LocalDate month = new MonthSelectDialog().execute(); if (month == null) { return; } @@ -94,7 +92,7 @@ public class InformesSideBarController { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM YYYY"); String formatedMonth = month.format(formatter); - Path saveFile = askForFile("Informe Egresos - " + tipoEgreso.getNombre() + " - " + StringUtils.capitalize(formatedMonth)); + Path saveFile = new XLSFileChooser("Informe Egresos - " + tipoEgreso.getNombre() + " - " + StringUtils.capitalize(formatedMonth)).execute(); if (saveFile == null) { return; } @@ -102,108 +100,6 @@ public class InformesSideBarController { InformeEgresos informe = new InformeEgresos(tipoEgreso.getId(), month, saveFile); Path generatedFile = informe.generarInforme(); - this.showConfirmation(generatedFile); - } - - private LocalDate askForMonth() { - MonthSelectDialog monthSelectDialog = new MonthSelectDialog(null); - if (monthSelectDialog.isAcepted()) { - return monthSelectDialog.getMonth(); - } else { - return null; - } - } - - private TipoEgreso askForTipoEgreso() { - TipoEgresoSelectDialog tipoEgresoSelectDialog = new TipoEgresoSelectDialog(null); - if (tipoEgresoSelectDialog.isAcepted()) { - return tipoEgresoSelectDialog.getTipoEgreso(); - } else { - return null; - } - } - - private Path askForFile(String suggestedName) { - JFileChooser chooser = new JFileChooser(); - chooser.setDialogType(JFileChooser.SAVE_DIALOG); - chooser.setSelectedFile(new File(suggestedName + ".xls")); - chooser.setFileFilter(new FileNameExtensionFilter("Excel 2007", "xls")); - - if (chooser.showSaveDialog(this.view.getContentPanel()) == JFileChooser.APPROVE_OPTION) { - return processFilePath(chooser.getSelectedFile().getPath()); - } else { - return null; - } - } - - private void showConfirmation(Path path) { - int result = JOptionPane.showConfirmDialog( - null, - "El informes se a generado\n" + - "¿Desea abrirlo?", - "Confirmacion", - JOptionPane.YES_NO_OPTION, - JOptionPane.QUESTION_MESSAGE - ); - - if (result == 0) { - try { - Desktop.getDesktop().open(path.toFile()); - } catch (IOException e) { - e.printStackTrace(); - } - - } - } - - private Path processFilePath(String pathString) { - Path path; - - if (!pathString.endsWith(".xls")) { - pathString = pathString + ".xls"; - } - - try { - path = Paths.get(pathString); - } catch (InvalidPathException e) { - e.printStackTrace(); - - JOptionPane.showMessageDialog( - this.view.getContentPanel(), - "El nombre de archivo entregado es invalido", - "Error!", - JOptionPane.ERROR_MESSAGE - ); - return null; - } - - try { - Files.createFile(path); - } catch (FileAlreadyExistsException e) { - int response = JOptionPane.showConfirmDialog( - this.view.getContentPanel(), - "El archivo ya existe\n¿Desea sobreescribirlo?", - "Confirmacion", - JOptionPane.YES_NO_OPTION, - JOptionPane.WARNING_MESSAGE - ); - - if (response != 0) { - return null; - } - - } catch (IOException e) { - e.printStackTrace(); - JOptionPane.showMessageDialog( - this.view.getContentPanel(), - "No a sido posible crear el archivo", - "Error!", - JOptionPane.ERROR_MESSAGE - ); - - return null; - } - - return path; + new InformeGeneratedConfirmation(saveFile).execute(); } } diff --git a/src/danielcortes/xyz/informes/InformeEstadoResultado.java b/src/danielcortes/xyz/informes/InformeEstadoResultado.java new file mode 100644 index 0000000..06ef417 --- /dev/null +++ b/src/danielcortes/xyz/informes/InformeEstadoResultado.java @@ -0,0 +1,412 @@ +package danielcortes.xyz.informes; + +import danielcortes.xyz.data.DAOManager; +import danielcortes.xyz.models.estado_resultado.EstadoResultado; +import danielcortes.xyz.models.tipo_egreso.TipoEgreso; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.ss.util.PropertyTemplate; + +import java.io.IOException; +import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.YearMonth; +import java.util.ArrayList; +import java.util.HashMap; + +public class InformeEstadoResultado { + private ArrayList headers; + private ArrayList footers; + private ArrayList ventaRows; + private ArrayList gastosOperacionalesRows; + private ArrayList serviciosRows; + private ArrayList gastosGeneralesRows; + private ArrayList resumenGeneralRows; + + private YearMonth mes; + private Path saveFile; + + private EstadoResultado estadoResultado; + + private Workbook wb; + private Sheet sheet; + private CreationHelper createHelper; + private HashMap styles; + + public InformeEstadoResultado(YearMonth mes, Path saveFile) { + this.mes = mes; + this.saveFile = saveFile; + + this.estadoResultado = DAOManager.getEstadoResultadoDAO().findByMonth(this.mes); + + this.wb = new HSSFWorkbook(); + this.sheet = wb.createSheet(); + this.createHelper = wb.getCreationHelper(); + + this.headers = new ArrayList<>(); + this.footers = new ArrayList<>(); + this.ventaRows = new ArrayList<>(); + this.gastosOperacionalesRows = new ArrayList<>(); + this.serviciosRows = new ArrayList<>(); + this.gastosGeneralesRows = new ArrayList<>(); + this.resumenGeneralRows = new ArrayList<>(); + + this.styles = this.generateStyles(); + } + + private void fillHeaders() { + Row venta = this.sheet.createRow(0); + Row gastosOperacionales = this.sheet.createRow(7); + Row servicios = this.sheet.createRow(18); + Row gastosGenerales = this.sheet.createRow(25); + Row resumenGeneral = this.sheet.createRow(34); + + venta.createCell(0).setCellValue("Venta"); + venta.createCell(1); + gastosOperacionales.createCell(0).setCellValue("Gastos Operacionales"); + gastosOperacionales.createCell(1); + servicios.createCell(0).setCellValue("Servicios"); + servicios.createCell(1); + gastosGenerales.createCell(0).setCellValue("Gastos Generales"); + gastosGenerales.createCell(1); + resumenGeneral.createCell(0).setCellValue("Resumen General"); + resumenGeneral.createCell(1); + resumenGeneral.createCell(2); + + + this.headers.add(venta); + this.headers.add(gastosOperacionales); + this.headers.add(servicios); + this.headers.add(gastosGenerales); + this.headers.add(resumenGeneral); + } + + private void fillVentaData() { + Row bruto = sheet.createRow(1); + Row neto = sheet.createRow(2); + Row iva = sheet.createRow(3); + Row exentas = sheet.createRow(4); + this.ventaRows.add(bruto); + this.ventaRows.add(neto); + this.ventaRows.add(iva); + this.ventaRows.add(exentas); + + bruto.createCell(0).setCellValue("Bruto"); + bruto.createCell(1).setCellValue(DAOManager.getIngresoDAO().getTotalIngresoMes(this.mes)); + + neto.createCell(0).setCellValue("Neto"); + neto.createCell(1).setCellFormula("B2/1.19"); + + iva.createCell(0).setCellValue("IVA"); + iva.createCell(1).setCellFormula("B2-B3"); + + exentas.createCell(0).setCellValue("Exentas"); + exentas.createCell(1).setCellValue(DAOManager.getIngresoDAO().getTotalExentasMes(this.mes)); + } + + private void fillGastosOperacionalesData() { + Row costoVenta = sheet.createRow(8); + Row remuneraciones = sheet.createRow(9); + Row finiquitos = sheet.createRow(10); + Row aguinaldo = sheet.createRow(11); + Row partime = sheet.createRow(12); + Row bonosPersonal = sheet.createRow(13); + Row honorariosContador = sheet.createRow(14); + Row arriendo = sheet.createRow(15); + + this.gastosOperacionalesRows.add(costoVenta); + this.gastosOperacionalesRows.add(remuneraciones); + this.gastosOperacionalesRows.add(finiquitos); + this.gastosOperacionalesRows.add(aguinaldo); + this.gastosOperacionalesRows.add(partime); + this.gastosOperacionalesRows.add(bonosPersonal); + this.gastosOperacionalesRows.add(honorariosContador); + this.gastosOperacionalesRows.add(arriendo); + + costoVenta.createCell(0).setCellValue("Costo de Venta"); + costoVenta.createCell(1).setCellValue(this.estadoResultado.getCostoVenta()); + + remuneraciones.createCell(0).setCellValue("Remuneraciones"); + remuneraciones.createCell(1).setCellValue(this.estadoResultado.getRemuneraciones()); + + finiquitos.createCell(0).setCellValue("Finiquitos"); + finiquitos.createCell(1).setCellValue(this.estadoResultado.getFiniquitos()); + + aguinaldo.createCell(0).setCellValue("Aguinaldo"); + aguinaldo.createCell(1).setCellValue(this.estadoResultado.getAguinaldo()); + + partime.createCell(0).setCellValue("Partime"); + partime.createCell(1).setCellValue(DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, DAOManager.getTipoEgresoDAO().findByNombre("Pago Partime").get(0))); + + bonosPersonal.createCell(0).setCellValue("Bonos Personal"); + bonosPersonal.createCell(1).setCellValue(this.estadoResultado.getBonosPersonal()); + + honorariosContador.createCell(0).setCellValue("Honorarios Contador"); + honorariosContador.createCell(1).setCellValue(this.estadoResultado.getHonorariosContador()); + + arriendo.createCell(0).setCellValue("Arriendo"); + arriendo.createCell(1).setCellValue(this.estadoResultado.getArriendo()); + } + + private void fillServiciosData() { + Row agua = sheet.createRow(19); + Row luz = sheet.createRow(20); + Row gas = sheet.createRow(21); + Row telefono = sheet.createRow(22); + + this.serviciosRows.add(agua); + this.serviciosRows.add(luz); + this.serviciosRows.add(gas); + this.serviciosRows.add(telefono); + + agua.createCell(0).setCellValue("Agua"); + agua.createCell(1).setCellValue(this.estadoResultado.getAgua()); + luz.createCell(0).setCellValue("Luz"); + luz.createCell(1).setCellValue(this.estadoResultado.getLuz()); + gas.createCell(0).setCellValue("Gas"); + gas.createCell(1).setCellValue(this.estadoResultado.getGas()); + telefono.createCell(0).setCellValue("Telefono"); + telefono.createCell(1).setCellValue(this.estadoResultado.getTelefono()); + } + + private void fillGastosGeneralesData() { + TipoEgreso facturaGastosGenerales = DAOManager.getTipoEgresoDAO().findByNombre("Factura Gastos Generales").get(0); + TipoEgreso gastoGeneralConBoleta = DAOManager.getTipoEgresoDAO().findByNombre("Gasto General Con Boleta").get(0); + TipoEgreso gastoGeneralSinRespaldo = DAOManager.getTipoEgresoDAO().findByNombre("Gasto General Sin Respaldo").get(0); + + Row cuentaCorrienteFactura = sheet.createRow(26); + Row cuentaCorrienteBoleta = sheet.createRow(27); + Row cuentaCorrienteSinRespaldo = sheet.createRow(28); + Row efectivoFactura = sheet.createRow(29); + Row efectivoBoleta = sheet.createRow(30); + Row efectivoSinRespaldo = sheet.createRow(31); + + this.gastosGeneralesRows.add(cuentaCorrienteFactura); + this.gastosGeneralesRows.add(cuentaCorrienteBoleta); + this.gastosGeneralesRows.add(cuentaCorrienteSinRespaldo); + this.gastosGeneralesRows.add(efectivoFactura); + this.gastosGeneralesRows.add(efectivoBoleta); + this.gastosGeneralesRows.add(efectivoSinRespaldo); + + cuentaCorrienteFactura.createCell(0).setCellValue("CTA CTE con Factura"); + cuentaCorrienteFactura.createCell(1).setCellValue(this.estadoResultado.getCuentaCorrienteFactura()); + cuentaCorrienteBoleta.createCell(0).setCellValue("CTA CTE con Boleta"); + cuentaCorrienteBoleta.createCell(1).setCellValue(this.estadoResultado.getCuentaCorrienteBoleta()); + cuentaCorrienteSinRespaldo.createCell(0).setCellValue("CTA CTE sin Respaldo"); + cuentaCorrienteSinRespaldo.createCell(1).setCellValue(this.estadoResultado.getCuentaCorrienteSinRespaldo()); + + efectivoFactura.createCell(0).setCellValue("Efectivo con Factura"); + efectivoFactura.createCell(1).setCellValue(DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, facturaGastosGenerales)); + efectivoBoleta.createCell(0).setCellValue("Efectivo con Boleta"); + efectivoBoleta.createCell(1).setCellValue(DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, gastoGeneralConBoleta)); + efectivoSinRespaldo.createCell(0).setCellValue("Efectivo sin Respaldo"); + efectivoSinRespaldo.createCell(1).setCellValue(DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, gastoGeneralSinRespaldo)); + } + + private void fillResumenGeneralData() { + Row utilidad = sheet.createRow(35); + Row ppmMes = sheet.createRow(36); + Row ivaMes = sheet.createRow(37); + Row ivaMesPpm = sheet.createRow(38); + Row ivaFavor = sheet.createRow(39); + Row aPagar = sheet.createRow(40); + + this.resumenGeneralRows.add(utilidad); + this.resumenGeneralRows.add(ppmMes); + this.resumenGeneralRows.add(ivaMes); + this.resumenGeneralRows.add(ivaMesPpm); + this.resumenGeneralRows.add(ivaFavor); + this.resumenGeneralRows.add(aPagar); + + utilidad.createCell(0).setCellValue("Utilidad"); + utilidad.createCell(1); + utilidad.createCell(2).setCellFormula("B2 - B17 - B24 - B33"); + + ppmMes.createCell(0).setCellValue("PPM Mes"); + ppmMes.createCell(1).setCellValue(this.estadoResultado.getPpm() / 100); + ppmMes.createCell(2).setCellFormula("B6 * B37"); + + ivaMes.createCell(0).setCellValue("+ IVA Mes"); + ivaMes.createCell(1); + ivaMes.createCell(2).setCellFormula("B4"); + + ivaMesPpm.createCell(0); + ivaMesPpm.createCell(1); + ivaMesPpm.createCell(2).setCellFormula("C37 + C38"); + + ivaFavor.createCell(0).setCellValue("- IVA a Favor"); + ivaFavor.createCell(1); + ivaFavor.createCell(2).setCellValue(this.estadoResultado.getIvaFavor()); + + aPagar.createCell(0).setCellValue("A Pagar PPM + IVA"); + aPagar.createCell(1); + aPagar.createCell(2).setCellFormula("C39 - C40"); + } + + private void fillFooters() { + Row venta = sheet.createRow(5); + Row gastosOperacionales = sheet.createRow(16); + Row servicios = sheet.createRow(23); + Row gastosGenerales = sheet.createRow(32); + Row resumenGeneral = sheet.createRow(41); + + this.footers.add(venta); + this.footers.add(gastosOperacionales); + this.footers.add(servicios); + this.footers.add(gastosGenerales); + this.footers.add(resumenGeneral); + + venta.createCell(0).setCellValue("Neto mas Exentas"); + venta.createCell(1).setCellFormula("B5+B3"); + + gastosOperacionales.createCell(0).setCellValue("Total"); + gastosOperacionales.createCell(1).setCellFormula("Sum(B9:B16)"); + + servicios.createCell(0).setCellValue("Total"); + servicios.createCell(1).setCellFormula("Sum(B20:B23)"); + + gastosGenerales.createCell(0).setCellValue("Total"); + gastosGenerales.createCell(1).setCellFormula("Sum(B27:B32)"); + + resumenGeneral.createCell(0).setCellValue("Resultado"); + resumenGeneral.createCell(1); + resumenGeneral.createCell(2).setCellFormula("C36 - C41"); + } + + private void setStyles() { + for (Row header : this.headers) { + header.getCell(0).setCellStyle(this.styles.get("header")); + header.getCell(1).setCellStyle(this.styles.get("header")); + header.setHeightInPoints(20); + } + + for (Row footer : this.footers) { + footer.getCell(0).setCellStyle(this.styles.get("footer")); + footer.getCell(1).setCellStyle(this.styles.get("footer_money")); + footer.setHeightInPoints(20); + } + + //Adicionalmente, el footer y el header de resumen general tiene una columna mas de datos + headers.get(headers.size() - 1).getCell(2).setCellStyle(this.styles.get("header")); + footers.get(footers.size() - 1).getCell(1).setCellStyle(this.styles.get("footer")); + footers.get(footers.size() - 1).getCell(2).setCellStyle(this.styles.get("footer_money")); + + for (Row row : this.ventaRows) { + row.getCell(0).setCellStyle(this.styles.get("regular")); + row.getCell(1).setCellStyle(this.styles.get("money")); + row.setHeightInPoints(15); + } + for (Row row : this.gastosOperacionalesRows) { + row.getCell(0).setCellStyle(this.styles.get("regular")); + row.getCell(1).setCellStyle(this.styles.get("money")); + row.setHeightInPoints(15); + } + for (Row row : this.serviciosRows) { + row.getCell(0).setCellStyle(this.styles.get("regular")); + row.getCell(1).setCellStyle(this.styles.get("money")); + row.setHeightInPoints(15); + } + for (Row row : this.gastosGeneralesRows) { + row.getCell(0).setCellStyle(this.styles.get("regular")); + row.getCell(1).setCellStyle(this.styles.get("money")); + row.setHeightInPoints(15); + } + for (Row row : this.resumenGeneralRows) { + row.getCell(0).setCellStyle(this.styles.get("regular")); + row.getCell(1).setCellStyle(this.styles.get("regular")); + row.getCell(2).setCellStyle(this.styles.get("money")); + row.setHeightInPoints(15); + } + + //La fila de ppm mes en el resumen general tiene un campo distinto que contiene un porcentaje + resumenGeneralRows.get(1).getCell(1).setCellStyle(this.styles.get("percent")); + + sheet.autoSizeColumn(0); + sheet.autoSizeColumn(1); + sheet.autoSizeColumn(2); + } + + private void addBorders() { + PropertyTemplate pt = new PropertyTemplate(); + pt.drawBorders(new CellRangeAddress(0, 0, 0, 1), BorderStyle.THIN, BorderExtent.OUTSIDE); + pt.drawBorders(new CellRangeAddress(5, 5, 0, 1), BorderStyle.THIN, BorderExtent.OUTSIDE); + pt.drawBorders(new CellRangeAddress(7, 7, 0, 1), BorderStyle.THIN, BorderExtent.OUTSIDE); + pt.drawBorders(new CellRangeAddress(16, 16, 0, 1), BorderStyle.THIN, BorderExtent.OUTSIDE); + pt.drawBorders(new CellRangeAddress(18, 18, 0, 1), BorderStyle.THIN, BorderExtent.OUTSIDE); + pt.drawBorders(new CellRangeAddress(23, 23, 0, 1), BorderStyle.THIN, BorderExtent.OUTSIDE); + pt.drawBorders(new CellRangeAddress(25, 25, 0, 1), BorderStyle.THIN, BorderExtent.OUTSIDE); + pt.drawBorders(new CellRangeAddress(32, 32, 0, 1), BorderStyle.THIN, BorderExtent.OUTSIDE); + pt.drawBorders(new CellRangeAddress(34, 34, 0, 2), BorderStyle.THIN, BorderExtent.OUTSIDE); + pt.drawBorders(new CellRangeAddress(41, 41, 0, 2), BorderStyle.THIN, BorderExtent.OUTSIDE); + + pt.drawBorders(new CellRangeAddress(1, 4, 0, 1), BorderStyle.THIN, BorderExtent.VERTICAL); + pt.drawBorders(new CellRangeAddress(8, 15, 0, 1), BorderStyle.THIN, BorderExtent.VERTICAL); + pt.drawBorders(new CellRangeAddress(19, 23, 0, 1), BorderStyle.THIN, BorderExtent.VERTICAL); + pt.drawBorders(new CellRangeAddress(26, 31, 0, 1), BorderStyle.THIN, BorderExtent.VERTICAL); + pt.drawBorders(new CellRangeAddress(35, 40, 0, 2), BorderStyle.THIN, BorderExtent.VERTICAL); + + pt.applyBorders(this.sheet); + } + + public void generarInforme() { + fillHeaders(); + fillVentaData(); + fillGastosOperacionalesData(); + fillServiciosData(); + fillGastosGeneralesData(); + fillResumenGeneralData(); + fillFooters(); + setStyles(); + addBorders(); + + try (OutputStream fileOut = Files.newOutputStream(this.saveFile)) { + wb.write(fileOut); + } catch (IOException e) { + e.printStackTrace(); + } + } + + 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.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + grayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + + CellStyle moneyStyle = this.wb.createCellStyle(); + moneyStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)")); + + CellStyle percentStyle = this.wb.createCellStyle(); + percentStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("0.00%")); + + CellStyle headerStyle = this.wb.createCellStyle(); + headerStyle.cloneStyleFrom(grayStyle); + headerStyle.setVerticalAlignment(VerticalAlignment.CENTER); + + CellStyle footerStyle = this.wb.createCellStyle(); + footerStyle.cloneStyleFrom(grayStyle); + footerStyle.setVerticalAlignment(VerticalAlignment.CENTER); + + CellStyle footerMoneyStyle = this.wb.createCellStyle(); + footerMoneyStyle.cloneStyleFrom(footerStyle); + footerMoneyStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)")); + + HashMap styles = new HashMap<>(); + styles.put("regular", regularStyle); + styles.put("money", moneyStyle); + styles.put("percent", percentStyle); + styles.put("header", headerStyle); + styles.put("footer", footerStyle); + styles.put("footer_money", footerMoneyStyle); + + return styles; + } + +} diff --git a/src/danielcortes/xyz/informes/InformeLibroDeVentas.java b/src/danielcortes/xyz/informes/InformeLibroDeVentas.java index c94f498..6d1cf4f 100644 --- a/src/danielcortes/xyz/informes/InformeLibroDeVentas.java +++ b/src/danielcortes/xyz/informes/InformeLibroDeVentas.java @@ -299,7 +299,7 @@ public class InformeLibroDeVentas { } } - public Path generarInforme() { + public void generarInforme() { sortInforme(); fillData(); fillHeaders(); @@ -311,11 +311,9 @@ public class InformeLibroDeVentas { try (OutputStream fileOut = Files.newOutputStream(this.saveFile)) { wb.write(fileOut); - return this.saveFile; } catch (IOException e) { e.printStackTrace(); } - return null; } private HashMap generateStyles() { diff --git a/src/danielcortes/xyz/views/dialogs/InformeGeneratedConfirmation.java b/src/danielcortes/xyz/views/dialogs/InformeGeneratedConfirmation.java new file mode 100644 index 0000000..33f3b37 --- /dev/null +++ b/src/danielcortes/xyz/views/dialogs/InformeGeneratedConfirmation.java @@ -0,0 +1,33 @@ +package danielcortes.xyz.views.dialogs; + +import javax.swing.*; +import java.awt.*; +import java.io.IOException; +import java.nio.file.Path; + +public class InformeGeneratedConfirmation { + private Path path; + + public InformeGeneratedConfirmation(Path path){ + this.path = path; + } + + public void execute(){ + int result = JOptionPane.showConfirmDialog( + null, + "El informes se a generado" + "\n" + "¿Desea abrirlo?", + "Confirmacion", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE + ); + + if (result == 0) { + try { + Desktop.getDesktop().open(this.path.toFile()); + } catch (IOException e) { + e.printStackTrace(); + } + + } + } +} diff --git a/src/danielcortes/xyz/views/dialogs/MonthSelectDialog.java b/src/danielcortes/xyz/views/dialogs/MonthSelectDialog.java index d65420b..ecef30e 100644 --- a/src/danielcortes/xyz/views/dialogs/MonthSelectDialog.java +++ b/src/danielcortes/xyz/views/dialogs/MonthSelectDialog.java @@ -28,12 +28,11 @@ import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; import danielcortes.xyz.views.components.YearSpinnerModel; +import danielcortes.xyz.views.listeners.WindowClosingListener; import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; import java.time.LocalDate; import java.util.ArrayList; @@ -48,29 +47,35 @@ public class MonthSelectDialog extends JDialog { private boolean acepted; - public MonthSelectDialog(JComponent parent) { + public MonthSelectDialog() { $$$setupUI$$$(); - setContentPane(contentPane); - setModalityType(ModalityType.APPLICATION_MODAL); - getRootPane().setDefaultButton(buttonOK); + setup(); + } + private void setup() { + this.setContentPane(contentPane); + this.setModalityType(ModalityType.APPLICATION_MODAL); + this.getRootPane().setDefaultButton(buttonOK); - buttonOK.addActionListener(e -> onOK()); + this.buttonOK.addActionListener(e -> onOK()); - buttonCancel.addActionListener(e -> onCancel()); + this.buttonCancel.addActionListener(e -> onCancel()); - setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); - addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent e) { - onCancel(); - } - }); - - contentPane.registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); + this.addWindowListener((WindowClosingListener) e -> onCancel()); + this.contentPane.registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + this.setLocationRelativeTo(null); pack(); - setLocationRelativeTo(parent); + } + + public LocalDate execute() { setVisible(true); + if (this.isAcepted()) { + return this.getMonth(); + } else { + return null; + } } private void onOK() { @@ -83,11 +88,11 @@ public class MonthSelectDialog extends JDialog { dispose(); } - public boolean isAcepted() { + private boolean isAcepted() { return this.acepted; } - public LocalDate getMonth() { + private LocalDate getMonth() { int year = Integer.valueOf((String) yearSpinner.getValue()); int month = this.months.indexOf(this.monthCombo.getSelectedItem()) + 1; diff --git a/src/danielcortes/xyz/views/dialogs/TipoEgresoSelectDialog.java b/src/danielcortes/xyz/views/dialogs/TipoEgresoSelectDialog.java index 145eae4..b4cc7eb 100644 --- a/src/danielcortes/xyz/views/dialogs/TipoEgresoSelectDialog.java +++ b/src/danielcortes/xyz/views/dialogs/TipoEgresoSelectDialog.java @@ -29,12 +29,11 @@ import com.intellij.uiDesigner.core.GridLayoutManager; import danielcortes.xyz.data.DAOManager; import danielcortes.xyz.models.tipo_egreso.TipoEgreso; import danielcortes.xyz.models.tipo_egreso.TipoEgresoToStringWrapper; +import danielcortes.xyz.views.listeners.WindowClosingListener; import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; public class TipoEgresoSelectDialog extends JDialog { private JPanel contentPane; @@ -44,27 +43,35 @@ public class TipoEgresoSelectDialog extends JDialog { private boolean acepted; - public TipoEgresoSelectDialog(JComponent parent) { + public TipoEgresoSelectDialog() { $$$setupUI$$$(); - setContentPane(contentPane); - setModalityType(ModalityType.APPLICATION_MODAL); - setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); - getRootPane().setDefaultButton(buttonOK); + this.setup(); + } - addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent e) { - buttonCancel.doClick(); - } - }); + private void setup() { + this.setContentPane(contentPane); + this.setModalityType(ModalityType.APPLICATION_MODAL); + this.getRootPane().setDefaultButton(buttonOK); - contentPane.registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + this.buttonOK.addActionListener(e -> onOK()); + this.buttonCancel.addActionListener(e -> onCancel()); - buttonOK.addActionListener(e -> onOK()); - buttonCancel.addActionListener(e -> onCancel()); + this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); + this.addWindowListener((WindowClosingListener) e -> onCancel()); + this.contentPane.registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); - pack(); - setLocationRelativeTo(parent); - setVisible(true); + this.setLocationRelativeTo(null); + this.pack(); + } + + public TipoEgreso execute() { + this.setVisible(true); + + if (this.isAcepted()) { + return this.getTipoEgreso(); + } else { + return null; + } } private void onOK() { @@ -134,4 +141,5 @@ public class TipoEgresoSelectDialog extends JDialog { public JComponent $$$getRootComponent$$$() { return contentPane; } + } diff --git a/src/danielcortes/xyz/views/dialogs/XLSFileChooser.java b/src/danielcortes/xyz/views/dialogs/XLSFileChooser.java new file mode 100644 index 0000000..2592a39 --- /dev/null +++ b/src/danielcortes/xyz/views/dialogs/XLSFileChooser.java @@ -0,0 +1,79 @@ +package danielcortes.xyz.views.dialogs; + +import javax.swing.*; +import javax.swing.filechooser.FileNameExtensionFilter; +import java.io.File; +import java.io.IOException; +import java.nio.file.*; + +public class XLSFileChooser { + private JFileChooser chooser; + + public XLSFileChooser(String suggestedName){ + this.chooser = new JFileChooser(); + this.chooser.setDialogType(JFileChooser.SAVE_DIALOG); + this.chooser.setSelectedFile(new File(suggestedName + ".xls")); + this.chooser.setFileFilter(new FileNameExtensionFilter("Excel 2007", "xls")); + } + + public Path execute(){ + boolean accepted = this.chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION; + if(accepted){ + Path path = processFilePath(this.chooser.getSelectedFile().getPath()); + return path; + }else{ + return null; + } + } + + private Path processFilePath(String pathString) { + Path path; + + if (!pathString.endsWith(".xls")) { + pathString = pathString + ".xls"; + } + + try { + path = Paths.get(pathString); + } catch (InvalidPathException e) { + e.printStackTrace(); + + JOptionPane.showMessageDialog( + null, + "El nombre de archivo entregado es invalido", + "Error!", + JOptionPane.ERROR_MESSAGE + ); + return null; + } + + try { + Files.createFile(path); + } catch (FileAlreadyExistsException e) { + int response = JOptionPane.showConfirmDialog( + null, + "El archivo ya existe" + "\n" + "¿Desea sobreescribirlo?", + "Confirmacion", + JOptionPane.YES_NO_OPTION, + JOptionPane.WARNING_MESSAGE + ); + + if (response != 0) { + return null; + } + + } catch (IOException e) { + e.printStackTrace(); + JOptionPane.showMessageDialog( + null, + "No a sido posible crear el archivo", + "Error!", + JOptionPane.ERROR_MESSAGE + ); + + return null; + } + + return path; + } +} diff --git a/src/danielcortes/xyz/views/listeners/WindowClosingListener.java b/src/danielcortes/xyz/views/listeners/WindowClosingListener.java new file mode 100644 index 0000000..01297da --- /dev/null +++ b/src/danielcortes/xyz/views/listeners/WindowClosingListener.java @@ -0,0 +1,18 @@ +package danielcortes.xyz.views.listeners; + +import java.awt.event.WindowEvent; +import java.awt.event.WindowListener; + +/** + * Simple wraper for WindowListener to simple use the windowClosing method in a lambda function + */ +public interface WindowClosingListener extends WindowListener { + default void windowOpened(WindowEvent e){} + default void windowClosed(WindowEvent e){} + default void windowIconified(WindowEvent e){} + default void windowDeiconified(WindowEvent e){} + default void windowActivated(WindowEvent e){} + default void windowDeactivated(WindowEvent e){} + + void windowClosing(WindowEvent e); +}