maia_modificado/.svn/pristine/ed/ed872c91921975ac5cdeb073e9d...

1202 lines
44 KiB
Plaintext
Executable File

package com.fp.frontend.controller.armas.solicitud;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
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 javax.faces.context.FacesContext;
import org.primefaces.context.RequestContext;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;
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.ReportController;
import com.fp.frontend.controller.alfresco.AlfrescoController;
import com.fp.frontend.controller.armas.funcionalidad.RegistroArmController;
import com.fp.frontend.controller.armas.parametros.CashManagementHistoryController;
import com.fp.frontend.controller.armas.parametros.CentroControlArmasController;
import com.fp.frontend.controller.armas.parametros.TarmCentroControlJurController;
import com.fp.frontend.controller.armas.parametros.TiposArmasExplosivosController;
import com.fp.frontend.controller.pcustomer.PersonAddressController;
import com.fp.frontend.controller.pcustomer.PersonDetailController;
import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController;
import com.fp.frontend.controller.pgeneral.gene.CountryController;
import com.fp.frontend.controller.pgeneral.gene.ParametersController;
import com.fp.frontend.helper.MessageHelper;
import com.fp.frontend.utility.MsgControlArmas;
import com.fp.persistence.parmas.fun.TarmRegistroArmas;
import com.fp.persistence.parmas.param.TarmCentroControl;
import com.fp.persistence.parmas.param.TarmCentroControlJur;
import com.fp.persistence.parmas.param.TarmTipoArmaExplosivo;
import com.fp.persistence.parmas.param.TarmTramite;
import com.fp.persistence.parmas.soli.TarmArmaPruebas;
import com.fp.persistence.parmas.soli.TarmArmas;
import com.fp.persistence.parmas.soli.TarmSolicitud;
import com.fp.persistence.parmas.soli.TarmSolicitudArmas;
import com.fp.persistence.parmas.soli.TarmSolicitudTramite;
import com.fp.persistence.pcustomer.gene.TcustPersonAddress;
import com.fp.persistence.pcustomer.gene.TcustPersonDetail;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail;
import com.fp.persistence.pgeneral.gene.TgeneCountry;
import com.fp.persistence.pgeneral.gene.TgeneParameters;
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;
/**
*
* Genrera fichas tecnicas de armas faltantes
* @author Christian Pazmino
*
*/
@SuppressWarnings("serial")
@ManagedBean
@ViewScoped
public class FichasTecnicasFlatantesController extends AbstractController<TarmArmaPruebas> {
/**
*
*/
private static final long serialVersionUID = 8843091476010012919L;
/**
* Controlador que maneja alfresco
*/
@ManagedProperty(value = "#{alfrescoController}")
private AlfrescoController alfrescoController;
/**
* Controlador que maneja reportes
*/
@ManagedProperty(value = "#{reportController}")
private ReportController reportController;
/**
* Controlador que maneja armas
*/
@ManagedProperty(value = "#{armasController}")
private ArmasController armas;
private TarmArmas arma = new TarmArmas();
private String editarReg;
private String codigoSolicitud;
private boolean habilitaButtom;
private TarmCentroControl centroControl = new TarmCentroControl();
private List<TarmArmaPruebas> listadoArmasPruebas = new ArrayList<>();
private String observacion;
private String estado;
private Date fec_actual;
private String formato;
private String xpathflujo;
private TcustPersonDetail responsableCentroControl= null;
private TsafeUserDetail tsafeUserDetailUsuario = null;
private Boolean btnFlujo;
private List<TarmArmaPruebas> tarmArmaPruebasList;
/**
* lista del catalogo de las acciones (Aceptar o rechazar)
*/
private List<TgeneCatalogDetail> laccion;
private boolean deshabilitadoGenerarReporte=true;
private TarmSolicitud solicitud;
private TarmSolicitudTramite solicitudTramite;
private TarmTramite tramite;
private TcustPersonAddress direccionCliente;
private String provincia;
private String canton;
private String ciudad;
private String direccion;
private TgeneCatalogDetail estadotramite;
private TgeneCatalogDetail usoActividad;
private TcustPersonDetail personaDetalle;
private TgeneCatalogDetail identificacion;
private TgeneCatalogDetail detallecatalogoTipoTramite;
private TgeneCatalogDetail detallecatalogo;
private TgeneParameters fichasFaltantesParametro;
private Integer cPruebaInicio;
private Integer cPruebaFin;
/**
* Controlador que maneja los datos de generacion ultima vez del reporte
*/
@ManagedProperty(value = "#{parametersController}")
private ParametersController parametersController;
public FichasTecnicasFlatantesController() throws Exception {
super(TarmArmaPruebas.class);
}
@PostConstruct
private void postconstruct() {
try {
init();
} catch (Exception e) {
MessageHelper.setMessageError(e);
}
}
private void init() {
recperpage = 13000; // Cambiar al # reg a mirar.
lrecord = new ArrayList<>();
record=new TarmArmaPruebas();
beanalias = "INGRESOFICHASFALTANTES";
fichasFaltantesParametro =ParametersController.find("FICHASFALTANTES", "1");
cPruebaInicio = fichasFaltantesParametro.getNumbervalue().intValue();
cPruebaFin = 13187;
}
@Override
public void create() throws Exception {
super.create();
}
@SuppressWarnings("unchecked")
@Override
protected void querydatabase() {
try {
Request request = this.callerhelper.getRequest();
DtoQuery dto = super.getDtoQuery(true);
dto.setOrderby("t.pk");
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla.
request.setQueryTables(mtables);
Response resp = this.callerhelper.executeQuery(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
this.lrecord = new ArrayList<TarmArmaPruebas>();
MessageHelper.setMessageError(resp);
} else {
this.lrecord = (List<TarmArmaPruebas>) resp.get(this.beanalias);
super.postQuery(this.lrecord);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
@Override
public void save() {
try {
DtoSave dtosave = super.getDtoSave();
dtosave.setReturnpk(true); // Para que el core devuelva el pk de los registros nuevos.
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);
} else {
MessageHelper.setMessageError(resp);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
public void uploadImpronta(FileUploadEvent event) {
record.modifiedData().put("FileUploadImpronta", event.getFile());
}
public void uploadFoto(FileUploadEvent event) {
record.modifiedData().put("FileUploadFoto", event.getFile());
}
public void generarReportesFaltantes(){
try{
for(int i=cPruebaInicio;i<=cPruebaFin;i++){
this.record = IngresoFichaTecnicaArmasController.findByPk(String.valueOf(i));
// Comentar numeroArmasEnSolicitud(xxx) para volver a generar cualquier ficha de solicitud con una unica arma..
// Validamos solo para solicitudes que tienen path y cuya solicitud tiene mas de una arma
if(this.record!=null && numeroArmasEnSolicitud(record.getCsolicitud())>1 && (this.record.getXpathfichatecarmas()!=null || this.record.getXpathfotografia()!=null || this.record.getXpathimpronta()!=null)){
System.out.println("*****GENERACION DE FICHA TECNICA: "+i+" *****");
this.solicitud = SolicitudArmasController.findByCSolicitud(this.record.getCsolicitud());
this.codigoSolicitud = solicitud.getPk();
this.solicitudTramite=SolicitudTramiteController.findByCSolicitud(codigoSolicitud);
this.tramite=TarmTramiteController.find(solicitud.getCtramite()+"");
this.personaDetalle = PersonDetailController.find(String.valueOf(solicitud.getPersoncode()));
direccionCliente=PersonAddressController.find(String.valueOf(solicitud.getPersoncode())) ;
provincia = direccionCliente.modifiedData().get("provincia")==null?null: direccionCliente.modifiedData().get("provincia").toString(); //personAddressController.getLprovinces()==null || .getLprovinces().isEmpty()?null:personAddressController.getLprovinces().get(0);
canton = direccionCliente.modifiedData().get("canton")==null?null: direccionCliente.modifiedData().get("canton").toString();//personAddressController.getLcantones()==null || personAddressController.getLcantones().isEmpty()?null:personAddressController.getLcantones().get(0);
ciudad = direccionCliente.modifiedData().get("ciudad")==null?null: direccionCliente.modifiedData().get("ciudad").toString();//personAddressController.getLcities()==null || personAddressController.getLcities().isEmpty()?null:personAddressController.getLcities().get(0);
direccion= direccionCliente.getAddress();
estadotramite = (solicitudTramite.getEstadotramite()==null || solicitudTramite.getEstadotramitecodigo()==null)?null:CatalogDetailController.findxCodigoCodcatalogo(solicitudTramite.getEstadotramite(), solicitudTramite.getEstadotramitecodigo());
usoActividad = (tramite.getUsoactividad()==null || tramite.getUsoactividadcodigo()==null)?null:CatalogDetailController.findxCodigoCodcatalogo(tramite.getUsoactividad(), tramite.getUsoactividadcodigo());
identificacion = (personaDetalle.getIdentificationcatalog()==null || personaDetalle.getIdentificationcatalogcode()==null)?null:CatalogDetailController.findxCodigoCodcatalogo(personaDetalle.getIdentificationcatalog(), personaDetalle.getIdentificationcatalogcode());
detallecatalogoTipoTramite = (tramite.getTipoautorizacion()==null || tramite.getTipoautorizacioncodigo()==null)?null:CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipoautorizacion(), tramite.getTipoautorizacioncodigo());
detallecatalogo = (tramite.getCategoria()==null || tramite.getCategoriacodigo()==null)?null:CatalogDetailController.findxCodigoCodcatalogo(tramite.getCategoria(), tramite.getCategoriacodigo());
this.obtenerCentroControl();
this.obtenerResponsableCentroControl();
reporteFichaArmas(i);
}
}
} catch (Exception ex) {
MessageHelper.setMessageError(ex);
}
}
/**
* Metodo para extrer solo el nombre 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());
}
/**
* Retorna el xpath de la ruta en donde se va a almacenar el documento
* @param xpath ruta en donde se almacenar&aacute; el archivo
* @return
*/
private String obtenerXpath(String xpath) {
String rutaXpath = null;
int indice = xpath.lastIndexOf("/cm:");
rutaXpath = xpath.substring(0, indice);
return rutaXpath;
}
/**
* Retorna el xpath de la ruta en donde se va a almacenar el documento
* @param xpath ruta en donde se almacenar&aacute; el archivo
* @return
*/
private String obtenerXpathDesdeFotografia(String xpath) {
String rutaXpath = null;
int indice = xpath.lastIndexOf("/cm:fotografia/cm:");
rutaXpath = xpath.substring(0, indice);
return rutaXpath;
}
private String obtenerXpathDesdeImpronta(String xpath) {
String rutaXpath = null;
int indice = xpath.lastIndexOf("/cm:impronta/cm:");
rutaXpath = xpath.substring(0, indice);
return rutaXpath;
}
private Date obtenerFechaEmision(String xpath) {
String rutaXpath = null;
int indice = xpath.lastIndexOf("/cm:SOL-");
rutaXpath = xpath.substring(0, indice);
rutaXpath=rutaXpath.replace("cm:Solicitudes/cm:A-", "").replace("/cm:M", "").replace("/cm:D", "");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, Integer.valueOf(rutaXpath.substring(0, 4)));
cal.set(Calendar.MONTH, Integer.valueOf(rutaXpath.substring(5, 7)));
cal.set(Calendar.DAY_OF_MONTH, Integer.valueOf(rutaXpath.substring(8, 10)));
return cal.getTime();
}
/**
* @return
* @throws Exception
*/
public String codigoAceptado() throws Exception {
TgeneParameters f = ParametersController.find("ACEPTADO", "1");
return f.getTextvalue();
}
@Override
public void postCommit(Response response) throws Exception {
super.postCommitGeneric(response, beanalias);
}
/**
* Metodo que indica si se debe habilitar el boton del pantalla ficha tecnica
*/
public void habilitarBoton() {
this.habilitaButtom = true;
}
/**
* Metodo que indica si se debe habilitar el boton del pantalla ficha tecnica
*/
public void cerrar() {
if(record.modifiedData().get("GUARDA")!=null && record.modifiedData().get("GUARDA").equals("S") &&
record.modifiedData().get("IMPRIME")!=null && record.modifiedData().get("IMPRIME").equals("S") ){
}else{
MessageHelper.setMessageError("GUARDE Y GENERE EL REPORTE");
}
}
/**
* Ejecuta reporte de registro balistico
*
*/
public void reporteRegistroBalistico() {
try {
String gradoUsuario ="";
String path = "armas/reports/registroBalistico";
String filename=MsgControlArmas.getProperty("lbl_registroBalistico");
//Fija parametros del report.
HashMap<String, Object> parameters = new HashMap<>();
//Logos
parameters.put("pathLogoIzquierda", "repo:/maia/1/image/comandoconjunto");
parameters.put("pathLogoDerecha", "repo:/maia/1/image/selloarmas");
//Obteniendo la solicitud
TarmSolicitud solicitud=SolicitudController.findSolicitudxcodsolicitud(this.codigoSolicitud);
SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy");
//Codigo solicitud
parameters.put("csolicitud", this.codigoSolicitud);
//Fecha de solicitud
parameters.put("fechaSolicitud", sdf.format(solicitud.getFregistro()));
//Obteniendo los datos del tramite
TarmTramite tramite=TarmTramiteController.find(solicitud.getCtramite().toString());
TgeneCatalogDetail tipoTramite=CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipotramite(), tramite.getTipotramitecodigo());
TgeneCatalogDetail categoria=CatalogDetailController.findxCodigoCodcatalogo(tramite.getCategoria(), tramite.getCategoriacodigo());
TarmSolicitudTramite solicitudTramite=SolicitudTramiteController.findByCSolicitud(this.codigoSolicitud);
TgeneCatalogDetail tipoAutorizacion=CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipoautorizacion(), tramite.getTipoautorizacioncodigo());
TgeneCatalogDetail usoActividad=CatalogDetailController.findxCodigoCodcatalogo(tramite.getUsoactividad(), tramite.getUsoactividadcodigo());
//Tipo de tramite
if(tipoTramite!=null && tipoTramite.getDescription()!=null){
parameters.put("tipoTramite", tipoTramite.getDescription());
}else{
parameters.put("tipoTramite", " ");
}
//Categoria
if(categoria!=null && categoria.getDescription()!=null){
parameters.put("categoria", categoria.getDescription());
}else{
parameters.put("categoria", " ");
}
//No tramite
if(solicitudTramite!=null){
parameters.put("noTramite", solicitudTramite.getNumerotramite());
}else{
parameters.put("noTramite", " ");
}
//Tipo de autorizacion
if(tipoAutorizacion!=null && tipoAutorizacion.getDescription()!=null){
parameters.put("tipoAutorizacion", tipoAutorizacion.getDescription());
}else{
parameters.put("tipoAutorizacion", " ");
}
//Uso-actividad
if(usoActividad!=null && usoActividad.getDescription()!=null){
parameters.put("usoActividad", usoActividad.getDescription());
}else{
parameters.put("usoActividad", " ");
}
TgeneCatalogDetail grado = CatalogDetailController.findxCodigoCodcatalogo(this.responsableCentroControl.getMilitarygrade(), this.responsableCentroControl.getMilitarygradecode());
if(grado != null){
gradoUsuario = grado.getDescription()+" - "+this.responsableCentroControl.getName();
}else{
gradoUsuario = "Sin Grado - "+this.responsableCentroControl.getName();
}
TcustPersonDetail person = PersonDetailController.find(String.valueOf(solicitud.getPersoncode()));
//PersonDetailController.find(String.valueOf(solicitud.getPersoncode()));
//Fecha
parameters.put("fechaActual", sdf.format(this.fec_actual));
parameters.put("fecActualHora", new SimpleDateFormat("dd-MM-yyyy / hh:mm:ss").format(this.fec_actual));
parameters.put("personCode", person.getPk().getPersoncode());
parameters.put("centroControl", this.obtenerCentroControl());
parameters.put("gradoUsuario", gradoUsuario);
parameters.put("usuario", this.tsafeUserDetailUsuario.getNickname());
String format = this.formato;
try {
this.reportController.execute(path, parameters, format, filename, this.getLoginController());
btnFlujo=Boolean.TRUE;
} catch (Exception ex) {
MessageHelper.setMessageError(ex);
}
} catch (Exception ex) {
MessageHelper.setMessageError(ex);
}
}
/**
* Obtiene el centro de control segun usurio logeado.
* @throws Exception
*
*/
private String obtenerCentroControl() throws Exception {
this.tsafeUserDetailUsuario = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
PersonAddressController personAddressController = new PersonAddressController();
TcustPersonAddress tcustPersonAddres=personAddressController.findPrincipal(tsafeUserDetailUsuario.getPk().getPersoncode().toString());
if(tcustPersonAddres == null){
return null;
}
TarmCentroControlJur centroControlJur= TarmCentroControlJurController.findxProvincia(tcustPersonAddres.getProvincecode());
centroControl= CentroControlArmasController.findPorCodigo(centroControlJur.getCcentrocontrol());
return CatalogDetailController.findxCodigoCodcatalogo( centroControl.getNombreinstitucion(), centroControl.getNombreinstitucioncodigo()).getDescription();
}
/**
* Obtiene el responsable del Centro de Control
*/
public void obtenerResponsableCentroControl(){
Integer responsable = this.centroControl.getPersoncode();
this.responsableCentroControl = PersonDetailController.find(responsable.toString());
}
// public void saveImprimir() {
// try {
//// if(!record.modifiedData().get("GUARDA").equals("S")){
//// MessageHelper.setMessageError("GUARDE LA FICHA PARA GENERAR EL REPORTE");
//// return;
//// }
// reporteFichaArmas();
// record.setIsimpreso("Y");
// update();
// Request request = callerhelper.getRequest();
// HashMap<String, DtoSave> msave = new HashMap<String, DtoSave>();
// request.setSaveTables(msave);
// DtoSave dtosave = super.getDtoSave();
// dtosave.setReturnpk(true);
// msave.put(beanalias, dtosave);
// request.setSaveTables(msave);
// Response resp = callerhelper.executeSave(request);
// if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
// this.postCommit(resp);
// MessageHelper.setMessageInfo(resp);
// record.modifiedData().put("IMPRIME", "S");
// MessageHelper.setMessageInfo(resp);
// } else {
// record.modifiedData().put("IMPRIME", "N");
// MessageHelper.setMessageError(resp);
// }
// } catch (Throwable e) {
// record.modifiedData().put("IMPRIME", "N");
// MessageHelper.setMessageError(e);
// }
// }
/**
* Obtiene el reporte de Ficha de Armas
* @throws Exception
*/
public void reporteFichaArmas(int i) throws Exception {
String gradoUsuario ="";
String path = "armas/reports/fichaTecArmas";
TgeneParameters parametro=ParametersController.find("CODIGO.FICHANOLETAL", "1");
if(parametro!=null && parametro.getTextvalue()!=null && !parametro.getTextvalue().trim().isEmpty()){
String [] arrayCodTramite=parametro.getTextvalue().split(",");
List<String>listaCodTraite=Arrays.asList(arrayCodTramite);
for (String item : listaCodTraite) {
Long codigotramite=Long.parseLong(item);
if(solicitud.getCtramite().equals(codigotramite) ||
codigotramite.longValue()==solicitud.getCtramite().longValue()){
path = "armas/reports/fichaTecArmasNoLetales";
}
}
}
parametro=ParametersController.find("CODIGO.FICHACOLECCION", "1");
if(parametro!=null && parametro.getTextvalue()!=null && !parametro.getTextvalue().trim().isEmpty()){
String [] arrayCodTramite=parametro.getTextvalue().split(",");
List<String>listaCodTraite=Arrays.asList(arrayCodTramite);
for (String item : listaCodTraite) {
Long codigotramite=Long.parseLong(item);
if(solicitud.getCtramite().equals(codigotramite) ||
codigotramite.longValue()==solicitud.getCtramite().longValue()){
path = "armas/reports/fichaTecArmasColeccion";
}
}
}
String filename=MsgControlArmas.getProperty("lbl_fichaTecnicaArmas");
//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");
//Centro de control
parameters.put("centroControl", this.obtenerCentroControl());
//Fecha actual
SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy");
//Fecha de solicitud
if(solicitud!=null && solicitud.getFregistro()!=null){
parameters.put("fechaSolicitud", sdf.format(solicitud.getFregistro()));
}else{
parameters.put("fechaSolicitud", " ");
}
//No tramite
if(solicitudTramite!=null && solicitudTramite.getNumerotramite()!=null){
parameters.put("noTramite", solicitudTramite.getNumerotramite());
}else{
parameters.put("noTramite", " ");
}
//Tipo de tramites
if(detallecatalogoTipoTramite!=null && detallecatalogoTipoTramite.getDescription()!=null){
parameters.put("tipoTramite", detallecatalogoTipoTramite.getDescription());
}else{
parameters.put("tipoTramite", " ");
}
//Estado tramite
if(estadotramite!=null && estadotramite.getDescription()!=null){
parameters.put("estadoTramite", estadotramite.getDescription());
}else{
parameters.put("estadoTramite", " ");
}
//Uso actividad
if(usoActividad!=null && usoActividad.getDescription()!=null){
parameters.put("usoActividad",usoActividad.getDescription());
}else{
parameters.put("usoActividad", " ");
}
//Tipo de documento
if(identificacion!=null){
parameters.put("tipoDocumento", identificacion.getDescription());
}else{
parameters.put("tipoDocumento", " ");
}
//No documento
if(personaDetalle!=null){
parameters.put("cedula", personaDetalle.getIdentification());
}else{
parameters.put("cedula", " ");
}
//Nombre razon social
if(personaDetalle!=null){
parameters.put("nombreRazon", personaDetalle.getName());
}else{
parameters.put("nombreRazon", " ");
}
//Provincia
if(provincia !=null){
parameters.put("provincia", provincia);
}else{
parameters.put("provincia", " ");
}
//Canton
if(canton!=null){
parameters.put("canton", canton);
}else{
parameters.put("canton", " ");
}
//Ciudad
if(ciudad!=null){
parameters.put("ciudad", ciudad);
}else{
parameters.put("ciudad", " ");
}
//Direccion
if(direccion!=null){
parameters.put("direccion",direccion);
}else{
parameters.put("direccion", " ");
}
//Codigo de arma
parameters.put("codigoArma", this.record.getCarma());
//Codigo de registro de TarmArmaPrueba
parameters.put("cArmaPrueba", record.getPk().toString());
TarmArmas arma= ArmasController.findPorCodigo(this.record.getCarma());
TarmRegistroArmas regArma = RegistroArmController.findByCodigo(arma.getCregistro().toString());
TgeneCountry paisOrigen=CountryController.findcountry(regArma.getPaisorigen());
//Clase
if(arma.getModifiedData().get("clase")!=null){
parameters.put("clase", arma.getModifiedData().get("clase")==null?"":arma.getModifiedData().get("clase"));
}else{
parameters.put("clase", " ");
}
//Obtniendo el tipo arma explosivo
TarmTipoArmaExplosivo tae=arma==null?null:TiposArmasExplosivosController.findarma(arma.getCtipoarmaexplosivo());
//Tipo arma
TgeneCatalogDetail tipoArma=tae==null?null:CatalogDetailController.findxCodigoCodcatalogo(tae.getTipoarmaexplosivo(), "TIPOARMAEXPLOSIVO");
parameters.put("tipoArma", (tipoArma==null || tipoArma.getDescription().isEmpty())?"": tipoArma.getDescription());
//Serie
parameters.put("serie", (arma==null || arma.getLote()==null || arma.getLote().isEmpty())?"":arma.getLote());
//Pais fabricacion
parameters.put("paisFabricacion", (paisOrigen==null)?"":(paisOrigen.getDescription()));
//Calibre
parameters.put("calibre", (arma.getModifiedData().get("calibre")==null)?"":arma.getModifiedData().get("calibre"));
//Longitud
TgeneCatalogDetail longitud=(tae==null || tae.getLongitud()==null || tae.getLongitudcodigo()==null || tae.getLongitud().isEmpty() || tae.getLongitudcodigo().isEmpty())?null:CatalogDetailController.findxCodigoCodcatalogo(tae.getLongitud(),tae.getLongitudcodigo());
if(longitud!=null && longitud.getDescription()!=null){
parameters.put("longitud", longitud.getDescription());
}else{
parameters.put("longitud", " ");
}
//Marca
parameters.put("marca", arma.getModifiedData().get("marca"));
//Modelo
parameters.put("modelo", arma.getModelo());
//Color
parameters.put("color", arma.getModifiedData().get("color"));
//Observacion
parameters.put("observacion", this.record.getObservacion());
//Aptitud de disparo
String aptitudDisparo=" ";
if(this.record.getAptituddisparo()!=null){
if(this.record.getAptituddisparo().equalsIgnoreCase("Y")){
aptitudDisparo="BUENO";
}else{
aptitudDisparo="MALO";
}
}else{
aptitudDisparo="";
}
parameters.put("aptitudDisparo", aptitudDisparo);
//Balas testigo
String balasTestigo=" ";
if(this.record.getBalastestigo()!=null){
if(this.record.getBalastestigo().equalsIgnoreCase("Y")){
balasTestigo=MsgControlArmas.getProperty("lbl_si");
}else{
balasTestigo="NO";
}
}else{
balasTestigo="";
}
parameters.put("balasTestigo", balasTestigo);
//Vainas testigo
String vainasTestigo=" ";
if(this.record.getVainastestigo()!=null){
if(this.record.getVainastestigo().equalsIgnoreCase("Y")){
vainasTestigo=MsgControlArmas.getProperty("lbl_si");
}else{
vainasTestigo="NO";
}
}else{
vainasTestigo="";
}
parameters.put("vainasTestigo", vainasTestigo);
//Estado final
String estadoFinal=" ";
if(this.record.getApruebaevaluacion()!=null){
if(this.record.getApruebaevaluacion().equalsIgnoreCase("Y")){
estadoFinal="APROBADA";
}else{
estadoFinal="REPROBADA";
}
}else{
estadoFinal="";
}
parameters.put("estadoFinal", estadoFinal);
//Codigo de persona
parameters.put("personcode",record.getPersoncode());
//Codigo de arma
parameters.put("codArma", record.getCarma());
//codigo solicitud
parameters.put("csolicitud", this.codigoSolicitud);
//Grado del funcionario
TgeneCatalogDetail grado = CatalogDetailController.findxCodigoCodcatalogo(this.responsableCentroControl.getMilitarygrade(), this.responsableCentroControl.getMilitarygradecode());
if(grado != null){
gradoUsuario = grado.getDescription()+" - "+this.responsableCentroControl.getName();
}else{
gradoUsuario = "Sin Grado - "+this.responsableCentroControl.getName();
}
parameters.put("personcode",responsableCentroControl.getPk().getPersoncode());
parameters.put("gradoUsuario", gradoUsuario);
String format = "pdf";
// String nombreArchivo = soloNombreArchivo(armaPruebasObj.getXpathfichatecarmas());
// String pathArchivo = obtenerXpath(armaPruegetxbasObj.getXpathfichatecarmas());
if(this.record.getXpathfichatecarmas()!=null){
this.xpathflujo = obtenerXpath(this.record.getXpathfichatecarmas());
this.fec_actual = obtenerFechaEmision(this.record.getXpathfichatecarmas());
}else if(this.record.getXpathfotografia()!=null){
this.xpathflujo = obtenerXpathDesdeFotografia(this.record.getXpathfotografia());
this.fec_actual = obtenerFechaEmision(this.record.getXpathfotografia());
}else if(this.record.getXpathimpronta()!=null){
this.xpathflujo = obtenerXpathDesdeImpronta(this.record.getXpathimpronta());
this.fec_actual = obtenerFechaEmision(this.record.getXpathimpronta());
}
if(xpathflujo!=null){
parameters.put("fechaActual", sdf.format(this.fec_actual));
filename = filename + this.record.getPk().toString();
InputStream report=this.reportController.jaspertoInputstream(path, parameters, format, filename, this.getLoginController());
if(!this.alfrescoController.uploadFile(report, filename+".pdf", this.xpathflujo)){
throw new Exception("ERROR AL CARGAR EL REPORTE");
}
this.record.setXpathfichatecarmas(this.xpathflujo + "/cm:" + filename+".pdf");
update();
save();
fichasFaltantesParametro.setNumbervalue(new BigDecimal(i));
parametersController.update(fichasFaltantesParametro);
parametersController.save();
}
}
// /**
// * Metodo para encontrar por codigo de solicitud
// * @param codigoSolicitud
// * @return registro de armaPrueba encontrado
// */
// public List<TarmArmaPruebas> findPorSolicitud(String codigoSolicitud){
// try {
// FichasTecnicasFlatantesController cc = new FichasTecnicasFlatantesController();
// cc.init();
// cc.recperpage = 300;
// cc.addFilter("csolicitud", codigoSolicitud);
// cc.querydatabaseArma();
// if (cc.lrecord != null) {
// return cc.lrecord;
// }
// return null;
// } catch (Throwable e) {
// MessageHelper.setMessageError(e);
// return null;
// }
// }
// /**
// * Metodo para encontrar por codigo de solicitud
// * @param codigoSolicitud
// * @return registro de armaPrueba encontrado
// */
// public static List<TarmArmaPruebas> buscarFichasPorSolicitud(String codigoSolicitud){
// try {
// FichasTecnicasFlatantesController cc = new FichasTecnicasFlatantesController();
// cc.init();
// cc.recperpage = 300;
// cc.addFilter("csolicitud", codigoSolicitud);
// cc.querydatabaseArma();
// if (cc.lrecord != null) {
// return cc.lrecord;
// }
// return null;
// } catch (Throwable e) {
// MessageHelper.setMessageError(e);
// return null;
// }
// }
// public TarmArmaPruebas find(String codigoSolicitud, String carma){
// try {
// FichasTecnicasFlatantesController cc = new FichasTecnicasFlatantesController();
// cc.init();
// cc.recperpage = 300;
// cc.addFilter("carma", carma);
// cc.addFilter("csolicitud", codigoSolicitud);
// cc.querydatabaseArma();
// if (cc.lrecord != null && cc.lrecord.size()>0) {
// return cc.lrecord.get(0);
// }
// return null;
// } catch (Throwable e) {
// MessageHelper.setMessageError(e);
// return null;
// }
// }
//
public AlfrescoController getAlfrescoController() {
return alfrescoController;
}
public void setAlfrescoController(AlfrescoController alfrescoController) {
this.alfrescoController = alfrescoController;
}
public TarmArmas getArma() {
return arma;
}
public void setArma(TarmArmas arma) {
this.arma = arma;
}
public String getEditarReg() {
return editarReg;
}
public void setEditarReg(String editarReg) {
this.editarReg = editarReg;
}
public String getCodigoSolicitud() {
return codigoSolicitud;
}
public void setCodigoSolicitud(String codigoSolicitud) {
this.codigoSolicitud = codigoSolicitud;
}
public List<TarmArmaPruebas> getListadoArmasPruebas() {
return listadoArmasPruebas;
}
public void setListadoArmasPruebas(List<TarmArmaPruebas> listadoArmasPruebas) {
this.listadoArmasPruebas = listadoArmasPruebas;
}
// /**
// * metodo que registra el cambio de la seleccion del recuperador balisitico y segun esto aprueba la evaluacion
// */
// public void cambia(TarmArmaPruebas armaPruebas){
// record=null;
// record=armaPruebas;
// if("Y".equals(record.getAptituddisparo()) && "Y".equals(record.getVainastestigo()) && "Y".equals(record.getBalastestigo())){
// record.setApruebaevaluacion("Y");
// }
// else{
// record.setApruebaevaluacion("N");
// }
// habilitaButtom = true;
// armaPruebas.modifiedData().put("GUARDA", "N");
// armaPruebas.modifiedData().put("IMPRIME", "N");
// record.modifiedData().put("GUARDA", "N");
// record.modifiedData().put("IMPRIME", "N");
// }
//
public String getObservacion() {
return observacion;
}
public void setObservacion(String observacion) {
this.observacion = observacion;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public List<TgeneCatalogDetail> getLaccion() {
return laccion;
}
public void setLaccion(List<TgeneCatalogDetail> laccion) {
this.laccion = laccion;
}
public ReportController getReportController() {
return reportController;
}
public void setReportController(ReportController reportController) {
this.reportController = reportController;
}
public boolean isHabilitaButtom() {
return habilitaButtom;
}
public void setHabilitaButtom(boolean habilitaButtom) {
this.habilitaButtom = habilitaButtom;
}
public String getFormato() {
return formato;
}
public void setFormato(String formato) {
this.formato = formato;
}
public Date getFec_actual() {
return fec_actual;
}
public void setFec_actual(Date fec_actual) {
this.fec_actual = fec_actual;
}
public Boolean getBtnFlujo() {
return btnFlujo;
}
public void setBtnFlujo(Boolean btnFlujo) {
this.btnFlujo = btnFlujo;
}
public boolean isDeshabilitadoGenerarReporte() {
return deshabilitadoGenerarReporte;
}
public void setDeshabilitadoGenerarReporte(boolean deshabilitadoGenerarReporte) {
this.deshabilitadoGenerarReporte = deshabilitadoGenerarReporte;
}
public void changeApruebaEvaluacion(){
if(this.record.getAptituddisparo()!=null && ("Y".equalsIgnoreCase(this.record.getAptituddisparo())) &&
(this.record.getBalastestigo()!=null && "Y".equalsIgnoreCase(this.record.getBalastestigo())) &&
(this.record.getVainastestigo()!=null && "Y".equalsIgnoreCase(this.record.getVainastestigo()))){
this.record.setApruebaevaluacion("Y");
}
else{
this.record.setApruebaevaluacion("N");
}
}
/**
* Metodo para encontrar por codigo de solicitud
* @param codigoSolicitud
* @return registro de armaPrueba encontrado
*/
public Integer numeroArmasEnSolicitud(String codigoSolicitud){
try {
FichasTecnicasFlatantesController cc = new FichasTecnicasFlatantesController();
cc.init();
cc.recperpage = 300;
cc.addFilter("csolicitud", codigoSolicitud);
cc.querydatabase();
if (cc.lrecord != null) {
return cc.lrecord.size();
}
return 0;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return 0;
}
}
public TarmCentroControl getCentroControl() {
return centroControl;
}
public void setCentroControl(TarmCentroControl centroControl) {
this.centroControl = centroControl;
}
public String getXpathflujo() {
return xpathflujo;
}
public void setXpathflujo(String xpathflujo) {
this.xpathflujo = xpathflujo;
}
public TcustPersonDetail getResponsableCentroControl() {
return responsableCentroControl;
}
public void setResponsableCentroControl(
TcustPersonDetail responsableCentroControl) {
this.responsableCentroControl = responsableCentroControl;
}
public TsafeUserDetail getTsafeUserDetailUsuario() {
return tsafeUserDetailUsuario;
}
public void setTsafeUserDetailUsuario(TsafeUserDetail tsafeUserDetailUsuario) {
this.tsafeUserDetailUsuario = tsafeUserDetailUsuario;
}
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 TcustPersonAddress getDireccionCliente() {
return direccionCliente;
}
public void setDireccionCliente(TcustPersonAddress direccionCliente) {
this.direccionCliente = direccionCliente;
}
public String getProvincia() {
return provincia;
}
public void setProvincia(String provincia) {
this.provincia = provincia;
}
public String getCanton() {
return canton;
}
public void setCanton(String canton) {
this.canton = canton;
}
public String getCiudad() {
return ciudad;
}
public void setCiudad(String ciudad) {
this.ciudad = ciudad;
}
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public TgeneCatalogDetail getEstadotramite() {
return estadotramite;
}
public void setEstadotramite(TgeneCatalogDetail estadotramite) {
this.estadotramite = estadotramite;
}
public TgeneCatalogDetail getUsoActividad() {
return usoActividad;
}
public void setUsoActividad(TgeneCatalogDetail usoActividad) {
this.usoActividad = usoActividad;
}
public TcustPersonDetail getPersonaDetalle() {
return personaDetalle;
}
public void setPersonaDetalle(TcustPersonDetail personaDetalle) {
this.personaDetalle = personaDetalle;
}
public TgeneCatalogDetail getIdentificacion() {
return identificacion;
}
public void setIdentificacion(TgeneCatalogDetail identificacion) {
this.identificacion = identificacion;
}
public TgeneCatalogDetail getDetallecatalogoTipoTramite() {
return detallecatalogoTipoTramite;
}
public void setDetallecatalogoTipoTramite(
TgeneCatalogDetail detallecatalogoTipoTramite) {
this.detallecatalogoTipoTramite = detallecatalogoTipoTramite;
}
public TgeneCatalogDetail getDetallecatalogo() {
return detallecatalogo;
}
public void setDetallecatalogo(TgeneCatalogDetail detallecatalogo) {
this.detallecatalogo = detallecatalogo;
}
public List<TarmArmaPruebas> getTarmArmaPruebasList() {
return tarmArmaPruebasList;
}
public void setTarmArmaPruebasList(List<TarmArmaPruebas> tarmArmaPruebasList) {
this.tarmArmaPruebasList = tarmArmaPruebasList;
}
public ArmasController getArmas() {
return armas;
}
public void setArmas(ArmasController armas) {
this.armas = armas;
}
public Integer getcPruebaInicio() {
return cPruebaInicio;
}
public void setcPruebaInicio(Integer cPruebaInicio) {
this.cPruebaInicio = cPruebaInicio;
}
public Integer getcPruebaFin() {
return cPruebaFin;
}
public void setcPruebaFin(Integer cPruebaFin) {
this.cPruebaFin = cPruebaFin;
}
public TgeneParameters getFichasFaltantesParametro() {
return fichasFaltantesParametro;
}
public void setFichasFaltantesParametro(TgeneParameters fichasFaltantesParametro) {
this.fichasFaltantesParametro = fichasFaltantesParametro;
}
public ParametersController getParametersController() {
return parametersController;
}
public void setParametersController(ParametersController parametersController) {
this.parametersController = parametersController;
}
}