Пример #1
0
def load_test_user():
    """
    Used to create Fam user for testing
    :return:
    """
    games_budget = Budget("Games and Entertainment", 100)
    clothes_budget = Budget("Clothing and Accessories", 100)
    food_budget = Budget("Eating out", 100)
    misc_budget = Budget("Miscellaneous", 100)
    budgets = [games_budget, clothes_budget, food_budget, misc_budget]
    return Rebel("Ryan", 11, 2314, "TD", 1234, budgets)
 def load_test_user(self):
     """
     Creates a test user with budgets and a moderator to deal with the user.
     Applies moderator to instance variable.
     """
     ba = BankAccount("Account number here", "Bank name there", 400)
     user = User("Nick McGrath", date(1996, 4, 9), ba,
                 **UserTypes.REBEL.value)
     self.user = user
     self.budgets[BudgetTypes.GAMES_AND_ENTERTAINMENT] = Budget(100)
     self.budgets[BudgetTypes.MISCELLANEOUS] = Budget(100)
     self.budgets[BudgetTypes.EATING_OUT] = Budget(100)
     self.budgets[BudgetTypes.CLOTHING_AND_ACCESSORIES] = Budget(100)
Пример #3
0
 def load_test_user():
     """
     Creates a test user with pre-set values to test the program's methods with
     :return: test user with assigned values
     """
     test_bank_info = BankInfo("RBC", "12345678", "5000.00")
     budget1 = Budget("Games and Entertainment", 1000.00)
     budget2 = Budget("Clothing and Accessories", 1000.00)
     budget3 = Budget("Eating Out", 1000.00)
     budget4 = Budget("Misc.", 1000.00)
     test_budget_list = [budget1, budget2, budget3, budget4]
     test_user = User("John Doe", "20", test_bank_info, test_budget_list)
     return test_user
    def load_user(self):
        """
        Prompt user for information needed to create a user then create and
        set budgets.
        """
        while True:
            try:
                print('Welcome! Please create a user!')

                # collect the info needed to create a User
                user_values = []
                user_values.append(input('Name: '))
                print('Date of birth (using integer values):')
                user_values.append(date(int(input('\tYear: ')), int(input(
                    '\tMonth: ')), int(input('\tDay: '))))
                bank_values = []
                bank_values.append(input('Bank Account number: '))
                bank_values.append(input('Bank Name: '))
                bank_values.append(float(input('Bank Balance: ')))
                ba = BankAccount(*bank_values)
                user_values.append(ba)
                print('Type of account?')
                print('Angel')
                print('Trouble Maker')
                print('Rebel')
                user_type = UserTypes[input('Account type: ').replace(' ',
                                                                      '_').upper()].value
                # create and set the user in the moderator
                self.user = User(*user_values, **user_type)

                # set the budget dictionary in the user
                self.budgets[BudgetTypes.GAMES_AND_ENTERTAINMENT] = Budget(int(
                    input(
                        'Budget for Games and Entertainment: ')))
                self.budgets[BudgetTypes.MISCELLANEOUS] = Budget(
                    int(input('Budget for Miscellaneous: ')))
                self.budgets[BudgetTypes.EATING_OUT] = Budget(
                    int(input('Budget for '
                              'Eating out: ')))
                self.budgets[BudgetTypes.CLOTHING_AND_ACCESSORIES] = Budget(
                    int(input(
                        'Budget for Clothing and Accessories: ')))
            except ValueError:
                print('Try again :) (bad value)')
                continue

            else:
                break
Пример #5
0
async def users_create_budget(
        pb_identifier=Form(...),
        category=Form(...),
        amount=Form(...),
        budget_type=Form(...),
        current_user: User = Depends(get_current_user),
):
    """
    form for creating a new budget

    alternatively can use default param current user instead
    of using the pb_identifier
    """

    try:
        new_budget = Budget(pb_identifier=pb_identifier,
                            category=category,
                            amount=amount,
                            budget_type=budget_type)
        new_budget.create_budget()
        result_msg = {
            "status": "success",
            "message": "successfully created budget"
        }
    except:
        # errors include validation errors as well as db errors
        # check budget file
        result_msg = {"status": "error", "message": "failed to create budget"}

    return result_msg
Пример #6
0
 def __init__(self, username, password, email, id):
     self.__id = id
     self.__username = username
     self.__password = password
     self.__email = email
     self.budget = Budget()
     self.networth = Networth()
Пример #7
0
 def test_insert_transactions_inserts(self):
     """Test that insert_transactions can insert data"""
     title_id = Budget(config='tests/test_config.yaml').insert_transactions(
         transactionfile='tests/test_transactions.txt')
     self.assertEqual(
         title_id,
         *self.run_query("SELECT id FROM title WHERE name='MING EXPRESS';"))
Пример #8
0
def main():
    food, clothing, entertainment = 0, 0, 0
    budget = Budget(food, clothing, entertainment)
    performOperation = 'Y'
    while (performOperation == 'Y') or (performOperation == 'y'):
        print("What would you like to do?\n")
        print("1. Make deposit\n")
        print("2. Make withdrawals\n")
        print("3. Check balance\n")
        print("4. Transfer inter-budgets\n")
        option = input("Select from the above\n")
        if option == '1':
            amount = int(input("How much would you like to deposit? \n"))
            budget.deposit(amount)
        elif option == '2':
            amount = int(input("How much would you like to withdraw? \n"))
            budget.withdraw(amount)
        elif option == '3':
            budget.balance()
        elif option == '4':
            budget.transferBalance()
        else:
            print("You have entered an invalid input.")
        performOperation = input(
            "Wanna perform another operation? Enter Y for YES or any other character for NO\n"
        )
Пример #9
0
 def test_budget_init(self):
     budget_budget = Budget(mock_budget_base)
     budget_budget.items.append(mock_item_base)
     self.assertNotEqual(len(budget_budget.items),
                         len(mock_budget_base.items))
     budget_budget.warnings[0.5] = 'red'
     self.assertNotEqual(len(budget_budget.warnings),
                         len(mock_budget_base.warnings))
Пример #10
0
    def __getBudgetByName(soup, budget_name):
        budget_container_id = f"{budget_name}Budget-list-body"
        budget_container = soup.find("ul", {"id": budget_container_id})
        budgets = budget_container.findAll("li")

        return_budgets = []
        for budget in budgets:
            return_budgets.append(Budget(budget))

        return return_budgets
Пример #11
0
    def init(self):
        self._splash_screen = arcade.load_texture("images/logo.png")
        self._budget = Budget()
        self._audience_share = AudienceShare()
        self._on_screen_question = Question()
        self._questions_pool = QuestionsPool(*questions_data)
        self._questions_stages = QuestionsStages()
        self._background_controller = BackgroundController()
        self._current_contestant = random.choice(type(self).POSSIBLE_CONTESTANTS)
        self._popup_message = PopupMessage()
        self._sound_controller = SoundController()

        self._sound_controller.play_theme_in_loop()
        self._background_controller.set_index(self.current_contestant.bg_images_index)
        self.question_pool.show()
        self._popup_message.show(on_continue_callback=self._popup_next_contestant_callback)

        add_timer(3, self._after_splash_screen)
Пример #12
0
    def __init__(self, name, age, bank_account_number, bank_name, bank_bal,
                 budgets, user_type):
        self._name = name
        self._age = age
        self._bank_account_number = bank_account_number
        self._bank_name = bank_name
        self._bank_bal = bank_bal

        self._warning_limit = 0
        self._lockout_limit = 0

        self._budgets = budgets
        self._user_type = user_type
        self._user_types = UserTypes(user_type)

        self._transaction_records = TransactionRecords()
        self._budgets = Budget(budgets, self._user_types.get_lockout_limit(),
                               self._user_types.get_warning_limit())
Пример #13
0
                "Enter the category number of the category to transfer to: "))
        amount = float(input("Enter the amount to transfer: "))
    except:
        print("\nInvalid input!! Enter a valid number or amount")
        reduce_planned_expense(budget_categories)

    if index1 in range(1,
                       len(budget_categories) + 1) and index2 in range(
                           1,
                           len(budget_categories) + 1):
        Budget.transfer_balance(budget_categories[index1 - 1],
                                budget_categories[index2 - 1], amount)
        init(budget_categories)
    else:
        print("\nInvalid input!! Enter a valid number")
        reduce_planned_expense(budget_categories)


if __name__ == "__main__":

    food = Budget("Food")
    categories.append(food)

    clothing = Budget("Clothing")
    categories.append(clothing)

    entertainment = Budget("Entertainment")
    categories.append(entertainment)

    init(categories)
Пример #14
0
 def __init__(self):
     self.__budget = Budget()
# -*- coding: utf-8 -*-
from taxes import ISS, ICMS, ICPP, IKCV


class CalculatorTaxes(object):
    def calculates(self, budget, taxe):
        return taxe.calc(budget)


if __name__ == '__main__':

    from budget import Budget, Item

    # Budget One
    budget = Budget('Budget One')
    budget.add_item(Item('Product 1', 10))
    budget.add_item(Item('Product 2', 5))
    budget.add_item(Item('Product 3', 4))
    budget.add_item(Item('Product 4', 4))
    budget.add_item(Item('Product 5', 4))
    budget.add_item(Item('Product 6', 1))

    # Calculator Taxes
    calculator = CalculatorTaxes()

    print('Budget: %s | Total of items: %s' %
          (budget.name, budget.total_items))

    print('ISS:  %s' % round(calculator.calculates(budget, ISS()), 2))
    print('ICMS: %s' % round(calculator.calculates(budget, ICMS()), 2))
Пример #16
0
# Designer patterns
# Strategy

from budget import Budget
from taxes import ISS, ICMS


class Calculator_taxes:
    def calc_taxes(self, budget, tax):
        calculated_tax = tax.calc(budget)
        print(calculated_tax)


if __name__ == '__main__':

    calc = Calculator_taxes()

    budget = Budget(100)

    calc.calc_taxes(budget, ISS())
    calc.calc_taxes(budget, ICMS())
Пример #17
0
 def __init__(self, login, password):
     self.login = str(login)
     self.password = str(password)
     self.budzet = Budget()
Пример #18
0
from budget import Budget
food_budget = Budget('food', 200)
clothing_budget = Budget('clothes', 100)

food_budget.deposit(50)
print(food_budget.balance)

food_budget.deposit('foo')
Пример #19
0
from config import MONTHLY, DAILY
from budget import Budget

payday = 24

budgetList = [
    Budget(name='Savings', percentage=0.12, frequency=MONTHLY),
    Budget(name='Emergency', percentage=0.15, frequency=MONTHLY),
    Budget(name='Wants',
           percentage=0.23,
           frequency=MONTHLY,
           categoryList=[
               'Gift', 'Gifts', 'Entertainment', 'Clothes', 'Sports',
               'Haircut', 'Book', 'Pets', 'PC'
           ]),
    Budget(name='Daily',
           percentage=0.5,
           fixedExpense=3500 + 269,
           categoryList=[
               'Food', 'Transport', 'Eating out', 'Communications', 'Health'
           ]),
]

exclude = []

incomeList = [
    'Deposits',
    'Interest',
    'Return',
    'Salary',
    'Savings',
Пример #20
0
 def test_works(self):
     Budget(config='tests/test_config.yaml').get_transactions(2017, 10)
     Budget().get_transactions(2017, 10)
     self.assertTrue(True)
Пример #21
0
from budget import Budget
from edit import Edit_Ui
import time

project = Edit_Ui.load()

try:
    bud = Budget(project)
except Exception as e:
    print("Open project to edit it!")
    time.sleep(3)
    project = Edit_Ui.load()
    bud = Budget(project)

bud.plot_year_projection()
Пример #22
0
from budget import Budget
from taxes import ISS, ICMS


class Taxes_Calculator(object):
    def do_calculation(self, budget: Budget, tax: object) -> None:
        calculated_tax = tax.calculate(budget)
        print(calculated_tax)


if __name__ == '__main__':

    calculator = Taxes_Calculator()
    budget = Budget(500)

    calculator.do_calculation(budget, ISS())
    calculator.do_calculation(budget, ICMS())
Пример #23
0
def add_category():
    response = input("Enter the Category Name: ")
    category = Budget(f"{response.title()}")
    categories.append(category)
Пример #24
0
import random
import validation 
from budget import Budget
from getpass import getpass

database = {} #dictionary for the details of the customer
customer = Budget()

def init():
    print("Welcome to Kiitan's Bank")
    
    haveAccount = int(input("Do you have an account with us? 1. (Yes) 2. (No)\n"))

    if haveAccount == 1:
        login()
        
    elif haveAccount == 2:
        register()
    else:
        print("You have selected an invalid option. ")
        init()

def login():
    print("******* LOGIN ******")
    userAccountNumber = int(input("What is your account number? \n"))
    #print(database[userAccountNumber])
    #password = input("What is your password? \n")
    isValidAccounntNumber = validation.account_number_validation (userAccountNumber)
    #print(isValidAccounntNumber)

    if isValidAccounntNumber:
Пример #25
0
# -*- coding: utf-8 -*-
from taxes import ISS, ICMS, ICPP, IKCV


class CalculatorTaxes(object):
    def calculates(self, budget, taxe):

        print(round(taxe.calc(budget), 2))


if __name__ == '__main__':

    from budget import Budget, Item

    # Budget One
    budget = Budget()
    budget.add_item(Item('Product 1', 10))
    budget.add_item(Item('Product 2', 5))
    budget.add_item(Item('Product 3', 4))
    budget.add_item(Item('Product 4', 4))
    budget.add_item(Item('Product 5', 4))
    budget.add_item(Item('Product 6', 1))

    # Calculator Taxes
    calculator = CalculatorTaxes()

    print('ISS and ICMS')
    calculator.calculates(budget, ISS())
    calculator.calculates(budget, ICMS())

    print('ISPP and IKCV')
Пример #26
0
 def clear_budget(self):
     self.budzet = Budget()
Пример #27
0
from budget import Budget

# instantiate the class
budget = Budget('food')
clothing_budget = Budget('clothing')

budget.deposit_funds(110, "deposit to food category")
clothing_budget.deposit_funds(110)
clothing_budget.withdraw_funds(10)
print(budget.amount)
print(clothing_budget.amount)
Пример #28
0
 def create_user():
     """
     Provides a user with a console interface to create a new user.
     :return: new user as User
     """
     print("Please enter your name:")
     user_name = input(">> ")
     while True:
         print("Please enter your age:")
         user_age = input(">> ")
         if user_age.isdigit():
             user_age = int(user_age)
             break
         else:
             print("Invalid age.")
     print("Please enter your Bank's name:")
     bank_name = input(">> ")
     print("Please enter your account number:")
     account_num = input(">> ")
     while True:
         print("Please enter your account balance:")
         balance = input(">> ")
         try:
             balance = float(balance)
             break
         except ValueError:
             print("Invalid balance")
     budget_list = []
     print("How many budgets would you like to create:")
     num_budgets = input(">> ")
     for i in range(int(num_budgets)):
         print("Please enter the budget name:")
         budget_name = input(">> ")
         while True:
             print("Please enter the budget limit:")
             limit = input(">> ")
             try:
                 budget_limit = float(limit)
                 break
             except ValueError:
                 print("Invalid limit.")
         budget_list.append(Budget(budget_name, float(budget_limit)))
     bank_info = BankInfo(bank_name, account_num, balance)
     while True:
         print("Please select your user type:")
         print("1: Angel")
         print("2: Troublemaker")
         print("3: Rebel")
         user_type = input(">> ")
         if user_type == "1":
             user = Angel(user_name, user_age, bank_info, budget_list)
             break
         elif user_type == "2":
             user = Troublemaker(user_name, user_age, bank_info,
                                 budget_list)
             break
         elif user_type == "3":
             user = Rebel(user_name, user_age, bank_info, budget_list)
             break
         print("Invalid selection")
     return user
Пример #29
0
from budget import Budget

food = Budget()
clothing = Budget()
entertainment = Budget()

food.deposit(500)
clothing.deposit(600)
entertainment.deposit(1000)

food.withdraw(300)
clothing.withdraw(800)
entertainment.withdraw(800)

print("Balance after withdrawing")
print(food.balance)
print(clothing.balance)
print(entertainment.balance)

print("Balance after transferring")
food.acceptTransfer(clothing.makeTransfer(300))
entertainment.acceptTransfer(food.makeTransfer(200))

print(food.balance)
print(clothing.balance)
print(entertainment.balance)
Пример #30
0
 def test_mock_repo(self, repo):
     repo.findAll.return_value = [Budget('2018-01', 1000)]
     self.assertEqual(1, len(repo.findAll()))