示例#1
0
    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
示例#2
0
    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
示例#3
0
    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
示例#4
0
    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
        }
示例#5
0
    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