
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.
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


0