package com.fp.frontend.controller.armas.solicitud; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import com.fp.dto.Request; import com.fp.dto.Response; import com.fp.dto.query.DtoQuery; import com.fp.dto.save.DtoSave; import com.fp.frontend.controller.AbstractController; import com.fp.frontend.controller.armas.parametros.RequisitoController; import com.fp.frontend.controller.pcustomer.PersonAddressController; import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController; import com.fp.frontend.helper.MessageHelper; import com.fp.persistence.parmas.fun.TarmSolicitudImportacion; import com.fp.persistence.parmas.param.TarmRequisito; import com.fp.persistence.parmas.param.TarmTramite; import com.fp.persistence.parmas.soli.TarmOrdenTrabajo; import com.fp.persistence.parmas.soli.TarmSolicitud; import com.fp.persistence.parmas.soli.TarmSolicitudTramite; import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail; @SuppressWarnings("serial") @ManagedBean @ViewScoped public class OrdenTrabajoController extends AbstractController { private Date fechaHoy; private Date inicio; private Date fin; private java.sql.Date fechaInicio; private java.sql.Date fechaFin; private TarmSolicitud solicitud=new TarmSolicitud(); private TarmSolicitudTramite solicitudTramite=new TarmSolicitudTramite(); private TarmTramite tramite=new TarmTramite(); private String usoActividad; private Long numeroOrden; private String documentoReferencia; private String empresa; private String lugarDireccion; private String ruta; private String tiempoEstimado; private String observaciones; public OrdenTrabajoController() throws Exception { super(TarmOrdenTrabajo.class); } @PostConstruct private void postconstruct() { this.init(); // Inicializa autoconsulta super.startQuery(); } /** * Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador. */ private void init() { try { recperpage = 15; // Cambiar al # reg a mirar. lrecord = new ArrayList<>(); beanalias = "ORDENTRABAJOCONTROLLER"; fechaHoy=Calendar.getInstance().getTime(); record=new TarmOrdenTrabajo(); record.setIsnew(true); } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Crea una instancia de TgeneTransactionProcess y marca el registro como nuevo. * * @throws Exception */ @Override public void create() throws Exception { super.create(); } @SuppressWarnings("unchecked") @Override protected void querydatabase() { try { //Obteniendo la solicitud solicitud= ValidacionTramiteLibreTransitoController.findPorSolicitudSimple("1"); if(solicitud!=null && solicitud.getPk()!=null){ solicitudTramite=TarmSolicitudTramiteController.findPorCSolicitud(solicitud.getPk()); if(solicitudTramite!=null && solicitudTramite.getPk().getCtramite()!=null){ tramite=TarmTramiteController.find(solicitudTramite.getPk().getCtramite().toString()); if(tramite!=null && tramite.getPk()!=null){ //Uso actividad TgeneCatalogDetail catalogDetailTramite=CatalogDetailController.findxCodigoCodcatalogo(solicitudTramite.getEstadotramite(), solicitudTramite.getEstadotramitecodigo()); catalogDetailTramite=CatalogDetailController.findxCodigoCodcatalogo(tramite.getUsoactividad(), tramite.getUsoactividadcodigo()); if(catalogDetailTramite!=null && tramite.getUsoactividad()!=null && tramite.getUsoactividadcodigo()!=null){ usoActividad=catalogDetailTramite.getDescription(); } } } } //Obteniendo el numero de orden List listaOrdenes=OrdenTrabajoController.findAll(); if(listaOrdenes==null || listaOrdenes.isEmpty()){ numeroOrden=1L; }else{ numeroOrden=listaOrdenes.get(listaOrdenes.size()-1).getPk()+1; } DtoQuery dto = super.getDtoQuery(true); HashMap mtables = new HashMap(); mtables.put(beanalias, dto); // permite adicionar mas de una tabla. Request request = callerhelper.getRequest(); request.setQueryTables(mtables); Response resp = callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { lrecord = new ArrayList(); MessageHelper.setMessageError(resp); } else { lrecord = (List) resp.get(beanalias); if(!lrecord.isEmpty()){ record=lrecord.get(0); } super.postQuery(lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @SuppressWarnings("unchecked") protected void querydatabaseAll() { try { DtoQuery dto = super.getDtoQuery(true); HashMap mtables = new HashMap(); mtables.put(beanalias, dto); // permite adicionar mas de una tabla. Request request = callerhelper.getRequest(); request.setQueryTables(mtables); Response resp = callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { lrecord = new ArrayList(); MessageHelper.setMessageError(resp); } else { lrecord = (List) resp.get(beanalias); if(!lrecord.isEmpty()){ record=lrecord.get(0); } super.postQuery(lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @Override public void save() { try { update(); DtoSave dtosave = super.getDtoSave(); dtosave.setReturnpk(true); // Para que el core devuelva el pk de los registros nuevos. HashMap msave = new HashMap(); Request request = callerhelper.getRequest(); msave.put(beanalias, dtosave); // adicionar metadata de mantenimiento para cada tabla. request.setSaveTables(msave); Response resp = callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.postCommit(resp); MessageHelper.setMessageInfo(resp); } else { MessageHelper.setMessageError(resp); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } public void update(TarmOrdenTrabajo bean) throws Exception { record=bean; update(); } @Override public void postCommit(Response response) throws Exception { super.postCommitGeneric(response, beanalias); } /** * Obtiene una orden de trabajo por su codigo * @param cordentrabajo * @return */ public static TarmOrdenTrabajo find(String cordentrabajo) { try { OrdenTrabajoController cc = new OrdenTrabajoController(); cc.init(); cc.recperpage = 300; cc.addFilter("pk", cordentrabajo); cc.querydatabase(); if (cc.record != null) { return cc.record; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } public static List findAll() { try { OrdenTrabajoController cc = new OrdenTrabajoController(); cc.init(); //cc.recperpage = 300; cc.querydatabaseAll(); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } public Date getFechaHoy() { return fechaHoy; } public void setFechaHoy(Date fechaHoy) { this.fechaHoy = fechaHoy; } public Date getInicio() { return inicio; } public void setInicio(Date inicio) { this.inicio = inicio; } public Date getFin() { return fin; } public void setFin(Date fin) { this.fin = fin; } public java.sql.Date getFechaInicio() { return fechaInicio; } public void setFechaInicio(java.sql.Date fechaInicio) { this.fechaInicio = fechaInicio; } public java.sql.Date getFechaFin() { return fechaFin; } public void setFechaFin(java.sql.Date fechaFin) { this.fechaFin = fechaFin; } public TarmSolicitud getSolicitud() { return solicitud; } public void setSolicitud(TarmSolicitud solicitud) { this.solicitud = solicitud; } public TarmSolicitudTramite getSolicitudTramite() { return solicitudTramite; } public void setSolicitudTramite(TarmSolicitudTramite solicitudTramite) { this.solicitudTramite = solicitudTramite; } public TarmTramite getTramite() { return tramite; } public void setTramite(TarmTramite tramite) { this.tramite = tramite; } public String getUsoActividad() { return usoActividad; } public void setUsoActividad(String usoActividad) { this.usoActividad = usoActividad; } public Long getNumeroOrden() { return numeroOrden; } public void setNumeroOrden(Long numeroOrden) { this.numeroOrden = numeroOrden; } public String getDocumentoReferencia() { return documentoReferencia; } public void setDocumentoReferencia(String documentoReferencia) { this.documentoReferencia = documentoReferencia; } public String getEmpresa() { return empresa; } public void setEmpresa(String empresa) { this.empresa = empresa; } public String getLugarDireccion() { return lugarDireccion; } public void setLugarDireccion(String lugarDireccion) { this.lugarDireccion = lugarDireccion; } public String getRuta() { return ruta; } public void setRuta(String ruta) { this.ruta = ruta; } public String getTiempoEstimado() { return tiempoEstimado; } public void setTiempoEstimado(String tiempoEstimado) { this.tiempoEstimado = tiempoEstimado; } public String getObservaciones() { return observaciones; } public void setObservaciones(String observaciones) { this.observaciones = observaciones; } }