Python - Ayuda con un programa de python

 
Vista:
sin imagen de perfil

Ayuda con un programa de python

Publicado por Mayeli (3 intervenciones) el 16/12/2021 09:51:10
from tkinter import *
from tkinter import ttk

class Interfaz:

def __init__(self,ventana):
self.ventana = ventana
self.cajaCantidad = IntVar()
self.cajaTotal = IntVar()
self.total = 0
self.cajaSubtotal=IntVar()
self.cajaImpuesto=IntVar()
self.sub_total=0
self.Articulo=StringVar()
self.Precio=StringVar()
self.dibujarComponentes()

Entry(self.ventana,textvariable=self.Articulo).pack()
Entry(self.ventana,textvariable=self.Precio).pack()

def dibujarComponentes(self):
self.ventana.title("Caja Registrado")
self.ventana.geometry("650x450")
Label(self.ventana,text="Selecciona tu producto: ").place(x=10,y=10)
Label(self.ventana,text="Seleciona la cantidad: ").place(x=10,y=60)
Label(self.ventana,text="El Subtotal es: ").place(x=449,y=400)
Entry(self.ventana,textvariable=self.cajaCantidad).place(x=10,y=85)
Entry(self.ventana,textvariable=self.cajaSubtotal).place(x=520,y=400)
Entry(self.ventana,textvariable=self.cajaImpuesto).place(x=520,y=420)
Button(self.ventana,text="Agregar",command=self.agregarProducto).place(x=10,y=110)

self.tabla = ttk.Treeview(self.ventana,columns=("Cantidad","Subtotal"))
self.tabla.heading("#0",text="Producto")
self.tabla.heading("Cantidad",text="Cantidad")
self.tabla.heading("Subtotal",text="Subtotal")
self.tabla.place(x=10,y=150)

def agregarProducto(self):
producto = self.Articulo.get()
precio = self.Precio.get()
cantidad = self.cajaCantidad.get()
subtotal = int(precio)*int(cantidad)
impuesto =self.sub_total* 0.1
self.cajaImpuesto.set(impuesto)
self.tabla.insert("",END,text=producto,values=(cantidad,"$"+str(subtotal)))
self.sub_total = self.sub_total + subtotal
self.cajaSubtotal.set("$"+str(self.sub_total))


obj = Interfaz(Tk())
obj.ventana.mainloop()


el codigo que llevo es este sin embargo en la parte de impuesto al inicio no marca el impuesto, y tambien no se como terminar el problema.
el problema me pide:

al ingresar a esta opción el usuario ingresara los
datos de cada producto para realizar una factura de lo que el cliente está
interesado en comprar. La cantidad de productos es variable y se le debe
preguntar al usuario si desea agregar otro producto. Los datos que el
cliente debe introducir son: código del artículo, descripción del artículo,
cantidad a comprar, precio unitario. Al final el sistema debe calcular el total
por línea es decir si el cliente llevar 3 productos con un precio individual de
$3.25 el total de la línea va ser (3*3.25) = $9.75.
Al final de la compra se debe calcular el subtotal de la factura y calcular el
impuesto de forma general de 10%. (se debe expresar por separado este
impuesto) y luego se debe sumar el impuesto con el subtotal para tener el
valor total a pagar de la factura.
AL terminar de generar la factura le debe salir usuario si desea grabar la
factura y eso generar que se cree un archivo de texto plano con el nombre
de factura.txt que va tener el total de la factura. Si el cliente indica que no
va grabar la factura debe regresar al menú principal y no se graba nada en
el archivo plano. La forma como se va grabar es agregando líneas al archivo
Txt. Es decir que no debe reescribir el archivo, si no agregar la línea cuando
se necesario.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con un programa de python

Publicado por tincopasan (1082 intervenciones) el 16/12/2021 14:07:46
1)el editor trae un tag </>Código si lo usas y ponés código dentro de esas etiquetas será más facil reproducir el código
2)no tengo tiempo ahora así que solo haré unos cambios
3)si te fijas el planteo muestra flotantes no enteros así que lo cambié
4)se le debe preguntar al usuario si desea agregar otro producto, lo agregué
5) no comparto la lógica general del código, pero bueno
6)intenta agregar el código de la función para escribir el archivo
7)hay que implementar las opciones si no continua y grabar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
 
class Interfaz:
 
    def __init__(self,ventana):
        self.ventana = ventana
        self.cajaCantidad = IntVar()
        self.cajaTotal = IntVar()
        self.total = 0
        self.cajaSubtotal=IntVar()
        self.cajaImpuesto=IntVar()
        self.sub_total=0
        self.Articulo=StringVar()
        self.Precio=StringVar()
        self.dibujarComponentes()
 
        Entry(self.ventana,textvariable=self.Articulo).pack()
        Entry(self.ventana,textvariable=self.Precio).pack()
 
    def dibujarComponentes(self):
        self.ventana.title("Caja Registrado")
        self.ventana.geometry("650x450")
        Label(self.ventana,text="Selecciona tu producto: ").place(x=10,y=10)
        Label(self.ventana,text="Seleciona la cantidad: ").place(x=10,y=60)
        Label(self.ventana,text="El Subtotal es: ").place(x=449,y=400)
        Entry(self.ventana,textvariable=self.cajaCantidad).place(x=10,y=85)
        Entry(self.ventana,textvariable=self.cajaSubtotal).place(x=520,y=400)
        Entry(self.ventana,textvariable=self.cajaImpuesto).place(x=520,y=420)
        Button(self.ventana,text="Agregar",command=self.agregarProducto).place(x=10,y=110)
 
        self.tabla = ttk.Treeview(self.ventana,columns=("Cantidad","Subtotal"))
        self.tabla.heading("#0",text="Producto")
        self.tabla.heading("Cantidad",text="Cantidad")
        self.tabla.heading("Subtotal",text="Subtotal")
        self.tabla.place(x=10,y=150)
 
    def agregarProducto(self):
        producto = self.Articulo.get()
        precio = self.Precio.get()
        cantidad = self.cajaCantidad.get()
        subtotal = float(precio)*int(cantidad)
        impuesto ="{$ :,.3f}".format(subtotal* 0.1)
        self.cajaImpuesto.set(impuesto)
        self.tabla.insert("",END,text=producto,values=(cantidad,"$"+str(subtotal)))
        self.sub_total = self.sub_total + subtotal
        self.cajaSubtotal.set(f"$ {self.sub_total}")
 
    def continuar(self):
        seguir = messagebox.askyesno("Atención","¿Desea agregar otro producto?",icon="question")
 
obj = Interfaz(Tk())
obj.ventana.mainloop()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Ayuda con un programa de python

Publicado por Mayeli (3 intervenciones) el 17/12/2021 08:12:32
Gracias, con respecto a la factura me podrias ayudar con un ejemplo, realmente no entiendo cómo hacer esa parte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar