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"
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
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
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'
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
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"
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
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