Cập nhật đơn nhập - xuất từ vận hành
PUT/v1/tms/order-requests/:shownCode
Cập nhật từng phần một đơn nhập - xuất ở trạng thái NEW hoặc CONFIRMED.
Ngoài username, body phải chứa ít nhất một field cần thay đổi.
Field không được phép cập nhật:
| Field cấm | Lý do |
|---|---|
shown_code, type | Định danh và loại dịch vụ cố định khi tạo (type chỉ dùng lookup) |
zone | Không đổi qua API cập nhật |
route.description | Không thuộc partial route update |
workflow | Không thuộc phạm vi partial update |
shipping_schedule.services | Không thuộc contract GOM khuyến nghị |
Quy tắc route (partial):
- Cho phép:
pickup_place(ICD),warehouseXORwarehouses[],dropoff_place,code,name. name: dùng khi tạo tuyến mới (find miss); tái sử dụng tuyến cũ thì giữ tên hiện có.- Mỗi place gửi lên cần
code,name,address.street. - Đổi kho / dropoff / code → find hoặc tạo tuyến khớp (ordered warehouses + dropoff + code), gán OR và PLAN ngay.
- Khi đã có ACTUAL →
pending_updates(overwrite 0|1): payload giữ places để UI điều phối; stamproute.idđể accept chỉ gán link tuyến.
Hủy qua PUT (status):
- Giá trị cancel (không phân biệt hoa thường):
CANCELED,CANCELLED,REJECTED,CC. - Bắt buộc
reasons(mảng mã lý do khớp loại đơn). - Bắt buộc
expenses[]có phần tửexpense_type.key = allowance_fee(phí bồi thường).
Quy tắc expenses (partial):
- Cùng shape create:
expense_type.key(+nametùy chọn),amount,note. - Chỉ upsert các loại phí được gửi; không gửi thì không đổi phí hiện có.
- API find-or-create ExpenseType theo
key, stampidvào pending để trucking accept nhanh.
Quy tắc details:
- Chỉ nhận đúng một phần tử và cập nhật dòng detail liên kết đầu tiên
của đơn nhập - xuất (và đơn kế hoạch nếu có); không tìm theo
container_number. - Không thêm hoặc xóa container. Nếu đơn chưa có dòng detail liên kết → 400.
container_pickup_date: Ngày đóng / trả hàng (ISO 8601).
Quy tắc khác:
materials,merchandise_typesvàcontactsđược thay thế bằng danh sách gửi lên.reasonscó thể gửi kèm cập nhật thường (lý do thay đổi); bắt buộc khi hủy.- Đơn thực tế (ACTUAL) ở trạng thái
COMPLETEDhoặcCANCELEDkhông được cập nhật. inventory_checknhậnCó/Không; nếu gửi boolean thì được chuẩn hóa thànhCó/Không.route.return_warehousechưa hỗ trợ trên PUT.
Request
Responses
- 200
- 400
- 404
- 422
HTTP 200: thành công (body status 200) hoặc lỗi xác thực trong body (status 401).
Body không hợp lệ hoặc đơn không ở điều kiện cho phép cập nhật
Không tìm thấy đơn nhập - xuất theo số lệnh
User không tồn tại hoặc trạng thái đơn nhập - xuất không cho phép cập nhật