883 lines
33 KiB
Plaintext
Executable File
883 lines
33 KiB
Plaintext
Executable File
package com.fp.frontend.controller.armas.solicitud;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import javax.annotation.PostConstruct;
|
|
import javax.faces.bean.ManagedBean;
|
|
import javax.faces.bean.ManagedProperty;
|
|
import javax.faces.bean.ViewScoped;
|
|
import javax.faces.context.FacesContext;
|
|
|
|
import org.primefaces.context.RequestContext;
|
|
|
|
import com.fp.dto.Request;
|
|
import com.fp.dto.Response;
|
|
import com.fp.dto.save.DtoSave;
|
|
import com.fp.frontend.controller.AbstractController;
|
|
import com.fp.frontend.controller.ReportController;
|
|
import com.fp.frontend.controller.alfresco.AlfrescoController;
|
|
import com.fp.frontend.controller.armas.funcionalidad.CargaController;
|
|
import com.fp.frontend.controller.armas.parametros.CentroControlArmasController;
|
|
import com.fp.frontend.controller.armas.parametros.IngresoDatosTipoTramite;
|
|
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.date.TgeneNotAccountingDayController;
|
|
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.ConvertNumberToText;
|
|
import com.fp.frontend.utility.MsgControlArmas;
|
|
import com.fp.frontend.utility.MsgGeneral;
|
|
import com.fp.persistence.parmas.fun.TarmCarga;
|
|
import com.fp.persistence.parmas.param.TarmCentroControl;
|
|
import com.fp.persistence.parmas.param.TarmCentroControlJur;
|
|
import com.fp.persistence.parmas.param.TarmTramite;
|
|
import com.fp.persistence.parmas.soli.TarmAgenciaArma;
|
|
import com.fp.persistence.parmas.soli.TarmSolicitud;
|
|
import com.fp.persistence.parmas.soli.TarmSolicitudAgenciaSucursal;
|
|
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.TgeneParameters;
|
|
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;
|
|
|
|
/**
|
|
* Clase controladora para la validacion del deposito
|
|
*
|
|
* @author CHRISTIAN PAZMINO
|
|
* @version 2.1
|
|
*/
|
|
@SuppressWarnings("serial")
|
|
@ManagedBean
|
|
@ViewScoped
|
|
public class ValidarDepositoController extends AbstractController<TarmSolicitudTramite> {
|
|
/**
|
|
* Codigo de solicitud
|
|
*/
|
|
private String csolicitud;
|
|
/**
|
|
* Variable del tipo TgeneCatalogDetail(catalogo del tramite)
|
|
*/
|
|
private TgeneCatalogDetail nombreTramite;
|
|
/**
|
|
* Variable del tipo TgeneCatalogDetail(catalogo de la categoria)
|
|
*/
|
|
private TgeneCatalogDetail nombreCategoria;
|
|
/**
|
|
* Variable del tipo TgeneCatalogDetail(catalogo del uso actividad del tramite)
|
|
*/
|
|
private TgeneCatalogDetail nombreUsoActividad;
|
|
/**
|
|
* Opciones de aceptar o rechazar
|
|
*/
|
|
private List<TgeneCatalogDetail> accionList;
|
|
/**
|
|
* Propiedad usada para el manejo del Alfresco
|
|
*/
|
|
@ManagedProperty(value = "#{alfrescoController}")
|
|
private AlfrescoController alfrescoController;
|
|
/**
|
|
* Propiedad usada para el manejo del numero de armas de la solicitud
|
|
*/
|
|
@ManagedProperty(value = "#{recepcionArmasController}")
|
|
private RecepcionArmasController recepcionArmasController;
|
|
/**
|
|
* Propiedad usada para el manejo del centro de control de armas
|
|
*/
|
|
@ManagedProperty(value = "#{centroControlArmasController}")
|
|
private CentroControlArmasController centroControlArmasController;
|
|
/**
|
|
* controlador de la solicitud
|
|
*/
|
|
@ManagedProperty(value = "#{solicitudArmasController}")
|
|
private SolicitudArmasController solicitudMP;
|
|
|
|
/**
|
|
* Propiedad usada para el manejo de reportes
|
|
*/
|
|
@ManagedProperty(value = "#{reportController}")
|
|
private ReportController reportController;
|
|
|
|
/**
|
|
* Controlador que maneja las armas asociadas a las agencias
|
|
*/
|
|
@ManagedProperty(value="#{agenciaArmaController}")
|
|
private AgenciaArmaController agenciaArma;
|
|
|
|
/**
|
|
* Controlador que maneja cargas para previa importacion
|
|
*/
|
|
@ManagedProperty(value = "#{cargaController}")
|
|
private CargaController cargaController;
|
|
|
|
/**
|
|
* Propiedad usada para el manejo de la solicitud actual
|
|
*/
|
|
private TarmSolicitud solicitud;
|
|
/**
|
|
* Accion tomada por el usuario, aprobar o rechazar
|
|
*/
|
|
private String accionTomada;
|
|
/**
|
|
* Constante usada para referirse a la opcion general aprobar
|
|
*/
|
|
private final String APROBAR = "APR";
|
|
/**
|
|
* Constante usada para referirse a la opcion general rechazar
|
|
*/
|
|
private final String REPROBAR = "RECH";
|
|
/**
|
|
* Constante usada para referirse a la opcion aprobar deposito
|
|
*/
|
|
private final String APROBAR_DEPOSITO = "APBDEP";
|
|
/**
|
|
* Constante usada para referirse a la opcion rechazar deposito
|
|
*/
|
|
private final String ANULAR_DEPOSITO = "ANUDEP";
|
|
/**
|
|
* Propiedad usada para el manejo del tramite actual
|
|
*/
|
|
private TarmTramite tramite;
|
|
/**
|
|
* Fecha de atencion del proximo tramite
|
|
*/
|
|
private Date fechaAtencionTramite;
|
|
/**
|
|
* Variable que indica si el usuario esta negado para continuar en la pantalla
|
|
*/
|
|
private Boolean isDenied;
|
|
/**
|
|
* Variable auxiliar usada para diferenciar cuando se presenta o no el mensaje de validacion de fecha expiracion solicitud
|
|
*/
|
|
private Boolean isOnlyMsj;
|
|
/**
|
|
* Obtiene el centro d control de armas de la solicitud actual
|
|
*/
|
|
private TarmCentroControl centroControlObj;
|
|
/**
|
|
* Bandera de tipo booleano para indicar si se habilita el boton de completar tarea
|
|
*/
|
|
private Boolean isEnableCompletarTarea= Boolean.FALSE;
|
|
|
|
/**
|
|
* Nombre del centro de control
|
|
*/
|
|
private String nombreCentroControl;
|
|
|
|
private Boolean requiereNoSolAucpBln;
|
|
|
|
private Boolean btnImprimir;
|
|
public ValidarDepositoController() throws Exception {
|
|
super(TarmSolicitudTramite.class);
|
|
}
|
|
|
|
@PostConstruct
|
|
private void postconstruct() {
|
|
super.startQuery();
|
|
csolicitud = this.getMfilters().get("csolicitud");
|
|
this.getMfilters().clear();
|
|
init();
|
|
|
|
}
|
|
|
|
/**
|
|
* Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador.
|
|
*/
|
|
private void init() {
|
|
this.beanalias = "VALIDARDEPOSITO";
|
|
// Recuperamos el centro de control de armas correspondiente al solicitante
|
|
accionList=CatalogDetailController.find("ACCION");
|
|
this.record = SolicitudTramiteController.findByCSolicitud(csolicitud);
|
|
isOnlyMsj = false;
|
|
btnImprimir=Boolean.FALSE;
|
|
requiereNoSolAucpBln=Boolean.FALSE;
|
|
try {
|
|
isDenied = true;
|
|
if(record!=null){
|
|
solicitud = SolicitudArmasController.find(csolicitud);
|
|
if(solicitud!=null && solicitud.getCtramite()!=null){
|
|
|
|
tramite = IngresoDatosTipoTramite.find(solicitud.getCtramite().toString());
|
|
if(tramite!=null){
|
|
//Tramite
|
|
nombreTramite= CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipoautorizacion(), tramite.getTipoautorizacioncodigo());
|
|
nombreCategoria= CatalogDetailController.findxCodigoCodcatalogo(tramite.getCategoria(), tramite.getCategoriacodigo());
|
|
nombreUsoActividad= CatalogDetailController.findxCodigoCodcatalogo(tramite.getUsoactividad(), tramite.getUsoactividadcodigo());
|
|
if(tramite.getCategoria().equals("14")){
|
|
requiereNoSolAucpBln=Boolean.TRUE;
|
|
}else{
|
|
requiereNoSolAucpBln=Boolean.FALSE;
|
|
}
|
|
}
|
|
else{
|
|
MessageHelper.setMessageError("NO EXISTE UN TIPO DE TR\u00c1MITE ASOCIADO A LA SOLICITUD");
|
|
return;
|
|
}
|
|
}
|
|
else{
|
|
MessageHelper.setMessageError("NO EXISTE UNA SOLICITUD ASOCIADA AL TR\u00c1MITE");
|
|
return;
|
|
}
|
|
//Obteniendo el centro de control
|
|
// TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
|
|
// PersonAddressController direccion = new PersonAddressController();
|
|
// TcustPersonAddress tcustPersonAddres= direccion.findPrincipal(tsafeUserDetail.getPk().getPersoncode().toString());
|
|
// TarmCentroControlJur jurisdiccionCentroControl;
|
|
// jurisdiccionCentroControl= TarmCentroControlJurController.findxProvincia(tcustPersonAddres.getProvincecode());
|
|
centroControlObj = CentroControlArmasController.findPorCodigo(solicitud.getCcentrocontrol());
|
|
this.setNombreCentroControl(CatalogDetailController.findxCodigoCodcatalogo( centroControlObj.getNombreinstitucion(),
|
|
centroControlObj.getNombreinstitucioncodigo()).getDescription());
|
|
}
|
|
else{
|
|
MessageHelper.setMessageError("NO EXISTE EL TR\u00c1MITE EN LA BASE DE DATOS");
|
|
}
|
|
} catch (Exception e) {
|
|
MessageHelper.setMessageError(e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Metodo que devuelve el centro de control al que pertenece el cliente dueno de la solicitud
|
|
* @throws Exception
|
|
*/
|
|
// private String obtenerCentroControlSolicitante() throws Exception {
|
|
// PersonAddressController personAddressController = new PersonAddressController();
|
|
// TcustPersonAddress tcustPersonAddres=personAddressController.findPrincipal(solicitud.getPersoncode().toString());
|
|
// TarmCentroControlJur centroControlJur= TarmCentroControlJurController.findxProvincia(tcustPersonAddres.getProvincecode());
|
|
// TarmCentroControl centroControl= CentroControlArmasController.findPorCodigo(centroControlJur.getCcentrocontrol());
|
|
// String institucionCentroControl = CatalogDetailController.findxCodigoCodcatalogo( centroControl.getNombreinstitucion(), centroControl.getNombreinstitucioncodigo()).getDescription();
|
|
// return institucionCentroControl;
|
|
// }
|
|
|
|
/**
|
|
* ?
|
|
*/
|
|
public void cancelar(){
|
|
init();
|
|
}
|
|
|
|
/**
|
|
* Genera la fecha disponible para el proximo tramite en el centro de control de armas respectivo
|
|
*/
|
|
public void generarFechaProximoTramite(){
|
|
try {
|
|
// Validamos si ya existe una fecha para realizar el proximo tramite
|
|
centroControlObj.isnew = false;
|
|
Date fechaActual=new Date(Calendar.getInstance().getTimeInMillis());
|
|
if(centroControlObj.getFechaproximotramite()==null || centroControlObj.getFechaproximotramite().before(fechaActual)){
|
|
fechaAtencionTramite = TgeneNotAccountingDayController.diasLaborablesPosterioresAUnaFecha(new Date(), 1);
|
|
}else{
|
|
fechaAtencionTramite = centroControlObj.getFechaproximotramite();
|
|
}
|
|
// Numero de armas de la solicitud
|
|
List<TarmSolicitudArmas>armasList = RecepcionArmasController.findPorSolicitud(csolicitud);
|
|
int numArmasSolicitud = armasList.size();
|
|
int salvedad = 10;
|
|
int capacidadCentroUltDia = 0;
|
|
if(centroControlObj.getCuposlibresultimodia()!=null){
|
|
capacidadCentroUltDia = centroControlObj.getCuposlibresultimodia();
|
|
}
|
|
else{
|
|
capacidadCentroUltDia = centroControlObj.getTramitespordia();
|
|
}
|
|
// Si la capacidad del centro en el ultimo dia es mayor al numero de armas a revisarse
|
|
if(numArmasSolicitud < capacidadCentroUltDia){
|
|
centroControlObj.setCuposlibresultimodia(capacidadCentroUltDia - numArmasSolicitud);
|
|
centroControlArmasController.update(centroControlObj);
|
|
centroControlArmasController.save();
|
|
|
|
}
|
|
else if((numArmasSolicitud == capacidadCentroUltDia) || (numArmasSolicitud <= (capacidadCentroUltDia + salvedad))){
|
|
// Si la capacidad del centro es igual al numero de armas a revisarse o ajusta cupo con la salvedad
|
|
centroControlObj.setCuposlibresultimodia(centroControlObj.getTramitespordia());
|
|
Date newFechaAtencionTramite = TgeneNotAccountingDayController.diasLaborablesPosterioresAUnaFecha(fechaAtencionTramite, 1);
|
|
centroControlObj.setFechaproximotramite(new java.sql.Date(newFechaAtencionTramite.getTime()));
|
|
centroControlArmasController.update(centroControlObj);
|
|
centroControlArmasController.save();
|
|
|
|
}
|
|
else{
|
|
// Cociente y residuo para los casos donde se tiene 50 armas o mas a tramitarse
|
|
int diasRequeridos = numArmasSolicitud/centroControlObj.getTramitespordia();
|
|
// Requerido para el calculo de los cupos disponibles para el ultimo dia
|
|
int residuoDiasRequeridos = numArmasSolicitud%centroControlObj.getTramitespordia();
|
|
fechaAtencionTramite = TgeneNotAccountingDayController.diasLaborablesPosterioresAUnaFecha(fechaAtencionTramite, 1);
|
|
Date newFechaAtencionTramite;
|
|
|
|
centroControlObj.setCuposlibresultimodia(centroControlObj.getTramitespordia()-residuoDiasRequeridos);
|
|
newFechaAtencionTramite = TgeneNotAccountingDayController.diasLaborablesPosterioresAUnaFecha(fechaAtencionTramite, diasRequeridos);
|
|
|
|
centroControlObj.setFechaproximotramite(new java.sql.Date(newFechaAtencionTramite.getTime()));
|
|
centroControlArmasController.update(centroControlObj);
|
|
centroControlArmasController.save();
|
|
|
|
}
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Método para finalizar la tarea del flujo
|
|
*/
|
|
public void completarTarea() {
|
|
try {
|
|
Request request = callerhelper.getRequest();
|
|
// limpiar request para finalizar la tarea.
|
|
super.cleanRequest(request);
|
|
request.modifiedData().put("csolicitud", csolicitud);
|
|
request.modifiedData().put("TID", tid);
|
|
request.modifiedData().put("BPMObs", bpmDataComment == null ? "OK" : bpmDataComment);
|
|
|
|
// Completar tarea en el flujo
|
|
Map<String,Object>datosmail = new HashMap<String,Object>();
|
|
if(accionTomada.equalsIgnoreCase(APROBAR)){
|
|
request.modifiedData().put("BPMStatus", "A");
|
|
if(tramite!=null && tramite.getTipotramite()!=null){
|
|
// En el caso de permisos enviamos una notificacion al cliente con algunos parametros adicionales
|
|
if(tramite.getTipoautorizacion().equalsIgnoreCase("6")){
|
|
datosmail.put("razonsocial",solicitud.getModifiedData().get("nombre"));
|
|
// datosmail.put("csolicitud",csolicitud);
|
|
// datosmail.put("numcomprobante",record.getNumerocomprobante());
|
|
TsafeUserDetail userDetailObj=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
|
|
TcustPersonDetail personDetailObj=PersonDetailController.find(userDetailObj.getPk().getPersoncode().toString());
|
|
// Datos del funcionario que valida
|
|
datosmail.put("funcionario",personDetailObj.getName());
|
|
datosmail.put("grado",personDetailObj.getMilitarygrade()==null?"":personDetailObj.getMilitarygrade());
|
|
String nombreCCA = CatalogDetailController.findxCodigoCodcatalogo(centroControlObj.getNombreinstitucion(), centroControlObj.getNombreinstitucioncodigo()).getDescription();
|
|
datosmail.put("nombreCCA",nombreCCA);
|
|
datosmail.put("nombreCCACliente",nombreCCA);
|
|
datosmail.put("numeroTramite",solicitud.getNumerosolicitud().replace("SOL", "TRA"));
|
|
generarFechaProximoTramite();
|
|
SimpleDateFormat sdf = new SimpleDateFormat(MsgGeneral.getProperty("dateformat"));
|
|
datosmail.put("fechaGenerada",sdf.format(fechaAtencionTramite));
|
|
}
|
|
}
|
|
}else{
|
|
request.modifiedData().put("BPMStatus", "D");
|
|
datosmail.put("razonsocial",solicitud.getModifiedData().get("nombre"));
|
|
datosmail.put("numeroSolicitud",solicitud.getNumerosolicitud());
|
|
datosmail.put("numcomprobante",record.getNumerocomprobante());
|
|
TsafeUserDetail userDetailObj=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
|
|
TcustPersonDetail personDetailObj=PersonDetailController.find(userDetailObj.getPk().getPersoncode().toString());
|
|
// Datos del funcionario que valida
|
|
datosmail.put("funcionario",personDetailObj.getName());
|
|
datosmail.put("grado",personDetailObj.getMilitarygrade()==null?"":personDetailObj.getMilitarygrade());
|
|
String nombreCCA = CatalogDetailController.findxCodigoCodcatalogo(centroControlObj.getNombreinstitucion(), centroControlObj.getNombreinstitucioncodigo()).getDescription();
|
|
datosmail.put("nombreCCA",nombreCCA);
|
|
|
|
}
|
|
request.modifiedData().put("datosmail", datosmail);
|
|
Response resp = this.callerhelper.executeSave(request);
|
|
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
|
|
this.postCommit(resp);
|
|
MessageHelper.setMessageInfo(resp);
|
|
btnImprimir=Boolean.FALSE;
|
|
if(!accionTomada.equalsIgnoreCase(APROBAR)){
|
|
saveAnularSolicitud();
|
|
}
|
|
RequestContext.getCurrentInstance().execute("Maia.refreshusertasks()");
|
|
isDenied = true;
|
|
} else {
|
|
MessageHelper.setMessageError(resp);
|
|
}
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
} catch (Throwable e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public void saveAnularSolicitud() {
|
|
try {
|
|
// CATEGORIA 14 PREVIA IMPORTACION
|
|
if(tramite.getCategoria().equals("14")){
|
|
desasociarCargaSolicitud();
|
|
}
|
|
//Poner la solicitud en estado anulado deposito
|
|
solicitud.setEstado("ANUDEP");
|
|
solicitudMP.setRecord(solicitud);
|
|
solicitudMP.update();
|
|
DtoSave dtoSolicitud = solicitudMP.getDtoSave();
|
|
|
|
if(record!=null){
|
|
record.setIsnew(false);
|
|
record.setEstadotramite("ANUDEP");
|
|
super.update();
|
|
}
|
|
|
|
//Desasociar las armas en apertura de agencias y apertura de sucursales
|
|
if(solicitud.getCtramite()==44 || solicitud.getCtramite()==48){
|
|
List<TarmSolicitudArmas> armasSolicitudList = RecepcionArmasController.findPorSolicitud(solicitud.getPk());
|
|
for(TarmSolicitudArmas armaObj:armasSolicitudList){
|
|
|
|
// Codigo agencia de la solicitud
|
|
List<TarmSolicitudAgenciaSucursal>solicitudAgenciaLst = SolicitudAgenciaSucursalController.findPorSolicitud(solicitud.getPk());
|
|
for(TarmSolicitudAgenciaSucursal solicitudAgenciaSucursalObj:solicitudAgenciaLst){
|
|
String cAgencia = solicitudAgenciaSucursalObj.getPk().getCagencia().toString();
|
|
TarmAgenciaArma agenciaArmaObj = AgenciaArmaController.findByCArma(armaObj.getPk().getCarma(), cAgencia);
|
|
agenciaArma.setRecord(agenciaArmaObj);
|
|
agenciaArma.remove();
|
|
}
|
|
}
|
|
}
|
|
|
|
DtoSave dtoSolicitudTramite = this.getDtoSave();
|
|
DtoSave dtoAgenciaArma = agenciaArma.getDtoSave();
|
|
|
|
HashMap<String, DtoSave> msave = new HashMap<String, DtoSave>();
|
|
|
|
Request request = callerhelper.getRequest();
|
|
super.cleanRequest(request);
|
|
msave.put(solicitudMP.getBeanalias(), dtoSolicitud); // adicionar metadata de mantenimiento para cada tabla.
|
|
msave.put(this.getBeanalias(), dtoSolicitudTramite);
|
|
msave.put(agenciaArma.getBeanalias(), dtoAgenciaArma);
|
|
|
|
request.setSaveTables(msave);
|
|
Response resp = callerhelper.executeSave(request);
|
|
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
|
|
this.postCommit(resp);
|
|
solicitudMP.postCommit(resp);
|
|
agenciaArma.postCommit(resp);
|
|
MessageHelper.setMessageInfo(resp);
|
|
} else {
|
|
MessageHelper.setMessageError(resp);
|
|
}
|
|
|
|
} catch (Throwable e) {
|
|
MessageHelper.setMessageError(e);
|
|
}
|
|
}
|
|
|
|
public void desasociarCargaSolicitud(){
|
|
try{
|
|
TarmCarga carga = CargaController.findByAUCP(solicitud.getAucp());
|
|
if(carga!=null){
|
|
carga.setCsolicitud(null);
|
|
cargaController.update(carga);
|
|
cargaController.save();
|
|
}
|
|
} catch (Throwable e) {
|
|
MessageHelper.setMessageError(e);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void save() {
|
|
try {
|
|
super.update();
|
|
DtoSave dtosave = super.getDtoSave();
|
|
HashMap<String, DtoSave> msave = new HashMap<String, DtoSave>();
|
|
Request request = this.callerhelper.getRequest();
|
|
msave.put(this.beanalias, dtosave); // adicionar metadata de mantenimiento para cada tabla.
|
|
request.setSaveTables(msave);
|
|
if(accionTomada.equalsIgnoreCase(APROBAR)){
|
|
record.setEstadotramite(APROBAR_DEPOSITO);
|
|
btnImprimir=Boolean.TRUE;
|
|
}else{
|
|
record.setEstadotramite(ANULAR_DEPOSITO);
|
|
}
|
|
Response resp = this.callerhelper.executeSave(request);
|
|
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
|
|
this.postCommit(resp);
|
|
MessageHelper.setMessageInfo(resp);
|
|
isDenied = true;
|
|
isEnableCompletarTarea = Boolean.TRUE;
|
|
} else {
|
|
MessageHelper.setMessageError(resp);
|
|
}
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
} catch (Throwable e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void querydatabase() {
|
|
try {
|
|
|
|
} catch (Exception e) {
|
|
MessageHelper.setMessageError(e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Consulta y retorna el codigo de un aprobado
|
|
*/
|
|
public String codigoAceptado() throws Exception {
|
|
TgeneParameters f = ParametersController.find("ACEPTADO", "1");
|
|
return f.getTextvalue();
|
|
}
|
|
|
|
/**
|
|
* Retorna la ruta de documento base en donde se almacenará dicho archivo
|
|
*
|
|
* @return
|
|
*/
|
|
public String getRutaDocumentoSolBase() {
|
|
Calendar calendar = Calendar.getInstance();
|
|
calendar.setTime(solicitud.getFregistro());
|
|
StringBuilder ruta = new StringBuilder("cm:Solicitudes");
|
|
ruta = ruta.append("/cm:").append(calendar.get(Calendar.YEAR));
|
|
ruta = ruta.append("/cm:").append((calendar.get(Calendar.MONTH)+1) <= 9 ? "0" + (calendar.get(Calendar.MONTH) + 1) : (calendar.get(Calendar.MONTH)+1));
|
|
return ruta.toString();
|
|
}
|
|
|
|
/**
|
|
* Metodo para validar el valor a pagar
|
|
*/
|
|
public void validarValorDelDeposito(){
|
|
if(record.getValorapagar().compareTo(record.getValorverificado())!=0){
|
|
MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_vVerificDiferenteDeVAPagar"));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Genera el reporte del comprobante de caja
|
|
* @param name Nombre del reporte a generar.
|
|
*/
|
|
public void generateReport() {
|
|
String path = "armas/reports/comprobanteCaja";
|
|
String filename=MsgControlArmas.getProperty("lbl_comprobanteCaja");
|
|
|
|
//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");
|
|
|
|
//RUC de COMACO
|
|
String rucComaco="-";
|
|
TgeneParameters parametroRUC=ParametersController.find("RUCCOMACO", "1");
|
|
if(parametroRUC!=null){
|
|
rucComaco=parametroRUC.getTextvalue();
|
|
}
|
|
parameters.put("rucComaco", rucComaco);
|
|
|
|
//Nombre centro
|
|
parameters.put("nombreCentro", this.getNombreCentroControl());
|
|
|
|
//No comprobante
|
|
String noComprobante="-";
|
|
TarmSolicitudTramite solicitudTramite=SolicitudTramiteController.findByCSolicitud(this.solicitud.getPk());
|
|
if(solicitudTramite!=null){
|
|
noComprobante=solicitudTramite.getNumerotramite();
|
|
}
|
|
parameters.put("noComprobante", noComprobante);
|
|
|
|
//Fecha de emision
|
|
SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy");
|
|
parameters.put("fechaSistema", sdf.format(Calendar.getInstance().getTime()));
|
|
|
|
//Ruc del usuario
|
|
if(this.solicitud.getModifiedData().get("identification")!=null){
|
|
parameters.put("ruc", this.solicitud.getModifiedData().get("identification"));
|
|
}else {
|
|
parameters.put("ruc", " ");
|
|
}
|
|
|
|
//Nombre-razon social
|
|
if(this.solicitud.getModifiedData().get("nombre")!=null){
|
|
parameters.put("nombreRazon", this.solicitud.getModifiedData().get("nombre"));
|
|
}else {
|
|
parameters.put("nombreRazon", " ");
|
|
}
|
|
|
|
|
|
//Cantidad en letras
|
|
String cantidadLetras= ConvertNumberToText.convertNumberToLetter(this.record.getValorapagar().toString());
|
|
parameters.put("cantidadLetras", cantidadLetras);
|
|
|
|
//Tramite-categoria-uso
|
|
if(this.nombreTramite!=null && this.nombreCategoria!=null && this.nombreUsoActividad!=null){
|
|
parameters.put("tramiteCategoriaUso", this.nombreTramite.getDescription()+"-"+this.nombreCategoria.getDescription()+"-"+this.nombreUsoActividad.getDescription());
|
|
}else {
|
|
parameters.put("tramiteCategoriaUso", " ");
|
|
}
|
|
|
|
|
|
//No comprobante del deposito
|
|
String noComprobanteDeposito=this.record.getNumerocomprobante().replace("-", "").toLowerCase();
|
|
Boolean caracterEliminado=false;
|
|
for (int i = 0; i < noComprobanteDeposito.length(); i++) {
|
|
if(caracterEliminado){
|
|
i=0;
|
|
caracterEliminado=false;
|
|
}
|
|
if(noComprobanteDeposito.toCharArray()[i]!='0' && noComprobanteDeposito.toCharArray()[i]!='1' && noComprobanteDeposito.toCharArray()[i]!='2'
|
|
&& noComprobanteDeposito.toCharArray()[i]!='3' && noComprobanteDeposito.toCharArray()[i]!='4' && noComprobanteDeposito.toCharArray()[i]!='5'
|
|
&& noComprobanteDeposito.toCharArray()[i]!='6' && noComprobanteDeposito.toCharArray()[i]!='7' && noComprobanteDeposito.toCharArray()[i]!='8'
|
|
&& noComprobanteDeposito.toCharArray()[i]!='9'){
|
|
|
|
String caracterExtranno="";
|
|
caracterExtranno+=noComprobanteDeposito.toCharArray()[i];
|
|
noComprobanteDeposito=noComprobanteDeposito.replace(caracterExtranno, "");
|
|
caracterEliminado=true;
|
|
}
|
|
}
|
|
parameters.put("noComprobanteDeposito", noComprobanteDeposito);
|
|
|
|
//Banco-cuenta
|
|
String banco="-";
|
|
TgeneParameters parametroBanco=ParametersController.find("BANCODEPOSITO", "1");
|
|
if(parametroBanco!=null){
|
|
banco=parametroBanco.getTextvalue();
|
|
}
|
|
|
|
String cuenta="-";
|
|
TgeneParameters parametroCuenta=ParametersController.find("CUENTADEPOSITO", "1");
|
|
if(parametroCuenta!=null){
|
|
cuenta=parametroCuenta.getTextvalue();
|
|
}
|
|
|
|
//Banco-Cuenta
|
|
parameters.put("banco", "Banco "+banco+" "+"No. "+cuenta);
|
|
|
|
//Valor deposito
|
|
parameters.put("valorDeposito", this.record.getValorapagar().toString());
|
|
|
|
//Fecha deposito
|
|
parameters.put("fechaDeposito", sdf.format(this.record.getFechacomprobante()));
|
|
|
|
String format = "pdf";
|
|
|
|
try {
|
|
this.reportController.execute(path, parameters, format, filename, this.getLoginController());
|
|
} catch (Exception ex) {
|
|
MessageHelper.setMessageError(ex);
|
|
}
|
|
}
|
|
|
|
public AlfrescoController getAlfrescoController() {
|
|
return alfrescoController;
|
|
}
|
|
|
|
public void setAlfrescoController(AlfrescoController alfrescoController) {
|
|
this.alfrescoController = alfrescoController;
|
|
}
|
|
|
|
public String getCsolicitud() {
|
|
return csolicitud;
|
|
}
|
|
|
|
public void setCsolicitud(String csolicitud) {
|
|
this.csolicitud = csolicitud;
|
|
}
|
|
|
|
public TgeneCatalogDetail getNombreTramite() {
|
|
return nombreTramite;
|
|
}
|
|
|
|
public void setNombreTramite(TgeneCatalogDetail nombreTramite) {
|
|
this.nombreTramite = nombreTramite;
|
|
}
|
|
|
|
public TgeneCatalogDetail getNombreCategoria() {
|
|
return nombreCategoria;
|
|
}
|
|
|
|
public void setNombreCategoria(TgeneCatalogDetail nombreCategoria) {
|
|
this.nombreCategoria = nombreCategoria;
|
|
}
|
|
|
|
public TgeneCatalogDetail getNombreUsoActividad() {
|
|
return nombreUsoActividad;
|
|
}
|
|
|
|
public void setNombreUsoActividad(TgeneCatalogDetail nombreUsoActividad) {
|
|
this.nombreUsoActividad = nombreUsoActividad;
|
|
}
|
|
|
|
public TarmSolicitud getSolicitud() {
|
|
return solicitud;
|
|
}
|
|
|
|
public void setSolicitud(TarmSolicitud solicitud) {
|
|
this.solicitud = solicitud;
|
|
}
|
|
|
|
public Boolean getIsDenied() {
|
|
return isDenied;
|
|
}
|
|
|
|
public void setIsDenied(Boolean isDenied) {
|
|
this.isDenied = isDenied;
|
|
}
|
|
|
|
public Boolean getIsOnlyMsj() {
|
|
return isOnlyMsj;
|
|
}
|
|
|
|
public void setIsOnlyMsj(Boolean isOnlyMsj) {
|
|
this.isOnlyMsj = isOnlyMsj;
|
|
}
|
|
|
|
public List<TgeneCatalogDetail> getAccionList() {
|
|
return accionList;
|
|
}
|
|
|
|
public void setAccionList(List<TgeneCatalogDetail> accionList) {
|
|
this.accionList = accionList;
|
|
}
|
|
|
|
public String getAccionTomada() {
|
|
return accionTomada;
|
|
}
|
|
|
|
public void setAccionTomada(String accionTomada) {
|
|
this.accionTomada = accionTomada;
|
|
}
|
|
|
|
public RecepcionArmasController getRecepcionArmasController() {
|
|
return recepcionArmasController;
|
|
}
|
|
|
|
public void setRecepcionArmasController(
|
|
RecepcionArmasController recepcionArmasController) {
|
|
this.recepcionArmasController = recepcionArmasController;
|
|
}
|
|
|
|
public CentroControlArmasController getCentroControlArmasController() {
|
|
return centroControlArmasController;
|
|
}
|
|
|
|
public void setCentroControlArmasController(
|
|
CentroControlArmasController centroControlArmasController) {
|
|
this.centroControlArmasController = centroControlArmasController;
|
|
}
|
|
|
|
public Boolean getIsEnableCompletarTarea() {
|
|
return isEnableCompletarTarea;
|
|
}
|
|
|
|
public void setIsEnableCompletarTarea(Boolean isEnableCompletarTarea) {
|
|
this.isEnableCompletarTarea = isEnableCompletarTarea;
|
|
}
|
|
|
|
/**
|
|
* Metodo utilizado para determinar la accion a tomar, de forma automatica la accion es reprobar en caso de encontrarse un valor de deposito incorrecto
|
|
*/
|
|
public void aceptar(){
|
|
if(record.getValorapagar().compareTo(record.getValorverificado())!=0){
|
|
accionTomada = REPROBAR;
|
|
isDenied = true;
|
|
}else{
|
|
accionTomada = "";
|
|
isDenied = false;
|
|
}
|
|
}
|
|
|
|
public ReportController getReportController() {
|
|
return reportController;
|
|
}
|
|
|
|
public void setReportController(ReportController reportController) {
|
|
this.reportController = reportController;
|
|
}
|
|
|
|
public TarmTramite getTramite() {
|
|
return tramite;
|
|
}
|
|
|
|
public void setTramite(TarmTramite tramite) {
|
|
this.tramite = tramite;
|
|
}
|
|
|
|
public Date getFechaAtencionTramite() {
|
|
return fechaAtencionTramite;
|
|
}
|
|
|
|
public void setFechaAtencionTramite(Date fechaAtencionTramite) {
|
|
this.fechaAtencionTramite = fechaAtencionTramite;
|
|
}
|
|
|
|
public TarmCentroControl getCentroControlObj() {
|
|
return centroControlObj;
|
|
}
|
|
|
|
public void setCentroControlObj(TarmCentroControl centroControlObj) {
|
|
this.centroControlObj = centroControlObj;
|
|
}
|
|
|
|
public String getAPROBAR() {
|
|
return APROBAR;
|
|
}
|
|
|
|
public String getREPROBAR() {
|
|
return REPROBAR;
|
|
}
|
|
|
|
public String getAPROBAR_DEPOSITO() {
|
|
return APROBAR_DEPOSITO;
|
|
}
|
|
|
|
public String getANULAR_DEPOSITO() {
|
|
return ANULAR_DEPOSITO;
|
|
}
|
|
|
|
public Boolean getBtnImprimir() {
|
|
return btnImprimir;
|
|
}
|
|
|
|
public void setBtnImprimir(Boolean btnImprimir) {
|
|
this.btnImprimir = btnImprimir;
|
|
}
|
|
|
|
public SolicitudArmasController getSolicitudMP() {
|
|
return solicitudMP;
|
|
}
|
|
|
|
public void setSolicitudMP(SolicitudArmasController solicitudMP) {
|
|
this.solicitudMP = solicitudMP;
|
|
}
|
|
|
|
public AgenciaArmaController getAgenciaArma() {
|
|
return agenciaArma;
|
|
}
|
|
|
|
public void setAgenciaArma(AgenciaArmaController agenciaArma) {
|
|
this.agenciaArma = agenciaArma;
|
|
}
|
|
|
|
public CargaController getCargaController() {
|
|
return cargaController;
|
|
}
|
|
|
|
public void setCargaController(CargaController cargaController) {
|
|
this.cargaController = cargaController;
|
|
}
|
|
|
|
public Boolean getRequiereNoSolAucpBln() {
|
|
return requiereNoSolAucpBln;
|
|
}
|
|
|
|
public void setRequiereNoSolAucpBln(Boolean requiereNoSolAucpBln) {
|
|
this.requiereNoSolAucpBln = requiereNoSolAucpBln;
|
|
}
|
|
|
|
public String getNombreCentroControl() {
|
|
return nombreCentroControl;
|
|
}
|
|
|
|
public void setNombreCentroControl(String nombreCentroControl) {
|
|
this.nombreCentroControl = nombreCentroControl;
|
|
}
|
|
|
|
|
|
}
|