# then wizard for picking lists & move
#
-class product_template(osv.osv):
- _inherit="product.template"
- _columns = {
- 'type': fields.selection([('product','Stockable Product'),('consu', 'Consumable'),('service','Service')], 'Product Type', required=True, help="Will change the way procurements are processed. Consumable are product where you don't manage stock."),
- '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, take from the stock or wait until re-supplying. 'Make to Order': When needed, purchase or produce for the procurement request."),
- 'supply_method': fields.selection([('produce','Manufacture'),('buy','Buy')], 'Supply Method', required=True, help="Produce will generate production order or tasks, according to the product type. Buy will trigger purchase orders when requested."),
- }
- _defaults = {
- 'procure_method': lambda *a: 'make_to_stock',
- 'supply_method': lambda *a: 'buy',
- }
-product_template()
-
class mrp_property_group(osv.osv):
"""
Group of mrp properties.
_inherit = ['mail.thread']
_log_create = False
_columns = {
- 'name': fields.char('Reason', size=64, required=True, help='Procurement name.'),
+ 'name': fields.char('Description', required=True),
'origin': fields.char('Source Document', size=64,
help="Reference of the document that created this Procurement.\n"
"This is automatically completed by OpenERP."),
('ready','Ready'),
('done','Done'),
('waiting','Waiting')], 'Status', required=True,
- help='When a procurement is created the state is set to \'Draft\'.\n If the procurement is confirmed, the state is set to \'Confirmed\'.\
- \nAfter confirming the state is set to \'Running\'.\n If any exception arises in the order then the state is set to \'Exception\'.\n Once the exception is removed the state becomes \'Ready\'.\n It is in \'Waiting\'. state when the procurement is waiting for another one to finish.'),
+ help='When a procurement is created the status is set to \'Draft\'.\n If the procurement is confirmed, the status is set to \'Confirmed\'.\
+ \nAfter confirming the status is set to \'Running\'.\n If any exception arises in the order then the status is set to \'Exception\'.\n Once the exception is removed the status becomes \'Ready\'.\n It is in \'Waiting\'. status when the procurement is waiting for another one to finish.'),
'note': fields.text('Note'),
'company_id': fields.many2one('res.company','Company',required=True),
}
""" Changes procurement state to Running and writes message.
@return: True
"""
- message = _('From stock: products assigned.')
+ message = _('Products reserved from stock.')
self.write(cr, uid, ids, {'state': 'running',
'message': message}, context=context)
self.message_post(cr, uid, ids, body=message, context=context)
- self.running_send_note(cr, uid, ids, context=context)
return True
def _check_make_to_stock_service(self, cr, uid, procurement, context=None):
order_point_id = self.pool.get('stock.warehouse.orderpoint').search(cr, uid, [('product_id', '=', procurement.product_id.id)], context=context)
if not order_point_id and not ok:
message = _("Not enough stock and no minimum orderpoint rule defined.")
- elif not order_point_id:
- message = _("No minimum orderpoint rule defined.")
elif not ok:
message = _("Not enough stock.")
"""
for procurement in self.browse(cr, uid, ids, context=context):
self.write(cr, uid, [procurement.id], {'state': 'running'})
- self.running_send_note(cr, uid, ids, context=None)
return True
def action_produce_assign_product(self, cr, uid, ids, context=None):
@return: True
"""
res = self.write(cr, uid, ids, {'state': 'ready'})
- self.ready_send_note(cr, uid, ids, context=None)
return res
def action_done(self, cr, uid, ids):
return obj_id
def create_send_note(self, cr, uid, ids, context=None):
- self.message_post(cr, uid, ids, body=_("Procurement has been <b>created</b>."), context=context)
+ self.message_post(cr, uid, ids, body=_("Procurement <b>created</b>."), context=context)
def confirm_send_note(self, cr, uid, ids, context=None):
- self.message_post(cr, uid, ids, body=_("Procurement has been <b>confirmed</b>."), context=context)
-
- def running_send_note(self, cr, uid, ids, context=None):
- self.message_post(cr, uid, ids, body=_("Procurement has been set to <b>running</b>."), context=context)
-
- def ready_send_note(self, cr, uid, ids, context=None):
- self.message_post(cr, uid, ids, body=_("Procurement has been set to <b>ready</b>."), context=context)
+ self.message_post(cr, uid, ids, body=_("Procurement <b>confirmed</b>."), context=context)
def cancel_send_note(self, cr, uid, ids, context=None):
- self.message_post(cr, uid, ids, body=_("Procurement has been <b>cancelled</b>."), context=context)
+ self.message_post(cr, uid, ids, body=_("Procurement <b>cancelled</b>."), context=context)
def done_send_note(self, cr, uid, ids, context=None):
- self.message_post(cr, uid, ids, body=_("Procurement has been <b>done</b>."), context=context)
+ self.message_post(cr, uid, ids, body=_("Procurement <b>done</b>."), context=context)
procurement_order()
'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True),
'product_min_qty': fields.float('Minimum Quantity', required=True,
help="When the virtual stock goes below the Min Quantity specified for this field, OpenERP generates "\
- "a procurement to bring the virtual stock to the Max Quantity."),
+ "a procurement to bring the forecasted quantity to the Max Quantity."),
'product_max_qty': fields.float('Maximum Quantity', required=True,
help="When the virtual stock goes below the Min Quantity, OpenERP generates "\
- "a procurement to bring the virtual stock to the Quantity specified as Max Quantity."),
+ "a procurement to bring the forecasted quantity to the Quantity specified as Max Quantity."),
'qty_multiple': fields.integer('Qty Multiple', required=True,
help="The procurement quantity will be rounded up to this multiple."),
'procurement_id': fields.many2one('procurement.order', 'Latest procurement', ondelete="set null"),
})
return super(stock_warehouse_orderpoint, self).copy(cr, uid, id, default, context=context)
-stock_warehouse_orderpoint()
+class product_template(osv.osv):
+ _inherit="product.template"
+
+ _columns = {
+ 'type': fields.selection([('product','Stockable Product'),('consu', 'Consumable'),('service','Service')], 'Product Type', required=True, help="Consumable: Will not imply stock management for this product. \nStockable product: Will imply stock management for this product."),
+ '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."),
+ 'supply_method': fields.selection([('produce','Manufacture'),('buy','Buy')], 'Supply Method', required=True, help="Manufacture: When procuring the product, a manufacturing order or a task will be generated, depending on the product type. \nBuy: When procuring the product, a purchase order will be generated."),
+ }
+ _defaults = {
+ 'procure_method': 'make_to_stock',
+ 'supply_method': 'buy',
+ }
class product_product(osv.osv):
_inherit="product.product"
}
-product_product()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: