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:
parent
439e57b333
commit
d3ba167d41
3 changed files with 9 additions and 9 deletions
|
|
@ -215,7 +215,7 @@ if ($stmt) {
|
||||||
$invoice_duration = $durationInfo['invoice_duration'];
|
$invoice_duration = $durationInfo['invoice_duration'];
|
||||||
$rate_type = $durationInfo['rate_type'];
|
$rate_type = $durationInfo['rate_type'];
|
||||||
$stmt->bind_param(
|
$stmt->bind_param(
|
||||||
'iisisssssdsssssdissssddsi',
|
'iisiissssdsssssssdissddsi',
|
||||||
$esc_user_id,
|
$esc_user_id,
|
||||||
$esc_service_id,
|
$esc_service_id,
|
||||||
$home_name,
|
$home_name,
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ function cap_invoice_ids_from_custom_id(?string $customId): array {
|
||||||
return array_values(array_unique($invoiceIds));
|
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'));
|
$duration = strtolower((string)($invoice['invoice_duration'] ?? $invoice['rate_type'] ?? 'month'));
|
||||||
switch ($duration) {
|
switch ($duration) {
|
||||||
case 'day':
|
case 'day':
|
||||||
|
|
@ -139,8 +139,8 @@ function cap_duration_metadata(array $invoice): array {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function cap_end_date(array $invoice, ?string $fromDate = null): string {
|
function cap_get_end_date(array $invoice, ?string $fromDate = null): string {
|
||||||
$meta = cap_duration_metadata($invoice);
|
$meta = cap_get_duration_metadata($invoice);
|
||||||
$qty = max(1, intval($invoice['qty'] ?? 1));
|
$qty = max(1, intval($invoice['qty'] ?? 1));
|
||||||
$baseTs = time();
|
$baseTs = time();
|
||||||
if (!empty($fromDate)) {
|
if (!empty($fromDate)) {
|
||||||
|
|
@ -279,7 +279,7 @@ foreach ($invoices as $inv) {
|
||||||
$invoiceBase = round((float)($inv['subtotal'] ?? $inv['total_due'] ?? $inv['amount'] ?? 0), 2);
|
$invoiceBase = round((float)($inv['subtotal'] ?? $inv['total_due'] ?? $inv['amount'] ?? 0), 2);
|
||||||
$lineDiscount = round((float)($discountMap[$invoiceId] ?? 0), 2);
|
$lineDiscount = round((float)($discountMap[$invoiceId] ?? 0), 2);
|
||||||
$lineTotal = round(max(0, $invoiceBase - $lineDiscount), 2);
|
$lineTotal = round(max(0, $invoiceBase - $lineDiscount), 2);
|
||||||
$durationMeta = cap_duration_metadata($inv);
|
$durationMeta = cap_get_duration_metadata($inv);
|
||||||
|
|
||||||
$invoiceUpdate = [
|
$invoiceUpdate = [
|
||||||
'coupon_id' => $couponId,
|
'coupon_id' => $couponId,
|
||||||
|
|
@ -319,7 +319,7 @@ foreach ($invoices as $inv) {
|
||||||
// Existing order linked to this invoice — extend it and mark Active.
|
// Existing order linked to this invoice — extend it and mark Active.
|
||||||
$order = $repo->getOrder($orderId);
|
$order = $repo->getOrder($orderId);
|
||||||
if ($order) {
|
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);
|
$currentHomeId = intval($order['home_id'] ?? 0);
|
||||||
$repo->updateOrderFields($orderId, [
|
$repo->updateOrderFields($orderId, [
|
||||||
'status' => 'Active',
|
'status' => 'Active',
|
||||||
|
|
@ -342,7 +342,7 @@ foreach ($invoices as $inv) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// No billing_orders row yet — create one now so the provisioner can run.
|
// 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([
|
$newOrderId = $repo->createOrder([
|
||||||
'user_id' => intval($inv['user_id']),
|
'user_id' => intval($inv['user_id']),
|
||||||
'service_id' => intval($inv['service_id']),
|
'service_id' => intval($inv['service_id']),
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ require_once __DIR__ . '/classes/BillingService.php';
|
||||||
|
|
||||||
$repo = new BillingRepository($db, $table_prefix);
|
$repo = new BillingRepository($db, $table_prefix);
|
||||||
$newOrderIds = [];
|
$newOrderIds = [];
|
||||||
$durationMeta = static function (array $invoice): array {
|
$duration_meta = static function (array $invoice): array {
|
||||||
$duration = strtolower((string)($invoice['invoice_duration'] ?? $invoice['rate_type'] ?? 'month'));
|
$duration = strtolower((string)($invoice['invoice_duration'] ?? $invoice['rate_type'] ?? 'month'));
|
||||||
switch ($duration) {
|
switch ($duration) {
|
||||||
case 'day':
|
case 'day':
|
||||||
|
|
@ -119,7 +119,7 @@ foreach ($invoices as $inv) {
|
||||||
$invoiceId = intval($inv['invoice_id']);
|
$invoiceId = intval($inv['invoice_id']);
|
||||||
$invoiceBase = round((float)($inv['subtotal'] ?? $inv['total_due'] ?? $inv['amount'] ?? 0), 2);
|
$invoiceBase = round((float)($inv['subtotal'] ?? $inv['total_due'] ?? $inv['amount'] ?? 0), 2);
|
||||||
$orderId = intval($inv['order_id'] ?? 0);
|
$orderId = intval($inv['order_id'] ?? 0);
|
||||||
$meta = $durationMeta($inv);
|
$meta = $duration_meta($inv);
|
||||||
|
|
||||||
$repo->updateInvoiceFields($invoiceId, [
|
$repo->updateInvoiceFields($invoiceId, [
|
||||||
'order_id' => $orderId,
|
'order_id' => $orderId,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue