package com.fp.frontend.controller.armas.parametros; import java.util.ArrayList; 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 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.helper.MessageHelper; import com.fp.persistence.parmas.param.TarmRequisito; import com.fp.persistence.parmas.param.TarmRequisitoPorTipoTramite; /** * Clase controladora del bean TarmRequisito. * * @author Jorge Vaca. * @version 2.1 */ @SuppressWarnings("serial") @ManagedBean @ViewScoped public class RequisitoController extends AbstractController { public RequisitoController() throws Exception { super(TarmRequisito.class); } @ManagedProperty(value = "#{requisitoPorTramiteController}") private RequisitoPorTramiteController requisitoPorTramiteController; @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 { recperpage = 15; // Cambiar al # reg a mirar. lrecord = new ArrayList<>(); beanalias = "REQUISITO"; } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Crea una instancia de TgeneTransactionProcess y marca el registro como nuevo. * * @throws Exception */ @Override public void create() throws Exception { super.create(); record.setActive("Y"); } @SuppressWarnings("unchecked") @Override protected void querydatabase() { try { DtoQuery dto = super.getDtoQuery(true); dto.setOrderby("t.pk"); HashMap mtables = new HashMap(); mtables.put(beanalias, dto); // permite adicionar mas de una tabla. Request request = callerhelper.getRequest(); request.setQueryTables(mtables); Response resp = callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { lrecord = new ArrayList(); MessageHelper.setMessageError(resp); } else { lrecord = (List) resp.get(beanalias); super.postQuery(lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @Override public void save() { try { HashMap msave = new HashMap(); Request request = callerhelper.getRequest(); DtoSave dtosave = super.getDtoSave(); dtosave.setReturnpk(true); // Para que el core devuelva el pk de los registros nuevos. dtosave.setPosition(1); msave.put(beanalias, dtosave); // adicionar metadata de mantenimiento para cada tabla. for(TarmRequisito requisito:lrecord){ if(requisito.getActive()!=null && requisito.getActive().equals("N")){ //consulta de requisitosportramite requisitoPorTramiteController.setLrecord(RequisitoPorTramiteController.findxrequisito(requisito.getPk())); if(requisitoPorTramiteController.getLrecord()!=null){ for(TarmRequisitoPorTipoTramite requisitoPorTipoTramite: requisitoPorTramiteController.getLrecord()){ requisitoPorTramiteController.setRecord(requisitoPorTipoTramite); requisitoPorTramiteController.getRecord().setActive("N"); requisitoPorTramiteController.update(); } } } } DtoSave dtosaverequisitotramite = requisitoPorTramiteController.getDtoSave(); dtosaverequisitotramite.setPosition(2); msave.put(requisitoPorTramiteController.getBeanalias(), dtosaverequisitotramite); request.setSaveTables(msave); Response resp = 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); } } @Override public void postCommit(Response response) throws Exception { super.postCommitGeneric(response, beanalias); } public void eliminar(TarmRequisito requisito) throws Exception { requisito.setActive("N"); setRecord(requisito); super.update(); } /** * Entrega una lista de requisitos. * * @return List */ public static List find() { try { RequisitoController cc = new RequisitoController(); cc.init(); cc.recperpage = 300; cc.querydatabase(); if (cc.lrecord != null && !cc.lrecord.isEmpty()) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } public static List findActivos() { try { RequisitoController cc = new RequisitoController(); cc.init(); cc.recperpage = 300; cc.getMfilters().put("active", "Y"); cc.querydatabase(); if (cc.lrecord != null && !cc.lrecord.isEmpty()) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } /** * Método que retorna un Requisito en base al id enviado * @param crequisito * @return */ public static TarmRequisito findxId(String crequisito) { try { RequisitoController cc = new RequisitoController(); cc.getMfilters().put("pk", crequisito); cc.init(); cc.recperpage = 300; cc.querydatabase(); if (cc.lrecord != null && !cc.lrecord.isEmpty()) { return cc.lrecord.get(0); } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } public RequisitoPorTramiteController getRequisitoPorTramiteController() { return requisitoPorTramiteController; } public void setRequisitoPorTramiteController( RequisitoPorTramiteController requisitoPorTramiteController) { this.requisitoPorTramiteController = requisitoPorTramiteController; } }