diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/expressos/CumplimientoServicioExpresosController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/expressos/CumplimientoServicioExpresosController.java index f12e16c77..2d611251f 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/expressos/CumplimientoServicioExpresosController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/expressos/CumplimientoServicioExpresosController.java @@ -1,10 +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 { +public class CumplimientoServicioExpresosController extends MyGenericForwardComposer{ + private static final long serialVersionUID = 1L; + + @Autowired + private transient PagedListWrapper plwTrayectosExpresos; + + @Autowired + private EmpresaService empresaService; + + @Autowired + SolicitudExpresosService solicitudExpreso; + + private List 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 buscarExpresos = + new HibernateSearchObject(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 getLsEmpresa() { + return lsEmpresa; + } + public void setLsEmpresa(List 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 getPlwTrayectosExpresos() { + return plwTrayectosExpresos; + } + + public void setPlwTrayectosExpresos(PagedListWrapper plwTrayectosExpresos) { + this.plwTrayectosExpresos = plwTrayectosExpresos; + } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderCumplimientoServicioExpresos.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderCumplimientoServicioExpresos.java new file mode 100644 index 000000000..ae93e7a5d --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderCumplimientoServicioExpresos.java @@ -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(); + } + +} diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label index 34cfda6e3..f2208d616 100644 --- a/web/WEB-INF/i3-label_en.label +++ b/web/WEB-INF/i3-label_en.label @@ -7602,6 +7602,11 @@ 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 diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 62f7f544e..99d12ca3f 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -7459,6 +7459,10 @@ expresosController.lbl.asignarBus = Asignar Bus expresosController.lbl.pagadoCredito = Pagado a Crédito expresosController.lbl.idaVuelta = Ida y Regreso expresosController.lbl.idaVuelta = Ida +expresosController.lbl.estadoSolicitado = Solicitado +expresosController.lbl.estadoEnviado = Enviado +expresosController.lbl.estadoAceptado = Aceptado +expresosController.lbl.estadoRechazado = Rechazado expresoController.MSG.errorArchivo = Archivo inválido o nulo cargaContratoController.MSG.errorExpresoNull = Seleccione Expreso a Asociar Contrato @@ -7470,6 +7474,7 @@ expresoController.MSG.cuerpoCorreoCotizacion = Estimado/a {0}, la solicitud de e expresosController.lbl.btnVerContrato = Ver Contrato expresosController.lbl.btnVerFuec = Ver FUEC/Planilla expresosController.lbl.btnVerListaPasajeros = Ver Lista Pasajeros +expresosController.lbl.btnCargarCumplimientoServicio = Adjuntar Documento #GR indexController.mnGR.label = GR #Gestao de Pricing diff --git a/web/WEB-INF/i3-label_fr_FR.label b/web/WEB-INF/i3-label_fr_FR.label index 4805294cf..7ae68bd1d 100644 --- a/web/WEB-INF/i3-label_fr_FR.label +++ b/web/WEB-INF/i3-label_fr_FR.label @@ -7471,6 +7471,11 @@ expresosController.lbl.btnVerListaPasajeros = Voir la liste des passagers indexController.mniExpressosCumplimientoServicio.label = Conformité des services expressosPorCotizarController.lhEstado.label = État +expresosController.lbl.btnCargarCumplimientoServicio = Joindre un document +expresosController.lbl.estadoSolicitado = Requis +expresosController.lbl.estadoEnviado = Envoyé +expresosController.lbl.estadoAceptado = Accepté +expresosController.lbl.estadoRechazado = Refusé #GR indexController.mnGR.label = Passage de stock #Gestao de Pricing diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 03fd6e04b..134b4afd9 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -7607,6 +7607,11 @@ 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