package gcom.gui.relatorio.cadastro;
import java.util.Collection;
import gcom.atendimentopublico.registroatendimento.MeioSolicitacao;
import gcom.cadastro.unidade.UnidadeOrganizacional;
import gcom.gui.ActionServletException;
import gcom.relatorio.ConstantesRelatorios;
import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio;
import gcom.relatorio.RelatorioVazioException;
import gcom.relatorio.cadastro.RelatorioAlteracoesCpfCnpj;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaRelatorio;
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;
public class GerarRelatorioAlteracoesCpfCnpjAction extends
ExibidorProcessamentoTarefaRelatorio {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = null;
GerarRelatorioAlteracoesCpfCnpjActionForm form = (GerarRelatorioAlteracoesCpfCnpjActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
String opcaoTipoRelatorio = form.getOpcaoTipoRelatorio();
if (opcaoTipoRelatorio == null || opcaoTipoRelatorio.equalsIgnoreCase("")) {
if (sessao.getAttribute("opcaoTipoRelatorio") == null) {
throw new ActionServletException("atencao.required", null, "Op��o de Tipo de Relat�rio ");
} else {
opcaoTipoRelatorio = (String) sessao.getAttribute("opcaoTipoRelatorio");
}
}
String nomeRelatorio = "";
if (opcaoTipoRelatorio.trim().equals("1")) {
nomeRelatorio = ConstantesRelatorios.RELATORIO_ALTERACOES_CPF_CNPJ_USUARIO;
} else if (opcaoTipoRelatorio.trim().equals("2")) {
nomeRelatorio = ConstantesRelatorios.RELATORIO_ALTERACOES_CPF_CNPJ_LOCALIDADE;
} else if (opcaoTipoRelatorio.trim().equals("3")) {
nomeRelatorio = ConstantesRelatorios.RELATORIO_ALTERACOES_CPF_CNPJ_MEIO;
}
GerarRelatorioAlteracoesCpfCnpjHelper helper = this.criarHelperRelatorioAlteracoesSistemaColuna(form, sessao);
// Parte que vai mandar o relat�rio para a tela
// cria uma inst�ncia da classe do relat�rio
RelatorioAlteracoesCpfCnpj relatorioAlteracoesCpfCnpj = new RelatorioAlteracoesCpfCnpj(
(Usuario)(httpServletRequest.getSession(false)).getAttribute("usuarioLogado"),
nomeRelatorio);
relatorioAlteracoesCpfCnpj.addParametro("opcaoTipoRelatorio",
opcaoTipoRelatorio);
//Adiciona filtro escolhido pelo usuario ao relatorio
relatorioAlteracoesCpfCnpj.addParametro("filtroHelper", helper);
String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio");
if (tipoRelatorio == null) {
tipoRelatorio = TarefaRelatorio.TIPO_PDF + "";
}
relatorioAlteracoesCpfCnpj.addParametro("tipoFormatoRelatorio", Integer
.parseInt(tipoRelatorio));
try {
retorno = processarExibicaoRelatorio(relatorioAlteracoesCpfCnpj,
tipoRelatorio, httpServletRequest, httpServletResponse,
actionMapping);
} catch (RelatorioVazioException ex) {
// manda o erro para a p�gina no request atual
reportarErros(httpServletRequest, "atencao.relatorio.vazio");
// seta o mapeamento de retorno para a tela de aten��o de popup
retorno = actionMapping.findForward("telaAtencaoPopup");
}
return retorno;
}
private GerarRelatorioAlteracoesCpfCnpjHelper criarHelperRelatorioAlteracoesSistemaColuna(
GerarRelatorioAlteracoesCpfCnpjActionForm form, HttpSession sessao) {
GerarRelatorioAlteracoesCpfCnpjHelper retorno = null;
//Caso tipo do relatorio a ser executado seja "USUARIO"
if(form.getOpcaoTipoRelatorio().equals("1")){
retorno = new GerarRelatorioAlteracoesCpfCnpjHelper(
form.getOpcaoTipoRelatorio(),
form.getDataInicial(),
form.getDataFinal(),
form.getMeio(),
(Collection<MeioSolicitacao>)sessao.getAttribute("colecaoMeiosSolicitacao"),
form.getIdUnidadeSuperior(),
(Collection<UnidadeOrganizacional>)sessao.getAttribute("colecaoUnidadeOrganizacional"),
(Collection<Usuario>)sessao.getAttribute("colecaoUsuario"));
}
//Caso tipo do relatorio a ser executado seja "LOCALIDADE"
if(form.getOpcaoTipoRelatorio().equals("2")){
retorno = new GerarRelatorioAlteracoesCpfCnpjHelper(
form.getOpcaoTipoRelatorio(),
form.getDataInicial(),
form.getDataFinal(),
form.getMeio(),
(Collection<MeioSolicitacao>)sessao.getAttribute("colecaoMeiosSolicitacao"),
form.getIdGerenciaRegional(),
form.getIdGerenciaRegionalporLocalidade(),
form.getIdUnidadeNegocio(),
form.getIdLocalidade(),
form.getOpcaoTotalizacao());
}
//Caso tipo do relatorio a ser executado seja "MEIO"
if(form.getOpcaoTipoRelatorio().equals("3")){
retorno = new GerarRelatorioAlteracoesCpfCnpjHelper(
form.getOpcaoTipoRelatorio(),
form.getDataInicial(),
form.getDataFinal(),
form.getMeio(),
(Collection<MeioSolicitacao>)sessao.getAttribute("colecaoMeiosSolicitacao"));
}
return retorno;
}
}