diff --git a/README.md b/README.md index faefefa37..e96a2823e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ # Akaunting™ -   [](https://crowdin.com/project/akaunting)  +[](https://github.com/akaunting/akaunting/releases) + +[](https://crowdin.com/project/akaunting) +[](https://github.com/akaunting/akaunting/actions) +[](LICENSE.txt) Akaunting is a free, open source and online accounting software designed for small businesses and freelancers. It is built with modern technologies such as Laravel, VueJS, Bootstrap 4, RESTful API etc. Thanks to its modular structure, Akaunting provides an awesome App Store for users and developers. diff --git a/app/Abstracts/Http/PaymentController.php b/app/Abstracts/Http/PaymentController.php index a523364e1..5a6a8ad43 100644 --- a/app/Abstracts/Http/PaymentController.php +++ b/app/Abstracts/Http/PaymentController.php @@ -2,9 +2,9 @@ namespace App\Abstracts\Http; +use App\Events\Income\PaymentReceived; use App\Http\Requests\Portal\InvoicePayment as PaymentRequest; use App\Models\Income\Invoice; -use Illuminate\Http\Request; use Illuminate\Routing\Controller as BaseController; use Illuminate\Support\Facades\URL; use Monolog\Logger; @@ -169,7 +169,7 @@ abstract class PaymentController extends BaseController $request['payment_method'] = $this->alias; $request['reference'] = $this->getReference($invoice); - event(new \App\Events\Income\PaymentReceived($invoice, $request)); + event(new PaymentReceived($invoice, $request)); } public function setReference($invoice, $reference) diff --git a/app/Traits/Omnipay.php b/app/Traits/Omnipay.php index 0a804b85c..3b28d2e2f 100644 --- a/app/Traits/Omnipay.php +++ b/app/Traits/Omnipay.php @@ -2,18 +2,11 @@ namespace App\Traits; -use Omnipay\Omnipay as Library; - trait Omnipay { - use Library; - public $gateway; - public function create($name) - { - $this->gateway = Library::create($name); - } + public $factory; public function authorize($invoice, $request, $extra_options = []) { @@ -156,4 +149,42 @@ trait Omnipay 'data' => false, ]); } + + public function all() + { + return $this->callFactory('all'); + } + + public function replace($gateways) + { + return $this->callFactory('replace', [$gateways]); + } + + public function register($class_name) + { + return $this->callFactory('register', [$class_name]); + } + + public function create($class, $http_client = null, $http_request = null) + { + $this->gateway = $this->callFactory('create', [$class, $http_client, $http_request]); + + return $this->gateway; + } + + public function callFactory($method, $parameters = []) + { + $factory = $this->getFactory(); + + return call_user_func_array(array($factory, $method), (array) $parameters); + } + + public function getFactory() + { + if (is_null($this->factory)) { + $this->factory = new \Omnipay\Common\GatewayFactory(); + } + + return $this->factory; + } } diff --git a/resources/views/partials/portal/payment_method/redirect/show.blade.php b/resources/views/partials/portal/payment_method/redirect/show.blade.php index eab710a0b..d61f93ceb 100644 --- a/resources/views/partials/portal/payment_method/redirect/show.blade.php +++ b/resources/views/partials/portal/payment_method/redirect/show.blade.php @@ -1,26 +1,28 @@ -