Análise
Detalhamento do Projeto
Desenvolvimento
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:
