Especificação funcional PC Place
Introdução
Este documento tem como objetivo especificar funcionalidades do sistema que de acordo com os requisitos levantados deverão atender o cliente PC Place. As funcionalidades em questão poderão partir da adequação de rotinas já existentes ou até mesmo da criação de novas rotinas.
Todos os layouts de tela contidos neste documento são meras sugestões, podendo sofrer ajustes e adequações no ato de seu desenvolvimento.
Estes ajustes não influenciarão nas principais funcionalidades da respectiva rotina.
Requisitos
Esta lista contém todos os requisitos levantados/limitados para o desenvolvimento do projeto. A partir dela serão geradas especificações funcionais conforme descrito abaixo.
Especificações funcionais
REQUISITO 01 - Cadastro de produtos
Conforme documentado na lista de requisitos o cadastro de produtos/serviços já existente no sistema ERP da ATS Informática atende a demanda do cliente. Em resumo, as funcionalidades atuais do sistema atenderão os requisitos apontados pelo cliente da seguinte maneira:
- Produtos e serviços: Estes poderão ser cadastrados através das rotinas Menu > Cadastros > Faturamento > Item > Produto acabado e Menu > Cadastros > Faturamento > Item > Serviço respectivamente. As regras e funcionalidades de ambas as rotinas estão descritas no caso de uso UC00078 - Cadastro de produto acabado.
- Hardware, software, serviço pc, place e serviço base: Uma vez que estas características visam classificar/categorizar produtos e/ou serviços, estas serão atendidas pelos cadastros de grupo/subgrupo e família, já existentes no sistema. Exemplo:
- Grupo Hardware
- Subgrupos Memória, placa-mãe e fonte
- Famílias Windows, Linux, OS X
- Fabricante: Também já existente no sistema, o cadastro de fabricantes permitirá ao usuário cadastrar quantos fabricantes desejar. Ao cadastrar um novo produto, o usuário poderá vincular um dos fabricantes cadastrados ao produto em questão.
- Marca: A exemplo do fabricante, o usuário poderá cadastrar também marcas, vinculando uma marca a um produto.
(GIL DAR A OPÇÃO CERTA E ACABOU)
- Part number: Atualmente o sistema oferece ao usuário 3 maneiras de informar o part number de um item em seu cadastro:
- Referência: Campo existente no cadastro de produtos e serviços utilizado para armazenar uma referência única do item. Pode ser utilizado para armazenar código de barras, part number e etc.
- Ref. Fabricante: Campo existente somente no cadastro de produtos, é utilizado para armazenar um código, uma referência, um part number, um código de barras ou qualquer outro dado que é específico do fabricante para um determinado item. Este campo é o mais recomendado para armazenar o part number.
- Campo livre: Cadastro já existente no sistema que permite ao usuário criar novos campos com seu próprio nome, tipo e validação para serem exibidos nos cadastros de produto e serviço. Caso usuário não deseje utilizar os campos mencionados acima para armazenar o part number de um item, ele poderá criar seu próprio campo.
REQUISITO 02 - Lançamento de pedidos
Para atender este requisito será desenvolvida uma nova rotina de lançamento de pedidos com as peculiaridades apontadas pelo cliente. Os campos e funcionalidades desta nova rotina se darão conforme descrito abaixo.
Tela de pesquisa
Assim que a rotina de lançamento de pedidos for acessada será exibida ao usuário sua tela de pesquisa, que conterá os pedidos lançados no mês corrente listados em um grid e também uma aba de consulta com filtros específicos. O grid listará os pedidos já lançados no mês corrente ou os pedidos filtrados na aba de consulta nas seguintes colunas:
- CÓDIGO
- DATA (de lançamento do pedido)
- Nº PROPOSTA
- CLIENTE FINAL (código + nome)
- FORNECEDOR (código + nome)
- VENDEDOR (código + nome)
- MOEDA
- SITUAÇÃO (ver filtro da consulta mais abaixo)
- OBSERVAÇÕES
Os pedidos do mês corrente listados no grid serão ordenados por situação, exibindo primeiro aqueles que estão em aberto seguidos dos entregues parcialmente
e dos entregues por completo. Os registros que estiverem na situação EM ABERTO deverão ter a situação exibida na cor vermelha. Os registros que estiverem na
situação ENTREGA PARCIAL deverão ter a situação exibida na cor amarela. Os registros que estiverem na situação ENTREGUE deverão ter a situação exibida na cor verde.
Por padrão a aba com os filtros para consulta de pedidos será exibida em seu estado recolhido. Caso usuário queira utiliza-la ele deverá clicar sobre a lupa azul no canto superior direito da tela, logo acima do grid. Assim que a aba for expandida, serão exibidos ao usuário:
- Nº Proposta: Neste campo o usuário poderá filtrar pedidos que possuem vinculo com um determinado número de proposta.
- Cliente final: Neste campo o usuário poderá filtrar pedidos emitidos para um determinado cliente final.
- Fornecedor: Neste campo o usuário poderá filtrar pedidos emitidos para um determinado fornecedor.
- Período de lançamento: Neste campo o usuário poderá informar uma data inicial e final para buscar pedidos lançados neste período.
- Data de entrega: Neste campo o usuário poderá informar uma data inicial e final para filtrar pedidos cujos itens possuem data de entrega dentro do período informado.
- Moeda: Neste campo o usuário poderá filtrar pedidos emitidos em uma determinada moeda.
- Situação: Neste campo o usuário poderá filtrar pedidos que se encontram e uma determinada situação escolhendo uma das opções abaixo:
- E aberto: Pedidos em que nenhum item foi marcado como entregue.
- Entrega parcial: Pedidos em que um ou mais itens foram marcados como entregue.
- Entregue: Pedidos em que todos os seus itens foram marcados como entregue.
- Botão [Limpar]: Limpa todos os filtros da aba voltando-os a seu estado inicial.
- Botão [Consultar]: Com base nos filtros informados, lista no grid os resultados encontrados.
No canto superior esquerdo do grid será exibido o botão [Lançar pedido], que quando acionado levará o usuário para a tela de manutenção de pedidos cujas funcionalidades estão descritas mais abaixo.
Tela de manutenção
Tela onde o usuário poderá fazer o lançamento de novos pedidos no sistema. Esta tela será dividida em duas abas, cada uma com funcionalidades específicas conforme descrito abaixo.
Dados do pedido
- Código do pedido: Campo somente para leitura que armazenará o código do pedido. O código será um sequencial numérico gerado automaticamente pelo sistema.
- Data: Campo somente leitura que exibirá a data em que o usuário logou no sistema, que será também a data de lançamento do pedido.
- Nº Proposta: Campo onde o usuário deverá informar, obrigatoriamente, o número de uma proposta já cadastrada cujo status é Aprovada. O número da proposta poderá ser informado nas seguintes situações:
- Usuário sabe o número da proposta: Neste caso basta digitar o número da proposta no campo em questão e acionar o botão [Atualizar] logo à direita (3º ícone à direita do campo). Se o número da proposta é válido o sistema preencherá automaticamente o nome do respectivo cliente no campo logo abaixo. Caso contrário uma mensagem de alerta será exibida ao usuário informando que não foi encontrada nenhuma proposta com o número informado ou que a proposta não está aprovada.
- Usuário não sabe o número da proposta: Neste caso basta acionar o botão [Pesquisar] logo à direita (1º ícone à direita do campo) para que seja exibida a tela de pesquisa de propostas. Na tela de pesquisa o usuário deverá informar o cliente da proposta que deseja utilizar para que o sistema liste em um grid todas as propostas (aprovadas) existentes para o mesmo. Uma vez que a proposta desejada foi identificada no grid com o resultado da pesquisa, basta clicar sobre a mesma para que seu número seja transportado para a tela de lançamento de pedidos e a pesquisa seja automaticamente fechada.
- O cliente possui uma proposta, mas ela ainda não foi lançada no sistema: Neste caso o usuário deverá acionar o botão [Cadastrar proposta] logo à direita (2º ícone à direita do campo) para que seja aberto em uma nova aba do navegador o cadastro de propostas. Após cadastrar a proposta e atualizar seu status para Aprovada, o usuário poderá utiliza-la na venda informando seu número ou selecionando-a na pesquisa.
- Cliente final: Campo somente leitura que será preenchido automaticamente quando uma proposta válida for informada. Sem uma proposta, não será possível informar o cliente final.
- Fornecedor: Campo onde deverá ser informado o fornecedor do pedido, ou seja, a empresa na qual os produtos/serviços serão comprados para serem repassados para o cliente final. O fornecedor poderá ser informado de diferentes formas: (GIL - É NO ITEM)
- Pelo código: Usuário informa no primeiro campo o código do fornecedor e quando o foco passar para o próximo campo o sistema preenche automaticamente o nome do mesmo. Caso código informado não seja válido um balão será exibido sobre o campo informando que o código é inválido.
- Pelo nome: Usuário começa a digitar o nome do fornecedor no segundo campo e o sistema exibe em uma lista logo abaixo do campo os fornecedores cadastrados cujo nome corresponde ao que já foi digitado. O usuário seleciona um fornecedor na lista e o sistema preenche automaticamente seu código.
- Pela pesquisa: Usuário pressiona a tecla [Enter] no campo de código enquanto vazio ou aciona o botão [Pesquisar] logo à direita para que seja aberta a tela de pesquisa de fornecedores. Após encontrar o fornecedor desejado na pesquisa o usuário o seleciona no grid para transporta-lo para tela de lançamento de pedidos e fechar a tela de pesquisa.
- Cadastrar novo fornecedor: Usuário aciona o botão [Cadastrar fornecedor] logo à direita para que seja aberto em uma nova aba o cadastro de fornecedores. Após cadastrar o fornecedor desejado usuário retorna para a aba de lançamento de pedido e aciona o botão [Atualizar]. Na sequencia o usuário poderá informar o fornecedor recém cadastrado através de um dos métodos anteriores.
- Vendedor: Campo onde serão listados todos os vendedores cadastrados no sistema. Nele o usuário deverá selecionar o vendedor do pedido. O sistema preencherá automaticamente no campo à direita a comissão informada no cadastro do vendedor (se existir).
- Moeda: Campo onde serão listadas as moedas R$ Real e U$ Dollar para que o usuário seleciona, obrigatoriamente, em qual delas o pedido será lançado.
- Observação: Campo onde o usuário poderá informar, opcionalmente, observações para o pedido.
Itens
- Item: Campo onde o usuário poderá informar o produto ou serviço a ser adicionado no pedido. O usuário poderá inserir um item na venda nas seguintes formas:
- Pelo código: Usuário informa no primeiro campo o código do item e quando o foco passar para o próximo campo o sistema preenche automaticamente o nome do mesmo. Caso código informado não seja válido um balão será exibido sobre o campo informando que o código é inválido.
- Pelo nome: Usuário começa a digitar o nome do item no segundo campo e o sistema exibe em uma lista logo abaixo do campo os itens cadastrados cujo nome corresponde ao que já foi digitado. O usuário seleciona um item na lista e o sistema preenche automaticamente seu código.
- Pela pesquisa: Usuário pressiona a tecla [Enter] no campo de código enquanto vazio ou aciona o botão [Pesquisar] logo à direita para que seja aberta a tela de pesquisa de itens. Após encontrar o item desejado na pesquisa o usuário o seleciona no grid para transporta-lo para tela de lançamento de pedidos e fechar a tela de pesquisa.
- UN de venda: Assim que o item for informado, o sistema preencherá automaticamente este campo com a unidade padrão definida no cadastro do mesmo. Se desejar, o usuário poderá selecionar uma outra unidade de venda dentre as unidades de saída cadastradas no item. Em caso de serviços este campo ficará vazio e desabilitado.
- Vlr. Unitário: Assim que um item for informado este campo será automaticamente preenchido com o preço de custo informado em seu cadastro. Em caso de serviços ou de inexistência do preço de custo, este campo será preenchido com 0,00. Se desejar, o usuário poderá alterar livremente o valor unitário do item ou até mesmo zera-lo (caso haja preço informado).
- Qtde.: Campo onde deverá ser informada a quantidade do item na venda.
- Total: Campo somente leitura que exibirá o total do item na venda multiplicando seu valor unitário pela quantidade.
- Comissão: Campo onde o usuário poderá informar um percentual de comissão a incidir sobre o total do item. O valor da comissão não influenciará o total do item na venda, sendo apenas uma informação que será contabilizada somente em rotinas de relatórios ou consultas.
- Margem: Campo onde o usuário poderá informar um percentual de margem de lucro sobre o total do item. O valor da margem será somado ao total do item na venda.
- Total c/ marg/comis.: Campo somente leitura que exibirá o valor final do item, ou seja, seu valor total somado à margem de lucro informada.
- Data de entrega: Campo onde o usuário deverá informar, obrigatoriamente, uma data de entrega/execução para cada item da venda.
- Observação: Campo onde o usuário poderá informar alguma observação para o item se desejar.
- Botão [Adicionar]: Botão que quando acionado insere o item no grid caso todos os dados obrigatórios do mesmo tenham sido informados.
- Botão [Limpar]: Botão que quando acionado limpa todos os campos referentes ao item voltando-os a seu estado inicial.
- Grid: Exibirá todos os itens adicionados na venda nas seguintes colunas:
- ITEM: Código + descrição do produto/serviço.
- REFERÊNCIA: Exibe a referência/part number do produto ou serviço informada em seu cadastro.
- UNIDADE: Exibe a unidade de venda selecionada para o item.
- VLR. UNIT.: Exibe o valor unitário informado para o item.
- QTDE.: Exibe a quantidade do item na venda.
- TOTAL: Exibe o valor total do item na venda (Vlr. Unitário * Qtde).
- % COMISSÃO: Exibe o percentual de comissão informado para o item.
- % MARGEM: Exibe o percentual de margem informado para o item.
- TOTAL C/ MARG/COMIS.: Exibe o total do item já com a margem de lucro aplicada (caso informada).
- DATA PREV. ENTREGA: Exibe a data de previsão de entrega informada para o item.
- ENTREGUE DIA: Campo onde o usuário deverá informar a data em que o produto/serviço foi efetivamente entregue ou realizado. Este somente poderá ser informado no grid e será permitido informa-lo tanto na digitação do pedido quanto na alteração de um pedido já gravado.
- OBSERVAÇÃO: Exibe a observação informada para o item.
- EXCLUIR: Ícone que quando acionado exclui do grid o item em questão. Antes de excluir o item será exibida uma mensagem de confirmação.
- ALTERAR: Ícone que quando acionado carrega dos dados do item em questão nos campos acima do grid para que o usuário faça suas alterações. Para salvar as alterações no item basta adicioná-lo novamente no grid para atualizar seus dados.
- TOTAL DO PEDIDO: Campo somente leitura que será exibido logo abaixo do grid, totalizando todos os itens da venda considerando a coluna TOTAL C/ MARG/COMIS. do grid.
- Botão [Gravar pedido]: Botão que quando acionado grava o pedido no banco de dados. Para que um pedido seja gravado todos os campos obrigatórios da aba Dados do pedido devem estar preenchidos e pelo menos um item deve estar adicionado no grid.
- Botão [Faturar]: Botão que quando acionado encaminha o usuário para a tela de emissão de nota fiscal. Este botão só será habilitado se na rotina Lançamento de comissões a comissão do pedido estiver marcada como Aceita e se no grid existir informação para todos os itens da coluna ENTREGUE DIA.
- Botão [Cancelar]: Botão que aborta a operação atual (digitação do pedido, consulta e etc) diante mensagem de confirmação e retorna para tela de pesquisa da rotina em questão.
Movimentações
A rotina em questão não gerará movimento de estoque, uma vez que o cliente não possui este controle. As movimentações financeiras somente serão geradas (tanto para produtos quanto para serviços) na emissão da nota fiscal, onde serão gerados registros de contas a receber contra o Fornecedor informado na aba Dados do pedido.
REQUISITO 03 - Cadastro de propostas
Para atender este requisito será criada no sistema a rotina Lançamento de propostas, que ficará localizada no menu Cadastros > Faturamento > Cliente > Lançamento de propostas. A nova rotina deverá funcionar conforme descrito abaixo.
Tela de pesquisa
Exibida assim que a rotina for acessada, listará as propostas já cadastradas em um grid com as seguintes colunas:
- Nº PROPOSTA: Número atribuído à proposta no momento de seu cadastro.
- DATA: Data em que a proposta foi lançada no sistema.
- CLIENTE: Código + descrição do cliente para quem a proposta foi lançada.
- STATUS: Exibe o status atual da proposta.
O grid irá dispor das seguintes funcionalidades:
- Configurações: Permite ao usuário personalizar algumas funcionalidades do grid como:
- Máximo de linhas: Quantidade máxima de linhas a ser exibida para cada página do grid.
- Colunas fixas: Caso grid possua várias colunas o usuário poderá definir, da esquerda para direita, quantas colunas deseja manter fixas quando a barra de rolagem horizontal for acionada.
- Colunas: Permite ao usuário selecionar quais colunas do grid serão visíveis e a ordem das mesmas.
- Paginação: Caso a quantidade de propostas exibidas ultrapasse a quantidade de linhas estipulada nas configurações do grid, serão criadas páginas no grid com as demais propostas.
- Ordenação: Cada coluna do grid possuirá à direita de seu nome botões que permitem ao usuário ordenar os registros listados de forma crescente ou decrescente.
- Exportação: Todos os dados listados no grid (incluindo as demais páginas) podem ser facilmente exportados para uma planilha com apenas um clique.
- Pesquisa dinâmica: No canto superior direito da tela será visível o desenho de uma lupa na cor cinza. Quando usuário clicar sobre esta lupa será exibido um campo para que ele digite qualquer informação referente a uma ou mais propostas já lançadas (somente dados listados nas colunas do grid). À medida que o usuário digitar o sistema atualizará o grid listando somente propostas que tenham relação com a informação digitada (pelo menos 3 caracteres).
- Edição, consulta e exclusão: Na última coluna do grid (fixa) serão exibidos três ícones que permitirão ao usuário alterar, consultar ou excluir uma determinada proposta.
No canto superior esquerdo da tela estará disponível o botão [Adicionar proposta] que permitirá ao usuário cadastrar uma nova proposta direcionando-o para tela de manutenção.
Tela de manutenção
Permitirá ao usuário lançar novas propostas no sistema com os seguintes campos e funcionalidades:
- Nº Proposta: Campo somente leitura que exibirá o número atribuído à proposta após a mesma ser gravada. Este número será gerado automaticamente pelo sistema.
- Data: Campo somente leitura que é preenchido automaticamente com a data na qual o usuário logou no sistema.
- Cliente: Campo onde o usuário deverá informar, obrigatoriamente, o cliente da proposta. O cliente poderá ser informado através de seu código, pelo nome ou através de uma pesquisa.
- Status: Campo onde deverá ser definida, obrigatoriamente, o status inicial da proposta. As opções serão:
- Em análise (padrão)
- Aprovada
- Não aprovada
- Anexar proposta: Campo que permitirá ao usuário selecionar, obrigatoriamente, um arquivo para upload em seu computador que será vinculado à proposta em questão quando a mesma for salva. Somente serão aceitos arquivos cujo tamanho é menor ou igual a 2mb e de extensão doc ou pdf. Uma vez que uma proposta foi salva com anexo este campo será desabilitado quando a mesma for consultada ou alterada.
- Anexo: Quando em modo de consulta ou alteração será exibido o nome+extensão do arquivo anexado à proposta. Logo à direita do nome do arquivo serão exibidos dois ícones que quando acionados terão as seguintes funcionalidades:
- Download: Permite que o arquivo em anexo na proposta seja baixado/aberto pelo navegador.
- Remover: Removerá o arquivo em anexo à proposta diante mensagem de confirmação. Uma vez que o anexo for removido, o campo Anexar proposta será habilitado novamente.
REQUISITO 04 - Impressão dos pedidos
REQUISITO 05 - Controle das entregas
REQUISITO 06 - Lançamento da comissão da empresa
REQUISITO 07 - Emissão de nota de serviço avulsa
REQUISITO 08 - Emissão de nota de serviço por uma empresa diferente da emissora do pedido
Reprovado! Conforme documentado no levantamento de requisitos, é tecnicamente inviável.