Hi Omkar,
Please have a look on the workflow of the invoice.
Activity : "open"
<record id="act_open" model="workflow.activity">
<field name="wkf_id" ref="wkf"/>
<field name="name">open</field>
<field name="action">action_date_assign()
action_move_create()
action_number()
invoice_validate()</field>
<field name="kind">function</field>
</record>
Transition : "draft" to "open"
<record id="t4" model="workflow.transition">
<field name="act_from" ref="act_draft"/>
<field name="act_to" ref="act_open"/>
<field name="signal">invoice_open</field>
</record>
Based on this workflow there is an signal "invoice_open" it is not an method. There is a button with name "invoice_open" and by default type of that button is "workflow". So, when this button is pressed at that time the methods are called as below.
1) action_date_assign()
2) action_move_create()
3) action_number()
4) invoice_validate()
Those four methods are called because those are write down on the activity "open".
So, If you want to override or inherit validate function of invoice then please override or inherite any one of the function.
I hope it is clear to you and helpful to achieve your goal.
Hi Omkar, If my answer is correct then please accept my answer by clicking on the right mark. thanks for that. :)