أيوة ينفع — بس مش الـ٣٬١٣٧ كلهم.
٣٬٠٢٨ منهم (٩٦٪) نضاف تمامًا ومحدش لمسهم، دول يتحذفوا من غير أي أثر.
الباقي ١٠٩ لأ. دول اتستعملوا فعلًا بعد الاستيراد، و١٠٤ منهم عليهم
٢٬٠٥٠٬٣١٠ وحدة بضاعة — تغليف وتعبئة بتاعة ١٥ عميل تصنيع، موجودة دلوقتي في المخزن.
ولاحظ: نسخة الإنتاج مافيهاش الحارس اللي عملناه النهارده على نسخة
التطوير — يعني هتحذفهم من غير ما تسألك ولا تحذّرك.
| القسم | الاسم | عدد المنتجات | نضاف (آمن) | مستعملين |
|---|---|---|---|---|
| 8 | Packaging / تغليف | ٢٬٦١١ | — | — |
| 9 | Filling / تعبئة | ٥٢٦ | — | — |
| الإجمالي | ٣٬١٣٧ | ٣٬٠٢٨ | ١٠٩ | |
القسمين الاتنين تحت قسم أب اسمه «مستلزمات إنتاج» (رقم ٧)، ومفيش تحتهم أقسام فرعية — يعني تفضيتهم متأثرش على حاجة تانية.
٣٬١٢٥ منتج من الـ٣٬١٣٧ اتعملوا في يوم واحد: ٤ أغسطس ٢٠٢٦ — من خمس أيام بالظبط.
موزّعين على ٣٨٦ عميل تصنيع، وأكوادهم بادئتها اسم العميل
(ORG- أورجانكس · EVA- إيفا فارما · DIL- دايموند لابس …).
فالطلب مفهوم تمامًا: استيراد كبير وعايز ترجّعه. المشكلة إن الخمس أيام اللي فاتوا مادخلوش على فاضي — حركات المخزون على المنتجات دي بتبدأ من ٥ أغسطس وآخرها النهارده ٩ أغسطس.
١٠٤ منهم عليهم رصيد فعلي — إجمالي ٢٬٠٥٠٬٣١٠ وحدة. دي مش أرقام على ورق، دي كراتين وبرطمانات وأغطية قاعدة في المخزن. وأصحابها عملاء بأسمائهم:
| الكود | الصنف | عميل التصنيع | الرصيد |
|---|---|---|---|
| ORG-00104 | كوالتي انصايد | ORGANIX | ٦٠٠٬٥٠٠ |
| EVA-00006 | White Plastic Cap 120 | EVA Pharma | ٢٠٦٬٠٧٥ |
| EVA-00009 | Measuring cap | EVA Pharma | ٢٠٥٬٩١٠ |
| EVA-00008 | Plastic Bottle 150 | EVA Pharma | ١٦٢٬١٠٠ |
| ORG-00172 | Dropper Neck 22 | ORGANIX | ٦٠٬٠٠٠ |
| ORG-00159 | Plastic Bottle 120 | ORGANIX | ٥٧٬٠٠٠ |
| EVA-00007 | Plastic Bottle 250 | EVA Pharma | ٤٦٬٨٠٠ |
| ORG-00168 | Glass Bottle 15 | ORGANIX | ٤٥٬٠٠٠ |
| DIL-00021 | LEC Iron 60 Ml Label | Diamond 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. الشحن قرارك انت.