From d9057b17f5decc7fa4a7c90b2e870d5ad3ec291b Mon Sep 17 00:00:00 2001 From: Jacques-Etienne Baudoux Date: Tue, 25 Jun 2013 11:48:37 +0200 Subject: [PATCH 1/5] [FIX]purchase: help messages bzr revid: je@bcim.be-20130625094837-j8xgn85jveo1wl1i --- addons/purchase/purchase.py | 4 ++-- addons/purchase/res_config.py | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index b5e13012257..2bbe4eb0237 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -174,7 +174,7 @@ class purchase_order(osv.osv): help="Reference of the document that generated this purchase order request; a sales order or an internal procurement request." ), 'partner_ref': fields.char('Supplier Reference', states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, size=64, - help="Reference of the sales order or quotation sent by your supplier. It's mainly used to do the matching when you receive the products as this reference is usually written on the delivery order sent by your supplier."), + help="Reference of the sales order or bid sent by your supplier. It's mainly used to do the matching when you receive the products as this reference is usually written on the delivery order sent by your supplier."), 'date_order':fields.date('Order Date', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, select=True, help="Date on which this document has been created."), 'date_approve':fields.date('Date Approved', readonly=1, select=True, help="Date on which purchase order has been approved"), 'partner_id':fields.many2one('res.partner', 'Supplier', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, @@ -188,7 +188,7 @@ class purchase_order(osv.osv): 'location_id': fields.many2one('stock.location', 'Destination', required=True, domain=[('usage','<>','view')], states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]} ), 'pricelist_id':fields.many2one('product.pricelist', 'Pricelist', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, help="The pricelist sets the currency used for this purchase order. It also computes the supplier price for the selected products/quantities."), 'currency_id': fields.related('pricelist_id', 'currency_id', type="many2one", relation="res.currency", string="Currency",readonly=True, required=True), - 'state': fields.selection(STATE_SELECTION, 'Status', readonly=True, help="The status of the purchase order or the quotation request. A quotation is a purchase order in a 'Draft' status. Then the order has to be confirmed by the user, the status switch to 'Confirmed'. Then the supplier must confirm the order to change the status to 'Approved'. When the purchase order is paid and received, the status becomes 'Done'. If a cancel action occurs in the invoice or in the reception of goods, the status becomes in exception.", select=True), + 'state': fields.selection(STATE_SELECTION, 'Status', readonly=True, help="The status of the purchase order or the quotation request. A request for quotation is a purchase order in a 'Draft' status. Then the order has to be confirmed by the user, the status switch to 'Confirmed'. Then the supplier must confirm the order to change the status to 'Approved'. When the purchase order is paid and received, the status becomes 'Done'. If a cancel action occurs in the invoice or in the reception of goods, the status becomes in exception.", select=True), 'order_line': fields.one2many('purchase.order.line', 'order_id', 'Order Lines', states={'approved':[('readonly',True)],'done':[('readonly',True)]}), 'validator' : fields.many2one('res.users', 'Validated by', readonly=True), 'notes': fields.text('Terms and Conditions'), diff --git a/addons/purchase/res_config.py b/addons/purchase/res_config.py index 13f189664fd..624bbbf0c36 100644 --- a/addons/purchase/res_config.py +++ b/addons/purchase/res_config.py @@ -50,14 +50,14 @@ Example: Product: this product is deprecated, do not purchase more than 5. 'module_purchase_double_validation': fields.boolean("Force two levels of approvals", help="""Provide a double validation mechanism for purchases exceeding minimum amount. This installs the module purchase_double_validation."""), - 'module_purchase_requisition': fields.boolean("Manage purchase requisitions", - help="""Purchase Requisitions are used when you want to request quotations from several suppliers for a given set of products. + 'module_purchase_requisition': fields.boolean("Manage calls for bids", + help="""Calls for bids are used when you want to generate requests for quotations to several suppliers for a given set of products. You can configure per product if you directly do a Request for Quotation - to one supplier or if you want a purchase requisition to negotiate with several suppliers."""), - 'group_advance_purchase_requisition': fields.boolean("Manage multiple bidding on purchase requisition", + to one supplier or if you want a Call for Bids to compare offers from several suppliers."""), + 'group_advance_purchase_requisition': fields.boolean("Choose from several bids in a call for bids", implied_group='purchase.group_advance_bidding', - help="""In the process of a public bidding, You can analyse the bidding lines and choose for each product from - where you want to buy it as well as the quantity"""), + help="""In the process of a public bidding, you can compare the bid lines and choose for each requested product from which bid you + buy which quantity"""), 'module_purchase_analytic_plans': fields.boolean('Use multiple analytic accounts on purchase orders', help ="""Allows the user to maintain several analysis plans. These let you split lines on a purchase order between several accounts and analytic plans. This installs the module purchase_analytic_plans."""), From 1e2872c521454dd7fd3c2c00285b2a4a9e5e458f Mon Sep 17 00:00:00 2001 From: Jacques-Etienne Baudoux Date: Tue, 25 Jun 2013 11:49:27 +0200 Subject: [PATCH 2/5] [FIX]purchase_requisition: view titles, help messages, documentation bzr revid: je@bcim.be-20130625094927-c9486m672xn3m8fz --- addons/purchase_requisition/purchase_requisition.py | 4 ++-- .../purchase_requisition_report.xml | 2 +- .../purchase_requisition/purchase_requisition_view.xml | 10 +++++----- .../wizard/purchase_requisition_partner.py | 2 +- .../wizard/purchase_requisition_partner_view.xml | 6 +++--- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/addons/purchase_requisition/purchase_requisition.py b/addons/purchase_requisition/purchase_requisition.py index 11f64ed0a96..dea44e46bf4 100644 --- a/addons/purchase_requisition/purchase_requisition.py +++ b/addons/purchase_requisition/purchase_requisition.py @@ -163,7 +163,7 @@ class purchase_requisition(osv.osv): def open_rfq(self, cr, uid, ids, context=None): - """ This opens rfq view to view all quotations associated to the tender + """ This opens rfq view to view all quotations associated to the call for bids @return: the RFQ tree view """ if context is None: @@ -339,7 +339,7 @@ class purchase_requisition(osv.osv): for quotation in tender.purchase_ids: if quotation.state in ['draft', 'sent', 'bid']: wf_service.trg_validate(uid, 'purchase.order', quotation.id, 'purchase_cancel', cr) - po.message_post(cr, uid, [quotation.id], body=_('Cancelled by the tender associated to this quotation.'), context=context) + po.message_post(cr, uid, [quotation.id], body=_('Cancelled by the call for bids associated to this request for quotation.'), context=context) return True diff --git a/addons/purchase_requisition/purchase_requisition_report.xml b/addons/purchase_requisition/purchase_requisition_report.xml index 3a1ed498c4e..f0767dc6da4 100644 --- a/addons/purchase_requisition/purchase_requisition_report.xml +++ b/addons/purchase_requisition/purchase_requisition_report.xml @@ -1,6 +1,6 @@ - + diff --git a/addons/purchase_requisition/purchase_requisition_view.xml b/addons/purchase_requisition/purchase_requisition_view.xml index 494edf586d0..103d37630a3 100644 --- a/addons/purchase_requisition/purchase_requisition_view.xml +++ b/addons/purchase_requisition/purchase_requisition_view.xml @@ -177,11 +177,11 @@

Click to start a new Call for Bids process.

- A Call for Bids is the step before a request for quotation. - In a purchase requisition (or purchase tender), you can record the - products you need to buy and trigger the creation of RfQs to - suppliers. After the negotiation, once you have reviewed all the - supplier's offers, you can validate some and cancel others. + A Call for Bids is a procedure for generating competing offers from + different bidders. In the call for bids, you can record the + products you need to buy and generate the creation of RfQs to + suppliers. Once the bids have been registered, you can review and + compare them and you can validate some and cancel others.

diff --git a/addons/purchase_requisition/wizard/purchase_requisition_partner.py b/addons/purchase_requisition/wizard/purchase_requisition_partner.py index 266aa1943ca..e82eda221d0 100644 --- a/addons/purchase_requisition/wizard/purchase_requisition_partner.py +++ b/addons/purchase_requisition/wizard/purchase_requisition_partner.py @@ -38,7 +38,7 @@ class purchase_requisition_partner(osv.osv_memory): record_id = context and context.get('active_id', False) or False tender = self.pool.get('purchase.requisition').browse(cr, uid, record_id, context=context) if not tender.line_ids: - raise osv.except_osv(_('Error!'), _('No Product in Tender.')) + raise osv.except_osv(_('Error!'), _('No product in call for bids.')) return res def create_order(self, cr, uid, ids, context=None): diff --git a/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml b/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml index 93fe4886056..3db4ca3ae83 100644 --- a/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml +++ b/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml @@ -2,10 +2,10 @@ - Request for Tender + Choose Supplier purchase.requisition.partner -
+ @@ -19,7 +19,7 @@ - Request for Tender + Choose Supplier ir.actions.act_window purchase.requisition.partner form From 27f0afa9bb7992d12bf98a790401598e5e25a0d6 Mon Sep 17 00:00:00 2001 From: Jacques-Etienne Baudoux Date: Tue, 25 Jun 2013 11:50:18 +0200 Subject: [PATCH 3/5] [FIX]purchase_requisition: do not set list of RfQs readonly bzr revid: je@bcim.be-20130625095018-tmtdrisv7zvi428h --- addons/purchase_requisition/purchase_requisition_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/purchase_requisition/purchase_requisition_view.xml b/addons/purchase_requisition/purchase_requisition_view.xml index 103d37630a3..0c261e6939f 100644 --- a/addons/purchase_requisition/purchase_requisition_view.xml +++ b/addons/purchase_requisition/purchase_requisition_view.xml @@ -95,7 +95,7 @@