first commit
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
=============================================
|
||||
Stock Shipment Internal with Transit Scenario
|
||||
=============================================
|
||||
|
||||
Imports::
|
||||
|
||||
>>> import datetime as dt
|
||||
>>> from decimal import Decimal
|
||||
|
||||
>>> from proteus import Model
|
||||
>>> from trytond.modules.company.tests.tools import create_company
|
||||
>>> from trytond.tests.tools import activate_modules, assertEqual
|
||||
|
||||
>>> today = dt.date.today()
|
||||
>>> yesterday = today - dt.timedelta(days=1)
|
||||
>>> tomorrow = today + dt.timedelta(days=1)
|
||||
|
||||
Activate modules::
|
||||
|
||||
>>> config = activate_modules('stock', create_company)
|
||||
|
||||
>>> ProductTemplate = Model.get('product.template')
|
||||
>>> ProductUom = Model.get('product.uom')
|
||||
>>> Shipment = Model.get('stock.shipment.internal')
|
||||
|
||||
Create product::
|
||||
|
||||
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
|
||||
>>> template = ProductTemplate()
|
||||
>>> template.name = "Product"
|
||||
>>> template.default_uom = unit
|
||||
>>> template.type = 'goods'
|
||||
>>> template.list_price = Decimal('20')
|
||||
>>> template.save()
|
||||
>>> product, = template.products
|
||||
|
||||
Get stock locations::
|
||||
|
||||
>>> Location = Model.get('stock.location')
|
||||
>>> warehouse1, = Location.find([('type', '=', 'warehouse')])
|
||||
>>> warehouse2, = warehouse1.duplicate()
|
||||
|
||||
Add lead time between warehouses::
|
||||
|
||||
>>> LeadTime = Model.get('stock.location.lead_time')
|
||||
>>> lead_time = LeadTime()
|
||||
>>> lead_time.warehouse_from = warehouse1
|
||||
>>> lead_time.warehouse_to = warehouse2
|
||||
>>> lead_time.lead_time = dt.timedelta(1)
|
||||
>>> lead_time.save()
|
||||
|
||||
Create Internal Shipment with lead time::
|
||||
|
||||
>>> shipment = Shipment()
|
||||
>>> shipment.planned_date = tomorrow
|
||||
>>> shipment.from_location = warehouse1.storage_location
|
||||
>>> shipment.to_location = warehouse2.storage_location
|
||||
>>> bool(shipment.transit_location)
|
||||
True
|
||||
>>> assertEqual(shipment.planned_start_date, today)
|
||||
>>> move = shipment.moves.new()
|
||||
>>> move.product = product
|
||||
>>> move.quantity = 2
|
||||
>>> move.from_location = shipment.from_location
|
||||
>>> move.to_location = shipment.to_location
|
||||
>>> shipment.click('wait')
|
||||
>>> len(shipment.moves)
|
||||
2
|
||||
>>> outgoing_move, = shipment.outgoing_moves
|
||||
>>> outgoing_move.quantity
|
||||
2.0
|
||||
>>> assertEqual(outgoing_move.from_location, shipment.from_location)
|
||||
>>> assertEqual(outgoing_move.to_location, shipment.transit_location)
|
||||
>>> assertEqual(outgoing_move.planned_date, today)
|
||||
>>> incoming_move, = shipment.incoming_moves
|
||||
>>> incoming_move.quantity
|
||||
2.0
|
||||
>>> assertEqual(incoming_move.from_location, shipment.transit_location)
|
||||
>>> assertEqual(incoming_move.to_location, shipment.to_location)
|
||||
>>> assertEqual(incoming_move.planned_date, tomorrow)
|
||||
|
||||
>>> outgoing_move.quantity = 1
|
||||
>>> outgoing_move.save()
|
||||
|
||||
>>> shipment.click('assign_force')
|
||||
>>> shipment.effective_start_date = yesterday
|
||||
>>> shipment.click('pack')
|
||||
>>> shipment.click('ship')
|
||||
>>> incoming_move, = shipment.incoming_moves
|
||||
>>> incoming_move.quantity
|
||||
1.0
|
||||
>>> shipment.outgoing_moves[0].state
|
||||
'done'
|
||||
>>> assertEqual(shipment.outgoing_moves[0].effective_date, yesterday)
|
||||
>>> shipment.click('do')
|
||||
>>> shipment.incoming_moves[0].state
|
||||
'done'
|
||||
>>> assertEqual(shipment.incoming_moves[0].effective_date, today)
|
||||
Reference in New Issue
Block a user