#tables#as
รายละเอียดสินทรัพย์ (as_asset_detail)
แถวเดียวต่อสินทรัพย์ (คีย์ as_code = ทะเบียนสินทรัพย์ (as_asset).code) เก็บ 3 กลุ่มข้อมูล: ข้อมูลการซื้อ (วัน ราคา ผู้ขาย เอกสาร) ข้อมูลประกัน และ พารามิเตอร์ค่าเสื่อมราคา ที่เอนจินค่าเสื่อม (ค่าเสื่อมราคาสินทรัพย์ถาวร (Fixed Asset Depreciation)) อ่านเป็นข้อมูลตั้งต้น รวมถึง ฟิลด์การขาย ที่เอกสารขาย 1802 เขียนกลับมา หน้าจอทะเบียนสินทรัพย์บันทึกตารางนี้พร้อมหัวเสมอ (grid detail maxRows: 1 master_detail_specs.go:215; ถ้าผู้ใช้ไม่กรอก ระบบสร้างแถวว่างให้ master_detail_specs.go:665)
คอลัมน์สำคัญ
ข้อมูลการซื้อ
| คอลัมน์ | ความหมาย | ใช้ที่ไหน |
|---|---|---|
as_buy_date |
วันที่ซื้อ | รายงาน report_menu_gl_fa.go:1258, :1561 |
as_buy_price |
ราคาซื้อ (ทุน) ใช้เป็นฐานคิดค่าเสื่อมถ้า as_calc_value = 0 และเป็น "ราคาทุน" ตอนขาย |
fa_depreciation.go:470-474, fa_sale.go:288 |
as_buy_from |
ซื้อจาก (ข้อความ) | master_detail_specs.go:84 |
derived_from |
ที่มา (ไม่ชัดจากโค้ดว่าใช้ที่ใด) | master_detail_specs.go:84 |
as_buy_year |
ปีที่ซื้อ | master_detail_specs.go:84 |
doc_buy_ref, doc_buy_date |
เอกสารซื้ออ้างอิงและวันที่ (เก็บเป็นข้อความ/วันที่ ไม่มี FK ไปเอกสารซื้อ) | master_detail_specs.go:84 |
as_buy_description |
รายละเอียดการซื้อ | master_detail_specs.go:85 |
ข้อมูลประกัน (ทั้งหมดเก็บเฉย ๆ ไม่มีโค้ดในโปรแกรมนี้ที่อ่านไปคำนวณ)
insure_no, safety_code, insure_company, insure_money, insure_age, insure_start_date, insure_stop_date (master_detail_specs.go:85) ความหมายของ safety_code และ insure_age: (ไม่ชัดจากโค้ด)
พารามิเตอร์ค่าเสื่อมราคา
| คอลัมน์ | ความหมาย | ใช้ที่ไหน |
|---|---|---|
calc_type |
วิธีคิด 0 = เส้นตรง, 1 = ลดน้อยถอยลง (ช่วง 0..1) เอนจินค่าเสื่อมของโปรแกรมนี้คิดเส้นตรงอย่างเดียว ไม่ได้ใช้ค่านี้ (ตรงกับ C# เดิมที่อ่านแต่ไม่ใช้) ใช้เฉพาะตอนเติมอัตราค่าเสื่อมบนหน้าจอ | fa_depreciation.go:4-5, asset_depreciation.go:59 |
as_start_cut |
(ไม่ชัดจากโค้ด) หน้าจอบันทึกอย่างเดียว | master_detail_specs.go:86 |
as_calc_value |
มูลค่าที่นำมาคิดค่าเสื่อม ถ้า 0 ใช้ as_buy_price |
fa_depreciation.go:470-474 |
as_dead_calc |
(ช่วง 0..1; ไม่ชัดจากโค้ดว่ามีผลอย่างไร) | master_detail_specs.go:217 |
as_dead_value |
ราคาซาก ถ้า <= 0 ระบบบันทึกเป็น 1 | prepAsset master_detail_specs.go:658 |
as_age |
อายุการใช้งาน (ปี) | fa_depreciation.go:653-662 |
as_rate |
อัตราค่าเสื่อมต่อปี (%) ค่าตั้งต้นบนหน้าจอ = 100 / อายุ (เส้นตรง) หรือคำนวณจากราคาซาก/มูลค่า/อายุ (ลดน้อยถอยลง) ผู้ใช้แก้ทับได้ และเอนจินไม่ได้อ่านฟิลด์นี้ (รายงานแสดงอย่างเดียว) | asset_depreciation.go:59, :66-93, report_menu_gl_fa.go:1255 |
start_calc_date, stop_calc_date |
วันเริ่ม/สิ้นสุดคิดค่าเสื่อม สิ้นสุดต้อง >= เริ่ม ค่าตั้งต้นของวันสิ้นสุดคำนวณจากวันเริ่มและอายุ | master_detail_specs.go:658, asset_depreciation.go:60, :155 |
as_value_balance |
มูลค่าคงเหลือที่ใช้คิด (ถ้า 0 และ as_calc_value > 0 ใช้ as_calc_value) |
fa_depreciation.go:476-480, :681 |
as_sum_value_balance |
ค่าเสื่อมราคาสะสมยกมา (ก่อนมีเอกสาร 1801) | fa_depreciation.go:515, fa_sale.go:289 |
ข้อมูลทั่วไป / อื่น ๆ
| คอลัมน์ | ความหมาย |
|---|---|
remark |
หมายเหตุ |
asset_status |
สถานะสินทรัพย์ (ไม่ชัดจากโค้ด) |
asset_province |
จังหวัดที่ตั้ง อ้าง erp_province.code (ข้อความ "ไม่พบจังหวัด" master_detail_specs.go:216) |
as_model, as_description |
รุ่น/รายละเอียดสินทรัพย์ |
as_price_group, as_budget |
(ไม่ชัดจากโค้ด) หน้าจอบันทึกอย่างเดียว |
ฟิลด์การขาย (เขียนโดยเอกสาร 1802 ไม่ใช่หน้าจอ)
| คอลัมน์ | ความหมาย | ใช้ที่ไหน |
|---|---|---|
as_sale_date, doc_sale_date |
วันที่ขาย (เท่ากัน ใช้วันที่เอกสาร) | fa_sale.go:551 |
doc_sale_ref |
เลขที่เอกสารขาย 1802 | fa_sale.go:551, ล้างที่ :497 |
as_sale_to |
ผู้ซื้อ (รหัสลูกหนี้ของเอกสาร) | fa_sale.go:551 |
as_sale_price |
ราคาขายไม่รวมภาษี (sum_amount_exclude_vat) |
fa_sale.go:551 |
คีย์และความสัมพันธ์
- แม่: ทะเบียนสินทรัพย์ (as_asset) ผ่าน
as_code(1:1, ไม่มี FK; ลบด้วยโค้ดตอนลบสินทรัพย์clearmaster_detail_specs.go:218) - เอกสารขาย:
doc_sale_refชี้เลขที่ หัวเอกสารสินทรัพย์ (as_trans) 1802 - จังหวัด:
erp_provinceผ่านasset_province
ใครเขียน
- หน้าจอทะเบียนสินทรัพย์ (spec
menu_asset_listsgriddetailmaster_detail_specs.go:215-217) บันทึกคอลัมน์ทั้งหมดในassetDetailCols(master_detail_specs.go:84-88) ยกเว้นฟิลด์การขาย - เอกสารขาย 1802:
insertAssetSaleDocfa_sale.go:551อัปเดตห้าฟิลด์การขายต่อสินทรัพย์ในเอกสาร - ไม่มีโค้ดใดอัปเดต
as_sum_value_balance/as_value_balanceหลังออกเอกสารค่าเสื่อม 1801 เอกสาร 1801 เป็นตัวเก็บค่าเสื่อมที่เกิดขึ้น (ดูข้อควรระวัง)
ใครลบ
- ลบสินทรัพย์ผ่านหน้า master:
clearmaster_detail_specs.go:218 - ล้างฟิลด์การขาย (
as_sale_date,doc_sale_date= NULL,as_sale_price= 0,as_sale_to,doc_sale_ref= '') เมื่อลบ/แก้เอกสาร 1802 ที่doc_sale_ref = doc_no—deleteAssetSaleDocfa_sale.go:497
ใครอ่าน
- เอนจินค่าเสื่อม:
loadDepSourcesfa_depreciation.go:653-662อ่านas_buy_price,as_dead_value,as_age,start_calc_date,stop_calc_date,as_calc_value,as_value_balance,as_sum_value_balanceต่อสินทรัพย์;depAssetOffa_depreciation.go:470-486ตั้งฐานคิด;depComputefa_depreciation.go:515นำas_sum_value_balance+ ค่าเสื่อมก่อนช่วงมารวมเป็นยอดสะสม - ขายสินทรัพย์:
loadSaleAssetsfa_sale.go:286-293อ่านas_buy_price(ทุน) และas_sum_value_balanceเพื่อคำนวณค่าเสื่อมสะสม ณ วันขาย - หน้าจอเติมค่าตั้งต้นอัตราค่าเสื่อม/วันสิ้นสุด:
AssetDepDefaultsasset_depreciation.go:49(ไม่เขียนฐาน แค่คำนวณคืนให้หน้าจอ) - รายงาน: ค่าเสื่อมราคา
report_menu_gl_fa.go:1259, รายละเอียดสินทรัพย์report_menu_gl_fa.go:1563, รายงานขายreport_menu_gl_fa.go:1544
ข้อควรระวัง
- ค่าเสื่อมสะสม ณ วันใดวันหนึ่ง =
as_sum_value_balance+ Σas_trans_detail.sum_amountของเอกสาร 1801 (fa_sale.go:289-290) ไม่ใช่ค่าที่ปรับเพิ่มในตารางนี้ - เอนจินค่าเสื่อมเป็นเส้นตรงอย่างเดียว (
fa_depreciation.go:4-5) แม้ตั้งcalc_type = 1และas_rateไม่ได้ถูกเอนจินอ่าน ถ้าต้องการให้เปลี่ยนวิธี ต้องแก้ที่เอนจิน ไม่ใช่ที่ตาราง - สินทรัพย์ที่ขายแล้ว (มีเอกสาร 1802 ที่
last_status = 0) ถูกคิดค่าเสื่อมถึง "วันก่อนวันขาย" เท่านั้น (fa_depreciation.go:481-484) โดยวันขายอ่านจาก รายการเอกสารสินทรัพย์ (as_trans_detail) ไม่ใช่จากas_sale_date(fa_depreciation.go:660) as_dead_valueที่ <= 0 ถูกบังคับเป็น 1 ตอนบันทึก (master_detail_specs.go:658) เพื่อไม่ให้ราคาซากเป็นศูนย์- ฟิลด์การขายถูกเขียนทับ/ล้างโดยเอกสาร 1802 ทุกครั้ง การแก้ฟิลด์เหล่านี้ที่หน้าจอทะเบียนไม่ใช่แหล่งจริง ให้ถือเอกสาร 1802 เป็นหลัก
- ยอดเงินเป็น NUMERIC ส่งเป็น string (การปัดเศษ ทศนิยม และตัวเลขเงิน (Rounding & Decimal Policy))
ที่มาในโค้ด
backend/internal/application/process/master_detail_specs.go:84assetDetailColsbackend/internal/application/process/master_detail_specs.go:215griddetail(maxRows 1)backend/internal/application/process/master_detail_specs.go:658prepAssetbackend/internal/application/process/fa_depreciation.go:4ข้อความอธิบายเอนจินเส้นตรงbackend/internal/application/process/fa_depreciation.go:458depSourcebackend/internal/application/process/fa_depreciation.go:470depAssetOfbackend/internal/application/process/fa_depreciation.go:515ยอดสะสมยกมาbackend/internal/application/process/fa_depreciation.go:653loadDepSourcesbackend/internal/application/process/fa_sale.go:286loadSaleAssetsbackend/internal/application/process/fa_sale.go:497ล้างฟิลด์ขายbackend/internal/application/process/fa_sale.go:551เขียนฟิลด์ขายbackend/internal/application/process/asset_depreciation.go:49assetDepDefaultsbackend/internal/application/process/report_menu_gl_fa.go:1259รายงานค่าเสื่อมbackend/internal/application/process/report_menu_gl_fa.go:1563รายละเอียดสินทรัพย์