feat: implement invoice listing functionality with DataTables integration

This commit is contained in:
Focuslinkstech
2025-04-08 18:30:36 +01:00
parent 182add517c
commit 24b713804a
4 changed files with 368 additions and 269 deletions

View File

@ -1,41 +1,27 @@
<?php
// Advanced usage with custom parameters
try {
$userId = 8; // Customer ID
$status = "Unpaid";
$invoiceNo = "INV-2023-00987";
// Manually provide invoice data
$invoiceData = [
'plan_name' => 'Premium Plan',
'price' => 49.99,
'routers' => 'router123',
// Add other required fields from tbl_transactions
];
/**
* PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/)
* by https://t.me/ibnux
*
**/
// Custom bills
$bills = [
'Additional Bandwidth' => 15.00,
'Support Fee' => 10.00,
'IP Address' => 5.00,
'Custom Service' => 25.00,
'Late Fee' => 5.00,
'Discount' => -10.00,
];
$add_cost = 20;
_auth();
$ui->assign('_title', Lang::T('Invoices'));
$ui->assign('_system_menu', 'Reports');
$result = Invoice::sendInvoice(
userId: $userId,
invoice: $invoiceData,
bills: $bills,
status: $status,
invoiceNo: $invoiceNo
);
$action = $routes['1'];
$user = User::_info();
$ui->assign('_user', $user);
if($result) {
echo "Custom invoice sent! PDF generated at: system/uploads/invoices/invoice_{$invoiceNo}.pdf";
}
} catch (Exception $e) {
echo "Invoice Error: " . $e->getMessage();
switch ($action) {
case 'list':
$ui->assign('xheader', '<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.11.3/css/jquery.dataTables.min.css">');
$ui->assign('invoices', Invoice::getAll());
$ui->display('admin/invoice/list.tpl');
break;
default:
$ui->display('admin/404.tpl');
}