def buscar(name, page, cate, precio=None, orden=None): url = '/buscar={}/{}/'.format(name, cate) if precio == "N-N" or precio == None: bajo = -1 alto = 10000000 else: precio = precio.split("-") bajo = int(precio[0]) alto = int(precio[1]) alf = "asc" if orden == "a-z" else "desc" if orden == "z-a" else None pre = "asc" if orden == "asc" else "desc" if orden == "desc" else None if (name == -1): return redirect(url_for("inicio.index")) else: print(name) if (cate == "todo"): productos = Producto().buscarProducto(Palabra=name, num=page, bajo=bajo, alto=alto, alf=alf, pre=pre) else: productos = Producto().buscarProducto(Palabra=name, num=page, categoria=[cate], bajo=bajo, alto=alto, alf=alf, pre=pre) return render_template("buscar.html", products=productos, url=url)
def obtenerDetalleCarrito(self): database = sqlite3.connect("linioexp_parcial_lab3.db") texto=0 try: if (self.oCarrito== None): idpro="1" idcar="1" else: idpro=self.oProducto.idProducto idcar=self.oCarrito.idCarrito cursor = database.cursor() query = ''' SELECT * from detalleCarrito WHERE idDetalleCarrito = '{}' or (idProducto='{}' and idCarrito='{}') '''.format(self.__idDetalleCarrito,idpro,idcar) cursor.execute(query) lista = cursor.fetchall()[0] texto= 0 if idpro != lista[2] else 1 self.__idDetalleCarrito=self.__idDetalleCarrito self.oProducto= Producto(idProducto=lista[2]) self.oProducto.obtenerProducto() self.oCarrito= Carrito(idCarrito=lista[1]) self.oCarrito.obtenerCarrito() self.__cantidad=lista[3] self.__subtotal=lista[4] except Exception as e: print("Error: {}".format(e)) finally: database.close() return texto
def carrito(): session["selel"] = "" session["selet"] = "" print(session["id"] != "") if session["id"] != None and session["id"] != "": try: listas = Carrito(idCarrito=Cliente( idCliente=session["id"]).generarListaCarrito()[0] [0]).generarListaDetalleCarrito() listas = [ tuple(Producto(idProducto=x[2]).obtenerlistaProducto()) + x for x in listas ] except: listas = [] else: try: listas = [ tuple(Producto(idProducto=x[0]).obtenerlistaProducto()) + tuple(x) for x in session["Carrito"] ] except: listas = [] p = 0 if session["id"] == "" or session["id"] is None else 1 return render_template('carrito.html', lista=listas, session=p)
def producto(name): print(name) pr = Producto(idProducto=name) pr.obtenerProducto() return render_template("producto.html", idproducto=pr.idProducto, nombre=pr.nombre, precio=pr.precio, session=session["id"])
def anadirProducto(self): self.imprimir("Bienvenido a agregar Producto") nombreProducto = input("Escriba el Nombre Producto : ") precioProducto = input("Escriba el precio del producto : ") cantidadProducto = input("Escriba la cantidad del producto : ") # Creamos la instancia de un nuevo producto nuevoProducto = Producto(nombreProducto,precioProducto,cantidadProducto) # imprimimos el total self.imprimir("Total a pagar por este elemento : " + str(nuevoProducto.calcularTotalIndividual())) # lo añadimos al cliente self.cliente.anadirProducto(nuevoProducto)
def anadir(codigo=None): if (request.method == 'POST' or codigo is not None): if codigo is None: idproducto = request.form['idproducto'] number = int(request.values['number']) else: idproducto = codigo number = 1 if session["id"] != "" and session["id"] != None: print(session["id"], 4343) pre = Producto(idProducto=idproducto) pre.obtenerProducto() Det = DetalleCarrito(carrito=Carrito(idCarrito=Cliente( idCliente=session["id"]).generarListaCarrito()[0][0]), cantidad=number, producto=pre) if (Det.obtenerDetalleCarrito() == 0): print(Det.idDetalleCarrito, Det) Det.agregarDetalleCarrito() else: Det.cantidad = number Det.actualizarDetalleCarrito(var=1) else: t = 1 try: c = 0 for e in session["Carrito"]: if (e[0] == idproducto): session["Carrito"][c][3] += number session.modified = True t = t * 0 c += 1 except: print(t) session["Carrito"] = [] session.modified = True print(t) if (session["Carrito"]) == []: t = 1 print(session["Carrito"]) print(4) if t == 1: print(4) session["Carrito"].append([idproducto, 0, 0, number, 0]) session.modified = True return redirect(url_for("compras.carrito"))
def datosFicticios(): e1 = Empleado() p1 = Producto(empleado=e1, nombre="Collar para perro", valor=10000, descripcion="Un bonito collar verde para perro") p2 = Producto(empleado=e1, nombre="Gimnasio para gato", valor=54000, descripcion="Una cosa de locos ") Main.productos.append(p1) Main.productos.append(p2)
def comprarCarrito(self, Lugar, tarjeta=None): if tarjeta is None: metPago = "EFECTIVO" nuevaOrden = Orden(cliente=self.oCliente, direccionEntrega=Lugar, metodoPago=metPago, tarifa=self.__importeTotal, estado="C") else: metPago = "TARJETA" nuevaOrden = Orden(cliente=self.oCliente, direccionEntrega=Lugar, metodoPago=metPago, tarifa=self.__importeTotal, estado="C", tarjeta=Tarjeta(numTarjeta=tarjeta)) nuevaOrden.agregarOrden() for dc in self.__listaDetalleCarrito: pro = Producto(idProducto=dc[2]) pro.obtenerProducto() pro.stock = pro.stock - int(dc[3]) pro.actualizarProducto() nuevoDetOrden = DetalleOrden(orden=nuevaOrden, producto=pro, cantidad=dc[3]) nuevoDetOrden.agregarDetalleOrden() self.limpiarCarrito()
def populate_data(): productos = [] inventario = [] #---Popular productos ---- id = autoIncrement('productos') producto_1 = Producto( id = id, nombre = 'Jabón en Polvo', referencia = 'producto_{}'.format(id), valor = '14500', cantidad_inventario = 10 ) id = autoIncrement('productos') producto_2 = Producto( id = id, nombre = 'Arroz costal', referencia = 'producto_{}'.format(id), valor = '24000', cantidad_inventario = 10 ) id = autoIncrement('productos') producto_3 = Producto( id = id, nombre = 'Panela', referencia = 'producto_{}'.format(id), valor = '5500', cantidad_inventario = 10 ) id = autoIncrement('productos') producto_4 = Producto( id = id, nombre = 'Gelatina', referencia = 'producto_{}'.format(id), valor = '10000', cantidad_inventario = 10 ) productos.append(producto_1) productos.append(producto_2) productos.append(producto_3) productos.append(producto_4) return { 'productos' : productos }
def ActualizandoProducto(producto): if (request.method=="POST"): print(request.form) Nombre=request.form['nombre'] Descripcion = request.form['Descripcion'] Precio = request.form['Precio'] Categoria = request.form['Categoria'] Cantidad = request.form['Cantidad'] Imagen = request.form['Imagen'] Descuento = request.form['Descuento'] co=Comercio(idComercio=session["idCom"]) co.obtenerComercio() print(Categoria,33333333333) pro=Producto(idProducto=producto,nombre=Nombre,descuento=Descuento,categoria=Categoria,stock=Cantidad,precio=Precio,descripcion=Descripcion,comercio=co) pro.actualizarProducto() return redirect(url_for("comercio.ComProductos"))
def fetch_prods(self): if self.url != "": self._fetch_pages() for p in range(1, self._pages): if p != 1: self.load_site(self.url + "/" + str(p)) table = self._soup.find("table", re.compile("tabla_")) if table: for row in table.findAll("tr"): col = row.findAll("td") if len(col) > 4: id = row.get("id") desc = col[1].find("p").string precio = float(col[2].find("strong").string) str_medida = col[3].find("p", {"class": "frac"}).string descant = self._extract_medida_cant(desc, str_medida) prod = Producto(id, desc, precio, medida=descant["medida"], cantidad=descant["cantidad"]) logging.info("Nuevo Producto: " + str(prod.full_data())) self.productos.append(prod) return self.productos
def generarDatosFicticios(): # Metodo para generar los datos ficticios u1 = Persona("Prueba", "*****@*****.**", "3089647558", "Avenida siempre viva", "123") u2 = Persona("Prueba2", "*****@*****.**", "4541694", "Cerro el volador", "123") p1 = Producto("Collar para gato.", 20000, "Un hermoso collar verde para los felinos.", 20) p2 = Producto( "Correa para perro.", 15000, "Perfecta para sacar de paseo a nuestros amigos caninos.", 100) p3 = Producto("Alimento para pajaros.", 5400, "Con semillas de girasol.", 5) p4 = Producto("Colita de Pinscher.", 1000000, "Recien cortada.", 1) p5 = Producto("Mameluco para tortuga.", 55000, "Fashion!.", 50) c1 = Comentario("Delicioso alpiste, incluso yo lo consumo.", u1, p3) c2 = Comentario("Todo se lo roban las tortolas.", u2, p3) c3 = Comentario( "Pense que estas cosas solo se vendian en la deep web.", u1, p4) ped1 = Pedido(datetime.date.today(), u1, 0, "Pendiente") ped_pro1 = Pedido_Producto(5, ped1, p1) ped_pro2 = Pedido_Producto(10, ped1, p2) ped_pro3 = Pedido_Producto(2, ped1, p3) ped_pro4 = Pedido_Producto(1, ped1, p4) ped_pro5 = Pedido_Producto(30, ped1, p5) ped1.calcularValorTotal() ped1.comprar() Persona.personas.append(u1) Persona.personas.append(u2) Producto.productos.append(p1) Producto.productos.append(p2) Producto.productos.append(p3) Producto.productos.append(p4) Producto.productos.append(p5)
def verificarstock(self,idC): Cli=Cliente(idCliente=idC).generarListaCarrito()[0][0] detalles=Carrito(idCarrito=Cli).generarListaDetalleCarrito() veri=1 for det in detalles: pro=Producto(idProducto=det[2]) pro.obtenerProducto() if int(det[3])>int(pro.stock): self.idDetalleCarrito=det[0] self.obtenerDetalleCarrito() self.cantidad=pro.stock if(pro.stock==0): self.eliminarDetalleCarrito() else: self.actualizarDetalleCarrito() veri=0 return veri
def EliminarProducto(producto): pro=Producto(idProducto=producto) pro.obtenerProducto() if pro.oComercio.idComercio==session["idCom"]: pro.eliminarProducto() return redirect(url_for("comercio.ComProductos"))
def main(): proveedor_a = Proveedor("01", "Mario", "4418", "Av Inform", "*****@*****.**") proveedor_b = Proveedor("02", "Mirian", "4418", "Av Inform", "*****@*****.**") proveedor_singleton = ProveedorSingleton() proveedor_singleton.registrar(proveedor_a) proveedor_singleton.registrar(proveedor_b) print "Proveedor 01", proveedor_singleton.validar_existencia("02") producto_a = Producto("001", "DescripA", 12.0, proveedor_a) producto_b = Producto("002", "DescripB", 13.0, proveedor_a) producto_singleton = ProductoSingleton() producto_singleton.registrar(producto_a) producto_singleton.registrar(producto_b) print "Producto 001", producto_singleton.validar_existencia("001") almacen = Almacen() almacen.ingresar("001", 3) almacen.ingresar("001", 2) almacen.salir("001", 2) print "Stock 001: ", almacen.calcular_stock("001") print "Costo total: ", almacen.calcular_costo_total()
def iniciando(): if (request.method == 'POST'): nombre = request.form['nombre'] password = request.form['password'] U = Cliente(password=password, correo=nombre, nombreusuario=nombre) if (U.iniciarSesion() == 1): flash("sesion iniciada") session['user_name'] = U.nombreUsuario session["id"] = U.idCliente session["correo"] = U.correo try: for e in session["Carrito"]: pre = Producto(idProducto=e[0]) pre.obtenerProducto() Det = DetalleCarrito(carrito=Carrito(idCarrito=Cliente( idCliente=session["id"]).generarListaCarrito()[0][0]), cantidad=e[3], producto=pre) print(4) if (Det.obtenerDetalleCarrito() == 0): print(Det.idDetalleCarrito, 4) Det.agregarDetalleCarrito() else: Det.cantidad = e[3] Det.actualizarDetalleCarrito(var=1) except: pass session["Carrito"] = [] return redirect(url_for("inicio.index")) else: flash("datos incorrectos") return redirect(url_for("sesiones.iniciar"))
def generarOrden(): request_json = request.get_json() numero_orden = request_json.get('OrderId') estado = request_json.get('OrderStatus') precio = request_json.get('TotalPrice') productos = request_json.get('Products') lst_productos = [] for producto in productos: ingredientes = producto['Ingredients'] lst_ingredientes = [] for ingrediente in ingredientes: i = Ingrediente( nombre_ingrediente=ingrediente['Name'], cantidad_ingrediente=ingrediente['Amount'], unidad_ingrediente=ingrediente['Unit'] ) ingrediente_json = json.dumps(i, default=i.ingredienteADiccionario) lst_ingredientes.append(ingrediente_json) ing_objects = [json.loads(ing) for ing in lst_ingredientes] p = Producto( producto['Name'], producto['Servings'], producto['PricePerServing'], producto['Image'], ing_objects ) producto_json = json.dumps(p, default=p.productoADiccionario) lst_productos.append(producto_json) orden = Orden( numero_orden, estado, precio, lst_productos ) prod_objects = [json.loads(prod) for prod in orden.productos] ordenesCollection.insert_one( { 'OrderId': orden.numero_orden, 'Date': orden.fecha, 'OrderStatus': orden.estado, 'TotalPrice': orden.precio, 'Products': prod_objects } ) return 'orden generada'
def obtenerDetalleOrden(self): database = sqlite3.connect("linioexp_parcial_lab3.db") try: cursor = database.cursor() query = ''' SELECT * from detalleOrden WHERE idDetalleOrden = '{}' '''.format(self.__idDetalleOrden) cursor.execute(query) lista = cursor.fetchoall()[0] self.oOrden = Orden(lista[1]).obtenerOrden() self.oProducto = Producto(lista[2]).obtenerProducto() self.__cantidad = lista[3] self.__subtotal = lista[4] except Exception as e: print("Error: {}".format(e)) finally: database.close()
def ComProductos(name=None,page=None,cate=None,precio=None,orden=None): if name != None and cate!=None: url='/Comercio/productos={}/{}/'.format(name,cate) if precio=="N-N" or precio==None: bajo=-1 alto=10000000 else: precio=precio.split("-") bajo=int(precio[0]) alto=int(precio[1]) alf="asc" if orden == "a-z" else "desc" if orden=="z-a" else None pre="asc" if orden == "asc" else "desc" if orden=="desc" else None print(name) if (cate == "todo"): listas = Producto().buscarProducto(Palabra=name, num=page,bajo=bajo,alto=alto,alf=alf,pre=pre) else: listas = Producto().buscarProducto(Palabra=name, num=page, categoria=[cate],bajo=bajo,alto=alto,alf=alf,pre=pre) for e in range(len(listas)): listas[e] += Producto(idProducto=listas[e][0]).CantidadVendidos() print(listas[e]) return render_template("ProductosC.html", lista=listas,url=url) else: url = '/Comercio/productos/' if precio is None and orden is None: page= 1 if page is None else page listas = (Producto().buscarProducto(comercio=session["idCom"], Palabra="",num=page)) else: if precio == "N-N" or precio == None: bajo = -1 alto = 10000000 else: precio = precio.split("-") bajo = int(precio[0]) alto = int(precio[1]) alf = "asc" if orden == "a-z" else "desc" if orden == "z-a" else None pre = "asc" if orden == "asc" else "desc" if orden == "desc" else None listas = (Producto().buscarProducto(comercio=session["idCom"], Palabra="", num=page,bajo=bajo,alto=alto,alf=alf,pre=pre)) for e in range(len(listas)): listas[e] += Producto(idProducto=listas[e][0]).CantidadVendidos() print(listas[e]) return render_template('ProductosC.html', lista=listas,url=url)
from flask import Flask, jsonify, request, make_response from flask_restful import Resource, Api, reqparse from sqlalchemy import create_engine from json import dumps from Usuario import Usuario from Producto import Producto user = Usuario() producto = Producto() app = Flask(__name__) @app.route('/', methods=['GET']) def listar(): return jsonify({'mensaje': 'Bienvenidos a Flask'}) #-----------------------metodos para usuario--------------------------# @app.route('/usuario/listar', methods=['GET']) def users(): try: rows = user.readAll() respuesta = jsonify(rows) respuesta.status_code = 200 return respuesta except Exception as e: print(e) @app.route('/usuario/buscar/<int:id>') def buscarusuario(id): try: user.idusuario = id
## Nombre: Producto 1 ## Precio: 5 ## Descuento: Fijo 10 ## --------------------------------- ## p2: ## Codigo: 2 ## Nombre: Producto 2 ## Precio: 10 ## Descuento: Porcentaje 40% ## --------------------------------- ## p3: ## Codigo: 3 ## Nombre: Producto 3 ## Precio: 20 ## --------------------------------- p1 = Producto(1, 'Producto 1', 5, desc1) p2 = Producto(2, 'Producto 2', 10, desc2) p3 = Producto(3, 'Producto 3', 20) pedido = Pedido() try: pedido.aniadir_producto(p1, 3) ## 3 unidades del producto 1 pedido.aniadir_producto(p2, 5) ## 5 unidades del producto 2 pedido.aniadir_producto(p1, 5) ## 5 unidades del producto 1 pedido.aniadir_producto(p3, 2) ## 2 unidades del producto 3 print('Total pedido: ', str(pedido.total_pedido())) pedido.mostrar_productos()
from Producto import Producto producto1 = Producto("Teclado", 41) print(producto1) producto2 = Producto("Raton", 14) print(producto2)
def __init__(self, nombre, clasificacion, precio, tamaño): Producto.__init__(self, nombre, clasificacion, precio) self.tamaño = tamaño
def __init__(self, nombre, clasificacion, precio, cantidad, productos): Producto.__init__(self, nombre, clasificacion, precio) self.cantidad = cantidad self.productos = productos
condN3 = condN3_old if (buscarProductos): #Rutina de búsqueda de productos print( "==================================================================" ) print('Productos N1{} N2{} N3{}: '.format( catNivel1, catNivel2, catNivel3)) print( "==================================================================" ) productos = Producto(drv_webdriver=driver, ruta_datos=directorio_datos, ruta_imagenes=directorio_imagenes, f_prod_csv=f_prod_csv, f_histprecios_csv=f_hstprec_csv, f_ingredientes=f_ingredientes_csv, f_nutricional=f_nutricional_csv) print( productos.obtener_productos_web( df_categorias_buscar=categorias.df_cat_csv, genera_historico_precios=True, N1=catNivel1, N2=catNivel2, N3=catNivel3)) #Grabamos la actualizacion de categorías categorias.grabar_categorias(omitir_carga_csv=True) #Grabamos los datos de productos obtenidos productos.grabar_productos()
cls.contador_ordenes += 1 return cls.contador_ordenes def __init__(self, *productos): self._id_orden = Orden.generar_id_orden() self._productos = list(productos) def agregar_producto(self, *productos): self._productos.extend(productos) def calcular_total(self): total = 0 for producto in self._productos: total += producto.precio print(f'Total de la Orden #{self._id_orden}: {total}$') def __str__(self): productos_str = '' for producto in self._productos: productos_str += producto.__str__() + '\n' return f'Orden #{self._id_orden}: \nProductos: {productos_str}' if __name__ == '__main__': camisa = Producto('Camisa', 100.00) pantalon = Producto('Pantalon', 150.00) orden1 = Orden([camisa, pantalon]) orden2 = Orden(pantalon) print(orden1) print(orden2)
def agregar_producto(self, producto): # Se agrega objeto de tipo producto a lista self._productos.append(producto) # Revisar encapsulados def calcular_total(self): total = 0 for producto in self._productos: total += producto.precio return total def __str__(self): productos_str = '' for producto in self._productos: productos_str += producto.__str__() + ' | ' return f'Orden: {self._id_orden}, \nProductos: {productos_str}' ##################################################### if __name__ == '__main__': producto1 = Producto('Disco Duro', 200000) producto2 = Producto('CPU', 500000) producto3 = Producto('RAM', 420000) productos1 = [producto1, producto2, producto3] orden1 = Orden(productos1) print(orden1) productos2 = [producto1, producto2] orden2 = Orden(productos2) print(orden2)
def getProducts(): with open('productos.txt', 'r') as archivo: for line in archivo: row = line.split(';') products.append(Producto(row[0],row[1],row[2],row[3],row[4],row[5].split('\n')[0])) codes.append(row[0])
#valido que el codigo no este usado ya if (codigo in codes): clear() print("XXXXXX El codigo de producto ya esta en uso XXXXXX\n\n") input() crear_producto() #Valido que no esten vacios algunos campos elif (codigo == '') or (nombre == '') or (desc == '') or (categoria == ''): clear() print("XXXXXX Algun dato esta vacio completelo por favor XXXXXX\n\n") input() crear_producto() else: #Guardo el producto newProduct = Producto(codigo,nombre,desc,categoria,precio,cantidad) newProduct.write() products.append(newProduct) clear() print("--------------Producto creado correctamente------------------\n\n") input("Presione cualquier tecla para volver...") #Editar producto def editar_producto(): clear() print("--------------Introduzca el codigo del producto a editar------------------\n\n") codigo = input("Codigo: ") #Verifico que exista el codigo al que quieren modificar if not codigo in codes: clear() print("XXXXXX El codigo no corresponde con ninguno, vuelva a intentar XXXXXX\n\n")
class DetalleCarrito(object): def __init__(self,idDetallecarrito:str=None, carrito:Carrito=None, producto:Producto=None, cantidad: int = None, subtotal: float = None): self.__idDetalleCarrito=idDetallecarrito if(idDetallecarrito is not None) else self.generarIdDetalleCarrito() self.oCarrito=carrito self.oProducto =producto self.__cantidad = cantidad self.__subtotal = subtotal if(subtotal is not None) else self.calcularSubTotal() #Atributos @property def idDetalleCarrito(self): return self.__idDetalleCarrito @idDetalleCarrito.setter def idDetalleCarrito(self, new_idDetallecarrito: str): self.__idDetalleCarrito = new_idDetallecarrito @property def carrito(self): return self.oCarrito @carrito.setter def carrito(self, new_carrito: carrito): self.oCarrito = new_carrito @property def producto(self): return self.oProducto @producto.setter def producto(self, new_producto:Producto): self.oProducto = new_producto @property def cantidad(self): return self.__cantidad @cantidad.setter def cantidad(self, new_cantidad: str): self.__cantidad = new_cantidad @property def subtotal(self): return self.__subtotal @subtotal.setter def subtotal(self, new_subtotal: str): self.__subtotal = new_subtotal #Metodos Estandar def generarIdDetalleCarrito(self) -> str: count = 0 database = sqlite3.connect("linioexp_parcial_lab3.db") # ABRIR CONEXION CON BASE DE DATOS try: cursor = database.cursor() # OBTENER OBJETO CURSOR query = ''' SELECT * FROM detalleCarrito''' cursor.execute(query) count = int(cursor.fetchall()[-1][0][4:9]) except Exception as e: print("Error: {}".format(e)) finally: database.close() # CERRAR CONEXION CON BASE DE DATOS return "DETC" + "0"*(4 - len(str(count+1))) + str(count + 1) def agregarDetalleCarrito(self): database = sqlite3.connect("linioexp_parcial_lab3.db") try: cursor = database.cursor() query = ''' INSERT INTO detalleCarrito(idDetalleCarrito,idProducto,idCarrito,cantidad,subtotal) VALUES('{}','{}','{}','{}','{}') '''.format(self.__idDetalleCarrito ,self.oProducto.idProducto,self.oCarrito.idCarrito,self.__cantidad,self.__subtotal) cursor.execute(query) database.commit() except Exception as e: print("Error: {}".format(e)) finally: database.close() def actualizarDetalleCarrito(self,var=None): database = sqlite3.connect("linioexp_parcial_lab3.db") try: if(var==1): try: cursor = database.cursor() query = ''' SELECT * from detalleCarrito WHERE (idProducto='{}' and idCarrito='{}') '''.format( self.oProducto.idProducto, self.oCarrito.idCarrito) cursor.execute(query) lista = cursor.fetchall()[0] self.__idDetalleCarrito=lista[0] self.__cantidad+=lista[3] self.__subtotal=self.calcularSubTotal() except: pass cursor = database.cursor() query = ''' UPDATE detalleCarrito SET idCarrito="{}", idProducto="{}", cantidad="{}", subtotal="{}" WHERE idDetalleCarrito = '{}' '''.format(self.oCarrito.idCarrito,self.oProducto.idProducto,self.__cantidad,self.__subtotal,self.__idDetalleCarrito) cursor.execute(query) database.commit() except Exception as e: print("Error: {}".format(e)) finally: database.close() def eliminarDetalleCarrito(self): database = sqlite3.connect("linioexp_parcial_lab3.db") # ABRIR CONEXION CON BASE DE DATOS try: cursor = database.cursor() # OBTENER OBJETO CURSOR query = '''DELETE FROM detalleCarrito where idDetalleCarrito= '{}' '''.format(self.__idDetalleCarrito) cursor.execute(query) database.commit() except Exception as e: print("Error: {}".format(e)) finally: database.close() def obtenerDetalleCarrito(self): database = sqlite3.connect("linioexp_parcial_lab3.db") texto=0 try: if (self.oCarrito== None): idpro="1" idcar="1" else: idpro=self.oProducto.idProducto idcar=self.oCarrito.idCarrito cursor = database.cursor() query = ''' SELECT * from detalleCarrito WHERE idDetalleCarrito = '{}' or (idProducto='{}' and idCarrito='{}') '''.format(self.__idDetalleCarrito,idpro,idcar) cursor.execute(query) lista = cursor.fetchall()[0] texto= 0 if idpro != lista[2] else 1 self.__idDetalleCarrito=self.__idDetalleCarrito self.oProducto= Producto(idProducto=lista[2]) self.oProducto.obtenerProducto() self.oCarrito= Carrito(idCarrito=lista[1]) self.oCarrito.obtenerCarrito() self.__cantidad=lista[3] self.__subtotal=lista[4] except Exception as e: print("Error: {}".format(e)) finally: database.close() return texto #Metodos de la clase def calcularSubTotal(self): try: return float(self.oProducto.precio_venta) * int(self.__cantidad) except: return None def aumentarCantidad(self,num): self.__cantidad+=num self.actualizarDetalleCarrito() def disminuirCantidad(self,num): if(self.__cantidad>=num): self.__cantidad-=num self.actualizarDetalleCarrito() else: print("Error: No hay suficiente stock para disminuir") def verificarstock(self,idC): Cli=Cliente(idCliente=idC).generarListaCarrito()[0][0] detalles=Carrito(idCarrito=Cli).generarListaDetalleCarrito() veri=1 for det in detalles: pro=Producto(idProducto=det[2]) pro.obtenerProducto() if int(det[3])>int(pro.stock): self.idDetalleCarrito=det[0] self.obtenerDetalleCarrito() self.cantidad=pro.stock if(pro.stock==0): self.eliminarDetalleCarrito() else: self.actualizarDetalleCarrito() veri=0 return veri
while company not in company2.companyList: print("No coincide con ninguna empresa, vuelve a intentar") company = input( "Ingrese nombre de la compañia disponible ").upper() if company in company2.companyList: print("Excelente") break cliente.insertCliente(nombreCliente, rfcCliente, direccionCliente, company) input("Presiona enter para continuar") elif opcionMenu == "3": product = Producto() nombreProducto = input("Ingrese nombre de producto: ") precioProducto = input("Ingrese precio de producto: ") product.insertarProducto(nombreProducto, precioProducto) input("Presione enter para continuar") elif opcionMenu == "4": compra = Compra() cliente = Cliente() cliente.fetchClientes() producto = Producto() producto.fetchProduct() if len(cliente.clienteList) == 0 or len(producto.productosList) == 0: