package gcom.gui.arrecadacao;
import gcom.arrecadacao.FiltroGuiaDevolucao;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.cliente.ClienteRelacaoTipo;
import gcom.cadastro.cliente.ClienteTipo;
import gcom.cadastro.cliente.FiltroClienteImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.filtro.ParametroNulo;
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;
/**
* Permite filtrar resolu��es de diretoria [UC0219] Filtrar Resolu��o de
* Diretoria
*
* @author Rafael Corr�a
* @since 31/03/2006
*/
public class ExibirManterGuiaDevolucaoAction extends GcomAction {
/**
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("exibirManterGuiaDevolucaoCliente");
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
ManterGuiaDevolucaoActionForm manterGuiaDevolucaoActionForm = (ManterGuiaDevolucaoActionForm) actionForm;
// Limpa o atributo se o usu�rio voltou para o manter
if (sessao.getAttribute("guiaDevolucaoAtualizar") != null) {
sessao.removeAttribute("guiaDevolucaoAtualizar");
}
FiltroGuiaDevolucao filtroGuiaDevolucao = null;
if (sessao.getAttribute("filtroGuiaDevolucaoCliente") != null) {
filtroGuiaDevolucao = (FiltroGuiaDevolucao) sessao
.getAttribute("filtroGuiaDevolucaoCliente");
sessao.setAttribute("filtroGuiaDevolucaoCliente", filtroGuiaDevolucao);
Cliente cliente = (Cliente) sessao.getAttribute("cliente");
sessao.setAttribute("cliente", cliente);
manterGuiaDevolucaoActionForm.setIdCliente(cliente.getId()
.toString());
manterGuiaDevolucaoActionForm.setNomeCliente(cliente.getNome());
// Verifica o tipo do cliente para setar o cpf ou cnpj e profiss�o
// ou ramo atividade
if (cliente.getClienteTipo().getId().equals(
ClienteTipo.INDICADOR_PESSOA_FISICA)) {
manterGuiaDevolucaoActionForm.setCpfCnpj(cliente
.getCpfFormatado());
if (cliente.getProfissao() != null) {
manterGuiaDevolucaoActionForm.setProfissao(cliente
.getProfissao().getDescricao());
}
} else {
manterGuiaDevolucaoActionForm.setCpfCnpj(cliente
.getCnpjFormatado());
if (cliente.getRamoAtividade() != null) {
manterGuiaDevolucaoActionForm.setRamoAtividade(cliente
.getRamoAtividade().getDescricao());
}
}
} else {
filtroGuiaDevolucao = (FiltroGuiaDevolucao) sessao
.getAttribute("filtroGuiaDevolucaoImovel");
sessao.setAttribute("filtroGuiaDevolucaoImovel", filtroGuiaDevolucao);
Imovel imovel = (Imovel) sessao.getAttribute("imovel");
sessao.setAttribute("imovel", imovel);
manterGuiaDevolucaoActionForm
.setIdImovel(imovel.getId().toString());
manterGuiaDevolucaoActionForm.setInscricao(imovel
.getInscricaoFormatada());
FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel();
filtroClienteImovel.adicionarParametro(new ParametroSimples(
FiltroClienteImovel.IMOVEL_ID, imovel.getId()));
filtroClienteImovel.adicionarParametro(new ParametroSimples(
FiltroClienteImovel.CLIENTE_RELACAO_TIPO,
ClienteRelacaoTipo.USUARIO));
filtroClienteImovel.adicionarParametro(new ParametroNulo(
FiltroClienteImovel.DATA_FIM_RELACAO));
filtroClienteImovel
.adicionarCaminhoParaCarregamentoEntidade("cliente");
Collection colecaoClienteImovel = fachada.pesquisar(
filtroClienteImovel, ClienteImovel.class.getName());
if (colecaoClienteImovel != null && !colecaoClienteImovel.isEmpty()) {
ClienteImovel clienteImovel = (ClienteImovel) colecaoClienteImovel
.iterator().next();
manterGuiaDevolucaoActionForm.setNomeCliente(clienteImovel
.getCliente().getNome());
}
if (imovel.getLigacaoAguaSituacao() != null) {
manterGuiaDevolucaoActionForm.setSituacaoLigacaoAgua(imovel
.getLigacaoAguaSituacao().getDescricao());
}
if (imovel.getLigacaoEsgotoSituacao() != null) {
manterGuiaDevolucaoActionForm.setSituacaoLigacaoEsgoto(imovel
.getLigacaoEsgotoSituacao().getDescricao());
}
retorno = actionMapping
.findForward("exibirManterGuiaDevolucaoImovel");
}
// 1� Passo - Pegar o total de registros atrav�s de um count da consulta
// que aparecer� na tela
Integer totalRegistros = fachada
.pesquisarGuiaDevolucaoCount(filtroGuiaDevolucao);
// 2� Passo - Chamar a fun��o de Pagina��o passando o total de registros
retorno = this.controlarPaginacao(httpServletRequest, retorno,
totalRegistros);
// 3� Passo - Obter a cole��o da consulta que aparecer� na tela passando
// o numero de paginas
// da pesquisa que est� no request
// Faz os carregamentos necess�rios
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("registroAtendimento.imovel.localidade");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("registroAtendimento.imovel.setorComercial");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("registroAtendimento.imovel.quadra");
// filtroGuiaDevolucao
// .adicionarCaminhoParaCarregamentoEntidade("registroAtendimento.cliente");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("ordemServico.servicoTipo.debitoTipo");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("localidade");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("debitoTipo");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("imovel.localidade");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("imovel.setorComercial");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("imovel.quadra");
filtroGuiaDevolucao.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtroGuiaDevolucao.adicionarCaminhoParaCarregamentoEntidade("conta");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("guiaPagamento.debitoTipo");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("debitoACobrarGeral.debitoACobrar.debitoTipo");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("creditoTipo");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("documentoTipo");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("debitoCreditoSituacaoAtual");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("debitoCreditoSituacaoAnterior");
filtroGuiaDevolucao
.adicionarCaminhoParaCarregamentoEntidade("lancamentoItemContabil");
filtroGuiaDevolucao.setCampoOrderBy(
FiltroGuiaDevolucao.CREDITO_TIPO_ID,
FiltroGuiaDevolucao.DOCUMENTO_TIPO_ID);
Collection colecaoGuiaDevolucao = fachada.pesquisarGuiaDevolucao(
filtroGuiaDevolucao, ((Integer) httpServletRequest
.getAttribute("numeroPaginasPesquisa")));
filtroGuiaDevolucao.limparCamposOrderBy();
if (colecaoGuiaDevolucao != null && !colecaoGuiaDevolucao.isEmpty()) {
// if (colecaoGuiaDevolucao.size() == 1
// && (httpServletRequest.getParameter("page.offset") == null || httpServletRequest
// .getParameter("page.offset").equals("1"))) {
// if (httpServletRequest.getParameter("atualizar") != null) {
// retorno = actionMapping
// .findForward("exibirAtualizarGuiaDevolucao");
// GuiaDevolucao guiaDevolucao = (GuiaDevolucao) colecaoGuiaDevolucao
// .iterator().next();
// sessao.setAttribute("guiaDevolucao", guiaDevolucao);
// } else {
// httpServletRequest.setAttribute("colecaoGuiaDevolucao",
// colecaoGuiaDevolucao);
// }
// } else {
httpServletRequest.setAttribute("colecaoGuiaDevolucao",
colecaoGuiaDevolucao);
// }
} else {
// Nenhuma resolu��o de diretoria cadastrada
throw new ActionServletException("atencao.pesquisa.nenhumresultado");
}
return retorno;
}
}