105 lines
3.1 KiB
Python
105 lines
3.1 KiB
Python
from accounts import *
|
|
from bank import *
|
|
|
|
client = pymongo.MongoClient(os.getenv("MONGO_URL"))
|
|
db = client.VE
|
|
|
|
|
|
def get_cash(code):
|
|
coll = db.economy
|
|
user = coll.find_one({"account_id": code})
|
|
|
|
if user is None:
|
|
print("The user does not have a bank account.")
|
|
return None
|
|
|
|
return user['cash']
|
|
|
|
def create_econ_account(code):
|
|
econ_coll = db.economy
|
|
bank_coll = db.bank
|
|
econ_user = econ_coll.find_one({"account_id": code})
|
|
bank_user = bank_coll.find_one({"account_id": code})
|
|
|
|
if econ_user is not None or bank_user is not None:
|
|
print("User already has an account")
|
|
return False
|
|
|
|
econ_coll.insert_one({"_id": random.randint(000000, 999999), "account_id": code, "cash": 0})
|
|
bank_coll.insert_one({"_id": random.randint(000000, 999999), "account_id": code, "balance": 0, 'active': False})
|
|
|
|
return True
|
|
|
|
def deposit(code, amount):
|
|
# TODO: Check if the bank account is active. If not then don't allow the user to deposit
|
|
bank_coll = db.bank
|
|
econ_coll = db.economy
|
|
bank_user = bank_coll.find_one({"account_id": code})
|
|
econ_user = econ_coll.find_one({"account_id": code})
|
|
|
|
if bank_user is None or econ_user is None:
|
|
print("User does not have an account")
|
|
return False
|
|
|
|
if econ_user['cash'] < amount:
|
|
print("You do not have enough money to make this transaction")
|
|
return False
|
|
|
|
econ_coll.update_one({"account_id": code}, {"$inc": {"cash": -amount}})
|
|
bank_coll.update_one({"account_id": code}, {"$inc": {"balance": amount}})
|
|
|
|
return True
|
|
|
|
def withdraw(code, amount):
|
|
# TODO: Check if the bank account is active. If not then don't allow the user to withdraw
|
|
bank_coll = db.bank
|
|
econ_coll = db.economy
|
|
|
|
bank_user = bank_coll.find_one({"account_id": code})
|
|
econ_user = econ_coll.find_one({"account_id": code})
|
|
|
|
if bank_user is None or econ_user is None:
|
|
print("User does not have an account")
|
|
return False
|
|
|
|
if bank_user['balance'] < amount:
|
|
print("You do not have enough money to make this transaction")
|
|
return False
|
|
|
|
econ_coll.update_one({"account_id": code}, {"$inc": {"cash": amount}})
|
|
bank_coll.update_one({"account_id": code}, {"$inc": {"balance": -amount}})
|
|
|
|
return True
|
|
|
|
# work function
|
|
def work(code):
|
|
job_coll = db.jobs
|
|
econ_coll = db.economy
|
|
bank_coll = db.bank
|
|
|
|
econ_user = econ_coll.find_one({"account_id": code})
|
|
|
|
if econ_user is None:
|
|
print("User could not be found")
|
|
return None
|
|
|
|
job_id = get_user_job(code)
|
|
if job_id is None:
|
|
print("You do not have a job.")
|
|
return None
|
|
|
|
job = job_coll.find_one({"_id": job_id})
|
|
pph = job['pph']
|
|
hours_worked = random.randint(1, 10)
|
|
total_pay = pph * hours_worked
|
|
|
|
bank_user = bank_coll.find_one({"account_id": code})
|
|
if bank_user is None:
|
|
create_bank_account(code)
|
|
|
|
if bank_user['active'] is True:
|
|
bank_coll.update_one({"account_id": code}, {"$inc": {"balance": total_pay}})
|
|
return hours_worked
|
|
|
|
econ_coll.update_one({"account_id": code}, {"$inc": {"cash": total_pay}})
|
|
return hours_worked |