~~ODT~~
Relatório de Consumo e Quilometragem por Veículo
Este caso de uso é utilizado pelos gestores de transporte com a finalidade de criar um relatório detalhando o consumo de combustível e quilometragem de um veículo.
Descrição do Caso de Uso
Este caso de uso inicia quando o usuário acessa a opção: SIPAC → Transportes → Aba de Relatórios → Gastos → Consumo de Combustível e Quilometragem por Veículo.
Inicialmente, é exibido o seguinte formulário de busca:
- Veículo: Tipo - AUTOCOMPLETE, formato: XXX-9999. Placa ou modelo ou marca do veículo a ser consultado.
- Unidade Beneficiada: Tipo - AUTOCOMPLETE, formato: NOME_UNIDADE (CODIGO_UNIDADE). Nome ou código da unidade a ser consultada.
- Tipo de Uso do Veículo: Tipo - TEXTO, formato: DENOMINACAO TIPO DE USO DO VEICULO.
- Tipo do Veículo: Tipo - TEXTO, formato: DENOMINACAO TIPO DO VEICULO.
- Veículos com Fluxo de Atesto do chefe da unidade: Tipo - BOOLEANO.
- Mês/Ano: Tipo - TEXTO.
- Período: Tipo - DATA, formato: DD/MM/AAAA de DD/MM/AAAA.
- Tipo de Relatório:* Tipo - TEXTO.
De acordo com o Tipo de Relatório escolhido pelo usuário podemos ter duas opções, onde o sistema exibe um relatório tal qual um dos modelo abaixo (RN02): :
Relatório Sintético
Relatório Sintético de Consumo de Combustível e Quilometragem
Veículo: DESCRICAO COMPLETA VEICULO
Tipo de Uso de Veículo: DENOMINACAO TIPO USO VEICULO
Tipo do Veículo: DENOMINACAO TIPO VEICULO
Fluxo de Atesto pelo Chefe: [SIM | NAO]
Período: DD/MM/AAAA a DD/MM/AAAA
Veículo | Quilometragem Total | Consumo total | Gasto Total | Km/L |
---|---|---|---|---|
DESCRICAO COMPLETA VEICULO | 9999 km | 99.99 l | R$ 99,99 | Média: 99,99 |
DESCRICAO COMPLETA VEICULO | 9999 km | 99.99 l | R$ 99,99 | Média: 99,99 |
Total | 9999 km | 99.99 l | R$ 99,99 | Média: 99,99 |
O caso de uso é finalizado.
Relatório Analítico
Relatório Analítico de Consumo de Combustível e Quilometragem
Veículo: DESCRICAO COMPLETA VEICULO
Tipo de Uso de Veículo: DENOMINACAO TIPO USO VEICULO
Tipo do Veículo: DENOMINACAO TIPO VEICULO
Fluxo de Atesto pelo Chefe: [SIM | NAO]
Período: DD/MM/AAAA a DD/MM/AAAA
Veículo: DESCRICAO COMPLETA VEICULO | |||||||||
---|---|---|---|---|---|---|---|---|---|
Data | Quilometragem | Consumo | Valor | Valor Acum. | Km/L | ||||
Início | Término | Total | Total Acum. | Litros | Litros Acum. | ||||
DD/MM/AAAA | 9999 | 9999 | 9999 | 9999 | 99.99 | 99.99 | R$ 99,99 | R$ 99,99 | 99.99 |
Total: | 9999 | 99.99 | R$ 99,99 | Média: 99,99 |
O caso de uso é finalizado.
Principais Regras de Negócio
- RN01 - Caso o usuário seja um Gestor de Transportes de Unidades, deverá visualizar apenas os abastecimentos cuja unidade gestora esteja na hierarquia de sua unidade.
- RN02 - Caso o usuário selecione um veículo automaticamente o relatório a ser exibido sempre será o relatório analítico do veículo para o período informado.
Resoluções/Legislações Associadas
Não se aplica.
Classes Persistentes e Tabelas Envolvidas
Classe | Tabela |
---|---|
br.ufrn.sipac.transportes.dominio.Abastecimento | transporte.abastecimento |
br.ufrn.sipac.transportes.dominio.Veiculo | transporte.veiculo |
Plano de Teste
Sistema: SIPAC
Módulo: TRANSPORTES
Link(s): Aba de Relatórios → Gastos → Consumo de Combustível e Quilometragem por Veículo.
Usuário: berguer
Papel que usuário deve ter:
- SipacPapeis.GESTOR_TRANSPORTES_GLOBAL,
- SipacPapeis.GESTOR_TRANSPORTES_UNIDADES,
- SipacPapeis.RELATORIOS_TRANSPORTES,
- SipacPapeis.GESTOR_TRANSPORTES_ABASTECIMENTO,
- SipacPapeis.AUDITOR.
Cenários de Teste
Realizar os testes convencionais com diferentes combinações e usuários.
É interessante que o testador cadastre um veículo e vários abastecimentos no mesmo, ou em um veículo para o qual ainda não existem abastecimentos cadastrados (SQL abaixo).
Dados para o Teste
Código SQL para trazer informações que podem ser utilizadas para gerar o relatório e conferir as informações:
SELECT a.data_transacao, v.placa, a.valor_abastecimento, a.odometro, a.id_unidade, u.nome FROM transporte.abastecimento a INNER JOIN transporte.veiculo v ON a.id_veiculo = v.id_veiculo INNER JOIN comum.unidade u ON u.id_unidade = a.id_unidade ORDER BY v.placa,a.data_transacao
SQL para trazer informações, incluido unidade gestora. (Para o caso de o usuário possui o papel de Gestor Transportes - Unidades.
SELECT a.data_transacao, v.placa, a.valor_abastecimento, a.odometro, a.id_unidade, u.nome FROM transporte.abastecimento a INNER JOIN transporte.veiculo v ON a.id_veiculo = v.id_veiculo INNER JOIN comum.unidade u ON u.id_unidade = a.id_unidade WHERE a.id_unidade = [ID DA UNIDADE] ORDER BY v.placa,a.data_transacao, a.id_unidade
SQL para trazer as placas dos veículos para os quais ainda não foi cadastrado um abastecimento:
SELECT v.placa FROM transporte.veiculo v WHERE v.id_veiculo NOT IN (SELECT a.id_veiculo FROM transporte.abastecimento a)