package gcom.gui.relatorio.faturamento;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.Localidade;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.faturamento.GerarRelatorioVolumesFaturadosActionForm;
import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio;
import gcom.relatorio.faturamento.RelatorioVolumesFaturados;
import gcom.relatorio.faturamento.RelatorioVolumesFaturadosResumido;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaRelatorio;
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;
/**
* action respons�vel pela exibi��o do relat�rio de bairro manter
*
* @author S�vio Luiz
* @created 11 de Julho de 2005
*/
public class GerarRelatorioVolumesFaturadosAction extends
ExibidorProcessamentoTarefaRelatorio {
/**
* < <Descri��o do m�todo>>
*
* @param actionMapping
* Descri��o do par�metro
* @param actionForm
* Descri��o do par�metro
* @param httpServletRequest
* Descri��o do par�metro
* @param httpServletResponse
* Descri��o do par�metro
* @return Descri��o do retorno
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// cria a vari�vel de retorno
ActionForward retorno = null;
GerarRelatorioVolumesFaturadosActionForm gerarRelatorioVolumesFaturadosActionForm = (GerarRelatorioVolumesFaturadosActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
// Valida os par�metro passados como consulta
Localidade localidade = null;
String idLocalidade = gerarRelatorioVolumesFaturadosActionForm
.getIdLocalidade();
if (idLocalidade != null && !idLocalidade.equals("")) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, idLocalidade));
Collection colecaoLocalidades = fachada.pesquisar(filtroLocalidade,
Localidade.class.getName());
if (colecaoLocalidades != null && !colecaoLocalidades.isEmpty()) {
localidade = (Localidade) Util
.retonarObjetoDeColecao(colecaoLocalidades);
} else {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null, "Localidade");
}
}
Integer anoMes = null;
String mesAnoDigitado = gerarRelatorioVolumesFaturadosActionForm
.getMesAno();
if (mesAnoDigitado != null && !mesAnoDigitado.equals("")) {
anoMes = Util.formatarMesAnoComBarraParaAnoMes(mesAnoDigitado);
}
// seta os parametros que ser�o mostrados no relat�rio
// Fim da parte que vai mandar os parametros para o relat�rio
String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio");
String opcaoRelatorio = gerarRelatorioVolumesFaturadosActionForm
.getOpcaoRelatorio();
if (opcaoRelatorio != null && opcaoRelatorio.equals("resumido")) {
RelatorioVolumesFaturadosResumido relatorioVolumesFaturadosResumido = new RelatorioVolumesFaturadosResumido(
(Usuario) (httpServletRequest.getSession(false))
.getAttribute("usuarioLogado"));
relatorioVolumesFaturadosResumido.addParametro("idLocalidade",
localidade.getId());
relatorioVolumesFaturadosResumido.addParametro("anoMes", anoMes);
if (tipoRelatorio == null) {
tipoRelatorio = TarefaRelatorio.TIPO_PDF + "";
}
relatorioVolumesFaturadosResumido.addParametro(
"tipoFormatoRelatorio", Integer.parseInt(tipoRelatorio));
retorno = processarExibicaoRelatorio(
relatorioVolumesFaturadosResumido, tipoRelatorio,
httpServletRequest, httpServletResponse, actionMapping);
} else {
RelatorioVolumesFaturados relatorioVolumesFaturados = new RelatorioVolumesFaturados(
(Usuario) (httpServletRequest.getSession(false))
.getAttribute("usuarioLogado"));
relatorioVolumesFaturados.addParametro("idLocalidade", localidade
.getId());
relatorioVolumesFaturados.addParametro("anoMes", anoMes);
if (tipoRelatorio == null) {
tipoRelatorio = TarefaRelatorio.TIPO_PDF + "";
}
relatorioVolumesFaturados.addParametro("tipoFormatoRelatorio",
Integer.parseInt(tipoRelatorio));
retorno = processarExibicaoRelatorio(relatorioVolumesFaturados,
tipoRelatorio, httpServletRequest, httpServletResponse,
actionMapping);
}
// devolve o mapeamento contido na vari�vel retorno
return retorno;
}
}