فحص قراءة فقط على نسخة الإنتاج — prod.elbaset.com · ٩ أغسطس ٢٠٢٦

تفضية قسمَي «تغليف» و«تعبئة» — الفحص قبل التنفيذ

أيوة ينفع — بس مش الـ٣٬١٣٧ كلهم. ٣٬٠٢٨ منهم (٩٦٪) نضاف تمامًا ومحدش لمسهم، دول يتحذفوا من غير أي أثر.

الباقي ١٠٩ لأ. دول اتستعملوا فعلًا بعد الاستيراد، و١٠٤ منهم عليهم ٢٬٠٥٠٬٣١٠ وحدة بضاعة — تغليف وتعبئة بتاعة ١٥ عميل تصنيع، موجودة دلوقتي في المخزن.

ولاحظ: نسخة الإنتاج مافيهاش الحارس اللي عملناه النهارده على نسخة التطوير — يعني هتحذفهم من غير ما تسألك ولا تحذّرك.

إجمالي: ٣٬١٣٧ منتج آمن للحذف: ٣٬٠٢٨ خطر: ١٠٩ الحذف: مؤقت (قابل للاسترجاع) لم يُنفَّذ أي حذف

١ الأرقام

٣٬١٣٧
منتج في القسمين
٣٬٠٢٨
مالهمش أي استخدام
١٠٩
مستعملين فعلًا
٢٫٠٥ مليون
وحدة في المخزن
٣٨٦
عميل تصنيع
٣٬١٢٥
اتعملوا في يوم واحد
القسمالاسمعدد المنتجاتنضاف (آمن)مستعملين
8Packaging / تغليف٢٬٦١١
9Filling / تعبئة٥٢٦
الإجمالي٣٬١٣٧٣٬٠٢٨١٠٩

القسمين الاتنين تحت قسم أب اسمه «مستلزمات إنتاج» (رقم ٧)، ومفيش تحتهم أقسام فرعية — يعني تفضيتهم متأثرش على حاجة تانية.

٢ دي كانت عملية استيراد واحدة يوم ٤ أغسطس

٣٬١٢٥ منتج من الـ٣٬١٣٧ اتعملوا في يوم واحد: ٤ أغسطس ٢٠٢٦ — من خمس أيام بالظبط. موزّعين على ٣٨٦ عميل تصنيع، وأكوادهم بادئتها اسم العميل (ORG- أورجانكس · EVA- إيفا فارما · DIL- دايموند لابس …).

فالطلب مفهوم تمامًا: استيراد كبير وعايز ترجّعه. المشكلة إن الخمس أيام اللي فاتوا مادخلوش على فاضي — حركات المخزون على المنتجات دي بتبدأ من ٥ أغسطس وآخرها النهارده ٩ أغسطس.

٣ الـ١٠٩ اللي مينفعش يتحذفوا

عليهم بضاعة عملاء موجودة في المخزن دلوقتي

١٠٤ منهم عليهم رصيد فعلي — إجمالي ٢٬٠٥٠٬٣١٠ وحدة. دي مش أرقام على ورق، دي كراتين وبرطمانات وأغطية قاعدة في المخزن. وأصحابها عملاء بأسمائهم:

الكودالصنفعميل التصنيعالرصيد
ORG-00104كوالتي انصايدORGANIX٦٠٠٬٥٠٠
EVA-00006White Plastic Cap 120EVA Pharma٢٠٦٬٠٧٥
EVA-00009Measuring capEVA Pharma٢٠٥٬٩١٠
EVA-00008Plastic Bottle 150EVA Pharma١٦٢٬١٠٠
ORG-00172Dropper Neck 22ORGANIX٦٠٬٠٠٠
ORG-00159Plastic Bottle 120ORGANIX٥٧٬٠٠٠
EVA-00007Plastic Bottle 250EVA Pharma٤٦٬٨٠٠
ORG-00168Glass Bottle 15ORGANIX٤٥٬٠٠٠
DIL-00021LEC Iron 60 Ml LabelDiamond Labs٤١٬٠٠٠
… و٩٥ صنف كمان. الإجمالي ١٠٤ صنف عليهم رصيد، بتاعين ١٥ عميل.

وكمان مكتوبين على مستندات

١١٢ سطر في أذون التوريد · ٣٧ سطر في أذون الصرف · وسطور في أمر شراء وطلب شراء وإذن استلام وفاتورة شراء. إجمالي ١٤٤ حركة مخزنية مسجّلة عليهم.

٤ إيه اللي هيحصل بالظبط لو اتحذفوا

تدوس حذف الصف بيفضل في الداتابيز (حذف مؤقت) الأرصدة والقيود ما بتتلمسش الصنف بيختفي من كل الشاشات اسمه بيفضى من المستندات

البضاعة بتتحوّل لـ«شبح»

الحذف مؤقت، فمفيش حاجة بتتدمّر. بس الصنف بيختفي من شاشة أرصدة المخزون ومن كارت الصنف ومن مربعات الأصناف — ورصيده بيفضل في قاعدة البيانات. يعني ٦٠٠ ألف وحدة بتاعة أورجانكس تبقى موجودة في المخزن ومش ظاهرة لحد. أمين المخزن مش هيقدر يصرفها ولا حتى يشوفها، والعميل لو سأل عن رصيده مفيش شاشة تجاوبه.

وده مش نظري — ده بالظبط الباب اللي قفلناه النهارده على نسخة التطوير.

وأسماء الأصناف هتفضى من ١٤٩ سطر مستند

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

٥ نسخة الإنتاج مافيهاش الحارس

فحصت الكود على prod. دالة الحذف هناك كلها أربع سطور:

$product = Product::where('company_id', …)->findOrFail($product); $product->delete();

مفيش أي فحص. مفيش سؤال عن الرصيد ولا عن الحركات. الحارس اللي عملناه النهارده (اللي بيرفض بـ٤٢٢ ويقول لك الكمية) موجود على hazemdev2 وmain بس لسه ماتشحنش لـprod.

يعني لو دخلت تحذف دلوقتي من على prod — هيتحذفوا كلهم بالرصيد وكل حاجة، من غير أي تحذير.

٦ مفيش زرار «احذف الكل»

دوّرت على endpoint للحذف الجماعي في Modules/Core/routes/api.phpمفيش. الحذف واحد واحد بس.

يعني عمليًا: ٣٬١٣٧ ضغطة من على الشاشة. مش حل.

البديل الوحيد إن الحذف يتعمل مباشرة على قاعدة بيانات الإنتاج — وده إجراء بيحتاج نسخة احتياطية قبله وموافقة صريحة منك، ومش حاجة أعملها من نفسي.

٧ رأيي

اقسمها نصين — مش عملية واحدة

١) الـ٣٬٠٢٨ النضاف → احذفهم. مالهمش رصيد ولا حركة ولا مكتوبين على أي مستند. حذفهم مالوش أي أثر على حاجة، وبيحقق ٩٦٪ من اللي انت عايزه. ده الجزء اللي أنا مرتاح ليه تمامًا.

٢) الـ١٠٩ المستعملين → متحذفهمش. دول عليهم بضاعة عملاء في المخزن، وحذفهم بيخفي البضاعة مش بيشيلها. لو المطلوب إنهم يختفوا من القسمين، فيه طريقتين ما بيضيّعوش حاجة:

وقبل أي حذف على الإنتاج: نسخة احتياطية لقاعدة البيانات. الحذف مؤقت والاسترجاع ممكن، بس نسخة احتياطية على ٣ آلاف صف مش رفاهية.

٨ محتاج قرارك في ٣ حاجات

١. الـ١٠٩ اللي عليهم بضاعة — أعمل فيهم إيه؟
نقل لقسم تاني (ترشيحي) · إيقاف تنشيط · سيبهم مكانهم · ولا تحذفهم برضه وانت عارف إن ٢ مليون وحدة هتختفي من الشاشات؟

٢. الـ٣٬٠٢٨ النضاف — أحذفهم إزاي؟
مفيش endpoint جماعي، فالتنفيذ هيكون سكريبت على قاعدة بيانات الإنتاج بعد باك أب. أجهّزه وأوريهولك قبل ما يشتغل؟

٣. الحارس نشحنه لـprod؟
دلوقتي أي حد على prod يقدر يحذف أي منتج عليه رصيد من غير تحذير. الحارس جاهز ومختبَر على main. الشحن قرارك انت.