Tabela de conteúdos

~~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.

Descrição do Caso de Uso

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:

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

O caso de uso é finalizado.

Principais Regras de Negócio

Resoluções/Legislações Associadas

Não se Aplica.

Classes Persistentes e Tabelas Envolvidas

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

Plano de Teste

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

Cenários de Teste

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

Dados para o Teste

     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
    SELECT id_gestora FROM comum.unidade un
	INNER JOIN comum.usuario us ON us.id_unidade = un.id_unidade
		WHERE us.login LIKE '?'