package gcom.gui.relatorio.atendimentopublico.ordemservico;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.FiltroUsuario;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
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;
/**
* [UC1120] Gerar Relat�rio de religa��o de clientes inadimplentes
*
* @author Hugo Leonardo
*
* @date 24/01/2011
*/
public class ExibirGerarRelatorioReligacaoClientesInadiplentesAction extends GcomAction {
private String localidadeID = null;
private String setorComercialCD = null;
private Collection colecaoPesquisa = null;
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("exibirGerarRelatorioReligacaoClientesInadiplentes");
GerarRelatorioReligacaoClientesInadiplentesForm form =
(GerarRelatorioReligacaoClientesInadiplentesForm) actionForm;
// Ger�ncia Regional
this.pesquisarGerenciaRegional(httpServletRequest, form);
// Unidade Organizacional
this.pesquisarUnidadeNegocio(httpServletRequest, form);
String objetoConsulta = (String) httpServletRequest
.getParameter("objetoConsulta");
if (objetoConsulta != null && !objetoConsulta.trim().equalsIgnoreCase("")) {
switch (Integer.parseInt(objetoConsulta)) {
// Localidade
case 1:
this.pesquisarLocalidade(form, httpServletRequest);
break;
// Setor Comercial
case 2:
this.pesquisarLocalidade(form, httpServletRequest);
this.pesquisarSetorComercial(form, httpServletRequest);
break;
default:
break;
}
}
// pesquisa Cliente
if (form.getClienteID() != null && !form.getClienteID().trim().equals("")) {
this.pesquisarCliente( httpServletRequest, form);
}
// Pesquisa Usu�rio
if (form.getUsuarioID() != null && !form.getUsuarioID().trim().equals("")) {
this.pesquisarUsuario( httpServletRequest, form);
}
return retorno;
}
/**
* Pesquisar Localidade
*
* @author Hugo Leonardo
* @date 18/01/2011
*/
private void pesquisarLocalidade(GerarRelatorioReligacaoClientesInadiplentesForm form,
HttpServletRequest httpServletRequest) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
// Recebe o valor do campo localidadeOrigemID do formul�rio.
localidadeID = (String) form.getLocalidadeID();
filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, localidadeID));
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
// Retorna localidade
colecaoPesquisa = this.getFachada().pesquisar(filtroLocalidade,
Localidade.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
form.setLocalidadeID("");
form.setNomeLocalidade("Localidade Inexistente");
httpServletRequest.setAttribute("corLocalidade", "exception");
httpServletRequest.setAttribute("nomeCampo", "localidadeID");
}
else {
Localidade objetoLocalidade = (Localidade) Util.retonarObjetoDeColecao(colecaoPesquisa);
form.setLocalidadeID(String.valueOf(objetoLocalidade.getId()));
form.setNomeLocalidade(objetoLocalidade.getDescricao());
httpServletRequest.setAttribute("corLocalidade", "valor");
httpServletRequest.setAttribute("nomeCampo", "setorComercialCD");
}
}
/**
* Pesquisar Setor Comercial
*
* @author Hugo Leonardo
* @date 18/01/2011
*/
private void pesquisarSetorComercial(GerarRelatorioReligacaoClientesInadiplentesForm form,
HttpServletRequest httpServletRequest) {
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
// Recebe o valor do campo localidadeOrigemID do formul�rio.
localidadeID = (String) form.getLocalidadeID();
// O campo localidadeOrigemID ser� obrigat�rio
if (localidadeID != null && !localidadeID.trim().equalsIgnoreCase("")) {
setorComercialCD = (String) form.getSetorComercialCD();
// Adiciona o id da localidade que est� no formul�rio para
// compor a pesquisa.
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE, localidadeID));
// Adiciona o c�digo do setor comercial que esta no formul�rio
// para compor a pesquisa.
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setorComercialCD));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
// Retorna setorComercial
colecaoPesquisa = this.getFachada().pesquisar(filtroSetorComercial, SetorComercial.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
form.setSetorComercialCD("");
form.setSetorComercialID("");
form.setNomeSetorComercial("Setor comercial inexistente.");
httpServletRequest.setAttribute("corSetorComercial", "exception");
httpServletRequest.setAttribute("nomeCampo", "setorComercialCD");
}
else {
SetorComercial objetoSetorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoPesquisa);
form.setSetorComercialCD(String.valueOf(objetoSetorComercial.getCodigo()));
form.setSetorComercialID(String.valueOf(objetoSetorComercial.getId()));
form.setNomeSetorComercial(objetoSetorComercial.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "clienteID");
}
} else {
// Limpa o campo setorComercialCD do formul�rio
form.setSetorComercialCD("");
form.setNomeSetorComercial("Informe a localidade.");
httpServletRequest.setAttribute("corSetorComercial", "exception");
}
}
/**
* Pesquisar Usu�rio
*
* @author Hugo Leonardo
* @date 24/01/2011
*/
private void pesquisarUsuario(HttpServletRequest httpServletRequest,
GerarRelatorioReligacaoClientesInadiplentesForm form) {
// Pesquisa a usu�rio na base
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ParametroSimples(
FiltroUsuario.ID, form.getUsuarioID()));
Collection<Usuario> usuarioPesquisado = this.getFachada().pesquisar(
filtroUsuario, Usuario.class.getName());
// Se nenhum usu�rio for encontrado a mensagem � enviada para a p�gina
if (usuarioPesquisado != null && !usuarioPesquisado.isEmpty()) {
Usuario usuario = (Usuario) Util.retonarObjetoDeColecao(usuarioPesquisado);
form.setUsuarioID("" + usuario.getId());
form.setNomeUsuario( usuario.getNomeUsuario());
} else {
form.setUsuarioID("");
form.setNomeUsuario("USUARIO INEXISTENTE");
httpServletRequest.setAttribute("usuarioInexistente",true);
httpServletRequest.setAttribute("nomeCampo", "usuarioID");
httpServletRequest.setAttribute("corUsuario", "exception");
}
}
/**
* Pesquisar Cliente
*
* @author Hugo Leonardo
* @date 24/01/2011
*/
private void pesquisarCliente(HttpServletRequest httpServletRequest,
GerarRelatorioReligacaoClientesInadiplentesForm form) {
// Pesquisa a usu�rio na base
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, form.getClienteID()));
Collection<Cliente> clientePesquisado = this.getFachada().pesquisar(
filtroCliente, Cliente.class.getName());
// Se nenhum usu�rio for encontrado a mensagem � enviada para a p�gina
if (clientePesquisado != null && !clientePesquisado.isEmpty()) {
Cliente cliente = (Cliente) Util.retonarObjetoDeColecao(clientePesquisado);
form.setClienteID("" + cliente.getId());
form.setNomeCliente( cliente.getNome());
} else {
form.setClienteID("");
form.setNomeCliente("CLIENTE INEXISTENTE");
httpServletRequest.setAttribute("clienteInexistente", true);
httpServletRequest.setAttribute("nomeCampo", "clienteID");
httpServletRequest.setAttribute("corCliente", "exception");
}
}
/**
* Pesquisar Ger�ncia Regional
*
* @author Hugo Leonardo
* @date 24/01/2011
*/
private void pesquisarGerenciaRegional(HttpServletRequest httpServletRequest,
GerarRelatorioReligacaoClientesInadiplentesForm form){
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.setConsultaSemLimites(true);
filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME);
filtroGerenciaRegional.adicionarParametro(
new ParametroSimples(FiltroGerenciaRegional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoGerenciaRegional =
this.getFachada().pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getName());
if (colecaoGerenciaRegional == null || colecaoGerenciaRegional.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null,"Ger�ncia Regional");
} else {
httpServletRequest.setAttribute("colecaoGerenciaRegional", colecaoGerenciaRegional);
}
}
/**
* Pesquisar Unidade Organizacional
*
* @author Hugo Leonardo
* @date 24/01/2011
*/
private void pesquisarUnidadeNegocio(HttpServletRequest httpServletRequest,
GerarRelatorioReligacaoClientesInadiplentesForm form){
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
filtroUnidadeNegocio.setConsultaSemLimites(true);
if(form.getGerenciaRegionalID() != null && !form.getGerenciaRegionalID().equals("-1")){
filtroUnidadeNegocio.adicionarParametro( new ParametroSimples(
FiltroUnidadeNegocio.ID_GERENCIA, form.getGerenciaRegionalID()));
}
filtroUnidadeNegocio.setCampoOrderBy(FiltroUnidadeNegocio.NOME);
filtroUnidadeNegocio.adicionarParametro(
new ParametroSimples(FiltroUnidadeNegocio.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoUnidadeNegocio =
this.getFachada().pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName());
if (colecaoUnidadeNegocio == null || colecaoUnidadeNegocio.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null, "Unidade Neg�cio");
} else {
httpServletRequest.setAttribute("colecaoUnidadeNegocio", colecaoUnidadeNegocio);
}
}
}