====== Especificação Funcional: Movimentação do estoque ======
===== Resumo =====
Esta especificação descreve os requisitos utilizados como base para o desenvolvimento do controle de estoque.
===== Descrição =====
A Movimentação do estoque, permite ao usuário o lançamento de entrada e saída dos produtos da escola, atualizando o estoque a cada lançamento.
Ao acessar o módulo de Estoque, o sistema deve exibir uma lista com as movimentações do estoque.
===== Entrada =====
A tela de Entrada que alimenta o estoque da escola, incluindo os produtos com suas respectivas quantidades, conforme dados informados.
==== Dados da entrada ====
Uma Entrada deve possuir os seguintes campos:
|< 100% 19% 60% 7% 7% 7%>|
^ Campo ^ Descrição ^ Tipo ^ Tamanho ^ Obrigatório? ^
|**Dados da entrada ** |||||
|Entidade |Escola onde o produto está entrando do estoque | Texto | 100 | Sim |
|Recurso(s) |Recurso de onde veio o produto | Texto | 60 | Não |
|Fornecedor |Nome do fornecedor dos produtos da entrada | Texto | 60 | Não |
|Data |Data de lançamento da entrada do produto | Data | - | Sim |
|Nº. documento |Número do documento de entrada | Texto | 20 | Não |
|**Itens** |||||
|Produto |Nome do produto | Texto | 60 | Sim |
|Unid. medida |Unidade de medida do produto | Texto | 06 | Sim |
|Nº. lote |Número do lote do produto | Texto | 20 | Não |
|Quantidade |Quantidade de entrada do produto no estoque da escola | Número | - | Sim |
|Validade |Data de validade do produto | Data | - | Sim |
|**Anexos** |||||
|Nome do arquivo |Nome do arquivo anexado | - | - | Não |
|**Informações adicionais** |||||
|Observações |Observações sobre o lançamento de entrada | Texto | 1000 | Não |
==== Configurações e preferências do usuário ====
Não se aplica.
==== Pontos de verificação ====
* Na inclusão de uma entrada, o sistema deve exibir desabilitado o campo Entidade (apenas o nome da escola deve ser exibido), permitindo a seleção da escola através do botão “Localizar uma entidade”; Na tela “Localizar escola”, o sistema deve exibir todas as escolas cadastradas. Ao abrir o cadastro de entrada, o sistema deve trazer o campo preenchido, se houver apenas uma escola;
* Na alteração de uma entrada, o sistema deve exibir o botão "Localizar uma entidade" desabilitado;
* O sistema deve trazer uma lista com os Recursos que já foram cadastrados;
* O sistema deve trazer uma lista com os Fornecedores que já foram cadastrados;
* O sistema deve trazer a Data preenchida com a data do dia do lançamento, podendo ser alterada;
* Na inclusão, o sistema deve trazer a lista de produtos vazia e os botões Incluir, Excluir e Alterar Item desabilitados. Após salvar a movimentação, o sistema deve desabilitar o campo Entidade e habilitar os botões e permitir que sejam incluídas as entradas dos itens dos produtos, assim que uma entrada de um item for cadastrada, deve ser permitido que seja alterada e/ou visualizada;
* O sistema não deve permitir que seja excluído um item no qual já tenha sido realizada saída do estoque; Caso seja permitida a exclusão, o sistema deve atualizar o estoque do item excluído, diminuindo no saldo do estoque do produto o valor da quantidade que havia entrado para o item do produto;
* Ao clicar no botão Imprimir, o sistema deve informar ao usuário que irá salvar a movimentação de entrada antes de imprimí-la, e deve perguntar se deseja continuar, caso o usuário indique que Sim, o sistema deve salvar os dados da movimentação e logo após imprimir o relatório contendo os dados atualizados;
* Após salvar a movimentação de entrada, o sistema deve atualizar imediatamente o estoque dos produtos da entidade;
=== Itens da entrada ===
* Na inclusão de uma entrada do item, o sistema deve exibir desabilitado o campo Produto (apenas o nome do produto deve ser exibido), permitindo a seleção do produto através do botão “Localizar um produto”; Na tela “Localizar produto”, o sistema deve exibir todos os produtos cadastrados;
* O sistema deve permitir que seja cadastrado mais de um item do mesmo produto na entrada, desde que a Validade dos mesmos seja diferente;
* Na alteração de uma entrada do item, o sistema deve exibir desabilitado o botão “Localizar um produto”;
* O sistema deve exibir o campo 'Unid. medida' sempre desabilitado, e assim que for selecionado um produto, o campo deve receber a informação referente ao cadastro do produto selecionado;
* O sistema não deve permitir salvar um item da entrada com a validade inferior à data da entrada da movimentação;
* O sistema não deve permitir salvar um item de entrada com a validade já cadastrada para o mesmo produto (quando não houver o nº do lote informado);
* O sistema não deve permitir salvar um item de entrada com a validade e nº. do lote já cadastrados do mesmo produto;
* O sistema deve aceitar apenas caracteres reais (números e vírgula) no campo 'Quantidade';
* Após salvar um item, o mesmo deve ser imediatamente atualizado na lista de itens da movimentação;
* O sistema deve permitir que seja alterada a quantidade de um item, mesmo que torne o negativo o estoque do produto ou do item na entidade. O sistema deve refletir a diferença (positiva ou negativa) da alteração da quantidade, para todos os campos de 'Saldo anterior' e 'Saldo atual' das saídas já realizadas para o item do produto, assim como no saldo em estoque do item e do produto na entidade.
==== Observações ====
Nenhuma informação adicional.
===== Saída =====
A tela de Saída atualiza o saldo atual do estoque da entidade, conforme dados informados na saída. O sistema se encarrega de atualizar o estoque de cada produto a cada operação.
==== Dados da saída ====
Uma Saída deve possuir os seguintes campos:
|< 100% 19% 60% 7% 7% 7%>|
^ Campo ^ Descrição ^ Tipo ^ Tamanho ^ Obrigatório? ^
|**Dados da saída** |||||
|Entidade |Escola onde o produto está saindo do estoque | Texto | 100 | Sim |
|Destino |Escola para onde o produto foi enviado | Texto | 60 | Não |
|Motivo |Motivo da saída do produto do estoque | Texto | 60 | Sim |
|Recurso(s) |Nome do recurso utilizado para realizar a saída | Texto | 60 | Não |
|Data |Data de lançamento da saída do produto do estoque | Data | - | Sim |
|N°. documento |Número Documento da saída dos produtos | Texto | 20 | Não |
|N°. dias |Número de dias que os produtos foram consumidos | Número | - | Não |
|N°. alunos |Número de alunos que consumiram os produtos | Número | - | Não |
|**Itens** |||||
|Produto |Nome do produto | Texto | 60 | Sim |
|Unidade |Unidade de medida do produto | Texto | - | Sim |
|Saldo anterior |Saldo anterior do item do produto no estoque da escola | Número | - | Sim |
|Saldo atual |Saldo atual do item do produto no estoque da escola | Número | - | Sim |
|Quantidade |Quantidade consumida do item do produto na escola | Número | - | Sim |
|**Anexos** |||||
|Nome do arquivo |Nome do arquivo anexado | - | - | Não |
|**Informações adicionais** |||||
|Observações |Observações sobre o lançamento de saída | Texto | 1000 | Não |
==== Configurações e preferências do usuário ====
==== Merenda ====
* **A saída será realizada pelo**: Esta opção de configuração é específica do Cadastro de saída dos itens, quando estiver com a opção 'Saldo atual' marcada, o sistema deve permitir que a saída dos itens seja informada pelo campo Saldo atual, caso a opção 'Quantidade' esteja marcada, a saída dos itens deverá ser informada pelo campo Quantidade. Por padrão esta opção deve estar marcada 'Quantidade';
==== Pontos de verificação ====
* Na inclusão de uma saída, o sistema deve exibir desabilitado o campo Entidade (apenas o nome da escola deve ser exibido), permitindo a seleção da escola através do botão “Localizar uma entidade”; Na tela “Localizar escola”, o sistema deve exibir todas as escolas cadastradas. Ao abrir o cadastro de saída, o sistema deve trazer o campo preenchido se houver apenas uma entidade;
* Na alteração de uma saída, o sistema deve exibir o botão "Localizar uma entidade" desabilitado;
* O sistema deve trazer uma lista com os Destinos que já foram cadastrados;
* O sistema deve trazer uma lista com os Motivos que já foram cadastrados;
* O sistema deve trazer uma lista com os Recursos que já foram cadastrados;
* O sistema deve trazer a Data preenchida com a data do dia do lançamento, podendo ser alterada;
* O sistema deve aceitar apenas caracteres numéricos nos campos 'N°. documento', 'N°. dias' e 'N°. alunos';
* Na inclusão, o sistema deve trazer o valor do 'N°. documento' incrementado, de acordo com o último valor salvo no banco de dados;
* Na inclusão, o sistema deve trazer na lista de Itens, todos os produtos que possuem valor no estoque da entidade (tanto positivo quanto negativo), os campos 'Saldo anterior' e 'Saldo atual' devem exibir o saldo do estoque do produto na entidade, ou seja, o mesmo valor; já o campo 'Quantidade' deve ser exibido com o valor zerado; Nas demais ações, o sistema deve trazer tanto os produtos que foram consumidos no estoque para a devida movimentação, com os respectivos valores para os campos 'Saldo anterior', 'Saldo atual' e 'Quantidade', onde o valor Quantidade não deve ser igual a zero; e a soma do Saldo atual com a Quantidade deve ser igual ao valor do Saldo anterior; quanto os produtos que não foram alterados na movimentação, mas porém possuem valor no estoque da entidade (positivo/negativo), seguindo os mesmos critérios da inclusão, em relação aos valores exibidos para os campos na tela;
* O sistema deve trazer habilitados os botões Alterar e Visualizar Item em quaisquer ações;
* Ao clicar no botão Imprimir Guia, o sistema deve verificar se os campos necessários para impressão da guia estão preenchidos, além dos campos obrigatórios, deve-se preencher o destino (que é para onde os produtos estão sendo enviados) e o número do documento; depois dessa verificação, o sistema deve informar ao usuário que irá salvar a movimentação de saída antes de imprimí-la, e deve perguntar se deseja continuar, caso o usuário indique que Sim, o sistema deve salvar os dados da movimentação e logo após imprimir o relatório contendo os dados atualizados;
* Após salvar a movimentação de saída, o sistema deve atualizar imediatamente o estoque dos produtos da entidade, assim como o estoque dos lotes;
* O sistema deve atualizar o estoque de cada produto consumido, caso a saída seja excluída do sistema, o estoque de cada produto deve ser somado com o valor que havia sido consumido;
=== Itens da saída ===
* O sistema deve trazer os Dados do produto: 'Nome' e 'Unid. medida' preenchidos e desabilitados;
* Na alteração, o sistema deve trazer a lista dos itens do produto, que possuem estoque na entidade. Os campos 'Saldo anterior' e 'Saldo atual' devem exibir o saldo do estoque do item do produto na entidade, ou seja, o mesmo valor; já o campo 'Quantidade' deve ser exibido com o valor zerado; Na visualização, o sistema deve trazer novamente todos os itens do produto que foram salvos na movimentação, sendo que os itens que não foram consumidos, devem manter o saldo anterior e saldo atual iguais e o consumido zerado; já os itens do produto que foram consumidos no estoque para a devida movimentação, devem exibir os respectivos valores para os campos 'Saldo anterior', 'Saldo atual' e 'Quantidade', onde o valor Quantidade não deve ser igual a zero; e a soma do Saldo atual com a Quantidade deve ser igual ao valor do Saldo anterior;
* Na alteração, o sistema deve trazer habilitado o botão 'Alterar item selecionado' e na visualização o botão deve estar desabilitado;
* O sistema deve exibir o saldo atual do produto sempre atualizado, sendo este a soma do Saldo atual de todos os itens do produto exibidos na listagem;
=== Item da saída ===
* O sistema deve permitir que um item seja alterado através do botão 'Alterar item selecionado';
* O sistema deve trazer os campos 'Validade' e 'Saldo anterior' preenchidos e desabilitados;
* O sistema deve trazer equivalentes o valor do Saldo atual e do Saldo anterior e o valor da Quantidade igual a zero;
* Caso a opção da configuração 'A saída será realizada pelo:' estiver marcada com:
* 'Saldo atual': o sistema deve trazer o campo 'Saldo atual' habilitado e o campo 'Quantidade' desabilitado;
* 'Quantidade': o sistema deve trazer o campo 'Quantidade' habilitado e o campo 'Saldo atual' desabilitado;
* O sistema deve atualizar o campo que estiver desabilitado, de acordo com o valor informado pelo usuário no campo que estiver habilitado. A medida que o usuário digitar no campo, a soma do saldo atual e do consumido deve ser sempre igual ao valor do saldo anterior;
* O sistema não deve permitir que seja salva a saída do item com o valor do consumido igual a zero ou negativo;
* O sistema pode permitir que um item seja salvo com o valor do 'Saldo atual' negativo;
* Após salvar a movimentação de um item do produto, o sistema deve atualizar imediatamente a lista de itens do produto;
===== Pontos de verificação =====
* O sistema deve trazer uma lista com todas as movimentações;
* O sistema deve possuir uma lista com opções de visões, para movimentação e para cada item das movimentações;
* O sistema deve possuir legenda para diferenciar entrada e saída.
===== Observações =====
Nenhuma informação adicional.
===== Relatório =====
* Neste módulo temos a opção de emitir o relatório de movimentação do estoque, sendo necessário informar os filtros Período, Escola e Grupo para que o relatório possa ser visualizado;
* O sistema deve exibir desabilitado o campo Entidade (apenas o nome da escola deve ser exibido), permitindo a seleção da entidade através do botão “Localizar uma entidade”; Na tela “Localizar escola”, o sistema deve exibir todas as escolas cadastradas. Ao abrir a tela do relatório, o sistema deve trazer o campo preenchido se houver apenas uma entidade.
===== Visões =====
Neste módulo assim como nos outros temos a opção da visão, que geralmente é apenas uma (Padrão), aqui temos duas opções a Padrão e a Itens Movimentação. A visão Padrão lista os campos da Tabela de Movimentação e a visão Itens Movimentação, traz cada item das movimentações, que é obtido da Tabela Itens da Movimentação, permitindo o usuário exibir a coluna que quiser, possibilitando impressão dos dados da maneira que desejar.
Na Visão de Itens da Movimentação será exibido um painel no rodapé que vai mostrar os totais de Entrada e Saída e a Diferença(que é a Entrada - Saída), conforme o que está sendo exibido no grid. Esses valores são atualizados conforme filtro realizado no grid.
~~DISCUSSION|Sugira mudanças, aponte falhas ou contribua de alguma forma aqui:~~