package gcom.gui.cobranca;
import gcom.cadastro.sistemaparametro.FiltroSistemaParametro;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.cobranca.CobrancaAcao;
import gcom.cobranca.CobrancaAcaoAtividadeCronograma;
import gcom.cobranca.CobrancaAtividade;
import gcom.cobranca.CobrancaGrupo;
import gcom.cobranca.CobrancaGrupoCronogramaMes;
import gcom.cobranca.FiltroCobrancaGrupo;
import gcom.cobranca.bean.CobrancaCronogramaHelper;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoGrupo;
import gcom.faturamento.FiltroFaturamentoGrupo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
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 AtualizarCobrancaCronogramaAction 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
*/
/*
* (non-Javadoc)
*
* @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping,
* org.apache.struts.action.ActionForm,
* javax.servlet.http.HttpServletRequest,
* javax.servlet.http.HttpServletResponse)
*/
/*
* (non-Javadoc)
*
* @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping,
* org.apache.struts.action.ActionForm,
* javax.servlet.http.HttpServletRequest,
* javax.servlet.http.HttpServletResponse)
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
CobrancaActionForm cobrancaActionForm = (CobrancaActionForm) actionForm;
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
String confirmacao = httpServletRequest.getParameter("confirmado");
Collection atividadesCobrancaObrigatoriedadeAtivo = (Collection) sessao
.getAttribute("atividadesCobrancaObrigatoriedadeAtivo");
// Collection acoesCobranca =
// (Collection)sessao.getAttribute("acoesCobranca");
// Collection atividadesCobranca =
// (Collection)sessao.getAttribute("atividadesCobranca");
Collection cobrancasAtividadesParaInsercao = new ArrayList();
Collection colecaoCobrancaCronogramaHelper = new ArrayList();
Collection colecaoCobrancaCronogramaHelperSessao = (Collection) sessao
.getAttribute("colecaoCobrancaCronogramaHelper");
// CobrancaAcao cobrancaAcao = null;
// CobrancaAtividade cobrancaAtividade = null;
CobrancaGrupoCronogramaMes cobrancaGrupoCronogramaMes = null;
// CobrancaAcaoCronograma cobrancaAcaoCronograma = null;
CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronograma = null;
CobrancaGrupo cobrancaGrupo = new CobrancaGrupo();
CobrancaCronogramaHelper cobrancaCronogramaHelper = null;
Collection cronogramasPraRemocao = new ArrayList();
cobrancaGrupo
.setId(new Integer(cobrancaActionForm.getIdGrupoCobranca()));
Iterator iteratorCobrancaCronogramaHelperSessao = colecaoCobrancaCronogramaHelperSessao
.iterator();
String idAcaoCobranca = "";
String qtdMaximaDocumentos = "";
String dataPrevista = "";
// String anoMes = "";
// String mesAno = "";
//se n�o vem da p�gina de confirma��o
if (confirmacao == null || !confirmacao.trim().equalsIgnoreCase("ok")){
int contadorAtividades = 0;
while (iteratorCobrancaCronogramaHelperSessao.hasNext()) {
cobrancaCronogramaHelper = (CobrancaCronogramaHelper) iteratorCobrancaCronogramaHelperSessao
.next();
Iterator iteratorCobrancaAcaoAtividadeCronograma = cobrancaCronogramaHelper
.getCobrancasAtividadesParaInsercao().iterator();
// cobrancaAcao =
// cobrancaCronogramaHelper.getCobrancaAcaoCronograma().getCobrancaAcao();
// ----seta os valores no objeto CobrancaGrupoCronogramaMes
if (cobrancaCronogramaHelper.getCobrancaGrupoCronogramaMes() != null) {
cobrancaGrupoCronogramaMes = cobrancaCronogramaHelper
.getCobrancaGrupoCronogramaMes();
} else {
cobrancaGrupoCronogramaMes = (CobrancaGrupoCronogramaMes) sessao
.getAttribute("cobrancaGrupoCronogramaMes");
}
// mesAno = cobrancaActionForm.getMesAno();
// String mes = mesAno.substring(0, 2);
// String ano = mesAno.substring(3, 7);
// anoMes = ano + "" + mes;
// cobrancaGrupoCronogramaMes.setUltimaAlteracao(new Date());
// cobrancaCronogramaHelper.setCobrancaGrupoCronogramaMes(cobrancaGrupoCronogramaMes);
// ----contador utilizado para verificar se ha alguma atividade com
// data preenchida quando comandaer for nulo
int verificaDataPreenchida = 0;
// ----seta os valores no objeto CobrancaAcaoCronograma
// cobrancaAcaoCronograma =
// cobrancaCronogramaHelper.getCobrancaAcaoCronograma();
// ------ se o indicador de obrigatoriedade for igual a sim(1)
/**
* Caso o usu�rio n�o informe data prevista para todas as atividades
* das a��es que obrigatoriamente devem constar no
* cronograma(CBAC_ICOBRIGATORIEDADE=1), exibir a mensagem "�
* necess�rio informar a data prevista para as atividades das a��es
* que obrigatoriamente devem constar no cronograma" e retornar para
* o passo correspodente no fluxo principal.
*/
if (cobrancaCronogramaHelper.getCobrancaAcaoCronograma()
.getCobrancaAcao().getIndicadorObrigatoriedade().intValue() == 1) {
while (iteratorCobrancaAcaoAtividadeCronograma.hasNext()) {
contadorAtividades += 1;
cobrancaAcaoAtividadeCronograma = (CobrancaAcaoAtividadeCronograma) iteratorCobrancaAcaoAtividadeCronograma
.next();
// --------pega o valor de comandar.Ex: comandar2
idAcaoCobranca = httpServletRequest
.getParameter("comandar"
+ cobrancaCronogramaHelper
.getCobrancaAcaoCronograma()
.getCobrancaAcao().getId()
.toString()
+ "atividade"
+ cobrancaAcaoAtividadeCronograma
.getCobrancaAtividade().getId());
// -------- separa o id da string comandar
qtdMaximaDocumentos = httpServletRequest.getParameter("qtd_a"
+ cobrancaAcaoAtividadeCronograma
.getCobrancaAcaoCronograma()
.getCobrancaAcao().getId() + "n"
+ cobrancaAcaoAtividadeCronograma.getCobrancaAtividade().getId());
// Verifica se foi preenchido o campo de quantidade maxima de documento e
// seta no objeto
if (qtdMaximaDocumentos != null && !qtdMaximaDocumentos.equals("")){
cobrancaAcaoAtividadeCronograma.setQuantidadeMaximaDocumentos(
new Integer(qtdMaximaDocumentos));
}
dataPrevista = "";
dataPrevista = httpServletRequest.getParameter("a"
+ cobrancaAcaoAtividadeCronograma
.getCobrancaAcaoCronograma()
.getCobrancaAcao().getId()
+ "n"
+ cobrancaAcaoAtividadeCronograma
.getCobrancaAtividade().getId());
if (dataPrevista != null
&& dataPrevista.trim().equals("")
&& cobrancaAcaoAtividadeCronograma
.getCobrancaAtividade()
.getIndicadorObrigatoriedade() == 1) {
throw new ActionServletException(
"atencao.cobranca.data_prevista_acao_obrigatoria");
}
if (dataPrevista != null
&& !dataPrevista.trim().equals("")) {
cobrancaAcaoAtividadeCronograma
.setDataPrevista(Util
.converteStringParaDate(dataPrevista));
if (idAcaoCobranca != null
&& idAcaoCobranca.trim().equals("1")) {
cobrancaAcaoAtividadeCronograma
.setComando(Util
.converteStringParaDateHora(dataPrevista
+ " "
+ Util
.formatarHoraSemData(new Date())));
} else {
cobrancaAcaoAtividadeCronograma
.setComando(null);
}
cobrancasAtividadesParaInsercao
.add(cobrancaAcaoAtividadeCronograma);
}
}
} else {
verificaDataPreenchida = 0;
while (iteratorCobrancaAcaoAtividadeCronograma.hasNext()) {
contadorAtividades += 1;
cobrancaAcaoAtividadeCronograma = (CobrancaAcaoAtividadeCronograma) iteratorCobrancaAcaoAtividadeCronograma
.next();
CobrancaAtividade cobrancaAtividade = cobrancaAcaoAtividadeCronograma
.getCobrancaAtividade();
// --------pega o valor de comandar.Ex: comandar2
idAcaoCobranca = httpServletRequest
.getParameter("comandar"
+ cobrancaCronogramaHelper
.getCobrancaAcaoCronograma()
.getCobrancaAcao().getId()
.toString()
+ "atividade"
+ cobrancaAcaoAtividadeCronograma
.getCobrancaAtividade().getId());
// -------- separa o id da string comandar
qtdMaximaDocumentos = httpServletRequest.getParameter("qtd_a"
+ cobrancaAcaoAtividadeCronograma
.getCobrancaAcaoCronograma()
.getCobrancaAcao().getId() + "n"
+ cobrancaAcaoAtividadeCronograma.getCobrancaAtividade().getId());
// Verifica se foi preenchido o campo de quantidade maxima de documento e
// seta no objeto
if (qtdMaximaDocumentos != null && !qtdMaximaDocumentos.equals("")){
cobrancaAcaoAtividadeCronograma.setQuantidadeMaximaDocumentos(
new Integer(qtdMaximaDocumentos));
}
dataPrevista = "";
dataPrevista = httpServletRequest.getParameter("a"
+ cobrancaAcaoAtividadeCronograma
.getCobrancaAcaoCronograma()
.getCobrancaAcao().getId()
+ "n"
+ cobrancaAcaoAtividadeCronograma
.getCobrancaAtividade().getId());
if ((dataPrevista != null && !dataPrevista.trim()
.equals(""))
|| cobrancaAtividade
.getIndicadorObrigatoriedade()
.equals(
CobrancaAtividade.INDICADOR_OBRIGATORIEDADE_ATIVO)) {
verificaDataPreenchida += 1;
// ----seta os valores no objeto
// CobrancaAcaoAtividadeCronograma
cobrancaAcaoAtividadeCronograma.setDataPrevista(Util
.converteStringParaDate(dataPrevista));
if (idAcaoCobranca != null
&& idAcaoCobranca.trim().equals("1")) {
cobrancaAcaoAtividadeCronograma
.setComando(Util
.converteStringParaDateHora(dataPrevista
+ " "
+ Util
.formatarHoraSemData(new Date())));
} else {
cobrancaAcaoAtividadeCronograma.setComando(null);
}
} else {
cobrancaAcaoAtividadeCronograma.setDataPrevista(null);
cobrancaAcaoAtividadeCronograma.setComando(null);
}
if (cobrancaAcaoAtividadeCronograma.getDataPrevista() != null
&& !cobrancaAcaoAtividadeCronograma
.getDataPrevista().equals("")) {
cobrancasAtividadesParaInsercao
.add(cobrancaAcaoAtividadeCronograma);
}
}
/**
* Caso o usuario informe a data prevista somente para algumas
* atividades da acao, exibir a mensagem "� necess�rio informar
* a data prevista para todas as atividades da a��o."
*/
if ((verificaDataPreenchida > 0)
&& (verificaDataPreenchida < atividadesCobrancaObrigatoriedadeAtivo
.size())) {
throw new ActionServletException(
"atencao.cobranca.data_prevista_algumas_atividades");
}
}
cobrancaCronogramaHelper
.setCobrancasAtividadesParaInsercao(cobrancasAtividadesParaInsercao);
if (cobrancaCronogramaHelper.getCobrancaGrupoCronogramaMes() == null) {
cobrancaCronogramaHelper
.setCobrancaGrupoCronogramaMes(cobrancaGrupoCronogramaMes);
}
cobrancaCronogramaHelper.setCritica1(false);
cobrancaCronogramaHelper.setCritica2(false);
cobrancaCronogramaHelper.setCritica3(false);
colecaoCobrancaCronogramaHelper.add(cobrancaCronogramaHelper);
cobrancasAtividadesParaInsercao = new ArrayList();
}
if (contadorAtividades == 0) {
throw new ActionServletException(
"atencao.cobranca.nenhuma_atividade");
}
}else{
colecaoCobrancaCronogramaHelper = (Collection) sessao.getAttribute("colecaoCobrancaCronogramaHelper");
cobrancaGrupo = (CobrancaGrupo) sessao.getAttribute("cobrancaGrupo");
cobrancaGrupoCronogramaMes = (CobrancaGrupoCronogramaMes) sessao.getAttribute("cobrancaGrupoCronogramaMes");
}
for (Iterator iterCobrancacronogramaHelper = colecaoCobrancaCronogramaHelper.iterator(); iterCobrancacronogramaHelper
.hasNext();) {
CobrancaCronogramaHelper cobrancaCronogramaHelperAux = (CobrancaCronogramaHelper) iterCobrancacronogramaHelper.next();
//[FS0006] - Verificar a��o predecessora
// se a��o tem predecessora
if (cobrancaCronogramaHelperAux.getCobrancaAcaoCronograma().getCobrancaAcao().getCobrancaAcaoPredecessora() != null){
for (Iterator iterCobrancaAcaoAtividadeCronograma = cobrancaCronogramaHelperAux.getCobrancasAtividadesParaInsercao()
.iterator(); iterCobrancaAcaoAtividadeCronograma.hasNext();) {
CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronograma2 = (CobrancaAcaoAtividadeCronograma) iterCobrancaAcaoAtividadeCronograma.next();
//se a atividade for EMITIR
if (cobrancaAcaoAtividadeCronograma2.getCobrancaAtividade().getId().intValue() == CobrancaAtividade.EMITIR){
//Caso a atividade EMITIR da a��o predecessora j� tenha perdido a validade
CobrancaAcao cobrancaAcaoPredecessora = cobrancaCronogramaHelperAux
.getCobrancaAcaoCronograma().getCobrancaAcao().getCobrancaAcaoPredecessora();
//recupera cobrancaAcaoAtividadeCronograma referente a a��o predecessora da a��o em quest�o
cobrancaAcaoAtividadeCronograma = recuperaAcaoPredecessora(cobrancaAcaoPredecessora.getId(), colecaoCobrancaCronogramaHelper);
if (cobrancaCronogramaHelperAux.getCritica1() == false){
if (cobrancaAcaoAtividadeCronograma != null){
//data de vencimento da a��o predecessora
Date dataVencimentoAcaoPredecessora = Util.adicionarNumeroDiasDeUmaData(cobrancaAcaoAtividadeCronograma.getDataPrevista(),
cobrancaAcaoPredecessora.getNumeroDiasValidade().intValue());
if (!(cobrancaAcaoAtividadeCronograma2.getDataPrevista().compareTo(dataVencimentoAcaoPredecessora) <= 0)){
//seta os atributos na sess�o para uso posterior
colecaoCobrancaCronogramaHelper.remove(cobrancaCronogramaHelperAux);
cobrancaCronogramaHelperAux.setCritica1(true);
colecaoCobrancaCronogramaHelper.add(cobrancaCronogramaHelperAux);
sessao.setAttribute("colecaoCobrancaCronogramaHelper", colecaoCobrancaCronogramaHelper);
sessao.setAttribute("cobrancaGrupo", cobrancaGrupo);
sessao.setAttribute("cobrancaGrupoCronogramaMes", cobrancaGrupoCronogramaMes);
sessao.setAttribute("reexibirCritica", "true");
//mapear para p�gina de confirma��o
sessao.setAttribute("caminhoActionConclusao",
"/gsan/atualizarCobrancaCronogramaAction.do");
// Monta a p�gina de confirma��o
// Exibe a pergunta: Confirma data da atividade para a a��o <<descri��o da a��o>> ?
// Se o usu�rio confirmar prosseguir, caso contr�rio aguardar a
// informa��o da nova data
return montarPaginaConfirmacao(
"atencao.data_validade_acao_predecessora_vencido",
httpServletRequest, actionMapping, new String[] {cobrancaAcaoPredecessora.getDescricaoCobrancaAcao(),
cobrancaCronogramaHelperAux.getCobrancaAcaoCronograma().getCobrancaAcao().getDescricaoCobrancaAcao()});
}
}
}
if (cobrancaCronogramaHelperAux.getCritica2() == false){
//Caso a data informada para a atividade EMITIR n�o seja maior que NN dias da atividade EMITIR da a��o predecessora
if (cobrancaAcaoAtividadeCronograma != null){
//data de vencimento da a��o predecessora
//if colocado pois bases de algumas empresas esse campo
//est� nulo para a��es que s�o predecessoras de outra
if (cobrancaAcaoPredecessora.getNumeroDiasMinimoAcaoPrecedente() != null ){
Date dataVencimentoAcaoPredecessora = Util.adicionarNumeroDiasDeUmaData(cobrancaAcaoAtividadeCronograma.getDataPrevista(),
cobrancaAcaoPredecessora.getNumeroDiasMinimoAcaoPrecedente());
if (!(cobrancaAcaoAtividadeCronograma2.getDataPrevista().compareTo(dataVencimentoAcaoPredecessora) >= 0)){
//seta os atributos na sess�o para uso posterior
colecaoCobrancaCronogramaHelper.remove(cobrancaCronogramaHelperAux);
cobrancaCronogramaHelperAux.setCritica2(true);
colecaoCobrancaCronogramaHelper.add(cobrancaCronogramaHelperAux);
sessao.setAttribute("colecaoCobrancaCronogramaHelper", colecaoCobrancaCronogramaHelper);
sessao.setAttribute("cobrancaGrupo", cobrancaGrupo);
sessao.setAttribute("cobrancaGrupoCronogramaMes", cobrancaGrupoCronogramaMes);
sessao.setAttribute("reexibirCritica", "true");
// Monta a p�gina de confirma��o
// Exibe a pergunta: Confirma data da atividade para a a��o <<descri��o da a��o>> ?
// Se o usu�rio confirmar prosseguir, caso contr�rio aguardar a
// informa��o da nova data
sessao.setAttribute("caminhoActionConclusao",
"/gsan/atualizarCobrancaCronogramaAction.do");
// Monta a p�gina de confirma��o
return montarPaginaConfirmacao(
"atencao.intervalo_dias_minimo_entre_acao_e_predecessora",
httpServletRequest, actionMapping,
new String[] { cobrancaAcaoPredecessora.getDescricaoCobrancaAcao(), cobrancaCronogramaHelperAux.getCobrancaAcaoCronograma().getCobrancaAcao().getDescricaoCobrancaAcao()
,cobrancaCronogramaHelperAux.getCobrancaAcaoCronograma().getCobrancaAcao().getDescricaoCobrancaAcao()});
}
}
}
}
break;
}
}
}else{
//[FS0010] - Verificar a��o sem predecessora
// Para cada A��o de Cobran�a que n�o tenha a��o predecessora (CBAC_IDACAOPRECEDENTE com valor igual a nulo):
for (Iterator iterCobrancaAcaoAtividadeCronograma = cobrancaCronogramaHelperAux.getCobrancasAtividadesParaInsercao()
.iterator(); iterCobrancaAcaoAtividadeCronograma.hasNext();) {
CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronograma2 = (CobrancaAcaoAtividadeCronograma) iterCobrancaAcaoAtividadeCronograma.next();
if (cobrancaAcaoAtividadeCronograma2.getCobrancaAtividade().getId().intValue() == CobrancaAtividade.EMITIR
|| cobrancaAcaoAtividadeCronograma2.getCobrancaAtividade().getId().intValue() == CobrancaAtividade.SIMULAR){
FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo();
filtroFaturamentoGrupo.adicionarParametro(new ParametroSimples(
FiltroFaturamentoGrupo.ID, new Integer(cobrancaActionForm.getIdGrupoCobranca())));
Collection colecaoFaturamentoGrupo = fachada.pesquisar(filtroFaturamentoGrupo, FaturamentoGrupo.class.getName());
FaturamentoGrupo faturamentoGrupo = (FaturamentoGrupo) Util.retonarObjetoDeColecao(colecaoFaturamentoGrupo);
/*Caso exista grupo de faturamento, ou seja, possua registro (na tabela FATURAMENTO_GRUPO
* onde FTGR_ID = CBGR_ID da tabela da tabela COBRANCA_GRUPO e FTGR_AMREFERENCIA <> NULL
* e FTGR_NNDIAVENCIMENTO <> NULL) */
if (faturamentoGrupo != null
&& faturamentoGrupo.getAnoMesReferencia() != null
&& faturamentoGrupo.getDiaVencimento() != null){
/*Caso a data de vencimento das contas do �ltimo ciclo de faturamento do grupo de
* faturamento correspondente ao grupo de cobran�a para o qual est� sendo informado
* o cronograma (compor a data de vencimento com o dia de vencimento + m�s/ano de
* refer�ncia da tabela FATURAMENT_GRUPO) somada ao n�mero de dias para considerar
* d�bito, obtido na tabela SISTEMA_PARAMETROS, maior ou igual a data informada
* para a atividade EMITIR OU SIMULAR da a��o em quest�o*/
int diaVencimentoGrupo = faturamentoGrupo.getDiaVencimento();
int mesVencimentoGrupo = new Integer(faturamentoGrupo.getAnoMesReferencia().toString().substring(4)).intValue();
int anoVencimentoGrupo = new Integer(faturamentoGrupo.getAnoMesReferencia().toString().substring(0,4)).intValue();
Date dateVencimentoGrupo = Util.criarData(diaVencimentoGrupo, mesVencimentoGrupo, anoVencimentoGrupo);
FiltroSistemaParametro filtroSistemaParametro= new FiltroSistemaParametro();
Collection colecaoSistemaParametro = fachada.pesquisar(filtroSistemaParametro, SistemaParametro.class.getName());
if (colecaoSistemaParametro != null && !colecaoSistemaParametro.isEmpty()) {
SistemaParametro sistemaParametro = (SistemaParametro) colecaoSistemaParametro.iterator().next();
dateVencimentoGrupo = Util.adicionarNumeroDiasDeUmaData(dateVencimentoGrupo, sistemaParametro.getNumeroDiasVencimentoCobranca().intValue());
if (cobrancaCronogramaHelperAux.getCritica3() == false){
if (cobrancaAcaoAtividadeCronograma2.getDataPrevista().compareTo(dateVencimentoGrupo) < 0){
colecaoCobrancaCronogramaHelper.remove(cobrancaCronogramaHelperAux);
cobrancaCronogramaHelperAux.setCritica3(true);
colecaoCobrancaCronogramaHelper.add(cobrancaCronogramaHelperAux);
sessao.setAttribute("colecaoCobrancaCronogramaHelper", colecaoCobrancaCronogramaHelper);
sessao.setAttribute("cobrancaGrupo", cobrancaGrupo);
sessao.setAttribute("cobrancaGrupoCronogramaMes", cobrancaGrupoCronogramaMes);
sessao.setAttribute("reexibirCritica", "true");
// mapear para p�gina de confirma��o
httpServletRequest.setAttribute("caminhoActionConclusao",
"/gsan/atualizarCobrancaCronogramaAction.do");
// Monta a p�gina de confirma��o
// Exibe a pergunta: Confirma data da atividade para a a��o <<descri��o da a��o>> ?
// Se o usu�rio confirmar prosseguir, caso contr�rio aguardar a
// informa��o da nova data
return montarPaginaConfirmacao(
"atencao.acao_nao_contemplara_contas",
httpServletRequest, actionMapping, new String[] {cobrancaCronogramaHelperAux.getCobrancaAcaoCronograma().getCobrancaAcao().getDescricaoCobrancaAcao(),
Util.formatarAnoMesParaMesAno(faturamentoGrupo.getAnoMesReferencia())});
}
}
}
}
}
}
}
}
Collection colecaoCronogramaHelperErroAtualizacao = (Collection) sessao
.getAttribute("colecaoCobrancaCronogramaHelperErroAtualizacao");
Collections.sort((List) colecaoCobrancaCronogramaHelper,
new Comparator() {
public int compare(Object a, Object b) {
Short posicao1 = ((CobrancaCronogramaHelper) a)
.getCobrancaAcaoCronograma().getCobrancaAcao()
.getOrdemRealizacao();
Short posicao2 = ((CobrancaCronogramaHelper) b)
.getCobrancaAcaoCronograma().getCobrancaAcao()
.getOrdemRealizacao();
return posicao1.compareTo(posicao2);
}
});
// -----Chama o metodo atualizarCobrancaCronograma da fachada
fachada.atualizarCobrancaCronograma(colecaoCobrancaCronogramaHelper,
colecaoCronogramaHelperErroAtualizacao, this
.getUsuarioLogado(httpServletRequest));
// **************************************************************
// ******************* REMO��O **********************************
cobrancaActionForm.getIdRegistrosRemocao();
// metodo q remove as atividades
if (cobrancaActionForm.getIdRegistrosRemocao() != null) {
String[] ids = cobrancaActionForm.getIdRegistrosRemocao();
String[] arraySucessora = new String[ids.length];
int contadorSucessora = 0;
// testa se uma atividade tem sucessora se tiver nao pode ser
// removida
Iterator iteratorTesteAcaoSucessora = colecaoCobrancaCronogramaHelperSessao
.iterator();
CobrancaCronogramaHelper cobrancaCronogramaHelperSucessora = null;
while (iteratorTesteAcaoSucessora.hasNext()) {
cobrancaCronogramaHelperSucessora = (CobrancaCronogramaHelper) iteratorTesteAcaoSucessora
.next();
for (int i = 0; i < ids.length; i++) {
if (cobrancaCronogramaHelperSucessora
.getCobrancaAcaoCronograma().getCobrancaAcao()
.getCobrancaAcaoPredecessora() != null
&& cobrancaCronogramaHelperSucessora
.getCobrancaAcaoCronograma()
.getCobrancaAcao()
.getCobrancaAcaoPredecessora().getId()
.toString().equalsIgnoreCase(ids[i])) {
arraySucessora[contadorSucessora] = cobrancaCronogramaHelperSucessora
.getCobrancaAcaoCronograma().getCobrancaAcao()
.getCobrancaAcaoPredecessora().getId()
.toString();
contadorSucessora += 1;
}
}
//
if (arraySucessora != null && contadorSucessora > 0) {
boolean contemIdNaRemocao = false;
for (int y = 0; y < arraySucessora.length; y++) {
contemIdNaRemocao = false;
for (int x = 0; x < ids.length; x++) {
if (arraySucessora[y] != null
&& arraySucessora[y]
.equalsIgnoreCase(ids[x])) {
contemIdNaRemocao = true;
}
}
}
if (contemIdNaRemocao) {
throw new ActionServletException(
"atencao.dependencias.nao_remover_com_acao_sucessora");
}
}
}
CobrancaCronogramaHelper cobrancaCronogramaHelperRemover = null;
for (int i = 0; i < ids.length; i++) {
iteratorCobrancaCronogramaHelperSessao = colecaoCobrancaCronogramaHelper
.iterator();
while (iteratorCobrancaCronogramaHelperSessao.hasNext()) {
cobrancaCronogramaHelperRemover = (CobrancaCronogramaHelper) iteratorCobrancaCronogramaHelperSessao
.next();
if (cobrancaCronogramaHelperRemover
.getCobrancaAcaoCronograma() != null
&& cobrancaCronogramaHelperRemover
.getCobrancaAcaoCronograma()
.getCobrancaAcao() != null
&& cobrancaCronogramaHelperRemover
.getCobrancaAcaoCronograma()
.getCobrancaAcao().getId().toString()
.equalsIgnoreCase(ids[i])) {
cronogramasPraRemocao
.add(cobrancaCronogramaHelperRemover);
}
}
}
}
if (cobrancaActionForm.getIdRegistrosRemocao() != null) {
Iterator iterarRemocao = cronogramasPraRemocao.iterator();
Iterator iteratorRemoverDaColecao = colecaoCobrancaCronogramaHelper
.iterator();
String[] idsRemocao = new String[cronogramasPraRemocao.size()];
CobrancaCronogramaHelper cobrancaCronogramaHelperRemocao = null;
int i = 0;
while (iterarRemocao.hasNext()) {
cobrancaCronogramaHelperRemocao = (CobrancaCronogramaHelper) iterarRemocao
.next();
idsRemocao[i] = cobrancaCronogramaHelperRemocao
.getCobrancaAcaoCronograma().getCobrancaAcao().getId()
.toString();
iteratorRemoverDaColecao = colecaoCobrancaCronogramaHelper
.iterator();
while (iteratorRemoverDaColecao.hasNext()) {
cobrancaCronogramaHelperRemocao = (CobrancaCronogramaHelper) iteratorRemoverDaColecao
.next();
if (idsRemocao[i]
.equalsIgnoreCase(cobrancaCronogramaHelperRemocao
.getCobrancaAcaoCronograma()
.getCobrancaAcao().getId().toString())) {
iteratorRemoverDaColecao.remove();
}
}
i += 1;
}
i = 0;
if (!cronogramasPraRemocao.isEmpty()) {
fachada.removerCobrancaCronograma(cronogramasPraRemocao);
}
}
// **************************************************************
FiltroCobrancaGrupo filtroCobrancaGrupo = new FiltroCobrancaGrupo();
filtroCobrancaGrupo.adicionarParametro(new ParametroSimples(
FiltroCobrancaGrupo.ID, cobrancaGrupo.getId()));
Collection colecaoCobrancaGrupo = fachada.pesquisar(
filtroCobrancaGrupo, CobrancaGrupo.class.getName());
CobrancaGrupo cobrancaGrupoExibicao = (CobrancaGrupo) colecaoCobrancaGrupo
.iterator().next();
//remove da sess�o objetos n�o mais utiliz�veis
sessao.removeAttribute("colecaoCobrancaCronogramaHelper");
sessao.removeAttribute("cobrancaGrupo");
sessao.removeAttribute("cobrancaGrupoCronogramaMes");
sessao.removeAttribute("reexibirCritica");
montarPaginaSucesso(httpServletRequest, "Cronograma de Cobran�a do "
+ cobrancaGrupoExibicao.getDescricao()
+ " referente a "
+ Util.formatarAnoMesParaMesAno(cobrancaGrupoCronogramaMes
.getAnoMesReferencia()) + " atualizado com sucesso.",
"Atualizar outro Cronograma de Cobran�a",
"exibirFiltrarCobrancaCronogramaAction.do?menu=sim");
return retorno;
}
private CobrancaAcaoAtividadeCronograma recuperaAcaoPredecessora(int idCobrancaAcao, Collection colecaoCobrancaCronogramaHelper){
CobrancaAcaoAtividadeCronograma retorno = null;
for (Iterator iter = colecaoCobrancaCronogramaHelper.iterator(); iter
.hasNext();) {
CobrancaCronogramaHelper cobrancaCronogramaHelper = (CobrancaCronogramaHelper) iter.next();
if (cobrancaCronogramaHelper.getCobrancaAcaoCronograma() != null){
if (cobrancaCronogramaHelper.getCobrancaAcaoCronograma().getCobrancaAcao().getId().intValue() == idCobrancaAcao){
for (Iterator iterator = cobrancaCronogramaHelper.getCobrancasAtividadesParaInsercao()
.iterator(); iterator.hasNext();) {
CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronograma = (CobrancaAcaoAtividadeCronograma) iterator.next();
if (cobrancaAcaoAtividadeCronograma.getCobrancaAtividade().getId().intValue() == CobrancaAtividade.EMITIR){
retorno = cobrancaAcaoAtividadeCronograma;
break;
}
}
break;
}
}
}
return retorno;
}
}