Siirry sisältöön
Menu
Sinun on rekisteröidyttävä, jotta voit olla vuorovaikutuksessa yhteisön kanssa.
Tämä kysymys on merkitty
1 Vastaa
1394 Näkymät

Hello, 

I'm trying to reuse Sales Order Wizard for creating invoice in different model but without luck. What is the best approach to reuse existing code from wizard? Is it possible to do it? 


sale_orders = self.env['sale.order'].search(domain)

wizard = self.env['sale.advance.payment.inv']
for order in sale_orders:
​invoice = wizard._create_invoices(order)

I'm ending with this error even when I print out wizard it's type sale.advance.payment.inv()


  File "/odoo-17.0+e/comunity/addons/sale/wizard/sale_make_invoice_advance.py", line 196, in _create_invoices

    self.ensure_one()

  File "/odoo-17.0+e/comunity/odoo/models.py", line 5846, in ensure_one

    raise ValueError("Expected singleton: %s" % self)

ValueError: Expected singleton: sale.advance.payment.inv()


Thx

Avatar
Hylkää
Paras vastaus

Hi,

Try this:sale_orders = self.env['sale.order'].search(domain)


for order in sale_orders:

    # Create a wizard for each order

    wizard = self.env['sale.advance.payment.inv'].create({

        'advance_payment_method': 'delivered',  # or 'all' depending on your needs

    })

    # Set context or any other necessary fields if required

    wizard = wizard.with_context(active_model='sale.order', active_ids=[order.id], active_id=order.id)

    # Call the method to create the invoice


Hope it helps

Avatar
Hylkää
Aiheeseen liittyviä artikkeleita Vastaukset Näkymät Toimenpide
0
helmik. 25
3191
1
helmik. 24
2848
1
jouluk. 23
3977
1
maalisk. 24
2731
4
toukok. 25
2422