Merge lp:~vauxoo/openobject-addons/purchase_double_validation_multicurrency-dev-julio into lp:openobject-addons/6.1

Proposed by Moisés López - http://www.vauxoo.com
Status: Needs review
Proposed branch: lp:~vauxoo/openobject-addons/purchase_double_validation_multicurrency-dev-julio
Merge into: lp:openobject-addons/6.1
Diff against target: 161 lines (+83/-15)
5 files modified
purchase_double_validation/__init__.py (+1/-0)
purchase_double_validation/purchase.py (+71/-0)
purchase_double_validation/purchase_double_validation_installer.py (+7/-13)
purchase_double_validation/purchase_double_validation_installer.xml (+2/-0)
purchase_double_validation/purchase_double_validation_workflow.xml (+2/-2)
To merge this branch: bzr merge lp:~vauxoo/openobject-addons/purchase_double_validation_multicurrency-dev-julio
Reviewer Review Type Date Requested Status
Nhomar - Vauxoo (community) Disapprove
OpenERP Core Team Pending
Review via email: mp+115254@code.launchpad.net

Description of the change

Purchase Double Validation Multi-Currency

To post a comment you must log in.
6879. By Julio Serna-http://www.vauxoo.com

[IMP][pruchase_double_validation] add default amount_type

6880. By Julio Serna-http://www.vauxoo.com

[FIX][purchase_double_validation] resolved fix when there is no validation of minimum amount

6881. By Julio Serna-http://www.vauxoo.com

[FIX][purchase_double_validation] changed function search for sql query

Revision history for this message
Nhomar - Vauxoo (nhomar) wrote :

Moy.

Can we do this for trunk please, i think it is a good improvement.
I will reject this MP, branches must be declared as

runbot.openerp.com/register.html

review: Disapprove

Unmerged revisions

6881. By Julio Serna-http://www.vauxoo.com

[FIX][purchase_double_validation] changed function search for sql query

6880. By Julio Serna-http://www.vauxoo.com

[FIX][purchase_double_validation] resolved fix when there is no validation of minimum amount

6879. By Julio Serna-http://www.vauxoo.com

[IMP][pruchase_double_validation] add default amount_type

6878. By Moisés López - http://www.vauxoo.com

[REF][purchase_double_validation] Change function to lambda function

6877. By Moisés López - http://www.vauxoo.com

[MERGE] [purchase_double_validation] Add currency_id field

6876. By Julio Serna-http://www.vauxoo.com

[INIT]

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'purchase_double_validation/__init__.py'
2--- purchase_double_validation/__init__.py 2010-12-22 11:05:42 +0000
3+++ purchase_double_validation/__init__.py 2012-07-31 19:32:23 +0000
4@@ -20,5 +20,6 @@
5 ##############################################################################
6
7 import purchase_double_validation_installer
8+import purchase
9
10 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
11
12=== added file 'purchase_double_validation/purchase.py'
13--- purchase_double_validation/purchase.py 1970-01-01 00:00:00 +0000
14+++ purchase_double_validation/purchase.py 2012-07-31 19:32:23 +0000
15@@ -0,0 +1,71 @@
16+# -*- encoding: utf-8 -*-
17+###########################################################################
18+# Module Writen to OpenERP, Open Source Management Solution
19+#
20+# Copyright (c) 2012 Vauxoo - http://www.vauxoo.com
21+# All Rights Reserved.
22+# info@vauxoo.com
23+############################################################################
24+# Coded by: julio (julio@vauxoo.com)
25+############################################################################
26+#
27+# This program is free software: you can redistribute it and/or modify
28+# it under the terms of the GNU Affero General Public License as
29+# published by the Free Software Foundation, either version 3 of the
30+# License, or (at your option) any later version.
31+#
32+# This program is distributed in the hope that it will be useful,
33+# but WITHOUT ANY WARRANTY; without even the implied warranty of
34+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35+# GNU Affero General Public License for more details.
36+#
37+# You should have received a copy of the GNU Affero General Public License
38+# along with this program. If not, see <http://www.gnu.org/licenses/>.
39+#
40+##############################################################################
41+
42+from osv import osv, fields
43+
44+
45+class purchase_order(osv.osv):
46+ _inherit='purchase.order'
47+ def purchase_amount_validate_ok(self, cr, uid, ids, context={}):
48+ purchase_installer=self.pool.get('purchase.double.validation.installer')
49+ for order in self.browse(cr,uid,ids):
50+ cr.execute(""" select max(id) as purchase_validation_id from purchase_double_validation_installer """)
51+ dat = cr.dictfetchall()
52+ purchase_validation_id=dat and dat[0]['purchase_validation_id'] or False
53+ if purchase_validation_id:
54+ purchase_validation=purchase_installer.browse(cr,uid,purchase_validation_id)
55+ amount_total = self.pool.get('res.currency').compute(cr, uid, order.pricelist_id.currency_id.id, order.company_id.currency_id.id, order[purchase_validation.amount_type],
56+ round=True, currency_rate_type_from=False, currency_rate_type_to=False, context=None)
57+ if amount_total >= purchase_validation.limit_amount:
58+ return False
59+ return -1
60+ return True
61+
62+ def purchase_amount_validate_signal(self, cr, uid, ids, context={}):
63+ validate_ok = self.purchase_amount_validate_ok(cr, uid, ids, context={})
64+ if validate_ok==-1:
65+ return True
66+ return not validate_ok
67+
68+ def purchase_amount_validate(self, cr, uid, ids, context={}):
69+ validate_ok = self.purchase_amount_validate_ok(cr, uid, ids, context={})
70+ if validate_ok == -1:
71+ return True
72+ return validate_ok
73+purchase_order()
74+
75+
76+
77+
78+
79+
80+
81+
82+
83+
84+
85+
86+
87
88=== modified file 'purchase_double_validation/purchase_double_validation_installer.py'
89--- purchase_double_validation/purchase_double_validation_installer.py 2010-12-31 06:26:40 +0000
90+++ purchase_double_validation/purchase_double_validation_installer.py 2012-07-31 19:32:23 +0000
91@@ -24,28 +24,22 @@
92 class purchase_double_validation_installer(osv.osv_memory):
93 _name = 'purchase.double.validation.installer'
94 _inherit = 'res.config'
95+ _order = 'id desc'
96+
97 _columns = {
98 'limit_amount': fields.integer('Maximum Purchase Amount', required=True, help="Maximum amount after which validation of purchase is required."),
99+ 'amount_type' : fields.selection([('amount_untaxed','Amount Untaxed'), ('amount_total', 'Amount Total')], 'Amount Type', required=True),
100+ 'currency_id': fields.many2one('res.currency', 'Currency', readonly=True)
101 }
102
103 _defaults = {
104 'limit_amount': 5000,
105+ 'amount_type' : 'amount_untaxed',
106+ 'currency_id': lambda self, cr, uid, context=None: self.pool.get('res.users').browse(cr, uid, uid).company_id.currency_id.id
107 }
108
109 def execute(self, cr, uid, ids, context=None):
110- data = self.read(cr, uid, ids, context=context)
111- if not data:
112- return {}
113- amt = data[0]['limit_amount']
114- data_pool = self.pool.get('ir.model.data')
115- transition_obj = self.pool.get('workflow.transition')
116- waiting = data_pool._get_id(cr, uid, 'purchase', 'trans_confirmed_router')
117- waiting_id = data_pool.browse(cr, uid, waiting, context=context).res_id
118- confirm = data_pool._get_id(cr, uid, 'purchase_double_validation', 'trans_waiting_confirmed')
119- confirm_id = data_pool.browse(cr, uid, confirm, context=context).res_id
120- transition_obj.write(cr, uid, waiting_id, {'condition': 'amount_total>=%s' % (amt)})
121- transition_obj.write(cr, uid, confirm_id, {'condition': 'amount_total<%s' % (amt)})
122- return {}
123+ return {'type': 'ir.actions.act_window_close'}
124
125 purchase_double_validation_installer()
126
127
128=== modified file 'purchase_double_validation/purchase_double_validation_installer.xml'
129--- purchase_double_validation/purchase_double_validation_installer.xml 2011-10-16 01:28:00 +0000
130+++ purchase_double_validation/purchase_double_validation_installer.xml 2012-07-31 19:32:23 +0000
131@@ -24,6 +24,8 @@
132 </xpath>
133 <group string="res_config_contents" position="replace">
134 <field name="limit_amount"/>
135+ <field name="amount_type"/>
136+ <field name="currency_id"/>
137 <newline/>
138 </group>
139 </data>
140
141=== modified file 'purchase_double_validation/purchase_double_validation_workflow.xml'
142--- purchase_double_validation/purchase_double_validation_workflow.xml 2010-12-30 17:23:02 +0000
143+++ purchase_double_validation/purchase_double_validation_workflow.xml 2012-07-31 19:32:23 +0000
144@@ -3,7 +3,7 @@
145 <data>
146
147 <record id="purchase.trans_confirmed_router" model="workflow.transition">
148- <field name="condition">amount_untaxed &gt;= 1000</field>
149+ <field name="condition">purchase_amount_validate_signal()</field>
150 <field name="signal">purchase_approve</field>
151 <field name="group_id" ref="purchase.group_purchase_manager"/>
152 </record>
153@@ -11,7 +11,7 @@
154 <record id="trans_waiting_confirmed" model="workflow.transition">
155 <field name="act_from" ref="purchase.act_confirmed"/>
156 <field name="act_to" ref="purchase.act_router"/>
157- <field name="condition">amount_untaxed &lt; 1000</field>
158+ <field name="condition">purchase_amount_validate()</field>
159 </record>
160
161 </data>