Codigo:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import tkMessageBox | |
from Tkinter import * | |
from tkMessageBox import * | |
from Tkinter import OptionMenu | |
from PIL import ImageTk, Image | |
from pymongo import MongoClient | |
import datetime | |
global numerojuegos,cargo,total,finalconcargos,fecha | |
format= "%d/%m/%Y" | |
today = datetime.date.today() | |
fecha=today.strftime(format) | |
#Definiendo ventana | |
ventana = Tk() | |
ventana.title("Blockbuster") | |
ventana = Canvas(width = 420, height = 420, bg = '#3C48D1') | |
ventana.pack(expand = YES, fill = BOTH) | |
#Banner | |
width = 420 | |
height = 420 | |
img = Image.open("blockbuster.png") | |
img = img.resize((width,height), Image.ANTIALIAS) | |
photoImg = ImageTk.PhotoImage(img) | |
ventana.create_image(15, -150, anchor = NW, image = photoImg) | |
vp = Frame(ventana) | |
vp.pack(expand=1) #Configurar el metodo pack() | |
vp.config(bg="#3C48D1") | |
vp.config(width="300", height="400") | |
vp.grid(column=0, row=0, padx=(100, 100), pady=(100, 100)) | |
vp.rowconfigure(0, weight=1) | |
Fecha=Label(vp,text="Fecha de Corte") | |
Fecha.grid(column=0, row=7) | |
Fecha.config(background="Yellow",foreground="black") | |
FechaEntry = " " | |
FechaEntry = Entry(vp, width=10, textvariable=FechaEntry) | |
FechaEntry.grid(row=8, column=0) | |
FechaEntry.config(background="Yellow",foreground="black") | |
FechaEntry.insert(0, fecha) | |
print fecha | |
tipo = StringVar(vp) | |
tipo.set("...") | |
cantidad = StringVar(vp) | |
cantidad.set("...") | |
pago = StringVar(vp) | |
pago.set("...") | |
etiqueta_tipo = Label(vp, text='Videojuego a rentar : ') | |
etiqueta_tipo.config(background="Yellow",foreground="black") | |
ent_tipo = OptionMenu(vp, tipo, "Silent Hill", "Fire Emblem Awakening", "Super Smash Bros Melee","The Witcher 3") | |
etiqueta_tipo.grid(row=1, column=1, padx=(10, 10), pady=(10, 10), sticky=W) | |
ent_tipo.grid(row=1, column=0) | |
ent_tipo.config(background="Yellow",foreground="black") | |
print ent_tipo | |
etiqueta_cantidad =Label(vp, text='Dias a rentar: ') | |
etiqueta_cantidad.config(background="Yellow",foreground="black") | |
ent_numero = OptionMenu(vp, cantidad, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10") | |
etiqueta_cantidad.grid(row=4, column=1, padx=(10, 10), pady=(10, 10), sticky=W) | |
ent_numero.grid(row=4, column=0) | |
ent_numero.config(background="Yellow",foreground="black") | |
etiqueta_pago =Label(vp, text='Forma de pago: ') | |
etiqueta_pago.config(background="Yellow",foreground="black") | |
ent_pago =OptionMenu(vp, pago, "Efectivo", "Tarjeta") | |
etiqueta_pago.grid(row=6, column=1, padx=(10, 10), pady=(10, 10), sticky=W) | |
ent_pago.grid(row=6, column=0) | |
ent_pago.config(background="Yellow",foreground="black") | |
def Conexion(numerojuegos,cargo,total,final): | |
client = MongoClient('localhost',27017) | |
db = client['blockbuster'] | |
document = {'numero_juegos':numerojuegos,'pago_tarjeta':cargo,'pago_efectivo':total,'pago_finalcontarjeta':final,"Fecha_dia":fecha } | |
_id= db['registro'].insert(document) | |
def calcular(): | |
juego = str(tipo.get()) | |
numerojuegos = int(cantidad.get()) | |
dinero = str(pago.get()) | |
if juego == "Silent Hill" and numerojuegos > 0 and dinero == "Tarjeta": | |
total = numerojuegos * 40 | |
cargo = total * 0.08 | |
finalconcargos = total + cargo | |
tkMessageBox.showinfo("[Renta Silent Hill : Pago con Tarjeta], su total es de: " ,finalconcargos) | |
print numerojuegos | |
print cargo | |
print total | |
print finalconcargos | |
elif juego == "Silent Hill" and numerojuegos > 0 and dinero == "Cupon Renta 30%": | |
total = numerojuegos * 40 | |
cargo = total * 0.30 | |
finalconcargos = total - cargo | |
tkMessageBox.showinfo("[Silent Hill : Descuento de Cupon ], su total es de: " ,finalconcargos) | |
print numerojuegos | |
print cargo | |
print total | |
print finalconcargos | |
elif juego == "Silent Hill" and numerojuegos > 0 and dinero == "Efectivo": | |
total = numerojuegos * 40 | |
cargo = 0 | |
finalconcargos = 0 | |
tkMessageBox.showinfo("[Silent Hill : Pago con Efectivo], su total es de: ", total) | |
print numerojuegos | |
print cargo | |
print total | |
print finalconcargos | |
elif juego == "Fire Emblem Awakening" and numerojuegos > 0 and dinero == "Tarjeta": | |
total = numerojuegos * 50 | |
cargo = total * 0.08 | |
finalconcargos = total + cargo | |
tkMessageBox.showinfo("[Fire Emblem Awakening : Pago con Tarjeta], su total es de: " ,finalconcargos) | |
print numerojuegos | |
print cargo | |
print total | |
print finalconcargos | |
elif juego == "Fire Emblem Awakening" and numerojuegos > 0 and dinero == "Efectivo": | |
total = numerojuegos * 50 | |
cargo = 0 | |
finalconcargos = 0 | |
tkMessageBox.showinfo("[Fire Emblem Awakening : Pago con Efectivo], su total es de: " , total) | |
print numerojuegos | |
print cargo | |
print total | |
print finalconcargos | |
elif juego == "Super Smash Bros Melee" and numerojuegos > 0 and dinero == "Tarjeta": | |
total = numerojuegos * 60 | |
cargo = total * 0.05 | |
finalconcargos = total + cargo | |
tkMessageBox.showinfo("[Super Smash Bros Melee : Pago con Tarjeta], su total es de: " ,finalconcargos) | |
print numerojuegos | |
print cargo | |
print total | |
print finalconcargos | |
elif juego == "Super Smash Bros Melee" and numerojuegos > 0 and dinero == "Efectivo": | |
total = numerojuegos * 60 | |
cargo = 0 | |
finalconcargos = 0 | |
tkMessageBox.showinfo("[Super Smash Bros Melee : Pago con Efectivo], su total es de: " ,total) | |
print numerojuegos | |
print cargo | |
print total | |
print finalconcargos | |
elif juego == "The Witcher 3" and numerojuegos > 0 and dinero == "Tarjeta": | |
total = numerojuegos * 100 | |
cargo = total * 0.08 | |
finalconcargos = total + cargo | |
tkMessageBox.showinfo("[The Witcher 3 : Pago con Tarjeta], su total es de: ", finalconcargos) | |
print numerojuegos | |
print cargo | |
print total | |
print finalconcargos | |
elif juego == "The Witcher 3" and numerojuegos > 0 and dinero == "Efectivo": | |
total = numerojuegos * 100 | |
cargo = 0 | |
finalconcargos = 0 | |
tkMessageBox.showinfo("[The Witcher 3: Pago con Efectivo], su total es de: ", total) | |
print numerojuegos | |
print cargo | |
print total | |
print finalconcargos | |
Conexion(numerojuegos, cargo, total, finalconcargos) | |
boton = Button(vp, text='Total a Facturar', command=calcular, width=20) | |
boton.grid(row=8, column=1, padx=(10, 10), pady=(10, 10), sticky=N) | |
boton.config(background="Yellow",foreground="black") | |
ventana.mainloop() |