This question has been flagged
1 Reply
32570 Views

My custom model try to send data to account.invoice  and account invoice lines.But I got  Error

ValueError: dictionary update sequence element #0 has length 3; 2 is required

Here is my code,

result = super(create_invoice_wizard,self).default_get(fields)

res = []

invoice_line_ids = []

flag = True

for obj_ppo_id in obj_ppo_ids:

    invoice_data = self.env['sale.commission'].search([('id','=',obj_ppo_id.id)])

    if flag:

        res.append({

                    'partner_id':invoice_data.consignor.id,

                    'date_invoice':datetime.today(),

                    'invoice_line_ids': [{

                                            'product_id':invoice_data.product_id.id,

                                            'quantity':invoice_data.qty,

                                            'price_unit':invoice_data.total_sales}]

                    })

        flag = False


    else:

        res[0]['invoice_line_ids'].append({'product_id':invoice_data.product_id.id,

                                           'quantity':invoice_data.qty,

                                           'price_unit':invoice_data.total_sales})


result.update(res)

return result

 

Avatar
Discard
Best Answer

you need to use special functions to pass data to related fields. it should be

'invoice_line_ids': [(0, 0, {your dict with data})]

this looks like only just one argument, but the reference (self) is the first argument. 

 

Avatar
Discard