def update_income(income: Income, serializer) -> None: """ """ currency = income.amount_currency income_amount = income.amount.amount new_income_amount = serializer.validated_data['amount'] if income_amount != new_income_amount: delta = -income_amount + new_income_amount update_accounts_balance(income.account.id, Money(delta, currency)) serializer.save()
def update_expense(expense: Expense, serializer) -> None: """ """ currency = expense.amount_currency expense_amount = expense.amount.amount new_expense_amount = serializer.validated_data['amount'] if expense_amount != new_expense_amount: delta = expense_amount - new_expense_amount update_accounts_balance(expense.account.id, Money(delta, currency)) serializer.save()
def create_expense(user, validated_data: dict) -> Expense: """ This function creates an new expense based on the validated data and user id. """ data = { **validated_data, 'user': user, } expense = Expense.objects.create(**data) update_accounts_balance(expense.account.id, -expense.amount) return expense
def create_income(user, validated_data: dict) -> Income: """ Creates an new income based on the validated data and user id. """ data = { **validated_data, 'user': user, } income = Income.objects.create(**data) # розідлити? update_accounts_balance(income.account.id, income.amount) return income
def remove_expense(expense: Expense) -> None: """ """ update_accounts_balance(expense.account.id, expense.amount) expense.delete()
def remove_income(income: Income) -> None: """ """ update_accounts_balance(income.account.id, -income.amount) income.delete()