From b7a2c4ea2ff5a388638a8a2038ebf3b9b91c413e Mon Sep 17 00:00:00 2001 From: git_admin Date: Fri, 1 May 2026 15:00:54 +0000 Subject: [PATCH] Tower: upload laundry_management 19.0.19.0.4 (via marketplace) --- .../wizard/laundry_print_wizard.py | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 addons/laundry_management/wizard/laundry_print_wizard.py diff --git a/addons/laundry_management/wizard/laundry_print_wizard.py b/addons/laundry_management/wizard/laundry_print_wizard.py new file mode 100644 index 0000000..cf3efec --- /dev/null +++ b/addons/laundry_management/wizard/laundry_print_wizard.py @@ -0,0 +1,51 @@ +from odoo import models, fields, api +from odoo.exceptions import UserError + + +class LaundryPrintWizard(models.TransientModel): + """Print template selection wizard — routes to A4, Thermal, or Tracking.""" + _name = 'laundry.print.wizard' + _description = 'Laundry Print Wizard' + + order_id = fields.Many2one( + 'laundry.order', string='Order', + required=True, readonly=True, + ) + + order_name = fields.Char(related='order_id.name', readonly=True) + customer_name = fields.Char(related='order_id.partner_id.name', readonly=True) + total_amount = fields.Monetary( + related='order_id.amount_total', + readonly=True, + currency_field='currency_id', + ) + currency_id = fields.Many2one( + related='order_id.currency_id', readonly=True, + ) + + template = fields.Selection([ + ('a4', 'A4 Customer Receipt (Bilingual)'), + ('thermal', 'Thermal Receipt (80mm)'), + ('tracking', 'Item Tracking Slips'), + ], string='Print Template', required=True, default='a4') + + include_prices = fields.Boolean(string='Include Prices', default=True) + include_notes = fields.Boolean(string='Include Customer Notes', default=True) + + def action_print(self): + self.ensure_one() + ref_map = { + 'a4': 'laundry_management.action_report_laundry_order_receipt', + 'thermal': 'laundry_management.action_report_laundry_thermal_receipt', + 'tracking': 'laundry_management.action_report_laundry_tracking_slip', + } + report_ref = ref_map.get(self.template) + if not report_ref: + raise UserError('Unknown print template.') + return self.env.ref(report_ref).report_action( + self.order_id, + data={ + 'include_prices': self.include_prices, + 'include_notes': self.include_notes, + }, + )