BR-KSA-EN16931-03: مبلغ الخصم أو الرسم = المبلغ الأساسي × النسبة ÷ 100
لكل عنصر 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'))
قواعد قريبة
- BR-31 · يجب أن يحمل كل خصم على مستوى المستند مبلغًا (BT-92)
- BR-36 · يجب أن تحمل كل رسوم إضافية على مستوى المستند مبلغًا (BT-99)
- BR-41 · يجب أن يحمل كل خصم على مستوى البند مبلغًا (BT-136)
- BR-43 · يجب أن تحمل كل رسوم إضافية على مستوى البند مبلغًا (BT-141)
- BR-CO-11 · إجمالي الخصومات يجب أن يساوي مجموع خصومات مستوى المستند
- BR-CO-12 · إجمالي الرسوم يجب أن يساوي مجموع رسوم مستوى المستند
افحص فاتورتك على قواعد الهيئة
الصق الـ XML وتشوف كل الأخطاء والتحذيرات، والفحص يصير في متصفحك وما ترسل الفاتورة لأي مكان.
افحص فاتورة أو جرّب ماثل