Community mailing list archives

community@mail.odoo.com

Re: Sale and purchase workflow

by
Camptocamp SA, Guewen Baconnier - Software Developer, Camptocamp
- 09/22/2015 10:40:49
On Wed, Sep 16, 2015 at 11:17 AM, Fabien Pinckaers <fp@odoo.com> wrote:
>> > Overwriting a function to trigger actions if not more complex than
>> > overwriting a workflow. And overwriting a computed fields "like To
>> > Invoice
>> > or To Deliver" is way easier than revamping a workflow to adapt to all
>> > possible transitions on all states.
>>
>> Could you maybe hint which method we'd have to overwrite when there is
>> no more workflow activities but only function fields? Function fields
>> mean no more trigger we can hook on, or do I miss a new feature to
>> handle that?
>
>
> The way that most looks like workflows is to use "Automated Actions" as it
> does not even requires development. (e.g. when invoice status goes from "Not
> Invoiced" to "Fully Invoiced") That's pretty much the same behaviour than
> workflow as it does not requires to develop a module, it's just
> customizations. (but IMHO, more powerful than workflow as you can do
> anything without having to worry about the global state of the document)
>
> Example: doing "send an email to France customers, 3 months after the
> invoice creation if it's not paid" --> That's a pain with workflows and easy
> with Automated Actions.
>
> If you develop as a module, you can also connect on the action (generate
> invoice, validate delivery order, ...), instead of connecting on the status
> change. (invoiced, delivered)
>
> --
> Fabien
>

Hello,

I tested your "Automated Action" approach and... sorry to say that but
it doesn't seem to work the way you describe them.
I setup an 'On Update' automated action with before:
[('invoice_status','!=','invoiced')] and after:
[('invoice_status','=','invoiced')].
It is never triggered. I am pretty sure that's because the Automated
Action wrap 'Model.write' with its own logic but the function fields
do never call 'write' when they are recomputed (in this case the write
was on 'account.invoice').

-- 
Guewen