コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
def obtener_ticket_por(id):
    ticket = obtener_una_instancia(Ticket, id=id)

    return ticket.a_diccionario(incluir_tareas=True)
コード例 #7
0
def obtener_transaccion_por(id):
	transaccion = obtener_una_instancia(Transaccion, id=id)

	return transaccion.a_diccionario()
コード例 #8
0
def obtener_miembro_por_email(email):
    miembro = obtener_una_instancia(Miembro, email=email)
    return miembro.a_diccionario()
コード例 #9
0
def obtener_miembro_por(id):
    miembro = obtener_una_instancia(Miembro, id=id)
    return miembro.a_diccionario()
コード例 #10
0
def obtener_cliente_por(id):
    cliente = obtener_una_instancia(Cliente, id=id)
    return cliente.a_diccionario()
コード例 #11
0
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)
コード例 #12
0
def obtener_voucher_por(id):
	voucher = obtener_una_instancia(Voucher, id=id)

	return voucher.a_diccionario()