Esempio n. 1
0
 def actualizar(self, catic_id, nombre):
     tcatitem = self.dbsession.find(TCatItemConfig).filter(
         TCatItemConfig.catic_id == catic_id).first()
     if tcatitem is not None:
         catic_nombre = cadenas.strip_upper(tcatitem.catic_nombre)
         nombre_upper = cadenas.strip_upper(nombre)
         if catic_nombre != nombre_upper:
             if self.existe(nombre):
                 raise ErrorValidacionExc(
                     u'Ya existe una categoría con el nombre {0}, ingrese otra'
                     .format(nombre))
             else:
                 tcatitem.catic_nombre = nombre_upper
                 self.dbsession.add(tcatitem)
Esempio n. 2
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
Esempio n. 3
0
 def listar(self, filtro, sec_id):
     tgrid_dao = TGridDao(self.dbsession)
     swhere = u"ic.ic_code like '{0}%' or ic.ic_nombre like '{0}%'".format(
         cadenas.strip_upper(filtro))
     data = tgrid_dao.run_grid(grid_nombre='productos',
                               where=swhere,
                               order='ic_nombre',
                               sec_id=sec_id)
     return data
Esempio n. 4
0
    def crea_actualiza_cuenta(self, form):

        provider = form['provider']
        nombres = form['nombres']
        email = form['email']
        celular = form['celular']
        photo_url = form['photoUrl']
        clave = form['clave']
        clave_md5 = hashlib.md5(clave)

        up_email = cadenas.strip(email)
        up_nombres = cadenas.strip_upper(nombres)
        up_celular = cadenas.strip_upper(celular)

        aux_paciente = self.buscar_por_email(up_email)
        if aux_paciente is None:
            up_tipo = 0
            if provider == 'google':
                up_tipo = 2
            elif provider == 'facebook':
                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_tipo = up_tipo
            tuserpaciente.up_photourl = photo_url
            tuserpaciente.up_pasword = clave_md5

            self.dbsession.add(tuserpaciente)
            self.dbsession.flush()
        else:
            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)
Esempio n. 5
0
    def crear(self, lug_nombre, lug_parent=None):
        if not cadenas.es_nonulo_novacio(lug_nombre):
            raise ErrorValidacionExc('Debe ingresar el nombre de la ubicación')
        if self.existe(lug_nombre):
            raise ErrorValidacionExc(
                'La ubicación {0} ya esta registrado'.format(lug_nombre))

        tlugar = TLugar()
        tlugar.lug_nombre = cadenas.strip_upper(lug_nombre)
        tlugar.lug_parent = lug_parent

        self.dbsession.add(tlugar)
Esempio n. 6
0
    def crear_cuenta(self, form):
        provider = form['provider']
        nombres = form['nombres']
        email = form['email']
        celular = form['celular']
        photo_url = form['photoUrl']
        clave = cadenas.strip(form['clave'])
        clave_md5 = hashlib.md5(clave.encode()).hexdigest()

        up_email = cadenas.strip(email)
        up_nombres = cadenas.strip_upper(nombres)
        up_celular = cadenas.strip_upper(celular)

        aux_paciente = self.buscar_por_email(up_email)
        if aux_paciente is None:
            up_tipo = 0
            if provider == 'google':
                up_tipo = 2
            elif provider == 'facebook':
                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_tipo = up_tipo
            tuserpaciente.up_photourl = photo_url
            tuserpaciente.up_pasword = clave_md5

            self.dbsession.add(tuserpaciente)
            self.dbsession.flush()
        else:
            raise ErrorValidacionExc(
                u'Ya existe una cuenta registrada con el correo: {0} no se puede crear nuevamente'
                .format(up_email))
Esempio n. 7
0
    def crear(self, nombre):
        if not cadenas.es_nonulo_novacio(nombre):
            raise ErrorValidacionExc(
                u'Debe ingresar el nombre de la categoría')

        if self.existe(nombre):
            raise ErrorValidacionExc(
                u'Ya existe una categoría con el nombre {0}, ingrese otra'.
                format(nombre))

        tcategoria = TCatItemConfig()
        tcategoria.catic_nombre = cadenas.strip_upper(nombre)
        tcategoria.catic_estado = 1

        self.dbsession.add(tcategoria)
Esempio n. 8
0
    def crear(self, lug_nombre):
        if not cadenas.es_nonulo_novacio(lug_nombre) or len(
                cadenas.strip(lug_nombre)) <= 2:
            raise ErrorValidacionExc(
                u"Se debe ingresar el nombre del lugar que desea crear")

        if self.existe_lug_nombre(lug_nombre):
            raise ErrorValidacionExc(
                u"El lugar {0} ya esta registrado, no es posible registrar nuevamente"
                .format(lug_nombre))
        else:
            tlugar = TLugar()
            tlugar.lug_nombre = cadenas.strip_upper(lug_nombre)
            tlugar.lug_status = 1
            self.dbsession.add(tlugar)
Esempio n. 9
0
 def actualizar(self, lug_id, lug_nombre):
     if not cadenas.es_nonulo_novacio(lug_nombre) or len(
             cadenas.strip(lug_nombre)) <= 2:
         raise ErrorValidacionExc(
             u"Se debe ingresar el nombre del lugar que desea actualizar")
     tlugar = self.dbsession.query(TLugar).filter(
         TLugar.lug_id == lug_id).first()
     if tlugar is not None:
         lug_nombre_upper = cadenas.strip_upper(lug_nombre)
         if tlugar.lug_nombre != lug_nombre_upper:
             if self.existe_lug_nombre(lug_nombre_upper):
                 raise ErrorValidacionExc(
                     u"El lugar {0} ya esta registrado, no es actualizar este registro"
                     .format(lug_nombre_upper))
             else:
                 tlugar.lug_nombre = lug_nombre_upper
                 self.dbsession.add(tlugar)
Esempio n. 10
0
    def buscar_pornomapelci(self, filtro, solo_cedulas=True, limit=30, offsset=0):
        basesql = u"""
        select per_id,
                        per_ciruc,
                        per_genero,
                        per_nombres||' '||coalesce(per_apellidos,'') as nomapel,
                        per_lugresidencia,
                        coalesce(tlugar.lug_nombre,'') as lugresidencia
                        from tpersona
                        left join tlugar on tpersona.per_lugresidencia = tlugar.lug_id
        """
        concedula = u" coalesce(per_ciruc,'')!='' and per_id>0" if solo_cedulas else ''

        if cadenas.es_nonulo_novacio(filtro):
            palabras = cadenas.strip_upper(filtro).split()
            filtromod = []
            for cad in palabras:
                filtromod.append(u"%{0}%".format(cad))

            nombreslike = u' '.join(filtromod)
            filtrocedulas = u" per_ciruc like '{0}%'".format(cadenas.strip(filtro))

            sql = u"""{basesql}
                        where ((per_nombres||' '||per_apellidos like '{nombreslike}') or ({filtrocedulas})) and {concedula} order by 4 limit {limit} offset {offset}
                    """.format(nombreslike=nombreslike,
                               concedula=concedula,
                               limit=limit,
                               offset=offsset,
                               filtrocedulas=filtrocedulas,
                               basesql=basesql)

            tupla_desc = ('per_id', 'per_ciruc', 'per_genero', 'nomapel', 'per_lugresidencia', 'lugresidencia')
            return self.all(sql, tupla_desc)
        else:
            sql = u"""{basesql} where {concedula}
             order by 4 limit {limit} offset {offset}
            """.format(basesql=basesql, limit=limit, offset=offsset, concedula=concedula)


        print 'sql es:'
        print sql

        tupla_desc = ('per_id', 'per_ciruc', 'per_genero', 'nomapel', 'per_lugresidencia', 'lugresidencia')
        return self.all(sql, tupla_desc)
Esempio n. 11
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)
Esempio n. 12
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
Esempio n. 13
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
Esempio n. 14
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()
Esempio n. 15
0
 def existe(self, nombre_cat):
     sql = u"select count(*) as cuenta from tcatitemconfig where catic_nombre = '{0}' and catic_estado = 1 ".format(
         cadenas.strip_upper(nombre_cat))
     cuenta = self.first_col(sql, 'cuenta')
     return cuenta > 0
Esempio n. 16
0
 def existe(self, lug_nombre):
     sql = "select count(*) as cuenta from tlugar where lug_nombre = '{0}'".format(
         cadenas.strip_upper(lug_nombre))
     cuenta = self.first_col(sql, 'cuenta')
     return cuenta > 0