Beispiel #1
0
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()
Beispiel #2
0
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()
Beispiel #3
0
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
Beispiel #4
0
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
Beispiel #5
0
def remove_expense(expense: Expense) -> None:
    """
    """
    update_accounts_balance(expense.account.id, expense.amount)

    expense.delete()
Beispiel #6
0
def remove_income(income: Income) -> None:
    """
    """
    update_accounts_balance(income.account.id, -income.amount)

    income.delete()