BR-KSA-EN16931-03: مبلغ الخصم أو الرسم = المبلغ الأساسي × النسبة ÷ 100

الشرح من فريق ماثل، مبني على نص قواعد الهيئة والشرط اللي ينفّذه SDK 3.4.8 · آخر تحديث

تحذير: الفاتورة تنقبل مع تحذيربشرط، شوف الشرحالحقول: BT-92, BT-99, BT-136, BT-141, BT-93, BT-100, BT-137, BT-142, BT-94, BT-101, BT-138, BT-143

لكل عنصر cac:AllowanceCharge على مستوى الفاتورة أو البند يحتوي على cbc:Amount و cbc:BaseAmount معاً، يجب أن يساوي cbc:Amount ناتج cbc:BaseAmount × cbc:MultiplierFactorNumeric ÷ 100. التحقق الفعلي يقرّب الناتج إلى خانتين عشريتين ويقارنه بقيمة cbc:Amount بعد تنسيقها بخانتين، بينما يظهر التعبير المنشور مقارنة مطابقة تامة.

كيف تحلها

احسب cbc:Amount من المبلغ الأساسي والنسبة وقرّبه إلى خانتين عشريتين: مبلغ أساسي 200.00 مع <cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric> يتطلب <cbc:Amount currencyID="SAR">20.00</cbc:Amount>. وإذا لم يكن الخصم أو الرسم محسوباً بنسبة فاحذف cbc:BaseAmount و cbc:MultiplierFactorNumeric معاً.

نص الهيئة الرسمي

[BR-KSA-EN16931-03]-Allowance/Charge amount (BT-92, BT-99, BT-136, BT-141) must equal base amount (BT-93, BT-100, BT-137, BT-142) * percentage (BT-94, BT-101, BT-138, BT-143) / 100 if base amount and percentage exists.
المصدر: ZATCA SDK 3.4.8 · ZATCA KSA rules

متى تفشل (الشرط اللي ينفّذه SDK الهيئة)

string-length(./cbc:Amount) > 0 and string-length(./cbc:BaseAmount) > 0 and not ( format-number(./cbc:Amount,'#.00') = format-number(( floor((((./cbc:BaseAmount * ./cbc:MultiplierFactorNumeric) div 100) * 100 + 0.5)) div 100), '#.00'))

قواعد قريبة

افحص فاتورتك على قواعد الهيئة

الصق الـ XML وتشوف كل الأخطاء والتحذيرات، والفحص يصير في متصفحك وما ترسل الفاتورة لأي مكان.

افحص فاتورة أو جرّب ماثل