def buscar_citas(self, med_id, serv_id, fecha_desde): """ Busca un registro de cita :param med_id: :param serv_id: :return: """ fecha_db = fechas.format_cadena_db(fecha_desde) sql = """ select cita_id, cita_fecha, cita_hora, cita_hora_fin,paciente_id, cita_obs, medico_id, cita_serv from tcita where medico_id = {0} and cita_serv = {1} and cita_fecha >= '{2}' order by cita_fecha, cita_hora asc """.format(med_id, serv_id, fecha_db) tupla_desc = ('cita_id', 'cita_fecha', 'cita_hora', 'cita_hora_fin', 'paciente_id', 'cita_obs', 'medico_id', 'cita_serv') citas = self.all(sql, tupla_desc) for cita in citas: cita_fecha = cita['cita_fecha'] cita_hora = cita['cita_hora'] cita_hora_fin = cita['cita_hora_fin'] cita_hora_str = fechas.num_to_hora(cita_hora) cita_fecha_str = fechas.get_fecha_letras_largo( fechas.parse_cadena(cita_fecha)) cita_hora_fin_str = fechas.num_to_hora(cita_hora_fin) cita['cita_fecha_str'] = cita_fecha_str cita['cita_hora_str'] = cita_hora_str cita['cita_hora_fin_str'] = cita_hora_fin_str
def listar(self, dia,sec_id): tgrid_dao = TGridDao(self.dbsession) diadb = fechas.format_cadena_db(dia) data = tgrid_dao.run_grid(grid_nombre='tickets', tk_dia=diadb, sec_id=sec_id) return data
def listar_citas(self, med_id, fecha_desde): sql_fecha = '' if fecha_desde is not None and len(fecha_desde) > 0: fecha_db = fechas.format_cadena_db(fecha_desde) sql_fecha = "and cita_fecha >= '{fecha}'".format(fecha=fecha_db) sql = u""" select cita.cita_id, cita.cita_fecha, cita.cita_hora, cita.cita_hora_fin,cita.paciente_id, cita.cita_obs, cita.medico_id, cita.cita_serv, cita.cita_estado, case cita.cita_estado when 0 then 'Pendiente' when 1 then 'Atendido' when 2 then 'Cancelado' else '' end as estado, tuserpac.up_email, tuserpac.up_tipo, tuserpac.up_pasword, tuserpac.up_estado, tuserpac.up_fechacrea, tuserpac.up_nombres, tuserpac.up_celular, tuserpac.up_photourl from tcita cita join tuserpaciente tuserpac on cita.paciente_id = tuserpac.up_id where medico_id = {0} {1} order by cita_fecha, cita_hora asc """.format(med_id, sql_fecha) tupla_desc = ('cita_id', 'cita_fecha', 'cita_hora', 'cita_hora_fin', 'paciente_id', 'cita_obs', 'medico_id', 'cita_serv', 'cita_estado', 'estado', 'up_email', 'up_tipo', 'up_pasword', 'up_estado', 'up_fechacrea', 'up_nombres', 'up_celular', 'up_photourl') citas = self.all(sql, tupla_desc) for cita in citas: cita_fecha = cita['cita_fecha'] cita_hora = cita['cita_hora'] cita_hora_fin = cita['cita_hora_fin'] cita_hora_str = fechas.num_to_hora(cita_hora) cita_fecha_str = fechas.get_fecha_letras_largo( fechas.parse_cadena(cita_fecha)) cita_hora_fin_str = fechas.num_to_hora(cita_hora_fin) cita['cita_fecha_str'] = cita_fecha_str cita['cita_hora_str'] = cita_hora_str cita['cita_hora_fin_str'] = cita_hora_fin_str return citas
def get_form(self, dia, sec_id): tk_nro = self.get_next_ticket(fechas.format_cadena_db(dia), sec_id) dia_str = fechas.get_fecha_letras_largo(fechas.parse_cadena(dia)) return { 'tk_id': 0, 'per_id': 0, 'tk_nro': tk_nro, 'tk_obs': '', 'tk_costo': 1.0, 'tk_dia': dia, 'tk_servicios': '', 'dia_str': dia_str }
def get_matriz_horas_medico(self, med_id, dia): dia_parsed = fechas.parse_cadena(dia) weekday = dia_parsed.isoweekday() dia_db = fechas.format_cadena_db(dia) sql = """ select hm.hm_id, hm.med_id, hm.hm_dia, hm.hm_horaini,hm.hm_horafin, coalesce(cita.cita_hora, 0) as cita_hora, coalesce(cita.paciente_id, 0) as paciente_id from thorariomedico hm left join tcita cita on cita.medico_id = {medico} and cita.cita_fecha = '{fecha}' where hm.med_id={medico} and hm.hm_dia = {weekday} order by hm.hm_horaini asc """.format(medico=med_id, fecha=dia_db, weekday=weekday) tupla_desc = ('hm_id', 'med_id', 'hm_dia', 'hm_horaini', 'hm_horafin', 'cita_hora', 'paciente_id') res = self.all(sql, tupla_desc) horas = [] setHorasOcupadas = set() for item in res: cita_hora = item['cita_hora'] if cita_hora != 0: setHorasOcupadas.add(cita_hora) if res is not None: first_row = res[0] hm_horaini = first_row['hm_horaini'] hm_horafin = first_row['hm_horafin'] hora_iter = hm_horaini while hora_iter < hm_horafin: horaiter_fin = hora_iter + 1 ocupado = 1 if hora_iter in setHorasOcupadas else 0 hora_iter_str = fechas.num_to_hora(hora_iter) horaiter_fin_str = fechas.num_to_hora(horaiter_fin) horas.append({ 'horaIni': hora_iter_str, 'horaFin': horaiter_fin_str, 'ocupado': ocupado }) hora_iter = horaiter_fin return horas