<?php
// ini_set('display_errors', 1);
// error_reporting(E_ALL);

define("ADMIN", true);
require_once("../../common/lib.php");
require_once("../../common/define.php");
define("TITLE_ELEMENT", 'Stocks des Produits par Dépôt');
if(!isset($_SESSION['user'])){
    header("Location: /admin/login.php");
    exit();
}
require_once("../includes/fn_module.php");  

?>
<!DOCTYPE html>
<head>
    <?php include("../includes/inc_header_common.php"); ?>

</head>
<body>
    <div id="wrapper">
        <?php include("../includes/inc_top.php"); ?>
        <div id="page-wrapper">
            <div class="page-header">
                <div class="container-fluid">
                    <div class="row">
                        <div class="col-md-8">
                            <h1><i class="fa fa-balance-scale"></i> Liste des Mouvements de Stock</h1>
                        </div>
                    </div>
                </div>
            </div>
            <div class="container-fluid" >
                <div class="alert-container">
                    <div class="alert alert-success alert-dismissable"></div>
                    <div class="alert alert-warning alert-dismissable"></div>
                    <div class="alert alert-danger alert-dismissable"></div>
                </div>
				
				
<div class="container" style="width:100%;">
<?php

// Récupérer la liste des dépôts
$query_depots = "SELECT id, name FROM pm_depot where id <> 3 ORDER BY name";
$result_depots = @$db->query($query_depots);
if (!$result_depots) {
    die("Erreur lors de la récupération des dépôts : " . $db->errorInfo()[2]);
}

// Stocker les dépôts dans un tableau
$depots = [];
while ($row = $result_depots->fetch()) {
    $depots[$row['id']] = $row['name'];
}

// Récupérer les produits et leurs stocks dans chaque dépôt
$query_stock = "
    SELECT 
        ds.id_produits, 
        p.desingnation AS produit_name, 
        ds.id_depot, 
        ds.qte, 
		p.prix_ht
    FROM pm_depot_stock ds
    JOIN pm_produitsachat p ON ds.id_produits = p.id
    ORDER BY p.desingnation, ds.id_depot
";
$result_stock = @$db->query($query_stock);
if (!$result_stock) {
    die("Erreur lors de la récupération des stocks : " . $db->errorInfo()[2]);
}

// Organiser les stocks par produit et dépôt, en accumulant les quantités
$stocks = [];
while ($row = $result_stock->fetch()) {
    // Si ce produit existe déjà dans le tableau, on additionne la quantité
    if (!isset($stocks[$row['id_produits']])) {
        $stocks[$row['id_produits']] = [
            'produit_name' => $row['produit_name'],
            'prix_ht' => $row['prix_ht'],
            'depots' => []
        ];
    }
    // Additionner la quantité dans le dépôt
    if (!isset($stocks[$row['id_produits']]['depots'][$row['id_depot']])) {
        $stocks[$row['id_produits']]['depots'][$row['id_depot']] = 0;
    }
    $stocks[$row['id_produits']]['depots'][$row['id_depot']] += $row['qte'];
}
?>

<h2 class="mb-4">Stocks des Produits Mp par Dépôt </h2>
<table class="table table-striped table-bordered">
    <thead>
        <tr>
            <th>Produit</th>
            <?php foreach ($depots as $depot_name): ?>
                <th><?php echo htmlspecialchars($depot_name); ?></th>
            <?php endforeach; ?>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($stocks as $id_produit => $data): ?>
            <tr>
                <td><?php echo htmlspecialchars($data['produit_name']); ?></td>
                <?php foreach ($depots as $id_depot => $depot_name): ?>
                    <td align="center">
                        <?php 
                        echo isset($data['depots'][$id_depot]) 
                            ? htmlspecialchars($data['depots'][$id_depot]) 
                            : '0'; 
                        ?>
                    </td>
                <?php endforeach; ?>
				<td><?php echo htmlspecialchars($data['prix_ht']); ?></td>
            </tr>
        <?php endforeach; ?>
    </tbody>
</table>

</div>
				
				
				
                <div class="row" style="width:100%;">				
<?php
// Récupérer la liste des dépôts
$query_depots = "SELECT id, name FROM pm_depot where id <> 3 ORDER BY name";
$result_depots = @$db->query($query_depots);
if (!$result_depots) {
    die("Erreur lors de la récupération des dépôts : " . $db->errorInfo()[2]);
}

// Stocker les dépôts dans un tableau
$depots = [];
while ($row = $result_depots->fetch()) {
    $depots[$row['id']] = $row['name'];
}

// Récupérer les produits et leurs stocks dans chaque dépôt
$query_stock = "
    SELECT 
        ds.id_produits, 
        p.desingnation AS produit_name, 
        ds.ref_id, 
        ds.id_depot, 
        ds.qte 
    FROM pm_depot_stock ds
    JOIN pm_produitsachat p ON ds.id_produits = p.id
    ORDER BY p.desingnation, ds.id_depot
";
$result_stock = @$db->query($query_stock);
if (!$result_stock) {
    die("Erreur lors de la récupération des stocks : " . $db->errorInfo()[2]);
}

// Stocker les stocks comme une liste
$stocks = [];
while ($row = $result_stock->fetch()) {
    $stocks[] = $row; // Ajout de chaque ligne directement
}
?>
  </div>
<div class="container" style="width:100%;">
    <h2 class="mb-4">Stocks des Produits par BE</h2>
    <table class="table table-striped table-bordered">
        <thead>
            <tr>
                <th>Produit</th>
                <th>Id BE</th>
                <th>Dépôt</th>
                <th>Quantité</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($stocks as $stock): ?>
                <tr>
                    <td><?php echo htmlspecialchars($stock['produit_name']); ?></td>
                    <td align="center">BE_<?php echo htmlspecialchars($stock['ref_id']); ?></td>
                    <td align="center"><?php echo htmlspecialchars($depots[$stock['id_depot']] ?? 'Inconnu'); ?></td>
                    <td align="center"><?php echo htmlspecialchars($stock['qte']); ?></td>
                </tr>
            <?php endforeach; ?>
        </tbody>
    </table>
</div>

          
        </div>
    </div>
</body>
</html>
<?php
$_SESSION['msg_error'] = "";
$_SESSION['msg_success'] = "";
$_SESSION['msg_notice'] = ""; ?>
