[MERGE] stock: usability improvements
authorQuentin (OpenERP) <qdp-launchpad@openerp.com>
Tue, 8 Apr 2014 07:53:53 +0000 (09:53 +0200)
committerQuentin (OpenERP) <qdp-launchpad@openerp.com>
Tue, 8 Apr 2014 07:53:53 +0000 (09:53 +0200)
bzr revid: qdp-launchpad@openerp.com-20140408075353-5yy5to2hb65vo41q

1  2 
addons/stock/procurement.py
addons/stock/res_config.py
addons/stock/res_config_view.xml
addons/stock/stock.py
addons/stock/stock_view.xml

@@@ -67,7 -67,9 +67,8 @@@ class procurement_rule(osv.osv)
              help="Source location is action=move"),
          'route_id': fields.many2one('stock.location.route', 'Route',
              help="If route_id is False, the rule is global"),
-         'procure_method': fields.selection([('make_to_stock', 'Make to Stock'), ('make_to_order', 'Make to Order')], 'Procure Method', required=True, help="'Make to Stock': When needed, take from the stock or wait until re-supplying. 'Make to Order': When needed, purchase or produce for the procurement request."),
 -        'procure_method': fields.selection([('make_to_stock', 'Take from stock'), ('make_to_order', 'Apply procurement rules again')], 'Procurement Method', required=True, 
 -                                           help="""Determines the procurement method of the stock move that will be generated: whether it will need to 'take from the available stock' in its source location 
 -                                           or needs to apply the procurement rules again. """),
++        'procure_method': fields.selection([('make_to_stock', 'Take From Stock'), ('make_to_order', 'Create Procurement')], 'Move Supply Method', required=True, 
++                                           help="""Determines the procurement method of the stock move that will be generated: whether it will need to 'take from the available stock' in its source location or needs to ignore its stock and create a procurement over there."""),
          'route_sequence': fields.related('route_id', 'sequence', string='Route Sequence',
              store={
                  'stock.location.route': (_get_rules, ['sequence'], 10),
@@@ -73,18 -73,18 +73,17 @@@ This installs the module product_expiry
          'group_stock_tracking_lot': fields.boolean("Use packages: pallets, boxes, ...",
              implied_group='stock.group_tracking_lot',
              help="""This allows you to manage products by using serial numbers. When you select a serial number on product moves, you can get the traceability of that product."""),
--        'group_stock_tracking_owner': fields.boolean("Manage owner on stock", 
--            implied_group='stock.group_tracking_owner', 
--            help="""This way you can receive products attributed to a certain owner. """), 
++        'group_stock_tracking_owner': fields.boolean("Manage owner on stock",
++            implied_group='stock.group_tracking_owner',
++            help="""This way you can receive products attributed to a certain owner. """),
          'module_stock_account': fields.boolean("Generate accounting entries per stock movement",
              help="""Allows to configure inventory valuations on products and product categories."""),
          'group_stock_multiple_locations': fields.boolean("Manage multiple locations and warehouses",
              implied_group='stock.group_locations',
-             help="""This allows to configure and use multiple stock locations and warehouses,
-                 instead of having a single default one."""),
-         'group_stock_adv_location': fields.boolean("Active Push and Pull inventory flows",
 -            help="""This will show you the locations and allows you to 
 -            define multiple picking types and warehouses. """),
++            help="""This will show you the locations and allows you to define multiple picking types and warehouses."""),
+         'group_stock_adv_location': fields.boolean("Manage advanced routes for your warehouse",
              implied_group='stock.group_adv_location',
-             help="""This option supplements the warehouse application by effectively implementing Push and Pull inventory flows. """),
 -            help="""This option supplements the warehouse application by effectively implementing Push and Pull inventory flows through Routes. """),
++            help="""This option supplements the warehouse application by effectively implementing Push and Pull inventory flows through Routes."""),
          'decimal_precision': fields.integer('Decimal precision on weight', help="As an example, a decimal precision of 2 will allow weights like: 9.99 kg, whereas a decimal precision of 4 will allow weights like:  0.0231 kg."),
          'propagation_minimum_delta': fields.related('company_id', 'propagation_minimum_delta', type='integer', string="Minimum days to trigger a propagation of date change in pushed/pull flows."),
          'module_stock_dropshipping': fields.boolean("Manage dropshipping",
          'module_stock_picking_wave': fields.boolean('Manage picking wave', help='Install the picking wave module which will help you grouping your pickings and processing them in batch'),
      }
  
+     def onchange_adv_location(self, cr, uid, ids, group_stock_adv_location, context=None):
+         if group_stock_adv_location:
 -            return {'value': {
 -                'group_stock_multiple_locations': True,
 -                }}
++            return {'value': {'group_stock_multiple_locations': True}}
+         return {}
      def _default_company(self, cr, uid, context=None):
          user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
          return user.company_id.id
                              </div>
                          </div>
                      </group>
+                     <group>
 -                        <label for="id" string="Functionalities"/>
++                        <label for="id" string="Additional Features"/>
+                             <div>
+                                 <div>
+                                     <field name="module_claim_from_delivery" class="oe_inline"/>
+                                     <label for="module_claim_from_delivery"/>
+                                 </div>
+                                 <div>
+                                     <field name="module_stock_dropshipping" class="oe_inline"/>
+                                     <label for="module_stock_dropshipping"/>
+                                 </div>
+                                 <div>
+                                     <field name="module_stock_picking_wave" class="oe_inline"/>
+                                     <label for="module_stock_picking_wave"/>
+                                 </div>
+                             </div>
+                     </group>
                  </form>
              </field>
          </record>
@@@ -1633,7 -1633,7 +1633,6 @@@ class stock_move(osv.osv)
          'location_id': fields.many2one('stock.location', 'Source Location', required=True, select=True, states={'done': [('readonly', True)]}, help="Sets a location if you produce at a fixed location. This can be a partner location if you subcontract the manufacturing operations."),
          'location_dest_id': fields.many2one('stock.location', 'Destination Location', required=True, states={'done': [('readonly', True)]}, select=True, help="Location where the system will stock the finished products."),
  
--        # FP Note: should we remove this?
          'partner_id': fields.many2one('res.partner', 'Destination Address ', states={'done': [('readonly', True)]}, help="Optional address where goods are to be delivered, specifically used for allotment"),
  
  
          'split_from': fields.many2one('stock.move', string="Move Split From", help="Technical field used to track the origin of a split move, which can be useful in case of debug"),
          'backorder_id': fields.related('picking_id', 'backorder_id', type='many2one', relation="stock.picking", string="Back Order of", select=True),
          'origin': fields.char("Source"),
-         'procure_method': fields.selection([('make_to_stock', 'Make to Stock'), ('make_to_order', 'Make to Order')], 'Procurement Method', required=True, help="Make to Stock: When needed, the product is taken from the stock or we wait for replenishment. \nMake to Order: When needed, the product is purchased or produced."),
 -        'procure_method': fields.selection([('make_to_stock', 'Default: Take from stock'), ('make_to_order', 'Advanced: Apply procurement rules')], 'Procurement Method', required=True, 
 -                                           help="""By default, the system will take from the available stock in the source location.  
 -                                           If we want to have chained moves, it can not take from the available stock, but has to apply the procurement rules 
 -                                           and wait for the moves generated by them. """),
++        'procure_method': fields.selection([('make_to_stock', 'Default: Take From Stock'), ('make_to_order', 'Advanced: Apply Procurement Rules')], 'Supply Method', required=True, 
++                                           help="""By default, the system will take from the stock in the source location and passively wait for availability. The other possibility allows you to directly create a procurement on the source location (and thus ignore its current stock) to gather products. If we want to chain moves and have this one to wait for the previous, this second option should be chosen."""),
  
          # used for colors in tree views:
          'scrapped': fields.related('location_dest_id', 'scrap_location', type='boolean', relation='stock.location', string='Scrapped', readonly=True),
Simple merge