def BuscoCita(self,fecha,horaInicio,horaFin, Usuario): """Busco que no exista una cita en la fecha y hora marcadas Fecha en el formato DD/MM/YY HH:MM doctor es una instancia de dicho modelo Devuelvo 0 cuando NO existe una cita""" validoDr=ValidoDoctor() doctor=validoDr.instanciaDoctor(Usuario) campos=fecha.rsplit("-") fecha=campos[0]+"/"+campos[1]+"/"+campos[2][2:] inicio=fecha+" "+horaInicio fin=fecha+" "+horaFin fechainicial=dt.datetime.strptime(inicio, "%d/%m/%y %H:%M") fechafinal=dt.datetime.strptime(fin, "%d/%m/%y %H:%M") #query = db.GqlQuery("SELECT * FROM Cita WHERE doctor = :1 and ((horaInicial<= :2 and horaFinal>:3) or (horaInicial< :4 and horaFinal>=:5))", # doctor,fechainicial,fechainicial,fechafinal,fechafinal) cantidad=0 if doctor != None: query=db.GqlQuery("SELECT * FROM Cita WHERE doctor = :1 and fecha=:2",doctor,fecha) for cita in query: if (cita.horaInicial<=fechainicial and cita.horaFinal>fechainicial) or (cita.horaInicial<fechafinal and cita.horaFinal>= fechafinal): cantidad=1 #hay una cita if cantidad==1: #si hay un cita break #ya no busco else: cantidad=-1 return cantidad
def BorrarCita(self,usuario,hora,fecha): validoDr=ValidoDoctor() doctor=validoDr.instanciaDoctor(usuario) #fecha=str(dt.date.today().day)+"/"+str(dt.date.today().month)+"/"+str(dt.date.today().year)[2:] inicio=fecha+" "+hora fechainicial=dt.datetime.strptime(inicio, "%d/%m/%y %H:%M") if doctor != None: query=db.GqlQuery("SELECT * FROM Cita WHERE doctor = :1 and fecha=:2",doctor,fecha) for cita in query: if cita.horaInicial==fechainicial: cita.delete()
def post(self): usuario=str(self.request.get('usuario')).upper() dr=ValidoDoctor() doctor=dr.instanciaDoctor(usuario) sRetorno="failure" jsondata=[] jsondic={} if doctor!=None: sRetorno=doctor.usuario.usuario+"|Dr. "+ doctor.nombre+ " "+doctor.paterno+" "+doctor.materno jsondic["user"]=sRetorno jsondata=[jsondic] self.response.out.write(simplejson.dumps(jsondata)) return jsondata
def get(self, req): sess = Sesion() usuario = sess.getUser() validoDr = ValidoDoctor() dr = validoDr.instanciaDoctor(usuario) instPac = GraboPaciente() usuario = instPac.instanciaUsuarioPaciente(self.request.get("paciente")) consulta = Consulta() consulta.doctor = dr consulta.usuario = usuario consulta.put() jsondic = {} jsondata = [] jsondic["id"] = consulta.key().id() jsondata = [jsondic] self.response.out.write(simplejson.dumps(jsondata))
def UpdateDatos(self,Usuario): validoDr=ValidoDoctor() Usuario=str(Usuario).upper() doctor=validoDr.instanciaDoctor(Usuario) if doctor==None: self.AltaDatos(Usuario) else: doctor.nombre = self.request.get('nombre') doctor.paterno = self.request.get('paterno') doctor.materno = self.request.get('materno') doctor.direccion = self.request.get('direccion') doctor.web =self.request.get('web') doctor.correo=self.request.get('correo') doctor.telefono=self.request.get('telefono') doctor.especialidad = self.request.get('especialidad') db.put(doctor) return False
def post(self): sess = Sesion() jsondata=[] Usuario=self.request.get("dr") if sess.load(): validoDr=ValidoDoctor() doctor=validoDr.instanciaDoctor(Usuario) jsondic={} cantidad=0 if doctor!=None: fecha=self.request.get('fecha') inicio=str(self.request.get('inicio')) fin=str(self.request.get('fin')) cantidad=self.BuscoCita(fecha,inicio,fin,Usuario) jsondic["citas"]=cantidad jsondata=[jsondic] self.response.out.write(simplejson.dumps(jsondata)) return jsondata
def Grabar(self,dr,usuario): usuario=str(usuario).upper() dr=str(dr).upper() instanciaDr=ValidoDoctor() doctor=instanciaDr.instanciaDoctor(dr) instanciaUsuario=ValidoUsuario() user=instanciaUsuario.InstaciaUsuario(usuario) bRetorno=True if user!=None and doctor!=None: if not self.ExisteRelacion(doctor,user): try: relacion=Relacion() relacion.doctor=doctor relacion.usuario=user relacion.put() except: bRetorno=False else: bRetorno=False return bRetorno
def AltaCita(self,dr,paciente,pacientenuevo,nombre,fecha,horainicial,horafinal,duracion): cita=Cita() validoDr=ValidoDoctor() doctor=validoDr.instanciaDoctor(dr) instPac=GraboPaciente() cita.doctor=doctor if not pacientenuevo: cita.paciente=instPac.instanciaPaciente(paciente) else: cita.pacientenuevo=nombre time1=fecha +" "+ horainicial time2=fecha +" "+ horafinal FechaInicial= dt.datetime.strptime(time1, "%d/%m/%y %H:%M") FechaFinal= dt.datetime.strptime(time2, "%d/%m/%y %H:%M") cita.fecha=fecha cita.horaInicial=FechaInicial cita.duracion=int(duracion) cita.horaFinal=FechaFinal cita.put() return cita.key()