From c6ed151813505dc89498cebfe723f29bf5ac3efc Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 22 Jul 2021 08:44:03 +1000 Subject: [PATCH] Fixes for ACH --- app/Models/Gateway.php | 4 ++-- app/PaymentDrivers/Stripe/ACH.php | 2 +- app/Utils/Traits/GeneratesCounter.php | 12 ++++++++++-- ..._07_21_213344_change_english_languages_tables.php | 8 +++++--- database/seeders/LanguageSeeder.php | 2 +- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/app/Models/Gateway.php b/app/Models/Gateway.php index fa95888fb63d..32fc20999409 100644 --- a/app/Models/Gateway.php +++ b/app/Models/Gateway.php @@ -87,10 +87,10 @@ class Gateway extends StaticModel case 20: case 56: return [GatewayType::CREDIT_CARD => ['refund' => true, 'token_billing' => true], - GatewayType::BANK_TRANSFER => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable']], + GatewayType::BANK_TRANSFER => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable','charge.succeeded']], GatewayType::ALIPAY => ['refund' => false, 'token_billing' => false], GatewayType::APPLE_PAY => ['refund' => false, 'token_billing' => false], - GatewayType::SOFORT => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable']]]; //Stripe + GatewayType::SOFORT => ['refund' => true, 'token_billing' => true, 'webhooks' => ['source.chargeable', 'charge.succeeded']]]; //Stripe break; case 39: return [GatewayType::CREDIT_CARD => ['refund' => true, 'token_billing' => true]]; //Checkout diff --git a/app/PaymentDrivers/Stripe/ACH.php b/app/PaymentDrivers/Stripe/ACH.php index a46bd4462b3a..502ed7059e48 100644 --- a/app/PaymentDrivers/Stripe/ACH.php +++ b/app/PaymentDrivers/Stripe/ACH.php @@ -105,7 +105,7 @@ class ACH $this->stripe->init(); - $bank_account = Customer::retrieveSource($request->customer, $request->source, $this->stripe->stripe_connect_auth); + $bank_account = Customer::retrieveSource($request->customer, ['source' => $request->source], $this->stripe->stripe_connect_auth); try { $bank_account->verify(['amounts' => request()->transactions]); diff --git a/app/Utils/Traits/GeneratesCounter.php b/app/Utils/Traits/GeneratesCounter.php index 97810afd67e3..e478b4cbedba 100644 --- a/app/Utils/Traits/GeneratesCounter.php +++ b/app/Utils/Traits/GeneratesCounter.php @@ -24,6 +24,7 @@ use App\Models\Task; use App\Models\Timezone; use App\Models\Vendor; use Illuminate\Support\Carbon; +use Illuminate\Support\Str; /** * Class GeneratesCounter. @@ -343,17 +344,24 @@ trait GeneratesCounter { $check = false; + $check_counter = 1; do { + $number = $this->padCounter($counter, $padding); $number = $this->applyNumberPattern($entity, $number, $pattern); $number = $this->prefixCounter($number, $prefix); - $check = $class::whereCompanyId($entity->company_id)->whereNumber($number)->withTrashed()->first(); + $check = $class::whereCompanyId($entity->company_id)->whereNumber($number)->withTrashed()->exists(); $counter++; + $check_counter++; + + if($check_counter > 100) + return $number . "_" . Str::random(5); + } while ($check); return $number; @@ -364,7 +372,7 @@ trait GeneratesCounter public function checkNumberAvailable($class, $entity, $number) :bool { - if ($entity = $class::whereCompanyId($entity->company_id)->whereNumber($number)->withTrashed()->first()) + if ($entity = $class::whereCompanyId($entity->company_id)->whereNumber($number)->withTrashed()->exists()) return false; return true; diff --git a/database/migrations/2021_07_21_213344_change_english_languages_tables.php b/database/migrations/2021_07_21_213344_change_english_languages_tables.php index 492c89c42a41..a065a475250c 100644 --- a/database/migrations/2021_07_21_213344_change_english_languages_tables.php +++ b/database/migrations/2021_07_21_213344_change_english_languages_tables.php @@ -14,9 +14,11 @@ class ChangeEnglishLanguagesTables extends Migration */ public function up() { - $language = Language::find(1); - $language->name = 'English - United States'; - $language->save(); + if($language = Language::find(1)) + { + $language->name = 'English - United States'; + $language->save(); + } } /** diff --git a/database/seeders/LanguageSeeder.php b/database/seeders/LanguageSeeder.php index e03c95b2c5d3..c5cd8a32fec9 100644 --- a/database/seeders/LanguageSeeder.php +++ b/database/seeders/LanguageSeeder.php @@ -24,7 +24,7 @@ class LanguageSeeder extends Seeder // https://www.loc.gov/standards/iso639-2/php/code_list.php $languages = [ - ['id' => 1, 'name' => 'English', 'locale' => 'en'], + ['id' => 1, 'name' => 'English - United States', 'locale' => 'en'], ['id' => 2, 'name' => 'Italian', 'locale' => 'it'], ['id' => 3, 'name' => 'German', 'locale' => 'de'], ['id' => 4, 'name' => 'French', 'locale' => 'fr'],