Merge pull request 'AL-4553' (!649) from AL-4553 into master

Reviewed-on: adm/VentaBoletosAdm#649
Reviewed-by: Valdir Cordeiro <valdir.cordeiro@totvs.com.br>
master 1.121.3
Valdir Cordeiro 2024-08-13 17:57:55 +00:00
commit e6df4146e7
10 changed files with 74565 additions and 4 deletions

View File

@ -4,12 +4,12 @@
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId>
<artifactId>ventaboletosadm</artifactId>
<version>1.121.1</version>
<version>1.121.3</version>
<packaging>war</packaging>
<properties>
<modelWeb.version>1.93.0</modelWeb.version>
<flyway.version>1.80.1</flyway.version>
<modelWeb.version>1.93.1</modelWeb.version>
<flyway.version>1.80.2</flyway.version>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

View File

@ -0,0 +1,152 @@
package com.rjconsultores.ventaboletos.web.gui.controladores.expressos;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
import org.apache.commons.io.IOUtils;
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.Fileupload;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Paging;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.SolicitudExpreso;
import com.rjconsultores.ventaboletos.entidad.TrayectosExpresos;
import com.rjconsultores.ventaboletos.service.EmpresaService;
import com.rjconsultores.ventaboletos.service.SolicitudExpresosService;
import com.rjconsultores.ventaboletos.web.utilerias.MyDatebox;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject;
import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCumplimientoServicioExpresos;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderDocumentosExpresos;
@Controller("cumplimientoServicioExpresosController")
@Scope("prototype")
public class CumplimientoServicioExpresosController extends MyGenericForwardComposer{
private static final long serialVersionUID = 1L;
@Autowired
private transient PagedListWrapper<SolicitudExpreso> plwTrayectosExpresos;
@Autowired
private EmpresaService empresaService;
@Autowired
SolicitudExpresosService solicitudExpreso;
private List<Empresa> lsEmpresa;
private Paging pagingExpresos;
private Combobox cmbEmpresa;
private MyListbox expresosList;
private Checkbox ckServiciosInactivos;
private MyDatebox txtFechaInicio;
private MyDatebox txtFechaFin;
SolicitudExpreso expreso;
@Override
public void doAfterCompose(Component comp) throws Exception {
lsEmpresa = empresaService.obtenerTodos();
super.doAfterCompose(comp);
expresosList.setItemRenderer(new RenderCumplimientoServicioExpresos(new EventListener() {
@Override
public void onEvent(Event arg0) throws Exception {
expreso = (SolicitudExpreso)arg0.getTarget().getAttribute("data");
Media cumplimiento = Fileupload.get();
if(cumplimiento.getFormat().equalsIgnoreCase("pdf")) {
InputStream inputStream = cumplimiento.getStreamData();
byte[] bytesIs = IOUtils.toByteArray(inputStream);
expreso.setDocCumplimientoServicio(bytesIs);
solicitudExpreso.actualizacion(expreso);
refreshLista();
} else {
Messagebox.show(
Labels.getLabel("cargaContratoController.MSG.errorFormatoContrato") + " " + cumplimiento,
Labels.getLabel("winExpressoCargaContrato.title"),
Messagebox.OK, Messagebox.ERROR);
}
}
}));
refreshLista();
}
private void refreshLista() {
HibernateSearchObject<SolicitudExpreso> buscarExpresos =
new HibernateSearchObject<SolicitudExpreso>(SolicitudExpreso.class, pagingExpresos.getPageSize());
Date fechaInicio = txtFechaInicio.getValue();
if(fechaInicio != null) {
buscarExpresos.addFilterGreaterOrEqual("FECSOLICITUD", fechaInicio);
}
Date fechaFin = txtFechaFin.getValue();
if(fechaFin != null) {
buscarExpresos.addFilterLessOrEqual("FECSOLICITUD", fechaFin);
}
if(ckServiciosInactivos.isChecked()) {
buscarExpresos.addFilterLessOrEqual("ACTIVO", true);
}
plwTrayectosExpresos.init(buscarExpresos, expresosList, pagingExpresos);
}
public List<Empresa> getLsEmpresa() {
return lsEmpresa;
}
public void setLsEmpresa(List<Empresa> lsEmpresa) {
this.lsEmpresa = lsEmpresa;
}
public Combobox getCmbEmpresa() {
return cmbEmpresa;
}
public void setCmbEmpresa(Combobox cmbEmpresa) {
this.cmbEmpresa = cmbEmpresa;
}
public MyListbox getExpresosList() {
return expresosList;
}
public void setExpresosList(MyListbox expresosList) {
this.expresosList = expresosList;
}
public Paging getPagingExpresos() {
return pagingExpresos;
}
public void setPagingExpresos(Paging pagingExpresos) {
this.pagingExpresos = pagingExpresos;
}
public PagedListWrapper<SolicitudExpreso> getPlwTrayectosExpresos() {
return plwTrayectosExpresos;
}
public void setPlwTrayectosExpresos(PagedListWrapper<SolicitudExpreso> plwTrayectosExpresos) {
this.plwTrayectosExpresos = plwTrayectosExpresos;
}
}

View File

@ -0,0 +1,24 @@
package com.rjconsultores.ventaboletos.web.utilerias.menu.item.expressos;
import org.zkoss.util.resource.Labels;
import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria;
import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema;
public class ItemMenuCumplimientoServicio extends DefaultItemMenuSistema{
public ItemMenuCumplimientoServicio() {
super("indexController.mniExpressosCumplimientoServicio.label");
}
@Override
public String getClaveMenu() {
return null;
}
@Override
public void ejecutar() {
PantallaUtileria.openWindow("/gui/expressos/cumplimientoServicioExpreso.zul",
Labels.getLabel("indexController.mniExpressosCumplimientoServicio.label"),
getArgs(), desktop);
}
}

View File

@ -359,7 +359,7 @@ expressos.porCotizar=com.rjconsultores.ventaboletos.web.utilerias.menu.item.expr
expressos.cargaContrato=com.rjconsultores.ventaboletos.web.utilerias.menu.item.expressos.ItemMenuCargaContrato
expressos.programacionVehiculo=com.rjconsultores.ventaboletos.web.utilerias.menu.item.expressos.ItemMenuProgramacionVehiculo
expressos.documentos=com.rjconsultores.ventaboletos.web.utilerias.menu.item.expressos.ItemMenuDocumentos
#expressos.cumplimientoServicio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.expressos.ItemMenuCumplimientoServicio
expressos.cumplimientoServicio=com.rjconsultores.ventaboletos.web.utilerias.menu.item.expressos.ItemMenuCumplimientoServicio
#expressos.log=com.rjconsultores.ventaboletos.web.utilerias.menu.item.expressos.ItemMenuLog
#expressos.InformeViajesOcasionales=com.rjconsultores.ventaboletos.web.utilerias.menu.item.expressos.ItemMenuInformeViajesOcasionales
#expressos.seguimientoExpresos=com.rjconsultores.ventaboletos.web.utilerias.menu.item.expressos.ItemMenuSeguimientoExpresos

View File

@ -0,0 +1,95 @@
package com.rjconsultores.ventaboletos.web.utilerias.render;
import org.zkoss.util.resource.Labels;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Button;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
import com.rjconsultores.ventaboletos.entidad.SolicitudExpreso;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
public class RenderCumplimientoServicioExpresos implements ListitemRenderer {
EventListener listenerGenerico;
public RenderCumplimientoServicioExpresos(EventListener listenerGenerico) {
super();
this.listenerGenerico = listenerGenerico;
}
@Override
public void render(Listitem item, Object data) throws Exception {
SolicitudExpreso expresos = (SolicitudExpreso) data;
Listcell lc = new Listcell(expresos.getSolicitudExpresoId().toString());
lc.setParent(item);
lc = new Listcell(DateUtil.getStringDate(expresos.getFechaSolicitud(), "dd/MM/yyyy"));
lc.setParent(item);
String ruta = expresos.getCiudadOrigen().getNombciudad() + " - " + expresos.getCiudadDestino().getNombciudad();
lc = new Listcell(ruta);
lc.setParent(item);
if(expresos.getIndViajeRedondo() == false) {
lc = new Listcell(Labels.getLabel("expresosController.lbl.ida"));
lc.setParent(item);
}else if (expresos.getIndViajeRedondo() == true) {
lc = new Listcell(Labels.getLabel("expresosController.lbl.idaVuelta"));
lc.setParent(item);
}else {
lc = new Listcell();
lc.setParent(item);
}
lc = new Listcell(DateUtil.getStringDate(expresos.getFechaHoraIda(), "dd/MM/yyyy HH:mm"));
lc.setParent(item);
lc = new Listcell(DateUtil.getStringDate(expresos.getFechaHoraRegreso(), "dd/MM/yyyy HH:mm"));
lc.setParent(item);
lc = new Listcell(expresos.getDescSitioPartidaIda());
lc.setParent(item);
lc = new Listcell(expresos.getDescSitioPartidaRegreso());
lc.setParent(item);
int estadoExpreso = (expresos.getStatusSolicitudExpresoId() == null ? 0 : expresos.getStatusSolicitudExpresoId());
switch(estadoExpreso) {
case 1:
lc = new Listcell(Labels.getLabel("expresosController.lbl.estadoSolicitado"));
lc.setParent(item);
break;
case 2:
lc = new Listcell(Labels.getLabel("expresosController.lbl.estadoEnviado"));
lc.setParent(item);
break;
case 3:
lc = new Listcell(Labels.getLabel("expresosController.lbl.estadoAceptado"));
lc.setParent(item);
lc = new Listcell();
lc.setParent(item);
Button btnCargarCumplimiento = new Button(Labels.getLabel("expresosController.lbl.btnCargarCumplimientoServicio"));
btnCargarCumplimiento.setAttribute("data", data);
btnCargarCumplimiento.addEventListener("onClick", listenerGenerico);
lc.appendChild(btnCargarCumplimiento);
break;
case 4:
lc = new Listcell(Labels.getLabel("expresosController.lbl.estadoRechazado"));
lc.setParent(item);
break;
default: break;
}
lc = new Listcell();
}
}

View File

@ -7587,6 +7587,76 @@ indexController.mnEquivalencia.label = Equivalencia
indexController.mnEsquemaOperacional.label = Esquema Operacional
#Expressos
indexController.mnExpressos.label = Express
indexController.mniExpressosPorCotizar.label = Express to be quoted
indexController.mniExpressosCargaContrato.label = Contract Charge
indexController.mniExpressosProgramacionVehiculos.label = Vehicle Programming
verDetalleExpreso.window.title = Express Detail
expresosPorCotizarCotizar.window.title = Express Quote
expressosPorCotizarFechaInicioController.lblDesc.label = Start date
expressosPorCotizarFechaFinController.lblDesc.label = End date
expressosPorCotizarEmpresaController.lblDesc.label = Company
expressosPorCotizarServiciosInactivosController.lblDesc.label = Inactive services
expressosPorCotizarController.btnPesquisa.label = Look for
expressosPorCotizarController.lhNumSolicitud.label = # Application
expressosPorCotizarController.lhFechaSolicitud.label = Application date
expressosPorCotizarController.lhRuta.label = Route
expressosPorCotizarController.lhIdaRegreso.label = Round trip
expressosPorCotizarController.lhFechaIda.label = Departure date
expressosPorCotizarController.lhFechaRegreso.label = Return Date
expressosPorCotizarController.lhSitioRecogidaIda.label = Site Pickup Going
expressosPorCotizarController.lhSitioRecogidaRegreso.label = Site Pickup Return
expressosPorCotizarController.lhEstadiaConductor.label = Driver Stay
expressosPorCotizarBuscarController.lblDesc.label = Look for
expressosPorCotizarVerDetalleController.lblDesc.label = See detail
expressosPorCotizarPagoCreditoController.lblDesc.label = Credit Payment
indexController.mniExpressosPorCotizar.label = Express to be quoted
expresosPorCotizarPagoCredito.window.title = Credit Payment
expressosPorCotizarCotizarController.lblDesc.label = Quote
expressosPorCotizarController.lhCantidadPasajeros.label = Number of Passengers
expressosPorCotizarController.lhAdjuntarCotizacion.label = Attach Quote
expressosPorCotizarController.lhCantidadVehiculos.label = Vehicle Quantity
expressosPorCotizarController.lhValorTrayecto.label = Trip Value
expressosPorCotizarController.lblOrigen.label = Origin
expressosPorCotizarController.lblDestino.label = Destination
expressosPorCotizarController.lblAgregarTrayecto.label = Add Trip
cargarContratoController.lhAdjuntarContrato.label = Load Contract
expressosPorCotizarController.lhTrayecto.label = Journey
expressosPorCotizarController.lhCodigoViaje.label = Trip Code
expressosPorCotizarController.lhPlacaVehiculo.label = Plate
expressosPorCotizarController.lhFluecPlanilla.label = FLUEC - Occasional Return
asignarBusExpreso.window.title = Express Trip
expresosController.lbl.cargarFluec = Load FLUEC
expresosController.lbl.cargarPlaca = Load Plate
indexController.mniExpressosDocumentos.label = Documents
expresosController.lbl.verDetalle = See detail
expresosController.lbl.asignarBus = Assign Bus
expresosController.lbl.pagadoCredito = Paid on Credit
expresosController.lbl.idaVuelta = Round trip
expresosController.lbl.idaVuelta = Going
expresoController.MSG.errorArchivo = Invalid or null file
cargaContratoController.MSG.errorExpresoNull = Select Express to Associate Contract
cotizarExpresoController.MSG.emailEnviado = Correct Express Quote
expresoController.MSG.emailNoEnviado = There's been a problem. Please check logs
expresoController.MSG.asuntoCorreoCotizacion = Quoted Express Request
expresoController.MSG.cuerpoCorreoCotizacion = Dear {0}, the express request has been quoted, in the following link {1} you can accept the quote and make the payment.
expresosController.lbl.btnVerContrato = See Contract
expresosController.lbl.btnVerFuec = See FUEC/Template
expresosController.lbl.btnVerListaPasajeros = See Passenger List
indexController.mniExpressosCumplimientoServicio.label = Service Compliance
expressosPorCotizarController.lhEstado.label = State
expresosController.lbl.btnCargarCumplimientoServicio = Attach Document
expresosController.lbl.estadoSolicitado = Required
expresosController.lbl.estadoEnviado = Send
expresosController.lbl.estadoAceptado = Acepted
expresosController.lbl.estadoRechazado = Rejected
#GR
indexController.mnGR.label = Passing Stock
#Gestao de Pricing
indexController.mnGestaoDePricing.label = Pricing Management

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7594,6 +7594,76 @@ indexController.mnEquivalencia.label = Equivalencia
indexController.mnEsquemaOperacional.label = Esquema Operacional
#Expressos
indexController.mnExpressos.label = Expresso
indexController.mniExpressosPorCotizar.label = Expresso a ser cotado
indexController.mniExpressosCargaContrato.label = Taxa de contrato
indexController.mniExpressosProgramacionVehiculos.label = Programação de veículos
verDetalleExpreso.window.title =Detalhe expresso
expresosPorCotizarCotizar.window.title = Cotação Expressa
expressosPorCotizarFechaInicioController.lblDesc.label = Data de início
expressosPorCotizarFechaFinController.lblDesc.label = Data final
expressosPorCotizarEmpresaController.lblDesc.label = Empresa
expressosPorCotizarServiciosInactivosController.lblDesc.label = Serviços inativos
expressosPorCotizarController.btnPesquisa.label = Pesquisa
expressosPorCotizarController.lhNumSolicitud.label = # Aplicativo
expressosPorCotizarController.lhFechaSolicitud.label = Data da inscrição
expressosPorCotizarController.lhRuta.label = Rota
expressosPorCotizarController.lhIdaRegreso.label = Ida e volta
expressosPorCotizarController.lhFechaIda.label = Data de partida
expressosPorCotizarController.lhFechaRegreso.label = Data de retorno
expressosPorCotizarController.lhSitioRecogidaIda.label = Local de coleta unidirecional
expressosPorCotizarController.lhSitioRecogidaRegreso.label = Devolução de retirada no local
expressosPorCotizarController.lhEstadiaConductor.label = Estadia do motorista
expressosPorCotizarBuscarController.lblDesc.label = Pesquisa
expressosPorCotizarVerDetalleController.lblDesc.label = Ver detalhe
expressosPorCotizarPagoCreditoController.lblDesc.label = Pagamento de crédito
indexController.mniExpressosPorCotizar.label = Expresso a ser cotado
expresosPorCotizarPagoCredito.window.title = Pagamento de crédito
expressosPorCotizarCotizarController.lblDesc.label = Cotação
expressosPorCotizarController.lhCantidadPasajeros.label = Número de passageiros
expressosPorCotizarController.lhAdjuntarCotizacion.label = Anexar orçamento
expressosPorCotizarController.lhCantidadVehiculos.label = Quantidade de veículos
expressosPorCotizarController.lhValorTrayecto.label = Valor da viagem
expressosPorCotizarController.lblOrigen.label = Origem
expressosPorCotizarController.lblDestino.label = Destino
expressosPorCotizarController.lblAgregarTrayecto.label = Adicionar viagem
cargarContratoController.lhAdjuntarContrato.label = Anexar Contrato
expressosPorCotizarController.lhTrayecto.label = trajetória
expressosPorCotizarController.lhCodigoViaje.label = Código de viagem
expressosPorCotizarController.lhPlacaVehiculo.label = Placa
expressosPorCotizarController.lhFluecPlanilla.label = FLUEC - Retorno Ocasional
asignarBusExpreso.window.title = Viagem Expressa
expresosController.lbl.cargarFluec = Anexar FLUEC
expresosController.lbl.cargarPlaca = Anexar Placa
indexController.mniExpressosDocumentos.label = Documentos
expresosController.lbl.verDetalle = Ver detalhe
expresosController.lbl.asignarBus = Atribuir ônibus
expresosController.lbl.pagadoCredito = Pagado a Crédito
expresosController.lbl.idaVuelta = Ida e volta
expresosController.lbl.idaVuelta = Ida
expresoController.MSG.errorArchivo = Arquivo inválido ou nulo
cargaContratoController.MSG.errorExpresoNull = Selecione Expresso para Associar Contrato
cotizarExpresoController.MSG.emailEnviado = Cotação Expressa Correta
expresoController.MSG.emailNoEnviado = Houve um problema. Verifique os registros
expresoController.MSG.asuntoCorreoCotizacion = Solicitação expressa cotada
expresoController.MSG.cuerpoCorreoCotizacion = Prezado {0}, o pedido expresso foi cotado, no link a seguir {1} você pode aceitar o orçamento e efetuar o pagamento.
expresosController.lbl.btnVerContrato = Ver Contrato
expresosController.lbl.btnVerFuec = Veja FUEC/Formulário
expresosController.lbl.btnVerListaPasajeros = Veja lista de passageiros
indexController.mniExpressosCumplimientoServicio.label = Conformidade de serviço
expressosPorCotizarController.lhEstado.label = Estado
expresosController.lbl.btnCargarCumplimientoServicio = Anexar documento
expresosController.lbl.estadoSolicitado = Obrigatório
expresosController.lbl.estadoEnviado = Enviado
expresosController.lbl.estadoAceptado = Aceito
expresosController.lbl.estadoRechazado = Recusado
#GR
indexController.mnGR.label = Estoque de Passagem
#Gestao de Pricing
indexController.mnGestaoDePricing.label = Gestão de Pricing

View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<?page contentType="text/html;charset=UTF-8"?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="winCumplimientoServicioExpresos"?>
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
<zk xmlns="http://www.zkoss.org/2005/zul">
<window id="winCumplimientoServicioExpresos" title="${c:l('winCumplimientoServicioExpresos.title')}"
border="normal" height="484px" width="1200px" position="center" mode="overlapped"
apply="${cumplimientoServicioExpresosController}">
<toolbar>
<button id="btnRefresh" image="/gui/img/refresh.png" width="35px"
tooltiptext="${c:l('tooltiptext.btnActualizar')}" />
<separator orient="vertical" />
<button id="btnCerrar" onClick="winCumplimientoServicioExpresos.detach()" image="/gui/img/exit.png" width="35px"
tooltiptext="${c:l('tooltiptext.btnFechar')}"/>
</toolbar>
<grid fixedLayout="true">
<columns>
<column width="25%" />
<column width="25%" />
<column width="25%" />
<column width="25%" />
</columns>
<rows>
<row>
<label value="${c:l('expressosPorCotizarFechaInicioController.lblDesc.label')}"/>
<datebox id="txtFechaInicio" use="com.rjconsultores.ventaboletos.web.utilerias.MyDatebox" format="dd/MM/yyyy" maxlength="10" width="100%"/>
<label value="${c:l('expressosPorCotizarFechaFinController.lblDesc.label')}"/>
<datebox id="txtFechaFin" use="com.rjconsultores.ventaboletos.web.utilerias.MyDatebox" format="dd/MM/yyyy" maxlength="10" width="100%"/>
</row>
<row spans="1,3">
<label id="lblEmpresa" value="${c:l('expressosPorCotizarEmpresaController.lblDesc.label')}"/>
<combobox id="cmbEmpresa"
width="40%"
maxlength="60"
mold="rounded"
buttonVisible="true"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar"
model="@{winExpressoPorCotizar$composer.lsEmpresa}"/>
</row>
</rows>
</grid>
<toolbar>
<checkbox
id="ckServiciosInactivos"
checked="@{winEditarPuntoVenta$composer.puntoVenta.validaTempoParaImpressao}"
label="${c:l('expressosPorCotizarServiciosInactivosController.lblDesc.label')}"/>
<button
id="btnPesquisa"
image="/gui/img/find.png"
label="${c:l('expressosPorCotizarBuscarController.lblDesc.label')}" />
</toolbar>
<paging id="pagingExpresos" pageSize="20" />
<listbox id="expresosList"
use="com.rjconsultores.ventaboletos.web.utilerias.MyListbox"
multiple="false">
<listhead sizable="true">
<listheader width="80px" label="${c:l('expressosPorCotizarController.lhNumSolicitud.label')}"/>
<listheader width="110px" label="${c:l('expressosPorCotizarController.lhFechaSolicitud.label')}"/>
<listheader width="100px" label="${c:l('expressosPorCotizarController.lhRuta.label')}"/>
<listheader width="100px" label="${c:l('expressosPorCotizarController.lhIdaRegreso.label')}"/>
<listheader width="80px" label="${c:l('expressosPorCotizarController.lhFechaIda.label')}"/>
<listheader width="100px" label="${c:l('expressosPorCotizarController.lhFechaRegreso.label')}"/>
<listheader width="110px" label="${c:l('expressosPorCotizarController.lhSitioRecogidaIda.label')}"/>
<listheader width="140px" label="${c:l('expressosPorCotizarController.lhSitioRecogidaRegreso.label')}"/>
<listheader width="120px" label="${c:l('expressosPorCotizarController.lhEstado.label')}"/>
<listheader width="350px"/>
</listhead>
</listbox>
</window>
</zk>