Beispiel #1
0
    def update_nomapel(self, id_user, nomapel, user_name, roles):
        """
        Actualiza el nombre del usuario
        :param id_user:
        :param us_nomapel:
        :return:
        """

        if not cadenas.es_nonulo_novacio(nomapel):
            raise ErrorValidacionExc(
                "Debe ingresar los apellidos y nombres del usuario")

        if not cadenas.es_nonulo_novacio(user_name):
            raise ErrorValidacionExc("Debe ingresar el nombre de usuario")

        tuser = self.dbsession.query(TUser).filter(
            TUser.us_id == id_user).first()

        if tuser is not None:

            if cadenas.strip(user_name) != cadenas.strip(tuser.us_name):
                if self.existe(user_name):
                    raise ErrorValidacionExc(
                        "Ya existe una cuenta de usuario con el nombre:{0}, elija otro"
                        .format(user_name))

            tuser.us_nomapel = nomapel.upper()
            tuser.us_name = user_name

        # Registro de la matriz de roles
        tuserroldao = TUserRolDao(self.dbsession)
        tuserroldao.asociar(us_id=id_user, roles_list=roles)
Beispiel #2
0
    def resetPassword(self, id_user, password, rpassword, user_edit):
        """
        Resetea un clave de un usuario y lo pone en estado como clave temporal
        :param id_user:
        :param password:
        :param rpassword:
        :return:
        """
        tuser = self.dbsession.query(TUser).filter(
            TUser.us_id == id_user).first()

        tauditdao = TAuditDao(self.dbsession)

        if tuser is not None:
            if not cadenas.es_nonulo_novacio(password):
                raise ErrorValidacionExc("Debe ingresar la clave inicial")
            if not cadenas.es_nonulo_novacio(rpassword):
                raise ErrorValidacionExc("Ingrese la confirmación de la clave")

            tuser.us_pass = password
            tuser.us_statusclave = 0

            tauditdao.crea_accion_update(enums.TBL_USUARIOS,
                                         'us_pass',
                                         user_edit,
                                         '***',
                                         '***',
                                         tuser.us_id,
                                         aud_obs='RESETEO DE CLAVE')
Beispiel #3
0
    def editar(self, form, user_edit):
        """
        Editar la informacion de un contribuyente
        :param cnt_codigo:
        :param form:
        :return:
        """
        cnt_id = form['cnt_id']
        tcontribuyente = self.dbsession.query(TContribuyente).filter(
            TContribuyente.cnt_id == cnt_id).first()
        if tcontribuyente is not None:

            cnt_ruc = cadenas.strip(form.get('cnt_ruc'))
            if not cadenas.es_nonulo_novacio(cnt_ruc):
                raise ErrorValidacionExc("Debe ingresar el ruc")

            current_ruc = form['cnt_ruc']
            if current_ruc != tcontribuyente.cnt_ruc:
                if self.ya_existe(cnt_ruc=cnt_ruc):
                    raise ErrorValidacionExc(
                        "El contribuyente con número de ruc: {0} ya ha sido registrado"
                        .format(cnt_ruc))

            if not cadenas.es_nonulo_novacio(form['cnt_razonsocial']):
                raise ErrorValidacionExc("Ingrese la razón social")

            if not cadenas.es_nonulo_novacio(form['cnt_dirmatriz']):
                raise ErrorValidacionExc("Ingrese la dirección matriz")

            if not cadenas.es_nonulo_novacio(form['cnt_nombrecomercial']):
                raise ErrorValidacionExc("Ingrese el nombre comercial")

            #Clonamos el objeto para auditoria
            tcontribuyente_cloned = copy.copy(tcontribuyente)

            tcontribuyente.cnt_ruc = cnt_ruc
            tcontribuyente.cnt_razonsocial = form.get(
                'cnt_razonsocial').upper()
            tcontribuyente.cnt_telf = form.get('cnt_telf')
            tcontribuyente.cnt_email = form.get('cnt_email')
            tcontribuyente.cnt_dirmatriz = form.get('cnt_dirmatriz')
            tcontribuyente.cnt_clase = form.get('cnt_clase')
            tcontribuyente.cnt_nrocntespecial = form.get('cnt_nrocntespecial')
            tcontribuyente.cnt_oblcontab = form.get('cnt_oblcontab')
            tcontribuyente.cnt_nombrecomercial = form.get(
                'cnt_nombrecomercial')

        # Agregamos informacion de auditoria
        tauditdao = TAuditDao(self.dbsession)
        list_cambios = checkcambioutil.valor_cambiado(
            tcontribuyente_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_CONTRIBUYENTE, col,
                                             user_edit, valorant, valordesp,
                                             tcontribuyente.cnt_id)
Beispiel #4
0
    def update_nomapel(self, id_user, nomapel, user_name, roles, user_edit):
        """
        Actualiza el nombre del usuario
        :param id_user:
        :param us_nomapel:
        :return:
        """

        if not cadenas.es_nonulo_novacio(nomapel):
            raise ErrorValidacionExc(
                "Debe ingresar los apellidos y nombres del usuario")

        if not cadenas.es_nonulo_novacio(user_name):
            raise ErrorValidacionExc("Debe ingresar el nombre de usuario")

        tuser = self.dbsession.query(TUser).filter(
            TUser.us_id == id_user).first()

        form = {}
        form['us_nomapel'] = nomapel
        form['user_name'] = user_name

        if tuser is not None:

            tuser_cloned = copy.copy(tuser)

            if cadenas.strip(user_name) != cadenas.strip(tuser.us_name):
                if self.existe(user_name):
                    raise ErrorValidacionExc(
                        "Ya existe una cuenta de usuario con el nombre:{0}, elija otro"
                        .format(user_name))

            tuser.us_nomapel = nomapel.upper()
            tuser.us_name = user_name

            tauditdao = TAuditDao(self.dbsession)
            list_cambios = checkcambioutil.valor_cambiado(
                tuser_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_USUARIOS, col,
                                                 user_edit, valorant,
                                                 valordesp, tuser.us_id)

        # Registro de la matriz de roles
        tuserroldao = TUserRolDao(self.dbsession)
        tuserroldao.asociar(us_id=id_user,
                            roles_list=roles,
                            user_crea=user_edit)
Beispiel #5
0
    def crear_usuario(self,
                      user_name,
                      nomapel,
                      password,
                      rpassword,
                      roles=None):
        """
        Registra un nuevo usuario en el sistema
        :param user_name:
        :param password:
        :param rpassword:
        :param roles:
        :return:
        """

        if not cadenas.es_nonulo_novacio(user_name):
            raise ErrorValidacionExc("Debe ingresar el nombre de usuario")
        if not cadenas.es_nonulo_novacio(nomapel):
            raise ErrorValidacionExc(
                "Debe ingresar los apellidos y nombres del usuario")
        if not cadenas.es_nonulo_novacio(password):
            raise ErrorValidacionExc("Debe ingresar la clave inicial")
        if not cadenas.es_nonulo_novacio(rpassword):
            raise ErrorValidacionExc("Ingrese la confirmación del clave")

        if self.existe(user_name):
            raise ErrorValidacionExc(
                "Ya existe una cuenta de usuario con el nombre:{0}, elija otro"
                .format(user_name))

        if password is None or len(password.strip()) < 4:
            raise ErrorValidacionExc(
                "Por favor ingrese la clave, debe ser mínimo de 4 caracteres")

        if (password != rpassword):
            raise ErrorValidacionExc(
                "Las claves ingresadas no coinciden, favor verificar")

        tuser = TUser()
        tuser.us_name = user_name
        tuser.us_pass = password
        tuser.us_datecreated = datetime.now()
        tuser.us_status = 0  #
        tuser.us_statusclave = 0
        tuser.us_nomapel = nomapel.upper()

        self.dbsession.add(tuser)
        self.dbsession.flush()

        #Registro de la matriz de roles
        tuserroldao = TUserRolDao(self.dbsession)
        tuserroldao.asociar(us_id=tuser.us_id, roles_list=roles)
Beispiel #6
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)
Beispiel #7
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
Beispiel #8
0
    def crear(self, form, user_crea):
        tjob = TJob()

        if form['cnt_id'] == 0:
            raise ErrorValidacionExc(u'Debe especificar el contribuyente')
        if form['aut_id'] == 0:
            raise ErrorValidacionExc(u'Debe seleccionar  la autorización')

        if not cadenas.es_nonulo_novacio(form['job_ptoemi']):
            raise ErrorValidacionExc(u"Ingrese el punto de emisión")
        if not cadenas.es_nonulo_novacio(form['job_secuencia_ini']):
            raise ErrorValidacionExc(u"Ingrese la secuencia inicial")
        if not cadenas.es_nonulo_novacio(form['job_secuencia_fin']):
            raise ErrorValidacionExc(u"Ingrese la secuencia final")

        secuencia_ini = int(form['job_secuencia_ini'])
        secuencia_fin = int(form['job_secuencia_fin'])

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

        int_job_secuencia_ini = int(form['job_secuencia_ini'])
        if int_job_secuencia_ini == 0:
            raise ErrorValidacionExc(u"El valor de la secuencia inicial debe ser distinto de cero")

        #Verificar que el punto de emision sea distinto de cero
        int_job_ptoemi = int(form['job_ptoemi'])
        if int_job_ptoemi == 0:
            raise ErrorValidacionExc(u"El punto de emisión debe ser distinto de cero")

        tjob.cnt_id = form['cnt_id']
        tjob.aut_id = form['aut_id']
        tjob.job_nrocopias = form['job_nrocopias']
        tjob.job_fechacreacion = datetime.now()
        tjob.user_crea = user_crea
        tjob.job_estado = 1  # Estado Nuevo
        tjob.job_ptoemi = form['job_ptoemi']
        tjob.job_tipodoc = form['job_tipodoc']
        tjob.job_secuencia_ini = secuencia_ini
        tjob.job_secuencia_fin = secuencia_fin

        self.dbsession.add(tjob)

        self.dbsession.flush()

        return tjob.job_id
Beispiel #9
0
    def crear(self, form, user_crea):
        """
        Crea un nuevo contribuyente
        :param form:
        :return:
        """
        cnt_ruc = cadenas.strip(form.get('cnt_ruc'))
        if not cadenas.es_nonulo_novacio(cnt_ruc):
            raise ErrorValidacionExc("Debe ingresar el ruc")

        if self.ya_existe(cnt_ruc=cnt_ruc):
            raise ErrorValidacionExc(
                "El contribuyente con número de ruc: {0} ya ha sido registrado"
                .format(cnt_ruc))

        if not cadenas.es_nonulo_novacio(form['cnt_razonsocial']):
            raise ErrorValidacionExc("Ingrese la razón social")

        if not cadenas.es_nonulo_novacio(form['cnt_dirmatriz']):
            raise ErrorValidacionExc("Ingrese la dirección matriz")

        if not cadenas.es_nonulo_novacio(form['cnt_nombrecomercial']):
            raise ErrorValidacionExc("Ingrese el nombre comercial")

        tcontribuyente = TContribuyente()
        tcontribuyente.cnt_ruc = cnt_ruc
        tcontribuyente.cnt_razonsocial = form.get('cnt_razonsocial').upper()
        tcontribuyente.cnt_telf = form.get('cnt_telf')
        tcontribuyente.cnt_email = form.get('cnt_email')
        tcontribuyente.cnt_dirmatriz = form.get('cnt_dirmatriz')
        tcontribuyente.cnt_clase = form.get('cnt_clase')
        tcontribuyente.cnt_nrocntespecial = form.get('cnt_nrocntespecial')
        # tcontribuyente.cnt_oblcontab = 1 if form.get('cnt_oblcontab') else 0
        tcontribuyente.cnt_oblcontab = form.get('cnt_oblcontab')
        tcontribuyente.cnt_nombrecomercial = form.get('cnt_nombrecomercial')

        self.dbsession.add(tcontribuyente)
        self.dbsession.flush()

        # Agregar informacion de auditoria
        tautditdao = TAuditDao(self.dbsession)
        tautditdao.crea_accion_insert(enums.TBL_CONTRIBUYENTE, user_crea,
                                      tcontribuyente.cnt_id)
Beispiel #10
0
    def resetPassword(self, id_user, password, rpassword):
        """
        Resetea un clave de un usuario y lo pone en estado como clave temporal
        :param id_user:
        :param password:
        :param rpassword:
        :return:
        """
        tuser = self.dbsession.query(TUser).filter(
            TUser.us_id == id_user).first()

        if tuser is not None:
            if not cadenas.es_nonulo_novacio(password):
                raise ErrorValidacionExc("Debe ingresar la clave inicial")
            if not cadenas.es_nonulo_novacio(rpassword):
                raise ErrorValidacionExc("Ingrese la confirmación de la clave")

            tuser.us_pass = password
            tuser.us_statusclave = 0
Beispiel #11
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
Beispiel #12
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)
Beispiel #13
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)
Beispiel #14
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)
Beispiel #15
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)
Beispiel #16
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")
Beispiel #17
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)
Beispiel #18
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)
Beispiel #19
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)
    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)
Beispiel #21
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
    def editar(self, form, user_edit):
        """
        Editar la informacion de un contribuyente
        :param cnt_codigo:
        :param form:
        :return:
        """
        cnt_id = form['cnt_id']
        tcontribuyente = self.dbsession.query(TContribuyente).filter(
            TContribuyente.cnt_id == cnt_id).first()
        if tcontribuyente is not None:

            cnt_ruc = cadenas.strip(form.get('cnt_ruc'))
            if not cadenas.es_nonulo_novacio(cnt_ruc):
                raise ErrorValidacionExc("Debe ingresar el ruc")

            current_ruc = form['cnt_ruc']
            if current_ruc != tcontribuyente.cnt_ruc:
                if self.ya_existe(cnt_ruc=cnt_ruc):
                    raise ErrorValidacionExc(
                        "El contribuyente con número de ruc: {0} ya ha sido registrado"
                        .format(cnt_ruc))

            if not cadenas.es_nonulo_novacio(form['cnt_razonsocial']):
                raise ErrorValidacionExc("Ingrese la razón social")

            if not cadenas.es_nonulo_novacio(form['cnt_dirmatriz']):
                raise ErrorValidacionExc("Ingrese la dirección matriz")

            if not cadenas.es_nonulo_novacio(form['cnt_razonsocial']):
                raise ErrorValidacionExc(u"Ingrese la razón social")
            elif len(form['cnt_razonsocial'].strip()) > 100:
                raise ErrorValidacionExc(
                    u"El nombre de la razon social es muy extenso, la longitud máxima es de 100 caracteres"
                )

            if not cadenas.es_nonulo_novacio(form['cnt_dirmatriz']):
                raise ErrorValidacionExc(u"Ingrese la dirección matriz")

            # if not cadenas.es_nonulo_novacio(form['cnt_nombrecomercial']):
            #     raise ErrorValidacionExc("Ingrese el nombre comercial")

            if len(form['cnt_nombrecomercial'].strip()) > 80:
                raise ErrorValidacionExc(
                    u"El nombre comercial es muy extenso, la longitud máxima es de 80 caracteres"
                )

            if len(form['cnt_dirmatriz'].strip()) > 100:
                raise ErrorValidacionExc(
                    u"La dirección matriz es muy extenso, la longitud máxima es de 100 caracteres"
                )

            if form.get('cnt_direstab') is None:
                raise ErrorValidacionExc(
                    u"La dirección del establecimiento es requerido")
            elif len(form['cnt_direstab'].strip()) > 100:
                raise ErrorValidacionExc(
                    u"La dirección del establecimiento es muy extenso, la longitud máxima es de 100 caracteres"
                )

            # Validador de correo
            if len(form['cnt_email'].strip()) > 0:
                if not cadenas.es_correo_valido(form['cnt_email'].strip()):
                    raise ErrorValidacionExc(
                        u"La dirección de correo ingresada es incorrecta, favor verificar"
                    )
                elif len(form['cnt_email'].strip()) > 40:
                    raise ErrorValidacionExc(
                        u"La dirección de correo electrónica es muy extensa, la longitud maxima es de 40 caracteres"
                    )

            if len(form['cnt_telf'].strip()) > 40:
                raise ErrorValidacionExc(
                    u"El número de teléfono es muy extensa, la longitud maxima es de 40 caracteres"
                )

            # if not cadenas.es_nonulo_novacio(form['cnt_nombrecomercial']):
            #     raise ErrorValidacionExc("Ingrese el nombre comercial")

            # Clonamos el objeto para auditoria
            tcontribuyente_cloned = copy.copy(tcontribuyente)

            tcontribuyente.cnt_ruc = cnt_ruc
            tcontribuyente.cnt_razonsocial = form.get(
                'cnt_razonsocial').upper()
            tcontribuyente.cnt_telf = form.get('cnt_telf')
            tcontribuyente.cnt_email = form.get('cnt_email')
            tcontribuyente.cnt_dirmatriz = form.get('cnt_dirmatriz')
            tcontribuyente.cnt_clase = form.get('cnt_clase')
            tcontribuyente.cnt_nrocntespecial = form.get('cnt_nrocntespecial')
            tcontribuyente.cnt_oblcontab = form.get('cnt_oblcontab')
            tcontribuyente.cnt_nombrecomercial = form.get(
                'cnt_nombrecomercial')
            tcontribuyente.cnt_direstab = form.get('cnt_direstab')

        # Agregamos informacion de auditoria
        tauditdao = TAuditDao(self.dbsession)
        list_cambios = checkcambioutil.valor_cambiado(
            tcontribuyente_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_CONTRIBUYENTE, col,
                                             user_edit, valorant, valordesp,
                                             tcontribuyente.cnt_id)

        return cnt_id
    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)
Beispiel #24
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)
    def crear(self, form, user_crea):
        """
        Crea un nuevo contribuyente
        :param form:
        :return:
        """
        cnt_ruc = cadenas.strip(form.get('cnt_ruc'))
        if not cadenas.es_nonulo_novacio(cnt_ruc):
            raise ErrorValidacionExc("Debe ingresar el ruc")

        if not cnt_ruc.isdigit():
            raise ErrorValidacionExc("El ruc ingresado es incorrecto")

        # Logica para validacion de ruc
        resvalid = TContribuyenteDao.verificar(cnt_ruc)
        if not resvalid:
            raise ErrorValidacionExc(
                u"El número de ruc ingresado es incorrecto")

        if self.ya_existe(cnt_ruc=cnt_ruc):
            raise ErrorValidacionExc(
                u"El contribuyente con número de ruc: {0} ya ha sido registrado"
                .format(cnt_ruc))

        if not cadenas.es_nonulo_novacio(form['cnt_razonsocial']):
            raise ErrorValidacionExc(u"Ingrese la razón social")
        elif len(form['cnt_razonsocial'].strip()) > 100:
            raise ErrorValidacionExc(
                u"El nombre de la razon social es muy extenso, la longitud máxima es de 100 caracteres"
            )

        if not cadenas.es_nonulo_novacio(form['cnt_dirmatriz']):
            raise ErrorValidacionExc(u"Ingrese la dirección matriz")

        # if not cadenas.es_nonulo_novacio(form['cnt_nombrecomercial']):
        #     raise ErrorValidacionExc("Ingrese el nombre comercial")

        if len(form['cnt_nombrecomercial'].strip()) > 80:
            raise ErrorValidacionExc(
                u"El nombre comercial es muy extenso, la longitud máxima es de 80 caracteres"
            )

        if len(form['cnt_dirmatriz'].strip()) > 100:
            raise ErrorValidacionExc(
                u"La dirección matriz es muy extenso, la longitud máxima es de 100 caracteres"
            )

        if len(form['cnt_direstab'].strip()) > 100:
            raise ErrorValidacionExc(
                u"La dirección del establecimiento es muy extenso, la longitud máxima es de 100 caracteres"
            )

        #Validador de correo
        if len(form['cnt_email'].strip()) > 0:
            if not cadenas.es_correo_valido(form['cnt_email'].strip()):
                raise ErrorValidacionExc(
                    u"La dirección de correo ingresada es incorrecta, favor verificar"
                )
            elif len(form['cnt_email'].strip()) > 40:
                raise ErrorValidacionExc(
                    u"La dirección de correo electrónica es muy extensa, la longitud maxima es de 40 caracteres"
                )

        if len(form['cnt_telf'].strip()) > 40:
            raise ErrorValidacionExc(
                u"El número de teléfono es muy extensa, la longitud maxima es de 40 caracteres"
            )

        tcontribuyente = TContribuyente()
        tcontribuyente.cnt_ruc = cnt_ruc
        tcontribuyente.cnt_razonsocial = form.get('cnt_razonsocial').upper()
        tcontribuyente.cnt_telf = form.get('cnt_telf')
        tcontribuyente.cnt_email = form.get('cnt_email')
        tcontribuyente.cnt_dirmatriz = form.get('cnt_dirmatriz')
        tcontribuyente.cnt_clase = form.get('cnt_clase')
        tcontribuyente.cnt_nrocntespecial = form.get('cnt_nrocntespecial')
        # tcontribuyente.cnt_oblcontab = 1 if form.get('cnt_oblcontab') else 0
        tcontribuyente.cnt_oblcontab = form.get('cnt_oblcontab')
        tcontribuyente.cnt_nombrecomercial = form.get('cnt_nombrecomercial')
        tcontribuyente.cnt_direstab = form.get('cnt_direstab')

        self.dbsession.add(tcontribuyente)
        self.dbsession.flush()

        # Agregar informacion de auditoria
        tautditdao = TAuditDao(self.dbsession)
        tautditdao.crea_accion_insert(enums.TBL_CONTRIBUYENTE, user_crea,
                                      tcontribuyente.cnt_id)
        return tcontribuyente.cnt_id
    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
Beispiel #27
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()
Beispiel #28
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
Beispiel #29
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)
Beispiel #30
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