ขายสินทรัพย์ (1802) ระบบคำนวณกำไร/ขาดทุนและลงบัญชีอย่างไร
ตอบสั้น: กำไร(ขาดทุน) = ยอดขายก่อน VAT − มูลค่าตามบัญชี (ราคาทุน − ค่าเสื่อมสะสม) GL เส้นมาตรฐานลง Dr เงินสด/ลูกหนี้ + Dr ค่าเสื่อมสะสม (+ Dr ขาดทุน) / Cr ราคาทุนสินทรัพย์ + Cr ภาษีขาย (+ Cr กำไร) บัญชีกำไร/ขาดทุนหาจากชื่อในผังบัญชี
รายละเอียด
ดู ขายสินทรัพย์ถาวร (Fixed Asset Sale 1802), ขายสินทรัพย์ (Fixed Asset Sale), วงจรสินทรัพย์ถาวร (Fixed Asset Lifecycle)
ข้อมูลสินทรัพย์ (loadSaleAssets)
- ราคาทุน =
as_asset_detail.as_buy_price - ค่าเสื่อมสะสม =
as_sum_value_balance+ ผลรวมas_trans_detail.sum_amountของ 1801 (คิดค่าเสื่อมราคาสินทรัพย์ (โอนค่าเสื่อม 1801) คำนวณและลงบัญชีอย่างไร) - รหัสบัญชี: ราคาทุน =
as_asset.account_code, ค่าเสื่อมสะสม =depreciation_sum_account_code - ปฏิเสธ: "ไม่พบสินทรัพย์ X", "สินทรัพย์ X ขายไปแล้วในเอกสาร Y", "สินทรัพย์ X ยังไม่กำหนดรหัสบัญชีสินทรัพย์/ค่าเสื่อมราคาสะสม"
คำนวณ (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 ใช้รูปแบบแทน ถ้ารูปแบบไม่ลงรายการ → ปฏิเสธ ไม่ถอยไปเส้นมาตรฐาน ลบเอกสารแล้วสินทรัพย์กลับเป็นยังไม่ขาย
ข้อควรระวัง
- บัญชีกำไร/ขาดทุนหาด้วยชื่อ ถ้าผังมีหลายบัญชีชื่อคล้ายกัน ระบบเลือกรหัสน้อยสุด
gl_journalของ 1802 เขียนtrans_direct= 0 (fa_sale.go:579) ต่างจาก 1801 ที่เป็น 1 และ 1802 ไม่อยู่ในglRebuildTransFlagsจึงไม่ถูก rebuild GL ลบ ยกเว้นรหัสเอกสารที่มีรูปแบบ GL ซึ่งpostTemplateOnlyลงใหม่ (ต้องกดประมวลผลลงบัญชี (Rebuild GL) ใหม่เมื่อไร มันลบอะไรทิ้งบ้าง)- ตรวจงวดทั้งวันที่ใหม่ วันที่เดิมตอนแก้ และตอนลบ (บันทึก/แก้/ลบเอกสารไม่ได้ ขึ้นว่า "ได้ถูกปิดงวดไปแล้ว หรือยังไม่ได้กำหนดงวดบัญชี" แก้อย่างไร)
- ลบเอกสารโอนค่าเสื่อม 1801 ที่วันที่ไม่เกินวันขายไม่ได้
ดูเพิ่ม
- ขายสินทรัพย์ถาวร (Fixed Asset Sale 1802)
- คิดค่าเสื่อมราคาสินทรัพย์ (โอนค่าเสื่อม 1801) คำนวณและลงบัญชีอย่างไร
- VAT แยกนอก กับ รวมใน คำนวณต่างกันยังไง ส่วนลดท้ายบิลหักก่อนหรือหลังภาษี
- ตั้งรูปแบบการลงบัญชี (GL) ในรูปแบบเอกสารยังไง และระบบใช้เมื่อไร
- ภาษีหัก ณ ที่จ่าย บันทึกตรงไหน ออก ภ.ง.ด.3 / ภ.ง.ด.53 / 50 ทวิ ได้จากเมนูไหน
ที่มาในโค้ด
backend/internal/application/process/fa_sale.go:159calcAssetSale(VAT, กำไรขาดทุน, GL)backend/internal/application/process/fa_sale.go:286loadSaleAssetsbackend/internal/application/process/fa_sale.go:321computeAssetSale;:323VAT ตั้งต้น 7;:349หาบัญชีกำไรขาดทุนจากชื่อbackend/internal/application/process/fa_sale.go:382AssetSale;:401assetSaleTxbackend/internal/application/process/fa_sale.go:576INSERTgl_journal(trans_direct 0:579)backend/internal/application/process/fa_sale.go:600postAssetSaleTemplatebackend/internal/application/process/service.go:1731glRebuildTransFlagsbackend/internal/application/process/gl_template.go:1100postTemplateOnlyลง 1802 ใหม่เมื่อมีรูปแบบ GL