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

« back to all changes in this revision

Viewing changes to mrp_request_return/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:
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
 
 
29
 
class mrp_production(osv.osv):
30
 
    _inherit='mrp.production'
 
26
from openerp.osv import osv, fields
 
27
from openerp.tools.translate import _
 
28
 
 
29
 
 
30
 
 
31
class mrp_production(osv.Model):
 
32
    _inherit = 'mrp.production'
31
33
 
32
34
    _columns = {
33
 
        'picking_ids' : fields.one2many('stock.picking', 'production_id', 'Picking')
 
35
        'picking_ids': fields.one2many('stock.picking', 'production_id', 'Picking')
34
36
    }
35
37
 
36
38
    def action_finished_consume(self, cr, uid, ids, context=None):
37
 
        if context is None: context = {}
 
39
        if context is None:
 
40
            context = {}
38
41
 
39
42
        stock_picking = self.pool.get('stock.picking')
40
43
        mrp_production2 = self.pool.get('mrp.production')
41
44
        stock_move = self.pool.get('stock.move')
42
 
        production = self.pool.get('mrp.production').browse(cr, uid, ids, context=context)[0]
 
45
        production = self.pool.get('mrp.production').browse(
 
46
            cr, uid, ids, context=context)[0]
43
47
 
44
48
        for wizard_moves in self.browse(cr, uid, ids, context=context):
45
49
            context['type'] = 'return'
46
 
            pick_id_return = mrp_production2._make_production_internal_shipment2(cr, uid, production, context=context)
47
 
            stock_picking.write(cr, uid, pick_id_return, {'state':'draft', 'auto_picking':False, 'production_id':production.id})
 
50
            pick_id_return = mrp_production2._make_production_internal_shipment2(
 
51
                cr, uid, production, context=context)
 
52
            stock_picking.write(cr, uid, pick_id_return, {
 
53
                                'state': 'draft', 'auto_picking': False, 'production_id': production.id})
48
54
            for wiz_move2 in wizard_moves.move_lines:
49
55
                if wiz_move2.product_qty > 0.0:
50
 
                    shipment_move_id = mrp_production2._make_production_internal_shipment_line2(cr, uid, production, wiz_move2, pick_id_return, parent_move_id=False, destination_location_id=False)
51
 
                    stock_move.write(cr, uid, shipment_move_id, {'state':'draft'})
52
 
        res = super(mrp_production, self).action_finished_consume(cr, uid, ids, context=context)
 
56
                    shipment_move_id = mrp_production2._make_production_internal_shipment_line2(
 
57
                        cr, uid, production, wiz_move2, pick_id_return, parent_move_id=False, destination_location_id=False)
 
58
                    stock_move.write(cr, uid, shipment_move_id, {
 
59
                                     'state': 'draft'})
 
60
        res = super(mrp_production, self).action_finished_consume(
 
61
            cr, uid, ids, context=context)
53
62
        return res
54
63
 
55
64
    def _make_production_internal_shipment_line2(self, cr, uid, production, production_line, shipment_id, parent_move_id, destination_location_id=False, context=None):
63
72
        if not destination_location_id:
64
73
            destination_location_id = source_location_id
65
74
        return stock_move.create(cr, uid, {
66
 
                        'name': move_name,
67
 
                        'picking_id': shipment_id,
68
 
                        'product_id': production_line.product_id.id,
69
 
                        'product_qty': production_line.product_qty,
70
 
                        'product_uom': production_line.product_uom.id,
71
 
                        'product_uos_qty': production_line.product_uos and production_line.product_uos_qty or False,
72
 
                        'product_uos': production_line.product_uos and production_line.product_uos.id or False,
73
 
                        'date': date_planned,
74
 
                        'move_dest_id': parent_move_id,
75
 
                        'location_id': source_location_id,
76
 
                        'location_dest_id': destination_location_id,
77
 
                        'state': 'waiting',
78
 
                        'company_id': production.company_id.id,
79
 
                })
 
75
            'name': move_name,
 
76
            'picking_id': shipment_id,
 
77
            'product_id': production_line.product_id.id,
 
78
            'product_qty': production_line.product_qty,
 
79
            'product_uom': production_line.product_uom.id,
 
80
            'product_uos_qty': production_line.product_uos and production_line.product_uos_qty or False,
 
81
            'product_uos': production_line.product_uos and production_line.product_uos.id or False,
 
82
            'date': date_planned,
 
83
            'move_dest_id': parent_move_id,
 
84
            'location_id': source_location_id,
 
85
            'location_dest_id': destination_location_id,
 
86
            'state': 'waiting',
 
87
            'company_id': production.company_id.id,
 
88
        })
80
89
 
81
90
    def _make_production_internal_shipment2(self, cr, uid, production, context=None):
82
91
        ir_sequence = self.pool.get('ir.sequence')
86
95
        address_id = False
87
96
 
88
97
        # Take routing address as a Shipment Address.
89
 
        # If usage of routing location is a internal, make outgoing shipment otherwise internal shipment
 
98
        # If usage of routing location is a internal, make outgoing shipment
 
99
        # otherwise internal shipment
90
100
        if production.bom_id.routing_id and production.bom_id.routing_id.location_id:
91
101
            routing_loc = production.bom_id.routing_id.location_id
92
 
            if routing_loc.usage <> 'internal':
 
102
            if routing_loc.usage != 'internal':
93
103
                pick_type = 'out'
94
104
            address_id = routing_loc.address_id and routing_loc.address_id.id or False
95
105
 
96
106
        # Take next Sequence number of shipment base on type
97
107
        pick_name = ir_sequence.get(cr, uid, 'stock.picking')
98
108
        picking_id = stock_picking.create(cr, uid, {
99
 
            'name': pick_name + '-' + context.get('type',''),
 
109
            'name': pick_name + '-' + context.get('type', ''),
100
110
            'origin': (production.origin or '').split(':')[0] + ':' + production.name,
101
111
            'type': pick_type,
102
112
            'state': 'draft',
112
122
            'picking_ids': []
113
123
        })
114
124
        return super(mrp_production, self).copy(cr, uid, id, default, context)
115
 
mrp_production()
116
 
 
117
 
class stock_picking(osv.osv):
118
 
    _inherit='stock.picking'
 
125
 
 
126
 
 
127
class stock_picking(osv.Model):
 
128
    _inherit = 'stock.picking'
119
129
 
120
130
    _columns = {
121
 
        'production_id' : fields.many2one('mrp.production', 'Production')
 
131
        'production_id': fields.many2one('mrp.production', 'Production')
122
132
    }
123
133
mrp_production()