Se agrega funcionalidad de Cumplimiento de Servicio

master
Fernando Abimael Alvarez Uc 2024-08-12 17:09:41 -06:00
parent 2e8a5c0cde
commit 7fef346de1
6 changed files with 258 additions and 1 deletions

View File

@ -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<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,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

@ -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

View File

@ -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

View File

@ -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

View File

@ -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