أصبحت الشاشة الآن تشغيلية: إضافة صنف جديد، تعديل بياناته، وضبط المخزون يدويًا مع سجل حركات واضح. كما أن أوامر البيع تسجل الآن حركة خصم تلقائية داخل نفس السجل.
| SKU | الصنف | الفئة | المتاح | تكلفة | بيع افتراضي | الحالة | |
|---|---|---|---|---|---|---|---|
| = h($product['sku']) ?> |
= h($product['name']) ?>
= h($product['unit']) ?>
|
= $product['category'] === 'finished' ? 'منتج نهائي' : 'خامة' ?> | = h(format_qty($qty)) ?> = h($product['unit']) ?> | = h(format_money((float) $product['cost_price'])) ?> | = h((float) $product['sale_price'] > 0 ? format_money((float) $product['sale_price']) : '—') ?> | منخفض مستقر |
| الوقت | الصنف | النوع | التغيير | قبل ← بعد | مرجع / ملاحظات |
|---|---|---|---|---|---|
|
لا توجد حركات حتى الآن
أضف صنفًا برصيد افتتاحي أو نفّذ ضبط مخزون أو أمر بيع لتظهر هنا أول حركة.
|
|||||
| = h(date('Y-m-d H:i', strtotime($movement['created_at']))) ?> |
= h($movement['product_name']) ?>
= h($movement['sku']) ?>
|
= h(($delta >= 0 ? '+' : '') . format_qty($delta)) ?> = h($movement['unit']) ?> | = h(format_qty((float) $movement['stock_before'])) ?> → = h(format_qty((float) $movement['stock_after'])) ?> |
= h($movement['reference_code'] ?: '—') ?>
= h($movement['notes'] ?: 'بدون ملاحظات') ?>
|
|