mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-31 11:14:37 -04:00
Client payment flow
This commit is contained in:
parent
6037e30887
commit
4fd41dbe1d
@ -130,7 +130,6 @@ class InvoiceController extends Controller
|
|||||||
return $invoice;
|
return $invoice;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$formatted_total = Number::formatMoney($total, auth()->user()->client);
|
$formatted_total = Number::formatMoney($total, auth()->user()->client);
|
||||||
|
|
||||||
$payment_methods = auth()->user()->client->getPaymentMethods($total);
|
$payment_methods = auth()->user()->client->getPaymentMethods($total);
|
||||||
|
@ -58,6 +58,7 @@ class CreateAccount
|
|||||||
* Create company
|
* Create company
|
||||||
*/
|
*/
|
||||||
$company = CreateCompany::dispatchNow($this->request, $account);
|
$company = CreateCompany::dispatchNow($this->request, $account);
|
||||||
|
$company->load('account');
|
||||||
/*
|
/*
|
||||||
* Set default company
|
* Set default company
|
||||||
*/
|
*/
|
||||||
|
@ -16,7 +16,7 @@ use App\Repositories\ActivityRepository;
|
|||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Queue\InteractsWithQueue;
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
|
||||||
class CreatedClientActivity
|
class CreatedClientActivity implements ShouldQueue
|
||||||
{
|
{
|
||||||
protected $activity_repo;
|
protected $activity_repo;
|
||||||
/**
|
/**
|
||||||
|
@ -18,7 +18,7 @@ use App\Repositories\ActivityRepository;
|
|||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Queue\InteractsWithQueue;
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
|
||||||
class PaymentCreatedActivity
|
class PaymentCreatedActivity implements ShouldQueue
|
||||||
{
|
{
|
||||||
protected $activityRepo;
|
protected $activityRepo;
|
||||||
/**
|
/**
|
||||||
|
@ -16,7 +16,7 @@ use App\Repositories\ActivityRepository;
|
|||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Queue\InteractsWithQueue;
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
|
||||||
class UpdateContactLastLogin
|
class UpdateContactLastLogin implements ShouldQueue
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Create the event listener.
|
* Create the event listener.
|
||||||
|
@ -20,7 +20,7 @@ use Illuminate\Contracts\Queue\ShouldQueue;
|
|||||||
use Illuminate\Queue\InteractsWithQueue;
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class CreateInvoiceActivity
|
class CreateInvoiceActivity implements ShouldQueue
|
||||||
{
|
{
|
||||||
protected $activity_repo;
|
protected $activity_repo;
|
||||||
/**
|
/**
|
||||||
|
@ -20,7 +20,7 @@ use Illuminate\Contracts\Queue\ShouldQueue;
|
|||||||
use Illuminate\Queue\InteractsWithQueue;
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class UpdateInvoiceActivity
|
class UpdateInvoiceActivity implements ShouldQueue
|
||||||
{
|
{
|
||||||
protected $activity_repo;
|
protected $activity_repo;
|
||||||
/**
|
/**
|
||||||
|
@ -17,7 +17,7 @@ use Illuminate\Queue\InteractsWithQueue;
|
|||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Support\Facades\Mail;
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
|
||||||
class SendVerificationNotification
|
class SendVerificationNotification implements ShouldQueue
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Create the event listener.
|
* Create the event listener.
|
||||||
|
@ -278,7 +278,12 @@ class Client extends BaseModel
|
|||||||
*/
|
*/
|
||||||
public function getPaymentMethods($amount) :array
|
public function getPaymentMethods($amount) :array
|
||||||
{
|
{
|
||||||
|
//this method will get all the possible gateways a client can pay with
|
||||||
|
//but we also need to consider payment methods that are already stored
|
||||||
|
//so we MUST filter the company gateways and remove duplicates.
|
||||||
|
//
|
||||||
|
//Also need to harvest the list of client gateway tokens and present these
|
||||||
|
//for instant payment
|
||||||
$company_gateways = $this->getSetting('company_gateways');
|
$company_gateways = $this->getSetting('company_gateways');
|
||||||
|
|
||||||
if($company_gateways)
|
if($company_gateways)
|
||||||
|
@ -132,7 +132,7 @@ class StripePaymentDriver extends BasePaymentDriver
|
|||||||
{
|
{
|
||||||
$intent['intent'] = $this->getSetupIntent();
|
$intent['intent'] = $this->getSetupIntent();
|
||||||
|
|
||||||
return view('portal.default.gateways.stripe.create_customer', array_merge($data, $intent));
|
return view('portal.default.gateways.stripe.add_credit_card', array_merge($data, $intent));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,9 +239,9 @@ class CreateUsersTable extends Migration
|
|||||||
|
|
||||||
Schema::create('company_tokens', function (Blueprint $table) {
|
Schema::create('company_tokens', function (Blueprint $table) {
|
||||||
$table->increments('id');
|
$table->increments('id');
|
||||||
$table->unsignedInteger('company_id');
|
$table->unsignedInteger('company_id')->index();
|
||||||
$table->unsignedInteger('account_id');
|
$table->unsignedInteger('account_id');
|
||||||
$table->unsignedInteger('user_id')->index();
|
$table->unsignedInteger('user_id');
|
||||||
$table->string('token')->nullable();
|
$table->string('token')->nullable();
|
||||||
$table->string('name')->default('');
|
$table->string('name')->default('');
|
||||||
|
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
use App\DataMapper\ClientSettings;
|
use App\DataMapper\ClientSettings;
|
||||||
use App\DataMapper\CompanySettings;
|
use App\DataMapper\CompanySettings;
|
||||||
use App\DataMapper\DefaultSettings;
|
use App\DataMapper\DefaultSettings;
|
||||||
|
use App\Events\Invoice\InvoiceWasUpdated;
|
||||||
|
use App\Helpers\Invoice\InvoiceCalc;
|
||||||
use App\Models\Account;
|
use App\Models\Account;
|
||||||
use App\Models\Client;
|
use App\Models\Client;
|
||||||
use App\Models\ClientContact;
|
use App\Models\ClientContact;
|
||||||
@ -10,6 +12,7 @@ use App\Models\CompanyGateway;
|
|||||||
use App\Models\CompanyToken;
|
use App\Models\CompanyToken;
|
||||||
use App\Models\GatewayType;
|
use App\Models\GatewayType;
|
||||||
use App\Models\GroupSetting;
|
use App\Models\GroupSetting;
|
||||||
|
use App\Models\Invoice;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Models\UserAccount;
|
use App\Models\UserAccount;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
@ -104,6 +107,17 @@ class RandomDataSeeder extends Seeder
|
|||||||
/** Invoice Factory */
|
/** Invoice Factory */
|
||||||
factory(\App\Models\Invoice::class,500)->create(['user_id' => $user->id, 'company_id' => $company->id, 'client_id' => $client->id, 'settings' => ClientSettings::buildClientSettings($company->settings, $client->settings)]);
|
factory(\App\Models\Invoice::class,500)->create(['user_id' => $user->id, 'company_id' => $company->id, 'client_id' => $client->id, 'settings' => ClientSettings::buildClientSettings($company->settings, $client->settings)]);
|
||||||
|
|
||||||
|
$invoices = Invoice::all();
|
||||||
|
|
||||||
|
$invoices->each(function ($invoice){
|
||||||
|
|
||||||
|
$invoice_calc = new InvoiceCalc($invoice, $invoice->settings);
|
||||||
|
|
||||||
|
$invoice = $invoice_calc->build()->getInvoice();
|
||||||
|
|
||||||
|
$invoice->save();
|
||||||
|
});
|
||||||
|
|
||||||
/** Recurring Invoice Factory */
|
/** Recurring Invoice Factory */
|
||||||
factory(\App\Models\RecurringInvoice::class,20)->create(['user_id' => $user->id, 'company_id' => $company->id, 'client_id' => $client->id]);
|
factory(\App\Models\RecurringInvoice::class,20)->create(['user_id' => $user->id, 'company_id' => $company->id, 'client_id' => $client->id]);
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- update payment methods -->
|
<!-- update payment methods
|
||||||
<div class="row" style="margin-top: 30px;">
|
<div class="row" style="margin-top: 30px;">
|
||||||
<div class="col-sm-6 col-lg-3">
|
<div class="col-sm-6 col-lg-3">
|
||||||
<div class="card text-white bg-warning h-100">
|
<div class="card text-white bg-warning h-100">
|
||||||
@ -100,7 +100,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
-->
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
<!-- Stripe Credit Card TOKEN Form-->
|
|
||||||
@if($token)
|
|
||||||
|
|
||||||
<!-- Stripe Credit Card TOKEN Form-->
|
|
||||||
|
|
||||||
@else
|
|
||||||
<!-- Stripe Credit Card Payment Form-->
|
|
||||||
<div class="py-md-5">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- Stripe Credit Card Payment Form-->
|
|
||||||
@endif
|
|
||||||
|
|
||||||
|
|
||||||
@push('scripts')
|
|
||||||
<script src="https://js.stripe.com/v3/"></script>
|
|
||||||
@endpush
|
|
Loading…
x
Reference in New Issue
Block a user