BR-KSA-36: تاريخ انتهاء التوريد (KSA-24) لا يسبق تاريخ التوريد (KSA-5)

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

تحذير: الفاتورة تنقبل مع تحذيربشرط، شوف الشرحالحقول: KSA-24, KSA-5

تنطبق عندما يحتوي cac:Delivery على cbc:ActualDeliveryDate (KSA-5) و cbc:LatestDeliveryDate (KSA-24) بتاريخين صحيحين بصيغة YYYY-MM-DD: يجب أن يكون تاريخ الانتهاء مساويًا لتاريخ التوريد أو بعده. إذا غاب أحد التاريخين أو لم يكن بصيغة YYYY-MM-DD صحيحة فلا تُجري القاعدة المقارنة.

كيف تحلها

اجعل cbc:LatestDeliveryDate في نفس يوم cbc:ActualDeliveryDate أو بعده، وكلاهما بصيغة YYYY-MM-DD.

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

[BR-KSA-36]-If the invoice contains a supply end date (KSA-24), then this date must be greater than or equal to the supply date (KSA-5).
المصدر: ZATCA SDK 3.4.8 · ZATCA KSA rules

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

(exists(../cbc:ActualDeliveryDate) and normalize-space(../cbc:ActualDeliveryDate) != '') and (string-length(string(../cbc:ActualDeliveryDate)) = 10 and matches( string(../cbc:ActualDeliveryDate), '((18|19|20)[0-9]{2}[\-](0[13578]|1[02])[\-](0[1-9]|[12][0-9]|3[01]))|(18|19|20)[0-9]{2}[\-](0[469]|11)[\-](0[1-9]|[12][0-9]|30)|(18|19|20)[0-9]{2}[\-](02)[\-](0[1-9]|1[0-9]|2[0-8])|(((18|19|20)(04|08|[2468][048]|[13579][26]))|2000)[\-](02)[\-]29')) and (string-length( .) = 10 and matches( string(.), '((18|19|20)[0-9]{2}[\-](0[13578]|1[02])[\-](0[1-9]|[12][0-9]|3[01]))|(18|19|20)[0-9]{2}[\-](0[469]|11)[\-](0[1-9]|[12][0-9]|30)|(18|19|20)[0-9]{2}[\-](02)[\-](0[1-9]|1[0-9]|2[0-8])|(((18|19|20)(04|08|[2468][048]|[13579][26]))|2000)[\-](02)[\-]29') )and not(xs:date(.) >= xs:date(../cbc:ActualDeliveryDate) )

قواعد قريبة

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

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

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