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)
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')
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)
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)
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)
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)
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
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
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)
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
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
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)
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)
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)
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)
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")
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)
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)
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)
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)
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
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()
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
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)
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