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

« back to all changes in this revision

Viewing changes to mrp_subproduction/mrp.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:
24
24
#
25
25
##############################################################################
26
26
 
27
 
from tools.translate import _
28
 
from osv import osv, fields
 
27
from openerp.tools.translate import _
 
28
 
 
29
from openerp.osv import osv, fields
29
30
import decimal_precision as dp
30
31
 
31
 
class mrp_production(osv.osv):
 
32
 
 
33
class mrp_production(osv.Model):
32
34
    _inherit = "mrp.production"
33
 
    
 
35
 
34
36
    def _get_product_subproduction_qty(self, cr, uid, ids, field_names, args, context=None):
35
37
        if context is None:
36
38
            context = {}
37
 
        product_uom_pool=self.pool.get('product.uom')
 
39
        product_uom_pool = self.pool.get('product.uom')
38
40
        result = {}
39
41
        subp_sum = 0.0
40
42
        subp_real_sum = 0.0
44
46
                    if (subprod.product_lines and subprod.state not in ('cancel')):
45
47
                        for scheduled in subprod.product_lines:
46
48
                            if scheduled.product_id.id == production.product_id.id:
47
 
                                subp_sum += product_uom_pool._compute_qty(cr, uid, scheduled.product_uom.id, scheduled.product_qty, to_uom_id=production.product_uom.id)
48
 
                                
 
49
                                subp_sum += product_uom_pool._compute_qty(
 
50
                                    cr, uid, scheduled.product_uom.id, scheduled.product_qty, to_uom_id=production.product_uom.id)
 
51
 
49
52
                    if (subprod.move_lines2 and subprod.state not in ('cancel')):
50
53
                        for consumed in subprod.move_lines2:
51
54
                            if (consumed.product_id.id == production.product_id.id and consumed.state not in ('cancel')):
52
 
                                subp_real_sum += product_uom_pool._compute_qty(cr, uid, consumed.product_uom.id, consumed.product_qty, to_uom_id=production.product_uom.id)
 
55
                                subp_real_sum += product_uom_pool._compute_qty(
 
56
                                    cr, uid, consumed.product_uom.id, consumed.product_qty, to_uom_id=production.product_uom.id)
53
57
            result[production.id] = {
54
58
                'product_subproduction_qty_real': subp_real_sum,
55
59
                'product_subproduction_qty_planned': subp_sum
56
60
            }
57
61
        return result
58
 
    
 
62
 
59
63
    def _get_parent_product(self, cr, uid, ids, field_names, args, context=None):
60
 
        product_uom_pool=self.pool.get('product.uom')
 
64
        product_uom_pool = self.pool.get('product.uom')
61
65
        parent_id = context.get('subproduction_parent_id') or 0
62
66
        parent_product_id = 0
63
67
        result = {}
64
68
        if parent_id:
65
 
            parent_production = self.browse(cr, uid, parent_id, context=context)
 
69
            parent_production = self.browse(
 
70
                cr, uid, parent_id, context=context)
66
71
            parent_product_id = parent_production.product_id.id
67
 
        
 
72
 
68
73
        for production in self.browse(cr, uid, ids, context=context):
69
74
            planned_qty = 0.0
70
75
            real_qty = 0.0
71
76
            if production.product_lines:
72
77
                for scheduled in production.product_lines:
73
78
                    if scheduled.product_id.id == parent_product_id:
74
 
                        planned_qty += product_uom_pool._compute_qty(cr, uid, scheduled.product_uom.id, scheduled.product_qty, to_uom_id=parent_production.product_uom.id)
75
 
                        
 
79
                        planned_qty += product_uom_pool._compute_qty(
 
80
                            cr, uid, scheduled.product_uom.id, scheduled.product_qty, to_uom_id=parent_production.product_uom.id)
 
81
 
76
82
            if production.move_lines2:
77
83
                for consumed in production.move_lines2:
78
84
                    if (consumed.product_id.id == parent_product_id and consumed.state in ('done')):
79
 
                        real_qty += product_uom_pool._compute_qty(cr, uid, consumed.product_uom.id, consumed.product_qty, to_uom_id=parent_production.product_uom.id)
80
 
            
 
85
                        real_qty += product_uom_pool._compute_qty(
 
86
                            cr, uid, consumed.product_uom.id, consumed.product_qty, to_uom_id=parent_production.product_uom.id)
 
87
 
81
88
            result[production.id] = {
82
89
                'product_subproduction_qty_line_real': real_qty,
83
90
                'product_subproduction_qty_line_planned': planned_qty
84
91
            }
85
92
        return result
86
 
    
 
93
 
87
94
    def _get_self_consumed(self, cr, uid, ids, field_name, args, context=None):
88
 
        product_uom_pool=self.pool.get('product.uom')
 
95
        product_uom_pool = self.pool.get('product.uom')
89
96
        if context is None:
90
97
            context = {}
91
98
        result = {}
92
99
        total_consumed = 0
93
 
        #ids received are the ones from superproducts, broese is done in backwards
 
100
        # ids received are the ones from superproducts, broese is done in
 
101
        # backwards
94
102
        for production in self.browse(cr, uid, ids, context=context):
95
103
            if production.move_created_ids2:
96
 
                
 
104
 
97
105
                for finished in production.move_created_ids2:
98
106
                    if (finished.product_id.id == production.product_id.id and finished.state in ('done')):
99
 
                        total_consumed += product_uom_pool._compute_qty(cr, uid, finished.product_uom.id, finished.product_qty, to_uom_id=production.product_uom.id)
 
107
                        total_consumed += product_uom_pool._compute_qty(
 
108
                            cr, uid, finished.product_uom.id, finished.product_qty, to_uom_id=production.product_uom.id)
100
109
            else:
101
110
                total_consumed = production.product_qty
102
111
            result[production.id] = total_consumed
105
114
                    if (subprods.move_lines2 and subprods.state not in ('cancel')):
106
115
                        for consumed in subprods.move_lines2:
107
116
                            if (consumed.product_id.id == production.product_id.id and consumed.state in ('done')):
108
 
                                total_consumed -= product_uom_pool._compute_qty(cr, uid, consumed.product_uom.id, consumed.product_qty, to_uom_id=production.product_uom.id)
 
117
                                total_consumed -= product_uom_pool._compute_qty(
 
118
                                    cr, uid, consumed.product_uom.id, consumed.product_qty, to_uom_id=production.product_uom.id)
109
119
                        result[production.id] = total_consumed
110
120
        return result
111
 
        
 
121
 
112
122
    _columns = {
113
123
        'subproduction_ids': fields.many2many('mrp.production', 'rel_mrp_subproduction_self', 'parent_id', 'children_id', 'Subproductions'),
114
124
        'superproduction_ids': fields.many2many('mrp.production', 'rel_mrp_subproduction_self', 'children_id', 'parent_id', 'Superproductions'),
118
128
        'product_subproduction_qty_line_planned': fields.function(_get_parent_product, type='float', digits_compute=dp.get_precision('Product UoM'), method=True, string='Planned in line', multi="product_subproduction_qty_line_real"),
119
129
        'product_superproduction_qty_consumed': fields.function(_get_self_consumed, type='float', digits_compute=dp.get_precision('Product UoM'), method=True, string='Remaining'),
120
130
    }
121
 
    
 
131
 
122
132
    def copy(self, cr, uid, id, default=None, context=None):
123
133
        if default is None:
124
134
            default = {}
125
135
        default.update({
126
 
            'subproduction_ids' : [],
127
 
            'superproduction_ids' : [],
 
136
            'subproduction_ids': [],
 
137
            'superproduction_ids': [],
128
138
        })
129
139
        return super(mrp_production, self).copy(cr, uid, id, default, context)
130
140
 
131
 
mrp_production()
 
 
b'\\ No newline at end of file'