~~ODT~~

Última atualização: 2017/04/03 18:21 (edição externa)

Gastos com Manutenção

Este caso de uso é utilizado para se obter um relatório de gastos com manutenção de alguma unidade. Ele é usado pelos executores de orçamento.

Este caso de uso é iniciado ao acessar o seguinte caminho: Sipac → Portal Administrativo → Aba Outros → Consultas → Despesas → Gastos com Manutenção.

Passo 1

Para consultar as notificações, o sistema solicita ao usuário algumas das informações a seguir:

  • Data Inicial*: Formato - DD/MM/AAAA, Tipo - DATA.
  • Data Final*: Formato - DD/MM/AAAA, Tipo - DATA.
  • Unidade*: Formato - NOME (CÓDIGO), Tipo - TEXTO.
  • Almoxarifado: Formato - NOME, Tipo - TEXTO. (RN01)

O resultado da busca é mostrado em um relatório como o do modelo abaixo:

O caso de uso é finalizado.

  • RN01 - As consultas serão feitas somente no ALMOXARIFADO - SUP. INFRA-ESTRUTURA.

Resoluções/Legislações Associadas

Não se Aplica.

Classe Tabela
br.ufrn.sipac.supinfra.projetos.dominio.RequisicaoSupInfra administrativo.infra.requisicao_supinfra
br.ufrn.sipac.requisicoes.material.dominio.RequisicaoMaterial administrativo.requisicoes.requisicao_material
br.ufrn.comum.dominio.UnidadeGeral administrativo.comum.unidade
br.ufrn.sipac.requisicoes.material.dominio.ItemRequisicao administrativo.requisicoes.item_requisicao
br.ufrn.sipac.almoxarifado.saidas.dominio.AtendimentoReqMaterial administrativo.almoxarifado.atendimento_req_material

Sistema: SIPAC

Módulo: PORTAL ADMINISTRATIVO

Link(s): Sipac → Portal Administrativo → Aba Outros → Consultas → Despesas → Gastos com Manutenção

Usuário: gustavo, alanaisis

O usuário tem que ter um dos papéis: ScoPapeis.EXECUTOR_ORCAMENTO, ScoPapeis.EXECUTOR_ORCAMENTO_GLOBAL

Verificar se o fluxo do caso de uso está correto e os dados mostrados no relatório.

  • Para verificar os dados do relatório, pode-se utilizar a seguinte consulta, substituindo os ? por DATA INICIAL, DATA FINAL, ID DA UNIDADE GESTORA DO USUÁRIO, DATA INICIAL, DATA FINAL e ID DA UNIDADE GESTORA DO USUÁRIO, respectivamente:
     SELECT * FROM (
	(SELECT DISTINCT '1' AS tipo, u.id_unidade, u.nome AS unidade, u.codigo_unidade AS codigo,
		r.numero, r.ano, r.data, r.descricao, rm.id_status, rm.numero AS m_numero, rm.ano AS m_ano, rm.data AS m_data,
		sr2.descricao AS status_material, sr.descricao AS status_requisicao, r.valor,
		SUM((a.qtd_atendida - a.qtd_devolvida)*a.preco_atendimento) AS valor_material
			FROM infra.requisicao_supinfra r
			INNER JOIN requisicoes.requisicao_material rm ON rm.id_req_anterior=r.id
			INNER JOIN requisicoes.status_requisicao sr  ON sr.id=r.id_status
			INNER JOIN requisicoes.status_requisicao sr2 ON sr2.id=rm.id_status
			INNER JOIN comum.unidade u ON u.id_unidade=rm.id_unidade_custo
			INNER JOIN requisicoes.item_requisicao i ON (rm.id = i.id_requisicao)
			INNER JOIN almoxarifado.atendimento_req_material a ON (a.id_item_req_material = i.id)
				WHERE a.data BETWEEN ? AND ? AND a.id_almoxarifado = 3 AND r.id_tipo=11
					AND u.hierarquia LIKE '%.?.%' AND NOT (rm.id_status IN (100,107))
				GROUP BY u.id_unidade, u.nome, u.codigo_unidade, r.numero, r.ano, r.data, r.descricao, rm.id_status, rm.numero, rm.ano,
					rm.data, sr2.descricao, sr.descricao, r.valor
				ORDER BY u.nome, r.data, rm.data)
 
		UNION
 
		(SELECT DISTINCT  '2' AS tipo, u.id_unidade, u.nome AS unidade, u.codigo_unidade AS codigo,
			1, rm.id_unidade_req, rm.data_aut_chefe, rm.justificativa, rm.id_status,
			rm.numero AS m_numero, rm.ano AS m_ano, rm.data AS m_data, sr2.descricao,
			sr2.descricao AS status_material, rm.valor,
			SUM((a.qtd_atendida - a.qtd_devolvida)*a.preco_atendimento) AS valor_material
				FROM requisicoes.requisicao_material rm
				INNER JOIN requisicoes.status_requisicao sr2 ON sr2.id=rm.id_status
				INNER JOIN comum.unidade u ON u.id_unidade=rm.id_unidade_custo
				INNER JOIN requisicoes.item_requisicao i ON (rm.id = i.id_requisicao)
				INNER JOIN almoxarifado.atendimento_req_material a ON (a.id_item_req_material = i.id )
					WHERE a.data BETWEEN ? AND ?
						AND a.id_almoxarifado = 3 AND rm.id_req_anterior IS NULL AND u.hierarquia LIKE '%.?.%'
							AND NOT (rm.id_status IN (100,107))
					GROUP BY tipo, u.id_unidade, u.nome, u.codigo_unidade, rm.id_usuario, rm.id_unidade_req, rm.data_aut_chefe,
							rm.justificativa, rm.id_status, rm.numero, rm.ano, rm.data, rm.id_status, sr2.descricao, rm.valor
					ORDER BY rm.numero, u.nome, rm.data) )
    AS q ORDER BY q.id_unidade, tipo
  • Já para verificar o id da unidade gestora do usuário, pode-se utilizar a consulta abaixo informando o login do usuário:
    SELECT id_gestora FROM comum.unidade un
	INNER JOIN comum.usuario us ON us.id_unidade = un.id_unidade
		WHERE us.login LIKE '?'
  • desenvolvimento/especificacoes/sipac/portal_administrativo/casos_de_uso/outros/consultas/despesas/gastos_com_manutencao.txt
  • Última modificação: 2017/04/03 18:21
  • (edição externa)