Add quantities to subscriptions

This commit is contained in:
David Bomba 2022-07-06 17:12:29 +10:00
parent 9359c84013
commit ffcd3b05d4
3 changed files with 6 additions and 3 deletions

View File

@ -360,7 +360,7 @@ class BillingPortalPurchase extends Component
$this->invoice = $this->subscription $this->invoice = $this->subscription
->service() ->service()
->createInvoice($data) ->createInvoice($data, $this->quantity)
->service() ->service()
->markSent() ->markSent()
->fillDefaults() ->fillDefaults()

View File

@ -28,6 +28,8 @@ class SubscriptionRepository extends BaseRepository
{ {
use CleanLineItems; use CleanLineItems;
public int $quantity = 1;
public function save($data, Subscription $subscription): ?Subscription public function save($data, Subscription $subscription): ?Subscription
{ {
$subscription->fill($data); $subscription->fill($data);
@ -124,7 +126,7 @@ class SubscriptionRepository extends BaseRepository
private function makeLineItem($product, $multiplier) private function makeLineItem($product, $multiplier)
{ {
$item = new InvoiceItem; $item = new InvoiceItem;
$item->quantity = $product->quantity; $item->quantity = $this->quantity;
$item->product_key = $product->product_key; $item->product_key = $product->product_key;
$item->notes = $product->notes; $item->notes = $product->notes;
$item->cost = $product->price*$multiplier; $item->cost = $product->price*$multiplier;

View File

@ -706,11 +706,12 @@ class SubscriptionService
* @param array $data * @param array $data
* @return Invoice * @return Invoice
*/ */
public function createInvoice($data): ?\App\Models\Invoice public function createInvoice($data, $quantity = 1): ?\App\Models\Invoice
{ {
$invoice_repo = new InvoiceRepository(); $invoice_repo = new InvoiceRepository();
$subscription_repo = new SubscriptionRepository(); $subscription_repo = new SubscriptionRepository();
$subscription_repo->quantity = $quantity;
$invoice = InvoiceFactory::create($this->subscription->company_id, $this->subscription->user_id); $invoice = InvoiceFactory::create($this->subscription->company_id, $this->subscription->user_id);
$invoice->line_items = $subscription_repo->generateLineItems($this->subscription); $invoice->line_items = $subscription_repo->generateLineItems($this->subscription);