|
#!/usr/bin/python |
|
# -*- coding: utf-8 -*- |
|
|
|
#autores: Cynthia Lizeth Barron Morales, Alfredo De Jesus Santos Gutierrez |
|
|
|
from Tkinter import * |
|
import Tkinter as tk |
|
import tkMessageBox |
|
global cad,TH,CH,PR,CR,PP,CP,PB,CB,totf,iva,totalP,FP |
|
from pymongo import MongoClient |
|
|
|
def thamb(): |
|
hamb=var1.get() |
|
cantidad=cant.get() |
|
costohamb = 0 |
|
if hamb == "Hamburguesa sencilla": |
|
costohamb=15 |
|
elif hamb == "Hamburguesa Doble": |
|
costohamb=25 |
|
elif hamb == "Hamburguesa triple": |
|
costohamb=35 |
|
costo=cantidad*costohamb |
|
return costo |
|
|
|
def comp(): |
|
costocomp=0 |
|
cantidadR = cant1.get() |
|
cantidadP = cant2.get() |
|
cantidadB = cant3.get() |
|
refresco=CheckVar1.get() |
|
papas=CheckVar2.get() |
|
burrito=CheckVar3.get() |
|
if refresco ==1: |
|
costocomp=costocomp+(15*cantidadR) |
|
if papas ==1: |
|
costocomp=costocomp+(20*cantidadP) |
|
if burrito ==1: |
|
costocomp=costocomp+(18*cantidadB) |
|
return costocomp |
|
|
|
def impuesto(): |
|
imp = (0.15 * (thamb() + comp())) |
|
return imp |
|
|
|
def limpiarcajas(): |
|
cuadrohamb.delete(0, 'end') |
|
cuadrorefresco.delete(0,'end') |
|
cuadroburrito.delete(0,'end') |
|
cuadropapas.delete(0,'end') |
|
limpiarbotones() |
|
|
|
def limpiarbotones(): |
|
var1.set("No ha selecionado") |
|
CheckVar1.set(None) |
|
CheckVar2.set(None) |
|
CheckVar3.set(None) |
|
var.set(None) |
|
rtotalfinal = Label(miFrame, text=" ", bg="yellow", font=("Arial", 14), ).grid(row=9, column=2, pady="1",padx="15", sticky="w") |
|
riva = Label(miFrame, text=" ", bg="yellow", font=("Arial", 14)).grid(row=8, column=2, pady="1", padx="15", sticky="w") |
|
rtotal = Label(miFrame, text=" ", bg="yellow", font=("Arial", 14)).grid(row=7, column=2, pady="1", padx="15", sticky="w") |
|
limpiarlistapedido() |
|
|
|
|
|
def listapedido(): |
|
cad="" |
|
hamb = var1.get() |
|
refresco = CheckVar1.get() |
|
papas = CheckVar2.get() |
|
burrito = CheckVar3.get() |
|
listpedido = Listbox(miFrame, width=50) |
|
if hamb != "No ha selecionado" or refresco ==1 or papas ==1 or burrito ==1: |
|
if hamb == "Hamburguesa sencilla": |
|
cad += "Hamburguesa sencilla $15 c/u" |
|
elif hamb == "Hamburguesa Doble": |
|
cad += "Hamburguesa Doble $25 c/u" |
|
elif hamb == "Hamburguesa triple": |
|
cad += "Hamburguesa triple $35 c/u" |
|
listpedido.insert(0, cad) |
|
# insert |
|
if refresco == 1: |
|
listpedido.insert(1, "Refresco $15 c/u") |
|
if papas == 1: |
|
listpedido.insert(2, "Papas $20 c/u") |
|
if burrito == 1: |
|
listpedido.insert(3, "Burrito $18 c/u") |
|
#DELETE |
|
elif hamb == "No ha selecionado" and refresco == 0 and papas == 0 and burrito == 0: |
|
listpedido.delete(0) |
|
listpedido.delete(1) |
|
listpedido.delete(2) |
|
listpedido.delete(3) |
|
|
|
listpedido.grid(row=2, column=2, pady="1", padx="4") |
|
|
|
def limpiarlistapedido(): |
|
|
|
CheckVar1.set(0) |
|
CheckVar2.set(0) |
|
CheckVar3.set(0) |
|
listapedido() |
|
|
|
def totali(): |
|
total=thamb()+comp() |
|
return total |
|
|
|
def totalf(): |
|
TH = var1.get() |
|
CH = cant.get() |
|
PR = CheckVar1.get() |
|
CR = cant1.get() |
|
PP = CheckVar2.get() |
|
CP = cant2.get() |
|
PB = CheckVar3.get() |
|
CB = cant3.get() |
|
formapago=var.get() |
|
totf=0 |
|
|
|
|
|
if TH != "No ha selecionado" or PR == 1 or PP == 1 or PB == 1: |
|
|
|
if TH == "Hamburguesa sencilla": |
|
print "Hamburguesa sencilla, cantidad: ", CH |
|
|
|
elif TH == "Hamburguesa Doble": |
|
print "Hamburguesa Doble, cantidad: ", CH |
|
|
|
elif TH == "Hamburguesa triple": |
|
print "Hamburguesa triple, cantidad: ", CH |
|
|
|
if PR == 1: |
|
print "Refresco, cantidad: ", CR |
|
|
|
if PP == 1: |
|
print "Papas, cantidad: ", CP |
|
|
|
if PB == 1: |
|
print "Burrito, cantidad: ", CB |
|
|
|
|
|
if formapago ==1: |
|
totf=totali()+impuesto() |
|
iva=impuesto() |
|
FP="Tarjeta" |
|
print "Forma de pago: ",FP |
|
|
|
elif formapago ==2: |
|
totf=totali() |
|
iva=0 |
|
FP="Efectivo" |
|
print "Forma de pago: ",FP |
|
totalP = totali() |
|
|
|
print "Total: ", totalP |
|
print "Iva: ", iva |
|
print "Total final: ", totf |
|
rtotalfinal = Label(miFrame, text=totf, bg="yellow", font=("Arial", 14), ).grid(row=9, column=2, pady="1", padx="15",sticky="w") |
|
riva = Label(miFrame, text=iva, bg="yellow", font=("Arial", 14)).grid(row=8, column=2, pady="1", padx="15",sticky="w") |
|
rtotal = Label(miFrame, text=totali(), bg="yellow", font=("Arial", 14)).grid(row=7, column=2, pady="1", padx="15",sticky="w") |
|
listapedido() |
|
|
|
conexion(TH,CH,CB,CR,CP,formapago,totf) |
|
|
|
def conexion(TH,CH,CB,CR,CP,formapago,totf): |
|
#TH es tipo de hamburguesa |
|
#CH es cantidad de hamburguesas |
|
#CB es cantidad de burritos |
|
#CR es contidad de refrescos |
|
#CP es cantidad de papas |
|
#formapago efectivo=2 y targeta=1 |
|
#totf es el total de la venta |
|
print 'envio a base de datos' |
|
client = MongoClient('localhost', 27017) |
|
db = client['PuntoVenta']#equivalente a use punto de venta |
|
document = {'tipo_de_hamburguesa': TH, 'cantidad_hamburguesa': CH, 'cantidad_burritos': CB, |
|
'cantidad_refrescos': CR,'cantidad_papas':CP,'tipo_pago': formapago,'total_con_iva':totf} |
|
_id = db['Ventas'].insert(document) |
|
print _id |
|
return |
|
|
|
def ocultar(ventana): ventana.withdraw() |
|
|
|
raiz=Tk() |
|
raiz.title("ventana primaria") |
|
raiz.resizable(1,1) #para permitir agrandar o no el ancho o la altura con el moyuse |
|
#raiz.iconbitmap("Hamburger.ico") |
|
#raiz.geometry("500×600") |
|
raiz.config(bg="orange") |
|
raiz.config(bd=15) |
|
raiz.config(relief="groove") |
|
|
|
miFrame=Frame(raiz) |
|
miFrame.pack() |
|
miFrame.config(bg="yellow") |
|
miFrame.config(bd=10) |
|
miFrame.config(relief="sunken") |
|
miFrame.config(cursor="hand2") |
|
|
|
#Etiquetas |
|
miLabel1=Label(miFrame, text="Hamburguesa feliz", fg="red",bg="yellow",font=("Arial Black",25)).grid(row=0,column=0,pady="4") |
|
OrdenH=Label(miFrame, text="Seleccione la hamburguesa", bg="yellow",font=("Arial",14)).grid(row=1,column=0,pady="1",padx="15", sticky="w") |
|
Pedido=Label(miFrame, text="Pedido:", bg="yellow",font=("Arial",14)).grid(row=1,column=2,pady="1") |
|
cantidadhamb=Label(miFrame, text="Cantidad de Hamburguesas:", bg="yellow",font=("Arial",14)).grid(row=2,column=0,pady="1",padx="15", sticky="w") |
|
complementos=Label(miFrame, text="Complementos:", bg="yellow",font=("Arial",14)).grid(row=3,column=0,pady="1",padx="15", sticky="w") |
|
Cantidadcomp=Label(miFrame, text="Cantidad complementos:", bg="yellow",font=("Arial",14)).grid(row=3,column=1,pady="1",padx="15", sticky="w") |
|
Formadepago=Label(miFrame, text="Forma de pago:", bg="yellow",font=("Arial",14)).grid(row=7,column=0,pady="1",padx="15", sticky="w") |
|
Total=Label(miFrame, text="Total:", bg="yellow",font=("Arial",14)).grid(row=7,column=1,pady="1",padx="15", sticky="w") |
|
IVA=Label(miFrame, text="IVA:", bg="yellow",font=("Arial",14)).grid(row=8,column=1,pady="1",padx="15", sticky="w") |
|
TotalFinal=Label(miFrame, text="Total final:", bg="yellow",font=("Arial",14)).grid(row=9,column=1,pady="1",padx="15", sticky="w") |
|
|
|
#OptionMenu |
|
var1=tk.StringVar(miFrame) |
|
var1.set("No ha selecionado") |
|
opciones=["Hamburguesa sencilla","Hamburguesa Doble","Hamburguesa triple"] |
|
opcion=tk.OptionMenu(miFrame,var1,*opciones) |
|
opcion.config(width=20) |
|
opcion.grid(row=1,column=1) |
|
|
|
#ListBox |
|
c= Listbox(miFrame, width=50).grid(row=2, column=2, pady="1", padx="4") |
|
|
|
#Entrys |
|
cant=tk.IntVar(miFrame) |
|
cant1=tk.IntVar(miFrame) |
|
cant2=tk.IntVar(miFrame) |
|
cant3=tk.IntVar(miFrame) |
|
cuadrohamb=Entry(miFrame, textvariable=cant ) |
|
cuadrohamb.grid(row=2,column=1,pady="1") |
|
cuadrohamb.config(fg="blue", justify="center") |
|
cuadrorefresco=Entry(miFrame, textvariable=cant1 ) |
|
cuadrorefresco.grid(row=4,column=1,pady="1") |
|
cuadrorefresco.config(fg="blue", justify="center") |
|
cuadropapas=Entry(miFrame,textvariable=cant2 ) |
|
cuadropapas.grid(row=5,column=1,pady="1") |
|
cuadropapas.config(fg="blue", justify="center") |
|
cuadroburrito=Entry(miFrame,textvariable=cant3 ) |
|
cuadroburrito.grid(row=6,column=1,pady="1") |
|
cuadroburrito.config(fg="blue", justify="center") |
|
|
|
#Checkbutton |
|
CheckVar1=IntVar() # |
|
CheckVar2=IntVar() |
|
CheckVar3=IntVar() |
|
Refresco=Checkbutton(miFrame,text="Refresco",bg="yellow", variable=CheckVar1) |
|
Refresco.grid(row=4,column=0, sticky="w",padx="15") |
|
Refresco.config(onvalue=1, offvalue=0) |
|
Papas=Checkbutton(miFrame,text="Papas", bg="yellow",variable=CheckVar2) |
|
Papas.grid(row=5,column=0, sticky="w",padx="15") |
|
Papas.config(onvalue=1, offvalue=0) |
|
Burrito=Checkbutton(miFrame,text="Burrito",bg="yellow", variable=CheckVar3) |
|
Burrito.grid(row=6,column=0, sticky="w",padx="15") |
|
Burrito.config(onvalue=1, offvalue=0) |
|
|
|
#Radiobutton |
|
var = IntVar() |
|
R1 = Radiobutton(miFrame, text="Tarjeta de credito",bg="yellow", variable=var, value=1)#, command=sel) |
|
R1.grid(row=8,column=0, sticky="w",padx="15") |
|
R2 = Radiobutton(miFrame, text="Efectivo",bg="yellow", variable=var, value=2) #, command=sel) |
|
R2.grid(row=9,column=0, sticky="w",padx="15") |
|
|
|
#botones |
|
Cancelar=Button(miFrame, text= "Cancelar",command=limpiarcajas) |
|
Cancelar.grid(row=10,column=0, sticky="w",padx="15") |
|
Comprar=Button(miFrame, text= "Hacer pedido", bg="Green",command=totalf) |
|
Comprar.grid(row=10,column=2, sticky="e",padx="15") |
|
Terminar=Button(raiz, text= "Terminar", bg="Red", command=lambda: ocultar(raiz)) |
|
Terminar.pack() |
|
|
|
raiz.mainloop() |