package gcom.gui.cobranca;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.cliente.ClienteRelacaoTipo;
import gcom.cadastro.cliente.FiltroClienteImovel;
import gcom.cobranca.parcelamento.FiltroParcelamento;
import gcom.cobranca.parcelamento.Parcelamento;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.ControladorException;
import gcom.util.filtro.ParametroNulo;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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 ExibirConsultarListaParcelamentoDebitoAction extends
GcomAction {
/**
* < <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) {
// Seta a a��o de retorno
ActionForward retorno = actionMapping
.findForward("consultarListaParcelamentoDebito");
// Mudar isso quando tiver esquema de seguran�a
//HttpSession sessao = httpServletRequest.getSession(false);
ParcelamentoDebitoActionForm parcelamentoDebitoActionForm = (ParcelamentoDebitoActionForm) actionForm;
// Obt�m a facahda
Fachada fachada = Fachada.getInstancia();
// Pega os codigos que o usuario digitou para a pesquisa direta de imovel
String codigoImovel = httpServletRequest.getParameter("codigoImovel");
if (codigoImovel != null && !codigoImovel.trim().equals("")) {
// Pesquisa o imovel na base
FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel();
filtroClienteImovel.adicionarParametro(new ParametroSimples(
FiltroClienteImovel.IMOVEL_ID, codigoImovel));
filtroClienteImovel.adicionarParametro(new ParametroSimples(
FiltroClienteImovel.CLIENTE_RELACAO_TIPO_ID, ClienteRelacaoTipo.USUARIO));
filtroClienteImovel.adicionarParametro(new ParametroNulo( FiltroClienteImovel.DATA_FIM_RELACAO));
filtroClienteImovel
.adicionarCaminhoParaCarregamentoEntidade("imovel.setorComercial.municipio.unidadeFederacao");
filtroClienteImovel
.adicionarCaminhoParaCarregamentoEntidade("imovel.logradouroBairro.bairro");
filtroClienteImovel
.adicionarCaminhoParaCarregamentoEntidade("imovel.logradouroCep.cep");
filtroClienteImovel
.adicionarCaminhoParaCarregamentoEntidade("imovel.quadra");
filtroClienteImovel
.adicionarCaminhoParaCarregamentoEntidade("imovel.imovelPerfil");
filtroClienteImovel
.adicionarCaminhoParaCarregamentoEntidade("imovel.ligacaoAguaSituacao");
filtroClienteImovel
.adicionarCaminhoParaCarregamentoEntidade("imovel.ligacaoEsgotoSituacao");
filtroClienteImovel
.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtroClienteImovel
.adicionarCaminhoParaCarregamentoEntidade("cliente.clienteTipo");
filtroClienteImovel
.adicionarCaminhoParaCarregamentoEntidade("clienteRelacaoTipo");
Collection<ClienteImovel> imovelPesquisado = fachada.pesquisar(
filtroClienteImovel, ClienteImovel.class.getName());
// Se nenhum imovel for encontrado a mensagem � enviada para a p�gina
if (imovelPesquisado != null && imovelPesquisado.isEmpty()) {
httpServletRequest.setAttribute("enderecoFormatado","".toUpperCase());
parcelamentoDebitoActionForm.setNomeCliente("");
parcelamentoDebitoActionForm.setCpfCnpj("");
parcelamentoDebitoActionForm.setSituacaoAgua("");
parcelamentoDebitoActionForm.setSituacaoEsgoto("");
httpServletRequest.setAttribute("corImovel","exception");
parcelamentoDebitoActionForm.setInscricao(ConstantesSistema.CODIGO_IMOVEL_INEXISTENTE);
}
// obtem o imovel pesquisado
if (imovelPesquisado != null && !imovelPesquisado.isEmpty()) {
ClienteImovel dadosImovel = (ClienteImovel) ((List) imovelPesquisado).get(0);
//O endere�o foi encontrado
if (dadosImovel.getImovel().getId() != null)
{
parcelamentoDebitoActionForm.setCodigoImovel(""
+ dadosImovel.getImovel().getId());
}
if (dadosImovel.getImovel().getInscricaoFormatada() != null)
{
parcelamentoDebitoActionForm.setInscricao(""
+ dadosImovel.getImovel().getInscricaoFormatada());
}
if (dadosImovel.getImovel().getLigacaoAguaSituacao() != null)
{
parcelamentoDebitoActionForm.setSituacaoAgua(""
+ dadosImovel.getImovel().getLigacaoAguaSituacao().getDescricao());
}
if (dadosImovel.getImovel().getLigacaoEsgotoSituacao() != null)
{
parcelamentoDebitoActionForm.setSituacaoEsgoto(""
+ dadosImovel.getImovel().getLigacaoEsgotoSituacao().getDescricao());
}
if (dadosImovel.getCliente().getNome() != null)
{
parcelamentoDebitoActionForm.setNomeCliente(""
+ dadosImovel.getCliente().getNome());
}
if (dadosImovel.getImovel().getImovelPerfil() != null)
{
parcelamentoDebitoActionForm.setImovelPerfil(""
+ dadosImovel.getImovel().getImovelPerfil().getDescricao());
}
if (dadosImovel.getCliente().getClienteTipo().getIndicadorPessoaFisicaJuridica() == 1 ){
if (dadosImovel.getCliente().getCpfFormatado() != null)
{
parcelamentoDebitoActionForm.setCpfCnpj(""
+ dadosImovel.getCliente().getCpfFormatado());
}
}
else
{
if (dadosImovel.getCliente().getCnpjFormatado() != null)
{
parcelamentoDebitoActionForm.setCpfCnpj(""
+ dadosImovel.getCliente().getCnpjFormatado());
}
}
if (dadosImovel.getImovel().getNumeroParcelamento() != null)
{
parcelamentoDebitoActionForm.setParcelamento(""
+ dadosImovel.getImovel().getNumeroParcelamento());
}
if (dadosImovel.getImovel().getNumeroReparcelamento() != null)
{
parcelamentoDebitoActionForm.setReparcelamento(""
+ dadosImovel.getImovel().getNumeroReparcelamento());
}
if (dadosImovel.getImovel().getNumeroReparcelamentoConsecutivos() != null)
{
parcelamentoDebitoActionForm.setReparcelamentoConsecutivo(""
+ dadosImovel.getImovel().getNumeroReparcelamentoConsecutivos());
}
// Manda a colecao pelo request
httpServletRequest.setAttribute("imovelPesquisado",
imovelPesquisado);
String enderecoFormatado = "";
try {
enderecoFormatado = fachada.pesquisarEnderecoFormatado(new Integer(codigoImovel));
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (ControladorException e) {
e.printStackTrace();
}
httpServletRequest.setAttribute("enderecoFormatado",enderecoFormatado);
FiltroParcelamento filtroParcelamento = new FiltroParcelamento();
filtroParcelamento.adicionarParametro(new ParametroSimples(
FiltroParcelamento.IMOVEL_ID, codigoImovel));
filtroParcelamento
.adicionarCaminhoParaCarregamentoEntidade("parcelamentoSituacao");
Collection<Parcelamento> colecaoParcelamento = fachada.pesquisar(filtroParcelamento, Parcelamento.class.getName() );
if (colecaoParcelamento != null && !colecaoParcelamento.isEmpty())
{
httpServletRequest.setAttribute("colecaoParcelamento", colecaoParcelamento);
}
else
{
if (colecaoParcelamento == null || colecaoParcelamento.isEmpty()){
throw new ActionServletException("atencao.parcelamento.inexistente");
}
}
}
}
//httpServletRequest.setAttribute("ParcelamentoDebitoActionForm",parcelamentoDebitoActionForm);
return retorno;
}
}