~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Relatório de Combustíveis Distribuídos por Unidade ====== Esta funcionalidade é utilizada pelos gestores de transportes com a finalidade de listar o consumo de determinados combustíveis por unidades em um período de tempo. ===== 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 -> Abastecimento -> Combustíveis Distribuídos por Unidade//. As seguintes opções de filtragens são oferecidas: * **Período***: Formato - XXXX/AAAA. Tipo TEXTO. * **Combustíveis***: Tipo TEXTO. * **Mostrar Saldo?***: Tipo TEXTO. Pode ser ''SIM'' ou ''Não''. Então o sistema exibe um relatório tal qual o modelo abaixo quando não for mostrar saldo: **__Relatório de Consumo de Itens de Manutenção por Unidade__** * **__Período__**: Formato - XXXX/AAAA. Tipo TEXTO e NUMÉRICO. * **__Combustíveis__**: Tipo TEXTO. * **__Mostrar Saldo?__**: Tipo TEXTO. ^Unidade ^^ Denominação do Combustível ^^ | Cód.|Nome Abreviado | Litros | Valor (R$)| | CÓDIGO|SIGLA DA UNIDADE | 9.999,99 | R$ 99,99| | CÓDIGO|SIGLA DA UNIDADE | 9.999,99 | R$ 99,99| | **Total (R$):**|| **99.999,99**| **99.999,99**| Ou então o sistema exibe um relatório tal qual o modelo abaixo quando for para mostrar saldo: **__Relatório de Consumo de Itens de Manutenção por Unidade__** * **__Período__**: Formato - XXXX/AAAA. Tipo TEXTO e NUMÉRICO. * **__Combustíveis__**: Tipo TEXTO. * **__Mostrar Saldo?__**: Tipo TEXTO. ^Unidade ^ Denominação do Combustível (Litros) ^ |CÓDIGO - SIGLA DA UNIDADE | 9.999,99| |CÓDIGO - SIGLA DA UNIDADE | 9.999,99| | **Total**| **99.999,99**| ^SALDO^^^^ |Saldo Anterior em **__DD/MM/AAAA__** | Entradas em **__MÊS de ANO__** | Saídas em **__MÊS de ANO__**| Saldo Atual em **__DD/MM/AAAA__**| |Denominação do Combustível |||| | 9.999,99| 9.999,99| 9.999,99| 9.999,99| | 9.999,99| 9.999,99| 9.999,99| 9.999,99| Ao final do relatório deve ser impresso local, data e ainda espaços para a assinatura do encarregado do serviço e do diretor da divisão. O caso de uso é finalizado. ===== Principais Regras de Negócio ===== Não se aplica ==== Resoluções/Legislações Associadas ==== Não se aplica ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela | | br.ufrn.sipac.transportes.dominio.TipoCombustivel| administrativo.transporte.tipo_combustivel | | br.ufrn.sipac.transportes.dominio.Abastecimento| administrativo.transporte.abastecimento | | br.ufrn.sipac.cadastro.dominio.Unidade| administrativo.transporte.unidade | | br.ufrn.sipac.transportes.dominio.EntradaCombustivel | administrativo.transporte.entrada_combustivel | ====== Plano de Teste ====== Sistema: SIPAC Módulo: TRANSPORTES Link(s): Aba de Relatórios -> Abastecimento -> Combustíveis Distribuídos por Unidade Usuários: bergue 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 ===== * Verificar se o fluxo do caso de uso está funcionando corretamente. ===== Dados para o Teste ===== * Para verificar os dados dos combustíveis e usá-los nas consultas abaixo, basta executar a consulta abaixo: select * from transporte.tipo_combustivel * Para verificar os dados do consumo de cada combustível por unidade, basta usar a consulta abaixo, informando o período com o dia igual a 1, por exemplo, para o mês de maio de 2011, deve-se informar abastecime0_.data_transacao>='2011-05-01' and abastecime0_.data_transacao<'2011-06-01', e os ids dos tipos de combustíveis: select unidade2_.ID_UNIDADE, unidade2_.CODIGO_UNIDADE, unidade2_.SIGLA, unidade2_.NOME, unidade2_.UNIDADE_ORCAMENTARIA, tipocombus1_.id_tipo_combustivel, tipocombus1_.denominacao, SUM(abastecime0_.quantidade_litros), SUM(round(abastecime0_.valor_abastecimento)) from transporte.abastecimento abastecime0_ inner join transporte.tipo_combustivel tipocombus1_ on abastecime0_.id_tipo_combustivel=tipocombus1_.id_tipo_combustivel inner join comum.UNIDADE unidade2_ on abastecime0_.id_unidade=unidade2_.ID_UNIDADE where abastecime0_.data_transacao>='?' and abastecime0_.data_transacao<'?' and (tipocombus1_.id_tipo_combustivel in (? , ?)) and (exists (select entradacom3_.id_tipo_combustivel from transporte.entrada_combustivel entradacom3_ where tipocombus1_.id_tipo_combustivel=entradacom3_.id_tipo_combustivel)) group by unidade2_.ID_UNIDADE , unidade2_.CODIGO_UNIDADE , unidade2_.SIGLA , unidade2_.NOME , unidade2_.UNIDADE_ORCAMENTARIA , tipocombus1_.id_tipo_combustivel , tipocombus1_.denominacao order by unidade2_.CODIGO_UNIDADE, tipocombus1_.denominacao * Para verificar o saldo anterior (caso seja positiva a resposta de mostrar saldo) ao mês selecionado por combustível, pode-se utilizar as consultas abaixo informando a data do período em que o dia é sempre 1, por exemplo, para o mês de maio de 2011: ent.data_cadastro < '2011-05-01'. Informar o id do tipo de combustível. E fazer a subtração do resultado da primeira consulta pelo da segunda: select sum(ent.quantidade) from transporte.entrada_combustivel ent where ent.data_cadastro < '?' and ent.id_tipo_combustivel = ? select sum(abas.quantidade_litros) from transporte.abastecimento abas inner join transporte.tipo_combustivel tc on abas.id_tipo_combustivel = tc.id_tipo_combustivel where abas.data_transacao < '?' and tc.id_tipo_combustivel = ? and exists(select ec.id_tipo_combustivel from transporte.entrada_combustivel ec where tc.id_tipo_combustivel = ec.id_tipo_combustivel) * Para verificar as entradas de combustível no mês selecionado (caso seja positiva a resposta de mostrar saldo), pode-se utilizar a consulta abaixo informando o período com o dia sempre igual a 1, por exemplo, para o mês de maio de 2011: ent.data_cadastro >= '2011-05-01' and ent.data_cadastro < '2011-06-01'. E o id do tipo de combustível: select sum(ent.quantidade) from transporte.entrada_combustivel ent where ent.data_cadastro >= '?' and ent.data_cadastro < '?' and ent.id_tipo_combustivel = ? * As saídas do mês selecionado (caso seja positiva a resposta de mostrar saldo) são o total consumido de cada combustível que é apresentado na tabela de gastos por unidade (primeira tabela). E o saldo atual é a soma do saldo anterior com o total de entradas, subtraído do total de saídas.