summaryrefslogtreecommitdiff
path: root/fixco_custom/models/sale_order_multi_invoices.py
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2026-01-06 13:01:13 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2026-01-06 13:01:13 +0700
commit3c885bec3b51b35c77c983444a949783cb53e198 (patch)
tree43f482e653a223d7625c32026d949ac7819511f5 /fixco_custom/models/sale_order_multi_invoices.py
parent0d60d1c77f39859754e6f1cb46efe19d3ec1df38 (diff)
queuing job
Diffstat (limited to 'fixco_custom/models/sale_order_multi_invoices.py')
-rw-r--r--fixco_custom/models/sale_order_multi_invoices.py81
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