maia/.svn/pristine/c1/c145858c8583c68c2b757e61380...

284 lines
8.7 KiB
Plaintext
Executable File

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<TarmSolicitudTramite> {
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<TgeneCatalogDetail> 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<String, DtoSave> msave = new HashMap<String, DtoSave>();
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&aacute; 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<TgeneCatalogDetail> getAccionList() {
return accionList;
}
public void setAccionList(List<TgeneCatalogDetail> 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;
}
}
}