maia_modificado/.svn/pristine/4e/4e24fe620763cc3c9c7b061c061...

1120 lines
42 KiB
Plaintext
Executable File

package com.fp.frontend.controller.armas.solicitud;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
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 javax.faces.event.AjaxBehaviorEvent;
import javax.faces.model.SelectItem;
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.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.parametros.CentroControlArmasController;
import com.fp.frontend.controller.armas.parametros.TarmCentroControlJurController;
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.ParametersController;
import com.fp.frontend.helper.MessageHelper;
import com.fp.frontend.utility.MsgControlArmas;
import com.fp.frontend.utility.MsgGeneral;
import com.fp.persistence.parmas.param.TarmCentroControl;
import com.fp.persistence.parmas.param.TarmCentroControlJur;
import com.fp.persistence.parmas.soli.TarmDecomiso;
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
import com.fp.persistence.parmas.soli.TarmDecomisoArmaTransaccion;
import com.fp.persistence.parmas.soli.TarmTransaccionArmaBodega;
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.TgeneParameters;
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;
/**
* Clase controladora del bean TarmDecomisoArma.
*
* @author C.P.
* @version 2.1
*/
@SuppressWarnings("serial")
@ManagedBean
@ViewScoped
public class VerificacionBodegaController extends AbstractController<TarmDecomisoArma> {
/**
* prefijo para la generacion del numero de transaccion
*/
private static final String prefijo="REC";
@ManagedProperty(value = "#{decomisoArmaTransaccionController}")
private DecomisoArmaTransaccionController decomisoArmaTransaccionController;
@ManagedProperty(value = "#{transaccionArmaBodegaController}")
private TransaccionArmaBodegaController transaccionArmaBodegaController;
@ManagedProperty(value = "#{bodegaController}")
private BodegaController bodegaController;
@ManagedProperty(value = "#{decomisoController}")
private DecomisoController decomisoController;
/**
* Controlador para generar el reporte
*/
@ManagedProperty(value = "#{reportController}")
private ReportController reportController;
/**
* Controlador para caragar el archivo al alfresco
*/
@ManagedProperty(value="#{alfrescoController}")
private AlfrescoController alfrescoController;
private Boolean isCentroDpto = Boolean.FALSE;
/**
* ruta para cargar el archivo
*/
private String xpathflujo;
/**
* Atributo para la lista de objetos TgeneCatalogDetail
*/
// private List<TgeneCatalogDetail> linstitucion;
/**
* Atributo para la lista de objetos TgeneCatalogDetail
*/
// private List<TarmCentroControl> lnombreInstitucion;
/**
* Fecha de corte
*/
private Date fechaCorte;
/**
* Codigo del centro de control
*/
private String codigoOrganismoControl;
/**
* codigo de la unidad de control
*/
private String codigoUnidadControl;
/**
* numero de custodia del arma
*/
// private String numeroDecomiso;
private String numerotransaccionEnvio;
/**
* atributo con los datos del usuario logeado
*/
private TsafeUserDetail userDetail;
/**
* catalogo de tipos de reporte
*/
private List<TgeneCatalogDetail> lTipoReporte;
/**
* atributo para habilitar o desabilitar al boton
* guaradr
*/
private Boolean btnSave;
/**
* Deshabilita la pantalla despu&eacute;s de grabar la solicitud
*/
private boolean btnSelTodos;
/**
* Deshabilita la pantalla despu&eacute;s de grabar la solicitud
*/
private boolean cmbTransaccionenvio;
/**
* atributo para habilitar o desabilitar al boton
* genera acta
*/
private Boolean btnGenerarActa;
/**
* Atributo para el numero de transacion
* de recibido que se genera al pulsar el
* boton generar acta
*/
private String numRecepcionGenerado;
/**
* Atributo para el numero de transacion
* de recibido que se genera al pulsar el
* boton generar acta
*/
private String numRecepcionGeneradoAux;
/**
* clave primaria de la tabla TarmDecomisoArmaTransaccion
*/
private String numerotransaccionpk;
/**
* clave primaria de la tabla TarmDecomisoArmaTransaccion
*/
private String numerotransaccionpkAux;
/**
* fecha con la que se realizo el reporte
*/
private Date fechaCorteg;
/**
* formato del reporte PDF
*/
private String format;
/**
* Tipo de reporte PDF
*/
private String tipoReporte;
/**
* centro de control
*/
private TarmCentroControl centroControl;
/**
* nombre del centro de control
*/
private String institucionCentroControl;
/**
* nombre del centro de control
*/
private String instiCentroControlCode;
/**
* codigo del decomiso del catalogo ESTADOARMA
*/
private String codigoDecomiso;
/**
* codigo de la incautacion del catalogo ESTADOARMA
*/
private String codigoIncautacion;
/**
* codigo de entrega voluntaria del catalogo ESTADOARMA
*/
private String entregaVoluntaria;
/**
* codigo de abandono del catalogo ESTADOARMA
*/
private String abandono;
/**
* codigo del reclamo del catalogo ESTADOARMA
*/
private String codigoReclamo;
/**
* codigo de la provincia del usuario que se logeo
*/
private String cprovincia;
private Boolean itemsUnidadBolean;
//Manu
/**
* centro de control destino
*/
private String organismoControlDestino;
/**
* codigo de la unidad de control
*/
private String unidadControlDestino;
/**
* unidad de control destino
*/
private String codigoUnidadControlDestino;
private String centroControlOrigenStr;
private String unidadOrigenStr;
/**
* estado operacion del decomiso del catalogo ESTADOARMA
*/
private String estadoOperacion;
private List<SelectItem>itemUnidadDestino;
private List<TarmDecomisoArmaTransaccion> listaEnviosRealizados;
public VerificacionBodegaController() throws Exception {
super(TarmDecomisoArma.class);
}
@PostConstruct
private void postconstruct() {
this.init();
super.startQuery();
}
/**
* Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador.
*/
private void init() {
try {
recperpage = 100000; // Cambiar al # reg a mirar.
lrecord = new ArrayList<TarmDecomisoArma>();
beanalias = "DECOMARMTRANRECECCION";
//boton desabilitado
btnSave=Boolean.TRUE;
btnGenerarActa=Boolean.TRUE;
btnSelTodos = Boolean.TRUE;
cmbTransaccionenvio = Boolean.TRUE;
//fecha actual para el corte
fechaCorte=new Date();
//CARGA DE CATALOGOS
// linstitucion=CatalogDetailController.find("INSTITUCION");
lTipoReporte = CatalogDetailController.find("TIPOREPORTE");
//obtiene el centro de control
obtenerCentroControl();
format = "pdf";
numerotransaccionpk=null;
codigoDecomiso=codigos("CODIGO.DECOMISADA");//DEC
codigoIncautacion=codigos("CODIGO.INCAUTADA");//INC
entregaVoluntaria = codigos("CODIGO.ENTV");
abandono = codigos("CODIGO.ABAN");
codigoReclamo=codigos("CODIGO.RECL");//RECLAMO
xpathflujo=null;
itemsUnidadBolean=Boolean.FALSE;
estadoOperacion = "ENVIO";
TsafeUserDetail tsafeUserDetail=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
codigoUnidadControlDestino = tsafeUserDetail.getCcentrocontrol();
organismoControlDestino = tsafeUserDetail.getModifiedData().get("centrocontrol").toString();
unidadControlDestino = tsafeUserDetail.getModifiedData().get("unidad").toString();
//codigoOrganismoControl = tsafeUserDetail.getCcentrocontrol();
codigoUnidadControl = tsafeUserDetail.getCcentrocontrol();
listaEnviosRealizados = DecomisoArmaTransaccionController.findParaReception(codigoUnidadControl);
// System.out.println(listaDecomisoArmaTrans1.size());
} catch (Exception e) {
MessageHelper.setMessageError(e);
}
}
/**
* M&eacute;todo para obtener el centro de control
* @throws Exception
*/
private void obtenerCentroControl() throws Exception {
userDetail= (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
centroControl= CentroControlArmasController.findPorCodigo(userDetail.getCcentrocontrol());
cprovincia=centroControl.getProvincecode();
itemUnidadDestino= new ArrayList<SelectItem>();
institucionCentroControl = CatalogDetailController.findxCodigoCodcatalogo( centroControl.getNombreinstitucion(), centroControl.getNombreinstitucioncodigo()).getDescription();
//codigo del centro de control de pichincha
TgeneParameters paramCentroControlDestino=ParametersController.find("CODIGO.CENT.CONTROL.PICHINCHA", "1");//000030//CAPI
//validamos si la persona que ingreso pertenece al centro de control pichincha para darle al opcion de seleccionar el deparatmento de control para la recepcion
if(paramCentroControlDestino.getTextvalue().equals(centroControl.getNombreinstitucion())){
itemUnidadDestino.add(new SelectItem(centroControl.getPk(), institucionCentroControl));
//codigo del departamento de control
TgeneParameters paramDepartamentoControl=ParametersController.find("CODIGO.DEPT.CONTROL", "1");//DPCA
TarmCentroControl institCentroControlDestino= CentroControlArmasController.findPorCentroControl(paramDepartamentoControl.getTextvalue());//000077
itemUnidadDestino.add(new SelectItem(institCentroControlDestino.getPk(), ""+institCentroControlDestino.getModifiedData().get("desnombreinstitucion")));
}else{
instiCentroControlCode=centroControl.getPk();
}
}
/**
* Metodo para obtener los codigos
*/
private String codigos(String parametro){
TgeneParameters tgeneParameters= ParametersController.find(parametro, "1");
return tgeneParameters.getTextvalue();
}
/**
* Crea una instancia de TgeneTransactionProcess y marca el registro como nuevo.
*
* @throws Exception
*/
@Override
public void create() throws Exception {
super.create();
}
@SuppressWarnings("unchecked")
@Override
protected void querydatabase() {
try {
if(fechaCorte!=null){
DtoQuery dto = this.getDtoQuery();
dto.setOrderby("t.fdecomiso");
if(numerotransaccionpk!=null){
SimpleDateFormat formato= new SimpleDateFormat("yyyy-MM-dd");
Filter decomisoFiltro= new Filter();
decomisoFiltro.setSql("trunc(t.fdecomiso) <= " + "TO_DATE('" +
formato.format(fechaCorte)+ "','yyyy-MM-dd') and (t.estado='"+codigoDecomiso+"' or t.estado='"+codigoIncautacion+"' or t.estado='"+abandono+"' or t.estado='"+codigoReclamo+"') and t.cdecarmtranrecepcion = "+numerotransaccionpk);
dto.addFiltro(decomisoFiltro);
}else{//aniadimos los filtros de busqueda
dto = filtroVerificarArmas(dto);
numRecepcionGenerado=null;
//codigoOrganismoControlDestino = null;
//codigoUnidadControlDestino = null;
}
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
mtables.put(beanalias, dto);
Request request = callerhelper.getRequest();
request.setQueryTables(mtables);
Response resp = callerhelper.executeQuery(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
lrecord = new ArrayList<TarmDecomisoArma>();
btnSelTodos = Boolean.TRUE;
MessageHelper.setMessageError(resp);
} else {
lrecord = (List<TarmDecomisoArma>) resp.get(beanalias);
//metodo para completar la informacion
completarInformacionArma();
btnSave=Boolean.TRUE;
btnSelTodos = Boolean.FALSE;
btnGenerarActa=Boolean.TRUE;
numerotransaccionpk=null;
super.postQuery(lrecord);
}
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
/**
* Retorna un {@link DtoQuery} con los atributos a presentarse
* @return
* @throws Exception
*/
private DtoQuery getDtoQuery() throws Exception{
DtoQuery dto = super.getDtoQuery(true);
SubQuery subqueryNumRec= new SubQuery("TarmDecomiso","numerorecibo","nrecibo","i.pk=t.cdecomiso");
dto.addSubQuery(subqueryNumRec);
SubQuery subqueryNumTransac= new SubQuery("TarmDecomiso","numerotransaccion","numerotransaccion","i.pk=t.cdecomiso");
dto.addSubQuery(subqueryNumTransac);
SubQuery subqueryCentroControl= new SubQuery("TarmDecomiso","ccentrocontrol","ccentrocontrol","i.pk=t.cdecomiso");
dto.addSubQuery(subqueryCentroControl);
SubQuery subqueryMarca= new SubQuery("TgeneCatalogDetail","description","nmarca",
"i.pk.catalog=(select o.marca from TarmArmas o where o.pk=t.carma)"
+ " and i.pk.catalogcode=(select o.marcacodigo from TarmArmas o where o.pk=t.carma)");
dto.addSubQuery(subqueryMarca);
SubQuery subquerySerieArma= new SubQuery("TarmArmas","lote","nserie","i.pk=t.carma");
dto.addSubQuery(subquerySerieArma);
SubQuery subqueryCalibre= new SubQuery("TgeneCatalogDetail","description","ncalibre",
"i.pk.catalog =(select o.calibre from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))"
+ " and i.pk.catalogcode=(select o.calibrecodigo from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))");//calibrecodigo
dto.addSubQuery(subqueryCalibre);
SubQuery subqueryCodigoReg= new SubQuery("TarmArmas","cregistro","cregistro","i.pk=t.carma");
dto.addSubQuery(subqueryCodigoReg);
SubQuery subqueryCodigoArmaExplo= new SubQuery("TarmArmas","ctipoarmaexplosivo","ctipoarmaexplosivo","i.pk=t.carma");
dto.addSubQuery(subqueryCodigoArmaExplo);
//tipo, clase, unidad de TarmTipoArmaExplosivo
SubQuery subqueryTipo= new SubQuery("TgeneCatalogDetail","description","ntipo",
"i.pk.catalog =(select o.tipoarmaexplosivo from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))"
+ " and i.pk.catalogcode=(select o.tipoarmaexplosivocodigo from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))");
dto.addSubQuery(subqueryTipo);
SubQuery subqueryClase= new SubQuery("TgeneCatalogDetail","description","nclase",
"i.pk.catalog =(select o.clase from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))"
+ " and i.pk.catalogcode=(select o.clasecodigo from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))");
dto.addSubQuery(subqueryClase);
SubQuery subqueryUnidad= new SubQuery("TgeneCatalogDetail","description","nunidad",
"i.pk.catalog =(select o.unidadmedidapeso from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))"
+ " and i.pk.catalogcode=(select o.unidadmedidapesocodigo from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))");
dto.addSubQuery(subqueryUnidad);
//personcode
//TarmRegistroArmas registroArma = RegistroArmController.findByCodigo(decomisoArma.getModifiedData().get("cregistro").toString());
SubQuery subqueryPersonCode= new SubQuery("TarmRegistroArmas","personcode","personcode", " i.pk =(select o.cregistro from TarmArmas o where o.pk=t.carma)");
dto.addSubQuery(subqueryPersonCode);
SubQuery subquerEstadoFlujo= new SubQuery("TarmDecomisoArmaTransaccion","estadoflujo","estadoflujo","i.pk=t.cdecomisoarmatransaccion");
dto.addSubQuery(subquerEstadoFlujo);
return dto;
}
@Override
public void save() {
try {
Boolean seleccion = Boolean.FALSE;
for(TarmDecomisoArma decomisoArma:this.lrecord){
record = decomisoArma;
if(record.getModifiedData().get("seleccion").equals(Boolean.TRUE)){
seleccion = true;
record.setCdecarmtranrecepcion(0l);
record.setCoperaciontransaccion("RECEPCION");
}
this.update();
}
if(!seleccion){
MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_verificararmas"));
return;
}
Request request = callerhelper.getRequest();
HashMap<String, DtoSave> msave = new HashMap<String, DtoSave>();
Calendar cal=Calendar.getInstance();
cal.setTime(fechaCorte);
java.sql.Date fechaCorteRegistro=new java.sql.Date(cal.getTimeInMillis());
this.decomisoArmaTransaccionController.create();
this.decomisoArmaTransaccionController.getRecord().setFtransaccion(null);
this.decomisoArmaTransaccionController.getRecord().setFcorte(fechaCorteRegistro);
this.decomisoArmaTransaccionController.getRecord().setCcentrocontrol(codigoUnidadControlDestino);//de la persona que revcibe//centroControl.getPk() codigoUnidadControlDestino
TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
TarmCentroControl centroControlLogin= CentroControlArmasController.findPorCodigo(tsafeUserDetail.getCcentrocontrol());
if(!"1".equals(CatalogDetailController.findxCodigoCodcatalogo(centroControlLogin.getInstitucion(), centroControlLogin.getInstituciontipo()).getPk().getCatalog())){
this.decomisoArmaTransaccionController.getRecord().setEstadofirma("Y");
this.decomisoArmaTransaccionController.getRecord().setEstadoflujo("ENV");
isCentroDpto = Boolean.FALSE;
}else{
this.decomisoArmaTransaccionController.getRecord().setEstadofirma("N");
this.decomisoArmaTransaccionController.getRecord().setEstadoflujo("NOENV");
isCentroDpto = Boolean.TRUE;
}
this.decomisoArmaTransaccionController.update();
DtoSave dtosaveDecomisoTran = this.decomisoArmaTransaccionController.getDtoSave(true);
dtosaveDecomisoTran.setReturnpk(true);
dtosaveDecomisoTran.setPosition(1);
msave.put(decomisoArmaTransaccionController.getBeanalias(), dtosaveDecomisoTran);
DtoSave dtosaveDecomiso = this.getDtoSave(true);
dtosaveDecomiso.setReturnpk(true);
dtosaveDecomiso.setPosition(2);
msave.put(getBeanalias(), dtosaveDecomiso);
//transacciones del arma
DtoSave dtosaveArmaBodega = transaccionArmaBodegaController.getDtoSave(true);
dtosaveArmaBodega.setReturnpk(true);
dtosaveArmaBodega.setPosition(3);
msave.put(transaccionArmaBodegaController.getBeanalias(), dtosaveArmaBodega);
//bodega del arma
DtoSave dtosaveBodega = bodegaController.getDtoSave(true);
dtosaveBodega.setReturnpk(true);
dtosaveBodega.setPosition(4);
msave.put(bodegaController.getBeanalias(), dtosaveBodega);
//para la actualizacion del centro de control destino
DtoSave dtosaveDecomisoCab = decomisoController.getDtoSave(true);
dtosaveDecomisoCab.setPosition(5);
msave.put(decomisoController.getBeanalias(), dtosaveDecomisoCab);
request.setSaveTables(msave);
//prefijo
request.put("prefijo", prefijo);
// para el flujo
request.modifiedData().put("isnew", "N");//para que ejecute desde un boton
//completa la informacion en un transaction rule DecomisoArmaRecepcion
Response resp = callerhelper.executeSave(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
this.decomisoArmaTransaccionController.postCommit(resp);
this.postCommit(resp);
TarmDecomisoArmaTransaccion decomisoArmaTransaccion=(TarmDecomisoArmaTransaccion)dtosaveDecomisoTran.getLinsert().get(0);
numerotransaccionpk=decomisoArmaTransaccion.getPk().toString();
numerotransaccionpkAux=decomisoArmaTransaccion.getPk().toString();
//numereo de transaccion
numRecepcionGenerado=resp.get("numerotransaccionrecep").toString();
numRecepcionGeneradoAux=resp.get("numerotransaccionrecep").toString();
fechaCorteg=decomisoArmaTransaccion.getFcorte();
//metodo para generar el acta
querydatabase();
btnSave=Boolean.TRUE;
btnSelTodos = Boolean.TRUE;
cmbTransaccionenvio = Boolean.FALSE;
btnGenerarActa=Boolean.FALSE;
// numerotransaccionEnvio = "";
MessageHelper.setMessageInfo(resp);
} else {
MessageHelper.setMessageError(resp);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
@Override
public void postCommit(Response response) throws Exception {
super.postCommitGeneric(response, beanalias);
}
/**
* M&eacute;todo para el evento change del combo transaccion
*/
public void executeTransaccion() {
List<TarmDecomisoArmaTransaccion> decomisoArmaTransaccionOrigen = DecomisoArmaTransaccionController.findPorEnvio(numerotransaccionEnvio, true);
if(decomisoArmaTransaccionOrigen != null && !decomisoArmaTransaccionOrigen.isEmpty()){
// codigoUnidadControlDestino = decomisoArmaTransaccionOrigen.get(0).getCcentrocontrol();
TarmCentroControl centroControlOrigen = CentroControlArmasController.findPorCodigo(decomisoArmaTransaccionOrigen.get(0).getCcentrocontrol());
centroControlOrigenStr = CatalogDetailController.findxCodigoCodcatalogo( centroControlOrigen.getInstitucion(), centroControlOrigen.getInstituciontipo()).getDescription();
unidadOrigenStr = CatalogDetailController.findxCodigoCodcatalogo( centroControlOrigen.getNombreinstitucion(), centroControlOrigen.getNombreinstitucioncodigo()).getDescription();
}
}
/**
* Completa las caracteristicas del arma de los catalogos correspondientes
*/
public void completarInformacionArma(){
List<TarmDecomisoArma>armasNoenviadas=new ArrayList<TarmDecomisoArma>();
for(TarmDecomisoArma decomisoArma:lrecord){
decomisoArma.getModifiedData().put("seleccion",false);
//TarmRegistroArmas registroArma = RegistroArmController.findByCodigo(decomisoArma.getModifiedData().get("cregistro").toString());
if(decomisoArma.getModifiedData().get("personcode")!=null){
TcustPersonDetail tcustPersonDetail=PersonDetailController.find(decomisoArma.getModifiedData().get("personcode").toString());
decomisoArma.getModifiedData().put("nrazons", tcustPersonDetail.getName());
decomisoArma.getModifiedData().put("documento", tcustPersonDetail.getIdentification());
}
if(decomisoArma.getModifiedData().get("estadoflujo")!=null && decomisoArma.getModifiedData().get("estadoflujo").equals("NOENV") ){
armasNoenviadas.add(decomisoArma);
}
}
for(TarmDecomisoArma decomisoArma:armasNoenviadas){
lrecord.remove(decomisoArma);
}
}
/**
* M&eacute;todo para habilitar o desabilitar el btn
* Arma a decomisar
* @throws Exception
*/
public void onChange(TarmDecomisoArma decomisoArma ) throws Exception {
btnSave=Boolean.TRUE;
itemsUnidadBolean=Boolean.FALSE;
for(TarmDecomisoArma t:lrecord){
if(t.getModifiedData().get("seleccion").equals(Boolean.TRUE)){
btnSave=Boolean.FALSE;
itemsUnidadBolean=Boolean.TRUE;
}
}
}
/**
* Metodo para filtrar por Unidad de Control
* @param dto Dto sobre el que se va a ejecutar el filtro
* @throws Exception
*/
private DtoQuery filtroVerificarArmas(DtoQuery dto) throws Exception{
Filter decomisoFiltro= new Filter();
List<TarmDecomisoArmaTransaccion> listaDecomisoArmaTrans = new ArrayList<>();
if(numerotransaccionEnvio != null && !"".equals(numerotransaccionEnvio)){
listaDecomisoArmaTrans = DecomisoArmaTransaccionController.findPorEnvio(numerotransaccionEnvio,true);
}else{
listaDecomisoArmaTrans = DecomisoArmaTransaccionController.findPorOrganismoUnidad(codigoUnidadControl, fechaCorte, estadoOperacion);
}
String filtroDecomisoArmaTrans="";
if(listaDecomisoArmaTrans != null && !listaDecomisoArmaTrans.isEmpty()){
StringBuffer lstBuffer = new StringBuffer();
for(TarmDecomisoArmaTransaccion decomisoArmaTrans : listaDecomisoArmaTrans){
if(!lstBuffer.toString().isEmpty()){
lstBuffer.append(" or ");
}
lstBuffer.append("t.cdecomisoarmatransaccion = " + decomisoArmaTrans.getPk());
}
filtroDecomisoArmaTrans = (!lstBuffer.toString().trim().isEmpty())?" and (" + lstBuffer.toString() + ")":"";
}else{
filtroDecomisoArmaTrans = "and (t.cdecomisoarmatransaccion = 999999)";
}
decomisoFiltro.setSql("(t.estado='"+codigoDecomiso+"' or t.estado='"+codigoIncautacion+"' or t.estado='"+entregaVoluntaria+"' or t.estado='"+abandono+"' or t.estado='"+codigoReclamo+"') and t.cdecomiso is not null and t.coperaciontransaccion = '" + estadoOperacion + "' and t.enbodega='Y'" + filtroDecomisoArmaTrans);
dto.addFiltro(decomisoFiltro);
return dto;
}
/**
* 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;
}
btnSave=Boolean.TRUE;
for (TarmDecomisoArma decomisoArma : lrecord) {
decomisoArma.getModifiedData().put("seleccion", valorColocar);
if(decomisoArma.getModifiedData().get("seleccion").equals(Boolean.TRUE)){
btnSave=Boolean.FALSE;
//itemsUnidadBolean=Boolean.TRUE;
}
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
/**
* Metodo para generar el acta de recepcion
* y cargar el archivo en el alfresco
*/
public void generarActa() {
if (fechaCorteg != null) {
Calendar fechaActualCldr = Calendar.getInstance();
String codigoreporte = numerotransaccionpkAux;
String path = "armas/reports/repo2";
String filename = numRecepcionGenerado;
String gradoUsuario = "";
TcustPersonDetail usuario = PersonDetailController.find(this.userDetail.getPk().getPersoncode().toString());
TgeneCatalogDetail grado = CatalogDetailController.findxCodigoCodcatalogo(usuario.getMilitarygrade(), usuario.getMilitarygradecode());
if(grado != null){
gradoUsuario = grado.getDescription()+" - "+usuario.getName();
}else{
gradoUsuario = "Sin Grado - "+usuario.getName();
}
// 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");
try {
// Usuario logueado en la aplicacion
String nombreUsuario;
if (userDetail.getPk().getPersoncode() != null) {
nombreUsuario = PersonDetailController.find(userDetail.getPk().getPersoncode().toString()).getName();
} else {
nombreUsuario = "";
}
// TarmCentroControl centroControlDestino = CentroControlArmasController.findPorCodigo(codigoUnidadControlDestino);
// String centroControlDestinoStr = CatalogDetailController.findxCodigoCodcatalogo( centroControlDestino.getInstitucion(), centroControlDestino.getInstituciontipo()).getDescription();
// String unidadControlDestinoStr = CatalogDetailController.findxCodigoCodcatalogo( centroControlDestino.getNombreinstitucion(), centroControlDestino.getNombreinstitucioncodigo()).getDescription();
parameters.put("user", nombreUsuario);
parameters.put("organismoControlOrigen", centroControlOrigenStr);
parameters.put("unidadControlOrigen", unidadOrigenStr);
parameters.put("organismoControlDestino", organismoControlDestino);
parameters.put("unidadControlDestino", unidadControlDestino);
parameters.put("codigodec", codigoreporte.toString());//este
parameters.put("fechaCorte", new SimpleDateFormat("dd-MM-yyyy").format(fechaCorteg));//este
parameters.put("numtransaccion", numRecepcionGeneradoAux);
parameters.put("personcode", userDetail.getPk().getPersoncode());
parameters.put("nombregrado", gradoUsuario);//este
// Fecha actual
StringBuilder fechaActualSB = new StringBuilder();
fechaActualSB = fechaActualSB.append((fechaActualCldr.get(Calendar.DAY_OF_MONTH)) <= 9 ? "0"+ (fechaActualCldr.get(Calendar.DAY_OF_MONTH)): (fechaActualCldr.get(Calendar.DAY_OF_MONTH)));
fechaActualSB = fechaActualSB.append("-").append((fechaActualCldr.get(Calendar.MONTH) + 1) <= 9 ? "0"+ (fechaActualCldr.get(Calendar.MONTH) + 1): (fechaActualCldr.get(Calendar.MONTH) + 1));
fechaActualSB = fechaActualSB.append("-").append(fechaActualCldr.get(Calendar.YEAR));
fechaActualSB = fechaActualSB.append(" ").append(fechaActualCldr.get(Calendar.HOUR_OF_DAY));
fechaActualSB = fechaActualSB.append(":").append((fechaActualCldr.get(Calendar.MINUTE)) <= 9 ? "0"+ (fechaActualCldr.get(Calendar.MINUTE)): (fechaActualCldr.get(Calendar.MINUTE)));
parameters.put("lugarFecha", fechaActualSB.toString());
TgeneCatalogDetail orgControl = CatalogDetailController.findCatalogo("NOMBREINSTITUCION", this.codigoUnidadControl);
if(orgControl != null){
parameters.put("orgControl", orgControl.getDescription());
}else {
parameters.put("orgControl", "");
}
format = "pdf";
InputStream file = this.reportController.jaspertoInputstream(path, parameters, format, filename,this.getLoginController());
xpathflujo = generarXpath();
if(!alfrescoController.uploadFile(file, numRecepcionGeneradoAux+ ".pdf", xpathflujo)){
xpathflujo=null;
}
System.out.println(xpathflujo+"/cm:"+numRecepcionGeneradoAux+ ".pdf");
numerotransaccionEnvio = "";
//="cm:Decomiso/cm:A-2016/cm:M-01/cm:CENTRO CONTROL/cm:ABANDONO/cm:REC/cm:REC-000000319.pdf"
} catch (Exception ex) {
MessageHelper.setMessageError(ex);
}
}
}
/**
* Metodo para generar la ruta donde se carga el archivo
* @return
*/
public String generarXpath(){
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
StringBuilder ruta=new StringBuilder("cm:Decomiso");
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));
String centrocontrol=unidadControlDestino.replaceAll("\\s+", "_");
ruta = ruta.append("/cm:").append(centrocontrol);
ruta = ruta.append("/cm:"+"REC");
return ruta.toString();
}
/**
* Validacion de las fechas que no se amayor a la actual
* @param fech
*/
public void validarfecha(Date fech){
if(fech.getTime()>(new Date()).getTime()){
fech=new Date();
fechaCorte=new java.sql.Date(new Date().getTime());
MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_fechadecomisonopuedesermayoralaactual"));
}
}
/**
* Ejecuta un reporte de armas a destruir
* M&eacute;todo para el inicio de flujo
*/
public void iniciarFlujo() {
try {
if(xpathflujo==null){
MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_generereporte"));
return;
}
if(cprovincia==null || cprovincia.length()==0){
MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_sinprovincia"));
return;
}
//instiCentroControlCode
TarmCentroControl centroControl= CentroControlArmasController.findPorCodigo(instiCentroControlCode);
if(centroControl==null || centroControl.getPk()==null){
MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_sinprovincia"));
return;
}
TgeneParameters paramDepartamentoControl=ParametersController.find("CODIGO.DEPT.CONTROL", "1");//DPCA
if(centroControl.getNombreinstitucion().equals(paramDepartamentoControl.getTextvalue())){
cprovincia=paramDepartamentoControl.getTextvalue();
}
//itemUnidadDestino
String xpath=xpathflujo+"/cm:"+numRecepcionGeneradoAux+ ".pdf";
Request request = callerhelper.getRequest();
super.cleanRequest(request);
//codigo de la tabla TarmDecomisoArmaTransaccion
request.modifiedData().put("numerotransaccion", numerotransaccionpkAux);
request.modifiedData().put("cprovincia", cprovincia);
request.modifiedData().put("numerosolicitud", numRecepcionGeneradoAux);
//ruta del archivo para la firma
//TODO Falta crear la variable en maia 2-8
request.modifiedData().put("xpath", xpath);
request.modifiedData().put("isnew", "Y");
request.setLogsolicitude(numRecepcionGeneradoAux);
Response resp = callerhelper.executeSave(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
this.setShowRow(true);
MessageHelper.setMessageInfo(resp, MsgGeneral.getProperty("msg_initFlow") + " TRANSACCION: "+ numerotransaccionpkAux);
xpathflujo=null;
btnGenerarActa=Boolean.TRUE;
btnSelTodos = Boolean.TRUE;
cmbTransaccionenvio = Boolean.FALSE;
btnSave = Boolean.TRUE;
} else {
MessageHelper.setMessageError(resp);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
public void executeUnidad() {
for(SelectItem item: itemUnidadDestino){
if(item.getValue().equals(instiCentroControlCode)){
institucionCentroControl=item.getLabel();
}
}
}
public List<TgeneCatalogDetail> getlTipoReporte() {
return lTipoReporte;
}
public void setlTipoReporte(List<TgeneCatalogDetail> lTipoReporte) {
this.lTipoReporte = lTipoReporte;
}
public Date getFechaCorte() {
return fechaCorte;
}
public void setFechaCorte(Date fechaCorte) {
this.fechaCorte = fechaCorte;
}
public String getFormat() {
return format;
}
public void setFormat(String format) {
this.format = format;
}
public ReportController getReportController() {
return reportController;
}
public void setReportController(ReportController reportController) {
this.reportController = reportController;
}
public String getTipoReporte() {
return tipoReporte;
}
public void setTipoReporte(String tipoReporte) {
this.tipoReporte = tipoReporte;
}
public TsafeUserDetail getUserDetail() {
return userDetail;
}
public void setUserDetail(TsafeUserDetail userDetail) {
this.userDetail = userDetail;
}
public TarmCentroControl getCentroControl() {
return centroControl;
}
public void setCentroControl(TarmCentroControl centroControl) {
this.centroControl = centroControl;
}
/**
* @return the listaEnviosRealizados
*/
public List<TarmDecomisoArmaTransaccion> getListaEnviosRealizados() {
return listaEnviosRealizados;
}
/**
* @param listaEnviosRealizados the listaEnviosRealizados to set
*/
public void setListaEnviosRealizados(
List<TarmDecomisoArmaTransaccion> listaEnviosRealizados) {
this.listaEnviosRealizados = listaEnviosRealizados;
}
public String getCodigoOrganismoControl() {
return codigoOrganismoControl;
}
public void setCodigoOrganismoControl(String codigoOrganismoControl) {
this.codigoOrganismoControl = codigoOrganismoControl;
}
public String getCodigoUnidadControl() {
return codigoUnidadControl;
}
public void setCodigoUnidadControl(String codigoUnidadControl) {
this.codigoUnidadControl = codigoUnidadControl;
}
public Boolean getBtnSave() {
return btnSave;
}
public void setBtnSave(Boolean btnSave) {
this.btnSave = btnSave;
}
public String getNumRecepcionGenerado() {
return numRecepcionGenerado;
}
public void setNumRecepcionGenerado(String numRecepcionGenerado) {
this.numRecepcionGenerado = numRecepcionGenerado;
}
public DecomisoArmaTransaccionController getDecomisoArmaTransaccionController() {
return decomisoArmaTransaccionController;
}
public void setDecomisoArmaTransaccionController(
DecomisoArmaTransaccionController decomisoArmaTransaccionController) {
this.decomisoArmaTransaccionController = decomisoArmaTransaccionController;
}
public String getNumerotransaccionEnvio() {
return numerotransaccionEnvio;
}
public void setNumerotransaccionEnvio(String numerotransaccionEnvio) {
this.numerotransaccionEnvio = numerotransaccionEnvio;
}
public AlfrescoController getAlfrescoController() {
return alfrescoController;
}
public void setAlfrescoController(AlfrescoController alfrescoController) {
this.alfrescoController = alfrescoController;
}
public String getXpathflujo() {
return xpathflujo;
}
public void setXpathflujo(String xpathflujo) {
this.xpathflujo = xpathflujo;
}
public String getNumerotransaccionpk() {
return numerotransaccionpk;
}
public void setNumerotransaccionpk(String numerotransaccionpk) {
this.numerotransaccionpk = numerotransaccionpk;
}
public Boolean getBtnGenerarActa() {
return btnGenerarActa;
}
public void setBtnGenerarActa(Boolean btnGenerarActa) {
this.btnGenerarActa = btnGenerarActa;
}
public TransaccionArmaBodegaController getTransaccionArmaBodegaController() {
return transaccionArmaBodegaController;
}
public void setTransaccionArmaBodegaController(
TransaccionArmaBodegaController transaccionArmaBodegaController) {
this.transaccionArmaBodegaController = transaccionArmaBodegaController;
}
public BodegaController getBodegaController() {
return bodegaController;
}
public void setBodegaController(BodegaController bodegaController) {
this.bodegaController = bodegaController;
}
public String getInstiCentroControlCode() {
return instiCentroControlCode;
}
public void setInstiCentroControlCode(String instiCentroControlCode) {
this.instiCentroControlCode = instiCentroControlCode;
}
public String getInstitucionCentroControl() {
return institucionCentroControl;
}
public void setInstitucionCentroControl(String institucionCentroControl) {
this.institucionCentroControl = institucionCentroControl;
}
public List<SelectItem> getItemUnidadDestino() {
return itemUnidadDestino;
}
public void setItemUnidadDestino(List<SelectItem> itemUnidadDestino) {
this.itemUnidadDestino = itemUnidadDestino;
}
public Boolean getItemsUnidadBolean() {
return itemsUnidadBolean;
}
public void setItemsUnidadBolean(Boolean itemsUnidadBolean) {
this.itemsUnidadBolean = itemsUnidadBolean;
}
public DecomisoController getDecomisoController() {
return decomisoController;
}
public void setDecomisoController(DecomisoController decomisoController) {
this.decomisoController = decomisoController;
}
/**
* @return the organismoControlDestino
*/
public String getOrganismoControlDestino() {
return organismoControlDestino;
}
/**
* @param organismoControlDestino the organismoControlDestino to set
*/
public void setOrganismoControlDestino(String organismoControlDestino) {
this.organismoControlDestino = organismoControlDestino;
}
/**
* @return the unidadControlDestino
*/
public String getUnidadControlDestino() {
return unidadControlDestino;
}
/**
* @param unidadControlDestino the unidadControlDestino to set
*/
public void setUnidadControlDestino(String unidadControlDestino) {
this.unidadControlDestino = unidadControlDestino;
}
public String getCodigoUnidadControlDestino() {
return codigoUnidadControlDestino;
}
public void setCodigoUnidadControlDestino(String codigoUnidadControlDestino) {
this.codigoUnidadControlDestino = codigoUnidadControlDestino;
}
public String getCentroControlOrigenStr() {
return centroControlOrigenStr;
}
public void setCentroControlOrigenStr(String centroControlOrigenStr) {
this.centroControlOrigenStr = centroControlOrigenStr;
}
public String getUnidadOrigenStr() {
return unidadOrigenStr;
}
public void setUnidadOrigenStr(String unidadOrigenStr) {
this.unidadOrigenStr = unidadOrigenStr;
}
public Boolean getIsCentroDpto() {
return isCentroDpto;
}
public void setIsCentroDpto(Boolean isCentroDpto) {
this.isCentroDpto = isCentroDpto;
}
public boolean isBtnSelTodos() {
return btnSelTodos;
}
public void setBtnSelTodos(boolean btnSelTodos) {
this.btnSelTodos = btnSelTodos;
}
public boolean isCmbTransaccionenvio() {
return cmbTransaccionenvio;
}
public void setCmbTransaccionenvio(boolean cmbTransaccionenvio) {
this.cmbTransaccionenvio = cmbTransaccionenvio;
}
}