IgorKorytin

Untitled

Nov 21st, 2019
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.94 KB | None | 0 0
  1.     public function actionFortest()
  2.     {
  3.         $obj = json_decode($_POST['j'],true);
  4.         //получим характеристики займа
  5.         $base=$obj['loan']['base'];
  6.         $date=$obj['loan']['date'];
  7.         $percent=$obj['loan']['percent'];
  8.         $duration=$obj['loan']['duration'];
  9.         $atDate=$obj['atDate'];
  10.         //переберем массив с платежами и определим сумму
  11.         foreach ($obj['payments'] as $key=>$value){
  12.             $lastdate=$value['date'];
  13.             $amount=$value['amount'];
  14.             if ($lastdate <= $atDate){ //проверка, что искомая дата позже чем дата платежа
  15.                 $dif=ceil((strtotime($lastdate) - strtotime($date))/3600/24-1);
  16.                 $added=$base*$percent*$dif;
  17.                 if ($added <= $base*3){ //Суммарное количество начисленных процентов не может превышать x3 от отстатка(!)
  18.                     $base=$base+($added-$amount);
  19.                 }else{ //иначе остаток по платежу просто умножаем на 3
  20.                     $added=$base*3;
  21.                     $base=$base+($added-$amount);
  22.                 }
  23.                 $date=$lastdate;
  24.             } else { //если искомая дата позже, чем  один из платежей, считаем, сумму на эту дату
  25.                 $added=$base*$percent*$dif;
  26.                 $dif=ceil((strtotime($atDate) - strtotime($date))/3600/24);
  27.                 if ($added <= $base*3){ //Суммарное количество начисленных процентов не может превышать x3 от отстатка(!)
  28.                     $answer=$base+$added;
  29.                 }else{ //иначе остаток по платежу просто умножаем на 3
  30.                     $added=$base*3;
  31.                     $base=$base+$added;
  32.                 }
  33.  
  34.             }
  35.         }
  36.         if ($answer){ //если получили ответ во время исключения
  37.             $ans=['summ'=>round($answer, 2)];
  38.             echo CJSON::encode($ans);
  39.         } else { //иначе считаем оставшиеся начисления и отдаем результат
  40.             $dif=ceil((strtotime($atDate) - strtotime($date))/3600/24);
  41.             $added=$base*$percent*$dif;
  42.             if ($added <= $base*3){ //Суммарное количество начисленных процентов не может превышать x3 от отстатка(!)
  43.                 $answer=$base+$added;
  44.             }else{ //иначе остаток по платежу просто умножаем на 3
  45.                 $added=$base*3;
  46.                 $answer=$base+$added;
  47.             }
  48.             $ans=['summ'=>round($answer, 2)];
  49.             echo CJSON::encode($ans);
  50.         }
  51.     }
Advertisement
Add Comment
Please, Sign In to add comment