====== 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:~~