package com.fp.frontend.prueba; import java.util.Calendar; 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.save.DtoSave; import com.fp.frontend.controller.AbstractController; import com.fp.frontend.controller.alfresco.AlfrescoController; import com.fp.frontend.controller.armas.parametros.IngresoDatosTipoTramite; import com.fp.frontend.controller.armas.solicitud.SolicitudArmasController; import com.fp.frontend.controller.armas.solicitud.SolicitudTramiteController; import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController; import com.fp.frontend.helper.MessageHelper; import com.fp.persistence.parmas.param.TarmTramite; import com.fp.persistence.parmas.soli.TarmSolicitud; import com.fp.persistence.parmas.soli.TarmSolicitudTramite; import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail; /** * Clase controladora para la validacion del deposito * * @author CHRISTIAN PAZMINO * @version 2.1 */ @SuppressWarnings("serial") @ManagedBean @ViewScoped public class ValidarDepositoFlowController extends AbstractController { private String csolicitud="1"; /** * Variable del tipo TgeneCatalogDetail(catalogo del tramite) */ private TgeneCatalogDetail nombreTramite; /** * Variable del tipo TgeneCatalogDetail(catalogo de la categoria) */ private TgeneCatalogDetail nombreCategoria; /** * Variable del tipo TgeneCatalogDetail(catalogo del uso actividad del tramite) */ private TgeneCatalogDetail nombreUsoActividad; /** * Opciones de aceptar o rechazar */ private List accionList; @ManagedProperty(value = "#{alfrescoController}") private AlfrescoController alfrescoController; private TarmSolicitud solicitud; private String accionTomada; private final String APROBAR = "APR"; private final String REPROBAR = "RECH"; private final String APROBAR_DEPOSITO = "APBDEP"; private final String ANULAR_DEPOSITO = "ANUDEP"; /** * Variable que indica si el usuario esta negado para continuar en la pantalla */ private Boolean isDenied; /** * Variable auxiliar usada para diferenciar cuando se presenta o no el mensaje de validacion de fecha expiracion solicitud */ private Boolean isOnlyMsj; public ValidarDepositoFlowController() throws Exception { super(TarmSolicitudTramite.class); } @PostConstruct private void postconstruct() { init(); } /** * Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador. */ private void init() { this.beanalias = "VALIDARDEPOSITO"; accionList=CatalogDetailController.find("ACCION"); this.record = SolicitudTramiteController.findByCSolicitud(csolicitud); isOnlyMsj = false; try { isDenied = true; if(record!=null){ solicitud = SolicitudArmasController.find(csolicitud); if(solicitud!=null && solicitud.getCtramite()!=null){ TarmTramite tramite = IngresoDatosTipoTramite.find(solicitud.getCtramite().toString()); if(tramite!=null){ //Tramite nombreTramite= CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipotramite(), tramite.getTipotramitecodigo()); nombreCategoria= CatalogDetailController.findxCodigoCodcatalogo(tramite.getCategoria(), tramite.getCategoriacodigo()); nombreUsoActividad= CatalogDetailController.findxCodigoCodcatalogo(tramite.getUsoactividad(), tramite.getUsoactividadcodigo()); } else{ MessageHelper.setMessageError("NO EXISTE UN TIPO DE TR\u00c1MITE ASOCIADO A LA SOLICITUD"); } } else{ MessageHelper.setMessageError("NO EXISTE UNA SOLICITUD ASOCIADA AL TR\u00c1MITE"); } } else{ MessageHelper.setMessageError("NO EXISTE EL TR\u00c1MITE EN LA BASE DE DATOS"); } } catch (Exception e) { MessageHelper.setMessageError(e); } } public void cancelar(){ init(); } @Override public void save() { try { if(accionTomada.equalsIgnoreCase(APROBAR)){ record.setEstadotramite(APROBAR_DEPOSITO); }else{ record.setEstadotramite(ANULAR_DEPOSITO); } super.update(); DtoSave dtosave = super.getDtoSave(); HashMap msave = new HashMap(); Request request = this.callerhelper.getRequest(); msave.put(this.beanalias, dtosave); // adicionar metadata de mantenimiento para cada tabla. request.setSaveTables(msave); Response resp = this.callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.postCommit(resp); MessageHelper.setMessageInfo(resp); isDenied = true; } else { MessageHelper.setMessageError(resp); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Throwable e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override protected void querydatabase() { try { } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Retorna la ruta de documento base en donde se almacenará dicho archivo * * @return */ public String getRutaDocumentoSolBase() { Calendar calendar = Calendar.getInstance(); calendar.setTime(solicitud.getFregistro()); StringBuilder ruta = new StringBuilder("cm:Solicitudes"); ruta = ruta.append("/cm:").append(calendar.get(Calendar.YEAR)); ruta = ruta.append("/cm:").append((calendar.get(Calendar.MONTH)+1) <= 9 ? "0" + (calendar.get(Calendar.MONTH) + 1) : (calendar.get(Calendar.MONTH)+1)); return ruta.toString(); } /** * Metodo para validar el valor a pagar */ public void validarValorDelDeposito(){ if(record.getValorapagar().compareTo(record.getValorverificado())!=0){ MessageHelper.setMessageError("EL VALOR VERIFICADO ES DIFERENTE DEL VALOR A PAGAR Y SE ANULAR"); } } public AlfrescoController getAlfrescoController() { return alfrescoController; } public void setAlfrescoController(AlfrescoController alfrescoController) { this.alfrescoController = alfrescoController; } public String getCsolicitud() { return csolicitud; } public void setCsolicitud(String csolicitud) { this.csolicitud = csolicitud; } public TgeneCatalogDetail getNombreTramite() { return nombreTramite; } public void setNombreTramite(TgeneCatalogDetail nombreTramite) { this.nombreTramite = nombreTramite; } public TgeneCatalogDetail getNombreCategoria() { return nombreCategoria; } public void setNombreCategoria(TgeneCatalogDetail nombreCategoria) { this.nombreCategoria = nombreCategoria; } public TgeneCatalogDetail getNombreUsoActividad() { return nombreUsoActividad; } public void setNombreUsoActividad(TgeneCatalogDetail nombreUsoActividad) { this.nombreUsoActividad = nombreUsoActividad; } public TarmSolicitud getSolicitud() { return solicitud; } public void setSolicitud(TarmSolicitud solicitud) { this.solicitud = solicitud; } public Boolean getIsDenied() { return isDenied; } public void setIsDenied(Boolean isDenied) { this.isDenied = isDenied; } public Boolean getIsOnlyMsj() { return isOnlyMsj; } public void setIsOnlyMsj(Boolean isOnlyMsj) { this.isOnlyMsj = isOnlyMsj; } public List getAccionList() { return accionList; } public void setAccionList(List accionList) { this.accionList = accionList; } public String getAccionTomada() { return accionTomada; } public void setAccionTomada(String accionTomada) { this.accionTomada = accionTomada; } public void aceptar(){ if(record.getValorapagar().compareTo(record.getValorverificado())!=0){ accionTomada = REPROBAR; isDenied = true; }else{ accionTomada = ""; isDenied = false; } } }