<?php
require_once "../../includes/db.php";
header('Content-Type: application/json');
session_start(['read_and_close' => true]);

$coid   = $_SESSION['co_id'];
$user_id   = $_SESSION['user_id'];
$comp_id = $_SESSION['co_id'];

session_write_close();

$Pinv_limit  = $_GET['Pinv_limit'] ?? 30;
$Pinv_offset = $_GET['Pinv_offset'] ?? 0;
$storeid = $_GET['storeid'] ?? 0;

$stmt = $pdo->prepare("
SELECT
            d.co_id,d.t_date,  DATE_FORMAT(d.t_date, '%d %b%y') AS M_date, d.t_tt_doc, d.t_doc_no,d.t_type, d.t_ct_det,a.acc_name, d.t_status,
            SUM(CASE WHEN d.t_type = 'DEL' THEN d.t_credit ELSE 0 END) AS total_debit_DEL,
            SUM(CASE WHEN d.t_type = 'GR' THEN d.t_debit ELSE 0 END) AS total_credit_GR,
             SUM(CASE WHEN d.t_type = 'DEL' THEN d.t_credit ELSE 0 END)+
            SUM(CASE WHEN d.t_type = 'GR' THEN d.t_debit ELSE 0 END)+
            SUM(CASE WHEN d.t_type = 'INV RET' THEN d.t_debit ELSE 0 END)+
            SUM(CASE WHEN d.t_type = 'STK INV' THEN d.t_debit ELSE 0 END)+
            SUM(CASE WHEN d.t_type = 'PRCH' THEN d.t_debit ELSE 0 END) AS total_result
        FROM transactions d
        JOIN accounts a ON d.t_cr = a.id         
        WHERE 
           -- ✅ Permission logic (safe version)
    EXISTS (
        SELECT 1
        FROM permissions p
        WHERE p.co_id = :comp_id
          AND p.user_id = :user_id  AND d.co_id =  :comp_id1    
        AND p.pm_acc_lvl IN (0,1,2,4,5,6,7)
          AND (
                p.pm_acc_id = a.id 
                OR (
                    p.pm_acc_categ = a.acc_categ 
                    AND (p.pm_acc_id IS NULL OR p.pm_acc_id = '')
                )
          )
    )

    -- ✅ Filters
            AND d.t_status = 'Pending'
            AND a.acc_categ IN ( 'sales_person', 'customer')
            AND d.t_type IN ('DEL', 'GR', 'INV RET', 'STK INV', 'PRCH')
           
       GROUP BY d.t_doc_no, d.t_type
        ORDER BY d.t_id ASC
        LIMIT :Pinv_limit OFFSET :Pinv_offset
");

$stmt->bindValue(':comp_id', $comp_id, PDO::PARAM_INT);
$stmt->bindValue(':user_id', $user_id, PDO::PARAM_INT);
$stmt->bindValue(':comp_id1', $comp_id, PDO::PARAM_INT);
//$stmt->bindValue(':storeid', $storeid, PDO::PARAM_INT);
$stmt->bindValue(':Pinv_limit', (int)$Pinv_limit, PDO::PARAM_INT);
$stmt->bindValue(':Pinv_offset', (int)$Pinv_offset, PDO::PARAM_INT);
$stmt->execute();

echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
exit;