SHARE
TWEET

java

a guest May 24th, 2019 74 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package br.com.unicred.peq.control.action;
  2. import static br.com.unicred.core.util.ResourceBundleUtil.getString;
  3.  
  4. import java.util.ArrayList;
  5. import java.util.List;
  6.  
  7. import org.jboss.seam.ScopeType;
  8. import org.jboss.seam.annotations.Create;
  9. import org.jboss.seam.annotations.In;
  10. import org.jboss.seam.annotations.Name;
  11. import org.jboss.seam.annotations.Scope;
  12. import org.jboss.seam.annotations.security.Restrict;
  13. import org.jboss.seam.international.StatusMessages;
  14. import org.richfaces.model.ExtendedTableDataModel;
  15. import org.richfaces.model.selection.SimpleSelection;
  16.  
  17. import br.com.tecnocred.arq.exception.BusinessException;
  18. import br.com.unicred.core.action.BaseAction;
  19. import br.com.unicred.core.action.faces.BaseDataProvider;
  20. import br.com.unicred.peq.control.facade.PropostaFacade;
  21. import br.com.unicred.peq.control.service.MotivoService;
  22. import br.com.unicred.peq.model.PropostaPendenteDTO;
  23.  
  24.  
  25. /**
  26.  * Action para realizar a efetivação manual de propostas pendentes de aprovação pela seguradora
  27.  *
  28.  * @author Anderson L. Santos
  29.  */
  30. @Scope(ScopeType.CONVERSATION)
  31. @Name("efetivarPropostaSeguradoraAction")
  32. @Restrict("#{s:hasPermission('efetivarPropostaSeguradora', 'pesquisar')}")
  33. public class EfetivarPropostaSeguradoraAction extends BaseAction {
  34.  
  35.     private static final long serialVersionUID = 1L;
  36.  
  37.     private static final String SALDO_INSUFICIENTE_PARA_EFETIVACAO = getString("efetivar-proposta-seguradora.msg.sem-saldo");
  38.     //private static final String SUCESSO_EFETIVACA_MSG = getString("efetivar-proposta-seguradora.msg.efetivacao-com-sucesso");
  39.     private static final String PROPOSTA_SELECIONADA_ERROR = getString("efetivar-proposta-seguradora.error.nenhuma-proposta-selecionada");
  40.     private static final int CODIGO_SALDO_INSUFICIENTE = 3;
  41.  
  42.     private String cpf;
  43.     private Long nrPropostaSeguradora;
  44.     private PropostaPendenteDTO propostaEscolhida;
  45.     private SimpleSelection selection;
  46.     private BaseDataProvider<PropostaPendenteDTO> dataProvider =
  47.             new BaseDataProvider<PropostaPendenteDTO>(new ArrayList<PropostaPendenteDTO>());
  48.     private ExtendedTableDataModel<PropostaPendenteDTO> dataModel;
  49.  
  50.     @In(create = true)
  51.     private PropostaFacade propostaFacade;
  52.  
  53.     /**
  54.      * Método que inicializa as configurações das telas de simulação
  55.      */
  56.     @Create
  57.     public void configure() {
  58.         limparDadosPesquisa();
  59.     }
  60.  
  61.     /**
  62.      * Limpa os parâmetros e resultados de pesquisa
  63.      */
  64.     public void limparDadosPesquisa() {
  65.         cpf = null;
  66.         nrPropostaSeguradora = null;
  67.         propostaEscolhida = null;
  68.         limparResultadoPesquisa();
  69.     }
  70.  
  71.     private void limparResultadoPesquisa() {
  72.         selection = null;
  73.         dataProvider = new BaseDataProvider<PropostaPendenteDTO>(new ArrayList<PropostaPendenteDTO>());
  74.         dataModel = new ExtendedTableDataModel<PropostaPendenteDTO>(dataProvider);
  75.     }
  76.  
  77.     /**
  78.      * Método que realiza a busca por propostas pendentes na seguradora
  79.      */
  80.     @Restrict("#{s:hasPermission('efetivarPropostaSeguradora', 'pesquisar')}")
  81.     public void pesquisar() {
  82.         doPesquisar();
  83.         if (dataProvider.isEmpty()) {
  84.             throw new BusinessException(getString("fwk.message.no-search-result"));
  85.         }
  86.     }
  87.  
  88.     private void doPesquisar() {
  89.         limparResultadoPesquisa();
  90.         final List<PropostaPendenteDTO> list = propostaFacade.pesquisarPropostasPendentesSeguradora(cpf, nrPropostaSeguradora);
  91.         final List<PropostaPendenteDTO> listaFinal = new ArrayList<PropostaPendenteDTO>();
  92.         for (final PropostaPendenteDTO p : list) {
  93.             final Integer codigoMotivoProposta = buscaCodigoMotivoProposta(p);
  94.             if (codigoMotivoProposta != CODIGO_SALDO_INSUFICIENTE) {
  95.                 listaFinal.add(p);
  96.             }
  97.         }
  98.         dataProvider = new BaseDataProvider<PropostaPendenteDTO>(listaFinal);
  99.         dataModel = new ExtendedTableDataModel<PropostaPendenteDTO>(dataProvider);
  100.     }
  101.  
  102.     /**
  103.      * Efetiva a proposta selecionada utilizando o motivo reservado para
  104.      * efetivação manual pela Quanta
  105.      */
  106.     @Restrict("#{s:hasPermission('efetivarPropostaSeguradora', 'incluir')}")
  107.     public void efetivar() {
  108.         limparResultadoPesquisa();
  109.         if (propostaEscolhida == null) {
  110.             throw new BusinessException(PROPOSTA_SELECIONADA_ERROR);
  111.         }
  112.         propostaFacade.efetivarPropostaPendenteNaSeguradora(propostaEscolhida);
  113.  
  114.         final Integer codigoMotivoProposta = buscaCodigoMotivoProposta(propostaEscolhida);
  115.  
  116.         criaMensagemTela(codigoMotivoProposta);
  117.     }
  118.  
  119.     private Integer buscaCodigoMotivoProposta(final PropostaPendenteDTO propostaPendenteDTO) {
  120.         Integer codigoMotivoProposta;
  121.         if (propostaPendenteDTO.getInscricaoOficial() != null) {
  122.             codigoMotivoProposta = new MotivoService().buscaUltimoMotivoPorInscricaoOficial(propostaPendenteDTO.getInscricaoOficial());
  123.         } else {
  124.             codigoMotivoProposta = new MotivoService().buscaUltimoMotivoPorSimulacao(propostaPendenteDTO.getSimulacao());
  125.         }
  126.         return codigoMotivoProposta;
  127.     }
  128.  
  129.     private void criaMensagemTela(final Integer codigoMotivoProposta) {
  130.         if (codigoMotivoProposta == CODIGO_SALDO_INSUFICIENTE) {
  131.             StatusMessages.instance().add(SALDO_INSUFICIENTE_PARA_EFETIVACAO);
  132.         } /*else {
  133.             StatusMessages.instance().add(SUCESSO_EFETIVACA_MSG);
  134.         }*/
  135.     }
  136.  
  137.     public String getCpf() {
  138.         return cpf;
  139.     }
  140.  
  141.     public void setCpf(final String cpf) {
  142.         this.cpf = cpf;
  143.     }
  144.  
  145.     public Long getNrPropostaSeguradora() {
  146.         return nrPropostaSeguradora;
  147.     }
  148.  
  149.     public void setNrPropostaSeguradora(final Long nrPropostaSeguradora) {
  150.         this.nrPropostaSeguradora = nrPropostaSeguradora;
  151.     }
  152.  
  153.     public PropostaPendenteDTO getPropostaEscolhida() {
  154.         return propostaEscolhida;
  155.     }
  156.  
  157.     public void setPropostaEscolhida(final PropostaPendenteDTO propostaEscolhida) {
  158.         this.propostaEscolhida = propostaEscolhida;
  159.     }
  160.  
  161.     public PropostaFacade getPropostaFacade() {
  162.         return propostaFacade;
  163.     }
  164.  
  165.     public void setPropostaFacade(final PropostaFacade propostaFacade) {
  166.         this.propostaFacade = propostaFacade;
  167.     }
  168.  
  169.     public SimpleSelection getSelection() {
  170.         return selection;
  171.     }
  172.  
  173.     public void setSelection(final SimpleSelection selection) {
  174.         this.selection = selection;
  175.     }
  176.  
  177.     public BaseDataProvider<PropostaPendenteDTO> getDataProvider() {
  178.         return dataProvider;
  179.     }
  180.  
  181.     public void setDataProvider(final BaseDataProvider<PropostaPendenteDTO> dataProvider) {
  182.         this.dataProvider = dataProvider;
  183.     }
  184.  
  185.     public ExtendedTableDataModel<PropostaPendenteDTO> getDataModel() {
  186.         return dataModel;
  187.     }
  188.  
  189.     public void setDataModel(final ExtendedTableDataModel<PropostaPendenteDTO> dataModel) {
  190.         this.dataModel = dataModel;
  191.     }
  192.  
  193. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top