Τι δείχνει αυτή η σελίδα
Το σημερινό «Available actions» της σελίδας PO και τρεις κατευθύνσεις για τη νέα του μορφή. Οι τρεις κατευθύνσεις διαφέρουν μόνο στο πώς ζωγραφίζεται η μπάρα βημάτων — όλα τα υπόλοιπα (ένα κύριο κουμπί, μενού •••, disabled με λόγο, μετακομίσεις) είναι ήδη αποφασισμένα και ίδια παντού.
Οι αριθμημένοι δείκτες 1 δείχνουν πού ισχύει ένας επιχειρησιακός κανόνας — η εξήγηση είναι στο τέλος. Τα New component είναι ό,τι δεν υπάρχει σήμερα στο components/ui/.
Το canvas δείχνει μόνο την εμφάνιση. Το συμβόλαιο είναι η περιγραφή του ticket.
0 · Σήμερα
purchase-order-detail.tsx:335–870Επίπεδο πλέγμα με μόνιμα ανοιχτές φόρμες. Εδώ φαίνονται 4 κάρτες· ανάλογα με το status μπορεί να φτάσουν 7. Τέσσερα teal κουμπιά ανταγωνίζονται — το ίδιο το DESIGN.md λέει «ένα teal κουμπί ανά οθόνη».
Διαθέσιμες ενέργειες
Επικοινωνία με τον προμηθευτή για την ετοιμότητα
Ζητήστε ενημέρωση για αυτή την εντολή από την κύρια επαφή του προμηθευτή.
Το πρώτο αίτημα θα σταλεί αυτόματα. Μπορείτε να στείλετε άλλο αφού σταλεί.
Ιστορικό υπενθυμίσεων
Οι αυτόματες υπενθυμίσεις προγραμματίζονται από το σύστημα και εμφανίζονται εδώ χωρίς ανανέωση της σελίδας.
Δεν έχει προγραμματιστεί ακόμη email υπενθύμισης.
Διόρθωση κατάστασης εντολής
Διορθώστε την κατάσταση πριν η εντολή συμμετάσχει σε αποστολή.
Ορισμός αναμενόμενης ετοιμότητας
Προσθήκη μηνύματος δραστηριότητας
1 · Η νέα σελίδα — Κατεύθυνση Γ ✓ ΕΠΙΛΕΓΜΕΝΗ
status: PENDINGΑυτή είναι η μορφή που περιγράφει το ticket. Επιλέχθηκε γιατί δεν σπάει όταν προστεθεί status — ο παρονομαστής αλλάζει, η διάταξη όχι. Δοκίμασε και τις 4 καταστάσεις πάνω δεξιά.
Φόρτωση εντολής αγοράς…
Η εντολή αγοράς συμμετέχει ήδη σε ανοιχτή αποστολή. Ακυρώστε τη συμμετοχή πριν προχωρήσετε.
9Καμία διαθέσιμη ενέργεια
Αυτή η εντολή αγοράς έχει ολοκληρώσει τη διαδρομή της. Δεν υπάρχει επόμενο βήμα από αυτή τη σελίδα.
Η διαδρομή ολοκληρώθηκε.
NORTHWIND MARITIME LTD · MV BLUE MERIDIAN
2Πορεία της εντολής New component
Επόμενο: Αναμ. ετοιμότητα
Τα βήματα 5–7 τα οδηγεί η Αποστολή, όχι αυτή η σελίδα.
(Τα tabs μένουν όπως είναι — απλώς δεν είναι πια πάνω από τις ενέργειες.)
2 · Εναλλακτική Β — κουκκίδες (δεν επιλέχθηκε)
status: PENDINGΑπορρίφθηκε. Μισός κατακόρυφος χώρος, αλλά κάθε νέο status προσθέτει κουκκίδα και στριμώχνει τα ελληνικά ονόματα — ακριβώς το πρόβλημα που η Γ αποφεύγει.
NORTHWIND MARITIME LTD · MV BLUE MERIDIAN
3 · Εναλλακτική Α — ονόματα βημάτων (δεν επιλέχθηκε)
status: PENDINGΑπορρίφθηκε. Διαβάζεται καλύτερα από νέο υπάλληλο, αλλά με 7 ονόματα σε μία σειρά κάθε νέο status απαιτεί ξαναδούλεμα της διάταξης — το κριτήριο που έκρινε την επιλογή.
NORTHWIND MARITIME LTD · MV BLUE MERIDIAN
4 · Το μενού «Περισσότερες ενέργειες»
status: EXPECTED_READINESSΌ,τι δεν είναι το επόμενο βήμα ζει εδώ. Οι μη διαθέσιμες μένουν ορατές, απενεργοποιημένες, με τον λόγο από κάτω — αντί να εξαφανίζονται σιωπηλά όπως σήμερα. Ο λόγος για το email δεν εφευρίσκεται: το backend επιστρέφει ήδη 6 κωδικούς αιτίας και ο κώδικας τους μεταφράζει ήδη σε προτάσεις.
Επόμενο: Έτοιμο
5 · Το πλατύ πάνελ άφιξης
status: READYΤο μόνο βήμα που δεν χωράει σε modal: 5 αριθμητικά πεδία ανά κόλι. Το υπάρχον Modal φτάνει 576px και το Drawer 544px — γι' αυτό ανοίγει σε πλήρους πλάτους πάνελ μέσα στη σελίδα. Το δεύτερο modal επιβεβαίωσης μένει.
Επόμενο: Σε απόθεμα
7Καταγραφή άφιξης και αποθήκευση εντολής αγοράς
GREECE (Levadias str, GR-18542, Piraeus / Free Circulation)
Τελικές διαστάσεις και βάρη κόλι
HU-0000000123
HU-0000000124
6 · Tab «Κόλι» — επιλογή με checkbox
purchase-order-detail.tsx · TabPanel collisΟ «Διαχωρισμός κόλι» και η «Τελική κατάσταση κόλι» μετακομίζουν εδώ, εκεί που φαίνονται τα κόλι. Ίδιο μοτίβο με τη μπάρα επιλογής που υπάρχει ήδη στη λίστα stock.
Spare parts crate · Wooden box
120 × 80 × 95 cm
310 kg
Filters carton · Cardboard box
60 × 40 × 35 cm
47 kg
Valve set · Metal box
Τερματικό κόλι — δεν επιλέγεται
7 · Tab «Ιστορικό» — τα email μετακομίζουν εδώ
TabPanel historyΟ πίνακας «Ιστορικό υπενθυμίσεων» φεύγει από τις ενέργειες. Το tab έχει ήδη τρία χρονολόγια — αυτό είναι το τέταρτο.
Παραμονές σε αποθήκες
GR-18542 · Expected
Ιστορικό κατάστασης εντολής
Pending → Expected Readiness · 03/09/2026
Δραστηριότητα / μηνύματα
Invoice Rows Changed · 02/09/2026
5Ιστορικό υπενθυμίσεων
| Δημιουργήθηκε | Αίτημα | Κατάσταση |
|---|---|---|
| 03/09/2026 | Αίτημα ημερομηνίας | Στάλθηκε |
| 09/09/2026 | Επιβεβαίωση ετοιμότητας | Αναμονή αποστολής |
8 · Χωρίς επόμενο βήμα & χρήστης χωρίς δικαιώματα
IN_STOCK · PURCHASE_ORDER_VIEWΑριστερά: σε IN_STOCK το κύριο κουμπί εξαφανίζεται — το «Έναρξη αποστολής» μένει στο header όπως σήμερα. Δεξιά: ένας πελάτης ή προμηθευτής βλέπει τη μπάρα αλλά κανένα κουμπί.
Επόμενο: Δεσμευμένο
Επόμενο: Έτοιμο
9 · Τα status που δεν είναι βήματα
AWAITING_IMPORT · LOCATION_UNKNOWN · CANCELLEDΤρία status δεν κάθονται πάνω στη γραμμή των 7 βημάτων. Ο μετρητής δεν προχωράει για αυτά — κρατάει το τελευταίο βήμα που όντως έγινε, και το όνομα δείχνει το status με το δικό του χρώμα. Χωρίς αυτόν τον κανόνα μια ακυρωμένη εντολή θα διαβαζόταν σαν ολοκληρωμένη.
10AWAITING_IMPORT
Επόμενο: Σε απόθεμα
Ο μετρητής μένει στο 6 (SHIPPED) — η εντολή γύρισε σε ενδιάμεσο κόμβο και ξαναπερνά από αποθήκευση.
LOCATION_UNKNOWN
Η διαδρομή σταμάτησε στο «Σε απόθεμα». Απαιτείται διερεύνηση.
CANCELLED
Ακυρώθηκε στο «Αναμ. ετοιμότητα». Δεν υπάρχει συνέχεια.
Επιχειρησιακοί κανόνες πίσω από την οθόνη
Κάθε αριθμός αντιστοιχεί σε δείκτη πάνω στα artboards. Η πηγή κάθε κανόνα είναι το αρχείο του repo.
Ένα κύριο κουμπί = το ένα επόμενο βήμα
Σε κάθε status υπάρχει το πολύ ένα βήμα προς τα εμπρός. Παίρνει το όνομα της πραγματικής ενέργειας, όχι «Επόμενο». Τα μικρά βήματα ανοίγουν σε modal· η άφιξη σε πλατύ πάνελ.
DESIGN.md — «Primary action per view is one teal button»
Η μπάρα δείχνει ολόκληρη τη ζωή της εντολής
PENDING → EXPECTED_READINESS → READY → IN_STOCK → PREPARED_FOR_SHIPMENT → SHIPPED → ARRIVED_AT_DESTINATION. Τα βήματα μετά το IN_STOCK τα οδηγεί η Αποστολή, γι' αυτό φαίνονται αλλά δεν έχουν κουμπί. Τα CANCELLED και LOCATION_UNKNOWN δεν είναι βήματα: σταματούν τη μπάρα στο τελευταίο βήμα που έγινε και μπαίνουν δίπλα ως εξαίρεση.
docs/workflows/purchase-order-colli-journey.md — «PO lifecycle»
Μη διαθέσιμες ενέργειες: ορατές, απενεργοποιημένες, με τον λόγο
Σήμερα εξαφανίζονται σιωπηλά. Ο «Διαχωρισμός κόλι» π.χ. εμφανίζεται μόνο όταν η εντολή έχει >1 ενεργό κόλι — γι' αυτό συχνά δεν τον βλέπει κανείς. Κάθε απενεργοποιημένη ενέργεια γράφει τον λόγο της με λόγια του γραφείου.
purchase-order-detail.tsx:714 — movable.length > 1
Η «Διόρθωση κατάστασης» φεύγει από αυτή τη σελίδα
Είναι αναίρεση, όχι βήμα — και δεν πρέπει να συμβαίνει συχνά, γι' αυτό η αιτιολογία είναι υποχρεωτική. Μετακομίζει στο Επεξεργασία εντολής ▸ tab «Λειτουργία», με δικό της κουμπί και modal επιβεβαίωσης. Δεν αποθηκεύεται με το «Save» της φόρμας: στο backend είναι ξεχωριστή εντολή με δικό της audit record.
correctPurchaseOrderStatus · PurchaseOrderStatusCorrectionInput
Το ιστορικό υπενθυμίσεων είναι ιστορικό
Ο πίνακας με τα email προς τον προμηθευτή μετακομίζει στο tab «Ιστορικό», δίπλα στις παραμονές αποθήκης, το ιστορικό κατάστασης και τα μηνύματα. Στις ενέργειες μένει μόνο η αποστολή νέου email.
readiness-reminder-action.tsx
Οι ενέργειες κόλι ζουν στο tab «Κόλι»
Τσεκάρεις κόλι στη λίστα και εμφανίζεται μπάρα επιλογής με «Διαχωρισμός» και «Τελική κατάσταση». Τα τερματικά κόλι (κατεστραμμένα, χαμένα, ακυρωμένα) δεν επιλέγονται — μένουν στην εντολή ως ιστορικό αλλά δεν μπαίνουν σε αποστολή.
docs/workflows/purchase-order-colli-journey.md — «Terminal disposition»
Η άφιξη θέλει πλάτος, και δεύτερη επιβεβαίωση
Απαιτεί θέση αποθήκευσης και ακριβώς μία μέτρηση για κάθε ενεργό κόλι — 5 πεδία ανά κόλι. Είναι μη αναστρέψιμη, οπότε το τελικό κουμπί βγάζει modal επιβεβαίωσης.
confirmPurchaseOrderInStock · StockConfirmationInput
Η μπάρα φαίνεται σε όλους· τα κουμπιά όχι
Πελάτες, προμηθευτές και agents βλέπουν μόνο τις δικές τους εντολές και δεν μπορούν να τις αλλάξουν. Η μπάρα είναι πληροφορία — σε ποιο στάδιο είναι η παραγγελία — άρα τη βλέπουν. Κουμπιά και μενού εμφανίζονται μόνο με δικαίωμα επεξεργασίας.
docs/architecture/authorization.md — PURCHASE_ORDER_VIEW / _EDIT
Όταν δεν υπάρχει βήμα, δεν υπάρχει κουμπί
Σε IN_STOCK, SHIPPED, ARRIVED_AT_DESTINATION και στα τερματικά status το κύριο κουμπί δεν εμφανίζεται καθόλου. Το «Έναρξη αποστολής» παραμένει εκεί που είναι σήμερα, στο header.
purchase-order-detail.tsx — startShipment link
Ο μετρητής μετράει βήματα που έγιναν, όχι το τρέχον status
Παρονομαστής = τα 7 βήματα της κύριας ροής. Αριθμητής = το τελευταίο βήμα της κύριας ροής που έχει όντως περάσει η εντολή, από το ιστορικό μεταβάσεων — όχι από το τρέχον status. Έτσι τα AWAITING_IMPORT, LOCATION_UNKNOWN και CANCELLED δεν προχωράνε τον μετρητή: δίνουν μόνο το όνομα και το χρώμα. Αν αύριο προστεθεί status στην κύρια ροή, αλλάζει ο παρονομαστής και τίποτε άλλο.
purchaseOrder.status + statusTransitions[].toStatus — ήδη διαθέσιμα στο GetPurchaseOrder
Εικονικά δεδομένα. Καμία πραγματική εταιρεία, πλοίο, τιμή ή MRN.