Blame view

app/Http/Controllers/MainController.php 25 KB
242debab8   thesolarwind   Первый коммит в п...
1
2
3
  <?php
  
  namespace App\Http\Controllers;
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
4
  use App\Classes\SortData;
232c33a82   Андрей Ларионов   Все формы обратно...
5
6
  use App\Http\Requests\EmailRequest;
  use App\Http\Requests\FooterFeedbackRequest;
5fc27fa4a   Андрей Ларионов   Отправка писем на...
7
  use App\Mail\SendMail;
881f83e63   Андрей Ларионов   Создание карточки...
8
  use App\Models\Area;
232c33a82   Андрей Ларионов   Все формы обратно...
9
  use App\Models\Contact;
f615f47db   Андрей Ларионов   Страница каталога...
10
  use App\Models\format_area;
242debab8   thesolarwind   Первый коммит в п...
11
  use App\Models\House;
232c33a82   Андрей Ларионов   Все формы обратно...
12
  use App\Models\ModelMailFeedback;
242debab8   thesolarwind   Первый коммит в п...
13
  use App\Models\News;
65c2fc5f6   Андрей Ларионов   Работа со скрипта...
14
  use App\Models\Page;
d2e0d4fcb   Андрей Ларионов   Добавление миграц...
15
  use App\Models\Partners;
f615f47db   Андрей Ларионов   Страница каталога...
16
  use App\Models\type_area;
995960380   Андрей Ларионов   Исправления офисо...
17
  use Barryvdh\DomPDF\Facade\Pdf;
232c33a82   Андрей Ларионов   Все формы обратно...
18
  use Illuminate\Database\Eloquent\Model;
242debab8   thesolarwind   Первый коммит в п...
19
  use Illuminate\Http\Request;
d2e0d4fcb   Андрей Ларионов   Добавление миграц...
20
  use App\Classes\RusDate;
65c2fc5f6   Андрей Ларионов   Работа со скрипта...
21
  use Illuminate\Support\Facades\DB;
232c33a82   Андрей Ларионов   Все формы обратно...
22
  use Illuminate\Support\Facades\Mail;
0a20e5050   Андрей Ларионов   Страница Жилые ко...
23
  use PhpParser\Node\Stmt\Switch_;
f615f47db   Андрей Ларионов   Страница каталога...
24
  use Illuminate\Support\Facades\Response;
28e548150   Андрей Ларионов   Рефакторинг кода ...
25
  use App\Classes\FilterData;
5fc27fa4a   Андрей Ларионов   Отправка писем на...
26
  //use App\Mail\SendMail;
995960380   Андрей Ларионов   Исправления офисо...
27
  //use PDF;
242debab8   thesolarwind   Первый коммит в п...
28
29
30
31
32
33
34
  
  class MainController extends Controller
  {
      /*
       * Главная страница проекта
       */
      public function index() {
d2e0d4fcb   Андрей Ларионов   Добавление миграц...
35
36
37
38
         $houses = House::with('areas')->orderByDesc('created_at')->limit(8)->get();
         $news = News::query()->orderByDesc('created_at')->limit(8)->get();
         $partners = Partners::query()->limit(18)->get();
         return view('index', compact('houses', 'news', 'partners'));
242debab8   thesolarwind   Первый коммит в п...
39
40
41
      }
  
      /*
f615f47db   Андрей Ларионов   Страница каталога...
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
       * Фильтр ajax в каталоге
       */
      public function catalog_ajax_filter(Request $request) {
          $Res = Array();
          if (!empty($request->area)) {
              $area_table = Area::where('id', '=', $request->area)->get();
              $Res[] = $area_table[0]->name_area;
          } else {
              $Res[] = "Все объекты";
          }
  
          if (!empty($request->type_area)) {
              $type_area_table = type_area::where('id', '=', $request->type_area)->get();
              $Res[] = $type_area_table[0]->name_type;
          } else {
              $Res[] = "Тип недвижимости";
          }
  
          if (!empty($request->format_area)) {
              $format_area_table = format_area::where('id', '=', $request->format_area)->get();
              $Res[] = $format_area_table[0]->name_format;
          } else {
              $Res[] = "Формат недвижимости";
          }
  
           return json_encode($Res);
      }
  
      /*
b64ce58d3   Андрей Ларионов   Карточка Жилой Ко...
71
72
       * Страница ЖК
       */
0a20e5050   Андрей Ларионов   Страница Жилые ко...
73
74
      public function Complex(Area $area, Request $request) {
          //////////раздел аренда
b64ce58d3   Андрей Ларионов   Карточка Жилой Ко...
75
76
          $house_arenda = House::with('areas')->
                                 where('area_id', '=', $area->id)->
0a20e5050   Андрей Ларионов   Страница Жилые ко...
77
                                 where('format_house', '=', 'Аренда');
b64ce58d3   Андрей Ларионов   Карточка Жилой Ко...
78

0a20e5050   Андрей Ларионов   Страница Жилые ко...
79
          if ($request->view == 'arenda') {
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
80
              $house_arenda = (new SortData($house_arenda, $request))->apply()->get();
0a20e5050   Андрей Ларионов   Страница Жилые ко...
81
          } else {
f615f47db   Андрей Ларионов   Страница каталога...
82
              $house_arenda = $house_arenda->orderBy('price')->
0a20e5050   Андрей Ларионов   Страница Жилые ко...
83
84
85
86
87
                                             orderByDesc('created_at')->
                                             orderByDesc('area')->get();
          }
  
          ////////раздел продажа
b64ce58d3   Андрей Ларионов   Карточка Жилой Ко...
88
          $house_prodaja = House::with('areas')->
f615f47db   Андрей Ларионов   Страница каталога...
89
                                  where('area_id', '=', $area->id)->
0a20e5050   Андрей Ларионов   Страница Жилые ко...
90
91
92
                                  where('format_house', '=', 'Продажа');
  
          if ($request->view == 'prodaja') {
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
93
              $house_prodaja = (new SortData($house_prodaja, $request))->apply()->get();
0a20e5050   Андрей Ларионов   Страница Жилые ко...
94
95
96
97
98
          } else {
              $house_prodaja = $house_prodaja->orderBy('price')->
                                              orderByDesc('created_at')->
                                              orderByDesc('area')->get();
          }
b64ce58d3   Андрей Ларионов   Карточка Жилой Ко...
99

0a20e5050   Андрей Ларионов   Страница Жилые ко...
100
          //////////////// Раздел бизнеса
b64ce58d3   Андрей Ларионов   Карточка Жилой Ко...
101
102
          $house_bissnes = House::with('areas')->
                                  where('area_id', '=', $area->id)->
0a20e5050   Андрей Ларионов   Страница Жилые ко...
103
104
                                  where('format_house', '=', 'Бизнес');
                                  //orderByDesc('created_at')->get();
b64ce58d3   Андрей Ларионов   Карточка Жилой Ко...
105

0a20e5050   Андрей Ларионов   Страница Жилые ко...
106
          if ($request->view == 'bissnes') {
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
107
              $house_bissnes = (new SortData($house_bissnes, $request))->apply()->get();
0a20e5050   Андрей Ларионов   Страница Жилые ко...
108
109
110
111
112
113
114
          } else {
              $house_bissnes = $house_bissnes->orderBy('price')->
                                               orderByDesc('created_at')->
                                               orderByDesc('area')->get();
          }
  
          //////////раздел арендованные
b64ce58d3   Андрей Ларионов   Карточка Жилой Ко...
115
116
          $house_arendovannie = House::with('areas')->
                                       where('area_id', '=', $area->id)->
0a20e5050   Андрей Ларионов   Страница Жилые ко...
117
118
119
120
                                       where('format_house', '=', 'Арендованные');
                                       //orderByDesc('created_at')->get();
  
          if ($request->view == 'arendovannie') {
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
121
              $house_arendovannie = (new SortData($house_arendovannie, $request))->apply()->get();
0a20e5050   Андрей Ларионов   Страница Жилые ко...
122
          } else {
f615f47db   Андрей Ларионов   Страница каталога...
123
              $house_arendovannie = $house_arendovannie->orderBy('price')->
0a20e5050   Андрей Ларионов   Страница Жилые ко...
124
125
126
127
128
129
130
131
132
133
134
135
              orderByDesc('created_at')->
              orderByDesc('area')->get();
          }
  
          if ($request->ajax()) {
              switch($request->view) {
                  case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break;
                  case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break;
                  case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break;
                  case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break;
              }
          }
b64ce58d3   Андрей Ларионов   Карточка Жилой Ко...
136
137
138
139
140
141
142
143
144
145
  
          return view('complex', compact('area',
                                             'house_arenda',
                                                       'house_prodaja',
                                                       'house_bissnes',
                                                       'house_arendovannie'));
  
      }
  
      /*
242debab8   thesolarwind   Первый коммит в п...
146
147
       * О компании
       */
232c33a82   Андрей Ларионов   Все формы обратно...
148
149
      public function About(): \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Contracts\Foundation\Application
      {
3646d2a47   Андрей Ларионов   Механизм избранны...
150
151
152
153
          $news = News::query()->orderByDesc('created_at')->limit(8)->get();
          $partners = Partners::query()->limit(18)->get();
          return view('about', compact('news', 'partners'));
      }
5fc27fa4a   Андрей Ларионов   Отправка писем на...
154
155
156
157
158
159
160
      public function send_mail() {
          $toEmail = "integralal@mail.ru";//$RentTorg[0]->email;
          $message = "Тест сообщения, проверка связи!";
          $mm = new SendMail($message);
          $d = Mail::to($toEmail)->send(new SendMail($message));
          dd($d);
      }
3646d2a47   Андрей Ларионов   Механизм избранны...
161
162
163
      /*
       * Форма обратной связи внизу сайта
       */
232c33a82   Андрей Ларионов   Все формы обратно...
164
165
166
167
168
169
170
      public function main_form(FooterFeedbackRequest $request) {
          $RentTorg = Contact::query()->limit(1)->get();
          $MailBD = new ModelMailFeedback();
          $MailBD->to = 'Администрации сайта';
          $MailBD->from = $request->TelephoneUser;
          $MailBD->subject = "Пользователь <".$request->NameUser.">";
          $MailBD->form = 'Форма в футере';
5fc27fa4a   Андрей Ларионов   Отправка писем на...
171
172
          $message = "От пользователя: ".$request->NameUser.". Телефон: ".$request->TelephoneUser.". Заявка на лучшие предложения. Сообщение: ".$request->TextUser;
          $MailBD->text = $message;
232c33a82   Андрей Ларионов   Все формы обратно...
173
          $MailBD->save();
5fc27fa4a   Андрей Ларионов   Отправка писем на...
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
          $toEmail = $RentTorg[0]->email;
          $mm = new SendMail($message);
          $d = Mail::to($toEmail)->send(new SendMail($message));
  
          //$toEmail = "integralal@mail.ru";//$RentTorg[0]->email;
          /*$email = $RentTorg[0]->email;
          $sender = "alarionov@nologostudio.ru";
  
          $headers = "From: $sender" . "\r
  " .
              "Reply-To: $sender" . "\r
  " .
              "X-Mailer: PHP/" . phpversion();
          mail($email, "От сайта Рентторг", $message, $headers);
  */
          //$mm = new SendMail($message);
          //Mail::to($toEmail)->send($mm);
232c33a82   Андрей Ларионов   Все формы обратно...
191
          //return true;
5fc27fa4a   Андрей Ларионов   Отправка писем на...
192
          /*
232c33a82   Андрей Ларионов   Все формы обратно...
193
194
195
196
197
198
          Mail::send('emails.feedback', ['user' => $user],
              function ($message) use ($user) {
                  $message->from('sender@gmail.com', 'Sender');
                  $message->to($user->email, $user->name)->subject('Test message');
          });
         */
5fc27fa4a   Андрей Ларионов   Отправка писем на...
199

232c33a82   Андрей Ларионов   Все формы обратно...
200
201
202
203
204
205
206
207
208
209
210
211
      }
  
      /*
       * Форма обратной связе в хедере
       */
      public function header_form(FooterFeedbackRequest $request) {
          $RentTorg = Contact::query()->limit(1)->get();
          $MailBD = new ModelMailFeedback();
          $MailBD->to = 'Администрации сайта';
          $MailBD->from = $request->TelephoneUser;
          $MailBD->subject = "Пользователь <".$request->NameUser.">";
          $MailBD->form = 'Форма в заголовке сайта';
5fc27fa4a   Андрей Ларионов   Отправка писем на...
212
213
          $message = "От пользователя: ".$request->NameUser.". Телефон: ".$request->TelephoneUser.". Сообщение: Заказываю обратный звонок";
          $MailBD->text = $message;
232c33a82   Андрей Ларионов   Все формы обратно...
214
          $MailBD->save();
5fc27fa4a   Андрей Ларионов   Отправка писем на...
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
  
          $toEmail = $RentTorg[0]->email;
          $mm = new SendMail($message);
          $d = Mail::to($toEmail)->send(new SendMail($message));
  
          /*$email = $RentTorg[0]->email;
          $sender = "alarionov@nologostudio.ru";
  
          $headers = "From: $sender" . "\r
  " .
              "Reply-To: $sender" . "\r
  " .
              "X-Mailer: PHP/" . phpversion();
          mail($email, "От сайта Рентторг", $message, $headers);
          */
232c33a82   Андрей Ларионов   Все формы обратно...
230
      }
d2e30108c   Андрей Ларионов   Линки телефонов в...
231
232
233
      /*
       * Форма записаться на просмотр
       */
232c33a82   Андрей Ларионов   Все формы обратно...
234
235
236
237
238
239
240
      public function rec_view_form(FooterFeedbackRequest $request) {
          $RentTorg = Contact::query()->limit(1)->get();
          $MailBD = new ModelMailFeedback();
          $MailBD->to = 'Администрации сайта';
          $MailBD->from = $request->TelephoneUser;
          $MailBD->subject = "Пользователь <".$request->NameUser.">";
          $MailBD->form = 'Форма записи на просмотр';
5fc27fa4a   Андрей Ларионов   Отправка писем на...
241
242
243
          $message = "От пользователя: ".$request->NameUser.". Телефон: ".$request->TelephoneUser.". Сообщение: Заказываю просмотр офиса";
          $message.= "Адрес офиса-объекта: ".url()->previous()." ";
          $MailBD->text = $message;
232c33a82   Андрей Ларионов   Все формы обратно...
244
          $MailBD->save();
5fc27fa4a   Андрей Ларионов   Отправка писем на...
245
246
247
248
249
250
251
252
253
254
255
256
257
  
          $toEmail = $RentTorg[0]->email;
          $d = Mail::to($toEmail)->send(new SendMail($message));
  
          /*$email = $RentTorg[0]->email;
          $sender = "alarionov@nologostudio.ru";
  
          $headers = "From: $sender" . "\r
  " .
              "Reply-To: $sender" . "\r
  " .
              "X-Mailer: PHP/" . phpversion();
          mail($email, "От сайта Рентторг", $message, $headers);*/
232c33a82   Андрей Ларионов   Все формы обратно...
258
259
260
261
262
263
264
265
266
267
268
269
      }
  
      /*
       * Форма обратной связи на странице "Контакты"
       */
      public function page_contact_form(FooterFeedbackRequest $request) {
          $RentTorg = Contact::query()->limit(1)->get();
          $MailBD = new ModelMailFeedback();
          $MailBD->to = 'Администрации сайта';
          $MailBD->from = $request->TelephoneUser;
          $MailBD->subject = "Пользователь <".$request->NameUser."> Компания <".$request->NameCompany.">";
          $MailBD->form = 'Форма на странице "Контакты"';
5fc27fa4a   Андрей Ларионов   Отправка писем на...
270
271
          $message = "От пользователя: ".$request->NameUser.". Компания <".$request->NameCompany.">. Телефон: ".$request->TelephoneUser." Почта: <".$request->EmailUser."> Сообщение:".$request->TextUser;
          $MailBD->text = $message;
232c33a82   Андрей Ларионов   Все формы обратно...
272
          $MailBD->save();
5fc27fa4a   Андрей Ларионов   Отправка писем на...
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
  
          $toEmail = $RentTorg[0]->email;
          $d = Mail::to($toEmail)->send(new SendMail($message));
  
          /*
          $email = $RentTorg[0]->email;
          $sender = "alarionov@nologostudio.ru";
  
          $headers = "From: $sender" . "\r
  " .
              "Reply-To: $sender" . "\r
  " .
              "X-Mailer: PHP/" . phpversion();
          mail($email, "От сайта Рентторг", $message, $headers);
           */
232c33a82   Андрей Ларионов   Все формы обратно...
288
289
290
291
292
293
294
295
296
297
298
      }
      /*
       * Форма обратной связи по емайлу
       */
      public function email_form(EmailRequest $request) {
          $RentTorg = Contact::query()->limit(1)->get();
          $MailBD = new ModelMailFeedback();
          $MailBD->to = 'Администрации сайта';
          $MailBD->from = $request->EmailUser;
          $MailBD->subject = "Пользователь <".$request->EmailUser.">";
          $MailBD->form = 'Форма обратной связи по Email';
5fc27fa4a   Андрей Ларионов   Отправка писем на...
299
300
          $message = "От почты: ".$request->EmailUser.". Сообщение: Отправить на данную почту предложения RentTorg";
          $MailBD->text = $message;
232c33a82   Андрей Ларионов   Все формы обратно...
301
          $MailBD->save();
5fc27fa4a   Андрей Ларионов   Отправка писем на...
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
  
          $toEmail = $RentTorg[0]->email;
          $d = Mail::to($toEmail)->send(new SendMail($message));
  
          /*
          $email = $RentTorg[0]->email;
          $sender = "alarionov@nologostudio.ru";
  
          $headers = "From: $sender" . "\r
  " .
              "Reply-To: $sender" . "\r
  " .
              "X-Mailer: PHP/" . phpversion();
          mail($email, "От сайта Рентторг", $message, $headers);
          */
8634eac35   Андрей Ларионов   Картинки обновлен...
317
318
          //dd('Email form');
          return redirect()->route('index');
242debab8   thesolarwind   Первый коммит в п...
319
320
321
322
323
      }
  
      /*
       * Избранное
       */
3646d2a47   Андрей Ларионов   Механизм избранны...
324
      public function Favorite(Request $request) {
b18fdfbaf   Андрей Ларионов   Скрипт js по пово...
325
326
327
328
329
          if (empty($_COOKIE['favorite_house'])) {
              $Arr = Array();
          } else {
              $Arr = json_decode($_COOKIE['favorite_house'], true);
          }
3646d2a47   Андрей Ларионов   Механизм избранны...
330
331
332
333
          if (!empty($Arr) && is_array($Arr)) {
              $houses = House::with('areas')->whereIn('id', $Arr);
  
              if (isset($request->sort_price)) {
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
334
                  $houses = (new SortData($houses, $request))->apply();
3646d2a47   Андрей Ларионов   Механизм избранны...
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
  
              } else {
                  $houses = $houses->orderBy('price')->
                  orderByDesc('created_at')->
                  orderByDesc('area');
              }
  
              $houses = $houses->paginate(4);
  
              if ($request->ajax()) {
                  return view('ajax.complex.favorite', compact('houses'));
              }
  
              return view('favorite_data', compact('houses'));
          } else {
              return view('favorite', compact('Arr'));
          }
242debab8   thesolarwind   Первый коммит в п...
352
353
354
      }
  
      /*
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
355
       * Категории каталога Аренда/Продажа/Бизнес/Арендованные
f615f47db   Андрей Ларионов   Страница каталога...
356
       */
d65c79225   Андрей Ларионов   Проблема пагинаци...
357
      public function Category($cat, Request $request) {
f615f47db   Андрей Ларионов   Страница каталога...
358
359
360
361
362
363
364
365
366
367
368
369
370
          switch ($cat) {
              case 'arenda':
                  $title = "Аренда торговых помещениий";
                  $format_house = 'Аренда';
              break;
              case 'sale':
                  $title = "Продажа торговых помещений";
                  $format_house = 'Продажа';
                  break;
              case 'bussiness':
                  $title = "Арендый бизнес";
                  $format_house = 'Бизнес';
              break;
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
371
372
373
374
              case 'arendovannie':
                  $title = "Арендованные";
                  $format_house = 'Арендованные';
                  break;
f615f47db   Андрей Ларионов   Страница каталога...
375
376
377
378
379
380
381
              default:
                  $title = "Аренда торговых помещениий";
                  $format_house = 'Аренда';
                  break;
          }
  
          $houses = House::with('areas')->
9a5d84dc0   Андрей Ларионов   Авторизация и рег...
382
383
                          where('format_house', '=', $format_house);
          //->appends(request()->query());
5e41e3567   Андрей Ларионов   Фильтрация и сорт...
384

59d4ce857   Андрей Ларионов   Рефакторинг кода,...
385
          $houses = (new FilterData($houses, $request))->apply();
9a5d84dc0   Андрей Ларионов   Авторизация и рег...
386

5e41e3567   Андрей Ларионов   Фильтрация и сорт...
387
          if (isset($request->sort_price)) {
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
388
              $houses = (new SortData($houses, $request))->apply();
5e41e3567   Андрей Ларионов   Фильтрация и сорт...
389

9a5d84dc0   Андрей Ларионов   Авторизация и рег...
390
391
392
393
394
          } else {
              $houses = $houses->orderBy('price')->
              orderByDesc('created_at')->
              orderByDesc('area');
          }
5e41e3567   Андрей Ларионов   Фильтрация и сорт...
395

9a5d84dc0   Андрей Ларионов   Авторизация и рег...
396
397
398
399
400
          $houses = $houses->paginate(4);
  
          if ($request->ajax()) {
              return view('ajax.complex.category', compact('houses'));
          }
f615f47db   Андрей Ларионов   Страница каталога...
401

9a5d84dc0   Андрей Ларионов   Авторизация и рег...
402
          return view('category_catalog', compact('title', 'cat', 'houses'));
f615f47db   Андрей Ларионов   Страница каталога...
403
      }
28e548150   Андрей Ларионов   Рефакторинг кода ...
404
405
406
407
408
409
410
411
412
413
414
415
      public function Test(Request $request) {
          $house_arenda = House::with('areas')->
          where('format_house', '=', 'Аренда');
  
          $house_arenda = $house_arenda->orderByDesc('price')->
              orderByDesc('created_at')->
              orderByDesc('area')->get();
  
  
          return view('ajax.complex.arenda', compact('house_arenda'));
  
      }
f615f47db   Андрей Ларионов   Страница каталога...
416
417
  
      /*
242debab8   thesolarwind   Первый коммит в п...
418
419
       * Каталог
       */
f615f47db   Андрей Ларионов   Страница каталога...
420
421
422
423
424
425
      public function Catalog(Request $request) {
  
          //////////раздел аренда/////////////////////////////////////////////////////////////////
          $house_arenda = House::with('areas')->
          where('format_house', '=', 'Аренда');
         // условия поиска по объектам комплексов
28e548150   Андрей Ларионов   Рефакторинг кода ...
426

59d4ce857   Андрей Ларионов   Рефакторинг кода,...
427
          $house_arenda = (new FilterData($house_arenda, $request))->apply();
28e548150   Андрей Ларионов   Рефакторинг кода ...
428

f615f47db   Андрей Ларионов   Страница каталога...
429
          if ($request->view == 'arenda') {
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
430
              $house_arenda = (new SortData($house_arenda, $request))->apply()->get();
f615f47db   Андрей Ларионов   Страница каталога...
431
432
433
434
435
436
437
438
439
          } else {
              $house_arenda = $house_arenda->orderBy('price')->
              orderByDesc('created_at')->
              orderByDesc('area')->get();
          }
  
          ////////раздел продажа//////////////////////////////////////////////////////////////////
          $house_prodaja = House::with('areas')->
          where('format_house', '=', 'Продажа');
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
440
          $house_prodaja = (new FilterData($house_prodaja, $request))->apply();
f615f47db   Андрей Ларионов   Страница каталога...
441
442
  
          if ($request->view == 'prodaja') {
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
443
              $house_prodaja = (new SortData($house_prodaja, $request))->apply()->get();
f615f47db   Андрей Ларионов   Страница каталога...
444
445
446
447
448
449
450
451
452
453
          } else {
              $house_prodaja = $house_prodaja->orderBy('price')->
              orderByDesc('created_at')->
              orderByDesc('area')->get();
          }
  
          //////////////// Раздел бизнеса/////////////////////////////////////////////////////////
          $house_bissnes = House::with('areas')->
          where('format_house', '=', 'Бизнес');
          //orderByDesc('created_at')->get();
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
454
          $house_bissnes = (new FilterData($house_bissnes, $request))->apply();
f615f47db   Андрей Ларионов   Страница каталога...
455
456
  
          if ($request->view == 'bissnes') {
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
457
              $house_bissnes = (new SortData($house_bissnes, $request))->apply()->get();
f615f47db   Андрей Ларионов   Страница каталога...
458
459
460
461
462
463
464
465
466
467
          } else {
              $house_bissnes = $house_bissnes->orderBy('price')->
              orderByDesc('created_at')->
              orderByDesc('area')->get();
          }
  
          //////////раздел арендованные//////////////////////////////////////////////////////////
          $house_arendovannie = House::with('areas')->
          where('format_house', '=', 'Арендованные');
          //orderByDesc('created_at')->get();
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
468
          $house_arendovannie = (new FilterData($house_arendovannie, $request))->apply();
f615f47db   Андрей Ларионов   Страница каталога...
469
470
  
          if ($request->view == 'arendovannie') {
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
471
              $house_arendovannie = (new SortData($house_arendovannie, $request))->apply()->get();
f615f47db   Андрей Ларионов   Страница каталога...
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
          } else {
              $house_arendovannie = $house_arendovannie->orderBy('price')->
              orderByDesc('created_at')->
              orderByDesc('area')->get();
          }
  
          if ($request->ajax()) {
              switch($request->view) {
                  case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break;
                  case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break;
                  case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break;
                  case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break;
              }
          }
          if (session('message') == 'Искать') {
              session()->flash('message', 'Сброс');
          } else {
              session()->flash('message', 'Искать');
          }
  
          if (empty($request)) {
              session()->flash('message', 'Искать');
          }
  
          return view('catalog', compact(
                                       'house_arenda',
                                      'house_prodaja',
                                                 'house_bissnes',
                                                 'house_arendovannie'
                                                 ));
242debab8   thesolarwind   Первый коммит в п...
502
503
504
505
506
507
      }
  
      /*
       * Новости
       */
      public function News() {
881f83e63   Андрей Ларионов   Создание карточки...
508
509
510
          //$news = News::orderByDesc('created_at')->limit(1)->paginate();
          $news_ = News::query()->orderByDesc('created_at')->paginate(4);
          return view('news', compact('news_'));
242debab8   thesolarwind   Первый коммит в п...
511
512
513
514
515
516
517
518
519
520
521
522
      }
  
      /*
       * Контакты
       */
      public function Contact() {
          return view('contact');
      }
  
      /*
       * Карта объектов
       */
8634eac35   Андрей Ларионов   Картинки обновлен...
523
      public function MapsObj(Request $request) {
694201330   Андрей Ларионов   Добавление коорди...
524
525
          //$houses = House::with('areas');
          //$houses = $houses->orderBy('id')->get();
0b9fba095   Андрей Ларионов   Карта на странице...
526
527
528
529
530
531
          $input = $request->all();
  
          $houses = House::with('areas');
          if (empty($input)) {
  
          } else {
59d4ce857   Андрей Ларионов   Рефакторинг кода,...
532
              $houses = (new FilterData($houses, $request))->apply();
0b9fba095   Андрей Ларионов   Карта на странице...
533
534
535
          }
  
          $houses = $houses->orderByDesc('id')->get();
694201330   Андрей Ларионов   Добавление коорди...
536
          $areas = Area::query()->orderBy('id')->get();
8634eac35   Андрей Ларионов   Картинки обновлен...
537

0b9fba095   Андрей Ларионов   Карта на странице...
538
          return view('mapsobj', compact('areas', 'input', 'houses'));
242debab8   thesolarwind   Первый коммит в п...
539
      }
d2e0d4fcb   Андрей Ларионов   Добавление миграц...
540
541
542
543
  
      /*
       * Посмотр конктретного предложение офиса
       */
65c2fc5f6   Андрей Ларионов   Работа со скрипта...
544
      public function Offer(House $house, Request $request) {
b64ce58d3   Андрей Ларионов   Карточка Жилой Ко...
545
546
547
548
          $houses = House::with('areas');
          $houses =  $houses->where('type_area_id', '=', $house->typearea->id);
          $houses = $houses->where('format_house', '=', $house->format_house);
          $houses = $houses->orderByDesc('created_at')->limit(8)->get();
65c2fc5f6   Андрей Ларионов   Работа со скрипта...
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
          //получение адреса страницы
          $url = $request->url();
          // получение ip-адреса клиента
          $ip = RusDate::ip_addr_client();
  
          //получение выборки данных из базы данных по данной странице
          $page_ = Page::query()->where('url', '=', "$url")->
                                  orderBy('created_at')->limit(1)->get();
  
          //если интервал времени больше суток, то обнуляем счетчик
          if ($page_->count()) {
              $result = RusDate::interval_day($page_[0]->created_at);
              if ($result) {
                  DB::table('pages')->where('url', '=', "$url")->delete();
              }
          }
          // проверяем если в базе данных данный ip-адрес
          $count_user = DB::table('pages')->where('ipaddress', '=', "$ip")->
                              where('url', '=', "$url")->get();
          // если есть, то обновляем дату просмотра
          if ($count_user->count() > 0) {
              DB::table('pages')->where('ipaddress', '=', "$ip")->
              where('url', '=', "$url")->update(['created_at' => date('Y-m-d H:i')]);
          } else {
              // в противном случае добавляем новый ip В бд
              $page = new Page();
              $page->ipaddress = $ip;
              $page->url = $url;
              $page->save();
          }
  
          // выводим количество пользователей гостей данной страницы
          $count_user = DB::table('pages')->where('url', '=', "$url")->get();
995960380   Андрей Ларионов   Исправления офисо...
582
583
584
585
          $title = $house->title;
  
          return view('house.post', compact('house',  'houses', 'count_user', 'title'));
      }
a9da0bb95   Андрей Ларионов   Pdf-генераторы
586
      public function preview_PDF(House $house) {
48b64e32f   Андрей Ларионов   Презентация pdf
587
          $file_img = "";
a9da0bb95   Андрей Ларионов   Pdf-генераторы
588
          if (!empty($house->foto_main)) {
48b64e32f   Андрей Ларионов   Презентация pdf
589
590
  			//$file_img = base64_encode(file_get_contents(public_path("storage/".$house->foto_main)));
              $file_img = public_path("storage/".$house->foto_main);
a9da0bb95   Андрей Ларионов   Pdf-генераторы
591
592
593
  		} else {
  			$file_img = "";
  		}
48b64e32f   Андрей Ларионов   Презентация pdf
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
  
          $arr_image = Array();
          if ($house->fotohouse->count()) {
              foreach ($house->fotohouse as $image) {
                  $arr_image[] = public_path("storage/".$image->foto);
              }
          }
  
          if (!empty($house->object_plan))
              $object_image = public_path("storage/" . $house->object_plan);
          else
              $object_image = '';
  
          if (!empty($house->floor_plan))
              $floor_image = public_path("storage/".$house->floor_plan);
          else
              $floor_image = '';
  
          $url = redirect()->back()->getTargetUrl();
  
          //dd($arr_image);
  
  		$arr_house = ['0' => $house, 'image' => $file_img, 'url' => $url,
                        'arrimage' => $arr_image, 'object_image' => $object_image, 'floor_image' => $floor_image];
a9da0bb95   Андрей Ларионов   Pdf-генераторы
618
          view()->share('house',$arr_house);
48b64e32f   Андрей Ларионов   Презентация pdf
619
          $pdf = PDF::loadView('layout.pdf2', $arr_house)->setPaper('a4', 'landscape');
a9da0bb95   Андрей Ларионов   Pdf-генераторы
620
621
          return $pdf->stream();
      }
995960380   Андрей Ларионов   Исправления офисо...
622
623
624
      public function generate_PDF(House $house) {
          $arr_house = ['0' => $house];
          view()->share('house',$arr_house);
a9da0bb95   Андрей Ларионов   Pdf-генераторы
625
626
627
628
629
630
631
632
633
634
635
636
637
          $PDFOptions = ['enable_remote' => true, 'chroot' => public_path('storage/app/public')];
          //$PDFOptions = ['isHtml5ParserEnabled' => true, 'isRemoteEnabled' => true];
          $pdf = PDF::setOptions($PDFOptions)->loadView('house.pdf', $arr_house);
          //$pdf = PDF::loadView('house.pdf', $arr_house);
          /*$pdf->getDomPDF()->setHttpContext(
              stream_context_create([
                  'ssl' => [
                      'allow_self_signed'=> TRUE,
                      'verify_peer' => FALSE,
                      'verify_peer_name' => FALSE,
                  ],
              ])
          );*/
995960380   Андрей Ларионов   Исправления офисо...
638
639
          $id = $house->id;
          return $pdf->download("pdf_file_".$id.".pdf");
d2e0d4fcb   Андрей Ларионов   Добавление миграц...
640
641
642
643
644
645
646
647
648
      }
  
      /*
       * Просмотр детально конкретной новости
       */
      public function DetailNew(News $news) {
          $news_list = News::query()->orderByDesc('created_at')->limit(8)->get();
          return view('new.post', compact('news', 'news_list'));
      }
242debab8   thesolarwind   Первый коммит в п...
649
  }