Μετάβαση στο περιεχόμενο

Αναφορά: 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