SHARE
TWEET

Untitled

a guest Sep 18th, 2019 97 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. from datetime import datetime
  3.  
  4. todayDate = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  5. #inlogTime = (datetime.now().strftime('%Y-%m-%d %H:%M:%S') - todayDate)
  6.  
  7. class accounts:
  8.     def __init__(self, accountNumber, balance):
  9.         self.accountNumber = accountNumber
  10.         self.balance = balance
  11.  
  12.  
  13. class transactions:
  14.     def __init__(self, account, date, transactionType, amount):
  15.         self.account = account
  16.         self.date = date
  17.         self.transactionType = transactionType
  18.         self.amount = amount
  19.  
  20.     def CreateAccount(self):
  21.         while True:    
  22.             accountNumber = CheckIfSumIsInt("Ange ditt nya kontonummer")
  23.             print()
  24.             if accountNumber in accountAndBalance:
  25.                 print("Kontot existerar redan.")
  26.                 print()
  27.                 break
  28.             else:
  29.                 accountAndBalance[accountNumber] = 0
  30.                 print(f"Konto med kontonr: {accountNumber} är skapat!")
  31.                 newAccount = accounts(accountNumber, 0)
  32.                 return newAccount
  33.  
  34.  
  35. def GetIntValMeny(min,max):
  36.     while True:
  37.         try:
  38.             menyVal = int(input("Ange ditt menyval: "))
  39.             print()
  40.             if menyVal >= min and menyVal <= max:
  41.                 return menyVal
  42.             else:
  43.                 print(f"Du har angett ett felaktigt menyval. Var god ange ett val mellan {min} och {max}.")
  44.  
  45.         except:
  46.             print(f"Du behöver ange ett val mellan {min} och {max}.")
  47.  
  48. def ShowMainMenu():
  49.     while True:
  50.         print("* * *  Huvudmeny  * * *")
  51.         print("1. Skapa ett nytt konto")
  52.         print("2. Administrera ett konto")
  53.         print("3. Avsluta")
  54.         print()
  55.         valInMain = GetIntValMeny(1,3)
  56.         return valInMain
  57.  
  58. def CheckIfSumIsInt(message):
  59.     while True:
  60.         try:
  61.             summa = int(input(f"{message}:"))
  62.             print()
  63.             return summa
  64.         except:
  65.             print("Du måste ange ett nummer.")
  66.  
  67.        
  68. accountAndBalance = {}
  69.  
  70. def CreateAccount():
  71.     GetExistingAccounts()
  72.     while True:    
  73.         accountNumber = CheckIfSumIsInt("Ange ditt nya kontonummer")
  74.         print()
  75.         if accountNumber in accountAndBalance:
  76.             print("Kontot existerar redan.")
  77.             print()
  78.             break
  79.         else:
  80.             accountAndBalance[accountNumber] = 0
  81.             print(f"Konto med kontonr: {accountNumber} är skapat!")
  82.             newAccount = accounts(accountNumber, 0)
  83.             return newAccount
  84.  
  85.  
  86. def CheckExistingAcc ():
  87.     while True:
  88.         accountNumber = CheckIfSumIsInt("Ange ditt kontonummer")
  89.         print()
  90.         if accountNumber in accountAndBalance:
  91.             return accountNumber
  92.         else:
  93.                 print("Ett konto med detta kontonummer finns ej.")
  94.                 print()
  95.  
  96.  
  97. def ShowAccountMenu():
  98.     account = CheckExistingAcc()
  99.     while True:  
  100.         if account == None:
  101.             break
  102.         else:
  103.             print(f"* * *  Kontomeny för konto: {account}  * * *")
  104.             print("1. Ta ut pengar")
  105.             print("2. Sätt in pengar")
  106.             print("3. Kolla saldo")
  107.             print("4. Visa transaktionshistorik")
  108.             print("5. Avsluta")
  109.             print()
  110.             valInAcc = GetIntValMeny(1,5)
  111.    
  112.             if valInAcc == 1:
  113.                     WithdrawMoney(account)
  114.             elif valInAcc == 2:
  115.                     DepositMoney(account)
  116.             elif valInAcc == 3:
  117.                     CheckBalance(account)
  118.             elif valInAcc == 4:
  119.                 PrintTransactionsHistory(account)
  120.             elif valInAcc == 5:
  121.                     break
  122.  
  123.  
  124.  
  125.  
  126. def WithdrawMoney (account):
  127.     withSum = CheckIfSumIsInt("Ange hur mycket du vill ta ut")
  128.     if withSum < accountAndBalance[account]:
  129.         accountAndBalance[account] -= withSum
  130.         with open (f"{account}.txt", "a") as appendFile:
  131.             appendFile.write(f"kontonr:{account}, datum:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}, typ:withdraw, summa:{withSum}\n")
  132.     else:
  133.         print("Du har inte tillräckligt med pengar på kontot.")
  134.         print()
  135.  
  136. def DepositMoney (account):
  137.  
  138.     depSum = CheckIfSumIsInt("Ange hur mycket du vill sätta in")
  139.     if depSum > 0:
  140.         accountAndBalance[account] += depSum
  141.         with open (f"{account}.txt", "a") as appendFile:
  142.             appendFile.write(f"kontonr:{account}, datum:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}, typ:deposit, summa:{depSum}\n")
  143.  
  144.     else:
  145.         print("Du kan inte sätta in 0kr.")
  146.         print()
  147.  
  148.  
  149. def CheckBalance (account):
  150.    
  151.     saldo = accountAndBalance.get(account)
  152.     print(f"Saldo för ditt konto är: {saldo}kr.")
  153.     print()
  154.  
  155.  
  156. def PrintTransactionsHistory(account):
  157.     saldo = accountAndBalance.get(account)
  158.     print(f"Nuvarande saldo: {saldo}kr.")
  159.     print()
  160.     with open (f"{account}.txt", "r") as readFile:
  161.         transactionHistory = readFile.readlines()
  162.         for transaction in transactionHistory:
  163.             print(transaction)
  164.  
  165.  
  166. def GetExistingAccounts():
  167.     with open("ExistingAccounts.txt", "r") as readFile:
  168.         for line in readFile:
  169.             (key, value) = line.split()
  170.             accountAndBalance[int(key)] = int(value)
  171.  
  172. def UpdateExistingAccounts():
  173.     with open ("ExistingAccounts.txt", "w") as writeFile:
  174.        
  175.         updatestring = ""
  176.         for key in accountAndBalance:
  177.             updatestring = updatestring + str(key)
  178.             updatestring = updatestring + " "
  179.             updatestring = updatestring + str(accountAndBalance[key])
  180.             updatestring = updatestring + "\n"
  181.         writeFile.write(updatestring)
  182.        
  183.  
  184.  
  185. def Main():
  186.     print("Hej och välkommen till Carls bankomat")
  187.     print(f"Inloggad klockan: {todayDate}")
  188.     print()
  189.  
  190.  
  191.     while True:
  192.         valMainMenu = ShowMainMenu()
  193.         if valMainMenu == 1:
  194.             CreateAccount()
  195.         elif valMainMenu == 2:
  196.             ShowAccountMenu()
  197.         elif valMainMenu == 3:
  198.             print("Programmet avslutas.")
  199.             UpdateExistingAccounts()
  200.             break
  201.  
  202. # *** SJÄLVA PROGRAMMET ***
  203.  
  204. Main()
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top