Skip to content

Commit d27467a

Browse files
Merge pull request OCA#111 from yvaucher/8.0-cba-repart
[ENH] purchase_requisition_bid_selection - add comparative bid analysis report
2 parents b7ada82 + 994e158 commit d27467a

15 files changed

+641
-56
lines changed

purchase_requisition_auto_rfq_bid_selection/test/purchase_requisition.yml

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
!record {model: purchase.requisition, id: requisition1}:
1616
name: PR01
1717
bid_tendering_mode: open
18+
pricelist_id: purchase.list0
1819
line_ids:
1920
- product_id: purchase_requisition_auto_rfq.kitchenset
2021
product_qty: 10

purchase_requisition_bid_selection/README.rst

+33
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
2+
:alt: License
3+
14
Purchase Requisition Bid Selection
25
==================================
36

@@ -28,9 +31,39 @@ A link has been added between a call for bids line and the corresponding line
2831
of each generated RFQ. This is used for the bids comparison in order to compare
2932
bid lines and group then properly.
3033

34+
To proceed and validate bid selection, you can print the "Comparative Bid Analysis".
35+
This comparative report will only show eligible bids.
36+
3137
For running the tests the nose python package is required.
3238

39+
3340
.. warning::
3441
Version prior to 0.4 was defining a `dest_address_id` field on Purchase
3542
Requisition. This field has been extracted in module
3643
`purchase_requisition_delivery_address`
44+
45+
Credits
46+
=======
47+
48+
* Jacques-Etienne Baudoux <je@bcim.be>
49+
* Joêl Grand-Guillaume <joel.grandguillaume@camptocamp.com>
50+
* Guewen Baconnier <guewen.baconnier@camptocamp.com>
51+
* Nicolas Bessi <nicolas.bessi@camptocamp.com>
52+
* Romain Deheele <romain.deheele@camptocamp.com>
53+
* Leonardo Pistone <leonardo.pistone@camptocamp.com>
54+
* Yannick Vaucher <yannick.vaucher@camptocamp.com>
55+
* Alexandre Fayolle <alexandre.fayolle@camptocamp.com>
56+
* Pierre Verkest <pverkest@anybox.fr>
57+
58+
Maintainer
59+
----------
60+
61+
.. image:: http://odoo-community.org/logo.png
62+
:alt: Odoo Community Association
63+
:target: http://odoo-community.org
64+
65+
This module is maintained by the OCA.
66+
67+
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
68+
69+
To contribute to this module, please visit http://odoo-community.org.

purchase_requisition_bid_selection/__openerp__.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# along with this program. If not, see <http://www.gnu.org/licenses/>.
1616

1717
{"name": "Purchase Requisition Bid Selection",
18-
"version": "2.0",
18+
"version": "2.1",
1919
"author": "Camptocamp,Odoo Community Association (OCA)",
2020
"license": "AGPL-3",
2121
"category": "Purchase Management",
@@ -24,13 +24,16 @@
2424
"depends": ["purchase_requisition",
2525
"stock", # For incoterms
2626
"purchase_rfq_bid_workflow",
27+
"purchase_requisition_multicurrency",
2728
],
2829
"demo": [],
2930
"data": ["wizard/modal.xml",
3031
"wizard/purchase_requisition_partner_view.xml",
31-
"wizard/update_bid_selection_remark.xml",
32+
"wizard/update_bid_internal_remark.xml",
3233
"view/purchase_requisition.xml",
3334
"view/purchase_order.xml",
35+
"view/report_purchaserequisition.xml",
36+
"report.xml",
3437
"workflow/purchase_order.xml",
3538
"workflow/purchase_requisition.xml",
3639
"data/purchase.cancelreason.yml",

purchase_requisition_bid_selection/i18n/purchase_requisition_bid_selection.pot

+16-16
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ msgid "Bid partially selected"
5757
msgstr ""
5858

5959
#. module: purchase_requisition_bid_selection
60-
#: field:update.bid.selection.remark,bid_selection_remark:0
61-
msgid "Bid selection remark"
60+
#: field:update.bid.internal.remark,bid_internal_remark:0
61+
msgid "Bid internal remark"
6262
msgstr ""
6363

6464
#. module: purchase_requisition_bid_selection
@@ -101,7 +101,7 @@ msgstr ""
101101
#: view:purchase.action_modal:purchase_requisition_bid_selection.modal_confirm_close_selection
102102
#: view:purchase.action_modal.ask_selection_reasons:purchase_requisition_bid_selection.ask_selection_reasons
103103
#: view:purchase.requisition.partner:purchase_requisition_bid_selection.view_purchase_requisition_partner_draftbid
104-
#: view:update.bid.selection.remark:purchase_requisition_bid_selection.view_update_bid_selection_remark
104+
#: view:update.bid.internal.remark:purchase_requisition_bid_selection.view_update_bid_internal_remark
105105
msgid "Cancel"
106106
msgstr ""
107107

@@ -141,13 +141,13 @@ msgstr ""
141141

142142
#. module: purchase_requisition_bid_selection
143143
#: field:purchase.action_modal.ask_selection_reasons,create_uid:0
144-
#: field:update.bid.selection.remark,create_uid:0
144+
#: field:update.bid.internal.remark,create_uid:0
145145
msgid "Created by"
146146
msgstr ""
147147

148148
#. module: purchase_requisition_bid_selection
149149
#: field:purchase.action_modal.ask_selection_reasons,create_date:0
150-
#: field:update.bid.selection.remark,create_date:0
150+
#: field:update.bid.internal.remark,create_date:0
151151
msgid "Created on"
152152
msgstr ""
153153

@@ -215,7 +215,7 @@ msgstr ""
215215

216216
#. module: purchase_requisition_bid_selection
217217
#: field:purchase.action_modal.ask_selection_reasons,id:0
218-
#: field:update.bid.selection.remark,id:0
218+
#: field:update.bid.internal.remark,id:0
219219
msgid "ID"
220220
msgstr ""
221221

@@ -237,13 +237,13 @@ msgstr ""
237237

238238
#. module: purchase_requisition_bid_selection
239239
#: field:purchase.action_modal.ask_selection_reasons,write_uid:0
240-
#: field:update.bid.selection.remark,write_uid:0
240+
#: field:update.bid.internal.remark,write_uid:0
241241
msgid "Last Updated by"
242242
msgstr ""
243243

244244
#. module: purchase_requisition_bid_selection
245245
#: field:purchase.action_modal.ask_selection_reasons,write_date:0
246-
#: field:update.bid.selection.remark,write_date:0
246+
#: field:update.bid.internal.remark,write_date:0
247247
msgid "Last Updated on"
248248
msgstr ""
249249

@@ -321,7 +321,7 @@ msgid "Re-Open Bids Selection"
321321
msgstr ""
322322

323323
#. module: purchase_requisition_bid_selection
324-
#: view:update.bid.selection.remark:purchase_requisition_bid_selection.view_update_bid_selection_remark
324+
#: view:update.bid.internal.remark:purchase_requisition_bid_selection.view_update_bid_internal_remark
325325
msgid "Remark"
326326
msgstr ""
327327

@@ -393,8 +393,8 @@ msgid "Selection reasons"
393393
msgstr ""
394394

395395
#. module: purchase_requisition_bid_selection
396-
#: field:purchase.order,bid_selection_remark:0
397-
msgid "Selection remarks"
396+
#: field:purchase.order,bid_internal_remark:0
397+
msgid "Internal remarks"
398398
msgstr ""
399399

400400
#. module: purchase_requisition_bid_selection
@@ -429,18 +429,18 @@ msgid "True if the bid has been partially selected"
429429
msgstr ""
430430

431431
#. module: purchase_requisition_bid_selection
432-
#: model:ir.actions.act_window,name:purchase_requisition_bid_selection.action_update_bid_selection_remark
433-
msgid "Update bid selection remark"
432+
#: model:ir.actions.act_window,name:purchase_requisition_bid_selection.action_update_bid_internal_remark
433+
msgid "Update bid internal remark"
434434
msgstr ""
435435

436436
#. module: purchase_requisition_bid_selection
437-
#: view:update.bid.selection.remark:purchase_requisition_bid_selection.view_update_bid_selection_remark
437+
#: view:update.bid.internal.remark:purchase_requisition_bid_selection.view_update_bid_internal_remark
438438
msgid "Update remark"
439439
msgstr ""
440440

441441
#. module: purchase_requisition_bid_selection
442442
#: view:purchase.requisition:purchase_requisition_bid_selection.view_purchase_requisition_form
443-
msgid "Update selection remark"
443+
msgid "Update internal remark"
444444
msgstr ""
445445

446446
#. module: purchase_requisition_bid_selection
@@ -501,7 +501,7 @@ msgstr ""
501501
#: view:purchase.action_modal:purchase_requisition_bid_selection.modal_confirm_close_selection
502502
#: view:purchase.action_modal.ask_selection_reasons:purchase_requisition_bid_selection.ask_selection_reasons
503503
#: view:purchase.requisition.partner:purchase_requisition_bid_selection.view_purchase_requisition_partner_draftbid
504-
#: view:update.bid.selection.remark:purchase_requisition_bid_selection.view_update_bid_selection_remark
504+
#: view:update.bid.internal.remark:purchase_requisition_bid_selection.view_update_bid_internal_remark
505505
msgid "or"
506506
msgstr ""
507507

purchase_requisition_bid_selection/model/purchase_order.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
# along with this program. If not, see <http://www.gnu.org/licenses/>.
1818
#
1919
#
20+
2021
from openerp import models, fields, api, osv
2122

2223

@@ -52,7 +53,7 @@ class PurchaseOrder(models.Model):
5253
weight_estimated = fields.Float('Weight estimated (kg)')
5354
meets_specifications = fields.Boolean()
5455
bid_eligible = fields.Boolean()
55-
bid_selection_remark = fields.Text('Selection remarks')
56+
bid_internal_remark = fields.Text('Internal remarks')
5657

5758
@api.model
5859
def _prepare_purchase_order(self, requisition, supplier):

purchase_requisition_bid_selection/model/purchase_requisition.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ class PurchaseRequisition(models.Model):
116116
"specific to public sector).")
117117
delivery_remark = fields.Text('Delivery Remarks')
118118
budget = fields.Float()
119-
selection_reasons = fields.Text()
119+
selection_reasons = fields.Text(copy=False)
120120

121121
@api.multi
122122
def _has_product_lines(self):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<openerp>
3+
<data>
4+
5+
<report
6+
string="Comparative Bid Analysis"
7+
id="action_report_purchase_requisitions"
8+
model="purchase.requisition"
9+
report_type="qweb-pdf"
10+
name="purchase_requisition_bid_selection.report_purchaserequisitions"
11+
file="purchase_requisition_bid_selection.report_purchaserequisitions"
12+
/>
13+
</data>
14+
<data noupdate="1">
15+
<record id="paperformat_bid_selection" model="report.paperformat">
16+
<field name="name">Bid selection</field>
17+
<field name="orientation">Landscape</field>
18+
<field name="margin_top">5</field>
19+
<field name="margin_bottom">15</field>
20+
<field name="header_spacing">0</field>
21+
</record>
22+
23+
<record id="action_report_purchase_requisitions" model="ir.actions.report.xml">
24+
<field name="paperformat_id" ref="paperformat_bid_selection"/>
25+
</record>
26+
27+
</data>
28+
</openerp>

purchase_requisition_bid_selection/test/process/restricted.yml

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
bid_tendering_mode: 'restricted'
99
schedule_date: '2013-09-30'
1010
req_validity: '2013-09-10'
11+
pricelist_id: purchase.list0
1112
line_ids:
1213
- product_id: product.product_product_15
1314
product_qty: 15.0

purchase_requisition_bid_selection/tests/test_generate_po.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ def setUp(self):
4040
'purchase_requisition_bid_selection.act_closed').id,
4141
'condition': True,
4242
})
43-
self.preq = PReq.create({'state': 'closed'})
43+
self.preq = PReq.create({'state': 'closed',
44+
'pricelist_id': self.ref('purchase.list0')})
4445
dummy_wkf_trans.unlink()
4546

4647
partner_12 = self.env.ref('base.res_partner_12')

purchase_requisition_bid_selection/view/purchase_requisition.xml

+8-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<record model="ir.ui.view" id="view_purchase_requisition_form">
1010
<field name="name">purchase.requisition.form.inherit</field>
1111
<field name="model">purchase.requisition</field>
12-
<field name="inherit_id" ref="purchase_requisition.view_purchase_requisition_form"/>
12+
<field name="inherit_id" ref="purchase_requisition_multicurrency.view_purchase_requisition_form"/>
1313
<field name="arch" type="xml">
1414

1515
<xpath expr="//header/field[@name='state']" position="attributes">
@@ -22,7 +22,7 @@
2222
</xpath>
2323

2424
<xpath expr="//sheet//button[@name='open_product_line']" position="attributes">
25-
<!-- add the state 'closed' -->
25+
<!-- add states 'selected' and 'closed' -->
2626
<attribute name="attrs">{'invisible': ['|', ('state', 'not in', ('open','selected','closed','done')), ('exclusive', '=', 'exclusive')]}</attribute>
2727
</xpath>
2828

@@ -32,17 +32,20 @@
3232

3333
<xpath expr="//field[@name='user_id']" position="after">
3434
<field name="bid_tendering_mode" attrs="{'readonly': [('state','not in',('draft'))]}" />
35-
<field name="pricelist_id" attrs="{'readonly': [('state','not in',('draft'))]}"/>
3635
<field name="budget"/>
3736
</xpath>
3837

38+
<xpath expr="//field[@name='pricelist_id']" position="attributes">
39+
<attributes name="attrs">{'readonly': [('state','not in',('draft'))]}</attributes>
40+
</xpath>
41+
3942
<separator string="Requests for Quotation" position="attributes">
4043
<attribute name="string">Requests for Quotation / Bids</attribute>
4144
</separator>
4245

4346
<xpath expr="//field[@name='purchase_ids']//field[@name='state']" position="after">
44-
<field name="bid_selection_remark"/>
45-
<button name="%(action_update_bid_selection_remark)d" type="action" string="Update selection remark" icon="gtk-ok"/>
47+
<field name="bid_internal_remark"/>
48+
<button name="%(action_update_bid_internal_remark)d" type="action" string="Update internal remark" icon="gtk-ok"/>
4649
</xpath>
4750

4851
<xpath expr="//field[@name='purchase_ids']" position="after">

0 commit comments

Comments
 (0)