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

« back to all changes in this revision

Viewing changes to procurement_cycle/test/data.yml

  • Committer: jf
  • Date: 2011-03-23 13:23:55 UTC
  • Revision ID: jf@tempo4-20110323132355-agyf1soy7m5ewatr
InitialĀ Import

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
-
2
 
  In order to test dates in Orders, I create initial data
3
 
-
4
 
    I create 4 partners
5
 
-
6
 
    I create a customer C1
7
 
-
8
 
  !record {model: res.partner, id: cust1}:
9
 
    name: C1
10
 
    customer: True
11
 
-
12
 
    I create an address for C1
13
 
-
14
 
  !record {model: res.partner.address, id: addrc1}:
15
 
    name: C1
16
 
    partner_id: cust1 
17
 
-
18
 
    I create supplier S1
19
 
-
20
 
  !record {model: res.partner, id: supplier1}:
21
 
    name: S1
22
 
    supplier: True
23
 
    supplier_lt: 12
24
 
-
25
 
    I create the address for S1
26
 
-
27
 
  !record {model: res.partner.address, id: address1}:
28
 
    name: S1
29
 
    partner_id: supplier1
30
 
-
31
 
    I create the supplier S2
32
 
-
33
 
  !record {model: res.partner, id: supplier2}:
34
 
    name: S2
35
 
    supplier: True
36
 
    supplier_lt: 45
37
 
-
38
 
    I create the address for S2
39
 
-
40
 
  !record {model: res.partner.address, id: address2}:
41
 
    name: S2
42
 
    partner_id: supplier2
43
 
-
44
 
    I create the supplier S3
45
 
-
46
 
  !record {model: res.partner, id: supplier3}:
47
 
    name: S3
48
 
    supplier: True
49
 
-
50
 
    I create the address for S3
51
 
-
52
 
  !record {model: res.partner.address, id: address3}:
53
 
    name: S3
54
 
    partner_id: supplier3
55
 
-
56
 
    In order to test the procurement list module, I start by creating a new product category
57
 
-
58
 
  !record {model: product.category, id: product_cat1}:
59
 
    name: Categ1
60
 
-
61
 
    And a second category
62
 
-
63
 
  !record {model: product.category, id: product_cat2}:
64
 
    name: Categ2
65
 
-
66
 
    I create the product P1
67
 
-
68
 
  !record {model: product.product, id: product1}:
69
 
    categ_id: product_cat1
70
 
    cost_method: standard
71
 
    mes_type: fixed
72
 
    name: P1
73
 
    price_margin: 2.0
74
 
    procure_method: make_to_stock
75
 
    property_stock_inventory: stock.location_inventory
76
 
    property_stock_procurement: stock.location_procurement
77
 
    property_stock_production: stock.location_production
78
 
    seller_delay: '1'
79
 
    standard_price: 100.0
80
 
    supply_method: buy
81
 
    type: product
82
 
    uom_id: product.product_uom_unit
83
 
    uom_po_id: product.product_uom_unit
84
 
    volume : 0.0
85
 
    warranty: 0.0
86
 
    weight: 0.0
87
 
    weight_net: 0.0
88
 
    reviewed_consumption: 45
89
 
    seller_ids:
90
 
      - sequence: 10
91
 
        min_qty: 0.00
92
 
        name: supplier1
93
 
      - sequence: 20
94
 
        min_qty: 0.00
95
 
        name: supplier2
96
 
    international_status: product_attributes.int_1
97
 
-
98
 
    I create a second product, P2
99
 
-
100
 
  !record {model: product.product, id: product2}:
101
 
    categ_id: product_cat1
102
 
    cost_method: standard
103
 
    mes_type: fixed
104
 
    name: P2
105
 
    price_margin: 2.0
106
 
    procure_method: make_to_stock
107
 
    property_stock_inventory: stock.location_inventory
108
 
    property_stock_procurement: stock.location_procurement
109
 
    property_stock_production: stock.location_production
110
 
    seller_delay: '1'
111
 
    standard_price: 100.0
112
 
    supply_method: buy
113
 
    type: product
114
 
    uom_id: product.product_uom_unit
115
 
    uom_po_id: product.product_uom_unit
116
 
    volume : 0.0
117
 
    warranty: 0.0
118
 
    weight: 0.0
119
 
    weight_net: 0.0
120
 
    reviewed_consumption: 50
121
 
    seller_ids:
122
 
      - sequence: 10
123
 
        min_qty: 0.00
124
 
        name: supplier2
125
 
      - sequence: 20
126
 
        min_qty: 0.00
127
 
        name: supplier1
128
 
    international_status: product_attributes.int_1
129
 
-
130
 
    I create the product P3
131
 
-
132
 
  !record {model: product.product, id: product3}:
133
 
    categ_id: product_cat1
134
 
    cost_method: standard
135
 
    mes_type: fixed
136
 
    name: P3
137
 
    price_margin: 2.0
138
 
    procure_method: make_to_stock
139
 
    property_stock_inventory: stock.location_inventory
140
 
    property_stock_procurement: stock.location_procurement
141
 
    property_stock_production: stock.location_production
142
 
    seller_delay: '1'
143
 
    standard_price: 100.0
144
 
    supply_method: buy
145
 
    type: product
146
 
    uom_id: product.product_uom_unit    
147
 
    uom_po_id: product.product_uom_unit
148
 
    volume : 0.0
149
 
    warranty: 0.0
150
 
    weight: 0.0
151
 
    weight_net: 0.0
152
 
    reviewed_consumption: 30
153
 
    batch_management: True
154
 
    seller_ids:
155
 
      - sequence: 10
156
 
        min_qty: 0.00
157
 
        delay: 30
158
 
        name: supplier1
159
 
    international_status: product_attributes.int_1
160
 
-
161
 
    I create the product P4
162
 
-
163
 
  !record {model: product.product, id: product4}:
164
 
    categ_id: product_cat2
165
 
    cost_method: standard
166
 
    mes_type: fixed
167
 
    name: P4
168
 
    price_margin: 2.0
169
 
    procure_method: make_to_stock
170
 
    property_stock_inventory: stock.location_inventory
171
 
    property_stock_procurement: stock.location_procurement
172
 
    property_stock_production: stock.location_production
173
 
    seller_delay: '1'
174
 
    standard_price: 100.0
175
 
    supply_method: buy
176
 
    type: product
177
 
    uom_id: product.product_uom_unit    
178
 
    uom_po_id: product.product_uom_unit
179
 
    volume : 0.0
180
 
    warranty: 0.0
181
 
    weight: 0.0
182
 
    weight_net: 0.0
183
 
    reviewed_consumption: 15
184
 
    seller_ids:
185
 
      - sequence: 10
186
 
        min_qty: 0.00
187
 
        delay: 60
188
 
        name: supplier1
189
 
    international_status: product_attributes.int_1
190
 
-
191
 
  In order to check the real stock, I will create four SLoc with Sloc3 and Sloc4 which are children of Sloc2
192
 
-
193
 
  I create the SLoc 1
194
 
-
195
 
  !record {model: stock.location, id: cycle_sloc1}:
196
 
    name: SLoc1
197
 
    usage: internal
198
 
-
199
 
  I create the SLoc 2
200
 
-
201
 
  !record {model: stock.location, id: cycle_sloc2}:
202
 
    name: SLoc2
203
 
    usage: internal
204
 
-
205
 
  I create the SLoc3
206
 
-
207
 
  !record {model: stock.location, id: cycle_sloc3}:
208
 
    name: SLoc3
209
 
    usage: internal
210
 
    location_id: cycle_sloc2
211
 
-
212
 
  I create the SLoc4
213
 
-
214
 
  !record {model: stock.location, id: cycle_sloc4}:
215
 
    name: SLoc4
216
 
    usage: internal
217
 
    location_id: cycle_sloc2
218
 
-
219
 
  I create a new Warehouse
220
 
-
221
 
  !record {model: stock.warehouse, id: warehouse_proc_cycle}:
222
 
    name: Warehouse Cycle
223
 
    lot_stock_id: cycle_sloc2
224
 
    lot_input_id: cycle_sloc2
225
 
    lot_dispatch_id: cycle_sloc2
226
 
    lot_output_id: stock.stock_location_customers
227
 
    company_id: base.main_company
228
 
-
229
 
  I create a new shop
230
 
-
231
 
  !record {model: sale.shop, id: shop_cycle}:
232
 
    payment_default_id: account.account_payment_term
233
 
    name: Cycle Shop
234
 
    warehouse_id: warehouse_proc_cycle
235
 
-
236
 
  I create a batch for product 3 with today + 2 months as expiry date
237
 
-
238
 
  !record {model: stock.production.lot, id: lot1}:
239
 
    name: '0001'
240
 
    ref: '0001'
241
 
    product_id: product3
242
 
243
 
  I add the life date on the lot
244
 
-
245
 
  !python {model: stock.production.lot }: |
246
 
    import time
247
 
    from datetime import datetime
248
 
    from dateutil.relativedelta import relativedelta
249
 
    req_date = (datetime.strptime(time.strftime('%Y-%m-%d'), '%Y-%m-%d') + relativedelta(months=2)).strftime('%Y-%m-%d')
250
 
    self.write(cr, uid, ref('lot1'), {'life_date': req_date}, context=context)
251
 
-
252
 
  I create a batch for product 3 with today + 1 month as expiry date
253
 
-
254
 
  !record {model: stock.production.lot, id: lot2}:
255
 
    name: '0002'
256
 
    ref: '0002'
257
 
    product_id: product3
258
 
259
 
  I add the life date on the lot
260
 
-
261
 
  !python {model: stock.production.lot }: |
262
 
    import time
263
 
    from datetime import datetime
264
 
    from dateutil.relativedelta import relativedelta
265
 
    req_date = (datetime.strptime(time.strftime('%Y-%m-%d'), '%Y-%m-%d') + relativedelta(months=1)).strftime('%Y-%m-%d')
266
 
    self.write(cr, uid, ref('lot2'), {'life_date': req_date}, context=context)
267
 
-
268
 
  I create a batch for product 3 with today + 15 days as expiry date
269
 
-
270
 
  !record {model: stock.production.lot, id: lot3}:
271
 
    name: '0003'
272
 
    ref: '0003'
273
 
    product_id: product3
274
 
275
 
  I add the life date on the lot
276
 
-
277
 
  !python {model: stock.production.lot }: |
278
 
    import time
279
 
    from datetime import datetime
280
 
    from dateutil.relativedelta import relativedelta
281
 
    req_date = (datetime.strptime(time.strftime('%Y-%m-%d'), '%Y-%m-%d') + relativedelta(days=15)).strftime('%Y-%m-%d')
282
 
    self.write(cr, uid, ref('lot3'), {'life_date': req_date}, context=context)
283
 
-
284
 
  I create a batch for product 3 with today + 6 months as expiry date
285
 
-
286
 
  !record {model: stock.production.lot, id: lot4}:
287
 
    name: '0004'
288
 
    ref: '0004'
289
 
    product_id: product3
290
 
291
 
  I add the life date on the lot
292
 
-
293
 
  !python {model: stock.production.lot }: |
294
 
    import time
295
 
    from datetime import datetime
296
 
    from dateutil.relativedelta import relativedelta
297
 
    req_date = (datetime.strptime(time.strftime('%Y-%m-%d'), '%Y-%m-%d') + relativedelta(months=6)).strftime('%Y-%m-%d')
298
 
    self.write(cr, uid, ref('lot4'), {'life_date': req_date}, context=context)
299
 
-
300
 
  I create a batch for product 3 with today + 2 years as expiry date
301
 
-
302
 
  !record {model: stock.production.lot, id: lot5}:
303
 
    name: '0005'
304
 
    ref: '0005'
305
 
    product_id: product3
306
 
307
 
  I add the life date on the lot
308
 
-
309
 
  !python {model: stock.production.lot }: |
310
 
    import time
311
 
    from datetime import datetime
312
 
    from dateutil.relativedelta import relativedelta
313
 
    req_date = (datetime.strptime(time.strftime('%Y-%m-%d'), '%Y-%m-%d') + relativedelta(years=2)).strftime('%Y-%m-%d')
314
 
    self.write(cr, uid, ref('lot5'), {'life_date': req_date}, context=context)
315
 
-
316
 
  !record {model: stock.production.lot, id: lot22}:
317
 
    name: '00022'
318
 
    ref: '00022'
319
 
    product_id: product3
320
 
    life_date: !eval "(DateTime.now()+DateTime.RelativeDateTime(months=1)).strftime('%Y-%m-%d')"
321
 
 
322
 
-
323
 
  I create an inventory to add products in stock
324
 
-
325
 
  !record {model: stock.inventory, id: inv1}:
326
 
    name: Test Inventory
327
 
    company_id: base.main_company
328
 
    date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
329
 
    date_done: !eval time.strftime('%Y-%m-%d %H:%M:%S')
330
 
    inventory_line_id:
331
 
      - company_id: base.main_company
332
 
        location_id: cycle_sloc1
333
 
        product_id: product1
334
 
        product_qty: 20.0
335
 
        product_uom: product.product_uom_unit
336
 
      - company_id: base.main_company
337
 
        location_id: cycle_sloc2
338
 
        product_id: product1
339
 
        product_qty: 32.0
340
 
        product_uom: product.product_uom_unit
341
 
      - company_id: base.main_company
342
 
        location_id: cycle_sloc3
343
 
        product_id: product1
344
 
        product_qty: 15.0
345
 
        product_uom: product.product_uom_unit
346
 
      - company_id: base.main_company
347
 
        location_id: cycle_sloc1
348
 
        product_id: product2
349
 
        product_qty: 12.0
350
 
        product_uom: product.product_uom_unit
351
 
      - company_id: base.main_company
352
 
        location_id: cycle_sloc2
353
 
        product_id: product2
354
 
        product_qty: 44.0
355
 
        product_uom: product.product_uom_unit
356
 
      - company_id: base.main_company
357
 
        location_id: cycle_sloc1
358
 
        product_id: product3
359
 
        prod_lot_id: lot22
360
 
        product_qty: 500.0
361
 
        product_uom: product.product_uom_unit
362
 
      - company_id: base.main_company
363
 
        location_id: cycle_sloc2
364
 
        product_id: product3
365
 
        product_qty: 40.0
366
 
        prod_lot_id: lot1
367
 
        product_uom: product.product_uom_unit
368
 
      - company_id: base.main_company
369
 
        location_id: cycle_sloc2
370
 
        product_id: product3
371
 
        product_qty: 5.00
372
 
        prod_lot_id: lot3
373
 
        product_uom: product.product_uom_unit
374
 
      - company_id: base.main_company
375
 
        location_id: cycle_sloc2
376
 
        product_id: product3
377
 
        product_qty: 250.00
378
 
        prod_lot_id: lot4
379
 
        product_uom: product.product_uom_unit
380
 
      - company_id: base.main_company
381
 
        location_id: cycle_sloc2
382
 
        product_id: product3
383
 
        product_qty: 500.00
384
 
        prod_lot_id: lot5
385
 
        product_uom: product.product_uom_unit
386
 
      - company_id: base.main_company
387
 
        location_id: cycle_sloc3
388
 
        product_id: product3
389
 
        product_qty: 10.0
390
 
        prod_lot_id: lot1
391
 
        product_uom: product.product_uom_unit
392
 
      - company_id: base.main_company
393
 
        location_id: cycle_sloc4
394
 
        product_id: product3
395
 
        product_qty: 25.0
396
 
        prod_lot_id: lot2
397
 
        product_uom: product.product_uom_unit
398
 
      - company_id: base.main_company
399
 
        location_id: cycle_sloc2
400
 
        product_id: product4
401
 
        product_qty: 12.0
402
 
        product_uom: product.product_uom_unit
403
 
    state: draft
404
 
-
405
 
  I confirm the inventory
406
 
-
407
 
  !python {model: stock.inventory}: |
408
 
    self.action_confirm(cr,uid,[ref('inv1')])
409
 
    self.action_done(cr,uid,[ref('inv1')])
410
 
-
411
 
  I check if the availability of P1 is correct
412
 
-
413
 
  !assert {model: product.product, id: product1}:
414
 
    - qty_available == 47.0
415
 
    - virtual_available == 47.0
416
 
-
417
 
  I create a sale order with 15 P1
418
 
-
419
 
  !record {model: sale.order, id: so1}:
420
 
    amount_total: 5.0
421
 
    amount_untaxed: 5.0
422
 
    date_order: !eval time.strftime('%Y-%m-%d')
423
 
    invoice_quantity: order
424
 
    order_line:
425
 
      - company_id: base.main_company
426
 
        name: P1
427
 
        delay: 7.0
428
 
        price_unit: 12.0
429
 
        product_id: product1
430
 
        product_uom: product.product_uom_unit
431
 
        product_uom_qty: 15.0
432
 
        product_uos_qty: 15.0
433
 
        state: draft
434
 
        type: make_to_stock
435
 
    order_policy: manual
436
 
    partner_id: cust1
437
 
    partner_invoice_id: addrc1
438
 
    partner_order_id: addrc1
439
 
    partner_shipping_id: addrc1
440
 
    picking_policy: direct
441
 
    pricelist_id: product.list0
442
 
    shop_id: shop_cycle
443
 
-
444
 
  I confirm the Sale Order
445
 
-
446
 
  !workflow {model: sale.order, action: order_confirm, ref: so1}
447
 
-
448
 
  I check if the availability of P1 is correct
449
 
-
450
 
  !assert {model: product.product, id: product1}:
451
 
    - qty_available == 47.0
452
 
    - virtual_available == 32.0
453
 
-
454
 
  I check if the availability of P3 is correct
455
 
-
456
 
  !assert {model: product.product, id: product3}:
457
 
    - qty_available == 830.0
458
 
    - virtual_available == 830.0
459
 
-
460
 
  I create a Purchase Order with 35 P3
461
 
-
462
 
  !record {model: purchase.order, id: po1}:
463
 
    company_id: base.main_company
464
 
    date_order: !eval time.strftime('%Y-%m-%d')
465
 
    invoice_method: order
466
 
    location_id: cycle_sloc3
467
 
    order_line:
468
 
      - date_planned: !eval time.strftime('%Y-%m-%d')
469
 
        name: P3
470
 
        price_unit: 100.0
471
 
        product_id: product3
472
 
        product_qty: 35
473
 
        product_uom: product.product_uom_unit
474
 
        state: draft
475
 
    partner_address_id: address1
476
 
    partner_id: supplier1
477
 
    pricelist_id: purchase.list0
478
 
-
479
 
  I validate this purchase order
480
 
-
481
 
  !workflow {model: purchase.order, action: purchase_confirm, ref: po1}
482
 
-
483
 
  I approve this purchase order
484
 
-
485
 
  !workflow {model: purchase.order, action: purchase_approve, ref: po1}
486
 
-
487
 
  I check if the availability of P3 is correct
488
 
-
489
 
  !assert {model: product.product, id: product3}:
490
 
    - qty_available == 830.0
491
 
    - virtual_available == 865.0
492
 
-
493
 
  I crete a new FMC report for SlocĀ 2
494
 
-
495
 
  !record {model: monthly.review.consumption, id: mrc2}:
496
 
    cons_location_id: cycle_sloc2
497
 
    period_from: 2011-01-01
498
 
    period_to: !eval time.strftime('%Y-%m-%d')
499
 
    line_ids:
500
 
      - name: product1
501
 
        fmc: 125.0
502
 
        valid_ok: True
503
 
      - name: product2
504
 
        fmc: 236.0
505
 
        valid_ok: True
506
 
      - name: product3
507
 
        fmc: 150.0
508
 
        valid_ok: True
509
 
-
510
 
  I create a stock move for P1 in SLoc 2
511
 
512
 
  !record {model: stock.move, id: sm_p1_sloc2}:
513
 
    name: Product 1 SLoc 2
514
 
    product_id: product1
515
 
    product_uom: product.product_uom_unit
516
 
    date_expected: !eval time.strftime('%Y-%m-%d')
517
 
    date: !eval time.strftime('%Y-%m-%d')
518
 
    location_id: cycle_sloc2
519
 
    location_dest_id: stock.stock_location_customers
520
 
    type: out
521
 
    reason_type_id: reason_types_moves.reason_type_deliver_partner
522
 
    product_qty: 5
523
 
-
524
 
  I confirm the stock move
525
 
-
526
 
  !python {model: stock.move}: |
527
 
    self.action_confirm(cr, uid, ref('sm_p1_sloc2'), context=context)
528
 
    self.action_done(cr, uid, ref('sm_p1_sloc2'), context=context)
529
 
-
530
 
  I create a stock move for P1 in SLoc 1
531
 
532
 
  !record {model: stock.move, id: sm_p1_sloc1}:
533
 
    name: Product 1 SLoc 1
534
 
    product_id: product1
535
 
    product_uom: product.product_uom_unit
536
 
    date_expected: !eval time.strftime('%Y-%m-%d')
537
 
    date: !eval time.strftime('%Y-%m-%d')
538
 
    location_id: cycle_sloc1
539
 
    location_dest_id: stock.stock_location_customers
540
 
    type: out
541
 
    reason_type_id: reason_types_moves.reason_type_deliver_partner
542
 
    product_qty: 5
543
 
-
544
 
  I confirm the stock move
545
 
-
546
 
  !python {model: stock.move}: |
547
 
    self.action_confirm(cr, uid, ref('sm_p1_sloc1'), context=context)
548
 
    self.action_done(cr, uid, ref('sm_p1_sloc1'), context=context)
549
 
-
550
 
  I create a stock move for P2 in SLoc 1
551
 
552
 
  !record {model: stock.move, id: sm_p2_sloc1}:
553
 
    name: Product 2 SLoc 1
554
 
    product_id: product2
555
 
    product_uom: product.product_uom_unit
556
 
    date_expected: !eval time.strftime('%Y-%m-%d')
557
 
    date: !eval time.strftime('%Y-%m-%d')
558
 
    location_id: cycle_sloc1
559
 
    location_dest_id: stock.stock_location_customers
560
 
    type: out
561
 
    reason_type_id: reason_types_moves.reason_type_deliver_partner
562
 
    product_qty: 7
563
 
-
564
 
  I confirm the stock move
565
 
-
566
 
  !python {model: stock.move}: |
567
 
    self.action_confirm(cr, uid, ref('sm_p2_sloc1'), context=context)
568
 
    self.action_done(cr, uid, ref('sm_p2_sloc1'), context=context)
569
 
-
570
 
  I create a stock move for P2 in SLoc 2
571
 
572
 
  !record {model: stock.move, id: sm_p2_sloc2}:
573
 
    name: Product 2 SLoc 2
574
 
    product_id: product2
575
 
    product_uom: product.product_uom_unit
576
 
    date_expected: !eval time.strftime('%Y-%m-%d')
577
 
    date: !eval time.strftime('%Y-%m-%d')
578
 
    location_id: cycle_sloc2
579
 
    location_dest_id: stock.stock_location_customers
580
 
    type: out
581
 
    reason_type_id: reason_types_moves.reason_type_deliver_partner
582
 
    product_qty: 10
583
 
-
584
 
  I confirm the stock move
585
 
-
586
 
  !python {model: stock.move}: |
587
 
    self.action_confirm(cr, uid, ref('sm_p2_sloc2'), context=context)
588
 
    self.action_done(cr, uid, ref('sm_p2_sloc2'), context=context)
589
 
-
590
 
  I create a stock move for P3 in SLoc 1
591
 
592
 
  !record {model: stock.move, id: sm_p3_sloc1}:
593
 
    name: Product 3 SLoc 1
594
 
    product_id: product3
595
 
    product_uom: product.product_uom_unit
596
 
    date_expected: !eval time.strftime('%Y-%m-%d')
597
 
    date: !eval time.strftime('%Y-%m-%d')
598
 
    location_id: cycle_sloc1
599
 
    location_dest_id: stock.stock_location_customers
600
 
    type: out
601
 
    prodlot_id: lot22
602
 
    reason_type_id: reason_types_moves.reason_type_deliver_partner
603
 
    product_qty: 12
604
 
-
605
 
  I confirm the stock move
606
 
-
607
 
  !python {model: stock.move}: |
608
 
    self.action_confirm(cr, uid, ref('sm_p3_sloc1'), context=context)
609
 
    self.action_done(cr, uid, ref('sm_p3_sloc1'), context=context)
610
 
-
611
 
  I create a stock move for P2 in SLoc 1
612
 
613
 
  !record {model: stock.move, id: sm_p4_sloc2}:
614
 
    name: Product 4 SLoc 2
615
 
    product_id: product4
616
 
    product_uom: product.product_uom_unit
617
 
    date_expected: !eval time.strftime('%Y-%m-%d')
618
 
    date: !eval time.strftime('%Y-%m-%d')
619
 
    location_id: cycle_sloc2
620
 
    location_dest_id: stock.stock_location_customers
621
 
    type: out
622
 
    reason_type_id: reason_types_moves.reason_type_deliver_partner
623
 
    product_qty: 2
624
 
-
625
 
  I confirm the stock move
626
 
-
627
 
  !python {model: stock.move}: |
628
 
    self.action_confirm(cr, uid, ref('sm_p4_sloc2'), context=context)
629
 
    self.action_done(cr, uid, ref('sm_p4_sloc2'), context=context)