diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2026-01-06 13:01:13 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2026-01-06 13:01:13 +0700 |
| commit | 3c885bec3b51b35c77c983444a949783cb53e198 (patch) | |
| tree | 43f482e653a223d7625c32026d949ac7819511f5 /fixco_custom/models/sale_order_multi_invoices.py | |
| parent | 0d60d1c77f39859754e6f1cb46efe19d3ec1df38 (diff) | |
queuing job
Diffstat (limited to 'fixco_custom/models/sale_order_multi_invoices.py')
| -rw-r--r-- | fixco_custom/models/sale_order_multi_invoices.py | 81 |
1 files changed, 46 insertions, 35 deletions
diff --git a/fixco_custom/models/sale_order_multi_invoices.py b/fixco_custom/models/sale_order_multi_invoices.py index 5c42dc6..f763313 100644 --- a/fixco_custom/models/sale_order_multi_invoices.py +++ b/fixco_custom/models/sale_order_multi_invoices.py @@ -5,44 +5,55 @@ class SaleOrderMultiInvoices(models.TransientModel): _name = 'sale.order.multi_invoices' _description = 'Create Invoices for Multiple Sales Orders' - def create_invoices(self): - # Get SO IDs from context + def queue_job(self): so_ids = self._context.get('so_ids', []) - if not so_ids: - raise UserError(_("No sales orders selected!")) - - # Browse all selected sales orders sale_orders = self.env['sale.order'].browse(so_ids) - created_invoices = self.env['account.move'] + for sale in sale_orders: + self.env['queue.job'].create({ + 'name': f'Create Invoice {sale.name}', + 'model_name': 'sale.order', + 'method_name': 'create_invoices', + 'res_id': sale.id, + }) + + # def create_invoices(self): + # # Get SO IDs from context + # so_ids = self._context.get('so_ids', []) + # if not so_ids: + # raise UserError(_("No sales orders selected!")) + + # # Browse all selected sales orders + # sale_orders = self.env['sale.order'].browse(so_ids) + # created_invoices = self.env['account.move'] - # Create one invoice per SO (even if partner is the same) - for order in sale_orders: - # Create invoice for this SO only - invoice = order.with_context(default_invoice_origin=order.name)._create_invoices(final=True) - invoice.action_post() - created_invoices += invoice + # # Create one invoice per SO (even if partner is the same) + # for order in sale_orders: + # # Create invoice for this SO only + # invoice = order.with_context(default_invoice_origin=order.name)._create_invoices(final=True) + # invoice.action_post() + # created_invoices += invoice - # Link the invoice to the SO - order.invoice_ids += invoice + # # Link the invoice to the SO + # order.invoice_ids += invoice - # Return action to view created invoices - if len(created_invoices) > 1: - action = { - 'name': _('Created Invoices'), - 'type': 'ir.actions.act_window', - 'res_model': 'account.move', - 'view_mode': 'tree,form', - 'domain': [('id', 'in', created_invoices.ids)], - } - elif created_invoices: - action = { - 'name': _('Created Invoice'), - 'type': 'ir.actions.act_window', - 'res_model': 'account.move', - 'view_mode': 'form', - 'res_id': created_invoices.id, - } - else: - action = {'type': 'ir.actions.act_window_close'} + # # Return action to view created invoices + # if len(created_invoices) > 1: + # action = { + # 'name': _('Created Invoices'), + # 'type': 'ir.actions.act_window', + # 'res_model': 'account.move', + # 'view_mode': 'tree,form', + # 'domain': [('id', 'in', created_invoices.ids)], + # } + # elif created_invoices: + # action = { + # 'name': _('Created Invoice'), + # 'type': 'ir.actions.act_window', + # 'res_model': 'account.move', + # 'view_mode': 'form', + # 'res_id': created_invoices.id, + # } + # else: + # action = {'type': 'ir.actions.act_window_close'} - return action
\ No newline at end of file + # return action
\ No newline at end of file |
