package gcom.gui.relatorio.faturamento.conta;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.SetorComercial;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoGrupo;
import gcom.faturamento.FiltroFaturamentoGrupo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
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;
/**
*
* Este caso de uso gera um pdf com as contas de acordo com o filtro selecionado
*
* [UCXXXX] Gerar Contas
*
* @author Rafael Corr�a
* @date 27/07/2009
*
*/
public class ExibirGerarRelatorioContaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("gerarRelatorioConta");
Fachada fachada = Fachada.getInstancia();
GerarRelatorioContaActionForm form =
(GerarRelatorioContaActionForm)actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
//--------- SETANDO FOCO INICIAL E CARREGANDO AS COLE��ES QUE SER�O MOSTRADAS NA P�GINA INICIAL
if (httpServletRequest.getParameter("menu")!= null &&
!httpServletRequest.getParameter("menu").equals("")){
httpServletRequest.setAttribute("nomeCampo", "mesAno");
//----- [FS0001 - VERIFICAR EXISTENCIA DE DADOS] -------- GRUPO
FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo(FiltroFaturamentoGrupo.ID);
Collection colecaoFaturamentoGrupo = fachada.pesquisar(
filtroFaturamentoGrupo, FaturamentoGrupo.class.getName());
if (colecaoFaturamentoGrupo == null || colecaoFaturamentoGrupo.isEmpty()) {
throw new ActionServletException("atencao.entidade_sem_dados_para_selecao", null,"Faturamento Grupo");
}
sessao.setAttribute("colecaoFaturamentoGrupo", colecaoFaturamentoGrupo);
}
//---------- [FS0003 - VERIFICAR EXISTENCIA DA LOCALIDADE]
String idLocalidadeInicialForm = form.getIdLocalidadeInicial();
if (idLocalidadeInicialForm != null && !idLocalidadeInicialForm.equals("")) {
FiltroLocalidade filtroLocalidadeOrigem = new FiltroLocalidade();
filtroLocalidadeOrigem.adicionarParametro(new ParametroSimples( FiltroLocalidade.INDICADORUSO,ConstantesSistema.INDICADOR_USO_ATIVO));
filtroLocalidadeOrigem.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, new Integer(idLocalidadeInicialForm)));
Collection colecaoLocalidadeOrigem = fachada.pesquisar(filtroLocalidadeOrigem, Localidade.class.getName());
if (colecaoLocalidadeOrigem != null && !colecaoLocalidadeOrigem.isEmpty()) {
Localidade localidadeOrigem = (Localidade)colecaoLocalidadeOrigem.iterator().next();
form.setIdLocalidadeInicial(""+localidadeOrigem.getId());
form.setNomeLocalidadeInicial(localidadeOrigem.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "idLocalidadeFinal");
} else {
form.setIdLocalidadeInicial("");
form.setNomeLocalidadeInicial("LOCALIDADE INEXISTENTE");
httpServletRequest.setAttribute("localidadeInicialInexistente",true);
httpServletRequest.setAttribute("nomeCampo", "idLocalidadeInicial");
}
} else {
form.setNomeLocalidadeInicial("");
}
String idLocalidadeFinalForm = form.getIdLocalidadeFinal();
if (idLocalidadeFinalForm != null && !idLocalidadeFinalForm.equals("")) {
FiltroLocalidade filtroLocalidadeDestino = new FiltroLocalidade();
filtroLocalidadeDestino.adicionarParametro(new ParametroSimples( FiltroLocalidade.INDICADORUSO,ConstantesSistema.INDICADOR_USO_ATIVO));
filtroLocalidadeDestino.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, new Integer(idLocalidadeFinalForm)));
Collection colecaoLocalidadeDestino = fachada.pesquisar(filtroLocalidadeDestino, Localidade.class.getName());
if (colecaoLocalidadeDestino != null && !colecaoLocalidadeDestino.isEmpty()) {
Localidade localidadeDestino = (Localidade)colecaoLocalidadeDestino.iterator().next();
form.setIdLocalidadeFinal(""+localidadeDestino.getId());
form.setNomeLocalidadeFinal(localidadeDestino.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "referencia");
} else {
form.setIdLocalidadeFinal("");
form.setNomeLocalidadeFinal("LOCALIDADE INEXISTENTE");
httpServletRequest.setAttribute("localidadeFinalInexistente",true);
httpServletRequest.setAttribute("nomeCampo", "idLocalidadeFinal");
}
} else {
form.setNomeLocalidadeFinal("");
}
String codigoSetorComercialInicial = form.getCodigoSetorComercialInicial();
if (codigoSetorComercialInicial != null && !codigoSetorComercialInicial.equals("") &&
idLocalidadeInicialForm != null && !idLocalidadeInicialForm.equals("")) {
FiltroSetorComercial filtro = new FiltroSetorComercial();
filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, codigoSetorComercialInicial));
filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, idLocalidadeInicialForm));
Collection pesquisa = (Collection) fachada.pesquisar(filtro, SetorComercial.class.getName());
if (pesquisa != null && !pesquisa.isEmpty()) {
SetorComercial inicial = (SetorComercial) Util.retonarObjetoDeColecao(pesquisa);
form.setCodigoSetorComercialInicial(inicial.getCodigo() + "");
form.setNomeSetorComercialInicial(inicial.getDescricao());
} else {
form.setCodigoSetorComercialInicial("");
form.setNomeSetorComercialInicial("SETOR COMERCIAL INEXISTENTE");
httpServletRequest.setAttribute("setorComercialInicialInexistente",true);
}
} else {
form.setCodigoSetorComercialInicial("");
form.setNomeSetorComercialInicial("");
}
String codigoSetorComercialFinal = form.getCodigoSetorComercialFinal();
if (codigoSetorComercialFinal != null && !codigoSetorComercialFinal.equals("") &&
idLocalidadeFinalForm != null && !idLocalidadeFinalForm.equals("")) {
FiltroSetorComercial filtro = new FiltroSetorComercial();
filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, codigoSetorComercialFinal));
filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, idLocalidadeFinalForm));
Collection pesquisa = (Collection) fachada.pesquisar(filtro, SetorComercial.class.getName());
if (pesquisa != null && !pesquisa.isEmpty()) {
SetorComercial Final = (SetorComercial) Util.retonarObjetoDeColecao(pesquisa);
form.setCodigoSetorComercialFinal(Final.getCodigo() + "");
form.setNomeSetorComercialFinal(Final.getDescricao());
} else {
form.setCodigoSetorComercialFinal("");
form.setNomeSetorComercialFinal("SETOR COMERCIAL INEXISTENTE");
httpServletRequest.setAttribute("setorComercialFinalInexistente",true);
}
} else {
form.setCodigoSetorComercialFinal("");
form.setNomeSetorComercialFinal("");
}
return retorno;
}
}