package gcom.gui.micromedicao;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoGrupo;
import gcom.faturamento.FiltroFaturamentoGrupo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.leitura.FiltroLeituraAnormalidade;
import gcom.micromedicao.leitura.LeituraAnormalidade;
import gcom.util.ConstantesInterfaceGSAN;
import gcom.util.ConstantesSistema;
import gcom.util.Internacionalizador;
import gcom.util.Util;
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;
/**
* Descri��o da classe
*
* @author Pedro Alexandre
* @date 21/05/2007
*/
public class ExibirGerarRelatorioAnormalidadeLeituraPeriodoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
GerarRelatorioAnormalidadeLeituraPeriodoActionForm relatorioForm = (GerarRelatorioAnormalidadeLeituraPeriodoActionForm) actionForm;
if (httpServletRequest.getParameter("menu") != null) {
relatorioForm.limparForm();
carregarColecoes(httpServletRequest.getSession(false));
}
consultarLocalidadeInicial(relatorioForm);
consultarLocalidadeFinal(relatorioForm);
consultarSetorComercialInicial(relatorioForm, httpServletRequest);
consultarSetorComercialFinal(relatorioForm, httpServletRequest);
return actionMapping.findForward("exibirGerarRelatorioAnormalidadeLeituraPeriodo");
}
/**
* Esse m�todo consulta a localidade final, caso o usu�rio a tenha informado.
* Se por acaso ela n�o existir, � enviada a mensagem informando isso.
*
*@since 02/10/2009
*@author Marlon Patrick
*/
private void consultarLocalidadeFinal(GerarRelatorioAnormalidadeLeituraPeriodoActionForm relatorioForm) {
if ( Util.verificarNaoVazio(relatorioForm.getIdLocalidadeFinal())) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID,relatorioForm.getIdLocalidadeFinal()));
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.INDICADORUSO
,ConstantesSistema.INDICADOR_USO_ATIVO));
boolean isUnidadeNegocioInformado = false;
if(Util.isCampoComboboxInformado(relatorioForm.getIdUnidadeNegocio())){
isUnidadeNegocioInformado = true;
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.UNIDADE_NEGOCIO_ID,relatorioForm.getIdUnidadeNegocio()));
}
Collection<Localidade> colecaoLocalidade =
this.getFachada().pesquisar(filtroLocalidade, Localidade.class.getName());
if ( Util.isVazioOrNulo(colecaoLocalidade)) {
relatorioForm.setIdLocalidadeFinal("");
if(isUnidadeNegocioInformado){
relatorioForm.setNomeLocalidadeFinal(
Internacionalizador.getMensagem(ConstantesInterfaceGSAN.ATENCAO_GSAN_CAMPO1_INEXISTENTE_NA_CAMPO2_INFORMADA,
new String[]{ConstantesInterfaceGSAN.LABEL_GSAN_LOCALIDADE,ConstantesInterfaceGSAN.LABEL_GSAN_UNIDADE_NEGOCIO}));
}else{
relatorioForm.setNomeLocalidadeFinal(Internacionalizador.getMensagem(
ConstantesInterfaceGSAN.ATENCAO_PESQUISA_INEXISTENTE, ConstantesInterfaceGSAN.LABEL_GSAN_LOCALIDADE));
}
return;
}
Localidade localidade = colecaoLocalidade.iterator().next();
relatorioForm.setIdLocalidadeFinal(localidade.getId().toString());
relatorioForm.setNomeLocalidadeFinal(localidade.getDescricao());
}
}
/**
* Esse m�todo consulta a localidade inicial, caso o usu�rio a tenha informado.
* Se por acaso ela n�o existir, � enviada a mensagem informando isso.
*
*@since 02/10/2009
*@author Marlon Patrick
*/
private void consultarLocalidadeInicial(GerarRelatorioAnormalidadeLeituraPeriodoActionForm relatorioForm) {
if ( Util.verificarNaoVazio(relatorioForm.getIdLocalidadeInicial())) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID,relatorioForm.getIdLocalidadeInicial()));
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.INDICADORUSO
,ConstantesSistema.INDICADOR_USO_ATIVO));
boolean isUnidadeNegocioInformado = false;
if(Util.isCampoComboboxInformado(relatorioForm.getIdUnidadeNegocio())){
isUnidadeNegocioInformado = true;
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.UNIDADE_NEGOCIO_ID,relatorioForm.getIdUnidadeNegocio()));
}
Collection<Localidade> colecaoLocalidade =
this.getFachada().pesquisar(filtroLocalidade, Localidade.class.getName());
if ( Util.isVazioOrNulo(colecaoLocalidade)) {
relatorioForm.setIdLocalidadeInicial("");
if(isUnidadeNegocioInformado){
relatorioForm.setNomeLocalidadeFinal(
Internacionalizador.getMensagem(ConstantesInterfaceGSAN.ATENCAO_GSAN_CAMPO1_INEXISTENTE_NA_CAMPO2_INFORMADA,
new String[]{ConstantesInterfaceGSAN.LABEL_GSAN_LOCALIDADE,ConstantesInterfaceGSAN.LABEL_GSAN_UNIDADE_NEGOCIO}));
}else{
relatorioForm.setNomeLocalidadeFinal(Internacionalizador.getMensagem(
ConstantesInterfaceGSAN.ATENCAO_PESQUISA_INEXISTENTE, ConstantesInterfaceGSAN.LABEL_GSAN_LOCALIDADE));
}
return;
}
Localidade localidade = colecaoLocalidade.iterator().next();
relatorioForm.setIdLocalidadeInicial(localidade.getId().toString());
relatorioForm.setNomeLocalidadeInicial(localidade.getDescricao());
}
}
/**
* Esse m�todo consulta o setor inicial, caso o usu�rio o tenha informado.
* Se por acaso ele n�o existir, � enviada a mensagem informando isso.
*
*@since 02/10/2009
*@author Marlon Patrick
*/
private void consultarSetorComercialInicial(GerarRelatorioAnormalidadeLeituraPeriodoActionForm relatorioForm,
HttpServletRequest httpServletRequest) {
if ( Util.verificarNaoVazio(relatorioForm.getCodigoSetorComercialInicial())) {
Integer codigoSetorInicial = new Integer(relatorioForm.getCodigoSetorComercialInicial());
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(
new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,codigoSetorInicial));
filtroSetorComercial.adicionarParametro(
new ParametroSimples(FiltroSetorComercial.LOCALIDADE_ID,new Integer(relatorioForm.getIdLocalidadeInicial())));
Collection<SetorComercial> colecaoSetorComercial =
this.getFachada().pesquisar(filtroSetorComercial, SetorComercial.class.getName());
if ( Util.isVazioOrNulo(colecaoSetorComercial)) {
relatorioForm.setNomeSetorComercialInicial(Internacionalizador.getMensagem(ConstantesInterfaceGSAN.ATENCAO_GSAN_CAMPO1_INEXISTENTE_NA_CAMPO2_INFORMADA,
new String[]{ConstantesInterfaceGSAN.LABEL_GSAN_SETOR_COMERCIAL,ConstantesInterfaceGSAN.LABEL_GSAN_LOCALIDADE}));
httpServletRequest.setAttribute("setorComercialInicialInexistente",true);
} else {
SetorComercial setor = colecaoSetorComercial.iterator().next();
relatorioForm.setNomeSetorComercialInicial(setor.getDescricao());
}
} else {
relatorioForm.setNomeSetorComercialInicial("");
}
}
/**
* Esse m�todo consulta o setor final, caso o usu�rio o tenha informado.
* Se por acaso ele n�o existir, � enviada a mensagem informando isso.
*
*@since 02/10/2009
*@author Marlon Patrick
*/
private void consultarSetorComercialFinal(GerarRelatorioAnormalidadeLeituraPeriodoActionForm relatorioForm,
HttpServletRequest httpServletRequest) {
if ( Util.verificarNaoVazio(relatorioForm.getCodigoSetorComercialFinal())) {
Integer codigoSetorFinal = new Integer(relatorioForm.getCodigoSetorComercialFinal());
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(
new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,codigoSetorFinal));
filtroSetorComercial.adicionarParametro(
new ParametroSimples(FiltroSetorComercial.LOCALIDADE_ID,new Integer(relatorioForm.getIdLocalidadeFinal())));
Collection<SetorComercial> colecaoSetorComercial =
this.getFachada().pesquisar(filtroSetorComercial, SetorComercial.class.getName());
if ( Util.isVazioOrNulo(colecaoSetorComercial)) {
relatorioForm.setNomeSetorComercialFinal(Internacionalizador.getMensagem(ConstantesInterfaceGSAN.ATENCAO_GSAN_CAMPO1_INEXISTENTE_NA_CAMPO2_INFORMADA,
new String[]{ConstantesInterfaceGSAN.LABEL_GSAN_SETOR_COMERCIAL,ConstantesInterfaceGSAN.LABEL_GSAN_LOCALIDADE}));
httpServletRequest.setAttribute("setorComercialFinalInexistente",true);
} else {
SetorComercial setor = colecaoSetorComercial.iterator().next();
relatorioForm
.setNomeSetorComercialFinal(setor.getDescricao());
}
} else {
relatorioForm.setNomeSetorComercialFinal("");
}
}
/**
* Esse m�todo carrega todas as cole��es a serem exibidas na tela
* na sess�o. (Anormalidades de Leitura e Grupos de Faturamento)
*
*@since 29/10/2009
*@author Marlon Patrick
*/
private void carregarColecoes(HttpSession sessao) {
Fachada fachada = Fachada.getInstancia();
FiltroLeituraAnormalidade filtroConsumoAnormalidade = new FiltroLeituraAnormalidade(FiltroLeituraAnormalidade.DESCRICAO);
filtroConsumoAnormalidade.adicionarParametro(new ParametroSimples(FiltroLeituraAnormalidade.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection<LeituraAnormalidade> colecaoAnormalidadeleitura = fachada.pesquisar(filtroConsumoAnormalidade, LeituraAnormalidade.class.getName());
if(Util.isVazioOrNulo(colecaoAnormalidadeleitura)){
throw new ActionServletException(ConstantesInterfaceGSAN.ATENCAO_ENTIDADE_SEM_DADOS_PARA_SELECAO,
ConstantesInterfaceGSAN.LABEL_GSAN_ANORMALIDADE_LEITURA);
}
sessao.setAttribute("colecaoAnormalidadesLeitura",colecaoAnormalidadeleitura);
FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo(FiltroFaturamentoGrupo.DESCRICAO);
filtroFaturamentoGrupo.adicionarParametro(new ParametroSimples(FiltroFaturamentoGrupo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection<FaturamentoGrupo> colecaoFaturamentoGrupo = fachada.pesquisar(filtroFaturamentoGrupo, FaturamentoGrupo.class.getName());
if(Util.isVazioOrNulo(colecaoFaturamentoGrupo)){
throw new ActionServletException(ConstantesInterfaceGSAN.ATENCAO_ENTIDADE_SEM_DADOS_PARA_SELECAO,
ConstantesInterfaceGSAN.LABEL_GSAN_GRUPO_FATURAMENTO);
}
sessao.setAttribute("colecaoGruposFaturamento",colecaoFaturamentoGrupo);
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio(FiltroUnidadeNegocio.NOME);
filtroUnidadeNegocio.adicionarParametro(new ParametroSimples(FiltroUnidadeNegocio.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection<UnidadeNegocio> colecaoUnidadeNegocio = fachada.pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName());
if(Util.isVazioOrNulo(colecaoUnidadeNegocio)){
throw new ActionServletException(ConstantesInterfaceGSAN.ATENCAO_ENTIDADE_SEM_DADOS_PARA_SELECAO,
ConstantesInterfaceGSAN.LABEL_GSAN_GRUPO_FATURAMENTO);
}
sessao.setAttribute("colecaoUnidadeNegocio",
fachada.pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName()));
}
}