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 store(Request $request) { $direccion = new Address(); $direccion->user_id = Auth::user()->id; $direccion->id_ciudad = $request->id_ciudad; $direccion->colonia = $request->colonia; $direccion->calle = $request->calle; $direccion->cp = $request->cp; $direccion->save(); $datosF = new DatosFacturacion(); $datosF->address_id = $direccion->id; $datosF->user_id = Auth::user()->id; $datosF->razon_social = $request->razon_social; $datosF->rfc = $request->rfc; $datosF->email = $request->email; $datosF->save(); Session::flash('message', 'Datos actualizados'); return Redirect::to('/facturacion'); }