Fix billing review follow-ups

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/1e47877f-c80e-4514-bdff-2bd022c84f13

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-05-06 22:46:48 +00:00 committed by GitHub
parent 439e57b333
commit d3ba167d41
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 9 additions and 9 deletions

View file

@ -215,7 +215,7 @@ if ($stmt) {
$invoice_duration = $durationInfo['invoice_duration'];
$rate_type = $durationInfo['rate_type'];
$stmt->bind_param(
'iisisssssdsssssdissssddsi',
'iisiissssdsssssssdissddsi',
$esc_user_id,
$esc_service_id,
$home_name,

View file

@ -123,7 +123,7 @@ function cap_invoice_ids_from_custom_id(?string $customId): array {
return array_values(array_unique($invoiceIds));
}
function cap_duration_metadata(array $invoice): array {
function cap_get_duration_metadata(array $invoice): array {
$duration = strtolower((string)($invoice['invoice_duration'] ?? $invoice['rate_type'] ?? 'month'));
switch ($duration) {
case 'day':
@ -139,8 +139,8 @@ function cap_duration_metadata(array $invoice): array {
}
}
function cap_end_date(array $invoice, ?string $fromDate = null): string {
$meta = cap_duration_metadata($invoice);
function cap_get_end_date(array $invoice, ?string $fromDate = null): string {
$meta = cap_get_duration_metadata($invoice);
$qty = max(1, intval($invoice['qty'] ?? 1));
$baseTs = time();
if (!empty($fromDate)) {
@ -279,7 +279,7 @@ foreach ($invoices as $inv) {
$invoiceBase = round((float)($inv['subtotal'] ?? $inv['total_due'] ?? $inv['amount'] ?? 0), 2);
$lineDiscount = round((float)($discountMap[$invoiceId] ?? 0), 2);
$lineTotal = round(max(0, $invoiceBase - $lineDiscount), 2);
$durationMeta = cap_duration_metadata($inv);
$durationMeta = cap_get_duration_metadata($inv);
$invoiceUpdate = [
'coupon_id' => $couponId,
@ -319,7 +319,7 @@ foreach ($invoices as $inv) {
// Existing order linked to this invoice — extend it and mark Active.
$order = $repo->getOrder($orderId);
if ($order) {
$newEnd = cap_end_date($inv, $order['end_date'] ?? null);
$newEnd = cap_get_end_date($inv, $order['end_date'] ?? null);
$currentHomeId = intval($order['home_id'] ?? 0);
$repo->updateOrderFields($orderId, [
'status' => 'Active',
@ -342,7 +342,7 @@ foreach ($invoices as $inv) {
}
} else {
// No billing_orders row yet — create one now so the provisioner can run.
$newEnd = cap_end_date($inv, null);
$newEnd = cap_get_end_date($inv, null);
$newOrderId = $repo->createOrder([
'user_id' => intval($inv['user_id']),
'service_id' => intval($inv['service_id']),

View file

@ -99,7 +99,7 @@ require_once __DIR__ . '/classes/BillingService.php';
$repo = new BillingRepository($db, $table_prefix);
$newOrderIds = [];
$durationMeta = static function (array $invoice): array {
$duration_meta = static function (array $invoice): array {
$duration = strtolower((string)($invoice['invoice_duration'] ?? $invoice['rate_type'] ?? 'month'));
switch ($duration) {
case 'day':
@ -119,7 +119,7 @@ foreach ($invoices as $inv) {
$invoiceId = intval($inv['invoice_id']);
$invoiceBase = round((float)($inv['subtotal'] ?? $inv['total_due'] ?? $inv['amount'] ?? 0), 2);
$orderId = intval($inv['order_id'] ?? 0);
$meta = $durationMeta($inv);
$meta = $duration_meta($inv);
$repo->updateInvoiceFields($invoiceId, [
'order_id' => $orderId,