BR-KSA-36: تاريخ انتهاء التوريد (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) )
قواعد قريبة
- BR-KSA-15 · الفاتورة الضريبية (388) تحتاج تاريخ التوريد
- BR-KSA-35 · تاريخ انتهاء التوريد (KSA-24) يتطلب تاريخ التوريد (KSA-5)
- BR-KSA-72 · الفاتورة المبسطة الملخصة تتطلب تاريخي بداية التوريد ونهايته
- BR-KSA-33 · كل فاتورة تحتاج قيمة عداد الفاتورة (ICV، KSA-16)
- BR-KSA-34 · قيمة عداد الفاتورة (ICV، KSA-16) أرقام فقط
- BR-KSA-37 · رقم مبنى البائع يجب أن يكون 4 أرقام بالضبط
افحص فاتورتك على قواعد الهيئة
الصق الـ XML وتشوف كل الأخطاء والتحذيرات، والفحص يصير في متصفحك وما ترسل الفاتورة لأي مكان.
افحص فاتورة أو جرّب ماثل