package gcom.gui.relatorio.cobranca;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio;
import gcom.relatorio.cobranca.RelatorioDocumentosAReceber;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaRelatorio;
import gcom.util.Util;
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;
/**
* [UC990] Gerar Relat�rio de Documentos a Receber
*
* @author Hugo Amorim
* @date 22/02/2010
*
*/
public class GerarRelatorioDocumentosAReceberAction extends
ExibidorProcessamentoTarefaRelatorio {
/**
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return forward
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = null;
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
Fachada fachada = Fachada.getInstancia();
httpServletRequest.setAttribute("telaSucessoRelatorio",true);
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
RelatorioDocumentosAReceberForm form =
(RelatorioDocumentosAReceberForm) actionForm;
Integer anoMesInformado = Util.formatarMesAnoComBarraParaAnoMes(form.getMesAno());
if(anoMesInformado.compareTo(sistemaParametro.getAnoMesFaturamento())>=0){
throw new ActionServletException("atencao.mes_ano_resumo_invalido",Util.formatarAnoMesParaMesAno(sistemaParametro.getAnoMesFaturamento()));
}
FiltroRelatorioDocumentosAReceberHelper
helper = new FiltroRelatorioDocumentosAReceberHelper(
//mesAno
form.getMesAno()!=null ?
Util.formatarMesAnoComBarraParaAnoMes(form.getMesAno()).toString():null,
//idCategoriaTipo
form.getIdCategoriaTipo()!=null ?
form.getIdCategoriaTipo():null,
//idsCategoria
form.getIdsCategoria()!=null ?
form.getIdsCategoria():null,
//idsPerfilImovel
form.getIdsPerfilImovel()!=null ?
form.getIdsPerfilImovel():null,
//idsEsferaPoder
form.getIdsEsferaPoder()!=null ?
form.getIdsEsferaPoder():null,
//idGerencia
form.getIdGerencia()!=null ?
form.getIdGerencia():null,
//idUnidade
form.getIdUnidade()!=null ?
form.getIdUnidade():null,
//idLocalidade
form.getIdLocalidade()!=null ?
form.getIdLocalidade():null,
//idOpcaoTotalizacao
form.getIdOpcaoTotalizacao()!=null ?
form.getIdOpcaoTotalizacao():null,
//colecaoFaixas
form.getColecaoFaixas()!=null ?
form.getColecaoFaixas():null,
sistemaParametro.getNomeEstado(),
/**
* @author Adriana Muniz
* @date 29/03/2012
*
* Acrescimo de mais um filtro na gera��o do relat�rio R0990
* */
form.getIndicadorGuiaPagamento()!=null ?
form.getIndicadorGuiaPagamento():null
);
if(form.getIndicadorInclusaoValorSemParcelas().equals("1")) {
helper.setExibirDebitoSemParcela(true);
helper.setExibirCreditoSemParcela(true);
}
definirMaiorFaixa(helper, form.getColecaoFaixas());
RelatorioDocumentosAReceber relatorio = new RelatorioDocumentosAReceber(usuario);
// chama o met�do de gerar relat�rio passando o c�digo da analise
// como par�metro
/*
* Felipe Santos - 28/03/2012
*
* Altera��o para pegar o tipo de relat�rio retornado atrav�s da
* p�gina conforme selecionado pelo usu�rio
*/
String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio");
// fim da altera��o
relatorio.addParametro("tipoFormatoRelatorio", new Integer(tipoRelatorio));
relatorio.addParametro("filtro", helper);
retorno = processarExibicaoRelatorio(relatorio,
tipoRelatorio, httpServletRequest, httpServletResponse,
actionMapping);
return retorno;
}
private void definirMaiorFaixa(FiltroRelatorioDocumentosAReceberHelper helper, Collection<FaixaHelper> faixas) {
List lista = Arrays.asList(faixas.toArray());
FaixaHelper faixaHelper = (FaixaHelper) lista.get(lista.size()-1);
String maiorFaixa = faixaHelper.getDescricao();
helper.setMaiorFaixa(maiorFaixa);
}
}