~unifield-team/unifield-wm/us-826

« back to all changes in this revision

Viewing changes to stock_override/stock.py

  • Committer: jf
  • Date: 2014-07-28 15:51:36 UTC
  • mfrom: (2204.2.3 unifield-wm)
  • Revision ID: jfb@tempo-consulting.fr-20140728155136-8k3p19xpb3dztrp0
Tags: pilot3.1b3
UFTP-257 [FIX] Application Error when splitting the quantities in reception and receiving the quantities to be more than the items previously ordered.
UTP-1113 [FIX] IR to an external C.U. sourced to stock creates not run messages in sync
UTP-1089 [FIX] Selection of batch number issue in PPL
UTP-1075 [FIX] Not possible to validate PO with products by nomenclature if sourced from an IR
UTP-1070 [FIX] PICK / PACK issue
lp:~unifield-team/unifield-wm/utp-1070-1075-1089-1113

Show diffs side-by-side

added added

removed removed

Lines of Context:
225
225
 
226
226
        return result
227
227
 
 
228
    def _get_do_not_sync(self, cr, uid, ids, field_name, args, context=None):
 
229
        res = {}
 
230
 
 
231
        if context is None:
 
232
            context = {}
 
233
 
 
234
        current_company_p_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.partner_id.id
 
235
 
 
236
        for pick in self.browse(cr, uid, ids, context=context):
 
237
            res[pick.id] = False
 
238
            if pick.partner_id.id == current_company_p_id:
 
239
                res[pick.id] = True
 
240
 
 
241
        return res
 
242
 
 
243
    def _src_do_not_sync(self, cr, uid, obj, name, args, context=None):
 
244
        '''
 
245
        Returns picking ticket that do not synched because the partner of the
 
246
        picking is the partner of the current company.
 
247
        '''
 
248
        res = []
 
249
        curr_partner_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.partner_id.id
 
250
 
 
251
        if context is None:
 
252
            context = {}
 
253
 
 
254
        for arg in args:
 
255
 
 
256
            eq_false = arg[1] == '=' and arg[2] in (False, 'f', 'false', 'False', 0)
 
257
            neq_true = arg[1] in ('!=', '<>') and arg[2] in (True, 't', 'true', 'True', 1)
 
258
            eq_true = arg[1] == '=' and arg[2] in (True, 't', 'true', 'True', 1)
 
259
            neq_false = arg[1] in ('!=', '<>') and arg[2] in (False, 'f', 'false', 'False', 0)
 
260
 
 
261
            if arg[0] == 'do_not_sync' and (eq_false or neq_true):
 
262
                res.append(('partner_id', '!=', curr_partner_id))
 
263
            elif arg[0] == 'do_not_sync' and (eq_true or neq_false):
 
264
                res.append(('partner_id', '=', curr_partner_id))
 
265
 
 
266
        return res
 
267
 
 
268
 
228
269
    _columns = {
229
270
        'state': fields.selection([
230
271
            ('draft', 'Draft'),
265
306
                                        store={'stock.move': (_get_dpo_picking_ids, ['sync_dpo', 'dpo_line_id', 'picking_id'], 10,),
266
307
                                               'stock.picking': (lambda self, cr, uid, ids, c={}: ids, ['move_lines'], 10)}),
267
308
        'previous_chained_pick_id': fields.many2one('stock.picking', string='Previous chained picking', ondelete='set null', readonly=True),
 
309
        'do_not_sync': fields.function(
 
310
            _get_do_not_sync,
 
311
            fnct_search=_src_do_not_sync,
 
312
            method=True,
 
313
            type='boolean',
 
314
            string='Do not sync.',
 
315
            store=False,
 
316
        ),
268
317
    }
269
318
 
270
319
    _defaults = {'from_yml_test': lambda *a: False,