Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
2 Răspunsuri
8606 Vizualizări

Hi, I want to put on out invoices the name of the corresponding delivery slip . 

For this I try to find all the Invoice/delivery slip pairs with the same origin. So that you can choose inside a selection field between the delivery slips. 

But self is always account_invoice(). So I never get the active record to compare.

I hope someone can help. I have no Idea where to start with this...


thanks Chris

Code:

https://pastebin.com/uYetfdLu

class inv_text(models.Model):                                                                    

    _name = "account.invoice"                                                                    

    _inherit = "account.invoice"                                                                                                                

                                                                                                 

    delivery_ref = fields.Selection(selection='_get_delivery_name',string='Lieferschein')        

                                                                                                 

    @api.multi                                                                                    

    def _get_delivery_name(self):                                                                

        delivery_list = []                                                                                                                                                    

        deliverys = self.env["stock.picking"].search([("origin","=",self.origin)])                    

        for delivery in deliverys:                                                                

            delivery_list.append((str(delivery.name),str(delivery.name)))                                                                                                                

        return delivery_list

Imagine profil
Abandonează
Cel mai bun răspuns

Hi Chris,


Try this.

from odoo import fields, model, api

class inv_text(models.Model):                                                                    
   
 _name = "account.invoice"                                                                    
    _inherit = "account.invoice"                                                                                                                
                                                                                                
    @api.model                                                                                    
    def _get_delivery_name(self):                                                                
 
delivery_list = []                                                                                                                                                    
        deliverys = self.env["stock.picking"].search([("origin","=",self.origin)])                    
    for delivery in deliverys:                                                                
          delivery_list.append((str(delivery.name),str(delivery.name)))                                                                                                                

        return delivery_list
     
     


delivery_ref = fields.Selection(selection=lambda self : self._get_delivery_name(), string='Lieferschein')      

Hope this will help.


Happy Odooing...

Regards,

Anil


Imagine profil
Abandonează
Autor

Sadly, same output. If i print self inside the method for debug it's account.invoice().

I've structured your code, that how you can use the code while calling method directly in selection. it will work like default get method, you will not able to get data from self. if you want to fetch information from current object, use compute inside field and call your method in compute.

Cel mai bun răspuns

.

Imagine profil
Abandonează
Related Posts Răspunsuri Vizualizări Activitate
1
feb. 24
2061
1
mai 20
2944
1
iul. 18
7472
1
nov. 17
11701
4
aug. 17
7410