package com.fp.frontend.controller.armas.parametros; import java.util.ArrayList; 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 com.fp.dto.AbstractDataTransport; 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.armas.funcionalidad.ArmaExcell; import com.fp.frontend.controller.armas.funcionalidad.RegistroArmController; import com.fp.frontend.controller.armas.funcionalidad.TotalArmasController; import com.fp.frontend.controller.armas.solicitud.SolicitudController; import com.fp.frontend.controller.armas.solicitud.SolicitudTramiteController; 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.ProvinceController; import com.fp.frontend.controller.security.LoginController; import com.fp.frontend.helper.MessageHelper; import com.fp.persistence.parmas.param.TarmTipoArmaExplosivo; import com.fp.persistence.parmas.soli.TarmArmas; import com.fp.persistence.parmas.soli.TarmSolicitud; import com.fp.persistence.pcustomer.gene.TcustPersonDetail; import com.fp.persistence.pgeneral.gene.TgeneCanton; import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail; import com.fp.persistence.pgeneral.gene.TgeneCity; import com.fp.persistence.pgeneral.gene.TgeneCountry; import com.fp.persistence.pgeneral.gene.TgeneProvince; import com.fp.persistence.pgeneral.safe.TsafeUserDetail; /** * Clase controladora del bean * * @author Jorge Vaca. * @version 2.1 */ @ManagedBean @ViewScoped public class ImportacionController extends AbstractController { public ImportacionController() throws Exception { super(AbstractDataTransport.class); // TODO Auto-generated constructor stub } private static final long serialVersionUID = 1L; @ManagedProperty(value = "#{registroArmController}") private RegistroArmController registroArmController; @ManagedProperty(value = "#{armaController}") private ArmaController armaController; /* @ManagedProperty(value = "#{armaControllerProduccion}") private ArmaControllerProduccion armaControllerProduccion; */ @ManagedProperty(value = "#{totalArmasController}") private TotalArmasController totalArmasController; private Boolean tiporegistro; private Boolean aux; private Date fechaactual; private List ltiporegistro; private List laddresstype; private List lprovinces; private List lcantones; private List lciudades; private List lcountry; private TgeneCountry pais; private List lcities; private TgeneCatalogDetail cdetalle; private Date fechadesolicitud; public void changeType(){ if(this.registroArmController.getRecord().getTiporegistro()==null){ setTiporegistro(false); } else if(this.registroArmController.getRecord().getTiporegistro().equals("PRO")){ setTiporegistro(false); } else{ setTiporegistro(true); } } public Boolean getAux() { return aux; } public void setAux(Boolean aux) { this.aux = aux; } public TotalArmasController getTotalArmasController() { return totalArmasController; } public void setTotalArmasController(TotalArmasController totalArmasController) { this.totalArmasController = totalArmasController; } // @ManagedProperty(value = "#{importacionArmasDetalleController}") // private ImportacionArmasDetalleController importacionArmasDetalleController; @ManagedProperty(value = "#{loginController}") private LoginController loginController; public RegistroArmController getRegistroArmController() { return registroArmController; } public void setRegistroArmController( RegistroArmController RegistroArmController) { this.registroArmController = RegistroArmController; } //Datos quemados de Prueba private List lsolicitud; private TarmSolicitud solicitud; //Fin de Datos quemados de prueba private TcustPersonDetail persondetail; //private TarmSolicitud solicitudpersondata; private List lperson; public List getLaddresstype() { return laddresstype; } public void setLaddresstype(List laddresstype) { this.laddresstype = laddresstype; } public List getLprovinces() { return lprovinces; } public void setLprovinces(List lprovinces) { this.lprovinces = lprovinces; } public List getLcantones() { return lcantones; } public void setLcantones(List lcantones) { this.lcantones = lcantones; } public List getLcountry() { return lcountry; } public void setLcountry(List lcountry) { this.lcountry = lcountry; } public List getLcities() { return lcities; } public void setLcities(List lcities) { this.lcities = lcities; } public List getLsolicitud() { return lsolicitud; } public void setLsolicitud(List lsolicitud) { this.lsolicitud = lsolicitud; } public TarmSolicitud getSolicitud() { return solicitud; } public void setSolicitud(TarmSolicitud solicitud) { this.solicitud = solicitud; } public List getLperson() { return lperson; } public void setLperson(List lperson) { this.lperson = lperson; } @PostConstruct private void postconstruct() { this.init(); // Inicializa autoconsulta super.startQuery(); } /** * Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador. */ private void init() { try { crearRegistro(); this.lrecord = new ArrayList<>(); this.beanalias = "IMPORTACION"; pais = new TgeneCountry(); aux=false; fechaactual=new Date(); fechadesolicitud=new Date(); TsafeUserDetail tsafeUserDetail=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); //solicitud.setPersoncode(tsafeUserDetail.getPk().getPersoncode()); setPersondetail(PersonDetailController.find(tsafeUserDetail.getPk().getPersoncode().toString())); setLtiporegistro(CatalogDetailController.find("TIPOREGISTRO", "REG")); armaController.setPersoncode(tsafeUserDetail.getPk().getPersoncode()); setLaddresstype(CatalogDetailController.find("ADDRESSTYPE")); setLcountry(CountryController.find()); pais=CountryController.findcountry("EC"); //armaController.setPais(pais.getPk()); setTiporegistro(false); setLprovinces(ProvinceController.find(pais.getPk())); cdetalle = CatalogDetailController.findxCodigoCodcatalogo(getPersondetail().getIdentificationcatalog(),getPersondetail().getIdentificationcatalogcode()); } catch (Exception e) { MessageHelper.setMessageError(e); } } @Override protected void querydatabase() { } public void actualizarsolicitudImportacionArmas() throws Exception{ TsafeUserDetail tsafeUserDetail=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); registroArmController.getRecord().setFcreacion(new java.sql.Date(new Date().getTime())); if(fechadesolicitud!=null) registroArmController.getRecord().setFechasolicitud(new java.sql.Date(fechadesolicitud.getTime())); registroArmController.getRecord().setPersoncode(tsafeUserDetail.getPk().getPersoncode()); registroArmController.getRecord().setTiporegistrocodigo("TIPOREGISTRO"); registroArmController.update(); } public void crearRegistro() throws Exception{ registroArmController.create(); } public void validarTramite(String tramite){ TsafeUserDetail tsafeUserDetail=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); String solicitud = SolicitudTramiteController.findByNumTramite(tramite).getPk().getCsolicitud(); aux=SolicitudController.existeRegistroPersona(tsafeUserDetail.getPk().getPersoncode(), solicitud); } public void actualizarTotales() throws Exception{ totalArmasController.update(); for (TarmArmas object : armaController.getLrecord() ){ TiposArmasExplosivosController.findarma(object.getCtipoarmaexplosivo()); } } //importacionController.armaController.record.provincecode @Override public void save() { try { if(armaController.getLrecord()==null||armaController.getLrecord().isEmpty()) return; actualizarsolicitudImportacionArmas(); Request request = this.callerhelper.getRequest(); DtoSave dtosave = this.armaController.getDtoSave(true); HashMap msave = new HashMap(); msave.put(armaController.getBeanalias(), dtosave); // adicionar metadata de mantenimiento para cada tabla. dtosave.setPosition(1); DtoSave dtosaveSol = this.registroArmController.getDtoSave(true); dtosaveSol.setPosition(2); msave.put(registroArmController.getBeanalias(), dtosaveSol); DtoSave dtosaveTot = this.totalArmasController.getDtoSave(true); dtosaveTot.setPosition(3); msave.put(totalArmasController.getBeanalias(), dtosaveTot); request.setSaveTables(msave); Response resp = this.callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.armaController.postCommit(resp); this.registroArmController.postCommit(resp); this.totalArmasController.postCommit(resp); this.armaController.clearAll(); this.registroArmController.clearAll(); this.totalArmasController.clearAll(); MessageHelper.setMessageInfo(resp); } else { MessageHelper.setMessageError(resp); } //armaController.setSave(false); } catch (Throwable e) { MessageHelper.setMessageError(e); //armaController.setSave(false); } finally{ try { crearRegistro(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } @Override public void postCommit(Response response) throws Exception { this.armaController.postCommit(response); this.registroArmController.postCommit(response); this.totalArmasController.postCommit(response); } public ArmaController getArmaController() { return armaController; } public void setArmaController(ArmaController armaController) { this.armaController = armaController; } public LoginController getLoginController() { return loginController; } public void setLoginController(LoginController loginController) { this.loginController = loginController; } public TcustPersonDetail getPersondetail() { return persondetail; } public void setPersondetail(TcustPersonDetail persondetail) { this.persondetail = persondetail; } public TgeneCatalogDetail getCdetalle() { return cdetalle; } public void setCdetalle(TgeneCatalogDetail cdetalle) { this.cdetalle = cdetalle; } public List getLciudades() { return lciudades; } public void setLciudades(List lciudades) { this.lciudades = lciudades; } public TgeneCountry getPais() { return pais; } public void setPais(TgeneCountry pais) { this.pais = pais; } public List getLtiporegistro() { return ltiporegistro; } public void setLtiporegistro(List ltiporegistro) { this.ltiporegistro = ltiporegistro; } public Boolean getTiporegistro() { return tiporegistro; } public void setTiporegistro(Boolean tiporegistro) { this.tiporegistro = tiporegistro; } public Date getFechadesolicitud() { return fechadesolicitud; } public void setFechadesolicitud(Date fechadesolicitud) { this.fechadesolicitud = fechadesolicitud; } public Date getFechaactual() { return fechaactual; } public void setFechaactual(Date fechaactual) { this.fechaactual = fechaactual; } }