public function financingSuccess() { $financeArray = Input::get('financeArray'); $financingDate = Input::get('financingDate'); $fundingDate = new Carbon($financingDate); $lastBill = Bill::orderBy('bill_date', 'desc')->first(); if (count($lastBill) > 0) { $lastBillCarbon = new Carbon($lastBill->bill_date); $diffBillsDate = $lastBillCarbon->diffInDays($fundingDate, false); } else { $diffBillsDate = 1; } $messageArray = []; foreach ($financeArray as $key) { $finance = Finance::find($key); $registryDate = new Carbon($finance->date_of_registry); $diffDate = $registryDate->diffInDays($fundingDate, false); if ($diffBillsDate > 0) { if ($diffDate >= 0) { if ($finance->type_of_funding === 'Первый платеж') { $deliveryToFinances = $finance->deliveryToFinance; //проверка лимита $relation = $deliveryToFinances->first()->delivery->relation; $usedLimit = 0; $usedLimit = $relation->deliveries()->where('state', false)->where('status', 'Профинансирована')->sum('balance_owed'); $limit = $relation->limit; if ($limit) { $limitValue = $limit->value; $freeLimit = $limitValue - $usedLimit; if ($finance->sum <= $freeLimit) { $finance->date_of_funding = $financingDate; $finance->status = 'Подтверждено'; if ($finance->save()) { foreach ($deliveryToFinances as $deliveryToFinance) { $delivery = $deliveryToFinance->delivery; $delivery->date_of_funding = $financingDate; $delivery->status = 'Профинансирована'; // $delivery->stop_commission = true; $delivery->save(); } } $callback = 'success'; $messageShot = 'Успешно!'; $message = 'Финансирование для клиента ' . $finance->client . ' подтверждено'; array_push($messageArray, ['callback' => $callback, 'message' => $message, 'message_shot' => $messageShot, 'type' => true, 'data' => $key]); } else { $callback = 'danger'; $messageShot = 'Ошибка!'; $message = 'Превышен лимит для связи. Клиент: ' . $relation->client->name . ' и Дебитор: ' . $relation->debtor->name; array_push($messageArray, ['callback' => $callback, 'message' => $message, 'message_shot' => $messageShot]); } } else { $callback = 'danger'; $messageShot = 'Ошибка!'; $message = 'Лимит для связи не найден. Клиент: ' . $relation->client->name . ' и Дебитор: ' . $relation->debtor->name; array_push($messageArray, ['callback' => $callback, 'message' => $message, 'message_shot' => $messageShot]); } } else { $finance->date_of_funding = $financingDate; $finance->status = 'Подтверждено'; $finance->save(); $callback = 'success'; $messageShot = 'Успешно!'; $message = 'Финансирование для клиента ' . $finance->client . ' подтверждено'; array_push($messageArray, ['callback' => $callback, 'message' => $message, 'message_shot' => $messageShot, 'type' => false]); } } else { $callback = 'danger'; $messageShot = 'Ошибка!'; $message = 'Дата реестра превышает дату финансирования'; array_push($messageArray, ['callback' => $callback, 'message' => $message, 'message_shot' => $messageShot]); } } else { $callback = 'danger'; $messageShot = 'Ошибка!'; $message = 'Финансирование поставки в закрытом месяце- запрещено!'; array_push($messageArray, ['callback' => $callback, 'message' => $message, 'message_shot' => $messageShot]); } } return $messageArray; }
public function getRepayment() { $outputArray = []; $repayment = Repayment::find(Input::get('id')); $repaymentDate = new Carbon($repayment->date); $lastBill = Bill::orderBy('bill_date', 'desc')->first(); if (count($lastBill) > 0) { $lastBillCarbon = new Carbon($lastBill->bill_date); $diffBillsDate = $lastBillCarbon->diffInDays($repaymentDate, false); } else { $diffBillsDate = 1; } if ($diffBillsDate > 0) { if ($repayment->balance > 0) { $client = $repayment->client; if ($repayment->type === 0) { $cor = $repayment->debtor; } else { $cor = $repayment->client; } $view = view('repayment.repaymentModalContent', ['repayment' => $repayment, 'client' => $client, 'cor' => $cor])->render(); $outputArray = ['error' => false, 'data' => $view]; } else { $callback = 'danger'; $messageShot = 'Ошибка!'; $message = 'Выбранное п/п имеет нулевой баланс'; $outputArray = ['error' => true, 'data' => ['callback' => $callback, 'message' => $message, 'message_shot' => $messageShot]]; } } else { $callback = 'danger'; $messageShot = 'Ошибка п/п!'; $message = 'Платежное поручение датировано датой закрытого месяца'; $outputArray = ['error' => true, 'data' => ['callback' => $callback, 'message' => $message, 'message_shot' => $messageShot]]; } return $outputArray; }