Skip to content
English

دليل نظام الخصومات وحساب الضرائب على الفواتير - دليل شامل

TIP

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

نظرة عامة

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

الميزات الرئيسية

  • دعم 8 خصومات تسلسلية على مستوى السطر بالإضافة إلى خصم واحد على مستوى الرأس
  • 4 أنواع ضرائب قابلة للإعداد مع نقاط تطبيق مرنة
  • تفاعلات معقدة بين الخصومات والضرائب وترتيب مخصص
  • دعم متعدد العملات ومتعدد المعدلات
  • خيارات إعداد شاملة لسيناريوهات الأعمال المختلفة
  • يمكن إعداد الضريبة كإضافة أو خصم

فهم تدفق الحساب

تسلسل الحساب الأساسي

عند معالجة فاتورة، يتبع Nama ERP تسلسل الحساب العام التالي:

  1. حساب إجمالي السطر: الكمية × سعر الوحدة = إجمالي السطر
  2. تطبيق خصومات السطر: تطبيق Discount1 حتى Discount8 بالتسلسل
  3. تطبيق خصم الرأس: تطبيق خصم واحد على الفاتورة بالكامل
  4. حسابات الضرائب: تطبيق Tax1 حتى Tax4 عند النقاط المُعدَّة
  5. الإجماليات النهائية: حساب صافي المبالغ والأرصدة المتبقية

ملاحظة مهمة

يمكن تخصيص التسلسل الدقيق من خلال حقل effectsConfig في TaxConfiguration، مما يتيح ترتيبات مختلفة لتطبيق الخصومات والضرائب بناءً على متطلبات الأعمال.

نظام حل إعدادات الضرائب

فهم طريقة fetchTaxConfiguration

تحدد طريقة fetchTaxConfiguration في TaxPlan.java إعدادات الضريبة المستخدمة من خلال عملية حل هرمية:

java
public static TaxConfiguration fetchTaxConfiguration(
    TaxPlan header,      // Header tax plan (from document)
    TaxPlan line,        // Line tax plan (from item/line)
    LegalEntity legalEntity, 
    DateDF valueDate,
    EntityTypeDF entityType)

التسلسل الهرمي للحل

  1. أولوية خطة الضريبة في الرأس

    • يتحقق أولاً من وجود خطة ضريبة في الرأس
    • إذا وُجدت، يتحقق من حقل defaultTaxConfig:
      • GlobalConfig: يستخدم الإعداد العام على مستوى النظام
      • TaxPlanHeader: يستخدم الإعداد من رأس خطة الضريبة
      • TaxPlanLine: يستخدم الإعداد من سطور ضريبة الشركة
  2. الرجوع إلى خطة ضريبة السطر

    • إذا لم توفر خطة الرأس إعداداً، يتحقق من خطة ضريبة السطر
    • يتبع نفس منطق حل defaultTaxConfig
  3. الإعداد الافتراضي العام

    • إذا لم توفر أي خطة إعداداً، يستخدم إعداد النظام العام

حقول إعداد خطة الضريبة

حقول خطة الضريبة الأساسية

اسم الحقلحقل قاعدة البياناتالوصفالتأثير
Item PlanitemPlanيشير إلى تطبيق الخطة على الأصنافعند التفعيل، تُستخدم الخطة لضرائب مستوى الصنف (Tax1, Tax2)
No Item Taxes With This PolicynoItemTaxesWithThisPolicyتعطيل Tax1 وTax2عند التفعيل، تصبح ضرائب الأصناف صفراً بغض النظر عن المعدلات
No Invoice Taxes With This PolicynoInvoiceTaxesWithThisPolicyتعطيل Tax3 وTax4عند التفعيل، تصبح ضرائب الفاتورة صفراً بغض النظر عن المعدلات
Prioritize This Policy Over Policy Specified In Customer and SupplierpriorityPolicyOverCusOrSupالتحكم في أولوية السياسةعند التفعيل، تتجاوز هذه الخطة إعدادات ضريبة العميل/المورد
Default Tax ConfigurationdefaultTaxConfigمصدر إعداد الضريبةالخيارات: GlobalConfig, TaxPlanHeader, TaxPlanLine
Tax ConfigurationtaxConfigurationإعدادات سلوك الضريبة المضمنةتحتوي على جميع قواعد حساب الضريبة
Legal Entity TaxeslegalEntityTaxesمعدلات الضريبة حسب الشركة والتاريخقائمة بمعدلات الضريبة الخاصة بكل شركة
Subsidiary AccountssubsidiaryAccountsإعدادات على مستوى الحسابتحتوي على علامات الإعفاء الضريبي

حقول ضريبة الشركة

يحتوي كل سجل LegalEntityTax على:

اسم الحقلحقل قاعدة البياناتالوصف
Legal EntitylegalEntityشركة محددة أو null للجميع
Effective FromeffectiveFromتاريخ بدء سريان معدلات الضريبة
Effective ToeffectiveToتاريخ انتهاء سريان معدلات الضريبة
Tax 1tax1معدل Tax1 (نسبة مئوية أو قيمة)
Tax 2tax2معدل Tax2 (نسبة مئوية أو قيمة)
Entity TypeentityTypeنوع المستند المحدد
Entity Type ListentityTypeListأنواع مستندات متعددة
Revision IDrevisionIdالتحكم في إصدار المعدلات
Tax ConfigurationtaxConfigurationإعداد تجاوز لهذه الشركة

إعداد نظام الخصومات

أنواع الخصومات

خصومات السطر (Discount 1-8)

  • التطبيق التسلسلي: يُطبَّق كل خصم بعد السابق
  • قاعدة قابلة للإعداد: يمكن لكل خصم تطبيق مبالغ أساسية مختلفة
  • نسبة مئوية أو قيمة: يمكن تحديده كنسبة مئوية أو مبلغ ثابت
  • تحكم فردي: لكل خصم إعداد مستقل

خصم الرأس

  • على مستوى الفاتورة: يُطبَّق على إجمالي الفاتورة بالكامل
  • التوزيع النسبي: يُوزَّع على جميع سطور الفاتورة بشكل نسبي
  • توقيت قابل للإعداد: يمكن تطبيقه في نقاط مختلفة من تسلسل الحساب

حقول إعداد الخصم

الإعداد العام - أنواع تطبيق الخصم

موجود في GlobalConfigInfo.java:

اسم الحقلحقل قاعدة البياناتالوصفالقيم المتاحة
Discount 1 Apply Typediscount1ApplyTypeالمبلغ الأساسي لـ Discount 1TotalPrice, AfterDiscount1-8, AfterHeaderDiscount, Custom, Tax/Discount Values
Discount 2 Apply Typediscount2ApplyTypeالمبلغ الأساسي لـ Discount 2كما أعلاه
Discount 3 Apply Typediscount3ApplyTypeالمبلغ الأساسي لـ Discount 3كما أعلاه
Discount 4 Apply Typediscount4ApplyTypeالمبلغ الأساسي لـ Discount 4كما أعلاه
Discount 5 Apply Typediscount5ApplyTypeالمبلغ الأساسي لـ Discount 5كما أعلاه
Discount 6 Apply Typediscount6ApplyTypeالمبلغ الأساسي لـ Discount 6كما أعلاه
Discount 7 Apply Typediscount7ApplyTypeالمبلغ الأساسي لـ Discount 7كما أعلاه
Discount 8 Apply Typediscount8ApplyTypeالمبلغ الأساسي لـ Discount 8كما أعلاه
Header Discount Apply TypeheaderDiscountApplyTypeالمبلغ الأساسي لخصم الرأسكما أعلاه

حقول طريقة حساب الخصم

اسم الحقلحقل قاعدة البياناتالوصفالتأثير
Calculate discount 1 percentage from valuecalcDisc1PercentFromValueاتجاه الحساب لـ Discount 1True: حساب النسبة من القيمة الثابتة
False: حساب القيمة من النسبة
Calculate discount 2 percentage from valuecalcDisc2PercentFromValueاتجاه الحساب لـ Discount 2كما أعلاه
Calculate discount 3 percentage from valuecalcDisc3PercentFromValueاتجاه الحساب لـ Discount 3كما أعلاه
Calculate discount 4 percentage from valuecalcDisc4PercentFromValueاتجاه الحساب لـ Discount 4كما أعلاه
Calculate discount 5 percentage from valuecalcDisc5PercentFromValueاتجاه الحساب لـ Discount 5كما أعلاه
Calculate discount 6 percentage from valuecalcDisc6PercentFromValueاتجاه الحساب لـ Discount 6كما أعلاه
Calculate discount 7 percentage from valuecalcDisc7PercentFromValueاتجاه الحساب لـ Discount 7كما أعلاه
Calculate discount 8 percentage from valuecalcDisc8PercentFromValueاتجاه الحساب لـ Discount 8كما أعلاه

إعداد تأثير الضريبة على الخصم

لكل خصم (1-8) إعداد TaxEffectOnDiscount بهذه الحقول:

اسم الحقلحقل قاعدة البياناتالوصفالتأثير
Consider Tax 1discount[N].considerTax1خصم Tax1 من قاعدة الخصمعند التفعيل، تُخصم Tax1 قبل تطبيق الخصم
Consider Tax 2discount[N].considerTax2خصم Tax2 من قاعدة الخصمعند التفعيل، تُخصم Tax2 قبل تطبيق الخصم
Consider Tax 3discount[N].considerTax3خصم Tax3 من قاعدة الخصمعند التفعيل، تُخصم Tax3 قبل تطبيق الخصم
Consider Tax 4discount[N].considerTax4خصم Tax4 من قاعدة الخصمعند التفعيل، تُخصم Tax4 قبل تطبيق الخصم

كيفية حساب الخصومات

الخصومات النسبية

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)

إعداد نظام الضرائب

حقول إعداد الضريبة في كائن TaxConfiguration

يحتوي كائن TaxConfiguration على جميع إعدادات سلوك الضريبة:

حقول موقع الضريبة

اسم الحقلحقل قاعدة البياناتالوصفالتأثير
Tax 1 Locationtax1Locationوقت حساب Tax1يتحكم في موضع التسلسل
Tax 2 Locationtax2Locationوقت حساب Tax2يتحكم في موضع التسلسل
Tax 3 Locationtax3Locationوقت حساب Tax3يتحكم في موضع التسلسل
Tax 4 Locationtax4Locationوقت حساب Tax4يتحكم في موضع التسلسل

قيم الموقع المتاحة:

  • MainPrice: تُطبَّق على إجمالي السطر الأصلي
  • Discount1 حتى Discount8: تُطبَّق بعد خصم محدد
  • HeaderDiscount: تُطبَّق بعد خصم الرأس

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

اسم الحقلحقل قاعدة البياناتالوصفالتأثير
Tax 1 Apply Typetax1ApplyTypeالأساس لحساب Tax1يحدد المبلغ الذي تُطبَّق عليه Tax1
Tax 2 Apply Typetax2ApplyTypeالأساس لحساب Tax2يحدد المبلغ الذي تُطبَّق عليه Tax2
Tax 3 Apply Typetax3ApplyTypeالأساس لحساب Tax3يحدد المبلغ الذي تُطبَّق عليه Tax3
Tax 4 Apply Typetax4ApplyTypeالأساس لحساب Tax4يحدد المبلغ الذي تُطبَّق عليه Tax4

حقول التحكم في سلوك الضريبة

اسم الحقلحقل قاعدة البياناتالوصفالتأثير على الحساب
Tax 1 Is Discounttax1IsDiscountTax1 تخفض الإجماليTrue: يُطرح المبلغ
False: يُضاف المبلغ
Tax 2 Is Discounttax2IsDiscountTax2 تخفض الإجماليTrue: يُطرح المبلغ
False: يُضاف المبلغ
Tax 3 Is Discounttax3IsDiscountTax3 تخفض الإجماليTrue: يُطرح المبلغ
False: يُضاف المبلغ
Tax 4 Is Discounttax4IsDiscountTax4 تخفض الإجماليTrue: يُطرح المبلغ
False: يُضاف المبلغ

حقول طريقة حساب الضريبة

اسم الحقلحقل قاعدة البياناتالوصفصيغة الحساب
Tax 1 Is Value Not Percentagetax1IsValueTax1 كمبلغ ثابتTrue: مبلغ ثابت
False: نسبة مئوية من الأساس
Tax 2 Is Value Not Percentagetax2IsValueTax2 كمبلغ ثابتTrue: مبلغ ثابت
False: نسبة مئوية من الأساس
Tax 3 Is Value Not Percentagetax3IsValueTax3 كمبلغ ثابتTrue: مبلغ ثابت
False: نسبة مئوية من الأساس
Tax 4 Is Value Not Percentagetax4IsValueTax4 كمبلغ ثابتTrue: مبلغ ثابت
False: نسبة مئوية من الأساس

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

اسم الحقلحقل قاعدة البياناتالوصفالتأثير
Tax 1 Value Is For Total Not Per Piecetax1ValueIsForTotalتطبيق قيمة Tax1True: مبلغ إجمالي ثابت
False: مضروب في الكمية
Tax 2 Value Is For Total Not Per Piecetax2ValueIsForTotalتطبيق قيمة Tax2True: مبلغ إجمالي ثابت
False: مضروب في الكمية
Tax 3 Value Is For Total Not Per Piecetax3ValueIsForTotalتطبيق قيمة Tax3True: مبلغ إجمالي ثابت
False: مضروب في الكمية
Tax 4 Value Is For Total Not Per Piecetax4ValueIsForTotalتطبيق قيمة Tax4True: مبلغ إجمالي ثابت
False: مضروب في الكمية

حقول تضمين السعر

اسم الحقلحقل قاعدة البياناتالوصفتأثير الحساب
Price Includes Tax 1priceIncludesTaxTax1 ضمن السعر المعروضTrue: تُستخرج الضريبة من السعر
False: تُضاف الضريبة إلى السعر
Price Includes Tax 2priceIncludesTax2Tax2 ضمن السعر المعروضTrue: تُستخرج الضريبة من السعر
False: تُضاف الضريبة إلى السعر
Price Includes Tax 3priceIncludesTax3Tax3 ضمن السعر المعروضTrue: تُستخرج الضريبة من السعر
False: تُضاف الضريبة إلى السعر
Price Includes Tax 4priceIncludesTax4Tax4 ضمن السعر المعروضTrue: تُستخرج الضريبة من السعر
False: تُضاف الضريبة إلى السعر

حقول تضمين الإجمالي

اسم الحقلحقل قاعدة البياناتالوصفتأثير إجمالي الفاتورة
Tax 1 Not Included In Totaltax1NotIncludedInTotalاستبعاد Tax1 من الإجماليTrue: لا تُضاف إلى إجمالي الفاتورة
False: تُضاف إلى إجمالي الفاتورة
Tax 2 Not Included In Totaltax2NotIncludedInTotalاستبعاد Tax2 من الإجماليTrue: لا تُضاف إلى إجمالي الفاتورة
False: تُضاف إلى إجمالي الفاتورة
Tax 3 Not Included In Totaltax3NotIncludedInTotalاستبعاد Tax3 من الإجماليTrue: لا تُضاف إلى إجمالي الفاتورة
False: تُضاف إلى إجمالي الفاتورة
Tax 4 Not Included In Totaltax4NotIncludedInTotalاستبعاد Tax4 من الإجماليTrue: لا تُضاف إلى إجمالي الفاتورة
False: تُضاف إلى إجمالي الفاتورة

الضريبة كإضافة أو خصم

يحدد النظام ما إذا كانت الضريبة تُضاف إلى إجمالي الفاتورة أو تُطرح منه بناءً على حقل tax[N]IsDiscount:

عندما تُضاف الضريبة إلى الإجمالي (ضريبة قياسية)

  • إعداد الحقل: tax[N]IsDiscount = false
  • الحساب: New Total = Base Amount + Tax Amount
  • حالة الاستخدام: ضريبة القيمة المضافة (VAT)، ضريبة المبيعات (GST)
  • مثال:
    Line Total: $100
    Tax1 (15%): $15
    Final Total: $100 + $15 = $115

عندما تخفض الضريبة الإجمالي (ضريبة خصم)

  • إعداد الحقل: tax[N]IsDiscount = true
  • الحساب: New Total = Base Amount - Tax Amount
  • حالة الاستخدام: ضريبة الاستقطاع (Withholding Tax)، الخصومات، الحسومات
  • مثال:
    Line Total: $100
    Tax3 (5% withholding): $5
    Final Total: $100 - $5 = $95

طرق حساب الضرائب

الضرائب النسبية

ضريبة خارج السعر (تُضاف إلى السعر):

java
if (!priceIncludesTax && !taxIsDiscount) {
    taxAmount = (baseAmount × taxPercentage) ÷ 100;
    finalAmount = baseAmount + taxAmount;
}

ضريبة ضمن السعر (مدرجة في السعر):

java
if (priceIncludesTax && !taxIsDiscount) {
    taxAmount = baseAmount - (baseAmount × 100) ÷ (100 + taxPercentage);
    finalAmount = baseAmount; // Price already includes tax
}

الضريبة كخصم:

java
if (taxIsDiscount) {
    taxAmount = (baseAmount × taxPercentage) ÷ 100;
    finalAmount = baseAmount - taxAmount;
}

الضرائب بقيمة ثابتة

الحساب بالوحدة:

java
if (taxIsValue && !taxValueIsForTotal) {
    taxAmount = taxRate × quantity;
}

الحساب بالإجمالي:

java
if (taxIsValue && taxValueIsForTotal) {
    taxAmount = taxRate; // Fixed amount regardless of quantity
}

إعداد التأثيرات المتقدمة

كيان TaxDiscountEffectsConfig

يشير حقل effectsConfig في TaxConfiguration إلى كيان TaxDiscountEffectsConfig الذي يوفر تحكماً كاملاً في تسلسل الحساب:

إعداد ترتيب التأثيرات

اسم الحقلحقل قاعدة البياناتالوصف
Effects OrdereffectsOrderقائمة تحدد تسلسل التأثيرات
Effect 1 Typeeffect1Typeنوع التأثير الأول (Tax1-4, Discount1-8, HeaderDiscount)
Effect 1 Basis Lineseffect1BasisLinesقواعد الحساب للتأثير 1
Effect 2 Typeeffect2Typeنوع التأثير الثاني
Effect 2 Basis Lineseffect2BasisLinesقواعد الحساب للتأثير 2
.........
Effect 13 Typeeffect13Typeنوع التأثير الثالث عشر
Effect 13 Basis Lineseffect13BasisLinesقواعد الحساب للتأثير 13

إعداد سطر أساس التأثير

يحتوي كل سطر أساس تأثير على:

اسم الحقلالوصفالتأثير
Source Typeالقيمة المستخدمة (MainPrice, CurrentTotal, Discount1-8, Tax1-4, إلخ)يحدد القيمة الأساسية
Source Valueالجانب المحدد من المصدر (Value, AfterValue, Percentage)يحدد القيمة الدقيقة للاستخراج
Source Operationالعملية الرياضية (Add, Subtract, Multiply, Divide, CalcPercentage, CalcInversePercentage)كيفية تطبيق القيمة

العمليات الحسابية المخصصة

يدعم النظام هذه العمليات لحسابات التأثيرات المخصصة:

العمليةالصيغةحالة الاستخدام
Addtotal + valueالجمع القياسي
Subtracttotal - valueالطرح القياسي
Multiplytotal × valueحسابات القياس
Dividetotal ÷ valueعمليات القسمة
CalcPercentage(total × value) ÷ 100حسابات النسبة المئوية
CalcInversePercentagetotal - (total ÷ ((100 + value) ÷ 100))استخراج الضريبة الشاملة

خيارات الإعداد الخاصة

معالجة الأصناف المجانية

اسم الحقلحقل قاعدة البياناتالوصفالتأثير
No Taxes For Free ItemnoTaxesForFreeItemتعطيل الضرائب على الأصناف المجانيةتصبح جميع الضرائب صفراً للسطور المحددة كمجانية

استخدام القيمة الإضافية

تتحكم هذه الحقول في إضافة نسب الضريبة كقيم إضافية لإجماليات السطور:

اسم الحقلحقل قاعدة البياناتعند الإيقاف (الافتراضي)
Do Not Use Tax1 Percentage As Additional Value1doNotUseTax1PercentageAsAdditionalValue1تُضاف نسبة Tax1 إلى إجمالي السطر
Do Not Use Tax2 Percentage As Additional Value2doNotUseTax2PercentageAsAdditionalValue2تُضاف نسبة Tax2 إلى إجمالي السطر
Do Not Use Tax3 Percentage As Additional Value3doNotUseTax3PercentageAsAdditionalValue3تُضاف نسبة Tax3 إلى إجمالي السطر
Do Not Use Tax4 Percentage As Additional Value4doNotUseTax4PercentageAsAdditionalValue4تُضاف نسبة Tax4 إلى إجمالي السطر

إعفاءات الضريبة لحسابات الموازنة

يمكن إعداد إعفاءات ضريبية للعملاء والموردين في حسابات موازنتهم:

اسم الحقلالوصفالتأثير
Tax 1 ExemptsubsidiaryAccounts.tax1Exemptعند التفعيل، تصبح Tax1 صفراً لهذه الجهة
Tax 2 ExemptsubsidiaryAccounts.tax2Exemptعند التفعيل، تصبح Tax2 صفراً لهذه الجهة
Tax 3 ExemptsubsidiaryAccounts.tax3Exemptعند التفعيل، تصبح Tax3 صفراً لهذه الجهة
Tax 4 ExemptsubsidiaryAccounts.tax4Exemptعند التفعيل، تصبح Tax4 صفراً لهذه الجهة

سيناريوهات وأمثلة شائعة

السيناريو 1: ضريبة القيمة المضافة القياسية مع خصم تجاري

الإعداد:

  • discount1ApplyType: TotalPrice
  • tax1Location: HeaderDiscount
  • priceIncludesTax: false
  • tax1IsDiscount: false

الحساب:

Line Total: $1,000
Discount 1 (10%): $100
After Discount: $900
VAT (15%): $135
Final Total: $900 + $135 = $1,035

السيناريو 2: تسعير شامل للضريبة مع خصم

الإعداد:

  • priceIncludesTax: true
  • discount1ApplyType: TotalPrice
  • discount1.considerTax1: true

الحساب:

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: إعداد ضريبة الاستقطاع

الإعداد:

  • tax3IsDiscount: true (يجعلها خصماً)
  • tax3Location: HeaderDiscount
  • tax3NotIncludedInTotal: false

الحساب:

Line Total: $1,000
VAT (15%): $150
Subtotal: $1,150
Withholding (5%): $50 (deducted)
Final Total: $1,150 - $50 = $1,100

السيناريو 4: ترتيب تأثيرات معقد

الإعداد باستخدام TaxDiscountEffectsConfig:

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

أفضل ممارسات الإعداد

إعداد خطط الضريبة

  1. إنشاء خطط ضريبة أساسية

    • تعيين defaultTaxConfig للتحكم في مصدر الإعداد
    • إعداد taxConfiguration بالإعدادات القياسية
    • تعريف legalEntityTaxes لجهات وفترات زمنية مختلفة
  2. إعداد سلوك الضريبة

    • تعيين tax[N]IsDiscount بشكل صحيح للإضافات والخصومات
    • إعداد priceIncludesTax[N] بناءً على استراتيجية التسعير
    • تعيين tax[N]NotIncludedInTotal للضرائب المعروضة فقط
  3. تعيين نقاط التطبيق

    • إعداد tax[N]Location للتسلسل الصحيح
    • تعيين tax[N]ApplyType لحساب الأساس الصحيح
    • استخدام effectsConfig للتسلسلات المعقدة

إرشادات إعداد الخصم

  1. الخصومات التسلسلية

    • إعداد discount[N]ApplyType للخصومات المتدرجة
    • استخدام AfterDiscount[N-1]Price للتطبيق التسلسلي
    • مراعاة تأثيرات الضريبة مع discount[N].considerTax[N]
  2. قيمة ثابتة مقابل نسبة مئوية

    • تعيين calcDisc[N]PercentFromValue بناءً على قواعد العمل
    • استخدام القيمة الثابتة للخصومات المحددة
    • استخدام النسبة المئوية للخصومات النسبية

التحقق من صحة إعداد الضريبة

قبل نشر إعدادات الضريبة:

  1. التحقق من اتجاه الحساب

    • التحقق من tax[N]IsDiscount للإضافة/الطرح الصحيح
    • التحقق من تطابق priceIncludesTax[N] مع استراتيجية التسعير
  2. اختبار نطاقات التواريخ

    • التأكد من أن effectiveFrom وeffectiveTo يغطيان الفترات المطلوبة
    • اختبار انتقالات المعدلات عند حدود التواريخ
  3. التحقق من التسلسلات

    • تأكيد أن effectsOrder ينتج النتائج المتوقعة
    • الاختبار ببيانات نموذجية تغطي جميع السيناريوهات

دليل استكشاف الأخطاء وإصلاحها

مشكلات الإعداد الشائعة

المشكلة: إضافة الضريبة بدلاً من خصمها

تحقق من هذه الحقول:

  • tax[N]IsDiscount: يجب أن يكون true للخصومات
  • tax[N]Location: التحقق من نقطة الحساب
  • effectsConfig: التحقق مما إذا كان التسلسل المخصص يتجاوز الإعدادات

المشكلة: قاعدة خصم غير صحيحة

تحقق من هذه الحقول:

  • discount[N]ApplyType: التحقق من اختيار القيمة الأساسية
  • discount[N].considerTax[N]: التحقق من مراعاة الضريبة
  • effectsConfig: مراجعة قواعد الحساب المخصصة

المشكلة: الضريبة لا تظهر في الإجمالي

تحقق من هذه الحقول:

  • tax[N]NotIncludedInTotal: يجب أن يكون false للتضمين
  • noItemTaxesWithThisPolicy: يجب أن يكون false لـ Tax1/Tax2
  • noInvoiceTaxesWithThisPolicy: يجب أن يكون false لـ Tax3/Tax4
  • tax[N]Exempt للعميل/المورد: التحقق من علامات الإعفاء

المشكلة: تطبيق معدل ضريبة خاطئ

تحقق من ترتيب الحل:

  1. خطة ضريبة الرأس مع الشركة والتاريخ المطابقين
  2. خطة ضريبة السطر مع المعايير المطابقة
  3. الإعداد الافتراضي العام
  4. التحقق من إعداد priorityPolicyOverCusOrSup

قواعد التحقق

يُطبِّق النظام قواعد التحقق التالية:

  1. اتساق خطة الضريبة

    • لا يمكن أن يكون itemPlan وnoItemTaxesWithThisPolicy كلاهما true
    • يجب أن تكون تركيبات الإعداد صالحة رياضياً
  2. سلامة الحساب

    • لا يمكن أن تجعل مبالغ الخصم إجماليات السطور سالبة
    • يجب أن تكون نسب الضريبة ضمن النطاقات الصالحة
    • يجب أن يحافظ التقريب على الدقة
  3. صحة نطاق التواريخ

    • لا يُسمح بنطاقات تواريخ متداخلة لنفس الجهة
    • يجب أن تكون تواريخ السريان منطقية ومتسقة

اعتبارات الأداء

إرشادات التحسين

  1. تقليل تعقيد إعداد التأثيرات

    • استخدم مواضع التأثيرات الضرورية فقط
    • تجنب الحسابات المتكررة
    • خزِّن الإعدادات المستخدمة بتكرار في الذاكرة المؤقتة
  2. تصميم خطة ضريبة فعّالة

    • قلِّل سجلات ضريبة الشركات
    • استخدم نطاقات التواريخ بفعالية
    • استفد من الإعدادات الافتراضية
  3. تخزين الإعداد مؤقتاً

    • تُخزَّن إعدادات الضريبة مؤقتاً لكل فاتورة
    • تجنب التغييرات غير الضرورية في خطة الضريبة
    • استخدم إعدادات متسقة عبر المستندات المماثلة

مهم

اختبر دائماً تغييرات الإعداد في بيئة التطوير قبل تطبيقها على أنظمة الإنتاج. يمكن أن تُفضي التفاعلات المعقدة بين الخصومات والضرائب إلى نتائج غير متوقعة، خاصةً عند استخدام إعدادات التأثيرات المخصصة.

المقارنة مع أنظمة ERP الأخرى

Nama ERP مقارنةً بأنظمة ERP الرئيسية الأخرى

يساعد فهم مقارنة نظام الخصومات والضرائب في Nama ERP بأنظمة ERP الرئيسية الأخرى على تقدير قدراته الفريدة وفلسفته التصميمية.

Nama ERP مقارنةً بـ Odoo

الميزةNama ERPOdoo
عدد خصومات السطر8 خصومات تسلسليةعادةً 1-2 خصومات
ترتيب تطبيق الخصمقابل للإعداد بالكامل عبر effects configتسلسل ثابت
أنواع الضرائب4 ضرائب قابلة للإعداد (إضافات أو خصومات)سطور ضريبة غير محدودة لكن عادةً إضافات فقط
تفاعل الضريبة-الخصمقابل للإعداد لكل خصم عبر TaxEffectOnDiscountضريبة أساسية على المبلغ بعد الخصم
تسلسلات الحساب المخصصةإعداد تأثيرات بـ 13 موضعاًمحدود بتسلسلات محددة مسبقاً
الضريبة كخصمدعم أصلي عبر taxIsDiscount flagيتطلب حلولاً بديلة أو تخصيصاً
الضريبة الشاملة في السعرمدمجة مع استخراج تلقائيمدعومة لكن أقل مرونة
معدلات الضريبة المستندة إلى التاريخأصلية مع سجلات Legal Entity Taxتتطلب fiscal positions

المزايا الرئيسية لـ Nama ERP:

  • تحكم أكثر تفصيلاً في الخصومات بـ 8 خصومات تسلسلية
  • دعم أصلي للضرائب كخصومات (ضرائب استقطاع)
  • إعداد معقد لتفاعل الضريبة-الخصم
  • تسلسلات حساب مخصصة عبر إعداد التأثيرات

مزايا Odoo:

  • إعداد أبسط للسيناريوهات الأساسية
  • وحدات مجتمعية أكثر شمولاً
  • إنشاء تقارير ضريبية أسهل عبر إعدادات الحسابات

Nama ERP مقارنةً بـ Microsoft Dynamics 365

الميزةNama ERPMicrosoft Dynamics 365
مستويات الخصم8 سطور + 1 خصم رأسأنواع خصومات متعددة لكن عادةً 3 مستويات
إعداد قاعدة الخصميمكن لكل خصم تطبيق قواعد مختلفةخيارات قاعدة محدودة
إعداد الضريبةTax Plans مع حل هرميمجموعات ضريبة وأكواد ضريبة
نقاط تطبيق الضريبةقابلة للإعداد في أي نقطة من الحسابعادةً بعد جميع الخصومات
ترتيب التأثيراتتسلسل مخصص كاملترتيب حساب محدد مسبقاً
الإعفاءات الضريبيةمدمجة في حسابات الموازنةمجموعات ضريبة العميل
معالجة الضريبة متعددة العملاتمدمجة مع تحويل قابل للإعدادمعالجة عملة منفصلة

المزايا الرئيسية لـ Nama ERP:

  • حسابات قاعدة خصم أكثر مرونة
  • حل إعداد ضريبة هرمي
  • تحكم أكبر في تسلسل الحساب
  • إعفاء ضريبي مدمج على مستوى الحساب

مزايا Dynamics 365:

  • تكامل أفضل مع نظام Microsoft
  • تقارير مالية أكثر تطوراً
  • قدرات تحليلية وذكاء اصطناعي متقدمة

Nama ERP مقارنةً بـ SAP (ECC/S4HANA)

الميزةNama ERPSAP
هيكل الخصم8 خصومات تسلسلية على السطرأنواع شروط (غير محدودة لكن معقدة)
نهج الإعدادإعداد قائم على الحقولتقنية الشروط مع المخططات
حساب الضريبة4 ضرائب بسلوك مرنإجراءات ضريبة مع أنواع شروط
مرونة الحسابإعداد التأثيرات للتسلسلات المخصصةإجراءات التسعير مع الخطوات
الضريبة كخصمإعداد بسيط عبر flagيتطلب إعداد نوع الشرط
واجهة المستخدمإعداد مباشر للحقوليتطلب تخصيص ABAP في الغالب
الأداءحساب محسَّن في مرور واحدمعقد لكن محسَّن للغاية

المزايا الرئيسية لـ Nama ERP:

  • إعداد أبسط دون تخصيص مكثف
  • إعداد أكثر بديهية لضريبة الاستقطاع
  • إعداد مباشر على مستوى الحقول
  • تدفق حساب أسهل فهماً

مزايا SAP:

  • مرونة غير محدودة عبر أنواع الشروط
  • حلول خاصة بالصناعة
  • قدرات تكامل واسعة
  • إجراءات تسعير أكثر تطوراً

Nama ERP مقارنةً بـ Oracle EBS (E-Business Suite)

الميزةNama ERPOracle EBS
إدارة الخصومات8 سطور + رأس مع تحكم فرديقوائم تعديل ومؤهلات
محرك الضريبةمدمج مع 4 ضرائب قابلة للإعدادOracle Tax (E-Business Tax)
تعقيد الإعدادقائم على الحقول، مناسب لمستخدمي الأعماليتطلب إعداداً تقنياً
أنظمة الضرائبTax Plans مع نطاقات تواريخأنظمة ضريبة وولايات قضائية
شفافية الحسابإعداد واضح حقلاً بحقلمحرك قواعد ضريبة معقد
ضريبة الاستقطاعدعم أصلي عبر taxIsDiscountوحدة ضريبة استقطاع منفصلة

المزايا الرئيسية لـ Nama ERP:

  • إعداد أبسط وأكثر شفافية
  • معالجة موحدة للضرائب العادية وضرائب الاستقطاع
  • مناسب لمستخدمي الأعمال
  • إعداد مدمج للخصومات والضرائب

مزايا Oracle EBS:

  • ميزات امتثال ضريبي أكثر شمولاً
  • أكثر ملاءمة للمتطلبات المعقدة متعددة الولايات القضائية
  • تقارير ضريبية ومطابقة متقدمة
  • تكامل أعمق مع سلسلة التوريد

الميزات الفريدة لـ Nama ERP

ميزات نادراً ما تُوجد في أنظمة ERP الأخرى

  1. ثمانية خصومات تسلسلية على السطر

    • تحد معظم أنظمة ERP من 2-3 مستويات خصم
    • يتيح Nama سلاسل خصم معقدة لتسعير متطور
  2. إعداد TaxEffectOnDiscount

    • تحكم تفصيلي في مراعاة الضريبة في حسابات الخصم
    • كل خصم يمكنه مراعاة كل ضريبة بشكل مستقل
  3. نموذج موحد للإضافة/الخصم الضريبي

    • flag واحد (taxIsDiscount) يحوّل أي ضريبة إلى خصم
    • يلغي الحاجة إلى وحدات ضريبة استقطاع منفصلة
  4. إعداد تأثيرات بـ 13 موضعاً

    • تحكم كامل في تسلسل الحساب
    • عمليات رياضية مخصصة بين التأثيرات
  5. حل الإعداد الهرمي

    • حل ثلاثي المستويات: Header Plan → Line Plan → Global
    • مرونة مع قواعد أولوية واضحة

متى تختار Nama ERP

Nama ERP مثالي لـ:

  • الشركات ذات هياكل الخصم المعقدة
  • الأسواق ذات متطلبات ضريبة الاستقطاع المتعددة
  • الشركات التي تحتاج إلى تفاعلات مرنة بين الضريبة والخصم
  • المؤسسات التي تتطلب إعداداً شفافاً على مستوى الحقول
  • الشركات ذات تسلسلات الحساب الفريدة

مقارنة الابتكار التقني

الجانبنهج Nama ERPالمعيار الصناعي
فلسفة الإعدادقائمة على الحقول مع إظهار واجهة المستخدمتخصيص قائم على الكود/السكريبت
محرك الحسابمرور واحد مع ترتيب التأثيراتمتعدد المرور أو قائم على الإجراءات
معالجة الضريبةنموذج موحد لجميع أنواع الضرائبوحدات منفصلة لأنواع الضرائب المختلفة
هيكل الخصمهيكل ثابت بـ 8 مستوياتمتغير لكن محدود عادةً
طريقة التخصيصالإعداد على حساب التخصيصنهج كثيف التخصيص
منحنى التعلممعتدل - حقول كثيرة لكن منطقيةمتفاوت - يتطلب خبرة تقنية في الغالب

اعتبارات الترحيل

عند الترحيل من أنظمة ERP الأخرى إلى Nama ERP:

من Odoo:

  • عيِّن الخصومات البسيطة إلى أول 1-2 مستويات خصم في Nama
  • حوِّل إعدادات الضريبة إلى Tax Plans
  • استفد من إعداد التأثيرات للسيناريوهات المعقدة

من Dynamics 365:

  • عيِّن خصومات اتفاقيات التجارة إلى خصومات السطر
  • حوِّل مجموعات الضريبة إلى Tax Plans
  • استخدم إعفاءات حسابات الموازنة

من SAP:

  • بسِّط أنواع الشروط إلى حقول الخصم/الضريبة
  • حوِّل إجراءات التسعير إلى إعداد التأثيرات
  • عيِّن إجراءات الضريبة إلى Tax Plans

من Oracle EBS:

  • حوِّل قوائم التعديل إلى إعدادات الخصم
  • عيِّن أنظمة الضريبة إلى Tax Plans مع الشركات
  • بسِّط ضريبة الاستقطاع إلى taxIsDiscount flags

ملخص

يوفر نظام حساب خصومات الفواتير والضرائب في Nama ERP مرونة واسعة من خلال:

  • الإعداد الهرمي: خطط الضريبة، معدلات الشركة، والإعدادات الافتراضية العامة
  • الحساب المرن: يمكن أن تكون الضرائب إضافات أو خصومات
  • التسلسلات المخصصة: تحكم كامل في ترتيب الحساب عبر إعداد التأثيرات
  • المعدلات المستندة إلى التاريخ: تغييرات تلقائية في المعدلات بمرور الوقت
  • الإعدادات الخاصة بالجهة: معدلات وقواعد مختلفة لكل شركة
  • التحكم الشامل: إعداد على مستوى الحقول لجميع جوانب الحساب

مقارنةً بأنظمة ERP الرئيسية الأخرى، يقدم Nama ERP توازناً فريداً بين المرونة والبساطة، حيث توفر بنية الخصم ذات المستويات الثمانية والنموذج الضريبي الموحد وإعداد التأثيرات قدرات تتطلب عادةً تخصيصاً مكثفاً في الأنظمة الأخرى. وبينما قد لا يمتلك النظام البيئة الواسعة لـ SAP أو Oracle، أو بساطة Odoo للسيناريوهات الأساسية، فإنه يتفوق في التعامل مع متطلبات الخصومات والضرائب المعقدة من خلال الإعداد بدلاً من التخصيص.

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