تدقيق التحويل المخزني TRF-000001

هل أخذ التحويل موضوع الأمانات (ملكية العميل) واللوطات في الحسبان؟ — فحص على بيانات prod الفعلية · ٢٠٢٦-٠٧-١٢

🤝 الأمانات (ملكية العميل) لم يُؤخَذ في الحسبان

البضاعة أمانة لعميل — اتنقلت فعليًا لكن سجل الأمانة لم يتحرّك، فضاعت ملكية العميل واختلّ الرصيد.

📦 اللوطات لم تُتَتبَّع في هذا التحويل

التحويل يحفظ اللوطات لمخزون الشركة فقط. مخزون المصدر هنا كله أمانة، فما اتسجّلش أي لوت (batch=NULL، صفر تخصيصات).

🚚 ملخّص التحويل

مخزن امنه (wh2) · أمانة ◀── نقل 2 قطعة من «منتج2» ── مخزن رئيسي (wh1) · شركة

الحالة: مُستلَم (received) · التاريخ: 2026-07-12 · الصنف: منتج2 (متتبَّع مخزنيًا) · الكمية: 2 · مصدر البضاعة: أمانة العميل رقم 1 (دفعة CONS-1-…).

🔬 الدليل: قبل وبعد التحويل

المؤشّرالمتوقّع بعد نقل 2الفعلي على prodالنتيجة
المخزون الفعلي في مخزن الأمانة (wh2)198198✓ صحّ
رصيد لوت الأمانة في wh2198200✗ لم يُخصَم
رصيد سجل الأمانة (ledger) في wh2198200✗ لم يُخصَم
لوت أمانة للعميل في المخزن الرئيسي (wh1)1 صف (2 قطعة)0 صف✗ لم يُنشأ
تخصيصات لوطات لهذا التحويل≥ 10✗ لا تتبّع
رقم الدفعة على حركة النقلCONS-1-…NULL✗ فارغ

النتيجة الصافية: المخزون الفعلي في wh2 = 198، لكن سجل الأمانة يقول 200 → السجل يبالغ في ما يملكه العميل بمقدار قطعتين، والقطعتان الموجودتان فعليًا في المخزن الرئيسي بلا هوية ملكية (تبدو كأنها مخزون شركة).

🧭 السبب الجذري (في الكود)

إجراء شحن التحويل ShipTransfer يخصّص من اللوطات بملكية الشركة فقط:

'owner_partner_id' => InventoryLotBalance::OWNER_COMPANY

أي: التحويل المخزني لا يدعم نقل بضاعة الأمانة — هو مصمَّم لمخزون الشركة فقط. وده ثابت في الكود على main/dev كمان، مش خاص بـ prod.

⚠️ الأثر على سلامة البيانات

✅ التوصية

فحص قراءة-فقط على بيانات prod الفعلية (TRF-000001) — لم تُعدَّل أي بيانات. المصدر: inventory_transfers · inventory_lot_balances · consignment_material_ledgers · inventory_movements · ShipTransfer.php