Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
4125 Zobrazení

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
Zrušit
Nejlepší odpověď

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
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
1
lis 19
6050
2
kvě 25
1191
1
dub 25
3575
0
bře 24
1327
2
led 24
2758