Αναφορά: WarehouseController¶
Διαδρομή: app/Controllers/WarehouseController.php
Ρόλος¶
API αποθήκης: αναζήτηση, ανά ράφι, ανά εύρος barcode, ενημέρωση αποθήκευσης, υπηρεσίες σε αποθηκευμένα είδη, τροποποίηση/διαγραφή docitems.
Δημόσια API (ενδεικτικά)¶
| HTTP | Διαδρομή | Σκοπός |
|---|---|---|
| GET | /api/warehouse/lookup |
Αναζήτηση με ?barcode= ή ?storage_id=· όταν το είδος δεν έχει barcode αλλά το δελτίο έχει εύρος, το lookup για storage_id μπορεί να επιστρέψει needs_barcode_link και pick_choices[] (με slot_barcode ανά γραμμή) για επιλογή στο UI — ίδια πηγή με το εύρος αποθήκης |
| GET | /api/warehouse/by-shelf |
Ανά ράφι |
| GET | /api/warehouse/by-barcode-range |
Ανά αριθμητικό εύρος· όταν needs_barcode_link: true, επιστρέφεται και pick_choices[] (γραμμές δελτίου χωρίς barcode στο είδος) για επιλογή στο UI |
| PATCH | /api/warehouse/storage/{id} |
Ενημέρωση ξεχωριστά: (α) shelf και quantity μαζί — το ράφι δεν επιτρέπεται κενό, η ποσότητα πρέπει να είναι > 0 (τουλάχιστον 0,01 όπου ισχύουν τ.μ.) · (β) μόνο barcode (ψηφία· κενό = καθαρισμός). Δεν συνδυάζονται στο ίδιο αίτημα. |
| POST | /api/warehouse/storage/{id}/services |
Προσθήκη υπηρεσίας |
| POST | /api/warehouse/storage/{id}/change-item-context |
Αλλαγή iditem στο item_storage και επαναχαρτογράφηση των γραμμών docitems (ίδιο iddochead με το lookup) που είναι per_item: αντιστοίχιση με ίδιο idservice στο νέο είδος (ενεργό item_services, is_active = 1)· για παλιά σύνδεση με κατηγορία δοκιμάζεται πρώτα η νέα επιλεγμένη κατηγορία και μετά η σύνδεση χωρίς κατηγορία· για παλιά χωρίς κατηγορία μόνο η σύνδεση χωρίς κατηγορία. Απαιτείται ενεργή τιμή item_prices. Σώμα JSON: iditem, iditemcategory (υποχρεωτικό αν το νέο είδος έχει κατηγορίες), dry_run: true για data.plan (unmapped, groups με merge), ή dry_run: false και confirm_drop_unmapped: true όταν το σχέδιο έχει unmapped (διαφορετικά 422 με plan). Στη σελίδα /warehouse/barcodes το κουμπί Αποθήκευση καλεί το ίδιο endpoint με το iditem του τεμαχίου (αμετάβλητο στην οθόνη)· αλλάζει μόνο η κατηγορία και επαναχαρτογραφούνται οι γραμμές. |
| PUT | /api/warehouse/docitems/{id} |
Ενημέρωση γραμμής |
| DELETE | /api/warehouse/docitems/{id} |
Διαγραφή γραμμής |
Εξαρτήσεις¶
ItemStorageModel,DocumentModel,ItemModel,ItemCategoryModel,ItemServiceModel,ActionLogModel
Σημειώσεις προς συμπλήρωση¶
- [ ] Μορφή query parameters
- [ ] Κανόνες συνέπειας με ενεργά barcodes