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

« back to all changes in this revision

Viewing changes to purchase_msf/test/purchase_order_lines.yml

[UF-33][UF-48][UF-103] new repository

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
-
 
2
  In order to test the new purchase order line screen, we first create new partners.
 
3
  We then create new products with different internal and supplier configuration (code and name).
 
4
  
 
5
  Finally we create purchase orders with purchase order lines for these different products.
 
6
 
 
7
 
 
8
  Creating a product.category record
 
9
 
10
  !record {model: product.category, id: product_category_testproducts0}:
 
11
    name: Test products
 
12
    sequence: 0.0
 
13
-
 
14
 
 
15
  I create the first partner,
 
16
  Name AFRICOM
 
17
  Customer <checked>
 
18
  Supplier <checked>
 
19
 
 
20
 
 
21
  Creating a res.partner record
 
22
-
 
23
  !record {model: res.partner, id: res_partner_africom0}:
 
24
    credit_limit: 0.0
 
25
    debit_limit: 0.0
 
26
    name: AFRICOM
 
27
    supplier: true
 
28
-
 
29
  I create the second partner,
 
30
  Name AlainDeLoin
 
31
  Customer <checked>
 
32
  Supplier <checked>
 
33
 
 
34
 
 
35
  Creating a res.partner record
 
36
 
37
  !record {model: res.partner, id: res_partner_alaindeloin0}:
 
38
    credit_limit: 0.0
 
39
    debit_limit: 0.0
 
40
    name: AlainDeLoin
 
41
    supplier: true
 
42
-
 
43
  I create the third partner,
 
44
  Name Berthe
 
45
  Customer <checked>
 
46
  Supplier <checked>
 
47
 
 
48
 
 
49
  Creating a res.partner record
 
50
 
51
  !record {model: res.partner, id: res_partner_berthe0}:
 
52
    credit_limit: 0.0
 
53
    debit_limit: 0.0
 
54
    name: Berthe
 
55
    supplier: true
 
56
-
 
57
 
 
58
  I create the corresponding addresses
 
59
 
 
60
 
 
61
  Creating a res.partner.address record
 
62
 
63
  !record {model: res.partner.address, id: res_partner_address_0}:
 
64
    country_id: base.au
 
65
    partner_id: res_partner_africom0
 
66
    street: street
 
67
    type: default
 
68
    zip: '1234'
 
69
 
 
70
 
 
71
 
72
  Creating a res.partner.address record
 
73
 
74
  !record {model: res.partner.address, id: res_partner_address_2}:
 
75
    partner_id: res_partner_alaindeloin0
 
76
    street: street
 
77
    
 
78
    
 
79
 
80
  Creating a res.partner.address record
 
81
 
82
  !record {model: res.partner.address, id: res_partner_address_3}:
 
83
    partner_id: res_partner_berthe0
 
84
    street: street
 
85
-
 
86
 
 
87
  I create the first product, with no specified suppliers,
 
88
  Name Boite à chaussures
 
89
  Reference CHAUSS INT 1234
 
90
 
 
91
 
 
92
  Creating a product.product record
 
93
 
94
  !record {model: product.product, id: product_product_boitechaussures0}:
 
95
    categ_id: product_category_testproducts0
 
96
    cost_method: standard
 
97
    default_code: CHAUSS-INT-1234
 
98
    mes_type: fixed
 
99
    name: Boite \xc3\xa0 chaussures
 
100
    name_template: Boite \xc3\xa0 chaussures
 
101
    procure_method: make_to_stock
 
102
    seller_delay: '1'
 
103
    seller_qty: 0.0
 
104
    standard_price: 1.0
 
105
    supply_method: buy
 
106
    type: consu
 
107
    uom_id: product.product_uom_unit
 
108
    uom_po_id: product.product_uom_unit
 
109
    valuation: manual_periodic
 
110
    volume: 0.0
 
111
    warranty: 0.0
 
112
    weight: 0.0
 
113
    weight_net: 0.0
 
114
-
 
115
  I create the second product, with one specified supplier,
 
116
  Name Camembert
 
117
  Reference CAM-INT-1234
 
118
  Supplier AFRICOM
 
119
  * Supplier product Name Fromage qui pue Africom
 
120
  * Supplier product Code PUE AFRI 1234
 
121
 
 
122
 
 
123
  Creating a product.product record
 
124
 
125
  !record {model: product.product, id: product_product_camembert0}:
 
126
    categ_id: product_category_testproducts0
 
127
    cost_method: standard
 
128
    default_code: CAM-INT-1234
 
129
    mes_type: fixed
 
130
    name: Camembert
 
131
    name_template: Camembert
 
132
    procure_method: make_to_stock
 
133
    seller_delay: '1'
 
134
    seller_id: res_partner_africom0
 
135
    seller_ids:
 
136
      - delay: 1
 
137
        min_qty: 0.0
 
138
        name: res_partner_africom0
 
139
        product_code: PUE-AFRI-1234
 
140
        product_name: Fromage qui pue Africom
 
141
    seller_qty: 0.0
 
142
    standard_price: 1.0
 
143
    supply_method: buy
 
144
    type: consu
 
145
    uom_id: product.product_uom_unit
 
146
    uom_po_id: product.product_uom_unit
 
147
    valuation: manual_periodic
 
148
    volume: 0.0
 
149
    warranty: 0.0
 
150
    weight: 0.0
 
151
    weight_net: 0.0
 
152
-
 
153
  I create the third product, with two specified supplier, the first one with supplier info, the second one without,
 
154
  Name Pneu
 
155
  Reference PNEU INT 1234
 
156
  Supplier AlainDeLoin
 
157
  * Supplier product Name Pneu AlainDeLoin
 
158
  * Supplier product Code PNEU ALAIN 1234
 
159
  Supplier Berthe
 
160
 
 
161
 
 
162
  Creating a product.product record
 
163
 
164
  !record {model: product.product, id: product_product_pneu0}:
 
165
    categ_id: product_category_testproducts0
 
166
    cost_method: standard
 
167
    default_code: PNEU-INT-1234
 
168
    mes_type: fixed
 
169
    name: Pneu
 
170
    name_template: Pneu
 
171
    procure_method: make_to_stock
 
172
    seller_delay: '1'
 
173
    seller_id: res_partner_alaindeloin0
 
174
    seller_ids:
 
175
      - delay: 1
 
176
        min_qty: 0.0
 
177
        name: res_partner_alaindeloin0
 
178
        product_code: PNEU-ALAIN-1234
 
179
        product_name: Pneu AlainDeLoin
 
180
      - delay: 1
 
181
        min_qty: 0.0
 
182
        name: res_partner_berthe0
 
183
    seller_qty: 0.0
 
184
    standard_price: 1.0
 
185
    supply_method: buy
 
186
    type: consu
 
187
    uom_id: product.product_uom_unit
 
188
    uom_po_id: product.product_uom_unit
 
189
    valuation: manual_periodic
 
190
    volume: 0.0
 
191
    warranty: 0.0
 
192
    weight: 0.0
 
193
    weight_net: 0.0
 
194
-
 
195
 
 
196
  I create the first purchase order
 
197
  Supplier AFRICOM
 
198
  The selected product has AFRICOM as specified supplier
 
199
 
 
200
 
201
  Creating a purchase.order record
 
202
 
203
  !record {model: purchase.order, id: purchase_order_po1}:
 
204
    amount_tax: 0.0
 
205
    amount_total: 1.0
 
206
    amount_untaxed: 1.0
 
207
    company_id: base.main_company
 
208
    date_order: '2011-03-15'
 
209
    invoice_method: order
 
210
    location_id: stock.stock_location_stock
 
211
    minimum_planned_date: '2011-03-15'
 
212
    name: PO00004
 
213
    partner_address_id: res_partner_address_0
 
214
    partner_id: res_partner_africom0
 
215
    pricelist_id: purchase.list0
 
216
-
 
217
 
 
218
  I create the order line
 
219
 
 
220
  Creating a purchase.order.line record
 
221
 
222
  !record {model: purchase.order.line, id: purchase_order_line_boitechaussures0}:
 
223
    company_id: base.main_company
 
224
    date_planned: '2011-03-15'
 
225
    internal_code: CHAUSS-INT-1234
 
226
    internal_name: Boite \xc3\xa0 chaussures
 
227
    name: Boite \xc3\xa0 chaussures
 
228
    order_id: purchase_order_po1
 
229
    partner_id: res_partner_africom0
 
230
    price_unit: 1.0
 
231
    product_id: product_product_boitechaussures0
 
232
    product_qty: 1.0
 
233
    product_uom: product.product_uom_unit
 
234
    state: draft
 
235
-
 
236
 
 
237
  I check the onchange function, it should correspond
 
238
  to data from selected product supplier
 
239
  
 
240
  gather corresponding purchase order line
 
241
  retrieve the values from onChange function
 
242
  compare the data with the one from pol
 
243
  
 
244
  name
 
245
  internal_code
 
246
  internal_name
 
247
  supplier_code
 
248
  supplier_name
 
249
 
 
250
-
 
251
  !python {model: purchase.order.line}: |
 
252
    pol = self.browse(cr, uid, ref("purchase_order_line_boitechaussures0"))
 
253
    
 
254
    result = pol.product_id_change(pol.order_id.pricelist_id.id, pol.product_id.id,
 
255
                                                                pol.product_qty, pol.product_uom.id, pol.order_id.partner_id.id,
 
256
                                                                pol.order_id.date_order, pol.order_id.fiscal_position.id,
 
257
                                                                pol.date_planned, pol.name, pol.price_unit, pol.notes)
 
258
    
 
259
    innerDic = result['value']
 
260
    
 
261
    assert innerDic['name'] == pol.name
 
262
    assert (innerDic['internal_code'] or '') == (pol.internal_code or ''), "internal_code %s vs %s" % (innerDic['internal_code'], pol.internal_code)
 
263
    assert (innerDic['internal_name'] or '') == (pol.internal_name or ''), "internal_name %s vs %s" % (innerDic['internal_name'], pol.internal_name)
 
264
    assert (innerDic['supplier_code'] or '') == (pol.supplier_code or ''), "supplier_code %s vs %s" % (innerDic['supplier_code'], pol.supplier_code)
 
265
    assert (innerDic['supplier_name'] or '') == (pol.supplier_name or ''), "supplier_name %s vs %s" % (innerDic['supplier_name'], pol.supplier_name)
 
266
-
 
267
 
 
268
 
 
269
  create a PO with supplier alaindeloin and product pneu
 
270
  pneu has alaindeloin as one of its supplier. Supplier
 
271
  information is specified
 
272
 
 
273
 
 
274
  Creating a purchase.order record
 
275
-
 
276
  !record {model: purchase.order, id: purchase_order_po0}:
 
277
    amount_tax: 0.0
 
278
    amount_total: 1.0
 
279
    amount_untaxed: 1.0
 
280
    company_id: base.main_company
 
281
    date_order: '2011-03-15'
 
282
    invoice_method: order
 
283
    location_id: stock.stock_location_stock
 
284
    minimum_planned_date: '2011-03-16'
 
285
    name: PO00005
 
286
    partner_address_id: res_partner_address_2
 
287
    partner_id: res_partner_alaindeloin0
 
288
    pricelist_id: purchase.list0
 
289
-
 
290
 
 
291
 
 
292
  I create the order line
 
293
 
 
294
  Creating a purchase.order.line record
 
295
 
296
  !record {model: purchase.order.line, id: purchase_order_line_pneu2}:
 
297
    company_id: base.main_company
 
298
    date_planned: '2011-03-16'
 
299
    internal_code: PNEU-INT-1234
 
300
    internal_name: Pneu
 
301
    name: Pneu
 
302
    order_id: purchase_order_po0
 
303
    partner_id: res_partner_alaindeloin0
 
304
    price_unit: 1.0
 
305
    product_id: product_product_pneu0
 
306
    product_qty: 1.0
 
307
    product_uom: product.product_uom_unit
 
308
    state: draft
 
309
    supplier_code: PNEU-ALAIN-1234
 
310
    supplier_name: Pneu AlainDeLoin
 
311
-
 
312
 
 
313
  I check the onchange function, it should correspond
 
314
  to data from selected product supplier
 
315
  
 
316
  gather corresponding purchase order line
 
317
  retrieve the values from onChange function
 
318
  compare the data with the one from pol
 
319
  
 
320
  name
 
321
  internal_code
 
322
  internal_name
 
323
  supplier_code
 
324
  supplier_name
 
325
 
 
326
-
 
327
  !python {model: purchase.order.line}: |
 
328
    pol = self.browse(cr, uid, ref("purchase_order_line_pneu2"))
 
329
    
 
330
    result = pol.product_id_change(pol.order_id.pricelist_id.id, pol.product_id.id,
 
331
                                                                pol.product_qty, pol.product_uom.id, pol.order_id.partner_id.id,
 
332
                                                                pol.order_id.date_order, pol.order_id.fiscal_position.id,
 
333
                                                                pol.date_planned, pol.name, pol.price_unit, pol.notes)
 
334
    
 
335
    innerDic = result['value']
 
336
    
 
337
    assert innerDic['name'] == pol.name
 
338
    assert (innerDic['internal_code'] or '') == (pol.internal_code or ''), "internal_code %s vs %s" % (innerDic['internal_code'], pol.internal_code)
 
339
    assert (innerDic['internal_name'] or '') == (pol.internal_name or ''), "internal_name %s vs %s" % (innerDic['internal_name'], pol.internal_name)
 
340
    assert (innerDic['supplier_code'] or '') == (pol.supplier_code or ''), "supplier_code %s vs %s" % (innerDic['supplier_code'], pol.supplier_code)
 
341
    assert (innerDic['supplier_name'] or '') == (pol.supplier_name or ''), "supplier_name %s vs %s" % (innerDic['supplier_name'], pol.supplier_name)
 
342
-
 
343
 
 
344
 
 
345
  create a PO with berthe as its supplier and pneu. berthe
 
346
  is one of the specified supplier for pneu, but with no
 
347
  supplier information (code and name)
 
348
 
 
349
  Creating a purchase.order record
 
350
 
351
  !record {model: purchase.order, id: purchase_order_po2}:
 
352
    amount_tax: 0.0
 
353
    amount_total: 1.0
 
354
    amount_untaxed: 1.0
 
355
    company_id: base.main_company
 
356
    date_order: '2011-03-15'
 
357
    invoice_method: order
 
358
    location_id: stock.stock_location_stock
 
359
    minimum_planned_date: '2011-03-16'
 
360
    name: PO00003
 
361
    partner_address_id: res_partner_address_3
 
362
    partner_id: res_partner_berthe0
 
363
    pricelist_id: purchase.list0
 
364
-
 
365
 
 
366
 
 
367
  I create the order line
 
368
 
 
369
  Creating a purchase.order.line record
 
370
 
371
  !record {model: purchase.order.line, id: purchase_order_line_pneu1}:
 
372
    company_id: base.main_company
 
373
    date_planned: '2011-03-16'
 
374
    internal_code: PNEU-INT-1234
 
375
    internal_name: Pneu
 
376
    name: Pneu
 
377
    order_id: purchase_order_po2
 
378
    partner_id: res_partner_berthe0
 
379
    price_unit: 1.0
 
380
    product_id: product_product_pneu0
 
381
    product_qty: 1.0
 
382
    product_uom: product.product_uom_unit
 
383
    state: draft
 
384
-
 
385
 
 
386
  I check the onchange function, it should correspond
 
387
  to data from selected product supplier
 
388
  
 
389
  gather corresponding purchase order line
 
390
  retrieve the values from onChange function
 
391
  compare the data with the one from pol
 
392
  
 
393
  name
 
394
  internal_code
 
395
  internal_name
 
396
  supplier_code
 
397
  supplier_name
 
398
 
 
399
-
 
400
  !python {model: purchase.order.line}: |
 
401
    pol = self.browse(cr, uid, ref("purchase_order_line_pneu1"))
 
402
    
 
403
    result = pol.product_id_change(pol.order_id.pricelist_id.id, pol.product_id.id,
 
404
                                                                pol.product_qty, pol.product_uom.id, pol.order_id.partner_id.id,
 
405
                                                                pol.order_id.date_order, pol.order_id.fiscal_position.id,
 
406
                                                                pol.date_planned, pol.name, pol.price_unit, pol.notes)
 
407
    
 
408
    innerDic = result['value']
 
409
    
 
410
    assert innerDic['name'] == pol.name
 
411
    assert (innerDic['internal_code'] or '') == (pol.internal_code or ''), "internal_code %s vs %s" % (innerDic['internal_code'], pol.internal_code)
 
412
    assert (innerDic['internal_name'] or '') == (pol.internal_name or ''), "internal_name %s vs %s" % (innerDic['internal_name'], pol.internal_name)
 
413
    assert (innerDic['supplier_code'] or '') == (pol.supplier_code or ''), "supplier_code %s vs %s" % (innerDic['supplier_code'], pol.supplier_code)
 
414
    assert (innerDic['supplier_name'] or '') == (pol.supplier_name or ''), "supplier_name %s vs %s" % (innerDic['supplier_name'], pol.supplier_name)
 
415
-
 
416
 
 
417
 
 
418
  create a PO with supplier AFRICOM. and product Pneu,
 
419
  Pneu has two suppliers specified but none of them is AFRICOM
 
420
 
 
421
 
 
422
  Creating a purchase.order record
 
423
 
424
  !record {model: purchase.order, id: purchase_order_po3}:
 
425
    amount_tax: 0.0
 
426
    amount_total: 1.0
 
427
    amount_untaxed: 1.0
 
428
    company_id: base.main_company
 
429
    date_order: '2011-03-15'
 
430
    invoice_method: order
 
431
    location_id: stock.stock_location_stock
 
432
    minimum_planned_date: '2011-03-16'
 
433
    name: PO00002
 
434
    partner_address_id: res_partner_address_0
 
435
    partner_id: res_partner_africom0
 
436
    pricelist_id: purchase.list0
 
437
-
 
438
 
 
439
  I create the order line
 
440
 
 
441
  Creating a purchase.order.line record
 
442
 
443
  !record {model: purchase.order.line, id: purchase_order_line_pneu0}:
 
444
    company_id: base.main_company
 
445
    date_planned: '2011-03-16'
 
446
    internal_code: PNEU-INT-1234
 
447
    internal_name: Pneu
 
448
    name: Pneu
 
449
    order_id: purchase_order_po3
 
450
    partner_id: res_partner_africom0
 
451
    price_unit: 1.0
 
452
    product_id: product_product_pneu0
 
453
    product_qty: 1.0
 
454
    product_uom: product.product_uom_unit
 
455
    state: draft
 
456
-
 
457
 
 
458
  I check the onchange function, it should correspond
 
459
  to data from selected product supplier
 
460
  
 
461
  gather corresponding purchase order line
 
462
  retrieve the values from onChange function
 
463
  compare the data with the one from pol
 
464
  
 
465
  name
 
466
  internal_code
 
467
  internal_name
 
468
  supplier_code
 
469
  supplier_name
 
470
 
 
471
-
 
472
  !python {model: purchase.order.line}: |
 
473
    pol = self.browse(cr, uid, ref("purchase_order_line_pneu0"))
 
474
    
 
475
    result = pol.product_id_change(pol.order_id.pricelist_id.id, pol.product_id.id,
 
476
                                                                pol.product_qty, pol.product_uom.id, pol.order_id.partner_id.id,
 
477
                                                                pol.order_id.date_order, pol.order_id.fiscal_position.id,
 
478
                                                                pol.date_planned, pol.name, pol.price_unit, pol.notes)
 
479
    
 
480
    innerDic = result['value']
 
481
    
 
482
    assert innerDic['name'] == pol.name
 
483
    assert (innerDic['internal_code'] or '') == (pol.internal_code or ''), "internal_code %s vs %s" % (innerDic['internal_code'], pol.internal_code)
 
484
    assert (innerDic['internal_name'] or '') == (pol.internal_name or ''), "internal_name %s vs %s" % (innerDic['internal_name'], pol.internal_name)
 
485
    assert (innerDic['supplier_code'] or '') == (pol.supplier_code or ''), "supplier_code %s vs %s" % (innerDic['supplier_code'], pol.supplier_code)
 
486
    assert (innerDic['supplier_name'] or '') == (pol.supplier_name or ''), "supplier_name %s vs %s" % (innerDic['supplier_name'], pol.supplier_name)
 
487
-