โอนสินค้าระหว่างคลัง/ที่เก็บ (72/70) ทำงานยังไง ต้นทุนเปลี่ยนไหม
ตอบสั้น: ใช้เมนู "โอนสินค้า/วัตถุดิบ" (menu_ic_transfer_wh_out, trans_flag 72) บันทึกครั้งเดียว ระบบสร้างบรรทัดโอนออก 72 จากคลังต้นทาง และบรรทัดรับโอน 70 เข้าคลังปลายทางให้เอง ยอดรวมและต้นทุนเฉลี่ยของสินค้าไม่เปลี่ยน เพราะ 70 รับมูลค่าเท่ากับที่ 72 ตัดออกไป (จำนวน × ต้นทุนเฉลี่ย)
รายละเอียด
การบันทึก
- แต่ละบรรทัดของหน้าจอจะกลายเป็น 2 แถวใน
ic_trans_detailคือแถว 72 (calc_flag-1, คลัง/ที่เก็บต้นทาง) และแถว 70 (calc_flag+1, คลัง/ที่เก็บปลายทาง) - เวลาของแถว 70 คือเวลาของ 72 บวก 1 นาที เพื่อให้ระบบตัดต้นทุนฝั่งโอนออกก่อน ถ้าเวลาเป็น 23:59 จะคงเวลาเดิม แล้วใช้กฎ "70 อยู่ท้ายสุด" ในการเรียงแทน
- เลข LOT และ serial ถูกเขียนให้ทั้งสองฝั่ง
- ต้องมีคลังและที่เก็บครบทั้งต้นทางและปลายทาง (บรรทัดหรือหัวเอกสาร) ถ้าไม่ครบจะขึ้นข้อความ "ป้อนข้อมูลคลังสินค้าไม่ครบ" / "ป้อนข้อมูลที่เก็บสินค้าไม่ครบ"
- ดึงรายการจากใบขอโอน 124 ได้ (
transFlags[72, 124]) ดู ดึงเอกสารอ้างอิง (ปุ่มดึงเอกสาร) ทำไมเอกสารต้นทางไม่ขึ้น
ต้นทุน (ดู ต้นทุนสินค้าคิดแบบไหน ถัวเฉลี่ยเคลื่อนที่คำนวณยังไง)
- แถว 72 คิดมูลค่าเป็นจำนวนฐาน × ต้นทุนเฉลี่ย ณ ขณะนั้น และแถว 70 ใช้มูลค่าเดียวกันตามลำดับบรรทัด
- จำนวนและมูลค่ารวมของสินค้าไม่เปลี่ยน แต่ยอดต่อคลังและต่อที่เก็บเปลี่ยน
- ถ้าบรรทัด 70 ล็อกต้นทุน (
sum_of_cost_fix) ผลต่างจะถูกบวกเข้ามูลค่าสต็อก และต้นทุนเฉลี่ยจะเปลี่ยน
ห้ามติดลบ: โอนย้ายตรวจยอดคงเหลือเฉพาะเมื่อเปิด erp_option.transfer_stock_control (และสวิตช์หลักของการตรวจสต็อก) ดู ทำไมสต็อกติดลบได้ และตั้งห้ามติดลบที่ไหน
GL: 72 อยู่ในกลุ่มที่ลง GL เฉพาะเมื่อรหัสเอกสารมีรูปแบบ GL กำหนดไว้ ถ้าไม่ได้ตั้งไว้จะไม่มีรายการบัญชี (ดู ตั้งรูปแบบการลงบัญชี (GL) ในรูปแบบเอกสารยังไง และระบบใช้เมื่อไร)
ยกเลิก: ใช้เอกสารยกเลิก 73 ซึ่งยกเลิกได้ทั้ง 70 และ 72 (ดู ยกเลิก แก้ไข ลบเอกสาร ต่างกันอย่างไร ผลต่อสต็อกและ GL)
ข้อควรระวัง
- ไม่พบการตรวจว่าคลังและที่เก็บต้นทางกับปลายทางต้องต่างกัน (ค้นใน
trans*.goแล้วไม่พบ) จึงอาจบันทึกโอนเข้าที่เดิมได้ - เมื่อรัน "คำนวณยอดสต๊อกใหม่" ขั้นแรกจะสร้างหรือซิงก์แถว 70 ของใบ 72 เก่าที่ขาดอยู่ ยอดต่อคลังจึงอาจเปลี่ยนหลังรัน (ดู คำนวณยอดสต๊อกใหม่ (Rebuild Stock) ทำอะไรบ้าง ต้องกดเมื่อไหร่)
ดูเพิ่ม
- โอนสินค้า/วัตถุดิบ ระหว่างคลัง (Stock Transfer)
- ขอโอนสินค้า/วัตถุดิบ (Transfer Request)
- คลังสินค้าและที่เก็บ (warehouse / shelf / wh_code / shelf_code)
- จำกัดคลัง/ที่เก็บที่ผู้ใช้เลือกได้ (perm_wh_shelf) ตั้งอย่างไร และทำไมผู้ใช้เห็นคลังไม่ครบ
- เอกสารสต็อกพิเศษ: ยอดยกมา ปรับปรุง Lot และตรวจนับ (Opening Stock, Lot Adjust, Stock Count)
ที่มาในโค้ด
frontend/account/tabs/transMenuMap.ts:1073เมนูmenu_ic_transfer_wh_outflag 72 ดึงจาก 124backend/internal/application/process/trans.go:1120สร้างคู่แถว 72 (-1) / 70 (+1)backend/internal/application/process/stock_rebuild.go:47transferInTimeเวลา 70 = 72 + 1 นาทีbackend/internal/application/process/service.go:233ต้นทุน 72/70 ไม่เปลี่ยนมูลค่ารวมbackend/internal/application/process/trans_lines_check.go:242checkWhต้องมีคลัง/ที่เก็บครบbackend/internal/application/process/trans_save_rules.go:283ไม่ตรวจยอดโอนถ้าไม่ได้เปิดtransfer_stock_controlbackend/internal/application/process/gl_template.go:1096glTemplateOnlyFlags{72, 418}backend/internal/application/process/doc_cancel.go:49cancelOrigFlags73 ยกเลิก 70/72