From e251a14106fc2fcaf7a34f6d759d41c99e174b1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Tue, 9 Feb 2021 14:56:56 +0300 Subject: [PATCH] Money middleware re-factoring.. --- app/Http/Middleware/Money.php | 118 +++++++++++++--------------------- 1 file changed, 44 insertions(+), 74 deletions(-) diff --git a/app/Http/Middleware/Money.php b/app/Http/Middleware/Money.php index 8c206ab6d..1a51550d4 100644 --- a/app/Http/Middleware/Money.php +++ b/app/Http/Middleware/Money.php @@ -19,95 +19,65 @@ class Money */ public function handle($request, Closure $next) { - if ($request->method() == 'POST' || $request->method() == 'PATCH') { - $amount = $request->get('amount'); - $document_number = $request->get('document_number'); - $sale_price = $request->get('sale_price'); - $purchase_price = $request->get('purchase_price'); - $opening_balance = $request->get('opening_balance'); - $items = $request->get('items'); + if (($request->method() != 'POST') && ($request->method() != 'PATCH')) { + return $next($request); + } - if (!empty($amount)) { - try { - $amount = money($amount)->getAmount(); - } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { - logger($e->getMessage()); + $parameters = [ + 'amount', + 'sale_price', + 'purchase_price', + 'opening_balance', + ]; - $amount = 0; - } - - $request->request->set('amount', $amount); + foreach ($parameters as $parameter) { + if (!$request->has($parameter)) { + continue; } - if (isset($document_number) || !empty($items)) { - if (!empty($items)) { - foreach ($items as $key => $item) { - if (!isset($item['price'])) { - continue; - } + $money_format = $request->get($parameter); - try { - $amount = money($item['price'])->getAmount(); - } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { - logger($e->getMessage()); + if ($parameter == 'sale_price' || $parameter == 'purchase_price') { + $money_format = Str::replaceFirst(',', '.', $money_format); + } - $amount = 0; - } + $amount = $this->getAmount($money_format); - $items[$key]['price'] = $amount; + $request->request->set($parameter, $amount); + } + + $document_number = $request->get('document_number'); + $items = $request->get('items'); + + if (isset($document_number) || !empty($items)) { + if (!empty($items)) { + foreach ($items as $key => $item) { + if (!isset($item['price'])) { + continue; } - $request->request->set('items', $items); - } - } + $amount = $this->getAmount($item['price']); - if (isset($opening_balance)) { - try { - $amount = money($opening_balance)->getAmount(); - } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { - logger($e->getMessage()); - - $amount = 0; + $items[$key]['price'] = $amount; } - $opening_balance = $amount; - - $request->request->set('opening_balance', $opening_balance); - } - - if (isset($sale_price)) { - $sale_price = Str::replaceFirst(',', '.', $sale_price); - - try { - $amount = money($sale_price)->getAmount(); - } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { - logger($e->getMessage()); - - $amount = 0; - } - - $sale_price = $amount; - - $request->request->set('sale_price', $sale_price); - } - - if (isset($purchase_price)) { - $purchase_price = Str::replaceFirst(',', '.', $purchase_price); - - try { - $amount = money($purchase_price)->getAmount(); - } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { - logger($e->getMessage()); - - $amount = 0; - } - - $purchase_price = $amount; - - $request->request->set('purchase_price', $purchase_price); + $request->request->set('items', $items); } } return $next($request); } + + protected function getAmount($money_format) + { + try { + $amount = money($money_format)->getAmount(); + } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { + logger($e->getMessage()); + + $amount = 0; + } + + return $amount; + } }