Example #1
0
 /**
  * Возврат существует?
  *
  * @param $bill_id
  * @param $refund_id
  *
  * @return bool
  */
 public static function isRefundExist($bill_id, $refund_id)
 {
     $existRefund = Refund::whereBillId($bill_id)->whereRefundId($refund_id)->first();
     if ($existRefund != null) {
         return true;
     }
     return false;
 }
Example #2
0
 /**
  * Если сумма возврата больше возможного, то сумма возарвта равна возможной
  *
  * @param Bill   $bill
  * @param string $amountQuery
  *
  * @return string
  */
 public static function calculateAmount($bill, $amountQuery)
 {
     //Берём общую сумму счёта
     $amountBill = $bill->amount;
     //Берём суммы прошлых возвратов
     $refundsBefore = Refund::whereBillId($bill->bill_id)->get();
     $amount_refund = 0;
     foreach ($refundsBefore as $one) {
         $amount_refund += $one->amount;
     }
     //Вычисляем возможную сумму возвтрата и отдаём её
     $rest = $amountBill - $amount_refund;
     $amount = $amountQuery > $rest ? $rest : $amountQuery;
     return $amount;
 }
 /**
  * Проверка статуса возврата
  *
  * @param int    $provider_id
  * @param string $bill_id
  * @param int    $refund_id
  *
  * @internal param int $id
  *
  * @return Response
  */
 public function show($provider_id, $bill_id, $refund_id)
 {
     if (!($bill = Bill::getBill($bill_id, $provider_id))) {
         $data['error'] = Catalog::C_BILL_NOT_FOUND;
         return $this->responseFromGate($data);
     }
     $refund = Refund::whereBillId($bill_id)->whereRefundId($refund_id)->first();
     if ($refund == null) {
         $data['error'] = Catalog::C_BILL_NOT_FOUND;
         return $this->responseFromGate($data);
     }
     //Проводим возврат по прошествии минуты
     if ($refund->isProcessing()) {
         $refund = $refund->doSuccess();
     }
     $data = $this->dataFromObj($refund);
     $data['user'] = $bill->user;
     $data['error'] = 0;
     return $this->responseFromGate($data);
 }
 /**
  * Если есть, отдаёт таблицу с возвратами
  *
  * @param $bill_id
  *
  * @return \Illuminate\View\View|string
  */
 public function GetRefundTable($bill_id)
 {
     $provider_id = Config::get('ff-qiwi-gate::user_id');
     $bill = Bill::getBill($bill_id, $provider_id);
     if (!$bill) {
         return 'Нет такого счёта';
     }
     $refunds = Refund::whereBillId($bill_id)->get();
     if (count($refunds) == 0) {
         return 'Возвратов нет';
     }
     return $this->make('refundsTable', array('refunds' => $refunds));
 }