Ejemplo n.º 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
Ejemplo n.º 2
0
    def crear(self, form, form_persona, user_crea, sec_id):

        tticket = TTicket()

        persona_dao = TPersonaDao(self.dbsession)

        tticket.tk_nro = form['tk_nro']
        tticket.tk_fechahora = datetime.now()

        per_id = form_persona['per_id']
        if per_id is None or per_id == 0:
            per_id = persona_dao.crear(form_persona, permit_ciruc_null=True)
        else:
            persona_dao.actualizar(per_id, form_persona)

        tticket.tk_perid = per_id
        tticket.tk_observacion = form['tk_obs']
        tticket.tk_usercrea = user_crea
        tticket.tk_costo = form['tk_costo']
        tticket.tk_dia = fechas.parse_cadena(form['tk_dia'])
        tticket.tk_estado = 1
        tticket.tk_servicios = form['tk_servicios']
        tticket.sec_id = sec_id

        self.dbsession.add(tticket)

        self.dbsession.flush()
        return tticket.tk_id
Ejemplo n.º 3
0
    def get_historia_porpaciente(self, per_ciruc):
        """
        Buscar todas las veces que se ha registrado una atencion para el paciente especificado
        :param per_ciruc:
        :return: ['cosm_id', 'cosm_fechacrea', 'per_ciruc', 'paciente', 'cosm_motivo']
        """

        sql = u"""select historia.cosm_id, historia.cosm_fechacrea, paciente.per_ciruc, 
                paciente.per_nombres||' '||paciente.per_apellidos as paciente, historia.cosm_motivo,
                historia.cosm_fechaproxcita 
                from tconsultamedica historia
                join tpersona paciente on historia.pac_id = paciente.per_id and 
                paciente.per_ciruc = '{0}' order by historia.cosm_fechacrea desc """.format(
            per_ciruc)
        tupla_desc = ('cosm_id', 'cosm_fechacrea', 'per_ciruc', 'paciente',
                      'cosm_motivo', 'cosm_fechaproxcita')

        historias = self.all(sql, tupla_desc)
        historias_fecha = []

        for item in historias:
            fecha_str = fechas.get_fecha_letras_largo(
                fechas.parse_cadena(item['cosm_fechacrea'],
                                    formato=ctes.APP_FMT_FECHA_HORA))
            item['fecha_crea_largo'] = fecha_str
            historias_fecha.append(item)

        return historias_fecha
Ejemplo n.º 4
0
    def actualizar(self, form, user_actualiza):
        # Datos para actualizar:

        ic_id = form['ic_id']
        titemconfig = self.dbsession.query(TItemConfig).filter(
            TItemConfig.ic_id == ic_id).first()
        if titemconfig is not None:
            # Cosas que se pueden actualizar:
            # Nombre, categoria, proveedro, precio de compra, precio de venta, fecha de caducidad, observacion
            icdp_preciocompra = form['icdp_preciocompra']
            icdp_precioventa = form['icdp_precioventa']
            icdp_precioventamin = form['icdp_precioventamin']

            icdp_grabaiva = form['icdp_grabaiva']
            if icdp_grabaiva:
                # El precio de compra y de venta se le debe quitar el iva
                # icdp_preciocompra = ivautil.redondear_precio_db(ivautil.quitar_iva(icdp_preciocompra))
                icdp_precioventa = ivautil.redondear_precio_db(
                    ivautil.quitar_iva(icdp_precioventa))
                icdp_precioventamin = ivautil.redondear_precio_db(
                    ivautil.quitar_iva(icdp_precioventamin))

            old_ic_nombre = cadenas.strip(titemconfig.ic_nombre)
            ic_nombre = cadenas.strip_upper(form['ic_nombre'])
            if ic_nombre != old_ic_nombre:
                if self.existe_artbynombre(ic_nombre):
                    raise ErrorValidacionExc(
                        u"Ya existe registrado un producto o servicio con el nombre: '{0}'"
                        .format(ic_nombre))

            titemconfig.ic_nombre = ic_nombre
            titemconfig.ic_nota = form['ic_nota']
            titemconfig.catic_id = form['catic_id']
            titemconfig.ic_useractualiza = user_actualiza
            titemconfig.ic_fechaactualiza = datetime.now()

            self.dbsession.add(titemconfig)

            titemconfigdp = self.dbsession.query(TItemConfigDatosProd).filter(
                TItemConfigDatosProd.ic_id == ic_id).first()
            if titemconfigdp is not None:
                titemconfigdp.icdp_proveedor = form['icdp_proveedor']

                icdp_fechacaducidad = form['icdp_fechacaducidad']
                if cadenas.es_nonulo_novacio(icdp_fechacaducidad):
                    titemconfigdp.icdp_fechacaducidad = fechas.parse_cadena(
                        icdp_fechacaducidad)
                else:
                    titemconfigdp.icdp_fechacaducidad = None

                titemconfigdp.icdp_grabaiva = icdp_grabaiva
                titemconfigdp.icdp_preciocompra = icdp_preciocompra
                titemconfigdp.icdp_precioventa = icdp_precioventa
                titemconfigdp.icdp_precioventamin = icdp_precioventamin
                # TODO: Agregar logica para registrar kardek del articulo
                self.dbsession.add(titemconfigdp)

            self.dbsession.flush()
            return ic_id
Ejemplo n.º 5
0
    def buscar_porciruc(self, per_ciruc):
        sql = "{0} where per_ciruc = '{1}'".format(self.BASE_SQL, cadenas.strip(per_ciruc))
        result = self.first(sql, tupla_desc=self.BASE_TUPLA_DESC)
        try:
            if result is not None and cadenas.es_nonulo_novacio(result['per_fechanac']):
                edad = fechas.get_edad_anios(fechas.parse_cadena(result['per_fechanac']))
                result['per_edad'] = edad
        except:
            pass

        return result
Ejemplo n.º 6
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
Ejemplo n.º 7
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
        }
Ejemplo n.º 8
0
    def crear(self, form, user_crea):

        if not cadenas.es_nonulo_novacio(form['emp_ruc']):
            raise ErrorValidacionExc(u"Debe ingresar el ruc")

        # Validar que el ruc ingresado este correcto
        resvalid = TContribuyenteDao.verificar(form['emp_ruc'])
        if not resvalid:
            raise ErrorValidacionExc(u"El número de ruc ingresado es incorrecto")

        if not cadenas.es_nonulo_novacio(form['emp_razonsocial']):
            raise ErrorValidacionExc(u"Debe ingresar la razon social")

        if not cadenas.es_nonulo_novacio(form['emp_nroautorizacion']):
            raise ErrorValidacionExc(u"Debe ingresar el número de autorización")

        # Validar que el numero de autorizacion sea distinto de cero
        emp_nroautorizacion = form['emp_nroautorizacion']
        if not emp_nroautorizacion.isdigit():
            raise ErrorValidacionExc(u"El número de autorización es incorrecto debe ser solo números")
        elif int(emp_nroautorizacion) == 0:
            raise ErrorValidacionExc(u"El número de autorización debe ser distinto de cero")

        if not cadenas.es_nonulo_novacio(form['emp_fechaautorizacion']):
            raise ErrorValidacionExc(u"Debe ingresar la fecha de autorización")
        else:
            # Validar que no sean fechas posteriores a la fecha actual
            if not fechas.isvalid(form['emp_fechaautorizacion']):
                raise ErrorValidacionExc(
                    "La fecha de autorización ingresada es incorrecta verifique que se encuentre en el formato dd/mm/aaaa")

            fecha_actual = fechas.get_str_fecha_actual()

            if not fechas.es_fecha_a_mayor_fecha_b(form['emp_fechaautorizacion'], fecha_actual):
                raise ErrorValidacionExc(u"La fecha de autorización no puede estar despues de la fecha de actual")

        tempresa = TEmpresa()
        tempresa.emp_ruc = form.get("emp_ruc")
        tempresa.emp_razonsocial = form.get("emp_razonsocial")
        tempresa.emp_nombrecomercial = form.get("emp_nombrecomercial")
        tempresa.emp_fechaautorizacion = fechas.parse_cadena(form.get("emp_fechaautorizacion"))
        tempresa.emp_nroautorizacion = form.get("emp_nroautorizacion")
        self.dbsession.add(tempresa)
        self.dbsession.flush()

        tautditdao = TAuditDao(self.dbsession)
        tautditdao.crea_accion_insert(enums.TBL_EMPRESA, user_crea, tempresa.emp_id)
Ejemplo n.º 9
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
Ejemplo n.º 10
0
    def listar_citas_paciente(self, up_email):
        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_estado,
                tuserpac.up_fechacrea,
                tuserpac.up_nombres,
                tuserpac.up_celular,
                tuserpac.up_photourl,
                medico.per_nombres ||' '|| medico.per_apellidos as nombres_medico 
                from tcita cita
                join tuserpaciente tuserpac on cita.paciente_id = tuserpac.up_id  
                join tpersona medico on medico.per_id = cita.medico_id
                where tuserpac.up_email = '{0}' order by cita_fecha, cita_hora asc   
                """.format(up_email)
        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_estado', 'up_fechacrea', 'up_nombres', 'up_celular',
                      'up_photourl', 'nombres_medico')

        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
Ejemplo n.º 11
0
    def crear(self, form):

        if not cadenas.es_nonulo_novacio(form['emp_ruc']):
            raise ErrorValidacionExc(u"Debe ingresar el ruc")

        if not cadenas.es_nonulo_novacio(form['emp_razonsocial']):
            raise ErrorValidacionExc(u"Debe ingresar la razon social")

        if not cadenas.es_nonulo_novacio(form['emp_nroautorizacion']):
            raise ErrorValidacionExc(
                u"Debe ingresar el número de autorización")

        if not cadenas.es_nonulo_novacio(form['emp_fechaautorizacion']):
            raise ErrorValidacionExc(u"Debe ingresar la fecha de autorización")

        tempresa = TEmpresa()
        tempresa.emp_ruc = form.get("emp_ruc")
        tempresa.emp_razonsocial = form.get("emp_razonsocial")
        tempresa.emp_nombrecomercial = form.get("emp_nombrecomercial")
        tempresa.emp_fechaautorizacion = fechas.parse_cadena(
            form.get("emp_fechaautorizacion"))
        tempresa.emp_nroautorizacion = form.get("emp_nroautorizacion")
        self.dbsession.add(tempresa)
Ejemplo n.º 12
0
    def update(self, emp_codigo, form, user_edit):
        tempresa = self.dbsession.query(TEmpresa).filter(TEmpresa.emp_id == emp_codigo).first()

        if not cadenas.es_nonulo_novacio(form['emp_ruc']):
            raise ErrorValidacionExc(u"Debe ingresar el ruc")

        resvalid = TContribuyenteDao.verificar(form['emp_ruc'])
        if not resvalid:
            raise ErrorValidacionExc(u"El número de ruc ingresado es incorrecto")

        if not cadenas.es_nonulo_novacio(form['emp_razonsocial']):
            raise ErrorValidacionExc(u"Debe ingresar la razon social")

        # if not cadenas.es_nonulo_novacio(form['emp_nroautorizacion']):
        #     raise ErrorValidacionExc(u"Debe ingresar el número de autorización")

        if not cadenas.es_nonulo_novacio(form['emp_fechaautorizacion']):
            raise ErrorValidacionExc(u"Debe ingresar la fecha de autorización")

        tempresa_cloned = copy.copy(tempresa)

        if tempresa is not None:
            tempresa.emp_ruc = form.get("emp_ruc")
            tempresa.emp_razonsocial = form.get("emp_razonsocial")
            tempresa.emp_nombrecomercial = form.get("emp_nombrecomercial")
            tempresa.emp_fechaautorizacion = fechas.parse_cadena(form.get("emp_fechaautorizacion"))
            # tempresa.emp_nroautorizacion = form.get("emp_nroautorizacion")

            tauditdao = TAuditDao(self.dbsession)
            list_cambios = checkcambioutil.valor_cambiado(tempresa_cloned.__json__(), form)
            if list_cambios is not None and len(list_cambios) > 0:
                for row in list_cambios:
                    col = row['col']
                    valorant = row['valorant']
                    valordesp = row['valordesp']
                    tauditdao.crea_accion_update(enums.TBL_EMPRESA, col, user_edit, valorant, valordesp,
                                                 tempresa.emp_id)
Ejemplo n.º 13
0
    def crear(self, ev_fecha, ev_lugar, ev_horaini, ev_horafin, ev_nota,
              ev_publ, ev_tipo, ev_precionormal, ev_precioespecial):

        log.info('Valores para ev_horaini, ev_horafin----->')
        log.info(ev_horaini)
        log.info(ev_horafin)

        tfusayevent = TFusayEvent()
        # fechaev = fechas.parse_cadena(ev_fecha)
        # fechaev = fechas.parsedatefromisostr(ev_fecha)
        tfusayevent.ev_fecha = fechas.parse_cadena(ev_fecha)
        tfusayevent.ev_fechacrea = datetime.now()
        tfusayevent.ev_creadopor = 1
        tfusayevent.ev_lugar = ev_lugar
        tfusayevent.ev_horainicio = ev_horaini
        tfusayevent.ev_horafin = ev_horafin
        tfusayevent.ev_nota = ev_nota
        tfusayevent.ev_publicidad = ev_publ
        tfusayevent.ev_tipo = ev_tipo
        tfusayevent.ev_precionormal = ev_precionormal
        tfusayevent.ev_precioespecial = ev_precioespecial
        tfusayevent.ev_estado = 0

        self.dbsession.add(tfusayevent)
Ejemplo n.º 14
0
    def update(self, emp_codigo, form):
        tempresa = self.dbsession.query(TEmpresa).filter(
            TEmpresa.emp_id == emp_codigo).first()

        if not cadenas.es_nonulo_novacio(form['emp_ruc']):
            raise ErrorValidacionExc(u"Debe ingresar el ruc")

        if not cadenas.es_nonulo_novacio(form['emp_razonsocial']):
            raise ErrorValidacionExc(u"Debe ingresar la razon social")

        if not cadenas.es_nonulo_novacio(form['emp_nroautorizacion']):
            raise ErrorValidacionExc(
                u"Debe ingresar el número de autorización")

        if not cadenas.es_nonulo_novacio(form['emp_fechaautorizacion']):
            raise ErrorValidacionExc(u"Debe ingresar la fecha de autorización")

        if tempresa is not None:
            tempresa.emp_ruc = form.get("emp_ruc")
            tempresa.emp_razonsocial = form.get("emp_razonsocial")
            tempresa.emp_nombrecomercial = form.get("emp_nombrecomercial")
            tempresa.emp_fechaautorizacion = fechas.parse_cadena(
                form.get("emp_fechaautorizacion"))
            tempresa.emp_nroautorizacion = form.get("emp_nroautorizacion")
Ejemplo n.º 15
0
    def editar(self, aut_id, form, user_edit):

        tautorizacion = self.dbsession.query(TAutorizacion).filter(
            TAutorizacion.aut_id == aut_id).first()
        if tautorizacion is not None:

            tautorizacion_cloned = copy.copy(tautorizacion)

            if not cadenas.es_nonulo_novacio(form['aut_fechaautorizacion']):
                raise ErrorValidacionExc("Ingrese la fecha de autorización")
            if not cadenas.es_nonulo_novacio(form['aut_fechacaducidad']):
                raise ErrorValidacionExc("Ingrese la fecha de caducidad")
            if not cadenas.es_nonulo_novacio(form['aut_estab']):
                raise ErrorValidacionExc("Ingrese el establecimiento")
            """
            if not cadenas.es_nonulo_novacio(form['aut_secuencia_ini']):
                raise ErrorValidacionExc("Ingrese la secuencia inicial")
            if not cadenas.es_nonulo_novacio(form['aut_secuencia_fin']):
                raise ErrorValidacionExc("Ingrese la secuencia final")
            """
            if form.get('cnt_id') is None:
                raise ErrorValidacionExc("Debe especificar el contribuyente")

            fecha_aut_str = form.get('aut_fechaautorizacion')
            fecha_cad_str = form.get('aut_fechacaducidad')
            """
            aut_serie = form['aut_serie']
            form['aut_estab'] = aut_serie[0:3]
            form['aut_ptoemi'] = aut_serie[4:]
            """

            fecha_autorizacion = fechas.parse_cadena(fecha_aut_str)
            fecha_caducidad = fechas.parse_cadena(fecha_cad_str)

            diasvalidos = abs(fecha_caducidad - fecha_autorizacion).days
            """
            if not fechas.es_fecha_a_mayor_fecha_b(fecha_cad_str, fecha_aut_str):
                raise ErrorValidacionExc(u"La fecha de autorización no puede estar despues de la fecha de caducidad")

            if diasvalidos > 366:
                raise ErrorValidacionExc(
                    u"La fecha de caducidad no puede ser mayor a un año a partir de la fecha de autorización")
            """
            """
            secuencia_ini = int(form['aut_secuencia_ini'])
            secuencia_fin = int(form['aut_secuencia_fin'])

            if secuencia_fin <= secuencia_ini:
                raise ErrorValidacionExc(u"Valor para secuencia final incorrecto, favor verifique")
            """

            diasvalidos = abs(fecha_caducidad - fecha_autorizacion).days

            if not fechas.es_fecha_a_mayor_fecha_b(fecha_cad_str,
                                                   fecha_aut_str):
                raise ErrorValidacionExc(
                    u"La fecha de autorización no puede estar despues de la fecha de caducidad"
                )

            fecha_actual = fechas.get_str_fecha_actual()
            if fechas.es_fecha_a_mayor_fecha_b(fecha_aut_str, fecha_actual):
                raise ErrorValidacionExc(
                    u"La fecha de autorización no puede estar despues de la fecha actual"
                )

            if diasvalidos > 366:
                raise ErrorValidacionExc(
                    u"La fecha de caducidad no puede ser mayor a un año a partir de la fecha de autorización"
                )

            tautorizacion.aut_numero = form.get('aut_numero')
            tautorizacion.aut_fechaautorizacion = fecha_autorizacion
            tautorizacion.aut_fechacaducidad = fecha_caducidad
            #tautorizacion.aut_tipodoc = form.get('aut_tipodoc')
            #tautorizacion.aut_tipodoc = 0
            tautorizacion.aut_estab = form.get('aut_estab')
            # tautorizacion.aut_ptoemi = form.get('aut_ptoemi')
            tautorizacion.aut_ptoemi = ''
            # tautorizacion.aut_secuencia_ini = form.get('aut_secuencia_ini')
            # tautorizacion.aut_secuencia_fin = form.get('aut_secuencia_fin')
            tautorizacion.aut_secuencia_ini = 0
            tautorizacion.aut_secuencia_fin = 0

            tauditdao = TAuditDao(self.dbsession)
            list_cambios = checkcambioutil.valor_cambiado(
                tautorizacion_cloned.__json__(), form)
            if list_cambios is not None and len(list_cambios) > 0:
                for row in list_cambios:
                    col = row['col']
                    valorant = row['valorant']
                    valordesp = row['valordesp']
                    tauditdao.crea_accion_update(
                        logica.utils.enums.TBL_AUTORIZACIONES, col, user_edit,
                        valorant, valordesp, tautorizacion.aut_id)
Ejemplo n.º 16
0
    def crear(self, form):
        # provider = form['provider']
        # nombres = form['nombres']
        # email = form['email']
        celular = form['celular']
        serv_id = form['serv_id']
        med_id = form['med_id']
        dia = form['dia']
        hora_ini = form['hora_ini']
        # photo_url = form['photoUrl']
        # clave = form['clave']
        # clave_md5 = hashlib.md5(clave)

        # up_email = cadenas.strip(email)
        # up_pasword = ''
        # up_nombres = cadenas.strip_upper(nombres)
        up_celular = cadenas.strip_upper(celular)
        up_email = form['up_email']
        aux_paciente = self.buscar_por_email(up_email)
        if aux_paciente is None:
            raise ErrorValidacionExc(
                u'No esta registrado la dirección de correo')
            """
            up_tipo = 0
            if provider == 'GOOGLE':
                up_tipo = 2
            else:
                up_tipo = 1

            tuserpaciente = TUserPaciente()
            tuserpaciente.up_email = cadenas.strip(up_email)
            tuserpaciente.up_tipo = up_tipo
            tuserpaciente.up_estado = 0
            tuserpaciente.up_fechacrea = datetime.now()
            tuserpaciente.up_nombres = up_nombres
            tuserpaciente.up_celular = up_celular
            tuserpaciente.up_photourl = photo_url
            tuserpaciente.up_pasword = clave_md5

            self.dbsession.add(tuserpaciente)
            self.dbsession.flush()
            paciente_id = tuserpaciente.up_id
            """
        else:
            paciente_id = aux_paciente.up_id
            # aux_paciente.up_nombres = up_nombres
            if cadenas.es_nonulo_novacio(up_celular):
                aux_paciente.up_celular = up_celular
            # aux_paciente.up_photourl = photo_url
            self.dbsession.add(aux_paciente)

        # Se procede a crear la cita
        tcita = TCita()

        hora_ini_num = fechas.hora_to_num(hora_ini)
        tcita.cita_hora = hora_ini_num
        tcita.cita_fecha = fechas.parse_cadena(dia)
        tcita.cita_hora_fin = hora_ini_num + 1
        tcita.cita_serv = serv_id
        tcita.medico_id = med_id
        tcita.paciente_id = paciente_id
        tcita.cita_estado = 0

        self.dbsession.add(tcita)
Ejemplo n.º 17
0
    def crear(self, form):

        tautorizacion = TAutorizacion()

        aut_numero = form['aut_numero']
        if aut_numero is None or len(str(aut_numero).strip()) == 0:
            raise ErrorValidacionExc("Ingrese el número de autorización")
        if not cadenas.es_nonulo_novacio(form['aut_fechaautorizacion']):
            raise ErrorValidacionExc("Ingrese la fecha de autorización")
        if not cadenas.es_nonulo_novacio(form['aut_fechacaducidad']):
            raise ErrorValidacionExc("Ingrese la fecha de caducidad")
        if not cadenas.es_nonulo_novacio(form['aut_estab']):
            raise ErrorValidacionExc("Ingrese el establecimiento")
        if not cadenas.es_nonulo_novacio(form['aut_ptoemi']):
            raise ErrorValidacionExc("Ingrese el punto de emisión")
        if not cadenas.es_nonulo_novacio(form['aut_secuencia_ini']):
            raise ErrorValidacionExc("Ingrese la secuencia inicial")
        if not cadenas.es_nonulo_novacio(form['aut_secuencia_fin']):
            raise ErrorValidacionExc("Ingrese la secuencia final")
        if form.get('cnt_id') is None:
            raise ErrorValidacionExc("Debe especificar el contribuyente")

        fecha_aut_str = form.get('aut_fechaautorizacion')
        fecha_cad_str = form.get('aut_fechacaducidad')
        fecha_autorizacion = fechas.parse_cadena(fecha_aut_str)
        fecha_caducidad = fechas.parse_cadena(fecha_cad_str)

        diasvalidos = abs(fecha_caducidad - fecha_autorizacion).days

        if not fechas.es_fecha_a_mayor_fecha_b(fecha_cad_str, fecha_aut_str):
            raise ErrorValidacionExc(
                u"La fecha de autorización no puede estar despues de la fecha de caducidad"
            )

        if diasvalidos > 365:
            raise ErrorValidacionExc(
                u"La fecha de caducidad no puede ser mayor a un año a partir de la fecha de autorización"
            )

        cnt_id = int(form.get('cnt_id'))
        if self.ya_exite(cnt_id=cnt_id, aut_numero=form.get('aut_numero')):
            raise ErrorValidacionExc(
                u"La autorización nro:{0} ya ha sido registrada, ingrese otra".
                format(form.get('aut_numero')))

        secuencia_ini = int(form['aut_secuencia_ini'])
        secuencia_fin = int(form['aut_secuencia_fin'])

        if secuencia_fin <= secuencia_ini:
            raise ErrorValidacionExc(
                u"Valor para secuencia final incorrecto, favor verifique")

        tautorizacion.aut_numero = form.get('aut_numero')
        tautorizacion.aut_fechaautorizacion = fecha_autorizacion
        tautorizacion.aut_fechacaducidad = fecha_caducidad
        tautorizacion.aut_tipodoc = form.get('aut_tipodoc')
        tautorizacion.aut_estab = form.get('aut_estab')
        tautorizacion.aut_ptoemi = form.get('aut_ptoemi')
        tautorizacion.aut_secuencia_ini = form.get('aut_secuencia_ini')
        tautorizacion.aut_secuencia_fin = form.get('aut_secuencia_fin')
        tautorizacion.cnt_id = cnt_id

        self.dbsession.add(tautorizacion)
Ejemplo n.º 18
0
    def actualizar(self, per_id, form):

        tpersona = self.get_entity_byid(per_id)
        if tpersona is not None:
            if not cadenas.es_nonulo_novacio(form['per_ciruc']):
                raise ErrorValidacionExc('Ingrese el número de cédula, ruc o pasaporte')

            if not cadenas.es_nonulo_novacio(form['per_nombres']):
                raise ErrorValidacionExc('Ingrese los nombres')

            current_email = cadenas.strip(tpersona.per_email)
            per_email = cadenas.strip(form['per_email'])
            if current_email != per_email and cadenas.es_nonulo_novacio(current_email):
                if self.existe_email(per_email=form['per_email']):
                    raise ErrorValidacionExc(
                        'Ya existe una persona registrada con la dirección de correo, ingrese otra: {0}'.format(
                            form['per_email']))

            if not cadenas.es_nonulo_novacio(per_email):
                per_email = None

            per_ciruc = cadenas.strip(form['per_ciruc'])
            current_per_ciruc = cadenas.strip(tpersona.per_ciruc)
            if per_ciruc != current_per_ciruc:
                if self.existe_ciruc(per_ciruc=form['per_ciruc']):
                    raise ErrorValidacionExc(
                        'El número de ci/ruc o pasaporte {0} ya está registrado, ingrese otro'.format(
                            form['per_ciruc']))
                else:
                    tpersona.per_ciruc = per_ciruc

            tpersona.per_nombres = cadenas.strip_upper(form['per_nombres'])
            tpersona.per_apellidos = cadenas.strip_upper(form['per_apellidos'])
            tpersona.per_movil = cadenas.strip_upper(form['per_movil'])
            tpersona.per_email = per_email
            if 'per_direccion' in form:
                tpersona.per_direccion = cadenas.strip(form['per_direccion'])

            # Columnas agregadas:
            if 'per_fechanacp' in form:
                per_fechanac_txt = form['per_fechanacp']
                if cadenas.es_nonulo_novacio(per_fechanac_txt):
                    per_fechanac = fechas.parse_cadena(per_fechanac_txt)
                    tpersona.per_fechanac = per_fechanac

            elif 'per_fechanac' in form:
                per_fechanac_txt = form['per_fechanac']
                if cadenas.es_nonulo_novacio(per_fechanac_txt):
                    per_fechanac = fechas.parse_cadena(per_fechanac_txt)
                    tpersona.per_fechanac = per_fechanac

            if 'per_genero' in form:
                per_genero = form['per_genero']
                tpersona.per_genero = per_genero

            if 'per_estadocivil' in form:
                if type(form['per_estadocivil']) is dict:
                    per_estadocivil = form['per_estadocivil']['lval_id']
                else:
                    per_estadocivil = form['per_estadocivil']
                tpersona.per_estadocivil = per_estadocivil

            if 'per_lugresidencia' in form:
                if type(form['per_lugresidencia']) is dict:
                    per_lugresidencia = form['per_lugresidencia']['lug_id']
                else:
                    per_lugresidencia = form['per_lugresidencia']

                if per_lugresidencia != 0:
                    tpersona.per_lugresidencia = per_lugresidencia

            if 'per_telf' in form:
                per_telf = form['per_telf']
                tpersona.per_telf = cadenas.strip(per_telf)

            if 'per_ocupacion' in form:
                if type(form['per_ocupacion']) is dict:
                    per_ocupacion = form['per_ocupacion']['lval_id']
                else:
                    per_ocupacion = form['per_ocupacion']
                tpersona.per_ocupacion = per_ocupacion

            self.dbsession.add(tpersona)
            self.dbsession.flush()
Ejemplo n.º 19
0
    def crear(self, form, permit_ciruc_null=False):
        if not permit_ciruc_null:
            if not cadenas.es_nonulo_novacio(form['per_ciruc']):
                raise ErrorValidacionExc('Ingrese el número de cédula, ruc o pasaporte')

        per_ciruc = cadenas.strip_upper(form['per_ciruc'])
        if cadenas.es_nonulo_novacio(form['per_ciruc']):
            if self.existe_ciruc(per_ciruc=form['per_ciruc']):
                raise ErrorValidacionExc(
                    'El número de ci/ruc o pasaporte {0} ya está registrado, ingrese otro'.format(form['per_ciruc']))
        else:
            per_ciruc = None

        if not cadenas.es_nonulo_novacio(form['per_nombres']):
            raise ErrorValidacionExc('Ingrese los nombres')

        if cadenas.es_nonulo_novacio(form['per_email']):
            if self.existe_email(per_email=form['per_email']):
                raise ErrorValidacionExc(
                    'Ya existe una persona registrada con la dirección de correo: {0}'.format(form['per_email']))
        else:
            form['per_email'] = None

        tpersona = TPersona()
        tpersona.per_nombres = cadenas.strip_upper(form['per_nombres'])
        tpersona.per_apellidos = cadenas.strip_upper(form['per_apellidos'])
        tpersona.per_ciruc = per_ciruc
        # tpersona.per_direccion = cadenas.strip_upper(form['per_direccion'])
        if 'per_direccion' in form:
            tpersona.per_direccion = cadenas.strip(form['per_direccion'])

        # tpersona.per_telf = cadenas.strip_upper(form['per_telf'])
        tpersona.per_telf = ''
        tpersona.per_movil = cadenas.strip_upper(form['per_movil'])
        tpersona.per_email = cadenas.strip(form['per_email'])
        tpersona.per_fecreg = datetime.now()
        # tpersona.per_tipo = form['per_tipo']
        tpersona.per_tipo = form['per_tipo']
        # tpersona.per_lugnac = form['per_lugnac']
        tpersona.per_lugnac = 0
        # tpersona.per_nota = cadenas.strip(form['per_nota'])
        tpersona.per_nota = ''

        # Columnas agregadas:
        if 'per_fechanac' in form:
            per_fechanac_txt = form['per_fechanac']
            if cadenas.es_nonulo_novacio(per_fechanac_txt):
                per_fechanac = fechas.parse_cadena(per_fechanac_txt)
                tpersona.per_fechanac = per_fechanac

        if 'per_estadocivil' in form:
            if type(form['per_estadocivil']) is dict:
                per_estadocivil = form['per_estadocivil']['lval_id']
            else:
                per_estadocivil = form['per_estadocivil']
            tpersona.per_estadocivil = per_estadocivil

        if 'per_lugresidencia' in form:
            if type(form['per_lugresidencia']) is dict:
                per_lugresidencia = form['per_lugresidencia']['lug_id']
            else:
                per_lugresidencia = form['per_lugresidencia']

            if per_lugresidencia != 0:
                tpersona.per_lugresidencia = per_lugresidencia

        if 'per_genero' in form:
            per_genero = form['per_genero']
            tpersona.per_genero = per_genero

        if 'per_telf' in form:
            per_telf = form['per_telf']
            tpersona.per_telf = cadenas.strip(per_telf)

        if 'per_ocupacion' in form:
            if type(form['per_ocupacion']) is dict:
                per_ocupacion = form['per_ocupacion']['lval_id']
            else:
                per_ocupacion = form['per_ocupacion']
            tpersona.per_ocupacion = per_ocupacion

        self.dbsession.add(tpersona)
        self.dbsession.flush()

        return tpersona.per_id
Ejemplo n.º 20
0
    def crear(self, form, user_crea):
        """
        Crea un nuevo articulo
        :param form:
        :param user_crea:
        :param sec_id:
        :return:
        """
        codbar_auto = form['codbar_auto']
        ic_code = cadenas.strip(unicode(form['ic_code']))
        tparamdao = TParamsDao(self.dbsession)
        if codbar_auto:
            ic_code = tparamdao.get_next_sequence_codbar()

        icdp_preciocompra = form['icdp_preciocompra']
        icdp_precioventa = form['icdp_precioventa']
        icdp_precioventamin = form['icdp_precioventamin']

        icdp_grabaiva = form['icdp_grabaiva']
        if icdp_grabaiva:
            # El precio de compra y de venta se le debe quitar el iva
            # icdp_preciocompra = ivautil.redondear_precio_db(ivautil.quitar_iva(icdp_preciocompra))
            icdp_precioventa = ivautil.redondear_precio_db(
                ivautil.quitar_iva(icdp_precioventa))
            icdp_precioventamin = ivautil.redondear_precio_db(
                ivautil.quitar_iva(icdp_precioventamin))

        # Verificar si el codigo del producto ya esta registrado
        if self.existe_codbar(ic_code):
            raise ErrorValidacionExc(
                u"El código '{0}' ya está registrado, favor ingrese otro".
                format(ic_code))

        ic_nombre = cadenas.strip_upper(form['ic_nombre'])
        if self.existe_artbynombre(ic_nombre):
            raise ErrorValidacionExc(
                u"Ya existe registrado un producto o servicio con el nombre: '{0}'"
                .format(ic_nombre))

        itemconfig = TItemConfig()
        itemconfig.ic_nombre = ic_nombre
        itemconfig.ic_code = ic_code
        itemconfig.tipic_id = form['tipic_id']
        itemconfig.ic_nota = form['ic_nota']
        itemconfig.catic_id = form['catic_id']
        itemconfig.ic_usercrea = user_crea
        itemconfig.ic_fechacrea = datetime.now()

        self.dbsession.add(itemconfig)
        self.dbsession.flush()

        ic_id = itemconfig.ic_id

        titemconfigdp = TItemConfigDatosProd()
        titemconfigdp.ic_id = ic_id
        titemconfigdp.icdp_grabaiva = icdp_grabaiva

        icdp_fechacaducidad = form['icdp_fechacaducidad']
        if cadenas.es_nonulo_novacio(icdp_fechacaducidad):
            titemconfigdp.icdp_fechacaducidad = fechas.parse_cadena(
                icdp_fechacaducidad)
        else:
            titemconfigdp.icdp_fechacaducidad = None

        titemconfigdp.icdp_proveedor = form['icdp_proveedor']
        # titemconfigdp.icdp_modcontab = form['icdp_modcontab']
        titemconfigdp.icdp_modcontab = None

        titemconfigdp.icdp_preciocompra = icdp_preciocompra
        titemconfigdp.icdp_precioventa = icdp_precioventa
        titemconfigdp.icdp_precioventamin = icdp_precioventamin

        self.dbsession.add(titemconfigdp)

        if codbar_auto:
            tparamdao.update_sequence_codbar()

        return ic_id
Ejemplo n.º 21
0
    def crear(self, form, user_crea):

        tautorizacion = TAutorizacion()

        aut_numero = form['aut_numero']
        if aut_numero is None or len(str(aut_numero).strip()) == 0:
            raise ErrorValidacionExc("Ingrese el número de autorización")
        if not cadenas.es_nonulo_novacio(form['aut_fechaautorizacion']):
            raise ErrorValidacionExc("Ingrese la fecha de autorización")
        if not cadenas.es_nonulo_novacio(form['aut_fechacaducidad']):
            raise ErrorValidacionExc("Ingrese la fecha de caducidad")
        """
        if not cadenas.es_nonulo_novacio(form['aut_estab']):
            raise ErrorValidacionExc("Ingrese el establecimiento")
        if not cadenas.es_nonulo_novacio(form['aut_ptoemi']):
            raise ErrorValidacionExc("Ingrese el punto de emisión")
        """
        if not cadenas.es_nonulo_novacio(form['aut_estab']):
            raise ErrorValidacionExc("Ingrese el establecimiento")
        else:
            int_aut_estab = int(form['aut_estab'])
            if int_aut_estab == 0:
                raise ErrorValidacionExc(
                    u"El establecimiento debe ser distinto de cero")

        # if not cadenas.es_nonulo_novacio(form['aut_secuencia_ini']):
        #     raise ErrorValidacionExc("Ingrese la secuencia inicial")
        # if not cadenas.es_nonulo_novacio(form['aut_secuencia_fin']):
        #     raise ErrorValidacionExc("Ingrese la secuencia final")
        if form.get('cnt_id') is None:
            raise ErrorValidacionExc("Debe especificar el contribuyente")

        fecha_aut_str = form.get('aut_fechaautorizacion')
        fecha_cad_str = form.get('aut_fechacaducidad')
        """
        aut_serie = form['aut_serie']
        form['aut_estab'] = aut_serie[0:3]
        form['aut_ptoemi'] = aut_serie[4:]
        """

        fecha_autorizacion = fechas.parse_cadena(fecha_aut_str)
        fecha_caducidad = fechas.parse_cadena(fecha_cad_str)

        #Validar que una fecha ingresada sea correcta
        if not fechas.isvalid(fecha_aut_str):
            raise ErrorValidacionExc(
                "La fecha de autorización ingresada es incorrecta verifique que se encuentre en el formato dd/mm/aaaa"
            )

        if not fechas.isvalid(fecha_cad_str):
            raise ErrorValidacionExc(
                "La fecha de caducidad ingresada es incorrecta verifique que se encuentre en el formato dd/mm/aaaa"
            )

        #Verificacion de numero de autorizacion
        if not aut_numero.isdigit():
            raise ErrorValidacionExc(
                u"El numero de autorización ingresado es incorrecto")
        else:
            aut_numero_int = int(aut_numero)
            if aut_numero_int == 0:
                raise ErrorValidacionExc(
                    u"El número de autorización debe ser distinto de cero")

        diasvalidos = abs(fecha_caducidad - fecha_autorizacion).days

        if not fechas.es_fecha_a_mayor_fecha_b(fecha_cad_str, fecha_aut_str):
            raise ErrorValidacionExc(
                u"La fecha de autorización no puede estar despues de la fecha de caducidad"
            )

        fecha_actual = fechas.get_str_fecha_actual()
        if fechas.es_fecha_a_mayor_fecha_b(fecha_aut_str, fecha_actual):
            raise ErrorValidacionExc(
                u"La fecha de autorización no puede estar despues de la fecha actual"
            )

        if diasvalidos > 366:
            raise ErrorValidacionExc(
                u"La fecha de caducidad no puede ser mayor a un año a partir de la fecha de autorización"
            )

        cnt_id = int(form.get('cnt_id'))
        if self.ya_exite(cnt_id=cnt_id, aut_numero=form.get('aut_numero')):
            log.info(
                u"Este numero de autorizacíon ya ha sido registrado, se procede a actualizar"
            )
            return self.editar(aut_id=self.get_aut_id(
                cnt_id=cnt_id, aut_numero=form.get('aut_numero')),
                               form=form,
                               user_edit=user_crea)
            """
            raise ErrorValidacionExc(
                u"La autorización nro:{0} ya ha sido registrada, ingrese otra".format(form.get('aut_numero')))
            """
        # secuencia_ini = int(form['aut_secuencia_ini'])
        # secuencia_fin = int(form['aut_secuencia_fin'])
        # if secuencia_fin <= secuencia_ini:
        #     raise ErrorValidacionExc(u"Valor para secuencia final incorrecto, favor verifique")
        tautorizacion.aut_numero = form.get('aut_numero')
        tautorizacion.aut_fechaautorizacion = fecha_autorizacion
        tautorizacion.aut_fechacaducidad = fecha_caducidad
        # tautorizacion.aut_tipodoc = form.get('aut_tipodoc')
        tautorizacion.aut_tipodoc = 0
        tautorizacion.aut_estab = form.get('aut_estab')
        # tautorizacion.aut_ptoemi = form.get('aut_ptoemi')
        tautorizacion.aut_ptoemi = ''
        # tautorizacion.aut_secuencia_ini = form.get('aut_secuencia_ini')
        # tautorizacion.aut_secuencia_fin = form.get('aut_secuencia_fin')
        tautorizacion.aut_secuencia_ini = 0
        tautorizacion.aut_secuencia_fin = 0
        tautorizacion.cnt_id = cnt_id

        self.dbsession.add(tautorizacion)
        self.dbsession.flush()

        tautditdao = TAuditDao(self.dbsession)
        tautditdao.crea_accion_insert(logica.utils.enums.TBL_AUTORIZACIONES,
                                      user_crea, tautorizacion.aut_id)

        return tautorizacion.aut_id
Ejemplo n.º 22
0
    def registrar(self, form, usercrea):
        # 1 regstro de datos del paciente
        form_paciente = form['paciente']
        tpersonadao = TPersonaDao(self.dbsession)

        # Verificar si el paciente ya esta registrado:
        if tpersonadao.existe_ciruc(per_ciruc=form_paciente['per_ciruc']):
            per_id = form_paciente['per_id']
            tpersonadao.actualizar(per_id=per_id, form=form_paciente)
        else:
            per_id = tpersonadao.crear(form=form_paciente)

        # 2 registro de la cita medica
        datosconsulta = form['datosconsulta']

        #Verificar que se ingrese el motivo de la consulta
        if not cadenas.es_nonulo_novacio(datosconsulta['cosm_motivo']):
            raise ErrorValidacionExc(u"Debe ingresar el motivo de la consulta")

        tconsultamedica = TConsultaMedica()
        tconsultamedica.pac_id = per_id
        tconsultamedica.med_id = 0  # TODO: Se debe registrar tambien el codigo del medico al que se le va asignar la cita medica
        tconsultamedica.cosm_fechacita = datetime.now()
        tconsultamedica.cosm_fechacrea = datetime.now()
        tconsultamedica.cosm_motivo = datosconsulta['cosm_motivo']
        tconsultamedica.cosm_enfermactual = datosconsulta['cosm_enfermactual']
        tconsultamedica.cosm_hallazgoexamfis = datosconsulta[
            'cosm_hallazgoexamfis']
        tconsultamedica.cosm_exmscompl = datosconsulta['cosm_exmscompl']
        tconsultamedica.cosm_tratamiento = datosconsulta['cosm_tratamiento']
        tconsultamedica.cosm_receta = datosconsulta['cosm_receta']
        tconsultamedica.cosm_indicsreceta = datosconsulta['cosm_indicsreceta']
        tconsultamedica.cosm_recomendaciones = datosconsulta[
            'cosm_recomendaciones']

        if type(datosconsulta['cosm_diagnostico']) is dict:
            tconsultamedica.cosm_diagnostico = datosconsulta[
                'cosm_diagnostico']['cie_id']
        else:
            tconsultamedica.cosm_diagnostico = datosconsulta[
                'cosm_diagnostico']

        tconsultamedica.cosm_diagnosticoal = datosconsulta[
            'cosm_diagnosticoal']

        if 'cosm_fechaproxcita' in datosconsulta:
            cosm_fechaproxcita = datosconsulta['cosm_fechaproxcita']
            if cadenas.es_nonulo_novacio(cosm_fechaproxcita):
                cosm_fechaproxcita_parsed = fechas.parse_cadena(
                    cosm_fechaproxcita)
                tconsultamedica.cosm_fechaproxcita = cosm_fechaproxcita_parsed

        tconsultamedica.user_crea = usercrea
        self.dbsession.add(tconsultamedica)
        self.dbsession.flush()
        cosm_id = tconsultamedica.cosm_id

        # 3 Registro de antecendentes:
        # Esto se registra como lista de valores
        antecedentes = form['antecedentes']
        examsfisicos = form['examsfisicos']
        revxsistemas = form['revxsistemas']
        #diagnostico = form['diagnostico']

        self.registra_datosadc_consmedica(cosm_id, antecedentes)
        self.registra_datosadc_consmedica(cosm_id, examsfisicos)
        self.registra_datosadc_consmedica(cosm_id, revxsistemas)
        #self.registra_datosadc_consmedica(cosm_id, diagnostico)

        return u"Registrado exitósamente", cosm_id