Dobra. To teraz myślimy systemowo, nie kosmetycznie.
Masimy 2 realne flow:
1️⃣ Material → SF → FG → SUBCON → Sale
2️⃣ Material → FG → Sale
SUBCON jest etapem operacyjnym, nie sprzedażowym.
Więc pytanie brzmi:
👉 czy SUBCON to:
A) osobny dokument (PO do podwykonawcy)?
B) etap statusu na Order Line?
C) typ linii?
D) routing produkcyjny (bardziej MRP niż OOB)?
🔥 Najważniejsze pytanie
Czy SUBCON:
generuje koszt?
generuje dokument zakupu (PO)?
zmienia stan magazynu (wysyłamy półprodukt, wraca FG)?
czy to tylko informacja?
Jeśli generuje realne PO → nie rób tego jako zwykłego statusu.
Jeśli to tylko kontrola procesu → można zrobić jako rozszerzenie Order Line.
💡 Najczystsze rozwiązanie (moim zdaniem)
SUBCON jako typ linii + powiązanie z PO
Dodaj w Order Line:
1️⃣ Line Type
TYPE:
- NORMAL
- SUBCON
2️⃣ Jeśli TYPE = SUBCON:
pokazujesz dodatkowe pola:
Subcontractor (supplier)
Subcon cost
PO link (fk_purchase_order_line)
Subcon status:
To Send
Sent
In Process
Returned
Completed
🧠 Dlaczego nie jako zwykły STATUS?
Bo masz już:
OPEN / DRAFT / CLOSE / CANCEL
Jeśli dorzucisz:
SUBCON
to mieszasz:
status sprzedażowy
status produkcyjny
status logistyczny
To się szybko rozjedzie.
🧱 Architektura (czysta)
Order Line:
status_sale: D/O/CL/CA
subcon_required: 0/1
subcon_status: NULL / ToSend / Sent / Returned / Done
fk_supplier
fk_supplier_order_line
subcon_cost
To daje:
kontrolę procesu
możliwość generowania PO
kontrolę marży
kontrolę czy linia może być CLOSE zanim SUBCON DONE
🔥 Alternatywa bardziej "MRP-like"
Zamiast SUBCON w OOB:
użyj BOM + routing
SUBCON jako external operation
MO generuje PO automatycznie
Ale to już grubszy temat (bliżej Dolibarr Manufacturing).
❓ Kluczowe pytania do Ciebie
Czy SUBCON ma być widoczny klientowi? (raczej nie)
Czy ma generować automatycznie PO?
Czy jedna linia może mieć wiele SUBCON operacji?
Czy SUBCON dotyczy tylko FG czy też SF?
🚀 Ja bym zrobił tak (pragmatycznie)
Na start:
1 SUBCON per order line
pole typu SUBCON (checkbox)
supplier + subcon_cost
przycisk "Create Subcon PO"
subcon_status
blokada CLOSE jeśli subcon_status != DONE
Prosto. Rozszerzalne.
Jeśli chcesz, możemy:
rozpisać model danych
zrobić schemat tabel
albo zaprojektować UX w Order Line
Powiedz:
👉 SUBCON ma generować PO czy nie?