สมอง SML

คลังความรู้ / ตารางข้อมูล

#tables#as

ทะเบียนสินทรัพย์ (as_asset)

master ทะเบียนสินทรัพย์ถาวร 1 แถวต่อ 1 สินทรัพย์ เก็บข้อมูลทั่วไป (ชื่อ ประเภท แผนก สถานที่) และ สามบัญชีที่ใช้ลง GL ส่วนข้อมูลการซื้อ ประกัน และพารามิเตอร์ค่าเสื่อมราคาอยู่ที่ รายละเอียดสินทรัพย์ (as_asset_detail) (แถวเดียวต่อสินทรัพย์ ผูกด้วย as_code) หน้าจอ "ทะเบียนสินทรัพย์" ใช้ spec menu_asset_lists (master_detail_specs.go:202) บันทึกหัว (as_asset) และแถวรายละเอียด (as_asset_detail) พร้อมกัน ตามแนวทางใน ข้อมูลหลักแบบหัว-รายการ รหัสอัตโนมัติ และเลย์เอาต์รายการ (Master-detail, code auto-run, DataList)

คอลัมน์สำคัญ

คอลัมน์ ความหมาย ใช้ที่ไหน
code รหัสสินทรัพย์ (คีย์ keyCol ของ spec) master_detail_specs.go:202
code_old รหัสเดิม (ไม่ชัดจากโค้ดว่าใช้ที่ใด นอกจากเก็บ) master_detail_specs.go:81
name_1, name_2, name_eng_1, name_eng_2 ชื่อไทย/ชื่ออื่น/ชื่ออังกฤษ ฟิลด์ name_1 บังคับกรอก prepAsset master_detail_specs.go:658
unit_code หน่วยนับ อ้าง ic_unit.code (ข้อความ "ไม่พบหน่วยนับ") master_detail_specs.go:206
as_type ประเภทสินทรัพย์ อ้าง ประเภทสินทรัพย์ (as_asset_type).code master_detail_specs.go:207, รายงาน report_menu_gl_fa.go:1262
side_code, department_code หน่วยงาน/แผนก อ้าง erp_side_list.code / erp_department_list.code master_detail_specs.go:208-209, :23-24
as_location สถานที่ตั้ง อ้าง as_asset_location.code master_detail_specs.go:210
status สถานะ ช่วงที่ยอมรับ 0..2 (ความหมายแต่ละค่า: ไม่ชัดจากโค้ด) master_detail_specs.go:205
user_code ผู้ดูแล อ้าง erp_user.code master_detail_specs.go:211
account_code บัญชีสินทรัพย์ (ราคาซื้อ) อ้าง ผังบัญชี (gl_chart_of_account) บังคับกรอก prepAsset, gl_template.go:203
depreciation_account_code บัญชีค่าเสื่อมราคา (ฝั่ง Dr ของ 1801) บังคับกรอก fa_depreciation.go:9, :658
depreciation_sum_account_code บัญชีค่าเสื่อมราคาสะสม (ฝั่ง Cr ของ 1801 และตัวหักทุนใน 1802) บังคับกรอก fa_depreciation.go:9, fa_sale.go:288, gl_template.go:620-626
branch_code สาขา อ้าง erp_branch_list — ทะเบียนสาขา master_detail_specs.go:212

รายการคอลัมน์ที่หน้าจอบันทึกได้ทั้งหมดคือ assetHdrCols (master_detail_specs.go:81-82) ตารางอาจมีคอลัมน์อื่นอีกที่หน้าจอนี้ไม่แตะ (ไม่ชัดจากโค้ด เพราะไม่พบ DDL ของตารางในรีโป)

คีย์และความสัมพันธ์

ใครเขียน (writers)

  • หน้าจอทะเบียนสินทรัพย์ผ่านกลไก master-detail: menu_asset_lists master_detail_specs.go:202-224 พร้อมตรวจ prepAsset master_detail_specs.go:658 (ชื่อและสามบัญชีห้ามว่าง; วันเริ่ม/สิ้นสุดคิดค่าเสื่อม สิ้นสุดต้อง >= เริ่ม; as_dead_value <= 0 ถูกปรับเป็น 1)
  • ตารางนี้อยู่ใน legacy allow-list ของ query gateway (write_policy_legacy.go:15) แต่ไม่ใช่ "ตารางเงิน" ตาม moneyTablePattern (ไม่ตรง as_trans...) จึงเขียนผ่านหน้า master ได้
  • ไม่มี process อื่นของโปรแกรมนี้ที่เขียน as_asset โดยตรง (การขายแก้เฉพาะฟิลด์ขายใน as_asset_detail)

ใครลบ (deleters)

  • ผ่านหน้า master เดียวกัน: ลบ as_asset_detail (clear) และ as_asset_result (delChildren) ก่อน แล้วลบหัว
  • ห้ามลบถ้ามีการอ้างอิงใน as_asset_maintenance_detail, as_asset_sale_detail หรือ รายการเอกสารสินทรัพย์ (as_trans_detail) (ข้อความ "มีเอกสารสินทรัพย์อ้างอิงแล้ว" master_detail_specs.go:221-223)

ใครอ่าน (readers)

  • เอนจินค่าเสื่อม: loadDepSources fa_depreciation.go:653-662 join as_asset กับ as_asset_detail เพื่อชื่อ สองบัญชีค่าเสื่อม และกรองช่วงรหัส/ประเภท/แผนก (ค่าเสื่อมราคาสินทรัพย์ถาวร (Fixed Asset Depreciation))
  • ขายสินทรัพย์: loadSaleAssets fa_sale.go:286-293 (ชื่อ, account_code, depreciation_sum_account_code)
  • ลง GL ด้วย template: glSQLAsset gl_template.go:203 และใช้กับตัวแปร "สินทรัพย์_ราคาซื้อ" (ใช้ account_code) และ "สินทรัพย์_ค่าเสื่อม" (ใช้ depreciation_sum_account_code) gl_template.go:620-626 (เครื่องมือลงบัญชีตามรูปแบบ GL (GL Template Engine))
  • รายงานสินทรัพย์: ค่าเสื่อมราคา glfaLoadAssets report_menu_gl_fa.go:1245-1270; รายละเอียดสินทรัพย์ glfaAssetList report_menu_gl_fa.go:1550-1567; รายการอื่น report_menu_gl_fa.go:1543, :1630, :1644
  • รูปภาพประจำสินทรัพย์: ค้นหา/อ่านชื่อและหน่วยนับ item_picture.go:127, :191

ข้อควรระวัง

  • สามบัญชี (account_code, depreciation_account_code, depreciation_sum_account_code) กำหนดว่า GL ของ 1801/1802 ลงบัญชีไหน: 1801 ลง Dr บัญชีค่าเสื่อม / Cr บัญชีค่าเสื่อมสะสม รวมยอดต่อบัญชี และข้ามบัญชีที่ว่าง (depGLLines fa_depreciation.go:716-740); ถ้าไม่มีบรรทัด GL เลยจะไม่สร้างรายวัน (fa_depreciation.go:989-990)
  • การเปลี่ยนบัญชีของสินทรัพย์ไม่แก้รายวันของเอกสารที่ลงไปแล้ว ต้องลงใหม่ (กระบวนการสร้างสมุดรายวัน GL ใหม่ (GL Rebuild Process))
  • ชื่อสินทรัพย์ในเอกสาร (รายการเอกสารสินทรัพย์ (as_trans_detail).item_name) เป็นสำเนา ณ วันบันทึก ไม่ตามการแก้ชื่อภายหลัง
  • ทะเบียนนี้เป็นสินทรัพย์ถาวร ไม่ใช่สินค้า (ทะเบียนสินค้า (ic_inventory)) แม้รูปภาพประจำรายการใช้กลไกเดียวกัน

ที่มาในโค้ด

  • backend/internal/application/process/master_detail_specs.go:81 assetHdrCols
  • backend/internal/application/process/master_detail_specs.go:132 ตัวกันลบบัญชี (chart guard)
  • backend/internal/application/process/master_detail_specs.go:202 spec menu_asset_lists
  • backend/internal/application/process/master_detail_specs.go:234 อ้างจากซ่อมบำรุง
  • backend/internal/application/process/master_detail_specs.go:658 prepAsset
  • backend/internal/application/process/fa_depreciation.go:653 loadDepSources
  • backend/internal/application/process/fa_sale.go:286 loadSaleAssets
  • backend/internal/application/process/gl_template.go:203 glSQLAsset
  • backend/internal/application/process/gl_template.go:620 ตัวแปร GL สินทรัพย์
  • backend/internal/application/process/report_menu_gl_fa.go:1245 glfaLoadAssets
  • backend/internal/application/process/report_menu_gl_fa.go:1550 glfaAssetList
  • backend/internal/application/process/item_picture.go:127 รูปภาพประจำสินทรัพย์
  • backend/internal/domain/query/write_policy_legacy.go:15 allow-list

ดูเพิ่ม