تحليل المرحلة ١ — بلا كود · implement-research

الإنتاج: توحيد بحث المنتجات والتحكم في أعمدة الجداول

طلبك: «في الإنتاج نستخدم نفس البحث بتاع المنتجات، وكمان نفس قصة تغيير حجم العواميد زي الفواتير والمستندات». التدقيق شمل ٥٠ شاشة إنتاج و١٦ جدول سطور والطبقة المشتركة والباك-إند — وطلّع إن اللي طلبته قابل للتنفيذ وأرخص مما تتصور، لكنه كشف عيبين أخطر بكتير على نفس الشاشات: حفظ مكوّنات قائمة التصنيع بيتجاهل التعديلات بالكامل، ومنتقي المنتجات مش شغّال لأي دور إنتاج أصلًا.

شاشات مفحوصة: ٥٠ جداول سطور: ١٦ عيوب حرجة: ٢ ٤ أغسطس ٢٠٢٦ · moonui2 · hazemdev2 الحالة: مستنّي موافقتك

٠ اقرأ ده الأول — عيبان أهم من الطلب نفسه

🔴 العيب الأول: تعديل مكوّنات قائمة التصنيع لا يُحفظ إطلاقًا حرج

وده على الشاشة اللي إنت سمّيتها بالظبط كمثال.

السلسلة كاملة، متتبَّعة من الواجهة للسيرفر:

  1. الشاشة بتبني حمولة كاملة فيها components[] (وجوّاها substitutes[]) وoperations[]boms.component.ts:465-499
  2. وعند التعديل بتنادي PUT /production/boms/{id}boms.component.ts:504
  3. وخدمة الواجهة مافيهاش دالة مزامنة مكوّنات أصلًا — المدخل PUT /boms/{id}/components موجود في السيرفر والواجهة ما بتناديهوش ولا مرة
  4. وUpdateBomRequest ما بيعلنش components ولا operationsUpdateBomRequest.php:19-44
  5. وBomController::update() بيعمل $bom->update($request->validated())BomController.php:128. المصفوفتين اتمسحوا قبل ما يوصلوا.

النتيجة: تعدّل مكوّنات أو عمليات قائمة تصنيع، الشاشة تقول «تم الحفظ»، ومفيش حاجة اتغيّرت. المكوّنات بتتحفظ عند الإنشاء بس.

ومفيش اختبار بيغطّي ده — الاختبارات الموجودة بتجرّب مدخل المزامنة اللي الواجهة ما بتناديهوش.

وليه ده يسبق شغل الأعمدة: قيمة الجدول المشترك كلها إنه يعدّل سطور مستند موجود. لو حطّيناه فوق مسار حفظ بيرمي مخرجاته، الشغل هيبان إنه سبب عيبًا هو في الحقيقة بس كشفه.

وفخ تاني في نفس المكان: BomController::show() ما بيحمّلش components.substitutes، وsyncComponents بيمسح كل البدائل ويعيد إنشاءها من الحمولة. يعني تحميل → تعديل → مزامنة عبر الشاشة الحالية = مسح كل البدائل.

🔴 العيب التاني: منتقي المنتجات مش شغّال لأي دور إنتاج حرج

منتقي المنتجات المشترك بينادي GET /api/core/products، وده محروس بصلاحية core.products.view.

ولا دور إنتاج واحد بيمتلكها. اتأكدنا بطريقتين — بالبحث في سيدر أدوار الإنتاج (صفر نتيجة)، وبقراءة قاعدة بيانات التطوير:

الدورصلاحيات إنتاجcore.products.view
مشرف الإنتاج٢٠٠
مدير الإنتاج٢٠٠
مخطّط الإنتاج١١٠
محاسب تكاليف الإنتاج٣٢٠
مدير الجودة١١٠
أمين مخزن٢٠
مدير النظام / المالك٢٥ / ٧٣

وحارس المسار في الواجهة بيعدّي (بيفحص صلاحية الإنتاج)، فالشاشة بتفتح عادي — وطلب المنتقي بيترفض ٤٠٣. والرد ما بيسمّيش الصلاحية الناقصة (معطّل في الإعدادات)، والمعترِض ما بيعرضش ٤٠٣ — فبيقع في فرع الخطأ والقايمة تفضل فاضية.

يعني: مشرف الإنتاج بيفتح قائمة التصنيع، يدوّر على مكوّن، وما يلاقيش حاجة — من غير أي رسالة.

ده موجود قبل أي شغل ليك — مش هيتسبّب فيه التوحيد. بس أي تعديل على الشاشات دي هياخد اللوم عليه، فلازم يتصلّح أو يتستثنى صراحةً.

وملاحظة على أساس التقييم

خطة يونيو للتوحيد استثنت الإنتاج صراحةً وكتبت: «التصنيع (BOM/أوامر) — مرحلة لاحقة — تركيب مختلف (مكوّنات/توجيه) — يُقيَّم منفصل». وطلبك ده هو التقييم المنفصل المقصود. فمفيش قرار بيتراجع هنا — فيه قرار مؤجَّل بيتاخد.

١ المشكلة

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

٢ الوضع الحالي

٢-١ الخبر الحلو: اللي طلبته مبني ومجرَّب

السحب والتحجيم والإظهار/الإخفاء التلاتة شغّالين على ١٤ شاشة. والخطة الأصلية كانت مؤجّلة التحجيم كمرحلة اختيارية — واتبنى برضه.

القدرةموجودة؟الدليل
سحب لإعادة الترتيبأيوهtransaction-line-items.component.ts:40-46, 352-363 · tx-column-layout.ts:116-122
سحب للتحجيم (بالبكسل)أيوه…component.ts:64-70, 389-468 — مقبض ٥px، واعٍ بالـRTL، حد أدنى 48px
إظهار/إخفاءأيوهعبر نظام رؤية الحقول في الإعدادات، والجدول بيحترمه عبر TxColumn.visible
الحفظ لكل مستندأيوهمفتاح خارجي في DocConfigState
الحفظ لكل الشركةأيوهSettingDefinitionSeeder.php:135-149 — scope => 'company'
الحفظ لكل مستخدملأ — مش موجودالقرار كان «الشركة» في خطة يونيو
على أي شاشة إنتاجولا واحدةصفر إشارة لخدمة الإعدادات تحت features/production/

٢-٢ وفيه طريقتين للتبنّي — مش واحدة

الطريقة الأولى — المكوّن المشترك كامل

١٢ شاشة: فواتير وأوردرات المبيعات والمشتريات · المرتجعات · الطلبات · الجرد · التسويات · التحويلات · الأرصدة الافتتاحية.

الشاشة بتسلّم وصف أعمدة والمكوّن بيرسم الصف كله.

شرطه القاسي: السطور لازم تكون FormArray. مش مصفوفة إشارات ولا كائنات عادية.

الطريقة التانية — آلية الأعمدة فوق جدولك أنت

شاشتين: أذون الصرف · أذون الاستلام.

الشاشة بتحتفظ بخلاياها كما هي وتاخد السحب والتحجيم بس.

واتعملت بالظبط للحالات دي — تعليقها في الكود بيقول إن خلايا الجداول دي «مختلفة جوهريًا» فاتنقلت الآلية وحدها.

٢-٣ جرد بحث المنتجات في الإنتاج

تستخدم البحث المشترك
8
منتقي خاص (فجوة)
1
قوائم مش منتجات
14
مالهاش منتجات
33

الثمانية: قوائم التصنيع · التشغيلات · الأمانات · الخطة الرئيسية · أوامر الإنتاج · التوجيه · عقود التصنيع للغير · العُدد.

الفجوة الوحيدة: شاشة البحث والتطوير — بتستخدم قائمة منسدلة عادية، وبتسحب كتالوج المنتجات كله عبر مُصفِّح بيجيب ٢٥ صف في المرة، وبتصفّي في المتصفح. ولو الطلب فشل، بتبلع الخطأ وتسيب القايمة فاضية.
وده معناه إنها كمان مش هتاخد تحسين النهاردة (عرض اسم عميل التصنيع والبحث باسمه) — لأنها برّه المكوّن المشترك.

٢-٤ جرد جداول السطور — ١٦ جدول

الجدولمخزن السطورالأعمدة (بالترتيب)
قوائم التصنيع — المكوّناتFormArrayالمنتج · الكمية · الوحدة · نسبة الهالك · نوع الصرف · مستوى الصرف · تسلسل العملية · التكلفة/وحدة · مصدر التوريد · كمية العميل/وحدة · إجراءات (٣ أزرار)
قوائم التصنيع — البدائلFormArray متداخلالمنتج البديل · الأولوية · النسبة · حذف — جوّه صف موسَّع
قوائم التصنيع — العملياتFormArray# · مركز الإنتاج · اسم العملية · زمن التجهيز · زمن التشغيل · تكلفة العمالة/ساعة — بلا منتج
التوجيه — العملياتإشارات١٢ عمودًا: رقم · اسم · مركز · عُدّة · تجهيز · تشغيل · تجاويف · زمن دورة · انتظار · نقل · ☑ فحص · ☑ حرجةبلا منتج
الخطة الرئيسيةإشاراتالمنتج · الفترة (تاريخ) · الكمية · المصدر · حذف
الأمانات — سطور الاستلامإشاراتالمنتج · الكمية · التكلفة المعلنة · رقم التشغيلة · الصلاحية · تاريخ الإنتاج · قيمة السطر · حذف
أوامر الإنتاج — صرف الموادإشارات٥ أعمدة للقراءة + كمية الصرف + مخزن + مالكسطور من السيرفر، ما تتضافش
شهادات التحليل · التأكيدات · استلام التام · الورشة · التقويمات · طلبات الصرف الزائد · تخصيص التشغيلات · عقود التصنيعمختلطأشكال خاصة — تفاصيل في §٤

٣ المطلوب

  1. كل مكان فيه بحث منتجات في الإنتاج يستخدم نفس البحث المشترك.
  2. جداول سطور الإنتاج تاخد نفس التحكم في الأعمدة — ترتيب وتحجيم وإخفاء — زي الفواتير والمستندات.
  3. المثال المسمّى: قوائم التصنيع، تبويب المكوّنات.

٤ الفجوة — والحكم على كل شاشة

يتحوّل كامل = المكوّن المشترك · يتحوّل جزئيًا = آلية الأعمدة فوق جدوله · ما يتحوّلش · لا ينطبق

الشاشةالحكمالسبب — من الكود
الخطة الرئيسيةكاملالسطر = منتج + تاريخ + كمية + مصدر. الشكل الوحيد في الإنتاج المطابق لسطر مستند. التكلفة الوحيدة: تحويل من إشارات لـFormArray.
الأمانات — الاستلامكاملمنتج + كمية + تكلفة وحدة + قيمة سطر محسوبة = سطر مستند حرفيًا. والتشغيلة والصلاحية أعمدة عادية. وبُعد الملكية على رأس المستند مش على السطر — فمش بيكلّف عمودًا.
قوائم التصنيع — المكوّناتجزئيًاعلى البحث المشترك وFormArray خلاص — بس ١١ عمودًا ومفيش سعر ولا ضريبة ولا إجمالي (اللي المكوّن المشترك مبني حواليهم)، وفيها صف بدائل موسَّع والمكوّن مالوش أي دعم للتوسيع.
أوامر الإنتاج — صرف الموادجزئيًاالسطور مبنية من السيرفر وما تتضافش، و٥ من ٨ أعمدة للقراءة. مش شبكة إدخال — شبكة تنفيذ. بس آلية الأعمدة هتفيد لأنها أعرض جدول في الموديول.
التوجيه — العملياتجزئيًا١٢ عمودًا مفيش فيهم منتج، وعمودين اختيار (☑) — والمكوّن المشترك مالوش نوع خلية منطقية أصلًا.
شهادات التحليلجزئيًاFormArray بس بلا منتج، وفيه خلية حالة نجاح/رسوب مشتقّة — والنوع المحسوب في المكوّن بيرجّع رقم مش حالة.
البحث والتطويرجزئيًامافيهاش جدول سطور أصلًا — بس منتقيين المنتج فيها تبديل مباشر للبحث المشترك. الفجوة الوحيدة الباقية في الموديول.
عقود التصنيع للغيرلأكروت مكدّسة فيها منطقة نص ورافع ملفات لكل سطر — مفيش نوع خلية بيرسم أي منهم.
البدائل · تخصيص التشغيلاتلأجداول متداخلة جوّه صف موسَّع من جدول أب. المكوّن بيطلع صفًا واحدًا لكل سطر، بلا أي خطّاف توسيع.
التأكيدات · استلام التام · الورشةلأدرجة + كمية + سعر بلا منتج. والورشة مصمّمة بأزرار لمس كبيرة — تحويلها بيدمّر الغرض منها.
التقويماتلأ٧ صفوف ثابتة لأيام الأسبوع، ما بتتضافش ولا بتتحذف. مش مجموعة سطور أصلًا.
التكاليف المعيارية · التسعير · التجهيز · جداول التقاريرلأجداول عرض للقراءة — التحكم في أعمدتها شغل جدول عادي مش جدول سطور.
باقي ٣٣ شاشةلا ينطبقلوحات ومؤشرات وتقارير وإعدادات — مفيش منتقي ولا سطور.
يتحوّل كامل
2
يتحوّل جزئيًا
6
ما يتحوّلش
11
لا ينطبق
33

حقيقتان بتحدّدا التكلفة

١) وصف الأعمدة مش محتاج تسجيل في فهرس المستندات. الأعمدة بتيجي من الشاشة نفسها؛ ومفتاح المستند بيُستخدم للحفظ بس. يعني الشاشة تاخد السحب والتحجيم بمجرد ما تمرّر مفتاحًا جديدًا. التسجيل مطلوب للإظهار/الإخفاء بس.

٢) والشرط الحقيقي هو FormArray — و٨ من جداول الإنتاج مصفوفات إشارات، فتحويلها للطريقة الأولى بيتطلّب إعادة كتابة حالة الشاشة. والطريقة التانية ما عندهاش الشرط ده إطلاقًا.

٥ الملفات والاعتماديات

الواجهة

  • shared/components/transaction-line-items/* مشترك
  • shared/util/tx-column-layout.ts مشترك
  • core/services/doc-config.service.ts (الفهرس + الحفظ)
  • features/production/boms/boms.component.*
  • features/production/routing/routing.component.*
  • features/production/mps/mps.component.*
  • features/production/consignment/consignment.component.*
  • features/production/orders/production-orders.component.*
  • features/production/coa/coa.component.*
  • features/production/rnd/rnd.component.* الفجوة
  • core/services/bom.service.ts مسار الحفظ المكسور

الباك-إند

  • Modules/Production/…/BomController.php update() بيرمي السطور
  • Modules/Production/…/UpdateBomRequest.php ما بيعلنش components
  • Modules/Production/…/RoutingController.php
  • Modules/Production/…/ProductionOrderController.php
  • Modules/Production/…/MpsController.php
  • Modules/Production/…/ConsignmentController.php
  • Modules/Core/…/ProductController.php (حارس core.products.view) ٤٠٣ الصامت
  • Modules/Production/database/seeders/ProductionRoleSeeder.php الصلاحية الناقصة
  • Modules/Core/…/SettingDefinitionSeeder.php (core.document_settings)

خبر مطمئن على العقود

الإنتاج مش بيرفض المفاتيح غير المعروفة. السِمة اللي بترفض موجودة في نقاط البيع بس — والإنتاج كله تحقّق لارافيل عادي.

وده بيقلب الخطر مش بيلغيه: أي مفتاح جديد أو متغيّر الاسم مش هيرفع خطأ — هيتساقط في صمت. ودي نفس عيلة العيب اللي صلّحناه النهاردة في اسم القسم بالإنجليزي.

٦ الحالات الحدّية والمخاطر

أربعة حقول لها معنى في السيرفر — أي تغيير فيها بيكسر بصمت

الحقلالخطر
مصدر التوريد
factoryown
factory معناها «غير معلَن — ارجع لعلم أمر التصنيع»، وown معناها «إجبارًا من المصنع حتى على أمر تصنيع للغير». جدول بيوحّدهم أو بيدّي القيمة الافتراضية own لصف فاضي بينقل مواد مملوكة للعميل إلى الإنتاج تحت التشغيل ويرحّل قيودًا ما كانش المفروض توجد.
مالك السطر = ٠ صفر رمز مقصود مش قيمة فاضية: null = تقسيم تلقائي · 0 = إجبار «مملوك» · >0 = عميل. جدول بيبعت ٠ لخانة رقمية فاضية بيجبر كل السطور على «مملوك» ويسرّب مواد العميل.
وحدة سطر الصرف السيرفر بيتجاهل اللي الواجهة بعتته ويكتب وحدة المادة المخططة. إضافة منتقي وحدة للسطر بتكسر التطابق ده وتوجّه كل صرف لفرع التحويل — واللي بدوره بيأثّر على فواتير رسوم التصنيع.
التكاليف محسوبة مش مُدخَلة — التكلفة المخططة بتتحسب من قائمة التصنيع والإجماليات بتتجمّع. عمود تكلفة قابل للتعديل بيكتب رقمًا السيرفر بيناقضه.

وفخ خامل هيتفعّل لو خلّينا شبكة المواد قابلة للتعديل

مسار حفظ المواد اليدوي ما بيشغّلش محلّل الملكية ولا بيطبّق الهالك ولا نسبة الدفعة — ده بيحصل في مسار قائمة التصنيع بس. النهاردة الشاشة ما بتبعتش مواد (تبويب المواد للقراءة)، فالفخ نايم. وأي تحويل بيخلّي الشبكة دي قابلة للتعديل هيوقّظ مسارًا بلا حل للملكية — مصدر التوريد بياخد own، وكميات العميل تفضل صفر، وأوامر التصنيع للغير بترحّل موادها على الإنتاج تحت التشغيل.

مخاطر في الطبقة المشتركة نفسها — بعيدة عن الإنتاج

العيبالأثر
التحجيم بيفشل جوّه النوافذالمكوّن المشترك بيدوّر على العمود بطريقة بترجع فاضية جوّه نافذة منبثقة فالتحجيم ما بيعملش حاجة. النسخة التانية (أذون الصرف) صلّحت ده والإصلاح ما اتنقلش. يمسّ الـ١٢ شاشة اللي جداولها في نوافذ.
حفظ صامت الفشلمستخدم معاه صلاحية عرض الإعدادات بس بيشوف المقابض ويسحب — والحفظ بيترفض ٤٠٣ والخطأ بيتبلع. الشكل بيتغيّر قدامه ويرجع بعد التحديث.
عمود مخفي بيضيع من الترتيبسحب وأي عمود مخفي ⇒ مفتاحه بيتشال من الترتيب ويروح لآخر الصف لما يظهر. موثَّق في الكود كعيب قائم ومتصلَّح لعمود واحد بس.

٧ معاينة الواجهة — قبل / بعد

٧-١ قوائم التصنيع — تبويب المكوّنات (الشاشة اللي سمّيتها)

قبل ١١ عمودًا ثابتة — مفيش ترتيب ولا تحجيم ولا إخفاء
قائمة تصنيع — أقراص باراسيتامول ٥٠٠حفظ · إلغاء
#المنتجالكميةالوحدةالهالك %نوع الصرفمستوى الصرفتسلسلتكلفة/وحدةمصدر التوريدكمية العميل
1باراسيتامول خام120كجم2يدويلكل أمر1048.00مصنع🗑
2نشا ذرة15كجم1مرتجعلكل أمر1012.00عميل0.5🗑
⚠ الحفظ هنا لا يُخزّن أي تعديل على المكوّنات — العيب الأول في §٠
بعد نفس الخلايا بالحرف — الجديد: مقبض سحب على كل رأس عمود + خط تحجيم + الإخفاء من الإعدادات
قائمة تصنيع — أقراص باراسيتامول ٥٠٠⚙ الأعمدة · حفظ
# المنتج الكمية الوحدة الهالك % مصدر التوريد تكلفة/وحدة نوع الصرف مخفي
1باراسيتامول خام أكتيو فارما120كجم2مصنع48.00🗑
2نشا ذرة ميد وان15كجم1عميل12.00🗑
⣿ اسحب الرأس لتغيير الترتيب · الخط الأزرق لتغيير العرض · الترتيب والعرض يتحفظوا لكل الشركة
اسم العميل بيظهر في نتيجة البحث خلاص من تحسين النهاردة

٧-٢ الخطة الرئيسية — التحويل الكامل

قبل جدول مكتوب بالإيد
المنتجالفترةالكميةالمصدر
أوجمنتين2026-09500توقّع🗑
بانادول2026-091200أمر بيع🗑
بعد المكوّن المشترك — سحب + تحجيم
المنتج الفترة الكمية المصدر
أوجمنتين ميد وان2026-09500توقّع🗑
بانادول جلاكسو2026-091200أمر بيع🗑

٧-٣ البحث والتطوير — تبديل المنتقي

قبل قائمة بكل الكتالوج
المنتج
اختر… ▾
⚠ بتسحب كل المنتجات ٢٥ صف في المرة · ولو فشلت تفضل فاضية بلا رسالة
بعد البحث المشترك
المنتج
🔍 ميد وان
Rxobronex Label — ميد وان فارما — RXP-00015
Hi Cholei Label — ميد وان فارما — RXP-00021
بحث على السيرفر · باسم العميل كمان · بلا تحميل مسبق

٨ خطة التنفيذ

المرحلة صفر مش اختيارية. شغل الأعمدة فوق مسار حفظ مكسور هيبان إنه سبب عيبًا هو بس كشفه — والمنتقي اللي بيرجع فاضي هياخد اللوم على التوحيد.

المرحلة ٠ — إصلاح ما هو مكسور قبل أي شيء

WPالنطاقالمستودعالإثبات
WP1حفظ مكوّنات وعمليات قائمة التصنيع — إما توجيه الشاشة لمدخل المزامنة الموجود، أو إعلان المصفوفتين في طلب التعديل. ومعاها تحميل البدائل في show() وإلا الدورة الكاملة بتمسحهم.BE+FEأحمر قبل أخضر: اختبار يعدّل مكوّنًا ويثبت إنه ما اتغيّرش النهاردة، ثم يتغيّر بعد الإصلاح.
WP2صلاحية core.products.view لأدوار الإنتاج — مع migration جسر (السيدر مستثنى من التحديث، فالإضافة فيه بس بتفضل ميتة على كل العملاء).BEاختبار: دور إنتاج يفتح البحث ويرجّع نتايج.

المرحلة ١ — الاتّساق الرخيص

WPالنطاقالمستودعملاحظات
WP3البحث والتطوير → البحث المشترك (موضعين). بيشيل تحميل الكتالوج كامل وبيقفل مصيدة الحجم، وبيخلّي الادعاء «كل الإنتاج على البحث المشترك» صحيحًا ١٠٠٪.FEأرخص مكسب في الخطة
WP4نقل إصلاح التحجيم داخل النوافذ من النسخة التانية للمكوّن المشترك.FEيمسّ ١٢ شاشة شغّالة — بره الإنتاج
WP5إصلاح الحفظ الصامت الفشل — مستخدم بلا صلاحية تعديل ما يشوفش المقابض، أو الفشل يترفع كرسالة.FEيمسّ ١٤ شاشة

المرحلة ٢ — التحكم في الأعمدة للإنتاج

WPالنطاقالمستودعملاحظات
WP6قوائم التصنيع — المكوّنات تاخد آلية الأعمدة فوق جدولها (مش المكوّن المشترك). أوسع وأكثر جدول استخدامًا، وفيه ٣ أعمدة ما بيحتاجهاش غير المستخدم المتقدّم.FEده اللي طلبته بالظبط
WP7الخطة الرئيسية → المكوّن المشترك (تحويل من إشارات لـFormArray). إثبات المفهوم — أرخص جدول شكله مستند.FE
WP8الأمانات — الاستلام → المكوّن المشترك.FE
WP9التوجيه · شهادات التحليل · صرف مواد الأوامر → آلية الأعمدة فوق جداولها.FEالتوجيه محتاج نوع خلية منطقية لو اتحوّل بالكامل — مش مطلوب هنا

٩ قرارات محتاجة قرارك

١. نصلّح المكسور الأول ولا نعمل اللي طلبته على طول؟

توصيتي: المرحلة صفر أولًا. تعديل مكوّنات قائمة التصنيع مش بيتحفظ النهاردة، والمنتقي بيرجع فاضي لكل أدوار الإنتاج. لو عملنا الأعمدة فوق ده، أول ما تجرّب هتقول «التعديل بوّظ الشاشة» — وهو كان بايظ قبلها.

٢. قوائم التصنيع: آلية الأعمدة فوق جدولها، ولا المكوّن المشترك كامل؟

توصيتي: آلية الأعمدة فوق جدولها. المكوّن المشترك مبني حوالي سعر وضريبة وإجمالي — وقائمة التصنيع مالهاش ولا واحد فيهم — وفيها صف بدائل موسَّع والمكوّن مالوش دعم توسيع. إضافة الدعم ده هتغيّر قالبًا بتستخدمه ١٢ شاشة شغّالة. والنتيجة للمستخدم واحدة بالظبط: نفس السحب ونفس التحجيم ونفس الحفظ.

٣. حفظ ترتيب الأعمدة: للشركة كلها زي المستندات، ولا لكل مستخدم؟

خطة يونيو قرّرت الشركة للمستندات — منطقي لأن كتبة كتير بيدخلوا نفس الفاتورة. لكن قائمة التصنيع بيانات أساسية بيعدّلها ٢–٣ مهندسين، والترتيب المفضّل شخصي أكتر. توصيتي: نفضل على «الشركة» — الاتساق أهم، والحفظ لكل مستخدم مش موجود في النظام أصلًا وبناؤه شغل مستقل.

٤. المرحلة ١ (WP4/WP5) بتمسّ ١٢–١٤ شاشة برّه الإنتاج — ندخلها؟

توصيتي: أيوه، وقبل شغل الإنتاج. التحجيم على الأرجح مش شغّال في أي جدول جوّه نافذة النهاردة، والحفظ بيفشل صامتًا لمستخدم صلاحياته عرض بس. لو دخلنا الإنتاج قبلهم، هنبني فوق آلية فيها عيبين معروفين.

٥. شبكة مواد أوامر الإنتاج — نخلّيها قابلة للتعديل؟

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

الخلاصة

اللي طلبته موجود ومجرَّب على ١٤ شاشة — سحب وتحجيم وإخفاء، محفوظين على مستوى الشركة. والإنتاج برّه لأن خطة يونيو أجّلته صراحةً وقالت «يُقيَّم منفصل» — وده التقييم. والتكلفة أقل مما تتصور: الشاشة بتاخد السحب والتحجيم بمجرد تمرير مفتاح مستند — التسجيل مطلوب للإخفاء بس.

لكن الشاشة اللي سمّيتها مكسورة من تحت: تعديل المكوّنات ما بيتحفظش إطلاقًا — الواجهة بتبعت للمدخل الغلط والسيرفر بيرمي المصفوفتين في صمت، ومفيش اختبار بيغطّي ده. ومنتقي المنتجات بيرجع فاضي لكل أدوار الإنتاج لأن ولا دور فيهم معاه صلاحية عرض المنتجات — والرفض ٤٠٣ بيتبلع بلا رسالة.

فالترتيب اللي أوصي بيه: صلّح الحفظ والصلاحية (مرحلة ٠) → وحّد البحث في الشاشة الشاذّة وانقل إصلاحين في الطبقة المشتركة (مرحلة ١) → وبعدين التحكم في الأعمدة (مرحلة ٢)، وأولها قائمة التصنيع اللي إنت طلبتها.

تحليل المرحلة ١ — مفيش كود ولا migration اتكتب · تلات مسارات تدقيق متوازية · ٤ أغسطس ٢٠٢٦ · moonui2 · hazemdev2
مستنّي موافقتك على النطاق والترتيب قبل أي تنفيذ.