كيف نصرف من الشحنات وتواريخ الصلاحية تلقائيًا عند البيع دون أن يختارها الكاشير؟

Viewed 59

لدينا عميل يستورد لحومًا، ويتم توريدها على مخزن المصنع برقم الشحنة (Lot) وتاريخ الصلاحية، ثم تُحوَّل إلى الفروع بنفس بيانات الشحنات.

البيع داخل الفروع يتم من خلال نقاط البيع (POS)، ولا نريد إلزام الكاشير باختيار الشحنة أو تاريخ الصلاحية أثناء البيع حتى لا يتسبب ذلك في بطء حركة البيع.

المطلوب:

  • أن تُتابَع الشحنات والصلاحيات داخل النظام بشكل طبيعي (توريد، تحويل، رصيد لكل شحنة).
  • لكن عند البيع، يتم الصرف تلقائيًا من الشحنات المتاحة بالمخزن دون أي تدخل من الكاشير.

ما أفضل طريقة لتنفيذ ذلك عمليًا ومخزنيًا داخل النظام؟

1 Answers

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

الطريقة: عنصر تجميع الشحنات Collect Lots

يوجد في النظام عنصر جاهز لتجميع الشحنات اسمه EACollectLot، وله طريقتان للتشغيل:

1) تشغيل تلقائي عبر مسار كيان (Entity Flow)

أنشئ مسار كيان على مستند البيع (مثل مستند نقاط البيع أو إذن الصرف) بالعنصر EACollectLot، واجعله يعمل عند الحدث «ما قبل تحديث الحقول المحسوبة».

عند ذلك يقوم النظام، لكل سطر بيع لا يحتوي على شحنة، بـ:

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

بهذا لا يرى الكاشير شيئًا يتعلق بالشحنات، ويتم الصرف المخزني الصحيح من الشحنات خلف الكواليس.

2) تشغيل يدوي بزر

نفس الوظيفة متاحة كزر باسم تجميع الشحنات (Collect Lots) في سندات موديول إدارة التوريد (Supply Chain)، يمكن الضغط عليه لملء الشحنات يدويًا عند الحاجة.

يعمل مع كل محددات الصنف

العنصر لا يقتصر على الشحنة وتاريخ الصلاحية، بل يعمل مع باقي محددات الصنف أيضًا، مثل: اللون، المقاس، النسبة الفعالة، الإصدار (Revision)، الصنف الفرعي، والموقع. ويمكن تحديد المُحدِّد الذي تريد التجميع بناءً عليه كمدخل للعنصر (الافتراضي هو كود الشحنة).

مهم: ترتيب الصرف من الشحنات (FEFO)

في حالة اللحوم والمواد ذات الصلاحية، يهمّنا أن يُصرف الأقرب انتهاءً أولًا. ترتيب اختيار الشحنات يتم التحكم فيه من إعدادات موديول إدارة التوريد عبر الحقول التالية:

  • ترتيب الكميات المقترحة أولًا بـ
  • ترتيب الكميات المقترحة ثانيًا بـ
  • مع تحديد تصاعدي/تنازلي لكل منها

والقيم المتاحة للترتيب تشمل:

  • تاريخ الإنتهاء ← اختر هذه القيمة تصاعديًا لتطبيق سياسة الأقرب انتهاءً أولًا (FEFO).
  • أول تاريخ استلام ← لتطبيق سياسة الوارد أولًا صادر أولًا (FIFO).
  • محدّد البحث نفسه.

كما يوجد جدول ترتيب حقول التجميع بواسطة لترتيب أدقّ لكل محدّد على حدة، حيث تحدد فيه المُحدِّد والترتيب بناءً على حقل وتصاعدي/تنازلي.

ملاحظة: يمكن أيضًا ضبط الوحدة المستعملة لاقتراح الكميات في نفس الإعدادات لتوحيد الوحدة التي تُحسب بها الكميات المتاحة عند التجميع.

الخلاصة

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

تمام يا هندسة، بس هو مسار الكيان هيكون فيه مدخلات؟

لا - مش محتاج حاجة عشان الـ lotId هو الافتراضي.

Related