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
=== modified file 'purchase_double_validation/__init__.py'
--- purchase_double_validation/__init__.py 2010-12-22 11:05:42 +0000
+++ purchase_double_validation/__init__.py 2012-07-31 19:32:23 +0000
@@ -20,5 +20,6 @@
20##############################################################################20##############################################################################
2121
22import purchase_double_validation_installer22import purchase_double_validation_installer
23import purchase
2324
24# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:25# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
2526
=== added file 'purchase_double_validation/purchase.py'
--- purchase_double_validation/purchase.py 1970-01-01 00:00:00 +0000
+++ purchase_double_validation/purchase.py 2012-07-31 19:32:23 +0000
@@ -0,0 +1,71 @@
1# -*- encoding: utf-8 -*-
2###########################################################################
3# Module Writen to OpenERP, Open Source Management Solution
4#
5# Copyright (c) 2012 Vauxoo - http://www.vauxoo.com
6# All Rights Reserved.
7# info@vauxoo.com
8############################################################################
9# Coded by: julio (julio@vauxoo.com)
10############################################################################
11#
12# This program is free software: you can redistribute it and/or modify
13# it under the terms of the GNU Affero General Public License as
14# published by the Free Software Foundation, either version 3 of the
15# License, or (at your option) any later version.
16#
17# This program is distributed in the hope that it will be useful,
18# but WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20# GNU Affero General Public License for more details.
21#
22# You should have received a copy of the GNU Affero General Public License
23# along with this program. If not, see <http://www.gnu.org/licenses/>.
24#
25##############################################################################
26
27from osv import osv, fields
28
29
30class purchase_order(osv.osv):
31 _inherit='purchase.order'
32 def purchase_amount_validate_ok(self, cr, uid, ids, context={}):
33 purchase_installer=self.pool.get('purchase.double.validation.installer')
34 for order in self.browse(cr,uid,ids):
35 cr.execute(""" select max(id) as purchase_validation_id from purchase_double_validation_installer """)
36 dat = cr.dictfetchall()
37 purchase_validation_id=dat and dat[0]['purchase_validation_id'] or False
38 if purchase_validation_id:
39 purchase_validation=purchase_installer.browse(cr,uid,purchase_validation_id)
40 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],
41 round=True, currency_rate_type_from=False, currency_rate_type_to=False, context=None)
42 if amount_total >= purchase_validation.limit_amount:
43 return False
44 return -1
45 return True
46
47 def purchase_amount_validate_signal(self, cr, uid, ids, context={}):
48 validate_ok = self.purchase_amount_validate_ok(cr, uid, ids, context={})
49 if validate_ok==-1:
50 return True
51 return not validate_ok
52
53 def purchase_amount_validate(self, cr, uid, ids, context={}):
54 validate_ok = self.purchase_amount_validate_ok(cr, uid, ids, context={})
55 if validate_ok == -1:
56 return True
57 return validate_ok
58purchase_order()
59
60
61
62
63
64
65
66
67
68
69
70
71
072
=== modified file 'purchase_double_validation/purchase_double_validation_installer.py'
--- purchase_double_validation/purchase_double_validation_installer.py 2010-12-31 06:26:40 +0000
+++ purchase_double_validation/purchase_double_validation_installer.py 2012-07-31 19:32:23 +0000
@@ -24,28 +24,22 @@
24class purchase_double_validation_installer(osv.osv_memory):24class purchase_double_validation_installer(osv.osv_memory):
25 _name = 'purchase.double.validation.installer'25 _name = 'purchase.double.validation.installer'
26 _inherit = 'res.config'26 _inherit = 'res.config'
27 _order = 'id desc'
28
27 _columns = {29 _columns = {
28 'limit_amount': fields.integer('Maximum Purchase Amount', required=True, help="Maximum amount after which validation of purchase is required."),30 'limit_amount': fields.integer('Maximum Purchase Amount', required=True, help="Maximum amount after which validation of purchase is required."),
31 'amount_type' : fields.selection([('amount_untaxed','Amount Untaxed'), ('amount_total', 'Amount Total')], 'Amount Type', required=True),
32 'currency_id': fields.many2one('res.currency', 'Currency', readonly=True)
29 }33 }
3034
31 _defaults = {35 _defaults = {
32 'limit_amount': 5000,36 'limit_amount': 5000,
37 'amount_type' : 'amount_untaxed',
38 'currency_id': lambda self, cr, uid, context=None: self.pool.get('res.users').browse(cr, uid, uid).company_id.currency_id.id
33 }39 }
3440
35 def execute(self, cr, uid, ids, context=None):41 def execute(self, cr, uid, ids, context=None):
36 data = self.read(cr, uid, ids, context=context)42 return {'type': 'ir.actions.act_window_close'}
37 if not data:
38 return {}
39 amt = data[0]['limit_amount']
40 data_pool = self.pool.get('ir.model.data')
41 transition_obj = self.pool.get('workflow.transition')
42 waiting = data_pool._get_id(cr, uid, 'purchase', 'trans_confirmed_router')
43 waiting_id = data_pool.browse(cr, uid, waiting, context=context).res_id
44 confirm = data_pool._get_id(cr, uid, 'purchase_double_validation', 'trans_waiting_confirmed')
45 confirm_id = data_pool.browse(cr, uid, confirm, context=context).res_id
46 transition_obj.write(cr, uid, waiting_id, {'condition': 'amount_total>=%s' % (amt)})
47 transition_obj.write(cr, uid, confirm_id, {'condition': 'amount_total<%s' % (amt)})
48 return {}
4943
50purchase_double_validation_installer()44purchase_double_validation_installer()
5145
5246
=== modified file 'purchase_double_validation/purchase_double_validation_installer.xml'
--- purchase_double_validation/purchase_double_validation_installer.xml 2011-10-16 01:28:00 +0000
+++ purchase_double_validation/purchase_double_validation_installer.xml 2012-07-31 19:32:23 +0000
@@ -24,6 +24,8 @@
24 </xpath>24 </xpath>
25 <group string="res_config_contents" position="replace">25 <group string="res_config_contents" position="replace">
26 <field name="limit_amount"/>26 <field name="limit_amount"/>
27 <field name="amount_type"/>
28 <field name="currency_id"/>
27 <newline/>29 <newline/>
28 </group>30 </group>
29 </data>31 </data>
3032
=== modified file 'purchase_double_validation/purchase_double_validation_workflow.xml'
--- purchase_double_validation/purchase_double_validation_workflow.xml 2010-12-30 17:23:02 +0000
+++ purchase_double_validation/purchase_double_validation_workflow.xml 2012-07-31 19:32:23 +0000
@@ -3,7 +3,7 @@
3 <data>3 <data>
44
5 <record id="purchase.trans_confirmed_router" model="workflow.transition">5 <record id="purchase.trans_confirmed_router" model="workflow.transition">
6 <field name="condition">amount_untaxed &gt;= 1000</field>6 <field name="condition">purchase_amount_validate_signal()</field>
7 <field name="signal">purchase_approve</field>7 <field name="signal">purchase_approve</field>
8 <field name="group_id" ref="purchase.group_purchase_manager"/>8 <field name="group_id" ref="purchase.group_purchase_manager"/>
9 </record>9 </record>
@@ -11,7 +11,7 @@
11 <record id="trans_waiting_confirmed" model="workflow.transition">11 <record id="trans_waiting_confirmed" model="workflow.transition">
12 <field name="act_from" ref="purchase.act_confirmed"/>12 <field name="act_from" ref="purchase.act_confirmed"/>
13 <field name="act_to" ref="purchase.act_router"/>13 <field name="act_to" ref="purchase.act_router"/>
14 <field name="condition">amount_untaxed &lt; 1000</field>14 <field name="condition">purchase_amount_validate()</field>
15 </record>15 </record>
1616
17 </data>17 </data>