สมอง SML

คลังความรู้ / ถาม-ตอบ

#faq#fixed-asset#sale#gl#vat

ขายสินทรัพย์ (1802) ระบบคำนวณกำไร/ขาดทุนและลงบัญชีอย่างไร

ตอบสั้น: กำไร(ขาดทุน) = ยอดขายก่อน VAT − มูลค่าตามบัญชี (ราคาทุน − ค่าเสื่อมสะสม) GL เส้นมาตรฐานลง Dr เงินสด/ลูกหนี้ + Dr ค่าเสื่อมสะสม (+ Dr ขาดทุน) / Cr ราคาทุนสินทรัพย์ + Cr ภาษีขาย (+ Cr กำไร) บัญชีกำไร/ขาดทุนหาจากชื่อในผังบัญชี

รายละเอียด

ดู ขายสินทรัพย์ถาวร (Fixed Asset Sale 1802), ขายสินทรัพย์ (Fixed Asset Sale), วงจรสินทรัพย์ถาวร (Fixed Asset Lifecycle)

ข้อมูลสินทรัพย์ (loadSaleAssets)

คำนวณ (calcAssetSale)

  • ราคาขายต่อแถวปัดด้วย smlRound (ระบบปัดเศษทศนิยมเงินอย่างไร ทำไมยอดต่างกัน 0.01)
  • vat_type 1 (รวมใน): ก่อน VAT = ราคา × 100 ÷ (100 + อัตรา) ปัด ToEven, VAT = ราคา − ก่อน VAT
  • vat_type 0 (แยกนอก): VAT = ราคา × อัตรา ÷ 100 ปัด ToEven
  • ยอดรวมผ่าน vatCalc แล้วปัดยอดสุทธิและ VAT แบบ HALF_UP 2 ตำแหน่ง เพื่อให้ Dr = Cr
  • อัตรา VAT: ถ้าไม่ส่งมา ใช้ erp_option.vat_rate ไม่มีแถว erp_option ใช้ 7

บัญชี (computeAssetSale)

  • ขายสด (inquiry 1/3): 1111/1110/1100; ขายเชื่อ: ar_customer_detail.account_code ของลูกค้า ไม่มีใช้ 1121/1120
  • ภาษีขาย: 2134/2121/2135/2190
  • กำไร/ขาดทุน: บัญชีแรกที่ชื่อตรง (จำหน่าย|ขาย)สินทรัพย์ เรียงตามรหัส

GL เส้นมาตรฐาน

ฝั่ง บัญชี ยอด
Dr เงินสด / ลูกหนี้ ยอดสุทธิรวม VAT
Dr ค่าเสื่อมสะสม (ต่อสินทรัพย์) ค่าเสื่อมสะสม
Dr กำไร(ขาดทุน)ขายสินทรัพย์ เมื่อขาดทุน
Cr สินทรัพย์ (ต่อสินทรัพย์) ราคาทุน
Cr ภาษีขาย VAT
Cr กำไร(ขาดทุน)ขายสินทรัพย์ เมื่อกำไร

ไม่พบชื่อบัญชีในผัง → "ไม่พบผังบัญชี X (ต้องสร้างในผังบัญชีก่อนบันทึก)" (ไม่มีบัญชีกำไร/ขาดทุน ขึ้นชื่อ "กำไร(ขาดทุน)จากการจำหน่ายสินทรัพย์"), Dr ≠ Cr → "รายการบัญชีไม่สมดุล"

บันทึก (AssetSale) ทำได้ 3 แบบ preview / save / delete ล็อก 'asset-sale' เขียน as_trans, as_trans_detail (หัวเอกสารสินทรัพย์ (as_trans)), cb_trans, ทะเบียนภาษีขาย และแท็บภาษีถูกหัก ถ้ารหัสเอกสารมีรูปแบบ GL ใช้รูปแบบแทน ถ้ารูปแบบไม่ลงรายการ → ปฏิเสธ ไม่ถอยไปเส้นมาตรฐาน ลบเอกสารแล้วสินทรัพย์กลับเป็นยังไม่ขาย

ข้อควรระวัง

ดูเพิ่ม

ที่มาในโค้ด

  • backend/internal/application/process/fa_sale.go:159 calcAssetSale (VAT, กำไรขาดทุน, GL)
  • backend/internal/application/process/fa_sale.go:286 loadSaleAssets
  • backend/internal/application/process/fa_sale.go:321 computeAssetSale; :323 VAT ตั้งต้น 7; :349 หาบัญชีกำไรขาดทุนจากชื่อ
  • backend/internal/application/process/fa_sale.go:382 AssetSale; :401 assetSaleTx
  • backend/internal/application/process/fa_sale.go:576 INSERT gl_journal (trans_direct 0 :579)
  • backend/internal/application/process/fa_sale.go:600 postAssetSaleTemplate
  • backend/internal/application/process/service.go:1731 glRebuildTransFlags
  • backend/internal/application/process/gl_template.go:1100 postTemplateOnly ลง 1802 ใหม่เมื่อมีรูปแบบ GL