diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/TarifaEscalaContorller.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/TarifaEscalaContorller.java index d9bb9a515..d92fc39ea 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/TarifaEscalaContorller.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/TarifaEscalaContorller.java @@ -6,7 +6,9 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.tarifas; import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; import java.util.ArrayList; @@ -25,6 +27,8 @@ import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; @@ -87,6 +91,7 @@ import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; public class TarifaEscalaContorller extends MyGenericForwardComposer { private static final long serialVersionUID = 1L; + @Autowired private TarifaService tarifaService; @Autowired @@ -113,6 +118,7 @@ public class TarifaEscalaContorller extends MyGenericForwardComposer { private CiudadService ciudadService; @Autowired private MarcaClaseServicioService marcaClaseServicioService; + private List lsMarcas; private List lsClaseServico; private List lsMonedas; @@ -134,7 +140,9 @@ public class TarifaEscalaContorller extends MyGenericForwardComposer { private Map mapTramoTarifaNovo; private Map mapTarifaTextbox; private List lsGridRender; + private static Logger log = Logger.getLogger(TarifaEscalaContorller.class); + public List getLsClaseServico() { return lsClaseServico; @@ -804,107 +812,7 @@ public class TarifaEscalaContorller extends MyGenericForwardComposer { public void onClick$btnExportarExcel(Event ev) throws InterruptedException { validacion(); try { - HSSFWorkbook wb = new HSSFWorkbook(); - - // fonte em negrito: - HSSFFont fonte = wb.createFont(); - fonte.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); - HSSFCellStyle estilo = wb.createCellStyle(); - estilo.setFont(fonte); - - HSSFSheet sheet1 = wb.createSheet(Labels.getLabel("tarifaEscalaContorller.window.title")); - - // cabeçalho: - VigenciaTarifa vt = (VigenciaTarifa) (cmbVigencia.getSelectedItem() != null ? cmbVigencia.getSelectedItem().getValue() : null); - if (vt != null) { - HSSFRow rowVigencia = sheet1.createRow(0); - rowVigencia.createCell(0).setCellValue( - Labels.getLabel("tarifaEscalaContorller.lhFeciniciovigencia.label") + ": " + vt.toString()); - } else { - HSSFRow rowVigencia = sheet1.createRow(0); - rowVigencia.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhFeciniciovigencia.label") + ": "); - } - - Moneda moneda = (Moneda) (cmbMoneda.getSelectedItem() != null ? cmbMoneda.getSelectedItem().getValue() : null); - if (moneda != null) { - HSSFRow rowMoneda = sheet1.createRow(1); - rowMoneda.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhMoneda.label") + ": " + moneda.toString()); - } else { - HSSFRow rowMoneda = sheet1.createRow(1); - rowMoneda.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhMoneda.label") + ": "); - } - - Ruta ruta = (Ruta) (cmbRuta.getSelectedItem() != null ? cmbRuta.getSelectedItem().getValue() : null); - if (ruta != null) { - HSSFRow rowRuta = sheet1.createRow(2); - rowRuta.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhRuta.label") + ": " + ruta.toString()); - } else { - HSSFRow rowRuta = sheet1.createRow(2); - rowRuta.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhRuta.label") + ": "); - } - - Marca marca = (Marca) (cmbMarca.getSelectedItem() != null ? cmbMarca.getSelectedItem().getValue() : null); - if (marca != null) { - HSSFRow rowMarca = sheet1.createRow(3); - rowMarca.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhMarca.label") + ": " + marca.toString()); - } else { - HSSFRow rowMarca = sheet1.createRow(3); - rowMarca.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhMarca.label") + ": "); - } - - ClaseServicio claseService = (ClaseServicio) (cmbClaseServicio.getSelectedItem() != null ? cmbClaseServicio.getSelectedItem().getValue() : null); - if (claseService != null) { - HSSFRow rowClaseService = sheet1.createRow(4); - rowClaseService.createCell(0).setCellValue( - Labels.getLabel("tarifaEscalaContorller.lhClaseServicio.label") + ": " + claseService.toString()); - } else { - HSSFRow rowClaseService = sheet1.createRow(4); - rowClaseService.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhClaseServicio.label") + ": "); - } - - // linha vazia entre o cabeçalho e escala: - HSSFRow rowEspaco = sheet1.createRow(5); - rowEspaco.createCell(0).setCellValue(""); - - for (int i = 0; i < lsGridRender.size(); i++) { - List list = lsGridRender.get(i); - - HSSFRow row = sheet1.createRow(i + 6); - for (int j = 0; j < list.size(); j++) { - Object st = list.get(j); - - if (st instanceof Tarifa) { - Tarifa tmp = (Tarifa) st; - - row.createCell(j).setCellValue(tmp.getPrecio().setScale(2).toString()); - } else if (st instanceof Parada) { - Parada parada = (Parada) st; - - HSSFCell cell = row.createCell(j); - cell.setCellStyle(estilo); - - cell.setCellValue(parada.getCveparada()); - } else { - row.createCell(j).setCellValue(st.toString()); - } - } - } - - String nomeArquivo = UsuarioLogado.getUsuarioLogado().getNombusuario() + "_" + Calendar.getInstance().getTime().getTime() + "_" - + "escala"; - - File fNomeArquivo = File.createTempFile(nomeArquivo, ".tmp"); - - FileOutputStream stream = new FileOutputStream(fNomeArquivo); - stream.flush(); - wb.write(stream); - stream.close(); - - InputStream is = null; - is = new FileInputStream(fNomeArquivo); - Filedownload.save(is, "application/xls", "escala.xls"); - - fNomeArquivo.delete(); + gerarExcel(false); } catch (Exception ex) { log.info("** Erro ao exportar escala de tarifa: " + ex); @@ -914,6 +822,142 @@ public class TarifaEscalaContorller extends MyGenericForwardComposer { } } + + /** + * @throws IOException + * @throws FileNotFoundException + */ + private void gerarExcel(Boolean isImprimir) throws IOException, FileNotFoundException { + HSSFWorkbook wb = new HSSFWorkbook(); + Workbook wbi = new XSSFWorkbook(); + + + // fonte em negrito: + HSSFFont fonte = wb.createFont(); + fonte.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + HSSFCellStyle estilo = wb.createCellStyle(); + estilo.setFont(fonte); + + HSSFSheet sheet1 = wb.createSheet(Labels.getLabel("tarifaEscalaContorller.window.title")); + + // cabeçalho: + VigenciaTarifa vt = (VigenciaTarifa) (cmbVigencia.getSelectedItem() != null ? cmbVigencia.getSelectedItem().getValue() : null); + if (vt != null) { + HSSFRow rowVigencia = sheet1.createRow(0); + rowVigencia.createCell(0).setCellValue( + Labels.getLabel("tarifaEscalaContorller.lhFeciniciovigencia.label") + ": " + vt.toString()); + } else { + HSSFRow rowVigencia = sheet1.createRow(0); + rowVigencia.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhFeciniciovigencia.label") + ": "); + } + + Moneda moneda = (Moneda) (cmbMoneda.getSelectedItem() != null ? cmbMoneda.getSelectedItem().getValue() : null); + if (moneda != null) { + HSSFRow rowMoneda = sheet1.createRow(1); + rowMoneda.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhMoneda.label") + ": " + moneda.toString()); + } else { + HSSFRow rowMoneda = sheet1.createRow(1); + rowMoneda.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhMoneda.label") + ": "); + } + + Ruta ruta = (Ruta) (cmbRuta.getSelectedItem() != null ? cmbRuta.getSelectedItem().getValue() : null); + if (ruta != null) { + HSSFRow rowRuta = sheet1.createRow(2); + rowRuta.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhRuta.label") + ": " + ruta.toString()); + } else { + HSSFRow rowRuta = sheet1.createRow(2); + rowRuta.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhRuta.label") + ": "); + } + + Marca marca = (Marca) (cmbMarca.getSelectedItem() != null ? cmbMarca.getSelectedItem().getValue() : null); + if (marca != null) { + HSSFRow rowMarca = sheet1.createRow(3); + rowMarca.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhMarca.label") + ": " + marca.toString()); + } else { + HSSFRow rowMarca = sheet1.createRow(3); + rowMarca.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhMarca.label") + ": "); + } + + ClaseServicio claseService = (ClaseServicio) (cmbClaseServicio.getSelectedItem() != null ? cmbClaseServicio.getSelectedItem().getValue() : null); + if (claseService != null) { + HSSFRow rowClaseService = sheet1.createRow(4); + rowClaseService.createCell(0).setCellValue( + Labels.getLabel("tarifaEscalaContorller.lhClaseServicio.label") + ": " + claseService.toString()); + } else { + HSSFRow rowClaseService = sheet1.createRow(4); + rowClaseService.createCell(0).setCellValue(Labels.getLabel("tarifaEscalaContorller.lhClaseServicio.label") + ": "); + } + + // linha vazia entre o cabeçalho e escala: + HSSFRow rowEspaco = sheet1.createRow(6); + rowEspaco.createCell(1).setCellValue(""); + + int destino = 0; + Boolean isSec = false; + for (int i = 0; i < lsGridRender.size(); i++) { + List list = lsGridRender.get(i); + HSSFRow row = sheet1.createRow(i + 6); + destino++; + isSec = false; + for (int j = 0; j < list.size(); j++) { + Object st = list.get(j); + + if (st instanceof Tarifa) { + Tarifa tmp = (Tarifa) st; + if(i>=1 && destino <= lsGridRender.size()) { + row.createCell(0).setCellValue(destino); + } + row.createCell(j+1).setCellValue(tmp.getPrecio().setScale(2).toString()); + + } else if (st instanceof Parada) { + Parada parada = (Parada) st; + + HSSFCell cell = row.createCell(j+1); + cell.setCellStyle(estilo); + cell.setCellValue(parada.getDescparada()+" "+"("+parada.getCveparada()+")"); + + } else { + + if(!isSec) { + row.createCell(j+1).setCellValue(destino+1); + isSec = true; + } else { + row.createCell(j+1).setCellValue(st.toString()); + } + + } + } + } + sheet1.setFitToPage(true); + sheet1.getPrintSetup().setFitWidth((short)1); + sheet1.getPrintSetup().setFitHeight((short)0); + + String nomeArquivo = UsuarioLogado.getUsuarioLogado().getNombusuario() + "_" + Calendar.getInstance().getTime().getTime() + "_" + + "escala"; + + File fNomeArquivo = File.createTempFile(nomeArquivo, ".tmp"); + + FileOutputStream stream = new FileOutputStream(fNomeArquivo); + stream.flush(); + + if (isImprimir) { + wbi.write(stream); + } else { + wb.write(stream); + } + stream.close(); + + InputStream is = null; + is = new FileInputStream(fNomeArquivo); + + if (isImprimir) { + Filedownload.save(is, "application/xls", "escala.xls"); + } else { + Filedownload.save(is, "application/xls", "escala.xls"); + } + + fNomeArquivo.delete(); + } public void onChange$cmbClaseServicio(Event ev) { Comboitem cbiClaseServicio = cmbClaseServicio.getSelectedItem();