conexion mongo db
autores:
Cynthia Lizeth Barron Morales,
Alfredo De Jesus Santos Gutierrez
#!/usr/bin/python
# -*- coding: utf-8 -*-
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):
print 'envio a base de datos'
client = MongoClient('localhost', 27017)
db = client['PuntoVenta']
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("500x600")
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()
Comentarios
Publicar un comentario