//PERMISSAO DE ACESSO DA PARTE DE REGISTRO DE MONITORAMENTO
int qtdePeriodosAnteriores = 1;
Collection periodosConsiderados = new ArrayList( );
AcompReferenciaItemAri ari = null;
ItemEstruturaIett item = null;
AcompReferenciaAref acompReferencia = null;
TipoAcompanhamentoTa tipoAcompanhamento = null;
List tpfaOrdenadosPorEstrutura = null;
TipoFuncAcompDao tipoFuncAcompDao = new TipoFuncAcompDao( null );
EstruturaAcessoDao estruturaAcessoDao = new EstruturaAcessoDao( null );
AcompReferenciaDao acompReferenciaDao = new AcompReferenciaDao( null );
AcompReferenciaItemDao ariDao = new AcompReferenciaItemDao( null );
TipoAcompanhamentoDao taDao = new TipoAcompanhamentoDao( null );
ItemEstUsutpfuacDao itemEstUsuDao = new ItemEstUsutpfuacDao( null );
AcompReferenciaItemDao acompReferenciaItemDao = new AcompReferenciaItemDao( null );
boolean usuarioLogadoEmiteParecer = false;
boolean permissaoLapis = false;
boolean permissaoAdministradorAcompanhamento = false;
Iterator itPeriodosAcao = null;
Map mapAcao = null;
UsuarioUsu usuario = seguranca.getUsuario( );
try
{
try
{
if ( ( codTipoAcompanhamento != null ) && ! codTipoAcompanhamento.equals( "" ) )
{
tipoAcompanhamento =
(TipoAcompanhamentoTa) taDao.buscar( TipoAcompanhamentoTa.class,
Long.valueOf( codTipoAcompanhamento ) );
permissaoAdministradorAcompanhamento =
estruturaAcessoDao.temPermissoesAcessoAcomp( tipoAcompanhamento,
seguranca.getGruposAcesso( ) );
}
} catch ( Exception e )
{
//NAO EXISTE O TIPO DE ACOMPANHAMENTO;
throw new PermissaoAcessoLinkException( ErroPermissaoAcessoLinkEnum.TIPO_DE_ACOMPANHAMENTO_INEXISTENTE );
}
try
{
if ( ( referencia_hidden != null ) && ! referencia_hidden.equals( "" ) )
{
periodosConsiderados =
acompReferenciaDao.getPeriodosAnterioresOrdenado( Long.valueOf( referencia_hidden ),
qtdePeriodosAnteriores,
Long.valueOf( codTipoAcompanhamento ),
false );
}
} catch ( Exception e )
{
//NAO EXISTE A REFERENCIA;
throw new PermissaoAcessoLinkException( ErroPermissaoAcessoLinkEnum.REFERENCIA_INEXISTENTE );
}
try
{
// Busca cole��o com o per�odo a ser considereado
if ( ( codAri != null ) && ! codAri.equals( "" ) )
{
ari = (AcompReferenciaItemAri) ariDao.buscar( AcompReferenciaItemAri.class,
Long.valueOf( codAri ) );
item = ari.getItemEstruturaIett( );
}
} catch ( Exception e )
{
//NAO EXISTE O ACOMPANHAMENTO;
throw new PermissaoAcessoLinkException( ErroPermissaoAcessoLinkEnum.ACOMPANHAMENTO_INEXISTENTE );
}
if ( ( item.getIndAtivoIett( ) == null ) ||
"".equals( item.getIndAtivoIett( ).trim( ) ) ||
"N".equals( item.getIndAtivoIett( ).toUpperCase( ) ) )
{
//O ITEM EST� INATIVO;
throw new PermissaoAcessoLinkException( ErroPermissaoAcessoLinkEnum.ITEM_INATIVO );
//verifica se o usu�rio pode "Gerar Per�odo de Acompanhamento"
} else if ( permissaoAdministradorAcompanhamento )
{
permissaoLapis = true;
} else
{
itPeriodosAcao = periodosConsiderados.iterator( );
mapAcao = acompReferenciaItemDao.criarMapPeriodoAri( periodosConsiderados, item );
tpfaOrdenadosPorEstrutura = tipoFuncAcompDao.getFuncaoAcompOrderByEstruturas( );
if ( ( itPeriodosAcao != null ) && itPeriodosAcao.hasNext( ) )
{
//Pega s� o per�odo selecionado (Aref), que � o primeiro
acompReferencia = (AcompReferenciaAref) itPeriodosAcao.next( );
if ( ! mapAcao.isEmpty( ) && mapAcao.containsKey( acompReferencia ) )
{
AcompReferenciaItemAri ariAcao = (AcompReferenciaItemAri) mapAcao.get( acompReferencia );
//Pega os Arels do Ari selecionado
List relatorios =
acompReferenciaItemDao.getAcompRelatorioArelOrderByFuncaoAcomp( ariAcao,
tpfaOrdenadosPorEstrutura );
Iterator itRelatorios = relatorios.iterator( );
if ( itRelatorios != null )
{
while ( itRelatorios.hasNext( ) )
{
AcompRelatorioArel relatorio = (AcompRelatorioArel) itRelatorios.next( );
ItemEstUsutpfuacIettutfa itemEstUsu =
itemEstUsuDao.buscar( item.getCodIett( ),
relatorio.getTipoFuncAcompTpfa( ).getCodTpfa( ) );
//Verifica se a permiss�o � de grupo ou usu�rio
if ( ( itemEstUsu != null ) && ( usuario != null ) )
{