- line_raw = (
- SPACE * int(inputs['len_indent'])
- + inputs['account'] + SPACE * 2
- + inputs['amount'] + SPACE + inputs['currency'])
- if (comment := inputs['comment']):
- line_raw += f'{SPACE}{SEP_COMMENTS}{SPACE}{comment}'
+ len_indent = int(inputs['len_indent'])
+ idx_amt_dot = (len_indent
+ + len(inputs['account'])
+ + len(inputs['amount'].split('.')[0])
+ + 1)
+ len_from_dot = ((len(inputs['amount'].split('.')[1]) + 1)
+ if '.' in inputs['amount'] else 0)
+ idx_amt_dot_max = max(idx_amt_dot_max, idx_amt_dot)
+ len_from_dot_max = max(len_from_dot_max, len_from_dot)
+ booking_lines_items += [(
+ len_indent,
+ idx_amt_dot,
+ len_from_dot,
+ inputs['account'],
+ inputs['amount'],
+ inputs['currency'])]
+ booking_comments += [inputs['comment']]
+ for idx, comment in enumerate(booking_comments):
+ if 0 == idx:
+ line_raw = SPACE.join(intro_line_items)
+ else:
+ line_items = booking_lines_items[idx - 1]
+ line_raw = SPACE * line_items[0] # indent
+ line_raw += line_items[3] # account
+ line_raw += SPACE * (idx_amt_dot_max - line_items[1])
+ line_raw += 2*SPACE + line_items[4] # amount
+ line_raw += SPACE * (len_from_dot_max - line_items[2])
+ line_raw += SPACE + line_items[5] # currency
+ line_raw = line_raw.rstrip()
+ if comment:
+ line_raw = SPACE.join((line_raw, SEP_COMMENTS, comment))