take PricePerUnit from customer if not set in invoice position

This commit is contained in:
Torsten Ueberschar
2024-02-19 10:12:52 +01:00
parent 6f1120c8b4
commit b8bd3f288b
4 changed files with 24 additions and 15 deletions

View File

@@ -86,13 +86,16 @@ def main():
print('Envelope data:')
envelope_data = DataObject(**envelope)
print(envelope_data.__dict__)
print('<--->')
print(yaml.dump(envelope_data))
print('</--->')
print('Invoice data:')
invoice_data = DataObject(**invoice)
merge_envelope_data_into_invoice_data(invoice_data, envelope_data.Invoice)
selected_customer = next((x for x in envelope_data.Customers if x['CustomerId'] == invoice_data.CustomerId), None)
selected_customer = next((x for x in envelope_data.Customers if x['CustomerId'] == invoice_data.CustomerId),
None)
merge_envelope_data_into_invoice_data(invoice_data, selected_customer)
if not hasattr(invoice_data, 'InvoiceDate'):
@@ -103,8 +106,17 @@ def main():
if not hasattr(invoice_data, 'Id'):
invoice_data.Id = None
if not hasattr(invoice_data, 'Positions'):
invoice_data.Positions = []
for position in invoice_data.Positions:
if 'PricePerUnit' not in position or position['PricePerUnit'] is None:
position['PricePerUnit'] = invoice_data.PricePerUnit
invoice_data.Id = invoice_data.Id or invoice_file.stem
print(invoice_data.__dict__)
print('<--->')
print(yaml.dump(invoice_data))
print('</--->')
except FileNotFoundError as e:
print(f'Error: {e}')
@@ -119,8 +131,6 @@ def main():
generator = html_generator.HtmlTemplate(args.template)
template = generator.prepare_template(invoice_data, envelope_data)
print(template)
try:
print('Generating invoice...')
invoice_pdf = Path(invoice_data.Id).with_suffix('.pdf')