From 2114ad9c12e1c60f683357190a7b556e47213996 Mon Sep 17 00:00:00 2001 From: rodrigo Date: Wed, 3 Apr 2013 14:36:00 +0000 Subject: [PATCH] git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@25502 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ModificacionMasivaTarifasController.java | 1213 ++++++++--------- 1 file changed, 557 insertions(+), 656 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/ModificacionMasivaTarifasController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/ModificacionMasivaTarifasController.java index 025b674b8..247172261 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/ModificacionMasivaTarifasController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/ModificacionMasivaTarifasController.java @@ -12,8 +12,11 @@ import java.io.InputStream; import java.math.BigDecimal; import java.math.BigInteger; import java.math.RoundingMode; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -21,6 +24,12 @@ import java.util.Map; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.Predicate; import org.apache.log4j.Logger; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +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.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; @@ -54,14 +63,12 @@ import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa; import com.rjconsultores.ventaboletos.service.CategoriaService; import com.rjconsultores.ventaboletos.service.ClaseServicioService; -import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.MarcaService; import com.rjconsultores.ventaboletos.service.MonedaService; import com.rjconsultores.ventaboletos.service.RutaCombinacionService; import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.service.TarifaService; import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; -import com.rjconsultores.ventaboletos.service.UsuarioEmpresaService; import com.rjconsultores.ventaboletos.service.VigenciaTarifaService; import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @@ -75,705 +82,599 @@ import com.rjconsultores.ventaboletos.web.utilerias.render.RenderMarca; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderMoneda; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderTipoPuntoVenta; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderVigenciaTarifaModificacionMassivaTarifa; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import org.apache.poi.hssf.usermodel.HSSFCell; -import org.apache.poi.hssf.usermodel.HSSFCellStyle; -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; /** - * + * * @author rodrigo */ @Controller("modificacionMasivaTarifasController") @Scope("prototype") public class ModificacionMasivaTarifasController extends MyGenericForwardComposer { - private final Integer CELL_ID_TARIFA = 0; - @Autowired - private TarifaService tarifaService; - @Autowired - private RutaCombinacionService rutaCombinacionService; - @Autowired - private MarcaService marcaService; - @Autowired - private ClaseServicioService claseServicioService; - @Autowired - private MonedaService monedaService; - @Autowired - private UsuarioEmpresaService usuarioEmpresaService; - @Autowired - private EmpresaService empresaService; - @Autowired - private RutaService rutaService; - @Autowired - private TipoPuntoVentaService tipoPuntoVentaService; - @Autowired - private CategoriaService categoriaService; - @Autowired - private VigenciaTarifaService vigenciaTarifaService; - private List lsMarcas; - private List lsClaseServico; - private List lsMonedas; - private List lsEmpresas; - private List lsRutas; - private List lsTipoPuntoVenta; - private List lsCategoria; - private List lsVigenciaTarifa; - private List lsAddRmvMarcas; - private List lsAddRmvClaseServico; - private List lsAddRmvMonedas; - private List lsAddRmvEmpresas; - private List lsAddRmvRutas; - private List lsAddRmvTipoPuntoVenta; - private List lsAddRmvCategoria; - private List lsAddRmvVigenciaTarifa; - private Combobox cmbMarca; - private Combobox cmbMoneda; - private Combobox cmbClaseServicio; - private Combobox cmbEmpresa; - private Combobox cmbRuta; - private Combobox cmbTipoPuntoVenta; - private Combobox cmbCategoria; - private Combobox cmbVigenciaTarifa; - private MyListbox claseServicioList; - private MyListbox marcaList; - private MyListbox monedaList; - private MyListbox empresaList; - private MyListbox rutaList; - private MyListbox tipoPuntoVentaList; - private MyListbox categoriaList; - private MyListbox vigenciaTarifaList; - private Textbox txtPorcentagem; - private Radio radIncremento; - private Radio radDecremento; - private Button btnGerarTarifas; - private Tab tabTipoPuntoVenta; - private Tab tabCategoria; - - private static Logger log = Logger.getLogger(ModificacionMasivaTarifasController.class); - - public List getLsClaseServico() { - return lsClaseServico; - } - - public void setLsClaseServico(List lsClaseServico) { - this.lsClaseServico = lsClaseServico; - } - - public List getLsMarcas() { - return lsMarcas; - } - - public void setLsMarcas(List lsMarcas) { - this.lsMarcas = lsMarcas; - } - - public List getLsMonedas() { - return lsMonedas; - } - - public void setLsMonedas(List lsMonedas) { - this.lsMonedas = lsMonedas; - } - - public Combobox getCmbClaseServicio() { - return cmbClaseServicio; - } - - public void setCmbClaseServicio(Combobox cmbClaseServicio) { - this.cmbClaseServicio = cmbClaseServicio; - } - - public Combobox getCmbMarca() { - return cmbMarca; - } - - public void setCmbMarca(Combobox cmbMarca) { - this.cmbMarca = cmbMarca; - } - - public Combobox getCmbMoneda() { - return cmbMoneda; - } - - public void setCmbMoneda(Combobox cmbMoneda) { - this.cmbMoneda = cmbMoneda; - } - - public Textbox getTxtPorcentagem() { - return txtPorcentagem; - } - - public void setTxtPorcentagem(Textbox txtPorcentagem) { - this.txtPorcentagem = txtPorcentagem; - } - - public Radio getRadDecremento() { - return radDecremento; - } - - public void setRadDecremento(Radio radDecremento) { - this.radDecremento = radDecremento; - } - - public Radio getRadIncremento() { - return radIncremento; - } - - public void setRadIncremento(Radio radIncremento) { - this.radIncremento = radIncremento; - } - - public Combobox getCmbEmpresa() { - return cmbEmpresa; - } - - public void setCmbEmpresa(Combobox cmbEmpresa) { - this.cmbEmpresa = cmbEmpresa; - } - - public List getLsEmpresas() { - return lsEmpresas; - } - - public void setLsEmpresas(List lsEmpresas) { - this.lsEmpresas = lsEmpresas; - } - - public Combobox getCmbRuta() { - return cmbRuta; - } - - public void setCmbRuta(Combobox cmbRuta) { - this.cmbRuta = cmbRuta; - } - - public List getLsRutas() { - return lsRutas; - } - - public void setLsRutas(List lsRutas) { - this.lsRutas = lsRutas; - } - - public Combobox getCmbCategoria() { - return cmbCategoria; - } - - public void setCmbCategoria(Combobox cmbCategoria) { - this.cmbCategoria = cmbCategoria; - } - - public Combobox getCmbTipoPuntoVenta() { - return cmbTipoPuntoVenta; - } - - public void setCmbTipoPuntoVenta(Combobox cmbTipoPuntoVenta) { - this.cmbTipoPuntoVenta = cmbTipoPuntoVenta; - } - - public List getLsCategoria() { - return lsCategoria; - } - - public void setLsCategoria(List lsCategoria) { - this.lsCategoria = lsCategoria; - } - - public List getLsTipoPuntoVenta() { - return lsTipoPuntoVenta; - } - - public void setLsTipoPuntoVenta(List lsTipoPuntoVenta) { - this.lsTipoPuntoVenta = lsTipoPuntoVenta; - } - - public Combobox getCmbVigenciaTarifa() { - return cmbVigenciaTarifa; - } - - public void setCmbVigenciaTarifa(Combobox cmbVigenciaTarifa) { - this.cmbVigenciaTarifa = cmbVigenciaTarifa; - } - - public List getLsVigenciaTarifa() { - return lsVigenciaTarifa; - } - - public void setLsVigenciaTarifa(List lsVigenciaTarifa) { - this.lsVigenciaTarifa = lsVigenciaTarifa; - } - - @Override - public void doAfterCompose(Component comp) throws Exception { - - super.doAfterCompose(comp); - - lsMarcas = marcaService.buscarMarcaPorEmpresa(UsuarioLogado.getUsuarioLogado().getEmpresa()); - lsClaseServico = claseServicioService.obtenerTodos(); - lsMonedas = monedaService.obtenerTodos(); - lsEmpresas = UsuarioLogado.getUsuarioLogado().getEmpresa(); - lsRutas = rutaService.obtenerTodos(); - lsTipoPuntoVenta = tipoPuntoVentaService.obtenerTodos(); - lsCategoria = categoriaService.obtenerTodos(); - lsVigenciaTarifa = vigenciaTarifaService.obtenerTodos(); - - claseServicioList.setItemRenderer(new RenderClaseServicio()); - marcaList.setItemRenderer(new RenderMarca()); - monedaList.setItemRenderer(new RenderMoneda()); - empresaList.setItemRenderer(new RenderEmpresaModificacionMassivaTarifa()); - rutaList.setItemRenderer(new RenderCatalogoDeRutas()); - tipoPuntoVentaList.setItemRenderer(new RenderTipoPuntoVenta()); - categoriaList.setItemRenderer(new RenderCategoria()); - vigenciaTarifaList.setItemRenderer(new RenderVigenciaTarifaModificacionMassivaTarifa()); - - lsAddRmvMarcas = new ArrayList(); - lsAddRmvClaseServico = new ArrayList(); - lsAddRmvMonedas = new ArrayList(); - lsAddRmvEmpresas = new ArrayList(); - lsAddRmvRutas = new ArrayList(); - lsAddRmvTipoPuntoVenta = new ArrayList(); - lsAddRmvCategoria = new ArrayList(); - lsAddRmvVigenciaTarifa = new ArrayList(); - - // eliminando a opcao TODOS de tipo servicio: - CollectionUtils.filter(lsClaseServico, new Predicate() { - - @Override - public boolean evaluate(Object obj) { - return !(((ClaseServicio) obj).getClaseservicioId().equals(ClaseServicio.TODOS)); - } - }); - // eliminando a opcao TODOS da marca: - CollectionUtils.filter(lsMarcas, new Predicate() { - - @Override - public boolean evaluate(Object obj) { - return !(((Marca) obj).getMarcaId().equals(Marca.TODOS)); - } - }); - - //Exibir botão para gerar tarifas automaticas - btnGerarTarifas.setVisible(ApplicationProperties.getInstance().generarTarifasAutomatica()); - - //Abas desativadas no SCIA - tabCategoria.setVisible(Boolean.FALSE); - tabTipoPuntoVenta.setVisible(Boolean.FALSE); - - } - - public void onClick$btnGerarExcel(Event ev) { - - onClick$btnGerarExcelLinear(null); - - } - - public void onClick$btnGerarExcelLinear(Event ev) { - txtPorcentagem.getValue(); - - try { - if (lsAddRmvVigenciaTarifa.isEmpty()) { - Messagebox.show( - Labels.getLabel("modificacionMasivaTarifasController.MSG.SemVigencia"), - Labels.getLabel("modificacionMasivaTarifasController.window.title"), - Messagebox.OK, Messagebox.EXCLAMATION); - - return; - } - - BigDecimal coeficiente = new BigDecimal(BigInteger.ZERO); - try { - if (txtPorcentagem.getValue() != null) { - - BigDecimal porcentage = BigDecimal.valueOf(Double.parseDouble(txtPorcentagem.getValue())); - - coeficiente = porcentage.divide(new BigDecimal(100)); - if (radIncremento.isChecked()) { - coeficiente = coeficiente.add(BigDecimal.ONE); - } else { - coeficiente = BigDecimal.ONE.subtract(coeficiente); - } - } - } catch (Exception e) { - log.error(e); - log.debug("Porcentagem Zero"); - } - - if (coeficiente == null) { - return; - } - - HSSFWorkbook wb = new HSSFWorkbook(); - - // fonte em negrito: - HSSFFont fonte = wb.createFont(); - fonte.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); - HSSFCellStyle estilo = wb.createCellStyle(); - estilo.setFont(fonte); - - //TESTE: - List lsRutaCombinacion = rutaCombinacionService.pesquisaTarifaObj(lsAddRmvMonedas, lsAddRmvMarcas, - lsAddRmvClaseServico, lsAddRmvCategoria, lsAddRmvEmpresas, lsAddRmvRutas, - lsAddRmvTipoPuntoVenta, lsAddRmvVigenciaTarifa); - - HSSFSheet sheet1 = null; - String ruta = ""; - int contRow = 0; - - for (int i = 0; i < lsRutaCombinacion.size(); i++) { - Object[] obj = (Object[]) lsRutaCombinacion.get(i); - - if (!ruta.equals(obj[4].toString().concat(obj[12].toString()))) { - - ruta = obj[4].toString().concat(obj[12].toString()); - String sheetName = ""; - if (obj[4].toString().length() > 26) { - sheetName = (obj[4].toString().substring(0, 26).concat(" (").concat(obj[12].toString()).concat(")")); - } else { - sheetName = (obj[4].toString().concat(" (").concat(obj[12].toString()).concat(")")); - } - sheetName = sheetName.replaceAll( "/", "-" ); - log.debug("Aba: " + sheetName); - sheet1 = wb.createSheet(sheetName); - contRow = 1; - - HSSFRow rowCabecalho = sheet1.createRow(0); - - HSSFCell cell = rowCabecalho.createCell(0); - cell.setCellValue( - Labels.getLabel("busquedaTarifaController.lhId.label")); - cell.setCellStyle(estilo); - - HSSFCell cell0 = rowCabecalho.createCell(1); - cell0.setCellValue( - Labels.getLabel("busquedaTarifaController.lhTramo.label")); - cell0.setCellStyle(estilo); - - HSSFCell cell1 = rowCabecalho.createCell(2); - cell1.setCellValue( - Labels.getLabel("busquedaTarifaController.lhOrigem.label")); - cell1.setCellStyle(estilo); - - HSSFCell cell2 = rowCabecalho.createCell(3); - cell2.setCellValue( - Labels.getLabel("busquedaTarifaController.lhDestino.label")); - cell2.setCellStyle(estilo); - - HSSFCell cell3 = rowCabecalho.createCell(4); - cell3.setCellValue( - Labels.getLabel("busquedaTarifaController.lhRuta.label")); - cell3.setCellStyle(estilo); - - HSSFCell cell4 = rowCabecalho.createCell(5); - cell4.setCellValue( - Labels.getLabel("busquedaTarifaController.lhMarca.label")); - cell4.setCellStyle(estilo); - - //Preco original I - 6 - HSSFCell cell5 = rowCabecalho.createCell(6); - cell5.setCellValue( - Labels.getLabel("busquedaTarifaController.lhClaseServicio.label")); - cell5.setCellStyle(estilo); - - // H - 6 - HSSFCell cell6 = rowCabecalho.createCell(7); - cell6.setCellValue( - Labels.getLabel("busquedaTarifaController.lhFeciniciovigencia.label")); - cell6.setCellStyle(estilo); - - //I - 8 - HSSFCell cell7 = rowCabecalho.createCell(8); - cell7.setCellValue( - Labels.getLabel("busquedaTarifaController.lhMoneda.label")); - cell7.setCellStyle(estilo); - - //J - 9 - HSSFCell cell8 = rowCabecalho.createCell(9); - cell8.setCellValue( - Labels.getLabel("busquedaTarifaController.lhPrecioOriginal.label")); - cell8.setCellStyle(estilo); - - //J - 9 - HSSFCell cell9 = rowCabecalho.createCell(10); - cell9.setCellValue( - Labels.getLabel("busquedaTarifaController.lhPrecioExcel.label")); - cell9.setCellStyle(estilo); - - //h - 10 - HSSFCell cell10 = rowCabecalho.createCell(11); - cell10.setCellValue( - Labels.getLabel("busquedaTarifaController.lhPrecioNuevo.label")); - cell10.setCellStyle(estilo); - } - - HSSFRow row = sheet1.createRow(contRow++); - - row.createCell(0).setCellValue(Integer.parseInt(obj[0].toString())); - row.createCell(1).setCellValue(obj[1].toString()); - row.createCell(2).setCellValue(obj[2].toString()); - row.createCell(3).setCellValue(obj[3].toString()); - row.createCell(4).setCellValue(obj[4].toString().concat(" (").concat(obj[12].toString()).concat(")")); - row.createCell(5).setCellValue(obj[5].toString()); - row.createCell(6).setCellValue(obj[6].toString()); - - DateFormat sfData = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - DateFormat sfFormatada = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); - Date dataIni = sfData.parse(obj[7].toString()); - Date dataFim = sfData.parse(obj[8].toString()); - - row.createCell(7).setCellValue(sfFormatada.format(dataIni) + " - " + sfFormatada.format(dataFim)); - row.createCell(8).setCellValue(obj[9].toString()); - - String ori = obj[10].toString(); - BigDecimal original = BigDecimal.valueOf(Double.valueOf(ori)); - - String atu = obj[11].toString(); - BigDecimal atual = BigDecimal.valueOf(Double.valueOf(atu)); - - row.createCell(9).setCellValue(original.setScale(2).doubleValue()); - row.createCell(10).setCellValue(atual.setScale(2).doubleValue()); - - // novo preco: - BigDecimal novoPrecio = atual; - - novoPrecio = novoPrecio.multiply(coeficiente).setScale(2, RoundingMode.HALF_UP); - - HSSFCell cellNovoPrecio = row.createCell(11); - cellNovoPrecio.setCellValue(novoPrecio.setScale(2).doubleValue()); - cellNovoPrecio.setCellStyle(estilo); - - } - - - String nomeArquivo = - UsuarioLogado.getUsuarioLogado().getNombusuario() - + "_" + Calendar.getInstance().getTime().getTime() - + "_" + "modMassivaT.xls"; - - FileOutputStream stream = new FileOutputStream(nomeArquivo); - stream.flush(); - wb.write(stream); - stream.close(); - - InputStream is = null; - is = new FileInputStream(nomeArquivo); - Filedownload.save(is, "application/xls", "modificacionMasivaTarifa.xls"); - - boolean success = (new File(nomeArquivo)).delete(); - } catch (Exception ex) { - log.error(ex); - } - } - //Escala - - public VigenciaTarifa vigenciaTarifa(Media mExcel) throws IOException { - InputStream isMExcel = mExcel.getStreamData(); - Workbook wb = new XSSFWorkbook(isMExcel); - - VigenciaTarifa v = new VigenciaTarifa(); - - for (int k = 0; k < wb.getNumberOfSheets(); k++) { - Sheet sheet = wb.getSheetAt(k); - int rows = sheet.getPhysicalNumberOfRows(); - - // pula o row 0 pq eh o cabecalho: - for (int r = 1; r < rows; r++) { - Row row = sheet.getRow(r); - if (row == null) { - continue; - } - - Cell cellIdTarifa = row.getCell(CELL_ID_TARIFA); - BigDecimal bdId = new BigDecimal(cellIdTarifa.getNumericCellValue()); - Integer idTarifa = bdId.intValue(); + private static final long serialVersionUID = 1L; + private final Integer CELL_ID_TARIFA = 0; + @Autowired + private TarifaService tarifaService; + @Autowired + private RutaCombinacionService rutaCombinacionService; + @Autowired + private MarcaService marcaService; + @Autowired + private ClaseServicioService claseServicioService; + @Autowired + private MonedaService monedaService; + @Autowired + private RutaService rutaService; + @Autowired + private TipoPuntoVentaService tipoPuntoVentaService; + @Autowired + private CategoriaService categoriaService; + @Autowired + private VigenciaTarifaService vigenciaTarifaService; + private List lsMarcas; + private List lsClaseServico; + private List lsMonedas; + private List lsEmpresas; + private List lsRutas; + private List lsTipoPuntoVenta; + private List lsCategoria; + private List lsVigenciaTarifa; + private List lsAddRmvMarcas; + private List lsAddRmvClaseServico; + private List lsAddRmvMonedas; + private List lsAddRmvEmpresas; + private List lsAddRmvRutas; + private List lsAddRmvTipoPuntoVenta; + private List lsAddRmvCategoria; + private List lsAddRmvVigenciaTarifa; + private Combobox cmbMarca; + private Combobox cmbMoneda; + private Combobox cmbClaseServicio; + private Combobox cmbEmpresa; + private Combobox cmbRuta; + private Combobox cmbTipoPuntoVenta; + private Combobox cmbCategoria; + private Combobox cmbVigenciaTarifa; + private MyListbox claseServicioList; + private MyListbox marcaList; + private MyListbox monedaList; + private MyListbox empresaList; + private MyListbox rutaList; + private MyListbox tipoPuntoVentaList; + private MyListbox categoriaList; + private MyListbox vigenciaTarifaList; + private Textbox txtPorcentagem; + private Radio radIncremento; + private Button btnGerarTarifas; + private Tab tabTipoPuntoVenta; + private Tab tabCategoria; + + private static Logger log = Logger.getLogger(ModificacionMasivaTarifasController.class); + + public List getLsClaseServico() { + return lsClaseServico; + } + + public void setLsClaseServico(List lsClaseServico) { + this.lsClaseServico = lsClaseServico; + } + + public List getLsMarcas() { + return lsMarcas; + } + + public void setLsMarcas(List lsMarcas) { + this.lsMarcas = lsMarcas; + } + + public List getLsMonedas() { + return lsMonedas; + } + + public void setLsMonedas(List lsMonedas) { + this.lsMonedas = lsMonedas; + } + + public List getLsEmpresas() { + return lsEmpresas; + } + + public void setLsEmpresas(List lsEmpresas) { + this.lsEmpresas = lsEmpresas; + } + + public List getLsRutas() { + return lsRutas; + } + + public void setLsRutas(List lsRutas) { + this.lsRutas = lsRutas; + } + + public List getLsCategoria() { + return lsCategoria; + } + + public void setLsCategoria(List lsCategoria) { + this.lsCategoria = lsCategoria; + } + + public List getLsTipoPuntoVenta() { + return lsTipoPuntoVenta; + } + + public void setLsTipoPuntoVenta(List lsTipoPuntoVenta) { + this.lsTipoPuntoVenta = lsTipoPuntoVenta; + } + + public List getLsVigenciaTarifa() { + return lsVigenciaTarifa; + } + + public void setLsVigenciaTarifa(List lsVigenciaTarifa) { + this.lsVigenciaTarifa = lsVigenciaTarifa; + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + + super.doAfterCompose(comp); + + lsMarcas = marcaService.buscarMarcaPorEmpresa(UsuarioLogado.getUsuarioLogado().getEmpresa()); + lsClaseServico = claseServicioService.obtenerTodos(); + lsMonedas = monedaService.obtenerTodos(); + lsEmpresas = UsuarioLogado.getUsuarioLogado().getEmpresa(); + lsRutas = rutaService.obtenerTodos(); + lsTipoPuntoVenta = tipoPuntoVentaService.obtenerTodos(); + lsCategoria = categoriaService.obtenerTodos(); + lsVigenciaTarifa = vigenciaTarifaService.obtenerTodos(); + + claseServicioList.setItemRenderer(new RenderClaseServicio()); + marcaList.setItemRenderer(new RenderMarca()); + monedaList.setItemRenderer(new RenderMoneda()); + empresaList.setItemRenderer(new RenderEmpresaModificacionMassivaTarifa()); + rutaList.setItemRenderer(new RenderCatalogoDeRutas()); + tipoPuntoVentaList.setItemRenderer(new RenderTipoPuntoVenta()); + categoriaList.setItemRenderer(new RenderCategoria()); + vigenciaTarifaList.setItemRenderer(new RenderVigenciaTarifaModificacionMassivaTarifa()); + + lsAddRmvMarcas = new ArrayList(); + lsAddRmvClaseServico = new ArrayList(); + lsAddRmvMonedas = new ArrayList(); + lsAddRmvEmpresas = new ArrayList(); + lsAddRmvRutas = new ArrayList(); + lsAddRmvTipoPuntoVenta = new ArrayList(); + lsAddRmvCategoria = new ArrayList(); + lsAddRmvVigenciaTarifa = new ArrayList(); + + // eliminando a opcao TODOS de tipo servicio: + CollectionUtils.filter(lsClaseServico, new Predicate() { + + @Override + public boolean evaluate(Object obj) { + return !(((ClaseServicio) obj).getClaseservicioId().equals(ClaseServicio.TODOS)); + } + }); + + // eliminando a opcao TODOS da marca: + CollectionUtils.filter(lsMarcas, new Predicate() { + + @Override + public boolean evaluate(Object obj) { + return !(((Marca) obj).getMarcaId().equals(Marca.TODOS)); + } + }); + + // Exibir botão para gerar tarifas automaticas + btnGerarTarifas.setVisible(ApplicationProperties.getInstance().generarTarifasAutomatica()); + + // Abas desativadas no SCIA + tabCategoria.setVisible(Boolean.FALSE); + tabTipoPuntoVenta.setVisible(Boolean.FALSE); + } + + public void onClick$btnGerarExcel(Event ev) { + onClick$btnGerarExcelLinear(null); + } + + public void onClick$btnGerarExcelLinear(Event ev) { + txtPorcentagem.getValue(); + + try { + if (lsAddRmvVigenciaTarifa.isEmpty()) { + Messagebox.show( + Labels.getLabel("modificacionMasivaTarifasController.MSG.SemVigencia"), + Labels.getLabel("modificacionMasivaTarifasController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + + return; + } + + BigDecimal coeficiente = new BigDecimal(BigInteger.ZERO); + try { + if (txtPorcentagem.getValue() != null) { + + BigDecimal porcentage = BigDecimal.valueOf(Double.parseDouble(txtPorcentagem.getValue())); + + coeficiente = porcentage.divide(new BigDecimal(100)); + if (radIncremento.isChecked()) { + coeficiente = coeficiente.add(BigDecimal.ONE); + } else { + coeficiente = BigDecimal.ONE.subtract(coeficiente); + } + } + } catch (Exception e) { + log.error(e); + log.debug("Porcentagem Zero"); + } + + if (coeficiente == null) { + return; + } + + HSSFWorkbook wb = new HSSFWorkbook(); + + // fonte em negrito: + HSSFFont fonte = wb.createFont(); + fonte.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + HSSFCellStyle estilo = wb.createCellStyle(); + estilo.setFont(fonte); + + // TESTE: + List lsRutaCombinacion = rutaCombinacionService.pesquisaTarifaObj(lsAddRmvMonedas, lsAddRmvMarcas, + lsAddRmvClaseServico, lsAddRmvCategoria, lsAddRmvEmpresas, lsAddRmvRutas, + lsAddRmvTipoPuntoVenta, lsAddRmvVigenciaTarifa); + + HSSFSheet sheet1 = null; + String ruta = ""; + int contRow = 0; + + for (int i = 0; i < lsRutaCombinacion.size(); i++) { + Object[] obj = (Object[]) lsRutaCombinacion.get(i); + + if (!ruta.equals(obj[4].toString().concat(obj[12].toString()))) { + + ruta = obj[4].toString().concat(obj[12].toString()); + String sheetName = ""; + if (obj[4].toString().length() > 26) { + sheetName = (obj[4].toString().substring(0, 26).concat(" (").concat(obj[12].toString()).concat(")")); + } else { + sheetName = (obj[4].toString().concat(" (").concat(obj[12].toString()).concat(")")); + } + sheetName = sheetName.replaceAll("/", "-"); + log.debug("Aba: " + sheetName); + sheet1 = wb.createSheet(sheetName); + contRow = 1; + + HSSFRow rowCabecalho = sheet1.createRow(0); + + HSSFCell cell = rowCabecalho.createCell(0); + cell.setCellValue( + Labels.getLabel("busquedaTarifaController.lhId.label")); + cell.setCellStyle(estilo); + + HSSFCell cell0 = rowCabecalho.createCell(1); + cell0.setCellValue( + Labels.getLabel("busquedaTarifaController.lhTramo.label")); + cell0.setCellStyle(estilo); + + HSSFCell cell1 = rowCabecalho.createCell(2); + cell1.setCellValue( + Labels.getLabel("busquedaTarifaController.lhOrigem.label")); + cell1.setCellStyle(estilo); + + HSSFCell cell2 = rowCabecalho.createCell(3); + cell2.setCellValue( + Labels.getLabel("busquedaTarifaController.lhDestino.label")); + cell2.setCellStyle(estilo); + + HSSFCell cell3 = rowCabecalho.createCell(4); + cell3.setCellValue( + Labels.getLabel("busquedaTarifaController.lhRuta.label")); + cell3.setCellStyle(estilo); + + HSSFCell cell4 = rowCabecalho.createCell(5); + cell4.setCellValue( + Labels.getLabel("busquedaTarifaController.lhMarca.label")); + cell4.setCellStyle(estilo); + + // Preco original I - 6 + HSSFCell cell5 = rowCabecalho.createCell(6); + cell5.setCellValue( + Labels.getLabel("busquedaTarifaController.lhClaseServicio.label")); + cell5.setCellStyle(estilo); + + // H - 6 + HSSFCell cell6 = rowCabecalho.createCell(7); + cell6.setCellValue( + Labels.getLabel("busquedaTarifaController.lhFeciniciovigencia.label")); + cell6.setCellStyle(estilo); + + // I - 8 + HSSFCell cell7 = rowCabecalho.createCell(8); + cell7.setCellValue( + Labels.getLabel("busquedaTarifaController.lhMoneda.label")); + cell7.setCellStyle(estilo); + + // J - 9 + HSSFCell cell8 = rowCabecalho.createCell(9); + cell8.setCellValue( + Labels.getLabel("busquedaTarifaController.lhPrecioOriginal.label")); + cell8.setCellStyle(estilo); + + // J - 9 + HSSFCell cell9 = rowCabecalho.createCell(10); + cell9.setCellValue( + Labels.getLabel("busquedaTarifaController.lhPrecioExcel.label")); + cell9.setCellStyle(estilo); + + // h - 10 + HSSFCell cell10 = rowCabecalho.createCell(11); + cell10.setCellValue( + Labels.getLabel("busquedaTarifaController.lhPrecioNuevo.label")); + cell10.setCellStyle(estilo); + } + + HSSFRow row = sheet1.createRow(contRow++); + + row.createCell(0).setCellValue(Integer.parseInt(obj[0].toString())); + row.createCell(1).setCellValue(obj[1].toString()); + row.createCell(2).setCellValue(obj[2].toString()); + row.createCell(3).setCellValue(obj[3].toString()); + row.createCell(4).setCellValue(obj[4].toString().concat(" (").concat(obj[12].toString()).concat(")")); + row.createCell(5).setCellValue(obj[5].toString()); + row.createCell(6).setCellValue(obj[6].toString()); + + DateFormat sfFormatada = new SimpleDateFormat("dd/MM/yyyy"); + + Date dataIni = (Date) obj[7]; + Date dataFim = (Date) obj[8]; + + row.createCell(7).setCellValue(sfFormatada.format(dataIni) + " - " + sfFormatada.format(dataFim)); + row.createCell(8).setCellValue(obj[9].toString()); + + String ori = obj[10].toString(); + BigDecimal original = BigDecimal.valueOf(Double.valueOf(ori)); + + String atu = obj[11].toString(); + BigDecimal atual = BigDecimal.valueOf(Double.valueOf(atu)); + + row.createCell(9).setCellValue(original.setScale(2).doubleValue()); + row.createCell(10).setCellValue(atual.setScale(2).doubleValue()); + + // novo preco: + BigDecimal novoPrecio = atual; + + novoPrecio = novoPrecio.multiply(coeficiente).setScale(2, RoundingMode.HALF_UP); + + HSSFCell cellNovoPrecio = row.createCell(11); + cellNovoPrecio.setCellValue(novoPrecio.setScale(2).doubleValue()); + cellNovoPrecio.setCellStyle(estilo); + } + + String nomeArquivo = + UsuarioLogado.getUsuarioLogado().getNombusuario() + + "_" + Calendar.getInstance().getTime().getTime() + + "_" + "modMassivaT.xls"; + + FileOutputStream stream = new FileOutputStream(nomeArquivo); + stream.flush(); + wb.write(stream); + stream.close(); + + InputStream is = null; + is = new FileInputStream(nomeArquivo); + Filedownload.save(is, "application/xls", "modificacionMasivaTarifa.xls"); + + (new File(nomeArquivo)).delete(); + } catch (Exception ex) { + log.error(ex); + } + } + + // Escala + public VigenciaTarifa vigenciaTarifa(Media mExcel) throws IOException { + InputStream isMExcel = mExcel.getStreamData(); + Workbook wb = new XSSFWorkbook(isMExcel); + + VigenciaTarifa v = new VigenciaTarifa(); + + for (int k = 0; k < wb.getNumberOfSheets(); k++) { + Sheet sheet = wb.getSheetAt(k); + int rows = sheet.getPhysicalNumberOfRows(); + + // pula o row 0 pq eh o cabecalho: + for (int r = 1; r < rows; r++) { + Row row = sheet.getRow(r); + if (row == null) { + continue; + } - Tarifa tarifa = tarifaService.obtenerID(idTarifa); + Cell cellIdTarifa = row.getCell(CELL_ID_TARIFA); + BigDecimal bdId = new BigDecimal(cellIdTarifa.getNumericCellValue()); + Integer idTarifa = bdId.intValue(); - v = tarifa.getVigenciaTarifa(); + Tarifa tarifa = tarifaService.obtenerID(idTarifa); - break; - } - } - return v; - } + v = tarifa.getVigenciaTarifa(); - public void onClick$btnUpLoadExcel(Event ev) throws InterruptedException,IOException { - Media mExcel = Fileupload.get(); + break; + } + } + + return v; + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void onClick$btnUpLoadExcel(Event ev) throws InterruptedException, IOException { + Media mExcel = Fileupload.get(); if (mExcel != null) { - Map args = new HashMap(); - args.put("mExcel", mExcel); - - openWindow("/gui/tarifas/modificacionMasivaTarifasUpload.zul", - Labels.getLabel("modificacionMasivaTarifasController.window.title"), args, MODAL); - + Map args = new HashMap(); + args.put("mExcel", mExcel); + + openWindow("/gui/tarifas/modificacionMasivaTarifasUpload.zul", + Labels.getLabel("modificacionMasivaTarifasController.window.title"), args, MODAL); } - } + } + public void onClick$btnAdicionarClaseServicio(Event ev) { + Comboitem cbiClaseServicio = cmbClaseServicio.getSelectedItem(); + if (cbiClaseServicio != null) { + ClaseServicio claseServicio = (ClaseServicio) cbiClaseServicio.getValue(); + lsAddRmvClaseServico.add(claseServicio); + claseServicioList.setData(lsAddRmvClaseServico); - public void onClick$btnAdicionarClaseServicio(Event ev) { - Comboitem cbiClaseServicio = cmbClaseServicio.getSelectedItem(); - if (cbiClaseServicio != null) { - ClaseServicio claseServicio = (ClaseServicio) cbiClaseServicio.getValue(); + cmbClaseServicio.setSelectedItem(null); + } + } - lsAddRmvClaseServico.add(claseServicio); - claseServicioList.setData(lsAddRmvClaseServico); + public void onClick$btnRemoverClaseServicio(Event ev) { + ClaseServicio claseServicio = (ClaseServicio) claseServicioList.getSelected(); + if (claseServicio != null) { + lsAddRmvClaseServico.remove(claseServicio); + claseServicioList.setData(lsAddRmvClaseServico); + } + } - cmbClaseServicio.setSelectedItem(null); - } - } + public void onClick$btnAdicionarMarca(Event ev) { + Comboitem cbimarca = cmbMarca.getSelectedItem(); + if (cbimarca != null) { + Marca marca = (Marca) cbimarca.getValue(); - public void onClick$btnRemoverClaseServicio(Event ev) { - ClaseServicio claseServicio = (ClaseServicio) claseServicioList.getSelected(); - if (claseServicio != null) { - lsAddRmvClaseServico.remove(claseServicio); - claseServicioList.setData(lsAddRmvClaseServico); - } - } + lsAddRmvMarcas.add(marca); + marcaList.setData(lsAddRmvMarcas); - public void onClick$btnAdicionarMarca(Event ev) { - Comboitem cbimarca = cmbMarca.getSelectedItem(); - if (cbimarca != null) { - Marca marca = (Marca) cbimarca.getValue(); + cmbMarca.setSelectedItem(null); + } + } - lsAddRmvMarcas.add(marca); - marcaList.setData(lsAddRmvMarcas); + public void onClick$btnRemoverMarca(Event ev) { + Marca marca = (Marca) marcaList.getSelected(); + if (marca != null) { + lsAddRmvMarcas.remove(marca); + marcaList.setData(lsAddRmvMarcas); + } + } - cmbMarca.setSelectedItem(null); - } - } + public void onClick$btnAdicionarMoneda(Event ev) { + Comboitem cbiMoneda = cmbMoneda.getSelectedItem(); + if (cbiMoneda != null) { + Moneda moneda = (Moneda) cbiMoneda.getValue(); - public void onClick$btnRemoverMarca(Event ev) { - Marca marca = (Marca) marcaList.getSelected(); - if (marca != null) { - lsAddRmvMarcas.remove(marca); - marcaList.setData(lsAddRmvMarcas); - } - } + lsAddRmvMonedas.add(moneda); + monedaList.setData(lsAddRmvMonedas); - public void onClick$btnAdicionarMoneda(Event ev) { - Comboitem cbiMoneda = cmbMoneda.getSelectedItem(); - if (cbiMoneda != null) { - Moneda moneda = (Moneda) cbiMoneda.getValue(); + cmbMoneda.setSelectedItem(null); + } + } - lsAddRmvMonedas.add(moneda); - monedaList.setData(lsAddRmvMonedas); + public void onClick$btnRemoverMoneda(Event ev) { + Moneda moneda = (Moneda) monedaList.getSelected(); + if (moneda != null) { + lsAddRmvMonedas.remove(moneda); + monedaList.setData(lsAddRmvMonedas); + } + } - cmbMoneda.setSelectedItem(null); - } - } + public void onClick$btnAdicionarEmpresa(Event ev) { + Comboitem cbiEmpresa = cmbEmpresa.getSelectedItem(); + if (cbiEmpresa != null) { + Empresa empresa = (Empresa) cbiEmpresa.getValue(); - public void onClick$btnRemoverMoneda(Event ev) { - Moneda moneda = (Moneda) monedaList.getSelected(); - if (moneda != null) { - lsAddRmvMonedas.remove(moneda); - monedaList.setData(lsAddRmvMonedas); - } - } + lsAddRmvEmpresas.add(empresa); + empresaList.setData(lsAddRmvEmpresas); - public void onClick$btnAdicionarEmpresa(Event ev) { - Comboitem cbiEmpresa = cmbEmpresa.getSelectedItem(); - if (cbiEmpresa != null) { - Empresa empresa = (Empresa) cbiEmpresa.getValue(); + cmbEmpresa.setSelectedItem(null); + } + } - lsAddRmvEmpresas.add(empresa); - empresaList.setData(lsAddRmvEmpresas); + public void onClick$btnRemoverEmpresa(Event ev) { + Empresa empresa = (Empresa) empresaList.getSelected(); + if (empresa != null) { + lsAddRmvEmpresas.remove(empresa); + empresaList.setData(lsAddRmvEmpresas); + } + } - cmbEmpresa.setSelectedItem(null); - } - } + public void onClick$btnAdicionarRuta(Event ev) { + Comboitem cbiRuta = cmbRuta.getSelectedItem(); + if (cbiRuta != null) { + Ruta ruta = (Ruta) cbiRuta.getValue(); - public void onClick$btnRemoverEmpresa(Event ev) { - Empresa empresa = (Empresa) empresaList.getSelected(); - if (empresa != null) { - lsAddRmvEmpresas.remove(empresa); - empresaList.setData(lsAddRmvEmpresas); - } - } + lsAddRmvRutas.add(ruta); + rutaList.setData(lsAddRmvRutas); - public void onClick$btnAdicionarRuta(Event ev) { - Comboitem cbiRuta = cmbRuta.getSelectedItem(); - if (cbiRuta != null) { - Ruta ruta = (Ruta) cbiRuta.getValue(); + cmbRuta.setSelectedItem(null); + } + } - lsAddRmvRutas.add(ruta); - rutaList.setData(lsAddRmvRutas); + public void onClick$btnRemoverRuta(Event ev) { + Ruta ruta = (Ruta) rutaList.getSelected(); + if (ruta != null) { + lsAddRmvRutas.remove(ruta); + rutaList.setData(lsAddRmvRutas); + } + } - cmbRuta.setSelectedItem(null); - } - } + public void onClick$btnAdicionarTipoPuntoVenta(Event ev) { + Comboitem cbiTipoPuntoVenta = cmbTipoPuntoVenta.getSelectedItem(); + if (cbiTipoPuntoVenta != null) { + TipoPuntoVenta tipoPuntoVenta = (TipoPuntoVenta) cbiTipoPuntoVenta.getValue(); - public void onClick$btnRemoverRuta(Event ev) { - Ruta ruta = (Ruta) rutaList.getSelected(); - if (ruta != null) { - lsAddRmvRutas.remove(ruta); - rutaList.setData(lsAddRmvRutas); - } - } + lsAddRmvTipoPuntoVenta.add(tipoPuntoVenta); + tipoPuntoVentaList.setData(lsAddRmvTipoPuntoVenta); - public void onClick$btnAdicionarTipoPuntoVenta(Event ev) { - Comboitem cbiTipoPuntoVenta = cmbTipoPuntoVenta.getSelectedItem(); - if (cbiTipoPuntoVenta != null) { - TipoPuntoVenta tipoPuntoVenta = (TipoPuntoVenta) cbiTipoPuntoVenta.getValue(); + cmbTipoPuntoVenta.setSelectedItem(null); + } + } - lsAddRmvTipoPuntoVenta.add(tipoPuntoVenta); - tipoPuntoVentaList.setData(lsAddRmvTipoPuntoVenta); + public void onClick$btnRemoverTipoPuntoVenta(Event ev) { + TipoPuntoVenta tipoPuntoVenta = (TipoPuntoVenta) tipoPuntoVentaList.getSelected(); + if (tipoPuntoVenta != null) { + lsAddRmvTipoPuntoVenta.remove(tipoPuntoVenta); + tipoPuntoVentaList.setData(lsAddRmvTipoPuntoVenta); + } + } - cmbTipoPuntoVenta.setSelectedItem(null); - } - } + public void onClick$btnAdicionarCategoria(Event ev) { + Comboitem cbiCategoria = cmbCategoria.getSelectedItem(); + if (cbiCategoria != null) { + Categoria categoria = (Categoria) cbiCategoria.getValue(); - public void onClick$btnRemoverTipoPuntoVenta(Event ev) { - TipoPuntoVenta tipoPuntoVenta = (TipoPuntoVenta) tipoPuntoVentaList.getSelected(); - if (tipoPuntoVenta != null) { - lsAddRmvTipoPuntoVenta.remove(tipoPuntoVenta); - tipoPuntoVentaList.setData(lsAddRmvTipoPuntoVenta); - } - } + lsAddRmvCategoria.add(categoria); + categoriaList.setData(lsAddRmvCategoria); - public void onClick$btnAdicionarCategoria(Event ev) { - Comboitem cbiCategoria = cmbCategoria.getSelectedItem(); - if (cbiCategoria != null) { - Categoria categoria = (Categoria) cbiCategoria.getValue(); + cmbCategoria.setSelectedItem(null); + } + } - lsAddRmvCategoria.add(categoria); - categoriaList.setData(lsAddRmvCategoria); + public void onClick$btnRemoverCategoria(Event ev) { + Categoria categoria = (Categoria) categoriaList.getSelected(); + if (categoria != null) { + lsAddRmvCategoria.remove(categoria); + categoriaList.setData(lsAddRmvCategoria); + } + } - cmbCategoria.setSelectedItem(null); - } - } + public void onClick$btnAdicionarVigenciaTarifa(Event ev) { + Comboitem cbiVigenciaTarifa = cmbVigenciaTarifa.getSelectedItem(); + if (cbiVigenciaTarifa != null) { + VigenciaTarifa vigenciaTarifa = (VigenciaTarifa) cbiVigenciaTarifa.getValue(); - public void onClick$btnRemoverCategoria(Event ev) { - Categoria categoria = (Categoria) categoriaList.getSelected(); - if (categoria != null) { - lsAddRmvCategoria.remove(categoria); - categoriaList.setData(lsAddRmvCategoria); - } - } + lsAddRmvVigenciaTarifa.add(vigenciaTarifa); + vigenciaTarifaList.setData(lsAddRmvVigenciaTarifa); - public void onClick$btnAdicionarVigenciaTarifa(Event ev) { - Comboitem cbiVigenciaTarifa = cmbVigenciaTarifa.getSelectedItem(); - if (cbiVigenciaTarifa != null) { - VigenciaTarifa vigenciaTarifa = (VigenciaTarifa) cbiVigenciaTarifa.getValue(); + cmbVigenciaTarifa.setSelectedItem(null); + } + } - lsAddRmvVigenciaTarifa.add(vigenciaTarifa); - vigenciaTarifaList.setData(lsAddRmvVigenciaTarifa); - - cmbVigenciaTarifa.setSelectedItem(null); - } - } - - public void onClick$btnRemoverVigenciaTarifa(Event ev) { - VigenciaTarifa vigenciaTarifa = (VigenciaTarifa) vigenciaTarifaList.getSelected(); - if (vigenciaTarifa != null) { - lsAddRmvVigenciaTarifa.remove(vigenciaTarifa); - vigenciaTarifaList.setData(lsAddRmvVigenciaTarifa); - } - } + public void onClick$btnRemoverVigenciaTarifa(Event ev) { + VigenciaTarifa vigenciaTarifa = (VigenciaTarifa) vigenciaTarifaList.getSelected(); + if (vigenciaTarifa != null) { + lsAddRmvVigenciaTarifa.remove(vigenciaTarifa); + vigenciaTarifaList.setData(lsAddRmvVigenciaTarifa); + } + } }