# -*- coding: utf-8 -*-
from tkinter import Tk, Label, Button, Entry
class Application:
    def __init__(self, master):
        self.master = master
        master.title('Compte bancaire')
        master.geometry("570x370+10+10")
        master.configure(background='black')
        self.interface()
        
                    
    def interface(self):
        self.label_creation = Label(self.master, text = 'ENTRER: numéro,nom et solde du compte. \n EXEMPLE: 12345 Dupont 52000')
        self.saisie = Entry(self.master, borderwidth=5, relief="sunken")
        self.bouton = Button(self.master,  text = 'Valider', command=self.affiche_compte)
        
        self.label_creation.grid(row = 0, column = 0,padx=5,pady=5, sticky='w')
        self.saisie.grid(row = 1, column = 0, padx=5,pady=5, sticky='we')
        self.saisie.focus()
        self.bouton.grid(row = 1, column = 1)
        
        self.label_affiche_compte = Label(fenetre,background ='black',fg="white")
        self.label_affiche_compte.grid(row = 2, padx=5,pady=5, sticky='we')
        
        self.label_jours = Label(fenetre,background ='black')
        self.label_jours.grid(row = 4, padx=5,pady=5, sticky='we')
        self.label_agios = Label(fenetre,background ='black')
        self.label_agios.grid(row = 5, padx=5,pady=5, sticky='we')
        
    
    def get_3_saisies(self, entry):
        saisie1, saisie2, saisie3 = entry.get().split(" ")
        return saisie1, saisie2, saisie3
    
    def get_1_saisie(self, entry):
        saisie = entry.get()
        return saisie
            
    def affiche_versement(self,compte, signe):
        somme = float (self.get_1_saisie(self.saisie_somme))
        compte.solde = compte.versement(somme, signe)
        print(compte.solde)
        self.label_affiche_compte['text']=(
            "Votre compte a été créé:\n numéro: "
            + str(compte.numero_compte)+"\n nom: "+ compte.nom+"\n solde: "+ str(compte.solde))        
    
    def affiche_jours_et_agios(self, compte):
        jours = compte.incremente_jours_depuis_creation()
        self.label_jours['background'] ='white'
        self.label_jours['text'] = "Votre compte a été créé depuis: " +str(jours)+" jours"
        self.label_agios['background'] ='white'
        self.label_agios['text'] = "Vos agios s'élève à: " +str(compte.calcule_agios_par_jour(compte.solde))+" euros"
        self.label_jours.after(1000,lambda: self.affiche_jours_et_agios(compte))
    
    def affiche_compte(self):
        numero = int(self.get_3_saisies(self.saisie)[0])
        nom = self.get_3_saisies(self.saisie)[1]
        solde = float(self.get_3_saisies(self.saisie)[2])
        compte = Compte_bancaire(numero, nom , solde, taux_agios=0.10)
        self.label_affiche_compte['background'] ='blue'
        self.label_affiche_compte['text'] ="Votre compte a été créé:\n numéro:" + str(
            compte.numero_compte)+"\n nom: "+ compte.nom+"\n solde: "+str(compte.solde)
        self.vie_compte(compte)
        self.label_jours.after(1000,lambda: self.affiche_jours_et_agios(compte))
    
    def vie_compte(self, compte):
        self.saisie_somme = Entry(fenetre, borderwidth=5, relief="sunken")
        self.saisie_somme.grid(row = 3, column = 0, padx=5,pady=5, sticky='we')     
        self.saisie_somme.focus()
        self.bouton_versement = Button(
            fenetre,  text = 'Versement', command =lambda: self.affiche_versement(compte,signe="+"))
        self.bouton_versement.grid(row = 3, column = 1)
        self.bouton_retrait = Button(fenetre,  text = 'Retrait', command =lambda: self.affiche_versement(compte, signe="-"))
        self.bouton_retrait.grid(row = 3, column = 2)
             

if __name__ == '__main__':
#   count = 0
    fenetre = Tk()
    app = Application(fenetre)