allow cancellation under specific conditions

This commit is contained in:
Benjamin Beganović 2021-04-01 16:38:46 +02:00
parent b25f79f4e1
commit 08b317f7b8
3 changed files with 49 additions and 39 deletions

View File

@ -61,9 +61,7 @@ class RecurringInvoiceController extends Controller
public function requestCancellation(Request $request, RecurringInvoice $recurring_invoice) public function requestCancellation(Request $request, RecurringInvoice $recurring_invoice)
{ {
//todo double check the user is able to request a cancellation if (is_null($recurring_invoice->subscription_id) || optional($recurring_invoice->subscription)->allow_cancellation) {
//can add locale specific by chaining ->locale();
$nmo = new NinjaMailerObject; $nmo = new NinjaMailerObject;
$nmo->mailable = (new NinjaMailer((new ClientContactRequestCancellationObject($recurring_invoice, auth()->user()))->build())); $nmo->mailable = (new NinjaMailer((new ClientContactRequestCancellationObject($recurring_invoice, auth()->user()))->build()));
$nmo->company = $recurring_invoice->company; $nmo->company = $recurring_invoice->company;
@ -84,4 +82,7 @@ class RecurringInvoiceController extends Controller
'invoice' => $recurring_invoice, 'invoice' => $recurring_invoice,
]); ]);
} }
return back();
}
} }

View File

@ -468,4 +468,9 @@ class RecurringInvoice extends BaseModel
{ {
return new RecurringService($this); return new RecurringService($this);
} }
public function subscription(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Subscription::class);
}
} }

View File

@ -55,9 +55,11 @@
{{ \App\Utils\Number::formatMoney($invoice->amount, $invoice->client) }} {{ \App\Utils\Number::formatMoney($invoice->amount, $invoice->client) }}
</div> </div>
</div> </div>
</dl>
</div> </div>
</div> </div>
@if(is_null($invoice->subscription_id) || optional($invoice->subscription)->allow_cancellation)
<div class="bg-white shadow sm:rounded-lg mb-4 mt-4"> <div class="bg-white shadow sm:rounded-lg mb-4 mt-4">
<div class="px-4 py-5 sm:p-6"> <div class="px-4 py-5 sm:p-6">
<div class="sm:flex sm:items-start sm:justify-between"> <div class="sm:flex sm:items-start sm:justify-between">
@ -81,5 +83,7 @@
</div> </div>
</div> </div>
</div> </div>
@endif
</div> </div>
@endsection @endsection