Refactor VM resource specs resolution and enhance order payment success email with addon summary; add UpdateVmConfigJob for CPU/RAM updates
This commit is contained in:
@@ -50,7 +50,7 @@ class InvoiceRepository extends BaseApiRepository implements InvoiceRepositoryIn
|
||||
'due_date' => now()->addDays(7)->toDateString(),
|
||||
]);
|
||||
|
||||
// Create one invoice_item per order_item line
|
||||
// Create one invoice_item per order_item line + addon sub-lines
|
||||
foreach ($order->orderItems as $item) {
|
||||
InvoiceItem::create([
|
||||
'invoice_id' => $invoice->id,
|
||||
@@ -62,6 +62,27 @@ class InvoiceRepository extends BaseApiRepository implements InvoiceRepositoryIn
|
||||
'unit_price' => $item->price,
|
||||
'total_price' => $item->price * ($item->quantity ?? 1),
|
||||
]);
|
||||
|
||||
$addonsMeta = is_array($item->addons_meta) ? $item->addons_meta : [];
|
||||
foreach ($addonsMeta as $meta) {
|
||||
$qty = (int) ($meta['qty'] ?? 1);
|
||||
$price = (int) ($meta['price'] ?? 0);
|
||||
$subtotal = (int) ($meta['subtotal'] ?? $price * $qty);
|
||||
$name = $meta['name'] ?? ('Addon #' . ($meta['addon_id'] ?? '?'));
|
||||
$code = strtoupper($meta['code'] ?? '');
|
||||
$label = $code ? "[{$code}] {$name}" : $name;
|
||||
|
||||
InvoiceItem::create([
|
||||
'invoice_id' => $invoice->id,
|
||||
'product_id' => $item->product_id,
|
||||
'type' => 'addon',
|
||||
'description' => $label,
|
||||
'months' => $this->cycleToMonths($item->billing_cycle),
|
||||
'quantity' => $qty,
|
||||
'unit_price' => $price,
|
||||
'total_price' => $subtotal,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
return $invoice;
|
||||
|
||||
Reference in New Issue
Block a user