diff --git a/cli/MonthlyPaymentRequests.py b/cli/MonthlyPaymentRequests.py index 7faf1bf..ce20661 100644 --- a/cli/MonthlyPaymentRequests.py +++ b/cli/MonthlyPaymentRequests.py @@ -2,14 +2,20 @@ from db import dbGetMany, dbGetOne from loguru import logger from decimal import Decimal import datetime +import iso8601 def perform(dbh, params): try: - createdAt = params['created_at'] - dueAt = createdAt.replace(day=1) + createdAt = iso8601.parse_date(params['created_at']) + except iso8601.iso8601.ParseError: + msg = f"Can not parse given date {params['created_at']}" + logger.error(msg) + raise Exception(msg) except KeyError: - createdAt = datetime.datetime.today().strftime("%Y-%m-%d") - dueAt = createdAt.replace(day=1) + createdAt = datetime.datetime.today() + + year = createdAt.year + createdAt = createdAt.strftime("%Y-%m-%d") tenants = dbGetMany(dbh, { "statement": "SELECT * FROM tenant_t", "params": () }) for tenant in tenants: @@ -101,11 +107,11 @@ def perform(dbh, params): accountEntry = dbGetOne(dbh, { "statement": """ INSERT INTO account_entry_t - (description, account, created_at, amount, account_entry_category) - VALUES (%s, %s, %s, %s, (SELECT id FROM account_entry_category_t WHERE description = %s)) + (description, account, created_at, fiscal_year, amount, account_entry_category) + VALUES (%s, %s, %s, %s, %s, (SELECT id FROM account_entry_category_t WHERE description = %s)) RETURNING id """, - "params": (request['description'], request['account'], request['created_at'], request['amount'], request['category']) + "params": (request['description'], request['account'], request['created_at'], year, request['amount'], request['category']) } ) logger.info(f" account entry entered with id {accountEntry['id']}") \ No newline at end of file