38 lines
1002 B
Python
38 lines
1002 B
Python
from loguru import logger
|
|
from db import dbGetMany, dbGetOne
|
|
|
|
def perform(dbh, params):
|
|
accountEntries = dbGetMany(
|
|
dbh,
|
|
{
|
|
"statement":
|
|
"""
|
|
select id, due_at from account_entry_t where due_at is not null
|
|
""",
|
|
"params": {}
|
|
}
|
|
)
|
|
|
|
for accountEntry in accountEntries:
|
|
id = accountEntry['id']
|
|
oldDueAt = accountEntry['due_at']
|
|
newDueAt = oldDueAt.replace(day=1)
|
|
logger.info(f"id: {id}, due_at: {oldDueAt} -> {newDueAt}")
|
|
|
|
fixedEntry = dbGetOne(
|
|
dbh,
|
|
{
|
|
"statement":
|
|
"""
|
|
UPDATE account_entry_t
|
|
SET due_at = %(dueAt)s
|
|
WHERE id = %(id)s
|
|
RETURNING *
|
|
""",
|
|
"params": {
|
|
"id": id,
|
|
"dueAt": newDueAt
|
|
}
|
|
}
|
|
)
|
|
logger.info("fixed") |