20
21
<field eval="1" name="sequence"/>
23
<record id="view_location_tree2" model="ir.ui.view">
26
<record id="view_location_tree2" model="ir.ui.view">
24
27
<field name="name">stock.location.tree</field>
25
28
<field name="model">stock.location</field>
26
29
<field name="type">tree</field>
27
30
<field name="priority" eval="2"/>
28
31
<field name="inherit_id" ref="stock.view_location_tree2" />
29
32
<field name="arch" type="xml">
31
<xpath expr="/tree" position="attributes">
32
<attribute name="hide_new_button">not context.get('from_advanced_menu')</attribute>
35
<field name="stock_real" position="replace">
36
<field name="stock_real" invisible="'product_id' not in context or 'specific_rules_tree_view' in context"/>
37
<field name="stock_real_specific" invisible="'specific_rules_tree_view' not in context" />
40
<field name="stock_virtual" position="replace">
41
<field name="stock_virtual" invisible="'product_id' not in context or 'specific_rules_tree_view' in context"/>
42
<field name="stock_virtual_specific" invisible="'specific_rules_tree_view' not in context" />
35
<field name="stock_real" position="replace">
36
<field name="stock_real" invisible="'product_id' not in context or 'specific_rules_tree_view' in context"/>
37
<field name="stock_real_specific" invisible="'specific_rules_tree_view' not in context" />
40
<field name="stock_virtual" position="replace">
41
<field name="stock_virtual" invisible="'product_id' not in context or 'specific_rules_tree_view' in context"/>
42
<field name="stock_virtual_specific" invisible="'specific_rules_tree_view' not in context" />
48
<record id="product_normal_form_view" model="ir.ui.view">
49
<record id="product_normal_form_view" model="ir.ui.view">
49
50
<field name="name">product.normal.form</field>
50
51
<field name="model">product.product</field>
51
52
<field name="type">form</field>
52
53
<field eval="300" name="priority"/>
53
54
<field name="inherit_id" ref="product_expiry.view_product_form_expiry" />
54
55
<field name="arch" type="xml">
57
<field name="life_time" position="replace">
58
<field name="life_time" attrs="{'required':[('short_shelf_life', '=', True)]}" />
58
<field name="life_time" position="replace">
59
<field name="life_time" attrs="{'required':[('short_shelf_life', '=', True)]}" />
64
<record id="view_order_form" model="ir.ui.view">
65
<field name="name">sale.order.form</field>
66
<field name="model">sale.order</field>
67
<field name="type">form</field>
68
<field name="priority" eval="250" />
69
<field name="inherit_id" ref="sale.view_order_form" />
70
<field name="arch" type="xml">
73
<xpath expr="//form[@string='Sales Order']//tree[@string='Sales Order Lines']/field[@name='product_uom']" position="after">
74
<field name="kc_dg" />
66
<record id="view_order_form" model="ir.ui.view">
67
<field name="name">sale.order.form</field>
68
<field name="model">sale.order</field>
69
<field name="type">form</field>
70
<field name="priority" eval="250" />
71
<field name="inherit_id" ref="sale.view_order_form" />
72
<field name="arch" type="xml">
75
<xpath expr="//form[@string='Sales Order']//tree[@string='Sales Order Lines']/field[@name='product_uom']" position="after">
76
<field name="kc_dg" />
81
83
<record id="purchase_order_form" model="ir.ui.view">
82
<field name="name">purchase.order.form</field>
83
<field name="model">purchase.order</field>
84
<field name="type">form</field>
85
<field name="inherit_id" ref="purchase.purchase_order_form" />
86
<field name="arch" type="xml">
88
<xpath expr="/form/notebook/page/field[@name='order_line']/tree/field[@name='product_uom']" position="after">
89
<field name="kc_dg" />
84
<field name="name">purchase.order.form</field>
85
<field name="model">purchase.order</field>
86
<field name="type">form</field>
87
<field name="inherit_id" ref="purchase.purchase_order_form" />
88
<field name="arch" type="xml">
91
<xpath expr="/form/notebook/page/field[@name='order_line']/tree/field[@name='product_uom']" position="after">
92
<field name="kc_dg" />
100
<!-- id: view_picking_form, name: stock.picking.form, inherit_id: stock.view_picking_form, see stock_override/stock_view.xml -->
101
<!-- id: view_picking_out_form, name: stock.picking.out.form, inherit_id: stock.view_picking_out_form, see stock_override/stock_view.xml -->
102
<!-- id: view_picking_in_form, name: stock.picking.in.form, inherit_id: stock.view_picking_in_form, see stock_override/stock_view.xml -->
96
105
<record id="view_production_lot_tree" model="ir.ui.view">
97
106
<field name="name">stock.production.lot.tree</field>
98
107
<field name="model">stock.production.lot</field>
187
188
<xpath expr="/form/group/separator" position="replace">
188
189
<separator string="Batch Number Identification" colspan="4"/>
191
<field name="stock_available" position="after">
192
<field name="stock_virtual" colspan="4" />
195
<field name="ref" position="after">
196
<field name="type" readonly="1" />
199
<field name="name" position="replace">
200
<field name="name" colspan="2" attrs="{'readonly': [('type', '=', 'internal')]}" />
201
<field name="partner_name" colspan="2" readonly='1'/>
204
<field name="date" position="replace">
205
<field name="date" colspan="2" />
208
<field name="prefix" position="replace" />
209
<field name="ref" position="replace" />
192
<field name="stock_available" position="after">
193
<field name="stock_virtual" colspan="4" />
197
<field name="ref" position="after">
198
<field name="type" readonly="1" />
201
<field name="name" position="replace">
202
<field name="name" colspan="4" attrs="{'readonly': [('type', '=', 'internal')]}" />
205
<field name="date" position="replace">
206
<field name="date" colspan="2" />
209
<field name="prefix" position="replace" />
210
<field name="ref" position="replace" />
215
216
<record model="ir.ui.view" id="view_move_form_expiry">
216
217
<field name="name">stock.production.lot.form</field>
217
218
<field name="model">stock.production.lot</field>
218
219
<field name="inherit_id" ref="product_expiry.view_move_form_expiry" />
219
220
<field name="type">form</field>
220
221
<field name="arch" type="xml">
222
<field name="use_date" position="replace" />
223
<field name="removal_date" position="replace" />
224
<field name="alert_date" position="replace" />
224
<field name="use_date" position="replace" />
225
<field name="removal_date" position="replace" />
226
<field name="alert_date" position="replace" />
229
<record id="view_move_form" model="ir.ui.view">
232
<record id="view_move_form" model="ir.ui.view">
230
233
<field name="name">stock.move.form</field>
231
234
<field name="model">stock.move</field>
232
235
<field name="type">form</field>
233
236
<field eval="4" name="priority"/>
234
237
<field name="inherit_id" ref="stock.view_move_form" />
235
238
<field name="arch" type="xml">
238
<xpath expr="//field[@name='product_id']" position="attributes">
239
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
242
<field name="prodlot_id" position="replace">
243
<field name="prodlot_id"
244
context="{'location_id':location_id, 'product_id':product_id, 'hidden_perishable_mandatory': hidden_perishable_mandatory}"
245
domain="[('product_id','=?',product_id), ('check_type','=', True)]"
246
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id, product_uom)" colspan="3"
247
attrs="{'readonly': [('hidden_batch_management_mandatory','=',False), ('hidden_perishable_mandatory','=',False)]}" />
248
<field name="hidden_batch_management_mandatory" invisible="True" />
249
<field name="hidden_perishable_mandatory" invisible="True" />
250
<field name="expired_date" attrs="{'readonly': [('state', 'not in', ['draft', 'waiting', 'confirmed', 'assigned'])]}" />
251
<field name="lot_check" />
252
<field name="exp_check" />
253
<field name="kc_check" />
254
<field name="ssl_check" invisible="True" />
255
<field name="dg_check" />
256
<field name="np_check" />
260
<button name="action_done" position="attributes">
261
<attribute name="invisible">1</attribute>
264
<button name="force_assign" position="attributes">
265
<attribute name="invisible">1</attribute>
268
<button name="action_confirm" position="attributes">
269
<attribute name="invisible">1</attribute>
241
<xpath expr="//field[@name='product_id']" position="attributes">
242
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
245
<field name="prodlot_id" position="replace">
246
<field name="prodlot_id" groups="base.group_extended"
247
context="{'location_id':location_id, 'product_id':product_id, 'hidden_perishable_mandatory': hidden_perishable_mandatory}"
248
domain="[('product_id','=?',product_id), ('check_type','=', True)]"
249
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id, product_uom)" colspan="3"
250
attrs="{'readonly': [('hidden_batch_management_mandatory','=',False), ('hidden_perishable_mandatory','=',False)]}" />
251
<field name="hidden_batch_management_mandatory" invisible="True" />
252
<field name="hidden_perishable_mandatory" invisible="True" />
253
<field name="expired_date" attrs="{'readonly': [('state', 'not in', ['draft', 'waiting', 'confirmed', 'assigned'])]}" />
254
<field name="lot_check" />
255
<field name="exp_check" />
256
<field name="kc_check" />
257
<field name="ssl_check" invisible="True" />
258
<field name="dg_check" />
259
<field name="np_check" />
263
<button name="action_done" position="attributes">
264
<attribute name="invisible">1</attribute>
267
<button name="force_assign" position="attributes">
268
<attribute name="invisible">1</attribute>
271
<button name="action_confirm" position="attributes">
272
<attribute name="invisible">1</attribute>
276
279
<record id="view_move_form_reception_picking" model="ir.ui.view">
277
280
<field name="name">stock.move.form2</field>
278
281
<field name="model">stock.move</field>
280
283
<field eval="6" name="priority"/>
281
284
<field name="inherit_id" ref="stock.view_move_form_reception_picking" />
282
285
<field name="arch" type="xml">
285
<xpath expr="//field[@name='product_id']" position="attributes">
286
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
289
<field name="prodlot_id" position="replace">
290
<field name="prodlot_id"
291
context="{'location_id':location_id, 'product_id':product_id, 'hidden_perishable_mandatory': hidden_perishable_mandatory}"
292
domain="[('product_id','=?',product_id), ('check_type','=', True)]"
293
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id, product_uom)" colspan="3"
294
attrs="{'readonly': [('hidden_batch_management_mandatory','=',False), ('hidden_perishable_mandatory','=',False)]}" />
295
<field name="hidden_batch_management_mandatory" invisible="True" />
296
<field name="hidden_perishable_mandatory" invisible="True" />
297
<field name="expired_date" attrs="{'readonly': [('state', 'not in', ['draft', 'waiting', 'confirmed', 'assigned'])]}" />
298
<field name="lot_check" />
299
<field name="exp_check" />
300
<field name="kc_check" />
301
<field name="ssl_check" invisible="True" />
302
<field name="dg_check" />
303
<field name="np_check" />
306
<button name="action_confirm" position="attributes">
307
<attribute name="invisible">1</attribute>
310
<button name="force_assign" position="attributes">
311
<attribute name="invisible">1</attribute>
288
<xpath expr="//field[@name='product_id']" position="attributes">
289
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
292
<field name="prodlot_id" position="replace">
293
<field name="prodlot_id" groups="base.group_extended"
294
context="{'location_id':location_id, 'product_id':product_id, 'hidden_perishable_mandatory': hidden_perishable_mandatory}"
295
domain="[('product_id','=?',product_id), ('check_type','=', True)]"
296
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id, product_uom)" colspan="3"
297
attrs="{'readonly': [('hidden_batch_management_mandatory','=',False), ('hidden_perishable_mandatory','=',False)]}" />
298
<field name="hidden_batch_management_mandatory" invisible="True" />
299
<field name="hidden_perishable_mandatory" invisible="True" />
300
<field name="expired_date" attrs="{'readonly': [('state', 'not in', ['draft', 'waiting', 'confirmed', 'assigned'])]}" />
301
<field name="lot_check" />
302
<field name="exp_check" />
303
<field name="kc_check" />
304
<field name="ssl_check" invisible="True" />
305
<field name="dg_check" />
306
<field name="np_check" />
309
<button name="action_confirm" position="attributes">
310
<attribute name="invisible">1</attribute>
313
<button name="force_assign" position="attributes">
314
<attribute name="invisible">1</attribute>
319
322
<record id="stock_move_tree" model="ir.ui.view">
320
323
<field name="name">Stock Moves</field>
321
324
<field name="model">stock.move</field>
323
326
<field name="field_parent">move_history_ids</field>
324
327
<field name="inherit_id" ref="stock.stock_move_tree" />
325
328
<field name="arch" type="xml">
328
<xpath expr="//field[@name='product_id']" position="attributes">
329
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
332
<button name="action_done" position="after">
333
<field name="lot_check" />
334
<field name="exp_check" />
335
<field name="kc_check" />
336
<field name="ssl_check" invisible="True" />
337
<field name="dg_check" />
338
<field name="np_check" />
341
<button name="action_done" position="attributes">
342
<attribute name="invisible">1</attribute>
349
<record id="stock_move_tree2" model="ir.ui.view">
331
<xpath expr="//field[@name='product_id']" position="attributes">
332
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
335
<button name="action_done" position="after">
336
<field name="lot_check" />
337
<field name="exp_check" />
338
<field name="kc_check" />
339
<field name="ssl_check" invisible="True" />
340
<field name="dg_check" />
341
<field name="np_check" />
344
<button name="action_done" position="attributes">
345
<attribute name="invisible">1</attribute>
352
<record id="stock_move_tree2" model="ir.ui.view">
350
353
<field name="name">Stock Moves</field>
351
354
<field name="model">stock.move</field>
352
355
<field name="type">tree</field>
353
356
<field name="field_parent">move_history_ids2</field>
354
357
<field name="inherit_id" ref="stock.stock_move_tree2" />
355
358
<field name="arch" type="xml">
358
<xpath expr="//field[@name='product_id']" position="attributes">
359
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
362
<field name="state" position="after">
363
<field name="lot_check" />
364
<field name="exp_check" />
365
<field name="kc_check" />
366
<field name="ssl_check" invisible="True" />
367
<field name="dg_check" />
368
<field name="np_check" />
375
<record id="view_move_tree" model="ir.ui.view">
361
<xpath expr="//field[@name='product_id']" position="attributes">
362
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
365
<field name="state" position="after">
366
<field name="lot_check" />
367
<field name="exp_check" />
368
<field name="kc_check" />
369
<field name="ssl_check" invisible="True" />
370
<field name="dg_check" />
371
<field name="np_check" />
378
<record id="view_move_tree" model="ir.ui.view">
376
379
<field name="name">stock.move.tree</field>
377
380
<field name="model">stock.move</field>
378
381
<field name="type">tree</field>
379
382
<field eval="6" name="priority"/>
380
383
<field name="inherit_id" ref="stock.view_move_tree" />
381
384
<field name="arch" type="xml">
384
<xpath expr="//field[@name='product_uos']" position="replace">
386
<xpath expr="//field[@name='product_id']" position="attributes">
387
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
390
<button name="action_done" position="after">
391
<field name="lot_check" />
392
<field name="exp_check" />
393
<field name="kc_check" />
394
<field name="ssl_check" invisible="True" />
395
<field name="dg_check" />
396
<field name="np_check" />
399
<button name="action_done" position="attributes">
400
<attribute name="invisible">1</attribute>
407
<record id="view_move_tree_reception_picking" model="ir.ui.view">
387
<xpath expr="//field[@name='product_id']" position="attributes">
388
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
391
<button name="action_done" position="after">
392
<field name="lot_check" />
393
<field name="exp_check" />
394
<field name="kc_check" />
395
<field name="ssl_check" invisible="True" />
396
<field name="dg_check" />
397
<field name="np_check" />
400
<button name="action_done" position="attributes">
401
<attribute name="invisible">1</attribute>
408
<record id="view_move_tree_reception_picking" model="ir.ui.view">
408
409
<field name="name">stock.move.tree2</field>
409
410
<field name="model">stock.move</field>
410
411
<field name="type">tree</field>
411
412
<field name="priority" eval="6" />
412
413
<field name="inherit_id" ref="stock.view_move_tree_reception_picking" />
413
414
<field name="arch" type="xml">
416
<xpath expr="//field[@name='product_id']" position="attributes">
417
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
420
<button name="action_assign" position="after">
421
<field name="lot_check" />
422
<field name="exp_check" />
423
<field name="kc_check" />
424
<field name="ssl_check" invisible="True" />
425
<field name="dg_check" />
426
<field name="np_check" />
429
<button name="action_assign" position="attributes">
430
<attribute name="invisible">1</attribute>
437
<!-- Add product filters on Physical inventories to fill lines with list or nomenclature level -->
438
<record id="stock_inventory_form" model="ir.ui.view">
439
<field name="name">stock.inventory.form</field>
440
<field name="model">stock.inventory</field>
441
<field name="type">form</field>
442
<field name="inherit_id" ref="stock.view_inventory_form" />
443
<field name="arch" type="xml">
444
<xpath expr="/form//field[@name='inventory_line_id']/tree//field[@name='product_id']" position="attributes">
445
<attribute name="domain">[('type', 'not in', ('consu', 'service', 'service_recep'))]</attribute>
448
<xpath expr="//tree/field[@name='product_uom']" position="attributes">
449
<attribute name="on_change">onchange_uom_qty(product_uom, product_qty)</attribute>
452
<xpath expr="//tree/field[@name='product_qty']" position="attributes">
453
<attribute name="on_change">onchange_uom_qty(product_uom, product_qty)</attribute>
417
<xpath expr="//field[@name='product_id']" position="attributes">
418
<attribute name="context">{'location_id': location_id, 'prodlot_id': prodlot_id, 'compute_child': False}</attribute>
421
<button name="action_assign" position="after">
422
<field name="lot_check" />
423
<field name="exp_check" />
424
<field name="kc_check" />
425
<field name="ssl_check" invisible="True" />
426
<field name="dg_check" />
427
<field name="np_check" />
430
<button name="action_assign" position="attributes">
431
<attribute name="invisible">1</attribute>
458
438
<record id="stock_inventory_line_tree" model="ir.ui.view">
459
439
<field name="name">stock.inventory.line.tree</field>
460
440
<field name="model">stock.inventory.line</field>
461
441
<field name="type">tree</field>
462
442
<field name="inherit_id" ref="stock.stock_inventory_line_tree" />
463
443
<field name="arch" type="xml">
465
<xpath expr="/tree/field[@name='product_uom']" position="after">
466
<field name="reason_type_id" widget="selection" domain="[('is_inventory', '=', True)]" />
467
<field name="comment" />
470
<xpath expr="/tree//field[@name='product_id']" position="attributes">
471
<attribute name="domain">[('type', 'not in', ('consu', 'service', 'service_recep'))]</attribute>
472
<attribute name="context">{'available_for_restriction': {'location_id': location_id}, 'search_default_not_restricted': 1}</attribute>
475
<field name="prod_lot_id" position="replace">
476
<field name="prod_lot_id"
477
on_change="change_lot(prod_lot_id)"
478
context="{'location_id':location_id, 'product_id': product_id}"
479
domain="[('check_type','=', True), ('product_id', '=', product_id)]"
480
attrs="{'required': [('hidden_batch_management_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False), ('hidden_batch_management_mandatory', '=', False)]}" />
481
<field name="expiry_date"
482
on_change="change_expiry(expiry_date, product_id, type_check)"
483
attrs="{'required': [('hidden_perishable_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False)]}" />
485
<field name="hidden_perishable_mandatory" invisible="True" />
486
<field name="hidden_batch_management_mandatory" invisible="True" />
487
<field name="type_check" invisible="True" />
488
<field name="lot_check" />
489
<field name="exp_check" />
490
<field name="kc_check" />
491
<field name="ssl_check" invisible="True" />
492
<field name="dg_check" />
493
<field name="np_check" />
494
<button name="btn_dl" type="object" string="Line is duplicated" icon="gtk-dialog-warning" attrs="{'invisible': [('duplicate_line', '=', False)]}" />
495
<field name="duplicate_line" invisible="True" />
496
<field name="has_problem" invisible="True" />
445
<xpath expr="/tree/field[@name='product_uom']" position="after">
446
<field name="reason_type_id" widget="selection" domain="[('is_inventory', '=', True)]" />
447
<field name="comment" />
450
<field name="prod_lot_id" position="replace">
451
<field name="prod_lot_id"
452
on_change="change_lot(prod_lot_id)"
453
groups="base.group_extended"
454
context="{'location_id':location_id, 'product_id': product_id, 'hidden_perishable_mandatory': hidden_perishable_mandatory}"
455
domain="[('check_type','=', True), ('product_id', '=', product_id)]"
456
attrs="{'required': [('hidden_batch_management_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False), ('hidden_batch_management_mandatory', '=', False)]}" />
457
<field name="expiry_date"
458
on_change="change_expiry(expiry_date, product_id, type_check)"
459
attrs="{'required': [('hidden_perishable_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False)]}" />
461
<field name="hidden_perishable_mandatory" invisible="True" />
462
<field name="hidden_batch_management_mandatory" invisible="True" />
463
<field name="type_check" invisible="True" />
464
<field name="lot_check" />
465
<field name="exp_check" />
466
<field name="kc_check" />
467
<field name="ssl_check" invisible="True" />
468
<field name="dg_check" />
469
<field name="np_check" />
505
478
<field name="type">form</field>
506
479
<field name="inherit_id" ref="stock.view_inventory_line_form" />
507
480
<field name="arch" type="xml">
483
<field name="prod_lot_id" position="replace">
484
<field name="prod_lot_id"
485
on_change="change_lot(prod_lot_id)"
486
groups="base.group_extended"
487
context="{'location_id':location_id, 'product_id': product_id, 'hidden_perishable_mandatory': hidden_perishable_mandatory}"
488
domain="[('check_type','=', True), ('product_id', '=', product_id)]"
489
attrs="{'required': [('hidden_batch_management_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False), ('hidden_batch_management_mandatory', '=', False)]}" />
490
<field name="expiry_date"
491
on_change="change_expiry(expiry_date, product_id, type_check)"
492
attrs="{'required': [('hidden_perishable_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False)]}" />
494
<field name="hidden_perishable_mandatory" invisible="True" />
495
<field name="hidden_batch_management_mandatory" invisible="True" />
496
<field name="type_check" invisible="True" />
497
<field name="lot_check" />
498
<field name="exp_check" />
499
<field name="kc_check" />
500
<field name="ssl_check" invisible="True" />
501
<field name="dg_check" />
502
<field name="np_check" />
509
<record id="view_inventory_form" model="ir.ui.view">
510
<field name="name">stock.inventory.form</field>
511
<field name="model">stock.inventory</field>
512
<field name="type">form</field>
513
<field name="inherit_id" ref="stock.view_inventory_form" />
514
<field name="arch" type="xml">
510
<field name="prod_lot_id" position="replace">
517
<xpath expr="//tree[@string='Products']//field[@name='location_id']" position="replace">
518
<field colspan="4" domain="[('usage','=','internal')]" name="location_id"
519
on_change="on_change_location_id(location_id,product_id,prod_lot_id,product_uom,parent.date)"
520
context="{'product_id': product_id, 'prodlot_id': prod_lot_id, 'specific_rules_tree_view': True, 'compute_child': False}" />
523
<xpath expr="//tree[@string='Products']//field[@name='product_id']" position="replace">
524
<field context="location=location_id,uom=product_uom,to_date=parent.date,compute_child=False" name="product_id" on_change="on_change_product_id_specific_rules(location_id,product_id,prod_lot_id,product_uom,parent.date)" domain="[('type','not in',('service','service_recep'))]" />
527
<xpath expr="//tree[@string='Products']//field[@name='prod_lot_id']" position="replace" />
529
<xpath expr="//tree[@string='Products']//field[@name='product_qty']" position="before">
511
530
<field name="prod_lot_id"
512
on_change="change_lot(prod_lot_id)"
513
context="{'location_id':location_id, 'product_id': product_id, 'hidden_perishable_mandatory': hidden_perishable_mandatory}"
514
domain="[('check_type','=', True), ('product_id', '=', product_id)]"
515
attrs="{'required': [('hidden_batch_management_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False), ('hidden_batch_management_mandatory', '=', False)]}" />
516
<field name="expiry_date"
517
on_change="change_expiry(expiry_date, product_id, type_check)"
518
attrs="{'required': [('hidden_perishable_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False)]}" />
520
<field name="hidden_perishable_mandatory" invisible="True" />
521
<field name="hidden_batch_management_mandatory" invisible="True" />
522
<field name="type_check" invisible="True" />
523
<field name="lot_check" />
524
<field name="exp_check" />
525
<field name="kc_check" />
526
<field name="ssl_check" invisible="True" />
527
<field name="dg_check" />
528
<field name="np_check" />
531
on_change="change_lot(location_id,product_id,prod_lot_id,product_uom,parent.date)"
532
groups="base.group_extended"
533
context="{'location_id':location_id, 'product_id': product_id, 'hidden_perishable_mandatory': hidden_perishable_mandatory, 'search_default_real': True}"
534
domain="[('check_type','=', True), ('product_id', '=?', product_id)]"
535
attrs="{'required': [('hidden_batch_management_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False), ('hidden_batch_management_mandatory', '=', False)]}" />
536
<field name="expiry_date"
537
on_change="change_expiry(expiry_date, product_id, type_check)"
538
attrs="{'required': [('hidden_perishable_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False)]}" />
541
<xpath expr="//tree[@string='Products']//field[@name='product_uom']" position="after">
542
<field name="hidden_perishable_mandatory" invisible="True" />
543
<field name="hidden_batch_management_mandatory" invisible="True" />
544
<field name="type_check" invisible="True" />
545
<field name="lot_check" />
546
<field name="exp_check" />
547
<field name="kc_check" />
548
<field name="ssl_check" invisible="True" />
549
<field name="dg_check" />
550
<field name="np_check" />
553
<xpath expr="//form[@string='Products ']//field[@name='prod_lot_id']" position="replace">
554
<field name="prod_lot_id"
555
on_change="change_lot(location_id,product_id,prod_lot_id,product_uom,parent.date)"
556
groups="base.group_extended"
557
context="{'location_id':location_id, 'product_id': product_id, 'hidden_perishable_mandatory': hidden_perishable_mandatory}"
558
domain="[('check_type','=', True), ('product_id', '=', product_id)]"
559
attrs="{'required': [('hidden_batch_management_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False), ('hidden_batch_management_mandatory', '=', False)]}" />
560
<field name="expiry_date"
561
on_change="change_expiry(expiry_date, product_id, type_check)"
562
attrs="{'required': [('hidden_perishable_mandatory', '=', True)], 'readonly': [('hidden_perishable_mandatory', '=', False)]}" />
564
<field name="hidden_perishable_mandatory" invisible="True" />
565
<field name="hidden_batch_management_mandatory" invisible="True" />
566
<field name="type_check" invisible="True" />
567
<field name="lot_check" />
568
<field name="exp_check" />
569
<field name="kc_check" />
570
<field name="ssl_check" invisible="True" />
571
<field name="dg_check" />
572
<field name="np_check" />
535
580
<record id="view_stock_inventory_search" model="ir.ui.view">
536
<field name="name">report.stock.inventory.search</field>
537
<field name="model">report.stock.inventory</field>
538
<field name="type">search</field>
539
<field name="inherit_id" ref="stock.view_stock_inventory_search" />
540
<field name="arch" type="xml">
543
<field name="prodlot_id" position="after">
544
<field name="expired_date" />
547
<filter name="group_lot" position="replace">
548
<filter name="group_lot" string="Batch" icon="terp-accessories-archiver" context="{'group_by':'prodlot_id'}"/>
551
<filter name="group_lot" position="before">
552
<filter name="group_expiry" string="Expiry Month" icon="terp-accessories-archiver" context="{'group_by':'expired_date'}"/>
559
<record id="view_stock_inventory_tree" model="ir.ui.view">
560
<field name="name">report.stock.inventory.tree</field>
561
<field name="model">report.stock.inventory</field>
562
<field name="type">tree</field>
563
<field name="inherit_id" ref="stock.view_stock_inventory_tree" />
564
<field name="arch" type="xml">
566
<field name="prodlot_id" position="replace">
567
<field name="prodlot_id" string="Batch" invisible="1" />
570
<field name="prodlot_id" position="after">
571
<field name="expired_date" invisible="1" string="Expiry Month"/>
581
<field name="name">report.stock.inventory.search</field>
582
<field name="model">report.stock.inventory</field>
583
<field name="type">search</field>
584
<field name="inherit_id" ref="stock.view_stock_inventory_search" />
585
<field name="arch" type="xml">
588
<field name="prodlot_id" position="after">
589
<field name="expired_date" />
592
<filter name="group_lot" position="replace">
593
<filter name="group_lot" string="Batch" icon="terp-accessories-archiver" context="{'group_by':'prodlot_id'}"/>
596
<filter name="group_lot" position="before">
597
<filter name="group_expiry" string="Expiry Month" icon="terp-accessories-archiver" context="{'group_by':'expired_date'}"/>
604
<record id="view_stock_inventory_tree" model="ir.ui.view">
605
<field name="name">report.stock.inventory.tree</field>
606
<field name="model">report.stock.inventory</field>
607
<field name="type">tree</field>
608
<field name="inherit_id" ref="stock.view_stock_inventory_tree" />
609
<field name="arch" type="xml">
611
<field name="prodlot_id" position="replace">
612
<field name="prodlot_id" string="Batch" invisible="1" />
615
<field name="prodlot_id" position="after">
616
<field name="expired_date" invisible="1" string="Expiry Month"/>
578
623
<record id="batch_view_production_lot_revision_form" model="ir.ui.view">
579
624
<field name="name">batch.view.production.lot.revision.form</field>
602
647
<delete id="stock.action_tracking_form" model="ir.actions.act_window" />
604
649
<!-- Add on_change method on UoM field of Min/Max rule -->
605
650
<record id="add_onchange_uom_stock_warehouse_orderpoint_view" model="ir.ui.view">
606
<field name="name">add.onchange.uom.stock.warehouse.orderpoint.view</field>
607
<field name="model">stock.warehouse.orderpoint</field>
608
<field name="type">form</field>
609
<field name="inherit_id" ref="procurement.view_warehouse_orderpoint_form" />
610
<field name="arch" type="xml">
613
<xpath expr="//field[@name='product_id']" position="attributes">
614
<attribute name="invisible">1</attribute>
617
<xpath expr="/form//field[@name='product_uom']" position="attributes">
618
<attribute name="invisible">1</attribute>
621
<xpath expr="//group[5]" position="replace">
622
<!-- Procurement Orders to Process replaced by stock.warehouse.orderpoint lines -->
623
<group colspan="4" col="4">
624
<separator colspan="4" string="Order min/max quantity by product" />
625
<field name="line_ids" nolabel="1" colspan="4"
626
context="{'product_min_qty': product_min_qty, 'product_max_qty': product_max_qty, 'qty_multiple': qty_multiple}">
627
<tree string="Products" editable="top"
628
colors="red: product_qty <= 0.00">
629
<field name="product_id" on_change="onchange_product_id(product_id, product_uom_id, product_min_qty, product_max_qty)" />
630
<field name="product_uom_id" domain="[('uom_by_product', '=', product_id)]"
631
on_change="onchange_uom_qty(product_uom_id, product_min_qty, product_max_qty)"/>
632
<field name="product_min_qty"
633
on_change="onchange_uom_qty(product_uom_id, product_min_qty, product_max_qty)" />
634
<field name="product_max_qty"
635
on_change="onchange_uom_qty(product_uom_id, product_min_qty, product_max_qty)" />
636
<field name="qty_multiple" />
651
<field name="name">add.onchange.uom.stock.warehouse.orderpoint.view</field>
652
<field name="model">stock.warehouse.orderpoint</field>
653
<field name="type">form</field>
654
<field name="inherit_id" ref="procurement.view_warehouse_orderpoint_form" />
655
<field name="arch" type="xml">
657
<xpath expr="/form//field[@name='product_uom']" position="attributes">
658
<attribute name="on_change">onchange_uom(product_id, product_uom)</attribute>
659
<attribute name="domain">[('uom_by_product', '=', product_id)]</attribute>