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?