def agregar_solicitudMantenimiento(): session = Session() datos_solicitud = request.get_json() id = session.query(func.max(SolicitudMantenimiento.id)).filter_by(anno=datos_solicitud['anno']).first()[0] if id: id += 1 else: id = 1 solicitudMantenimiento = SolicitudMantenimiento(id, datos_solicitud['anno'], datos_solicitud['nombreSolicitante'], datos_solicitud['telefono'], datos_solicitud['contactoAdicional'], datos_solicitud['urgencia'], datos_solicitud['areaTrabajo'], datos_solicitud['lugarTrabajo'], datos_solicitud['descripcionTrabajo'], datos_solicitud['estado'], datos_solicitud['usuario']) session.add(solicitudMantenimiento) session.commit() # return created exam nuevo_solicitudMantenimiento = SolicitudMantenimientoSchema().dump(solicitudMantenimiento) session.close() return jsonify(nuevo_solicitudMantenimiento), 201
def analizar_solicitud(): session = Session() objeto_solicitudMantenimiento = session.query(SolicitudMantenimiento).get( (request.json['id'], request.json['anno'])) if objeto_solicitudMantenimiento is None: return "Solicitud no encontrada", 404 objeto_solicitudMantenimiento.estado = request.json['estado'] session.add(objeto_solicitudMantenimiento) objeto_solicitudMantenimientoAnalizada = session.query(SolicitudMantenimientoAprobada).get( (request.json['id'], request.json['anno'])) objeto_solicitudMantenimientoAnalizada.insumos = request.json['insumos'] objeto_solicitudMantenimientoAnalizada.costoEstimado = request.json['costoEstimado'] objeto_solicitudMantenimientoAnalizada.observacionesAnalisis = request.json['observacionesAnalisis'] objeto_solicitudMantenimientoAnalizada.ubicacionArchivo = request.json['ubicacionArchivo'] session.add(objeto_solicitudMantenimientoAnalizada) session.commit() solicitudMantenimientoAprobada_editada = SolicitudMantenimientoAprobadaSchema().dump( objeto_solicitudMantenimientoAnalizada) session.close() return jsonify(solicitudMantenimientoAprobada_editada)
def editar_usuario(): posted_usuario = UsuarioSchema(only=('cedula', 'correo', 'telefono', 'nombre', 'apellido1', 'apellido2', 'contrasenna'))\ .load(request.get_json()) usuario_actualizado = Usuario(**posted_usuario) session = Session() objeto_usuario = session.query(Usuario).get(usuario_actualizado.cedula) if objeto_usuario is None: return "Usuario no encontrado", 404 schema = UsuarioSchema() objeto_usuario.correo = usuario_actualizado.correo objeto_usuario.telefono = usuario_actualizado.telefono objeto_usuario.nombre = usuario_actualizado.nombre objeto_usuario.apellido1 = usuario_actualizado.apellido1 objeto_usuario.apellido2 = usuario_actualizado.apellido2 objeto_usuario.contrasenna = usuario_actualizado.contrasenna session.add(objeto_usuario) session.commit() usuario = schema.dump(objeto_usuario) session.close() return jsonify(usuario)
def editar_solicitudMantenimiento(): posted_solicitudMantenimiento = SolicitudMantenimientoSchema( only=('id', 'anno', 'nombreSolicitante', 'telefono', 'contactoAdicional', 'urgencia', 'areaTrabajo', 'lugarTrabajo', 'descripcionTrabajo', 'estado')) \ .load(request.get_json()) solicitudMantenimiento_actualizado = SolicitudMantenimiento(**posted_solicitudMantenimiento) session = Session() objeto_solicitudMantenimiento = session.query(SolicitudMantenimiento).get( (solicitudMantenimiento_actualizado.id, solicitudMantenimiento_actualizado.anno)) if objeto_solicitudMantenimiento is None: return "Solicitud no encontrada", 404 schema = SolicitudMantenimientoSchema() objeto_solicitudMantenimiento.nombreSolicitante = solicitudMantenimiento_actualizado.nombreSolicitante objeto_solicitudMantenimiento.telefono = solicitudMantenimiento_actualizado.telefono objeto_solicitudMantenimiento.contactoAdicional = solicitudMantenimiento_actualizado.contactoAdicional objeto_solicitudMantenimiento.urgencia = solicitudMantenimiento_actualizado.urgencia objeto_solicitudMantenimiento.areaTrabajo = solicitudMantenimiento_actualizado.areaTrabajo objeto_solicitudMantenimiento.lugarTrabajo = solicitudMantenimiento_actualizado.lugarTrabajo objeto_solicitudMantenimiento.descripcionTrabajo = solicitudMantenimiento_actualizado.descripcionTrabajo objeto_solicitudMantenimiento.estado = solicitudMantenimiento_actualizado.estado session.add(objeto_solicitudMantenimiento) session.commit() solicitudMantenimiento = schema.dump(objeto_solicitudMantenimiento) session.close() return jsonify(solicitudMantenimiento)
def finalizar_solicitud(): session = Session() objeto_solicitudMantenimiento = session.query(SolicitudMantenimiento).get( (request.json['id'], request.json['anno'])) if objeto_solicitudMantenimiento is None: return "Solicitud no encontrada", 404 objeto_solicitudMantenimiento.estado = 'Finalizada' session.add(objeto_solicitudMantenimiento) objeto_solicitudMantenimientoFinalizada = session.query(SolicitudMantenimientoAprobada).get( (request.json['id'], request.json['anno'])) objeto_solicitudMantenimientoFinalizada.periodoEjecucion = request.json['periodoEjecucion'] objeto_solicitudMantenimientoFinalizada.observacionesFinales = request.json['observacionesFinales'] session.add(objeto_solicitudMantenimientoFinalizada) session.commit() solicitudMantenimientoAprobada_editada = SolicitudMantenimientoAprobadaSchema().dump( objeto_solicitudMantenimientoFinalizada) session.close() return jsonify(solicitudMantenimientoAprobada_editada)
def eliminar_usuario(): cedula = request.args.get('cedula') session = Session() objeto_usuario = session.query(Usuario).get(cedula) if objeto_usuario is None: return "Usuario no encontrado", 404 session.delete(objeto_usuario) session.commit() session.close() return '', 200
def eliminar_grupo(): descripcion = request.args.get('descripcion') session = Session() permisos = session.query(GruposPermisos).filter_by(grupo=descripcion).all() for permiso in permisos: session.delete(permiso) grupo = session.query(Grupo).get(descripcion) session.delete(grupo) session.commit() session.close() return '', 200
def eliminar_arancel(): tipo = request.args.get('tipo') session = Session() objeto_arancel = session.query(Arancel).get(tipo) if objeto_arancel is None: return "Arancel no encontrado", 404 session.delete(objeto_arancel) session.commit() session.close() return '', 200
def eliminar_presupuesto(): codigo = request.args.get('codigo') session = Session() objeto_presupuesto = session.query(Presupuesto).get(codigo) if objeto_presupuesto is None: return "Presupuesto no encontrado", 404 session.delete(objeto_presupuesto) session.commit() session.close() return '', 200
def eliminar_unidad(): nombre = request.args.get('nombre') session = Session() objeto_unidad = session.query(Unidad).get(nombre) if objeto_unidad is None: return "Unidad no encontrada", 404 session.delete(objeto_unidad) session.commit() session.close() return '', 200
def eliminar_cristaleria(): nombre = request.args.get('nombre') pureza = request.args.get('pureza') session = Session() objeto_reactivo = session.query(Reactivo).get((nombre, pureza)) if objeto_reactivo is None: return "Reactivo no encontrado", 404 session.delete(objeto_reactivo) session.commit() session.close() return '', 200
def deleteOldPasswordChangeId(): try: expireTime = datetime.datetime.now() - datetime.timedelta(minutes=10) session = Session() expiredIds = session.query(IdCambioContrasenna).filter( IdCambioContrasenna.fechaCreacion < expireTime).all() for id in expiredIds: session.delete(id) session.commit() return '', 200 except: return '', 400
def eliminar_solicitudMantenimiento(): id = request.args.get('id') anno = request.args.get('anno') session = Session() objeto_solicitudMantenimiento = session.query(SolicitudMantenimiento).get((id, anno)) if objeto_solicitudMantenimiento is None: return "Solicitud no encontrado", 404 session.delete(objeto_solicitudMantenimiento) session.commit() session.close() return '', 200
def check_password_change_id(): data = IdCambioContrasennaSchema(only=('correo', 'id')) \ .load(request.get_json()) session = Session() cachedId = session.query(IdCambioContrasenna).get(data['correo']) if cachedId is None: return "No se generó una solicitud de cambio de contraseña con ese correo", 404 if cachedId.id != data['id']: return "El número identificador de cambio de contraseña no es válido", 400 else: session.delete(cachedId) session.commit() return "", 200
def agregar_grupo(): data = request.get_json() grupo = Grupo(data['descripcion']) session = Session() session.add(grupo) session.commit() permisos = data['permisos'] for permiso in permisos: grupo_permiso = GruposPermisos(grupo.descripcion, permiso['id']) session.add(grupo_permiso) session.commit() session.close() return '', 200
def eliminar_cristaleria(): nombre = request.args.get('nombre') material = request.args.get('material') capacidad = request.args.get('capacidad') session = Session() objeto_cristaleria = session.query(Cristaleria).get( (nombre, material, capacidad)) if objeto_cristaleria is None: return "Cristalería no encontrada", 404 session.delete(objeto_cristaleria) session.commit() session.close() return '', 200
def agregar_reactivo(): # mount exam object posted_reactivo = ReactivoSchema(only=('nombre', 'pureza', 'cantidad', 'estado', 'estante'))\ .load(request.get_json()) reactivo = Reactivo(**posted_reactivo) # persist exam session = Session() session.add(reactivo) session.commit() # return created exam nuevo_reactivo = ReactivoSchema().dump(reactivo) session.close() return jsonify(nuevo_reactivo), 201
def agregar_presupuesto(): # mount exam object posted_presupuesto = PresupuestoSchema(only=('codigo', 'nombre'))\ .load(request.get_json()) presupuesto = Presupuesto(**posted_presupuesto) # persist exam session = Session() session.add(presupuesto) session.commit() # return created exam nuevo_presupuesto = PresupuestoSchema().dump(presupuesto) session.close() return jsonify(nuevo_presupuesto), 201
def agregar_usuario(): # mount exam object posted_usuario = UsuarioSchema(only=('cedula', 'correo', 'telefono', 'nombre', 'apellido1', 'apellido2', 'contrasenna'))\ .load(request.get_json()) usuario = Usuario(**posted_usuario) # persist exam session = Session() session.add(usuario) session.commit() # return created exam nuevo_usuario = UsuarioSchema().dump(usuario) session.close() return jsonify(nuevo_usuario), 201
def asignar_usuario_grupo(): data = request.get_json() grupo = data['descripcion'] session = Session() usuarios = session.query(UsuariosGrupos).filter_by(grupo=grupo).all() for usuario in usuarios: session.delete(usuario) usuarios = data['usuarios'] for usuario in usuarios: usuario_grupo = UsuariosGrupos(usuario['cedula'], grupo) session.add(usuario_grupo) session.commit() session.close() return '', 200
def agregar_cristaleria(): # mount exam object posted_cristaleria = CristaleriaSchema(only=('nombre', 'material', 'capacidad', 'cantidad', 'caja'))\ .load(request.get_json()) cristaleria = Cristaleria(**posted_cristaleria) # persist exam session = Session() session.add(cristaleria) session.commit() # return created exam nueva_cristaleria = CristaleriaSchema().dump(cristaleria) session.close() return jsonify(nueva_cristaleria), 201
def agregar_arancel(): # mount exam object posted_arancel = ArancelSchema(only=('tipo', 'monto'))\ .load(request.get_json()) arancel = Arancel(**posted_arancel) # persist exam session = Session() session.add(arancel) session.commit() # return created exam nuevo_arancel = ArancelSchema().dump(arancel) session.close() return jsonify(nuevo_arancel), 201
def agregar_solicitud_regencia(): datos_solicitud = request.get_json() session = Session() try: id = session.query(func.max(SolicitudRegencia.id)).filter_by( anno=datos_solicitud['anno']).first()[0] if id: id += 1 else: id = 1 datos_solicitud['fechaSolicitud'] = datos_solicitud[ 'fechaSolicitud'].split('T')[0] solicitud = SolicitudRegencia(id, datos_solicitud['anno'], datos_solicitud['fechaSolicitud'], None, datos_solicitud['estado'], datos_solicitud['nombreSolicitante'], datos_solicitud['nombreEncargado'], datos_solicitud['correoSolicitante'], datos_solicitud['observacion'], datos_solicitud['unidad'], datos_solicitud['cedulaUsuario']) session.add(solicitud) session.commit() reactivos = datos_solicitud['reactivosSolicitados'] cristalerias = datos_solicitud['cristaleriaSolicitada'] for reactivo in reactivos: reactivo_solicitado = ReactivosSolicitados( id, datos_solicitud['anno'], reactivo['nombre'], reactivo['pureza'], reactivo['cantidadSolicitada'], 'Pendiente', '') session.add(reactivo_solicitado) for cristaleria in cristalerias: cristaleria_solicitada = CristaleriaSolicitada( id, datos_solicitud['anno'], cristaleria['nombre'], cristaleria['material'], cristaleria['capacidad'], cristaleria['cantidadSolicitada'], 'Pendiente', '') session.add(cristaleria_solicitada) session.commit() return '', 200 except Exception as e: print(e) session.rollback() return 'Ha ocurrido un error al crear la solicitud', 400
def agregar_unidad(): # mount exam object posted_unidad = UnidadSchema( only=('nombre', 'encargado')) \ .load(request.get_json()) unidad = Unidad(**posted_unidad) # persist exam session = Session() session.add(unidad) session.commit() # return created exam nuevo_unidad = UnidadSchema().dump(unidad) session.close() return jsonify(nuevo_unidad), 201
def editar_grupo(): data = request.get_json() grupo = Grupo(data['descripcion']).descripcion session = Session() permisos_anteriores = session.query(GruposPermisos).filter_by( grupo=grupo).all() for permiso in permisos_anteriores: session.delete(permiso) permisos = data['permisos'] for permiso in permisos: grupo_permiso = GruposPermisos(grupo, permiso['id']) session.add(grupo_permiso) session.commit() session.close() return '', 200
def editar_arancel(): posted_arancel = ArancelSchema(only=('tipo', 'monto'))\ .load(request.get_json()) arancel_actualizado = Arancel(**posted_arancel) session = Session() objeto_arancel = session.query(Arancel).get(arancel_actualizado.tipo) if objeto_arancel is None: return "Arancel no encontrado", 404 schema = ArancelSchema() objeto_arancel.monto = arancel_actualizado.monto session.add(objeto_arancel) session.commit() arancel = schema.dump(objeto_arancel) session.close() return jsonify(arancel)
def editar_unidad(): posted_unidad = UnidadSchema( only=('nombre', 'encargado')) \ .load(request.get_json()) unidad_actualizado = Unidad(**posted_unidad) session = Session() objeto_unidad = session.query(Unidad).get(unidad_actualizado.nombre) if objeto_unidad is None: return "Unidad no encontrada", 404 schema = UnidadSchema() objeto_unidad.encargado = unidad_actualizado.encargado session.add(objeto_unidad) session.commit() unidad = schema.dump(objeto_unidad) session.close() return jsonify(unidad)
def generate_password_change_id(): try: correo = request.data.decode(request.charset) session = Session() usuario = session.query(Usuario).filter_by(correo=correo).first() if usuario is None: session.close() return "El correo insertado no pertenece a ningún usuario", 404 id = uuid.uuid1() id = id.hex entidadId = IdCambioContrasenna(correo, id, datetime.datetime.now()) previousId = session.query(IdCambioContrasenna).get(correo) if previousId is not None: session.delete(previousId) session.add(entidadId) urlFrontend = 'http://10.90.85.68/cambioContrasenna/' + id + '/' + correo mail = { 'texto': 'Si usted ha solicitado un cambio de contraseña, por favor haga click <a href="' + urlFrontend + '">aquí</a>', 'subject': 'Solicitud de cambio de contraseña de la plataforma del CELEQ', 'destinatario': correo } enviarCorreo(mail) session.commit() session.close() return '', 200 except Exception as e: print(e) return 'Error al crear identificador de cambio de contraseña', 400
def editar_presupuesto(): posted_presupuesto = PresupuestoSchema(only=('codigo', 'nombre'))\ .load(request.get_json()) presupuesto_actualizado = Presupuesto(**posted_presupuesto) session = Session() objeto_presupuesto = session.query(Presupuesto).get( presupuesto_actualizado.codigo) if objeto_presupuesto is None: return "Presupuesto no encontrado", 404 schema = PresupuestoSchema() objeto_presupuesto.nombre = presupuesto_actualizado.nombre session.add(objeto_presupuesto) session.commit() presupuesto = schema.dump(objeto_presupuesto) session.close() return jsonify(presupuesto)
def aprobar_solicitud(): session = Session() objeto_solicitudMantenimiento = session.query(SolicitudMantenimiento).get( (request.json['id'], request.json['anno'])) if objeto_solicitudMantenimiento is None: return "Solicitud no encontrada", 404 objeto_solicitudMantenimiento.estado = request.json['estado'] session.add(objeto_solicitudMantenimiento) if (request.json['estado'] == 'Aprobada'): nueva_solicitudAprobada = SolicitudMantenimientoAprobada(request.json['id'], request.json['anno'], request.json['fechaAprobacion'], request.json['personaAsignada'], request.json['observacionesAprob'], '', '', '', '', '', '', '') session.add(nueva_solicitudAprobada) session.commit() nuevo_solicitudMantenimientoAprobada = SolicitudMantenimientoAprobadaSchema().dump(nueva_solicitudAprobada) session.close() return jsonify(nuevo_solicitudMantenimientoAprobada) else: nueva_solicitudRechazada = SolicitudMantenimientoRechazada(request.json['id'], request.json['anno'], request.json['motivoRechazo']) session.add(nueva_solicitudRechazada) session.commit() nuevo_solicitudMantenimientoRechazada = SolicitudMantenimientoRechazadaSchema().dump(nueva_solicitudRechazada) session.close() return jsonify(nuevo_solicitudMantenimientoRechazada)