<?php
include("includes/db_config.php"); // Database Connection

$type = isset($_POST['type']) ? $_POST['type'] : "";
$from_date = isset($_POST['from_date']) ? $_POST['from_date'] : "";
$to_date = isset($_POST['to_date']) ? $_POST['to_date'] : "";

// Fetch vendors for Party Name mapping
$sql = "SELECT id, party_name FROM ah_party";
$result = $conn->query($sql);
$vendors = [];
if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        $vendors[$row['id']] = $row['party_name'];
    }
}

// Query for Transactions (Sales, Purchases, Expenses)
$query = "SELECT * FROM tbl_ah_items WHERE 1";

if (!empty($type)) {
    $query .= " AND type = '$type'";
}

if (!empty($from_date) && !empty($to_date)) {
    $query .= " AND DATE(created_date) BETWEEN '$from_date' AND '$to_date'";
} elseif (!empty($from_date)) {
    $query .= " AND DATE(created_date) >= '$from_date'";
} elseif (!empty($to_date)) {
    $query .= " AND DATE(created_date) <= '$to_date'";
}

$query .= " ORDER BY created_date DESC";

$result = mysqli_query($conn, $query);
$output = '';
$i = 1;

// Fetch Transaction Data
if (mysqli_num_rows($result) > 0) {
    while ($row = mysqli_fetch_assoc($result)) {
        $party_name = $vendors[$row['customer_id']] ?? 'Unknown';
        $date = date("d-m-Y", strtotime($row['created_date']));
        $output .= "<tr>
            <td>{$i}.</td>
            <td>{$date}</td>
            <td>{$row['reference_no']}</td>
            <td>{$party_name}</td>
            <td>{$row['exp_cat_id']}</td>
            <td>{$row['type']}</td>
            <td>₹ {$row['total_amt']}</td>
            <td>₹ {$row['received_amount']}</td>
            <td>₹ {$row['balance']}</td>
            <td>
                <center>
                    <a href='#'><button class='btn btn-primary'><i class='far fa-edit'></i></button></a>
                    <a href='javascript:deleteTransaction(\"{$row['id']}\")' class='btn btn-danger shadow btn-xs sharp'><i class='fa fa-trash'></i></a>
                    <a href='#'><button class='btn btn-warning'><i class='fa fa-print'></i></button></a>
                </center>
            </td>
        </tr>";
        $i++;
    }
}

// 🏦 Fetch Payment Out (Purchase Payments)
$query_out = "SELECT * FROM ah_purchase_payment_out WHERE 1";
if (!empty($from_date) && !empty($to_date)) {
    $query_out .= " AND DATE(created_date) BETWEEN '$from_date' AND '$to_date'";
}
$query_out .= " ORDER BY created_date DESC";

$result_out = mysqli_query($conn, $query_out);
if (mysqli_num_rows($result_out) > 0) {
    while ($row = mysqli_fetch_assoc($result_out)) {
        $party_name = $vendors[$row['customer_id']] ?? 'Unknown';
        $date = date("d-m-Y", strtotime($row['created_date']));
        $output .= "<tr>
            <td>{$i}.</td>
            <td>{$date}</td>
            <td>{$row['receipt_no']}</td>
            <td>{$party_name}</td>
            <td>Payment-Out</td>
            <td>{$row['payment_type']}</td>
            <td>₹ {$row['total_amount']}</td>
            <td>₹ {$row['paid_amount']}</td>
            <td>₹ {$row['balance']}</td>
            <td>
                <center>
                    <a href='#'><button class='btn btn-primary'><i class='far fa-edit'></i></button></a>
                    <a href='javascript:deleteTransaction(\"{$row['id']}\")' class='btn btn-danger shadow btn-xs sharp'><i class='fa fa-trash'></i></a>
                    <a href='#'><button class='btn btn-warning'><i class='fa fa-print'></i></button></a>
                </center>
            </td>
        </tr>";
        $i++;
    }
}

// 💰 Fetch Payment In (Sales Payments)
$query_in = "SELECT * FROM ah_sales_payment_in WHERE 1";
if (!empty($from_date) && !empty($to_date)) {
    $query_in .= " AND DATE(created_date) BETWEEN '$from_date' AND '$to_date'";
}
$query_in .= " ORDER BY created_date DESC";

$result_in = mysqli_query($conn, $query_in);
if (mysqli_num_rows($result_in) > 0) {
    while ($row = mysqli_fetch_assoc($result_in)) {
        $party_name = $vendors[$row['customer_id']] ?? 'Unknown';
        $date = date("d-m-Y", strtotime($row['created_date']));
        $output .= "<tr>
            <td>{$i}.</td>
            <td>{$date}</td>
            <td>{$row['receipt_no']}</td>
            <td>{$party_name}</td>
            <td>Payment-In</td>
            <td>{$row['payment_type']}</td>
            <td>₹ {$row['total_amount']}</td>
            <td>₹ {$row['received_amonut']}</td>
            <td>₹ {$row['balance']}</td>
            <td>
                <center>
                    <a href='#'><button class='btn btn-primary'><i class='far fa-edit'></i></button></a>
                    <a href='javascript:deleteTransaction(\"{$row['id']}\")' class='btn btn-danger shadow btn-xs sharp'><i class='fa fa-trash'></i></a>
                    <a href='#'><button class='btn btn-warning'><i class='fa fa-print'></i></button></a>
                </center>
            </td>
        </tr>";
        $i++;
    }
}

// If No Records Found
if ($output == '') {
    $output = "<tr><td colspan='10'>No transactions found.</td></tr>";
}

echo json_encode(['orders' => $output]);
?>
