~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Relatório de Consumo ====== O relatório de consumo, do módulo de almoxarifado, traz informações sobre o quanto foi consumido de cada material, com divisão por grupo de material. O relatório é usado pelos gestores e auditores de almoxarifados para fazer classificações e estudos de consumo dos respectivos almoxarifados. ===== Descrição do Caso de uso ===== O caso de uso é acessado através do caminho no sistema: //SIPAC -> Módulo Almoxarifado -> Aba Relatórios -> Consumo -> Relatório de Consumo//. Alguns filtros são disponibilizados para a consulta: * **Almoxarifado***: Tipo TEXTO. formato: NOME DO ALMOXARIFADO. ([[#principais regras de negócio|RN03]]) ***Período de***: Tipo DATA. Formato DD/MM/AAAA até DD/MM/AAAA. ==Filtrar por Material== ***Grupo de Material**: Tipo TEXTO e NUMÉRICO. Formato 9999 NOME DO GRUPO DE MATERIAL. ([[#principais regras de negócio|RN01]]) ***Código**: Tipo NUMÉRICO. Formato 999999999999. ***Denominação**: Tipo TEXTO. ***Todos os Materiais do Grupo de Material Informado**: Tipo LÓGICO. ([[#principais regras de negócio|RN01]]) ==Filtrar por Unidade== ***Unidade**: Tipo TEXTO e NUMÉRICO. Formato 9999 NOME DA UNIDADE. ([[#principais regras de negócio|RN02]]) * É disponibilizada a opção de buscar a unidade por nome. ***Todas as Unidades (Global)**: Tipo LÓGICO. ***Agrupar por Unidade Requisitante (Padrão por Unidade de Custo)**: Tipo LÓGICO. ===== ===== ***Formato do Relatório**: Tipo TEXTO. São apresentadas as opções: ''Formato HTML'' e ''Formato Excel''. **Relatório de Consumo - NOME DO ALMOXARIFADO** ^Código^Denominação^Total^Consumo Diário^Consumo Mensal ([[#principais regras de negócio|RN04]])^Consumo Semestral ([[#principais regras de negócio|RN05]])^Estoque Mínimo ([[#principais regras de negócio|RN06]])^ |**9999**|**NOME DO GRUPO DE MATERIAL** ([[#principais regras de negócio|RN01]])|||||| |999999999999|NOME DO MATERIAL|9...|9,99|9,99|9,99|9...| |999999999999|NOME DO MATERIAL|9...|9,99|9,99|9,99|9...| |999999999999|NOME DO MATERIAL|9...|9,99|9,99|9,99|9...| |**9999**|**NOME DO GRUPO DE MATERIAL** ([[#principais regras de negócio|RN01]])|||||| |999999999999|NOME DO MATERIAL|9...|9,99|9,99|9,99|9...| Logo abaixo serão apresentados os conceitos de período ([[#principais regras de negócio|RN07]]) O caso de uso é finalizado. ===== Principais Regras de Negócio ===== ***RN01** - A terminologia Grupo de Material pode ser ajustada para Elemento de Despesa Detalhado, ver [[desenvolvimento:especificacoes:sipac:patrimonio:ajuste_de_parametros#altera%C3%A7%C3%B5es_no_arquivo_terminologias.properties_ufrn|Terminologias]]. ***RN02** - Um usuário de uma unidade só pode filtrar pela unidade-mãe da sua unidade, ou suas sub-unidades. ***RN03** - Caso o usuário não possua os papéis de: SipacPapeis.GESTOR_INSTITUICAO, SipacPapeis.AUDITOR, SipacPapeis.GESTOR_DIRECAO, o campo **Almoxarifado** não será exibido. ***RN04** - O consumo mensal é gerado a partir dos materiais que tiveram movimentações no estoque de saída avulsa e de saída por atendimento de requisições, no ano corrente, sendo essa quantidade divida pelo número de meses do ano. (Adicionado em 22/04/2013, referente a tarefa 112169) ***RN05** - O consumo semestral deve ser gerado a partir dos materiais que tiveram movimentações de saída avulsa e saída por atendimento de requisições nos últimos 6 (seis) meses. (Adicionado em 22/04/2013, referente a tarefa 112169) ***RN06** - O estoque mínimo é informado na funcionalidade [[desenvolvimento:especificacoes:sipac:almoxarifado:casos_de_uso:estoque:estoque:manutencao_do_estoque|Manutenção do Estoque]]. (Adicionado em 22/04/2013, referente a tarefa 112169) ***RN07**: Logo abaixo da listagem do relatório deverá ser apresentado a descrição dos 3 conceitos de consumo: * Seis meses ou mais. * Total: Deve ser obtido considerando a data inicial e final. * Consumo diário: Deve-se obter a quantidade de dias do período e dividir o total do item anterior por essa quantidade de dias. * Consumo mensal: Será o consumo diário multiplicado por 30. * Consumo semestral: Será o consumo diário mensal multiplicado por 6. * Menor que seis meses e mais de um mês. * Total: Mesmo que o anterior. * Consumo diário: Mesmo que o anterior. * Consumo mensal: Mesmo que o anterior. * Consumo semestral: Obtém o consumo dos últimos seis meses com base na data final. * Inferior a um mês. * Total: Mesmo que o anterior. * Consumo diário: Mesmo que o anterior. * Consumo mensal: Obtém o consumo do último mês com base na data final. * Consumo semestral: Obtém o consumo dos últimos seis meses com base na data final. ==== Resoluções/Legislações Associadas ==== Não se aplica. ===== Classes Persistentes e Tabelas Envolvidas ===== * Material: Os Materiais que são mostrados na listagem * GrupoMaterial: Classe que representa um grupo de materiais, ao qual vários materiais podem pertencer. ^ Classe ^ Tabela ^ | br.ufrn.sipac.requisicoes.material.dominio.Material | sipac.public.material | | br.ufrn.sipac.requisicoes.material.dominio.GrupoMaterial | sipac.public.grupo_material | ====== Plano de Teste ====== Sistema: SIPAC Módulo: ALMOXARIFADO Link(s): Aba Relatórios -> Consumo -> Relatório de Consumo Usuário: genibaldo Papel que usuário deve ter: SipacPapeis.GESTOR_ALMOXARIFADO, SipacPapeis.AUDITOR_ALMOXARIFADO ===== Cenários de Teste ===== - Com usuário gestor de almoxarifado gere o relatório informando os dados necessários e anote o código do material; - Com usuário que seja requisitor de material, cadastre uma requisição para o almoxarifado, informado esse material e proceda com o atendimento; - Com o usuário de gestor de almoxarifado, gere novamente o relatório e verifique se o consumo foi alterado; - Com o usuário gestor de almoxarifado, gere relatórios com períodos diferentes, com a opção de todos os grupos e todas as unidades e depois escolha um ou dois grupos e unidades para verificar consistências no total e nos consumos calculados; ===== Dados para o Teste ===== O relatório é composto das seguintes consultas: Consultas dos materiais presentes no estoque que tiveram item atendidos por requisições: select mat.id_material as IDMAT, grupo.codigo as grcodigo, grupo.denominacao as grden, mat.codigo as matcodigo, mat.denominacao as matden, sum(item.qtd_atendida)-sum(item.qtd_devolvida) as total, est.saldo_minimo as estmin, unidmed.denominacao as unidmedida from almoxarifado.atendimento_req_material atend, comum.grupo_material grupo, requisicoes.item_requisicao item, comum.material mat join comum.unidade_medida unidmed on mat.id_unidade_medida = unidmed.id, almoxarifado.estoque_material est where atend.id_item_req_material=item.id and mat.id_material=item.id_material and est.id_material=mat.id_material and mat.id_grupo=grupo.id and est.id_almoxarifado=? and atend.id_almoxarifado=? and atend.data between '?' and '?' group by mat.id_material, mat.codigo, est.saldo_minimo, grupo.codigo, grupo.denominacao, mat.denominacao, unidmed.denominacao order by grupo.codigo asc, mat.denominacao asc; Consultas dos materiais presentes no estoque que tiveram movimentações do tipo saída avulsa: select mat.id_material as IDMAT, grupo.codigo as GRCODIGO, grupo.denominacao as GRDEN, mat.codigo as MATCODIGO, mat.denominacao as MATDEN, sum(quantidade) as TOTAL, mov_est.id_material, est_mat.saldo_minimo as estmin, unidmed.denominacao as unidmedida from almoxarifado.movimentacao_estoque mov_est , comum.material mat join comum.unidade_medida unidmed on mat.id_unidade_medida = unidmed.id, comum.grupo_material grupo,almoxarifado.estoque_material est_mat where mov_est.tipo =0 and mov_est.estornado= false and est_mat.id_almoxarifado = ? and mov_est.id_almoxarifado = ? and mov_est.data_movimento >= '?' and mov_est.data_movimento <= '?' and mov_est.id_material = mat.id_material and mat.id_grupo = grupo.id and est_mat.id_material = mat.id_material and mov_est.estornado = false group by mat.id_material, mov_est.id_material, grupo.codigo, grupo.denominacao, mat.codigo, mat.denominacao, est_mat.saldo_minimo, unidmed.denominacao order by grupo.codigo asc, mat.denominacao asc;