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

« back to all changes in this revision

Viewing changes to specific_rules/test/specific_rules.yml

UF-385 [ADD] Added consumption_calculation module

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
2
 
  Creating a res.partner record
3
 
4
 
  !record {model: res.partner, id: res_partner_testsupplier0}:
5
 
    credit_limit: 0.0
6
 
    debit_limit: 0.0
7
 
    name: test supplier
8
 
    partner_type: external
9
 
    supplier: true
10
 
    
11
 
    
12
 
13
 
  Creating a res.partner.address record
14
 
15
 
  !record {model: res.partner.address, id: res_partner_address_0}:
16
 
    partner_id: res_partner_testsupplier0
17
 
    street: test street
18
 
    
19
 
    
20
 
21
 
  Creating a product.nomenclature record
22
 
23
 
  !record {model: product.nomenclature, id: product_nomenclature_test0}:
24
 
    name: test
25
 
    
26
 
    
27
 
28
 
  Creating a product.nomenclature record
29
 
30
 
  !record {model: product.nomenclature, id: product_nomenclature_test1}:
31
 
    level: 1
32
 
    name: test1
33
 
    parent_id: product_nomenclature_test0
34
 
    
35
 
    
36
 
37
 
  Creating a product.nomenclature record
38
 
39
 
  !record {model: product.nomenclature, id: product_nomenclature_test2}:
40
 
    level: 2
41
 
    name: test2
42
 
    parent_id: product_nomenclature_test1
43
 
    
44
 
    
45
 
46
 
  Creating a product.nomenclature record
47
 
48
 
  !record {model: product.nomenclature, id: product_nomenclature_test3}:
49
 
    level: 3
50
 
    name: test3
51
 
    parent_id: product_nomenclature_test2
52
 
    
53
 
    
54
 
-
55
 
  Creating a product.category record
56
 
-
57
 
  !record {model: product.category, id: product_category_test1}:
58
 
    name: Test 1
59
 
    family_id: product_nomenclature_test2
60
 
-
61
 
  Creating a product.product record
62
 
63
 
  !record {model: product.product, id: product_product_testproduct0}:
64
 
    alert_time: 0.0
65
 
    categ_id: product.cat0
66
 
    cost_method: standard
67
 
    default_code: test3
68
 
    life_time: 0.0
69
 
    mes_type: fixed
70
 
    name: test product
71
 
    name_template: test product
72
 
    nomen_manda_0: product_nomenclature_test0
73
 
    nomen_manda_1: product_nomenclature_test1
74
 
    nomen_manda_2: product_nomenclature_test2
75
 
    nomen_manda_3: product_nomenclature_test3
76
 
    procure_method: make_to_stock
77
 
    removal_time: 0.0
78
 
    seller_delay: '1'
79
 
    seller_qty: 0.0
80
 
    standard_price: 1.0
81
 
    subtype: single
82
 
    supply_method: buy
83
 
    type: product
84
 
    uom_id: product.product_uom_unit
85
 
    uom_po_id: product.product_uom_unit
86
 
    use_time: 0.0
87
 
    valuation: manual_periodic
88
 
    volume: 0.0
89
 
    warranty: 0.0
90
 
    weight: 0.0
91
 
    weight_net: 0.0
92
 
    perishable: True
93
 
    international_status: product_attributes.int_1
94
 
    
95
 
96
 
  Creating a ir.sequence record
97
 
98
 
  !record {model: ir.sequence, id: ir_sequence_purchaseorder0}:
99
 
    code: purchase.order
100
 
    name: Purchase Order
101
 
    number_increment: 1
102
 
    number_next: 2
103
 
    padding: 0.0
104
 
    
105
 
    
106
 
107
 
  Creating a ir.sequence.type record
108
 
109
 
  !record {model: ir.sequence.type, id: ir_sequence_type_purchaseorder0}:
110
 
    code: purchase.order
111
 
    name: Purchase Order
112
 
    
113
 
114
 
  Creating a purchase.order record
115
 
116
 
  !record {model: purchase.order, id: purchase_order_po0}:
117
 
    amount_tax: 0.0
118
 
    amount_total: 1.0
119
 
    amount_untaxed: 1.0
120
 
    categ: other
121
 
    company_id: base.main_company
122
 
    date_order: !eval "'%s-08-29'%(time.strftime('%Y'),)"
123
 
    delivery_requested_date: !eval "'%s-08-31'%(time.strftime('%Y'),)"
124
 
    est_transport_lead_time: 0.0
125
 
    invoice_method: order
126
 
    location_id: stock.stock_location_stock
127
 
    minimum_planned_date: !eval "'%s-08-29'%(time.strftime('%Y'),)"
128
 
    name: PO test
129
 
    order_type: regular
130
 
    partner_address_id: res_partner_address_0
131
 
    partner_id: res_partner_testsupplier0
132
 
    pricelist_id: purchase.list0
133
 
    sequence_id: ir_sequence_purchaseorder0
134
 
    
135
 
    
136
 
137
 
  Creating a purchase.order.line record
138
 
139
 
  !record {model: purchase.order.line, id: purchase_order_line_testproduct0}:
140
 
    company_id: base.main_company
141
 
    date_planned: !eval "'%s-08-29'%(time.strftime('%Y'),)"
142
 
    default_code: test3
143
 
    default_name: test product
144
 
    internal_code: test
145
 
    internal_name: test product
146
 
    line_number: 1
147
 
    name: test product
148
 
    order_id: purchase_order_po0
149
 
    partner_id: res_partner_testsupplier0
150
 
    price_unit: 1.0
151
 
    product_id: product_product_testproduct0
152
 
    product_qty: 1.0
153
 
    product_uom: product.product_uom_unit
154
 
    state: draft
155
 
    
156
 
-
157
 
  Check po Creation
158
 
-
159
 
  !python {model: purchase.order}: |
160
 
    # test po creation
161
 
    #print self.search(cr, uid, [('name', '=', 'PO test')])
162
 
    
163
 
-
164
 
  We confirm the purchase_order_po0
165
 
-
166
 
  !workflow {model: purchase.order, action: purchase_confirm, ref: purchase_order_po0}
167
 
    
168
 
    
169
 
-
170
 
  We confirm the purchase_order_po0 (double validation)
171
 
-
172
 
  !workflow {model: purchase.order, action: purchase_approve, ref: purchase_order_po0}
173
 
  
174
 
  
175
 
-
176
 
  Check incoming Creation
177
 
-
178
 
  !python {model: stock.picking}: |
179
 
    import time
180
 
    # test IN creation
181
 
    pick_ids = self.search(cr, uid, [('purchase_id', '=', ref("purchase_order_po0"))], context=context)
182
 
    assert len(pick_ids) == 1, 'wrong number of IN stock picking'
183
 
    context.update(active_ids=pick_ids)
184
 
    # process incoming shipment with a new expiry date
185
 
    # create wizard objects
186
 
    wizard_obj = self.pool.get('stock.partial.picking')
187
 
    wizard_id = self.action_process(cr, uid, pick_ids, context=context)['res_id']
188
 
    # enter the new expiry date value - memory_out because product cost method is standard price
189
 
    the_date = time.strftime('%Y-%m-%d')
190
 
    the_date = '2022-01-01'
191
 
    for memory_out in wizard_obj.browse(cr, uid, wizard_id, context=context).product_moves_out:
192
 
      # test
193
 
      memory_out.write({'expiry_date': the_date}, context=context)
194
 
 
195
 
    # validate the processing
196
 
    c = context.copy()
197
 
    c.update({'wizard_ids': [wizard_id], 'wizard_id': wizard_id, 'wizard_name': 'name','model': 'stock.partial.picking','step': 'step'})
198
 
    wizard_obj.copy_all(cr,uid,[wizard_id], context=c)
199
 
    wizard_obj.do_partial(cr, uid, [wizard_id], context=context)
200
 
    # check a new production lot has been created with corresponding expiry date
201
 
    prodlot_obj = self.pool.get('stock.production.lot')
202
 
    assert len(prodlot_obj.search(cr, uid, [('life_date', '=', the_date), ('type', '=', 'internal')], context=context)), 'prodlots wrong'
203
 
-
204
 
 
205
 
  We create a inventory control
206
 
  
207
 
-
208
 
 
209
 
  !record {model: stock.inventory, id: stock_inventory0}:
210
 
    name: test01
211
 
 
212
 
-
213
 
  Create a reason type
214
 
-
215
 
 
216
 
  !record {model: stock.reason.type, id: stock_reasontype0}:
217
 
    name: testreasontype01
218
 
    code: 123456789
219
 
    
220
 
-
221
 
  Create a line
222
 
-
223
 
 
224
 
  !record {model: stock.inventory.line, id: stock_inventory_line0}:
225
 
    location_id: stock.stock_location_stock
226
 
    product_id: product_product_testproduct0
227
 
    reason_type_id: stock_reasontype0
228
 
    product_uom: product.product_uom_unit
229
 
    expiry_date: 2011-10-04
230
 
    inventory_id: stock_inventory0
231
 
    product_qty: 35.0
232
 
    hidden_perishable_mandatory: True
233
 
 
234
 
-
235
 
  Confirm and validate the inventory - check the new production lot
236
 
-
237
 
 
238
 
  !python {model: stock.inventory}: |
239
 
    self.action_confirm(cr, uid, [ref("stock_inventory0")])
240
 
    self.action_done(cr, uid, [ref("stock_inventory0")])
241
 
    
242
 
    # check the new production lot
243
 
    prodlot_obj = self.pool.get('stock.production.lot')
244
 
    ids = prodlot_obj.search(cr, uid, [('product_id', '=', ref("product_product_testproduct0")), ('life_date', '=', '2011-10-04'),])
245
 
    assert len(ids) == 1, 'the number of production lot is wrong - 1 - %s'%len(ids)
246
 
     
247
 
-
248
 
  test new onchange functions
249
 
  
250
 
  product - product_product_testproduct0
251
 
  location_id - stock.stock_location_stock
252
 
  
253
 
-
254
 
 
255
 
  !python {model: stock.inventory.line}: |
256
 
    # change_lot
257
 
    self.change_lot(cr, uid, [ref("stock_inventory_line0")], ref("stock.stock_location_stock"), ref("product_product_testproduct0"), prod_lot_id=False, uom=False, to_date=False,)
258
 
    # on_change_location_id
259
 
    self.on_change_location_id(cr, uid, [ref("stock_inventory_line0")], ref("stock.stock_location_stock"), ref("product_product_testproduct0"), prod_lot_id=False, uom=False, to_date=False,)
260
 
    # on_change_product_id_specific_rules
261
 
    self.on_change_product_id_specific_rules(cr, uid, [ref("stock_inventory_line0")], ref("stock.stock_location_stock"), ref("product_product_testproduct0"), prod_lot_id=False, uom=False, to_date=False,)
262
 
    
263
 
-
264
 
  Try to create a Min/Max stock rules with an UoM which
265
 
  has a different category than the standard product UoM
266
 
-
267
 
  !python {model: stock.warehouse.orderpoint}: |
268
 
    try:
269
 
      self.create(cr, uid, {'product_id': ref("product_product_testproduct0"),
270
 
                            'location_id': ref("stock.stock_location_stock"),
271
 
                            'warehouse_id': ref("stock.warehouse0"),
272
 
                            'product_min_qty': 1.00,
273
 
                            'product_max_qty': 1.00,
274
 
                            'qty_multiple': 1.00,
275
 
                            'product_uom': ref("product.product_uom_kgm")})
276
 
      assert False, "No error raised when the Min/Max rule has a non-compatible UoM"
277
 
    except:
278
 
      assert True