示例#1
0
 /**
  * Show the form for creating a new resource.
  *
  * @return Response
  */
 public function order()
 {
     $data = Input::all();
     $pay = Pay_method::where('pseudo_name', $data['payment'])->firstOrFail();
     $delivery = Delivery::where('pseudo_name', $data['delivery'])->firstOrFail();
     $order = new Order();
     $order->name = $data['name'];
     $order->telephone = $data['phone'];
     $order->adress = $data['address'];
     $order->email = $data['email'];
     $order->payment_method_id = $pay->id;
     $order->delivery_id = $delivery->id;
     $order->comment = $data['info'];
     $order->status = 'new';
     $order->total_cost = $data['sum'];
     $order->save();
     foreach ($data['cart'] as $name => $value) {
         $prod = Product::where('pseudo_name', $name)->firstOrFail();
         $ord_prod = new OrderProduct();
         $ord_prod->product_id = $prod->id;
         $ord_prod->count = $value;
         $ord_prod->order_id = $order->id;
         $ord_prod->save();
     }
     Mail::send('emails.order_success', ['data' => $data], function ($message) {
         $message->setEncoder(Swift_Encoding::get8BitEncoding());
         $message->to('*****@*****.**', 'John Smith')->subject('New order!');
     });
     return 1;
 }
 public function getFilterData()
 {
     $client_id = Input::get('ClientId');
     $debtor_id = Input::get('DebtorId');
     $status = Input::get('Status');
     $deliveries = Delivery::where('status', '=', 'Профинансирована');
     if ($status == 1) {
         $deliveries->where('state', true);
     }
     if ($status == 2) {
         $deliveries->where('state', false);
     }
     $commissions = array();
     if (!empty($client_id)) {
         $deliveries->where('client_id', '=', $client_id);
     }
     if (!empty($debtor_id)) {
         $deliveries->where('debtor_id', '=', $debtor_id);
     }
     //$ChargeCommission->delivery()->orderBy('waybill');
     $deliveries = $deliveries->get();
     $view = view('chargeCommission.tableRow', ['deliveries' => $deliveries])->render();
     $callback = 'success';
     return $view;
 }
示例#3
0
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     return Delivery::where('status', '<=', 5)->with('vimeo')->get();
 }
示例#4
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');
 }
示例#5
0
 public function index(Request $request)
 {
     Carbon::setLocale('ru');
     $clients_filter = Client::whereHas('deliveries', function ($query) {
         $query->where('status', '=', 'Профинансирована');
     })->get();
     if ($request->ajax()) {
         $bills = Bill::where('id', '>', 0);
         if (Input::get('year') != Null) {
             $bills = $bills->whereYear('bill_date', '=', Input::get('year'));
         }
         if (Input::get('month') != Null) {
             $bills = $bills->whereMonth('bill_date', '=', Input::get('month'));
         }
         if (Input::get('client_id') != 'all') {
             $bills = $bills->where('client_id', '=', Input::get('client_id'));
         }
         $sum = array();
         $sum['without_nds'] = $bills->sum('without_nds');
         $sum['nds'] = $bills->sum('nds');
         $sum['with_nds'] = $bills->sum('with_nds');
         $bills = $bills->get();
         $clients = Client::All();
         $debts_full = array();
         $monthRepayment = array();
         $bill_date_first_day = Carbon::createFromDate(Input::get('year'), Input::get('month'), 1);
         foreach ($clients as $client) {
             foreach ($client->agreements as $agreement) {
                 $debt = 0;
                 foreach ($agreement->relations as $relation) {
                     if ($agreement->account == FALSE) {
                         foreach ($relation->deliveries as $delivery) {
                             if ($delivery->status == 'Профинансирована') {
                                 //echo $client->name.": долг перед месяцем:";
                                 $pred_with_nds = $delivery->dailyChargeCommission()->where('handler', false)->whereDate('created_at', '<', $bill_date_first_day)->sum('with_nds');
                                 // var_dump($pred_with_nds);
                                 // echo $client->name.": погашения:";
                                 $repayments = $delivery->dailyChargeCommission()->where('handler', true)->sum('with_nds');
                                 // var_dump($repayments);echo $client->name.": начисленные комиссии:";
                                 $with_nds_delivery = $delivery->dailyChargeCommission()->where('handler', false)->whereYear('created_at', '=', Input::get('year'))->whereMonth('created_at', '=', Input::get('month'))->sum('with_nds');
                                 // var_dump($with_nds_delivery);
                                 if ($repayments > $pred_with_nds) {
                                     if ($repayments >= $with_nds_delivery + $pred_with_nds) {
                                         $debt += 0;
                                     } else {
                                         $debt += $with_nds_delivery - ($repayments - $pred_with_nds);
                                     }
                                 } else {
                                     $debt += $with_nds_delivery;
                                 }
                                 // echo $client->name.": текущий долг:";
                                 // var_dump($debt);
                                 // echo "\n";
                             }
                         }
                     } else {
                         $debt = 0;
                     }
                 }
                 // var_dump($debt);
                 $monthRepayment[$agreement->id] = $debt;
             }
         }
         // var_dump($monthRepayment);
         $stop = Delivery::where('stop_commission', '=', true)->get();
         return view('invoicing.indexAjax', ['stop' => $stop, 'bills' => $bills, 'debts_full' => $debts_full, 'monthRepayment' => $monthRepayment, 'sum' => $sum]);
     } else {
         $dt = Carbon::now()->startOfMonth();
         $dates = DailyChargeCommission::select('created_at')->whereDate('created_at', '<', $dt)->orderBy('created_at', 'desc')->groupBy('created_at')->get();
         $year = '';
         $month = '';
         $i_month = 0;
         $i_year = 0;
         $dates_for_filter = array();
         foreach ($dates as $date) {
             $dates_for_filter[$date->created_at->year][$date->created_at->month] = $date->created_at->month;
         }
         return view('invoicing.index', ['clients' => $clients_filter, 'dt' => $dates_for_filter]);
     }
 }
示例#6
0
 public function setDeliveries($dateNow)
 {
     $deliveries = Delivery::where('state', false)->get();
     foreach ($deliveries as $delivery) {
         //Сегодняшнее число
         $dateOfRecourse = new Carbon($delivery->date_of_recourse);
         $actualDeferment = $dateOfRecourse->diffInDays($dateNow, false);
         //Фактическая просрочка
         $delivery->the_actual_deferment = $actualDeferment;
         $delivery->save();
     }
 }