package gcom.gui.cobranca;
import java.util.Calendar;
import java.util.GregorianCalendar;
import gcom.cobranca.FiltroCobrancaAcaoAtividadeComando;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
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;
/**
* Permite consultar comandos de a��o de cobran�a [UC0326] Filtrar Comandos de
* A��o de Cobran�a - Eventual
*/
public class FiltrarComandosAcaoCobrancaEventualAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm,
HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("retornarComandosAcaoCobrancaEventual");
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
FiltrarComandosAcaoCobrancaEventualActionForm form = (FiltrarComandosAcaoCobrancaEventualActionForm) actionForm;
if (sessao.getAttribute("filtroCobrancaAcaoAtividadeComando") == null) {
if (!form.getIndicadorCriterio().equals("Comando")) {
form.setCriterioCobranca("");
}
if (httpServletRequest.getParameter("grupoCobranca") == null) {
form.setGrupoCobranca(null);
}
if (httpServletRequest.getParameter("gerenciaRegional") == null) {
form.setGerenciaRegional(null);
}
if (httpServletRequest.getParameter("unidadeNegocio") == null) {
form.setUnidadeNegocio(null);
}
if (httpServletRequest.getParameter("clienteRelacaoTipo") == null) {
form.setClienteRelacaoTipo(null);
}
// [FS0014 - Validar per�odo de emiss�o];
String dataInicial = form.getDataEmissaoInicio();
String dataFinal = form.getDataEmissaoFim();
if ((dataInicial.trim().length() == 10) && (dataFinal.trim().length() == 10)) {
Calendar calendarInicio = new GregorianCalendar();
Calendar calendarFim = new GregorianCalendar();
calendarInicio.setTime(Util.converteStringParaDate(dataInicial));
calendarFim.setTime(Util.converteStringParaDate(dataFinal));
if (calendarFim.compareTo(calendarInicio) < 0) {
throw new ActionServletException("atencao.data_fim_menor_inicio");
}
}
FiltroCobrancaAcaoAtividadeComando filtro = fachada.construirFiltroCobrancaAcaoAtividadeEventual(
form.getGrupoCobranca(), form.getAcaoCobranca(), form.getAtividadeCobranca(),
form.getPeriodoReferenciaContasInicial(), form.getPeriodoReferenciaContasFinal(),
form.getPeriodoComandoInicial(), form.getPeriodoComandoFinal(),
form.getPeriodoRealizacaoComandoInicial(), form.getPeriodoRealizacaoComandoFinal(),
form.getPeriodoVencimentoContasInicial(), form.getPeriodoVencimentoContasFinal(),
form.getIntervaloValorDocumentosInicial(), form.getIntervaloValorDocumentosFinal(),
form.getIntervaloQuantidadeDocumentosInicial(), form.getIntervaloQuantidadeDocumentosFinal(),
form.getIntervaloQuantidadeItensDocumentosInicial(), form.getIntervaloQuantidadeItensDocumentosFinal(),
form.getSituacaoComando(), form.getIndicadorCriterio(), form.getGerenciaRegional(),
form.getLocalidadeOrigemID(), form.getLocalidadeDestinoID(), form.getSetorComercialOrigemCD(),
form.getSetorComercialDestinoCD(), form.getRotaInicial(), form.getRotaFinal(), form.getIdCliente(),
form.getClienteRelacaoTipo(), form.getCriterioCobranca(), form.getUnidadeNegocio(),
form.getIdCobrancaAcaoAtividadeComando(), form.getDataEmissaoInicio(), form.getDataEmissaoFim(),
form.getConsumoMedioInicial(), form.getConsumoMedioFinal(), form.getTipoConsumo(),
form.getPeriodoInicialFiscalizacao(), form.getPeriodoFinalFiscalizacao(), form.getSituacaoFiscalizacao(),
form.getNumeroQuadraInicial(), form.getNumeroQuadraFinal());
sessao.setAttribute("filtroCobrancaAcaoAtividadeComando", filtro);
sessao.setAttribute("filtrarComandosAcaoCobrancaEventualActionForm", form);
}
return retorno;
}
}