Merge lp:~camptocamp/account-invoicing/7.0-port-invoice_validation_wkfl into lp:~account-core-editors/account-invoicing/7.0

Proposed by Yannick Vaucher @ Camptocamp
Status: Merged
Merged at revision: 18
Proposed branch: lp:~camptocamp/account-invoicing/7.0-port-invoice_validation_wkfl
Merge into: lp:~account-core-editors/account-invoicing/7.0
Diff against target: 486 lines (+174/-199)
5 files modified
invoice_validation_wkfl/__init__.py (+18/-24)
invoice_validation_wkfl/__openerp__.py (+38/-50)
invoice_validation_wkfl/invoice.py (+35/-42)
invoice_validation_wkfl/invoice_view.xml (+49/-51)
invoice_validation_wkfl/invoice_wkf.xml (+34/-32)
To merge this branch: bzr merge lp:~camptocamp/account-invoicing/7.0-port-invoice_validation_wkfl
Reviewer Review Type Date Requested Status
Maxime Chambreuil (http://www.savoirfairelinux.com) Approve
Guewen Baconnier @ Camptocamp code review, no test Approve
Alexandre Fayolle - camptocamp code review, no test Needs Fixing
Review via email: mp+162128@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

line 134: s/add/adds/

line 229: remove space before ':'

review: Needs Fixing (code review, no test)
22. By Yannick Vaucher @ Camptocamp

[IMP] invoice_validation_wkfl - __openerp__ spelling and formating

23. By Yannick Vaucher @ Camptocamp

[IMP] invoice_validation_wkfl - remove space before ':'

Revision history for this message
Yannick Vaucher @ Camptocamp (yvaucher-c2c) wrote :

correction made

Revision history for this message
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) wrote :

Small typo fix : l.137 typo : s/incoices/invoices ( + no space before : )

Apart that LGTM

Revision history for this message
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) wrote :

Fixed the typo.
LGTM

review: Approve (code review, no test)
24. By Guewen Baconnier @ Camptocamp

[FIX] typo, no space before colon

Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'invoice_validation_wkfl/__init__.py'
--- invoice_validation_wkfl/__init__.py 2011-08-12 12:35:23 +0000
+++ invoice_validation_wkfl/__init__.py 2013-06-17 09:44:27 +0000
@@ -1,29 +1,23 @@
1# -*- coding: utf-8 -*-1# -*- coding: utf-8 -*-
2##############################################################################2##############################################################################
3#3#
4# Copyright (c) 2010 Camtocamp SA4# Author: Joël Grand-Guillaume
5# @author Joël Grand-Guillaume5# Copyright 2010 Camptocamp SA
6#6#
7# WARNING: This program as such is intended to be used by professional7# This program is free software: you can redistribute it and/or modify
8# programmers who take the whole responsability of assessing all potential8# it under the terms of the GNU Affero General Public License as
9# consequences resulting from its eventual inadequacies and bugs9# published by the Free Software Foundation, either version 3 of the
10# End users who are looking for a ready-to-use solution with commercial10# License, or (at your option) any later version.
11# garantees and support are strongly adviced to contract a Free Software11#
12# Service Company12# This program is distributed in the hope that it will be useful,
13#13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# This program is Free Software; you can redistribute it and/or14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# modify it under the terms of the GNU General Public License15# GNU Affero General Public License for more details.
16# as published by the Free Software Foundation; either version 216#
17# of the License, or (at your option) any later version.17# You should have received a copy of the GNU Affero General Public License
18#18# along with this program. If not, see <http://www.gnu.org/licenses/>.
19# This program is distributed in the hope that it will be useful,
20# but WITHOUT ANY WARRANTY; without even the implied warranty of
21# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22# GNU General Public License for more details.
23#
24# You should have received a copy of the GNU General Public License
25# along with this program; if not, write to the Free Software
26# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
27#19#
28##############################################################################20##############################################################################
29import invoice
30\ No newline at end of file21\ No newline at end of file
22import invoice
23
24# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
3125
=== modified file 'invoice_validation_wkfl/__openerp__.py'
--- invoice_validation_wkfl/__openerp__.py 2013-04-03 14:37:57 +0000
+++ invoice_validation_wkfl/__openerp__.py 2013-06-17 09:44:27 +0000
@@ -1,57 +1,45 @@
1# -*- coding: utf-8 -*-1# -*- coding: utf-8 -*-
2##############################################################################2##############################################################################
3#3#
4# Copyright (c) 2011 Camptocamp SA (http://www.camptocamp.com) 4# Author: Joël Grand-Guillaume (Camptocamp)
5# All Right Reserved5# Copyright 2010 Camptocamp SA
6#6#
7# Author : Joël Grand-Guillaume (Camptocamp)7# This program is free software: you can redistribute it and/or modify
8#8# it under the terms of the GNU Affero General Public License as
9# WARNING: This program as such is intended to be used by professional9# published by the Free Software Foundation, either version 3 of the
10# programmers who take the whole responsability of assessing all potential10# License, or (at your option) any later version.
11# consequences resulting from its eventual inadequacies and bugs11#
12# End users who are looking for a ready-to-use solution with commercial12# This program is distributed in the hope that it will be useful,
13# garantees and support are strongly adviced to contract a Free Software13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# Service Company14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15#15# GNU Affero General Public License for more details.
16# This program is Free Software; you can redistribute it and/or16#
17# modify it under the terms of the GNU General Public License17# You should have received a copy of the GNU Affero General Public License
18# as published by the Free Software Foundation; either version 218# along with this program. If not, see <http://www.gnu.org/licenses/>.
19# of the License, or (at your option) any later version.
20#
21# This program is distributed in the hope that it will be useful,
22# but WITHOUT ANY WARRANTY; without even the implied warranty of
23# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24# GNU General Public License for more details.
25#
26# You should have received a copy of the GNU General Public License
27# along with this program; if not, write to the Free Software
28# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29#19#
30##############################################################################20##############################################################################
31
32{21{
33 "name" : "Add 'To Send' and 'To Validate' states in Invoices",22 'name': 'Add "To Send" and "To Validate" states in Invoices',
34 "version" : "1.0",23 'version': '1.0',
35 "author" : "Camptocamp",24 'category': 'Generic Modules/Invoicing',
36 "category" : "Generic Modules/Invoicing",25 'description':
37 "description":26'''
38"""27This module adds 2 states between draft and open state in invoices:
39This module adds 2 states between Draft and Open states in Invoices:28
4029- To Validate: For invoices which need a validation
41- To Validate: for invoices which need a validation30- To Send: For all invoices that need to be sent
42- To Send: for invoices that need to be sent31
4332''',
44""",33 'author': 'Camptocamp',
45 "website": "http://camptocamp.com",34 'website': 'http://camptocamp.com',
46 "depends" : [35 'depends': ['account'],
47 "account",36 'data': [
48 ],37 'invoice_wkf.xml',
49 "init_xml" : [],38 'invoice_view.xml',
50 "demo_xml" : [],39 ],
51 "update_xml" : [40 'demo': [],
52 "invoice_wkf.xml",41 'test': [],
53 "invoice_view.xml",42 'installable': True,
54 ],43 'auto_install': False,
55 "active": False,44 'application': False
56 "installable": False
57}45}
5846
=== modified file 'invoice_validation_wkfl/invoice.py'
--- invoice_validation_wkfl/invoice.py 2012-02-23 09:24:17 +0000
+++ invoice_validation_wkfl/invoice.py 2013-06-17 09:44:27 +0000
@@ -1,41 +1,30 @@
1# -*- coding: utf-8 -*-1# -*- coding: utf-8 -*-
2##############################################################################2##############################################################################
3#3#
4# Copyright (c) 2010 Camtocamp SA4# Author: Joël Grand-Guillaume
5# @author Joël Grand-Guillaume5# Copyright 2010 Camptocamp SA
6# $Id: $6#
7#7# This program is free software: you can redistribute it and/or modify
8# WARNING: This program as such is intended to be used by professional8# it under the terms of the GNU Affero General Public License as
9# programmers who take the whole responsability of assessing all potential9# published by the Free Software Foundation, either version 3 of the
10# consequences resulting from its eventual inadequacies and bugs10# License, or (at your option) any later version.
11# End users who are looking for a ready-to-use solution with commercial11#
12# garantees and support are strongly adviced to contract a Free Software12# This program is distributed in the hope that it will be useful,
13# Service Company13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14#14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# This program is Free Software; you can redistribute it and/or15# GNU Affero General Public License for more details.
16# modify it under the terms of the GNU General Public License16#
17# as published by the Free Software Foundation; either version 217# You should have received a copy of the GNU Affero General Public License
18# of the License, or (at your option) any later version.18# along with this program. If not, see <http://www.gnu.org/licenses/>.
19#
20# This program is distributed in the hope that it will be useful,
21# but WITHOUT ANY WARRANTY; without even the implied warranty of
22# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23# GNU General Public License for more details.
24#
25# You should have received a copy of the GNU General Public License
26# along with this program; if not, write to the Free Software
27# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28#19#
29##############################################################################20##############################################################################
3021from openerp.osv import orm, fields, osv
31from osv import fields
32from osv import osv
33from tools.translate import _22from tools.translate import _
34import netsvc23import netsvc
3524
36class account_invoice(osv.osv):25class AccountInvoice(orm.Model):
37 _inherit = "account.invoice"26 _inherit = "account.invoice"
38 27
39 def action_to_valid(self, cr, uid, ids):28 def action_to_valid(self, cr, uid, ids):
40 """Check if analytic account of each lines is not closed"""29 """Check if analytic account of each lines is not closed"""
41 inv_ids = isinstance(ids, list) and ids[:] or [ids]30 inv_ids = isinstance(ids, list) and ids[:] or [ids]
@@ -45,16 +34,16 @@
45 for line in inv.invoice_line:34 for line in inv.invoice_line:
46 if line.account_analytic_id and line.account_analytic_id.state in ['close', 'cancelled']:35 if line.account_analytic_id and line.account_analytic_id.state in ['close', 'cancelled']:
47 str_error_lines += "\n- %s" %(line.name)36 str_error_lines += "\n- %s" %(line.name)
48 errors = True 37 errors = True
49 if errors: 38 if errors:
50 raise osv.except_osv(_('UserError'),39 raise osv.except_osv(_('UserError'),
51 _("You are trying to validate invoice lines linked to a closed or cancelled Analytic Account."40 _("You are trying to validate invoice lines linked to a closed or cancelled Analytic Account."
52 "\n\nCheck the following lines :")41 "\n\nCheck the following lines:")
53 + str_error_lines)42 + str_error_lines)
54 43
55 self.write(cr, uid, inv_ids, {'state': 'to_valid'})44 self.write(cr, uid, inv_ids, {'state': 'to_valid'})
56 return True45 return True
57 46
58 _columns = {47 _columns = {
59 'state': fields.selection([48 'state': fields.selection([
60 ('draft','Draft'),49 ('draft','Draft'),
@@ -64,13 +53,12 @@
64 ('open','Open'),53 ('open','Open'),
65 ('paid','Paid'),54 ('paid','Paid'),
66 ('cancel','Canceled')],'State', select=True, readonly=True),55 ('cancel','Canceled')],'State', select=True, readonly=True),
67 }56 }
6857
69account_invoice()58
7059class AccountInvoiceRefund(orm.TransientModel):
71class account_invoice_refund(osv.osv_memory):
72 _inherit = "account.invoice.refund"60 _inherit = "account.invoice.refund"
73 61
74 def compute_refund(self, cr, uid, ids, mode='refund', context=None):62 def compute_refund(self, cr, uid, ids, mode='refund', context=None):
75 """63 """
76 @param cr: the current row, from the database cursor,64 @param cr: the current row, from the database cursor,
@@ -95,8 +83,11 @@
95 date = False83 date = False
96 period = False84 period = False
97 description = False85 description = False
86 journal_id = False
98 company = res_users_obj.browse(cr, uid, uid, context=context).company_id87 company = res_users_obj.browse(cr, uid, uid, context=context).company_id
99 journal_id = form.get('journal_id', False)88 if form.get('journal_id', False):
89 journal_id = form['journal_id'][0]
90
100 for inv in inv_obj.browse(cr, uid, context.get('active_ids'), context=context):91 for inv in inv_obj.browse(cr, uid, context.get('active_ids'), context=context):
101 if inv.state in ['draft', 'proforma2', 'cancel']:92 if inv.state in ['draft', 'proforma2', 'cancel']:
102 raise osv.except_osv(_('Error !'), _('Can not %s draft/proforma/cancel invoice.') % (mode))93 raise osv.except_osv(_('Error !'), _('Can not %s draft/proforma/cancel invoice.') % (mode))
@@ -217,4 +208,6 @@
217 invoice_domain.append(('id', 'in', created_inv))208 invoice_domain.append(('id', 'in', created_inv))
218 result['domain'] = invoice_domain209 result['domain'] = invoice_domain
219 return result210 return result
220account_invoice_refund()211
212
213# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
221214
=== modified file 'invoice_validation_wkfl/invoice_view.xml'
--- invoice_validation_wkfl/invoice_view.xml 2011-08-29 11:34:30 +0000
+++ invoice_validation_wkfl/invoice_view.xml 2013-06-17 09:44:27 +0000
@@ -1,62 +1,60 @@
1<?xml version="1.0" encoding="utf-8"?>
1<openerp>2<openerp>
2<data>3 <data>
3 4
4 <record model="ir.ui.view" id="invoice_supplier_formc2c">5 <record model="ir.ui.view" id="invoice_supplier_formc2c">
5 <field name="name">account.invoice.supplier.formc2c</field>6 <field name="name">account.invoice.supplier.formc2c</field>
6 <field name="model">account.invoice</field>7 <field name="model">account.invoice</field>
7 <field name="inherit_id" ref="account.invoice_supplier_form"/>8 <field name="inherit_id" ref="account.invoice_supplier_form"/>
8 <field name="type">form</field>9 <field name="arch" type="xml">
9 <field name="arch" type="xml">10 <xpath expr="/form/header" position="replace">
10 <xpath expr="/form/notebook/page/group/group[1]" position="replace">11 <header>
11 <group col="12" colspan="4">12 <button name="invoice_cancel" states="draft,to_valid,to_send,proforma2,sale,open" string="Cancel" icon="gtk-cancel"/>
12 <button name="invoice_cancel" states="draft,to_valid,to_send,proforma2,sale,open" string="Cancel" icon="gtk-cancel"/>13 <button name="action_cancel_draft" states="cancel" string="Set to Drafttttt" type="object" icon="terp-stock_effects-object-colorize"/>
13 <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" icon="terp-stock_effects-object-colorize"/>14 <button name="%(account.action_account_invoice_refund)d" type='action' string='Refund' states='open,paid' icon="gtk-execute"/>
14 <button name="%(account.action_account_invoice_refund)d" type='action' string='Refund' states='open,paid' icon="gtk-execute"/>15 <button name="%(account.action_account_state_open)d" type='action' string='Re-Open' states='paid' icon="gtk-convert" groups="account.group_account_user"/>
15 <button name="%(account.action_account_state_open)d" type='action' string='Re-Open' states='paid' icon="gtk-convert" groups="account.group_account_user"/>16 <button name="invoice_open" states="to_send,proforma2" string="Approve" icon="terp-camera_test"/>
16 <button name="invoice_open" states="to_send,proforma2" string="Approve" icon="terp-camera_test"/>17 <button name="invoice_to_valid" states="draft" string="To Validation" icon="terp-camera_test"/>
17 <button name="invoice_to_valid" states="draft" string="To Validation" icon="terp-camera_test"/>18 <button name="invoice_to_send" states="to_valid" string="Invoice to send" icon="terp-camera_test"/>
18 <button name="invoice_to_send" states="to_valid" string="Invoice to send" icon="terp-camera_test"/>19 <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
19 </group>20 </header>
20 </xpath>21 </xpath>
21 </field>22 </field>
22 </record>23 </record>
2324
24 <record model="ir.ui.view" id="invoice_formc2c">25 <record model="ir.ui.view" id="invoice_formc2c">
25 <field name="name">account.invoice.formc2c</field>26 <field name="name">account.invoice.formc2c</field>
26 <field name="model">account.invoice</field>27 <field name="model">account.invoice</field>
27 <field name="inherit_id" ref="account.invoice_form"/>28 <field name="inherit_id" ref="account.invoice_form"/>
28 <field name="type">form</field>29 <field name="arch" type="xml">
29 <field name="arch" type="xml">30 <xpath expr="/form/header" position="replace">
30 <xpath expr="/form/notebook/page/group/group[@groups='base.group_user']" position="replace">31 <header>
31 <group col="12" colspan="4" groups="base.group_user">32 <button name="invoice_cancel" states="to_send,to_valid,draft,proforma2,sale,open" string="Cancel" icon="gtk-cancel"/>
32 <button name="invoice_cancel" states="to_send,to_valid,draft,proforma2,sale,open" string="Cancel" icon="gtk-cancel"/>33 <button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object" icon="terp-stock_effects-object-colorize"/>
33 <button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object" icon="terp-stock_effects-object-colorize"/>34 <button name="invoice_to_send" states="to_valid" string="Invoice To Send" icon="gtk-go-forward"/>
34 <button name="invoice_to_send" states="to_valid" string="Invoice To Send" icon="gtk-go-forward"/>35 <button name="invoice_to_valid" states="draft" string="To Validation" icon="terp-gtk-media-pause"/>
35 <button name="invoice_to_valid" states="draft" string="To Validation" icon="terp-gtk-media-pause"/>36 <button name="%(account.action_account_invoice_refund)d" type='action' string='Refund' states='open,paid' icon="gtk-execute"/>
36 <button name="%(account.action_account_invoice_refund)d" type='action' string='Refund' states='open,paid' icon="gtk-execute"/>37 <button name='%(account.action_account_state_open)d' type='action' string='Re-Open' states='paid' icon="gtk-convert" groups="account.group_account_user"/>
37 <button name='%(account.action_account_state_open)d' type='action' string='Re-Open' states='paid' icon="gtk-convert" groups="account.group_account_user"/>38 <button name="invoice_proforma2" states="to_send" string="PRO-FORMA" icon="terp-gtk-media-pause" />
38 <button name="invoice_proforma2" states="to_send" string="PRO-FORMA" icon="terp-gtk-media-pause" />39 <button name="invoice_open" states="to_send,proforma2" string="Validate" icon="gtk-go-forward"/>
39 <button name="invoice_open" states="to_send,proforma2" string="Validate" icon="gtk-go-forward"/>40 <button name="%(account.account_invoices)d" string="Print Invoice" type="action" icon="gtk-print" states="open,paid,proforma,sale,proforma2"/>
40 <button name="%(account.account_invoices)d" string="Print Invoice" type="action" icon="gtk-print" states="open,paid,proforma,sale,proforma2"/>41 <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
41 </group>42 </header>
42 </xpath>43 </xpath>
43 </field>44 </field>
44 </record>45 </record>
4546
46
47 <record id="view_account_invoice_filter" model="ir.ui.view">47 <record id="view_account_invoice_filter" model="ir.ui.view">
48 <field name="name">account.invoice.valid_wkf.select</field>48 <field name="name">account.invoice.valid_wkf.select</field>
49 <field name="model">account.invoice</field>49 <field name="model">account.invoice</field>
50 <field name="type">search</field>50 <field name="inherit_id" ref="account.view_account_invoice_filter" />
51 <field name="inherit_id" ref="account.view_account_invoice_filter" />51 <field name="arch" type="xml">
52 <field name="arch" type="xml">52 <xpath expr="/search/filter[@name='proforma']" position="after">
53 <xpath expr="/search/group/filter[@name='proforma']" position="after">53 <filter name="to_valid" icon="terp-camera_test" string="To Validate" domain="[('state','=','to_valid')]" help="To Validate Invoices"/>
54 <filter name="to_valid" icon="terp-camera_test" string="To Validate" domain="[('state','=','to_valid')]" help="To Validate Invoices"/>54 <filter name="to_send" icon="terp-check" string="To Send" domain="[('state','=','to_send')]" help="To Send Invoices"/>
55 <filter name="to_send" icon="terp-check" string="To Send" domain="[('state','=','to_send')]" help="To Send Invoices"/>55 </xpath>
56 </xpath>56 </field>
57 </field>
58 </record>57 </record>
5958
60 59 </data>
61 </data>
62</openerp>60</openerp>
6361
=== modified file 'invoice_validation_wkfl/invoice_wkf.xml'
--- invoice_validation_wkfl/invoice_wkf.xml 2012-02-23 09:24:17 +0000
+++ invoice_validation_wkfl/invoice_wkf.xml 2013-06-17 09:44:27 +0000
@@ -1,53 +1,55 @@
1<?xml version="1.0" encoding="utf-8"?>
1<openerp>2<openerp>
2<data>3 <data>
3 4
4 <record model="workflow.activity" id="act_to_send">5 <record model="workflow.activity" id="act_to_send">
5 <field name="wkf_id" ref="account.wkf"/>6 <field name="wkf_id" ref="account.wkf"/>
6 <field name="name">to_send</field>7 <field name="name">to_send</field>
7 <field name="action">write({'state':'to_send'})</field>8 <field name="action">write({'state':'to_send'})</field>
8 <field name="kind">function</field>9 <field name="kind">function</field>
9 </record>10 </record>
10 11
11 <record model="workflow.activity" id="act_to_valid">12 <record model="workflow.activity" id="act_to_valid">
12 <field name="wkf_id" ref="account.wkf"/>13 <field name="wkf_id" ref="account.wkf"/>
13 <field name="name">to_valid</field>14 <field name="name">to_valid</field>
14 <field name="action">action_to_valid()</field>15 <field name="action">action_to_valid()</field>
15 <field name="kind">function</field>16 <field name="kind">function</field>
16 </record>17 </record>
17 18
18 <record model="workflow.transition" id="t_draft_to_valid">19 <record model="workflow.transition" id="t_draft_to_valid">
19 <field name="act_from" ref="account.act_draft"/>20 <field name="act_from" ref="account.act_draft"/>
20 <field name="act_to" ref="act_to_valid"/>21 <field name="act_to" ref="act_to_valid"/>
21 <field name="signal">invoice_to_valid</field>22 <field name="signal">invoice_to_valid</field>
22 </record>23 </record>
2324
24 <record model="workflow.transition" id="t_valid_to_send">25 <record model="workflow.transition" id="t_valid_to_send">
25 <field name="act_from" ref="act_to_valid"/>26 <field name="act_from" ref="act_to_valid"/>
26 <field name="act_to" ref="act_to_send"/>27 <field name="act_to" ref="act_to_send"/>
27 <field name="signal">invoice_to_send</field>28 <field name="signal">invoice_to_send</field>
28 </record>29 </record>
2930
30 <record model="workflow.transition" id="t_send_to_pro2">31 <record model="workflow.transition" id="t_send_to_pro2">
31 <field name="act_from" ref="act_to_send"/>32 <field name="act_from" ref="act_to_send"/>
32 <field name="act_to" ref="account.act_proforma2"/>33 <field name="act_to" ref="account.act_proforma2"/>
33 <field name="signal">invoice_proforma2</field>34 <field name="signal">invoice_proforma2</field>
34 </record>35 </record>
35 <record model="workflow.transition" id="account.t4">36 <record model="workflow.transition" id="account.t4">
36 <field name="act_from" ref="act_to_send"/>37 <field name="act_from" ref="act_to_send"/>
37 <field name="act_to" ref="account.act_open"/>38 <field name="act_to" ref="account.act_open"/>
38 <field name="signal">invoice_open</field>39 <field name="signal">invoice_open</field>
39 </record>40 </record>
40 41
41 <record model="workflow.transition" id="account.t9">42 <record model="workflow.transition" id="account.t9">
42 <field name="act_from" ref="act_to_send"/>43 <field name="act_from" ref="act_to_send"/>
43 <field name="act_to" ref="account.act_cancel"/>44 <field name="act_to" ref="account.act_cancel"/>
44 <field name="signal">invoice_cancel</field>45 <field name="signal">invoice_cancel</field>
45 </record>46 </record>
47
46 <record model="workflow.transition" id="t_valid_to_cancel">48 <record model="workflow.transition" id="t_valid_to_cancel">
47 <field name="act_from" ref="act_to_valid"/>49 <field name="act_from" ref="act_to_valid"/>
48 <field name="act_to" ref="account.act_cancel"/>50 <field name="act_to" ref="account.act_cancel"/>
49 <field name="signal">invoice_cancel</field>51 <field name="signal">invoice_cancel</field>
50 </record>52 </record>
5153
52</data>54 </data>
53</openerp>55</openerp>

Subscribers

People subscribed via source and target branches