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

Proposed by Julio Serna-http://www.vauxoo.com
Status: Merged
Merged at revision: 554
Proposed branch: lp:~vauxoo/addons-vauxoo/addons-vauxoo-6.1-mrp_account_variation_price-dev-julio
Merge into: lp:addons-vauxoo/6.1
Diff against target: 204 lines (+145/-4)
5 files modified
mrp_account_variation/__init__.py (+1/-0)
mrp_account_variation/mrp_account_variation.py (+4/-4)
mrp_account_variation/mrp_account_variation_price.py (+124/-0)
mrp_account_variation/stock_location.py (+14/-0)
mrp_account_variation/stock_location_view.xml (+2/-0)
To merge this branch: bzr merge lp:~vauxoo/addons-vauxoo/addons-vauxoo-6.1-mrp_account_variation_price-dev-julio
Reviewer Review Type Date Requested Status
Moisés López - http://www.vauxoo.com Pending
Review via email: mp+131714@code.launchpad.net

Description of the change

crea poliza de diferencia precio entre materia prima y producto terminado de produccione

To post a comment you must log in.
Revision history for this message
Moisés López - http://www.vauxoo.com (moylop260) wrote :
Download full text (12.6 KiB)

Tecnicamente aprobado

Correo escrito desde un dispositivo móvil. Disculpa las faltas de
ortografía y la brevedad del email.
"No imprimas este email al menos que sea muy necesario, la ecología es cosa
de todos"

Moisés López - Vauxoo - moylop260
El 26/10/2012 20:00, "Julio Serna-http://www.vauxoo.com" <email address hidden>
escribió:

> Julio Serna-http://www.vauxoo.com has proposed merging
> lp:~vauxoo/addons-vauxoo/addons-vauxoo-6.1-mrp_account_variation_price-dev-julio
> into lp:addons-vauxoo/6.1.
>
> Requested reviews:
> Moisés López - http://www.vauxoo.com (moylop260)
>
> For more details, see:
>
> https://code.launchpad.net/~vauxoo/addons-vauxoo/addons-vauxoo-6.1-mrp_account_variation_price-dev-julio/+merge/131714
>
> crea poliza de diferencia precio entre materia prima y producto terminado
> de produccione
> --
>
> https://code.launchpad.net/~vauxoo/addons-vauxoo/addons-vauxoo-6.1-mrp_account_variation_price-dev-julio/+merge/131714
> You are requested to review the proposed merge of
> lp:~vauxoo/addons-vauxoo/addons-vauxoo-6.1-mrp_account_variation_price-dev-julio
> into lp:addons-vauxoo/6.1.
>
> === modified file 'mrp_account_variation/__init__.py'
> --- mrp_account_variation/__init__.py 2012-09-18 00:35:32 +0000
> +++ mrp_account_variation/__init__.py 2012-10-27 00:59:20 +0000
> @@ -25,3 +25,4 @@
>
> ##############################################################################
> import stock_location
> import mrp_account_variation
> +import mrp_account_variation_price
>
> === modified file 'mrp_account_variation/mrp_account_variation.py'
> --- mrp_account_variation/mrp_account_variation.py 2012-10-26
> 00:44:46 +0000
> +++ mrp_account_variation/mrp_account_variation.py 2012-10-27
> 00:59:20 +0000
> @@ -74,20 +74,20 @@
> if context.get('type',False) == 'consumed':
> if product.quantity > 0:
> if
> product.product_id.property_stock_production.valuation_in_account_id:
> - src_acc =
> product.product_id.property_stock_production.valuation_in_account_id and
> product.product_id.property_stock_production.valuation_in_account_id.idor False
> + src_acc =
> product.product_id.property_stock_production.valuation_in_account_id.id
> if product.product_id.type == 'service':
> dest_acc =
> product.product_id.categ_id.property_stock_valuation_account_id and
> product.product_id.categ_id.property_stock_valuation_account_id.id or
> False
> elif
> product.product_id.property_stock_production.variation_in_account_id:
> - dest_acc =
> product.product_id.property_stock_production.variation_in_account_id and
> product.product_id.property_stock_production.variation_in_account_id.idor False
> + dest_acc =
> product.product_id.property_stock_production.variation_in_account_id.id
> reference_amount = product.cost_variation
>
> if product.quantity < 0:
> if product.product_id.type == 'service':
> src_acc =
> product.product_id.categ_id.property_stock_valuation_account_id and
> product.product_id.categ_id.proper...

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'mrp_account_variation/__init__.py'
2--- mrp_account_variation/__init__.py 2012-09-18 00:35:32 +0000
3+++ mrp_account_variation/__init__.py 2012-10-27 00:59:20 +0000
4@@ -25,3 +25,4 @@
5 ##############################################################################
6 import stock_location
7 import mrp_account_variation
8+import mrp_account_variation_price
9
10=== modified file 'mrp_account_variation/mrp_account_variation.py'
11--- mrp_account_variation/mrp_account_variation.py 2012-10-26 00:44:46 +0000
12+++ mrp_account_variation/mrp_account_variation.py 2012-10-27 00:59:20 +0000
13@@ -74,20 +74,20 @@
14 if context.get('type',False) == 'consumed':
15 if product.quantity > 0:
16 if product.product_id.property_stock_production.valuation_in_account_id:
17- src_acc = product.product_id.property_stock_production.valuation_in_account_id and product.product_id.property_stock_production.valuation_in_account_id.id or False
18+ src_acc = product.product_id.property_stock_production.valuation_in_account_id.id
19 if product.product_id.type == 'service':
20 dest_acc = product.product_id.categ_id.property_stock_valuation_account_id and product.product_id.categ_id.property_stock_valuation_account_id.id or False
21 elif product.product_id.property_stock_production.variation_in_account_id:
22- dest_acc = product.product_id.property_stock_production.variation_in_account_id and product.product_id.property_stock_production.variation_in_account_id.id or False
23+ dest_acc = product.product_id.property_stock_production.variation_in_account_id.id
24 reference_amount = product.cost_variation
25
26 if product.quantity < 0:
27 if product.product_id.type == 'service':
28 src_acc = product.product_id.categ_id.property_stock_valuation_account_id and product.product_id.categ_id.property_stock_valuation_account_id.id or False
29 elif product.product_id.property_stock_production.variation_in_account_id:
30- src_acc = product.product_id.property_stock_production.variation_in_account_id and product.product_id.property_stock_production.variation_in_account_id.id or False
31+ src_acc = product.product_id.property_stock_production.variation_in_account_id.id
32 if product.product_id.property_stock_production.valuation_in_account_id:
33- dest_acc = product.product_id.property_stock_production.valuation_in_account_id and product.product_id.property_stock_production.valuation_in_account_id.id or False
34+ dest_acc = product.product_id.property_stock_production.valuation_in_account_id.id
35 reference_amount = product.cost_variation*-1
36
37 if context.get('type',False) == 'produced':
38
39=== added file 'mrp_account_variation/mrp_account_variation_price.py'
40--- mrp_account_variation/mrp_account_variation_price.py 1970-01-01 00:00:00 +0000
41+++ mrp_account_variation/mrp_account_variation_price.py 2012-10-27 00:59:20 +0000
42@@ -0,0 +1,124 @@
43+# -*- encoding: utf-8 -*-
44+###########################################################################
45+# Module Writen to OpenERP, Open Source Management Solution
46+#
47+# Copyright (c) 2012 Vauxoo - http://www.vauxoo.com
48+# All Rights Reserved.
49+# info@vauxoo.com
50+############################################################################
51+# Coded by: julio (julio@vauxoo.com)
52+############################################################################
53+#
54+# This program is free software: you can redistribute it and/or modify
55+# it under the terms of the GNU Affero General Public License as
56+# published by the Free Software Foundation, either version 3 of the
57+# License, or (at your option) any later version.
58+#
59+# This program is distributed in the hope that it will be useful,
60+# but WITHOUT ANY WARRANTY; without even the implied warranty of
61+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
62+# GNU Affero General Public License for more details.
63+#
64+# You should have received a copy of the GNU Affero General Public License
65+# along with this program. If not, see <http://www.gnu.org/licenses/>.
66+#
67+##############################################################################
68+from osv import osv,fields
69+from tools.translate import _
70+import netsvc
71+import time
72+
73+class mrp_production(osv.osv):
74+ _inherit='mrp.production'
75+
76+ def action_finish(self,cr,uid,ids,context={}):
77+ res = super(mrp_production, self).action_finish(cr,uid,ids,context=context)
78+ self._create_move_variation_price(cr, uid, ids, context=context)
79+ return res
80+
81+ def _create_move_variation_price(self, cr, uid, ids, context={}):
82+ move_obj = self.pool.get('account.move')
83+ product_uom_pool = self.pool.get('product.uom')
84+ for production in self.browse(cr, uid, ids, context=context):
85+ account_moves = []
86+ total_product_consumed = 0.0
87+ total_product_finished = 0.0
88+ for prod_consumed in production.move_lines2:
89+ if prod_consumed.state == 'done':
90+ product_consumed = product_uom_pool._compute_qty(cr, uid, prod_consumed.product_uom.id, prod_consumed.product_qty, to_uom_id=prod_consumed.product_id.uom_id.id)
91+ total_product_consumed += product_consumed * prod_consumed.product_id.standard_price
92+ for prod_finished in production.move_created_ids2:
93+ if prod_finished.state == 'done':
94+ product_finished = product_uom_pool._compute_qty(cr, uid, prod_finished.product_uom.id, prod_finished.product_qty, to_uom_id=prod_finished.product_id.uom_id.id)
95+ total_product_finished += product_finished * prod_finished.product_id.standard_price
96+
97+ if production.product_id.property_stock_production:
98+ if total_product_consumed > total_product_finished:
99+ if production.product_id.property_stock_production.property_account_in_production_price_difference:
100+ src_account_id = production.product_id.property_stock_production.valuation_out_account_id.id
101+ dest_account_id = production.product_id.property_stock_production.property_account_in_production_price_difference.id
102+ reference_amount = (total_product_consumed - total_product_finished)
103+ journal_id = production.product_id.categ_id.property_stock_journal.id
104+ account_moves = [(journal_id, self._create_account_variation_price_move_line(cr, uid, production, src_account_id, dest_account_id, reference_amount, context=None))]
105+ if total_product_consumed < total_product_finished:
106+ if production.product_id.property_stock_production.property_account_out_production_price_difference:
107+ src_account_id = production.product_id.property_stock_production.property_account_out_production_price_difference.id
108+ dest_account_id = production.product_id.property_stock_production.valuation_in_account_id.id
109+ reference_amount = (total_product_consumed - total_product_finished)*-1
110+ journal_id = production.product_id.categ_id.property_stock_journal.id
111+ account_moves = [(journal_id,self._create_account_variation_price_move_line(cr, uid, production, src_account_id, dest_account_id, reference_amount, context=None))]
112+
113+ if account_moves:
114+ for j_id,move_lines in account_moves:
115+ move_obj.create(cr, uid,
116+ {
117+ 'journal_id': j_id,
118+ 'line_id': move_lines,
119+ 'ref': 'PROD: ' + production.name})
120+
121+ return True
122+
123+ def _create_account_variation_price_move_line(self, cr, uid, production, src_account_id, dest_account_id, reference_amount, context=None):
124+ debit_line_vals = {
125+ 'name': 'PROD: ' + production.name or '',
126+ 'date': time.strftime('%Y-%m-%d'),
127+ 'debit': reference_amount,
128+ 'account_id': dest_account_id,
129+ 'production_id' : production.id
130+ }
131+ credit_line_vals = {
132+ 'name': 'PROD: ' + production.name or '',
133+ 'date': time.strftime('%Y-%m-%d'),
134+ 'credit': reference_amount,
135+ 'account_id': src_account_id,
136+ 'production_id' : production.id
137+ }
138+
139+ return [(0, 0, debit_line_vals), (0, 0, credit_line_vals)]
140+
141+mrp_production()
142+
143+
144+
145+
146+
147+
148+
149+
150+
151+
152+
153+
154+
155+
156+
157+
158+
159+
160+
161+
162+
163+
164+
165+
166+
167
168=== modified file 'mrp_account_variation/stock_location.py'
169--- mrp_account_variation/stock_location.py 2012-09-18 00:35:32 +0000
170+++ mrp_account_variation/stock_location.py 2012-10-27 00:59:20 +0000
171@@ -31,6 +31,20 @@
172 _columns = {
173 'variation_in_account_id': fields.many2one('account.account', 'Stock Variation Account (Incoming)', domain = [('type','=','other')]),
174 'variation_out_account_id': fields.many2one('account.account', 'Stock Variation Account (Outgoing)', domain = [('type','=','other')]),
175+ 'property_account_in_production_price_difference': fields.property(
176+ 'account.account',
177+ type='many2one',
178+ relation = 'account.account',
179+ string = 'Price Production Variation Account (Incoming)',
180+ view_load=True,
181+ domain = [('type','=','other')]),
182+ 'property_account_out_production_price_difference': fields.property(
183+ 'account.account',
184+ type='many2one',
185+ relation = 'account.account',
186+ string = 'Price Production Variation Account (Outgoing)',
187+ view_load=True,
188+ domain = [('type','=','other')]),
189 }
190
191 stock_location()
192
193=== modified file 'mrp_account_variation/stock_location_view.xml'
194--- mrp_account_variation/stock_location_view.xml 2012-09-18 00:35:32 +0000
195+++ mrp_account_variation/stock_location_view.xml 2012-10-27 00:59:20 +0000
196@@ -11,6 +11,8 @@
197 <xpath expr="/form/group/field[@name='valuation_out_account_id']" position="after">
198 <field name="variation_out_account_id" attrs="{'readonly':[('usage','not in',('inventory','production'))]}"/>
199 <field name="variation_in_account_id" attrs="{'readonly':[('usage','not in',('inventory','production'))]}"/>
200+ <field name="property_account_out_production_price_difference" attrs="{'readonly':[('usage','not in',('inventory','production'))]}"/>
201+ <field name="property_account_in_production_price_difference" attrs="{'readonly':[('usage','not in',('inventory','production'))]}"/>
202 </xpath>
203 </field>
204 </record>