Análise
Detalhamento do Projeto
Desenvolvimento
O sistema precisa tratar a recepção de mercadorias de forma a receber mercadorias de vários pedidos ou vários registros de compras.
As recepções deverão se comportar da seguinte forma.
- Os pedidos vinculados, deverão se ordenados de forma a estarem em ordem do mais antigo pra o mais novo.
- Deverá haver baixas parciais, ou seja. Poderá receber um pouco da mercadoria de um pedido e receber o restante em outra recepção.
- Será permitido o cancelamento de Pedidos, mesmo que já tenham entregues parciais concluídas. Neste caso será cancelado os itens que ainda NÿO foram entregues.
- Ao digitar os itens, verificar se eles fazem parte de pedidos em aberto e sugerir vinculo.
Serão criadas duas tabelas para vincular vários pedidos, recepções e compras sendo elas podendo ser parcial, TT_IRCXIPE e TT_ICOXIRC.
A recepção poderá conter Pedidos ou Compras e o Registro de Compra poderá conter vínculo com Pedidos ou Receções.
Deverá utilizar a Classe TBaixaEmLista para fazer a separação e calcular a baixa dos pedidos e recepções.
Tela de Compras
1 - Tratar a Tela de Registro de Compra para receber tanto Pedidos como Recepções, para isso, criar novo botão para Recepção de Mercadorias ao lado de Pedidos.
2 - O usuário deverá clicar no botão de Pedidos ou Recepções que são exclusivos ou seja, um anulará a presença do outro, ou há Registro de Compra de pedidos ou há de recepções.
3 - Deverá ser criada uma tela de pesquisa de Recepções igual à de pedidos.
Veja a Imagem:
Tela de Recepção
Tratar a Tela de Recepção para receber tanto Pedidos como Compras, deverá acrescentar o botão de para inclusão de compras e os dados de cabeçalhos da compra deverão ser removidos.
O usuário deverá clicar no botão de Pedidos ou Compras que são exclusivos ou seja, um anulará a presença do outro, ou há recepção de compras ou há recepção de pedidos.
Veja a Imagem:
Deverão ser apresentados alguns avisos:
-
Segue imagem do protótipo da alteração da Tela de Recepção de Mercadorias.
O sistema precisa tratar baixa de Pedidos parcialmente por ordem dos mais antigos para os mais novos em registro de compras. Esta baixa será automática e deverá seguir estes exemplos:
- O ULTIMO pedido seja de 20, e só vieram 10, baixa 10 do pedido, e fica 10 como pendente.
- O ULTIMO pedido seja de 5, e veio 10, baixa os 5, e mais 5 do PRÿXIMO, pedido. SEMPRE dos mais antigos.
- O ULTIMO pedido seja de 5, e veio 10, e não tem mais nenhum pedido, baixa os 5 do pedido, mas lança 10 como veio.
Especificação Técnica
Mudanças por Módulo
As alterações são todas na tela de Registro de Compras e Busca de Pedidos do Backoffice.
Após carregar os itens do XML, se houver algum pedido Autorizado para o Fornecedor, o sistema abrirá a tela de pedidos.
Para isso será criado uma classe para tratamento de ordenação e cálculo de listagem que for enviada para a classe, que deverá seguir este modelo de comportamento:
Classe TBaixaEmListas
Parâmetros de Entrada
TListaEntrada (Lista dos itens do registro de compra).
TListaRecurso (Lista de Pedidos abertos com quantidades de itens pendentes para entrega e não cancelados).
Parâmetros de Saída
TListaSaida
Processar:
Ordenar TListaEntrada por ordem de código.
Ordenar TListaRecurso por ordem de código e data.
CalcularBaixa.
Para cada item de TListaEntrada pesquisar em TListaRecurso o primeiro item referente e calcular a quantidade comprada com a disponível, caso sobre disponível, deverá continuar o "For" de onde parou para o próximo item referente. Quando não houver mais itens disponíveis ou a quantidade comprada já foi toda dissolvida, sair do "For" de TListaRecurso e ir para próximo de TListaEntrada. Para cada item modificado, deverá ser incluído o resultado em TListaSaida o registro para que este seja depois aplicado na query pedidos o resultado.
Abaixo segue Diagrama de Classe e Diagrama de Sequencia representando como deverá ser feito o processo.
Diagrama de classes:

Diagrama de sequencias:
