[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: my_shift.php
<?php require_once '../config/database.php'; require_once '../config/functions.php'; requireAuth('representative'); // Get user's current shift $stmt = $pdo->prepare(" SELECT * FROM shifts WHERE representative_id = ? AND status IN ('active', 'end_requested') ORDER BY id DESC LIMIT 1 "); $stmt->execute([$_SESSION['user_id']]); $current_shift = $stmt->fetch(); if (!$current_shift) { header("Location: /shifts/request_start.php?error=no_active_shift"); exit; } // Get shift products $stmt = $pdo->prepare(" SELECT sp.*, p.name, p.unit, p.price FROM shift_products sp JOIN products p ON sp.product_id = p.id WHERE sp.shift_id = ? ORDER BY p.name ASC "); $stmt->execute([$current_shift['id']]); $shift_products = $stmt->fetchAll(); // Get today's statistics $stmt = $pdo->prepare(" SELECT COUNT(*) as invoice_count, COALESCE(SUM(invoice_total), 0) as total_sales, COALESCE(SUM(amount_paid_at_creation), 0) as cash_collected FROM invoices WHERE shift_id = ? AND DATE(created_at) = CURDATE() "); $stmt->execute([$current_shift['id']]); $today_stats = $stmt->fetch(); // Get today's payments $stmt = $pdo->prepare(" SELECT COUNT(*) as count, COALESCE(SUM(amount), 0) as total FROM payments WHERE shift_id = ? AND DATE(created_at) = CURDATE() "); $stmt->execute([$current_shift['id']]); $payments_stats = $stmt->fetch(); $error = ''; $success = ''; // Handle end shift request if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['request_end'])) { if ($current_shift['status'] === 'active') { $notes = trim($_POST['notes'] ?? ''); try { $stmt = $pdo->prepare(" UPDATE shifts SET status = 'end_requested', end_requested_at = NOW(), notes = CONCAT(COALESCE(notes, ''), '\n\nطلب إنهاء: ', ?) WHERE id = ? "); $stmt->execute([$notes, $current_shift['id']]); addAuditLog($pdo, $_SESSION['user_id'], 'request_shift_end', 'shift', $current_shift['id'], ['status' => 'active'], ['status' => 'end_requested'], "طلب إنهاء الوردية"); $success = 'تم إرسال طلب إنهاء الوردية بنجاح'; $current_shift['status'] = 'end_requested'; } catch (Exception $e) { $error = 'خطأ في إرسال الطلب: ' . $e->getMessage(); } } } ?> <!DOCTYPE html> <html lang="ar" dir="rtl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ورديتي - حسابات عربية بن فريش</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.rtl.min.css" rel="stylesheet"> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet"> <style> .shift-status { padding: 20px; border-radius: 15px; color: white; text-align: center; } .status-active { background: linear-gradient(135deg, #198754, #20c997); } .status-end-requested { background: linear-gradient(135deg, #fd7e14, #ffc107); } .stat-card { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 15px; color: white; transition: transform 0.3s ease; } .stat-card:hover { transform: translateY(-5px); } .product-card { border-radius: 10px; border: 1px solid #dee2e6; transition: all 0.3s ease; } .product-card:hover { box-shadow: 0 4px 8px rgba(0,0,0,0.1); } .stock-bar { height: 8px; border-radius: 4px; background: #e9ecef; overflow: hidden; } .stock-fill { height: 100%; transition: width 0.3s ease; } </style> </head> <body class="bg-light"> <div class="container-fluid mt-4"> <div class="d-flex justify-content-between align-items-center mb-4"> <h2><i class="fas fa-clock me-2"></i>ورديتي</h2> <a href="/dashboard.php" class="btn btn-outline-secondary"> <i class="fas fa-arrow-left me-1"></i>العودة </a> </div> <?php if ($error): ?> <div class="alert alert-danger" role="alert"> <i class="fas fa-exclamation-triangle me-2"></i><?= htmlspecialchars($error) ?> </div> <?php endif; ?> <?php if ($success): ?> <div class="alert alert-success" role="alert"> <i class="fas fa-check-circle me-2"></i><?= htmlspecialchars($success) ?> </div> <?php endif; ?> <!-- Shift Status --> <div class="row mb-4"> <div class="col-12"> <div class="shift-status <?= $current_shift['status'] === 'active' ? 'status-active' : 'status-end-requested' ?>"> <h3> <i class="fas fa-<?= $current_shift['status'] === 'active' ? 'play-circle' : 'pause-circle' ?> me-2"></i> <?= $current_shift['status'] === 'active' ? 'الوردية نشطة' : 'في انتظار إنهاء الوردية' ?> </h3> <p class="mb-0"> بدأت في: <?= date('Y-m-d H:i', strtotime($current_shift['started_at'])) ?> <?php if ($current_shift['status'] === 'end_requested'): ?> | طلب الإنهاء: <?= date('Y-m-d H:i', strtotime($current_shift['end_requested_at'])) ?> <?php endif; ?> </p> </div> </div> </div> <!-- Today's Statistics --> <div class="row mb-4"> <div class="col-md-3 mb-3"> <div class="stat-card p-3"> <div class="d-flex align-items-center"> <div class="flex-grow-1"> <p class="mb-1">فواتير اليوم</p> <h4 class="mb-0"><?= $today_stats['invoice_count'] ?></h4> </div> <div class="flex-shrink-0"> <i class="fas fa-file-invoice fa-2x"></i> </div> </div> </div> </div> <div class="col-md-3 mb-3"> <div class="stat-card p-3"> <div class="d-flex align-items-center"> <div class="flex-grow-1"> <p class="mb-1">إجمالي المبيعات</p> <h4 class="mb-0"><?= formatCurrency($today_stats['total_sales']) ?></h4> </div> <div class="flex-shrink-0"> <i class="fas fa-chart-line fa-2x"></i> </div> </div> </div> </div> <div class="col-md-3 mb-3"> <div class="stat-card p-3"> <div class="d-flex align-items-center"> <div class="flex-grow-1"> <p class="mb-1">النقد المحصل</p> <h4 class="mb-0"><?= formatCurrency($today_stats['cash_collected'] + $payments_stats['total']) ?></h4> </div> <div class="flex-shrink-0"> <i class="fas fa-money-bill fa-2x"></i> </div> </div> </div> </div> <div class="col-md-3 mb-3"> <div class="stat-card p-3"> <div class="d-flex align-items-center"> <div class="flex-grow-1"> <p class="mb-1">دفعات اليوم</p> <h4 class="mb-0"><?= $payments_stats['count'] ?></h4> </div> <div class="flex-shrink-0"> <i class="fas fa-receipt fa-2x"></i> </div> </div> </div> </div> </div> <!-- Products Inventory --> <div class="row mb-4"> <div class="col-12"> <div class="card"> <div class="card-header bg-info text-white"> <h5 class="mb-0"><i class="fas fa-boxes me-2"></i>مخزون الوردية</h5> </div> <div class="card-body"> <div class="row"> <?php foreach ($shift_products as $product): ?> <?php $sold_percentage = $product['assigned_quantity'] > 0 ? ($product['sold_quantity'] / $product['assigned_quantity']) * 100 : 0; $remaining_percentage = 100 - $sold_percentage; ?> <div class="col-md-4 mb-3"> <div class="product-card p-3"> <h6 class="mb-2"><?= htmlspecialchars($product['name']) ?></h6> <div class="row text-center mb-2"> <div class="col-4"> <small class="text-muted">المخصص</small> <div class="fw-bold"><?= $product['assigned_quantity'] ?></div> </div> <div class="col-4"> <small class="text-muted">المباع</small> <div class="fw-bold text-success"><?= $product['sold_quantity'] ?></div> </div> <div class="col-4"> <small class="text-muted">المتبقي</small> <div class="fw-bold text-primary"><?= $product['remaining_quantity'] ?></div> </div> </div> <div class="stock-bar"> <div class="stock-fill bg-success" style="width: <?= $sold_percentage ?>%"></div> </div> <small class="text-muted"><?= number_format($sold_percentage, 1) ?>% مباع</small> </div> </div> <?php endforeach; ?> </div> </div> </div> </div> </div> <!-- Quick Actions --> <div class="row mb-4"> <div class="col-12"> <div class="card"> <div class="card-header bg-primary text-white"> <h5 class="mb-0">الإجراءات السريعة</h5> </div> <div class="card-body"> <div class="row"> <?php if ($current_shift['status'] === 'active'): ?> <div class="col-md-3 mb-3"> <a href="/invoices/create.php" class="btn btn-primary btn-lg w-100"> <i class="fas fa-file-invoice mb-2 d-block"></i> فاتورة جديدة </a> </div> <div class="col-md-3 mb-3"> <a href="/payments/create.php" class="btn btn-success btn-lg w-100"> <i class="fas fa-money-bill mb-2 d-block"></i> تسجيل دفعة </a> </div> <div class="col-md-3 mb-3"> <a href="/clients/create.php" class="btn btn-info btn-lg w-100"> <i class="fas fa-user-plus mb-2 d-block"></i> عميل جديد </a> </div> <div class="col-md-3 mb-3"> <a href="/returns/create.php" class="btn btn-warning btn-lg w-100"> <i class="fas fa-undo mb-2 d-block"></i> طلب مرتجع </a> </div> <?php else: ?> <div class="col-12 text-center"> <div class="alert alert-warning"> <h5><i class="fas fa-clock me-2"></i>في انتظار إنهاء الوردية</h5> <p>تم إرسال طلب إنهاء الوردية وهو قيد المراجعة من قبل الإدارة</p> </div> </div> <?php endif; ?> </div> </div> </div> </div> </div> <!-- End Shift Request --> <?php if ($current_shift['status'] === 'active'): ?> <div class="row"> <div class="col-md-6 mx-auto"> <div class="card border-warning"> <div class="card-header bg-warning text-dark"> <h5 class="mb-0"><i class="fas fa-stop-circle me-2"></i>إنهاء الوردية</h5> </div> <div class="card-body"> <form method="POST"> <div class="mb-3"> <label for="notes" class="form-label">ملاحظات الإنهاء (اختياري)</label> <textarea class="form-control" id="notes" name="notes" rows="3" placeholder="أي ملاحظات حول الوردية أو المخزون..."></textarea> </div> <div class="text-center"> <button type="submit" name="request_end" class="btn btn-warning btn-lg" onclick="return confirm('هل أنت متأكد من طلب إنهاء الوردية؟')"> <i class="fas fa-stop-circle me-2"></i>طلب إنهاء الوردية </button> </div> </form> </div> </div> </div> </div> <?php endif; ?> </div> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> </body> </html>
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium320.web-hosting.com
Server IP: 66.29.153.54
PHP Version: 8.2.29
Server Software: LiteSpeed
System: Linux premium320.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.87 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: aoneqssk
User ID (UID): 1285
Group ID (GID): 1290
Script Owner UID: 1285
Current Dir Owner: 1285