public static function payments(array $config, array $services = []) { return payments($config, $services); }
/** * calculate every payment for order */ public function calculateEveryPayment($order, $pretend) { $saveContentPrice = $order->content_price; $saveDeliveryPirce = $order->delivery_price; $calculations = array(); // payments foreach (payments(app('veer')->siteId) as $method) { $order->payment_method_id = $method->id; $order = $this->recalculateOrderPayment($order, $method, $pretend); $calculations[$method->id] = array("method" => $method->toArray(), "payment_hold" => $order->payment_hold, "payment_free" => $order->payment_free, "delivery_price_change" => $order->delivery_price - $saveDeliveryPirce, "content_price_change" => $order->content_price - $saveContentPrice); $order->content_price = $saveContentPrice; $order->delivery_price = $saveDeliveryPirce; } return $calculations; }
$regexp = '/[0-9]+/u'; /* Дальше идет замена процента с "1" на "1.01" и т.д. для удобного умножения */ if ($percentInput < 10) { $percent = preg_replace($regexp, '1.0$0', $percentInput); } elseif ($percentInput >= 10 && $percentInput < 100) { $percent = preg_replace($regexp, '1.$0', $percentInput); } elseif ($percentInput >= 100 && $percentInput < 200) { $regexp2 = '/^([0-9])([0-9]*)/u'; $percent = preg_replace($regexp2, '2.$2', $percentInput); } else { error(); } for ($months = 1; $credit >= 0; $months++) { $credit *= $percent; $credit += $comission; if ($credit >= $payout) { $credit -= $payout; $credit = ceil($credit); $payed += $payout; payments($months, $credit, $payed); } else { $credit -= $payout; $credit = ceil($credit); $payed += $payout; $payed += $credit; lastPay($months, $payed); } if ($credit > $productCost * 5 or $payed > $productCost * 5) { badCredit(); } }