Rename 'done' buttons to 'do' and label them as "Complete"
Closes #13039
This commit is contained in:
@@ -112,7 +112,7 @@ Ship the products::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ Receive 9 products::
|
|||||||
>>> shipment.incoming_moves.append(move)
|
>>> shipment.incoming_moves.append(move)
|
||||||
>>> move.quantity = 5.0
|
>>> move.quantity = 5.0
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> stock_in.reload()
|
>>> stock_in.reload()
|
||||||
@@ -252,7 +252,7 @@ Send 5 products::
|
|||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'packed'
|
'packed'
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> stock_out.reload()
|
>>> stock_out.reload()
|
||||||
@@ -380,7 +380,7 @@ Now we will use a product with different unit of measure::
|
|||||||
0.0
|
0.0
|
||||||
>>> shipment.incoming_moves.append(move)
|
>>> shipment.incoming_moves.append(move)
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|
||||||
>>> set_user(accountant)
|
>>> set_user(accountant)
|
||||||
>>> purchase.reload()
|
>>> purchase.reload()
|
||||||
|
|||||||
+1
-1
@@ -192,7 +192,7 @@ Receive 50 products::
|
|||||||
|
|
||||||
>>> set_user(stock_user)
|
>>> set_user(stock_user)
|
||||||
>>> shipment.click('ship')
|
>>> shipment.click('ship')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> set_user(account_user)
|
>>> set_user(account_user)
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ Receive 9 products::
|
|||||||
>>> shipment.incoming_moves.append(move)
|
>>> shipment.incoming_moves.append(move)
|
||||||
>>> move.quantity = 5.0
|
>>> move.quantity = 5.0
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> stock_in.reload()
|
>>> stock_in.reload()
|
||||||
@@ -213,7 +213,7 @@ Send 5 products::
|
|||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'packed'
|
'packed'
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> stock_out.reload()
|
>>> stock_out.reload()
|
||||||
@@ -315,7 +315,7 @@ Create Drop Shipment Move::
|
|||||||
|
|
||||||
>>> shipment, = sale.drop_shipments
|
>>> shipment, = sale.drop_shipments
|
||||||
>>> shipment.click('ship')
|
>>> shipment.click('ship')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -367,7 +367,7 @@ Create Drop Shipment Move::
|
|||||||
|
|
||||||
>>> shipment, = sale.drop_shipments
|
>>> shipment, = sale.drop_shipments
|
||||||
>>> shipment.click('ship')
|
>>> shipment.click('ship')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ Receive products from Belgium::
|
|||||||
>>> move.unit_price = Decimal('100.0000')
|
>>> move.unit_price = Decimal('100.0000')
|
||||||
>>> move.currency = eur
|
>>> move.currency = eur
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ Receive products from France::
|
|||||||
>>> move.unit_price = Decimal('90.0000')
|
>>> move.unit_price = Decimal('90.0000')
|
||||||
>>> move.currency = eur
|
>>> move.currency = eur
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -196,7 +196,7 @@ Receive products from US::
|
|||||||
>>> move.unit_price = Decimal('120.0000')
|
>>> move.unit_price = Decimal('120.0000')
|
||||||
>>> move.currency = usd
|
>>> move.currency = usd
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -218,7 +218,7 @@ Receive returned products from France::
|
|||||||
>>> move.unit_price = Decimal('150.0000')
|
>>> move.unit_price = Decimal('150.0000')
|
||||||
>>> move.currency = eur
|
>>> move.currency = eur
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ Send products to Belgium::
|
|||||||
>>> shipment.click('wait')
|
>>> shipment.click('wait')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -161,7 +161,7 @@ Send products to particular to France::
|
|||||||
>>> shipment.click('wait')
|
>>> shipment.click('wait')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -205,7 +205,7 @@ Send products to US::
|
|||||||
>>> shipment.click('wait')
|
>>> shipment.click('wait')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -229,7 +229,7 @@ Send returned products to France::
|
|||||||
>>> move.currency = eur
|
>>> move.currency = eur
|
||||||
>>> shipment.click('wait')
|
>>> shipment.click('wait')
|
||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ Ship twice 10 unit of the product::
|
|||||||
>>> shipment1.click('assign_force')
|
>>> shipment1.click('assign_force')
|
||||||
>>> shipment1.click('pick')
|
>>> shipment1.click('pick')
|
||||||
>>> shipment1.click('pack')
|
>>> shipment1.click('pack')
|
||||||
>>> shipment1.click('done')
|
>>> shipment1.click('do')
|
||||||
>>> shipment1.state
|
>>> shipment1.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -121,7 +121,7 @@ Ship twice 10 unit of the product::
|
|||||||
>>> shipment2.click('assign_force')
|
>>> shipment2.click('assign_force')
|
||||||
>>> shipment2.click('pick')
|
>>> shipment2.click('pick')
|
||||||
>>> shipment2.click('pack')
|
>>> shipment2.click('pack')
|
||||||
>>> shipment2.click('done')
|
>>> shipment2.click('do')
|
||||||
>>> shipment2.state
|
>>> shipment2.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -112,7 +112,7 @@ Ship 20 units of the product in two shipments::
|
|||||||
>>> shipment1.click('assign_force')
|
>>> shipment1.click('assign_force')
|
||||||
>>> shipment1.click('pick')
|
>>> shipment1.click('pick')
|
||||||
>>> shipment1.click('pack')
|
>>> shipment1.click('pack')
|
||||||
>>> shipment1.click('done')
|
>>> shipment1.click('do')
|
||||||
>>> shipment1.state
|
>>> shipment1.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -123,7 +123,7 @@ Ship 20 units of the product in two shipments::
|
|||||||
>>> shipment2.click('assign_force')
|
>>> shipment2.click('assign_force')
|
||||||
>>> shipment2.click('pick')
|
>>> shipment2.click('pick')
|
||||||
>>> shipment2.click('pack')
|
>>> shipment2.click('pack')
|
||||||
>>> shipment2.click('done')
|
>>> shipment2.click('do')
|
||||||
>>> shipment2.state
|
>>> shipment2.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ class _ShipmentOutMixin(_ShipmentMixin):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Carriage = pool.get('stock.shipment.carriage')
|
Carriage = pool.get('stock.shipment.carriage')
|
||||||
has_cost_sale = hasattr(Carriage, 'cost_sale')
|
has_cost_sale = hasattr(Carriage, 'cost_sale')
|
||||||
@@ -197,7 +197,7 @@ class _ShipmentOutMixin(_ShipmentMixin):
|
|||||||
carriage.cost_sale_currency_used)
|
carriage.cost_sale_currency_used)
|
||||||
carriages.append(carriage)
|
carriages.append(carriage)
|
||||||
Carriage.save(carriages)
|
Carriage.save(carriages)
|
||||||
super().done(shipments)
|
super().do(shipments)
|
||||||
|
|
||||||
|
|
||||||
class ShipmentOut(_ShipmentOutMixin, metaclass=PoolMeta):
|
class ShipmentOut(_ShipmentOutMixin, metaclass=PoolMeta):
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ Send products::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -187,7 +187,7 @@ Send products::
|
|||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'packed'
|
'packed'
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ Send products::
|
|||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'packed'
|
'packed'
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ Ship in two steps::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -155,7 +155,7 @@ Ship in two steps::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ Transfer 1 product between warehouses::
|
|||||||
>>> accounts['stock'].balance
|
>>> accounts['stock'].balance
|
||||||
Decimal('0.00')
|
Decimal('0.00')
|
||||||
|
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> accounts['stock'].reload()
|
>>> accounts['stock'].reload()
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ Transfer 1 product between warehouses::
|
|||||||
>>> move.cost_price
|
>>> move.cost_price
|
||||||
Decimal('90.0000')
|
Decimal('90.0000')
|
||||||
|
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> move, = shipment.incoming_moves
|
>>> move, = shipment.incoming_moves
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ Receive partial shipment::
|
|||||||
... m.product: m for m in shipment.incoming_moves}
|
... m.product: m for m in shipment.incoming_moves}
|
||||||
>>> product2move[product2].quantity = 2.0
|
>>> product2move[product2].quantity = 2.0
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -215,7 +215,7 @@ Ship partially::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
* Rename 'done' button to 'do'
|
||||||
* Fill production number only in waiting state
|
* Fill production number only in waiting state
|
||||||
|
|
||||||
Version 7.0.0 - 2023-10-30
|
Version 7.0.0 - 2023-10-30
|
||||||
|
|||||||
@@ -228,7 +228,7 @@ class Production(ShipmentAssignMixin, Workflow, ModelSQL, ModelView):
|
|||||||
'invisible': Eval('state') != 'assigned',
|
'invisible': Eval('state') != 'assigned',
|
||||||
'depends': ['state'],
|
'depends': ['state'],
|
||||||
},
|
},
|
||||||
'done': {
|
'do': {
|
||||||
'invisible': Eval('state') != 'running',
|
'invisible': Eval('state') != 'running',
|
||||||
'depends': ['state'],
|
'depends': ['state'],
|
||||||
},
|
},
|
||||||
@@ -772,7 +772,7 @@ class Production(ShipmentAssignMixin, Workflow, ModelSQL, ModelView):
|
|||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@set_employee('done_by')
|
@set_employee('done_by')
|
||||||
def done(cls, productions):
|
def do(cls, productions):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Move = pool.get('stock.move')
|
Move = pool.get('stock.move')
|
||||||
Date = pool.get('ir.date')
|
Date = pool.get('ir.date')
|
||||||
@@ -873,7 +873,7 @@ class Production_Lot(metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
def done(cls, productions):
|
def do(cls, productions):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Lot = pool.get('stock.lot')
|
Lot = pool.get('stock.lot')
|
||||||
Move = pool.get('stock.move')
|
Move = pool.get('stock.move')
|
||||||
@@ -888,4 +888,4 @@ class Production_Lot(metaclass=PoolMeta):
|
|||||||
moves.append(move)
|
moves.append(move)
|
||||||
Lot.save(lots)
|
Lot.save(lots)
|
||||||
Move.save(moves)
|
Move.save(moves)
|
||||||
super().done(productions)
|
super().do(productions)
|
||||||
|
|||||||
@@ -242,8 +242,8 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
|
|
||||||
<record model="ir.model.button" id="production_done_button">
|
<record model="ir.model.button" id="production_done_button">
|
||||||
<field name="model">production</field>
|
<field name="model">production</field>
|
||||||
<field name="name">done</field>
|
<field name="name">do</field>
|
||||||
<field name="string">Done</field>
|
<field name="string">Complete</field>
|
||||||
<field name="confirm">Are you sure you want to complete the production?</field>
|
<field name="confirm">Are you sure you want to complete the production?</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ Do the production::
|
|||||||
{'done'}
|
{'done'}
|
||||||
>>> for input_ in production.inputs:
|
>>> for input_ in production.inputs:
|
||||||
... assertEqual(input_.effective_date, today)
|
... assertEqual(input_.effective_date, today)
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
>>> output, = production.outputs
|
>>> output, = production.outputs
|
||||||
>>> output.state
|
>>> output.state
|
||||||
'done'
|
'done'
|
||||||
@@ -197,7 +197,7 @@ Make a production with effective date yesterday and running the day before::
|
|||||||
>>> production.reload()
|
>>> production.reload()
|
||||||
>>> for input_ in production.inputs:
|
>>> for input_ in production.inputs:
|
||||||
... assertEqual(input_.effective_date, before_yesterday)
|
... assertEqual(input_.effective_date, before_yesterday)
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
>>> production.reload()
|
>>> production.reload()
|
||||||
>>> output, = production.outputs
|
>>> output, = production.outputs
|
||||||
>>> assertEqual(output.effective_date, yesterday)
|
>>> assertEqual(output.effective_date, yesterday)
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ Make a production::
|
|||||||
>>> production.click('wait')
|
>>> production.click('wait')
|
||||||
>>> production.click('assign_force')
|
>>> production.click('assign_force')
|
||||||
>>> production.click('run')
|
>>> production.click('run')
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
|
|
||||||
Check output price::
|
Check output price::
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ Make a production::
|
|||||||
>>> production.click('wait')
|
>>> production.click('wait')
|
||||||
>>> production.click('assign_force')
|
>>> production.click('assign_force')
|
||||||
>>> production.click('run')
|
>>> production.click('run')
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
>>> production.state
|
>>> production.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ Make a production::
|
|||||||
>>> production.click('wait')
|
>>> production.click('wait')
|
||||||
>>> production.click('assign_force')
|
>>> production.click('assign_force')
|
||||||
>>> production.click('run')
|
>>> production.click('run')
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
>>> production.state
|
>>> production.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ Make a production::
|
|||||||
>>> output.quantity = 2
|
>>> output.quantity = 2
|
||||||
>>> output.save()
|
>>> output.save()
|
||||||
>>> _ = output.duplicate()
|
>>> _ = output.duplicate()
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
|
|
||||||
Check output price::
|
Check output price::
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ Make a production with 2 unused component::
|
|||||||
>>> output.currency = company.currency
|
>>> output.currency = company.currency
|
||||||
>>> output.from_location = production.location
|
>>> output.from_location = production.location
|
||||||
>>> output.to_location = production.warehouse.storage_location
|
>>> output.to_location = production.warehouse.storage_location
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
|
|
||||||
Check output price::
|
Check output price::
|
||||||
|
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ Create outputs including waste products::
|
|||||||
>>> waste_output.product = product
|
>>> waste_output.product = product
|
||||||
>>> waste_output.from_location = production.location
|
>>> waste_output.from_location = production.location
|
||||||
>>> waste_output.to_location = lost_found_loc
|
>>> waste_output.to_location = lost_found_loc
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
>>> production.cost
|
>>> production.cost
|
||||||
Decimal('20.0000')
|
Decimal('20.0000')
|
||||||
>>> output, = [o for o in production.outputs
|
>>> output, = [o for o in production.outputs
|
||||||
|
|||||||
@@ -56,6 +56,6 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<button name="wait"/>
|
<button name="wait"/>
|
||||||
<button name="assign_wizard" icon="tryton-forward"/>
|
<button name="assign_wizard" icon="tryton-forward"/>
|
||||||
<button name="run" icon="tryton-forward"/>
|
<button name="run" icon="tryton-forward"/>
|
||||||
<button name="done" icon="tryton-forward"/>
|
<button name="do" icon="tryton-forward"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ class Production(metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
def done(cls, productions):
|
def do(cls, productions):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Warning = pool.get('res.user.warning')
|
Warning = pool.get('res.user.warning')
|
||||||
|
|
||||||
@@ -242,4 +242,4 @@ class Production(metaclass=PoolMeta):
|
|||||||
warning_name,
|
warning_name,
|
||||||
gettext('production_outsourcing.msg_pending_purchase_done',
|
gettext('production_outsourcing.msg_pending_purchase_done',
|
||||||
productions=names))
|
productions=names))
|
||||||
super(Production, cls).done(productions)
|
super().do(productions)
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ Try to do the production with pending purchase::
|
|||||||
>>> production.click('wait')
|
>>> production.click('wait')
|
||||||
>>> production.click('assign_force')
|
>>> production.click('assign_force')
|
||||||
>>> production.click('run')
|
>>> production.click('run')
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
PurchaseWarning: ...
|
PurchaseWarning: ...
|
||||||
@@ -161,4 +161,4 @@ Validate the purchase::
|
|||||||
|
|
||||||
Do the production::
|
Do the production::
|
||||||
|
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ class Production(metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
def done(cls, productions):
|
def do(cls, productions):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Work = pool.get('production.work')
|
Work = pool.get('production.work')
|
||||||
for production in productions:
|
for production in productions:
|
||||||
@@ -104,7 +104,7 @@ class Production(metaclass=PoolMeta):
|
|||||||
gettext('production_work.msg_do_finished_work',
|
gettext('production_work.msg_do_finished_work',
|
||||||
production=production.rec_name,
|
production=production.rec_name,
|
||||||
work=work.rec_name))
|
work=work.rec_name))
|
||||||
super(Production, cls).done(productions)
|
super().do(productions)
|
||||||
Work.set_state([w for p in productions for w in p.works])
|
Work.set_state([w for p in productions for w in p.works])
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ Check production cost::
|
|||||||
|
|
||||||
Do the production::
|
Do the production::
|
||||||
|
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
>>> production.state
|
>>> production.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -107,8 +107,8 @@ class ShipmentInReturn(metaclass=PoolMeta):
|
|||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@process_purchase('moves')
|
@process_purchase('moves')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
super(ShipmentInReturn, cls).done(shipments)
|
super().do(shipments)
|
||||||
|
|
||||||
|
|
||||||
def process_purchase_move(without_shipment=False):
|
def process_purchase_move(without_shipment=False):
|
||||||
|
|||||||
@@ -263,7 +263,7 @@ Validate Shipments::
|
|||||||
>>> shipment.save()
|
>>> shipment.save()
|
||||||
>>> assertEqual(shipment.origins, purchase.rec_name)
|
>>> assertEqual(shipment.origins, purchase.rec_name)
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> purchase.reload()
|
>>> purchase.reload()
|
||||||
>>> purchase.shipment_state
|
>>> purchase.shipment_state
|
||||||
'received'
|
'received'
|
||||||
@@ -345,7 +345,7 @@ Check Return Shipments::
|
|||||||
>>> move_return.quantity
|
>>> move_return.quantity
|
||||||
4.0
|
4.0
|
||||||
>>> ship_return.click('assign_try')
|
>>> ship_return.click('assign_try')
|
||||||
>>> ship_return.click('done')
|
>>> ship_return.click('do')
|
||||||
>>> ship_return.state
|
>>> ship_return.state
|
||||||
'done'
|
'done'
|
||||||
>>> return_.reload()
|
>>> return_.reload()
|
||||||
@@ -408,14 +408,14 @@ Checking Shipments::
|
|||||||
... incoming_move = Move(id=move.id)
|
... incoming_move = Move(id=move.id)
|
||||||
... mix_shipment.incoming_moves.append(incoming_move)
|
... mix_shipment.incoming_moves.append(incoming_move)
|
||||||
>>> mix_shipment.click('receive')
|
>>> mix_shipment.click('receive')
|
||||||
>>> mix_shipment.click('done')
|
>>> mix_shipment.click('do')
|
||||||
>>> mix.reload()
|
>>> mix.reload()
|
||||||
>>> len(mix.shipments)
|
>>> len(mix.shipments)
|
||||||
1
|
1
|
||||||
|
|
||||||
>>> mix_return.click('wait')
|
>>> mix_return.click('wait')
|
||||||
>>> mix_return.click('assign_try')
|
>>> mix_return.click('assign_try')
|
||||||
>>> mix_return.click('done')
|
>>> mix_return.click('do')
|
||||||
>>> move_return, = mix_return.moves
|
>>> move_return, = mix_return.moves
|
||||||
>>> move_return.product.rec_name
|
>>> move_return.product.rec_name
|
||||||
'product'
|
'product'
|
||||||
@@ -475,14 +475,14 @@ Checking Shipments::
|
|||||||
... incoming_move = Move(id=move.id)
|
... incoming_move = Move(id=move.id)
|
||||||
... mix_shipment.incoming_moves.append(incoming_move)
|
... mix_shipment.incoming_moves.append(incoming_move)
|
||||||
>>> mix_shipment.click('receive')
|
>>> mix_shipment.click('receive')
|
||||||
>>> mix_shipment.click('done')
|
>>> mix_shipment.click('do')
|
||||||
>>> mix.reload()
|
>>> mix.reload()
|
||||||
>>> len(mix.shipments)
|
>>> len(mix.shipments)
|
||||||
1
|
1
|
||||||
|
|
||||||
>>> mix_return.click('wait')
|
>>> mix_return.click('wait')
|
||||||
>>> mix_return.click('assign_try')
|
>>> mix_return.click('assign_try')
|
||||||
>>> mix_return.click('done')
|
>>> mix_return.click('do')
|
||||||
>>> move_return, = mix_return.moves
|
>>> move_return, = mix_return.moves
|
||||||
>>> move_return.product.rec_name
|
>>> move_return.product.rec_name
|
||||||
'product'
|
'product'
|
||||||
@@ -553,7 +553,7 @@ linked to invoices::
|
|||||||
>>> for move in shipment.inventory_moves:
|
>>> for move in shipment.inventory_moves:
|
||||||
... move.quantity = 5.0
|
... move.quantity = 5.0
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> purchase.reload()
|
>>> purchase.reload()
|
||||||
>>> invoice, = purchase.invoices
|
>>> invoice, = purchase.invoices
|
||||||
>>> invoice_line, = invoice.lines
|
>>> invoice_line, = invoice.lines
|
||||||
@@ -587,7 +587,7 @@ correctly linked to invoices::
|
|||||||
>>> for move in shipment.inventory_moves:
|
>>> for move in shipment.inventory_moves:
|
||||||
... move.quantity = 8.0
|
... move.quantity = 8.0
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> purchase.reload()
|
>>> purchase.reload()
|
||||||
>>> invoice, = purchase.invoices
|
>>> invoice, = purchase.invoices
|
||||||
>>> invoice_line, = invoice.lines
|
>>> invoice_line, = invoice.lines
|
||||||
|
|||||||
+1
-1
@@ -157,7 +157,7 @@ Receive 4 products::
|
|||||||
>>> move, = shipment.incoming_moves
|
>>> move, = shipment.incoming_moves
|
||||||
>>> move.unit_price
|
>>> move.unit_price
|
||||||
Decimal('5.7500')
|
Decimal('5.7500')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> stock_in.reload()
|
>>> stock_in.reload()
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class Production(ControlledMixin, metaclass=PoolMeta):
|
|||||||
pattern['company'] = self.company.id
|
pattern['company'] = self.company.id
|
||||||
if operation == 'run':
|
if operation == 'run':
|
||||||
pattern['products'] = {m.product.id for m in self.inputs}
|
pattern['products'] = {m.product.id for m in self.inputs}
|
||||||
elif operation == 'done':
|
elif operation == 'do':
|
||||||
pattern['products'] = {m.product.id for m in self.outputs}
|
pattern['products'] = {m.product.id for m in self.outputs}
|
||||||
return pattern
|
return pattern
|
||||||
|
|
||||||
@@ -27,6 +27,6 @@ class Production(ControlledMixin, metaclass=PoolMeta):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@ControlledMixin.control('done', 'quality.wizard_production_inspect_done')
|
@ControlledMixin.control('do', 'quality.wizard_production_inspect_do')
|
||||||
def done(cls, productions):
|
def do(cls, productions):
|
||||||
return super().done(productions)
|
return super().do(productions)
|
||||||
|
|||||||
@@ -167,17 +167,17 @@ class Control(DeactivableMixin, MatchMixin, ModelSQL, ModelView):
|
|||||||
|
|
||||||
operations = fields.MultiSelection([
|
operations = fields.MultiSelection([
|
||||||
('stock.shipment.in:receive', "Supplier Shipment Received"),
|
('stock.shipment.in:receive', "Supplier Shipment Received"),
|
||||||
('stock.shipment.in:done', "Supplier Shipment Done"),
|
('stock.shipment.in:do', "Supplier Shipment Done"),
|
||||||
('stock.shipment.out:pick', "Customer Shipment Picked"),
|
('stock.shipment.out:pick', "Customer Shipment Picked"),
|
||||||
('stock.shipment.out:pack', "Customer Shipment Packed"),
|
('stock.shipment.out:pack', "Customer Shipment Packed"),
|
||||||
('stock.shipment.out.return:receive',
|
('stock.shipment.out.return:receive',
|
||||||
"Customer Shipment Return Received"),
|
"Customer Shipment Return Received"),
|
||||||
('stock.shipment.out.return:done',
|
('stock.shipment.out.return:do',
|
||||||
"Customer Shipment Return Done"),
|
"Customer Shipment Return Done"),
|
||||||
('stock.shipment.internal:ship', "Internal Shipment Shipped"),
|
('stock.shipment.internal:ship', "Internal Shipment Shipped"),
|
||||||
('stock.shipment.internal:done', "Internal Shipment Done"),
|
('stock.shipment.internal:do', "Internal Shipment Done"),
|
||||||
('production:run', "Production Run"),
|
('production:run', "Production Run"),
|
||||||
('production:done', "Production Done"),
|
('production:do', "Production Done"),
|
||||||
], "Operations",
|
], "Operations",
|
||||||
help="The operations for which the control is performed.")
|
help="The operations for which the control is performed.")
|
||||||
frequency = fields.Float(
|
frequency = fields.Float(
|
||||||
@@ -203,6 +203,32 @@ class Control(DeactivableMixin, MatchMixin, ModelSQL, ModelView):
|
|||||||
points = fields.One2Many(
|
points = fields.One2Many(
|
||||||
'quality.control.point', 'control', "Points", required=True)
|
'quality.control.point', 'control', "Points", required=True)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def __register__(cls, module):
|
||||||
|
table = cls.__table__()
|
||||||
|
transaction = Transaction()
|
||||||
|
cursor = transaction.connection.cursor()
|
||||||
|
update = transaction.connection.cursor()
|
||||||
|
|
||||||
|
super().__register__(module)
|
||||||
|
|
||||||
|
# Migration from 7.0: rename done button to do
|
||||||
|
for old, new in [
|
||||||
|
('stock.shipment.in:done', 'stock.shipment.in:do'),
|
||||||
|
('stock.shipment.out.return:done',
|
||||||
|
'stock.shipment.out.return:do'),
|
||||||
|
('stock.shipment.internal:done',
|
||||||
|
'stock.shipment.internal:do'),
|
||||||
|
('production:done', 'production:do'),
|
||||||
|
]:
|
||||||
|
cursor.execute(*table.select(
|
||||||
|
table.id, table.operations,
|
||||||
|
where=table.operations.like(f'%{old}%')))
|
||||||
|
for id_, operations in cursor:
|
||||||
|
update.execute(*table.update(
|
||||||
|
[table.operations],
|
||||||
|
operations.replace(old, new)))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def default_frequency(cls):
|
def default_frequency(cls):
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ class ShipmentIn(ControlledShipmentMixin, metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@ControlledMixin.control(
|
@ControlledMixin.control(
|
||||||
'done', 'quality.wizard_stock_shipment_in_inspect_done')
|
'do', 'quality.wizard_stock_shipment_in_inspect_do')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
return super().done(shipments)
|
return super().do(shipments)
|
||||||
|
|
||||||
|
|
||||||
class ShipmentOut(ControlledShipmentMixin, metaclass=PoolMeta):
|
class ShipmentOut(ControlledShipmentMixin, metaclass=PoolMeta):
|
||||||
@@ -66,9 +66,9 @@ class ShipmentOutReturn(ControlledShipmentMixin, metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@ControlledMixin.control(
|
@ControlledMixin.control(
|
||||||
'done', 'quality.wizard_stock_shipment_out_return_inspect_done')
|
'do', 'quality.wizard_stock_shipment_out_return_inspect_do')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
return super().done(shipments)
|
return super().do(shipments)
|
||||||
|
|
||||||
|
|
||||||
class ShipmentInternal(ControlledShipmentMixin, metaclass=PoolMeta):
|
class ShipmentInternal(ControlledShipmentMixin, metaclass=PoolMeta):
|
||||||
@@ -84,6 +84,6 @@ class ShipmentInternal(ControlledShipmentMixin, metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@ControlledMixin.control(
|
@ControlledMixin.control(
|
||||||
'done', 'quality.wizard_stock_shipment_internal_inspect_done')
|
'do', 'quality.wizard_stock_shipment_internal_inspect_do')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
return super().done(shipments)
|
return super().do(shipments)
|
||||||
|
|||||||
@@ -14,15 +14,15 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<field name="action" ref="wizard_stock_shipment_in_inspect_receive"/>
|
<field name="action" ref="wizard_stock_shipment_in_inspect_receive"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.action.wizard" id="wizard_stock_shipment_in_inspect_done">
|
<record model="ir.action.wizard" id="wizard_stock_shipment_in_inspect_do">
|
||||||
<field name="name">Inspect Done</field>
|
<field name="name">Inspect Done</field>
|
||||||
<field name="wiz_name">quality.inspect</field>
|
<field name="wiz_name">quality.inspect</field>
|
||||||
<field name="model">stock.shipment.in</field>
|
<field name="model">stock.shipment.in</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.keyword" id="wizard_stock_shipment_in_inspect_done_keyword1">
|
<record model="ir.action.keyword" id="wizard_stock_shipment_in_inspect_do_keyword1">
|
||||||
<field name="keyword">form_action</field>
|
<field name="keyword">form_action</field>
|
||||||
<field name="model">stock.shipment.in,-1</field>
|
<field name="model">stock.shipment.in,-1</field>
|
||||||
<field name="action" ref="wizard_stock_shipment_in_inspect_done"/>
|
<field name="action" ref="wizard_stock_shipment_in_inspect_do"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.action.keyword" id="act_quality_inspection_form_relate_keyword_stock_shipment_in">
|
<record model="ir.action.keyword" id="act_quality_inspection_form_relate_keyword_stock_shipment_in">
|
||||||
@@ -70,15 +70,15 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<field name="action" ref="wizard_stock_shipment_out_return_inspect_receive"/>
|
<field name="action" ref="wizard_stock_shipment_out_return_inspect_receive"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.action.wizard" id="wizard_stock_shipment_out_return_inspect_done">
|
<record model="ir.action.wizard" id="wizard_stock_shipment_out_return_inspect_do">
|
||||||
<field name="name">Inspect Done</field>
|
<field name="name">Inspect Done</field>
|
||||||
<field name="wiz_name">quality.inspect</field>
|
<field name="wiz_name">quality.inspect</field>
|
||||||
<field name="model">stock.shipment.out.return</field>
|
<field name="model">stock.shipment.out.return</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.keyword" id="wizard_stock_shipment_out_return_inspect_done_keyword1">
|
<record model="ir.action.keyword" id="wizard_stock_shipment_out_return_inspect_do_keyword1">
|
||||||
<field name="keyword">form_action</field>
|
<field name="keyword">form_action</field>
|
||||||
<field name="model">stock.shipment.out.return,-1</field>
|
<field name="model">stock.shipment.out.return,-1</field>
|
||||||
<field name="action" ref="wizard_stock_shipment_out_return_inspect_done"/>
|
<field name="action" ref="wizard_stock_shipment_out_return_inspect_do"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.action.keyword" id="act_quality_inspection_form_relate_keyword_stock_shipment_out_return">
|
<record model="ir.action.keyword" id="act_quality_inspection_form_relate_keyword_stock_shipment_out_return">
|
||||||
@@ -98,15 +98,15 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<field name="action" ref="wizard_stock_shipment_internal_inspect_ship"/>
|
<field name="action" ref="wizard_stock_shipment_internal_inspect_ship"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.action.wizard" id="wizard_stock_shipment_internal_inspect_done">
|
<record model="ir.action.wizard" id="wizard_stock_shipment_internal_inspect_do">
|
||||||
<field name="name">Inspect Done</field>
|
<field name="name">Inspect Done</field>
|
||||||
<field name="wiz_name">quality.inspect</field>
|
<field name="wiz_name">quality.inspect</field>
|
||||||
<field name="model">stock.shipment.internal</field>
|
<field name="model">stock.shipment.internal</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.keyword" id="wizard_stock_shipment_internal_inspect_done_keyword1">
|
<record model="ir.action.keyword" id="wizard_stock_shipment_internal_inspect_do_keyword1">
|
||||||
<field name="keyword">form_action</field>
|
<field name="keyword">form_action</field>
|
||||||
<field name="model">stock.shipment.internal,-1</field>
|
<field name="model">stock.shipment.internal,-1</field>
|
||||||
<field name="action" ref="wizard_stock_shipment_internal_inspect_done"/>
|
<field name="action" ref="wizard_stock_shipment_internal_inspect_do"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.action.keyword" id="act_quality_inspection_form_relate_keyword_stock_shipment_internal">
|
<record model="ir.action.keyword" id="act_quality_inspection_form_relate_keyword_stock_shipment_internal">
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ class ShipmentOut(metaclass=PoolMeta):
|
|||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@process_sale('outgoing_moves')
|
@process_sale('outgoing_moves')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
super(ShipmentOut, cls).done(shipments)
|
super().do(shipments)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
|
|||||||
@@ -260,7 +260,7 @@ Validate Shipments::
|
|||||||
>>> shipment.click('assign_try')
|
>>> shipment.click('assign_try')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|
||||||
Open customer invoice::
|
Open customer invoice::
|
||||||
|
|
||||||
@@ -356,7 +356,7 @@ Ship 3 products::
|
|||||||
>>> shipment.click('assign_try')
|
>>> shipment.click('assign_try')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -496,7 +496,7 @@ Checking Shipments::
|
|||||||
>>> mix_shipment.click('assign_try')
|
>>> mix_shipment.click('assign_try')
|
||||||
>>> mix_shipment.click('pick')
|
>>> mix_shipment.click('pick')
|
||||||
>>> mix_shipment.click('pack')
|
>>> mix_shipment.click('pack')
|
||||||
>>> mix_shipment.click('done')
|
>>> mix_shipment.click('do')
|
||||||
>>> move_shipment, = mix_shipment.outgoing_moves
|
>>> move_shipment, = mix_shipment.outgoing_moves
|
||||||
>>> move_shipment.product.rec_name
|
>>> move_shipment.product.rec_name
|
||||||
'product'
|
'product'
|
||||||
@@ -644,7 +644,7 @@ to invoices::
|
|||||||
>>> shipment.click('assign_try')
|
>>> shipment.click('assign_try')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> sale.reload()
|
>>> sale.reload()
|
||||||
>>> invoice, = sale.invoices
|
>>> invoice, = sale.invoices
|
||||||
>>> invoice_line, = invoice.lines
|
>>> invoice_line, = invoice.lines
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ Make a partial shipment::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|
||||||
>>> sale.reload()
|
>>> sale.reload()
|
||||||
>>> len(sale.shipments)
|
>>> len(sale.shipments)
|
||||||
@@ -152,7 +152,7 @@ Ship backorder::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|
||||||
>>> sale.reload()
|
>>> sale.reload()
|
||||||
>>> len(sale.shipments)
|
>>> len(sale.shipments)
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ Ship the gift card::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
MoveGiftCardValidationError: ...
|
MoveGiftCardValidationError: ...
|
||||||
@@ -126,4 +126,4 @@ Ship the gift card::
|
|||||||
>>> gift_card.value
|
>>> gift_card.value
|
||||||
Decimal('20.00')
|
Decimal('20.00')
|
||||||
>>> move.save()
|
>>> move.save()
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|||||||
@@ -216,12 +216,12 @@ class ShipmentOut(ShipmentCostSaleMixin, metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
for shipment in shipments:
|
for shipment in shipments:
|
||||||
shipment.cost_sale = shipment.cost_sale_used
|
shipment.cost_sale = shipment.cost_sale_used
|
||||||
shipment.cost_sale_currency = shipment.cost_sale_currency_used
|
shipment.cost_sale_currency = shipment.cost_sale_currency_used
|
||||||
cls.save(shipments)
|
cls.save(shipments)
|
||||||
super().done(shipments)
|
super().do(shipments)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ Send products::
|
|||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'packed'
|
'packed'
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -185,7 +185,7 @@ Send missing products::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> sale.reload()
|
>>> sale.reload()
|
||||||
>>> len(sale.invoices)
|
>>> len(sale.invoices)
|
||||||
2
|
2
|
||||||
@@ -274,7 +274,7 @@ Send products::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -318,7 +318,7 @@ Send products::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ Sell product with no shipment cost::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> move, = shipment.outgoing_moves
|
>>> move, = shipment.outgoing_moves
|
||||||
@@ -145,7 +145,7 @@ Sell product with cost on shipment::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> move, = shipment.outgoing_moves
|
>>> move, = shipment.outgoing_moves
|
||||||
@@ -180,7 +180,7 @@ Sell product with cost on order::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> move, = shipment.outgoing_moves
|
>>> move, = shipment.outgoing_moves
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ Check the shipments::
|
|||||||
... shipment.click('assign_try')
|
... shipment.click('assign_try')
|
||||||
... shipment.click('pick')
|
... shipment.click('pick')
|
||||||
... shipment.click('pack')
|
... shipment.click('pack')
|
||||||
... shipment.click('done')
|
... shipment.click('do')
|
||||||
|
|
||||||
Now we'll use the same scenario with the grouped customer::
|
Now we'll use the same scenario with the grouped customer::
|
||||||
|
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ Over ship 12 products::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|
||||||
No new shipment as shipped inside tolerance::
|
No new shipment as shipped inside tolerance::
|
||||||
|
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ Under ship 5 products::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|
||||||
Under ship 4 products::
|
Under ship 4 products::
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@ Under ship 4 products::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|
||||||
No new shipment as shipped inside tolerance::
|
No new shipment as shipped inside tolerance::
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ class ShipmentIn(metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
super(ShipmentIn, cls).done(shipments)
|
super().do(shipments)
|
||||||
|
|
||||||
# Assigned sale move lines
|
# Assigned sale move lines
|
||||||
for shipment in shipments:
|
for shipment in shipments:
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ Receive 100 products::
|
|||||||
>>> shipment.incoming_moves.append(move)
|
>>> shipment.incoming_moves.append(move)
|
||||||
>>> move.quantity = 100
|
>>> move.quantity = 100
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> set_user(sale_user)
|
>>> set_user(sale_user)
|
||||||
@@ -251,7 +251,7 @@ not create a new purchase request::
|
|||||||
>>> changing_template.save()
|
>>> changing_template.save()
|
||||||
|
|
||||||
>>> set_user(stock_user)
|
>>> set_user(stock_user)
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> set_user(purchase_user)
|
>>> set_user(purchase_user)
|
||||||
>>> len(PurchaseRequest.find([('product', '=', changing_product.id)]))
|
>>> len(PurchaseRequest.find([('product', '=', changing_product.id)]))
|
||||||
0
|
0
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
* Rename 'done' button to 'do'
|
||||||
|
|
||||||
Version 7.0.0 - 2023-10-30
|
Version 7.0.0 - 2023-10-30
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ class ShipmentDrop(
|
|||||||
'invisible': Eval('state') != 'waiting',
|
'invisible': Eval('state') != 'waiting',
|
||||||
'depends': ['state'],
|
'depends': ['state'],
|
||||||
},
|
},
|
||||||
'done': {
|
'do': {
|
||||||
'invisible': Eval('state') != 'shipped',
|
'invisible': Eval('state') != 'shipped',
|
||||||
'depends': ['state'],
|
'depends': ['state'],
|
||||||
},
|
},
|
||||||
@@ -504,7 +504,7 @@ class ShipmentDrop(
|
|||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@process_sale('customer_moves')
|
@process_sale('customer_moves')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Move = pool.get('stock.move')
|
Move = pool.get('stock.move')
|
||||||
Date = pool.get('ir.date')
|
Date = pool.get('ir.date')
|
||||||
|
|||||||
@@ -163,8 +163,8 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
|
|
||||||
<record model="ir.model.button" id="shipment_drop_done_button">
|
<record model="ir.model.button" id="shipment_drop_done_button">
|
||||||
<field name="model">stock.shipment.drop</field>
|
<field name="model">stock.shipment.drop</field>
|
||||||
<field name="name">done</field>
|
<field name="name">do</field>
|
||||||
<field name="string">Done</field>
|
<field name="string">Complete</field>
|
||||||
<field name="confirm">Are you sure you want to complete the shipment?</field>
|
<field name="confirm">Are you sure you want to complete the shipment?</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ Receiving only 100 products::
|
|||||||
... if s.state == 'shipped']
|
... if s.state == 'shipped']
|
||||||
|
|
||||||
>>> set_user(stock_user)
|
>>> set_user(stock_user)
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> move, = shipment.customer_moves
|
>>> move, = shipment.customer_moves
|
||||||
@@ -364,7 +364,7 @@ from stock::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|
||||||
>>> set_user(sale_user)
|
>>> set_user(sale_user)
|
||||||
>>> sale.reload()
|
>>> sale.reload()
|
||||||
|
|||||||
@@ -35,6 +35,6 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<button name="draft"/>
|
<button name="draft"/>
|
||||||
<button name="wait" icon="tryton-forward"/>
|
<button name="wait" icon="tryton-forward"/>
|
||||||
<button name="ship" icon="tryton-forward"/>
|
<button name="ship" icon="tryton-forward"/>
|
||||||
<button name="done" icon="tryton-ok"/>
|
<button name="do" icon="tryton-ok"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -79,8 +79,8 @@ class Production(metaclass=PoolMeta):
|
|||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@process_sale_supply
|
@process_sale_supply
|
||||||
def done(cls, productions):
|
def do(cls, productions):
|
||||||
super().done(productions)
|
super().do(productions)
|
||||||
|
|
||||||
for production in productions:
|
for production in productions:
|
||||||
production.assign_supplied()
|
production.assign_supplied()
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ Start the production::
|
|||||||
|
|
||||||
Finish the production::
|
Finish the production::
|
||||||
|
|
||||||
>>> production.click('done')
|
>>> production.click('do')
|
||||||
|
|
||||||
>>> shipment.reload()
|
>>> shipment.reload()
|
||||||
>>> move, = shipment.outgoing_moves
|
>>> move, = shipment.outgoing_moves
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
* Rename 'done' button to 'do'
|
||||||
* Add location name fields to move
|
* Add location name fields to move
|
||||||
* Unify shipment assignation scheduled jobs
|
* Unify shipment assignation scheduled jobs
|
||||||
* Fill shipment number only in waiting state
|
* Fill shipment number only in waiting state
|
||||||
|
|||||||
+12
-12
@@ -477,7 +477,7 @@ class ShipmentIn(
|
|||||||
'invisible': Eval('state') != 'draft',
|
'invisible': Eval('state') != 'draft',
|
||||||
'depends': ['state'],
|
'depends': ['state'],
|
||||||
},
|
},
|
||||||
'done': {
|
'do': {
|
||||||
'invisible': Eval('state') != 'received',
|
'invisible': Eval('state') != 'received',
|
||||||
'depends': ['state'],
|
'depends': ['state'],
|
||||||
},
|
},
|
||||||
@@ -730,13 +730,13 @@ class ShipmentIn(
|
|||||||
to_do = [s for s in shipments
|
to_do = [s for s in shipments
|
||||||
if s.warehouse_storage == s.warehouse_input]
|
if s.warehouse_storage == s.warehouse_input]
|
||||||
if to_do:
|
if to_do:
|
||||||
cls.done(to_do)
|
cls.do(to_do)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@set_employee('done_by')
|
@set_employee('done_by')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Move = pool.get('stock.move')
|
Move = pool.get('stock.move')
|
||||||
Date = pool.get('ir.date')
|
Date = pool.get('ir.date')
|
||||||
@@ -898,7 +898,7 @@ class ShipmentInReturn(ShipmentAssignMixin, Workflow, ModelSQL, ModelView):
|
|||||||
'tryton-back', 'tryton-forward'),
|
'tryton-back', 'tryton-forward'),
|
||||||
'depends': ['state'],
|
'depends': ['state'],
|
||||||
},
|
},
|
||||||
'done': {
|
'do': {
|
||||||
'invisible': Eval('state') != 'assigned',
|
'invisible': Eval('state') != 'assigned',
|
||||||
'depends': ['state'],
|
'depends': ['state'],
|
||||||
},
|
},
|
||||||
@@ -1045,7 +1045,7 @@ class ShipmentInReturn(ShipmentAssignMixin, Workflow, ModelSQL, ModelView):
|
|||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@set_employee('done_by')
|
@set_employee('done_by')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Move = pool.get('stock.move')
|
Move = pool.get('stock.move')
|
||||||
Date = pool.get('ir.date')
|
Date = pool.get('ir.date')
|
||||||
@@ -1349,7 +1349,7 @@ class ShipmentOut(
|
|||||||
'depends': [
|
'depends': [
|
||||||
'state', 'warehouse_storage', 'warehouse_output'],
|
'state', 'warehouse_storage', 'warehouse_output'],
|
||||||
},
|
},
|
||||||
'done': {
|
'do': {
|
||||||
'invisible': Eval('state') != 'packed',
|
'invisible': Eval('state') != 'packed',
|
||||||
},
|
},
|
||||||
'assign_wizard': {
|
'assign_wizard': {
|
||||||
@@ -1682,7 +1682,7 @@ class ShipmentOut(
|
|||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@set_employee('done_by')
|
@set_employee('done_by')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Move = pool.get('stock.move')
|
Move = pool.get('stock.move')
|
||||||
Date = pool.get('ir.date')
|
Date = pool.get('ir.date')
|
||||||
@@ -1989,7 +1989,7 @@ class ShipmentOutReturn(
|
|||||||
'invisible': Eval('state') != 'draft',
|
'invisible': Eval('state') != 'draft',
|
||||||
'depends': ['state'],
|
'depends': ['state'],
|
||||||
},
|
},
|
||||||
'done': {
|
'do': {
|
||||||
'invisible': Eval('state') != 'received',
|
'invisible': Eval('state') != 'received',
|
||||||
'depends': ['state'],
|
'depends': ['state'],
|
||||||
},
|
},
|
||||||
@@ -2185,13 +2185,13 @@ class ShipmentOutReturn(
|
|||||||
to_do = [s for s in shipments
|
to_do = [s for s in shipments
|
||||||
if s.warehouse_storage == s.warehouse_input]
|
if s.warehouse_storage == s.warehouse_input]
|
||||||
if to_do:
|
if to_do:
|
||||||
cls.done(to_do)
|
cls.do(to_do)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@set_employee('done_by')
|
@set_employee('done_by')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Move = pool.get('stock.move')
|
Move = pool.get('stock.move')
|
||||||
Date = pool.get('ir.date')
|
Date = pool.get('ir.date')
|
||||||
@@ -2496,7 +2496,7 @@ class ShipmentInternal(
|
|||||||
| ~Eval('transit_location')),
|
| ~Eval('transit_location')),
|
||||||
'depends': ['state', 'transit_location'],
|
'depends': ['state', 'transit_location'],
|
||||||
},
|
},
|
||||||
'done': {
|
'do': {
|
||||||
'invisible': If(
|
'invisible': If(
|
||||||
~Eval('transit_location'),
|
~Eval('transit_location'),
|
||||||
Eval('state') != 'assigned',
|
Eval('state') != 'assigned',
|
||||||
@@ -2844,7 +2844,7 @@ class ShipmentInternal(
|
|||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@set_employee('done_by')
|
@set_employee('done_by')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Move = pool.get('stock.move')
|
Move = pool.get('stock.move')
|
||||||
Date = pool.get('ir.date')
|
Date = pool.get('ir.date')
|
||||||
|
|||||||
+10
-10
@@ -569,8 +569,8 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
|
|
||||||
<record model="ir.model.button" id="shipment_in_done_button">
|
<record model="ir.model.button" id="shipment_in_done_button">
|
||||||
<field name="model">stock.shipment.in</field>
|
<field name="model">stock.shipment.in</field>
|
||||||
<field name="name">done</field>
|
<field name="name">do</field>
|
||||||
<field name="string">Done</field>
|
<field name="string">Complete</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.model.access" id="access_shipment_out">
|
<record model="ir.model.access" id="access_shipment_out">
|
||||||
@@ -630,8 +630,8 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
|
|
||||||
<record model="ir.model.button" id="shipment_out_done_button">
|
<record model="ir.model.button" id="shipment_out_done_button">
|
||||||
<field name="model">stock.shipment.out</field>
|
<field name="model">stock.shipment.out</field>
|
||||||
<field name="name">done</field>
|
<field name="name">do</field>
|
||||||
<field name="string">Done</field>
|
<field name="string">Complete</field>
|
||||||
<field name="confirm">Are you sure you want to complete the shipment?</field>
|
<field name="confirm">Are you sure you want to complete the shipment?</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@@ -701,8 +701,8 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
|
|
||||||
<record model="ir.model.button" id="shipment_internal_done_button">
|
<record model="ir.model.button" id="shipment_internal_done_button">
|
||||||
<field name="model">stock.shipment.internal</field>
|
<field name="model">stock.shipment.internal</field>
|
||||||
<field name="name">done</field>
|
<field name="name">do</field>
|
||||||
<field name="string">Done</field>
|
<field name="string">Complete</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.model.button" id="shipment_internal_assign_try_button">
|
<record model="ir.model.button" id="shipment_internal_assign_try_button">
|
||||||
@@ -784,8 +784,8 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
|
|
||||||
<record model="ir.model.button" id="shipment_out_return_done_button">
|
<record model="ir.model.button" id="shipment_out_return_done_button">
|
||||||
<field name="model">stock.shipment.out.return</field>
|
<field name="model">stock.shipment.out.return</field>
|
||||||
<field name="name">done</field>
|
<field name="name">do</field>
|
||||||
<field name="string">Done</field>
|
<field name="string">Complete</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.model.access" id="access_shipment_in_return">
|
<record model="ir.model.access" id="access_shipment_in_return">
|
||||||
@@ -833,8 +833,8 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
|
|
||||||
<record model="ir.model.button" id="shipment_in_return_done_button">
|
<record model="ir.model.button" id="shipment_in_return_done_button">
|
||||||
<field name="model">stock.shipment.in.return</field>
|
<field name="model">stock.shipment.in.return</field>
|
||||||
<field name="name">done</field>
|
<field name="name">do</field>
|
||||||
<field name="string">Done</field>
|
<field name="string">Complete</field>
|
||||||
<field name="confirm">Are you sure you want to complete the shipment?</field>
|
<field name="confirm">Are you sure you want to complete the shipment?</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ Receive a bunch of products::
|
|||||||
>>> move.currency = company.currency
|
>>> move.currency = company.currency
|
||||||
>>> shipment_in.save()
|
>>> shipment_in.save()
|
||||||
>>> shipment_in.click('receive')
|
>>> shipment_in.click('receive')
|
||||||
>>> shipment_in.click('done')
|
>>> shipment_in.click('do')
|
||||||
|
|
||||||
Testing the report::
|
Testing the report::
|
||||||
|
|
||||||
@@ -114,7 +114,7 @@ Add two shipment lines of same product and go through the workflow::
|
|||||||
>>> shipment_out.click('assign_try')
|
>>> shipment_out.click('assign_try')
|
||||||
>>> shipment_out.click('pick')
|
>>> shipment_out.click('pick')
|
||||||
>>> shipment_out.click('pack')
|
>>> shipment_out.click('pack')
|
||||||
>>> shipment_out.click('done')
|
>>> shipment_out.click('do')
|
||||||
|
|
||||||
Testing the reports::
|
Testing the reports::
|
||||||
|
|
||||||
@@ -152,7 +152,7 @@ Create an internal shipment::
|
|||||||
>>> shipment_internal.save()
|
>>> shipment_internal.save()
|
||||||
>>> shipment_internal.click('wait')
|
>>> shipment_internal.click('wait')
|
||||||
>>> shipment_internal.click('assign_try')
|
>>> shipment_internal.click('assign_try')
|
||||||
>>> shipment_internal.click('done')
|
>>> shipment_internal.click('do')
|
||||||
|
|
||||||
Testing the report::
|
Testing the report::
|
||||||
|
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ Change inventory quantity and try to finish::
|
|||||||
|
|
||||||
>>> inventory_move, = shipment.inventory_moves
|
>>> inventory_move, = shipment.inventory_moves
|
||||||
>>> inventory_move.quantity = 11
|
>>> inventory_move.quantity = 11
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
ShipmentCheckQuantityWarning: ...
|
ShipmentCheckQuantityWarning: ...
|
||||||
@@ -100,7 +100,7 @@ Add extra product to inventory and try to finish::
|
|||||||
>>> move.quantity = 1
|
>>> move.quantity = 1
|
||||||
>>> move.from_location = input_loc
|
>>> move.from_location = input_loc
|
||||||
>>> move.to_location = storage_loc
|
>>> move.to_location = storage_loc
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
ShipmentCheckQuantityWarning: ...
|
ShipmentCheckQuantityWarning: ...
|
||||||
@@ -110,7 +110,7 @@ Add extra product to inventory and try to finish::
|
|||||||
|
|
||||||
Finish the shipment::
|
Finish the shipment::
|
||||||
|
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> len(shipment.incoming_moves)
|
>>> len(shipment.incoming_moves)
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ Create Internal Shipment from lost_found location::
|
|||||||
>>> lost_found_shipment.click('assign_try')
|
>>> lost_found_shipment.click('assign_try')
|
||||||
>>> lost_found_shipment.state
|
>>> lost_found_shipment.state
|
||||||
'assigned'
|
'assigned'
|
||||||
>>> lost_found_shipment.click('done')
|
>>> lost_found_shipment.click('do')
|
||||||
>>> lost_found_shipment.state
|
>>> lost_found_shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -129,7 +129,7 @@ Check that now we can finish the older shipment::
|
|||||||
>>> assertEqual(shipment.assigned_by, employee)
|
>>> assertEqual(shipment.assigned_by, employee)
|
||||||
>>> shipment.done_by
|
>>> shipment.done_by
|
||||||
|
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> assertEqual(shipment.done_by, employee)
|
>>> assertEqual(shipment.done_by, employee)
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ Create Internal Shipment with lead time::
|
|||||||
>>> shipment.outgoing_moves[0].state
|
>>> shipment.outgoing_moves[0].state
|
||||||
'done'
|
'done'
|
||||||
>>> assertEqual(shipment.outgoing_moves[0].effective_date, yesterday)
|
>>> assertEqual(shipment.outgoing_moves[0].effective_date, yesterday)
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.incoming_moves[0].state
|
>>> shipment.incoming_moves[0].state
|
||||||
'done'
|
'done'
|
||||||
>>> assertEqual(shipment.incoming_moves[0].effective_date, today)
|
>>> assertEqual(shipment.incoming_moves[0].effective_date, today)
|
||||||
|
|||||||
@@ -190,7 +190,7 @@ Ignore non assigned moves and pack shipment::
|
|||||||
|
|
||||||
Set the state as Done::
|
Set the state as Done::
|
||||||
|
|
||||||
>>> shipment_out.click('done')
|
>>> shipment_out.click('do')
|
||||||
>>> assertEqual(shipment_out.done_by, employee)
|
>>> assertEqual(shipment_out.done_by, employee)
|
||||||
>>> [m.state for m in shipment_out.outgoing_moves]
|
>>> [m.state for m in shipment_out.outgoing_moves]
|
||||||
['done']
|
['done']
|
||||||
@@ -263,7 +263,7 @@ Finish the shipment::
|
|||||||
|
|
||||||
Finish the shipment::
|
Finish the shipment::
|
||||||
|
|
||||||
>>> shipment_out.click('done')
|
>>> shipment_out.click('do')
|
||||||
>>> shipment_out.state
|
>>> shipment_out.state
|
||||||
'done'
|
'done'
|
||||||
>>> outgoing_move, = shipment_out.outgoing_moves
|
>>> outgoing_move, = shipment_out.outgoing_moves
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ Receive shipment::
|
|||||||
|
|
||||||
Finish the shipment::
|
Finish the shipment::
|
||||||
|
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> len(shipment.incoming_moves)
|
>>> len(shipment.incoming_moves)
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<group col="-1" colspan="2" id="buttons">
|
<group col="-1" colspan="2" id="buttons">
|
||||||
<button name="cancel" icon="tryton-cancel"/>
|
<button name="cancel" icon="tryton-cancel"/>
|
||||||
<button name="receive" icon="tryton-forward"/>
|
<button name="receive" icon="tryton-forward"/>
|
||||||
<button name="done" icon="tryton-ok"/>
|
<button name="do" icon="tryton-ok"/>
|
||||||
<button name="draft" icon="tryton-undo"/>
|
<button name="draft" icon="tryton-undo"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -36,6 +36,6 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<button name="draft" icon="tryton-forward"/>
|
<button name="draft" icon="tryton-forward"/>
|
||||||
<button name="wait"/>
|
<button name="wait"/>
|
||||||
<button name="assign_wizard" icon="tryton-forward"/>
|
<button name="assign_wizard" icon="tryton-forward"/>
|
||||||
<button name="done" icon="tryton-ok"/>
|
<button name="do" icon="tryton-ok"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -47,6 +47,6 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<button name="wait"/>
|
<button name="wait"/>
|
||||||
<button name="assign_wizard" icon="tryton-forward"/>
|
<button name="assign_wizard" icon="tryton-forward"/>
|
||||||
<button name="ship" icon="tryton-ok"/>
|
<button name="ship" icon="tryton-ok"/>
|
||||||
<button name="done" icon="tryton-ok"/>
|
<button name="do" icon="tryton-ok"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -48,6 +48,6 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<button name="assign_wizard" icon="tryton-forward"/>
|
<button name="assign_wizard" icon="tryton-forward"/>
|
||||||
<button name="pick"/>
|
<button name="pick"/>
|
||||||
<button name="pack" icon="tryton-forward"/>
|
<button name="pack" icon="tryton-forward"/>
|
||||||
<button name="done" icon="tryton-ok"/>
|
<button name="do" icon="tryton-ok"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -43,6 +43,6 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<button name="cancel" icon="tryton-cancel"/>
|
<button name="cancel" icon="tryton-cancel"/>
|
||||||
<button name="draft" icon="tryton-clear"/>
|
<button name="draft" icon="tryton-clear"/>
|
||||||
<button name="receive" icon="tryton-forward"/>
|
<button name="receive" icon="tryton-forward"/>
|
||||||
<button name="done" icon="tryton-ok"/>
|
<button name="do" icon="tryton-ok"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ Fill supplier consignment location::
|
|||||||
>>> shipment.click('assign_try')
|
>>> shipment.click('assign_try')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'assigned'
|
'assigned'
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -145,7 +145,7 @@ Use supplier consignment stock::
|
|||||||
>>> shipment.click('assign_try')
|
>>> shipment.click('assign_try')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'assigned'
|
'assigned'
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -202,7 +202,7 @@ Fill customer consignment location::
|
|||||||
>>> shipment.click('assign_try')
|
>>> shipment.click('assign_try')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'assigned'
|
'assigned'
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -222,7 +222,7 @@ Use customer consignment stock::
|
|||||||
>>> shipment.click('assign_try')
|
>>> shipment.click('assign_try')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'assigned'
|
'assigned'
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ Fill supplier consignment location::
|
|||||||
>>> shipment.click('assign_try')
|
>>> shipment.click('assign_try')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'assigned'
|
'assigned'
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ Use supplier consignment stock by customer::
|
|||||||
>>> shipment.click('assign_try')
|
>>> shipment.click('assign_try')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'assigned'
|
'assigned'
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> move, = shipment.moves
|
>>> move, = shipment.moves
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ class ShipmentInternal(metaclass=PoolMeta):
|
|||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@clear_location_assignation
|
@clear_location_assignation
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Location = pool.get('stock.location')
|
Location = pool.get('stock.location')
|
||||||
to_write = []
|
to_write = []
|
||||||
@@ -198,7 +198,7 @@ class ShipmentInternal(metaclass=PoolMeta):
|
|||||||
})
|
})
|
||||||
if to_write:
|
if to_write:
|
||||||
Location.write(*to_write)
|
Location.write(*to_write)
|
||||||
super(ShipmentInternal, cls).done(shipments)
|
super().do(shipments)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@@ -244,8 +244,8 @@ class ShipmentOut(metaclass=PoolMeta):
|
|||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@deactivate_empty_location
|
@deactivate_empty_location
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
super(ShipmentOut, cls).done(shipments)
|
super().do(shipments)
|
||||||
|
|
||||||
|
|
||||||
class ShipmentInReturn(metaclass=PoolMeta):
|
class ShipmentInReturn(metaclass=PoolMeta):
|
||||||
@@ -255,8 +255,8 @@ class ShipmentInReturn(metaclass=PoolMeta):
|
|||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@deactivate_empty_location
|
@deactivate_empty_location
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
super(ShipmentInReturn, cls).done(shipments)
|
super().do(shipments)
|
||||||
|
|
||||||
|
|
||||||
class Supply(metaclass=PoolMeta):
|
class Supply(metaclass=PoolMeta):
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ Move pallet from storage1 to storage2::
|
|||||||
>>> assertEqual(pallet.assigned_by, shipment)
|
>>> assertEqual(pallet.assigned_by, shipment)
|
||||||
>>> assertEqual(pallet.parent, storage1)
|
>>> assertEqual(pallet.parent, storage1)
|
||||||
|
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
>>> pallet.reload()
|
>>> pallet.reload()
|
||||||
@@ -90,7 +90,7 @@ Concurrently move pallet::
|
|||||||
...
|
...
|
||||||
AssignError: ...
|
AssignError: ...
|
||||||
|
|
||||||
>>> shipment1.click('done')
|
>>> shipment1.click('do')
|
||||||
|
|
||||||
Add lead time between warehouses::
|
Add lead time between warehouses::
|
||||||
|
|
||||||
@@ -119,6 +119,6 @@ Move pallet from storage1 to storage2 with lead_time::
|
|||||||
>>> pallet.reload()
|
>>> pallet.reload()
|
||||||
>>> assertEqual(pallet.parent, shipment.transit_location)
|
>>> assertEqual(pallet.parent, shipment.transit_location)
|
||||||
|
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> pallet.reload()
|
>>> pallet.reload()
|
||||||
>>> assertEqual(pallet.parent, warehouse2.storage_location)
|
>>> assertEqual(pallet.parent, warehouse2.storage_location)
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ Ship 1 product from the locations::
|
|||||||
>>> shipment.click('assign_try')
|
>>> shipment.click('assign_try')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|
||||||
Check empty non movable location are still active::
|
Check empty non movable location are still active::
|
||||||
|
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ Change lot and try to finish::
|
|||||||
>>> incoming_move, = shipment.inventory_moves
|
>>> incoming_move, = shipment.inventory_moves
|
||||||
>>> assertEqual(incoming_move.lot, lot1)
|
>>> assertEqual(incoming_move.lot, lot1)
|
||||||
>>> incoming_move.lot = lot2
|
>>> incoming_move.lot = lot2
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
ShipmentCheckQuantityWarning: ...
|
ShipmentCheckQuantityWarning: ...
|
||||||
@@ -91,6 +91,6 @@ Change lot and try to finish::
|
|||||||
|
|
||||||
Finish the shipment::
|
Finish the shipment::
|
||||||
|
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ Create an incoming shipment without lot::
|
|||||||
>>> move2.from_location = supplier_loc
|
>>> move2.from_location = supplier_loc
|
||||||
>>> move2.to_location = input_loc
|
>>> move2.to_location = input_loc
|
||||||
>>> shipment.click('receive')
|
>>> shipment.click('receive')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|
||||||
Let's ship a product with a lot::
|
Let's ship a product with a lot::
|
||||||
|
|
||||||
@@ -102,7 +102,7 @@ Let's ship a product with a lot::
|
|||||||
>>> move.lot = lot
|
>>> move.lot = lot
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
|
|
||||||
Let's ship now two times the same lot::
|
Let's ship now two times the same lot::
|
||||||
|
|
||||||
|
|||||||
@@ -438,8 +438,8 @@ class ShipmentOut(PackageMixin, object, metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
super(ShipmentOut, cls).done(shipments)
|
super().do(shipments)
|
||||||
cls.check_packages(shipments)
|
cls.check_packages(shipments)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -485,8 +485,8 @@ class ShipmentInReturn(PackageMixin, object, metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
super(ShipmentInReturn, cls).done(shipments)
|
super().do(shipments)
|
||||||
cls.check_packages(shipments)
|
cls.check_packages(shipments)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@@ -288,8 +288,8 @@ class ShipmentInReturn(ShippingMixin, metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
super().done(shipments)
|
super().do(shipments)
|
||||||
cls.check_no_carrier(shipments)
|
cls.check_no_carrier(shipments)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@@ -234,12 +234,12 @@ class ShipmentOutCostMixin(ShipmentCostMixin):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
def done(cls, shipments):
|
def do(cls, shipments):
|
||||||
for shipment in shipments:
|
for shipment in shipments:
|
||||||
shipment.cost = shipment.cost_used
|
shipment.cost = shipment.cost_used
|
||||||
shipment.cost_currency = shipment.cost_currency_used
|
shipment.cost_currency = shipment.cost_currency_used
|
||||||
cls.save(shipments)
|
cls.save(shipments)
|
||||||
super().done(shipments)
|
super().do(shipments)
|
||||||
cls.set_shipment_cost(shipments)
|
cls.set_shipment_cost(shipments)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ Create a customer shipment::
|
|||||||
>>> shipment.cost_edit = True
|
>>> shipment.cost_edit = True
|
||||||
>>> shipment.cost_used = Decimal('5')
|
>>> shipment.cost_used = Decimal('5')
|
||||||
>>> shipment.cost_currency_used = company.currency
|
>>> shipment.cost_currency_used = company.currency
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ Create a customer shipment::
|
|||||||
>>> shipment.click('assign_force')
|
>>> shipment.click('assign_force')
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
@@ -542,7 +542,7 @@ Make a partial shipment::
|
|||||||
>>> move.quantity = 3
|
>>> move.quantity = 3
|
||||||
>>> shipment.click('pick')
|
>>> shipment.click('pick')
|
||||||
>>> shipment.click('pack')
|
>>> shipment.click('pack')
|
||||||
>>> shipment.click('done')
|
>>> shipment.click('do')
|
||||||
>>> shipment.state
|
>>> shipment.state
|
||||||
'done'
|
'done'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user