diff --git a/fusion_plating/fusion_plating_reports/__manifest__.py b/fusion_plating/fusion_plating_reports/__manifest__.py index 571adc29..31cc9603 100644 --- a/fusion_plating/fusion_plating_reports/__manifest__.py +++ b/fusion_plating/fusion_plating_reports/__manifest__.py @@ -3,7 +3,7 @@ # License OPL-1 (Odoo Proprietary License v1.0) { 'name': 'Fusion Plating — Reports', - 'version': '19.0.4.0.0', + 'version': '19.0.4.1.0', 'category': 'Manufacturing/Plating', 'summary': 'PDF reports for Fusion Plating: quote, SO, WO, packing, BoL, CoC, invoice, receipt, quality + compliance.', 'depends': [ diff --git a/fusion_plating/fusion_plating_reports/report/report_fp_bol.xml b/fusion_plating/fusion_plating_reports/report/report_fp_bol.xml index 3317984d..3e36e3fc 100644 --- a/fusion_plating/fusion_plating_reports/report/report_fp_bol.xml +++ b/fusion_plating/fusion_plating_reports/report/report_fp_bol.xml @@ -46,9 +46,14 @@
- -
+ +
+ + +
+ Attn:
@@ -232,9 +237,14 @@
- -
+ +
+ + +
+ Attn:
diff --git a/fusion_plating/scripts/fp_bol_html.py b/fusion_plating/scripts/fp_bol_html.py new file mode 100644 index 00000000..973a39d2 --- /dev/null +++ b/fusion_plating/scripts/fp_bol_html.py @@ -0,0 +1,22 @@ +# Render BoL HTML body to see the real error +import traceback +env = env # noqa +report = env.ref('fusion_plating_reports.action_report_fp_bol_portrait') +dlv = env['fusion.plating.delivery'].search([], order='id desc', limit=1) +print('rendering HTML for:', dlv.name, 'id=', dlv.id) +try: + html, _ = report.with_context(force_report_rendering=True + )._render_qweb_html(report.report_name, [dlv.id]) + out = html.decode() if isinstance(html, bytes) else str(html) + print('HTML length:', len(out)) + # Show beginning + look for Traceback markers + if 'Traceback' in out or 'Oops' in out: + idx = max(out.find('Traceback'), out.find('Oops')) + print('--- ERROR SECTION ---') + print(out[idx:idx+3000]) + else: + print('--- FIRST 800 CHARS ---') + print(out[:800]) +except Exception: + print('--- DIRECT EXCEPTION ---') + traceback.print_exc() diff --git a/fusion_plating/scripts/fp_bol_repro.py b/fusion_plating/scripts/fp_bol_repro.py new file mode 100644 index 00000000..179870d6 --- /dev/null +++ b/fusion_plating/scripts/fp_bol_repro.py @@ -0,0 +1,14 @@ +# Reproduce BoL render error +import traceback +env = env # noqa +report = env.ref('fusion_plating_reports.action_report_fp_bol_portrait') +print('report:', report.report_name, 'model:', report.model) +dlv = env['fusion.plating.delivery'].search([], order='id desc', limit=1) +print('rendering for:', dlv.name, 'id=', dlv.id, 'state=', dlv.state) +try: + pdf, _ = report.with_context(force_report_rendering=True + )._render_qweb_pdf(report.report_name, [dlv.id]) + print('OK pdf size:', len(pdf), 'bytes') +except Exception: + print('--- TRACEBACK ---') + traceback.print_exc()