package gcom.gui.relatorio.atendimentopublico;
import gcom.cadastro.empresa.Empresa;
import gcom.cadastro.empresa.FiltroEmpresa;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.ContratoEmpresaServico;
import gcom.micromedicao.FiltroContratoEmpresaServico;
import gcom.seguranca.acesso.FiltroOperacao;
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 javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* [UC1178] Gerar Relat�rio de Acompanhamento dos Boletins de Medi��o
*
* Action respons�vel por carregar os dados para exibi��o
* da tela relatorio_acompanhamento_boletim_medicao_gerar.jsp
*
* @author Diogo Peixoto
*
*/
public class ExibirGerarRelatorioAcompanhamentoBoletimMedicaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("exibirGerarRelatorioAcompanhamentoBoletimMedicao");
GerarRelatorioAcompanhamentoBoletimMedicaoActionForm form = (GerarRelatorioAcompanhamentoBoletimMedicaoActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
String empresaSelecionada = httpServletRequest.getParameter("empresaSelecionada");
/*Caso o submit do form tenha vindo atrav�s da sele��o da empresa, n�o precisa
* carregar novamente todas as cole��es, basta apenas carregar o contrato associado
* a empresa selecionada
*/
if(empresaSelecionada != null && empresaSelecionada.equalsIgnoreCase("sim")){
String idEmpresa = form.getIdEmpresa();
//Caso a empresa selecionada n�o seja a op��o "Branco (value = -1)"
if(!idEmpresa.equals("-1")){
this.pesquisarContrato(idEmpresa, sessao, httpServletRequest);
}
}
this.pesquisarEmpresa(sessao);
return retorno;
}
private void pesquisarContrato(String idEmpresa, HttpSession sessao, HttpServletRequest request){
FiltroContratoEmpresaServico filtroContrato = new FiltroContratoEmpresaServico();
filtroContrato.adicionarParametro(new ParametroSimples(FiltroContratoEmpresaServico.EMPRESA, idEmpresa));
filtroContrato.setCampoOrderBy(FiltroContratoEmpresaServico.DESCRICAO);
Collection<ContratoEmpresaServico> colecaoContrato = this.getFachada().pesquisar(filtroContrato, ContratoEmpresaServico.class.getName());
if (!Util.isVazioOrNulo(colecaoContrato)) {
sessao.setAttribute("colecaoContrato", colecaoContrato);
request.setAttribute("contratoEmpresa", true);
} else {
sessao.removeAttribute("colecaoCobrancaGrupo");
request.setAttribute("contratoEmpresa", false);
throw new ActionServletException("atencao.naocadastrado", "exibirGerarRelatorioAcompanhamentoBoletimMedicaoAction.do?voltarContrato=sim",
new ActionServletException("atencao.naocadastrado"), "Contrato Empresa Servi�o");
}
}
private void pesquisarEmpresa(HttpSession sessao){
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.setConsultaSemLimites(true);
filtroEmpresa.adicionarParametro(new ParametroSimples(FiltroEmpresa.INDICADOR_EMPRESA_CONTRATADA_COBRANCA, new Short("1")));
filtroEmpresa.adicionarParametro(new ParametroSimples(FiltroEmpresa.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtroEmpresa.setCampoOrderBy(FiltroOperacao.DESCRICAO);
Collection<Empresa> colecaoEmpresa = this.getFachada().pesquisar(filtroEmpresa, Empresa.class.getName());
if (colecaoEmpresa == null || colecaoEmpresa.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null, "Empresa");
} else {
sessao.setAttribute("colecaoEmpresa", colecaoEmpresa);
}
}
}