/** * 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 . ' </td></font>' . '<font color="black"><strong><td>Precio:</td></strong></font>' . '<font color="red"><td>$' . $detalle->precio . ' </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); }
public static function pedidosPendientes() { $pendientes = Pedido::where('completado', 0)->count(); return $pendientes; }
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')); }