<?php
require_once __DIR__ . '/../../templates/header.php';
?>

<div class="container-fluid">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h1 class="h3 mb-0 text-gray-800">Danh sách phiếu nhập - VERSION 2</h1>
        <div>
            <a href="/quanlybanhang/modules/imports/tao_phieunhap.php" class="btn btn-primary btn-sm"><i class="fas fa-plus fa-sm"></i> Tạo phiếu nhập</a>
        </div>
    </div>

    <div class="card shadow mb-4">
        <div class="card-body">
            <form class="row gx-3 gy-2 align-items-end" id="filterForm">
                <div class="col-md-3"><label class="form-label">Chế độ xem</label><select class="form-select form-control" id="filterView"><option value="all" selected>Phiếu nhập</option><option value="debt">Phiếu nhập còn nợ</option><option value="deleted">Phiếu nhập đã xóa</option></select></div>
                <div class="col-md-3"><label class="form-label">Mã phiếu</label><input type="text" class="form-control" id="searchMaPhieu" placeholder="Nhập mã phiếu..."></div>
                <div class="col-md-2"><label class="form-label">Từ ngày</label><input type="date" class="form-control" id="filterTuNgay"></div>
                <div class="col-md-2"><label class="form-label">Đến ngày</label><input type="date" class="form-control" id="filterDenNgay"></div>
                <div class="col-auto"><button type="submit" class="btn btn-primary">Lọc</button></div>
            </form>
        </div>
    </div>

    <div class="card shadow mb-4">
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-bordered table-hover align-middle" id="phieuNhapTable" style="width:100%;">
                    <thead class="table-light text-center">
                        <tr><th></th><th>Mã phiếu</th><th>Kho</th><th>Ngày nhập</th><th>Người nhập</th><th class="text-end">Tổng tiền</th><th class="text-end">Nợ</th><th>Hành động</th></tr>
                    </thead>
                    <tbody></tbody>
                </table>
                <div class="d-flex justify-content-between align-items-center mt-3 fw-bold fs-6">
                    <div id="summary-info"></div>
                    <div id="pagination-container"></div>
                </div>
            </div>
        </div>
    </div>
</div>

<?php require_once __DIR__ . '/../../templates/footer.php'; ?>

<script>
$(document).ready(function() {
    function formatNumber(num) { return (parseFloat(num) || 0).toLocaleString('vi-VN'); }
    function formatChildRow(d) {
        let rows_html = '';
        if (d && d.length > 0) {
            d.forEach((item, index) => {
                let finalLineTotal = (item.quantity || 0) * (item.price || 0);
                rows_html += `<tr><td>${index + 1}</td><td>${item.code || ''}</td><td>${item.name || ''}</td><td class="text-center">${item.quantity || 0}</td><td class="text-end">${formatNumber(item.price)}</td><td class="text-end">${formatNumber(finalLineTotal)}</td></tr>`;
            });
        } else { return '<div class="p-3 text-center">Không có chi tiết sản phẩm.</div>'; }
        return `<div class="p-3" style="background-color: #f8f9fc;"><h6 class="fw-bold text-primary">Chi tiết sản phẩm:</h6><table class="table table-sm table-bordered"><thead class="table-light"><tr><th>STT</th><th>Mã SP</th><th>Tên SP</th><th class="text-center">SL</th><th class="text-end">Giá nhập</th><th class="text-end">Thành tiền</th></tr></thead><tbody>${rows_html}</tbody></table></div>`;
    }
    
    var table = $('#phieuNhapTable').DataTable({
        "processing": true, "serverSide": true,
        "ajax": {
            "url": "/quanlybanhang/ajax/imports_ajax.php",
            "type": "POST",
            "cache": false, // Thêm thiết lập chống cache mạnh nhất
            "data": function(d) {
                d.action = 'get_imports_list';
                d.view_mode = $('#filterView').val();
                d.ma_phieu = $('#searchMaPhieu').val();
                d.tu_ngay = $('#filterTuNgay').val();
                d.den_ngay = $('#filterDenNgay').val();
            }
        },
        "columns": [
            { "className": 'details-control text-center', "orderable": false, "data": null, "defaultContent": '<i class="fas fa-plus-circle text-primary"></i>' },
            { "data": "input_code", render: (data, type, row) => `<a href="tao_phieunhap.php?id=${row.id}" class="fw-bold">${data}</a>` },
            { "data": "store_name" }, { "data": "input_date" }, { "data": "user_name" },
            { "data": "total_money", "className": "text-end fw-bold", render: data => formatNumber(data) },
            { "data": "lack", "className": "text-end text-danger", render: data => formatNumber(data) },
            { "data": "id", "orderable": false, "className": "text-center", render: function(data, type, row) {
                if (row.deleted == 1) return `<span class="badge bg-secondary">Đã xóa</span>`;
                let editUrl = `/quanlybanhang/modules/imports/tao_phieunhap.php?id=${data}`;
                let printUrl = `/quanlybanhang/modules/imports/print_slip.php?id=${data}`;
                let deleteButton = (row.input_status != 2) ? `<a href="#" class="btn btn-danger btn-sm btn-delete" data-id="${data}" title="Hủy phiếu"><i class="fas fa-trash"></i></a>` : '';
                return `<div class="btn-group btn-group-sm">${deleteButton}<a href="${editUrl}" class="btn btn-warning" title="Sửa"><i class="fas fa-edit"></i></a><a href="${printUrl}" target="_blank" class="btn btn-secondary" title="In"><i class="fas fa-print"></i></a></div>`;
            }}
        ],
        "language": { "url": "/quanlybanhang/assets/libs/datatables/vietnamese.json" },
        "pageLength": 10, "searching": false, "order": [[3, "desc"]],
        "dom": "t<'d-flex justify-content-between align-items-center'<'#summary-info.py-2 fw-bold'>p>",
        "drawCallback": function(settings) {
            var json = this.api().ajax.json();
            if (json && json.summary) {
                let s = json.summary;
                $('#summary-info').html(`<span class="me-4">Tổng số phiếu: <span class="text-dark">${formatNumber(s.total_slips)}</span></span><span class="me-4">Tổng tiền: <span class="text-dark">${formatNumber(s.total_amount)}</span></span><span>Tổng nợ: <span class="text-danger">${formatNumber(s.total_debt)}</span></span>`);
            } else { $('#summary-info').html(''); }
        }
    });

    $('#filterForm').on('submit', e => { e.preventDefault(); table.ajax.reload(); });
    
    // Các sự kiện khác giữ nguyên như cũ
   $('#phieuNhapTable tbody').on('click', 'td.details-control', function() {
        var tr = $(this).closest('tr');
        var row = table.row(tr);
        var icon = $(this).find('i');
        if (row.child.isShown()) {
            row.child.hide(); tr.removeClass('shown');
            icon.removeClass('fa-minus-circle text-danger').addClass('fa-plus-circle text-primary');
        } else {
            icon.removeClass('fa-plus-circle text-primary').addClass('fa-spinner fa-spin');
            $.post('/quanlybanhang/ajax/imports_ajax.php', { action: 'get_import_details', import_id: row.data().id }, (res) => {
                if (res.status === 'success') {
                    row.child(formatChildRow(res.data)).show();
                    tr.addClass('shown');
                    icon.removeClass('fa-spinner fa-spin').addClass('fa-minus-circle text-danger');
                } else {
                    alert(res.message);
                    icon.removeClass('fa-spinner fa-spin').addClass('fa-plus-circle text-primary');
                }
            }, 'json').fail(() => {
                alert('Lỗi kết nối.');
                icon.removeClass('fa-spinner fa-spin').addClass('fa-plus-circle text-primary');
            });
        }
    });
    $('#phieuNhapTable tbody').on('click', '.btn-delete', function(e) {
        e.preventDefault();
        var slipId = $(this).data('id');
        if (confirm('Bạn có chắc chắn muốn hủy phiếu nhập này?')) {
            $.post('/quanlybanhang/ajax/imports_ajax.php', { action: 'delete_import_slip', slip_id: slipId }, function(response) {
                if(response.message) alert(response.message);
                if (response.status === 'success') { table.ajax.reload(null, false); }
            }, 'json').fail(function() { alert('Lỗi kết nối.'); });
        }
    });


});
</script>