32
32
'to_add': fields.one2many('stock.scan.to.validate', 'tracking_id', 'To add', domain=[('type','=','in')]),
33
33
'to_remove': fields.one2many('stock.scan.to.validate', 'tracking_id', 'To validate', domain=[('type','=','out')]),
36
36
def add_validation(self, cr, uid, ids, barcode_ids, context=None):
38
38
barcode_obj = self.pool.get('tr.barcode')
39
39
tracking_obj = self.pool.get('stock.tracking')
40
40
move_obj = self.pool.get('stock.move')
41
41
product_obj = self.pool.get('product.product')
42
42
history_obj = self.pool.get('stock.tracking.history')
43
43
validate_obj = self.pool.get('stock.scan.to.validate')
45
45
if context == None:
48
48
for obj in self.browse(cr, uid, ids):
49
49
barcode = barcode_obj.browse(cr, uid, barcode_ids[0])
50
50
model = barcode.res_model
51
51
res_id = barcode.res_id
53
53
if model == 'stock.tracking':
55
55
pack = tracking_obj.browse(cr, uid, res_id)
93
93
'location_dest_id': obj.location_id.id,
95
95
move_obj.write(cr, uid, new_move_id, {'tracking_id': obj.id})
96
tracking_obj.write(cr, uid, obj.id, {'modified': True})
96
tracking_obj.write(cr, uid, obj.id, {'modified': True})
98
98
move_obj.write(cr, uid, move_ids, {'tracking_id': obj.id})
99
tracking_obj.write(cr, uid, obj.id, {'modified': True})
99
tracking_obj.write(cr, uid, obj.id, {'modified': True})
101
101
elif model == 'product.product':
103
pack = tracking_obj.browse(cr, uid, obj.id)
104
product_data = product_obj.browse(cr, uid,res_id)
103
pack = tracking_obj.browse(cr, uid, obj.id)
104
product_data = product_obj.browse(cr, uid,res_id)
105
105
move_id = move_obj.create(cr, uid, {
106
106
'name': product_data.name,
107
107
'product_id': product_data.id,
110
110
'location_dest_id': pack.location_id.id,
111
111
'tracking_id': obj.id,
112
112
'state': 'draft',
114
tracking_obj.write(cr, uid, obj.id, {'modified': True})
116
'''Call for a function who will display serial code list and product list in the pack layout'''
114
tracking_obj.write(cr, uid, obj.id, {'modified': True})
116
'''Call for a function who will display serial code list and product list in the pack layout'''
117
117
tracking_obj.get_products(cr, uid, ids, context=None)
118
tracking_obj.get_serials(cr, uid, ids, context=None)
118
tracking_obj.get_serials(cr, uid, ids, context=None)
120
120
raise osv.except_osv(_('Warning!'),_('Barcode Not found!'))
123
123
def remove_validation(self, cr, uid, ids, barcode_ids, context=None):
124
124
barcode_obj = self.pool.get('tr.barcode')
125
125
tracking_obj = self.pool.get('stock.tracking')
140
140
pack = tracking_obj.browse(cr, uid, res_id)
141
141
tracking_obj.write(cr, uid, res_id, {'parent_id': False})
142
142
tracking_obj.write(cr, uid, obj.id, {'modified': True})
143
elif model == 'stock.production.lot':
143
elif model == 'stock.production.lot':
144
144
pack = tracking_obj.browse(cr, uid, obj.id)
145
145
move_ids = move_obj.search(cr, uid, [
146
146
('prodlot_id', '=', res_id),
149
149
move_obj.write(cr, uid, move_ids, {'tracking_id': False})
150
tracking_obj.write(cr, uid, obj.id, {'modified': True})
150
tracking_obj.write(cr, uid, obj.id, {'modified': True})
151
151
elif model == 'product.product':
152
pack = tracking_obj.browse(cr, uid, obj.id)
152
pack = tracking_obj.browse(cr, uid, obj.id)
153
153
product_data = product_obj.browse(cr, uid,res_id)
154
154
move_ids = move_obj.search(cr, uid, [
155
155
('product_id', '=', product_data.id),
158
158
move_obj.write(cr, uid, move_ids, {'tracking_id': False})
159
tracking_obj.write(cr, uid, obj.id, {'modified': True})
159
tracking_obj.write(cr, uid, obj.id, {'modified': True})
161
161
'''Call for a function who will display serial code list and product list in the pack layout'''
162
162
tracking_obj.get_serials(cr, uid, ids, context=None)
163
tracking_obj.get_products(cr, uid, ids, context=None)
163
tracking_obj.get_products(cr, uid, ids, context=None)
165
165
raise osv.except_osv(_('Warning!'),_('Barcode Not found!'))
170
170
class stock_scan_to_validate(osv.osv):
172
172
_name = 'stock.scan.to.validate'
174
174
'tracking_id': fields.many2one('stock.tracking', 'Parent', readonly=True),
175
175
'type': fields.selection([('in','To add'),('out','To remove')], 'Type', readonly=True),
176
176
'barcode_id': fields.many2one('tr.barcode', 'Barcode', readonly=True),
179
179
_sql_constraints = [
180
180
('tracking_barcode_unique', 'unique (tracking_id,barcode_id)', 'This barcode is already in the list to add or to remove !')
183
183
stock_scan_to_validate()
185
185
class stock_tracking_history(osv.osv):
187
187
_inherit = "stock.tracking.history"
189
189
def _get_types(self, cr, uid, context={}):
190
190
res = super(stock_tracking_history, self)._get_types(cr, uid, context)
193
193
res = res + [('pack_in','Add parent'),('pack_out','Unlink parent')]
197
197
'type': fields.selection(_get_types, 'Type'),
198
198
'parent_id': fields.many2one('stock.tracking', 'Parent pack'),
201
201
stock_tracking_history()
203
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
b'\\ No newline at end of file'
203
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: