Merge lp:~dorian-kemps/unifield-server/US-7181 into lp:unifield-server
- US-7181
- Merge into trunk
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
UniField Reviewer Team | Pending | ||
Review via email: mp+379402@code.launchpad.net |
Commit message
Description of the change
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)]}" /> |