جاري تحميل الأوردرات...
🎯 اضغط "تحديث القائمة" لتحميل أولويات الجرد |
🧾 حمّل الباركودات وابدأ الجرد — وبعد ما تخلص اضغط «⚖️ قارن بشوبيفاي» |
جاري التحميل... |
Inventory-Audit-Updater.html (الاسم مطابق لاسم ريبو الـ Worker). الأقسام التلاتة (جرد فردي · أولويات الجرد · جرد جماعي) وسجل العمليات زي ما هم بالحرف، والـ Worker ما اتلمسش.warehouse_ops (مفتاح warehouse_ops_worker_secret) بدل stockaudit_worker_secret. ⚠️ لازم WORKER_SECRET على inventory-audit-updater-worker يبقى بقيمة المجموعة وPromote — من غيره كل نداء بيرجّع 401.#6b7280 بدل #4b5563) — توكنز الهب هي المعتمدة. وشارة P2 اتثبّتت على --orange-dark عشان التباين فضل زي ما كان.v6.14.3 · Worker v6.2.2) — ريبو Inventory-Audit-Updater لسه شغّال كنقطة رجوع. سجل تغييرات 6.x الكامل في CLAUDE.md بتاع الريبو ده.أداة مراجعة وضبط الجرد — بتعرض أولويات الجرد تلقائيًا (P0–P6) بفلاتر
متقدمة وجرد متسلسل، وبتستثني من الـ Worker المنتجات غير المتتبعة
(inventoryItem.tracked = false) وكل المنتج أو المقاس الموقوف (custom.suspended = true).
موظفو المخزن — جرد المنتجات وضبط الكميات ومتابعة الأولويات.
extra.result) وبتظهر في تاب السجل.productId — في المتجر ده كل لون منتج مستقل في شوبيفاي
والمتغيّرات هي المقاسات (GT1 / Black منتج · GT1 / White منتج
تاني)، فالتجميع ده بيدّي «باقي مقاسات نفس اللون» بالظبط.LOCATION_ID والقطع المغلَّفة في
نفس النداء ونفس اللحظة (at بترجع في الرد)، وللأصناف اللي
اتعدّت بس. المتوقع = available + committed − المغلَّف.
أي صف ما اتقارنش مش بيتنفّذ ورقمه بيتعرض بعلامة «؟».| الجرد الفردي | الجرد الجماعي | |
|---|---|---|
| الميوتيشن | inventoryAdjustQuantities | inventorySetQuantities |
| القيمة | فرق نسبي | رقم مطلق + changeFromQuantity |
| إعادة التنفيذ | بتضاعف التعديل ⛔ | بتترفض من شوبيفاي بلا أي أثر ✅ |
| رصيد اتغيّر أثناء الجلسة | التعديل بيتطبّق على رقم تاني | الصنف بيترفض ويرجع للموظف |
| action | بيعمل إيه |
|---|---|
| get_employees | قايمة الموظفين — لفلتر الموظف في تاب السجل بس (الدخول في الهب، والأداة مابتنادش check_employee/verify_employee/log_logout) |
| list_skus | بحث عن SKU / منتج |
| lookup_barcode | بحث بالباركود (سكانر) |
| get_details | الأوردرات الغير مجهّزة لصنف — بيرجّع orderId الرقمي كمان |
| get_audit_date | آخر تاريخ/موظف/ملاحظات جرد لصنف |
| get_audit_priorities | قايمة أولويات الجرد + truncated |
| adjust_inventory (POST) | تصحيح الرصيد + تسجيل تاريخ الجرد |
| set_audit_date (POST) | تأكيد إن الجرد مظبوط من غير تعديل |
| get_bulk_index | باركودات الجرد الجماعي + أرصدة مبدئية + dupBarcodes + truncated + السقوف |
| bulk_compare (POST) | الأرصدة الحيّة + المغلَّف في نداء واحد ولحظة واحدة (at) — استعلام الأوردرات الغالي للأصناف اللي عليها حجز بس |
| bulk_adjust (POST) | الكتابة الجماعية بقيمة مطلقة + تحقق من الرصيد الحالي (CAS) + صف D1 لكل عنصر |
| get_logs / get_logs_count / get_logs_export | السجل: صفحة · عدّ · تصدير بـ cap/total/truncated |
| diag / get_config | فحص ذاتي · نسخة الـ Worker |
| الحالة | معناها | الإجراءات المصاحبة |
|---|---|---|
| ✓ تم (success) | الفعل تم واتأكد من شوبيفاي | تعديل الكمية + كتابة الميتافيلد + صف D1 |
| ⚠ تم جزئيًا (warning) | الكمية اتعدّلت، لكن تاريخ الجرد ما اتكتبش | تعديل الكمية + صف D1 + تحذير بالإجراء اليدوي — ومتعيدش التعديل |
| ✗ فشل (error) | النداء وصل لشوبيفاي واترفض — مفيش أي أثر | صف D1 بـ result=error بس |
§CONFIG — requireSession() · currentEmployee · apiGet/apiPost فوق wocApi(WOC_WORKERS.audit) (مهلة ٩٠ ث + إلغاء يدوي) · onBeforeLogout · دوال التوقيت (Intl)shared/shell.js — الإعدادات · التوست · النسخة · الفحص الذاتي (wocRunDiag) · الهيدر · الخروج · playBeep (ومعاه نغمة alarm) — نسخة واحدة مضمّنة للهب كله§AUTH-JS / §IDLE-JS — اتشالوا: الدخول في index.html بس، ومفيش خروج تلقائي بالوقت في الهب§SCAN — handleBarcodeScan · handleScanCountInput · §SCAN::plausibility§TOOL-JS — الأولويات · بطاقة المنتج · لوحة التعديل · العد بالسكانر · كارت الأوردرات غير المشحونة (عرض فقط — مفيش أي فعل عليها من الأداة دي)§BULK-JS — loadBulkIndex · processBulkScanCode · computeBulkRows · runBulkCompare · executeBulk · bms* (فلاتر التاب) · exportBulkXLSX§PRIORITY-JS — إعداد جدول الأولويات (PRIO_T) · applyPriorityFilters · sortPriorityRows§TBL-JS — محرّك الجدول الموحّد: tblReg · tblOpenPop · tblRefresh · tblEnsureW (فلاتر رأس العمود + عرض الأعمدة)§LOG-JS — logParams · fetchLog · renderLogTable · LOG_T · exportLogXLSXLS_SECRET = 'warehouse_ops_worker_secret' (الـ shell — مفتاح مجموعة warehouse_ops؛ القديم stockaudit_worker_secret مابقاش بيتقري) — السر الوحيد في localStorage. الاستثناء: تفضيل عرض الأعمدة stockaudit_col_widths_log_v1 / stockaudit_col_widths_bulk_v1 / stockaudit_col_widths_priority_v1 (تفضيل واجهة مش هوية — ارفع _v1 لو الأعمدة اتغيّرت)WOC_WORKERS.audit.url (الـ shell) — constant مش حقل إعدادات (Standards #28)TOOL_VERSION (الـ shell) — نسخة الهب كله، مصدر واحد لكل الصفحاتWOC_WORKERS.audit.min (الـ shell) — أقل نسخة Worker مقبولة. مالهاش أي علاقة بـ TOOL_VERSIONcurrentEmployee — { username, displayName } جاي من sessionStorage عبر requireSession()LOG_PAGE_SIZE = 100 · LOG_T / BULK_T / PRIO_T — إعداد وحالة فلاتر كل جدول (قيم · بحث · تاريخ) لمحرّك §TBL-JSbulkIndex · bulkScans · bulkLive · bulkDone — حالة الجلسة الجماعية، كلها في الذاكرة بسbulkCaps — السقوف بتيجي من الـ Worker (chunkHint/maxBatch/compareChunkHint...) عشان مايبقاش فيه مصدرين بيتعتّقواbulkComparedAt · BULK_COMPARE_STALE_MS — لحظة آخر مقارنة وعتبة التنبيهBULK_STATES — تمن حالات، كل واحدة بتقول هل الصف قابل للتنفيذ وهل بيتحدّد افتراضيًا. not_compared وcompare_failed الاتنين مش قابلين للتنفيذ§TBL-JS واحد للجدولين. القايمة عائمة على body (position:fixed) وبتفضل مفتوحة بعد الاختيار (حارس document.contains). السجل بيبعت الفلاتر والترتيب للسيرفر، والجماعي بيفلتر في المتصفح.Intl على Africa/Cairo — مفيش إزاحة ثابتة، فنهاية التوقيت الصيفي مش محتاجة أي تدخل.timestamp المخزّن (UTC) والعرض بالقاهرة — فرق الساعتين/التلاتة ممكن يحط عملية بعد ٩ مساءً في يوم UTC اللي بعده.logParams()، فالرقم المعروض هو رقم القاعدة مش رقم الصفحة.cap من الـ Worker) — والبانر الأصفر بيقول الرقمين لو حصل.available وcommitted في الواجهة، والعتبة الزمنية للجرد قابلة للتغيير من التاب.extra.result — بتتعرض «—» مش «✓»، لأننا فعليًا مش عارفين.type جديدة — بيكتب تحت adjustment وok زي الفردي، والفرق في extra.mode = 'bulk' وextra.batchId.onHand ≠ available + committed (عليه حالات مخزون تانية زي تالف أو فحص جودة) بيتشال من التنفيذ الجماعي — معادلة الرف مابتغطّيهاش.localStorage.