def actualizar(self, catic_id, nombre): tcatitem = self.dbsession.find(TCatItemConfig).filter( TCatItemConfig.catic_id == catic_id).first() if tcatitem is not None: catic_nombre = cadenas.strip_upper(tcatitem.catic_nombre) nombre_upper = cadenas.strip_upper(nombre) if catic_nombre != nombre_upper: if self.existe(nombre): raise ErrorValidacionExc( u'Ya existe una categoría con el nombre {0}, ingrese otra' .format(nombre)) else: tcatitem.catic_nombre = nombre_upper self.dbsession.add(tcatitem)
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 listar(self, filtro, sec_id): tgrid_dao = TGridDao(self.dbsession) swhere = u"ic.ic_code like '{0}%' or ic.ic_nombre like '{0}%'".format( cadenas.strip_upper(filtro)) data = tgrid_dao.run_grid(grid_nombre='productos', where=swhere, order='ic_nombre', sec_id=sec_id) return data
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, 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_cuenta(self, form): provider = form['provider'] nombres = form['nombres'] email = form['email'] celular = form['celular'] photo_url = form['photoUrl'] clave = cadenas.strip(form['clave']) clave_md5 = hashlib.md5(clave.encode()).hexdigest() up_email = cadenas.strip(email) up_nombres = cadenas.strip_upper(nombres) up_celular = cadenas.strip_upper(celular) aux_paciente = self.buscar_por_email(up_email) if aux_paciente is None: up_tipo = 0 if provider == 'google': up_tipo = 2 elif provider == 'facebook': up_tipo = 1 tuserpaciente = TUserPaciente() tuserpaciente.up_email = cadenas.strip(up_email) tuserpaciente.up_tipo = up_tipo tuserpaciente.up_estado = 0 tuserpaciente.up_fechacrea = datetime.now() tuserpaciente.up_nombres = up_nombres tuserpaciente.up_celular = up_celular tuserpaciente.up_tipo = up_tipo tuserpaciente.up_photourl = photo_url tuserpaciente.up_pasword = clave_md5 self.dbsession.add(tuserpaciente) self.dbsession.flush() else: raise ErrorValidacionExc( u'Ya existe una cuenta registrada con el correo: {0} no se puede crear nuevamente' .format(up_email))
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 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 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 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, 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 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 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 existe(self, nombre_cat): sql = u"select count(*) as cuenta from tcatitemconfig where catic_nombre = '{0}' and catic_estado = 1 ".format( cadenas.strip_upper(nombre_cat)) cuenta = self.first_col(sql, 'cuenta') return cuenta > 0
def existe(self, lug_nombre): sql = "select count(*) as cuenta from tlugar where lug_nombre = '{0}'".format( cadenas.strip_upper(lug_nombre)) cuenta = self.first_col(sql, 'cuenta') return cuenta > 0