package gcom.gui.arrecadacao;
import gcom.arrecadacao.Arrecadador;
import gcom.arrecadacao.FiltroArrecadador;
import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.cadastro.cliente.EsferaPoder;
import gcom.cadastro.cliente.FiltroEsferaPoder;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.FiltroCategoria;
import gcom.cadastro.imovel.FiltroImovelPerfil;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.cobranca.DocumentoTipo;
import gcom.cobranca.FiltroDocumentoTipo;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.util.filtro.ParametroSimples;
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 Adriana Muniz
* @date 11/12/2012
*/
public class ExibirFiltrarDadosDiariosArrecadacaoComTarifaAction extends GcomAction {
public ActionForward execute(
ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Seta o retorno
ActionForward retorno = actionMapping.findForward("filtrarDadosDiariosArrecadacaoComTarifa");
//Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
//Obt�m a sess�o
HttpSession sessao = httpServletRequest.getSession(false);
// Verificamos se o processo de dados di�rios da arrecada��o est� rodando
fachada.verificarBatchDadosDiariosArracadacaoRodando();
FiltrarDadosDiariosArrecadacaoComTarifaActionForm filtrarDadosDiariosArrecadacaoComTarifaActionForm = (FiltrarDadosDiariosArrecadacaoComTarifaActionForm) actionForm;
String idLocalidade = filtrarDadosDiariosArrecadacaoComTarifaActionForm.getLocalidade();
String idElo = filtrarDadosDiariosArrecadacaoComTarifaActionForm.getIdElo();
String idArrecadador = filtrarDadosDiariosArrecadacaoComTarifaActionForm.getIdArrecadador();
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
boolean entrar = false;
// Pesquisando a localidade
if (idLocalidade != null && !idLocalidade.trim().equals("")) {
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, idLocalidade));
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade");
Collection colecaoLocalidade = fachada.pesquisar(filtroLocalidade,Localidade.class.getName());
if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()) {
Localidade localidade = (Localidade) colecaoLocalidade.iterator().next();
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setLocalidade(idLocalidade);
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setDescricaoLocalidade(localidade.getDescricao());
if(idElo == null || idElo.equals("")) {
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setIdElo(localidade.getLocalidade().getId().toString());
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setNomeElo(localidade.getLocalidade().getDescricao());
}
entrar = true;
} else {
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setLocalidade("");
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setDescricaoLocalidade("LOCALIDADE INEXISTENTE");
httpServletRequest.setAttribute("localidadeInexistente", true);
}
} else {
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setDescricaoLocalidade("");
}
if (idArrecadador != null && !idArrecadador.trim().equals("") && Integer.parseInt(idArrecadador) > 0) {
FiltroArrecadador filtroArrecadador = new FiltroArrecadador();
filtroArrecadador.adicionarParametro(new ParametroSimples(FiltroArrecadador.CODIGO_AGENTE, idArrecadador));
filtroArrecadador.adicionarCaminhoParaCarregamentoEntidade("cliente");
Collection<Arrecadador> arrecadadorEncontrado = fachada.pesquisar(filtroArrecadador,Arrecadador.class.getName());
if (arrecadadorEncontrado != null && !arrecadadorEncontrado.isEmpty()) {
Arrecadador arrecadador = (Arrecadador) arrecadadorEncontrado.iterator().next();
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setIdArrecadador(idArrecadador);
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setNomeArrecadador(arrecadador.getCliente().getNome());
} else {
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setIdArrecadador("");
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setNomeArrecadador("ARRECADADOR INEXISTENTE");
httpServletRequest.setAttribute("arrecadadorInexistente", true);
}
} else {
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setNomeArrecadador("");
}
// Pesquisando a Elo Polo
if (idElo != null && !idElo.trim().equals("")) {
filtroLocalidade.limparListaParametros();
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID_ELO, idElo));
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade");
Collection colecaoLocalidade = fachada.pesquisar(filtroLocalidade,Localidade.class.getName());
if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()) {
boolean flag = false;
Localidade elo = (Localidade) colecaoLocalidade.iterator().next();
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setIdElo(idElo);
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setNomeElo(elo.getLocalidade().getDescricao());
Iterator iteratorColecaoLocalidade = colecaoLocalidade.iterator();
while (iteratorColecaoLocalidade.hasNext()) {
// Obt�m os dados do cr�dito realizado
Localidade elo2 = (Localidade) iteratorColecaoLocalidade.next();
if(idLocalidade != null && !idLocalidade.equals("")) {
if(elo2.getId().toString().equals(idLocalidade)) {
flag = true;
String eloDiferente = "NAO";
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setEloDiferente(eloDiferente);
}
}
}
if(!flag && idLocalidade != null && !idLocalidade.equals("")){
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setLocalidade("");
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setDescricaoLocalidade("LOCALIDADE INEXISTENTE");
httpServletRequest.setAttribute("localidadeInexistente", true);
}
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setLocalidadeDoElo(elo.getId().toString());
} else {
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setIdElo("");
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setNomeElo("ELO P�LO INEXISTENTE");
httpServletRequest.setAttribute("eloInexistente", true);
}
} else if (!entrar){
filtrarDadosDiariosArrecadacaoComTarifaActionForm.setNomeElo("");
}
// Pesquisando Ger�ncia Regional
if (sessao.getAttribute("colecaoGerenciaRegional") == null) {
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional(FiltroGerenciaRegional.NOME_ABREVIADO);
filtroGerenciaRegional.setConsultaSemLimites(true);
filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME_ABREVIADO);
Collection<GerenciaRegional> colecaoGerenciasRegionais = fachada.pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getName());
sessao.setAttribute("colecaoGerenciasRegionais",colecaoGerenciasRegionais);
}
// Pesquisando o Tipo de Documento
if (sessao.getAttribute("colecaoDocumentoTipo") == null) {
FiltroDocumentoTipo filtroDocumentoTipo = new FiltroDocumentoTipo();
filtroDocumentoTipo.setCampoOrderBy(FiltroDocumentoTipo.DESCRICAO);
Collection colecaoDocumentoTipo = fachada.pesquisar(filtroDocumentoTipo, DocumentoTipo.class.getName());
sessao.setAttribute("colecaoDocumentoTipo",colecaoDocumentoTipo);
}
// Pesquisando Sistema Par�metros
if (sessao.getAttribute("sistemaParametro") == null) {
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
sessao.setAttribute("sistemaParametro", sistemaParametro);
}
// devolve o mapeamento de retorno
return retorno;
}
}