Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from domain import *
- import json
- def save_to_file(list_of_expenses):
- '''
- Saves a list of expenses to file as json.
- :param list_of_expenses: the list of expenses
- :return: -
- '''
- with open('expenses.txt', 'w') as f_out:
- f_out.write(json.dumps(list_of_expenses))
- def read_from_file():
- '''
- Reads a list of expenses from a file containing json
- :return: a list of expenses
- '''
- with open('expenses.txt', 'r') as f_in:
- listExpense = json.load(f_in)
- return listExpense
- def addExpense(expense, listExpense):
- '''
- Se adauga o cheltuiala
- :param expense:dictionary, dictionar
- :param listExpense:list, lista de cheltuieli
- :return:
- '''
- listExpense.append(expense)
- save_to_file(listExpense)
- def addMoney(listExpense, date, sum):
- '''
- Adauga o valoare la suma dintr-o data citita
- :param listExpense: lista de cheltuieli
- :param date: data aleasa
- :param sum: suma adaugata
- :return:
- '''
- for expense in listExpense:
- if date in getDate(expense):
- setSum(expense, getSum(expense) + sum)
- def maxExpenseForType(listExpense):
- '''
- Determina cea mai mare cheltuiala pentru fiecare tip
- :param listExpense: list, lista de cheltuieli
- :return:
- '''
- dictExpense = {}
- for expense in listExpense:
- expenseSum = getSum(expense)
- expenseType = getType(expense)
- if expenseType in dictExpense:
- previousExpense = dictExpense[expenseType]
- if expenseSum > getSum(previousExpense):
- dictExpense[expenseType] = expense
- else:
- dictExpense[expenseType] = expense
- return dictExpense
- def ordDesc(listExpense):
- '''
- Ordoneaza descrescator cheltuielile
- :param listExpense:list, lista de cheltuieli
- :return:
- '''
- for i in range(len(listExpense) - 1):
- for j in range(i + 1, len(listExpense)):
- if getSum(listExpense[i]) < getSum(listExpense[j]):
- aux = listExpense[i]
- listExpense[i] = listExpense[j]
- listExpense[j] = aux
- def removeExpense(apartment, listExpense):
- '''
- Sterge o cheltuiala
- :param apartment:int, apartamentul care trebuie sters
- :param listExpense: list, lista de cheltuieli
- :return:
- '''
- for i in range(len(listExpense)):
- if getApartment(listExpense[i]) == apartment:
- listExpense.pop(i)
- break
- def removeExpenses(listExpense, apartment):
- '''
- Sterge toate cheltuielile pentru un apartament
- :param listEspense: list, lista de cheltuieli
- :param apartment: int, numarul apartamentului
- :return:
- '''
- listExpense2 = deepcopy(listExpense)
- for expense in listExpense2:
- if getApartment(expense) == apartment:
- removeExpense(getApartment(expense), listExpense)
- def everyMonth(listExpense):
- dict = {}
- for expense in listExpense:
- if getApartment(expense) not in dict:
- dict[getApartment(expense)] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
- date = getDate(expense)
- date = date.split('.')
- month = int(date[1])
- dict[getApartment(expense)][month - 1] += getSum(expense)
- return dict
- def updateDate(apartment, listExpense, newDate):
- for expense in listExpense:
- if getApartment(expense) == apartment:
- setDate(expense, newDate)
- def updateExpense(apartment, listExpense, newSum, newDate, newType):
- '''
- Modifica o cheltuiala
- :param apartment:int, nr apartament
- :param listExpense: list, lista de cheltuieli
- :param newSum: float, suma care trebuie platita
- :param newDate: data scadenta
- :param newType: tipul
- :return:
- '''
- for expense in listExpense:
- if getApartment(expense) == apartment:
- if newSum == '/n':
- setSum(expense, getSum(expense))
- else:
- setSum(expense, newSum)
- if newDate == '/n':
- setDate(expense, getDate(expense))
- else:
- setDate(expense, newDate)
- if newType == '/n':
- setType(expense, getType(expense))
- else:
- setType(expense, newType)
- def updateSum(apartment, listExpense, newSum):
- for expense in listExpense:
- if getApartment(expense) == apartment:
- setSum(expense, newSum)
- def updateType(apartment, listExpense, newType):
- for expense in listExpense:
- if getApartment(expense) == apartment:
- setType(expense, newType)
- '''def Undo(undoList, redoList):
- redoList.append(undoList[len(undoList) - 1])
- undoList.pop(len(undoList) - 1)
- from copy import deepcopy
- def addUndo(listExpense, undoList, redoList):
- c = []
- for expense in listExpense:
- c.append(expense)
- undoList.append(c)
- redoList.clear()'''
- def Undo(undoList, redoList):
- redoList.append(undoList[len(undoList) - 1])
- undoList.pop(len(undoList) - 1)
- from copy import deepcopy
- def addUndo(listExpense, undoList, redoList):
- c = listExpense[:]
- undoList.append(c)
- redoList.clear()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement