Example #1
0
 public static function payments(array $config, array $services = [])
 {
     return payments($config, $services);
 }
Example #2
0
 /**
  * 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();
    }
}