Da Produção à Solicitação de Material
Quando um Lote de Produção inicia, o GarmentFlow não espera que alguém enfileire os materiais manualmente. Ele cria automaticamente as Solicitações de Material (Material Requests) necessárias para mover esses materiais do depósito de Matéria-Prima para onde as operações do Lote vão rodar. Esta página explica exatamente o que acontece, quando e por quê.
Quando dispara
O gatilho é a ação start_production em um Lote de Produção. Enquanto o Lote não inicia, nenhuma MR é criada. Quando você clica em Start (ou um supervisor move o Lote para In Progress), o GarmentFlow roda _create_material_request() e as MRs aparecem.
Esse timing importa: significa que os materiais não ficam reservados nem enfileirados para transferência até que a produção realmente se comprometa a rodar o Lote. Um Lote em Draft não puxa materiais para lugar nenhum; é só um plano.
O que é criado
Para cada depósito de destino único entre os Operation Steps do Lote, o GarmentFlow cria uma Solicitação de Material do tipo Material Transfer. Os campos preenchidos:
- Material Request Type =
Material Transfer— movimento interno de depósito para depósito. - Company = a empresa do depósito.
- Transaction Date e Schedule Date = a data do Lote.
- Set From Warehouse = o depósito de Matéria-Prima do Lote (herdado da Ordem de Produção, que herda de Garment Manufacturing Settings).
- Set Warehouse = o depósito da Unidade de Produção de destino (ou o depósito padrão da unidade, se não houver substituição).
- Campo personalizado
production_batchno cabeçalho da MR = o nome do Lote. Este é o vínculo reverso que amarra a MR à sua origem. - Tabela de itens — uma linha por material da seção de materiais do Lote, com código do item, quantidade alocada, UOM, depósito de destino e depósito de origem.
Se o Lote tiver Operation Steps rodando em três Unidades de Produção diferentes (Linha de Costura A, Lavagem, Acabamento), três MRs são criadas — uma por unidade. Cada MR carrega apenas os materiais destinados àquela unidade.
Idempotência
A função é idempotente. Se você redispará-la (porque um Lote foi modificado e reiniciado, ou a função rodou duas vezes), ela verifica MRs não canceladas já vinculadas ao Lote pelo campo production_batch. Se um depósito de destino já tem uma MR que o cobre, esse depósito é pulado na nova execução.
O efeito prático: você não consegue criar MRs duplicadas por acidente clicando em Start duas vezes. O GarmentFlow protege você.
Por que este design
Algumas perguntas que este design responde:
Por que uma MR por depósito de destino, e não uma MR grande? Porque cada depósito pode ser operado por uma equipe diferente, em um cronograma diferente, com fluxos de submissão e transferência diferentes. Separar por depósito significa que cada equipe é dona das MRs sobre as quais precisa agir.
Por que o tipo "Material Transfer", e não "Material Issue"? Material Issue baixa o estoque contra um centro de custo mas não o move para um depósito de destino. Material Transfer o move — que é exatamente o que precisamos, porque os materiais ainda pertencem à empresa; eles só estão mudando de localização física para onde a operação vai consumi-los.
Por que o vínculo reverso é um campo personalizado? O ERPNext puro não modela "esta MR existe por causa daquele Lote de Produção". Adicionamos o campo para que o GarmentFlow possa responder essa pergunta — e para que o painel Production Bridge possa mostrar, para qualquer Lote, quais MRs estão abertas contra ele.
O que acontece depois que a MR é criada
A MR nasce no estado Submitted, pronta para receber ação. A partir daqui:
- A equipe de depósito vê a MR na visão Prep do App de Logística.
- Ela confirma os itens e quantidades (pode trocar itens, adicionar/remover linhas ou escalar faltas pelo app).
- Ela lança um Lançamento de Estoque (Material Transfer) — o movimento de fato.
- O status da MR passa para Issued quando totalmente transferida.
Esse último passo — o Lançamento de Estoque (Stock Entry) — é a próxima página.
Um exemplo prático
Você inicia um Lote de Produção de 500 moletons pretos. O Lote tem três Operation Steps: Linha de Costura A, Tambor de Lavagem 2, Bancada de Acabamento 4. Cada um opera a partir de um depósito diferente.
O GarmentFlow cria:
- MR-001 → Matéria-Prima → Depósito da Linha A. Itens: 525 metros de moletom, 1.100 metros de ribana, 1.000 pontas de cordão.
- MR-002 → Matéria-Prima → Depósito do Tambor de Lavagem 2. (Vazia — a lavagem não consome matérias-primas novas, apenas processa WIP. Esta MR pode nem ser criada se nenhum material for necessário.)
- MR-003 → Matéria-Prima → Depósito da Bancada de Acabamento 4. Itens: 500 etiquetas tecidas, 500 tags, 500 sacos plásticos.
Duas MRs, cada uma rumo à equipe que opera aquela unidade. Cada equipe de preparação as pega, transfere o estoque, e a operação pode começar.
O que fazer em seguida
A MR é o pedido. O Lançamento de Estoque é o que de fato move o estoque.