public function store(Request $request) { $almacen = Almacen::find($request->almacen); if (!$almacen->verificaCapacidad($request->cantidad)) { Session::flash('message', 'No existe espacio suficiente en el almacen, intenta con otro.'); return Redirect::to('compra'); } $almacen->actualizaStock($request->cantidad); $inventario = new Inventario(); $inventario->fechacosecha = $request->fechacosecha; $inventario->cantidad = $request->cantidad; $pais = Pais::find($request->pais); if (strcmp($pais->pais, 'México') !== 0) { $inventario->status = 0; } else { $inventario->status = 4; } $inventario->id_producto = $request->producto; $inventario->id_almacen = $request->almacen; $inventario->save(); $compra = new Compra(); $compra->precio = $request->costo; $compra->proveedor = $request->proveedor; $compra->id_ciudad = $request->id_ciudad; $compra->id_inventario = $inventario->id; $compra->cantidad = $request->cantidad; $compra->save(); Session::flash('message', 'Acción completada con éxito'); return Redirect::to('compra'); }
public function destroy($id) { // Almacen::destroy($id); Session::flash('message', 'Almacen Eliminado'); return Redirect::to('/almacen'); }
public function store(Request $request) { $almacen = Almacen::find($request->almacen); if (!$almacen->verificaCapacidad($request->cantidad)) { Session::flash('message', 'No hay suficiente espacio en el almacen.'); return view('produccion'); } $almacen->actualizaStock($request->cantidad); $inventario = new Inventario(); $inventario->fechacosecha = $request->fechacosecha; $inventario->cantidad = $request->cantidad; $inventario->status = 4; $inventario->id_producto = $request->producto; $inventario->id_almacen = $request->almacen; $inventario->save(); $produccion = new Produccion(); $produccion->precio = $request->costo; $produccion->caracteristicas = $request->caracteristicas; $produccion->dificultades = $request->dificultades; $produccion->id_ciudad = $request->id_ciudad; $produccion->id_inventario = $inventario->id; $produccion->cantidad = $request->cantidad; $produccion->save(); Session::flash('message', 'Acción completada con éxito'); return Redirect::to('produccion'); }
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']); }