Hi StCrownClown,
Step 1: You create a function when click on the save button
https://www.odoo.com/forum/help-1/question/how-to-recall-some-certain-function-when-click-save-button-in-creating-form-105059#answer-105183
Step 2: Create a loop of one2many field inside the function
Step 3: Seperate the list of unique and duplicate sale order line ids to the variable
ids= []
duplicate_ids = []
for line_id in self.order_line:
if line_id.product_id.id in ids:
duplicate_ids.append(line_id.id)
else:
ids.append(line_id.id)
Now you can get the all sale order line unique ids in ids and all duplicate ids in duplicate_ids.
Step 4: You add the Qty of duplicate_ids to the corresponding line in ids.
self.env['sale.order.line'].search([('id', '=', id_in_ids)]).write({'product_uom_qty': qty_new_value,})
Step 5:
Delete sale order lines in duplicate_ids
for duplicate_id in duplicate_ids:
self.env['sale.order.line'].search([('id', '=', id_in_ids)]).unlink()
Note : My code is not tested, I wrote it for help
All the best !
Try dictionary.of dictionaries
sumup={
'item_id': {'qty': 0, 'prise': 0, 'sum': 0]
}
or dictionary of lists or list of lists
The code just the idea.
sumup={}
for item in items:
sumup[item.description]['qty']+=item.qty
sumup[item.description]['sum']+=item.sum
sumup[item.description]['prise']=sumup[item.description]['sum']/sumup[item.description]['qty']
delete items
write sumup instead of items
Thank you, this idea should execute after Add an item right ?