Esempio n. 1
0
 public function store()
 {
     // validate
     // read more on validation at http://laravel.com/docs/validation
     $rules = array('full_name' => 'required', 'name' => 'required', 'inn' => 'required', 'kpp' => 'required|size:9', 'ogrn' => 'required|unique:debtors|size:13');
     $validator = Validator::make(Input::all(), $rules);
     // process the login
     if ($validator->fails()) {
         return redirect()->back()->with('danger', 'Данные дебитора введены неверно')->withInput();
     } else {
         if (count(Debtor::where('inn', '=', Input::get('inn'))->get()) > 0) {
             return redirect()->back()->with('danger', 'Данные дебитора введены неверно')->withInput();
         } else {
             // store
             $debtor = new Debtor();
             $debtor->full_name = Input::get('full_name');
             $debtor->name = Input::get('name');
             $debtor->inn = Input::get('inn');
             $debtor->kpp = Input::get('kpp');
             $debtor->ogrn = Input::get('ogrn');
             if ($this->is_valid_inn((int) $debtor->inn)) {
                 //Проверка инн
                 $debtor->save();
             } else {
                 var_dump('Error');
             }
             // redirect
             Session::flash('success', 'Дебитор добавлен');
             return Redirect::to('debtor');
         }
     }
 }
Esempio n. 2
0
 public function store()
 {
     //Session::start();
     //dd(Input::file('report'));
     if (Input::file('report')) {
         $result = Excel::load(Input::file('report'), function ($reader) {
             $reader->setDateFormat('Y-m-d');
             $reader->toObject();
         }, 'UTF-8')->get();
         $resultNotJson = $result->each(function ($sheet) {
             $sheet->each(function ($row) {
             });
         });
         $resultArrayNull = json_decode($resultNotJson);
         $resultArrayVar = [];
         $resultArray = [];
         $deliveryCheck = 0;
         $invoicesCheck = 0;
         for ($i = 0; $i < count($resultArrayNull); $i++) {
             for ($j = 0; $j < count($resultArrayNull[$i]); $j++) {
                 if (!empty($resultArrayNull[$i][$j])) {
                     if ($resultArrayNull[$i][$j] == 'Накладная' || $resultArrayNull[$i][$j] == 'накладная') {
                         $deliveryCheck++;
                     }
                     if ($resultArrayNull[$i][$j] == 'Счет-фактура' || $resultArrayNull[$i][$j] == 'счет-фактура') {
                         $invoicesCheck++;
                     }
                     array_push($resultArrayVar, $resultArrayNull[$i][$j]);
                 }
             }
             if (count($resultArrayVar) > 0) {
                 array_push($resultArray, $resultArrayVar);
             }
             $resultArrayVar = [];
         }
         //dd($invoicesCheck);
         if ($deliveryCheck > 0 && $invoicesCheck > 0 && $deliveryCheck == $invoicesCheck) {
             if (count($resultArray[0] === 4) && count($resultArray[1] === 4) && count($resultArray[2] === 4) && count($resultArray[3] === 2) && count($resultArray[4] === 4)) {
                 $clientInn = $resultArray[1][3];
                 $clientName = $resultArray[1][1];
                 $debtorInn = $resultArray[2][3];
                 $debtorName = $resultArray[2][1];
                 $contractCode = strval($resultArray[3][1]);
                 $contractDate = new Carbon($resultArray[4][2]);
                 $registryVar = $resultArray[0][3];
                 $registryDate = new Carbon($resultArray[0][1]);
                 $client = Client::where('inn', '=', $clientInn)->first();
                 $debtor = Debtor::where('inn', '=', $debtorInn)->first();
                 $registryDelivery = Delivery::where('registry', '=', $registryVar)->where('client_id', '=', $client->id)->first();
                 if ($registryDelivery === null) {
                     if ($client) {
                         if ($debtor) {
                             $clientId = $client->id;
                             $debtorId = $debtor->id;
                             $relation = Relation::where('client_id', $client->id)->where('debtor_id', $debtor->id)->whereHas('contract', function ($q) use($contractCode, $contractDate) {
                                 $q->where('code', '=', $contractCode);
                                 $q->whereDate('created_at', '=', $contractDate);
                             })->first();
                             if ($relation) {
                                 $row = 0;
                                 $stop = 0;
                                 $i = 7;
                                 //dd($resultArray);
                                 while ($stop === 0) {
                                     if (isset($resultArray[$i][1]) && ($resultArray[$i][1] == 'Накладная' || $resultArray[$i][1] == 'накладная')) {
                                         $waybillDateVar = new Carbon($resultArray[$i][3]);
                                         //Дата накладной
                                         $waybillVar = strval($resultArray[$i][2]);
                                         //Накладная
                                         if (count($resultArray[$i + 1]) == 3) {
                                             $invoiceDateVar = new Carbon($resultArray[$i + 1][2]);
                                             //Дата счет фактуры
                                             $invoiceVar = $resultArray[$i + 1][1];
                                         } elseif (count($resultArray[$i + 1]) == 2) {
                                             if (strtotime($resultArray[$i + 1][1])) {
                                                 $invoiceDateVar = new Carbon($resultArray[$i + 1][1]);
                                                 //Дата счет фактуры
                                                 $invoiceVar = null;
                                             } else {
                                                 $invoiceDateVar = null;
                                                 //Дата счет фактуры
                                                 $invoiceVar = $resultArray[$i + 1][1];
                                             }
                                         } else {
                                             $invoiceVar = null;
                                             $invoiceDateVar = null;
                                         }
                                         $sum = $resultArray[$i][5];
                                         $debtDate = $resultArray[$i][4];
                                         //не используется
                                         if (isset($resultArray[$i][6])) {
                                             $notes = $resultArray[$i][6];
                                         } else {
                                             $notes = null;
                                         }
                                         $waybillExist = $relation->deliveries->where('waybill', $waybillVar)->where('date_of_waybill', $waybillDateVar->format('Y-m-d'))->first();
                                         if ($waybillExist === null) {
                                             $dateOfRecourse = clone $waybillDateVar;
                                             $dateOfRecourse->addDays($relation->deferment);
                                             //Срок оплаты
                                             $dateNowVar = new Carbon(date('Y-m-d'));
                                             //Сегодняшнее число
                                             $actualDeferment = clone $dateNowVar;
                                             $dateOfRecourseClone = clone $dateOfRecourse;
                                             $actualDeferment = $dateOfRecourseClone->diffInDays($actualDeferment, false);
                                             //Фактическая просрочка
                                             $dateOfRegress = clone $dateOfRecourse;
                                             $dateOfRegress->addDays($relation->waiting_period);
                                             //Дата регресса
                                             $theDateOfTerminationOfThePeriodOfRegression = clone $dateOfRegress;
                                             $theDateOfTerminationOfThePeriodOfRegression->addDays($relation->regress_period);
                                             //Дата окончания регресса
                                             $delivery = new Delivery();
                                             $delivery->client_id = $relation->client_id;
                                             $delivery->debtor_id = $relation->debtor_id;
                                             $delivery->relation_id = $relation->id;
                                             $delivery->waybill = $waybillVar;
                                             $delivery->waybill_amount = $sum;
                                             $rpp = $relation->rpp;
                                             $delivery->first_payment_amount = $sum / 100.0 * $rpp;
                                             $delivery->date_of_waybill = $waybillDateVar;
                                             $delivery->due_date = $relation->deferment;
                                             $delivery->date_of_recourse = $dateOfRecourse;
                                             //срок оплаты
                                             //$delivery->date_of_payment = $dateNowVar->format('Y-m-d');//дата оплаты(ложь)
                                             $delivery->date_of_regress = $dateOfRegress;
                                             $delivery->the_date_of_termination_of_the_period_of_regression = $theDateOfTerminationOfThePeriodOfRegression;
                                             $delivery->the_date_of_a_registration_supply = $dateNowVar->format('Y-m-d');
                                             $delivery->the_actual_deferment = $actualDeferment;
                                             $delivery->invoice = $invoiceVar;
                                             $delivery->date_of_invoice = $invoiceDateVar;
                                             $delivery->registry = $registryVar;
                                             $delivery->date_of_registry = $registryDate;
                                             //$delivery->date_of_funding = ;
                                             //$delivery->end_date_of_funding = $dateNowVar->format('Y-m-d');;//(ложь)
                                             $delivery->notes = $notes;
                                             $delivery->return = "";
                                             $delivery->status = 'Зарегистрирована';
                                             $delivery->state = false;
                                             $delivery->the_presence_of_the_original_document = Input::get('the_presence_of_the_original_document');
                                             if ($relation->confedential_factoring) {
                                                 $delivery->type_of_factoring = $relation->confedential_factoring;
                                             } else {
                                                 $delivery->type_of_factoring = false;
                                             }
                                             if (!$delivery->save()) {
                                                 Session::flash('success', 'Реестр успешно загружен');
                                             }
                                         } else {
                                             //накладная с таким номером существует
                                         }
                                         $i = $i + 2;
                                     } else {
                                         $stop = 1;
                                     }
                                 }
                             } else {
                                 Session::flash('danger', 'Связь между клиентом и дебитором, либо договор не найдены');
                             }
                         } else {
                             Session::flash('danger', 'Дебитор с таким ИНН не найден');
                         }
                     } else {
                         Session::flash('danger', 'Клиент с таким ИНН не найден');
                     }
                 } else {
                     Session::flash('danger', 'Реестр с таким номером уже существует');
                 }
             } else {
                 Session::flash('danger', 'Заполните все поля реестра');
             }
         } else {
             Session::flash('danger', 'Проверьте наличие ключей \'Накладная\' и \'Счет-фактура\'');
         }
     } else {
         Session::flash('danger', 'Файл не был загружен');
     }
     return Redirect::to('delivery');
 }
Esempio n. 3
0
 public function store()
 {
     $sendArray = Input::get('sendArray');
     $outputArray = [];
     //Проверка валидности
     foreach ($sendArray as $array) {
         $errorArray = [];
         if ($array['clientId'] == 0) {
             $callback = 'danger';
             $messageShot = 'Ошибка!';
             $message = 'Выберите клиента по п/п № ' . $array['number'];
             array_push($errorArray, ['callback' => $callback, 'message' => $message, 'message_shot' => $messageShot]);
         } else {
             if ($array['debtorId'] != 0) {
                 $relation = Relation::where('client_id', $array['clientId'])->where('debtor_id', $array['debtorId'])->first();
                 if ($relation == null) {
                     $callback = 'danger';
                     $messageShot = 'Ошибка!';
                     $message = 'В системе по п/п № ' . $array['number'] . ' отсутствует связь!';
                     array_push($errorArray, ['callback' => $callback, 'message' => $message, 'message_shot' => $messageShot]);
                 }
             }
         }
     }
     //-----------------------------------
     if (count($errorArray) == 0) {
         //save
         $messageArray = [];
         $callback = 'success';
         $messageShot = 'Успешно!';
         foreach ($sendArray as $array) {
             $repayment = new Repayment();
             $repayment->number = $array['number'];
             $repayment->date = new Carbon($array['date']);
             $repayment->info = $array['info'];
             $repayment->sum = $array['sum'];
             $repayment->balance = $array['sum'];
             $repayment->purpose_of_payment = $array['purpose_of_payment'];
             $repayment->inn = $array['inn'];
             $clientId = $array['clientId'];
             $debtorId = $array['debtorId'];
             if ($debtorId == 0) {
                 $repayment->type = 1;
                 $repayment->client_id = $clientId;
             } else {
                 $client = Client::where('inn', $array['inn'])->first();
                 $debtor = Debtor::where('inn', $array['inn'])->first();
                 if ($client != null && $debtor == null) {
                     $repayment->type = -1;
                 } elseif ($client == null && $debtor != null) {
                     $repayment->type = 0;
                 } else {
                     $repayment->type = -1;
                     //
                 }
                 $repayment->client_id = $clientId;
                 $repayment->debtor_id = $debtorId;
             }
             $repayment->save();
             $message = 'П/п № ' . $array['number'] . ' успешно добавлено!';
             array_push($messageArray, ['callback' => $callback, 'message' => $message, 'message_shot' => $messageShot]);
         }
         $outputArray = ['error' => false, 'data' => $messageArray];
         //-------------------------
     } else {
         $outputArray = ['error' => true, 'data' => $errorArray];
     }
     return $outputArray;
 }