<?php
require_once '../includes/auth.php';
require_once '../db.php';
require_once '../includes/header.php';
require_once '../includes/sidebar.php';

$batchWise = isset($_GET['batch']) ? (int)$_GET['batch'] : 0;

/*
    DEFAULT = PRODUCT WISE STOCK
    OPTIONAL = BATCH WISE STOCK
*/

if ($batchWise == 1) {

    // ==========================
    // BATCH WISE STOCK
    // ==========================
    $sql = "
        SELECT 
            pi.id,
            pi.batch_no,
            pi.purchase_price,
            pi.mrp,
			pi.selling_price,
            pi.gst_percent,
            pi.available_qty,
            pi.expiry_date,
            pi.created_at,

            p.name AS product_name,
            p.brand,
            p.category,
            p.hsn_code,
            p.unit,

            v.name AS vendor_name

        FROM purchase_items pi
        JOIN products p ON p.id = pi.product_id

        LEFT JOIN purchase_orders pu ON pu.id = pi.purchase_order_id
        LEFT JOIN vendors v ON v.id = pu.vendor_id

        WHERE pi.available_qty > 0
        ORDER BY p.name ASC
    ";

} else {

    // ==========================
    // PRODUCT WISE STOCK
    // ==========================
    $sql = "
        SELECT 
            p.id AS product_id,
            p.name AS product_name,
            p.brand,
            p.category,
            p.hsn_code,
            p.unit,

            SUM(pi.available_qty) AS total_stock,
            MAX(pi.mrp) AS mrp,
            MAX(pi.purchase_price) AS purchase_price,
            MAX(pi.gst_percent) AS gst_percent,
			pi.selling_price AS selling_price

        FROM purchase_items pi
        JOIN products p ON p.id = pi.product_id

        WHERE pi.available_qty > 0
        GROUP BY p.id
        ORDER BY p.name ASC
    ";
}

$result = $conn->query($sql);
?>

<!-- ================= DATATABLES CSS ================= -->
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.6/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.4.2/css/buttons.dataTables.min.css">

<style>
.content {
    padding: 20px;
}

.page-title {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 10px;
}

.stock-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    padding: 10px;
    background: #f3f4f6;
    border-radius: 6px;
}

.stock-toolbar label {
    font-size: 14px;
    font-weight: bold;
}

.list-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.list-table th {
    background: #111827;
    color: white;
    padding: 10px;
    text-align: left;
    font-size: 13px;
}

.list-table td {
    padding: 8px;
    border-bottom: 1px solid #ddd;
}

.badge {
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: bold;
    display: inline-block;
}

.badge-green {
    background: #d1fae5;
    color: #065f46;
}

.badge-red {
    background: #fee2e2;
    color: #991b1b;
}

.dataTables_wrapper .dt-buttons {
    margin-bottom: 10px;
}

.dataTables_wrapper .dt-buttons button {
    background: #2563eb !important;
    color: #fff !important;
    border: none !important;
    padding: 6px 10px !important;
    border-radius: 4px !important;
    margin-right: 5px !important;
    font-size: 12px !important;
    cursor: pointer;
}

.dataTables_wrapper .dt-buttons button:hover {
    background: #1d4ed8 !important;
}

.dataTables_length select {
    padding: 4px;
    margin: 0 5px;
}
</style>


<div class="content">

    <div class="page-title">📦 Stock Report</div>

    <div class="stock-toolbar">
        <form method="get" style="margin:0;">
            <label>
                <input type="checkbox" name="batch" value="1" <?= ($batchWise==1 ? 'checked' : '') ?>
                       onchange="this.form.submit()">
                Show Batch Wise Stock
            </label>
        </form>

        <div style="font-size:13px;color:#444;">
            <?= ($batchWise==1 ? "Mode: Batch Wise" : "Mode: Product Wise") ?>
        </div>
    </div>


    <table class="list-table" id="stockTable">
        <thead>
            <tr>
                <th>#</th>
                <th>Product</th>
                <th>Brand</th>
                <th>Category</th>
                <th>HSN</th>
                <th>Unit</th>

                <?php if ($batchWise==1): ?>
                    <th>Vendor</th>
                    <th>Batch</th>
                    <th>Expiry</th>
                <?php endif; ?>

                <th>MRP</th>
                <th>Purchase Price</th>
                <th>Selling Price</th>
                <th>GST%</th>

                <th><?= ($batchWise==1 ? "Available Qty" : "Total Stock") ?></th>
            </tr>
        </thead>

        <tbody>
            <?php
            $i = 1;
            if ($result && $result->num_rows > 0):
                while ($row = $result->fetch_assoc()):

                    $qty = ($batchWise==1) ? floatval($row['available_qty']) : floatval($row['total_stock']);

                    $expiry = "-";
                    if ($batchWise==1 && !empty($row['expiry_date']) && $row['expiry_date'] != "0000-00-00") {
                        $expiry = date('d-m-Y', strtotime($row['expiry_date']));
                    }

                    $vendorName = ($batchWise==1) ? ($row['vendor_name'] ?? '') : '';
                    if ($batchWise==1 && trim($vendorName) == '') $vendorName = "Unknown";

                    $sellingPrice = isset($row['selling_price']) ? floatval($row['selling_price']) : 0;
            ?>
                <tr>
                    <td><?= $i++ ?></td>
                    <td><?= htmlspecialchars($row['product_name']) ?></td>
                    <td><?= htmlspecialchars($row['brand'] ?? '-') ?></td>
                    <td><?= htmlspecialchars($row['category'] ?? '-') ?></td>
                    <td><?= htmlspecialchars($row['hsn_code'] ?? '-') ?></td>
                    <td><?= htmlspecialchars($row['unit'] ?? '-') ?></td>

                    <?php if ($batchWise==1): ?>
                        <td><?= htmlspecialchars($vendorName) ?></td>
                        <td><?= htmlspecialchars($row['batch_no'] ?? '-') ?></td>
                        <td><?= htmlspecialchars($expiry) ?></td>
                    <?php endif; ?>

                    <td>₹ <?= number_format($row['mrp'], 2) ?></td>
                    <td>₹ <?= number_format($row['purchase_price'], 2) ?></td>
                    <td>₹ <?= number_format($sellingPrice, 2) ?></td>
                    <td><?= number_format($row['gst_percent'], 2) ?>%</td>

                    <td>
                        <?php if ($qty > 0): ?>
                            <span class="badge badge-green"><?= $qty ?></span>
                        <?php else: ?>
                            <span class="badge badge-red">0</span>
                        <?php endif; ?>
                    </td>
                </tr>
            <?php
                endwhile;
            endif;
            ?>
        </tbody>
    </table>

</div>


<!-- ================= DATATABLES JS ================= -->
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>

<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>

<script src="https://cdn.datatables.net/buttons/2.4.2/js/dataTables.buttons.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.2/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.2/js/buttons.print.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.4.2/js/buttons.colVis.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>


<script>
$(document).ready(function () {

    let table = $('#stockTable').DataTable({
        pageLength: 25,
        lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
        dom: 'Bfltip',

        buttons: [
            {
                extend: 'excelHtml5',
                title: 'Stock_Report'
            },
            {
                extend: 'pdfHtml5',
                title: 'Stock_Report',
                orientation: 'landscape',
                pageSize: 'A4'
            },
            {
                extend: 'print',
                title: 'Stock Report'
            },
            {
                extend: 'colvis',
                text: 'Choose Columns'
            }
        ]
    });

});
</script>


<?php require_once '../includes/footer.php'; ?>
