def eliminar(id): cliente = obtener_una_instancia(Cliente, id=id) if not cliente: raise Exception("No existe el cliente solicitado") ticket_asociado = obtener_una_instancia(Ticket, id_cliente=id) if ticket_asociado: raise Exception( 'No se puede eliminar el cliente solicitado ya que está asignado a un ticket' ) eliminar_instancia(Cliente, id=id)
def eliminar(id): miembro = obtener_una_instancia(Miembro, id=id) if not miembro: raise Exception("No existe el miembro solicitado") eliminar_instancia(Miembro, id=id)
def archivar(id): transaccion = obtener_una_instancia(Transaccion, id=id) if not transaccion: raise Exception('No existe el transaccion solicitado') # , CODIGO_HTTP["NOT_FOUND"] eliminar_instancia(Transaccion, id=id)
def archivar(id): ticket = obtener_una_instancia(Ticket, id=id) if not ticket: raise Exception('No existe el ticket solicitado') # , CODIGO_HTTP["NOT_FOUND"] if ticket.estado.lower() != 'cerrado': raise Exception( 'Los tickets deben estar cerrados para poder archivarse!') # , CODIGO_HTTP["BAD_REQUEST"] eliminar_instancia(Ticket, id=id)
def editar(id, ticket_editado): ticket_almacenado = obtener_una_instancia(Ticket, id=id) if not ticket_almacenado: raise Exception("No existe el ticket solicitado") id_cliente = ticket_editado['cliente']['id'] pasos = ticket_editado.get('pasos') responsable = ticket_editado.get('legajo_responsable') estado = ticket_editado['estado'].lower() if ticket_almacenado.estado == 'cerrado': raise Exception('El ticket ya fue cerrado previamente') if estado not in [ 'nuevo', 'en progreso', 'cerrado', 'esperando informacion' ]: raise Exception( 'El estado de ticket debe ser Nuevo/Asignado/Cerrado/Esperando Informacion' ) # , CODIGO_HTTP["BAD_REQUEST"] fecha_ultima_actualizacion = datetime.now( timezone('America/Argentina/Buenos_Aires')) if estado == 'cerrado' and ticket_almacenado.estado != 'cerrado': # Si cambio al estado cerrado, se coloca la fecha de finalización. fecha_finalizacion = fecha_ultima_actualizacion else: fecha_finalizacion = None severidad = ticket_editado['severidad'].lower() if severidad not in SEVERIDADES.keys(): raise Exception('La severidad debe ser Alta, Media o Baja') if severidad != ticket_almacenado.severidad: # Si cambiaron la severidad del ticket, se actualiza la fecha limite. fecha_limite = ticket_almacenado.fecha_creacion + timedelta( days=SEVERIDADES[severidad.lower()]) else: fecha_limite = ticket_almacenado.fecha_limite tipo = ticket_editado['tipo'].lower() if tipo not in ['error', 'consulta', 'mejora']: raise Exception('El tipo de ticket debe ser Error/Consulta/Mejora') # , CODIGO_HTTP["BAD_REQUEST"] if tipo != 'error': # Solo los tickets de tipo error llevan pasos pasos = None #Codigo para la creacion de tickets que den datos a los graficos try: fecha_creacion = ticket_editado['fecha_creacion'] fecha_creacion = datetime.strptime(fecha_creacion, '%Y-%m-%d %H:%M:%S') except: fecha_creacion = None try: fecha_finalizacion = ticket_editado['fecha_finalizacion'] fecha_finalizacion = datetime.strptime(fecha_finalizacion, '%Y-%m-%d %H:%M:%S') except: pass editar_instancia(Ticket, id, nombre=ticket_editado["nombre"], descripcion=ticket_editado["descripcion"], tipo=tipo, estado=estado, severidad=severidad, fecha_ultima_actualizacion=fecha_ultima_actualizacion, fecha_limite=fecha_limite, fecha_finalizacion=fecha_finalizacion, legajo_responsable=responsable, pasos=pasos, fecha_creacion=fecha_creacion, id_cliente=id_cliente)
def obtener_ticket_por(id): ticket = obtener_una_instancia(Ticket, id=id) return ticket.a_diccionario(incluir_tareas=True)
def obtener_transaccion_por(id): transaccion = obtener_una_instancia(Transaccion, id=id) return transaccion.a_diccionario()
def obtener_miembro_por_email(email): miembro = obtener_una_instancia(Miembro, email=email) return miembro.a_diccionario()
def obtener_miembro_por(id): miembro = obtener_una_instancia(Miembro, id=id) return miembro.a_diccionario()
def obtener_cliente_por(id): cliente = obtener_una_instancia(Cliente, id=id) return cliente.a_diccionario()
def archivar(id): voucher = obtener_una_instancia(Voucher, id=id) if not voucher: raise Exception("No existe el voucher solicitado") else: eliminar_instancia(Voucher, id=id)
def obtener_voucher_por(id): voucher = obtener_una_instancia(Voucher, id=id) return voucher.a_diccionario()