Reviewers: ,
Please review this at http://codereview.tryton.org/702003/
Affected files:
M sale.py
M stock.xml
M tests/scenario_sale_supply_drop_shipment.rst
Index: sale.py
===================================================================
--- a/sale.py
+++ b/sale.py
@@ -89,9 +89,12 @@
result = super(SaleLine, self).get_move(shipment_type)
if (shipment_type == 'out'
and self.supply_on_sale):
- if (self.purchase_request and self.purchase_request.customer
- and self.purchase_request_state != 'cancel'):
- return {}
+ with Transaction().set_user(0, set_context=True):
+ # TODO make it works in bunch
+ line = self.__class__(self.id)
+ if (line.purchase_request and
line.purchase_request.customer
+ and self.purchase_request_state != 'cancel'):
+ return {}
return result
def get_purchase_request(self):
@@ -134,15 +137,13 @@
def get_drop_moves(self):
if (self.type != 'line'
- or not self.product
- or not self.purchase_request
- or not self.purchase_request.customer):
+ or not self.product):
return []
moves = []
with Transaction().set_user(0, set_context=True):
# TODO make it work in bunch
line = self.__class__(self.id)
- if line.purchase_request:
+ if line.purchase_request and line.purchase_request.customer:
if line.purchase_request.purchase_line:
moves = [m
for m in line.purchase_request.purchase_line.moves
Index: stock.xml
===================================================================
--- a/stock.xml
+++ b/stock.xml
@@ -194,6 +194,14 @@
<field name="perm_create" eval="True"/>
<field name="perm_delete" eval="True"/>
</record>
+ <record model="ir.model.access"
id="access_shipment_drop_group_sale">
+ <field name="model"
search="[('model', '=', 'stock.shipment.drop')]"/>
+ <field name="group" ref="sale.group_sale"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
<record model="ir.model.button" id="shipment_drop_cancel_button">
<field name="name">cancel</field>
Index: tests/scenario_sale_supply_drop_shipment.rst
===================================================================
--- a/tests/scenario_sale_supply_drop_shipment.rst
+++ b/tests/scenario_sale_supply_drop_shipment.rst
@@ -54,8 +54,42 @@
Reload the context::
>>> User = Model.get('res.user')
+ >>> Group = Model.get('res.group')
>>> config._context = User.get_preferences(True, config.context)
+Create sale user::
+
+ >>> sale_user = User()
+ >>> sale_user.name = 'Sale'
+ >>> sale_user.login = 'sale'
+ >>> sale_user.main_company = company
+ >>> sale_group, = Group.find([('name', '=', 'Sales')])
+ >>> sale_user.groups.append(sale_group)
+ >>> sale_user.save()
+
+Create purchase user::
+
+ >>> purchase_user = User()
+ >>> purchase_user.name = 'Purchase'
+ >>> purchase_user.login = 'purchase'
+ >>> purchase_user.main_company = company
+ >>> purchase_group, = Group.find([('name', '=', 'Purchase')])
+ >>> purchase_user.groups.append(purchase_group)
+ >>> purchase_request_group, = Group.find(
+ ... [('name', '=', 'Purchase Request')])
+ >>> purchase_user.groups.append(purchase_request_group)
+ >>> purchase_user.save()
+
+Create stock user::
+
+ >>> stock_user = User()
+ >>> stock_user.name = 'Stock'
+ >>> stock_user.login = 'stock'
+ >>> stock_user.main_company = company
+ >>> stock_group, = Group.find([('name', '=', 'Stock')])
+ >>> stock_user.groups.append(stock_group)
+ >>> stock_user.save()
+
Create fiscal year::
>>> FiscalYear = Model.get('account.fiscalyear')
@@ -164,6 +198,7 @@
Sale 250 products::
+ >>> config.user = sale_user.id
>>> Sale = Model.get('sale.sale')
>>> SaleLine = Model.get('sale.line')
>>> sale = Sale()
@@ -186,6 +221,7 @@
Create Purchase from Request::
+ >>> config.user = purchase_user.id
>>> Purchase = Model.get('purchase.purchase')
>>> PurchaseRequest = Model.get('purchase.request')
>>> purchase_request, = PurchaseRequest.find()
@@ -205,12 +241,15 @@
>>> purchase.reload()
>>> purchase.state
u'confirmed'
+ >>> config.user = sale_user.id
>>> sale.reload()
>>> sale.shipments
[]
>>> shipment, = sale.drop_shipments
Receive 100 products::
+
+ >>> config.user = stock_user.id
>>> ShipmentDrop = Model.get('stock.shipment.drop')
>>> move, = shipment.moves
>>> move.unit_price == move.cost_price
@@ -220,8 +259,8 @@
>>> ShipmentDrop.done([shipment.id], config.context)
>>> shipment.state
u'done'
+ >>> config.user = sale_user.id
>>> sale.reload()
- >>> purchase.reload()
>>> sale.shipments
[]
>>> _, shipment = sale.drop_shipments
--
--
[email protected] mailing list
---
You received this message because you are subscribed to the Google Groups "tryton-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.