~~ODT~~
Relatório de Saldo de Todas as Unidades
Este caso de uso é semelhante ao de Saldo Orçamentário por Unidade, sendo que este exibe os dados para a unidade gestora informada, e todas as suas unidades filhas.
Pré-condições:
- Está logado como executor de orçamento, executor de orçamento global, executor de convênio ou diretor (apenas um dos papéis);
- Existir unidade gestora cadastrada para extração do relatório.
Descrição do Caso de Uso
Este caso de uso inicia quando o usuário acessa a opção: SIPAC → Orçamento → Aba Relatórios → Saldos → Saldo de Todas as Unidades.
Esta descrição tem o mesmo fluxo do caso de uso Saldo Orçamentário por Unidade.
Modelo de relatório
No relatório, também são exibidas os dados das unidades filhas.
Principais Regras de Negócio
- RN01 - O sistema deve exibir unidades que também tenham saldo igual zero.
- RN02 - O sistema as unidades orçamentárias de fato ou de direito/gestora que tenham saldo negativo ou maior que zero.
Classes Persistentes e Tabelas Envolvidas
Classe | Tabela |
---|---|
br.ufrn.sipac.arq.interop.orcamento.CelulaOrcamentariaAdapter | administrativo.sco.celula_orcamentaria |
br.ufrn.info.sco.dominio.Esfera | administrativo.sco.esfera |
br.ufrn.sipac.convenios.dominio.Convenio | administrativo.convenios.convenio |
Plano de Teste
Sistema: SIPAC
Módulo: SCO (Sistema de Controle Orçamentário)
Link(s): SCO → Relatórios → Saldos → Saldo de Todas as Unidades
Usuário: larrubia2, dilson, seocchla01 ou cesyjr
Papel que usuário deve ter: SipacPapeis.GESTOR_INSTITUICAO, SipacPapeis.AUDITOR, SipacPapeis.AUTORIZADOR_ORCAMENTO_CENTRO ou SipacPapeis.GESTOR_DIRECAO
Cenários de Teste
Realizar operações no SCO tanto para unidades, como para convênios, e verificar nesse relatório se o saldo da unidade (ou convênio) foi modificada, com a movimentação correspondente.
Além disso, verificar se as unidades subordinadas a uma determinada unidade gestora estão corretas.
Dados para o Teste
Para consultar os orçamentos na hierarquia:
SELECT programatr.id_programa_trabalho,programatr.nome, programatr.codigo, elementode.id_elemento_despesa, elementode.nome_resumido, elementode.codigo, elementode.id_tipo_orcamento, fonterecur.id_fonte_recurso, fonterecur.codigo, esfera.id_esfera, esfera.codigo, planointer.id_plano_interno, planointer.codigo, convenio.ID, convenio.NUMERO_REGISTRO, convenio.ANO, unidadeger.ID_UNIDADE, unidadeger.CODIGO_UNIDADE, unidadeger.NOME, celulaorca.id_celula, celulaorca.ano, celulaorca.saldo, celulaorca.total_empenho, celulaorca.total_anulado, celulaorca.total_distribuido, celulaorca.total_transferido, celulaorca.total_recebido, celulaorca.total_bloqueado, celulaorca.total_entrada_permuta, celulaorca.total_saida_permuta FROM sco.celula_orcamentaria celulaorca INNER JOIN sco.esfera esfera ON celulaorca.id_esfera=esfera.id_esfera INNER JOIN sco.programa_trabalho programatr ON celulaorca.id_programa_trabalho=programatr.id_programa_trabalho INNER JOIN sco.fonte_recurso fonterecur ON celulaorca.id_fonte_recurso=fonterecur.id_fonte_recurso INNER JOIN sco.elemento_despesa elementode ON celulaorca.id_elemento_despesa=elementode.id_elemento_despesa LEFT OUTER JOIN sco.plano_interno planointer ON celulaorca.id_plano_interno=planointer.id_plano_interno LEFT OUTER JOIN CONVENIOS.CONVENIO convenio ON celulaorca.id_convenio=convenio.ID INNER JOIN UNIDADE unidadeger ON celulaorca.id_unidade=unidadeger.ID_UNIDADE WHERE unidadeger.UNIDADE_ORCAMENTARIA=TRUE AND celulaorca.ano=2009 AND (convenio.ID IS NULL) AND (unidadeger.HIERARQUIA LIKE '%.605.%') AND unidadeger.ID_UNIDADE<>605 ORDER BY unidadeger.NOME, elementode.codigo, programatr.codigo, fonterecur.codigo, esfera.codigo, unidadeger.CODIGO_UNIDADE