Ejemplo n.º 1
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);
     }
 }
Ejemplo n.º 2
0
 public function destroyElement(Request $request, $id)
 {
     //dd($request->el);
     $item = OrderItems::where('order_id', $id)->where('id', $request->el)->first();
     $item->delete();
 }
Ejemplo n.º 3
0
 public function showCheckByCode($id)
 {
     Setting::get('config.logo', Null) ? $logoMain = asset('/files/img/' . Setting::get('config.logo')) : ($logoMain = asset('dist/img/logo.png'));
     //$info=Info::find('1');
     $order = Purchase::whereCode($id)->firstorfail();
     $client = $order->client;
     $orderItems = OrderItems::whereOrder_id($order->id)->get();
     $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;
     }
     if ($order->status == 'paid') {
         $pay_status = '<span class=\'label label-warning\'> Оплачено, ожидает отправку.</label>';
     } else {
         if ($order->status == 'sent') {
             $pay_status = '<span class=\'label label-success\'> Отправлено получателю.</span>';
         } else {
             $pay_status = '<span class=\'label label-primary\'> Новый заказ, ожидает оплату.</span>';
         }
     }
     $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 {
                     //echo   $value->qty."__";
                     $totalSumm = $totalSumm + $value->product->price * $value->qty;
                 }
             }
         }
     }
     $data = ['PageDescr' => Setting::get('config.maindesc'), 'PageWords' => Setting::get('config.mainwords'), 'PageAuthor' => '', 'PageTitle' => Setting::get('config.maintitle'), 'logoMain' => $logoMain, 'findflag' => true, 'pay_status' => $pay_status, 'orderCode' => $id, 'client' => $client, 'delivery_type' => $delivery_type, 'order' => $order, 'totalNavLabel' => $this->totalNavLabel(), 'pay_type' => $pay_type, 'orderItems' => $orderItems, 'totalCount' => $totalCount, 'totalSumm' => $totalSumm];
     return view('check')->with($data);
 }