Zum Inhalt springen
Menü
Sie müssen registriert sein, um mit der Community zu interagieren.
Diese Frage wurde gekennzeichnet
2 Antworten
260 Ansichten

To preface this, I am a Odoo newbie. I saw from a previous post on a previous version of Odoo that I can set parameters into the approval step of the send button to restrict a quotation from being send by an employee if the credit limit of the customer has been exceeded.

I've followed the step by step guide but it does not work. The error was "Domain is invalid. Please correct it". Please if anyone knows what is the issue, do let me know. Thank you.

I am using Odoo v19 on the web if that provides any context.


The code that I entered was [("partner_credit_warning", "=", False)] in the filter parameter of the add approval step for the send button. Sorry I can't add images as I do not have enough Karma points.

Avatar
Verwerfen
Autor

I'm not sure if I have done something wrong. I still can't add the code in the approval filter.


I added a checkbox field

Under "more" settings, I check the "Readonly" and "Stored" boxes.

For properties, I added partner_credit_warning as a dependency and copied the code into compute


partner_credit_warning_bool = fields.Boolean(

    compute="_compute_partner_credit_warning_bool",

    store=True

)


@api.depends('partner_credit_warning')

def _compute_partner_credit_warning_bool(self):

    for rec in self:

        rec.partner_credit_warning_bool = bool(rec.partner_credit_warning)


Was I suppose to add other type of fields? Or was there something wrong in my inputs?

Autor

Ok I managed to get the partner_credit_warning to work. But then the manager doesn't receive a TO-DO to approve or reject the quotation from being sent. 

Beste Antwort

There may be a simpler solution here with Studio.  You can make the button invisible if  partner_credit_warning is set:

Note that the button is already invisible if the status is Sales Order, so you need to add a second condition - with "any" rather than "all":


Avatar
Verwerfen
Beste Antwort

Hi,


The partner_credit_warning field in sale.order is a compute field with no store. So when odoo tries to translate this into SQL, it can't find a column for partner_credit_warning, and fails with “Domain is invalid.”


Solution: Add a field to sale.order :

partner_credit_warning_bool = fields.Boolean(

    compute="_compute_partner_credit_warning_bool",

    store=True

)


@api.depends('partner_credit_warning')

def _compute_partner_credit_warning_bool(self):

    for rec in self:

        rec.partner_credit_warning_bool = bool(rec.partner_credit_warning)

Change domain: [("partner_credit_warning_bool", "=", False)]


Hope it helps

Avatar
Verwerfen
Verknüpfte Beiträge Antworten Ansichten Aktivität
2
Aug. 25
847
1
März 24
2317
0
Nov. 22
3204
0
Juli 21
3987
2
Nov. 20
2734