الفاتورة الإلكترونية zatka

الفاتورة الإلكترونية وZATKA في يومي ERP

في هذا المقال سنتحدث عن الفاتورة الإلكترونية zatka.

تمهيد

الفاتورة الإلكترونية zatka

أصبحت الفاتورة الإلكترونية في المملكة العربية السعودية ودول الخليج ومصر متطلباً تنظيمياً وضريبياً لا يمكن تجاوزه. المنشآت الخاضعة لضريبة القيمة المضافة أو المسجلة في منظومة الفاتورة الإلكترونية تحتاج ترقيماً ضريبياً فريداً ومتسلسلاً لفواتير المبيعات والإشعارات الدائنة والمدينة ومرتجعات المبيعات، مع إمكانية الربط لاحقاً بمنصة زاتكا أو ما يعادلها. هذه الصفحة تشرح كيف يوفّر يومي ERP آلية ترقيم ضريبي متوافقة مع متطلبات الفاتورة الإلكترونية السعودية (ZATKA) وقابلة للتكيف مع السوق الخليجي والمصري، مع الاعتماد على جدول tax_invoice_numbers وخدمة TaxInvoiceNumberingService وسلسلة من أنواع المستندات المحددة في النظام.

ما المقصود بالفاتورة الإلكترونية وترقيم زاتكا؟

في السعودية تشرف هيئة الزكاة والضريبة والجمارك (زاتكا) على منظومة الفاتورة الإلكترونية. الترقيم الضريبي يعني أن كل فاتورة مبيعات أو إشعار دائن أو إشعار مدين أو مرتجع مبيعات يحمل رقماً ضريبياً فريداً يُمكّن الجهة الرقابية والعميل من التتبع والمراجعة. الرقم لا يتكرر أبداً ضمن نفس السياق (الفرع، نوع المستند، السنة المالية)، ويُخزَّن في سجل تدقيق. يومي ERP صُمّم منذ مرحلة إطار المستندات (N1) ليدعم هذا النموذج: جدول tax_invoice_numbers يسجّل كل رقم ضريبي صادر مع ربطه بالشركة والفرع ونوع المستند والرقم الداخلي للفاتورة والسنة المالية والترتيب، وخدمة الترقيم تُنشئ الرقم داخل معاملة قاعدة بيانات مع قفل (lock) لتجنب التكرار عند التزامن.

أنواع المستندات الخاضعة للترقيم الضريبي في يومي

في يومي ERP أربعة أنواع مستندات تُستخدم فيها خدمة الترقيم الضريبي وتُسجّل في tax_invoice_numbers: فاتورة المبيعات (sales_invoice)، الإشعار الدائن (credit_note)، الإشعار المدين (debit_note)، ومرتجع المبيعات (sales_return_invoice). لكل نوع بادئة افتراضية (مثل INV للفواتير، CN للإشعار الدائن، DN للإشعار المدين، SR لمرتجع المبيعات) يمكن أن تُستبدل لاحقاً بإعدادات الشركة. الترقيم منفصل لكل فرع: فرع الرياض وفرع جدة مثلاً لهما تسلسلان مستقلان لنفس نوع المستند، مما يلائم الشركات متعددة الفروع ويحافظ على وضوح المسؤولية والامتثال حسب الموقع.

جدول tax_invoice_numbers وهيكل التخزين

جدول tax_invoice_numbers في قاعدة بيانات المستأجر (tenant) يحتوي على: company_id (مرجع الشركة في قاعدة النظام)، branch_id (الفرع الذي أصدر المستند)، document_type (نوع المستند كما سبق)، invoice_number (الرقم الداخلي للفاتورة أو المستند إن وُجد)، tax_invoice_number (الرقم الضريبي الفريد)، fiscal_year (السنة المالية مثل 2025)، sequence (الترتيب ضمن الفرع ونوع المستند والسنة). يوجد فهرس فريد يمنع تكرار نفس الرقم الضريبي ضمن نفس الشركة والفرع والنوع، وفهرس للبحث السريع حسب الشركة والفرع والنوع والسنة المالية. هذا التصميم يضمن عدم إصدار رقمين ضريبين متطابقين ويُسهّل المراجعة والتصدير للجهات الرقابية.

كيف يُنشأ الرقم الضريبي: المعاملة والقفل

خدمة TaxInvoiceNumberingService عند طلب رقم جديد تقوم بما يلي: التحقق من صحة نوع المستند، استخراج السنة المالية للشركة (مع مراعاة نهاية السنة المالية إن وُجدت في CompanyInformation)، قراءة كود الفرع من جدول الفروع، واستخدام تنسيق الرقم من إعدادات الشركة (مثل tax_invoice_format) أو التنسيق الافتراضي. التنسيق الافتراضي يستخدم النمط: {prefix}-{year}-{branch_code}-{sequence} بحيث prefix يختلف حسب نوع المستند وsequence يُملأ بستة أرقام على الأقل. كل عملية توليد تتم داخل معاملة قاعدة بيانات (DB::connection(‘tenant’)->transaction). داخل المعاملة يُحسب الرقم التالي للتسلسل باستخدام lockForUpdate على الصفوف المطابقة لمنع تنافس متزامن، ثم يُنشأ الرقم النصي ويُدرج سجل جديد في tax_invoice_numbers ويُرجع الرقم للمستدعي. النتيجة: عدم تكرار الأرقام حتى مع عدة مستخدمين أو طلبات API متزامنة.

ربط الترقيم بفواتير المبيعات والإشعارات والمرتجعات

عند ترحيل فاتورة مبيعات أو إشعار دائن أو إشعار مدين أو مرتجع مبيعات، النظام يستدعي خدمة الترقيم بالشركة والفرع ونوع المستند والرقم الداخلي للفاتورة. الرقم الضريبي المُرجَع يُحفظ في رأس المستند (حقل tax_invoice_number في بنية المستند) ويُعرض في واجهة المستخدم وفي التقارير والطباعة. لأن الترقيم يحدث ضمن نفس سياق ترحيل المستند، لا يمكن أن تُرحّل الفاتورة بدون الحصول على رقم ضريبي صالح عند تفعيل هذه الميزة، مما يضمن اكتمال السجل الضريبي لكل مستند مرحّل.

إعدادات التنسيق والسنة المالية

يمكن للشركة تخصيص تنسيق الرقم الضريبي عبر إعداد “تنسيق الرقم الضريبي (ZATKA/الفاتورة الإلكترونية)” في إعدادات المستندات أو إعدادات الشركة (مفتاح tax_invoice_format في CompanySettingsService). المتغيرات المتاحة في التنسيق تشمل على الأقل: prefix، year، branch_code، sequence. السنة المالية تُستمد من بيانات الشركة (CompanyInformation)؛ إن وُجدت نهاية سنة مالية (fiscal_year_end) يُحسب السنة الحالية بناءً عليها حتى لا يتداخل التسلسل مع تغيير السنة. هذا يلائم مختلف سياسات السنة المالية في السعودية والخليج ومصر.

الفرق بين الرقم الداخلي والرقم الضريبي

في يومي ERP كل مستند له رقم داخلي (كود المستند أو invoice_number) يُولَّد حسب قواعد الترميز في الشركة والفرع وقد يختلف شكله من شركة لأخرى. الرقم الضريبي (tax_invoice_number) مخصّص للامتثال: يكون فريداً ضمن سياق الفرع ونوع المستند والسنة المالية، ويُخزَّن في tax_invoice_numbers ويمكن أن يظهر على الفاتورة المطبوعة أو المُصدَّرة للعميل والجهة الرقابية. الرقم الداخلي يبقى للمرجعية الداخلية والربط بين المستندات؛ الرقم الضريبي هو ما تُبلغ به زاتكا أو ما يطلبه العميل في الفاتورة الإلكترونية. النظام يربط الاثنين في نفس السجل بحقل invoice_number في جدول الترقيم.

الامتثال للسوق السعودي والخليجي ومصر

في السعودية متطلبات زاتكا تشمل توحيد أصناف الفواتير والترقيم الفريد وإمكانية الربط بمنصة الفاتورة الإلكترونية. يومي ERP يوفّر الرقمية الفريدة والتسلسل حسب الفرع ونوع المستند وسنة مالية، وسجل تدقيق في tax_invoice_numbers. في مصر ومختلف دول الخليج قد تختلف تفاصيل النماذج والربط بالمنصات؛ البنية الموحدة للمستندات والترقيم تسهّل إضافة تكاملات لاحقة مع منصات محلية. المحتوى والواجهة بالعربية مع دعم RTL، والتصميم يراعي الشركات الصغيرة والمتوسطة التي تريد الامتثال دون تعقيد زائد.

نقطة البيع والترقيم الضريبي

فواتير نقطة البيع في يومي ERP تُنشأ من نفس إطار المستندات ويمكن أن تخضع للترقيم الضريبي حسب إعدادات الشركة. عندما تكون الفاتورة الصادرة من POS من نوع يعامل كفاتورة مبيعات ضريبية، يُستدعى نفس منطق الترقيم بحيث لا يحدث استثناء للكاشير: كل فاتورة مرحّلة تحصل على رقم ضريبي فريد إن كانت الميزة مفعّلة. هذا يلائم محلات التجزئة والصيدليات في السعودية التي تُصدر فواتير إلكترونية من نقاط البيع وتحتاج تسلسلاً واحداً متسقاً مع بقية فواتير الفرع.

لماذا الترقيم داخل المعاملة مهم؟

بدون تنفيذ الترقيم داخل معاملة قاعدة بيانات مع قفل، قد يحدث أن يطلب طلبان في نفس اللحظة الرقم التالي فيتلقى الاثنان نفس التسلسل ويُنتج رقمان متطابقان. في يومي ERP استخدام lockForUpdate وtransaction يضمن أن الرقم التالي يُحسب مرة واحدة فقط لكل سياق، ثم يُسجّل فوراً، فلا يبقى مجال لتكرار الرقم. هذا يتوافق مع أفضل الممارسات للامتثال الضريبي والتدقيق.

الخلاصة والمزايا التنافسية

يومي ERP يوفّر ترقيماً ضريبياً متوافقاً مع الفاتورة الإلكترونية وزاتكا عبر جدول tax_invoice_numbers وخدمة TaxInvoiceNumberingService، مع دعم أربعة أنواع مستندات (فاتورة مبيعات، إشعار دائن، إشعار مدين، مرتجع مبيعات)، وترقيم منفصل لكل فرع وسنة مالية، وتنسيق قابل للتخصيص، ومعاملة آمنة تمنع التكرار. المحاسبون ومديرو المالية في السعودية والخليج ومصر يجدون في هذا أساساً صلباً للامتثال والربط لاحقاً بمنصات الفاتورة الإلكترونية.

دعوة للعمل (CTA)

إذا كنت تبحث عن نظام ERP يدعم الفاتورة الإلكترونية وترقيم زاتكا مع سجل تدقيق وعدم تكرار، يمكنك التعرف على يومي ERP من صفحة البيلار ثم تجربة النظام أو الاطلاع على وحدة المبيعات والمحاسبة وصفحات الامتثال لقياس مدى تطابق الحل مع متطلبات منشأتك.

يومي نظام متكامل قابل للتخصيص لهذا السبب يناسب مجالك أياً كان

يومي ERP يتميز بمرونته وقابليته للتخصيص، لذلك يجعله مناسباً لإدارة الأعمال في مختلف المجالات. يمكنك تعديل التطبيقات والوظائف لتتوافق مع احتياجات شركتك، سواء كانت تشمل إدارة المخزون، إصدار الفواتير، أو تتبع العملاء. يتيح النظام كذلك دمج التطبيقات بسلاسة ويوفر تجربة استخدام متكاملة وأمناً كاملاً للبيانات. بغض النظر عن مجال عملك، يوفر يومي ERP الحلول الشاملة لتحقيق النجاح والنمو في السوق المتغيرة.

Scroll to Top