package gcom.gui.cobranca;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.ClienteRelacaoTipo;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.cliente.FiltroClienteRelacaoTipo;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.List;
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;
/**
* Description of the Class
*
* @author Fernanda Paiva
* @created 10 de Janeiro de 2006
*/
public class ExibirConsultarDebitoAction extends GcomAction {
/**
* Description of the Method
*
* @param actionMapping
* Description of the Parameter
* @param actionForm
* Description of the Parameter
* @param httpServletRequest
* Description of the Parameter
* @param httpServletResponse
* Description of the Parameter
* @return Description of the Return Value
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("consultarDebito");
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
ConsultarDebitoActionForm consultarDebitoActionForm = (ConsultarDebitoActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
if (httpServletRequest.getParameter("menu") != null && !httpServletRequest.getParameter("menu").equals("")) {
consultarDebitoActionForm.setResponsavel("0");
}
if (httpServletRequest.getParameter("voltar") != null && !httpServletRequest.getParameter("voltar").equals("")) {
consultarDebitoActionForm.setTipoRelacao("-1");
}
if (!fachada.verificarPermissaoConsultarDebitosAtualDoImovelOuTodos(usuario)) {
sessao.setAttribute("semPermissao", true);
}
// Remove as cole��es e os valores da sess�o
sessao.removeAttribute("colecaoContaValores");
sessao.removeAttribute("valorConta");
sessao.removeAttribute("valorAcrescimo");
sessao.removeAttribute("valorAgua");
sessao.removeAttribute("valorEsgoto");
sessao.removeAttribute("valorDebito");
sessao.removeAttribute("valorCredito");
sessao.removeAttribute("valorContaAcrescimo");
sessao.removeAttribute("colecaoDebitoACobrar");
sessao.removeAttribute("valorDebitoACobrar");
sessao.removeAttribute("colecaoCreditoARealizar");
sessao.removeAttribute("valorCreditoARealizar");
sessao.removeAttribute("colecaoGuiaPagamentoValores");
sessao.removeAttribute("valorGuiaPagamento");
sessao.removeAttribute("valorTotalSemAcrescimo");
sessao.removeAttribute("valorTotalComAcrescimo");
sessao.removeAttribute("colecaoDebitoCliente");
sessao.removeAttribute("tipoRelacao");
sessao.removeAttribute("valorImposto");
String idDigitadoEnterCliente = (String) consultarDebitoActionForm.getCodigoCliente();
String idDigitadoEnterImovel = (String) consultarDebitoActionForm.getCodigoImovel();
String idDigitadoEnterClienteSuperior = (String) consultarDebitoActionForm.getCodigoClienteSuperior();
// verifica se o codigo do cliente foi digitado
if (idDigitadoEnterCliente != null
&& !idDigitadoEnterCliente.trim().equals("")
&& Integer.parseInt(idDigitadoEnterCliente) > 0) {
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, idDigitadoEnterCliente));
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection clienteEncontrado = fachada.pesquisar(filtroCliente,
Cliente.class.getName());
if (clienteEncontrado != null && !clienteEncontrado.isEmpty()) {
// O Cliente foi encontrado
if (((Cliente) ((List) clienteEncontrado).get(0))
.getIndicadorUso().equals(
ConstantesSistema.INDICADOR_USO_DESATIVO)) {
throw new ActionServletException("atencao.cliente.inativo",
null, ""
+ ((Cliente) ((List) clienteEncontrado)
.get(0)).getId());
}
consultarDebitoActionForm
.setCodigoCliente(((Cliente) ((List) clienteEncontrado)
.get(0)).getId().toString());
consultarDebitoActionForm
.setCodigoClienteClone(((Cliente) ((List) clienteEncontrado)
.get(0)).getId().toString());
consultarDebitoActionForm
.setNomeCliente(((Cliente) ((List) clienteEncontrado)
.get(0)).getNome());
} else {
httpServletRequest.setAttribute("corCliente","exception");
consultarDebitoActionForm
.setNomeCliente(ConstantesSistema.CODIGO_CLIENTE_INEXISTENTE);
}
}
// verifica se o codigo do cliente superior foi digitado
if (idDigitadoEnterClienteSuperior != null
&& !idDigitadoEnterClienteSuperior.trim().equals("")
&& Integer.parseInt(idDigitadoEnterClienteSuperior) > 0) {
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, idDigitadoEnterClienteSuperior));
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection clienteEncontrado = fachada.pesquisar(filtroCliente,
Cliente.class.getName());
if (clienteEncontrado != null && !clienteEncontrado.isEmpty()) {
// O Cliente foi encontrado
if (((Cliente) ((List) clienteEncontrado).get(0))
.getIndicadorUso().equals(
ConstantesSistema.INDICADOR_USO_DESATIVO)) {
throw new ActionServletException("atencao.cliente.inativo",
null, ""
+ ((Cliente) ((List) clienteEncontrado)
.get(0)).getId());
}
consultarDebitoActionForm
.setCodigoClienteSuperior(((Cliente) ((List) clienteEncontrado)
.get(0)).getId().toString());
consultarDebitoActionForm
.setCodigoClienteSuperiorClone(((Cliente) ((List) clienteEncontrado)
.get(0)).getId().toString());
consultarDebitoActionForm
.setNomeClienteSuperior(((Cliente) ((List) clienteEncontrado)
.get(0)).getNome());
} else {
httpServletRequest.setAttribute("corClienteSuperior","exception");
consultarDebitoActionForm
.setNomeClienteSuperior(ConstantesSistema.CODIGO_CLIENTE_INEXISTENTE);
}
}
if (idDigitadoEnterImovel != null && !idDigitadoEnterImovel.trim().equals("")) {
// Pesquisa o imovel na base
String imovelEncontrado = fachada.pesquisarInscricaoImovel(new Integer(idDigitadoEnterImovel));
if (imovelEncontrado != null && !imovelEncontrado.equalsIgnoreCase("")) {
// O imovel foi encontrado
consultarDebitoActionForm.setCodigoImovel(idDigitadoEnterImovel);
consultarDebitoActionForm.setCodigoImovelClone(idDigitadoEnterImovel);
consultarDebitoActionForm.setInscricaoImovel(imovelEncontrado);
} else {
httpServletRequest.setAttribute("corImovel","exception");
consultarDebitoActionForm
.setInscricaoImovel(ConstantesSistema.CODIGO_IMOVEL_INEXISTENTE);
}
}
FiltroClienteRelacaoTipo filtroClienteRelacaoTipo = new FiltroClienteRelacaoTipo();
filtroClienteRelacaoTipo.adicionarParametro(new ParametroSimples(FiltroClienteRelacaoTipo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection<ClienteRelacaoTipo> collectionClienteRelacaoTipo = fachada.pesquisar(filtroClienteRelacaoTipo, ClienteRelacaoTipo.class.getName() );
if (collectionClienteRelacaoTipo != null && !collectionClienteRelacaoTipo.isEmpty())
{
httpServletRequest.setAttribute("collectionClienteRelacaoTipo", collectionClienteRelacaoTipo);
}
else
{
throw new ActionServletException(
"atencao.collectionClienteRelacaoTipo_inexistente", null, "id");
}
return retorno;
}
}