package gcom.gui.cobranca;
import gcom.cobranca.CobrancaAcao;
import gcom.cobranca.DocumentoTipo;
import gcom.fachada.Fachada;
import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio;
import gcom.relatorio.cobranca.RelatorioComandoDocumentoCobranca;
import gcom.relatorio.cobranca.RelatorioNotificacaoDebito;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaRelatorio;
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;
public class GerarRelatorioComandoDocumentoCobrancaAction 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;
String idCobrancaAcaoAtividadeCronograma = httpServletRequest
.getParameter("idCobrancaAcaoAtividadeCronograma");
String tipoEndRelatorio = httpServletRequest
.getParameter("tipoEndRelatorio");
Integer idCobrancaAcaoCronograma = null;
if (idCobrancaAcaoAtividadeCronograma != null
&& !idCobrancaAcaoAtividadeCronograma.trim().equals("")) {
idCobrancaAcaoCronograma = new Integer(
idCobrancaAcaoAtividadeCronograma);
}
String idCobrancaAcaoAtividadeComando = httpServletRequest
.getParameter("idCobrancaAcaoAtividadeComando");
Integer idCobrancaAcaoComando = null;
if (idCobrancaAcaoAtividadeComando != null
&& !idCobrancaAcaoAtividadeComando.trim().equals("")) {
idCobrancaAcaoComando = new Integer(idCobrancaAcaoAtividadeComando);
}
String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio");
TarefaRelatorio relatorio = null;
Fachada fachada = Fachada.getInstancia();
CobrancaAcao cobrancaAcao = fachada
.pesquisarAcaoCobrancaParaRelatorio(idCobrancaAcaoComando,idCobrancaAcaoCronograma);
DocumentoTipo documentoTipo = fachada
.pesquisarTipoAcaoCobrancaParaRelatorio(idCobrancaAcaoComando,idCobrancaAcaoCronograma);
if (documentoTipo != null && (documentoTipo.getId().intValue() == DocumentoTipo.AVISO_CORTE
|| documentoTipo.getId().intValue() == DocumentoTipo.CORTE_ADMINISTRATIVO)) {
relatorio = new RelatorioNotificacaoDebito(
(Usuario) (httpServletRequest.getSession(false))
.getAttribute("usuarioLogado"));
} else {
relatorio = new RelatorioComandoDocumentoCobranca(
(Usuario) (httpServletRequest.getSession(false))
.getAttribute("usuarioLogado"));
}
relatorio.addParametro("tipoEndRelatorio", tipoEndRelatorio);
relatorio.addParametro("idCobrancaAcaoCronograma",
idCobrancaAcaoCronograma);
relatorio.addParametro("idCobrancaAcaoComando", idCobrancaAcaoComando);
relatorio.addParametro("cobrancaAcao", cobrancaAcao);
if (tipoRelatorio == null) {
tipoRelatorio = TarefaRelatorio.TIPO_PDF + "";
}
relatorio.addParametro("tipoFormatoRelatorio", Integer
.parseInt(tipoRelatorio));
/*
*
* Altera��o feita para gerar avisos de corte. N�o estavam
* sendo gerados pois faltava esse par�metro, que indica a qtd de documentos
* que v�o ser gerados por p�gina.
*/
relatorio.addParametro("quantidadeRelatorios", "2");
retorno = processarExibicaoRelatorio(relatorio, tipoRelatorio,
httpServletRequest, httpServletResponse, actionMapping);
// devolve o mapeamento contido na vari�vel retorno
return retorno;
}
}