package gcom.gui.faturamento.debito;
import gcom.fachada.Fachada;
import gcom.faturamento.conta.Conta;
import gcom.faturamento.conta.ContaHistorico;
import gcom.faturamento.conta.FiltroContaHistorico;
import gcom.faturamento.debito.DebitoCobrado;
import gcom.faturamento.debito.DebitoCobradoHistorico;
import gcom.faturamento.debito.FiltroDebitoCobrado;
import gcom.faturamento.debito.FiltroDebitoCobradoHistorico;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.relatorio.cadastro.imovel.RelatorioDebitoCobradoContaHelper;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
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;
/**
* action respons�vel pela exibi��o da tela de consultar d�bito cobrado
*
* @author pedro alexandre
* @created 04 de Janeiro de 2006
*/
public class ExibirConsultarDebitoCobradoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// cria a vari�vel de retorno e seta o mapeamento para a tela de
// consultar d�bito cobrado
ActionForward retorno = actionMapping
.findForward("exibirConsultarDebitoCobrado");
// cria uma inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
// cria uma inst�ncia da sess�o
HttpSession sessao = httpServletRequest.getSession(false);
String tipoConsulta = httpServletRequest.getParameter("tipoConsulta");
RelatorioDebitoCobradoContaHelper relatorioDebitosDeUmaConta = new RelatorioDebitoCobradoContaHelper();
if (tipoConsulta.equalsIgnoreCase("conta")) {
// recupera o c�digo da conta do request
String idConta = httpServletRequest.getParameter("contaID");
// se o c�digo n�o for nulo
if (idConta != null && !idConta.equalsIgnoreCase("")) {
// remove o objeto conta da sess�o
sessao.removeAttribute("conta");
// remove o objeto conta da sess�o
sessao.removeAttribute("contaHistorico");
// remove a cole��o de categorias
sessao.removeAttribute("colecaoContaCategoria");
// remove a cole��o de impostos deduzidos
sessao.removeAttribute("colecaoContaImpostosDeduzidos");
// remove a cole��o de d�bitos cobrados
sessao.removeAttribute("colecaoContaDebitosCobrados");
}
/*
* Pesquisando a conta a partir do id recebido
* =====================================================================
*/
// cria o objeto conta
Conta conta = null;
// se o c�digo da conta n�o for nulo
if (idConta != null && !idConta.equalsIgnoreCase("")) {
Collection colecaoConta = fachada.consultarConta(new Integer(
idConta));
// se n�o encontrou nenhuma conta com o c�digo informado
if (colecaoConta == null || colecaoConta.isEmpty()) {
throw new ActionServletException(
"atencao.pesquisa.conta.inexistente");
}
// recupera o objeto conta da cole��o
conta = (Conta) Util.retonarObjetoDeColecao(colecaoConta);
relatorioDebitosDeUmaConta.setIdImovel(conta.getImovel().getId()+"");
relatorioDebitosDeUmaConta.setMesAnoConta(conta.getFormatarAnoMesParaMesAno());
relatorioDebitosDeUmaConta.setSituacaoConta(conta.getDebitoCreditoSituacaoAtual().getDescricaoDebitoCreditoSituacao());
relatorioDebitosDeUmaConta.setSituacaoLigacaoAgua(conta.getLigacaoAguaSituacao().getDescricao());
relatorioDebitosDeUmaConta.setSituacaoLigacaoEsgoto(conta.getLigacaoEsgotoSituacao().getDescricao());
// seta o objeto conta na sess�o
sessao.setAttribute("conta", conta);
}
// se j� existe uma conta na sess�o
else if (sessao.getAttribute("conta") != null) {
// recupera a conta da sess�o
conta = (Conta) sessao.getAttribute("conta");
if(relatorioDebitosDeUmaConta.getIdImovel() == null){
relatorioDebitosDeUmaConta.setIdImovel(conta.getImovel().getId()+"");
}
} else {
// levanta o erro de conta inexistente
throw new ActionServletException(
"atencao.pesquisa.conta.inexistente");
}
// ====================================================================
// cria a cole��o de d�bitos cobrados
Collection colecaoContaDebitosCobrados;
/* D�bitos Cobrados (Carregar cole��o)*/
// cria o filtro de d�bito cobrado
FiltroDebitoCobrado filtroDebitoCobrado = new FiltroDebitoCobrado();
// carrega o tipo de d�bito
filtroDebitoCobrado
.adicionarCaminhoParaCarregamentoEntidade("debitoTipo");
// seta o c�digo da conta no filtro
filtroDebitoCobrado.adicionarParametro(new ParametroSimples(
FiltroDebitoCobrado.CONTA_ID, conta.getId()));
// pesquisa a cole��o de d�bitos cobrados
colecaoContaDebitosCobrados = fachada.pesquisar(
filtroDebitoCobrado, DebitoCobrado.class.getName());
// seta a cole��o de d�bitos cobrados na sess�o
sessao.setAttribute("colecaoContaDebitosCobrados",
colecaoContaDebitosCobrados);
relatorioDebitosDeUmaConta.setColecaoDebitosCobrados(colecaoContaDebitosCobrados);
sessao.removeAttribute("contaHistorico");
sessao.removeAttribute("colecaoContaDebitosCobradosHistorico");
} else if (tipoConsulta.equalsIgnoreCase("contaHistorico")) {
String idContaHistorico = httpServletRequest
.getParameter("contaID");
// se o c�digo n�o for nulo
if (idContaHistorico != null
&& !idContaHistorico.equalsIgnoreCase("")) {
// remove o objeto conta da sess�o
sessao.removeAttribute("conta");
// remove o objeto conta hist�rico da sess�o
sessao.removeAttribute("contaHistorico");
// remove a cole��o de categorias
sessao.removeAttribute("colecaoContaCategoria");
// remove a cole��o de impostos deduzidos
sessao.removeAttribute("colecaoContaImpostosDeduzidos");
// remove a cole��o de d�bitos cobrados
sessao.removeAttribute("colecaoContaDebitosCobrados");
}
/*Pesquisando a conta hist�rico a partir do id recebido*/
// cria o objeto conta hist�rico
ContaHistorico contaHistorico = null;
// se o c�digo da conta hist�rico n�o for nulo
if (idContaHistorico != null
&& !idContaHistorico.equalsIgnoreCase("")) {
// pesquisa a conta hist�rico na base de dados
Collection colecaoContaHistorico =
this.getFachada().consultarContaHistorico(new Integer(idContaHistorico));
// se n�o encontrou nenhuma conta hist�rico com o c�digo
// informado
if (colecaoContaHistorico == null
|| colecaoContaHistorico.isEmpty()) {
throw new ActionServletException(
"atencao.pesquisa.conta.inexistente");
}
// recupera o objeto conta hist�rico da cole��o
contaHistorico = (ContaHistorico) Util
.retonarObjetoDeColecao(colecaoContaHistorico);
// seta o objeto conta historico na sess�o
sessao.setAttribute("contaHistorico", contaHistorico);
relatorioDebitosDeUmaConta.setIdImovel(contaHistorico.getImovel().getId()+"");
relatorioDebitosDeUmaConta.setMesAnoConta(contaHistorico.getFormatarAnoMesParaMesAno());
relatorioDebitosDeUmaConta.setSituacaoConta(contaHistorico.getDebitoCreditoSituacaoAtual().getDescricaoDebitoCreditoSituacao()+"");
relatorioDebitosDeUmaConta.setSituacaoLigacaoAgua(contaHistorico.getLigacaoAguaSituacao().getDescricao());
relatorioDebitosDeUmaConta.setSituacaoLigacaoEsgoto(contaHistorico.getLigacaoEsgotoSituacao().getDescricao());
sessao.removeAttribute("conta");
sessao.removeAttribute("colecaoContaDebitosCobrados");
}
// se j� existe uma conta na sess�o
else if (sessao.getAttribute("contaHistorico") != null) {
// recupera a conta da sess�o
contaHistorico = (ContaHistorico) sessao
.getAttribute("contaHistorico");
} else {
// levanta o erro de conta inexistente
throw new ActionServletException(
"atencao.pesquisa.conta.inexistente");
}
// ====================================================================
// cria a cole��o de d�bitos cobrados hist�rico
Collection colecaoContaDebitosCobradosHistorico;
/*D�bitos Cobrados (Carregar cole��o)*/
// cria o filtro de d�bito cobrado
FiltroDebitoCobradoHistorico filtroDebitoCobradoHistorico = new FiltroDebitoCobradoHistorico();
// carrega o tipo de d�bito
filtroDebitoCobradoHistorico
.adicionarCaminhoParaCarregamentoEntidade("debitoTipo");
// seta o c�digo da conta hist�rico no filtro
filtroDebitoCobradoHistorico
.adicionarParametro(new ParametroSimples(
FiltroDebitoCobradoHistorico.CONTA_HISTORICO_ID,
contaHistorico.getId()));
// pesquisa a cole��o de d�bitos cobrados
colecaoContaDebitosCobradosHistorico = fachada.pesquisar(
filtroDebitoCobradoHistorico, DebitoCobradoHistorico.class
.getName());
// seta a cole��o de d�bitos cobrados hist�rico na sess�o
sessao.setAttribute("colecaoContaDebitosCobradosHistorico",
colecaoContaDebitosCobradosHistorico);
relatorioDebitosDeUmaConta.setColecaoDebitosCobradosHistorico(colecaoContaDebitosCobradosHistorico);
}
sessao.setAttribute("relatorioHelper",relatorioDebitosDeUmaConta);
// envia uma flag que ser� verificado no cliente_resultado_pesquisa.jsp
// para saber se ir� usar o enviar dados ou o enviar dados parametros
if (httpServletRequest.getParameter("caminhoRetornoTelaConsultaDebitos") != null) {
sessao.setAttribute("caminhoRetornoTelaConsultaDebitos",
httpServletRequest
.getParameter("caminhoRetornoTelaConsultaDebitos"));
}
// retorna o mapeamento contido na vari�vel retorno
return retorno;
}
}