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.


Reply via email to