Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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;
 }