maia/.svn/pristine/1c/1cf6e51a2a1fc65364fcdd64d4d...

972 lines
38 KiB
Plaintext
Executable File

package com.fp.frontend.controller.armas.solicitud;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.PredicateUtils;
import org.apache.commons.collections.TransformerUtils;
import org.primefaces.context.RequestContext;
import com.fp.common.helper.Constant;
import com.fp.dto.AbstractDataTransport;
import com.fp.dto.Request;
import com.fp.dto.Response;
import com.fp.frontend.controller.AbstractController;
import com.fp.frontend.controller.armas.funcionalidad.CargaController;
import com.fp.frontend.controller.armas.funcionalidad.RegistroArmController;
import com.fp.frontend.controller.armas.parametros.CentroControlArmasController;
import com.fp.frontend.controller.armas.parametros.GuardiasController;
import com.fp.frontend.controller.armas.parametros.RequisitoController;
import com.fp.frontend.controller.pcustomer.PeopleController;
import com.fp.frontend.controller.pcustomer.PersonAddressController;
import com.fp.frontend.controller.pcustomer.PersonDetailController;
import com.fp.frontend.controller.pcustomer.PersonPhoneController;
import com.fp.frontend.controller.pgeneral.gene.CantonController;
import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController;
import com.fp.frontend.controller.pgeneral.gene.CityController;
import com.fp.frontend.controller.pgeneral.gene.ParametersController;
import com.fp.frontend.controller.pgeneral.gene.ParroquiaController;
import com.fp.frontend.controller.pgeneral.gene.ProvinceController;
import com.fp.frontend.controller.pgeneral.safe.UserDetailController;
import com.fp.frontend.helper.MessageHelper;
import com.fp.frontend.utility.MsgControlArmas;
import com.fp.frontend.utility.Utilidades;
import com.fp.persistence.parmas.fun.TarmCarga;
import com.fp.persistence.parmas.fun.TarmRegistroArmas;
import com.fp.persistence.parmas.param.TarmCentroControl;
import com.fp.persistence.parmas.param.TarmTramite;
import com.fp.persistence.parmas.soli.TarmAgenciaSucursal;
import com.fp.persistence.parmas.soli.TarmArmas;
import com.fp.persistence.parmas.soli.TarmDocumentoHabilitante;
import com.fp.persistence.parmas.soli.TarmSolicitud;
import com.fp.persistence.parmas.soli.TarmSolicitudAgenciaSucursal;
import com.fp.persistence.parmas.soli.TarmSolicitudDocumento;
import com.fp.persistence.parmas.soli.TarmSolicitudGuardias;
import com.fp.persistence.parmas.soli.TarmSolicitudRequisitos;
import com.fp.persistence.pcustomer.gene.TcustPersonAddress;
import com.fp.persistence.pcustomer.gene.TcustPersonDetail;
import com.fp.persistence.pcustomer.gene.TcustPersonPhone;
import com.fp.persistence.pgeneral.gene.TgeneCanton;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail;
import com.fp.persistence.pgeneral.gene.TgeneCity;
import com.fp.persistence.pgeneral.gene.TgeneParroquia;
import com.fp.persistence.pgeneral.gene.TgeneProvince;
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;
@ManagedBean
@ViewScoped
public class ReporteConsultaSolicitudClienteController extends
AbstractController<AbstractDataTransport> {
private static final long serialVersionUID = -4049698904561227471L;
/**
* Lista de tipos de persona.
*/
private List<TgeneCatalogDetail> ltipopersona;
/**
* Atributo para la lista de objetos TgeneCatalogDetail de identificaci&oacute;n
*/
private List<TgeneCatalogDetail> ltipoidenti;
/**
* Lista de tipos de tr&aacute;mite.
*/
private List<TgeneCatalogDetail> ltipotramite;
/**
* Lista de origen de adquisici&oacute;n
*/
private List<TgeneCatalogDetail> lorigenadquisicion;
/**
* Bandera que indica si existe o no un registro para mostrar la solicitud
*/
private boolean existeSolicitud;
/**
* Indica si se debe activar la pestana de ingresar requisitos
*/
private boolean ingresarRequisitos;
/**
* Indica si se debe activar la pestana de seleccionar armas
*/
private boolean seleccionarArmas;
/**
* Indica si se debe activar la pestana seleccionar guardias
*/
private boolean seleccionarGuardias;
/**
* Indica si se debe activar la pestana seleccionar agencias
*/
private boolean seleccionarAgencias;
/**
* Indica si se debe activar la pestana listar guardias
*/
private boolean listarDocumentos;
private List<TgeneProvince> lprovincias;
private List<TgeneCanton> lcantones;
private List<TgeneParroquia> lparroquias;
private List<TgeneCity> lcities;
private List<TgeneCatalogDetail> lmarca;
/**
* Controlador de la solicitud
*/
/**
* Controlador que maneja el usuario
*/
@ManagedProperty(value = "#{userDetailController}")
private UserDetailController detalleusuario;
/**
* Controlador que maneja las armas dentro de la solicitud
*/
// @ManagedProperty(value = "#{solicitudArmasBPMController}")
// private SolicitudArmasBPMController solicitud;
@ManagedProperty(value = "#{solicitudArmasController}")
private SolicitudArmasController solicitud;
/**
* Controlador que maneja la persona
*/
@ManagedProperty(value = "#{personDetailController}")
private PersonDetailController detallepersona;
/**
* Controlador que maneja los datos de personas naturales
*/
@ManagedProperty(value = "#{peopleController}")
private PeopleController natural;
/**
* Controlador que maneja direcciones de la persona
*/
@ManagedProperty(value = "#{personAddressController}")
private PersonAddressController direccion;
/**
* Controlador que maneja tel&eacute;fonos de la persona
*/
@ManagedProperty(value = "#{personPhoneController}")
private PersonPhoneController telefono;
/**
* Controlador que maneja requisitos dentro de la solicitud
*/
@ManagedProperty(value = "#{solicitudRequisitosController}")
private SolicitudRequisitosController requisitos;
/**
* Controlador que maneja los guardias en la solicitud
*/
@ManagedProperty(value = "#{solicitudGuardiasController}")
private SolicitudGuardiasController solicitudGuardias;
/**
* Controlador que maneja armas
*/
@ManagedProperty(value = "#{armasController}")
private ArmasController armas;
/**
* Controlador que maneja las armas dentro de la solicitud
*/
@ManagedProperty(value = "#{recepcionArmasController}")
private RecepcionArmasController solicitudArmas;
/**
* Controlador que maneja registro de armas
*/
@ManagedProperty(value = "#{registroArmController}")
private RegistroArmController registroArmas;
/**
* Controlador que maneja agencias y sucursales
*/
@ManagedProperty(value = "#{agenciaSucursalController}")
private AgenciaSucursalController agenciaSucursal;
/**
* Controlador que maneja las agencias y sucursales dentro de la solicitud
*/
@ManagedProperty(value = "#{solicitudAgenciaSucursalController}")
private SolicitudAgenciaSucursalController solicitudAgenciaSucursal;
/**
* Controlador que maneja los documentos habilitantes
*/
@ManagedProperty(value = "#{documentoHabilitanteController}")
private DocumentoHabilitanteController documentoHabilitante;
/**
* Controlador que maneja los documentos dentro de la solicitud
*/
@ManagedProperty(value = "#{tarmSolicitudDocumentoController}")
private TarmSolicitudDocumentoController solicitudDocumento;
/**
* Controlador que maneja cargas para previa importacion
*/
@ManagedProperty(value = "#{cargaController}")
private CargaController cargaController;
private Boolean requiereNoSolAucpBln;
/**
*Referencia al Centro de control;
*/
private TarmCentroControl centroControl = new TarmCentroControl();
/**
*Nombre de la Institucion
*/
private String nombreInstitucion;
private TsafeUserDetail userDetail;
/**
*
* @throws Exception
*/
public ReporteConsultaSolicitudClienteController() throws Exception{
super(AbstractDataTransport.class);
}
/**
* postCosntruct
* @throws Exception
*/
@PostConstruct
private void postconstruct() throws Exception{
this.init();
requiereNoSolAucpBln=Boolean.FALSE;
this.startQuery();
}
private void init(){
this.beanalias = "REPORTESOLICITUD";
ltipopersona = CatalogDetailController.find("PERSONTYPE");
ltipoidenti = CatalogDetailController.find("IDENTIFICATION");
ltipotramite = CatalogDetailController.find("TIPOTRAMITE");
lorigenadquisicion = CatalogDetailController.find("ORIGENADQUISICION");
userDetail=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
}
@Override
protected void querydatabase() {
// TODO Auto-generated method stub
//Realizo las busquedas en base a los controladores
try {
limpiaDatos();
// if(solicitud.getRecord() == null || solicitud.getRecord().getPk()==null){
Utilidades.caracterEspecial(solicitud.getMfilters().get("numerosolicitud"));
solicitud.query();
// }
if(solicitud.getRecord() != null && solicitud.getRecord().getPk() != null){
//Valida que corresponda al mismo cliente
if(!userDetail.getPk().getPersoncode().equals(solicitud.getRecord().getPersoncode())){
MessageHelper.setMessageWarn("Solicitud no corresponde a la persona");
return;
}
if(this.solicitud.getMfilters().get("numerosolicitud")==null || this.solicitud.getMfilters().get("numerosolicitud").equals(""))
this.solicitud.getMfilters().put("numerosolicitud",solicitud.getRecord().getNumerosolicitud());
existeSolicitud = Boolean.TRUE;
// solicitud.setRecord(solicitud.getLrecord().get(0));
detallepersona.getMfilters().clear();
detallepersona.getMfilters().put("pk.personcode", solicitud.getRecord().getPersoncode().toString());
detallepersona.addFilterDateto();
detallepersona.query();
natural.getMfilters().clear();
natural.addPersoncodeFilter(solicitud.getRecord().getPersoncode().toString());
natural.addFilterDateto();
natural.query();
direccion.getMfilters().clear();
direccion.addPersoncodeFilter(solicitud.getRecord().getPersoncode().toString());
direccion.addFilterDateto();
direccion.query();
this.obtenerDireccionesGenerales();
telefono.getMfilters().clear();
telefono.addPersoncodeFilter(solicitud.getRecord().getPersoncode().toString());
telefono.addFilterDateto();
telefono.query();
this.obtenerTelefonos();
// this.setearCodigoCentroControl();
this.setearTramite();
} else{
existeSolicitud = Boolean.FALSE;
}
} catch (Throwable e) {
// TODO Auto-generated catch block
MessageHelper.setMessageError(e);
}
}
@SuppressWarnings("unchecked")
public void loadEdit() throws Exception {
//TarmArmas arma = ((TarmArmas) solicitudArmas.getRecord().getModifiedData().get("arma"));
TarmArmas arma = ArmasController.findxCodigo(solicitudArmas.getRecord().getModifiedData().get("carma").toString());
if(arma.getCountrycode() == null){
arma.setCountrycode("EC");
}
this.lmarca =(List<TgeneCatalogDetail>) ArmasController.findxCodigo(solicitudArmas.getRecord().getModifiedData().get("carma").toString()).getModifiedData().get("lmarca");
lprovincias = ProvinceController.find(arma.getCountrycode());
executeProvince(arma);
if(arma.getProvincecode() != null){
lcantones = CantonController.find(arma.getCountrycode(), arma.getProvincecode());
executeCanton(arma);
}
completaInfTipoArma(arma);
registroArmas.clearAll();
if(arma.getCregistro() != null){
registroArmas.addFilter("pk", arma.getCregistro().toString());
registroArmas.query();
List<TarmRegistroArmas> registroArmasList = registroArmas.getLrecord();
registroArmas.setRecord(registroArmasList.get(0));
registroArmas.getRecord().setIsnew(Boolean.FALSE);
}
}
public void loadShowAgencia() {
TarmAgenciaSucursal tarmAgenciaSucursal = (TarmAgenciaSucursal) solicitudAgenciaSucursal.getRecord().getModifiedData().get("agencia");
lprovincias = ProvinceController.find(tarmAgenciaSucursal.getCountrycode());
lcantones = CantonController.find(tarmAgenciaSucursal.getCountrycode(), tarmAgenciaSucursal.getProvincecode());
lparroquias = ParroquiaController.find(tarmAgenciaSucursal.getCountrycode(), tarmAgenciaSucursal.getProvincecode(), tarmAgenciaSucursal.getCantoncode());
lcities = CityController.find(tarmAgenciaSucursal.getCountrycode(), tarmAgenciaSucursal.getProvincecode(), tarmAgenciaSucursal.getCantoncode());
}
/**
* M&eacute;todo para el evento change del combo provincias
*/
public void executeProvince(TarmArmas arma) {
if ((arma != null) && (arma.getCountrycode().compareTo("") != 0)) {
lcantones = CantonController.find(arma.getCountrycode(), arma.getProvincecode());
lparroquias = new ArrayList<>();
lcities = new ArrayList<>();
}
}
/**
* M&eacute;todo para el evento change del combo cantones
*/
public void executeCanton(TarmArmas arma) {
//TarmArmas arma = (((TarmArmas) solicitudArmas.getRecord().getModifiedData().get("arma")));
if (arma.getCountrycode() != null && arma.getCountrycode().compareTo("") != 0) {
lparroquias = ParroquiaController.find(arma.getCountrycode(),
arma.getProvincecode(),
arma.getCantoncode());
lcities = CityController.find(arma.getCountrycode(), arma.getProvincecode(), arma.getCantoncode());
}
}
private void limpiaDatos(){
this.detallepersona.clearAll();
this.detalleusuario.clearAll();
this.agenciaSucursal.clearAll();
this.armas.clearAll();
this.direccion.clearAll();
this.documentoHabilitante.clearAll();
this.natural.clearAll();
this.registroArmas.clearAll();
this.requisitos.clearAll();
this.solicitudAgenciaSucursal.clearAll();
this.solicitudArmas.clearAll();
this.solicitudDocumento.clearAll();
this.solicitudGuardias.clearAll();
this.telefono.clearAll();
existeSolicitud = Boolean.FALSE;
}
/**
* M&eacute;todo que completa la informaci&acute;n del arma una vez se presiona el bot&oacute;n crear
*/
private void completaInfTipoArma(TarmArmas arma){
solicitudArmas.getRecord().getModifiedData().put("estado", arma.getEstado());
solicitudArmas.getRecord().getModifiedData().put("marca", arma.getMarca());
// record.setCountrycode("EC");
// clase = ((TarmArmas)record.getModifiedData().get("arma")).getModifiedData().get("cclase") != null ? ((TarmArmas)record.getModifiedData().get("arma")).getModifiedData().get("cclase").toString() : null;
// calibre = record.getModifiedData().get("ccalibre") != null ? record.getModifiedData().get("ccalibre").toString() : null;
// longitud = record.getModifiedData().get("clongitud") != null ? record.getModifiedData().get("clongitud").toString() : null;
// tipoarma = record.getModifiedData().get("ctipoarmaexplosivo") != null ? record.getModifiedData().get("ctipoarmaexplosivo").toString() : null;
}
/**
* Recupera en base al tipo de identificaci&oacute;n la direcci&oacute;n de la oficina o de la casa
*/
private void obtenerDireccionesGenerales(){
TcustPersonAddress direccionPersona = null;
direccionPersona = direccion.findPrincipal(detallepersona.getRecord().getPk().getPersoncode().toString());
if(direccionPersona != null){
direccion.getMfilelds().put("solcodpais", direccionPersona.getCountrycode());
direccion.getMfilelds().put("solcodprovincia", direccionPersona.getProvincecode());
direccion.setLprovinces(ProvinceController.find(direccionPersona.getCountrycode()));
direccion.getMfilelds().put("solcodcanton", direccionPersona.getCantoncode());
direccion.setLcantones(CantonController.find(direccionPersona.getCountrycode(), direccionPersona.getProvincecode()));
direccion.getMfilelds().put("solcodciudad", direccionPersona.getCitycode());
direccion.setLcities(CityController.find(direccionPersona.getCountrycode(), direccionPersona.getProvincecode(), direccionPersona.getCantoncode()));
direccion.getMfilelds().put("solcodparroquia", direccionPersona.getParroquiacode());
direccion.setLparroquias(ParroquiaController.find(direccionPersona.getCountrycode(), direccionPersona.getProvincecode(), direccionPersona.getCantoncode()));
direccion.getMfilelds().put("soldireccion", direccionPersona.getAddress());
}
TcustPersonAddress correo = (TcustPersonAddress) CollectionUtils.find(direccion.getLrecord(), PredicateUtils.transformedPredicate(TransformerUtils.invokerTransformer("getAddresstypecatalog"), PredicateUtils.equalPredicate("3")));
if(correo != null){
direccion.getMfilelds().put("solcorreopersona", correo.getAddress());
}
}
/**
* Retorna el telefono fijo y celular de la persona
*/
private void obtenerTelefonos(){
TcustPersonPhone telf = null;
telf = (TcustPersonPhone) CollectionUtils.find(telefono.getLrecord(), PredicateUtils.transformedPredicate(TransformerUtils.invokerTransformer("getPhonetypecatalog"), PredicateUtils.equalPredicate("1")));
if(telf != null){
telefono.getMfilelds().put("soltelfijo", telf.getPhonenumber());
}
telf = (TcustPersonPhone) CollectionUtils.find(telefono.getLrecord(), PredicateUtils.transformedPredicate(TransformerUtils.invokerTransformer("getPhonetypecatalog"), PredicateUtils.equalPredicate("2")));
if(telf != null){
telefono.getMfilelds().put("soltelcelular", telf.getPhonenumber());
}
}
/**
* En base a la provincia y sus jurisdicciones se obtiene y se coloca el centro de control
*/
/*private void setearCodigoCentroControl(){
TarmCentroControlJur centroControlJur = TarmCentroControlJurController.findxProvincia(direccion.getMfilelds().get("solcodprovincia") != null ?
direccion.getMfilelds().get("solcodprovincia").toString() : StringUtils.EMPTY);
if(centroControlJur != null){
this.solicitud.getRecord().setCcentrocontrol(centroControlJur.getCcentrocontrol());
}
}*/
/**
*
*/
private void setearTramite() {
try{
if(solicitud.getRecord().getCtramite()==null){
return;
}
TarmTramite tramite = TarmTramiteController.find(solicitud.getRecord().getCtramite().toString());
solicitud.getRecord().setCtramite(tramite.getPk());
TgeneCatalogDetail tipoTramite = CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipotramite(), tramite.getTipotramitecodigo());
TgeneCatalogDetail tipoAutorizacion = CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipoautorizacion(), tramite.getTipoautorizacioncodigo());
TgeneCatalogDetail categoria = CatalogDetailController.findxCodigoCodcatalogo(tramite.getCategoria(), tramite.getCategoriacodigo());
TgeneCatalogDetail actividad = CatalogDetailController.findxCodigoCodcatalogo(tramite.getUsoactividad(), tramite.getUsoactividadcodigo());
this.getSolicitud().addField("tipoTramite", tipoTramite.getDescription());
this.getSolicitud().addField("tipoAutorizacion", tipoAutorizacion.getDescription());
this.getSolicitud().addField("categoria", categoria.getDescription());
this.getSolicitud().addField("actividad", actividad.getDescription());
this.ingresarRequisitos = Boolean.TRUE;
obtenerCentroControl(solicitud.getRecord());
if(tramite.getCategoria().equals("14")){
requiereNoSolAucpBln=Boolean.TRUE;
}else{
requiereNoSolAucpBln=Boolean.FALSE;
}
if(Constant.ifYes(tramite.getRegistroarmas())){
this.seleccionarArmas = Boolean.TRUE;
this.cargaArmas();
}else{
this.seleccionarArmas = Boolean.FALSE;
this.solicitudArmas.clearAll();
}
if(Constant.ifYes(tramite.getRegistroguardia())){
this.seleccionarGuardias = Boolean.TRUE;
this.cargaGuardias();
}else{
this.seleccionarGuardias = Boolean.FALSE;
this.solicitudGuardias.clearAll();
}
if(Constant.ifYes(tramite.getRegistroagenciasucursal())){
this.seleccionarAgencias = Boolean.TRUE;
this.cargarAgencias();
}else{
this.seleccionarAgencias = Boolean.FALSE;
this.solicitudAgenciaSucursal.clearAll();
}
if(Constant.ifYes(tramite.getDocumentohabilitante()) || tipoTramite.getPk().getCatalog().equals(ParametersController.find("CODIGO.TRAMITEREIMPRESION", "1").getTextvalue())){
this.listarDocumentos = Boolean.TRUE;
this.cargarDocumentos();
}else{
this.listarDocumentos = Boolean.FALSE;
this.solicitudDocumento.clearAll();
}
if(tramite != null){
this.cargarRequisitos();
}
} catch(Throwable e){
MessageHelper.setMessageError(e);
}
}
/**
* Obtiene el centro de control segun usurio logeado.
* @param solicitud
* @throws Exception
*
*/
private void obtenerCentroControl(TarmSolicitud solicitud) throws Exception {
this.centroControl= CentroControlArmasController.findPorCodigo(solicitud.getCcentrocontrol());
this.setNombreInstitucion(CatalogDetailController.findxCodigoCodcatalogo( centroControl.getNombreinstitucion(), centroControl.getNombreinstitucioncodigo()).getDescription());
}
private void cargaArmas() throws Exception{
solicitudArmas.clearAll();
solicitudArmas.addFilter("pk.csolicitud", solicitud.getRecord().getPk());
solicitudArmas.setCodigoSolicitud(solicitud.getRecord().getPk());
solicitudArmas.setRecperpage(5000);
solicitudArmas.querydatabase();
}
private void cargaGuardias() throws Exception{
solicitudGuardias.clearAll();
solicitudGuardias.addFilter("pk.csolicitud", solicitud.getRecord().getPk());
solicitudGuardias.query();
for (TarmSolicitudGuardias solicitudGuardia : solicitudGuardias.getLrecord()) {
solicitudGuardia.getModifiedData().put("guardia", GuardiasController.find(solicitudGuardia.getPk().getCguardia().toString(), solicitudGuardia.getPk().getCempresa().toString()));
}
}
private void cargarAgencias() throws Exception{
solicitudAgenciaSucursal.clearAll();
solicitudAgenciaSucursal.addFilter("pk.csolicitud", solicitud.getRecord().getPk());
solicitudAgenciaSucursal.query();
for (TarmSolicitudAgenciaSucursal solAgenciaSucursal : solicitudAgenciaSucursal.getLrecord()) {
solAgenciaSucursal.getModifiedData().put("agencia", AgenciaSucursalController.find(solAgenciaSucursal.getPk().getCagencia().toString()));
}
}
private void cargarDocumentos() throws Exception {
solicitudDocumento.clearAll();
solicitudDocumento.addFilter("pk.csolicitud", solicitud.getRecord().getPk());
solicitudDocumento.query();
SolicitudController.findSolicitudxcodsolicitud(solicitud.getRecord().getPk());
TarmTramite tramite = TarmTramiteController.find(String.valueOf(SolicitudController.findSolicitudxcodsolicitud(solicitud.getRecord().getPk()).getCtramite()));
TgeneCatalogDetail tipoTramite = CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipotramite(), tramite.getTipotramitecodigo());
TgeneCatalogDetail tipoAutorizacion = CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipoautorizacion(), tramite.getTipoautorizacioncodigo());
TgeneCatalogDetail actividad = CatalogDetailController.findxCodigoCodcatalogo(tramite.getUsoactividad(), tramite.getUsoactividadcodigo());
Boolean muestraArmas = listarArmas(tipoTramite,tipoAutorizacion, actividad);
for (TarmSolicitudDocumento solDocumento : solicitudDocumento.getLrecord()) {
TarmDocumentoHabilitante documentoHabilitante =DocumentoHabilitanteController.find(solDocumento.getPk().getCdocumento().toString());
solDocumento.getModifiedData().put("documento", documentoHabilitante);
solDocumento.getModifiedData().put("arma", muestraArmas?ArmasController.findPorCodigo(documentoHabilitante.getCarma()):null);
}
}
/**
* Metodo para listar las armas segun la combinacion de tipo de tramite
* @param tipoTramite tipo del tramite
* @param tipoAutorizacion tipo de la autorizacion
* @param actividad tipo de la actividad
* @return valor booleano que indica si se muestran o no als armas
* @throws Exception
*/
private boolean listarArmas(TgeneCatalogDetail tipoTramite,TgeneCatalogDetail tipoAutorizacion, TgeneCatalogDetail actividad) throws Exception{
if(tipoTramite.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption( MsgControlArmas.getProperty("ctg_tipotramite"), MsgControlArmas.getProperty("ctg_reimpresion_tipo")).getPk().getCatalog())
&& tipoAutorizacion.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption( MsgControlArmas.getProperty("ctg_tipoautorizacion"),MsgControlArmas.getProperty("ctg_autorizacion")).getPk().getCatalog())
&& actividad.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption( MsgControlArmas.getProperty("ctg_usoactividad"), MsgControlArmas.getProperty("ctg_perdida")).getPk().getCatalog())){
return false;
}
if(tipoTramite.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption( MsgControlArmas.getProperty("ctg_tipotramite"),MsgControlArmas.getProperty("ctg_reimpresion_tipo")).getPk().getCatalog())
&& tipoAutorizacion.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption( MsgControlArmas.getProperty("ctg_tipoautorizacion"),MsgControlArmas.getProperty("ctg_permiso")).getPk().getCatalog())
&& actividad.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption( MsgControlArmas.getProperty("ctg_usoactividad"),MsgControlArmas.getProperty("ctg_perdida")).getPk().getCatalog())){
return true;
}
if(tipoTramite.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption( MsgControlArmas.getProperty("ctg_tipotramite"),MsgControlArmas.getProperty("ctg_primeravez")).getPk().getCatalog())
&& tipoAutorizacion.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption( MsgControlArmas.getProperty("ctg_tipoautorizacion"),MsgControlArmas.getProperty("ctg_certificados")).getPk().getCatalog())
&& actividad.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption(MsgControlArmas.getProperty("ctg_usoactividad"),MsgControlArmas.getProperty("ctg_autorizacion")).getPk().getCatalog())){
return false;
}
if(tipoTramite.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption( MsgControlArmas.getProperty("ctg_tipotramite"),MsgControlArmas.getProperty("ctg_primeravez")).getPk().getCatalog())
&& tipoAutorizacion.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption( MsgControlArmas.getProperty("ctg_tipoautorizacion"),MsgControlArmas.getProperty("ctg_certificados")).getPk().getCatalog())
&& actividad.getPk().getCatalog().equals(CatalogDetailController.findByCatalogcodeDescrption( MsgControlArmas.getProperty("ctg_usoactividad"),MsgControlArmas.getProperty("ctg_permiso")).getPk().getCatalog())){
return true;
}
return true;
}
private void cargarRequisitos() throws Exception {
requisitos.clearAll();
requisitos.addFilter("pk.csolicitud", solicitud.getRecord().getPk());
requisitos.query();
for (TarmSolicitudRequisitos solicitudRequisitos : requisitos.getLrecord()) {
solicitudRequisitos.getModifiedData().put("requisito", RequisitoController.findxId(solicitudRequisitos.getPk().getCrequisito()));
}
}
public List<TgeneCatalogDetail> getLtipopersona() {
return ltipopersona;
}
public void setLtipopersona(List<TgeneCatalogDetail> ltipopersona) {
this.ltipopersona = ltipopersona;
}
public List<TgeneCatalogDetail> getLtipoidenti() {
return ltipoidenti;
}
public void setLtipoidenti(List<TgeneCatalogDetail> ltipoidenti) {
this.ltipoidenti = ltipoidenti;
}
public List<TgeneCatalogDetail> getLtipotramite() {
return ltipotramite;
}
public void setLtipotramite(List<TgeneCatalogDetail> ltipotramite) {
this.ltipotramite = ltipotramite;
}
public List<TgeneCatalogDetail> getLorigenadquisicion() {
return lorigenadquisicion;
}
public void setLorigenadquisicion(List<TgeneCatalogDetail> lorigenadquisicion) {
this.lorigenadquisicion = lorigenadquisicion;
}
public boolean isExisteSolicitud() {
return existeSolicitud;
}
public void setExisteSolicitud(boolean existeSolicitud) {
this.existeSolicitud = existeSolicitud;
}
public boolean isIngresarRequisitos() {
return ingresarRequisitos;
}
public void setIngresarRequisitos(boolean ingresarRequisitos) {
this.ingresarRequisitos = ingresarRequisitos;
}
public boolean isSeleccionarArmas() {
return seleccionarArmas;
}
public void setSeleccionarArmas(boolean seleccionarArmas) {
this.seleccionarArmas = seleccionarArmas;
}
public boolean isSeleccionarGuardias() {
return seleccionarGuardias;
}
public void setSeleccionarGuardias(boolean seleccionarGuardias) {
this.seleccionarGuardias = seleccionarGuardias;
}
public boolean isSeleccionarAgencias() {
return seleccionarAgencias;
}
public void setSeleccionarAgencias(boolean seleccionarAgencias) {
this.seleccionarAgencias = seleccionarAgencias;
}
public boolean isListarDocumentos() {
return listarDocumentos;
}
public void setListarDocumentos(boolean listarDocumentos) {
this.listarDocumentos = listarDocumentos;
}
public UserDetailController getDetalleusuario() {
return detalleusuario;
}
public void setDetalleusuario(UserDetailController detalleusuario) {
this.detalleusuario = detalleusuario;
}
public SolicitudArmasController getSolicitud() {
return solicitud;
}
public void setSolicitud(SolicitudArmasController solicitud) {
this.solicitud = solicitud;
}
public PersonDetailController getDetallepersona() {
return detallepersona;
}
public void setDetallepersona(PersonDetailController detallepersona) {
this.detallepersona = detallepersona;
}
public PeopleController getNatural() {
return natural;
}
public void setNatural(PeopleController natural) {
this.natural = natural;
}
public PersonAddressController getDireccion() {
return direccion;
}
public void setDireccion(PersonAddressController direccion) {
this.direccion = direccion;
}
public PersonPhoneController getTelefono() {
return telefono;
}
public void setTelefono(PersonPhoneController telefono) {
this.telefono = telefono;
}
public SolicitudRequisitosController getRequisitos() {
return requisitos;
}
public void setRequisitos(SolicitudRequisitosController requisitos) {
this.requisitos = requisitos;
}
public SolicitudGuardiasController getSolicitudGuardias() {
return solicitudGuardias;
}
public void setSolicitudGuardias(SolicitudGuardiasController solicitudGuardias) {
this.solicitudGuardias = solicitudGuardias;
}
public ArmasController getArmas() {
return armas;
}
public void setArmas(ArmasController armas) {
this.armas = armas;
}
public RecepcionArmasController getSolicitudArmas() {
return solicitudArmas;
}
public void setSolicitudArmas(RecepcionArmasController solicitudArmas) {
this.solicitudArmas = solicitudArmas;
}
public RegistroArmController getRegistroArmas() {
return registroArmas;
}
public void setRegistroArmas(RegistroArmController registroArmas) {
this.registroArmas = registroArmas;
}
public AgenciaSucursalController getAgenciaSucursal() {
return agenciaSucursal;
}
public void setAgenciaSucursal(AgenciaSucursalController agenciaSucursal) {
this.agenciaSucursal = agenciaSucursal;
}
public SolicitudAgenciaSucursalController getSolicitudAgenciaSucursal() {
return solicitudAgenciaSucursal;
}
public void setSolicitudAgenciaSucursal(
SolicitudAgenciaSucursalController solicitudAgenciaSucursal) {
this.solicitudAgenciaSucursal = solicitudAgenciaSucursal;
}
public DocumentoHabilitanteController getDocumentoHabilitante() {
return documentoHabilitante;
}
public void setDocumentoHabilitante(
DocumentoHabilitanteController documentoHabilitante) {
this.documentoHabilitante = documentoHabilitante;
}
public TarmSolicitudDocumentoController getSolicitudDocumento() {
return solicitudDocumento;
}
public void setSolicitudDocumento(
TarmSolicitudDocumentoController solicitudDocumento) {
this.solicitudDocumento = solicitudDocumento;
}
public List<TgeneProvince> getLprovincias() {
return lprovincias;
}
public void setLprovincias(List<TgeneProvince> lprovincias) {
this.lprovincias = lprovincias;
}
public List<TgeneCanton> getLcantones() {
return lcantones;
}
public void setLcantones(List<TgeneCanton> lcantones) {
this.lcantones = lcantones;
}
public List<TgeneParroquia> getLparroquias() {
return lparroquias;
}
public void setLparroquias(List<TgeneParroquia> lparroquias) {
this.lparroquias = lparroquias;
}
public List<TgeneCity> getLcities() {
return lcities;
}
public void setLcities(List<TgeneCity> lcities) {
this.lcities = lcities;
}
@Override
public void completarTarea() {
try {
Request request = callerhelper.getRequest();
// limpiar request para finalizar la tarea.
super.cleanRequest(request);
System.out.println("1.....csolicitud :"+solicitud);
System.out.println("2.....csolicitud :"+solicitud.getRecord());
System.out.println("3.....csolicitud :"+solicitud.getRecord().getPk());
request.modifiedData().put("csolicitud", solicitud.getRecord().getPk());
if(tid==null){
tid = FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("taskId").toString();
}
request.modifiedData().put("TID", tid);
if(bpmDataStatus.equals("D")){
// Se aumento las observaciones para ser enviadas en el mail
Map<String,Object>datosmail = new HashMap<String,Object>();
datosmail.put("razons",detallepersona.getRecord().getName());
datosmail.put("sol",solicitud.getRecord().getNumerosolicitud());
datosmail.put("observaciones",bpmDataComment);
//grado funcionario de la persona logeada
TsafeUserDetail userDetailObj=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
TcustPersonDetail personDetailObj=PersonDetailController.find(userDetailObj.getPk().getPersoncode().toString());
datosmail.put("grado",personDetailObj.getMilitarygrade());
datosmail.put("funcionario",personDetailObj.getName());
// CCA
TarmCentroControl centroControl=CentroControlArmasController.findPorCodigo(solicitud.getRecord().getCcentrocontrol());
datosmail.put("centrocontrol",centroControl.getModifiedData().get("desinstitucion"));
request.modifiedData().put("datosmail", datosmail);
}
request.modifiedData().put("BPMStatus", bpmDataStatus == null ? "A" : bpmDataStatus); // A,D,R
request.modifiedData().put("BPMObs", bpmDataComment);
Response resp = callerhelper.executeSave(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
this.postCommit(resp);
// CATEGORIA 14 PREVIA IMPORTACION
if(bpmDataStatus.equals("D")){
TarmTramite tarmTramite = TarmTramiteController.find(this.solicitud.getRecord().getCtramite().toString());
if(tarmTramite.getCategoria().equals("14")){
desasociarCargaSolicitud();
}
}
MessageHelper.setMessageInfo(resp);
RequestContext.getCurrentInstance().execute("Maia.refreshusertasks()");
} else {
MessageHelper.setMessageError(resp);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
public void desasociarCargaSolicitud(){
try{
TarmCarga carga = CargaController.findByAUCP(solicitud.getRecord().getAucp());
if(carga!=null){
carga.setCsolicitud(null);
cargaController.update(carga);
cargaController.save();
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
public List<TgeneCatalogDetail> getLmarca() {
return lmarca;
}
public void setLmarca(List<TgeneCatalogDetail> lmarca) {
this.lmarca = lmarca;
}
public CargaController getCargaController() {
return cargaController;
}
public void setCargaController(CargaController cargaController) {
this.cargaController = cargaController;
}
public Boolean getRequiereNoSolAucpBln() {
return requiereNoSolAucpBln;
}
public void setRequiereNoSolAucpBln(Boolean requiereNoSolAucpBln) {
this.requiereNoSolAucpBln = requiereNoSolAucpBln;
}
public String getNombreInstitucion() {
return nombreInstitucion;
}
public String setNombreInstitucion(String nombreInstitucion) {
if(nombreInstitucion!=null && !nombreInstitucion.isEmpty()){
this.nombreInstitucion = nombreInstitucion;
}else{
this.nombreInstitucion = "";
}
return nombreInstitucion;
}
}