ข้อมูลเดโมของ AutoCare
สร้างเมื่อไร
OverviewและActionเรียกEnsureSeededทุกครั้ง (handler.go:357, :981) ฟังก์ชันนี้เช็กแค่ว่ามีProviderCodeและDatabaseNameแล้วรันครั้งเดียวต่อฐานข้อมูลต่อการเปิด process โดยใช้คีย์autocare_v2(seed.go:14-27)- ในโค้ดไม่มีเงื่อนไขว่าต้องเป็นฐานเดโม ฐานบริษัทไหนที่เปิดหน้า AutoCare ก็จะได้ข้อมูลชุดนี้ คอมเมนต์ในโค้ดเขียนว่า "in bcdemo" (seed.go:276) แต่โค้ดไม่ได้บังคับ
- คำสั่ง INSERT ส่วนใหญ่ใช้
ON CONFLICT … DO NOTHINGแถวที่มีอยู่แล้วจึงไม่ถูกเขียนทับ ยกเว้นautocare_job_itemของใบงานเดโม ซึ่งถูก DELETE แล้ว INSERT ใหม่ทุกครั้งที่ seed รัน (seed.go:565-595)
ตารางหลักร่วมที่ seed เพิ่มข้อมูล (seed.go:276-379)
| ตาราง | ข้อมูล |
|---|---|
ic_warehouse |
WH1, WH-TIRE, WH-PART |
ic_shelf |
ที่เก็บของแต่ละคลัง |
ap_supplier |
ผู้จำหน่าย 6 ราย |
ar_customer |
ลูกค้า 12 ราย AR-AC01 ถึง AR-AC12 ทั้งรายย่อยและ Fleet |
ic_inventory + ic_unit_use |
27 SKU ได้แก่ TIRE-*, WHEEL-*, PART-*, CARE-*, ACC-*, SRV-*, TIRE-TURNIN-CREDIT |
SKU ค่าแรง SRV-* เคยถูก seed เป็นสินค้าชุด (item_type 3) ซึ่งทำให้ยอดหายไปจากใบกำกับและ GL จึงมีคำสั่งแก้เป็นสินค้าบริการ (item_type 1) (seed.go:348-349)
ตาราง autocare_*
| ตาราง | จำนวนแถว | บรรทัด |
|---|---|---|
autocare_tire_dot_stock |
22 ล็อต | seed.go:381-411 |
autocare_vehicle |
12 คัน | seed.go:413-433 |
autocare_service_bay |
6 ช่อง | seed.go:435-448 |
autocare_technician_wallet |
6 คน | seed.go:450-461 |
autocare_job_order |
6 ใบ JOB-2610-001 ถึง 006 |
seed.go:463-563 |
autocare_job_item |
18 บรรทัด | seed.go:565-595 |
autocare_tire_hotel |
6 | seed.go:596-608 |
autocare_warranty_claim |
5 | seed.go:610-621 |
autocare_blind_receiving |
4 | seed.go:623-633 |
autocare_member_coupon |
4 | seed.go:635-644 |
คอมเมนต์ในโค้ดบอกจำนวนมากกว่าข้อมูลจริง เช่น ใบงานบอก 8 ใบ (seed.go:463) แต่มีจริง 6 ใบ ตารางนี้นับจากแถวข้อมูลจริง
ใบงานเดโมครอบคลุมทุกสถานะและทุกโหมด
001อยู่ที่ QC_READY มีส่วนลดเจ้าของที่อนุมัติแล้ว002อยู่ที่ IN_BAY_REPAIR มีคำขอส่วนลดที่รออนุมัติ003อยู่ที่ ESTIMATE_PENDING โหมดgarage_ev004อยู่ที่ IN_BAY_REPAIR โหมดcarcare_tint005อยู่ที่ INTAKE_PRECHECK โหมดaccessory_bom006อยู่ที่ BILLED_POSTED มีเลขเอกสารAC-INV2610-001
ทั้งหมดอยู่ที่ seed.go:474-563
ค่า fefo_status ที่ seed ใส่คือ FRESH, WARNING_AGED และ CLEARANCE (seed.go:382-411) ซึ่งไม่ตรงกับค่าที่ Rebuild ใช้ (AGED_CLEARANCE, AGING_PROMO, FRESH_FAST_MOVING, handler.go:2191-2196) ค่าจะถูกแก้เมื่อ Rebuild ทำงานครั้งแรก ดู สต็อกยางตาม DOT/FEFO รับฝากยาง เคลม คูปอง และการ Rebuild ของ AutoCare (sys-autocare-stock-warranty-rebuild)
เอกสารบัญชีจริงที่ระบบสร้างให้ (handler.go:2304-2334)
ensureSeededClosedJobPosted รันหลัง seed ในทุก Overview ครั้งเดียวต่อ process โดยใช้คีย์ autocare_posted_seed_v6 ฟังก์ชันจะเช็กใน ic_trans ก่อน ถ้ายังไม่มีเอกสารจะโพสต์ผ่าน SaveTrans ให้
AC-INV2610-001trans_flag 44 จากใบงานJOB-2610-006รับเงินด้วยPROMPTPAY_QRPU-2610-088และPU-2610-085trans_flag 12 จากใบรับBLIND-2610-03และBLIND-2610-04
rebuildFromRawData จะโพสต์ใบรับสองใบนี้ซ้ำทุกครั้งด้วยเลขเดิม (handler.go:2165-2166)
ข้อควรระวัง: ถ้าเปิด AutoCare ในฐานข้อมูลบริษัทจริง เอกสารขายและซื้อตัวอย่างข้างบนจะเข้า ic_trans และ GL ของบริษัทนั้นด้วย เพราะโพสต์ผ่าน SaveTrans ปกติ ดู ลำดับการบันทึกเอกสาร (Transaction Save Flow)
ที่มาในโค้ด
backend/internal/adapter/inbound/http/autocare/seed.go:14-27: EnsureSeededbackend/internal/adapter/inbound/http/autocare/seed.go:276-644: ข้อมูล seed ทั้งหมดbackend/internal/adapter/inbound/http/autocare/handler.go:2304-2334: โพสต์บิลตัวอย่าง
ดูเพิ่ม: ตารางข้อมูลของ AutoCare autocare_* และตารางหลักที่ใช้ร่วม (sys-autocare-tables) · ยอดเงิน ส่วนลด VAT และการปิดบิลลงบัญชีของ AutoCare (sys-autocare-billing-gl) · รับยางและอะไหล่เข้าคลังแบบไม่เห็นราคาทุน และการลงเป็นบิลซื้อ (sys-autocare-blind-receiving) · ระบบศูนย์บริการรถยนต์และร้านยาง BC AutoCare (sys-autocare-overview)