استيراد فواتير المشتريات في نظام قيود
استيراد فواتير المشتريات في نظام قيود
نطاق هذا المستند: المشتريات ← فواتير المشتريات ← استيراد الفواتير (رفع ملف إكسل لإنشاء عدة فواتير مشتريات دفعة واحدة).
1. نظرة عامة على الميزة
ميزة "استيراد فواتير المشتريات" تتيح للمستخدم رفع ملف إكسل (xlsx) واحد يحتوي على بيانات فاتورة مشتريات واحدة أو عدة فواتير مشتريات (لموردين مختلفين أو نفس المورد)، بحيث ينشئ النظام هذه الفواتير تلقائياً دفعة واحدة، بدلاً من إدخال كل فاتورة يدوياً عبر شاشة "إنشاء فاتورة مشتريات".
أين تقع هذه الميزة داخل النظام؟
المسار: المشتريات ← فواتير المشتريات، ثم زر "استيراد الفواتير" الظاهر أعلى صفحة قائمة فواتير المشتريات (بجانب أزرار "إنشاء فاتورة"، "إنشاء سند مورد"، "الإشعارات الدائنة"، "تصدير"، وغيرها).
هل تحتاج الميزة إلى إعداد مسبق؟
لا. الميزة متاحة فوراً لأي منشأة على النظام دون الحاجة لأي تفعيل أو إعداد خاص بها من لوحة الإعدادات. الشرط الوحيد هو أن يملك المستخدم صلاحية الوصول إلى فواتير المشتريات (إنشاء/تعديل) ضمن دوره الوظيفي في النظام.
ميزة مشابهة منفصلة
يوجد بشكل مشابه استيراد لفواتير المبيعات (فواتير العملاء)، وهي ميزة منفصلة تماماً بقالب وصفحة مختلفين عن استيراد فواتير المشتريات، ولا يشملها هذا المستند. إن سأل العميل عن "استيراد الفواتير" بشكل عام دون تحديد "مشتريات" أو "مبيعات"، يجب توضيح أن هناك ميزتين منفصلتين والسؤال عن أيهما يقصد.
2. خطوات الاستيراد (الثلاث خطوات الأساسية)
تعرض صفحة الاستيراد للمستخدم ثلاث خطوات مرقمة بوضوح بأيقونات توضيحية:
الخطوة 1: تحميل القالب (تحميل الملف)
زر "تحميل القالب" يقوم بتنزيل ملف إكسل فارغ (xlsx) مُجهّز مسبقاً بكل الأعمدة والعناوين والتنسيقات وقوائم التحقق المنسدلة (Data Validation) اللازمة. يجب دائماً استخدام هذا القالب تحديداً ولا يجوز إنشاء ملف إكسل من الصفر أو تعديل بنية القالب (حذف أو إعادة ترتيب أعمدة)، لأن النظام يعتمد على ترتيب الأعمدة وموقعها بالحرف (وليس على عناوين الأعمدة النصية) لقراءة البيانات بشكل صحيح.
الخطوة 2: ملء البيانات
يقوم المستخدم بفتح الملف الذي تم تنزيله (في Excel أو أي برنامج جداول بيانات متوافق) وتعبئة صف واحد لكل بند/سطر فاتورة، بدءاً من الصف الثالث في الملف (الصفان الأول والثاني محجوزان لعناوين الأقسام وعناوين الأعمدة، ويجب عدم المساس بهما - راجع القسم 3).
الخطوة 3: رفع الملف
بعد تعبئة البيانات وحفظ الملف بصيغة xlsx، يقوم المستخدم بالنقر على منطقة "انقر لاختيار الملف" (أو السحب والإفلات) لرفع الملف المعبأ، ثم النقر على زر "استيراد فواتير المشتريات" الأزرق أسفل الصفحة لبدء عملية المعالجة الفعلية.
بعد اختيار الملف بنجاح، يظهر اسم الملف مع علامة صح خضراء ونص "تم اختيار الملف بنجاح" أسفل منطقة الرفع، ويظهر اسم الملف مرة أخرى كمرفق أسفل الصفحة قبل زر الاستيراد النهائي.
3. بنية قالب الاستيراد بالتفصيل الكامل (شرح كل عمود)
قالب الاستيراد عبارة عن ورقة عمل واحدة (تُدعى داخلياً sheet2) مقسّمة إلى ثلاثة أقسام رئيسية تظهر كعناوين مدمجة في الصف الأول:
- "تفاصيل فاتورة المشتريات" (الأعمدة A حتى I): بيانات الفاتورة العامة (رأس الفاتورة).
- "خصم المستند" (الأعمدة J حتى L): بيانات خصم إجمالي يُطبّق على مستوى الفاتورة كاملة (وليس على بند واحد).
- "تفاصيل البنود" (الأعمدة M حتى U): بيانات كل بند/منتج داخل الفاتورة.
الصف الثاني يحتوي على عنوان كل عمود بدقة. فيما يلي الجدول الكامل، عمود بعمود:
العمود A
- العنوان الدقيق كما يظهر في الملف: مرجع الفاتورة/ التسلسل *
- إلزامي؟: نعم
- الوصف والغرض: الرقم المرجعي الذي سيظهر كـ"رقم المرجع" للفاتورة داخل النظام. هذا هو المعرّف الذي يُستخدم لتجميع عدة صفوف في فاتورة واحدة متعددة البنود (راجع القسم 5).
العمود B
- العنوان الدقيق كما يظهر في الملف: الوصف
- إلزامي؟: لا
- الوصف والغرض: وصف عام حر للفاتورة (يظهر كملاحظة/وصف على مستوى الفاتورة، وليس على مستوى البند).
العمود C
- العنوان الدقيق كما يظهر في الملف: الرقم المرجعي للمورد *
- إلزامي؟: نعم
- الوصف والغرض: رقم مرجعي (كود) يُستخدم للتعرف على المورد. يجب أن يطابق حقل "الرقم المرجعي" الخاص بالمورد نفسه في شاشة الموردين، وليس اسم المورد. هذا هو المصدر الأكثر شيوعاً لخطأ "رقم مرجع المورد غير موجود" (راجع القسم 9).
العمود D
- العنوان الدقيق كما يظهر في الملف: تاريخ الإصدار *
- إلزامي؟: نعم
- الوصف والغرض: تاريخ إصدار الفاتورة. يجب أن يكون بصيغة تاريخ صحيحة (يوم/شهر/سنة) وليس نصاً حراً.
العمود E
- العنوان الدقيق كما يظهر في الملف: تاريخ الاستحقاق
- إلزامي؟: لا
- الوصف والغرض: تاريخ استحقاق سداد الفاتورة. إن تُرك فارغاً، يأخذ تلقائياً نفس قيمة تاريخ الإصدار (العمود D) كقيمة افتراضية.
العمود F
- العنوان الدقيق كما يظهر في الملف: تاريخ التوريد
- إلزامي؟: لا
- الوصف والغرض: تاريخ توريد/استلام البضاعة فعلياً. إن تُرك فارغاً، يأخذ تلقائياً نفس قيمة تاريخ الإصدار (العمود D) كقيمة افتراضية أيضاً (تم التحقق من هذا السلوك عملياً).
العمود G
- العنوان الدقيق كما يظهر في الملف: الموقع *
- إلزامي؟: نعم
- الوصف والغرض: اسم الموقع/الفرع الذي ستُسجَّل الفاتورة وحركة المخزون تحته (مثال: "Main الرئيسي"). تظهر قائمة منسدلة باسماء المواقع الموجوده فعلياً في النظام
العمود H
- العنوان الدقيق كما يظهر في الملف: الشروط والأحكام
- إلزامي؟: لا
- الوصف والغرض: نص حر يظهر في تذييل الفاتورة كشروط وأحكام.
العمود I
- العنوان الدقيق كما يظهر في الملف: الملاحظات
- إلزامي؟: لا
- الوصف والغرض: نص حر كملاحظات عامة على الفاتورة.
العمود J
- العنوان الدقيق كما يظهر في الملف: قيمة خصم المستند
- إلزامي؟: لا
- الوصف والغرض: قيمة خصم إجمالي يُطبّق على كامل الفاتورة (وليس على بند بعينه). إذا تم إدخال قيمة هنا، يصبح العمودان K وL إلزاميين.
العمود K
- العنوان الدقيق كما يظهر في الملف: حساب خصم المستند *
- إلزامي؟: مشروط
- الوصف والغرض: الحساب المحاسبي الذي سيُسجَّل عليه خصم المستند. إلزامي فقط عند تعبئة العمود J.
العمود L
- العنوان الدقيق كما يظهر في الملف: الفئة الضريبية لخصم المستند *
- إلزامي؟: مشروط
- الوصف والغرض: الفئة الضريبية المرتبطة بخصم المستند. إلزامي فقط عند تعبئة العمود J.
العمود M
- العنوان الدقيق كما يظهر في الملف: الرقم التسلسلي/ الباركود للمنتج *
- إلزامي؟: نعم
- الوصف والغرض: كود المنتج (SKU) أو الباركود الخاص به كما هو مسجَّل في شاشة المنتجات. هذا هو المُعرِّف الوحيد المقبول لتحديد المنتج (وليس اسم المنتج).
العمود N
- العنوان الدقيق كما يظهر في الملف: وصف المنتج
- إلزامي؟: لا
- الوصف والغرض: وصف حر إضافي يظهر على مستوى بند الفاتورة.
العمود O
- العنوان الدقيق كما يظهر في الملف: الكمية *
- إلزامي؟: نعم
- الوصف والغرض: الكمية المطلوب شراؤها. يجب أن تكون رقماً موجباً أكبر من صفر، وإلا يظهر خطأ "يجب أن تكون الكمية رقمًا موجبًا". إذا تم استخدام عمود وحدة التحويل (P)، فإن هذه الكمية تكون بوحدة التحويل وليس بالوحدة الأساسية للمنتج (راجع القسم 6).
العمود P
- العنوان الدقيق كما يظهر في الملف: وحدة التحويل
- إلزامي؟: لا
- الوصف والغرض: عمود اختياري (ميزة إضافية أحدث) يسمح بإدخال الكمية بوحدة شراء بديلة (مثل "كرتون" أو "دستة") مُعرَّفة مسبقاً على بيانات المنتج، بدلاً من الوحدة الأساسية. شرح تفصيلي كامل في القسم 6.
العمود Q
- العنوان الدقيق كما يظهر في الملف: سعر الوحدة *
- إلزامي؟: نعم
- الوصف والغرض: سعر شراء الوحدة الواحدة. ملاحظة : عند استخدام عمود وحدة التحويل (P)، فإن السعر المُدخَل هنا يُطبَّق على الوحدة الأساسية للمنتج بعد التحويل، وليس على وحدة التحويل نفسها (مثال تفصيلي كامل في القسم 6).
العمود R
- العنوان الدقيق كما يظهر في الملف: شامل الضريبة؟ *
- إلزامي؟: نعم
- الوصف والغرض: يحدد ما إذا كان سعر الوحدة المُدخَل في العمود Q شاملاً لضريبة القيمة المضافة أم لا. قائمة منسدلة بالقيم : "نعم" أو "لا" فقط.
العمود S
- العنوان الدقيق كما يظهر في الملف: نسبة الخصم
- إلزامي؟: لا
- الوصف والغرض: نسبة خصم مئوية (%) تُطبَّق على هذا البند تحديداً.
العمود T
- العنوان الدقيق كما يظهر في الملف: قيمة الخصم
- إلزامي؟: لا
- الوصف والغرض: قيمة خصم ثابتة (مبلغ) تُطبَّق على هذا البند تحديداً.
العمود U
- العنوان الدقيق كما يظهر في الملف: الضريبة% *
- إلزامي؟: نعم
- الوصف والغرض: فئة الضريبة المطبَّقة على هذا البند. تظهر قائمة منسدلة بالضرائب المضافة بالبرنامج.
قاعدة حاسمة: لا يجوز إدخال خصم كنسبة وقيمة معاً على نفس البند
العمودان S (نسبة الخصم) وT (قيمة الخصم) متعارضان تبادلياً على مستوى نفس البند: لا يجوز تعبئة كليهما معاً في نفس الصف. عند القيام بذلك، يرفض النظام الصف بالكامل برسالة: "لا يمكن إدخال خصم كنسبة وقيمة معًا". يجب اختيار أحدهما فقط وترك الآخر فارغاً، أو ترك كليهما فارغين إن لم يكن هناك خصم على البند.
التواريخ يجب أن تكون بصيغة تاريخ حقيقية وليست نصاً
الأعمدة D وE وF تحمل تنسيق تاريخ خاص بالخلية (بصيغة dd/mm/yyyy) داخل القالب. إن تم إدخال نص لا يمكن تفسيره كتاريخ صحيح (مثل كتابة كلمة أو رقم عشوائي بدلاً من تاريخ)، يظهر الخطأ: "التاريخ يجب أن يكون بصيغة يوم/شهر/سنة". لاحظ أن هذه الرسالة تظهر أيضاً عند ترك عمود تاريخ الإصدار (D) فارغاً تماماً، أي أن الرسالة تُستخدم لكل من "التنسيق الخاطئ" و"الحقل الفارغ" في هذا العمود تحديداً (وليست رسالة "هذا الحقل مطلوب" منفصلة).
4. الحقول الإلزامية - ملخص سريع
الحقول التي يجب تعبئتها في كل صف (وإلا يفشل الصف بالكامل، أو الملف بالكامل حسب الحالة - راجع القسم 8):
- A — مرجع الفاتورة/التسلسل
- C — الرقم المرجعي للمورد
- D — تاريخ الإصدار
- G — الموقع
- M — الرقم التسلسلي/الباركود للمنتج
- O — الكمية (رقم موجب)
- Q — سعر الوحدة
- R — شامل الضريبة؟ (نعم/لا)
- U — الضريبة%
الحقول الاختيارية بالكامل: B، E، F، H، I، N، S، T. الحقلان J وK وL اختياريان لكن K وL يصبحان إلزاميين إذا تم تعبئة J.
الحقل P (وحدة التحويل) اختياري لكن له قواعد خاصة عند استخدامه (راجع القسم 6).
5. الفاتورة متعددة البنود عبر تكرار المرجع
لإنشاء فاتورة واحدة تحتوي على أكثر من منتج/بند، يكفي تكرار نفس القيمة في العمود A (مرجع الفاتورة) عبر عدة صفوف متتالية. يقوم النظام تلقائياً بتجميع كل الصفوف التي تحمل نفس المرجع في فاتورة واحدة، ويُضيف كل صف كبند (سطر منتج) منفصل داخل تلك الفاتورة.
ملاحظة : الصف الأول فقط من مجموعة الصفوف المتشاركة في نفس المرجع هو الذي يحتاج لتعبئة بيانات رأس الفاتورة الكاملة (المورد C، التواريخ D/E/F، الموقع G، الوصف B، إلخ). الصفوف التالية بنفس المرجع تحتاج فقط لتعبئة أعمدة تفاصيل البند (M إلى U) الخاصة بذلك البند تحديداً، دون الحاجة لتكرار بيانات رأس الفاتورة في كل صف (رغم أن تكرارها لا يسبب أي خطأ إذا حدث).
تنبيه: التوصية للعميل هي الالتزام بتعبئة بيانات الرأس في الصف الأول فقط لكل مرجع وتركها فارغة فيما يليه من صفوف بنفس المرجع لتفادي أي التباس.
6. ميزة وحدة التحويل عند الاستيراد (عمود P)
ما هي وحدة التحويل؟
بعض المنتجات تُشترى بوحدة مختلفة عن وحدة القياس الأساسية المُستخدمة في المخزون. مثال: منتج وحدته الأساسية "قطعة"، لكنه يُشترى عادة بالكرتون حيث كل كرتون يحتوي على عدد ثابت من القطع (مثلاً: 1 كرتون = 10 قطعة). ميزة وحدة التحويل تسمح للمستخدم عند الاستيراد بإدخال الكمية بوحدة الشراء الفعلية (كرتون) بدلاً من الاضطرار لحساب عدد القطع يدوياً وتحويلها بنفسه قبل إدخالها.
الشرط الأساسي: يجب أن تكون وحدة التحويل مُعرَّفة مسبقاً في بيانات المنتج
قبل استخدام هذه الميزة، يجب أن يكون المنتج المعني لديه بالفعل "تحويل وحدات" مُعرَّف من شاشة تعديل المنتج (تبويب/جدول "تحويل الوحدات")، والذي يحدد:
- اسم الوحدة البديلة (مثل "كرتون").
- معامل التحويل ("عدد من الوحدة"): كم عدد الوحدات الأساسية التي تعادلها الوحدة البديلة الواحدة (مثال مُختبر فعلياً: 1 كرتون = 10 قطعة).
- سعر شراء اختياري خاص بهذه الوحدة (حقل منفصل في بطاقة المنتج، لكنه لا يُستخدم تلقائياً أثناء الاستيراد - راجع الملاحظة أدناه).
كيفية عمل العمود عملياً (خطوات الاستخدام)
- في عمود M، أدخل كود/باركود المنتج كالمعتاد.
- في عمود P، اكتب اسم وحدة التحويل بالضبط كما هو مُسجَّل في بيانات المنتج (مثال: "كرتون").
- في عمود O (الكمية)، أدخل الكمية بوحدة التحويل (مثال: 5 يعني 5 كراتين، وليس 5 قطع).
- في عمود Q (سعر الوحدة)، أدخل السعر — لكن انتبه للملاحظة الجوهرية التالية.
⚠️ ملاحظة : السعر يُطبَّق على الوحدة الأساسية وليس على وحدة التحويل
مثال الاختبار الفعلي:
- منتج وحدته الأساسية "قطعة"، ومُعرَّف عليه تحويل وحدة "كرتون" بمعامل 1 كرتون = 10 قطعة.
- تم إدخال: الكمية (O) = 5، وحدة التحويل (P) = "كرتون"، سعر الوحدة (Q) = 15، غير شامل الضريبة، ضريبة 15%.
- النتيجة الفعلية في الفاتورة المُنشأة: البند ظهر بكمية 50.0 قطعة (أي 5 × 10 = 50، تم تحويل الكمية فعلاً لوحدات أساسية) لكن سعر الوحدة ظل 15.00 كما أُدخل تماماً دون أي تعديل.
- الإجمالي قبل الضريبة = 50 (الكمية بعد التحويل) × 15 (السعر كما أُدخل) = 750.00 ريال.
- قيمة الضريبة (15%) = 112.50 ريال.
- الإجمالي الكلي = 862.50 ريال.
- تم التحقق من انعكاس هذا على المخزون فعلياً أيضاً: رصيد المنتج زاد بمقدار 50 قطعة بالضبط (من 2.0 إلى 52.0 قطعة)، أي أن الكمية فقط هي التي تُحوَّل، بينما السعر المُدخَل في العمود Q يُطبَّق حرفياً على كل وحدة أساسية ناتجة بعد التحويل، وليس على وحدة التحويل ذاتها.
الأثر العملي على العميل: إذا كان لدى العميل سعر شراء "للكرتون كاملاً" (مثلاً كرتون كامل بـ150 ريال يحتوي 10 قطع)، فيجب عليه قسمة السعر على معامل التحويل أولاً وإدخال سعر القطعة الواحدة في عمود Q (في هذا المثال: 150 ÷ 10 = 15 ريال للقطعة)، وليس إدخال 150 مباشرة، وإلا فإن النظام سيحتسب الفاتورة بسعر 150 للقطعة الواحدة بعد التحويل، وهو خطأ فادح في التسعير (سيُضخّم قيمة الفاتورة بمقدار معامل التحويل كاملاً). هذه نقطة يجب لفت انتباه العميل لها بوضوح تام لأنها مصدر شائع ومحتمل لأخطاء تسعير كبيرة إن لم يُفهم هذا السلوك جيداً.
بعبارة أخرى: حقل "سعر شراء الوحدة" المنفصل في بيانات المنتج (ضمن جدول تحويل الوحدات) لا يُستخدم إطلاقاً أثناء عملية الاستيراد — الاستيراد يعتمد فقط على السعر المكتوب صراحة في عمود Q من ملف الاستيراد نفسه، ويطبّقه على الكمية الأساسية بعد التحويل.
حالات الخطأ الخاصة بعمود وحدة التحويل
الحالة: العمود P فارغ تماماً
- النتيجة: لا يحدث أي تحويل، والكمية في O تُعتبر بالوحدة الأساسية مباشرة كالمعتاد (السلوك الافتراضي القديم قبل إضافة هذه الميزة). لا يظهر أي خطأ.
الحالة: العمود P يحتوي اسم وحدة غير مُعرَّفة كتحويل لهذا المنتج تحديداً (سواء الاسم غير موجود إطلاقاً في النظام، أو موجود كوحدة قياس لكن غير مربوط كـ"تحويل" بهذا المنتج بالذات)
- النتيجة: خطأ ديناميكي يتضمن اسم الوحدة المُدخَلة:
وحدة التحويل "<الاسم المُدخَل>" غير مضبوطة لهذا المنتج—
الحالة: العمود P مُعبَّأ باسم وحدة تحويل صحيح، لكن عمود M (كود المنتج) فارغ
- النتيجة: حسب المرجعية العامة الموثقة لهذه الميزة: يظهر خطأ لأن النظام لا يستطيع التحقق من ربط الوحدة بمنتج غير محدد أصلاً (هذا السيناريو يتقاطع مع خطأ "الرقم التسلسلي/الباركود للمنتج مطلوب" الذي يظهر أصلاً عند خلو عمود M بغض النظر عن P).
7. حالة الفاتورة بعد الاستيراد وصلاحيات الاعتماد
عند نجاح الاستيراد، تُنشأ الفواتير مباشرة بحالة "موافق عليه" (Approved) إذا كان المستخدم الذي يقوم بعملية الاستيراد يملك صلاحية اعتماد فواتير المشتريات ضمن دوره في النظام
بناءً على البنية العامة لنظام الصلاحيات في قيود (والتي تُطبَّق بشكل موحّد على الفواتير سواء أُنشئت يدوياً أو عبر الاستيراد)، فإن مستخدماً لا يملك صلاحية اعتماد فواتير المشتريات يُتوقع أن تُنشأ الفواتير التي يستوردها بحالة "بإنتظار الموافقة" بدلاً من "موافق عليه" مباشرة، لتحتاج بعد ذلك لاعتماد يدوي من مستخدم آخر يملك تلك الصلاحية.
خلاصة عملية للرد على العملاء: "حالة الفاتورة المستوردة تعتمد على صلاحياتك في النظام تماماً كما لو أنشأتها يدوياً — إذا كانت لديك صلاحية اعتماد فواتير المشتريات، ستظهر الفاتورة مباشرة بحالة موافق عليه، وإلا فستحتاج لاعتماد لاحق من مستخدم مخوَّل."
8. سلوك الملف عند احتوائه على أخطاء: "الكل أو لا شيء" (
مثال عند رفع ملف يحتوي على 11 صفاً، منها 10 صفوف تحتوي كل منها على خطأ مختلف متعمَّد، وصف واحد فقط صحيح تماماً ولا يحتوي على أي خطأ:
- ظهر جدول أخطاء يعرض بدقة الصفوف العشرة الفاشلة مع رسالة الخطأ الخاصة بكل منها.
- الصف الصحيح (رقم 13 في الملف) لم يظهر في جدول الأخطاء (كما هو متوقع لأنه لا يحتوي خطأ).
- لكن — وهذه هي النقطة الحاسمة — عند البحث لاحقاً في قائمة فواتير المشتريات باستخدام مرجع ذلك الصف الصحيح تحديداً، تبيّن أنه لم يتم إنشاء أي فاتورة له إطلاقاً (النتيجة: "لا توجد بيانات للعرض" / "لا توجد أي فواتير مشتريات").
الخلاصة : النظام يتعامل مع ملف الاستيراد ككتلة واحدة غير قابلة للتجزئة (Batch أو All-or-Nothing). إذا احتوى الملف على صف واحد فقط به خطأ، يتم رفض الملف بالكامل ولا يتم إنشاء أي فاتورة على الإطلاق من ذلك الملف، حتى الصفوف/الفواتير الصحيحة تماماً ضمن نفس الملف.
9. جدول شامل لرسائل الخطأ المُختبرة فعلياً (نص عربي دقيق كما يظهر في النظام)
جميع الرسائل التالية تم استخراجها حرفياً من واجهة النظام الفعلية أثناء اختبار مباشر (وليست ترجمة أو صياغة تقريبية):
1. رقم مرجع المورد غير موجود
- سبب الخطأ (السيناريو الذي يُنتجه): الرقم المرجعي للمورد في العمود C غير موجود إطلاقاً في النظام، أو تم كتابة اسم المورد بدلاً من رقمه المرجعي (الخطأ الأكثر شيوعاً).
- نص رسالة الخطأ كما يظهر بالضبط: "رقم مرجع المورد غير موجود"
- الحل الموصى به: تأكد من فتح بيانات المورد في شاشة الموردين والنسخ الدقيق لحقل "الرقم المرجعي" الخاص به تحديداً، وليس اسم المورد أو رقم هاتفه أو أي حقل آخر.
2. الرقم التسلسلي/ الباركود للمنتج مطلوب
- سبب الخطأ (السيناريو الذي يُنتجه): عمود M (كود/باركود المنتج) تُرك فارغاً.
- نص رسالة الخطأ كما يظهر بالضبط: "الرقم التسلسلي/ الباركود للمنتج مطلوب"
- الحل الموصى به: تأكد من تعبئة كود المنتج (SKU) أو الباركود لكل بند/صف.
3. لا يمكن إدخال خصم كنسبة وقيمة معًا
- سبب الخطأ (السيناريو الذي يُنتجه): تم تعبئة كل من عمود S (نسبة الخصم) وعمود T (قيمة الخصم) معاً في نفس الصف/البند.
- نص رسالة الخطأ كما يظهر بالضبط: "لا يمكن إدخال خصم كنسبة وقيمة معًا"
- الحل الموصى به: اختر نوعاً واحداً فقط من الخصم لكل بند (إما نسبة أو قيمة)، واترك الآخر فارغاً بالكامل.
4. الموقع غير صالح
- سبب الخطأ (السيناريو الذي يُنتجه): عمود الموقع (G) فارغ أو يحتوي اسم موقع غير موجود في النظام.
- نص رسالة الخطأ كما يظهر بالضبط: "الموقع غير صالح"
- الحل الموصى به: استخدم اسم موقع/فرع موجود فعلاً في القائمة المنسدلة بالملف.
5. تاريخ الاستحقاق يجب أن يكون بعد تاريخ الإصدار
- سبب الخطأ (السيناريو الذي يُنتجه): تاريخ الاستحقاق (العمود E) أقدم من تاريخ الإصدار (العمود D).
- نص رسالة الخطأ كما يظهر بالضبط: "تاريخ الاستحقاق يجب أن يكون بعد تاريخ الإصدار"
- الحل الموصى به: تأكد أن تاريخ الاستحقاق يساوي أو يتأخر عن تاريخ الإصدار دائماً، وليس قبله.
6. المنتج غير متاح للشراء
- سبب الخطأ (السيناريو الذي يُنتجه): كود المنتج في العمود M غير موجود في النظام أصلاً، أو المنتج موجود لكنه غير مُفعَّل كمنتج "يُشترى" .
- نص رسالة الخطأ كما يظهر بالضبط: "المنتج غير متاح للشراء"
- الحل الموصى به: ملاحظة مهمة: هذه الرسالة ليست "المنتج غير موجود" كما قد يُتوقَّع بديهياً، بل رسالة عامة تشمل كلا الاحتمالين (منتج غير موجود إطلاقاً، أو منتج موجود لكن معطَّل/غير مفعَّل لخاصية الشراء). يجب التحقق أولاً من وجود المنتج بنفس الكود بالضبط في شاشة المنتجات، ثم من كون خيار "يُشترى" مفعَّلاً على بطاقته إن كان موجوداً.
7. يجب أن تكون الكمية رقمًا موجبًا
- سبب الخطأ (السيناريو الذي يُنتجه): الكمية في العمود O تساوي صفراً أو قيمة سالبة (أو أي رقم غير موجب).
- نص رسالة الخطأ كما يظهر بالضبط: "يجب أن تكون الكمية رقمًا موجبًا"
- الحل الموصى به: أدخل رقماً أكبر من صفر دائماً في عمود الكمية.
8. وحدة التحويل غير مضبوطة لهذا المنتج
- سبب الخطأ (السيناريو الذي يُنتجه): عمود وحدة التحويل (P) يحتوي اسم وحدة غير مُعرَّفة كتحويل مُعتمَد لهذا المنتج تحديداً.
- نص رسالة الخطأ كما يظهر بالضبط:
وحدة التحويل "<اسم الوحدة>" غير مضبوطة لهذا المنتج(الرسالة تتضمن اسم الوحدة المُدخَلة فعلياً). - الحل الموصى به: إما اترك عمود وحدة التحويل فارغاً (وأدخل الكمية بالوحدة الأساسية مباشرة)، أو اذهب أولاً لبطاقة المنتج وأضِف تحويل الوحدة المطلوبة قبل محاولة استيرادها.
9. التاريخ يجب أن يكون بصيغة يوم/شهر/سنة
- سبب الخطأ (السيناريو الذي يُنتجه): عمود تاريخ الإصدار (D) فارغ تماماً، أو يحتوي قيمة لا يمكن قراءتها كتاريخ صحيح.
- نص رسالة الخطأ كما يظهر بالضبط: "التاريخ يجب أن يكون بصيغة يوم/شهر/سنة"
- الحل الموصى به: تأكد من تعبئة تاريخ الإصدار دائماً بصيغة تاريخ حقيقية (وليس نصاً)، باستخدام حقول التاريخ المُنسّقة أصلاً في القالب.
ملاحظة تقنية مهمة يجب معرفتها للرد على العملاء: كما هو موضح في القسم 8 أعلاه، ظهور أي رسالة من هذه الرسائل ولو لصف واحد فقط ضمن ملف كبير يعني رفض الملف بأكمله وعدم إنشاء أي فاتورة إطلاقاً، حتى لو كانت بقية الصفوف صحيحة تماماً.
حالات أخرى ذات صلة
- ملف فارغ تماماً (بدون أي صف بيانات): من المتوقع أن يظهر خطأ يوضح عدم وجود بيانات للاستيراد، أو رسالة مشابهة تفيد بعدم القدرة على معالجة ملف بلا صفوف.
- رفع نسخة قديمة من القالب (تم تحديث بنية الأعمدة في نسخة أحدث من القالب لاحقاً بينما لا يزال العميل يستخدم نسخة قديمة محفوظة على جهازه): يُتوقع ظهور أخطاء غير متوقعة أو قراءة خاطئة للبيانات بسبب اختلاف ترتيب/عدد الأعمدة، لذا التوصية الدائمة للعميل هي تنزيل القالب من جديد مباشرة قبل كل عملية استيراد بدلاً من الاحتفاظ بنسخة قديمة محفوظة وإعادة استخدامها لفترات طويلة.
10. سيناريوهات النجاح
- فاتورة بسيطة ببند واحد: صف واحد بكل الحقول الإلزامية مُعبأة بشكل صحيح، مورد صحيح، منتج صحيح، موقع صحيح — نجحت الفاتورة وظهرت بكل بياناتها الصحيحة وبحالة "موافق عليه" فوراً.
- فاتورة متعددة البنود بنفس المرجع: عدة صفوف بنفس قيمة عمود A، كل صف يمثّل منتجاً مختلفاً — نجح النظام في تجميعها في فاتورة واحدة تحتوي على كل البنود.
- تسعير غير شامل للضريبة (R = "لا"): تم احتساب الإجمالي قبل الضريبة بضرب الكمية بالسعر مباشرة، ثم إضافة نسبة الضريبة فوقه — صحيح حسابياً.
- تسعير شامل للضريبة (R = "نعم"): تم فصل قيمة الضريبة من داخل السعر المُدخَل عبر احتساب عكسي صحيح.
- تواريخ استحقاق وتوريد فارغة: أخذت تلقائياً قيمة تاريخ الإصدار كافتراضي دون أي خطأ.
- استيراد ناجح باستخدام وحدة تحويل: تم تحويل الكمية المُدخَلة (بوحدة "كرتون") لوحدات أساسية ("قطعة") بضربها في معامل التحويل المُعرَّف على المنتج (10)، مع تطبيق السعر المُدخَل على الوحدة الأساسية الناتجة بعد التحويل (وليس على وحدة التحويل ذاتها) — راجع القسم 6 للتفاصيل الكاملة والأرقام.
- انعكاس المخزون فوراً بعد الاستيراد: تأكد أن استيراد فاتورة مشتريات لمنتج مخزون يزيد رصيد الكمية المتوفرة لذلك المنتج في ذلك الموقع فوراً بنفس القدر المُشترى، ويُحدِّث متوسط التكلفة المرجّح للمنتج تلقائياً.
11. سجل النشاط وتقرير الاستيراد (Import Report)
أين يظهر سجل استيراد فاتورة معينة؟
عند فتح أي فاتورة (سواء أُنشئت يدوياً أو عبر الاستيراد)، يوجد قسم "معلومات إضافية" ← "النشاطات" أسفل صفحة تفاصيل الفاتورة، يعرض قائمة زمنية بكل الأحداث التي مرّت بها الفاتورة، كل حدث بتاريخه ووقته الدقيقين (حتى الثانية) واسم المستخدم الذي قام به.
بالنسبة للفواتير التي تم إنشاؤها عبر الاستيراد تحديداً، لوحظ ظهور ثلاثة أحداث متتالية خلال نفس الثانية تقريباً فور نجاح الاستيراد:
- "استُورد بواسطة [اسم المستخدم]" — الحدث الخاص بعملية الاستيراد نفسها.
- "أُنشِئ بواسطة [اسم المستخدم]" — حدث إنشاء الفاتورة (سجل عام يظهر لكل الفواتير بغض النظر عن طريقة إنشائها).
- "حُدِّث بواسطة [اسم المستخدم]" — حدث تحديث لاحق فوري (على الأرجح خطوة داخلية تلقائية في النظام أثناء معالجة الفاتورة المستوردة، مثل احتساب الأرصدة أو ربط القيود).
التفاصيل الكاملة القابلة للعرض (Drill-Down)
بجانب حدث "استُورد بواسطة" تحديداً، يظهر أيقونة عين (👁) قابلة للنقر، وعند النقر عليها يظهر جدول تفصيلي منبثق يعرض بالضبط البيانات التالية (تم التحقق من كل حقل فيها فعلياً من نظام حي):
- الحقل: الإجراء
- مثال قيمة فعلية مُختبرة: استيراد الفواتير
- الحقل: المستورد
- مثال قيمة فعلية مُختبرة: اسم المستخدم الذي قام بالاستيراد
- الحقل: اسم الملف
- مثال قيمة فعلية مُختبرة: (ملاحظة: لوحظ أن النظام قد يعرض اسماً عاماً/افتراضياً للملف بدلاً من الاسم الفعلي الذي اختاره المستخدم عند الحفظ على جهازه في بعض الحالات — لا يجب الاعتماد على هذا الحقل كدليل قاطع على اسم الملف الأصلي الذي رفعه العميل)
- الحقل: إجمالي الفواتير
- مثال قيمة فعلية مُختبرة: العدد الكلي للفواتير التي شملها ملف الاستيراد هذا
- الحقل: الفواتير المستوردة
- مثال قيمة فعلية مُختبرة: عدد الفواتير التي نجح استيرادها فعلياً من هذا الملف
- الحقل: الفواتير التي فشلت
- مثال قيمة فعلية مُختبرة: عدد الفواتير التي فشلت من هذا الملف
- الحقل: الحالة
- مثال قيمة فعلية مُختبرة: ناجح / فاشل (حسب نتيجة العملية ككل)
- الحقل: وقت الاستيراد
- مثال قيمة فعلية مُختبرة: الطابع الزمني الدقيق لعملية الاستيراد (بصيغة ISO مع فارق التوقيت)
هذا يعني أن سجل النشاط على مستوى كل فاتورة يحتفظ بأثر دائم وقابل للرجوع إليه لعملية الاستيراد التي أنشأتها، وهو مفيد جداً عند تتبع مصدر فاتورة معينة أو التحقق من هوية من قام باستيرادها ومتى.
تقرير الاستيراد على مستوى الملف نفسه (بشكل عام، من الوثائق المرجعية)
بحسب الوثائق المرجعية العامة لهذه الميزة: الملفات الصغيرة (حتى حوالي 100 صف) تُعالَج مباشرة ويظهر تقرير الأخطاء (إن وُجدت) مباشرة على الشاشة كجدول مضمَّن (. أما الملفات الأكبر حجماً فتتم معالجتها بشكل غير متزامن (في الخلفية) ويُرسَل تقرير مفصَّل بالنتيجة إلى بريد المستخدم الإلكتروني بدلاً من انتظاره أمام الشاشة.
12. حذف فاتورة مستوردة والانعكاسات المحاسبية والمخزنية
هل يمكن حذف فاتورة مشتريات تم إنشاؤها عبر الاستيراد؟
نعم، اي فاتورة مشتريات تم إنشاؤها بالكامل عبر الاستيراد، وبحالة "موافق عليه" (Approved)، يمكن حذفها بنفس آلية حذف أي فاتورة أخرى تماماً، دون أي تمييز أو قيد إضافي بسبب كونها "مستوردة".
كيفية الحذف
- من قائمة فواتير المشتريات، في عمود "الخيارات" لكل صف فاتورة، توجد مجموعة أيقونات (عرض، طباعة، تحميل، سند دفع، نسخ، حذف - أيقونة سلة المهملات وهي آخر أيقونة في المجموعة).
- النقر على أيقونة الحذف يفتح نافذة تأكيد منبثقة تحمل السؤال: "هل أنت متأكد من رغبتك في الحذف؟" مع زرَّي "حذف" (للتأكيد) و**"إلغاء"**.
- عند تأكيد الحذف، تظهر رسالة نجاح خضراء أعلى الصفحة: "تم حذف الفاتورة بنجاح"، وتختفي الفاتورة فوراً من القائمة.
الانعكاس المحاسبي/المخزني الفعلي عند الحذف
حذف فاتورة مشتريات مستوردة يُنفِّذ انعكاساً محاسبياً ومخزنياً فورياً وكاملاً، يشمل إرجاع كمية المخزون التي أضافتها تلك الفاتورة، وإعادة احتساب متوسط التكلفة المرجّح للمنتج كما كان بالضبط قبل تلك الفاتورة. هذا يعني أن الحذف عملية آمنة تماماً لإلغاء أثر استيراد خاطئ بالكامل من جذوره.
13. الترقيم التسلسلي للفواتير المستوردة
عند فتح شاشة إنشاء فاتورة مشتريات يدوياً، لوحظ أن حقل "المرجع" (رقم/اسم الفاتورة) يقترح تلقائياً القيمة التالية في تسلسل معيّن (مثال مُختبر: كانت آخر فاتورة يدوية بمرجع "Purch4-Aug-26"، فاقترح النظام تلقائياً "Purch5-Aug-26" كقيمة افتراضية للفاتورة الجديدة)، لكن هذا الحقل يبقى قابلاً للتعديل والاستبدال الكامل من قِبل المستخدم (الحقل ليس للقراءة فقط، وليس معطَّلاً).
هذا يتوافق تماماً مع ما تم رصده عبر الاستيراد: جميع مراجع الفواتير المُدخَلة يدوياً في عمود A من ملف الاستيراد (بأي صياغة مخصصة يختارها العميل، مثل "TEST-INV-001" أو "UNITCONV-OK-001") تم قبولها بنجاح دون أي رفض أو تعارض مع الترقيم التلقائي المقترح، مما يؤكد أن نظام الترقيم في هذه المنشأة التجريبية "غير مقفل" حالياً (Unlocked).
حالة "الترقيم المقفل" (Locked Numbering)
بعض المنشآت قد تُفعِّل خيار إعدادات يجعل نظام ترقيم الفواتير "مقفلاً" (بحيث يُجبَر كل مستند على أخذ رقم تسلسلي تلقائي بالكامل دون إمكانية تخصيصه يدوياً، حفاظاً على تسلسل رقمي متصل بلا فجوات لأغراض الامتثال الضريبي/المحاسبي على سبيل المثال).
في حال كان الترقيم مقفلاً في منشأة عميل ما: يهمل النظام الرقم المرجعي في الترقيم ويعطي الفاتورة تسلسلا تلقائيا
14. قيود حجم الملف ومعالجة الملفات الكبيرة (من الوثائق المرجعية العامة)
- الحد الأقصى الكلي لعدد الصفوف المسموح باستيرادها في الملف الواحد هو 5000 صف.
- الملفات التي يصل عدد صفوفها إلى حوالي 100 صف أو أقل تتم معالجتها بشكل مباشر وفوري أمام المستخدم، مع عرض نتيجة العملية (نجاح/جدول أخطاء) مباشرة على نفس الصفحة دون انتظار طويل.
- الملفات التي تتجاوز هذا الحد التقريبي (~100 صف) تتم معالجتها بشكل غير متزامن في الخلفية (بما أنها قد تستغرق وقتاً أطول)، ويُرسَل تقرير مفصَّل بنتيجة العملية إلى البريد الإلكتروني المسجَّل للمستخدم بدلاً من انتظاره حياً أمام الشاشة.
- عند عرض تقرير الأخطاء مباشرة على الشاشة (للملفات الصغيرة)، يوجد حد أقصى لعرض 200 صف خطأ في الجدول المعروض، حتى لو كان عدد الصفوف الفعلي بالملف أكبر من ذلك (حالة غير مرجَّحة عملياً لملف بحجم أقل من 100 صف أصلاً لكنها ذُكرت في التوثيق الأصلي كقيد تقني موجود).
- ملف بلا أي صف بيانات (فارغ تماماً بخلاف صفَّي العناوين) من المتوقع رفضه مع رسالة توضح عدم وجود بيانات صالحة للمعالجة.