ข้ามไปยังเนื้อหาหลัก

ใบจัดสินค้าสายส่ง

ใบจัดสินค้าสายส่งเป็นจุดเชื่อมระหว่างใบแจ้งหนี้ที่ออกแล้วกับงานขนส่ง เอกสารนี้ใช้รวม invoice ตามสายส่ง เรียงลำดับลูกค้า/ใบแจ้งหนี้ ตรวจสินค้า เลือก lot/batch ยืนยันการโหลดสินค้า และส่งรายการไป B1 เพื่อตัดสต๊อก

แนวคิดสำคัญคือ invoice ยังอยู่ในเอกสารใบจัด แต่การตรวจสินค้าและการเลือก lot ถูกบันทึกที่ delivery document เมื่อยืนยันใบจัดแล้ว ระบบจะล็อกการเพิ่ม/ลบ/เรียง invoice และงานจะย้ายไป action ของขนส่ง/คลัง

ทางเข้าในแอป

AppTarget
MobileShippingList -> ShippingDetail
POS TerminalshippingRoute -> ShippingRouteDetailForm

State Flow ตั้งแต่ต้นจนจบ

การสร้างใบจัดและจัดการ Invoice

รายละเอียดสำคัญ:

  • ต้องเลือกสายส่งก่อนสร้างเอกสาร
  • ต้องมี branchId และ whGrpCode ถ้าไม่ครบระบบจะ block การสร้าง
  • invoice ที่เลือกได้ต้องไม่ถูก cancel และยังไม่ถูกผูกกับ delivery อื่น
  • เพิ่ม invoice ใช้ addInvoiceToDelivery(...); ลบ invoice ใช้ deleteInvoiceFromDelivery(...)
  • การเรียงลำดับใช้ sortDeliveryInvoices(...)
  • หลังยืนยันใบจัดแล้ว จะเพิ่ม ลบ หรือเรียง invoice ไม่ได้ เว้นแต่มี flow operational อื่นมาปลดล็อก/จัดการใหม่
  • Mobile มี guard ลบเอกสาร active ที่ถูกยืนยันแล้วแต่ไม่มี invoice เหลือ เพื่อไม่ให้ค้างเป็นใบจัดว่าง

การตรวจสินค้า เลือก Lot และส่ง B1

การตรวจสินค้าเริ่มหลังใบจัดถูกยืนยันและถูกนำขึ้นขนส่งแล้ว (toTransportation = 1) ถ้ายังไม่ถูกนำขึ้นขนส่ง action สินค้าจะขึ้นข้อความว่า ยังไม่ถูกจัดขึ้นขนส่ง

พฤติกรรมตอนส่ง B1:

Flow การโหลดสินค้าและลงชื่อร่วมจัด

ความหมายของ loadingStatus:

ค่าความหมาย
ว่างยังไม่ยืนยันการโหลดสินค้า
LOADING_DOCKจัดสินค้าไว้ที่ลานแล้ว
LOADEDจัดสินค้าขึ้นรถเรียบร้อย

สถานะที่ต้องรู้

FieldValueความหมาย
deliveryStatusว่างกำลังเตรียมใบจัด
deliveryStatusFINISHEDฝ่ายขายจัดใบสั่งขายเสร็จแล้ว
deliveryStatusCHECKLOCATIONคลังเช็คสินค้า/lot แล้ว
deliveryStatusPENDING_FOR_B1กำลังรอ B1 ตัดสต๊อก
deliveryStatusSOME_DELIVERY_FAILมีอย่างน้อยหนึ่ง invoice ตัดสต๊อกไม่สำเร็จ
deliveryStatusDONEตัดสต๊อกเรียบร้อย
statusDELETEDเอกสารถูกลบ/ล็อก

สิทธิ์และเงื่อนไข

ActionGuard
เห็นเมนู TerminalshippingRoute, deptCode -2, 1, 2, 3, 4, 7, 29, 21, 8, 9, 12, 22, 27, 28, 13, 16, 14, 30, เฉพาะสาขาหลัก
สร้างใบจัดcanCreateShippingRoute(...), ต้องอยู่สาขาหลัก, เลือกสายส่งแล้ว, มี branchId และ whGrpCode
เพิ่ม/ลบ/เรียง invoiceเอกสารไม่ถูกลบ, ยังไม่ confirm, user เป็นเจ้าของเอกสาร
ลบ invoice rowเงื่อนไขเดียวกับแก้ invoice และ toB1 !== 1
ยืนยันใบจัดเอกสารไม่ถูกลบ, ยังไม่ confirm, user เป็นเจ้าของเอกสาร
รับงานconfirm แล้ว, toTransportation = 1, ยังไม่มี acceptedBy, dept อยู่ใน ACCEPT_DEPTS
ตรวจสินค้า/เลือก lotdept 2, 8, 22, user 999997, หรือเป็นผู้รับงาน (acceptedBy)
ยืนยันจัดที่ลาน / ขึ้นรถdept อยู่ใน LOAD_DOCK_DEPTS
ลงชื่อร่วมจัดสินค้าloadingStatus = LOADING_DOCK และ dept อยู่ใน ASSIGN_DEPTS
ส่ง B1dept 2, 8, 12, 22, 28 และสถานะเป็น CHECKLOCATION, PENDING_FOR_B1, หรือ SOME_DELIVERY_FAIL
ขอ cancel invoicedept 12, 22, 28, delivery ยังไม่ DONE, invoice ไม่มี discount/credit note และยังไม่ส่ง B1

Mobile vs POS Terminal

เรื่องMobilePOS Terminal
โครงหน้าจอShippingList -> ShippingDetailshippingRoute -> ShippingRouteDetailForm
รายการlist screen พร้อม status filtersplit-pane list card ใน HomeScreen
รายละเอียดdetail เต็มหน้า มี bottom/header actionsdetail panel ฝั่งขวา ส่ง action ผ่าน onHeaderActionsChange
invoice ที่เลือกได้getShippingInvoicesWithoutDelivery(...)getShippingRouteAvailableInvoices(...) ผ่าน split menu data
progress ส่ง B1modal แสดงสถานะแต่ละ batchmodal แสดงสถานะแต่ละ batch
เลือก lotBatchLotSheet / BatchLotEditorModalbatch picker/editor ใน shipping detail form

Developer Handoff Map

AreaCode
Mobile listapps/mobile/src/screens/shippingStack/shippingListScreen/index.tsx
Mobile detailapps/mobile/src/screens/shippingStack/shippingDetailScreen/index.tsx
Mobile rules/helpersapps/mobile/src/screens/shippingStack/shippingDetailScreen/helpers.ts
Terminal detailapps/pos-terminal/src/screens/HomeScreen/ShippingRouteDetailForm.tsx
Terminal split servicesapps/pos-terminal/src/services/splitMenuData.ts
Delivery APIsapps/mobile/src/services/deliveries.ts, apps/pos-terminal/src/services/deliveries.ts
Shipping queriesapps/mobile/src/services/shipping.ts, apps/pos-terminal/src/services/shipping.ts
Transport follow-upapps/*/src/services/transport.ts, TransportDetailForm

เอกสารที่เกี่ยวข้อง