package gcom.gui.faturamento.debito;
import gcom.cobranca.parcelamento.FiltroParcelamentoItem;
import gcom.cobranca.parcelamento.ParcelamentoItem;
import gcom.fachada.Fachada;
import gcom.faturamento.debito.DebitoACobrar;
import gcom.faturamento.debito.DebitoACobrarHistorico;
import gcom.faturamento.debito.FiltroDebitoACobrar;
import gcom.faturamento.debito.FiltroDebitoACobrarHistorico;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ControladorException;
import gcom.util.filtro.ParametroNaoNulo;
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 Fernanda Paiva
* @created 16 de Janeiro de 2006
*/
public class ExibirConsultarDebitoACobrarAction 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("exibirConsultarDebitoACobrar");
// cria uma inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
// cria uma inst�ncia da sess�o
HttpSession sessao = httpServletRequest.getSession(false);
// recupera o c�digo da conta do request
String idImovel = httpServletRequest.getParameter("imovelID");
String idDebito = httpServletRequest.getParameter("debitoID");
String idDebitoHistorico = httpServletRequest.getParameter("debitoHistoricoID");
String idParcelamento = httpServletRequest
.getParameter("parcelamentoID");
// Pesquisando o debito a partir do id imovel
if (idImovel != null && !idImovel.equalsIgnoreCase("")) {
// cria o filtro do imovel
String imovel = fachada.pesquisarInscricaoImovelExcluidoOuNao(new Integer(idImovel));
String enderecoFormatado = "";
try {
enderecoFormatado = fachada.pesquisarEnderecoFormatado(new Integer(idImovel));
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (ControladorException e) {
e.printStackTrace();
}
httpServletRequest.setAttribute("idImovelConsultado", idImovel);
httpServletRequest.setAttribute("enderecoFormatado", enderecoFormatado);
// se n�o encontrou nenhum imovel com o c�digo informado
if (imovel == null || imovel.equalsIgnoreCase("")) {
throw new ActionServletException("atencao.imovel.inexistente");
}
// seta o objeto conta na sess�o
httpServletRequest.setAttribute("imovelId", idImovel);
}
// ====================================================================
// cria a cole��o de d�bitos a cobrar
Collection colecaoDebitoACobrarConsultar;
Collection colecaoDebitoACobrarHistoricoConsultar;
/*
* D�bitos Cobrados (Carregar cole��o)
* ======================================================================
*/
// se n�o existir a cole��o na sess�o
if (idParcelamento != null && !idParcelamento.equals("")) {
FiltroParcelamentoItem filtroParcelamentoItem = new FiltroParcelamentoItem();
// seta o c�digo do imovel no filtro
filtroParcelamentoItem.adicionarParametro(new ParametroSimples(FiltroParcelamentoItem.PARCELAMENTO, idParcelamento));
filtroParcelamentoItem.adicionarParametro(new ParametroNaoNulo(FiltroParcelamentoItem.DEBITO_A_COBRAR));
// carrega o debitoACobrar
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrar.debitoTipo");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrar.debitoCreditoSituacaoAtual");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrar.registroAtendimento");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrar.ordemServico");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrar.financiamentoTipo");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrar.cobrancaForma");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrar.usuario");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrarHistorico.debitoTipo");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrarHistorico.debitoCreditoSituacaoAtual");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrarHistorico.registroAtendimento");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrarHistorico.ordemServico");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrarHistorico.financiamentoTipo");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrarHistorico.cobrancaForma");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrarHistorico.usuario");
// carrega o parcelamento
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("parcelamento");
// carrega o im�vel origem do d�bito a cobrar e debito a cobrar historico
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrar.debitoACobrarGeralOrigem.debitoACobrar.imovel");
filtroParcelamentoItem.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrarHistorico.origem.debitoACobrarHistorico.imovel");
Collection colecaoParcelamentoItem = fachada.pesquisar(filtroParcelamentoItem, ParcelamentoItem.class.getName());
if (colecaoParcelamentoItem == null || colecaoParcelamentoItem.isEmpty()) {
throw new ActionServletException("atencao.faturamento.debito_a_cobrar.inexistente");
} else {
// seta a cole��o de d�bitos cobrados na sess�o
sessao.setAttribute("colecaoParcelamentoItem", colecaoParcelamentoItem);
}
}else if(idDebitoHistorico != null && !idDebitoHistorico.equals("")){
//dados de DEBITO A COBRAR HISTORICO
//cria o filtro de d�bito a cobrar
FiltroDebitoACobrarHistorico filtroDebitoACobrarHistorico = new FiltroDebitoACobrarHistorico();
// seta o c�digo do imovel no filtro
filtroDebitoACobrarHistorico.adicionarParametro(new ParametroSimples(FiltroDebitoACobrarHistorico.ID, idDebitoHistorico));
if (idImovel != null) {
filtroDebitoACobrarHistorico.adicionarParametro(new ParametroSimples(FiltroDebitoACobrarHistorico.IMOVEL_ID, idImovel));
}
filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("debitoTipo");
filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("debitoCreditoSituacaoAtual");
filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("ordemServico");
filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("registroAtendimento");
filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("financiamentoTipo");
filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("cobrancaForma");
filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("usuario");
// carrega o im�vel origem do d�bito a cobrar
filtroDebitoACobrarHistorico.adicionarCaminhoParaCarregamentoEntidade("origem.debitoACobrarHistorico.imovel");
// pesquisa a cole��o de d�bitos cobrados
colecaoDebitoACobrarHistoricoConsultar = fachada.pesquisar(filtroDebitoACobrarHistorico, DebitoACobrarHistorico.class.getName());
if (colecaoDebitoACobrarHistoricoConsultar == null || colecaoDebitoACobrarHistoricoConsultar.isEmpty()) {
throw new ActionServletException("atencao.faturamento.debito_a_cobrar.inexistente");
} else {
// seta a cole��o de d�bitos cobrados na sess�o
sessao.setAttribute("colecaoDebitoACobrarHistoricoConsultar", colecaoDebitoACobrarHistoricoConsultar);
}
} else {
//dados de DEBITO A COBRAR
// cria o filtro de d�bito a cobrar
FiltroDebitoACobrar filtroDebitoACobrar = new FiltroDebitoACobrar();
if (idDebito != null) {
// seta o c�digo do imovel no filtro
filtroDebitoACobrar.adicionarParametro(new ParametroSimples(FiltroDebitoACobrar.ID, idDebito));
}
if (idImovel != null) {
filtroDebitoACobrar.adicionarParametro(new ParametroSimples(FiltroDebitoACobrar.IMOVEL_ID, idImovel));
}
filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("debitoTipo");
filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("debitoCreditoSituacaoAtual");
filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("ordemServico");
filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("registroAtendimento");
filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("financiamentoTipo");
filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("cobrancaForma");
filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("usuario");
// carrega o im�vel origem do d�bito a cobrar
filtroDebitoACobrar.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeralOrigem.debitoACobrar.imovel");
// pesquisa a cole��o de d�bitos cobrados
colecaoDebitoACobrarConsultar = fachada.pesquisar(filtroDebitoACobrar, DebitoACobrar.class.getName());
if (colecaoDebitoACobrarConsultar == null || colecaoDebitoACobrarConsultar.isEmpty()) {
throw new ActionServletException("atencao.faturamento.debito_a_cobrar.inexistente");
} else {
// seta a cole��o de d�bitos cobrados na sess�o
sessao.setAttribute("colecaoDebitoACobrarConsultar", colecaoDebitoACobrarConsultar);
}
}
// ====================================================================
// 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("caminhoRetornoTelaConsultaDebitoACobrar") != null) {
sessao.setAttribute("caminhoRetornoTelaConsultaDebitoACobrar",
httpServletRequest
.getParameter("caminhoRetornoTelaConsultaDebitoACobrar"));
}
// retorna o mapeamento contido na vari�vel retorno
return retorno;
}
}