~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== 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 ([[#Principais Regras de Negócio|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)