~vauxoo/addons-vauxoo/8.0-import_tax_tariff-dev-yani-rev-2

« back to all changes in this revision

Viewing changes to mrp_account_variation/mrp_account_variation_price.py

  • Committer: Nhomar Hernandez
  • Date: 2013-04-19 20:33:12 UTC
  • mfrom: (542.1.314 addons-vauxoo)
  • Revision ID: nhomar@gmail.com-20130419203312-o35v7dn79l6vur0t
[MERGE - PEP8 AND V7-MIG] All migrated to V7 Just
improved osv.osv => osv.Model, osv.osv_memory => osv.TransientModel
import inside openerp.* enviroment
Erased class instansiation no necesarry anymore in V7
AUTOPEP8 run, Left PEP8 long lines manually.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
24
24
#
25
25
##############################################################################
26
 
from osv import osv,fields
27
 
from tools.translate import _
28
 
import netsvc
 
26
from openerp.osv import osv, fields
 
27
from openerp.tools.translate import _
 
28
 
 
29
import openerp.netsvc as netsvc
29
30
import time
30
31
 
31
 
class mrp_production(osv.osv):
32
 
    _inherit='mrp.production'
33
 
 
34
 
    def action_finish(self,cr,uid,ids,context={}):
35
 
        res = super(mrp_production, self).action_finish(cr,uid,ids,context=context)
 
32
 
 
33
class mrp_production(osv.Model):
 
34
    _inherit = 'mrp.production'
 
35
 
 
36
    def action_finish(self, cr, uid, ids, context={}):
 
37
        res = super(mrp_production, self).action_finish(
 
38
            cr, uid, ids, context=context)
36
39
        self.create_move_variation_price(cr, uid, ids, context=context)
37
40
        return res
38
41
 
45
48
                total_product_consumed = 0.0
46
49
                total_product_finished = 0.0
47
50
                for prod_consumed in production.product_lines:
48
 
                    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)
49
 
                    total_product_consumed += product_consumed * prod_consumed.product_id.standard_price
 
51
                    product_consumed = product_uom_pool._compute_qty(
 
52
                        cr, uid, prod_consumed.product_uom.id, prod_consumed.product_qty, to_uom_id=prod_consumed.product_id.uom_id.id)
 
53
                    total_product_consumed += product_consumed * \
 
54
                        prod_consumed.product_id.standard_price
50
55
                for prod_finished in production.pt_planified_ids:
51
 
                    product_finished = product_uom_pool._compute_qty(cr, uid, prod_finished.product_uom.id, prod_finished.quantity, to_uom_id=prod_finished.product_id.uom_id.id)
52
 
                    total_product_finished += product_finished * prod_finished.product_id.standard_price
 
56
                    product_finished = product_uom_pool._compute_qty(
 
57
                        cr, uid, prod_finished.product_uom.id, prod_finished.quantity, to_uom_id=prod_finished.product_id.uom_id.id)
 
58
                    total_product_finished += product_finished * \
 
59
                        prod_finished.product_id.standard_price
53
60
                if production.product_id.property_stock_production:
54
61
                    if total_product_consumed > total_product_finished:
55
62
                        if production.product_id.property_stock_production.property_account_in_production_price_difference:
56
63
                            src_account_id = production.product_id.property_stock_production.valuation_out_account_id.id
57
64
                            dest_account_id = production.product_id.property_stock_production.property_account_in_production_price_difference.id
58
 
                            reference_amount = (total_product_consumed - total_product_finished)
 
65
                            reference_amount = (
 
66
                                total_product_consumed - total_product_finished)
59
67
                            journal_id = production.product_id.categ_id.property_stock_journal.id
60
 
                            account_moves = [(journal_id, self.create_account_variation_price_move_line(cr, uid, production, src_account_id, dest_account_id, reference_amount, context=None))]
 
68
                            account_moves = [(journal_id, self.create_account_variation_price_move_line(
 
69
                                cr, uid, production, src_account_id, dest_account_id, reference_amount, context=None))]
61
70
                    if total_product_consumed < total_product_finished:
62
71
                        if production.product_id.property_stock_production.property_account_out_production_price_difference:
63
72
                            src_account_id = production.product_id.property_stock_production.property_account_out_production_price_difference.id
64
73
                            dest_account_id = production.product_id.property_stock_production.valuation_in_account_id.id
65
 
                            reference_amount = (total_product_consumed - total_product_finished)*-1
 
74
                            reference_amount = (
 
75
                                total_product_consumed - total_product_finished)*-1
66
76
                            journal_id = production.product_id.categ_id.property_stock_journal.id
67
 
                            account_moves = [(journal_id,self.create_account_variation_price_move_line(cr, uid, production, src_account_id, dest_account_id, reference_amount, context=None))]
 
77
                            account_moves = [(journal_id, self.create_account_variation_price_move_line(
 
78
                                cr, uid, production, src_account_id, dest_account_id, reference_amount, context=None))]
68
79
 
69
80
                if account_moves:
70
 
                    for j_id,move_lines in account_moves:
 
81
                    for j_id, move_lines in account_moves:
71
82
                        move_obj.create(cr, uid,
72
 
                            {
73
 
                             'journal_id': j_id,
74
 
                             'line_id': move_lines,
75
 
                             'ref': 'PROD: ' + production.name + ' - ' + _('Deflection  by difference on consume RM vs FP')})
 
83
                                        {
 
84
                                        'journal_id': j_id,
 
85
                                        'line_id': move_lines,
 
86
                                        'ref': 'PROD: ' + production.name + ' - ' + _('Deflection  by difference on consume RM vs FP')})
76
87
        return True
77
88
 
78
89
    def create_account_variation_price_move_line(self, cr, uid, production, src_account_id, dest_account_id, reference_amount, context=None):
79
90
        debit_line_vals = {
80
 
                    'name': 'PROD: ' + production.name or '',
 
91
            'name': 'PROD: ' + production.name or '',
81
92
                    'date': time.strftime('%Y-%m-%d'),
82
93
                    'debit': reference_amount,
83
94
                    'account_id': dest_account_id,
84
 
                    'production_id' : production.id
 
95
                    'production_id': production.id
85
96
        }
86
97
        credit_line_vals = {
87
 
                    'name': 'PROD: ' + production.name or '',
 
98
            'name': 'PROD: ' + production.name or '',
88
99
                    'date': time.strftime('%Y-%m-%d'),
89
100
                    'credit': reference_amount,
90
101
                    'account_id': src_account_id,
91
 
                    'production_id' : production.id
 
102
                    'production_id': production.id
92
103
        }
93
104
 
94
105
        return [(0, 0, debit_line_vals), (0, 0, credit_line_vals)]
95
106
 
96
 
mrp_production()
97
 
 
98
 
 
99
 
 
100
 
 
101
 
 
102
 
 
103
 
 
104
 
 
105
 
 
106
 
 
107
 
 
108
 
 
109
 
 
110
 
 
111
 
 
112
 
 
113
 
 
114
 
 
115
 
 
116
 
 
117
 
 
118
 
 
119
 
 
120
 
 
121