Merge lp:~dorian-kemps/unifield-server/US-5894 into lp:unifield-server

Proposed by jftempo
Status: Merged
Merged at revision: 5533
Proposed branch: lp:~dorian-kemps/unifield-server/US-5894
Merge into: lp:unifield-server
Diff against target: 243 lines (+60/-16)
8 files modified
bin/addons/msf_profile/i18n/fr_MF.po (+7/-4)
bin/addons/purchase/__init__.py (+0/-1)
bin/addons/purchase/purchase_order.py (+2/-2)
bin/addons/purchase/purchase_order_line.py (+1/-1)
bin/addons/purchase_override/purchase.py (+1/-1)
bin/addons/tender_flow/__init__.py (+15/-0)
bin/addons/tender_flow/tender_flow.py (+32/-6)
bin/addons/tender_flow/tender_flow_view.xml (+2/-1)
To merge this branch: bzr merge lp:~dorian-kemps/unifield-server/US-5894
Reviewer Review Type Date Requested Status
UniField Reviewer Team Pending
Review via email: mp+372353@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'bin/addons/msf_profile/i18n/fr_MF.po'
2--- bin/addons/msf_profile/i18n/fr_MF.po 2019-10-15 16:08:57 +0000
3+++ bin/addons/msf_profile/i18n/fr_MF.po 2019-10-17 13:49:09 +0000
4@@ -8931,12 +8931,14 @@
5 msgid "! - Requires national export license"
6 msgstr "! - Nécessite une licence d'exportation nationale"
7
8-#. modules: purchase, purchase_override, sale
9+#. modules: purchase, purchase_override, sale, tender_flow
10 #: selection:purchase.order.line,state:0
11 #: selection:purchase.order.merged.line,state:0
12 #: selection:sale.order.line,state:0
13 #: selection:purchase.order.line,state_to_display:0
14 #: selection:sale.order.line,state_to_display:0
15+#: selection:purchase.order.line,rfq_line_state_to_display:0
16+#: selection:purchase.order.merged.line,rfq_line_state_to_display:0
17 msgid "Cancelled-r"
18 msgstr "Annulée-r"
19
20@@ -29966,7 +29968,7 @@
21 msgid "Certificate attached ?"
22 msgstr "Certificat attaché ?"
23
24-#. modules: msf_supply_doc_export, sourcing, consumption_calculation, sale, sales_followup, msf_supply_doc_export, purchase, account_override, account, register_accounting, stock_override
25+#. modules: msf_supply_doc_export, sourcing, consumption_calculation, sale, sales_followup, msf_supply_doc_export, purchase, account_override, account, register_accounting, stock_override, purchase_override, tender_flow
26 #: field:po.follow.up,closed_ok:0
27 #: selection:real.average.consumption,state:0
28 #: selection:po.follow.up,state:0
29@@ -46585,7 +46587,7 @@
30 msgid "Europe/Ulyanovsk"
31 msgstr "Europe/Ulyanovsk"
32
33-#. modules: purchase, sync_client, sales_followup, msf_homere_interface, tender_flow, stock_forecast, mission_stock, msf_profile
34+#. modules: purchase, sync_client, sales_followup, msf_homere_interface, tender_flow, stock_forecast, mission_stock, msf_profile, purchase_override
35 #: field:stock.mission.report.line,updated:0
36 #: field:hr.payroll.import.confirmation,updated:0
37 #: selection:purchase.report,state:0
38@@ -47148,7 +47150,7 @@
39 msgid "Illinois"
40 msgstr "Illinois"
41
42-#. modules: stock_forecast, purchase, tender_flow, sales_followup
43+#. modules: stock_forecast, purchase, tender_flow, sales_followup, purchase_override
44 #: selection:purchase.report,state:0
45 #: selection:purchase.order.line,po_state:0
46 #: selection:purchase.order.line,order_state:0
47@@ -82474,6 +82476,7 @@
48 #: report:addons/msf_supply_doc_export/report/report_internal_request_xls.mako:65
49 #: report:addons/msf_supply_doc_export/report/report_purchase_order_xls.mako:83
50 #: report:addons/msf_supply_doc_export/report/report_sale_order_xls.mako:82
51+#: field:purchase.order.line,rfq_line_state_to_display:0
52 #, python-format
53 msgid "State"
54 msgstr "Statut"
55
56=== modified file 'bin/addons/purchase/__init__.py'
57--- bin/addons/purchase/__init__.py 2019-07-22 12:08:20 +0000
58+++ bin/addons/purchase/__init__.py 2019-10-17 13:49:09 +0000
59@@ -56,7 +56,6 @@
60 ('resourced_d', 'Resourced-d'),
61 ]
62
63-
64 PURCHASE_ORDER_STATE_SELECTION = [
65 ('draft', 'Draft'),
66 ('draft_p', 'Draft-p'),
67
68=== modified file 'bin/addons/purchase/purchase_order.py'
69--- bin/addons/purchase/purchase_order.py 2019-09-12 10:02:53 +0000
70+++ bin/addons/purchase/purchase_order.py 2019-10-17 13:49:09 +0000
71@@ -2601,9 +2601,9 @@
72 # set cross_docking_ok:
73 cross_docking_ok = False
74 for rfq_line in rfq.order_line:
75- if rfq_line.linked_sol_id and not rfq_line.linked_sol_id.order_id.procurement_request or \
76+ if rfq_line.linked_sol_id and (not rfq_line.linked_sol_id.order_id.procurement_request or \
77 (rfq_line.linked_sol_id.order_id.procurement_request and
78- rfq_line.linked_sol_id.order_id.location_requestor_id.usage == 'customer'):
79+ rfq_line.linked_sol_id.order_id.location_requestor_id.usage == 'customer')):
80 cross_docking_ok = True
81 break
82 self.write(cr, uid, [new_po_id], {'cross_docking_ok': cross_docking_ok}, context=context)
83
84=== modified file 'bin/addons/purchase/purchase_order_line.py'
85--- bin/addons/purchase/purchase_order_line.py 2019-10-01 09:09:50 +0000
86+++ bin/addons/purchase/purchase_order_line.py 2019-10-17 13:49:09 +0000
87@@ -1265,7 +1265,7 @@
88
89 # from RfQ line to PO line: grab the linked sol if has:
90 if pol.order_id.rfq_ok and context.get('generate_po_from_rfq', False):
91- default.update({'linked_sol_id': pol.linked_sol_id.id})
92+ default.update({'linked_sol_id': pol.linked_sol_id and pol.linked_sol_id.id or False})
93
94 if not context.get('keepDateAndDistrib'):
95 if 'confirmed_delivery_date' not in default:
96
97=== modified file 'bin/addons/purchase_override/purchase.py'
98--- bin/addons/purchase_override/purchase.py 2019-08-23 14:56:06 +0000
99+++ bin/addons/purchase_override/purchase.py 2019-10-17 13:49:09 +0000
100@@ -382,7 +382,7 @@
101
102 # cancel all non-confirmed lines:
103 if po.rfq_ok:
104- self.pool.get('purchase.order').cancel_rfq(cr, uid, [po.id], context=context)
105+ self.pool.get('purchase.order').cancel_rfq(cr, uid, [po.id], context=context, resource=resource)
106 else:
107 for pol in po.order_line:
108 if (pol.order_id.partner_type in ('external', 'esc') and pol.state in ('draft', 'validated', 'validated_n'))\
109
110=== modified file 'bin/addons/tender_flow/__init__.py'
111--- bin/addons/tender_flow/__init__.py 2012-05-15 11:47:19 +0000
112+++ bin/addons/tender_flow/__init__.py 2019-10-17 13:49:09 +0000
113@@ -18,6 +18,21 @@
114 # along with this program. If not, see <http://www.gnu.org/licenses/>.
115 #
116 ##############################################################################
117+
118+from tools.translate import _
119+
120+RFQ_STATE_SELECTION = [
121+ ('draft', 'Draft'),
122+ ('sent', 'Sent'),
123+ ('updated', 'Updated'),
124+ ('done', 'Closed'),
125+ ('cancel', 'Cancelled'),
126+]
127+
128+RFQ_LINE_STATE_DISPLAY_SELECTION = RFQ_STATE_SELECTION + [
129+ ('cancel_r', 'Cancelled-r'),
130+]
131+
132 import tender_flow
133 import wizard
134 import report
135
136=== modified file 'bin/addons/tender_flow/tender_flow.py'
137--- bin/addons/tender_flow/tender_flow.py 2019-08-14 09:17:27 +0000
138+++ bin/addons/tender_flow/tender_flow.py 2019-10-17 13:49:09 +0000
139@@ -30,6 +30,8 @@
140 import tools
141
142 from purchase import PURCHASE_ORDER_STATE_SELECTION
143+from . import RFQ_STATE_SELECTION
144+from . import RFQ_LINE_STATE_DISPLAY_SELECTION
145
146 class tender(osv.osv):
147 '''
148@@ -722,7 +724,7 @@
149 # search for the rfqs
150 rfq_ids = po_obj.search(cr, uid, [('tender_id', '=', tender.id), ('rfq_ok', '=', True)], context=context)
151 # trigger all related rfqs
152- po_obj.cancel_rfq(cr, uid, rfq_ids, context=context)
153+ po_obj.cancel_rfq(cr, uid, rfq_ids, context=context, resource=False)
154
155 for line in tender.tender_line_ids:
156 t_line_obj.cancel_sourcing(cr, uid, [line.id], context=context)
157@@ -1623,7 +1625,7 @@
158 'valid_till': fields.date(string='Valid Till', internal="purchase_order"),
159 # add readonly when state is Done
160 'sale_order_id': fields.many2one('sale.order', string='Link between RfQ and FO', readonly=True, internal="purchase_order"),
161- 'rfq_state': fields.selection([('draft', 'Draft'), ('sent', 'Sent'), ('updated', 'Updated'), ('done', 'Closed'), ('cancel', 'Cancelled')], 'Order state', required=True, readonly=True, internal="purchase_order"),
162+ 'rfq_state': fields.selection(RFQ_STATE_SELECTION, 'Order state', required=True, readonly=True, internal="purchase_order"),
163 }
164
165 _defaults = {
166@@ -1669,8 +1671,7 @@
167
168 return super(purchase_order, self).create(cr, uid, vals, context=context)
169
170-
171- def cancel_rfq(self, cr, uid, ids, context=None):
172+ def cancel_rfq(self, cr, uid, ids, context=None, resource=False):
173 '''
174 method to cancel a RfQ and its lines
175 '''
176@@ -1686,7 +1687,10 @@
177 for rfq_line in rfq.order_line:
178 if (rfq_line.order_id.partner_type in ('external', 'esc') and rfq_line.state in ('draft', 'validated', 'validated_n'))\
179 or (rfq_line.order_id.partner_type not in ('external', 'esc') and rfq_line.state == 'draft'):
180- wf_service.trg_validate(uid, 'purchase.order.line', rfq_line.id, 'cancel', cr)
181+ signal = 'cancel'
182+ if resource and rfq_line.linked_sol_id:
183+ signal = 'cancel_r'
184+ wf_service.trg_validate(uid, 'purchase.order.line', rfq_line.id, signal, cr)
185
186 self.write(cr, uid, [rfq.id], {'rfq_state': 'cancel'}, context=context)
187
188@@ -1914,10 +1918,32 @@
189 add a tender_id related field
190 '''
191 _inherit = 'purchase.order.line'
192+
193+ def _get_rfq_line_state_to_display(self, cr, uid, ids, field_name, args, context=None):
194+ '''
195+ return the state to display for RfQ lines
196+ '''
197+ if context is None:
198+ context = {}
199+ if isinstance(ids, (int,long)):
200+ ids = [ids]
201+
202+ res = {}
203+ for pol in self.browse(cr, uid, ids, context=context):
204+ if pol.order_id.rfq_ok and pol.state not in ['cancel', 'cancel_r']:
205+ res[pol.id] = pol.order_id.rfq_state
206+ else:
207+ res[pol.id] = pol.state_to_display
208+
209+ return res
210+
211 _columns = {'tender_id': fields.related('order_id', 'tender_id', type='many2one', relation='tender', string='Tender',),
212 'tender_line_id': fields.many2one('tender.line', string='Tender Line'),
213 'rfq_ok': fields.related('order_id', 'rfq_ok', type='boolean', string='RfQ ?'),
214 'sale_order_line_id': fields.many2one('sale.order.line', string='FO line', readonly=True),
215+ 'rfq_line_state_to_display': fields.function(_get_rfq_line_state_to_display, string='State',
216+ type='selection', selection=RFQ_LINE_STATE_DISPLAY_SELECTION,
217+ method=True, readonly=True)
218 }
219
220 def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
221@@ -2118,7 +2144,7 @@
222
223 line_obj.fake_unlink(cr, uid, line_ids, context=context)
224
225- self.pool.get('purchase.order').cancel_rfq(cr, uid, rfq_ids, context=context)
226+ self.pool.get('purchase.order').cancel_rfq(cr, uid, rfq_ids, context=context, resource=False)
227
228 for tender in tender_ids:
229 wf_service.trg_validate(uid, 'tender', tender, 'tender_cancel', cr)
230
231=== modified file 'bin/addons/tender_flow/tender_flow_view.xml'
232--- bin/addons/tender_flow/tender_flow_view.xml 2019-06-11 12:11:22 +0000
233+++ bin/addons/tender_flow/tender_flow_view.xml 2019-10-17 13:49:09 +0000
234@@ -328,7 +328,8 @@
235 <field name="currency_id"/>
236 <field name="tender_line_id" invisible="1" />
237 <field name="fake_state" invisible="1"/>
238- <button string="Cancel" icon="gtk-del" type="object" name="ask_unlink" attrs="{'invisible': [('fake_state', 'in', ['cancel', 'cancel_r', 'done'])]}" />
239+ <field name="rfq_line_state_to_display"/>
240+ <button string="Cancel" icon="gtk-del" type="object" name="ask_unlink" attrs="{'invisible': ['|', ('fake_state', 'in', ['cancel', 'cancel_r', 'done']), ('rfq_state', 'in', ['updated', 'done', 'cancel'])]}" />
241 </tree>
242 </field>
243 </page>

Subscribers

People subscribed via source and target branches