class Contacto: def __init__(self): self.id = 0 self.fullname = "" self.phone = "" self.mail = "" self.db = DBConn() def nuevo_contacto(self): query = 'INSERT INTO contacts (fullname, phone, email) VALUES (%s, %s, %s)' valores = (self.fullname, self.phone, self.email)) self.db.ejecutar(query, valores) def elimina_contacto(self): query = 'DELETE FROM contacts WHERE id= %s' valores = (self.id) self.db.ejecutar(query, valores) def modifica_contacto(self): query = 'UPDATE contacts SET fullname = %s, phone = %s, email = %s WHERE id = %s' valores = (self.fullname, self.phone, self.mail, self.id) self.db.ejecutar(query, valores) def leer_contactos(self): query = 'SELECT * FROM contacts' self.db.ejecutar(query) def leer_contacto(self): query = 'SELECT * FROM contacts WHERE id= %s' valores = (self.id) self.db.ejecutar(query, valores)
class ModeloEnvios: def __init__(self): self.ecam_anio = 0 self.ecam_num = 0 self.env_num = 0 self.env_fecha = "0000-00-00" self.env_monto = 0.0 self.db = DBConn() def create(self): query = "CALL agregarEnvio(%s, %s, %s, %s, %s)" values = (self.ecam_anio, self.ecam_num, self.env_num, self.env_fecha, self.env_monto) return self.db.ejecutar(query, values) def update(self): query = "CALL modificarEnvio(%s, %s, %s, %s, %s)" values = (self.ecam_anio, self.ecam_num, self.env_num, self.env_fecha, self.env_monto) return self.db.ejecutar(query, values) def delete(self): query = "CALL eliminarEnvio(%s, %s, %s)" values = (self.ecam_anio, self.ecam_num, self.env_num) return self.db.ejecutar(query, values) def read_all(self): query = "SELECT * FROM envios WHERE ecam_anio = %s AND ecam_num = %s" values = (self.ecam_anio, self.ecam_num) return self.db.ejecutar(query, values) def last_deposit(self): query = "SELECT ultimoDeposito(%s, %s);" values = (self.ecam_anio, self.ecam_num) return self.db.ejecutar(query, values)[0][0]
class Pais: def __init__(self): self.idpersona = 0 self.nombre = '' self.apellido = '' self.db = DBConn() def create(self): """Crear un nuevo registro""" query = "INSERT INTO persona (idpersona, nombre, apellido) VALUES (null, %s, %s)" values = (self.nombre, self.apellido) self.db.ejecutar(query, values) def update(self): """Actualizar un registro existente""" query = "UPDATE paises SET pais = %s, abbr = %s WHERE id = %s" values = (self.pais, self.abbr, self.id) return self.db.ejecutar(query, values) def read_all(self): """Leer todos los registros""" query = "SELECT id, pais, abbr FROM paises" return self.db.ejecutar(query) def read(self): query = "SELECT id, pais, abbr FROM paises WHERE id = %d" values = (self.id) return self.db.ejecutar(query, values) def delete(self): """Elimina uno o todos los registros""" query = "DELETE FROM paises WHERE id = %s" values = self.id return self.db.ejecutar(query, values)
class Pelicula: def __init__(self, ID=None, nombre='' , director='' , genero ='', anio='', descripcion =''): self.nombre = nombre self.director = director self.genero = genero self.anio = anio self.descripcion = descripcion self.db = DBConn() if ID is None: self.ID = self.getPeliculaID() else: self.ID = ID def getPeliculaID(self): """ Obtener el ID del registro de la BD si existe """ query = "SELECT ID FROM Peliculas WHERE Nombre = %s and Director = %s and Genero = %s and Anio = %s AND Descripcion = %s" values = (self.nombre, self.director, self.genero, self.anio, self.descripcion) resultado = self.db.ejecutar(query, values) if resultado: return resultado[0][0] else: return None def create(self): """Insertar un nuevo registro""" if self.ID is None: query = "INSERT INTO Peliculas (Nombre, Director, Genero, Anio, Descripcion) VALUES (%s, %s, %s, %s, %s)" values = (self.nombre, self.director, self.genero, self.anio, self.descripcion) self.db.ejecutar(query, values) # asignar un ID al objeto self.ID = self.getPeliculaID() def update(self): """Actualizar un registro existente""" query = "UPDATE Peliculas SET Nombre = %s, Director = %s, Genero = %s, Anio= %s, Descripcion= %s WHERE ID = %s" values = (self.nombre, self.director, self.genero, self.anio, self.descripcion, self.ID) return self.db.ejecutar(query, values) def read(self): """ Leer uno o varios registros """ query = "SELECT * FROM Peliculas WHERE Nombre LIKE %s AND Director LIKE %s AND Genero LIKE %s AND Anio LIKE %s" values = ('%'+self.nombre+'%', '%'+self.director+'%', '%'+self.genero+'%', '%'+self.anio+'%') return self.db.ejecutar(query, values) def delete(self): """Elimina uno de los registros""" query = "DELETE FROM Peliculas WHERE ID = %s" values = self.ID return self.db.ejecutar(query, values) def read_all(self): """Leer todos los registros""" query = "SELECT * FROM Peliculas WHERE 1" return self.db.ejecutar(query)
class ModeloGastosVarios: def __init__(self): self.icam_anio = 0 self.icam_num = 0 self.i_numero = 0 self.i_fecha = "" self.i_monto = 0.0 self.i_concepto = "" self.db = DBConn() def create(self): query = "Call agregarImprevisto(%s, %s, %s, %s, %s, %s)" values = (self.icam_anio, self.icam_num, self.i_numero, self.i_fecha, self.i_monto, self.i_concepto) return self.db.ejecutar(query, values) def update(self): query = "Call modificarImprevisto(%s, %s, %s, %s, %s, %s)" values = (self.icam_anio, self.icam_num, self.i_numero, self.i_fecha, self.i_monto, self.i_concepto) return self.db.ejecutar(query, values) def delete(self): query = "Call eliminarImprevisto(%s, %s, %s)" values = (self.icam_anio, self.icam_num, self.i_numero) return self.db.ejecutar(query, values) def read_all(self): query = "SELECT * FROM imprevistos WHERE icam_anio = %s AND icam_num = %s;" values = (self.icam_anio, self.icam_num) return self.db.ejecutar(query, values) def last_spending(self): query = "SELECT ultimoImprevisto(%s, %s)" values = (self.icam_anio, self.icam_num) return self.db.ejecutar(query, values)[0][0]
class ModeloHistoriales: def __init__(self): self.db = DBConn() def get_history_costumer_c(self, codigo, anio_ini, num_ini, anio_fin, num_fin): 'Retorna una tabla con el historial de un clientes en un periodo dado.' query = "SELECT cam_anio, cam_num, art_deuda, art_entregado, art_efectivo, art_boleta\ FROM campanias\ INNER JOIN articulos ON acam_anio = cam_anio AND acam_num = cam_num\ INNER JOIN clientes ON acli_codigo = cli_codigo\ WHERE cli_codigo = %s AND cam_anio BETWEEN %s AND %s \ AND cam_num BETWEEN %s AND %s;" values = (codigo, anio_ini, anio_fin, num_ini, num_fin) return self.db.ejecutar(query, values)
class ModeloListados: def __init__(self): self.cam_anio = 0 # 4 digitos self.cam_num = 0 # 4 digitos self.numero = 0 # 4 digitos self.fecha = '' self.comentario = '' self.db = DBConn() def create(self): query = "CALL agregarListado(%s, %s, %s, %s, %s)" values = (self.cam_anio, self.cam_num, self.numero, self.fecha, self.comentario) return self.db.ejecutar(query, values) def update(self): query = "CALL actualizarListado(%s, %s, %s, %s)" values = (self.cam_anio, self.cam_num, self.numero, self.comentario) return self.db.ejecutar(query, values) def delete(self): query = "CALL eliminarListado(%s, %s, %s)" values = (self.cam_anio, self.cam_num, self.numero) return self.db.ejecutar(query, values) def read(self): query = "SELECT * FROM listados WHERE lcam_anio = %s AND lcam_num = %s AND lis_numero = %s" values = (self.cam_anio, self.cam_num, self.numero) tabla = self.db.ejecutar(query, values) if tabla: listado = { 'numero': tabla[0][2], 'fecha': self.date_format(tabla[0][3]), 'comentario': tabla[0][4] } else: listado = None return listado def read_all(self): query = "SELECT * FROM listados WHERE lcam_anio = %s AND lcam_num = %s" values = (self.cam_anio, self.cam_num) return self.db.ejecutar(query, values) def count_list(self): query = 'SELECT cantidadListados(%s, %s)' values = (self.cam_anio, self.cam_num) cant = self.db.ejecutar(query, values) return cant[0][0] def date_format(self, s): s = str(s) l = s.split("-") l[0], l[2] = l[2], l[0] return "-".join(l)
class ModeloTiposUsuario: def __init__(self): self.tipo = "" self.descripcion = "" self.estado = 1 self.db = DBConn() def read(self): query = "SELECT * FROM tipos_usuario WHERE tusu_tipo = %s AND tusu_estado = 1" value = (self.tipo) dato = self.db.ejecutar(query, value) resp = { 'tipo': dato[0][0], 'descripcion': dato[0][1], 'estado': dato[0][2] } return resp
class Persona: def __init__(self): self.idpersona = '' self.nombre = '' self.apellido = '' self.dni = 0 self.fecha_nacimiento = '' self.db = DBConn() def create(self): """Crear un nuevo registro""" query = "INSERT INTO persona (idpersona, nombre, apellido, dni) VALUES (null, %s, %s, %s)" values = (self.nombre, self.apellido, self.dni) self.db.ejecutar(query, values) def update(self): """Actualizar un registro existente""" query = "UPDATE persona SET nombre = %s, apellido = %s, dni = %s WHERE idpersona = %s" values = (self.nombre, self.apellido, self.dni, self.idpersona) return self.db.ejecutar(query, values) def read_all(self): """Leer todos los registros""" query = "SELECT idpersona, nombre , apellido , dni FROM persona" return self.db.ejecutar(query) def read(self): query = "SELECT idpersona, nombre, apellido, dni FROM persona WHERE idpersona = %s" values = (self.idpersona) return self.db.ejecutar(query, values) def delete_roto(self): """Elimina uno o todos los registros""" query = "DELETE FROM persona WHERE idpersona = %d" values = int(self.idpersona) return self.db.ejecutar(query, values) def delete(self): """Elimina uno o todos los registros""" query = 'DELETE FROM persona WHERE idpersona = ' + str(self.idpersona) #values = self.idpersona #return self.db.ejecutar(query, values) return self.db.ejecutar(query)
class Cliente: def __init__(self): self.dni = '' self.nombre = '' self.apellidos = '' self.genero = '' self.direccion = '' self.fNacimiento = '' self.codPostal = '' self.db = DBConn() ##OK## def create(self): """Crear un nuevo registro""" query = "INSERT INTO Clientes (DNI, Nombre, Apellidos, Género, Dirección, FNacimiento, CódigoPostal) VALUES (%s, %s, %s, %s, %s, %s, %s)" values = (self.dni, self.nombre, self.apellidos, self.genero, self.direccion, self.fNacimiento, self.codPostal) self.db.ejecutar(query, values) def update(self): """Actualizar un registro existente""" query = "UPDATE Clientes SET Nombre = %s, Apellidos = %s, Género = %s, Dirección = %s, FNacimiento = %s, CódigoPostal = %s WHERE DNI = %s" values = (self.nombre, self.apellidos, self.genero, self.direccion, self.fNacimiento, self.codPostal, self.dni) return self.db.ejecutar(query, values) def read_all(self): """Leer todos los registros""" query = "SELECT DNI, Nombre, Apellidos, Género, Dirección, FNacimiento, CódigoPostal FROM Clientes" return self.db.ejecutar(query) def read(self): query = "SELECT DNI" values = (self.dni) return self.db.ejecutar(query, values) def delete(self): """Elimina uno o todos los registros""" query = "DELETE FROM Clientes WHERE DNI = %s" values = self.dni return self.db.ejecutar(query, values)
class ModeloClientes: def __init__(self): self.codigo = "" self.apenom = "" self.zona = "" self.domicilio = "" self.telefonos = "" self.barrio = "" self.localidad = "" self.seccion = "" self.descripcion = "" self.referencia = 0 # 0: Sale a reparto; 1: R/D; 2: N/S self.crut_id = 0 self.orden = 0 self.estado = 0 self.alta = "" self.baja = "" self.db = DBConn() def __str__(self): return str((self.codigo, self.apenom, self.domicilio, self.barrio, self.localidad, self.crut_id, self.orden)) def initialize(self): self.codigo = "" self.apenom = "" self.zona = "" self.domicilio = "" self.barrio = "" self.localidad = "" self.seccion = "" self.descripcion = "" self.telefonos = "" def create(self): query = "CALL insertarCliente(%s, %s, %s, %s, %s, %s, %s, %s, %s);" values = (self.codigo, self.apenom, self.domicilio, self.telefonos, self.barrio, self.localidad, self.seccion, self.zona, self.descripcion) return self.db.ejecutar(query, values) def create_short(self): query = "CALL insertarCliente2(%s)" values = (self.codigo) return self.db.ejecutar(query, values) def delete(self): query = "CALL eliminarCliente(%s)" values = (self.codigo) return self.db.ejecutar(query, values) def update(self): query = "CALL actualizarCliente(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" values = (self.codigo, self.apenom, self.domicilio, self.telefonos, self.barrio, self.localidad, self.seccion, self.zona, self.descripcion, self.referencia, self.crut_id, self.orden) return self.db.ejecutar(query, values) def new_update(self): if self.apenom: query = "UPDATE clientes SET cli_apenom=%s WHERE cli_codigo=%s;" % (self.apenom, self.codigo) self.db.ejecutar(query) if self.domicilio: query = "UPDATE clientes SET cli_domicilio=%s WHERE cli_codigo=%s;" % (self.domicilio, self.codigo) self.db.ejecutar(query) if self.telefonos: query = "UPDATE clientes SET cli_telefono=%s WHERE cli_codigo=%s;" % (self.telefonos, self.codigo) self.db.ejecutar(query) if self.barrio: query = "UPDATE clientes SET cli_barrio=%s WHERE cli_codigo=%s;" % (self.barrio, self.codigo) self.db.ejecutar(query) if self.localidad: query = "UPDATE clientes SET cli_localidad=%s WHERE cli_codigo=%s;" values = (self.localidad, self.codigo) self.db.ejecutar(query, values) if self.seccion: query = "UPDATE clientes SET cli_seccion=%s WHERE cli_codigo=%s;" % (self.seccion, self.codigo) self.db.ejecutar(query) if self.zona: query = "UPDATE clientes SET cli_zona=%s WHERE cli_codigo=%s;" % (self.zona, self.codigo) self.db.ejecutar(query) if self.descripcion: query = "UPDATE clientes SET cli_descripcion=%s WHERE cli_codigo=%s;" % (self.descripcion, self.codigo) self.db.ejecutar(query) if self.referencia: query = "UPDATE clientes SET cli_referencia=%s WHERE cli_codigo=%s;" % (self.referencia, self.codigo) self.db.ejecutar(query) def read_all_for_code(self): query = "SELECT cli_codigo, cli_apenom, cli_domicilio FROM clientes WHERE cli_estado = 1 AND cli_codigo LIKE %s" value = (self.codigo+"%") return self.db.ejecutar(query, value) def read_all_for_name(self): query = "SELECT cli_codigo, cli_apenom, cli_domicilio FROM clientes WHERE cli_estado = 1 AND (SELECT locate(%s, cli_apenom))<>0" value = (self.apenom) return self.db.ejecutar(query, value) def read(self): query = "SELECT cli_codigo, cli_apenom, cli_zona, cli_domicilio, cli_telefono, cli_barrio, cli_localidad, cli_seccion, cli_descripcion, cli_referencia, crut_id, cli_orden, cli_estado, cli_alta, cli_baja\ FROM clientes\ WHERE cli_codigo = %s" values = (self.codigo) tabla = self.db.ejecutar(query, values) resultado = {'codigo': tabla[0][0], 'nombre': tabla[0][1], 'zona': tabla[0][2], 'domicilio': tabla[0][3], 'telefonos': tabla[0][4], 'barrio': tabla[0][5], 'localidad': tabla[0][6], 'seccion': tabla[0][7], 'descripcion': tabla[0][8], 'referencia': tabla[0][9], 'ruta_id': tabla[0][10], 'orden': tabla[0][11], 'estado': tabla[0][12], 'alta': tabla[0][13], 'baja': tabla[0][14]} return resultado def read_with_ruta(self): query = "SELECT cli_codigo, cli_apenom, cli_zona, cli_domicilio, cli_telefono, cli_barrio, cli_localidad, cli_seccion, cli_descripcion, cli_referencia, crut_id, rut_nombre, cli_orden, cli_estado, cli_alta, cli_baja\ FROM clientes INNER JOIN rutas ON crut_id = rut_id\ WHERE cli_codigo = %s" values = (self.codigo) tabla = self.db.ejecutar(query, values) resultado = {'codigo': tabla[0][0], 'nombre': tabla[0][1], 'zona': tabla[0][2], 'domicilio': tabla[0][3], 'telefonos': tabla[0][4], 'barrio': tabla[0][5], 'localidad': tabla[0][6], 'seccion': tabla[0][7], 'descripcion': tabla[0][8], 'referencia': tabla[0][9], 'ruta_id': tabla[0][10], 'ruta_nombre': tabla[0][11], 'orden': tabla[0][12], 'estado': tabla[0][13], 'alta': tabla[0][14], 'baja': tabla[0][15]} return resultado def exist(self): query = "SELECT existeCliente(%s)" value = (self.codigo) return self.db.ejecutar(query, value)[0][0] == 1 def actualizar_orden(self): query = 'UPDATE Clientes SET cli_orden = %s WHERE cli_codigo = %s;' values = (self.orden, self.codigo) return self.db.ejecutar(query, values)
class ModeloArticulos: def __init__(self): self.cam_anio = 0 self.cam_num = 0 self.lis_numero = 0 self.cli_codigo = '' self.deuda = 0.0 self.cant = 0 # De 0 a 99 self.camp = "" self.entregado = '0000/00/00' #0000/00/00: No entregado self.forma_pago = 0 #0: No pagado; 1:Efectivo; 2:Boleta; 3:Oficina self.medio_entr = 0 #0; 1:Caja; 2:Envio self.rebote = "#$NINGUNO$#" self.db = DBConn() def create(self): 'Registra una nuevo articulo en la tabla Articulos.' query = "CALL agregarArticulo(%s, %s, %s, %s, %s, %s);" values = (self.cam_anio, self.cam_num, self.lis_numero, self.cli_codigo, self.deuda, self.camp) return self.db.ejecutar(query, values) def update(self): 'Modifica un articulo de la tabla Articulos.' query = "Call actualizarArticulo(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s);" values = (self.cam_anio, self.cam_num, self.lis_numero, self.cli_codigo, self.deuda, self.camp, self.entregado, self.forma_pago, self.medio_entr, self.rebote) return self.db.ejecutar(query, values) def updateStock(self): query = "CALL actualizarStock(%s, %s, %s, %s);" values = (self.cam_anio, self.cam_num, self.cli_codigo, self.cant) return self.db.ejecutar(query, values) def exist(self): query = "SELECT COUNT(*) FROM articulos WHERE acam_anio = %s AND acam_num = %s AND acli_codigo = %s;" values = (self.cam_anio, self.cam_num, self.cli_codigo) return self.db.ejecutar(query, values)[0][0] != 0 def read(self): """Retorna un registro de articulo.""" query = "SELECT acam_anio, acam_num, alis_numero, acli_codigo, art_deuda, art_camp, art_entregado, art_forma_pago, art_medio_entr, art_rebote, cli_apenom, cli_zona FROM articulos \ INNER JOIN clientes ON acli_codigo = cli_codigo\ WHERE acam_anio = %s AND acam_num = %s AND acli_codigo = %s " values = (self.cam_anio, self.cam_num, self.cli_codigo) tabla = self.db.ejecutar(query, values) resultado = {} if tabla != (): resultado['anio'] = tabla[0][0] resultado['num'] = tabla[0][1] resultado['lis'] = tabla[0][2] resultado['codigo'] = tabla[0][3] resultado['deuda'] = tabla[0][4] resultado['campania'] = tabla[0][5] resultado['entregado'] = tabla[0][6] resultado['forma_pago'] = tabla[0][7] resultado['medio_entr'] = tabla[0][8] resultado['rebote'] = tabla[0][9] resultado['nombre'] = tabla[0][10] resultado['zona'] = tabla[0][11] return resultado def result_campaign(self): values = (self.cam_anio, self.cam_num) resultado = {} query = "SELECT cantArticulosCampania(%s, %s);" resultado["cantArticulosCampania"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoEntregados(%s, %s);" resultado["cantArticulosNoEntregados"] = self.db.ejecutar( query, values)[0][0] query = "SELECT cantArticulosBoletas(%s, %s);" resultado["cantArticulosBoletas"] = self.db.ejecutar(query, values)[0][0] # Efectivo query = "SELECT cantArticulosEntregadosEfectivo(%s, %s);" resultado["entregadosEfectivo"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoEntregadosEfectivo(%s, %s);" resultado["noEntregadosEfectivo"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosCobradosEfectivo(%s, %s);" resultado["cobradosEfectivo"] = self.db.ejecutar(query, values)[0][0] # Boletas query = "SELECT cantArticulosEntregadosBoleta(%s, %s);" resultado["entregadosBoleta"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoEntregadosBoleta(%s, %s);" resultado["noEntregadosBoleta"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosCobradosBoleta(%s, %s);" resultado["cobradosBoleta"] = self.db.ejecutar(query, values)[0][0] # Recibo oficina query = "SELECT cantArticulosEntregadosOficina(%s, %s);" resultado["entregadosOficina"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoEntregadosOficina(%s, %s);" resultado["noEntregadosOficina"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosCobradosOficina(%s, %s);" resultado["cobradosOficina"] = self.db.ejecutar(query, values)[0][0] # No cobrados query = "SELECT cantArticulosEntregadosNoCobrados(%s, %s);" resultado["entregadosNoCobrados"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoEntregadosNoCobrados(%s, %s);" resultado["noEntregadosNoCobrados"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoCobrados(%s, %s);" resultado["noCobrados"] = self.db.ejecutar(query, values)[0][0] # Valores Articulos query = "SELECT valArticulosCampania(%s, %s);" resultado["valArticulosCampania"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosNoEntregados(%s, %s);" resultado["valArticulosNoEntregados"] = self.db.ejecutar( query, values)[0][0] query = "SELECT valArticulosBoletas(%s, %s);" resultado["valArticulosBoletas"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosEntregadosNoCobrados(%s, %s);" resultado["valEntregadosNoCobrados"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosNoEntregadosNoCobrados(%s, %s);" resultado["valNoEntregadosNoCobrados"] = self.db.ejecutar( query, values)[0][0] query = "SELECT valArticulosNoCobrados(%s, %s);" resultado["valNoCobrados"] = self.db.ejecutar(query, values)[0][0] # efectivo query = "SELECT valArticulosEntregadosEfectivo(%s, %s);" resultado["valEntregadosEfectivo"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosNoEntregadosEfectivo(%s, %s);" resultado["valNoEntregadosEfectivo"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosEfectivo(%s, %s);" resultado["valEfectivo"] = self.db.ejecutar(query, values)[0][0] # boleta query = "SELECT valArticulosEntregadosBoleta(%s, %s);" resultado["valEntregadosBoleta"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosNoEntregadosBoleta(%s, %s);" resultado["valNoEntregadosBoleta"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosBoleta(%s, %s);" resultado["valBoleta"] = self.db.ejecutar(query, values)[0][0] # oficina query = "SELECT valArticulosEntregadosOficina(%s, %s);" resultado["valEntregadosOficina"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosNoEntregadosOficina(%s, %s);" resultado["valNoEntregadosOficina"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosOficina(%s, %s);" resultado["valOficina"] = self.db.ejecutar(query, values)[0][0] return resultado def obtenerContenidoCampania(self): query = "SELECT cli_zona, cli_codigo, cli_localidad, art_camp, art_deuda, art_entregado, art_forma_pago \ FROM articulos INNER JOIN clientes ON cli_codigo = acli_codigo\ WHERE acam_anio = %s AND acam_num = %s\ ORDER BY 2;" values = (self.cam_anio, self.cam_num) return self.db.ejecutar(query, values) def listarCobradosEfectivo(self): "Este modulo retorna una ista de articulos, cobrados en efectivo." query = "SELECT cli_codigo, cli_apenom, cli_seccion, cli_telefono, art_camp, art_deuda, cli_barrio, cli_localidad \ FROM clientes INNER JOIN articulos ON acli_codigo = cli_codigo\ WHERE acam_anio = %s AND acam_num = %s AND art_forma_pago = 1;" values = (self.cam_anio, self.cam_num) return self.db.ejecutar(query, values) def listarCobradosEfectivoNoEntregados(self): "Este modulo retorna una lista de articulos cobrados en efectivo, pero no entregados." query = "SELECT cli_codigo, cli_apenom, cli_seccion, cli_telefono, art_camp, art_deuda, cli_barrio, cli_localidad \ FROM clientes INNER JOIN articulos ON acli_codigo = cli_codigo\ WHERE acam_anio = %s AND acam_num = %s AND art_forma_pago = 1 AND art_entregado = 0000-00-00;" values = (self.cam_anio, self.cam_num) return self.db.ejecutar(query, values) def listarCobradosBoleta(self): query = "SELECT cli_codigo, cli_apenom, cli_seccion, cli_telefono, art_camp, art_deuda, cli_barrio, cli_localidad \ FROM clientes INNER JOIN articulos ON acli_codigo = cli_codigo\ WHERE acam_anio = %s AND acam_num = %s AND art_forma_pago = 2;" values = (self.cam_anio, self.cam_num) return self.db.ejecutar(query, values) def listarCobradosRecibo(self): query = "SELECT cli_codigo, cli_apenom, cli_seccion, cli_telefono, art_camp, art_deuda, cli_barrio, cli_localidad \ FROM clientes INNER JOIN articulos ON acli_codigo = cli_codigo\ WHERE acam_anio = %s AND acam_num = %s AND art_forma_pago = 3;" values = (self.cam_anio, self.cam_num) return self.db.ejecutar(query, values) def listarNoCobradosNoEntregados(self): "Este modulo retorna una lista de articulos, no cobrados y no entregados (Desmantelado)" query = "SELECT cli_codigo, art_cant, cli_apenom, cli_seccion, cli_telefono, art_camp, art_deuda, cli_barrio, cli_localidad \ FROM clientes INNER JOIN articulos ON acli_codigo = cli_codigo\ WHERE acam_anio = %s AND acam_num = %s AND art_forma_pago = 0 AND art_entregado = 0000-00-00\ ORDER BY 1;" values = (self.cam_anio, self.cam_num) return self.db.ejecutar(query, values) def listarNoCobradosEntregados(self): "Este modulo retorna una lista de articulos, no cobrados pero entregados" query = "SELECT cli_codigo, cli_apenom, cli_seccion, cli_telefono, art_camp, art_deuda, cli_barrio, cli_localidad \ FROM clientes INNER JOIN articulos ON acli_codigo = cli_codigo\ WHERE acam_anio = %s AND acam_num = %s AND art_forma_pago = 0 AND art_entregado <> 0000-00-00;" values = (self.cam_anio, self.cam_num) return self.db.ejecutar(query, values) def articulo_pagado(self): query = 'SELECT articuloPagado(%s, %s, %s);' values = (self.cam_anio, self.cam_num, self.cli_codigo) return self.db.ejecutar(query, values)[0][0] def articulo_entregado(self): query = 'SELECT articuloEntregado(%s, %s, %s);' values = (self.cam_anio, self.cam_num, self.cli_codigo) return self.db.ejecutar(query, values)[0][0] def historialCliente(self, campanias, cod): historial = [] for camp in campanias: query = "SELECT art_rebote FROM articulos WHERE acam_anio = %s AND acam_num = %s AND acli_codigo = %s;" values = (camp[0], camp[1], cod) h = self.db.ejecutar(query, values) if len(h) != 0: historial.append(h[0][0]) else: historial.append("x") return historial def historial(self, rango): query = "SELECT historial(%s, %s, %s, %s);" values = (rango, self.cam_anio, self.cam_num, self.cli_codigo) return self.db.ejecutar(query, values)[0][0]
class ModeloArticulos: def __init__(self): self.cam_anio = 0 self.cam_num = 0 self.lis_numero = 0 self.cli_codigo = '' self.cli_apenom = '' self.deuda = 0.0 self.camp = "" self.entregado = '0000/00/00' self.forma_pago = 0 #0: No pagado; 1:Efectivo; 2:Boleta; 3:Oficina self.medio_entr = 0 #0; 1:Caja; 2:Envio self.rebote = "#$NINGUNO$#" self.db = DBConn() def create(self): 'Registra una nuevo articulo en la tabla Articulos.' query = "CALL agregarArticulo(%s, %s, %s, %s, %s, %s);" values = (self.cam_anio, self.cam_num, self.lis_numero, self.cli_codigo, self.deuda, self.camp) return self.db.ejecutar(query, values) def update(self): 'Modifica un articulo de la tabla Articulos.' query = "Call actualizarArticulo(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s);" values = (self.cam_anio, self.cam_num, self.lis_numero, self.cli_codigo, self.deuda, self.camp, self.entregado, self.forma_pago, self.medio_entr, self.rebote) return self.db.ejecutar(query, values) def exist(self): query = "SELECT COUNT(*) FROM articulos WHERE acam_anio = %s AND acam_num = %s AND acli_codigo = %s;" values = (self.cam_anio, self.cam_num, self.cli_codigo) return self.db.ejecutar(query, values)[0][0] != 0 def read_for_name(self): """Retorna un registro de articulo.""" query = "SELECT acam_anio, acam_num, alis_numero, acli_codigo, art_deuda, art_camp, art_entregado, art_forma_pago, art_medio_entr, cli_apenom, cli_domicilio, cli_zona FROM articulos \ INNER JOIN clientes ON acli_codigo = cli_codigo\ WHERE acam_anio = %s AND acam_num = %s AND (SELECT locate(%s, cli_apenom))<>0 " values = (self.cam_anio, self.cam_num, self.cli_apenom) tabla = self.db.ejecutar(query, values) resultados = [] for columna in tabla: resultado = {} resultado['anio'] = columna[0] resultado['num'] = columna[1] resultado['lis'] = columna[2] resultado['codigo'] = columna[3] resultado['deuda'] = columna[4] resultado['campania'] = columna[5] resultado['entregado'] = columna[6] resultado['forma_pago'] = columna[7] resultado['medio_entr'] = columna[8] resultado['nombre'] = columna[9] resultado['domicilio'] = columna[10] resultado['zona'] = columna[11] resultados.append(resultado) return resultados def read(self): """Retorna un registro de articulo.""" query = "SELECT acam_anio, acam_num, alis_numero, acli_codigo, art_deuda, art_camp, art_entregado, art_forma_pago, art_medio_entr, art_rebote, cli_apenom, cli_zona FROM articulos \ INNER JOIN clientes ON acli_codigo = cli_codigo\ WHERE acam_anio = %s AND acam_num = %s AND acli_codigo = %s " values = (self.cam_anio, self.cam_num, self.cli_codigo) tabla = self.db.ejecutar(query, values) resultado = {} if tabla != (): resultado['anio'] = tabla[0][0] resultado['num'] = tabla[0][1] resultado['lis'] = tabla[0][2] resultado['codigo'] = tabla[0][3] resultado['deuda'] = tabla[0][4] resultado['campania'] = tabla[0][5] resultado['entregado'] = tabla[0][6] resultado['forma_pago'] = tabla[0][7] resultado['medio_entr'] = tabla[0][8] resultado['rebote'] = tabla[0][9] resultado['nombre'] = tabla[0][10] resultado['zona'] = tabla[0][11] return resultado def result_campaign(self): values = (self.cam_anio, self.cam_num) resultado = {} query = "SELECT cantArticulosCampania(%s, %s);" resultado["cantArticulosCampania"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoEntregados(%s, %s);" resultado["cantArticulosNoEntregados"] = self.db.ejecutar( query, values)[0][0] query = "SELECT cantArticulosBoletas(%s, %s);" resultado["cantArticulosBoletas"] = self.db.ejecutar(query, values)[0][0] # Efectivo query = "SELECT cantArticulosEntregadosEfectivo(%s, %s);" resultado["entregadosEfectivo"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoEntregadosEfectivo(%s, %s);" resultado["noEntregadosEfectivo"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosCobradosEfectivo(%s, %s);" resultado["cobradosEfectivo"] = self.db.ejecutar(query, values)[0][0] # Boletas query = "SELECT cantArticulosEntregadosBoleta(%s, %s);" resultado["entregadosBoleta"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoEntregadosBoleta(%s, %s);" resultado["noEntregadosBoleta"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosCobradosBoleta(%s, %s);" resultado["cobradosBoleta"] = self.db.ejecutar(query, values)[0][0] # Recibo oficina query = "SELECT cantArticulosEntregadosOficina(%s, %s);" resultado["entregadosOficina"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoEntregadosOficina(%s, %s);" resultado["noEntregadosOficina"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosCobradosOficina(%s, %s);" resultado["cobradosOficina"] = self.db.ejecutar(query, values)[0][0] # No cobrados query = "SELECT cantArticulosEntregadosNoCobrados(%s, %s);" resultado["entregadosNoCobrados"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoEntregadosNoCobrados(%s, %s);" resultado["noEntregadosNoCobrados"] = self.db.ejecutar(query, values)[0][0] query = "SELECT cantArticulosNoCobrados(%s, %s);" resultado["noCobrados"] = self.db.ejecutar(query, values)[0][0] # Valores Articulos query = "SELECT valArticulosCampania(%s, %s);" resultado["valArticulosCampania"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosNoEntregados(%s, %s);" resultado["valArticulosNoEntregados"] = self.db.ejecutar( query, values)[0][0] query = "SELECT valArticulosBoletas(%s, %s);" resultado["valArticulosBoletas"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosEntregadosNoCobrados(%s, %s);" resultado["valEntregadosNoCobrados"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosNoEntregadosNoCobrados(%s, %s);" resultado["valNoEntregadosNoCobrados"] = self.db.ejecutar( query, values)[0][0] query = "SELECT valArticulosNoCobrados(%s, %s);" resultado["valNoCobrados"] = self.db.ejecutar(query, values)[0][0] # efectivo query = "SELECT valArticulosEntregadosEfectivo(%s, %s);" resultado["valEntregadosEfectivo"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosNoEntregadosEfectivo(%s, %s);" resultado["valNoEntregadosEfectivo"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosEfectivo(%s, %s);" resultado["valEfectivo"] = self.db.ejecutar(query, values)[0][0] # boleta query = "SELECT valArticulosEntregadosBoleta(%s, %s);" resultado["valEntregadosBoleta"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosNoEntregadosBoleta(%s, %s);" resultado["valNoEntregadosBoleta"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosBoleta(%s, %s);" resultado["valBoleta"] = self.db.ejecutar(query, values)[0][0] # oficina query = "SELECT valArticulosEntregadosOficina(%s, %s);" resultado["valEntregadosOficina"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosNoEntregadosOficina(%s, %s);" resultado["valNoEntregadosOficina"] = self.db.ejecutar(query, values)[0][0] query = "SELECT valArticulosOficina(%s, %s);" resultado["valOficina"] = self.db.ejecutar(query, values)[0][0] return resultado def obtenerContenidoCampania(self): query = "SELECT cli_zona, cli_codigo, art_camp, art_deuda, art_entregado, art_forma_pago \ FROM articulos INNER JOIN clientes ON cli_codigo = acli_codigo\ WHERE acam_anio = %s AND acam_num = %s\ ORDER BY 2;" values = (self.cam_anio, self.cam_num) return self.db.ejecutar(query, values)
class ModeloMovimientoClientes: def __init__(self): self.mcam_anio = 0 self.mcam_num = 0 self.mcaj_numero = 0 self.mcli_codigo = "" self.movcli_monto = 0.0 self.movcli_entregado = 0 self.movcli_forma_pago = 0 self.movcli_diferencia = 0.0 self.db = DBConn() def create(self): query = "CALL agregarMovimientoCliente(%s, %s, %s, %s, %s, %s, %s, %s);" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero, self.mcli_codigo, self.movcli_monto, self.movcli_entregado, self.movcli_forma_pago, self.movcli_diferencia) return self.db.ejecutar(query, values) def get_delivered_box(self): query = "SELECT cli_codigo, cli_apenom, movcli_monto, movcli_entregado, movcli_forma_pago, movcli_diferencia\ FROM movimiento_clientes INNER JOIN clientes ON cli_codigo = mcli_codigo\ WHERE mcam_anio = %s AND mcam_num = %s AND mcaj_numero = %s" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero) return self.db.ejecutar(query, values) def read(self): query = "SELECT cli_codigo, cli_apenom, movcli_monto, movcli_entregado, movcli_forma_pago, movcli_diferencia\ FROM movimiento_clientes INNER JOIN clientes ON cli_codigo = mcli_codigo\ WHERE mcam_anio = %s AND mcam_num = %s AND mcaj_numero = %s AND mcli_codigo = %s" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero, self.mcli_codigo) return self.db.ejecutar(query, values)[0] def read_all(self): query = "SELECT cli_codigo, cli_apenom, movcli_monto, movcli_entregado, movcli_forma_pago, movcli_diferencia\ FROM movimiento_clientes INNER JOIN clientes ON cli_codigo = mcli_codigo\ WHERE mcam_anio = %s AND mcam_num = %s AND mcaj_numero = %s" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero) return self.db.ejecutar(query, values) def totalIngresosClientes(self): query = "SELECT totalIngresosMClientes(%s, %s, %s);" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero) return self.db.ejecutar(query, values)[0][0] def existe(self): query = "SELECT existeMovimientoCliente(%s, %s, %s)" values = (self.mcam_anio, self.mcam_num, self.mcli_codigo) return self.db.ejecutar(query, values)[0][0] def update_e(self, anio, num, cnum, cod, entr, fentr): query = "CALL actualizarEntrega(%s, %s, %s, %s, %s, %s)" values = (anio, num, cnum, cod, entr, fentr) return self.db.ejecutar(query, values) def update(self): query = "CALL actualizarMovCli(%s, %s, %s, %s, %s, %s, %s, %s)" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero, self.mcli_codigo, self.movcli_monto, self.movcli_entregado, self.movcli_forma_pago, self.movcli_diferencia) return self.db.ejecutar(query, values) def __str__(self): return str(self.mcam_anio) + '-' + str(self.mcam_num) + '-' + str( self.mcaj_numero) + '-' + str(self.mcli_codigo) + '-' + str( self.movcli_monto) def superCargaMov(self, anio, num, cnum, cod, reb, mentr, monto, entr, fpago, dif, fentr): query = "CALL superCargaMovimiento(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);" values = (anio, num, cnum, cod, reb, mentr, monto, entr, fpago, dif, fentr) return self.db.ejecutar(query, values)
class ModeloMovimientos: def __init__(self): self.mcam_anio = 0 self.mcam_num = 0 self.mcaj_numero = 0 self.mov_numero = 0 self.mov_monto = 0.0 self.mov_tipo = 0 #1:ingresos varios; 2:egresos varios self.mov_comentario = "" self.db = DBConn() def create(self): query = "CALL agregarMovimiento(%s, %s, %s, %s, %s, %s, %s);" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero, self.mov_numero, self.mov_monto, self.mov_tipo, self.mov_comentario) return self.db.ejecutar(query, values) def read_all(self): query = "SELECT * FROM movimientos WHERE mcam_anio = %s AND mcam_num = %s AND mcaj_numero = %s;" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero) tabla = self.db.ejecutar(query, values) resultados = [] for fila in tabla: resultado = {} resultado['monto'] = str(fila[4]) if fila[5] == 1: resultado['tipo'] = 'Igresos Varios' elif fila[5] == 2: resultado['tipo'] = 'Egresos Varios' else: resultado['tipo'] = 'Ups!' resultado['comentario'] = str(fila[6]) resultados.append(resultado) return resultados def get_income(self): query = "SELECT mov_comentario, mov_monto FROM movimientos\ WHERE mcam_anio = %s AND mcam_num = %s AND mcaj_numero = %s AND mov_tipo = 1;" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero) return self.db.ejecutar(query, values) def get_expenses(self): query = "SELECT mov_comentario, mov_monto FROM movimientos\ WHERE mcam_anio = %s AND mcam_num = %s AND mcaj_numero = %s AND mov_tipo = 2;" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero) return self.db.ejecutar(query, values) def count_movs(self): query = "SELECT cantidadMovimientos(%s, %s, %s);" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero) return self.db.ejecutar(query, values)[0][0] def totalIngresos(self): query = "SELECT totalIngresos(%s, %s, %s)" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero) return self.db.ejecutar(query, values)[0][0] def totalEgresos(self): query = "SELECT totalEgresos(%s, %s, %s)" values = (self.mcam_anio, self.mcam_num, self.mcaj_numero) return self.db.ejecutar(query, values)[0][0]
class ModeloCampanias: def __init__(self): self.anio = 0 #hasta 4 digitos self.num = 0 #hasta 4 digitos self.cli_codigo = '' self.inicio = '' #fecha self.fin = '' #fecha self.comentario = '' #hasta 700 caracteres self.usuario = 0 self.db = DBConn() def create(self): query = "CALL agregarCampania(%s, %s, %s, %s, %s)" values = (self.anio, self.num, self.inicio, self.comentario, self.usuario) return self.db.ejecutar(query, values) def close(self): query = "UPDATE campanias SET cam_fin = %s WHERE cam_anio = %s AND cam_num = %s" values = (self.fin, self.anio, self.num) return self.db.ejecutar(query, values) def update(self): query = "Call actualizarCampania(%s, %s, %s)" values = (self.anio, self.num, self.comentario) return self.db.ejecutar(query, values) def delete(self): query = "Call eliminarCampania(%s, %s)" values = (self.anio, self.num) return self.db.ejecutar(query, values) def read(self): query = "SELECT cam_anio, cam_num, cam_inicio, cam_comentario, cam_fin, cam_usuario \ FROM campanias \ WHERE cam_anio = %s AND cam_num = %s" values = (self.anio, self.num) tabla = self.db.ejecutar(query, values) campania = {} if tabla != (): campania = { 'anio': tabla[0][0], 'num': tabla[0][1], 'inicio': self.date_format(tabla[0][2]), 'comentario': tabla[0][3], 'fin': tabla[0][4], 'usuario': tabla[0][5] } return campania def read_all(self): query = "SELECT cam_anio, cam_num, cam_inicio, cam_usuario \ FROM campanias" return self.db.ejecutar(query) def get_active_campaign(self): query = "SELECT cam_anio, cam_num, cam_inicio, cam_comentario, cam_fin, cam_usuario \ FROM campanias WHERE cam_fin = %s" values = ('0000-00-00') datos = self.db.ejecutar(query, values) resultado = {} if datos != (): resultado['anio'] = datos[0][0] resultado['numero'] = datos[0][1] resultado['inicio'] = self.date_format(datos[0][2]) resultado['comentarios'] = datos[0][3] resultado['fin'] = datos[0][4] resultado['usuario'] = datos[0][5] return resultado def get_next_number_campaign(self): 'Retorna el siguinte numero de campania.' query = "SELECT siguienteNumeroCampania(%s);" values = (self.anio) return self.db.ejecutar(query, values)[0][0] def codes_campaign(self): query = "SELECT c.cli_codigo, c.cod_deuda, c.cod_camp, c.cod_entregado, c.cod_efectivo, c.cod_boleta\ FROM listados l\ INNER JOIN codigos c ON c.lis_id = l.lis_id\ WHERE l.cam_id = %s;" values = (self.id) codigos = self.db.ejecutar(query, values) resultado = [] for fila in codigos: dato = { 'codigo': fila[0], 'deuda': str(fila[1]), 'campania': str(fila[2]), 'entregado': fila[3], 'efectivo': fila[4], 'boleta': fila[5] } resultado.append(dato) return resultado def date_format(self, s): 'Formatea una fecha dada (aaaa-mm-dd >> dd-mm-aaaa)' s = str(s) l = s.split("-") l[0], l[2] = l[2], l[0] return "-".join(l)
class ModeloCampanias: def __init__(self): self.anio = 0 #hasta 4 digitos self.num = 0 #hasta 4 digitos self.cli_codigo = '' self.inicio = '' #fecha self.ini_reparto = '' # fecha de inicio de reparto self.fin_reparto = '' # fecha de fin de reparto self.base = 0.00 # base de distribucion self.parametro = 0.00 # distribucion = (pedidos a cobrar) x parametro + base self.diferencia = 0.00 # monto de diferencia con campania anterior self.fin = '' #fecha self.comentario = '' #hasta 700 caracteres self.usuario = 0 self.db = DBConn() def create(self): query = "CALL agregarCampania(%s, %s, %s, %s, %s, %s, %s, %s, %s)" values = (self.anio, self.num, self.inicio, self.ini_reparto, self.diferencia, self.parametro, self.base, self.comentario, self.usuario) return self.db.ejecutar(query, values) def close(self): query = "UPDATE campanias SET cam_fin = %s WHERE cam_anio = %s AND cam_num = %s" values = (self.fin, self.anio, self.num) return self.db.ejecutar(query, values) def update(self): query = "Call actualizarCampania(%s, %s, %s, %s, %s, %s, %s, %s)" values = (self.anio, self.num, self.ini_reparto, self.fin_reparto, self.diferencia, self.parametro, self.base, self.comentario) return self.db.ejecutar(query, values) def delete(self): query = "Call eliminarCampania(%s, %s)" values = (self.anio, self.num) return self.db.ejecutar(query, values) def read_x_anio_num(self): query = "SELECT cam_anio, cam_num, cam_inicio, cam_fin, cam_usuario \ FROM campanias \ WHERE cam_anio = %s AND cam_num = %s" values = (self.anio, self.num) return self.db.ejecutar(query, values) def read_x_anio(self): query = "SELECT cam_anio, cam_num, cam_inicio, cam_fin, cam_usuario \ FROM campanias \ WHERE cam_anio = %s" values = (self.anio) return self.db.ejecutar(query, values) def read_all(self): query = "SELECT cam_anio, cam_num, cam_inicio, cam_fin, cam_usuario \ FROM campanias" return self.db.ejecutar(query) def exist_campaign(self): query = "SELECT existeCampania(%s, %s);" values = (self.anio, self.num) return self.db.ejecutar(query, values)[0][0] != 0 def read(self): query = "SELECT cam_anio, cam_num, cam_inicio, cam_ini_reparto, cam_fin_reparto, cam_diferencia, cam_parametro, cam_base, cam_comentario, cam_fin, cam_usuario \ FROM campanias \ WHERE cam_anio = %s AND cam_num = %s" values = (self.anio, self.num) tabla = self.db.ejecutar(query, values) campania = {} if tabla != (): campania = { 'anio': tabla[0][0], 'num': tabla[0][1], 'inicio': self.date_format(tabla[0][2]), 'ini_reparto': tabla[0][3], 'fin_reparto': tabla[0][4], 'diferencia': tabla[0][5], 'parametro': tabla[0][6], 'base': tabla[0][7], 'comentario': tabla[0][8], 'fin': tabla[0][9], 'usuario': tabla[0][10] } return campania def get_active_campaign(self): query = "SELECT cam_anio, cam_num, cam_inicio, cam_ini_reparto, cam_fin_reparto, cam_diferencia, cam_parametro, cam_base, cam_comentario, cam_fin, cam_usuario \ FROM campanias WHERE cam_fin = %s" values = ('0000-00-00') datos = self.db.ejecutar(query, values) resultado = {} if datos != (): resultado['anio'] = datos[0][0] resultado['numero'] = datos[0][1] resultado['inicio'] = self.date_format(datos[0][2]) resultado['ini_reparto'] = datos[0][3] resultado['fin_reparto'] = datos[0][4] resultado['diferencia'] = datos[0][5] resultado['parametro'] = datos[0][6] resultado['base'] = datos[0][7] resultado['comentarios'] = datos[0][8] resultado['fin'] = datos[0][9] resultado['usuario'] = datos[0][10] return resultado def get_next_number_campaign(self): 'Retorna el siguinte numero de campania.' query = "SELECT siguienteNumeroCampania(%s);" values = (self.anio) return self.db.ejecutar(query, values)[0][0] def codes_campaign(self): query = "SELECT c.cli_codigo, c.cod_deuda, c.cod_camp, c.cod_entregado, c.cod_efectivo, c.cod_boleta\ FROM listados l\ INNER JOIN codigos c ON c.lis_id = l.lis_id\ WHERE l.cam_id = %s;" values = (self.id) codigos = self.db.ejecutar(query, values) resultado = [] for fila in codigos: dato = { 'codigo': fila[0], 'deuda': str(fila[1]), 'campania': str(fila[2]), 'entregado': fila[3], 'efectivo': fila[4], 'boleta': fila[5] } resultado.append(dato) return resultado def campaign_in_range(self, rng): query = "SELECT cam_anio, cam_num FROM campanias ORDER BY 1 DESC LIMIT %s" values = (rng) return self.db.ejecutar(query, values) def date_format(self, s): 'Formatea una fecha dada (aaaa-mm-dd >> dd-mm-aaaa)' s = str(s) l = s.split("-") l[0], l[2] = l[2], l[0] return "-".join(l)
class ModeloUsuarios: def __init__(self): self.usuario = '' self.clave = '' self.tipo = '' self.estado = 1 self.db = DBConn() def create(self): query = "CALL agregarUsuario(%s, %s, %s)" values = (self.usuario, self.clave, self.tipo) return self.db.ejecutar(query, values) def update(self): query = "CALL modificarUsuario(%s, %s, %s)" values = (self.usuario, self.clave, self.tipo) return self.db.ejecutar(query, values) def delete(self): query = "CALL deshabilitarUsuario(%s)" values = (self.usuario) return self.db.ejecutar(query, values) def existUser(self): query = "SELECT existeUsuario(%s)" values = (self.usuario) return self.db.ejecutar(query, values)[0][0] def existUserKey(self): query = "SELECT existeUsuarioClave(%s, %s)" values = (self.usuario, self.clave) return self.db.ejecutar(query, values)[0][0] def typeUser(self): query = "SELECT tipoUsuario(%s, %s)" values = (self.usuario, self.clave) return self.db.ejecutar(query, values)[0][0] def read_all(self): query = "SELECT * FROM usuarios WHERE usu_estado = 1" tabla = self.db.ejecutar(query) datos = [] for fila in tabla: if fila[0] != "root": dato = {'usuario': fila[0], 'clave': fila[1], 'tipo': fila[2]} datos.append(dato) return datos def read_all_for_name(self): query = "SELECT * FROM usuarios WHERE usu_usuario = %s AND usu_estado = 1" values = (self.usuario) tabla = self.db.ejecutar(query, values) datos = [] for fila in tabla: if fila[0] != "root": dato = {'usuario': fila[0], 'clave': fila[1], 'tipo': fila[2]} datos.append(dato) return datos def read(self): query = "SELECT * FROM usuarios WHERE usu_usuario = %s AND usu_estado = 1" values = (self.usuario) tabla = self.db.ejecutar(query, values) dato = { 'usuario': tabla[0][0], 'clave': tabla[0][1], 'tipo': tabla[0][2] } return dato