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()
예제 #3
0
    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()
예제 #6
0
    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
예제 #7
0
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",