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 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 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 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 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 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_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_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_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 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 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_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 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_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 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 editar_reactivo(): posted_reactivo = ReactivoSchema(only=('nombre', 'pureza', 'cantidad', 'estado', 'estante'))\ .load(request.get_json()) reactivo_actualizado = Reactivo(**posted_reactivo) session = Session() objeto_reactivo = session.query(Reactivo).get((reactivo_actualizado.nombre, reactivo_actualizado.pureza)) if objeto_reactivo is None: return "Reactivo no encontrado", 404 schema = ReactivoSchema() objeto_reactivo.cantidad = reactivo_actualizado.cantidad objeto_reactivo.estado = reactivo_actualizado.estado objeto_reactivo.estante = reactivo_actualizado.estante session.add(objeto_reactivo) session.commit() reactivo = schema.dump(objeto_reactivo) session.close() return jsonify(reactivo)
def editar_cristaleria(): posted_cristaleria = CristaleriaSchema(only=('nombre', 'material', 'capacidad', 'cantidad', 'caja'))\ .load(request.get_json()) cristaleria_actualizada = Cristaleria(**posted_cristaleria) session = Session() objeto_cristaleria = session.query(Cristaleria).get( (cristaleria_actualizada.nombre, cristaleria_actualizada.material, cristaleria_actualizada.capacidad)) if objeto_cristaleria is None: return "Cristalería no encontrada", 404 schema = CristaleriaSchema() objeto_cristaleria.cantidad = cristaleria_actualizada.cantidad objeto_cristaleria.caja = cristaleria_actualizada.caja session.add(objeto_cristaleria) session.commit() cristaleria = schema.dump(objeto_cristaleria) session.close() return jsonify(cristaleria)
def editar_designacion(): datos_designacion = request.get_json() session = Session() objeto_designacion = session.query(Designacion).get( (datos_designacion['id'], datos_designacion['anno'])) if objeto_designacion is None: return "Designación no encontrada", 404 schema = DesignacionSchema() objeto_designacion.responsable = datos_designacion['responsable'] objeto_designacion.unidad = datos_designacion['unidad'] objeto_designacion.horas = datos_designacion['horas'] objeto_designacion.observaciones = datos_designacion['observaciones'] objeto_designacion.tramitado = datos_designacion['tramitado'] objeto_designacion.fechaFinal = datos_designacion['fechaFinal'] session.add(objeto_designacion) designacion = schema.dump(objeto_designacion) with session.no_autoflush: p9 = session.query(P9).get(datos_designacion['numero']) if p9 is None: objeto_p9 = P9(datos_designacion['numero'], datos_designacion['ubicacionArchivo'], datos_designacion['id'], datos_designacion['anno'], datos_designacion['fecha']) session.add(objeto_p9) session.commit() session.close() return jsonify(designacion)
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 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)
def agregar_designacion(): datos_designacion = request.get_json() datos_designacion['fecha'] = datos_designacion['fecha'].split('T')[0] datos_designacion['fechaInicio'] = datos_designacion['fechaInicio'].split( 'T')[0] datos_designacion['fechaFinal'] = datos_designacion['fechaFinal'].split( 'T')[0] session = Session() objeto_estudiante = session.query(Estudiante).get( datos_designacion['identificacion']) if objeto_estudiante is None: estudiante = Estudiante( datos_designacion['identificacion'], datos_designacion['tipoId'], datos_designacion['nombre'], datos_designacion['apellido1'], datos_designacion['apellido2'], datos_designacion['correo'], datos_designacion['celular'], datos_designacion['telefonoFijo'], datos_designacion['carrera']) session.add(estudiante) else: objeto_estudiante.nombre = datos_designacion['nombre'] objeto_estudiante.apellido1 = datos_designacion['apellido1'] objeto_estudiante.apellido2 = datos_designacion['apellido2'] objeto_estudiante.correo = datos_designacion['correo'] objeto_estudiante.celular = datos_designacion['celular'] objeto_estudiante.telefonoFijo = datos_designacion['telefonoFijo'] objeto_estudiante.carrera = datos_designacion['carrera'] session.add(objeto_estudiante) objeto_arancel = session.query(Arancel).get(datos_designacion['modalidad']) schema = ArancelSchema() arancel = schema.dump(objeto_arancel) monto = arancel['monto'] * datos_designacion['horas'] id = session.query(func.max( Designacion.id)).filter_by(anno=datos_designacion['anno']).first()[0] if id: id += 1 else: id = 1 designacion = Designacion( id, datos_designacion['anno'], datos_designacion['ciclo'], datos_designacion['fechaInicio'], datos_designacion['fechaFinal'], datos_designacion['convocatoria'], datos_designacion['horas'], datos_designacion['modalidad'], monto, datos_designacion['inopia'], datos_designacion['motivoInopia'], datos_designacion['tramitado'], datos_designacion['observaciones'], datos_designacion['identificacion'], datos_designacion['presupuesto'], datos_designacion['responsable'], datos_designacion['unidad'], datos_designacion['adHonorem']) session.add(designacion) p9 = P9(datos_designacion['numero'], datos_designacion['ubicacionArchivo'], id, datos_designacion['anno'], datos_designacion['fecha']) session.add(p9) session.commit() schema = DesignacionSchema() objeto_designacion = schema.dump(designacion) session.close() return jsonify(objeto_designacion)
def editar_solicitud_regencia(): datos_solicitud = request.get_json() session = Session() try: solicitud = session.query(SolicitudRegencia).get( (datos_solicitud['id'], datos_solicitud['anno'])) if solicitud is None: return "Solicitud no encontrada", 404 solicitud.fechaAprobacion = date.today() solicitud.estado = datos_solicitud['estado'] session.add(solicitud) for reactivo in datos_solicitud['reactivosSolicitados']: reactivo_solicitado = session.query(ReactivosSolicitados).get( (datos_solicitud['id'], datos_solicitud['anno'], reactivo['nombreReactivo'], reactivo['pureza'])) reactivo_solicitado.estadoEnSolicitud = reactivo[ 'estadoEnSolicitud'] reactivo_solicitado.justificacionRechazo = reactivo[ 'justificacionRechazo'] reactivo_actualizado = session.query(Reactivo).get( (reactivo['nombreReactivo'], reactivo['pureza'])) cantidad_actualizada = reactivo_actualizado.cantidad - reactivo_solicitado.cantidadSolicitada if cantidad_actualizada < 0: return 'No hay suficientes reactivos para aprobar la solicitud', 406 reactivo_actualizado.cantidad = cantidad_actualizada session.add(reactivo_actualizado) session.add(reactivo_solicitado) for cristaleria in datos_solicitud['cristaleriaSolicitada']: cristaleria_solicitada = session.query(CristaleriaSolicitada).get( (datos_solicitud['id'], datos_solicitud['anno'], cristaleria['nombreCristaleria'], cristaleria['material'], cristaleria['capacidad'])) cristaleria_solicitada.estadoEnSolicitud = cristaleria[ 'estadoEnSolicitud'] cristaleria_solicitada.justificacionRechazo = cristaleria[ 'justificacionRechazo'] cristaleria_actualizada = session.query(Cristaleria).get( (cristaleria['nombreCristaleria'], cristaleria['material'], cristaleria['capacidad'])) cantidad_actualizada = cristaleria_actualizada.cantidad - cristaleria_solicitada.cantidadSolicitada if cantidad_actualizada < 0: return 'No hay suficiente cristaleria para aprobar la solicitud', 406 cristaleria_actualizada.cantidad = cantidad_actualizada session.add(cristaleria_actualizada) session.add(cristaleria_solicitada) session.commit() session.close() return '', 200 except Exception as e: print(e) session.rollback() return 'Ha ocurrido un error al editar la solicitud', 400