package gcom.gui.arrecadacao;
import gcom.arrecadacao.ArrecadadorContrato;
import gcom.arrecadacao.FiltroArrecadadorContrato;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Date;
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;
/**
* [UC0536]FILTRAR ARRECADADOR
*
* @author Marcio Roberto
* @date 01/02/2007
*/
public class FiltrarContratoArrecadadorAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("exibirManterContratoArrecadador");
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
FiltrarContratoArrecadadorActionForm filtrarContratoArrecadadorActionForm = (FiltrarContratoArrecadadorActionForm) actionForm;
// Recupera todos os campos da p�gina para ser colocada no filtro
// posteriormente
String idArrecadador = filtrarContratoArrecadadorActionForm
.getIdArrecadador();
String idCliente = filtrarContratoArrecadadorActionForm.getIdCliente();
// String nomeCliente =
// filtrarContratoArrecadadorActionForm.getNomeCliente();
String numeroContrato = filtrarContratoArrecadadorActionForm
.getNumeroContrato();
String idConvenio = filtrarContratoArrecadadorActionForm
.getIdConvenio();
String idContaBancariaArrecadador = filtrarContratoArrecadadorActionForm
.getIdContaBancariaArrecadador();
String idContaBancariaTarifa = filtrarContratoArrecadadorActionForm
.getIdContaBancariaTarifa();
String indicadorCobranca = filtrarContratoArrecadadorActionForm
.getIndicadorCobranca();
String dtInicioContrato = filtrarContratoArrecadadorActionForm
.getDtInicioContrato();
String dtFimContrato = filtrarContratoArrecadadorActionForm
.getDtFimContrato();
String emailCliente = filtrarContratoArrecadadorActionForm
.getEmailCliente();
// Indicador Atualizar
String indicadorAtualizar = httpServletRequest
.getParameter("indicadorAtualizar");
if (indicadorAtualizar != null && !indicadorAtualizar.equals("")) {
sessao.setAttribute("indicadorAtualizar", indicadorAtualizar);
} else {
sessao.removeAttribute("indicadorAtualizar");
}
boolean peloMenosUmParametroInformado = false;
FiltroArrecadadorContrato filtroArrecadadorContrato = new FiltroArrecadadorContrato();
filtroArrecadadorContrato.adicionarCaminhoParaCarregamentoEntidade("arrecadador.cliente");
filtroArrecadadorContrato.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtroArrecadadorContrato.adicionarCaminhoParaCarregamentoEntidade("contaBancariaDepositoArrecadacao");
filtroArrecadadorContrato.adicionarCaminhoParaCarregamentoEntidade("contaBancariaDepositoArrecadacao.agencia");
// filtroArrecadadorContrato.adicionarCaminhoParaCarregamentoEntidade("contaBancariaDepositoTarifa");
// C�digo do Arrecadador
if (idArrecadador != null && !idArrecadador.trim().equals("")) {
// [FS0003] - Verificando a exist�ncia do Agente
boolean achou = fachada.verificarExistenciaArrecadador(new Integer(
idArrecadador));
if (achou) {
peloMenosUmParametroInformado = true;
filtroArrecadadorContrato
.adicionarParametro(new ParametroSimples(
FiltroArrecadadorContrato.ARRECADADOR_ID,
idArrecadador));
}
}
// Numero do Contrato
if (numeroContrato != null && !numeroContrato.trim().equals("")) {
boolean achou = fachada.verificarExistenciaContrato(numeroContrato);
if (achou) {
peloMenosUmParametroInformado = true;
filtroArrecadadorContrato
.adicionarParametro(new ParametroSimples(
FiltroArrecadadorContrato.NUMEROCONTRATO,
numeroContrato));
}
}
// Cliente
if (idCliente != null && !idCliente.trim().equals("")) {
peloMenosUmParametroInformado = true;
filtroArrecadadorContrato.adicionarParametro(new ParametroSimples(
FiltroArrecadadorContrato.CLIENTE_ID, idCliente));
}
// Conta deposito Arrecadacao
if (idContaBancariaArrecadador != null
&& !idContaBancariaArrecadador.trim().equals("")) {
peloMenosUmParametroInformado = true;
filtroArrecadadorContrato.adicionarParametro(new ParametroSimples(
FiltroArrecadadorContrato.ID_DEPOSITO_ARRECADACAO,
idContaBancariaArrecadador));
}
// Conta deposito Tarifa
if (idContaBancariaTarifa != null
&& !idContaBancariaTarifa.trim().equals("")) {
peloMenosUmParametroInformado = true;
filtroArrecadadorContrato.adicionarParametro(new ParametroSimples(
FiltroArrecadadorContrato.ID_DEPOSITO_TARIFA,
idContaBancariaTarifa));
}
// Indicador de Cobranca de ISS
if (indicadorCobranca != null
&& !indicadorCobranca.trim().equalsIgnoreCase(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
peloMenosUmParametroInformado = true;
filtroArrecadadorContrato.adicionarParametro(new ParametroSimples(
FiltroArrecadadorContrato.INDICADOR_COBRANCA,
indicadorCobranca));
}
// C�digo do Convenio
if (idConvenio != null && !idConvenio.trim().equals("")) {
peloMenosUmParametroInformado = true;
filtroArrecadadorContrato.adicionarParametro(new ParametroSimples(
FiltroArrecadadorContrato.CODIGO_CONVENIO, idConvenio));
}
// Data de Inicio do Contrato
if (dtInicioContrato != null
&& !dtInicioContrato.trim().equalsIgnoreCase("")) {
peloMenosUmParametroInformado = true;
Date dataInicio = Util.converteStringParaDate(dtInicioContrato);
filtroArrecadadorContrato
.adicionarParametro(new ParametroSimples(
FiltroArrecadadorContrato.DATA_CONTRATO_INICIO,
dataInicio));
}
// Data de Fim do Contrato
if (dtFimContrato != null && !dtFimContrato.trim().equalsIgnoreCase("")) {
peloMenosUmParametroInformado = true;
Date dataFim = Util.converteStringParaDate(dtFimContrato);
filtroArrecadadorContrato.adicionarParametro(new ParametroSimples(
FiltroArrecadadorContrato.DATA_CONTRATO_FIM, dataFim));
}
// E-mail
if (emailCliente != null && !emailCliente.trim().equals("")) {
peloMenosUmParametroInformado = true;
filtroArrecadadorContrato.adicionarParametro(new ParametroSimples(
FiltroArrecadadorContrato.DESCRICAO_EMAIL, emailCliente));
}
Collection<ArrecadadorContrato> colecaoArrecadadorContrato = fachada
.pesquisar(filtroArrecadadorContrato, ArrecadadorContrato.class
.getName());
if (colecaoArrecadadorContrato == null
|| colecaoArrecadadorContrato.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"Contrato de Arrecadador");
} else {
httpServletRequest.setAttribute("colecaoArrecadadorContrato",
colecaoArrecadadorContrato);
ArrecadadorContrato arrecadadorContrato = new ArrecadadorContrato();
arrecadadorContrato = (ArrecadadorContrato) Util
.retonarObjetoDeColecao(colecaoArrecadadorContrato);
String idRegistroAtualizacao = arrecadadorContrato.getId()
.toString();
sessao.setAttribute("idRegistroAtualizacao", idRegistroAtualizacao);
}
// Erro caso o usu�rio mandou filtrar sem nenhum par�metro
if (!peloMenosUmParametroInformado) {
throw new ActionServletException(
"atencao.filtro.nenhum_parametro_informado");
}
sessao.setAttribute("filtroArrecadadorContrato",
filtroArrecadadorContrato);
httpServletRequest.setAttribute("filtroArrecadadorContrato",
filtroArrecadadorContrato);
return retorno;
}
}