package gcom.gui.cobranca.contratoparcelamento; import gcom.cobranca.contratoparcelamento.ContratoParcelamentoCliente; import gcom.cobranca.contratoparcelamento.FiltroContratoParcelamentoCliente; import gcom.cobranca.contratoparcelamento.FiltroContratoParcelamentoPrestacao; import gcom.cobranca.contratoparcelamento.FiltroPrestacaoItemContratoParcelamento; import gcom.cobranca.contratoparcelamento.PrestacaoContratoParcelamento; import gcom.cobranca.contratoparcelamento.PrestacaoItemContratoParcelamento; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ConectorAnd; import gcom.util.filtro.ParametroNaoNulo; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * < <Descri��o da Classe>> * * @author Administrador */ public class ExibirEmitirComprovantePagamentoContratoParcelamentoClienteAction extends GcomAction { private HttpSession sessao; /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("emitirComprovante"); sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); String numeroContrato = httpServletRequest.getParameter("numeroContrato"); ContratoParcelamentoCliente contratoParcelamentoCliente = null; EmitirComprovantePagamentoContratoParcelamentoClienteActionForm emitirComprovantePagamento = (EmitirComprovantePagamentoContratoParcelamentoClienteActionForm) actionForm; FiltroContratoParcelamentoCliente filtroContratoParcelamentoCliente = new FiltroContratoParcelamentoCliente(); filtroContratoParcelamentoCliente.adicionarCaminhoParaCarregamentoEntidade("contrato"); filtroContratoParcelamentoCliente.adicionarCaminhoParaCarregamentoEntidade("cliente"); filtroContratoParcelamentoCliente.adicionarCaminhoParaCarregamentoEntidade("contrato.relacaoCliente"); filtroContratoParcelamentoCliente.adicionarCaminhoParaCarregamentoEntidade("contrato.contratoAnterior"); filtroContratoParcelamentoCliente.adicionarCaminhoParaCarregamentoEntidade("contrato.relacaoCliente"); filtroContratoParcelamentoCliente.adicionarCaminhoParaCarregamentoEntidade("contrato.cobrancaForma"); filtroContratoParcelamentoCliente.adicionarCaminhoParaCarregamentoEntidade("contrato.motivoDesfazer"); if(numeroContrato != null && !numeroContrato.equals("")){ filtroContratoParcelamentoCliente.adicionarParametro(new ComparacaoTexto(FiltroContratoParcelamentoCliente.NUMERO_CONTRATO,numeroContrato)); ArrayList<ContratoParcelamentoCliente> collectionContratoParcelamentoCliente = new ArrayList<ContratoParcelamentoCliente>(fachada.pesquisar(filtroContratoParcelamentoCliente,ContratoParcelamentoCliente.class.getName())); //Verificar a exist�ncia do contrato if(collectionContratoParcelamentoCliente.size() == 0){ throw new ActionServletException("atencao.numero.contrato.nao.existe",numeroContrato); } //Rotina para buscar o cliente superior se a ocorr�ncia n�o for �nica else if(collectionContratoParcelamentoCliente.size() > 1){ Iterator it = collectionContratoParcelamentoCliente.iterator(); while(it.hasNext()){ contratoParcelamentoCliente = (ContratoParcelamentoCliente) it.next(); if(contratoParcelamentoCliente.getIndicadorClienteSuperior().toString().equals("1")) break; } } else{ contratoParcelamentoCliente = collectionContratoParcelamentoCliente.get(0); if(contratoParcelamentoCliente.getIndicadorClienteSuperior().toString().equals("2") && contratoParcelamentoCliente.getClienteSuperior() == null){ if (contratoParcelamentoCliente.getContrato().getRelacaoCliente() != null){ emitirComprovantePagamento.setTipoRelacao(contratoParcelamentoCliente.getContrato().getRelacaoCliente().getDescricao()); } } } FiltroContratoParcelamentoPrestacao filtroContratoParcelamentoPrestacao = new FiltroContratoParcelamentoPrestacao(); filtroContratoParcelamentoPrestacao.adicionarCaminhoParaCarregamentoEntidade("contratoParcelamento"); filtroContratoParcelamentoPrestacao.adicionarParametro(new ParametroNaoNulo(FiltroContratoParcelamentoPrestacao.VALOR_PAGAMENTO,ConectorAnd.CONECTOR_AND,2)); filtroContratoParcelamentoPrestacao.adicionarParametro(new ParametroSimples(FiltroContratoParcelamentoPrestacao.CONTRATO_PARCEL_ID,contratoParcelamentoCliente.getContrato().getId())); filtroContratoParcelamentoPrestacao.setCampoOrderBy(FiltroContratoParcelamentoPrestacao.NUMERO); ArrayList<PrestacaoContratoParcelamento> collectionPrestacaoContratoParcelamento = new ArrayList<PrestacaoContratoParcelamento>(fachada.pesquisar(filtroContratoParcelamentoPrestacao,PrestacaoContratoParcelamento.class.getName())); //Verificando possibilidade de emiss�o de comprovante if(collectionPrestacaoContratoParcelamento.size() != 0){ //Dados do Contrato que ir�o para a tela emitirComprovantePagamento.setIdNumeroContrato(contratoParcelamentoCliente.getContrato().getNumero().toString()); emitirComprovantePagamento.setIdCliente(contratoParcelamentoCliente.getCliente().getId().toString()); emitirComprovantePagamento.setNome(contratoParcelamentoCliente.getCliente().getNome()); emitirComprovantePagamento.setCnpj(contratoParcelamentoCliente.getCliente().getCnpj()); emitirComprovantePagamento.setNomeCNPJ(contratoParcelamentoCliente.getCliente().getNome() + " " + contratoParcelamentoCliente.getCliente().getCnpjFormatado()); emitirComprovantePagamento.setDataImplantacaoContrato(Util.formatarData(contratoParcelamentoCliente.getContrato().getDataImplantacao())); //Quantidades de presta��es Iterator it = collectionPrestacaoContratoParcelamento.iterator(); int marcador = 0; //filtroPrestacaoItem.adicionarCaminhoParaCarregamentoEntidade("item"); while(it.hasNext()){ FiltroPrestacaoItemContratoParcelamento filtroPrestacaoItem = new FiltroPrestacaoItemContratoParcelamento(); filtroPrestacaoItem.adicionarCaminhoParaCarregamentoEntidade("prestacao"); filtroPrestacaoItem.adicionarCaminhoParaCarregamentoEntidade("item"); PrestacaoContratoParcelamento prestacao = (PrestacaoContratoParcelamento) it.next(); filtroPrestacaoItem.adicionarParametro(new ParametroSimples(FiltroPrestacaoItemContratoParcelamento.PRESTACAO_ID,prestacao.getId())); filtroPrestacaoItem.setCampoDistinct("objeto."+FiltroPrestacaoItemContratoParcelamento.ITEM_ID); Collection collectionPrestacaoItem = fachada.pesquisar(filtroPrestacaoItem,PrestacaoItemContratoParcelamento.class.getName()); prestacao.setItensPagos(collectionPrestacaoItem.size()); //prestacao.setDataPagamento(prestacao.getDataPagamento()); //Salva com o valor da quantidade de itens pagos collectionPrestacaoContratoParcelamento.set(marcador,prestacao); marcador++; } sessao.setAttribute("contratoParcelamentoCliente",contratoParcelamentoCliente); sessao.setAttribute("parcelas",collectionPrestacaoContratoParcelamento); sessao.setAttribute("quantidadeParcelas",collectionPrestacaoContratoParcelamento.size()); } else{ throw new ActionServletException("atencao.contrato.pagamento.inexistente",numeroContrato); } } else{ throw new ActionServletException("atencao.numero.contrato.nao.existe",numeroContrato); } return retorno; } }