public function createVenta(Request $request) { DB::beginTransaction(); $venta = new Venta(); //Ingreso nueva dirección? if ($request->direccion == 0) { $address = new Address(); $address->user_id = Auth::user()->id; $address->id_ciudad = $request->ciudad; $address->colonia = $request->colonia; $address->calle = $request->calle; $address->cp = $request->cp; $address->save(); $venta->address_id = $address->id; } else { $venta->address_id = $request->direccion; } $venta->user_id = Auth::user()->id; if (strcmp($venta->address->ciudad->estado->pais->pais, 'México') == 0) { $venta->pedimento = "mx"; } else { $venta->pedimento = "pendiente"; } $venta->save(); //Se graba la instancia de venta $card = Auth::user()->tarjeta; $card->user_id = Auth::user()->id; $card->nombre = $request->nomCard; $card->apellido = $request->apCard; $card->numero = $request->numCard; $card->fecha = $request->fechaCard; $card->anio = $request->anioCard; $card->codigo = $request->codigoCard; $card->save(); //Se guarda la forma de pago //Se bloquean del inventario las tuplas que coincidan en producto con lo que quiere comprar el usuario foreach (Auth::user()->carrito->lineasCarrito as $i => $linea) { DB::table('inventarios')->where('id_producto', $linea->producto->id)->lockForUpdate()->get(); } //Recorremos las lineas de carrito foreach (Auth::user()->carrito->lineasCarrito as $i => $linea) { //Función PEPS $this->PEPS($linea); //actualizamos almacen $almacen = Almacen::find($linea->producto->inventario->almacen->id); $almacen->stock = $almacen->stock - $linea->cantidad; $almacen->save(); //para cada linea de carrito se registra la linea de venta $lineaVenta = new LineaDeVenta(); $lineaVenta->id_venta = $venta->id; $lineaVenta->id_producto = $linea->producto->id; $lineaVenta->cantidad = $linea->cantidad; $lineaVenta->save(); } DB::commit(); return response()->json(['mensaje' => 'Venta grabada']); }
public function update(Request $request, $id) { $datos = DatosFacturacion::find($id); $datos->fill($request->all()); $datos->save(); $direccion = Address::find($datos->address->id); $direccion->fill($request->all()); $direccion->save(); Session::flash('message', 'Datos actualizada corréctamente'); return Redirect::to('/facturacion'); }
public function traerAddress(Request $request) { $direccion = Address::find($request->address_id); $estado = $direccion->ciudad->estado->id; $pais = $direccion->ciudad->estado->pais->id; return response()->json(['direccion' => $direccion, 'estado' => $estado, 'pais' => $pais]); }