<?php
include $_SERVER['DOCUMENT_ROOT'] . "/classes/autoload.php";

$quote_id = $_GET['record_id'];

// Helper: get terms/notes from DB for a given order type
function get_invoice_terms_notes($db, $order_type) {
    $res = $db->query("terms", "SELECT * FROM `terms` WHERE `document_type` = 'invoice' AND `order_type` = '$order_type'");
    if ($res && $res->num_rows > 0) {
        $row = $res->fetch_assoc();
        return [
            'terms' => addslashes($row['terms']),  // goes into invoices.terms → TERMS field
            'notes' => addslashes($row['notes']),  // goes into invoices.notes → IMPORTANT NOTES field
        ];
    }
    return ['terms' => '', 'notes' => ''];
}

// Check if already converted
$res = $db->query("invoices", "SELECT * FROM `invoices` WHERE `quote_id` = '$quote_id'");
if ($res->num_rows > 0) {
    $invoice = $res->fetch_assoc();
    $tn = get_invoice_terms_notes($db, $invoice['order_type']);
    $db->query("invoices", "UPDATE `invoices` SET `subject` = '', `terms` = '{$tn['notes']}', `notes` = '{$tn['terms']}' WHERE `record_id` = '{$invoice['record_id']}'");
    header("Location: ../invoices/edit_invoices.php?record_id={$invoice['record_id']}");
} else {
    // Get invoice number
    $invoice_number_res = $db->query("invoices", "SELECT * FROM `invoices` WHERE 1 ORDER BY `record_id` DESC LIMIT 1");
    if ($invoice_number_res->num_rows > 0) {
        $inv = $invoice_number_res->fetch_assoc();
        $invoice_number = $inv['invoice_number'] + 1;
    } else {
        $invoice_number = 1;
    }

    // Get quote data
    $quote_data_res = $db->query("quotes", "SELECT * FROM `quotes` WHERE `record_id` = '$quote_id'");
    $quote_data = $quote_data_res->fetch_assoc();

    // Get terms/notes from terms table
    $tn = get_invoice_terms_notes($db, $quote_data['order_type']);

    // Insert invoice
    $invoice_no = $db->query("invoices", "INSERT INTO `invoices`(`client_id`, `order_type`, `user_id`, `status`, `date_time_created`, `terms`, `subject`, `notes`, `area`, `quote_id`, `invoice_number`, `additional_delivery_details`) VALUES ('{$quote_data['client_id']}','{$quote_data['order_type']}','{$_SESSION['user_id']}','PENDING PAYMENT',NOW(), '{$tn['notes']}','','{$tn['terms']}','{$quote_data['area']}','$quote_id','$invoice_number','{$quote_data['additional_delivery_details']}')");

    // Copy quote line items
    $quote_list_res = $db->query("quote_list", "SELECT * FROM `quote_list` WHERE `quote_id` = '$quote_id'");
    while ($quote_list = $quote_list_res->fetch_assoc()) {
        $db->query("invoice_list", "INSERT INTO `invoice_list`(`stock_id`, `qty`, `price`, `invoice_id`, `size_m`, `pannels`) VALUES ('{$quote_list['stock_id']}','{$quote_list['qty']}','" . $function->number_to_save($quote_list['price']) . "','$invoice_no','{$quote_list['size_m']}','{$quote_list['pannels']}')");
    }

    header("Location: ../invoices/edit_invoices.php?record_id=$invoice_no");
}