Skip to content

Commit

Permalink
Money middleware re-factoring..
Browse files Browse the repository at this point in the history
  • Loading branch information
cuneytsenturk committed Feb 9, 2021
1 parent 6852d83 commit e251a14
Showing 1 changed file with 41 additions and 71 deletions.
112 changes: 41 additions & 71 deletions app/Http/Middleware/Money.php
Original file line number Diff line number Diff line change
Expand Up @@ -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 (!empty($amount)) {
try {
$amount = money($amount)->getAmount();
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
logger($e->getMessage());

$amount = 0;
}

$request->request->set('amount', $amount);
}

if (isset($document_number) || !empty($items)) {
if (!empty($items)) {
foreach ($items as $key => $item) {
if (!isset($item['price'])) {
continue;
}
if (($request->method() != 'POST') && ($request->method() != 'PATCH')) {
return $next($request);
}

try {
$amount = money($item['price'])->getAmount();
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
logger($e->getMessage());
$parameters = [
'amount',
'sale_price',
'purchase_price',
'opening_balance',
];

$amount = 0;
}
foreach ($parameters as $parameter) {
if (!$request->has($parameter)) {
continue;
}

$items[$key]['price'] = $amount;
}
$money_format = $request->get($parameter);

$request->request->set('items', $items);
}
if ($parameter == 'sale_price' || $parameter == 'purchase_price') {
$money_format = Str::replaceFirst(',', '.', $money_format);
}

if (isset($opening_balance)) {
try {
$amount = money($opening_balance)->getAmount();
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
logger($e->getMessage());

$amount = 0;
}
$amount = $this->getAmount($money_format);

$opening_balance = $amount;
$request->request->set($parameter, $amount);
}

$request->request->set('opening_balance', $opening_balance);
}
$document_number = $request->get('document_number');
$items = $request->get('items');

if (isset($sale_price)) {
$sale_price = Str::replaceFirst(',', '.', $sale_price);
if (isset($document_number) || !empty($items)) {
if (!empty($items)) {
foreach ($items as $key => $item) {
if (!isset($item['price'])) {
continue;
}

try {
$amount = money($sale_price)->getAmount();
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
logger($e->getMessage());
$amount = $this->getAmount($item['price']);

$amount = 0;
$items[$key]['price'] = $amount;
}

$sale_price = $amount;

$request->request->set('sale_price', $sale_price);
$request->request->set('items', $items);
}
}

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;
}
return $next($request);
}

$purchase_price = $amount;
protected function getAmount($money_format)
{
try {
$amount = money($money_format)->getAmount();
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
logger($e->getMessage());

$request->request->set('purchase_price', $purchase_price);
}
$amount = 0;
}

return $next($request);
return $amount;
}
}

0 comments on commit e251a14

Please sign in to comment.