54 lines
2.6 KiB
PHP
54 lines
2.6 KiB
PHP
<?php
|
||
// Admin/fuel/toggle_product.php — تشغيل محفظة الوقود أو إيقافها
|
||
// POST: is_active (1 | 0)
|
||
//
|
||
// قرار المالك: تُبنى الشاشات وتُجهَّز الأمور، ولا يُشغَّل المنتج إلا بعد
|
||
// إتمام الاتفاق مع سلسلة المحطات. هذه هي نقطة ذلك التبديل.
|
||
//
|
||
// ما الذي يتغيّر فعلاً؟ المنتج المُطفأ لا يظهر في `obligationProduct`،
|
||
// فلا يستطيع سائق تفعيل محفظته ولا إصدار قسيمة. أما الالتزامات القائمة
|
||
// ودفترها فلا تتأثر — الإطفاء يغلق الباب ولا يمحو ما خلفه.
|
||
|
||
require_once __DIR__ . '/../../connect.php';
|
||
|
||
// super_admin وحده. تشغيل المنتج يفتح باب إقراض حقيقي بمال الشركة،
|
||
// وهو قرار مالك لا قرار مناوب على اللوحة.
|
||
if ($role !== 'super_admin') {
|
||
jsonError('Unauthorized: Super admin access required', 403);
|
||
}
|
||
|
||
$isActive = filterRequest('is_active') === '1' ? 1 : 0;
|
||
|
||
try {
|
||
// التشغيل بلا محطة واحدة فعّالة يعني سائقاً يفعّل محفظته، يطلب
|
||
// قسيمة، ثم لا يجد أين يصرفها. الرفض هنا أرحم من اكتشافه عند مضخة.
|
||
if ($isActive === 1) {
|
||
$st = $con->query("SELECT COUNT(*) FROM fuel_stations WHERE is_active = 1");
|
||
if ((int) $st->fetchColumn() === 0) {
|
||
jsonError('لا توجد محطة فعّالة واحدة. أضف محطة قبل تشغيل المنتج.');
|
||
}
|
||
}
|
||
|
||
$st = $con->prepare("UPDATE obligation_products SET is_active = ? WHERE code = 'fuel_wallet'");
|
||
$st->execute([$isActive]);
|
||
|
||
if ($st->rowCount() === 0) {
|
||
$chk = $con->query("SELECT 1 FROM obligation_products WHERE code = 'fuel_wallet' LIMIT 1");
|
||
if (!$chk->fetchColumn()) {
|
||
jsonError('منتج محفظة الوقود غير موجود — نفّذ الترحيل أولاً', 404);
|
||
}
|
||
}
|
||
|
||
error_log('[admin/fuel] ' . ($isActive ? 'شُغّلت' : 'أُوقفت') . " محفظة الوقود بواسطة $user_id");
|
||
|
||
jsonSuccess(
|
||
['product_active' => $isActive === 1],
|
||
$isActive === 1
|
||
? 'شُغّلت محفظة الوقود — صارت متاحة للسائقين المؤهَّلين'
|
||
: 'أُوقفت محفظة الوقود — لا تفعيل جديد ولا قسائم جديدة'
|
||
);
|
||
} catch (PDOException $e) {
|
||
error_log('[admin/fuel/toggle_product] ' . $e->getMessage());
|
||
jsonError('Server error', 500);
|
||
}
|