From ed56b6110e1b756db25bd9e5885211ca2816e216 Mon Sep 17 00:00:00 2001 From: Odran HUSSON Date: Sun, 1 Mar 2020 16:07:31 +0100 Subject: [PATCH] Payment method remove hardcode --- app/Http/Controllers/PaypalController.php | 24 ++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/PaypalController.php b/app/Http/Controllers/PaypalController.php index bb9a1f1a1..76cde89bd 100644 --- a/app/Http/Controllers/PaypalController.php +++ b/app/Http/Controllers/PaypalController.php @@ -6,6 +6,7 @@ use Crater\CompanySetting; use Crater\Invoice; use Crater\Payment; +use Crater\PaymentMethod; use Illuminate\Http\Request; use Srmklive\PayPal\Services\ExpressCheckout; use Validator; @@ -33,6 +34,24 @@ protected function getInvoice($invoiceId) { return $invoice; } + /** + * @param $name + * + * @return PaymentMethod + */ + protected function getOrCreatePaymentMethod($name) { + $paymentMethod = PaymentMethod::where('name', $name)->where('company_id', $this::COMPANY_ID)->first(); + + if($paymentMethod === NULL) { + $paymentMethod = new PaymentMethod(); + $paymentMethod->name($name); + $paymentMethod->company_id($this::COMPANY_ID); + $paymentMethod->save(); + } + + return $paymentMethod; + } + /** * @param $invoiceId * @@ -143,6 +162,9 @@ public function paymentSuccess($invoiceId) { protected function storePayment($invoiceId) { if ($this->getPaymentByInvoiceId($invoiceId) === NULL) { + + $paymentMethod = $this->getOrCreatePaymentMethod('Paypal'); + $invoice = $this->getInvoice($invoiceId); $payment_prefix = CompanySetting::getSetting('payment_prefix', $this::COMPANY_ID); $payment_number = Payment::getNextPaymentNumber($payment_prefix); @@ -158,7 +180,7 @@ protected function storePayment($invoiceId) { 'user_id' => $invoice->user->id, 'company_id' => $this::COMPANY_ID, 'invoice_id' => $invoice->id, - 'payment_method_id' => 9, + 'payment_method_id' => $paymentMethod->id, 'amount' => $invoice->total, 'notes' => $invoice->unique_hash, 'unique_hash' => str_random(60)