สต็อก DOT รับฝากยาง เคลม คูปอง และ Rebuild
สต็อกยางตามล็อต DOT (autocare_tire_dot_stock)
- บันทึกแคตตาล็อก
save_catalog_item(handler.go:1726-1793) คีย์คือsku_dot_idถ้าไม่ได้ส่งมาจะใช้item_code-dot_codeรหัส DOT 4 หลักแยกเป็นสัปดาห์ (2 ตัวแรก) และปี (2000 + 2 ตัวหลัง) ถ้าแปลงไม่ได้จะใช้สัปดาห์ 18 ปี 2026 ค่าเริ่มต้นอื่นคือfefo_status = FRESH_FAST_MOVING, คลังWH1/SH1, ค่าคอมช่าง 100 และรับประกัน 24 เดือน/50000 กม. ตารางนี้มีแค่ราคาขายและราคาโปร ไม่มีทุน - จำนวนคงเหลือ
qty_on_handเพิ่มเมื่อสร้างใบรับของใหม่ ดู รับยางและอะไหล่เข้าคลังแบบไม่เห็นราคาทุน และการลงเป็นบิลซื้อ (sys-autocare-blind-receiving) และลดเมื่อปิดบิลบรรทัดที่มี DOT โดยใช้GREATEST(0, qty_on_hand - qty)(handler.go:2608-2613) ตารางนี้แยกจากสต็อกของ BC Account ซึ่งเปลี่ยนตามเอกสารic_transที่ SaveTrans บันทึก - handler ไม่ INSERT หรือ UPDATE
ic_inventoryและar_customerเลย ใช้แค่อ่านitem_type(handler.go:2232, :2517) รหัสสินค้าและลูกค้าที่ใช้ในใบงานจึงต้องมีในข้อมูลหลักอยู่แล้ว ดู ทะเบียนสินค้า (ic_inventory) - FEFO (ยางที่ผลิตก่อนควรขายก่อน) ทุกครั้งที่ Rebuild ระบบตั้งสถานะใหม่ (handler.go:2191-2196)
dot_year ≤ 2024เป็นAGED_CLEARANCEdot_year = 2025และdot_week ≤ 30เป็นAGING_PROMO- ที่เหลือเป็น
FRESH_FAST_MOVINGปีเกณฑ์เขียนไว้ตายตัวในโค้ด ไม่ได้คำนวณจากวันที่ปัจจุบัน KPIdot_alertsนับสองสถานะแรก (handler.go:389)
รับฝากยาง (Tire Hotel) check_in_tire_hotel (handler.go:1520-1576)
เลขรับฝากคือ "TH-" ต่อด้วย 8 ตัวแรกของ Stamp ค่าเริ่มต้น 4 เส้น วันหมดอายุคือ CURRENT_DATE + 180 วัน สถานะ STORED การรับฝากไม่ได้แตะสต็อก ใบงาน หรือบัญชี KPI นับรายการที่สถานะเป็น STORED หรือ EXPIRED_ALERT (handler.go:390)
ใบรับประกันและงานเคลม (autocare_warranty_claim)
- ตอนปิดบิล ระบบสร้างใบรับประกันดิจิทัล
claim_type = E_WARRANTYเลขCLM-<เลขใบงาน>และWRT-<เลขใบงาน>สถานะREGISTEREDข้อความในใบระบุ "2 ปี / 50,000 กม." (handler.go:2724-2745) advance_warranty_claimเลื่อนสถานะทีละขั้น (handler.go:1476-1497):REGISTERED→SENT_TO_FACTORY→FACTORY_INSPECTING→REPLACEMENT_READY→CLOSEDสถานะอื่นจะกลายเป็นCLOSED
คูปองสมาชิก (autocare_member_coupon)
save_member_couponสร้างแพ็กเกจหมดอายุใน 365 วัน ค่าเริ่มต้น 10 สิทธิ์ สิทธิ์ละ 450 (handler.go:2008-2044)use_member_couponบวกused_count1 ลดremaining_uses1 และเมื่อสิทธิ์หมดจะเปลี่ยนเป็นCOMPLETED(handler.go:1499-1518) action นี้ไม่ได้ใส่coupon_discountให้ใบงานใด ส่วนลดคูปองในบิลต้องตั้งในใบงานเอง
Rebuild rebuildFromRawData (handler.go:2130-2209)
เรียกจากเมนู 5.1 (rebuild_autocare_results, handler.go:2115-2122) และ action แทบทุกตัวก็เรียกตอนท้าย ทำงานตามลำดับนี้
- วนทุกใบงานแล้วเรียก
recalculateJobTotalsดู ยอดเงิน ส่วนลด VAT และการปิดบิลลงบัญชีของ AutoCare (sys-autocare-billing-gl) ใบงานที่BILLED_POSTEDจะโพสต์ซ้ำโดยส่งbc_doc_noเดิมเป็นfixedDocNo(ถ้ามีเลข) ซึ่งเป็นการ SaveTrans แบบแก้ไข โดยไม่ตัดสต็อกหรือบวกยอดช่องและช่างซ้ำ - โพสต์ใบรับเดโม
BLIND-2610-03/04ซ้ำ ดู ข้อมูลเดโมที่ AutoCare สร้างเองและบิลตัวอย่างที่ลงบัญชีให้ (sys-autocare-seed-demo) - คำนวณใหม่ด้วย SQL ใน transaction เดียว
- ช่องซ่อม: ช่องที่มีใบงานยังไม่
BILLED_POSTEDเป็นOCCUPIEDและrevenue_today = SUM(grand_total)ของใบที่ลงบัญชีแล้ว ไม่กรองวันที่ - กระเป๋าช่าง:
commission_today = SUM(tech_fee_amt)ของทุกบรรทัดในใบงานของช่างคนนั้น ไม่กรองวันที่ - FEFO ตามกฎข้างบน
- ช่องซ่อม: ช่องที่มีใบงานยังไม่
- ตอบกลับ
rebuilt_jobs,posted_invoicesและเวลา
KPI บนแดชบอร์ด (handler.go:382-395)
today_revคือSUM(grand_total)ของใบที่ลงบัญชีแล้วpending_upsellคือSUM(grand_total)ของใบที่ยังไม่ลงบัญชีcompleted_todayคือจำนวนใบBILLED_POSTED
ทั้งสามค่าไม่ได้กรองวันที่ ต่างจากที่ชื่อบอก
คำแนะนำ AI บนรถแต่ละคันเป็นกฎตายตัว (handler.go:556-567)
- ถ้าเลขไมล์ ≥
next_oil_km − 500แนะนำถ่ายน้ำมันเครื่อง - ไม่อย่างนั้น ถ้าเลขไมล์ ≥
next_rotation_km − 500แนะนำสลับยาง - ไม่อย่างนั้น ถ้าเป็นรถ EV จะได้ข้อความสำหรับ EV
ที่มาในโค้ด
backend/internal/adapter/inbound/http/autocare/handler.go:2130-2209: rebuildFromRawDatabackend/internal/adapter/inbound/http/autocare/handler.go:1726-1793: save_catalog_itembackend/internal/adapter/inbound/http/autocare/handler.go:1476-1576: เคลม คูปอง และรับฝากยาง
ดูเพิ่ม: ตารางข้อมูลของ AutoCare autocare_* และตารางหลักที่ใช้ร่วม (sys-autocare-tables) · รายงาน 5 ตัวของ AutoCare ในระบบรายงานกลาง (sys-autocare-reports) · ระบบศูนย์บริการรถยนต์และร้านยาง BC AutoCare (sys-autocare-overview) · ต้นทุนสินค้าแบบถัวเฉลี่ยเคลื่อนที่ (Moving Average Cost)