Example #1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     //
     Config::setApiKey(Setting::get('integration.np'));
     NPCity::truncate();
     $this->info('NP City table cleared');
     NPUnit::truncate();
     $this->info('NP Unit table cleared');
     $unitArr = Address::getWarehouses();
     $this->info('NP unit fetched');
     $adrArr = Address::getCities();
     $this->info('NP city fethed');
     foreach ($adrArr->data as $value) {
         NPCity::create(['name' => $value->DescriptionRu, 'ref' => $value->Ref]);
     }
     $this->info('City table filled.');
     foreach ($unitArr->data as $value) {
         NPUnit::create(['name' => $value->DescriptionRu, 'ref' => $value->CityRef]);
     }
     $this->info('Units table filled');
     $this->info('NP SYNC SUCCESSFULL!');
 }
Example #2
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     //
     if (Cart::count() == 0) {
         $request->session()->flash('alert-danger', 'У Вас пустая корзина. Что бы оформить заказ, наполните её.');
         return back()->withInput();
     }
     //IF CART EMPTY
     //$request->session()->flash('alert-success', 'Конфигурация сохранена!');
     //return view('orderConfirm')->with($data);
     $rules = ['name' => 'required|min:5|max:255', 'tel' => 'required|min:6|max:255', 'mail' => 'required|email'];
     $nbr = count(Input::file('files')) - 1;
     foreach (range(0, $nbr) as $index) {
         $rules['files.' . $index] = 'mimes:jpeg,bmp,png,pdf,psd|max:10000';
     }
     //dd($rules);
     $validator = Validator::make(Input::all(), $rules);
     if ($validator->fails()) {
         //dd($validator);
         return back()->withErrors($validator)->withInput();
     } else {
         $client = new Clients();
         $client->name = $request->name;
         $client->email = $request->mail;
         $client->tel = $request->tel;
         $client->save();
         $orderCode = strtoupper(str_random(5));
         /*$fp=Purchase::whereCode($orderCode)->isset();
           
           while ($orderCode != $fp->) {
           # code...
           }*/
         //delivery_city_adr
         if ($request->delivery_type == 'np') {
             $city = NPCity::whereRef($request->delivery_city)->first();
         } else {
             if ($request->delivery_type == 'adr') {
                 $city = NPCity::whereRef($request->delivery_city_adr)->first();
             }
         }
         $order = new Purchase();
         $order->client_id = $client->id;
         $order->code = $orderCode;
         $order->delivery_type = $request->delivery_type;
         $order->delivery_city = $city->name;
         if ($request->delivery_type == 'np') {
             $order->delivery_np = $request->delivery_np;
         }
         if ($request->delivery_type == 'adr') {
             $order->delivery_adr = $request->delivery_adr;
         }
         $order->pay_type = $request->pay_type;
         $order->comment = $request->comment;
         $order->save();
         $cart = Cart::content();
         $itemArr = [];
         foreach ($cart as $value) {
             array_push($itemArr, ['order_id' => $order->id, 'product_id' => $value->id, 'qty' => $value->qty]);
             //echo $value->name;
         }
         //dd(null);
         OrderItems::insert($itemArr);
         $orderItems = OrderItems::whereOrder_id($order->id)->get();
         //dd($orderItems);
         // new OrderItems;
         $order->delivery_type == 'np' ? $delivery_type = 'Склад Новая Почта' : ($delivery_type = 'Курьерская доставка по адресу');
         //'nal','privat24','privat_terminal','liqpay'
         switch ($order->pay_type) {
             case 'nal':
                 $pay_type = 'Наличными';
                 // code...
                 break;
             case 'privat24':
                 $pay_type = 'Privat24. Через онлайн-систему для владельцев карт ПриватБанка.';
                 // code...
                 break;
             case 'privat_terminal':
                 $pay_type = 'На карту. Через пополнение карты, например через терминал самообслуживания.';
                 //Через пополнение карты, например через терминал самообслуживания.
                 // code...
                 break;
             case 'liqpay':
                 $pay_type = 'LiqPay. Через онлайн систему для владельце карт других банков. (+10% комиссия)';
                 // code...
                 break;
             default:
                 $pay_type = 'Не указано';
                 // code...
                 break;
         }
         //COUNT QTY
         //COUNT SUMM
         $totalCount = $orderItems->sum('qty');
         //$totalCount=$orderItems->sum('qty');
         $totalSumm = 0;
         foreach ($orderItems as $value) {
             // code...
             if ($value->product_id == 'np') {
                 $totalSumm = $totalSumm + Setting::get('product.np');
             } else {
                 if ($value->product_id == 'fast') {
                     $totalSumm = $totalSumm + Setting::get('product.fast');
                 } else {
                     if ($value->product_id == 'gift') {
                         $totalSumm = $totalSumm + Setting::get('product.gift') * $value->qty;
                     } else {
                         //!strpos($a, 'are')
                         if (strpos($value->product_id, '0000')) {
                             //dd('consist');
                             $pID = explode('0000', $value->product_id);
                             $option = Options::findOrFail($pID[1]);
                             $product = Products::findOrFail($pID[0]);
                             $productPrice = $option->price;
                             $value->productPrice = $productPrice;
                             $value->productName = $product->name . ' (' . $option->name . ')';
                         } else {
                             $productPrice = $value->product->price;
                             $value->productPrice = $value->product->price;
                             $value->productName = $value->product->name;
                         }
                         //echo   $value->qty."__";
                         $totalSumm = $totalSumm + $productPrice * $value->qty;
                     }
                 }
             }
         }
         Setting::get('config.logo', Null) ? $logoMain = asset('/files/img/' . Setting::get('config.logo')) : ($logoMain = asset('dist/img/logo.png'));
         $data = ['orderCode' => $orderCode, 'client' => $client, 'delivery_type' => $delivery_type, 'order' => $order, 'pay_type' => $pay_type, 'orderItems' => $orderItems, 'totalCount' => $totalCount, 'totalSumm' => $totalSumm, 'PageDescr' => Setting::get('config.maindesc'), 'PageWords' => Setting::get('config.mainwords'), 'PageAuthor' => '', 'PageTitle' => Setting::get('config.maintitle'), 'logoMain' => $logoMain, 'totalNavLabel' => $this->totalNavLabel(), 'appURL' => config('app.url')];
         //dd($orderItems->toarray());
         /*
         Mail::queue('mail.neworder', $data, function ($message) {
                     $message->from('*****@*****.**', 'Larashop');
                     $message->subject('LaraShop');
                     $message->to('*****@*****.**');
                     });
         */
         if (!empty(Input::file('files')[0])) {
             $destinationPath = 'files/uploads/';
             // upload path
             foreach ($request->file('files') as $file) {
                 // code...
                 $extension = $file->getClientOriginalExtension();
                 // getting image extension
                 $mime = $file->getClientMimeType();
                 $originalName = $file->getClientOriginalName();
                 $hash = str_random(40);
                 $fileName = $hash . '.' . $extension;
                 // renameing image
                 $file->move($destinationPath, $fileName);
                 $isimage = 'false';
                 if (substr($mime, 0, 5) == 'image') {
                     $isimage = 'true';
                 }
                 $fileDB = OrderFiles::create(['order_id' => $order->id, 'name' => $originalName, 'hash' => $hash, 'mime' => $mime, 'extension' => $extension, 'status' => 'success', 'image' => $isimage]);
             }
         }
         //$DataMail=view('mail.neworder')->with($data)->render();
         //dd($DataMail);
         Cart::destroy();
         Mail::queue('mail.neworder', $data, function ($message) use($client) {
             $message->from(Setting::get('config.email'), Setting::get('config.sitename'));
             $message->subject(Setting::get('config.sitename') . ' - НОВЫЙ ЗАКАЗ');
             $message->to($client['email']);
         });
         Mail::queue('mail.neworder', $data, function ($message) use($client) {
             $message->from(Setting::get('config.email'), Setting::get('config.sitename'));
             $message->subject(Setting::get('config.sitename') . ' - НОВЫЙ ЗАКАЗ');
             $message->to(Setting::get('config.email'));
         });
         return view('orderConfirm')->with($data);
     }
 }