示例#1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(Request $request)
 {
     try {
         $data = $request->all();
         $date = Carbon::now();
         $pedido = new Pedido();
         $pedido->fecha = $date->toDateString();
         $pedido->idCliente = $data["idCliente"];
         $pedido->valor = $data["total"];
         $pedido->estado = "Espera";
         $pedido->domicilio = $data["domicilio"];
         $pedido->save();
         $detalles = json_decode($data["detalles"]);
         foreach ($detalles as $d) {
             $detalle = new Detalle();
             $detalle->idPedido = $pedido->id;
             $detalle->idProducto = $d->idProducto;
             $detalle->cantidad = $d->cantidad;
             $detalle->precioProducto = $d->precio;
             $detalle->subTotal = $d->subtotal;
             $detalle->save();
             $producto = Producto::find($detalle->idProducto);
             $cantidad = $producto->visitas;
             $producto->visitas = $cantidad + 1;
             $producto->save();
         }
         return JsonResponse::create(array('message' => "Pedido Enviado correctamente"), 200);
     } catch (Exception $exc) {
         return JsonResponse::create(array('message' => "No se pudo enviar el pedido", "exception" => $exc->getMessage(), "request" => json_encode($data)), 401);
     }
 }
 function panelUsuario()
 {
     $cntCarrito = Carrito::getItems();
     $usuario = Auth::user();
     $pedidos = \App\Pedido::where('idCliente', $usuario->id)->get();
     return view('cliente.cliente_pedidos', compact('pedidos', 'cntCarrito'));
 }
 /**
  * Finaliza o pedido recebendo a mesa como parametro da requisicao
  * abre o pedido, salva, e salva os itens no pedido.
  * @param Request $request
  */
 public function finalizarCarrinho(Request $request)
 {
     $itens = Cart::content();
     $pedido = new Pedido();
     $pedido->mesa = $request->mesa;
     $pedido->total = Cart::total();
     if (Cart::count() != 0) {
         $pedido->save();
     } else {
         Flash::success("Por favor, adicione algum item no pedido!");
     }
     Log::info($pedido);
     //por enquanto vai ser assim, mas pense numa maneira melhor
     //de retornar o pedido criado.
     $pedidoAtual = Pedido::orderBy('id', 'desc')->first();
     $itensPedidos = array();
     foreach ($itens as $iten) {
         $itemPedido = new ItemPedido();
         $itemPedido->nome = $iten->name;
         $itemPedido->preco = $iten->price;
         $itemPedido->quantidade = $iten->qty;
         $itensPedidos[] = $itemPedido;
     }
     if (Cart::count() != 0) {
         $pedidoAtual->itens()->saveMany($itensPedidos);
         $pedidoAtual->save();
         Cart::destroy();
         Flash::success("Pedido finalizado!");
     } else {
         Flash::error("Por favor, adicione algum item no pedido!");
     }
     return redirect()->back();
 }
 public function visualizaPedido($id)
 {
     $pedido = null;
     $pedido = Pedido::find($id);
     if ($pedido) {
         return view('pedidos.visualiza-pedido')->with('pedido', $pedido);
     } else {
         abort(404);
     }
 }
 public function destroy($id)
 {
     $pedido = Pedido::find($id);
     if ($pedido) {
         $pedido->delete();
         return $pedido;
     } else {
         return "pedido não encontrado";
     }
 }
 public function confirmarCompra(Request $request, $total)
 {
     DB::transaction(function () use($total, $request) {
         try {
             $usuario = Auth::user()->id;
             $venta = new Venta();
             $venta->total = $total;
             $venta->IdCliente = $usuario;
             $venta->save();
             $direccion = $request['calle'] . ' Col. ' . $request['colonia'] . ' ' . $request['ciudad'] . ', ' . $request['estado'] . ', ' . $request['pais'];
             $pedido = new Pedido();
             $pedido->venta_id = $venta->id;
             $pedido->completado = false;
             $pedido->direccion = $direccion;
             $pedido->save();
             $ldv = DB::table('linea_de_ventas')->join('carritos', 'linea_de_ventas.id', '=', 'carritos.idLineaDeVenta')->select('linea_de_ventas.*')->where('carritos.idUsuario', '=', $usuario)->lockForUpdate()->update(['IdVenta' => $venta->id]);
         } catch (Exception $e) {
             Session::flash('message', 'Algo salio mal');
             return redirect::to('catalogo_granos');
         }
         ///////////////
         //Método PEPS//
         ///////////////
         $ids = [];
         //Ids IdGrano
         $cantidadCliente = [];
         $unidad = [];
         //Costales o toneladas
         $i = 0;
         $usuario = Auth::user()->id;
         //Obtener arreglo de artículos en el carrito del cliente
         $ldv = DB::table('carritos')->join('linea_de_ventas', 'carritos.idLineaDeVenta', '=', 'linea_de_ventas.id')->join('granos', 'linea_de_ventas.IdGrano', '=', 'granos.id')->select('carritos.*', 'linea_de_ventas.cantidad', 'linea_de_ventas.IdGrano', 'linea_de_ventas.unidadDeMedida')->where('carritos.idUsuario', '=', $usuario)->get();
         //Llenar los arreglos de los ID granos y de su respectiva cantidad así como su unidad de medida
         foreach ($ldv as $l) {
             $l->IdVenta = $venta->id;
             $ids[$i] = $l->IdGrano;
             $cantidadCliente[$i] = $l->cantidad;
             $unidad[$i] = $l->unidadDeMedida;
             $i = $i + 1;
             for ($j = 0; $j < 4; $j++) {
                 $distribucion[$l->IdGrano][$j] = 0;
             }
         }
         $largo = count($ids);
         //Longitud de Arreglo $ids
         for ($j = 0; $j < $largo; $j++) {
             $objetoInventario = Inventario::where('idGrano', $ids[$j])->where('cantidad', '>', 0)->orderBy('created_at', 'asc')->first();
             //Si son Costales hace la conversión a su equivalente en toneladas.
             if ($unidad[$j] == 0) {
                 $cantidadCliente[$j] = $cantidadCliente[$j] * 0.05;
             }
             while ($cantidadCliente[$j] > 0) {
                 //Se encontraron los granos en una bodega
                 if ($objetoInventario->cantidad >= $cantidadCliente[$j]) {
                     $objetoInventario->cantidad = $objetoInventario->cantidad - $cantidadCliente[$j];
                     $distribucion[$ids[$j]][$objetoInventario->IdAlmacen] += $cantidadCliente[$j];
                     $cantidadCliente[$j] = 0;
                     $objetoInventario->save();
                 } else {
                     $cantidadCliente[$j] = ($objetoInventario->cantidad - $cantidadCliente[$j]) * -1;
                     $distribucion[$ids[$j]][$objetoInventario->IdAlmacen] += $objetoInventario->cantidad;
                     $objetoInventario->cantidad = 0;
                     $objetoInventario->save();
                     $objetoInventario = Inventario::where('idGrano', $ids[$j])->where('cantidad', '>', 0)->orderBy('created_at', 'asc')->first();
                 }
             }
         }
         $tiposDeGranos = Grano::count('id');
         foreach ($distribucion as $idGrano => $almacenes) {
             foreach ($almacenes as $idAlmacen => $cantidad) {
                 //El if es por el arreglo, que tiene la primera posición en 0
                 if ($idAlmacen != 0 && $cantidad != 0) {
                     $lineaDePedido = new LineaDePedido();
                     $lineaDePedido->idPedido = $pedido->id;
                     $lineaDePedido->idGrano = $idGrano;
                     $lineaDePedido->idAlmacen = $idAlmacen;
                     $lineaDePedido->cantidad = $cantidad;
                     $lineaDePedido->save();
                 }
             }
         }
         //Limpiar carrito
         Carrito::limpiarCarrito($ldv);
     });
     Session::flash('message', 'Compra efectuada');
     return redirect::to('finalizar_compra');
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     Pedido::find($id)->delete();
     return redirect('pedidos');
 }
 public function pedidosCajalaravel($id)
 {
     $pedido = Pedido::where('id', $id)->where('activo', 1)->with('detallespedidostodos')->first();
     $html = "";
     $html2 = "";
     if ($pedido->detallespedidostodos) {
         foreach ($pedido->detallespedidostodos as $detalle) {
             $html .= '<div class="media">' . '<div class="media-left">' . '<a href="#">' . '<img class="media-object" src="' . $detalle->producto->imagen_principal . '" class="thumb" height="75" width="75" alt="a picture">' . '</a>' . '</div>' . '<div class="media-body">' . '<ul class="list-group">' . '<li class="list-group-item">' . '<font color="black"><strong><td>Nombre:</td></strong></font>' . '<td> ' . $detalle->producto->nombre . ' </td>' . '</li>' . '<li class="list-group-item">' . '<font color="black"><strong><td>Descripción:</td></strong></font>' . '<td> ' . $detalle->producto->detalles . ' </td>' . '</li>' . '<li class="list-group-item">' . '<font color="black"><strong><td>Cantidad:</td></strong></font>' . '<font color="red"><td>' . $detalle->cantidad . ' &nbsp; &nbsp; &nbsp;</td></font>' . '<font color="black"><strong><td>Precio:</td></strong></font>' . '<font color="red"><td>$' . $detalle->precio . ' &nbsp; &nbsp; &nbsp;</td></font>' . '<font color="black"><strong><td>Subtotal:</td></strong></font>' . '<font color="red"><td>$' . $detalle->subtotal . ' </td></font>' . '</li>' . '<li class="list-group-item">' . '<font color="black"><strong><td>Observaciones:</td></strong></font>' . '<td> ' . $detalle->observaciones . ' </td>' . '</li>' . '</ul>' . '</div>' . '</div>';
         }
     }
     return \Response::json(['error' => 'false', 'msg' => $html, 'status' => '200'], 200);
 }
示例#9
0
 public static function pedidosPendientes()
 {
     $pendientes = Pedido::where('completado', 0)->count();
     return $pendientes;
 }
示例#10
0
 public function terminarPedido(Request $request)
 {
     $id_pedido = $request->pedido_id;
     $pedido = Pedido::find($id_pedido);
     $pedido->estatuspedidos_id = 2;
     $pedido->save();
     return \Response::json(['error' => 'false', 'msg' => "Se finalizado correctamente", 'status' => '200'], 200);
 }
 public function historialPedidos()
 {
     $cntPedidos = Pedido::pedidosPendientes();
     $pedidos = \App\Pedido::where('completado', 'true')->get();
     return view('empleado.historial_pedidos', compact('pedidos', 'cntPedidos'));
 }
 public function registrarNuevoTipo(Request $request)
 {
     $cntPedidos = Pedido::pedidosPendientes();
     Grano::create(['tipo' => $request['tipoDeGrano'], 'precioPorTonelada' => $request['precio']]);
     $tipos = Grano::getTipos();
     $idAlmacenes = Almacen::getAlmacenes();
     Session::flash('message', 'Nuevo tipo de grano registrado');
     return view('empleado.registrar_granos', compact(['tipos', 'idAlmacenes'], 'cntPedidos'));
 }