Advertisement
GastonPalazzo

usuario.py

Nov 25th, 2020
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.70 KB | None | 0 0
  1. # import
  2. from dba import DataBase
  3.  
  4. # class
  5. class Usuario():
  6.     bd = DataBase()
  7.     # cnstr
  8.     def __init__(self, user_id, nombre, apellido, edad, pais, ciudad, genero, tel):
  9.         self.__user_id = user_id
  10.         self.__nombre = nombre
  11.         self.__apellido = apellido
  12.         self.__edad = edad
  13.         self.__pais = pais
  14.         self.__ciudad = ciudad
  15.         self.__genero = genero
  16.         self.__tel = tel
  17.     # mthds
  18.      # gtt
  19.     def get_user_id(self):
  20.         return self.__user_id
  21.     def get_nombre(self):
  22.         return self.__nombre
  23.     def get_apellido(self):
  24.         return self.__apellido
  25.     def get_edad(self):
  26.         return self.__edad
  27.     def get_pais(self):
  28.         return self.__pais
  29.     def get_ciudad(self):
  30.         return self.__ciudad
  31.     def get_genero(self):
  32.         return self.__genero
  33.     def get_telefono(self):
  34.         return self.__tel
  35.     # stt
  36.     def set_user_id(self, new_usuarios_id):
  37.         self.__user_id = new_usuarios_id
  38.     def set_nombre(self, new_nombre):
  39.         self.__nombre = new_nombre
  40.     def set_apellido(self, new_apellido):
  41.         self.__apellido = new_apellido
  42.     def set_edad(self, new_edad):
  43.         self.__edad = new_edad
  44.     def set_pais(self, new_pais):
  45.         self.__pais = new_pais
  46.     def set_ciudad(self, new_ciudad):
  47.         self.__ciudad = new_ciudad
  48.     def set_genero(self, new_genero):
  49.         self.__genero = new_genero
  50.     def set_tel(self, new_tel):
  51.         self.__tel = new_tel
  52.     # especificos
  53.     def update_user(self, validador, update_form):
  54.         vld = validador
  55.         r, dic = vld.validar_datos_de_usuario(update_form)
  56.         if r == 0:
  57.             print('\n*DEBUG*\n', r,'\n*DEBUG*\n', dic)
  58.             if 'nombre' in dic.keys():
  59.                 self.set_nombre(dic['nombre'])
  60.             elif 'apellido' in dic.keys():
  61.                 self.set_apellido(dic['apellido'])
  62.             elif 'edad' in dic.keys():
  63.                 self.set_edad(dic['edad'])
  64.             elif 'ciudad' in dic.keys():
  65.                 qry = '''SELECT ciudades.nombre, paises.nombre
  66.                FROM ciudades
  67.                INNER JOIN paises ON (ciudades.pais_codigo = paises.codigo) AND (paises.id = %s)
  68.                WHERE ciudad_id = %s;'''
  69.                 val = (dic['pais'], dic['ciudad'], )
  70.                 self.bd.get_cursor().execute(qry, val)
  71.                 r = self.bd.get_cursor().fetchall()
  72.                 self.set_pais(r[0][1])
  73.                 self.set_ciudad(r[0][0])
  74.             elif 'genero' in dic.keys():
  75.                 self.set_genero(dic['genero'])
  76.             elif 'telefono' in dic.keys():
  77.                 self.set_tel(dic['telefono'])
  78.             # actualizando en bd
  79.             pais_temp = self.get_pais()
  80.             ciudad_temp = self.get_ciudad()
  81.             qry = '''SELECT paises.id, ciudades.ciudad_id
  82.            FROM paises
  83.            INNER JOIN ciudades
  84.            ON (paises.codigo = ciudades.pais_codigo)
  85.            AND (ciudades.nombre = %s)
  86.            WHERE paises.nombre = %s;'''
  87.             val = (self.get_ciudad(), self.get_pais())
  88.             self.bd.ejecutar(qry, val)
  89.             r = self.bd.get_cursor().fetchall()
  90.             self.set_pais(r[0][0])
  91.             self.set_ciudad(r[0][1])
  92.             self.save_user(auto=False)
  93.             print('\n[MENSAJE]: informacion de usuario actualizada')
  94.             # actualizando en tiempo de ejecucion
  95.             self.set_pais(pais_temp)
  96.             self.set_ciudad(ciudad_temp)
  97.         else:
  98.             print(f'\n[Err]: uno o mas datos no pudieron validarse ↓')
  99.             for val in dic.values():
  100.                 for i in val:
  101.                     print(f'\t{i}')
  102.     def mostrar_datos_de_usuario(self):
  103.         print(
  104.             f'\n\tDatos de usuario'+
  105.             f'\nID: {self.get_user_id()}'+
  106.             f'\nNombre: {self.get_nombre()}'+
  107.             f'\nApellido: {self.get_apellido()}'+
  108.             f'\nEdad: {self.get_edad()}'+
  109.             f'\nGenero: {self.get_genero()}'+
  110.             f'\nTel: {self.get_telefono()}'+
  111.             f'\nPais: {self.get_pais()}'+
  112.             f'\nCiudad: {self.get_ciudad()}'
  113.         )
  114.     def save_user(self, auto=True):
  115.         if auto:
  116.             self.bd.actualizar_auto_increment('usuarios', 'usuarios_id')
  117.         # value
  118.         val = [
  119.             self.get_user_id(),
  120.             self.get_nombre(),
  121.             self.get_apellido(),
  122.             self.get_edad(),
  123.             self.get_genero(),
  124.             self.get_ciudad(),
  125.             self.get_telefono()
  126.         ]
  127.         self.bd.get_cursor().callproc('save_user', val)
  128.         self.bd.get_commit()
  129.         for i in self.bd.get_cursor().stored_results():
  130.             r = str(i.fetchone()[0])
  131.         return r
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement