"""Update Manual Adjustments table.""" from accounting import config from accounting.adapters.log import getlogger from accounting.data import get_db_adapter from accounting.data import load_exchange_rates SELECT_SQL = ( 'SELECT ' 'm.`id`, ' 'm.`amount_in_original_currency`, ' 'm.`currencies_id` ' 'FROM `manual_adjustment` as m ' 'WHERE m.`amount` = 0 ' 'AND m.`currencies_id` <> 1 ' 'AND m.`apply_to_period_id` = {:d} ' 'AND m.`amount_in_original_currency` <> 0') UPDATE_SQL = ( 'UPDATE `manual_adjustment` ' 'SET `amount` = {:f} ' 'WHERE `id` = {:d}') def update_manual_adjustments(): """Update manual adjustments table.""" db_adapter = get_db_adapter() exchange_rates = load_exchange_rates(config.PERIOD_ID) logger = getlogger() logger.info('Updating manual_adjustment $0 amounts.') for row in db_adapter.fetch_rows(SELECT_SQL.format(config.PERIOD_ID)): key = '{from_id}_1'.format(from_id=row[2]) exchange_rate = exchange_rates.get(key) amount = row[1] * exchange_rate update_sql = UPDATE_SQL.format(round(amount, 6), row[0]) logger.info('Update manual_adjustment {} to {}'.format(row[0], amount)) db_adapter.execute(update_sql)