There is no Invoice here
Back to Invoices"; require_once "../includes/footer.php"; exit(); } $row = mysqli_fetch_array($sql); $invoice_id = intval($row['invoice_id']); $invoice_prefix = nullable_htmlentities($row['invoice_prefix']); $invoice_number = intval($row['invoice_number']); $invoice_scope = nullable_htmlentities($row['invoice_scope']); $invoice_status = nullable_htmlentities($row['invoice_status']); $invoice_date = nullable_htmlentities($row['invoice_date']); $invoice_due = nullable_htmlentities($row['invoice_due']); $invoice_amount = floatval($row['invoice_amount']); $invoice_discount = floatval($row['invoice_discount_amount']); $invoice_credit = floatval($row['invoice_credit_amount']); $invoice_currency_code = nullable_htmlentities($row['invoice_currency_code']); $invoice_note = nullable_htmlentities($row['invoice_note']); $invoice_url_key = nullable_htmlentities($row['invoice_url_key']); $invoice_created_at = nullable_htmlentities($row['invoice_created_at']); $category_id = intval($row['invoice_category_id']); $client_id = intval($row['client_id']); $client_name = nullable_htmlentities($row['client_name']); $location_address = nullable_htmlentities($row['location_address']); $location_city = nullable_htmlentities($row['location_city']); $location_state = nullable_htmlentities($row['location_state']); $location_zip = nullable_htmlentities($row['location_zip']); $location_country = nullable_htmlentities($row['location_country']); $contact_email = nullable_htmlentities($row['contact_email']); $contact_phone_country_code = nullable_htmlentities($row['contact_phone_country_code']); $contact_phone = nullable_htmlentities(formatPhoneNumber($row['contact_phone'], $contact_phone_country_code)); $contact_extension = nullable_htmlentities($row['contact_extension']); $contact_mobile_country_code = nullable_htmlentities($row['contact_mobile_country_code']); $contact_mobile = nullable_htmlentities(formatPhoneNumber($row['contact_mobile'], $contact_mobile_country_code)); $client_website = nullable_htmlentities($row['client_website']); $client_currency_code = nullable_htmlentities($row['client_currency_code']); $client_net_terms = intval($row['client_net_terms']); if ($client_net_terms == 0) { $client_net_terms = $config_default_net_terms; } // Override Tab Title // No Sanitizing needed as this var will opnly be used in the tab title $tab_title = $row['client_name']; $page_title = "{$row['invoice_prefix']}{$row['invoice_number']}"; $sql = mysqli_query($mysqli, "SELECT * FROM companies WHERE company_id = 1"); $row = mysqli_fetch_array($sql); $company_id = intval($row['company_id']); $company_name = nullable_htmlentities($row['company_name']); $company_country = nullable_htmlentities($row['company_country']); $company_address = nullable_htmlentities($row['company_address']); $company_city = nullable_htmlentities($row['company_city']); $company_state = nullable_htmlentities($row['company_state']); $company_zip = nullable_htmlentities($row['company_zip']); $company_phone_country_code = nullable_htmlentities($row['company_phone_country_code']); $company_phone = nullable_htmlentities(formatPhoneNumber($row['company_phone'], $company_phone_country_code)); $company_email = nullable_htmlentities($row['company_email']); $company_website = nullable_htmlentities($row['company_website']); $company_tax_id = nullable_htmlentities($row['company_tax_id']); if ($config_invoice_show_tax_id && !empty($company_tax_id)) { $company_tax_id_display = "Tax ID: $company_tax_id"; } else { $company_tax_id_display = ""; } $company_logo = nullable_htmlentities($row['company_logo']); $sql_history = mysqli_query($mysqli, "SELECT * FROM history WHERE history_invoice_id = $invoice_id ORDER BY history_id DESC"); $sql_payments = mysqli_query($mysqli, "SELECT * FROM payments, accounts WHERE payment_account_id = account_id AND payment_invoice_id = $invoice_id ORDER BY payments.payment_id DESC"); $sql_tickets = mysqli_query($mysqli, " SELECT tickets.*, SEC_TO_TIME(SUM(TIME_TO_SEC(STR_TO_DATE(ticket_reply_time_worked, '%H:%i:%s')))) AS 'total_time_worked' FROM tickets LEFT JOIN ticket_replies ON tickets.ticket_id = ticket_replies.ticket_reply_ticket_id WHERE ticket_invoice_id = $invoice_id GROUP BY tickets.ticket_id ORDER BY ticket_id DESC "); //Get billable, and unbilled tickets to add to invoice $sql_tickets_billable = mysqli_query( $mysqli, " SELECT * FROM tickets WHERE ticket_client_id = $client_id AND ticket_billable = 1 AND ticket_invoice_id = 0 AND ticket_status = 5; "); //Add up all the payments for the invoice and get the total amount paid to the invoice $sql_amount_paid = mysqli_query($mysqli, "SELECT SUM(payment_amount) AS amount_paid FROM payments WHERE payment_invoice_id = $invoice_id"); $row = mysqli_fetch_array($sql_amount_paid); $amount_paid = floatval($row['amount_paid']); $balance = $invoice_amount - $amount_paid; // Get Credit Balance $sql_credit_balance = mysqli_query($mysqli, "SELECT SUM(credit_amount) AS credit_balance FROM credits WHERE credit_client_id = $client_id"); $row = mysqli_fetch_array($sql_credit_balance); $credit_balance = floatval($row['credit_balance']); //check to see if overdue if ($invoice_status !== "Paid" && $invoice_status !== "Draft" && $invoice_status !== "Cancelled" && $invoice_status !== "Non-Billable") { $unixtime_invoice_due = strtotime($invoice_due) + 86400; if ($unixtime_invoice_due < time()) { $invoice_overdue = "Overdue"; } } //Set Badge color based off of invoice status $invoice_badge_color = getInvoiceBadgeColor($invoice_status); //Product autocomplete $products_sql = mysqli_query($mysqli, " SELECT product_name AS label, product_type AS type, product_description AS description, product_price AS price, product_tax_id AS tax, tax_percent, product_id AS prod_id, COALESCE(SUM(product_stock.stock_qty), 0) AS available_stock FROM products LEFT JOIN product_stock ON product_id = stock_product_id LEFT JOIN taxes ON product_tax_id = tax_id WHERE product_archived_at IS NULL GROUP BY product_id "); if (mysqli_num_rows($products_sql) > 0) { while ($row = mysqli_fetch_array($products_sql)) { $products[] = $row; } $json_products = json_encode($products); } // Saved Payment Methods $sql_saved_payment_methods = mysqli_query($mysqli, " SELECT * FROM client_saved_payment_methods LEFT JOIN payment_providers ON client_saved_payment_methods.saved_payment_provider_id = payment_providers.payment_provider_id WHERE saved_payment_client_id = $client_id AND payment_provider_active = 1; "); // Payment with saved card (auto-pay) if ($config_stripe_enable) { $stripe_client_details = mysqli_fetch_array(mysqli_query($mysqli, "SELECT * FROM client_stripe WHERE client_id = $client_id LIMIT 1")); if ($stripe_client_details) { $stripe_id = sanitizeInput($stripe_client_details['stripe_id']); $stripe_pm = sanitizeInput($stripe_client_details['stripe_pm']); } } ?>
" alt="Company logo">
">

INVOICE

Invoice #:
Date:
Due:
Bill To:
>
Item Description Qty Unit Price Tax Amount
Notes:
0) { ?> 0) { ?> 0) { ?> 0) { ?>
Subtotal:
Discount: -
Credit: -
Tax:
Total:
Paid:
Balance:

History
Date Status Description
">
Payments
Date Amount Reference Account
">
Tickets
0) { ?>
Date Subject Time Worked