Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.com.unicred.peq.control.action;
- import static br.com.unicred.core.util.ResourceBundleUtil.getString;
- import java.util.ArrayList;
- import java.util.List;
- import org.jboss.seam.ScopeType;
- import org.jboss.seam.annotations.Create;
- import org.jboss.seam.annotations.In;
- import org.jboss.seam.annotations.Name;
- import org.jboss.seam.annotations.Scope;
- import org.jboss.seam.annotations.security.Restrict;
- import org.jboss.seam.international.StatusMessages;
- import org.richfaces.model.ExtendedTableDataModel;
- import org.richfaces.model.selection.SimpleSelection;
- import br.com.tecnocred.arq.exception.BusinessException;
- import br.com.unicred.core.action.BaseAction;
- import br.com.unicred.core.action.faces.BaseDataProvider;
- import br.com.unicred.peq.control.facade.PropostaFacade;
- import br.com.unicred.peq.control.service.MotivoService;
- import br.com.unicred.peq.model.PropostaPendenteDTO;
- /**
- * Action para realizar a efetivação manual de propostas pendentes de aprovação pela seguradora
- *
- * @author Anderson L. Santos
- */
- @Scope(ScopeType.CONVERSATION)
- @Name("efetivarPropostaSeguradoraAction")
- @Restrict("#{s:hasPermission('efetivarPropostaSeguradora', 'pesquisar')}")
- public class EfetivarPropostaSeguradoraAction extends BaseAction {
- private static final long serialVersionUID = 1L;
- private static final String SALDO_INSUFICIENTE_PARA_EFETIVACAO = getString("efetivar-proposta-seguradora.msg.sem-saldo");
- //private static final String SUCESSO_EFETIVACA_MSG = getString("efetivar-proposta-seguradora.msg.efetivacao-com-sucesso");
- private static final String PROPOSTA_SELECIONADA_ERROR = getString("efetivar-proposta-seguradora.error.nenhuma-proposta-selecionada");
- private static final int CODIGO_SALDO_INSUFICIENTE = 3;
- private String cpf;
- private Long nrPropostaSeguradora;
- private PropostaPendenteDTO propostaEscolhida;
- private SimpleSelection selection;
- private BaseDataProvider<PropostaPendenteDTO> dataProvider =
- new BaseDataProvider<PropostaPendenteDTO>(new ArrayList<PropostaPendenteDTO>());
- private ExtendedTableDataModel<PropostaPendenteDTO> dataModel;
- @In(create = true)
- private PropostaFacade propostaFacade;
- /**
- * Método que inicializa as configurações das telas de simulação
- */
- @Create
- public void configure() {
- limparDadosPesquisa();
- }
- /**
- * Limpa os parâmetros e resultados de pesquisa
- */
- public void limparDadosPesquisa() {
- cpf = null;
- nrPropostaSeguradora = null;
- propostaEscolhida = null;
- limparResultadoPesquisa();
- }
- private void limparResultadoPesquisa() {
- selection = null;
- dataProvider = new BaseDataProvider<PropostaPendenteDTO>(new ArrayList<PropostaPendenteDTO>());
- dataModel = new ExtendedTableDataModel<PropostaPendenteDTO>(dataProvider);
- }
- /**
- * Método que realiza a busca por propostas pendentes na seguradora
- */
- @Restrict("#{s:hasPermission('efetivarPropostaSeguradora', 'pesquisar')}")
- public void pesquisar() {
- doPesquisar();
- if (dataProvider.isEmpty()) {
- throw new BusinessException(getString("fwk.message.no-search-result"));
- }
- }
- private void doPesquisar() {
- limparResultadoPesquisa();
- final List<PropostaPendenteDTO> list = propostaFacade.pesquisarPropostasPendentesSeguradora(cpf, nrPropostaSeguradora);
- final List<PropostaPendenteDTO> listaFinal = new ArrayList<PropostaPendenteDTO>();
- for (final PropostaPendenteDTO p : list) {
- final Integer codigoMotivoProposta = buscaCodigoMotivoProposta(p);
- if (codigoMotivoProposta != CODIGO_SALDO_INSUFICIENTE) {
- listaFinal.add(p);
- }
- }
- dataProvider = new BaseDataProvider<PropostaPendenteDTO>(listaFinal);
- dataModel = new ExtendedTableDataModel<PropostaPendenteDTO>(dataProvider);
- }
- /**
- * Efetiva a proposta selecionada utilizando o motivo reservado para
- * efetivação manual pela Quanta
- */
- @Restrict("#{s:hasPermission('efetivarPropostaSeguradora', 'incluir')}")
- public void efetivar() {
- limparResultadoPesquisa();
- if (propostaEscolhida == null) {
- throw new BusinessException(PROPOSTA_SELECIONADA_ERROR);
- }
- propostaFacade.efetivarPropostaPendenteNaSeguradora(propostaEscolhida);
- final Integer codigoMotivoProposta = buscaCodigoMotivoProposta(propostaEscolhida);
- criaMensagemTela(codigoMotivoProposta);
- }
- private Integer buscaCodigoMotivoProposta(final PropostaPendenteDTO propostaPendenteDTO) {
- Integer codigoMotivoProposta;
- if (propostaPendenteDTO.getInscricaoOficial() != null) {
- codigoMotivoProposta = new MotivoService().buscaUltimoMotivoPorInscricaoOficial(propostaPendenteDTO.getInscricaoOficial());
- } else {
- codigoMotivoProposta = new MotivoService().buscaUltimoMotivoPorSimulacao(propostaPendenteDTO.getSimulacao());
- }
- return codigoMotivoProposta;
- }
- private void criaMensagemTela(final Integer codigoMotivoProposta) {
- if (codigoMotivoProposta == CODIGO_SALDO_INSUFICIENTE) {
- StatusMessages.instance().add(SALDO_INSUFICIENTE_PARA_EFETIVACAO);
- } /*else {
- StatusMessages.instance().add(SUCESSO_EFETIVACA_MSG);
- }*/
- }
- public String getCpf() {
- return cpf;
- }
- public void setCpf(final String cpf) {
- this.cpf = cpf;
- }
- public Long getNrPropostaSeguradora() {
- return nrPropostaSeguradora;
- }
- public void setNrPropostaSeguradora(final Long nrPropostaSeguradora) {
- this.nrPropostaSeguradora = nrPropostaSeguradora;
- }
- public PropostaPendenteDTO getPropostaEscolhida() {
- return propostaEscolhida;
- }
- public void setPropostaEscolhida(final PropostaPendenteDTO propostaEscolhida) {
- this.propostaEscolhida = propostaEscolhida;
- }
- public PropostaFacade getPropostaFacade() {
- return propostaFacade;
- }
- public void setPropostaFacade(final PropostaFacade propostaFacade) {
- this.propostaFacade = propostaFacade;
- }
- public SimpleSelection getSelection() {
- return selection;
- }
- public void setSelection(final SimpleSelection selection) {
- this.selection = selection;
- }
- public BaseDataProvider<PropostaPendenteDTO> getDataProvider() {
- return dataProvider;
- }
- public void setDataProvider(final BaseDataProvider<PropostaPendenteDTO> dataProvider) {
- this.dataProvider = dataProvider;
- }
- public ExtendedTableDataModel<PropostaPendenteDTO> getDataModel() {
- return dataModel;
- }
- public void setDataModel(final ExtendedTableDataModel<PropostaPendenteDTO> dataModel) {
- this.dataModel = dataModel;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement