예제 #1
0
def updateHorarioConsulta(id_consulta, horario_id, data, hI, hF):
    from Nutrin.Consulta.Services.Consulta.readConsulta import readConsultaId
    status, c = readConsultaId(id_consulta, True)
    if status:
        from Nutrin.Consulta.Services.Horarios.listHorario import listHorarioData
        statusHora, periodo = listHorarioData(data)
        if statusHora:
            periodo_id = periodo[0]['hora_id']
            from Nutrin.Consulta.Services.Ocupado.createOcupado import createOcupado
            statusOcup, msg = createOcupado(periodo_id, hI, hF)
            if statusOcup:
                from Nutrin.Consulta.Services.Ocupado.readOcupado import readOcupadoNoPeriodo
                statusHid, msgHora = readOcupadoNoPeriodo(periodo_id)
                if statusHid:
                    for o in msgHora:
                        if o['horaI'] == hI and o['horaF'] == hF:
                            c.horario_id = o['id']
                            from Nutrin import db
                            db.session.commit()
                            from Nutrin.Consulta.Services.Ocupado.readOcupado import readOcupado
                            ocupStatus, ocup = readOcupado(horario_id, True)
                            if ocupStatus:
                                db.session.delete(ocup)
                                db.session.commit()
                            return True, "Consulta alterada com sucesso"
                return statusHid, msgHora
            return statusOcup, msg
        return statusHora, periodo
    return False, "Consulta não encontrada"
예제 #2
0
def deleteHorario(id):
    status, dado = readOcupadoNoPeriodo(id)
    if status:
        return False, "Não é possivel excluir. Há um paciente utilizando o horário"
    else:
        statusObj, dadoObj = readHorarioById(id,True)
        if statusObj:
            db.session.delete(dadoObj)
            db.session.commit()
            return True, "Periodo excluido"
        return statusObj, dadoObj
예제 #3
0
def updateHorario(horario_id, hI, hF):
    status, dado = readOcupadoNoPeriodo(horario_id)
    if status:
        return False, "Não é possivel alterar. Há um paciente utilizando o horário"
    else:
        statusObj, dadoObj = readHorarioById(horario_id, True)
        if statusObj:
            dadoObj.horaInicio = hI
            dadoObj.horaFim = hF
            db.session.commit()
            return True, "Periodo alterado"
        return statusObj, dadoObj
예제 #4
0
def listHorarioDisp():
    from Nutrin.Consulta.Services.Ocupado.readOcupado import readOcupadoNoPeriodo
    horarios = Horarios.query.all()
    if horarios != None:
        disponiveis = []
        parcial = []
        for h in horarios:
            status, dado = readOcupadoNoPeriodo(h.id)
            if status:
                parcial.append(h)
            else:
                disponiveis.append(h)
        lista = [disponiveis, parcial]
        return True, lista
    return False, 'Não há horários cadastrados'
예제 #5
0
def listDisponiveis():
    from Nutrin.Consulta.Services.Ocupado.readOcupado import readOcupadoNoPeriodo
    diaHoras = {}
    periodos = listHorario()
    #print(periodos)
    for p in periodos:
        qtdHoras = int(p['horaFim'][:2]) - int(p['horaInicio'][:2])
        diaHoras[p['data']] = []
        for i in range(0, qtdHoras):
            diaHoras[p['data']].append(int(p['horaInicio'][:2]) + i)
        #print(diaHoras)
        statusOcup, dadoOcup = readOcupadoNoPeriodo(p['hora_id'])
        #print(statusOcup, dadoOcup)
        if statusOcup:
            print(statusOcup, dadoOcup)
            for o in dadoOcup:
                if int(o['horaI'][:2]) in diaHoras[p['data']]:
                    diaHoras[p['data']].remove(int(o['horaI'][:2]))
    horasDisp = []
    for dia, horas in diaHoras.items():
        horasDisp.append({"dia": dia, "horas": horas})
    return horasDisp
예제 #6
0
def createOcupado(periodo_id, hI, hF):
    #print(readOcupadoNoPeriodo(periodo_id))
    status, dado = readOcupadoNoPeriodo(periodo_id)
    #print('aquiiiiii --- {} {}'.format(status, dado))
    if status:
        for ocup in dado:
            #int(p['horaFim'][:2]) - int(p['horaInicio'][:2]
            #if int(hF[:2]) >= int(ocup['horaI'][:2]) and int(hI[:2]) <= int(ocup['horaF'][:2]) and int(hI[:2]) != int(ocup['horaI'][:2]):
            if int(hI[:2]) != int(ocup['horaI'][:2]):
                permissao = True
            else:
                return False, "Horário esta ocupado"
        if permissao:
            o = Ocupado(periodo_id, hI, hF)
            db.session.add(o)
            db.session.commit()
            return True, "Horário foi preenchido com sucesso"
    else:
        #print('aqui03')
        o = Ocupado(periodo_id, hI, hF)
        db.session.add(o)
        db.session.commit()
        return True, "Horário foi preenchido com sucesso"
예제 #7
0
def createConsulta(paciente_id, tipoAtendimento_id, data, hI, hF,
                   tipoEstado_id):
    statusHora, periodo = listHorarioData(data)
    if statusHora:
        periodo_id = periodo[0]['hora_id']
        status, msg = createOcupado(periodo_id, hI, hF)
        #print('bel deus ------- {} - {}'.format(status, msg))
        if status:
            statusHid, msgHora = readOcupadoNoPeriodo(periodo_id)
            #print('bel deus022 ------- {} - {}'.format(statusHid, msgHora))
            if statusHid:
                for o in msgHora:
                    if hF == o['horaF'] and hI == o['horaI']:
                        from Nutrin.Consulta.Model.Consulta import Consulta
                        consulta = Consulta(paciente_id, tipoAtendimento_id,
                                            o['id'], tipoEstado_id)
                        from Nutrin import db
                        db.session.add(consulta)
                        db.session.commit()
                        return True, "Consulta cadastrada com sucesso"
                return False, 'ID Ocupado não encontrado'
            return statusHid, msgHora
        return status, msg
    return statusHora, periodo
예제 #8
0
def validaNovoOcupado(data, hI, hF):
    status, dado = listHorarioData(data)
    if status:
        pode = False
        for disp in dado:
            if disp['horaInicio'] >= hI and hF >= disp['horaFim']:
                pode = True
                id_periodo = disp['hora_id']
            else:
                pode = False
        if pode:
            statusOcup, dadoOcup = readOcupadoNoPeriodo(id_periodo)
            if statusOcup:
                lista = []
                pode = False
                for ocup in dadoOcup:
                    if ocup['horaI'] > hI and hF > ocup['horaF']:
                        pode = True
                    else:
                        pode = False
                return pode, id_periodo
            return False, dadoOcup
        return False, "Horário escolhido não está disponível no dia"
    return False, dado