<?php
require_once '../includes/db.php';
require_once '../includes/functions.php';
require_once '../includes/security.php';
session_start();

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $request_id = $_POST['request_id'];
    $action = $_POST['action'];
    $user_role = $_SESSION['role'];

    // 1. المشتريات: إضافة مورد (تحويل الحالة لـ ready_for_cheque)
    if ($action == 'assign_supplier' && $user_role == 'purchasing') {
        $supplier_name = $_POST['supplier_name'];
        
        // رفع الملفات (الرخصة والضريبة)
        $upload_dir = '../assets/uploads/suppliers/';
        if (!is_dir($upload_dir)) mkdir($upload_dir, 0777, true);
        
        $license_path = uploadFile($_FILES['license_file'], $upload_dir);
        $tax_path = uploadFile($_FILES['tax_cert_file'], $upload_dir);

        // حفظ المورد
        $stmt = $pdo->prepare("INSERT INTO suppliers (name, license_file, tax_cert_file) VALUES (?, ?, ?)");
        $stmt->execute([$supplier_name, $license_path, $tax_path]);
        $supplier_id = $pdo->lastInsertId();

        // تحديث الطلب
        $stmt = $pdo->prepare("UPDATE requests SET supplier_id = ?, payment_status = 'ready_for_cheque' WHERE id = ?");
        $stmt->execute([$supplier_id, $request_id]);
        
        header("Location: view_request.php?id=$request_id&msg=supplier_added");
    }

// ... بعد التحديث ...
logActivity($pdo, 'issue_cheque', "إصدار شيك رقم $cheque_number بقيمة الطلب #$request_id");

    // 2. المحاسب: إصدار الشيك (تحويل الحالة لـ cheque_issued)
    elseif ($action == 'issue_cheque' && $user_role == 'accountant') {
        $cheque_number = $_POST['cheque_number'];
        
        $stmt = $pdo->prepare("UPDATE requests SET cheque_number = ?, payment_status = 'cheque_issued' WHERE id = ?");
        $stmt->execute([$cheque_number, $request_id]);

        header("Location: view_request.php?id=$request_id&msg=cheque_issued");
    }

    // 3. المشتريات: إغلاق الطلب (إرفاق الفواتير والإغلاق النهائي)
    elseif ($action == 'close_payment' && $user_role == 'purchasing') {
        // رفع الفواتير وسند القبض في جدول attachments
        $upload_dir = '../assets/uploads/docs/';
        
        // التعامل مع الفاتورة
        if (!empty($_FILES['invoice_file']['name'])) {
            $path = uploadFile($_FILES['invoice_file'], $upload_dir);
            $pdo->prepare("INSERT INTO attachments (request_id, uploaded_by_user_id, file_path, file_type) VALUES (?, ?, ?, 'invoice')")
                ->execute([$request_id, $_SESSION['user_id'], $path]);
        }
        
        // التعامل مع سند القبض
        if (!empty($_FILES['receipt_file']['name'])) {
            $path = uploadFile($_FILES['receipt_file'], $upload_dir);
            $pdo->prepare("INSERT INTO attachments (request_id, uploaded_by_user_id, file_path, file_type) VALUES (?, ?, ?, 'receipt')")
                ->execute([$request_id, $_SESSION['user_id'], $path]);
        }

        // إغلاق الطلب
        $stmt = $pdo->prepare("UPDATE requests SET status = 'closed', payment_status = 'paid' WHERE id = ?");
        $stmt->execute([$request_id]);

        header("Location: view_request.php?id=$request_id&msg=request_closed");
    }
}

function uploadFile($file, $dir) {
    $filename = time() . '_' . basename($file['name']);
    move_uploaded_file($file['tmp_name'], $dir . $filename);
    return $filename;
}
?>