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

Proposed by jftempo
Status: Merged
Merged at revision: 5632
Proposed branch: lp:~dorian-kemps/unifield-server/US-7181
Merge into: lp:unifield-server
Diff against target: 142 lines (+45/-4)
6 files modified
bin/addons/msf_profile/data/patches.xml (+4/-0)
bin/addons/msf_profile/i18n/fr_MF.po (+4/-1)
bin/addons/msf_profile/msf_profile.py (+14/-0)
bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv (+1/-1)
bin/addons/product_attributes/product_attributes.py (+19/-1)
bin/addons/product_attributes/product_attributes_view.xml (+3/-1)
To merge this branch: bzr merge lp:~dorian-kemps/unifield-server/US-7181
Reviewer Review Type Date Requested Status
UniField Reviewer Team Pending
Review via email: mp+379402@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/data/patches.xml'
2--- bin/addons/msf_profile/data/patches.xml 2020-02-17 13:16:46 +0000
3+++ bin/addons/msf_profile/data/patches.xml 2020-02-19 10:26:15 +0000
4@@ -508,5 +508,9 @@
5 <record id="us_7024_update_standard" model="patch.scripts">
6 <field name="method">us_7024_update_standard</field>
7 </record>
8+
9+ <record id="us_7181_add_oc_subscrpition_to_unidata_products" model="patch.scripts">
10+ <field name="method">us_7181_add_oc_subscrpition_to_unidata_products</field>
11+ </record>
12 </data>
13 </openerp>
14
15=== modified file 'bin/addons/msf_profile/i18n/fr_MF.po'
16--- bin/addons/msf_profile/i18n/fr_MF.po 2020-02-11 09:20:13 +0000
17+++ bin/addons/msf_profile/i18n/fr_MF.po 2020-02-19 10:26:15 +0000
18@@ -108793,4 +108793,7 @@
19 msgid "Warning, to complete Segment %s, field \"Next order to be received by (modified)\" must have date filled"
20 msgstr "Attention, pour le Segment %s le champ \"Prochaine commande à recevoir (modifié)\" doit être renseigné."
21
22-
23+#. module: product_attributes
24+#: field:product.product,oc_subscription:0
25+msgid "OC Subscription"
26+msgstr "Abonnement OC"
27
28=== modified file 'bin/addons/msf_profile/msf_profile.py'
29--- bin/addons/msf_profile/msf_profile.py 2020-02-17 13:16:46 +0000
30+++ bin/addons/msf_profile/msf_profile.py 2020-02-19 10:26:15 +0000
31@@ -53,6 +53,20 @@
32 }
33
34 # UF16.0
35+ def us_7181_add_oc_subscrpition_to_unidata_products(self, cr, uid, *a, **b):
36+ """
37+ Set the new 'oc_subscription' boolean to True for each product with 'Unidata' as Product Creator
38+ """
39+ cr.execute("""
40+ UPDATE product_product SET oc_subscription = 't' WHERE id IN (
41+ SELECT p.id FROM product_product p LEFT JOIN product_international_status i ON p.international_status = i.id
42+ WHERE i.code = 'unidata'
43+ )
44+ """)
45+ self._logger.warn('%s Unidata product(s) have been updated.' % (cr.rowcount,))
46+
47+ return True
48+
49 def us_6692_new_od_journals(self, cr, uid, *a, **b):
50 """
51 1. Change the type of the existing correction journals (except OD) to "Correction Manual" so they remain usable
52
53=== modified file 'bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv'
54--- bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2020-01-30 10:35:55 +0000
55+++ bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2020-02-19 10:26:15 +0000
56@@ -123,7 +123,7 @@
57 msf_sync_data_server.price_list_version,FALSE,TRUE,FALSE,FALSE,bidirectional,Bidirectional,[],"['active', 'date_end', 'date_start', 'name', 'pricelist_id/id']",MISSION,product.pricelist.version,,Price List Version,Valid,,561
58 msf_sync_data_server.country_restrictions,TRUE,TRUE,FALSE,TRUE,bidirectional,Down,[],['name'],MISSION,res.country.restriction,,Country restrictions,Valid,,570
59 msf_sync_data_server.country_code_mapping,TRUE,TRUE,TRUE,TRUE,bidirectional,Down,[],"['instance_id/id', 'mapping_value']",COORDINATIONS,country.export.mapping,,Country Code Mapping,Valid,,571
60-msf_sync_data_server.oc_product_creator_itc_esc_hq,TRUE,TRUE,FALSE,TRUE,bidirectional,Down,"['|','|','|',('international_status','=','UniData'),('international_status','=','ITC'),('international_status','=','ESC'),('international_status','=','HQ'), ('active', 'in', ['t','f'])]","['alert_time', 'batch_management', 'categ_id/id', 'closed_article', 'manufacturer_txt', 'manufacturer_ref', 'code', 'cold_chain/id', 'composed_kit', 'xmlid_code', 'cost_method', 'country_restriction/id', 'dangerous_goods', 'default_code', 'description', 'description2', 'description_purchase', 'description_sale', 'gmdn_code', 'gmdn_description', 'heat_sensitive_item/id', 'international_status/id', 'justification_code_id/id', 'library', 'life_time', 'list_ids/id','med_device_class', 'name', 'name_template', 'controlled_substance', 'nomen_manda_0/id', 'nomen_manda_1/id', 'nomen_manda_2/id', 'nomen_manda_3/id', 'options_ids/id', 'perishable', 'procure_delay', 'procure_method', 'produce_delay', 'product_catalog_page', 'product_catalog_path', 'property_account_expense/id', 'property_account_income/id', 'property_stock_account_input/id', 'property_stock_account_output/id', 'restricted_country', 'short_shelf_life', 'single_use', 'sterilized', 'standard_price', 'sublist', 'subtype', 'asset_type_id', 'supply_method', 'type', 'un_code', 'uom_id/id', 'uom_po_id/id','use_time', 'valuation', 'weight', 'weight_net', 'active', 'state', 'state_ud', 'old_code', 'new_code', 'function_value', 'form_value', 'fit_value', 'standard_ok','transport_ok','volume', 'soq_quantity', 'soq_weight', 'soq_volume', 'msfid']",OC,product.product,,"OC Product (Creator = ITC, ESC, UniData or HQ)",Valid,,600
61+msf_sync_data_server.oc_product_creator_itc_esc_hq,TRUE,TRUE,FALSE,TRUE,bidirectional,Down,"['|','|','|',('international_status','=','UniData'),('international_status','=','ITC'),('international_status','=','ESC'),('international_status','=','HQ'), ('active', 'in', ['t','f'])]","['alert_time', 'batch_management', 'categ_id/id', 'closed_article', 'manufacturer_txt', 'manufacturer_ref', 'code', 'cold_chain/id', 'composed_kit', 'xmlid_code', 'cost_method', 'country_restriction/id', 'dangerous_goods', 'default_code', 'description', 'description2', 'description_purchase', 'description_sale', 'gmdn_code', 'gmdn_description', 'heat_sensitive_item/id', 'international_status/id', 'justification_code_id/id', 'library', 'life_time', 'list_ids/id','med_device_class', 'name', 'name_template', 'controlled_substance', 'nomen_manda_0/id', 'nomen_manda_1/id', 'nomen_manda_2/id', 'nomen_manda_3/id', 'options_ids/id', 'perishable', 'procure_delay', 'procure_method', 'produce_delay', 'product_catalog_page', 'product_catalog_path', 'property_account_expense/id', 'property_account_income/id', 'property_stock_account_input/id', 'property_stock_account_output/id', 'restricted_country', 'short_shelf_life', 'single_use', 'sterilized', 'standard_price', 'sublist', 'subtype', 'asset_type_id', 'supply_method', 'type', 'un_code', 'uom_id/id', 'uom_po_id/id','use_time', 'valuation', 'weight', 'weight_net', 'active', 'state', 'state_ud', 'old_code', 'new_code', 'function_value', 'form_value', 'fit_value', 'standard_ok','transport_ok','volume', 'soq_quantity', 'soq_weight', 'soq_volume', 'msfid', 'oc_subscription']",OC,product.product,,"OC Product (Creator = ITC, ESC, UniData or HQ)",Valid,,600
62 msf_sync_data_server.mission_product_creator_local,TRUE,TRUE,FALSE,TRUE,bidirectional,Down,"[('international_status','=','Local'), ('active', 'in', ['t','f'])]","['alert_time', 'batch_management', 'categ_id/id', 'closed_article', 'manufacturer_txt', 'manufacturer_ref', 'code', 'xmlid_code','cold_chain/id', 'composed_kit', 'cost_method', 'country_restriction/id', 'dangerous_goods', 'default_code', 'description', 'description2', 'description_purchase', 'description_sale', 'gmdn_code', 'gmdn_description', 'heat_sensitive_item/id', 'international_status/id', 'justification_code_id/id', 'library', 'life_time', 'list_ids/id','med_device_class', 'name', 'name_template', 'controlled_substance', 'nomen_manda_0/id', 'nomen_manda_1/id', 'nomen_manda_2/id', 'nomen_manda_3/id', 'options_ids/id', 'perishable', 'procure_delay', 'procure_method', 'produce_delay', 'product_catalog_page', 'product_catalog_path', 'property_account_expense/id', 'property_account_income/id', 'property_stock_account_input/id', 'property_stock_account_output/id', 'restricted_country', 'short_shelf_life', 'single_use', 'sterilized', 'standard_price', 'sublist', 'subtype', 'asset_type_id', 'supply_method', 'type', 'un_code', 'uom_id/id', 'uom_po_id/id','use_time', 'valuation', 'weight', 'weight_net', 'active', 'state', 'old_code', 'new_code', 'function_value', 'form_value', 'fit_value', 'standard_ok','transport_ok','volume', 'soq_quantity', 'soq_weight','soq_volume']",MISSION,product.product,,Mission Product (Creator = local),Valid,,601
63 msf_sync_data_server.standard_product_list,TRUE,TRUE,TRUE,TRUE,bidirectional,Down,"[('standard_list_ok','=','True')]","['creation_date', 'creator', 'description', 'last_update_date', 'name', 'order_list_print_ok', 'ref', 'standard_list_ok', 'type']",OC,product.list,,Standard Product List,Valid,,605
64 msf_sync_data_server.standard_product_list_line,TRUE,TRUE,TRUE,TRUE,bidirectional,Down,"[('list_id' , 'in', ('product.list', 'id', [('standard_list_ok','=','True')]))]","['comment','list_id/id','ref','name/id']",OC,product.list.line,,Standard Product List Line,Valid,,606
65
66=== modified file 'bin/addons/product_attributes/product_attributes.py'
67--- bin/addons/product_attributes/product_attributes.py 2020-02-10 17:16:32 +0000
68+++ bin/addons/product_attributes/product_attributes.py 2020-02-19 10:26:15 +0000
69@@ -394,6 +394,16 @@
70
71 return [('id', 'in', ids)]
72
73+ def _get_int_status_code(self, cr, uid, ids, field_name, args, context=None):
74+ if context is None:
75+ context = {}
76+ res = {}
77+
78+ for product in self.browse(cr, uid, ids, fields_to_fetch=['international_status'], context=context):
79+ res[product.id] = product.international_status.code
80+
81+ return res
82+
83 def _get_restriction(self, cr, uid, ids, field_name, args, context=None):
84 res = {}
85
86@@ -654,8 +664,9 @@
87 string='Old code',
88 size=1024,
89 ),
90- 'new_code' : fields.char('New code', size=64),
91+ 'new_code': fields.char('New code', size=64),
92 'international_status': fields.many2one('product.international.status', 'Product Creator', required=False),
93+ 'int_status_code': fields.function(_get_int_status_code, method=True, readonly=True, type="char", size=64, string="Code of Product Creator", store=False),
94 'perishable': fields.boolean('Expiry Date Mandatory'),
95 'batch_management': fields.boolean('Batch Number Mandatory'),
96 'batch_attributes': fields.function(_get_batch_attributes, type='selection', selection=[('no', 'X'), ('bn', 'BN+ED'), ('ed', 'ED only')], method=True, fnct_search=_search_batch_attributes, string="Batch Attr."),
97@@ -843,6 +854,7 @@
98 readonly=True,
99 help="Automatically filled with UniData information.",
100 ),
101+ 'oc_subscription': fields.boolean(string='OC Subscription'),
102 # TODO: validation on 'un_code' field
103 'un_code': fields.char('UN Code', size=7),
104 'gmdn_code' : fields.char('GMDN Code', size=5),
105@@ -977,6 +989,7 @@
106 'currency_id': lambda obj, cr, uid, c: obj.pool.get('res.users').browse(cr, uid, uid).company_id.currency_id.id,
107 'field_currency_id': lambda obj, cr, uid, c: obj.pool.get('res.users').browse(cr, uid, uid).company_id.currency_id.id,
108 'vat_ok': lambda obj, cr, uid, c: obj.pool.get('unifield.setup.configuration').get_config(cr, uid).vat_ok,
109+ 'oc_subscription': False,
110 }
111
112 def _check_uom_category(self, cr, uid, ids, context=None):
113@@ -1305,6 +1318,11 @@
114 vals['heat_sensitive_item'] = heat2_id
115 vals.update(self.onchange_heat(cr, uid, False, vals['heat_sensitive_item'], context=context).get('value', {}))
116
117+ if vals.get('international_status') and 'oc_subscription' not in vals:
118+ intstat_code = self.pool.get('product.international.status').browse(cr, uid, vals['international_status'],
119+ fields_to_fetch=['code'], context=context).code
120+ vals['oc_subscription'] = intstat_code == 'unidata'
121+
122 for f in ['sterilized', 'closed_article', 'single_use']:
123 if f in vals and not vals.get(f):
124 vals[f] = 'no'
125
126=== modified file 'bin/addons/product_attributes/product_attributes_view.xml'
127--- bin/addons/product_attributes/product_attributes_view.xml 2019-10-31 15:54:47 +0000
128+++ bin/addons/product_attributes/product_attributes_view.xml 2020-02-19 10:26:15 +0000
129@@ -111,10 +111,12 @@
130 <group colspan="2" col="3" name="status">
131 <separator string="Status" colspan="3"/>
132 <field name="categ_id" readonly="1" colspan="3"/>
133- <field name="international_status" required="1" widget="selection" colspan="3" />
134+ <field name="international_status" required="1" widget="selection" colspan="3"/>
135+ <field name="int_status_code" invisible="1" />
136 <field name="standard_ok" colspan="3" />
137 <field name="state" colspan="3" widget="selection" />
138 <field name="state_ud" colspan="3" />
139+ <field name="oc_subscription" colspan="3" readonly="1" attrs="{'invisible': [('int_status_code', '!=', 'unidata')]}"/>
140 <field name="active" readonly="1"/>
141 <group colspan="1" col="1">
142 <button name="deactivate_product" icon="gtk-execute" string="De-activate product" type="object" attrs="{'invisible': [('active', '=', False)]}" />

Subscribers

People subscribed via source and target branches