diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java index 72af03d0c..99e6dfe91 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarCorridaController.java @@ -910,29 +910,18 @@ public class EditarCorridaController extends MyGenericForwardComposer { } if (pe != null) { boolean podeExcluir = false; - for (int i = 0; i < lsParadaEsquema.size(); i++) { - if (lsParadaEsquema.get(i).getParada().equals(pe.getParada())) { - if (i > 0 && i < lsParadaEsquema.size() - 1) { - // condi��o para não poder remover o inicial nem o final + if (lsParadaEsquema.size() > 2) { + for (int i = 0; i < lsParadaEsquema.size(); i++) { + if (lsParadaEsquema.get(i).getParada().equals(pe.getParada())) { ParadaEsquema paradaEsquema = lsParadaEsquema.get(i); lsParadaEsquema.remove(paradaEsquema); - - log.debug("Esquema Tramo Removida: " + lsParadaEsquema.get(i).getNumsecuencia() + " - " + lsParadaEsquema.get(i).getParada().getCveparada()); - + log.debug("Esquema Tramo Removida: " + paradaEsquema.getNumsecuencia() + " - " + paradaEsquema.getParada().getCveparada()); esquemaTramoList.setData(lsParadaEsquema); - podeExcluir = true; - break; - } else if (i == 0 || i == lsParadaEsquema.size() - 1) { - Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.MSG.removerSecuencia"), - Labels.getLabel("editarConfiguracionCorridaController.window.title"), - Messagebox.OK, - Messagebox.EXCLAMATION); } } } - if (podeExcluir) { String ok = esquemaTramoCorrecto(lsParadaEsquema); if (ok != null) { diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/ModificacionMasivaTarifasAliasController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/ModificacionMasivaTarifasAliasController.java new file mode 100644 index 000000000..67c7f5a8d --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/ModificacionMasivaTarifasAliasController.java @@ -0,0 +1,250 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.tarifas; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +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.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.media.Media; +import org.zkoss.util.resource.Labels; +import org.zkoss.zhtml.Filedownload; +import org.zkoss.zhtml.Fileupload; +import org.zkoss.zhtml.Messagebox; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Comboitem; + +import com.rjconsultores.ventaboletos.entidad.AliasServico; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.service.AliasServicoService; +import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCatalogoDeRutas; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderEmpresaModificacionMassivaTarifa; + +@Controller("modificacionMasivaTarifasAliasController") +@Scope("prototype") +public class ModificacionMasivaTarifasAliasController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + + @Autowired + private RutaService rutaService; + + @Autowired + private AliasServicoService aliasServicoService; + + private List lsEmpresas; + private List lsRutas; + private List lsAddRmvEmpresas; + private List lsAddRmvRutas; + + private Combobox cmbEmpresa; + private Combobox cmbRuta; + private MyListbox empresaList; + private MyListbox rutaList; + + private static Logger log = Logger.getLogger(ModificacionMasivaTarifasAliasController.class); + + 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; + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + + lsEmpresas = UsuarioLogado.getUsuarioLogado().getEmpresa(); + lsRutas = rutaService.obtenerTodos(); + + empresaList.setItemRenderer(new RenderEmpresaModificacionMassivaTarifa()); + rutaList.setItemRenderer(new RenderCatalogoDeRutas()); + + lsAddRmvEmpresas = new ArrayList(); + lsAddRmvRutas = new ArrayList(); + } + + public void onClick$btnGerarExcel(Event ev) { + onClick$btnGerarExcelLinear(null); + } + + public void onClick$btnGerarExcelLinear(Event ev) { + + try { + + BigDecimal coeficiente = new BigDecimal(BigInteger.ZERO); + + // Estilo padrão + HSSFWorkbook wb = new HSSFWorkbook(); + + // fonte em negrito: + HSSFFont fonte = wb.createFont(); + fonte.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + HSSFCellStyle estilo = wb.createCellStyle(); + estilo.setFont(fonte); + + List lsAliasServico = aliasServicoService.buscarPorLinhaEmpresa(lsAddRmvRutas, lsAddRmvEmpresas); + + if (!lsAliasServico.isEmpty()) { + + gerarExcelSemAgrupamento(lsAliasServico, wb, estilo, coeficiente); + + String nomeArquivo = + UsuarioLogado.getUsuarioLogado().getNombusuario() + + "_" + Calendar.getInstance().getTime().getTime() + + "_" + "modMassivaT"; + + 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", "modificacionMasivaAlias.xls"); + + fNomeArquivo.delete(); + } + else { + Messagebox.show(Labels.getLabel("modificacionMasivaTarifasUploadController.MSG.excelVazio"), + Labels.getLabel("modificacionMasivaTarifasController.window.title"), Messagebox.OK, Messagebox.INFORMATION); + } + + } catch (Exception ex) { + log.error("", ex); + } + } + + @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); + } + } + + public void onClick$btnAdicionarEmpresa(Event ev) { + Comboitem cbiEmpresa = cmbEmpresa.getSelectedItem(); + if (cbiEmpresa != null) { + Empresa empresa = (Empresa) cbiEmpresa.getValue(); + + if(!lsAddRmvEmpresas.contains(empresa)){ + lsAddRmvEmpresas.add(empresa); + empresaList.setData(lsAddRmvEmpresas); + } + + cmbEmpresa.setSelectedItem(null); + } + } + + public void onClick$btnRemoverEmpresa(Event ev) { + Empresa empresa = (Empresa) empresaList.getSelected(); + if (empresa != null) { + lsAddRmvEmpresas.remove(empresa); + empresaList.setData(lsAddRmvEmpresas); + } + } + + public void onClick$btnAdicionarRuta(Event ev) { + Comboitem cbiRuta = cmbRuta.getSelectedItem(); + if (cbiRuta != null) { + Ruta ruta = (Ruta) cbiRuta.getValue(); + + if (!lsAddRmvRutas.contains(ruta)) { + lsAddRmvRutas.add(ruta); + rutaList.setData(lsAddRmvRutas); + } + + cmbRuta.setSelectedItem(null); + } + } + + public void onClick$btnRemoverRuta(Event ev) { + Ruta ruta = (Ruta) rutaList.getSelected(); + if (ruta != null) { + lsAddRmvRutas.remove(ruta); + rutaList.setData(lsAddRmvRutas); + } + } + + + private void gerarExcelSemAgrupamento(List lsRutaCombinacion, HSSFWorkbook wb, HSSFCellStyle estilo, BigDecimal coeficiente){ + HSSFSheet sheet1 = wb.createSheet("UTIL"); + int contRow = 1; + + HSSFRow rowCabecalho = sheet1.createRow(0); + + HSSFCell cell = rowCabecalho.createCell(0); + cell.setCellValue(Labels.getLabel("modificacionMasivaAliasTarifasController.lblAliasOrigem")); + cell.setCellStyle(estilo); + + HSSFCell cell0 = rowCabecalho.createCell(1); + cell0.setCellValue(Labels.getLabel("modificacionMasivaAliasTarifasController.lblAliasDestino")); + cell0.setCellStyle(estilo); + + HSSFCell cell1 = rowCabecalho.createCell(2); + cell1.setCellValue(Labels.getLabel("modificacionMasivaAliasTarifasController.lblOrigem")); + cell1.setCellStyle(estilo); + + HSSFCell cell2 = rowCabecalho.createCell(3); + cell2.setCellValue(Labels.getLabel("modificacionMasivaAliasTarifasController.lblDestino")); + cell2.setCellStyle(estilo); + + HSSFCell cell3 = rowCabecalho.createCell(4); + cell3.setCellValue(Labels.getLabel("modificacionMasivaAliasTarifasController.lblLinha")); + cell3.setCellStyle(estilo); + + for (AliasServico aliasServico : lsRutaCombinacion) { + HSSFRow row = sheet1.createRow(contRow++); + row.createCell(0).setCellValue(aliasServico.getAliasOrigen().getParadaId()); + row.createCell(1).setCellValue(aliasServico.getAliasDestino().getParadaId()); + row.createCell(2).setCellValue(aliasServico.getOrigen().getParadaId()); + row.createCell(3).setCellValue(aliasServico.getDestino().getParadaId()); + row.createCell(4).setCellValue(aliasServico.getRuta().getRutaId()); + } + for (int i = 0; i <= 4; i++) { + sheet1.autoSizeColumn(i); + } + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/tarifas/ItemMenuModificacionMasivaAlias.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/tarifas/ItemMenuModificacionMasivaAlias.java new file mode 100644 index 000000000..e2c2c24c5 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/tarifas/ItemMenuModificacionMasivaAlias.java @@ -0,0 +1,26 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.tarifas; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuModificacionMasivaAlias extends DefaultItemMenuSistema { + + public ItemMenuModificacionMasivaAlias() { + super("indexController.mniModificacionMasivaAlias.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.TARIFAS.MENU.MODIFICACIONMASIVAALIAS"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/tarifas/modificacionMasivaTarifasAlias.zul", + Labels.getLabel("indexController.mniModificacionMasivaAlias.label"), getArgs(), desktop); + + } + +} diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 096c5be3f..ca458b3ed 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -147,6 +147,7 @@ indexController.mniParamAcumulacionMasivo.label = Configuración acumulación ma indexController.mniParamCompraPunto.label = Configuración compra de puntos indexController.mniParamCostoTarjeta.label = Configuración costo tarjeta indexController.mniModificacionMasiva.label = Modificación masiva de tarifas +indexController.mniModificacionMasivaAlias.label = Modificação Massiva Alias indexController.mniCambioVigencia.label = Cambiar/Copia vigencia indexController.mnAjuda.label = Ayuda indexController.mniVersion.label = Versión @@ -2378,6 +2379,19 @@ modificacionMasivaTarifasController.agrupamentoLinha.label = Línea de Agrupaci modificacionMasivaTarifasController.agrupamentoLinha.radioSim = Sí modificacionMasivaTarifasController.agrupamentoLinha.radioNao = No + +# Modificação Massiva Alias +modificacionMasivaAliasTarifasController.btnGerarExcel.label = Gerar Excel com simulação +modificacionMasivaAliasTarifasController.btnGerarExcel.tooltiptext = Gerar Excel com simulação. +modificacionMasivaAliasTarifasController.btnUpLoadExcel.label = Importar Excel autorizado +modificacionMasivaAliasTarifasController.btnUpLoadExcel.tooltiptext = Importar Excel autorizado. +modificacionMasivaAliasTarifasController.lblAliasOrigem = ID Alias Origem +modificacionMasivaAliasTarifasController.lblAliasDestino = ID Alias Destino +modificacionMasivaAliasTarifasController.lblOrigem = ID Origem +modificacionMasivaAliasTarifasController.lblDestino = ID Destino +modificacionMasivaAliasTarifasController.lblLinha = ID Linha + + #Geracion de Servicio geracionCorridaController.window.title = Generación de corridas geracionCorridaController.lhGerar.label = Generar corridas diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 628f8de48..d730b067a 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -149,6 +149,7 @@ indexController.mniParamAcumulacionMasivo.label = Configuração Acumulação Ma indexController.mniParamCompraPunto.label = Configuração Compra de Pontos indexController.mniParamCostoTarjeta.label = Configuração Custo Cartão indexController.mniModificacionMasiva.label = Modificação Massiva de Preços +indexController.mniModificacionMasivaAlias.label = Modificação Massiva Alias indexController.mniCambioVigencia.label = Mudar/Copiar Vigência indexController.mnAjuda.label = Ajuda indexController.mniVersion.label = Versão @@ -2423,6 +2424,18 @@ modificacionMasivaTarifasController.agrupamentoLinha.radioSim = Sim modificacionMasivaTarifasController.agrupamentoLinha.radioNao = Não +# Modificação Massiva Alias +modificacionMasivaAliasTarifasController.btnGerarExcel.label = Gerar Excel com simulação +modificacionMasivaAliasTarifasController.btnGerarExcel.tooltiptext = Gerar Excel com simulação. +modificacionMasivaAliasTarifasController.btnUpLoadExcel.label = Importar Excel autorizado +modificacionMasivaAliasTarifasController.btnUpLoadExcel.tooltiptext = Importar Excel autorizado. +modificacionMasivaAliasTarifasController.lblAliasOrigem = ID Alias Origem +modificacionMasivaAliasTarifasController.lblAliasDestino = ID Alias Destino +modificacionMasivaAliasTarifasController.lblOrigem = ID Origem +modificacionMasivaAliasTarifasController.lblDestino = ID Destino +modificacionMasivaAliasTarifasController.lblLinha = ID Linha + + #Geracion de Serviço geracionCorridaController.window.title = Geração de Serviços geracionCorridaController.lhGerar.label = Gerar serviços diff --git a/web/gui/tarifas/modificacionMasivaTarifasAlias.zul b/web/gui/tarifas/modificacionMasivaTarifasAlias.zul new file mode 100644 index 000000000..7ce6d3216 --- /dev/null +++ b/web/gui/tarifas/modificacionMasivaTarifasAlias.zul @@ -0,0 +1,104 @@ + + + + + + + + + + +