التنبؤ بالمشتريات (Purchase Forecast)
أفضل عملية شراء هي التي تتم قبل أن تنفد البضاعة، لا بعدها. التنبؤ بالمشتريات يحوّل قسم المشتريات من رد الفعل ("نفد المخزون! اطلب الآن!") إلى الاستباق ("سينفد خلال ثلاثة أسابيع، فلنطلب الآن بتسليم عادي وأسعار أفضل").
لماذا التنبؤ؟
الشراء التفاعلي مكلف: استعجال الشحن، وأسعار أعلى، ونفاد يوقف الإنتاج أو يخسر مبيعات. أما التنبؤ فيمنحك رؤية مسبقة للاحتياج، فتشتري بكميات اقتصادية، وتفاوض على أسعار أفضل، وتراعي أوقات الانتظار (Lead Times)، وتتفادى النفاد والتكدّس معًا.

مستند التنبؤ بالمشتريات (NewPurchaseForecast)
مستند التنبؤ بالمشتريات هو الأداة التي تقدّر بها الاحتياج المستقبلي لكل صنف خلال فترة قادمة. يعتمد التقدير على مصدر كمية تختاره، ثم يقترح كميات الشراء بعد خصم المتوفر في المخزون والمطلوب فعليًا.
تستطيع تضييق نطاق التنبؤ بحسب الصنف أو العلامة التجارية أو نطاق التاريخ، وضبط فترة الاستناد (المدة التاريخية التي يُقاس عليها الاستهلاك).
مصادر الكمية: على أي أساس نتنبأ؟
قوة التنبؤ في مصدر بياناته. يدعم النظام أكثر من مصدر يمكن مزجها:
- تاريخ المبيعات: استهلِك معدّل البيع السابق لتوقّع الطلب القادم - الأنسب لأصناف التوزيع والتجزئة. تُضبط قواعد استخلاص المبيعات عبر إعداد مصدر المبيعات (PFSalesSourceConfig): نطاق التاريخ، وفلاتر الأصناف، وأنواع الفواتير المشمولة أو المستبعَدة.
- الرصيد المتاح: مصدر الكميات (PFQuantitySource) قائمة من المخازن والمواقع (
quantitySourceLines). يقرأ التنبؤ رصيد كل صنف الحالي فيها، فيمكن أن يمثّل مصدرٌ «المخزن الرئيسي» ومصدرٌ آخر «محلات الفروع».
إعدادات توقعات المشتريات (PurchaseForecastConfig)
إعدادات توقعات المشتريات هي الوصفة التي يتبعها مستند توقعات المشتريات: أي فترات مبيعات تُقاس، وأي أرصدة تُحسب، والمعادلات التي تحوّل هذه الأرقام إلى تغطية وطلب مقترح. كل مستند توقعات يذكر إعداداً واحداً في حقل إعدادات توقعات المشتريات، فيستطيع كل مشترٍ — أو كل عائلة أصناف — الاحتفاظ بوصفته الخاصة. والضغط على حساب البيانات (أو الحفظ مع تفعيل حساب البيانات كل مرة مع الحفظ) يشغّل الوصفة بهذا الترتيب: صافي المبيعات، ثم كميات المخزون، ثم إجماليات السطر، ثم آخر شراء، ثم معادلات التغطية.
خيارات «اعتبار…» (Consider)
افتراضياً، يجمع صافي مبيعات السطر كل مبيعات صنفه أياً كان الفرع أو المقاس الذي بيع به. وكل خيار اعتبار يقسّم المبيعات على محدد واحد بدلاً من ذلك: إذا فُعّل وكان لسطر التوقعات قيمة في ذلك المحدد، لا تُحسب للسطر إلا المبيعات التي تحمل القيمة نفسها. أما السطر الذي يترك المحدد فارغاً فيظل يجمع كل مبيعات الصنف. استعملها عندما تتنبأ لكل فرع أو لكل مقاس — مثلاً سطر لكل فرع مع تفعيل اعتبار الفرع. وهذه الخيارات تخص صافي المبيعات وحده؛ أما كميات المخزون فهي دائماً رصيد الصنف كله في مخازن المصدر.
| الخيار | معرّف الحقل |
|---|---|
| اعتبار الشركة · اعتبار الفرع · اعتبار الإدارة · اعتبار القطاع · اعتبار المجموعة التحليلية | considerLegalEntity, considerBranch, considerDepartment, considerSector, considerAnalysisSet |
| اعتبار المقاس · اعتبار اللون · اعتبار الإصدار · اعتبار الصندوق · اعتبار الشحنة | considerSize, considerColor, considerRevisionId, considerBox, considerLotId |
| اعتبار الصنف الفرعي · إعتبار النسبة الفعالة · إعتبار النسبة الغير فعالة | considerSubItem, considerActivePerc, considerInactivePerc |
إعدادات صافي المبيعات 1–5
إعدادات صافي المبيعات 1 إلى إعدادات صافي المبيعات 5 (netSales1Configuration … netSales5Configuration) يشير كل منها إلى إعدادات مصدر المبيعات، ويملأ أعمدة صافي مبيعات 1–5 في سطور التوقعات. اترك أحدها فارغاً فلا يُحسب عموده. والخانات الخمس تتيح مقارنة الفترات جنباً إلى جنب — الشهر الماضي، والربع الماضي، والربع نفسه من العام الماضي — ثم يضع التنبؤ أكبر الخمسة في أعلى فترة مبيعات.
وتحمل إعدادات مصدر المبيعات (PFSalesSourceConfig):
| الحقل | معرّف الحقل | ماذا يفعل |
|---|---|---|
| بداية الفترة / نهاية الفترة | periodStart, periodEnd | إلى أي مدى في الماضي تُفتح النافذة وتُغلق، محسوباً رجوعاً من تاريخ مستند التوقعات — فبداية 6 أشهر ونهاية شهر واحد تقيسان الأشهر الخمسة التي انتهت قبل شهر. والبداية أو النهاية الفارغة تعني «أمس». وتُكتب النافذة المستعملة فعلاً في رأس المستند في صافي مبيعات N - من تاريخ / إلى تاريخ. |
| مصادر المبيعات | salesSources (entityType, entityList, effectType) | أنواع المستندات التي تُجمع سطورها — نوع واحد في كل سطر، أو قائمة أنواع. ويحدد نوع التأثير الإشارة: إضافة يجمع، وخصم يطرح، وافتراضي يجمع المبيعات ويطرح المرتجعات (أي مستند من نوع الفواتير يعيد البضاعة إلى الداخل). ولا تُحسب إلا المستندات المحفوظة المؤرخة داخل النافذة. |
| فلاتر البيانات | dataFilters (book, term, invoiceClassification, docCategory, customer، ومحددات الصنف، والمحددات المحاسبية) | تضيّق المستندات المقروءة: بالدفتر، وتوجيه المستند، وتصنيف الفاتورة، وفئة المستند، والعميل (عميل، أو تصنيف عميل 1 أو 2، أو فئة عملاء)، والمخزن، والموقع، والمقاس، واللون، والشحنة وسائر محددات الصنف، والشركة / القطاع / الفرع / الإدارة / المجموعة التحليلية. والقيم في العمود نفسه عبر عدة سطور بدائل؛ أما الأعمدة المختلفة فيجب أن تتطابق كلها. |
مصدر الكميات 1–20
مصدر الكميات 1 إلى مصدر الكميات 20 (quantity1Source … quantity20Source) يشير كل منها إلى مصدر كميات، ويملأ أعمدة الكمية 1–20 برصيد الصنف الحالي في مخازن ذلك المصدر ومواقعه. والخانة الفارغة تضع صفراً في عمودها. ويجمع التنبؤ الكميات العشرين في إجمالي الكميات.
معادلات حساب التغطية 1–10 والطلب المقترح
معادلة حساب تغطية 1–10 (coverage1CalcFormula … coverage10CalcFormula) ومعادلة حساب الطلب المقترح حسب التغطية (suggestedOrderBasedOnCoverageFormula) معادلات Groovy قصيرة تُشغَّل مرة لكل سطر توقعات؛ وتذهب كل نتيجة إلى عمود تغطية N أو الطلب المقترح حسب التغطية المقابل. والمعادلة الفارغة تترك عمودها كما هو. ويمكنك داخل المعادلة استعمال:
line— سطر التوقعات بأعمدته:line.netSales1…line.netSales5، وline.highestSalesPeriod، وline.quantity1…line.quantity20، وline.totalQuantities، وline.lastPurchaseQuantity، وline.lastPurchaseDate، والتغطيات المحسوبة قبلها (line.coverage1…)، لأن المعادلات تُشغَّل بالترتيب من 1 إلى 10 ثم الطلب المقترح أخيراً.requiredCoverageInMonthsوminimumSpecifiedCoverageForReorderInMonths— حقلا رأس المستند التغطية المطلوبة بالأشهر والحد ألادنى للتغطية المحددة لإعادة الطلب بالأشهر.
مثلاً، إذا كان صافي مبيعات 1 يقيس الشهر الأخير وحده، فمعادلة الطلب المقترح line.netSales1.multiply(requiredCoverageInMonths).minus(line.totalQuantities) تطلب ما يكفي الأشهر المطلوبة ناقصاً ما هو متاح فعلاً.
والطلب المقترح هو نقطة بداية المشتري: فمستند الشراء المتولد من التوقعات يأخذ كمياته من الطلب المقترح حسب التغطية(المعدلة)، الذي يملؤه المشتري — يدوياً، أو بإجراء النسخ المذكور أدناه.
ادمج التنبؤ مع أوقات الانتظار
التنبؤ وحده يخبرك بـ"كم" ستحتاج، لكن وقت الانتظار للصنف (المعرّف في بطاقة الصنف) يخبرك بـ"متى" تطلب. اجمع الاثنين لتطلب في التوقيت الذي يضمن وصول البضاعة قبل النفاد تمامًا.
الإجراءات في هذه الشاشات
في مستند التنبؤ بالشراء:
- حساب البيانات (Calculate Data) — يجب حفظ المستند؛ يشغّل التنبؤ ويملأ سطور التفاصيل من مصادر الكمية التي اخترتها.
- تجميع الأصناف (Collect Items) — يملأ السطور من معايير تجميع الأصناف بدل إدخالها صنفًا صنفًا، مراعيًا مفاتيح الرأس الخاصة بفرد الإصدارات وفرد المقاسات والألوان. ويرفض العمل إن كانت سطور التجميع فارغة.
- فرد بيانات السطر المحدد (Spread Selected Line Data) — يأخذ السطر الواقف عليه ويفرده على إصدارات الصنف ومقاساته وألوانه، وفق المفاتيح نفسها.
- إختيار كل السطور (Select All Lines) وعدم إختيار كل السطور (Unselect All Lines) — يؤشّران أو يزيلان التأشير عن كل سطور التفاصيل دفعة واحدة، وعليهما يعتمد الإجراءان التاليان وإنشاء المستند.
- حذف قيم الطلب المقترح حسب التغطية(المعدلة) للسطور المختارة (Delete Suggested Order Based On Adjusted Coverage Values From Details For Selected Lines) — يمسح اقتراح التغطية المعدلة في السطور المؤشَّرة لتعيده من جديد.
- نسخ قيم الطلب المقترح حسب التغطي إلي الطلب المقترح حسب التغطية(المعدلة) إذا كان فارغاً للسطور المختارة (Copy Values Of Suggested Order Based On Coverage To Suggested Order Based On Adjusted Coverage If Empty For Selected Lines) — يملأ اقتراح التغطية المعدلة من اقتراح التغطية العادي في السطور المؤشَّرة، لكن حيث لا يزال فارغًا فقط، فيبقى ما عدّلته بيدك كما هو.
- إنشاء مستند شراء للأصناف المختارة (Generate Purchase Document For Selected Items) — يجب حفظ المستند؛ يسأل هل ينشئ أمر شراء أم طلب صنف (وأمر الشراء هو الافتراضي) وينشئه من السطور المؤشَّرة.
وفي التنبؤ بالشراء الأقدم والتنبؤ بالمبيعات، تحمل صفحة التفاصيل احتساب التكلفة (Calculate Cost) وأحتساب القيم (Calculate Values) وأحتساب قيم السنة الحالية (Calculate Current Year Values)، ولصفحة الإجماليات احتساب التكلفة واحتساب القيم للإجمالي (Calculate Aggregate Values) وأحتساب القيم الإجمالية للسنة الحالية (Calculate Aggregate Current Year Values) الخاصة بها.
من التنبؤ إلى أمر الشراء
التنبؤ ليس غايةً بذاته، بل مقدّمة للشراء. بعد توليد التنبؤ ومراجعته، تتحول مقترحاته إلى طلبات أو أوامر شراء، فتكتمل الحلقة من توقّع الحاجة إلى تلبيتها. وبهذا يصبح الشراء مدفوعًا بالبيانات لا بالحدس.
رسائل قد تظهر لك
| الرسالة | لماذا | ما تفعله |
|---|---|---|
| «يجب تحديد سطر واحد علي الأقل» | يُولَّد مستند شراء من التنبؤ ولم يُعلَّم أي سطر في عمود السطر المختار. | علّم السطور التي تريد شراءها، ثم نفّذ إجراء التوليد من جديد. |
| «نهاية الفترة لا يمكن أن تكون اكبر من بداية الفترة» | في إعداد مصدر مبيعات التنبؤ بالشراء تُحسب الفترتان إلى الخلف من تاريخ إنشاء السجل، فلا بد أن تكون بداية المدى هي الأبعد. ويُرفع الرفض حين ترجع بداية الفترة للخلف أقل مما ترجع نهاية الفترة. | ضع الفترة الأطول في بداية الفترة والأقصر في نهاية الفترة — ستة أشهر مضت بداية، وشهر مضى نهاية. |
| «المخزن {0} في السطر {1} لا يساوي المخزن الموجود في الموقع {2}» | سطر مصدر كميات يذكر مخزنًا وموقعًا تابعًا لمخزن آخر، فالرصيد الذي سيقرأه غير محدد. | استخدم موقعًا من مخزن السطر، أو أفرِغ المخزن واترك الموقع يحدده. |
الخطوات التالية
- رحلة الشراء - تحويل التنبؤ إلى أوامر شراء فعلية
- فهم أصناف المخزون - حيث تُضبط أوقات الانتظار والمخزون الاحتياطي
- الجرد المخزني - دقة المخزون أساس دقة التنبؤ