def buscarProducto(): global hija prod = Productos.Productos() lista_productos = prod.leer_lista() hija = Toplevel() hija.title("Busca Producto") hija.iconbitmap("images/logo.ico") hija.resizable(0, 0) frame2 = Frame(hija) frame2.config(bg=color, width="650", height="350") frame2.pack(fill="both", expand="False") listaProdEntry = ttk.Combobox(frame2, values=lista_productos, width=40, state="readonly") listaProdEntry.grid(row=1, column=1, sticky="w", padx=5, pady=5) listaProdEntry.config(font="Arial 10") eligeItemBtn = Button( frame2, text="Elige Producto", command=lambda: muestraProducto(listaProdEntry.get())) eligeItemBtn.grid(row=2, column=1, ipady=5) eligeItemBtn.config(width="20")
def listaPrecios(): global c, text hoy=datetime.now() dia_hoy = hoy.strftime("%d/%m/%Y") pagina=1 pais=codigoPaisEntry.get() if len(pais)>2: pais=pais[0:2] if pais=="" or len(pais)<2: messagebox.showerror("ERROR", "Cantidad del <<<Código de Pais>>>\n deben ser 2 caracteres") return # Busco datos del pais codigoPaisEntry.set(pais) el_pais=Paises.Paises() nombre_pais=el_pais.busca_nombre(pais) # Busco los precios de ese pais e imprimo prod=Productos.Productos() pre=Pais_Precios.Pais_Precios() lista=pre.lista_precios(pais) nombre_archivo="Listadoprecios_"+nombre_pais+".pdf" c=canvas.Canvas(nombre_archivo, pagesize=A4) cabecera(nombre_pais) renglon=0 text.textLine("Producto Precio") text.textLine("") for li in lista: renglon=renglon+1 cod_prod=li[0] precio_prod=li[1] #print(cod_prod) prod.busca_producto(cod_prod) #print(prod.nombre_producto," precio: ",'{:.2f}'.format(precio_prod)) n_p=prod.nombre_producto+" " n_p=n_p[0:50] p_p='{:10.2f}'.format(precio_prod) text.textLine(n_p+" "+p_p) if renglon==50: renglon=0 pie(pagina,dia_hoy) pagina+=1 # nueva hoja cabecera(nombre_pais) text.textLine("Producto Precio") text.textLine("") pie(pagina,dia_hoy) c.save()
def agregaItem(item,cant): global cod_pais global cod_producto global hija if item=="": messagebox.showerror("ERROR", "Debe elegir un producto") hija.destroy() return if cant=="" or int(cant)<1: messagebox.showerror("ERROR", "Cantidad no puede ser menor a 1") hija.destroy() return # Busca Producto y formatea cod=item[0:10] p=Productos.Productos() p.busca_producto(cod) cod_producto=cod producto=p.nombre_producto+" " producto=producto[0:35] # Formatea Cantidad cant=" "+cant+" " cant=cant[-8:-1] # busca precio y formatea pp=Pais_Precios.Pais_Precios() precio=pp.busca_precio(cod_pais, cod_producto) pre=" "+str(precio)+" " pre=pre[-11:-1] #total= float(precio) * float(cant) #total_ped.set(total_ped.get()+total) #p_total=" "+str('{:,.3f}'.format(total)) #p_total=p_total[-15:-1] # Muestro precio y permito ajustar valor aux1Lbl=Label(frame2,text="precio: ") aux1Lbl.grid(row=2,column=1,ipady=5,sticky="e") aux1Lbl.config(bg=color) precio_un=StringVar() precioEntry=Entry(frame2,textvariable=precio_un,width=10) precioEntry.grid(row=2,column=2,ipady=5) precio_un.set(pre) #item=p.cod_producto+" - "+producto+" - "+cant+ " - "+pre+" - "+p_total #confirmaBtn=Button(frame2,text="Confirma precio", command=lambda:confirma_precio(item)) confirmaBtn=Button(frame2,text="Confirma precio", command=lambda:confirma_precio(cod,producto,cant,precioEntry.get())) confirmaBtn.grid(row=4,column=1,ipady=5) confirmaBtn.config(width="20")
def muestraProducto(prod): global hija # Busca Producto y formatea cod = prod[0:10] p = Productos.Productos() p.busca_producto(cod) codigo1.set(p.cod_producto) codigoBaseEntry.set(p.cod_producto_base) nombre.set(p.nombre_producto) peso.set(p.peso_producto) volumen.set(p.volumen_producto) hija.destroy()
def grabarProd(cod1, cod2, nom, peso, vol): # Si ya existe registro, actualizar # caso contratio, ingresar # - - - Control Datos ----- f = True if cod1 == "" or len(cod1) != 10: if len(cod1) != 10: messagebox.showerror( "ERROR", "Cantidad del <<<Código de Producto>>>\n deben ser 10 caracteres" ) return f = False if len(cod2) > 6: cod2 = cod2[0:6] codigoBaseEntry.set(cod2) if cod2 == "" or len(cod2) != 6: if len(cod2) != 6: messagebox.showerror( "ERROR", "Cantidad del <<<Código Base>>>\n deben ser 6 caracteres") return f = False if nom == "": f = False if peso == "": f = False if vol == "": f = False if (f == False): messagebox.showwarning("ERROR", "Faltó completar campos...") return dato_p = Productos.Productos() dato_p.setear_producto(cod1, cod2, nom, peso, vol) if dato_p.existe_producto(): # Actualizar dato_p.actualizar_producto() else: # Ingresar dato_p.guardar_producto() limpiaDatos()
def busca_item(self, id): con = sqlite3.connect("SistemaExpo") cur = con.cursor() cur.execute("SELECT * FROM Item_Pedido WHERE id_pedido=" + str(id)) con.commit() datos_lineas = cur.fetchall() lista = [] for dato in datos_lineas: prod = Productos.Productos() prod.busca_producto(dato[2]) producto = prod.nombre_producto + " " producto = producto[0:35] item = dato[2] + " - " + producto + " - " # Formatea Cantidad cant = " " + str(dato[3]) + " " cant = cant[-8:-1] item = item + cant + " - " # busca precio y formatea precio = dato[4] pre = " " + str(precio) + " " pre = pre[-11:-1] total = float(precio) * float(cant) p_total = " " + str('{:,.3f}'.format(total)) p_total = p_total[-15:-1] item = item + pre + " - " + p_total lista.append(item) #item=p.cod_producto+" - "+producto+" - "+cant+ " - "+pre+" - "+p_total con.close() return lista
def buscaItem(): global hija prod=Productos.Productos() lista_productos=prod.leer_lista() hija=Toplevel() hija.title("Carga de Items") hija.iconbitmap("images/logo.ico") hija.resizable(0,0) frame2=Frame(hija) frame2.config(bg=color, width="650", height="550") frame2.pack(fill="both", expand="False") listaProdEntry=ttk.Combobox(frame2,values=lista_productos,width=40,state="readonly") listaProdEntry.grid(row=1,column=1,sticky="w",padx=5, pady=5) listaProdEntry.config(font="Arial 10") cantLabel=Label(frame2,text="Cantidad") cantLabel.grid(row=0,column=2,ipady=5) cantLabel.config(bg=color) cantidad=StringVar() cantProdEntry=Entry(frame2,textvariable=cantidad,width=10) cantProdEntry.grid(row=1,column=2,ipady=5) aux1Lbl=Label(frame2,text="") aux1Lbl.grid(row=2,column=1,ipady=5) aux1Lbl.config(bg=color) eligeItemBtn=Button(frame2,text="Elige Item", command=lambda:agregaItem(listaProdEntry.get(),cantProdEntry.get())) eligeItemBtn.grid(row=3,column=1,ipady=5) eligeItemBtn.config(width="20") aux2Lbl=Label(frame2,text="") aux2Lbl.grid(row=4,column=1,ipady=5) aux2Lbl.config(bg=color) def agregaItem(item,cant): global cod_pais global cod_producto global hija if item=="": messagebox.showerror("ERROR", "Debe elegir un producto") hija.destroy() return if cant=="" or int(cant)<1: messagebox.showerror("ERROR", "Cantidad no puede ser menor a 1") hija.destroy() return # Busca Producto y formatea cod=item[0:10] p=Productos.Productos() p.busca_producto(cod) cod_producto=cod producto=p.nombre_producto+" " producto=producto[0:35] # Formatea Cantidad cant=" "+cant+" " cant=cant[-8:-1] # busca precio y formatea pp=Pais_Precios.Pais_Precios() precio=pp.busca_precio(cod_pais, cod_producto) pre=" "+str(precio)+" " pre=pre[-11:-1] #total= float(precio) * float(cant) #total_ped.set(total_ped.get()+total) #p_total=" "+str('{:,.3f}'.format(total)) #p_total=p_total[-15:-1] # Muestro precio y permito ajustar valor aux1Lbl=Label(frame2,text="precio: ") aux1Lbl.grid(row=2,column=1,ipady=5,sticky="e") aux1Lbl.config(bg=color) precio_un=StringVar() precioEntry=Entry(frame2,textvariable=precio_un,width=10) precioEntry.grid(row=2,column=2,ipady=5) precio_un.set(pre) #item=p.cod_producto+" - "+producto+" - "+cant+ " - "+pre+" - "+p_total #confirmaBtn=Button(frame2,text="Confirma precio", command=lambda:confirma_precio(item)) confirmaBtn=Button(frame2,text="Confirma precio", command=lambda:confirma_precio(cod,producto,cant,precioEntry.get())) confirmaBtn.grid(row=4,column=1,ipady=5) confirmaBtn.config(width="20")
# - - - - - Entrys - - - - - - lista = [] lista_pais = Paises.Paises() lista = lista_pais.leer_lista(lista) codigoPaisEntry = ttk.Combobox(frame, values=lista, width=40, state="readonly") codigoPaisEntry.grid(row=0, column=1, sticky="w", padx=5, pady=5) codigoPaisEntry.config(font="Arial 10") bool_var = BooleanVar() fijoCheck = ttk.Checkbutton(frame, text="Fijar", variable=bool_var) fijoCheck.grid(row=0, column=2) lista2 = [] lista_prod = Productos.Productos() lista2 = lista_prod.leer_lista() codigoProdEntry = ttk.Combobox(frame, values=lista2, width=40, state="readonly") codigoProdEntry.grid(row=1, column=1, sticky="w", padx=5, pady=5) codigoProdEntry.config(font="Arial 10") precioEntry = Entry(frame, textvariable=precio, width=10) precioEntry.grid(row=2, column=1, sticky="w", padx=5, pady=5) precioEntry.config(font="Arial 15") buscarBtn = Button( frame, text="Buscar",