Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
1 Balas
4124 Tampilan

The scenario is we have 2 or more lines with the same product, same cost, same quantity so the total price also same.

now what we have, i create another invoice with the  previous quantity and previous amount. which means the previous invoice values is it's previous amount and quantity. Now my problem is if i create the invoice with the same product and cost and etc... as same. i can't get each line seperately because i can't differentiate the line with this scenario.

Note: With the different product my expectation working fine. but, same product it's not. 

My Code is:

@api.one
@api.depends
('invoice_id.former_invoice_id')
def _get_previous_qty(self):
if self.invoice_id.former_invoice_id:
lines = self.invoice_id.former_invoice_id.invoice_line_ids.filtered(lambda r: r.product_id.id == self.product_id.id and r.price_unit == self.price_unit)
        self.prev_qty = sum(lines.mapped('total_qty')) 

Any suggestions for me?

Avatar
Buang
Jawaban Terbai

Hi,

Put if condition when you get two lines then you get last created line by its id in desc order.

or

Use sorted function 

 lines = self.invoice_id.former_invoice_id.invoice_line_ids.sorted()

and then if get len ids > 1 then select last id.

or

 You can put index or sequence in lines and use it to differentiate record.

https://www.odoo.com/apps/modules/10.0/order_line_serial_number/

Avatar
Buang
Post Terkait Replies Tampilan Aktivitas
1
Nov 19
6050
2
Mei 25
1191
1
Apr 25
3575
0
Mar 24
1327
2
Jan 24
2758