mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-08 05:34:30 -04:00
Merge pull request #7439 from CirkaN/Cirkovic/INA-2!
Cirkovic/INA-2 (Add limit to the auto bill )
This commit is contained in:
commit
d7bbc36251
@ -91,6 +91,7 @@ class Invoice extends BaseModel
|
||||
'auto_bill_enabled',
|
||||
'uses_inclusive_taxes',
|
||||
'vendor_id',
|
||||
'auto_bill_tries'
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
|
@ -117,20 +117,24 @@ class AutoBillInvoice extends AbstractService
|
||||
|
||||
$payment = false;
|
||||
|
||||
//TODO check retries is not past threshold > 3. //return
|
||||
// if threshold exceeded. set invoices.auto_bill_enabled = false.
|
||||
$number_of_retries = $this->invoice->auto_bill_tries;
|
||||
|
||||
try {
|
||||
$payment = $gateway_token->gateway
|
||||
->driver($this->client)
|
||||
->setPaymentHash($payment_hash)
|
||||
->tokenBilling($gateway_token, $payment_hash);
|
||||
} catch (\Exception $e) {
|
||||
//increase the counter
|
||||
$this->invoice->auto_bill_tries = $number_of_retries + 1;
|
||||
$this->invoice->save();
|
||||
//disable auto bill if limit of 3 is reached
|
||||
if ($this->invoice->auto_bill_tries == 3) {
|
||||
$this->invoice->auto_bill_enabled = false;
|
||||
$this->invoice->save();
|
||||
}
|
||||
catch(\Exception $e){
|
||||
nlog("payment NOT captured for " . $this->invoice->number . " with error " . $e->getMessage());
|
||||
// $this->invoice->service()->removeUnpaidGatewayFees();
|
||||
|
||||
//@TODO increment auto_bill_tries here
|
||||
}
|
||||
|
||||
if ($payment) {
|
||||
|
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class AddAutoBillTriesToInvoicesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('invoices', function (Blueprint $table) {
|
||||
$table->smallInteger('auto_bill_tries')->default(0);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('invoices', function (Blueprint $table) {
|
||||
$table->dropColumn('auto_bill_tries');
|
||||
});
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user