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

« back to all changes in this revision

Viewing changes to sourcing/test/grouped_po.yml

UF-358 [ADD] Initial creation : backup of this day

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
-
2
 
  In order to test the grouped by supplier and requestor feature,
3
 
  we will create 3 customers, 2 suppliers and 5 products (with stock or not
4
 
  and mini stock rules or not)
5
 
-
6
 
  Creation of customers
7
 
-
8
 
  Create the first customer
9
 
-
10
 
  !record {model: res.partner, id: gr_cust1}:
11
 
    credit_limit: 0.0
12
 
    debit_limit: 0.0
13
 
    name: A
14
 
    supplier: false
15
 
    customer: true
16
 
    customer_lt: 1
17
 
-
18
 
  Create an address for this first customer
19
 
-
20
 
  !record {model: res.partner.address, id: gr_ad_cust1}:
21
 
    name: A
22
 
    partner_id: gr_cust1
23
 
-
24
 
  Create a second customer
25
 
-
26
 
  !record {model: res.partner, id: gr_cust2}:
27
 
    credit_limit: 0.0
28
 
    debit_limit: 0.0
29
 
    name: B
30
 
    supplier: false
31
 
    customer: true
32
 
    customer_lt: 1
33
 
-
34
 
  Create an address for this second customer
35
 
-
36
 
  !record {model: res.partner.address, id: gr_ad_cust2}:
37
 
    name: B
38
 
    partner_id: gr_cust2
39
 
-
40
 
  Create a second customer
41
 
-
42
 
  !record {model: res.partner, id: gr_cust3}:
43
 
    credit_limit: 0.0
44
 
    debit_limit: 0.0
45
 
    name: C
46
 
    supplier: false
47
 
    customer: true
48
 
    customer_lt: 1
49
 
-
50
 
  Create an address for this third customer
51
 
-
52
 
  !record {model: res.partner.address, id: gr_ad_cust3}:
53
 
    name: C
54
 
    partner_id: gr_cust3
55
 
-
56
 
  Creation of suppliers
57
 
-
58
 
  Create the first supplier
59
 
-
60
 
  !record {model: res.partner, id: gr_supplier1}:
61
 
    credit_limit: 0.0
62
 
    debit_limit: 0.0
63
 
    name: SA
64
 
    supplier: true
65
 
    customer: false
66
 
    customer_lt: 1
67
 
    po_by_project: project
68
 
-
69
 
  Create an address for this first supplier
70
 
-
71
 
  !record {model: res.partner.address, id: gr_ad_supplier1}:
72
 
    name: SA
73
 
    partner_id: gr_supplier1
74
 
-
75
 
  Create the second supplier
76
 
-
77
 
  !record {model: res.partner, id: gr_supplier2}:
78
 
    credit_limit: 0.0
79
 
    debit_limit: 0.0
80
 
    name: SB
81
 
    supplier: true
82
 
    customer: false
83
 
    customer_lt: 1
84
 
    po_by_project: all
85
 
-
86
 
  Create an address for this second supplier
87
 
-
88
 
  !record {model: res.partner.address, id: gr_ad_supplier2}:
89
 
    name: SB
90
 
    partner_id: gr_supplier2
91
 
-
92
 
  Creation of products
93
 
-
94
 
  Creation of Product 1
95
 
96
 
  !record {model: product.template, id: gr_template1}:
97
 
    categ_id: product.cat0
98
 
    cost_method: standard
99
 
    mes_type: fixed
100
 
    name: P1
101
 
    procure_method: make_to_order
102
 
    standard_price: 160.0
103
 
    supply_method: buy
104
 
    type: product
105
 
    uom_id: product.product_uom_unit
106
 
    uom_po_id: product.product_uom_unit
107
 
108
 
  Creating a product.product record
109
 
110
 
  !record {model: product.product, id: gr_product1}:
111
 
    
112
 
    standard_price: 1.0
113
 
    valuation: manual_periodic
114
 
    volume: 0.0
115
 
    warranty: 0.0
116
 
    weight: 0.0
117
 
    weight_net: 0.0
118
 
    product_tmpl_id: gr_template1
119
 
    international_status: itc
120
 
121
 
  Creating a product.supplierinfo record
122
 
123
 
  !record {model: product.supplierinfo, id: gr_si_product1}:
124
 
    delay: 1
125
 
    min_qty: 0.0
126
 
    name: gr_supplier1
127
 
    product_id: gr_template1
128
 
-
129
 
  Creation of Product 2
130
 
131
 
  !record {model: product.template, id: gr_template2}:
132
 
    categ_id: product.cat0
133
 
    cost_method: standard
134
 
    mes_type: fixed
135
 
    name: P2
136
 
    procure_method: make_to_order
137
 
    standard_price: 160.0
138
 
    supply_method: buy
139
 
    type: product
140
 
    uom_id: product.product_uom_unit
141
 
    uom_po_id: product.product_uom_unit
142
 
143
 
  Creating a product.product record
144
 
145
 
  !record {model: product.product, id: gr_product2}:
146
 
    
147
 
    standard_price: 1.0
148
 
    valuation: manual_periodic
149
 
    volume: 0.0
150
 
    warranty: 0.0
151
 
    weight: 0.0
152
 
    weight_net: 0.0
153
 
    product_tmpl_id: gr_template2
154
 
    international_status: itc
155
 
156
 
  Creating a product.supplierinfo record
157
 
158
 
  !record {model: product.supplierinfo, id: gr_si_product2}:
159
 
    delay: 1
160
 
    min_qty: 0.0
161
 
    name: gr_supplier2
162
 
    product_id: gr_template2
163
 
-
164
 
  Creation of Product 3
165
 
166
 
  !record {model: product.template, id: gr_template3}:
167
 
    categ_id: product.cat0
168
 
    cost_method: standard
169
 
    mes_type: fixed
170
 
    name: P3
171
 
    procure_method: make_to_order
172
 
    standard_price: 160.0
173
 
    supply_method: buy
174
 
    type: product
175
 
    uom_id: product.product_uom_unit
176
 
    uom_po_id: product.product_uom_unit
177
 
178
 
  Creating a product.product record
179
 
180
 
  !record {model: product.product, id: gr_product3}:
181
 
    
182
 
    standard_price: 1.0
183
 
    valuation: manual_periodic
184
 
    volume: 0.0
185
 
    warranty: 0.0
186
 
    weight: 0.0
187
 
    weight_net: 0.0
188
 
    product_tmpl_id: gr_template3
189
 
    international_status: itc
190
 
191
 
  Creating a product.supplierinfo record
192
 
193
 
  !record {model: product.supplierinfo, id: gr_si_product3}:
194
 
    delay: 1
195
 
    min_qty: 0.0
196
 
    name: gr_supplier1
197
 
    product_id: gr_template3
198
 
-
199
 
  Creation of Product 4
200
 
201
 
  !record {model: product.template, id: gr_template4}:
202
 
    categ_id: product.cat0
203
 
    cost_method: standard
204
 
    mes_type: fixed
205
 
    name: P4
206
 
    procure_method: make_to_stock
207
 
    standard_price: 160.0
208
 
    supply_method: buy
209
 
    type: product
210
 
    uom_id: product.product_uom_unit
211
 
    uom_po_id: product.product_uom_unit
212
 
213
 
  Creating a product.product record
214
 
215
 
  !record {model: product.product, id: gr_product4}:
216
 
    
217
 
    standard_price: 1.0
218
 
    valuation: manual_periodic
219
 
    volume: 0.0
220
 
    warranty: 0.0
221
 
    weight: 0.0
222
 
    weight_net: 0.0
223
 
    product_tmpl_id: gr_template4
224
 
    international_status: itc
225
 
226
 
  Creating a product.supplierinfo record
227
 
228
 
  !record {model: product.supplierinfo, id: gr_si_product4}:
229
 
    delay: 1
230
 
    min_qty: 0.0
231
 
    name: gr_supplier2
232
 
    product_id: gr_template4
233
 
-
234
 
  Creation of Product 5
235
 
236
 
  !record {model: product.template, id: gr_template5}:
237
 
    categ_id: product.cat0
238
 
    cost_method: standard
239
 
    mes_type: fixed
240
 
    name: P5
241
 
    procure_method: make_to_stock
242
 
    standard_price: 160.0
243
 
    supply_method: buy
244
 
    type: product
245
 
    uom_id: product.product_uom_unit
246
 
    uom_po_id: product.product_uom_unit
247
 
248
 
  Creating a product.product record
249
 
250
 
  !record {model: product.product, id: gr_product5}:
251
 
    
252
 
    standard_price: 1.0
253
 
    valuation: manual_periodic
254
 
    volume: 0.0
255
 
    warranty: 0.0
256
 
    weight: 0.0
257
 
    weight_net: 0.0
258
 
    product_tmpl_id: gr_template5
259
 
    international_status: itc
260
 
261
 
  Creating a product.supplierinfo record
262
 
263
 
  !record {model: product.supplierinfo, id: gr_si_product5}:
264
 
    delay: 1
265
 
    min_qty: 0.0
266
 
    name: gr_supplier2
267
 
    product_id: gr_template5
268
 
-
269
 
  Creation of an inventory for 100 P5 and 5 P4
270
 
-
271
 
  !record {model: stock.inventory, id: gr_inventory1}:
272
 
    name: GR inventory
273
 
    date: !eval time.strftime('%Y-%m-%d')
274
 
    inventory_line_id:
275
 
      - location_id: stock.stock_location_stock
276
 
        product_uom: product.product_uom_unit
277
 
        product_id: gr_product5
278
 
        product_qty: 100
279
 
      - location_id: stock.stock_location_stock
280
 
        product_uom: product.product_uom_unit
281
 
        product_id: gr_product4
282
 
        product_qty: 5
283
 
-
284
 
  Validate the inventory
285
 
-
286
 
  !python {model: stock.inventory}: |
287
 
    self.action_confirm(cr, uid, [ref('gr_inventory1')], context=context)
288
 
    self.action_done(cr, uid, [ref('gr_inventory1')], context=context)
289
 
-
290
 
  Creation of a mini stock rules for P4
291
 
-
292
 
  !record {model: stock.warehouse.orderpoint, id: gr_orderpoint_4}:
293
 
    name: Orderpoint
294
 
    warehouse_id: stock.warehouse0
295
 
    product_id: gr_product4
296
 
    product_uom: product.product_uom_unit
297
 
    location_id: stock.stock_location_stock
298
 
    product_min_qty: 10
299
 
    product_max_qty: 100
300
 
    qty_multiple: 1
301
 
    active: True 
302
 
-
303
 
  Creation of sales orders
304
 
-
305
 
  Create the first sale order
306
 
-
307
 
  !record {model: sale.order, id: gr_so1}:
308
 
    company_id: base.main_company
309
 
    date_order: !eval time.strftime('%Y-%m-%d')
310
 
    invoice_quantity: order
311
 
    order_policy: manual
312
 
    partner_id: gr_cust1
313
 
    partner_invoice_id: gr_ad_cust1
314
 
    partner_order_id: gr_ad_cust1
315
 
    partner_shipping_id: gr_ad_cust1
316
 
    picking_policy: direct
317
 
    pricelist_id: product.list0
318
 
    shop_id: sale.shop
319
 
    priority: normal
320
 
    categ: medical
321
 
-
322
 
  Create a Sale Order Line
323
 
-
324
 
  !record {model: sale.order.line, id: gr_so1_l1}:
325
 
    product_uom: product.product_uom_unit
326
 
    product_id: gr_product1
327
 
    order_id: gr_so1
328
 
    price_unit: 1
329
 
    product_uom_qty: 10
330
 
    date_planned: !eval time.strftime('%Y-%m-%d')
331
 
    type: make_to_order
332
 
-
333
 
  Create a Sale Order Line
334
 
-
335
 
  !record {model: sale.order.line, id: gr_so1_l2}:
336
 
    product_uom: product.product_uom_unit
337
 
    product_id: gr_product2
338
 
    order_id: gr_so1
339
 
    price_unit: 1
340
 
    product_uom_qty: 25
341
 
    date_planned: !eval time.strftime('%Y-%m-%d')
342
 
    type: make_to_order
343
 
-
344
 
  Create a Sale Order Line
345
 
-
346
 
  !record {model: sale.order.line, id: gr_so1_l3}:
347
 
    product_uom: product.product_uom_unit
348
 
    product_id: gr_product3
349
 
    order_id: gr_so1
350
 
    price_unit: 1
351
 
    product_uom_qty: 20
352
 
    date_planned: !eval time.strftime('%Y-%m-%d')
353
 
    type: make_to_order
354
 
-
355
 
  Create the second sale order
356
 
-
357
 
  !record {model: sale.order, id: gr_so2}:
358
 
    company_id: base.main_company
359
 
    date_order: !eval time.strftime('%Y-%m-%d')
360
 
    invoice_quantity: order
361
 
    order_policy: manual
362
 
    partner_id: gr_cust2
363
 
    partner_invoice_id: gr_ad_cust2
364
 
    partner_order_id: gr_ad_cust2
365
 
    partner_shipping_id: gr_ad_cust2
366
 
    picking_policy: direct
367
 
    pricelist_id: product.list0
368
 
    shop_id: sale.shop
369
 
    priority: normal
370
 
    categ: medical
371
 
-
372
 
  Create a Sale Order Line
373
 
-
374
 
  !record {model: sale.order.line, id: gr_so2_l1}:
375
 
    product_uom: product.product_uom_unit
376
 
    product_id: gr_product1
377
 
    order_id: gr_so2
378
 
    price_unit: 1
379
 
    product_uom_qty: 15
380
 
    date_planned: !eval time.strftime('%Y-%m-%d')
381
 
    type: make_to_order
382
 
-
383
 
  Create a Sale Order Line
384
 
-
385
 
  !record {model: sale.order.line, id: gr_so2_l2}:
386
 
    product_uom: product.product_uom_unit
387
 
    product_id: gr_product2
388
 
    order_id: gr_so2
389
 
    price_unit: 1
390
 
    product_uom_qty: 25
391
 
    date_planned: !eval time.strftime('%Y-%m-%d')
392
 
    type: make_to_order
393
 
-
394
 
  Create a Sale Order Line
395
 
-
396
 
  !record {model: sale.order.line, id: gr_so2_l3}:
397
 
    product_uom: product.product_uom_unit
398
 
    product_id: gr_product3
399
 
    order_id: gr_so2
400
 
    price_unit: 1
401
 
    product_uom_qty: 30
402
 
    date_planned: !eval time.strftime('%Y-%m-%d')
403
 
    type: make_to_order
404
 
-
405
 
  Create a Sale Order Line
406
 
-
407
 
  !record {model: sale.order.line, id: gr_so2_l4}:
408
 
    product_uom: product.product_uom_unit
409
 
    product_id: gr_product4
410
 
    order_id: gr_so2
411
 
    price_unit: 1
412
 
    product_uom_qty: 40
413
 
    date_planned: !eval time.strftime('%Y-%m-%d')
414
 
    type: make_to_stock
415
 
-
416
 
  Create a Sale Order Line
417
 
-
418
 
  !record {model: sale.order.line, id: gr_so2_l5}:
419
 
    product_uom: product.product_uom_unit
420
 
    product_id: gr_product5
421
 
    order_id: gr_so2
422
 
    price_unit: 1
423
 
    product_uom_qty: 5
424
 
    date_planned: !eval time.strftime('%Y-%m-%d')
425
 
    type: make_to_stock
426
 
-
427
 
  Create the third sale order
428
 
-
429
 
  !record {model: sale.order, id: gr_so3}:
430
 
    company_id: base.main_company
431
 
    date_order: !eval time.strftime('%Y-%m-%d')
432
 
    invoice_quantity: order
433
 
    order_policy: manual
434
 
    partner_id: gr_cust3
435
 
    partner_invoice_id: gr_ad_cust3
436
 
    partner_order_id: gr_ad_cust3
437
 
    partner_shipping_id: gr_ad_cust3
438
 
    picking_policy: direct
439
 
    pricelist_id: product.list0
440
 
    shop_id: sale.shop
441
 
    priority: normal
442
 
    categ: medical
443
 
-
444
 
  Create a Sale Order Line
445
 
-
446
 
  !record {model: sale.order.line, id: gr_so3_l1}:
447
 
    product_uom: product.product_uom_unit
448
 
    product_id: gr_product1
449
 
    order_id: gr_so3
450
 
    price_unit: 1
451
 
    product_uom_qty: 5
452
 
    date_planned: !eval time.strftime('%Y-%m-%d')
453
 
    type: make_to_order
454
 
-
455
 
  Create a Sale Order Line
456
 
-
457
 
  !record {model: sale.order.line, id: gr_so3_l2}:
458
 
    product_uom: product.product_uom_unit
459
 
    product_id: gr_product2
460
 
    order_id: gr_so3
461
 
    price_unit: 1
462
 
    product_uom_qty: 12
463
 
    date_planned: !eval time.strftime('%Y-%m-%d')
464
 
    type: make_to_order
465
 
-
466
 
  Create a Sale Order Line
467
 
-
468
 
  !record {model: sale.order.line, id: gr_so3_l3}:
469
 
    product_uom: product.product_uom_unit
470
 
    product_id: gr_product3
471
 
    order_id: gr_so3
472
 
    price_unit: 1
473
 
    product_uom_qty: 5
474
 
    date_planned: !eval time.strftime('%Y-%m-%d')
475
 
    type: make_to_order
476
 
-
477
 
  Create a Sale Order Line
478
 
-
479
 
  !record {model: sale.order.line, id: gr_so3_l4}:
480
 
    product_uom: product.product_uom_unit
481
 
    product_id: gr_product4
482
 
    order_id: gr_so3
483
 
    price_unit: 1
484
 
    product_uom_qty: 5
485
 
    date_planned: !eval time.strftime('%Y-%m-%d')
486
 
    type: make_to_stock
487
 
-
488
 
  Create a Purchase Order for gr_supplier1
489
 
-
490
 
  !record {model: purchase.order, id: po_gr_sp1}:
491
 
    partner_id: gr_supplier1
492
 
    name: Regular1
493
 
    company_id: base.main_company
494
 
    date_order: !eval time.strftime('%Y-%m-%d')
495
 
    invoice_method: order
496
 
    location_id: stock.stock_location_stock
497
 
    partner_address_id: gr_ad_supplier1
498
 
    pricelist_id: purchase.list0
499
 
    customer_id: gr_cust1
500
 
-
501
 
  Update the delivery requested date of the PO
502
 
-
503
 
  !python {model: purchase.order}: |
504
 
    import datetime
505
 
    from dateutil.relativedelta import relativedelta
506
 
    req_date = (datetime.datetime.today() + relativedelta(days=1)).strftime('%Y-%m-%d 00:00:00')
507
 
    self.write(cr, uid, [ref('po_gr_sp1')], {'delivery_requested_date': req_date})
508
 
-
509
 
  I validate the sale order
510
 
-
511
 
  !python {model: sale.order}: |
512
 
    import netsvc
513
 
    wf_service = netsvc.LocalService("workflow")
514
 
    wf_service.trg_validate(uid, 'sale.order', ref("gr_so1"), 'order_validated', cr)
515
 
    wf_service.trg_validate(uid, 'sale.order', ref("gr_so2"), 'order_validated', cr)
516
 
    wf_service.trg_validate(uid, 'sale.order', ref("gr_so3"), 'order_validated', cr)
517
 
    wf_service.trg_validate(uid, 'sale.order', ref("gr_so1"), 'order_confirm', cr)
518
 
    wf_service.trg_validate(uid, 'sale.order', ref("gr_so2"), 'order_confirm', cr)
519
 
    wf_service.trg_validate(uid, 'sale.order', ref("gr_so3"), 'order_confirm', cr)
520
 
-
521
 
  Run the scheduler
522
 
-
523
 
  !python  {model: procurement.order}: |
524
 
    self.run_scheduler(cr, uid , context={'update_mode':'init'})
525
 
-
526
 
  !python {model: purchase.order}: |
527
 
    s1_po_ids = self.search(cr, uid, [('partner_id', '=', ref('gr_supplier1'))])
528
 
    s2_po_ids = self.search(cr, uid, [('partner_id', '=', ref('gr_supplier2'))])
529
 
    assert len(s1_po_ids) == 3, "Number of PO for Supplier 1 is not correct (expected : 3 :: result : %s)" % len(s1_po_ids)
530
 
    assert len(s2_po_ids) == 1, "Number of PO for Supplier 2 is not correct (expected : 1 :: result : %s)" % len(s2_po_ids)