package gcom.gui.faturamento;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoAtividade;
import gcom.faturamento.FaturamentoAtividadeCronograma;
import gcom.faturamento.FaturamentoGrupo;
import gcom.faturamento.FaturamentoGrupoCronogramaMensal;
import gcom.faturamento.FiltroFaturamentoAtividade;
import gcom.faturamento.FiltroFaturamentoAtividadeCronograma;
import gcom.faturamento.FiltroFaturamentoGrupo;
import gcom.faturamento.FiltroFaturamentoGrupoCronogramaMensal;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
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;
/**
* < <Descri��o da Classe>>
*
* @author Administrador
*/
public class ExibirInserirFaturamentoCronogramaAction extends GcomAction {
/**
* < <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) {
//Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("inserirFaturamentoCronograma");
//Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
FaturamentoActionForm faturamentoActionForm = (FaturamentoActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
//CARREGANDO OS GRUPOS
FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo();
Collection faturamentoGrupos = null;
filtroFaturamentoGrupo.adicionarParametro(new ParametroSimples(FiltroFaturamentoGrupo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroFaturamentoGrupo.setCampoOrderBy(FiltroFaturamentoGrupo.ID);
faturamentoGrupos = fachada.pesquisar(filtroFaturamentoGrupo,
FaturamentoGrupo.class.getName());
if ( Util.isVazioOrNulo(faturamentoGrupos)) {
throw new ActionServletException("erro.naocadastrado", null,
"grupo de faturamento");
}
sessao.setAttribute("faturamentoGrupos", faturamentoGrupos);
//CARREGANDO AS ATIVIDADES
FiltroFaturamentoAtividade filtroFaturamentoAtividade = new FiltroFaturamentoAtividade();
Collection faturamentoAtividades = null;
filtroFaturamentoAtividade.adicionarParametro(new ParametroSimples(
FiltroFaturamentoAtividade.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroFaturamentoAtividade.setCampoOrderBy(FiltroFaturamentoAtividade.ORDEM_REALIZACAO);
faturamentoAtividades = fachada.pesquisar( filtroFaturamentoAtividade , FaturamentoAtividade.class.getName());
//MONTANDO O OBJETO PARA EXIBI��O
if(httpServletRequest.getParameter("menu")!=null &&
httpServletRequest.getParameter("menu").equals("sim")){
Collection faturamentoAtividadesHelp = new ArrayList();
for (Iterator iter = faturamentoAtividades.iterator(); iter.hasNext();) {
FaturamentoAtividade faturamentoAtividade = (FaturamentoAtividade) iter.next();
FaturamentoCronogramaAtividadeHelp faturamentoCronogramaAtividadeHelp =
new FaturamentoCronogramaAtividadeHelp();
faturamentoCronogramaAtividadeHelp.setFaturamentoAtividade(faturamentoAtividade);
faturamentoAtividadesHelp.add(faturamentoCronogramaAtividadeHelp);
/**
* Autor: Hugo Leonardo
* Data: 22/06/2010
* CRC: 4694
* Analista: Eduardo Borges
*
* O indicador de comando da atividade vai ser definido pelo (FTAT_ICCOMANDO).
* Caso (FTAT_ICCOMANDO = 1) ser� Ativo e Desmarcado;
* Caso (FTAT_ICCOMANDO = 2) ser� Inativo;
* Caso (FTAT_ICCOMANDO = 3) ser� Ativo e Marcado;
*/
if (faturamentoAtividade.getIndicadorPossibilidadeComandoAtividade() != null
&& (faturamentoAtividade.getIndicadorPossibilidadeComandoAtividade().intValue() == ConstantesSistema.SIM.intValue()
|| faturamentoAtividade.getIndicadorPossibilidadeComandoAtividade().intValue() == ConstantesSistema.TODOS.intValue())){
faturamentoCronogramaAtividadeHelp.setComandar(faturamentoAtividade.getIndicadorPossibilidadeComandoAtividade().toString());
/*
if (faturamentoAtividade.getId().intValue() != FaturamentoAtividade.FATURAR_GRUPO.intValue()){
faturamentoCronogramaAtividadeHelp.setComandar(faturamentoAtividade.getIndicadorPossibilidadeComandoAtividade().toString());
}else{
faturamentoCronogramaAtividadeHelp.setComandar("2");
}
*/
}
/*
// Author:Hugo Amorim Data:28/04/2010 CRC:4040
//
// Em Gsan, Faturamento, cronograma, manter cronograma,
// coluna "comandar" todos os checkbox�s venham por default desmarcados.
// (Isso s� deve ocorre quando a empresa for cosanpa)
//
if(sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase("COSANPA")){
faturamentoCronogramaAtividadeHelp.setComandar("2");
}
*/
}
if ( faturamentoAtividades == null || faturamentoAtividades.isEmpty() ) {
throw new ActionServletException("atencao.naocadastrado", null,"atividade");
}
else {
sessao.setAttribute("faturamentoAtividades", faturamentoAtividadesHelp);
}
}
sessao.setAttribute("FaturamentoActionForm", faturamentoActionForm);
String obterDataRealizacaoAnterior = httpServletRequest.getParameter("obterDataRealizacaoAnterior");
this.obterDataRealizacaoAnteriorPorAtividade(obterDataRealizacaoAnterior, faturamentoActionForm,
fachada, sessao);
//DATA ATUAL
httpServletRequest.setAttribute("dataAtual", Util.formatarData(new Date()));
return retorno;
}
public void obterDataRealizacaoAnteriorPorAtividade(String obterDataRealizacaoAnterior,
FaturamentoActionForm faturamentoActionForm, Fachada fachada, HttpSession sessao){
if (obterDataRealizacaoAnterior != null &&
!obterDataRealizacaoAnterior.equalsIgnoreCase("")) {
if (faturamentoActionForm.getIdGrupoFaturamento() != null &&
faturamentoActionForm.getIdGrupoFaturamento().toString().equals("-1")) {
throw new ActionServletException(
"atencao.preencha.campos.obrigatorio");
}
if (faturamentoActionForm.getMesAno() != null &&
faturamentoActionForm.getMesAno().toString().equals("")) {
throw new ActionServletException(
"atencao.preencha.campos.obrigatorio");
}
String anoMes = Util.formatarMesAnoParaAnoMesSemBarra(faturamentoActionForm
.getMesAno());
// Desabilita o check caso o AnoMes informado seja superior ao AnoMes do FaturamentoGrupo.
if(faturamentoActionForm.getMesAno() != null &&
!faturamentoActionForm.getMesAno().toString().equals("")){
FiltroFaturamentoGrupo filtroFaturamentoGrupo= new FiltroFaturamentoGrupo();
filtroFaturamentoGrupo.adicionarParametro(new ParametroSimples(
FiltroFaturamentoGrupo.ID, faturamentoActionForm.getIdGrupoFaturamento()));
Collection colecaoFaturamentoGrupo = fachada.pesquisar(filtroFaturamentoGrupo,
FaturamentoGrupo.class.getName());
FaturamentoGrupo faturamentoGrupo = (FaturamentoGrupo)
Util.retonarObjetoDeColecao(colecaoFaturamentoGrupo);
if(Util.compararAnoMesReferencia(anoMes, faturamentoGrupo.getAnoMesReferencia().toString(), ">")){
sessao.setAttribute("desabilitaCheck", true);
}else{
sessao.removeAttribute("desabilitaCheck");
}
}
//OBTENDO O CRONOGRAMA DO MES ANTERIOR
//--------------------------------------------------------------------------------------------------------
FiltroFaturamentoGrupoCronogramaMensal filtroCronogramaMensal = new FiltroFaturamentoGrupoCronogramaMensal();
filtroCronogramaMensal.adicionarParametro(new ParametroSimples(
FiltroFaturamentoGrupoCronogramaMensal.FATURAMENTO_GRUPO,
faturamentoActionForm.getIdGrupoFaturamento()));
Integer anoMesMenosUm = Util.subtraiAteSeisMesesAnoMesReferencia(
new Integer(anoMes), 1);
filtroCronogramaMensal.adicionarParametro(new ParametroSimples(
FiltroFaturamentoGrupoCronogramaMensal.REFERENCIA, anoMesMenosUm));
Collection colecaoCronogramaMensal = fachada.pesquisar(filtroCronogramaMensal,
FaturamentoGrupoCronogramaMensal.class.getName());
FaturamentoGrupoCronogramaMensal faturamentoGrupoCronogramaMensal = (FaturamentoGrupoCronogramaMensal)
Util.retonarObjetoDeColecao(colecaoCronogramaMensal);
Integer idFaturamentoGrupoCronogramaMensal = null;
if( faturamentoGrupoCronogramaMensal != null ){
idFaturamentoGrupoCronogramaMensal = faturamentoGrupoCronogramaMensal.getId();
}
//--------------------------------------------------------------------------------------------------------
//OBTENDO A DATA DE REALIZA��O DA ATIVIDADE EM QUEST�O PARA O MES ANTERIOR
Collection faturamentoAtividadesHelpSessao = (Collection) sessao
.getAttribute("faturamentoAtividades");
for (Iterator iter = faturamentoAtividadesHelpSessao.iterator(); iter.hasNext();) {
FaturamentoCronogramaAtividadeHelp helper =
(FaturamentoCronogramaAtividadeHelp) iter.next();
FiltroFaturamentoAtividadeCronograma filtroAtividadeCronograma =
new FiltroFaturamentoAtividadeCronograma();
FaturamentoAtividadeCronograma faturamentoAtividadeCronograma = null;
if( faturamentoGrupoCronogramaMensal != null ){
filtroAtividadeCronograma
.adicionarParametro(new ParametroSimples(
FiltroFaturamentoAtividadeCronograma.FATURAMENTO_GRUPO_CRONOGRAMA_MENSAL_ID,
idFaturamentoGrupoCronogramaMensal));
filtroAtividadeCronograma
.adicionarParametro(new ParametroSimples(
FiltroFaturamentoAtividadeCronograma.FATURAMENTO_ATIVIDADE_ID,
helper.getFaturamentoAtividade().getId()));
Collection colecaoAtividadeCronograma = fachada.pesquisar(
filtroAtividadeCronograma, FaturamentoAtividadeCronograma.class.getName());
faturamentoAtividadeCronograma = (FaturamentoAtividadeCronograma) Util
.retonarObjetoDeColecao(colecaoAtividadeCronograma);
}
Date dataMesAnterior = null;
if (faturamentoAtividadeCronograma != null &&
faturamentoAtividadeCronograma.getDataRealizacao() != null) {
dataMesAnterior = faturamentoAtividadeCronograma
.getDataRealizacao();
}
else if ( faturamentoAtividadeCronograma != null &&
faturamentoAtividadeCronograma.getDataPrevista() != null && dataMesAnterior == null ){
dataMesAnterior = faturamentoAtividadeCronograma
.getDataPrevista();
}
helper.setDataRealizacaoMesAnterior(Util.formatarData(dataMesAnterior));
}
}
}
}