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
=== modified file 'bin/addons/msf_profile/i18n/fr_MF.po'
--- bin/addons/msf_profile/i18n/fr_MF.po 2019-10-15 16:08:57 +0000
+++ bin/addons/msf_profile/i18n/fr_MF.po 2019-10-17 13:49:09 +0000
@@ -8931,12 +8931,14 @@
8931msgid "! - Requires national export license"8931msgid "! - Requires national export license"
8932msgstr "! - Nécessite une licence d'exportation nationale"8932msgstr "! - Nécessite une licence d'exportation nationale"
89338933
8934#. modules: purchase, purchase_override, sale8934#. modules: purchase, purchase_override, sale, tender_flow
8935#: selection:purchase.order.line,state:08935#: selection:purchase.order.line,state:0
8936#: selection:purchase.order.merged.line,state:08936#: selection:purchase.order.merged.line,state:0
8937#: selection:sale.order.line,state:08937#: selection:sale.order.line,state:0
8938#: selection:purchase.order.line,state_to_display:08938#: selection:purchase.order.line,state_to_display:0
8939#: selection:sale.order.line,state_to_display:08939#: selection:sale.order.line,state_to_display:0
8940#: selection:purchase.order.line,rfq_line_state_to_display:0
8941#: selection:purchase.order.merged.line,rfq_line_state_to_display:0
8940msgid "Cancelled-r"8942msgid "Cancelled-r"
8941msgstr "Annulée-r"8943msgstr "Annulée-r"
89428944
@@ -29966,7 +29968,7 @@
29966msgid "Certificate attached ?"29968msgid "Certificate attached ?"
29967msgstr "Certificat attaché ?"29969msgstr "Certificat attaché ?"
2996829970
29969#. modules: msf_supply_doc_export, sourcing, consumption_calculation, sale, sales_followup, msf_supply_doc_export, purchase, account_override, account, register_accounting, stock_override29971#. 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
29970#: field:po.follow.up,closed_ok:029972#: field:po.follow.up,closed_ok:0
29971#: selection:real.average.consumption,state:029973#: selection:real.average.consumption,state:0
29972#: selection:po.follow.up,state:029974#: selection:po.follow.up,state:0
@@ -46585,7 +46587,7 @@
46585msgid "Europe/Ulyanovsk"46587msgid "Europe/Ulyanovsk"
46586msgstr "Europe/Ulyanovsk"46588msgstr "Europe/Ulyanovsk"
4658746589
46588#. modules: purchase, sync_client, sales_followup, msf_homere_interface, tender_flow, stock_forecast, mission_stock, msf_profile46590#. modules: purchase, sync_client, sales_followup, msf_homere_interface, tender_flow, stock_forecast, mission_stock, msf_profile, purchase_override
46589#: field:stock.mission.report.line,updated:046591#: field:stock.mission.report.line,updated:0
46590#: field:hr.payroll.import.confirmation,updated:046592#: field:hr.payroll.import.confirmation,updated:0
46591#: selection:purchase.report,state:046593#: selection:purchase.report,state:0
@@ -47148,7 +47150,7 @@
47148msgid "Illinois"47150msgid "Illinois"
47149msgstr "Illinois"47151msgstr "Illinois"
4715047152
47151#. modules: stock_forecast, purchase, tender_flow, sales_followup47153#. modules: stock_forecast, purchase, tender_flow, sales_followup, purchase_override
47152#: selection:purchase.report,state:047154#: selection:purchase.report,state:0
47153#: selection:purchase.order.line,po_state:047155#: selection:purchase.order.line,po_state:0
47154#: selection:purchase.order.line,order_state:047156#: selection:purchase.order.line,order_state:0
@@ -82474,6 +82476,7 @@
82474#: report:addons/msf_supply_doc_export/report/report_internal_request_xls.mako:6582476#: report:addons/msf_supply_doc_export/report/report_internal_request_xls.mako:65
82475#: report:addons/msf_supply_doc_export/report/report_purchase_order_xls.mako:8382477#: report:addons/msf_supply_doc_export/report/report_purchase_order_xls.mako:83
82476#: report:addons/msf_supply_doc_export/report/report_sale_order_xls.mako:8282478#: report:addons/msf_supply_doc_export/report/report_sale_order_xls.mako:82
82479#: field:purchase.order.line,rfq_line_state_to_display:0
82477#, python-format82480#, python-format
82478msgid "State"82481msgid "State"
82479msgstr "Statut"82482msgstr "Statut"
8248082483
=== modified file 'bin/addons/purchase/__init__.py'
--- bin/addons/purchase/__init__.py 2019-07-22 12:08:20 +0000
+++ bin/addons/purchase/__init__.py 2019-10-17 13:49:09 +0000
@@ -56,7 +56,6 @@
56 ('resourced_d', 'Resourced-d'),56 ('resourced_d', 'Resourced-d'),
57]57]
5858
59
60PURCHASE_ORDER_STATE_SELECTION = [59PURCHASE_ORDER_STATE_SELECTION = [
61 ('draft', 'Draft'),60 ('draft', 'Draft'),
62 ('draft_p', 'Draft-p'),61 ('draft_p', 'Draft-p'),
6362
=== modified file 'bin/addons/purchase/purchase_order.py'
--- bin/addons/purchase/purchase_order.py 2019-09-12 10:02:53 +0000
+++ bin/addons/purchase/purchase_order.py 2019-10-17 13:49:09 +0000
@@ -2601,9 +2601,9 @@
2601 # set cross_docking_ok:2601 # set cross_docking_ok:
2602 cross_docking_ok = False2602 cross_docking_ok = False
2603 for rfq_line in rfq.order_line:2603 for rfq_line in rfq.order_line:
2604 if rfq_line.linked_sol_id and not rfq_line.linked_sol_id.order_id.procurement_request or \2604 if rfq_line.linked_sol_id and (not rfq_line.linked_sol_id.order_id.procurement_request or \
2605 (rfq_line.linked_sol_id.order_id.procurement_request and2605 (rfq_line.linked_sol_id.order_id.procurement_request and
2606 rfq_line.linked_sol_id.order_id.location_requestor_id.usage == 'customer'):2606 rfq_line.linked_sol_id.order_id.location_requestor_id.usage == 'customer')):
2607 cross_docking_ok = True2607 cross_docking_ok = True
2608 break2608 break
2609 self.write(cr, uid, [new_po_id], {'cross_docking_ok': cross_docking_ok}, context=context)2609 self.write(cr, uid, [new_po_id], {'cross_docking_ok': cross_docking_ok}, context=context)
26102610
=== modified file 'bin/addons/purchase/purchase_order_line.py'
--- bin/addons/purchase/purchase_order_line.py 2019-10-01 09:09:50 +0000
+++ bin/addons/purchase/purchase_order_line.py 2019-10-17 13:49:09 +0000
@@ -1265,7 +1265,7 @@
12651265
1266 # from RfQ line to PO line: grab the linked sol if has:1266 # from RfQ line to PO line: grab the linked sol if has:
1267 if pol.order_id.rfq_ok and context.get('generate_po_from_rfq', False):1267 if pol.order_id.rfq_ok and context.get('generate_po_from_rfq', False):
1268 default.update({'linked_sol_id': pol.linked_sol_id.id})1268 default.update({'linked_sol_id': pol.linked_sol_id and pol.linked_sol_id.id or False})
12691269
1270 if not context.get('keepDateAndDistrib'):1270 if not context.get('keepDateAndDistrib'):
1271 if 'confirmed_delivery_date' not in default:1271 if 'confirmed_delivery_date' not in default:
12721272
=== modified file 'bin/addons/purchase_override/purchase.py'
--- bin/addons/purchase_override/purchase.py 2019-08-23 14:56:06 +0000
+++ bin/addons/purchase_override/purchase.py 2019-10-17 13:49:09 +0000
@@ -382,7 +382,7 @@
382382
383 # cancel all non-confirmed lines:383 # cancel all non-confirmed lines:
384 if po.rfq_ok:384 if po.rfq_ok:
385 self.pool.get('purchase.order').cancel_rfq(cr, uid, [po.id], context=context)385 self.pool.get('purchase.order').cancel_rfq(cr, uid, [po.id], context=context, resource=resource)
386 else:386 else:
387 for pol in po.order_line:387 for pol in po.order_line:
388 if (pol.order_id.partner_type in ('external', 'esc') and pol.state in ('draft', 'validated', 'validated_n'))\388 if (pol.order_id.partner_type in ('external', 'esc') and pol.state in ('draft', 'validated', 'validated_n'))\
389389
=== modified file 'bin/addons/tender_flow/__init__.py'
--- bin/addons/tender_flow/__init__.py 2012-05-15 11:47:19 +0000
+++ bin/addons/tender_flow/__init__.py 2019-10-17 13:49:09 +0000
@@ -18,6 +18,21 @@
18# along with this program. If not, see <http://www.gnu.org/licenses/>. 18# along with this program. If not, see <http://www.gnu.org/licenses/>.
19#19#
20##############################################################################20##############################################################################
21
22from tools.translate import _
23
24RFQ_STATE_SELECTION = [
25 ('draft', 'Draft'),
26 ('sent', 'Sent'),
27 ('updated', 'Updated'),
28 ('done', 'Closed'),
29 ('cancel', 'Cancelled'),
30]
31
32RFQ_LINE_STATE_DISPLAY_SELECTION = RFQ_STATE_SELECTION + [
33 ('cancel_r', 'Cancelled-r'),
34]
35
21import tender_flow36import tender_flow
22import wizard37import wizard
23import report38import report
2439
=== modified file 'bin/addons/tender_flow/tender_flow.py'
--- bin/addons/tender_flow/tender_flow.py 2019-08-14 09:17:27 +0000
+++ bin/addons/tender_flow/tender_flow.py 2019-10-17 13:49:09 +0000
@@ -30,6 +30,8 @@
30import tools30import tools
3131
32from purchase import PURCHASE_ORDER_STATE_SELECTION32from purchase import PURCHASE_ORDER_STATE_SELECTION
33from . import RFQ_STATE_SELECTION
34from . import RFQ_LINE_STATE_DISPLAY_SELECTION
3335
34class tender(osv.osv):36class tender(osv.osv):
35 '''37 '''
@@ -722,7 +724,7 @@
722 # search for the rfqs724 # search for the rfqs
723 rfq_ids = po_obj.search(cr, uid, [('tender_id', '=', tender.id), ('rfq_ok', '=', True)], context=context)725 rfq_ids = po_obj.search(cr, uid, [('tender_id', '=', tender.id), ('rfq_ok', '=', True)], context=context)
724 # trigger all related rfqs726 # trigger all related rfqs
725 po_obj.cancel_rfq(cr, uid, rfq_ids, context=context)727 po_obj.cancel_rfq(cr, uid, rfq_ids, context=context, resource=False)
726728
727 for line in tender.tender_line_ids:729 for line in tender.tender_line_ids:
728 t_line_obj.cancel_sourcing(cr, uid, [line.id], context=context)730 t_line_obj.cancel_sourcing(cr, uid, [line.id], context=context)
@@ -1623,7 +1625,7 @@
1623 'valid_till': fields.date(string='Valid Till', internal="purchase_order"),1625 'valid_till': fields.date(string='Valid Till', internal="purchase_order"),
1624 # add readonly when state is Done1626 # add readonly when state is Done
1625 'sale_order_id': fields.many2one('sale.order', string='Link between RfQ and FO', readonly=True, internal="purchase_order"),1627 'sale_order_id': fields.many2one('sale.order', string='Link between RfQ and FO', readonly=True, internal="purchase_order"),
1626 'rfq_state': fields.selection([('draft', 'Draft'), ('sent', 'Sent'), ('updated', 'Updated'), ('done', 'Closed'), ('cancel', 'Cancelled')], 'Order state', required=True, readonly=True, internal="purchase_order"),1628 'rfq_state': fields.selection(RFQ_STATE_SELECTION, 'Order state', required=True, readonly=True, internal="purchase_order"),
1627 }1629 }
16281630
1629 _defaults = {1631 _defaults = {
@@ -1669,8 +1671,7 @@
16691671
1670 return super(purchase_order, self).create(cr, uid, vals, context=context)1672 return super(purchase_order, self).create(cr, uid, vals, context=context)
16711673
16721674 def cancel_rfq(self, cr, uid, ids, context=None, resource=False):
1673 def cancel_rfq(self, cr, uid, ids, context=None):
1674 '''1675 '''
1675 method to cancel a RfQ and its lines1676 method to cancel a RfQ and its lines
1676 '''1677 '''
@@ -1686,7 +1687,10 @@
1686 for rfq_line in rfq.order_line:1687 for rfq_line in rfq.order_line:
1687 if (rfq_line.order_id.partner_type in ('external', 'esc') and rfq_line.state in ('draft', 'validated', 'validated_n'))\1688 if (rfq_line.order_id.partner_type in ('external', 'esc') and rfq_line.state in ('draft', 'validated', 'validated_n'))\
1688 or (rfq_line.order_id.partner_type not in ('external', 'esc') and rfq_line.state == 'draft'):1689 or (rfq_line.order_id.partner_type not in ('external', 'esc') and rfq_line.state == 'draft'):
1689 wf_service.trg_validate(uid, 'purchase.order.line', rfq_line.id, 'cancel', cr)1690 signal = 'cancel'
1691 if resource and rfq_line.linked_sol_id:
1692 signal = 'cancel_r'
1693 wf_service.trg_validate(uid, 'purchase.order.line', rfq_line.id, signal, cr)
16901694
1691 self.write(cr, uid, [rfq.id], {'rfq_state': 'cancel'}, context=context)1695 self.write(cr, uid, [rfq.id], {'rfq_state': 'cancel'}, context=context)
16921696
@@ -1914,10 +1918,32 @@
1914 add a tender_id related field1918 add a tender_id related field
1915 '''1919 '''
1916 _inherit = 'purchase.order.line'1920 _inherit = 'purchase.order.line'
1921
1922 def _get_rfq_line_state_to_display(self, cr, uid, ids, field_name, args, context=None):
1923 '''
1924 return the state to display for RfQ lines
1925 '''
1926 if context is None:
1927 context = {}
1928 if isinstance(ids, (int,long)):
1929 ids = [ids]
1930
1931 res = {}
1932 for pol in self.browse(cr, uid, ids, context=context):
1933 if pol.order_id.rfq_ok and pol.state not in ['cancel', 'cancel_r']:
1934 res[pol.id] = pol.order_id.rfq_state
1935 else:
1936 res[pol.id] = pol.state_to_display
1937
1938 return res
1939
1917 _columns = {'tender_id': fields.related('order_id', 'tender_id', type='many2one', relation='tender', string='Tender',),1940 _columns = {'tender_id': fields.related('order_id', 'tender_id', type='many2one', relation='tender', string='Tender',),
1918 'tender_line_id': fields.many2one('tender.line', string='Tender Line'),1941 'tender_line_id': fields.many2one('tender.line', string='Tender Line'),
1919 'rfq_ok': fields.related('order_id', 'rfq_ok', type='boolean', string='RfQ ?'),1942 'rfq_ok': fields.related('order_id', 'rfq_ok', type='boolean', string='RfQ ?'),
1920 'sale_order_line_id': fields.many2one('sale.order.line', string='FO line', readonly=True),1943 'sale_order_line_id': fields.many2one('sale.order.line', string='FO line', readonly=True),
1944 'rfq_line_state_to_display': fields.function(_get_rfq_line_state_to_display, string='State',
1945 type='selection', selection=RFQ_LINE_STATE_DISPLAY_SELECTION,
1946 method=True, readonly=True)
1921 }1947 }
19221948
1923 def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):1949 def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
@@ -2118,7 +2144,7 @@
21182144
2119 line_obj.fake_unlink(cr, uid, line_ids, context=context)2145 line_obj.fake_unlink(cr, uid, line_ids, context=context)
21202146
2121 self.pool.get('purchase.order').cancel_rfq(cr, uid, rfq_ids, context=context)2147 self.pool.get('purchase.order').cancel_rfq(cr, uid, rfq_ids, context=context, resource=False)
21222148
2123 for tender in tender_ids:2149 for tender in tender_ids:
2124 wf_service.trg_validate(uid, 'tender', tender, 'tender_cancel', cr)2150 wf_service.trg_validate(uid, 'tender', tender, 'tender_cancel', cr)
21252151
=== modified file 'bin/addons/tender_flow/tender_flow_view.xml'
--- bin/addons/tender_flow/tender_flow_view.xml 2019-06-11 12:11:22 +0000
+++ bin/addons/tender_flow/tender_flow_view.xml 2019-10-17 13:49:09 +0000
@@ -328,7 +328,8 @@
328 <field name="currency_id"/>328 <field name="currency_id"/>
329 <field name="tender_line_id" invisible="1" />329 <field name="tender_line_id" invisible="1" />
330 <field name="fake_state" invisible="1"/>330 <field name="fake_state" invisible="1"/>
331 <button string="Cancel" icon="gtk-del" type="object" name="ask_unlink" attrs="{'invisible': [('fake_state', 'in', ['cancel', 'cancel_r', 'done'])]}" />331 <field name="rfq_line_state_to_display"/>
332 <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'])]}" />
332 </tree>333 </tree>
333 </field>334 </field>
334 </page>335 </page>

Subscribers

People subscribed via source and target branches