دليل نظام الخصومات وحساب الضرائب على الفواتير - دليل شامل
نظرة عامة
يشرح هذا الدليل كيف يحسب نما خصومات سطر الفاتورة وضرائبه: أي إعدادات ضريبة يستخدمها المستند، وبأي ترتيب تُطبَّق الخصومات والضرائب، والخيارات التي تغيّر كل خطوة. كل خيار مذكور باسمه على الشاشة، ومعرّف الحقل بجانبه في الجداول.
الميزات الرئيسية
- دعم 8 خصومات تسلسلية على مستوى السطر بالإضافة إلى خصم واحد على مستوى الرأس
- 4 أنواع ضرائب قابلة للإعداد مع نقاط تطبيق مرنة
- تفاعلات معقدة بين الخصومات والضرائب وترتيب مخصص
- دعم متعدد العملات ومتعدد المعدلات
- خيارات إعداد شاملة لسيناريوهات الأعمال المختلفة
- يمكن إعداد الضريبة كإضافة أو خصم
فهم تدفق الحساب
تسلسل الحساب الأساسي
عند معالجة فاتورة، يتبع نما تسلسل الحساب العام التالي:
- حساب إجمالي السطر: الكمية × سعر الوحدة = إجمالي السطر
- تطبيق خصومات السطر: تطبيق Discount1 حتى Discount8 بالتسلسل
- تطبيق خصم الرأس: تطبيق خصم واحد على الفاتورة بالكامل
- حسابات الضرائب: تطبيق Tax1 حتى Tax4 عند النقاط المُعدَّة
- الإجماليات النهائية: حساب صافي المبالغ والأرصدة المتبقية
ملاحظة مهمة
يمكن تغيير الترتيب بسجل إعدادات تأثير الخصومات و الضرائب (راجع قسم «إعداد التأثيرات المتقدمة» أدناه)، فتُطبَّق الخصومات والضرائب بالترتيب الذي يحتاجه العمل.
أي إعدادات ضريبة تُطبَّق
خيارات الضريبة المشروحة في الأقسام التالية لا تُختار لكل مستند على حدة. ومنها موضع كل ضريبة في التسلسل، والمبلغ الذي تُحسب عليه، وهل السعر يشملها. هذه الخيارات تنتقل معًا كحزمة واحدة هي إعدادات الضريبة، ويأخذ المستند حزمته من أحد ثلاثة أماكن. يفحصها نما بهذا الترتيب ويتوقف عند أول مكان يعطي إجابة:
- سياسة الضريبة في المستند. إذا حدد رأس المستند سياسة الضريبة، فالحقل الإعدادات الافتراضية للضريبة من في تلك السياسة هو الذي يقرر:
الإعدادات العامة: تُستخدم خيارات الضرائب في تبويب الضرائب في الإعدادات العامة.
من راس المستند: تُستخدم إعدادات الضريبة المعبأة في سياسة الضريبة نفسها.
من سطور المستند: يُستخدم أول سطر في جدول السياسة الضريبية داخل السياسة يطابق المستند. يطابق السطر إذا تحققت الشروط الثلاثة:
- الشركة فيه هي شركة المستند، أو فارغة؛
- تاريخ المستند يقع بين تطبق من وتطبق الي (التاريخ الفارغ يترك ذلك الطرف مفتوحًا)؛
- النوع أو قائمة الأنواع فيه يشمل نوع المستند، أو كلاهما فارغ.
إذا لم يطابق أي سطر انتقل نما إلى الخطوة 2.
إذا تُرك الحقل فارغًا: ينتقل نما إلى الخطوة 2.
- سياسة الضريبة في السطر، وهي سياسة الصنف، وتُقرأ بالطريقة نفسها.
- تبويب الضرائب في الإعدادات العامة، إذا لم تعطِ أي من السياستين إجابة. والمستند الذي لا يحمل سياسة ضريبة في رأسه ولا في صنفه يأتي إلى هنا مباشرة.
مثال: سياسة ضريبة مضبوطة على من سطور المستند فيها سطران: الأول للشركة أ بدءًا من 1 يناير 2025، والثاني بشركة فارغة. فاتورة الشركة ب تستخدم السطر الثاني. وكذلك فاتورة الشركة أ المؤرخة في ديسمبر 2024، لأن السطر الأول لم يكن قد بدأ بعد. ترتيب السطور مهم: ضع السطور الخاصة فوق السطر العام.
حقول إعداد خطة الضريبة
حقول خطة الضريبة الأساسية
| اسم الحقل | حقل قاعدة البيانات | الوصف | التأثير |
|---|---|---|---|
| Item Plan | itemPlan | يشير إلى تطبيق الخطة على الأصناف | عند التفعيل، تُستخدم الخطة لضرائب مستوى الصنف (Tax1, Tax2) |
| No Item Taxes With This Policy | noItemTaxesWithThisPolicy | تعطيل Tax1 وTax2 | عند التفعيل، تصبح ضرائب الأصناف صفراً بغض النظر عن المعدلات |
| No Invoice Taxes With This Policy | noInvoiceTaxesWithThisPolicy | تعطيل Tax3 وTax4 | عند التفعيل، تصبح ضرائب الفاتورة صفراً بغض النظر عن المعدلات |
| Prioritize This Policy Over Policy Specified In Customer and Supplier | priorityPolicyOverCusOrSup | التحكم في أولوية السياسة | عند التفعيل، تتجاوز هذه الخطة إعدادات ضريبة العميل/المورد |
| Default Tax Configuration | defaultTaxConfig | مصدر إعداد الضريبة | الخيارات: GlobalConfig, TaxPlanHeader, TaxPlanLine |
| Tax Configuration | taxConfiguration | إعدادات سلوك الضريبة المضمنة | تحتوي على جميع قواعد حساب الضريبة |
| Legal Entity Taxes | legalEntityTaxes | معدلات الضريبة حسب الشركة والتاريخ | قائمة بمعدلات الضريبة الخاصة بكل شركة |
| Subsidiary Accounts | subsidiaryAccounts | إعدادات على مستوى الحساب | تحتوي على علامات الإعفاء الضريبي |
حقول ضريبة الشركة
يحتوي كل سطر في جدول السياسة الضريبية على:
| اسم الحقل | حقل قاعدة البيانات | الوصف |
|---|---|---|
| Legal Entity | legalEntity | شركة محددة أو null للجميع |
| Effective From | effectiveFrom | تاريخ بدء سريان معدلات الضريبة |
| Effective To | effectiveTo | تاريخ انتهاء سريان معدلات الضريبة |
| Tax 1 | tax1 | معدل Tax1 (نسبة مئوية أو قيمة) |
| Tax 2 | tax2 | معدل Tax2 (نسبة مئوية أو قيمة) |
| Entity Type | entityType | نوع المستند المحدد |
| Entity Type List | entityTypeList | أنواع مستندات متعددة |
| Revision ID | revisionId | إصدار الصنف الذي ينطبق عليه هذا المعدل؛ وإن كان فارغًا انطبق على كل الإصدارات |
| Tax Configuration | taxConfiguration | إعداد تجاوز لهذه الشركة |

إعداد نظام الخصومات
أنواع الخصومات
خصومات السطر (Discount 1-8)
- التطبيق التسلسلي: يُطبَّق كل خصم بعد السابق
- قاعدة قابلة للإعداد: يمكن لكل خصم تطبيق مبالغ أساسية مختلفة
- نسبة مئوية أو قيمة: يمكن تحديده كنسبة مئوية أو مبلغ ثابت
- تحكم فردي: لكل خصم إعداد مستقل
خصم الرأس
- على مستوى الفاتورة: يُطبَّق على إجمالي الفاتورة بالكامل
- التوزيع النسبي: يُوزَّع على جميع سطور الفاتورة بشكل نسبي
- توقيت قابل للإعداد: يمكن تطبيقه في نقاط مختلفة من تسلسل الحساب
حقول إعداد الخصم
الإعداد العام - أنواع تطبيق الخصم
تُضبط هذه الحقول في تبويب الخصومات في الإعدادات العامة:
| اسم الحقل | حقل قاعدة البيانات | الوصف | القيم المتاحة |
|---|---|---|---|
| Discount 1 Apply Type | discount1ApplyType | المبلغ الأساسي لـ Discount 1 | TotalPrice, AfterDiscount1-8, AfterHeaderDiscount, Custom, Tax/Discount Values |
| Discount 2 Apply Type | discount2ApplyType | المبلغ الأساسي لـ Discount 2 | كما أعلاه |
| Discount 3 Apply Type | discount3ApplyType | المبلغ الأساسي لـ Discount 3 | كما أعلاه |
| Discount 4 Apply Type | discount4ApplyType | المبلغ الأساسي لـ Discount 4 | كما أعلاه |
| Discount 5 Apply Type | discount5ApplyType | المبلغ الأساسي لـ Discount 5 | كما أعلاه |
| Discount 6 Apply Type | discount6ApplyType | المبلغ الأساسي لـ Discount 6 | كما أعلاه |
| Discount 7 Apply Type | discount7ApplyType | المبلغ الأساسي لـ Discount 7 | كما أعلاه |
| Discount 8 Apply Type | discount8ApplyType | المبلغ الأساسي لـ Discount 8 | كما أعلاه |
| Header Discount Apply Type | headerDiscountApplyType | المبلغ الأساسي لخصم الرأس | كما أعلاه |
حقول طريقة حساب الخصم
| اسم الحقل | حقل قاعدة البيانات | الوصف | التأثير |
|---|---|---|---|
| Calculate discount 1 percentage from value | calcDisc1PercentFromValue | اتجاه الحساب لـ Discount 1 | True: حساب النسبة من القيمة الثابتة False: حساب القيمة من النسبة |
| Calculate discount 2 percentage from value | calcDisc2PercentFromValue | اتجاه الحساب لـ Discount 2 | كما أعلاه |
| Calculate discount 3 percentage from value | calcDisc3PercentFromValue | اتجاه الحساب لـ Discount 3 | كما أعلاه |
| Calculate discount 4 percentage from value | calcDisc4PercentFromValue | اتجاه الحساب لـ Discount 4 | كما أعلاه |
| Calculate discount 5 percentage from value | calcDisc5PercentFromValue | اتجاه الحساب لـ Discount 5 | كما أعلاه |
| Calculate discount 6 percentage from value | calcDisc6PercentFromValue | اتجاه الحساب لـ Discount 6 | كما أعلاه |
| Calculate discount 7 percentage from value | calcDisc7PercentFromValue | اتجاه الحساب لـ Discount 7 | كما أعلاه |
| Calculate discount 8 percentage from value | calcDisc8PercentFromValue | اتجاه الحساب لـ Discount 8 | كما أعلاه |
إعداد تأثير الضريبة على الخصم
لكل خصم من خصم 1 إلى خصم 8 مجموعة خاصة من هذه الخيارات:
| اسم الحقل | حقل قاعدة البيانات | الوصف | التأثير |
|---|---|---|---|
| خصم ضريبة 1 (Discount Tax 1) | discount[N].considerTax1 | طرح ضريبة 1 من وعاء الخصم | عند التفعيل تُطرح ضريبة 1 من الوعاء قبل تطبيق الخصم |
| خصم ضريبة 2 (Discount Tax 2) | discount[N].considerTax2 | طرح ضريبة 2 من وعاء الخصم | عند التفعيل تُطرح ضريبة 2 من الوعاء قبل تطبيق الخصم |
| خصم ضريبة 3 (Discount Tax 3) | discount[N].considerTax3 | طرح ضريبة 3 من وعاء الخصم | عند التفعيل تُطرح ضريبة 3 من الوعاء قبل تطبيق الخصم |
| خصم ضريبة 4 (Discount Tax 4) | discount[N].considerTax4 | طرح ضريبة 4 من وعاء الخصم | عند التفعيل تُطرح ضريبة 4 من الوعاء قبل تطبيق الخصم |
كيفية حساب الخصومات
الخصومات النسبية
Discount Amount = (Base Amount × Discount Percentage) ÷ 100
New Total = Base Amount - Discount Amountالخصومات بقيمة ثابتة
Discount Amount = Fixed Discount Value
New Total = Base Amount - Discount Amountالخصومات الشاملة للضريبة
عند تضمين الضرائب في السعر، يُعدَّل حساب الخصم كالتالي:
Discount Amount = Base Amount - (Base Amount × 100) ÷ (100 + Tax Percentage)خصومات تختفي عند تغيير التوجيه أو العميل
قد يؤدي تغيير التوجيه أو التاريخ الفعلي أو الذمة أو العميل إلى إعادة احتساب سعر كل سطر وخصمه، وعندها تُستبدل الخصومات المُدخلة يدويًا. ما الذي يسبب ذلك، وخيارات التوجيه التي توقفه، موجودة في قسم التحكم في تحديث الأسعار في صفحة التوجيه.
إعداد نظام الضرائب
خيارات الضريبة
هذه هي الخيارات التي تحملها إعدادات الضريبة، أيًّا كان المكان الذي جاءت منه من الأماكن الثلاثة أعلاه:
حقول موقع الضريبة
| اسم الحقل | حقل قاعدة البيانات | الوصف | التأثير |
|---|---|---|---|
| Tax 1 Location | tax1Location | موضع Tax1 في سلسلة الحساب | الآثار التي تليها ترى إجماليًا جاريًا يشملها؛ أما الإضافة أو الخصم فيحددهما Tax 1 Is Discount |
| Tax 2 Location | tax2Location | موضع Tax2 في سلسلة الحساب | الآثار التي تليها ترى إجماليًا جاريًا يشملها؛ أما الإضافة أو الخصم فيحددهما Tax 2 Is Discount |
| Tax 3 Location | tax3Location | موضع Tax3 في سلسلة الحساب | الآثار التي تليها ترى إجماليًا جاريًا يشملها؛ أما الإضافة أو الخصم فيحددهما Tax 3 Is Discount |
| Tax 4 Location | tax4Location | موضع Tax4 في سلسلة الحساب | الآثار التي تليها ترى إجماليًا جاريًا يشملها؛ أما الإضافة أو الخصم فيحددهما Tax 4 Is Discount |
قيم الموقع المتاحة:
MainPrice: تُطبَّق على إجمالي السطر الأصليDiscount1حتىDiscount8: تُطبَّق بعد خصم محددHeaderDiscount: تُطبَّق بعد خصم الرأس
حقول نوع تطبيق الضريبة
| اسم الحقل | حقل قاعدة البيانات | الوصف | التأثير |
|---|---|---|---|
| Tax 1 Apply Type | tax1ApplyType | الأساس لحساب Tax1 | يحدد المبلغ الذي تُطبَّق عليه Tax1 |
| Tax 2 Apply Type | tax2ApplyType | الأساس لحساب Tax2 | يحدد المبلغ الذي تُطبَّق عليه Tax2 |
| Tax 3 Apply Type | tax3ApplyType | الأساس لحساب Tax3 | يحدد المبلغ الذي تُطبَّق عليه Tax3 |
| Tax 4 Apply Type | tax4ApplyType | الأساس لحساب Tax4 | يحدد المبلغ الذي تُطبَّق عليه Tax4 |
حقول التحكم في سلوك الضريبة
| اسم الحقل | حقل قاعدة البيانات | الوصف | التأثير على الحساب |
|---|---|---|---|
| Tax 1 Is Discount | tax1IsDiscount | Tax1 تخفض الإجمالي | True: يُطرح المبلغ False: يُضاف المبلغ |
| Tax 2 Is Discount | tax2IsDiscount | Tax2 تخفض الإجمالي | True: يُطرح المبلغ False: يُضاف المبلغ |
| Tax 3 Is Discount | tax3IsDiscount | Tax3 تخفض الإجمالي | True: يُطرح المبلغ False: يُضاف المبلغ |
| Tax 4 Is Discount | tax4IsDiscount | Tax4 تخفض الإجمالي | True: يُطرح المبلغ False: يُضاف المبلغ |
حقول طريقة حساب الضريبة
| اسم الحقل | حقل قاعدة البيانات | الوصف | صيغة الحساب |
|---|---|---|---|
| Tax 1 Is Value Not Percentage | tax1IsValue | Tax1 كمبلغ ثابت | True: مبلغ ثابت False: نسبة مئوية من الأساس |
| Tax 2 Is Value Not Percentage | tax2IsValue | Tax2 كمبلغ ثابت | True: مبلغ ثابت False: نسبة مئوية من الأساس |
| Tax 3 Is Value Not Percentage | tax3IsValue | Tax3 كمبلغ ثابت | True: مبلغ ثابت False: نسبة مئوية من الأساس |
| Tax 4 Is Value Not Percentage | tax4IsValue | Tax4 كمبلغ ثابت | True: مبلغ ثابت False: نسبة مئوية من الأساس |
حقول تطبيق قيمة الضريبة
| اسم الحقل | حقل قاعدة البيانات | الوصف | التأثير |
|---|---|---|---|
| Tax 1 Value Is For Total Not Per Piece | tax1ValueIsForTotal | تطبيق قيمة Tax1 | True: مبلغ إجمالي ثابت False: مضروب في الكمية |
| Tax 2 Value Is For Total Not Per Piece | tax2ValueIsForTotal | تطبيق قيمة Tax2 | True: مبلغ إجمالي ثابت False: مضروب في الكمية |
| Tax 3 Value Is For Total Not Per Piece | tax3ValueIsForTotal | تطبيق قيمة Tax3 | True: مبلغ إجمالي ثابت False: مضروب في الكمية |
| Tax 4 Value Is For Total Not Per Piece | tax4ValueIsForTotal | تطبيق قيمة Tax4 | True: مبلغ إجمالي ثابت False: مضروب في الكمية |
حقول تضمين السعر
| اسم الحقل | حقل قاعدة البيانات | الوصف | تأثير الحساب |
|---|---|---|---|
| Price Includes Tax 1 | priceIncludesTax | Tax1 ضمن السعر المعروض | True: تُستخرج الضريبة من السعر False: تُضاف الضريبة إلى السعر |
| Price Includes Tax 2 | priceIncludesTax2 | Tax2 ضمن السعر المعروض | True: تُستخرج الضريبة من السعر False: تُضاف الضريبة إلى السعر |
| Price Includes Tax 3 | priceIncludesTax3 | Tax3 ضمن السعر المعروض | True: تُستخرج الضريبة من السعر False: تُضاف الضريبة إلى السعر |
| Price Includes Tax 4 | priceIncludesTax4 | Tax4 ضمن السعر المعروض | True: تُستخرج الضريبة من السعر False: تُضاف الضريبة إلى السعر |
حقول تضمين الإجمالي
| اسم الحقل | حقل قاعدة البيانات | الوصف | تأثير إجمالي الفاتورة |
|---|---|---|---|
| Tax 1 Not Included In Total | tax1NotIncludedInTotal | استبعاد Tax1 من الإجمالي | True: لا تُضاف إلى إجمالي الفاتورة False: تُضاف إلى إجمالي الفاتورة |
| Tax 2 Not Included In Total | tax2NotIncludedInTotal | استبعاد Tax2 من الإجمالي | True: لا تُضاف إلى إجمالي الفاتورة False: تُضاف إلى إجمالي الفاتورة |
| Tax 3 Not Included In Total | tax3NotIncludedInTotal | استبعاد Tax3 من الإجمالي | True: لا تُضاف إلى إجمالي الفاتورة False: تُضاف إلى إجمالي الفاتورة |
| Tax 4 Not Included In Total | tax4NotIncludedInTotal | استبعاد Tax4 من الإجمالي | True: لا تُضاف إلى إجمالي الفاتورة False: تُضاف إلى إجمالي الفاتورة |
الضريبة كإضافة أو خصم
إضافة الضريبة إلى إجمالي الفاتورة أو طرحها منه يتوقف على الخيار ضريبة N خصم:
عندما تُضاف الضريبة إلى الإجمالي (ضريبة قياسية)
- الإعداد: ضريبة N خصم غير مفعّل
- الحساب: الإجمالي الجديد = الوعاء + مبلغ الضريبة
- حالة الاستخدام: ضريبة القيمة المضافة (VAT)، ضريبة المبيعات (GST)
- مثال:
Line Total: $100 Tax1 (15%): $15 Final Total: $100 + $15 = $115
عندما تخفض الضريبة الإجمالي (ضريبة خصم)
- الإعداد: ضريبة N خصم مفعّل
- الحساب: الإجمالي الجديد = الوعاء − مبلغ الضريبة
- حالة الاستخدام: ضريبة الاستقطاع (Withholding Tax)، الخصومات، الحسومات
- مثال:
Line Total: $100 Tax3 (5% withholding): $5 Final Total: $100 - $5 = $95
طرق حساب الضرائب
الضرائب النسبية
| الإعداد | مبلغ الضريبة | السطر بعد الضريبة |
|---|---|---|
| تُضاف إلى السعر (السعر يشمل الضريبة N وضريبة N خصم غير مفعّلين) | الوعاء × النسبة ÷ 100 | الوعاء + الضريبة |
| مدرجة في السعر (السعر يشمل الضريبة N مفعّل) | الوعاء − الوعاء × 100 ÷ (100 + النسبة) | الوعاء (السعر يحمل الضريبة أصلًا) |
| خصم (ضريبة N خصم مفعّل) | الوعاء × النسبة ÷ 100 | الوعاء − الضريبة |
الضرائب بقيمة ثابتة
عند تفعيل ضريبة N قيمة و ليست نسبة يكون المعدل مبلغًا لا نسبة:
| الإعداد | مبلغ الضريبة |
|---|---|
| قيمة ضريبة N للإجمالي و ليس لكل وحدة غير مفعّل | المعدل × الكمية |
| قيمة ضريبة N للإجمالي و ليس لكل وحدة مفعّل | المعدل، مرة واحدة للسطر كله |
إعداد التأثيرات المتقدمة
إعدادات تأثير الخصومات و الضرائب
إذا لم يناسبك التسلسل الثابت، أنشئ سجل إعدادات تأثير الخصومات و الضرائب (الأساسيات ← الملفات) واختره في حقل إعدادات تأثير الخصومات و الضرائب ضمن إعدادات الضريبة. عندها يتحكم هذا السجل في التسلسل بالكامل:
إعداد ترتيب التأثيرات
| اسم الحقل | حقل قاعدة البيانات | الوصف |
|---|---|---|
| Effects Order | effectsOrder | قائمة تحدد تسلسل التأثيرات |
| Effect 1 Type | effect1Type | نوع التأثير الأول (Tax1-4, Discount1-8, HeaderDiscount) |
| Effect 1 Basis Lines | effect1BasisLines | قواعد الحساب للتأثير 1 |
| Effect 2 Type | effect2Type | نوع التأثير الثاني |
| Effect 2 Basis Lines | effect2BasisLines | قواعد الحساب للتأثير 2 |
| ... | ... | ... |
| Effect 13 Type | effect13Type | نوع التأثير الثالث عشر |
| Effect 13 Basis Lines | effect13BasisLines | قواعد الحساب للتأثير 13 |
إعداد سطر أساس التأثير
يحتوي كل سطر أساس تأثير على:
| اسم الحقل | الوصف | التأثير |
|---|---|---|
| Source Type | القيمة المستخدمة (MainPrice, CurrentTotal, Discount1-8, Tax1-4, إلخ) | يحدد القيمة الأساسية |
| Source Value | الجانب المحدد من المصدر (Value, AfterValue, Percentage) | يحدد القيمة الدقيقة للاستخراج |
| Source Operation | العملية الرياضية (Add, Subtract, Multiply, Divide, CalcPercentage, CalcInversePercentage) | كيفية تطبيق القيمة |
العمليات الحسابية المخصصة
يدعم النظام هذه العمليات لحسابات التأثيرات المخصصة:
| العملية | الصيغة | حالة الاستخدام |
|---|---|---|
| Add | total + value | الجمع القياسي |
| Subtract | total - value | الطرح القياسي |
| Multiply | total × value | حسابات القياس |
| Divide | total ÷ value | عمليات القسمة |
| CalcPercentage | (total × value) ÷ 100 | حسابات النسبة المئوية |
| CalcInversePercentage | total - (total ÷ ((100 + value) ÷ 100)) | استخراج الضريبة الشاملة |
خيارات الإعداد الخاصة
معالجة الأصناف المجانية
وضع العلامة في مربع صنف مجاني على سطر المستند يفعل شيئًا أدق من «جعل السطر مجانيًا». فـسعر الوحدة يبقى كما كُتب تمامًا، لم يُمَس، وظاهرًا لمن يقرأ المستند. أما ما يُصفَّر فهو كل ما يلي سعر الوحدة: السعر الكلي للسطر، وكل صافي من خصم 1 حتى خصم 8. ثم لا يُضاف السطر بعد ذلك أبدًا إلى الإجمالي في المستند.
ولأن سعر الوحدة يبقى بينما تخرج القيمة من الإجمالي، فإن هذا المربع هو كذلك الطريق العملي لوضع صنف اختياري أمام العميل في عرض السعر — سطر يقرأ سعره ولا يشمله إجمالي العرض. وهذه نتيجةٌ لطريقة تسعير الصنف الممنوح لا خاصيةٌ قائمة بذاتها: فالسطر يظل معناه مجاني، ويظل يتصرف كصنف ممنوح في كل موضع آخر من النظام.
| اسم الحقل | حقل قاعدة البيانات | الوصف | التأثير |
|---|---|---|---|
| No Taxes For Free Item | noTaxesForFreeItem | تعطيل الضرائب على الأصناف المجانية | تصبح جميع الضرائب صفراً للسطور المحددة كمجانية |
الصافي على السطر المجاني ليس صفرًا تلقائيًا. فالخصومات تُصفَّر، أما نسب الضرائب فلا — إذ يظل السطر المجاني يُسهم بضريبته في صافي المستند وإن لم يُسهم بشيء في الإجمالي. فعّل عدم احتساب ضريبة للصنف المجاني إن كان المقصود ألا تكلّف الهدية شيئًا البتة؛ وتركه مطفأً هو السبب المعتاد في أن يخرج الإجمالي أعلى قليلًا مما يستطيع أحد تفسيره.
الالتزام بقوائم الأسعار يرفض السطور المجانية المصنوعة يدويًا
حين يكون الالتزام بقوائم الأسعار مفعَّلًا في توجيه المستند، يُرفض عند الحفظ أي سطر مجاني لم ينتجه عرض ترويجي، برسالة «الصنف المجاني غير صحيح {0}». فالنظام يفترض أن السطر المجاني جاء من عرض، فيقارنه بمحرك العروض، ولا يجد ما كان ليولّد هذا السطر.
والمفتاح الذي يسمح بمروره هو تجاهل الالتزام بقوائم الأسعار مع الصنف المجاني في صفحة التسعير في التوجيه. ومع إطفاء الالتزام بقوائم الأسعار لا يعمل الفحص من أصله — ولهذا يُحفَظ السطر المجاني نفسه بلا اعتراض تحت توجيه ويُرفض تحت آخر.
وثمة إعدادان آخران في التوجيه يخصّان هذا الباب. أولهما عدم حساب الأسعار و الخصومات والأصناف المجانية إذا وجد سعر الوحدة، في صفحة التسعير نفسها، ويمنع محرك التسعير من الكتابة فوق سعر وحدة أدخله أحدهم بيده. وثانيهما أنه إذا انتهى السطر المجاني إلى سعر وحدة صفري رغم ذلك، فإن مسار الكيان EARecalcFreeLinesUnitPriceIfZero يعيد تشغيل التسعير على تلك السطور وحدها ويعيد إليها سعرًا.
السطور المجانية قد تطبع سعرًا صفريًا
لا يطبع السطر المجاني سعر وحدته صحيحًا إلا إذا كان النموذج يقرأ سعر الوحدة مباشرةً. فبعض نماذج الطباعة تستخرج سعر الوحدة المطبوع بقسمة صافي السطر بعد الخصم على الكمية — ولمّا كان ذلك الصافي صفرًا على السطر المجاني، يطبع النموذج صفرًا بينما الشاشة تعرض السعر الحقيقي بوضوح. ونموذج عرض السعر المرفق بالنظام (SYSF-SIV004) يقرأ سعر الوحدة مباشرةً فلا مشكلة فيه؛ أما نموذج أمر الشراء المرفق (SYSF-PIV004) فيجري القسمة.
استخدام القيمة الإضافية
تتحكم هذه الحقول في إضافة نسب الضريبة كقيم إضافية لإجماليات السطور:
| اسم الحقل | حقل قاعدة البيانات | عند الإيقاف (الافتراضي) |
|---|---|---|
| Do Not Use Tax1 Percentage As Additional Value1 | doNotUseTax1PercentageAsAdditionalValue1 | تُضاف نسبة Tax1 إلى إجمالي السطر |
| Do Not Use Tax2 Percentage As Additional Value2 | doNotUseTax2PercentageAsAdditionalValue2 | تُضاف نسبة Tax2 إلى إجمالي السطر |
| Do Not Use Tax3 Percentage As Additional Value3 | doNotUseTax3PercentageAsAdditionalValue3 | تُضاف نسبة Tax3 إلى إجمالي السطر |
| Do Not Use Tax4 Percentage As Additional Value4 | doNotUseTax4PercentageAsAdditionalValue4 | تُضاف نسبة Tax4 إلى إجمالي السطر |
إعفاءات الضريبة لحسابات الموازنة
يمكن إعداد إعفاءات ضريبية للعملاء والموردين في حسابات موازنتهم:
| اسم الحقل | الوصف | التأثير |
|---|---|---|
| Tax 1 Exempt | subsidiaryAccounts.tax1Exempt | عند التفعيل، تصبح Tax1 صفراً لهذه الجهة |
| Tax 2 Exempt | subsidiaryAccounts.tax2Exempt | عند التفعيل، تصبح Tax2 صفراً لهذه الجهة |
| Tax 3 Exempt | subsidiaryAccounts.tax3Exempt | عند التفعيل، تصبح Tax3 صفراً لهذه الجهة |
| Tax 4 Exempt | subsidiaryAccounts.tax4Exempt | عند التفعيل، تصبح Tax4 صفراً لهذه الجهة |
الخصم الإضافي على مستوى المستند (مصلحة الضرائب المصرية)
عند إرسال الفواتير إلى مصلحة الضرائب المصرية (ETA)، تحتاج أحياناً إلى منح العميل خصماً نقدياً / فورياً على إجمالي الفاتورة بعد الضريبة — فهو يقلل المبلغ الذي يدفعه العميل دون التأثير على ضريبة القيمة المضافة المحسوبة بالفعل. وتوفر البوابة حقلاً مخصصاً باسم الخصم الإضافي في رأس الفاتورة لهذا الغرض تحديداً، منفصلاً عن خصومات السطور العادية.
يتحكم في ذلك حقل في إعدادات مصلحة الضرائب (Tax Payer Configuration) باسم موقع الخصم الإضافي على مستوى المستند: تحدد فيه أي خانة خصم من خصومات السطر (من الخصم 1 إلى الخصم 8) تحمل هذا الخصم الإضافي. عندها تُرسَل قيمة تلك الخانة في حقل الخصم الإضافي بالبوابة بدلاً من ضمها إلى إجمالي الخصم العادي.
مثال: صنف بسعر 10,000، مع خصم 1 = 300 وخصم 2 = 200 يُطبَّقان قبل الضريبة، وضريبة قيمة مضافة 14%، بالإضافة إلى خصم نقدي قدره 830 يُطبَّق بعد الضريبة ومُحدَّد كخصم إضافي:
| حقل البوابة | القيمة |
|---|---|
| إجمالي المبيعات | 10,000 |
| إجمالي الخصم | 500 (خصم 1 + 2، قبل الضريبة) |
| الصافي | 9,500 |
| إجمالي الضريبة (14% من 9,500) | 1,330 |
| الخصم الإضافي | 830 (بعد الضريبة) |
| الإجمالي | 10,000 |
تتحقق البوابة من الفاتورة بالمعادلة الصافي + الضريبة − الخصم الإضافي = 9,500 + 1,330 − 830 = 10,000، وتبقى ضريبة القيمة المضافة 14% من الصافي بالضبط.
WARNING
يجب أن تكون خانة الخصم المختارة كموقع للخصم الإضافي مُطبَّقة بعد كل الضرائب في ترتيب التأثيرات. فالخصم الإضافي بطبيعته خصم بعد الضريبة — وإذا كانت الخانة المختارة تُحسَب قبل الضريبة، فلن يتوافق الصافي المُبلَّغ مع الضريبة، ويوقف النظام الإرسال برسالة خطأ واضحة تذكر اسم الخصم. وللحل، انقل الخانة إلى ما بعد الضرائب.
INFO
ينطبق هذا على فواتير مصلحة الضرائب المصرية فقط (الفواتير الضريبية، الإشعارات الدائنة والمدينة، والنسخ التصديرية منها). أما ZATCA وجوفوترة (الأردن) والإمارات والإيصال الإلكتروني المصري فلا تتأثر.
سيناريوهات وأمثلة شائعة
السيناريو 1: ضريبة القيمة المضافة القياسية مع خصم تجاري
الإعداد:
- وعاء خصم 1: السعر الإساسي (Total Price)
- وقت حساب ضريبة 1: تخفيض الفاتورة (Header Discount)
- السعر يشمل الضريبة 1: غير مفعّل
- ضريبة 1 خصم: غير مفعّل
الحساب:
Line Total: $1,000
Discount 1 (10%): $100
After Discount: $900
VAT (15%): $135
Final Total: $900 + $135 = $1,035السيناريو 2: تسعير شامل للضريبة مع خصم
الإعداد:
- السعر يشمل الضريبة 1: مفعّل
- وعاء خصم 1: السعر الإساسي (Total Price)
- خصم ضريبة 1 في مجموعة خصم 1: مفعّل
الحساب:
Quoted Price (includes 15% VAT): $1,150
VAT Component: $150
Net Price: $1,000
Discount Base (net): $1,000
Discount (10%): $100
Final Net: $900
Final VAT: $135
Final Total: $1,035السيناريو 3: إعداد ضريبة الاستقطاع
الإعداد:
- ضريبة 3 خصم: مفعّل (يجعلها خصماً)
- وقت حساب ضريبة 3: تخفيض الفاتورة (Header Discount)
- ضريبة 3 غير مضافة الي الإجمالي: غير مفعّل
الحساب:
Line Total: $1,000
VAT (15%): $150
Subtotal: $1,150
Withholding (5%): $50 (deducted)
Final Total: $1,150 - $50 = $1,100السيناريو 4: ترتيب تأثيرات معقد
الإعداد باستخدام إعدادات تأثير الخصومات و الضرائب:
Effect 1: Discount1 (10% trade discount)
Effect 2: Discount2 (5% volume discount)
Effect 3: Tax1 (15% VAT)
Effect 4: HeaderDiscount ($25 promotional)
Effect 5: Tax3 (3% withholding)الحساب:
Line Total: $1,000
After Discount1: $900
After Discount2: $855
After Tax1: $855 + $128.25 = $983.25
After Header Discount: $958.25
After Withholding: $958.25 - $28.75 = $929.50