837 lines
32 KiB
Plaintext
Executable File
837 lines
32 KiB
Plaintext
Executable File
package com.fp.frontend.controller.armas.solicitud;
|
||
|
||
import java.io.InputStream;
|
||
import java.math.BigDecimal;
|
||
import java.sql.Date;
|
||
import java.text.SimpleDateFormat;
|
||
import java.util.ArrayList;
|
||
import java.util.Calendar;
|
||
import java.util.HashMap;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
import java.util.Random;
|
||
|
||
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 javax.faces.event.AjaxBehaviorEvent;
|
||
import javax.servlet.http.HttpSession;
|
||
|
||
import org.apache.commons.lang3.StringUtils;
|
||
import org.primefaces.context.RequestContext;
|
||
|
||
import com.fp.dto.Request;
|
||
import com.fp.dto.Response;
|
||
import com.fp.dto.query.DtoQuery;
|
||
import com.fp.dto.query.Filter;
|
||
import com.fp.dto.query.SubQuery;
|
||
import com.fp.frontend.controller.AbstractController;
|
||
import com.fp.frontend.controller.ReportController;
|
||
import com.fp.frontend.controller.alfresco.AlfrescoController;
|
||
import com.fp.frontend.controller.armas.funcionalidad.RegistroArmController;
|
||
import com.fp.frontend.controller.armas.parametros.CentroControlArmasController;
|
||
import com.fp.frontend.controller.pcustomer.PersonDetailController;
|
||
import com.fp.frontend.controller.pcustomer.lov.PersonLovController;
|
||
import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController;
|
||
import com.fp.frontend.controller.pgeneral.gene.ParametersController;
|
||
import com.fp.frontend.controller.pgeneral.menu.MenuController;
|
||
import com.fp.frontend.helper.MessageHelper;
|
||
import com.fp.frontend.utility.MsgControlArmas;
|
||
import com.fp.frontend.utility.MsgGeneral;
|
||
import com.fp.frontend.utility.Utilidades;
|
||
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.TarmArmas;
|
||
import com.fp.persistence.parmas.soli.TarmCertificadoArmas;
|
||
import com.fp.persistence.parmas.soli.TarmCertificadoArmasKey;
|
||
import com.fp.persistence.parmas.soli.TarmCertificadoFiscalia;
|
||
import com.fp.persistence.parmas.soli.TarmDocumentoHabilitante;
|
||
import com.fp.persistence.pcustomer.gene.TcustPersonDetail;
|
||
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;
|
||
|
||
/**
|
||
* Controlador que permite genereal los certificados de Fiscalia
|
||
* @author Manuel Cepeda
|
||
*
|
||
*/
|
||
@SuppressWarnings("serial")
|
||
@ManagedBean
|
||
@ViewScoped
|
||
public class CertificadoFiscaliaController extends AbstractController<TarmArmas> {
|
||
|
||
private String razonSocial;
|
||
private String numeroDocumento;
|
||
private String lote;
|
||
private boolean panelPerson;
|
||
private boolean panelSinDatosPerson;
|
||
private boolean panelSinDatosArma;
|
||
private String filtroPersona;
|
||
private List<TarmArmas> listaArmas;
|
||
private List<TarmArmas> listaArmasBySerie;
|
||
|
||
@ManagedProperty(value = "#{personLovController}")
|
||
private PersonLovController personLovController;
|
||
|
||
@ManagedProperty(value = "#{certificadoArmasController}")
|
||
private CertificadoArmasController certificadoArmasController;
|
||
@ManagedProperty(value = "#{reportController}")
|
||
private ReportController reportController;
|
||
private String sessionID;
|
||
private TcustPersonDetail tcustPersonDetail;
|
||
private String nroSolicitud;
|
||
private TarmCentroControl centroControl;
|
||
private TarmCertificadoFiscalia certificadoFiscalia;
|
||
@ManagedProperty(value = "#{solicitudCertificadoController}")
|
||
private SolicitudCertificadoController solicitudCertificadoController;
|
||
/**
|
||
* Bandera de tipo booleano para indicar si se habilita el boton de completar tarea
|
||
*/
|
||
private Boolean esTareaCompleta = Boolean.FALSE;
|
||
|
||
|
||
/**
|
||
* Clase controladora de funcionalidad del Alfresco
|
||
*/
|
||
@ManagedProperty(value="#{alfrescoController}")
|
||
private AlfrescoController alfrescoController;
|
||
|
||
/**
|
||
* Deshabilita la pantalla después de grabar la solicitud
|
||
*/
|
||
private boolean deshabilitarPantalla;
|
||
|
||
|
||
public CertificadoFiscaliaController() throws Exception {
|
||
super(TarmArmas.class);
|
||
}
|
||
|
||
/**
|
||
* Método que se ejecuta después del constructor
|
||
*/
|
||
@PostConstruct
|
||
private void postconstruct() {
|
||
try {
|
||
super.startQuery();
|
||
nroSolicitud = this.getMfilters().get("csolicitud");
|
||
this.getMfilters().clear();
|
||
this.getPersonLovController().getMfilters().clear();
|
||
this.getCertificadoArmasController().getMfilters().clear();
|
||
this.getSolicitudCertificadoController().getMfilters().clear();
|
||
|
||
this.init();
|
||
panelPerson = true;
|
||
panelSinDatosPerson = false;
|
||
panelSinDatosArma = false;
|
||
} catch (Exception e) {
|
||
MessageHelper.setMessageError(e);
|
||
}
|
||
panelSinDatosPerson = false;
|
||
panelSinDatosArma = false;
|
||
|
||
}
|
||
|
||
/**
|
||
* Inicializa valores del controlador
|
||
*/
|
||
private void init() {
|
||
try {
|
||
|
||
filtroPersona = "";
|
||
certificadoFiscalia = SolicitudCertificadoController.findPorSolicitud(nroSolicitud.trim());
|
||
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
|
||
sessionID = session.getId();
|
||
// recperpage = 15; // Cambiar al # reg a mirar.
|
||
lrecord = new ArrayList<>();
|
||
centroControl=Utilidades.obtenerCentroControl();
|
||
TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
|
||
if(tsafeUserDetail!=null && tsafeUserDetail.getPk().getPersoncode()!=null){
|
||
tcustPersonDetail=PersonDetailController.find(tsafeUserDetail.getPk().getPersoncode().toString());
|
||
}
|
||
} catch (Exception e) {
|
||
MessageHelper.setMessageError(e);
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public void next() throws Exception {
|
||
super.next();
|
||
}
|
||
|
||
/**
|
||
* Retorna un {@link DtoQuery} con los atributos a presentarse
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
private DtoQuery getDtoQuery() throws Exception{
|
||
DtoQuery dto = super.getDtoQuery(true);
|
||
SubQuery subqueryMarca= new SubQuery("TgeneCatalogDetail","description","marca","i.pk.catalog=t.marca and i.pk.catalogcode=t.marcacodigo");
|
||
dto.addSubQuery(subqueryMarca);
|
||
SubQuery subqueryColor= new SubQuery("TgeneCatalogDetail","description","color","i.pk.catalog=t.color and i.pk.catalogcode=t.colorcodigo");
|
||
dto.addSubQuery(subqueryColor);
|
||
SubQuery subqueryEstado= new SubQuery("TgeneCatalogDetail","description","estado","i.pk.catalog=t.estado and i.pk.catalogcode=t.estadocodigo");
|
||
dto.addSubQuery(subqueryEstado);
|
||
SubQuery subqueryClase= new SubQuery("TarmTipoArmaExplosivo","clase","cclase","i.pk=t.ctipoarmaexplosivo");
|
||
dto.addSubQuery(subqueryClase);
|
||
SubQuery subqueryClaseCodigo= new SubQuery("TarmTipoArmaExplosivo","clasecodigo","cclasecodigo","i.pk=t.ctipoarmaexplosivo");
|
||
dto.addSubQuery(subqueryClaseCodigo);
|
||
SubQuery subqueryLongitud= new SubQuery("TarmTipoArmaExplosivo","longitud","clongitud","i.pk=t.ctipoarmaexplosivo");
|
||
dto.addSubQuery(subqueryLongitud);
|
||
SubQuery subqueryLongitudCodigo= new SubQuery("TarmTipoArmaExplosivo","longitudcodigo","clongitudcodigo","i.pk=t.ctipoarmaexplosivo");
|
||
dto.addSubQuery(subqueryLongitudCodigo);
|
||
SubQuery subqueryCalibre= new SubQuery("TarmTipoArmaExplosivo","calibre","ccalibre","i.pk=t.ctipoarmaexplosivo");
|
||
dto.addSubQuery(subqueryCalibre);
|
||
SubQuery subqueryCalibreCodigo= new SubQuery("TarmTipoArmaExplosivo","calibrecodigo","ccalibrecodigo","i.pk=t.ctipoarmaexplosivo");
|
||
dto.addSubQuery(subqueryCalibreCodigo);
|
||
SubQuery subqueryTipoArma= new SubQuery("TarmTipoArmaExplosivo","tipoarmaexplosivo","ctipoarmaexplosivo","i.pk=t.ctipoarmaexplosivo");
|
||
dto.addSubQuery(subqueryTipoArma);
|
||
SubQuery subqueryTipoArmaCodigo= new SubQuery("TarmTipoArmaExplosivo","tipoarmaexplosivocodigo","ctipoarmaexplosivocodigo","i.pk=t.ctipoarmaexplosivo");
|
||
dto.addSubQuery(subqueryTipoArmaCodigo);
|
||
SubQuery subqueryUnidad= new SubQuery("TarmTipoArmaExplosivo","unidadmedidapeso","cunidadmedidapeso","i.pk=t.ctipoarmaexplosivo");
|
||
dto.addSubQuery(subqueryUnidad);
|
||
SubQuery subqueryUnidadCodigo= new SubQuery("TarmTipoArmaExplosivo","unidadmedidapesocodigo","cunidadmedidapesocodigo","i.pk=t.ctipoarmaexplosivo");
|
||
dto.addSubQuery(subqueryUnidadCodigo);
|
||
SubQuery subqueryUnidadMedida= new SubQuery("TgeneCatalogDetail","description","unidadmedida","i.pk.catalog=t.unidadmedidacantidad and i.pk.catalogcode=t.unidadmedidacantidadcodigo");
|
||
dto.addSubQuery(subqueryUnidadMedida);
|
||
SubQuery subquerycpersoncode= new SubQuery("TarmRegistroArmas","personcode","personcode","i.pk=t.cregistro");
|
||
dto.addSubQuery(subquerycpersoncode);
|
||
|
||
return dto;
|
||
}
|
||
|
||
@Override
|
||
public void save() {
|
||
}
|
||
|
||
/**
|
||
* Metodo para finalizar la tarea del flujo
|
||
*/
|
||
public void completarTarea() {
|
||
|
||
try {
|
||
if(esTareaCompleta){
|
||
return;
|
||
}
|
||
Request request = callerhelper.getRequest();
|
||
// limpiar request para finalizar la tarea.
|
||
super.cleanRequest(request);
|
||
request.modifiedData().put("csolicitud", nroSolicitud);
|
||
request.modifiedData().put("TID", tid);
|
||
request.modifiedData().put("BPMStatus", bpmDataStatus == null ? "A" : bpmDataStatus); // A,D,R
|
||
request.modifiedData().put("BPMObs", bpmDataComment == null ? "OK" : bpmDataComment);
|
||
Response resp = callerhelper.executeSave(request);
|
||
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
|
||
MessageHelper.setMessageInfo(resp);
|
||
esTareaCompleta=Boolean.TRUE;
|
||
RequestContext.getCurrentInstance().execute("Maia.refreshusertasks()");
|
||
} else {
|
||
MessageHelper.setMessageError(resp);
|
||
}
|
||
} catch (Throwable e) {
|
||
MessageHelper.setMessageError(e);
|
||
}
|
||
}
|
||
/**
|
||
* Genera el certificado de armas para la Fiscalia y sube al Alfresco el pdf
|
||
*/
|
||
public void generarReporte() {
|
||
if(deshabilitarPantalla){
|
||
return;
|
||
}
|
||
|
||
String path = "armas/reports/certificadosArmas";
|
||
Boolean aux=Boolean.FALSE;
|
||
java.util.Date today = new java.util.Date();
|
||
java.sql.Timestamp fechaReporte = new java.sql.Timestamp(today.getTime());
|
||
Random aleatorio = new Random();
|
||
int ticketGenerado = aleatorio.nextInt();
|
||
int i=0;
|
||
|
||
for(TarmArmas armasel:lrecord){
|
||
i++;
|
||
if(armasel.getModifiedData().get("seleccionado")!=null && armasel.getModifiedData().get("seleccionado").equals(Boolean.TRUE)){
|
||
aux=Boolean.TRUE;
|
||
guardarCertificadoReporte(armasel, i, ticketGenerado, fechaReporte);
|
||
}
|
||
}
|
||
if(!aux){
|
||
MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_nohaseleccionadoarmas"));
|
||
return;
|
||
}
|
||
certificadoArmasController.save();
|
||
try {
|
||
//Fija parametros del report.
|
||
HashMap<String, Object> parameters = new HashMap<>();
|
||
parameters.put("pathLogoIzquierda", "repo:/maia/1/image/comandoconjunto");
|
||
parameters.put("pathLogoDerecha", "repo:/maia/1/image/selloarmas");
|
||
parameters.put("codResponsable", centroControl.getPersoncode());
|
||
parameters.put("gradoresponsable","" ); //centroControl.getModifiedData().get("desgrado")
|
||
parameters.put("nombreresponsable",centroControl.getModifiedData().get("desgrado")+" "+ centroControl.getModifiedData().get("nombre"));
|
||
parameters.put("centrocontrol", String.valueOf(centroControl.getModifiedData().get("desnombreinstitucion")));
|
||
parameters.put("sessionID",sessionID);
|
||
parameters.put("nroSolicitud",certificadoFiscalia.getNroficiofiscalia());
|
||
// parameters.put("fechaReporte",fechaReporte);
|
||
|
||
parameters.put("ticket",ticketGenerado);
|
||
parameters.put("personCodeLogin",(tcustPersonDetail!=null && tcustPersonDetail.getPk()!=null)?tcustPersonDetail.getPk().getPersoncode():null);
|
||
if(tcustPersonDetail!=null){
|
||
parameters.put("usuario", tcustPersonDetail.getName());
|
||
}
|
||
parameters.put("unidadmilitar", MsgControlArmas.getProperty("msg_inf_digitadordel")+" "+String.valueOf(centroControl.getModifiedData().get("desnombreinstitucion")));
|
||
String format="pdf";
|
||
String filename="Certificado";
|
||
|
||
InputStream file =this.reportController.jaspertoInputstream(path, parameters, format, filename, this.getLoginController());
|
||
String xPathLocation= getRutaDocumentoCertificadoBase() + "/cm:" + this.nroSolicitud;
|
||
String nombreArchivo = "CERT" + nroSolicitud + ".pdf";
|
||
alfrescoController.uploadFile(file, nombreArchivo, xPathLocation);
|
||
|
||
//actualizar solicitudCertificadoController
|
||
solicitudCertificadoController.getMfilters().put("nrsolicitud", nroSolicitud);
|
||
solicitudCertificadoController.querydatabase();
|
||
TarmCertificadoFiscalia tarmCertificadoFiscalia = solicitudCertificadoController.getRecord();
|
||
tarmCertificadoFiscalia.setIsnew(false);
|
||
tarmCertificadoFiscalia.setXpathSolicitudArma(xPathLocation+"/cm:"+nombreArchivo);
|
||
|
||
solicitudCertificadoController.getLrecord().add(tarmCertificadoFiscalia);
|
||
solicitudCertificadoController.update();
|
||
solicitudCertificadoController.save();
|
||
deshabilitarPantalla = Boolean.TRUE;
|
||
MessageHelper.setMessageInfo("Se genero el certificado exitosamente.");
|
||
} catch (Exception ex) {
|
||
MessageHelper.setMessageError(ex);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Retorna la ruta base donde se almacenara dicho archivo
|
||
*
|
||
* @return
|
||
*/
|
||
public String getRutaDocumentoCertificadoBase() {
|
||
Calendar calendar = Calendar.getInstance();
|
||
calendar.setTime(new java.util.Date());
|
||
StringBuilder ruta = new StringBuilder("cm:Certificados");
|
||
ruta = ruta.append("/cm:A-").append(calendar.get(Calendar.YEAR));
|
||
ruta = ruta.append("/cm:M-").append((calendar.get(Calendar.MONTH)+1) <= 9 ? "0" + (calendar.get(Calendar.MONTH) + 1) : (calendar.get(Calendar.MONTH)+1));
|
||
return ruta.toString();
|
||
}
|
||
|
||
/**
|
||
* Guarda los datos de las Armas solicitadas por el Fiscal a la bdd
|
||
* @param armaObj
|
||
* @param orden
|
||
* @param ticket
|
||
* @param fechaReporte
|
||
*/
|
||
private void guardarCertificadoReporte(TarmArmas armaObj,int orden,int ticket, java.sql.Timestamp fechaReporte){
|
||
TarmCertificadoArmas certificadoArmasObj = new TarmCertificadoArmas();
|
||
TarmCertificadoArmasKey pk = new TarmCertificadoArmasKey();
|
||
certificadoArmasObj.setPk(pk);
|
||
try {
|
||
certificadoArmasObj.getPk().setFechareporte(fechaReporte);
|
||
certificadoArmasObj.getPk().setSessionid(sessionID);
|
||
certificadoArmasObj.getPk().setOrden(orden);
|
||
certificadoArmasObj.setIdentification(armaObj.getModifiedData().get("noDocumento")!=null?armaObj.getModifiedData().get("noDocumento").toString():null);
|
||
certificadoArmasObj.setName(armaObj.getModifiedData().get("propietario")!=null?armaObj.getModifiedData().get("propietario").toString():null);
|
||
certificadoArmasObj.setRegisterdate(armaObj.getFecharegistro());
|
||
certificadoArmasObj.setClase(armaObj.getModifiedData().get("clase")!=null?armaObj.getModifiedData().get("clase").toString():null);
|
||
certificadoArmasObj.setTipoarmaexplosivo(armaObj.getModifiedData().get("tipoarmaexplosivo")!=null?armaObj.getModifiedData().get("tipoarmaexplosivo").toString():null);
|
||
certificadoArmasObj.setMarca(armaObj.getModifiedData().get("marca")!=null?armaObj.getModifiedData().get("marca").toString():null);
|
||
certificadoArmasObj.setCalibre(armaObj.getModifiedData().get("calibre")!=null?armaObj.getModifiedData().get("calibre").toString():null);
|
||
certificadoArmasObj.setLote(armaObj.getLote());
|
||
certificadoArmasObj.setPaisfabricacion(armaObj.getModifiedData().get("paisorigen")!=null?armaObj.getModifiedData().get("paisorigen").toString():null);
|
||
certificadoArmasObj.setEstado(armaObj.getModifiedData().get("estado")!=null?armaObj.getModifiedData().get("estado").toString():null);
|
||
certificadoArmasObj.setUsercode((tcustPersonDetail!=null && tcustPersonDetail.getPk()!=null)?tcustPersonDetail.getPk().getPersoncode().toString():null);
|
||
certificadoArmasObj.setTicket(ticket);
|
||
certificadoArmasObj.setPermiso((armaObj.getModifiedData().get("permiso") != null) ? armaObj.getModifiedData().get("permiso").toString() : "");//armaObj.getModifiedData().get("permiso").toString());
|
||
certificadoArmasObj.setFechaemison((Date) armaObj.getModifiedData().get("fechaemision"));
|
||
certificadoArmasObj.setFechaexpiracion((Date)armaObj.getModifiedData().get("fechaexpiracion"));
|
||
certificadoArmasObj.setIsnew(true);
|
||
certificadoArmasController.update(certificadoArmasObj);
|
||
} catch (Exception e) {
|
||
// TODO Auto-generated catch block
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Selecciona el objeto TcustPersonDetail de la tabla actual de la pagina
|
||
* @param person
|
||
*/
|
||
public void setPerson(TcustPersonDetail person) {
|
||
if(person != null){
|
||
panelPerson = false;
|
||
filtroPersona = " and t.cregistro in (select i.pk from TarmRegistroArmas i where i.personcode ="+person.getPk().getPersoncode()+")";
|
||
querydatabaseArma();
|
||
setRazonSocial(person.getName());
|
||
setNumeroDocumento(person.getIdentification());
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Permite consultar en la tabla armas mediante el codigo de la persona
|
||
*/
|
||
protected void querydatabaseArma() {
|
||
try {
|
||
DtoQuery dto = this.getDtoQuery();
|
||
dto.setOrderby("pk");
|
||
Filter filtro = new Filter();
|
||
String sql="t.fecharegistro=(select max(ta.fecharegistro) from TarmArmas ta where t.codigoarma=ta.codigoarma) and t.estado !='DEST' and t.estado!='VEND' and t.estado!='MING' and t.estado!='DUPL' and t.estado!='CUSTEM'"
|
||
+ " and (t.peso>0 or t.cantidad>0) " + filtroPersona;//
|
||
filtro.setSql(sql);
|
||
dto.addFiltro(filtro);
|
||
|
||
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
|
||
mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla.
|
||
|
||
Request request = this.callerhelper.getRequest();
|
||
request.setQueryTables(mtables);
|
||
Response resp = this.callerhelper.executeQuery(request);
|
||
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
|
||
listaArmas = new ArrayList<TarmArmas>();
|
||
MessageHelper.setMessageError(resp);
|
||
} else {
|
||
listaArmas= (List<TarmArmas>) resp.get(this.beanalias);
|
||
actualizarDatos(listaArmas);
|
||
}
|
||
} catch (Throwable e) {
|
||
MessageHelper.setMessageError(e);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Permite actualizar los datos de la Entidad TarmAmas
|
||
* @param listaArmas
|
||
*/
|
||
private void actualizarDatos(List<TarmArmas> listaArmas){
|
||
for(TarmArmas armasObj:listaArmas){
|
||
TarmRegistroArmas registroArmasObj = RegistroArmController.findByCodigo(armasObj.getCregistro().toString());
|
||
if(registroArmasObj!=null && registroArmasObj.getPersoncode()!=null){
|
||
TcustPersonDetail propietarioObj = PersonDetailController.find(registroArmasObj.getPersoncode().toString());
|
||
if(propietarioObj.getIdentificationcatalog()!=null && propietarioObj.getIdentificationcatalogcode()!=null){
|
||
armasObj.getModifiedData().put("tipoDocumento", CatalogDetailController.findxCodigoCodcatalogo(propietarioObj.getIdentificationcatalog(), propietarioObj.getIdentificationcatalogcode()).getDescription());
|
||
}
|
||
armasObj.getModifiedData().put("noDocumento", propietarioObj.getIdentification());
|
||
armasObj.getModifiedData().put("nombrerazonsocial", propietarioObj.getName());
|
||
armasObj.getModifiedData().put("paisorigencode", registroArmasObj.getPaisorigen());
|
||
if(armasObj.getModifiedData().get("cclase")!=null){
|
||
armasObj.getModifiedData().put("clase", CatalogDetailController.findxCodigoCodcatalogo(armasObj.getModifiedData().get("cclase").toString(), armasObj.getModifiedData().get("cclasecodigo").toString()).getDescription());
|
||
}
|
||
if(armasObj.getModifiedData().get("ctipoarmaexplosivo")!=null){
|
||
armasObj.getModifiedData().put("tipoarmaexplosivo", CatalogDetailController.findxCodigoCodcatalogo(armasObj.getModifiedData().get("ctipoarmaexplosivo").toString(), armasObj.getModifiedData().get("ctipoarmaexplosivocodigo").toString()).getDescription());
|
||
}
|
||
if(armasObj.getModifiedData().get("ccalibre")!=null){
|
||
armasObj.getModifiedData().put("calibre", CatalogDetailController.findxCodigoCodcatalogo(armasObj.getModifiedData().get("ccalibre").toString(), armasObj.getModifiedData().get("ccalibrecodigo").toString()).getDescription());
|
||
}
|
||
|
||
TarmDocumentoHabilitante documentoHabilitante = DocumentoHabilitanteController.findxarma(armasObj.getPk());
|
||
if(documentoHabilitante != null ){
|
||
armasObj.getModifiedData().put("fechaemision", documentoHabilitante.getFechaemision());
|
||
armasObj.getModifiedData().put("fechaexpiracion", documentoHabilitante.getFechaexpiracion());
|
||
TarmTramite tarmTramite = TarmTramiteController.find(documentoHabilitante.getCtramite().toString());
|
||
if(tarmTramite != null){
|
||
armasObj.getModifiedData().put("permiso", tarmTramite.getModifiedData().get("usoactividad"));
|
||
}
|
||
}
|
||
|
||
//cargarPropietario
|
||
armasObj.getModifiedData().put("ordenarma",armasObj.getPk());
|
||
if(armasObj.getModifiedData().get("personcode")!=null){
|
||
TcustPersonDetail personaDetalle=PersonDetailController.find(armasObj.getModifiedData().get("personcode").toString());
|
||
armasObj.getModifiedData().put("propietario", personaDetalle.getName());
|
||
armasObj.getModifiedData().put("noDocumento", personaDetalle.getIdentification());
|
||
armasObj.getModifiedData().put("nombrerazonsocial", personaDetalle.getName());
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Permite consultar en la tabla armas mediante el lote/serie de armas
|
||
*/
|
||
public void querydatabaseSerie() {
|
||
try {
|
||
DtoQuery dto = this.getDtoQuery();
|
||
String sqlFiltroEstados = "";
|
||
String sqlFiltroCodigosArmas = "";//1
|
||
|
||
dto.setOrderby("pk");
|
||
String sqlActual = " t.fecharegistro=(select max(ta.fecharegistro) from TarmArmas ta where t.codigoarma=ta.codigoarma) "
|
||
+ " and (t.peso>0 or t.cantidad>0)";// and (t.cregistro=ta.cregistro) para el manejo de los explosivos
|
||
String sqlFinal = obtenerFiltroBusquedaGeneral(sqlFiltroEstados, sqlFiltroCodigosArmas, sqlActual);
|
||
Filter filtroFinal = new Filter();
|
||
filtroFinal.setSql(sqlFinal);
|
||
dto.addFiltro(filtroFinal);
|
||
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
|
||
mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla.
|
||
|
||
Request request = this.callerhelper.getRequest();
|
||
request.setQueryTables(mtables);
|
||
Response resp = this.callerhelper.executeQuery(request);
|
||
|
||
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
|
||
listaArmasBySerie = new ArrayList<TarmArmas>();
|
||
MessageHelper.setMessageError(resp);
|
||
} else {
|
||
listaArmasBySerie = (List<TarmArmas>) resp.get(this.beanalias);
|
||
actualizarDatos(listaArmasBySerie);
|
||
}
|
||
|
||
} catch (Throwable e) {
|
||
MessageHelper.setMessageError(e);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Metodo que agrega dinamicamente los filtros a una consulta SQL
|
||
* @param sqlFiltros
|
||
* @return String
|
||
*/
|
||
private String obtenerFiltroBusquedaGeneral(String... sqlFiltros ){
|
||
StringBuffer sqlFinal = new StringBuffer();
|
||
for (int i = 0; i < sqlFiltros.length ; i++) {
|
||
if(sqlFinal.length() > 0 && !StringUtils.endsWith(StringUtils.trim(sqlFinal.toString()), "AND")){
|
||
sqlFinal.append( " AND ");
|
||
}
|
||
sqlFinal.append(sqlFiltros[i]);
|
||
}
|
||
return sqlFinal.toString();
|
||
}
|
||
|
||
/**
|
||
* Seleccionado todos los registros de la tabla
|
||
*/
|
||
public void seleccionarTodos(AjaxBehaviorEvent event) {
|
||
try {
|
||
Boolean valorColocar = Boolean.FALSE;
|
||
if(Boolean.valueOf(event.getComponent().getAttributes().get("value") != null ? event.getComponent().getAttributes().get("value").toString() : "false")){
|
||
valorColocar = Boolean.TRUE;
|
||
}
|
||
for (TarmArmas tarmArmas : listaArmas) {
|
||
tarmArmas.getModifiedData().put("seleccionado", valorColocar);
|
||
}
|
||
} catch (Throwable e) {
|
||
MessageHelper.setMessageError(e);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Permite actualizar el campo seleccionado en la entidad tarmArmas
|
||
*/
|
||
public void actualizarDatosArma(){
|
||
for(TarmArmas tarmArmas : listaArmas){
|
||
if(tarmArmas.getModifiedData().get("seleccionado").equals(Boolean.TRUE)){
|
||
this.getLrecord().add(tarmArmas);
|
||
}
|
||
}
|
||
panelPerson = true;
|
||
personLovController.init();
|
||
personLovController.getMfilters().clear();
|
||
getMfilters().clear();
|
||
}
|
||
|
||
/**
|
||
* Permite actualizar el campo seleccionado en la entidad tarmArmas
|
||
*/
|
||
public void actualizarDatosArmaSerie(){
|
||
for(TarmArmas tarmArmas : listaArmasBySerie){
|
||
if(tarmArmas.getModifiedData().get("seleccionado").equals(Boolean.TRUE)){
|
||
this.getLrecord().add(tarmArmas);
|
||
}
|
||
}
|
||
panelPerson = true;
|
||
setPanelSinDatosPerson(false);
|
||
listaArmasBySerie = new ArrayList<>();
|
||
this.getMfilters().clear();
|
||
}
|
||
|
||
/**
|
||
* Metodo para extrer solo elnoimbre del archivo
|
||
* @param xpath xpath del archivo en alfresco
|
||
* @return solo la parte correspondiente al nombre del archivo
|
||
*/
|
||
public String soloNombreArchivo(String xpath){
|
||
return xpath.substring(xpath.lastIndexOf(":") + 1,xpath.length());
|
||
}
|
||
|
||
public void onReturnPersonLov(){
|
||
numeroDocumento = "";
|
||
razonSocial = "";
|
||
setPanelPerson(true);
|
||
setPanelSinDatosPerson(false);
|
||
setPanelSinDatosArma(false);
|
||
getMfilters().clear();
|
||
}
|
||
|
||
|
||
public void emptyPerson(){
|
||
if((lote == null || "".equals(lote)) && (numeroDocumento == null || "".equals(numeroDocumento)) && (razonSocial == null || "".equals(razonSocial))){
|
||
MessageHelper.setMessageError("Ingrese el campo Identificaci<63>n o el campo Nombre");
|
||
return;
|
||
}
|
||
|
||
TarmArmas obj = new TarmArmas();
|
||
if(razonSocial == null || "".equals(razonSocial)){
|
||
razonSocial = "N/A";
|
||
}
|
||
|
||
if(lote != null && !"".equals(lote)){
|
||
obj.setLote(lote);
|
||
}
|
||
|
||
if(numeroDocumento != null || !"".equals(numeroDocumento)){
|
||
obj.getModifiedData().put("noDocumento", numeroDocumento);
|
||
}
|
||
|
||
obj.getModifiedData().put("nombrerazonsocial", razonSocial);
|
||
obj.getModifiedData().put("propietario", razonSocial);
|
||
obj.getModifiedData().put("permiso", "No se registra permisos en el sistema");
|
||
lrecord.add(obj);
|
||
|
||
personLovController.init();
|
||
personLovController.getMfilters().clear();
|
||
setLote("");
|
||
numeroDocumento = "";
|
||
razonSocial = "";
|
||
}
|
||
|
||
public boolean isPanelPerson() {
|
||
return panelPerson;
|
||
}
|
||
|
||
public void setPanelPerson(boolean panelPerson) {
|
||
this.panelPerson = panelPerson;
|
||
}
|
||
|
||
public List<TarmArmas> getListaArmas() {
|
||
return listaArmas;
|
||
}
|
||
|
||
public void setListaArmas(List<TarmArmas> listaArmas) {
|
||
this.listaArmas = listaArmas;
|
||
}
|
||
|
||
/**
|
||
* @return the razonSocial
|
||
*/
|
||
public String getRazonSocial() {
|
||
return razonSocial;
|
||
}
|
||
|
||
/**
|
||
* @param razonSocial the razonSocial to set
|
||
*/
|
||
public void setRazonSocial(String razonSocial) {
|
||
this.razonSocial = razonSocial;
|
||
}
|
||
|
||
/**
|
||
* @return the numeroDocumento
|
||
*/
|
||
public String getNumeroDocumento() {
|
||
return numeroDocumento;
|
||
}
|
||
|
||
/**
|
||
* @param numeroDocumento the numeroDocumento to set
|
||
*/
|
||
public void setNumeroDocumento(String numeroDocumento) {
|
||
this.numeroDocumento = numeroDocumento;
|
||
}
|
||
|
||
/**
|
||
* @return the personLovController
|
||
*/
|
||
public PersonLovController getPersonLovController() {
|
||
return personLovController;
|
||
}
|
||
|
||
/**
|
||
* @param personLovController the personLovController to set
|
||
*/
|
||
public void setPersonLovController(PersonLovController personLovController) {
|
||
this.personLovController = personLovController;
|
||
}
|
||
|
||
/**
|
||
* @return the listaArmasBySerie
|
||
*/
|
||
public List<TarmArmas> getListaArmasBySerie() {
|
||
return listaArmasBySerie;
|
||
}
|
||
|
||
/**
|
||
* @param listaArmasBySerie the listaArmasBySerie to set
|
||
*/
|
||
public void setListaArmasBySerie(List<TarmArmas> listaArmasBySerie) {
|
||
this.listaArmasBySerie = listaArmasBySerie;
|
||
}
|
||
|
||
/**
|
||
* @return the certificadoArmasController
|
||
*/
|
||
public CertificadoArmasController getCertificadoArmasController() {
|
||
return certificadoArmasController;
|
||
}
|
||
|
||
/**
|
||
* @param certificadoArmasController the certificadoArmasController to set
|
||
*/
|
||
public void setCertificadoArmasController(
|
||
CertificadoArmasController certificadoArmasController) {
|
||
this.certificadoArmasController = certificadoArmasController;
|
||
}
|
||
|
||
/**
|
||
* @return the reportController
|
||
*/
|
||
public ReportController getReportController() {
|
||
return reportController;
|
||
}
|
||
|
||
/**
|
||
* @param reportController the reportController to set
|
||
*/
|
||
public void setReportController(ReportController reportController) {
|
||
this.reportController = reportController;
|
||
}
|
||
|
||
@Override
|
||
protected void querydatabase() {
|
||
// TODO Auto-generated method stub
|
||
|
||
}
|
||
|
||
/**
|
||
* @return the alfrescoController
|
||
*/
|
||
public AlfrescoController getAlfrescoController() {
|
||
return alfrescoController;
|
||
}
|
||
|
||
/**
|
||
* @param alfrescoController the alfrescoController to set
|
||
*/
|
||
public void setAlfrescoController(AlfrescoController alfrescoController) {
|
||
this.alfrescoController = alfrescoController;
|
||
}
|
||
|
||
/**
|
||
* @return the solicitudCertificadoController
|
||
*/
|
||
public SolicitudCertificadoController getSolicitudCertificadoController() {
|
||
return solicitudCertificadoController;
|
||
}
|
||
|
||
/**
|
||
* @param solicitudCertificadoController the solicitudCertificadoController to set
|
||
*/
|
||
public void setSolicitudCertificadoController(
|
||
SolicitudCertificadoController solicitudCertificadoController) {
|
||
this.solicitudCertificadoController = solicitudCertificadoController;
|
||
}
|
||
|
||
/**
|
||
* @return the certificadoFiscalia
|
||
*/
|
||
public TarmCertificadoFiscalia getCertificadoFiscalia() {
|
||
return certificadoFiscalia;
|
||
}
|
||
|
||
/**
|
||
* @param certificadoFiscalia the certificadoFiscalia to set
|
||
*/
|
||
public void setCertificadoFiscalia(TarmCertificadoFiscalia certificadoFiscalia) {
|
||
this.certificadoFiscalia = certificadoFiscalia;
|
||
}
|
||
|
||
/**
|
||
* @return the nroSolicitud
|
||
*/
|
||
public String getNroSolicitud() {
|
||
return nroSolicitud;
|
||
}
|
||
|
||
/**
|
||
* @param nroSolicitud the nroSolicitud to set
|
||
*/
|
||
public void setNroSolicitud(String nroSolicitud) {
|
||
this.nroSolicitud = nroSolicitud;
|
||
}
|
||
|
||
/**
|
||
* @return the esTareaCompleta
|
||
*/
|
||
public boolean isEsTareaCompleta() {
|
||
return esTareaCompleta;
|
||
}
|
||
|
||
/**
|
||
* @param esTareaCompleta the esTareaCompleta to set
|
||
*/
|
||
public void setEsTareaCompleta(boolean esTareaCompleta) {
|
||
this.esTareaCompleta = esTareaCompleta;
|
||
}
|
||
|
||
/**
|
||
* @return the panelSinDatosPerson
|
||
*/
|
||
public boolean isPanelSinDatosPerson() {
|
||
return panelSinDatosPerson;
|
||
}
|
||
|
||
/**
|
||
* @param panelSinDatosPerson the panelSinDatosPerson to set
|
||
*/
|
||
public void setPanelSinDatosPerson(boolean panelSinDatosPerson) {
|
||
this.panelSinDatosPerson = panelSinDatosPerson;
|
||
}
|
||
|
||
/**
|
||
* @return the panelSinDatosArma
|
||
*/
|
||
public boolean isPanelSinDatosArma() {
|
||
return panelSinDatosArma;
|
||
}
|
||
|
||
/**
|
||
* @param panelSinDatosArma the panelSinDatosArma to set
|
||
*/
|
||
public void setPanelSinDatosArma(boolean panelSinDatosArma) {
|
||
this.panelSinDatosArma = panelSinDatosArma;
|
||
}
|
||
|
||
/**
|
||
* @return the lote
|
||
*/
|
||
public String getLote() {
|
||
return lote;
|
||
}
|
||
|
||
/**
|
||
* @param lote the lote to set
|
||
*/
|
||
public void setLote(String lote) {
|
||
this.lote = lote;
|
||
}
|
||
|
||
/**
|
||
* @return the deshabilitarPantalla
|
||
*/
|
||
public boolean isDeshabilitarPantalla() {
|
||
return deshabilitarPantalla;
|
||
}
|
||
|
||
/**
|
||
* @param deshabilitarPantalla the deshabilitarPantalla to set
|
||
*/
|
||
public void setDeshabilitarPantalla(boolean deshabilitarPantalla) {
|
||
this.deshabilitarPantalla = deshabilitarPantalla;
|
||
}
|
||
|
||
|
||
}
|