Merge lp:~sylvain-legal/openupgrade-addons/7.0_point_of_sale into lp:openupgrade-addons
- 7.0_point_of_sale
- Merge into 7.0
Proposed by
Sylvain LE GAL (GRAP)
Status: | Work in progress |
---|---|
Proposed branch: | lp:~sylvain-legal/openupgrade-addons/7.0_point_of_sale |
Merge into: | lp:openupgrade-addons |
Diff against target: |
416 lines (+397/-0) 4 files modified
point_of_sale/migrations/7.0.1.0.1/openupgrade_analysis_work.txt (+169/-0) point_of_sale/migrations/7.0.1.0.1/post-migration.py (+180/-0) point_of_sale/migrations/7.0.1.0.1/pre-migration.py (+34/-0) point_of_sale/migrations/7.0.1.0.1/user_notes.txt (+14/-0) |
To merge this branch: | bzr merge lp:~sylvain-legal/openupgrade-addons/7.0_point_of_sale |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
OpenUpgrade Committers | Pending | ||
Review via email: mp+187221@code.launchpad.net |
Commit message
Description of the change
This branch will manage 'point_of_sale' migration.
Work in progress.
Please don't review until the state changes.
Merge Proposal just to inform to community i'm working on the module.
To post a comment you must log in.
- 8137. By Sylvain LE GAL (GRAP)
-
[ADD] First version Beta for 'point_of_sale' migration.
Revision history for this message
Pedro Manuel Baeza (pedro.baeza) wrote : | # |
How is this work going, Sylvain?
Revision history for this message
Sylvain LE GAL (GRAP) (sylvain-legal) wrote : | # |
Hi,
I realized a migration 6.1 -> 7.0 in November 2013 with this script. I did'nt marked this MP as 'ready to review' because this script was experimental and I think that other developpers have to work on it to make it more correct maybe.
I kept it in the state 'work in progress' because maybe this script can be usefull for any people.
Regards.
Unmerged revisions
- 8137. By Sylvain LE GAL (GRAP)
-
[ADD] First version Beta for 'point_of_sale' migration.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === added file 'point_of_sale/migrations/7.0.1.0.1/openupgrade_analysis_work.txt' |
2 | --- point_of_sale/migrations/7.0.1.0.1/openupgrade_analysis_work.txt 1970-01-01 00:00:00 +0000 |
3 | +++ point_of_sale/migrations/7.0.1.0.1/openupgrade_analysis_work.txt 2013-10-14 23:49:02 +0000 |
4 | @@ -0,0 +1,169 @@ |
5 | +# - se faire une base de référence de point of sale en 6.1 |
6 | +# passer une migration V7 avec rien, pour voir comment ça réagit. |
7 | + |
8 | + |
9 | +---Fields in module 'point_of_sale'--- |
10 | +### Create an session for each bank statement. |
11 | +point_of_sale / account.bank.statement / pos_session_id (many2one) : NEW relation: pos.session |
12 | + |
13 | +### Deleting a field related. Nothing to do. |
14 | +point_of_sale / account.bank.statement.line / journal_id (char) : DEL mode: modify |
15 | + |
16 | + |
17 | +### This concept are lost in V7. Nothing to do. |
18 | +point_of_sale / account.journal / auto_cash (boolean) : DEL |
19 | +point_of_sale / account.journal / check_dtls (boolean) : DEL |
20 | +### New concept, use default |
21 | +point_of_sale / account.journal / amount_authorized_diff (float): NEW |
22 | +point_of_sale / account.journal / self_checkout_payment_method (boolean): NEW |
23 | + |
24 | +### New concept. hypothesis : create au new pos_config object for each shop_id / sale_journal / user_id |
25 | +point_of_sale / pos.config / group_by (boolean) : NEW |
26 | +point_of_sale / pos.config / iface_cashdrawer (boolean) : NEW |
27 | +point_of_sale / pos.config / iface_electronic_scale (boolean): NEW |
28 | +point_of_sale / pos.config / iface_payment_terminal (boolean): NEW |
29 | +point_of_sale / pos.config / iface_print_via_proxy (boolean): NEW |
30 | +point_of_sale / pos.config / iface_self_checkout (boolean) : NEW |
31 | +point_of_sale / pos.config / iface_vkeyboard (boolean) : NEW |
32 | +point_of_sale / pos.config / journal_id (many2one) : NEW relation: account.journal |
33 | +point_of_sale / pos.config / journal_ids (many2many) : NEW relation: account.journal |
34 | +point_of_sale / pos.config / name (char) : NEW required: required |
35 | +point_of_sale / pos.config / sequence_id (many2one) : NEW relation: ir.sequence |
36 | +point_of_sale / pos.config / session_ids (one2many) : NEW relation: pos.session |
37 | +point_of_sale / pos.config / shop_id (many2one) : NEW relation: sale.shop, required: required, req_default: function |
38 | +point_of_sale / pos.config / state (selection) : NEW required: required, selection_keys: ['active', 'deprecated', 'inactive'], req_default: active |
39 | + |
40 | +# Pour les pos_order faire un select shop_id, sale_journal. Créer un pos_config & des pos_sessions associés. !!!! Attention aussi aux users. |
41 | + |
42 | +# New optional value. Nothing to do. |
43 | +point_of_sale / pos.order / pos_reference (char) : NEW |
44 | +### The script migration will associate a pos.order to a new 'pos.session'. (associated to sale_journal). |
45 | +# No Data loss neither, data Change. Nothing to do. |
46 | +point_of_sale / pos.order / sale_journal (many2one) : now a function |
47 | +# The script migration will associate a pos.order to a new 'pos.session'. |
48 | +point_of_sale / pos.order / session_id (many2one) : NEW relation: pos.session |
49 | +### The script migration will associate a pos.order to a new 'pos.session'. (associated to shop_id). |
50 | +# No Data loss neither, data Change. Nothing to do. |
51 | +point_of_sale / pos.order / shop_id (many2one) : now a function |
52 | + |
53 | + |
54 | +point_of_sale / pos.session / config_id (many2one) : NEW relation: pos.config, required: required |
55 | +point_of_sale / pos.session / name (char) : NEW required: required, req_default: / |
56 | +point_of_sale / pos.session / order_ids (one2many) : NEW relation: pos.order |
57 | +point_of_sale / pos.session / start_at (datetime) : NEW |
58 | +point_of_sale / pos.session / state (selection) : NEW required: required, selection_keys: ['closed', 'closing_control', 'opened', 'opening_control'], req_default: opening_control |
59 | +point_of_sale / pos.session / statement_ids (one2many) : NEW relation: account.bank.statement |
60 | +point_of_sale / pos.session / stop_at (datetime) : NEW |
61 | +point_of_sale / pos.session / user_id (many2one) : NEW relation: res.users, required: required, req_default: function |
62 | + |
63 | +### 'available_in_pos' is a new concept. If checked, the product will be available to sale in the point of sale. |
64 | +# In 6.1, the product was available if the product had a pos_categ_id defined. |
65 | +# The script migration will set to True the 'available_in_pos' value for all product with a pos_categ_id defined. |
66 | +point_of_sale / product.product / available_in_pos (boolean) : NEW |
67 | + |
68 | +### 'to_weight' is a a new concept. We assume that all products that have a unit 'uos_id' (or 'uom_id') which 'uom_categ_id' is 'product_uom_categ_kgm' can be weight. |
69 | +# The script migration will set to True the 'to_weight' value for that products. |
70 | +## USE : uom_categ, uom_categ_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'product', 'product_uom_categ_kgm') |
71 | +point_of_sale / product.product / to_weight (boolean) : NEW |
72 | + |
73 | +# New Concept for 'pos.category'. Nothing to do. |
74 | +point_of_sale / pos.category / image (binary) : NEW |
75 | + |
76 | +# New Concept for 'res_user'. Nothing to do. |
77 | +point_of_sale / res.users / ean13 (char) : NEW |
78 | + |
79 | +# Script migration will associate a new 'pos.config' to each sale user. |
80 | +point_of_sale / res.users / pos_config (many2one) : NEW relation: pos.config |
81 | + |
82 | +---XML records in module 'point_of_sale'--- |
83 | +### Ignore interface and access records |
84 | +NEW ir.actions.act_window: point_of_sale.act_pos_config_sessions |
85 | +NEW ir.actions.act_window: point_of_sale.act_pos_session_orders |
86 | +NEW ir.actions.act_window: point_of_sale.action_pos_box_in |
87 | +NEW ir.actions.act_window: point_of_sale.action_pos_box_out |
88 | +NEW ir.actions.act_window: point_of_sale.action_pos_config_pos |
89 | +NEW ir.actions.act_window: point_of_sale.action_pos_session |
90 | +NEW ir.actions.act_window: point_of_sale.action_pos_session_opening |
91 | +DEL ir.actions.act_window: point_of_sale.action_box_entries |
92 | +DEL ir.actions.act_window: point_of_sale.action_box_out |
93 | +DEL ir.actions.act_window: point_of_sale.action_pos_close_statement |
94 | +DEL ir.actions.act_window: point_of_sale.action_pos_confirm |
95 | +DEL ir.actions.act_window: point_of_sale.action_pos_sale_all |
96 | +DEL ir.actions.act_window: point_of_sale.action_product_input |
97 | +DEL ir.actions.act_window: point_of_sale.action_product_output |
98 | +DEL ir.actions.act_window: point_of_sale.action_report_cash_register_all |
99 | +NEW ir.actions.client: point_of_sale.action_client_pos_menu |
100 | +NEW ir.actions.report.xml: point_of_sale.report_user_label |
101 | +NEW ir.actions.todo: base.open_menu |
102 | +NEW ir.model.access: point_of_sale.access_account_journal_cashbox_line |
103 | +NEW ir.model.access: point_of_sale.access_ir_sequence_manager |
104 | +NEW ir.model.access: point_of_sale.access_pos_config_user |
105 | +NEW ir.model.access: point_of_sale.access_pos_session_user |
106 | +DEL ir.model.access: point_of_sale.access_account_journal_column |
107 | +DEL ir.model.access: point_of_sale.access_account_journal_column_manager |
108 | +DEL ir.model.access: point_of_sale.access_account_journal_view |
109 | +DEL ir.model.access: point_of_sale.access_account_journal_view_manager |
110 | +DEL ir.model.access: point_of_sale.access_pos_config_journal |
111 | +DEL ir.model.access: point_of_sale.access_pos_config_journal_manager |
112 | +DEL ir.model.access: point_of_sale.access_report_check_register |
113 | +NEW ir.rule: point_of_sale.rule_pos_multi_company |
114 | +NEW ir.ui.menu: point_of_sale.menu_pos_config_pos |
115 | +NEW ir.ui.menu: point_of_sale.menu_pos_session_all |
116 | +NEW ir.ui.menu: point_of_sale.menu_pos_session_opening |
117 | +DEL ir.ui.menu: point_of_sale.menu_all_menu_all_register |
118 | +DEL ir.ui.menu: point_of_sale.menu_close_statement |
119 | +DEL ir.ui.menu: point_of_sale.menu_open_statement |
120 | +DEL ir.ui.menu: point_of_sale.menu_point_ofsale_all |
121 | +DEL ir.ui.menu: point_of_sale.menu_point_open_config |
122 | +DEL ir.ui.menu: point_of_sale.menu_point_root_touchscreen |
123 | +DEL ir.ui.menu: point_of_sale.menu_report_cash_register_all |
124 | +DEL ir.ui.menu: point_of_sale.menu_wizard_enter_jrnl |
125 | +DEL ir.ui.menu: point_of_sale.menu_wizard_enter_jrnl2 |
126 | +DEL ir.ui.menu: point_of_sale.menu_wizard_pos_confirm |
127 | +DEL ir.ui.menu: point_of_sale.products_for_input_operations |
128 | +DEL ir.ui.menu: point_of_sale.products_for_output_operations |
129 | +NEW ir.ui.view: point_of_sale.pos_ean13_generator |
130 | +NEW ir.ui.view: point_of_sale.pos_session_opening_form_view |
131 | +NEW ir.ui.view: point_of_sale.res_users_form_preference_view |
132 | +NEW ir.ui.view: point_of_sale.res_users_form_view |
133 | +NEW ir.ui.view: point_of_sale.view_partner_property_form |
134 | +NEW ir.ui.view: point_of_sale.view_pos_config_form |
135 | +NEW ir.ui.view: point_of_sale.view_pos_config_search |
136 | +NEW ir.ui.view: point_of_sale.view_pos_config_tree |
137 | +NEW ir.ui.view: point_of_sale.view_pos_session_form |
138 | +NEW ir.ui.view: point_of_sale.view_pos_session_search |
139 | +NEW ir.ui.view: point_of_sale.view_pos_session_tree |
140 | +DEL ir.ui.view: point_of_sale.product_normal_form_pos_view |
141 | +DEL ir.ui.view: point_of_sale.view_box_entries |
142 | +DEL ir.ui.view: point_of_sale.view_pos_box_out |
143 | +DEL ir.ui.view: point_of_sale.view_pos_close_statement |
144 | +DEL ir.ui.view: point_of_sale.view_report_cash_register_search |
145 | +DEL ir.ui.view: point_of_sale.view_report_cash_register_tree |
146 | + |
147 | +### Ignore new sequence records |
148 | +NEW ir.sequence: point_of_sale.seq_pos_session |
149 | +NEW ir.sequence.type: point_of_sale.seq_type_pos_session |
150 | + |
151 | +### Ignore added chatter configuration |
152 | +NEW mail.message: point_of_sale.module_install_notification |
153 | + |
154 | +### New pos_config. script migration will set it in a obsolete state. |
155 | +NEW pos.config: point_of_sale.pos_config_main |
156 | + |
157 | +### New product. Nothing to do. |
158 | +NEW product.product: point_of_sale.unreferenced_product |
159 | + |
160 | +### Completely new workflow for 'pos.dession'. Nothing to do. |
161 | +NEW workflow: point_of_sale.wkf_pos_session |
162 | +NEW workflow.activity: point_of_sale.act_close |
163 | +NEW workflow.activity: point_of_sale.act_closing_control |
164 | +NEW workflow.activity: point_of_sale.act_open |
165 | +NEW workflow.activity: point_of_sale.act_opening_control |
166 | +NEW workflow.activity: point_of_sale.act_start |
167 | +NEW workflow.transition: point_of_sale.trans_closing_control_to_close |
168 | +NEW workflow.transition: point_of_sale.trans_closing_control_to_close_no_control |
169 | +NEW workflow.transition: point_of_sale.trans_open_to_close |
170 | +NEW workflow.transition: point_of_sale.trans_open_to_closing_control |
171 | +NEW workflow.transition: point_of_sale.trans_opening_control_to_open |
172 | +NEW workflow.transition: point_of_sale.trans_start_to_open |
173 | +NEW workflow.transition: point_of_sale.trans_start_to_opening_control |
174 | |
175 | === added file 'point_of_sale/migrations/7.0.1.0.1/post-migration.py' |
176 | --- point_of_sale/migrations/7.0.1.0.1/post-migration.py 1970-01-01 00:00:00 +0000 |
177 | +++ point_of_sale/migrations/7.0.1.0.1/post-migration.py 2013-10-14 23:49:02 +0000 |
178 | @@ -0,0 +1,180 @@ |
179 | +# -*- coding: utf-8 -*- |
180 | +############################################################################## |
181 | +# |
182 | +# OpenERP, Open Source Management Solution |
183 | +# This module copyright (C) 2013 Sylvain LE GAL |
184 | +# |
185 | +# This program is free software: you can redistribute it and/or modify |
186 | +# it under the terms of the GNU Affero General Public License as |
187 | +# published by the Free Software Foundation, either version 3 of the |
188 | +# License, or (at your option) any later version. |
189 | +# |
190 | +# This program is distributed in the hope that it will be useful, |
191 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
192 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
193 | +# GNU Affero General Public License for more details. |
194 | +# |
195 | +# You should have received a copy of the GNU Affero General Public License |
196 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
197 | +# |
198 | +############################################################################## |
199 | +from openerp import pooler, SUPERUSER_ID |
200 | +from openerp.openupgrade import openupgrade, openupgrade_70 |
201 | + |
202 | +def migrate_product_available_in_pos(cr, pool): |
203 | + """ |
204 | + Initialize product that available_in_pos, using old behaviour of |
205 | + 6.1 version. (In 6.1, product with pos_categ_id set are available in pos) |
206 | + """ |
207 | + cr.execute("""UPDATE product_product |
208 | + SET available_in_pos = True |
209 | + WHERE pos_categ_id is not Null""") |
210 | + |
211 | +def migrate_product_to_weight(cr, pool): |
212 | + """ |
213 | + Initialize product_to_weight value in 'product.product', assuming that |
214 | + product that have an uom weightable will be 'product_to_weight'. |
215 | + """ |
216 | + product_product_obj = pool.get('product.product') |
217 | + uom_categ, uom_categ_id = pool.get('ir.model.data').get_object_reference( |
218 | + cr, SUPERUSER_ID, 'product', 'product_uom_categ_kgm') |
219 | + uom_ids = pool.get('product.uom').search(cr, SUPERUSER_ID, |
220 | + [('category_id', '=', uom_categ_id)]) |
221 | + product_ids = product_product_obj.search(cr, SUPERUSER_ID, |
222 | + [('uom_id', 'in', uom_ids)]) |
223 | + product_product_obj.write(cr, SUPERUSER_ID, |
224 | + product_ids, |
225 | + {'to_weight' : True,}) |
226 | + |
227 | +def create_pos_config(cr, pool): |
228 | + """ |
229 | + pos_config is totally new concept. |
230 | + Script migration will create pos_config based on datas in point_of_sale (6.1) |
231 | + (One pos_config by shop and sale_journal in 6.1.) |
232 | + Script migration will create too on pos_config by sale user because it's not |
233 | + possible to create 2 pos.session active with the same 'pos.config'. |
234 | + """ |
235 | + pos_config_obj = pool.get('pos.config') |
236 | + shop_obj = pool.get('sale.shop') |
237 | + journal_obj = pool.get('account.journal') |
238 | + user_obj = pool.get('res.users') |
239 | + pos_session_obj = pool.get('pos.session') |
240 | + pos_order_obj = pool.get('pos.order') |
241 | + # Create a pos config by shop, and sale_journal |
242 | + cr.execute(""" |
243 | + SELECT shop_id, sale_journal sale_journal_id, user_id |
244 | + FROM pos_order |
245 | + GROUP BY shop_id, sale_journal, user_id;""") |
246 | + |
247 | + for shop_id, sale_journal_id, user_id in cr.fetchall(): |
248 | + # Generate a readable name |
249 | + name = shop_obj.read(cr, SUPERUSER_ID, [shop_id], ['name'])[0]['name'] |
250 | + name += " - " + journal_obj.read(cr, SUPERUSER_ID, [sale_journal_id], ['code'])[0]['code'] |
251 | + name += " - " + user_obj.read(cr, SUPERUSER_ID, [user_id], ['login'])[0]['login'] |
252 | + |
253 | + # Get the bank_journal related to new pos_config, using the history of pos_orders. |
254 | + cr.execute(""" |
255 | + SELECT abs.journal_id bank_journal_id |
256 | + FROM account_bank_statement_line absl |
257 | + INNER JOIN account_bank_statement abs ON abs.id = absl.statement_id |
258 | + INNER JOIN pos_order po ON absl.pos_statement_id= po.id |
259 | + WHERE po.shop_id = {0} and po.sale_journal = {1} |
260 | + GROUP BY abs.journal_id; """.format(shop_id, sale_journal_id)) |
261 | + |
262 | + bank_journal_ids = [] |
263 | + for bank_journal_id in cr.fetchall(): |
264 | + bank_journal_ids.append(bank_journal_id[0]) |
265 | + pos_config_id = pos_config_obj.create(cr, SUPERUSER_ID, { |
266 | + 'name' : name, |
267 | + 'journal_id': sale_journal_id, |
268 | + 'shop_id': shop_id, |
269 | + 'journal_ids' : [(6,0,bank_journal_ids)], |
270 | + }) |
271 | + |
272 | + # associate user to new pos_config. |
273 | + user_obj.write(cr, SUPERUSER_ID, [user_id], {'pos_config' : pos_config_id}) |
274 | + |
275 | + # Get all statement_id associated to a pos.session. |
276 | + cr.execute(""" |
277 | + SELECT absl.statement_id from account_bank_statement_line absl |
278 | + INNER JOIN pos_order po on po.id = absl.pos_statement_id |
279 | + WHERE po.shop_id={0} AND po.user_id={1} AND po.sale_journal={2} |
280 | + GROUP BY absl.statement_id; |
281 | + """.format(shop_id, sale_journal_id, user_id)) |
282 | + statement_ids = [] |
283 | + for statement_id in cr.fetchall(): |
284 | + statement_ids.append(statement_id[0]) |
285 | + |
286 | + # create pos session by sql, to avoid automatic creation of account bank statement |
287 | + # and other behaviours not wished |
288 | + cr.execute(""" |
289 | + INSERT INTO pos_session( |
290 | + create_uid, create_date, write_uid, write_date, |
291 | + config_id, user_id, name, state, |
292 | + start_at, stop_at, cash_journal_id, cash_register_id |
293 | + ) |
294 | + VALUES ( |
295 | + {0}, {1}, {0}, {1}, |
296 | + {2}, {0}, '{3}', 'closed', |
297 | + Null, Null, Null, Null) |
298 | + RETURNING id; |
299 | + """.format(user_id, |
300 | + "(now() at time zone 'UTC')", |
301 | + pos_config_id, |
302 | + name.encode('utf-8').strip(), |
303 | + )) |
304 | + pos_session_id = cr.fetchone()[0] |
305 | + if statement_ids !=[]: |
306 | + #import pdb; pdb.set_trace() |
307 | + for sub_ids in cr.split_for_in_conditions(statement_ids): |
308 | + cr.execute(""" |
309 | + UPDATE account_bank_statement |
310 | + SET pos_session_id = %s |
311 | + WHERE id in %%s |
312 | + """ % (pos_session_id), [tuple(sub_ids)]) |
313 | +# pos_session_id = pos_session_obj.create(cr, SUPERUSER_ID, { |
314 | +# 'config_id' : pos_config_id, |
315 | +# 'start_at' : None, |
316 | +# 'state' : 'closed', |
317 | +# 'statement_ids' : [(6,0,statement_ids)], |
318 | +# 'stop_at' : None, |
319 | +# 'user_id' : user_id, |
320 | +# }) |
321 | + |
322 | + # associate pos.order to the new pos.session |
323 | + cr.execute(""" |
324 | + UPDATE pos_order |
325 | + SET session_id={3} |
326 | + WHERE shop_id={0} AND sale_journal={1} AND user_id={2}; |
327 | + """.format(shop_id, sale_journal_id, user_id, pos_session_id)) |
328 | + |
329 | +# cr.execute(""" |
330 | +# SELECT id |
331 | +# FROM pos_order |
332 | +# WHERE shop_id={0} AND sale_journal={1} AND user_id={2}; |
333 | +# """.format(shop_id, sale_journal_id, user_id)) |
334 | +# pos_order_ids = [] |
335 | +# for pos_order_id in cr.fetchall(): |
336 | +# pos_order_ids.append(pos_order_id[0]) |
337 | +# |
338 | +# pos_order_obj.write(cr, SUPERUSER_ID, pos_order_ids, {'session_id' : pos_session_id}) |
339 | + |
340 | +def disable_default_pos_config(cr, pool): |
341 | + pass |
342 | + pos_config, pos_config_id = pool.get('ir.model.data').get_object_reference( |
343 | + cr, SUPERUSER_ID, 'point_of_sale', 'pos_config_main') |
344 | + pool.get('pos.config').write(cr, SUPERUSER_ID, |
345 | + [pos_config_id], |
346 | + {'state' : 'inactive'}) |
347 | + |
348 | + |
349 | +@openupgrade.migrate() |
350 | +def migrate(cr, version): |
351 | + pool = pooler.get_pool(cr.dbname) |
352 | + migrate_product_available_in_pos(cr, pool) |
353 | + migrate_product_to_weight(cr, pool) |
354 | + # create new pos_config |
355 | + create_pos_config(cr, pool) |
356 | + |
357 | + # disable old default pos_config |
358 | + disable_default_pos_config(cr, pool) |
359 | |
360 | === added file 'point_of_sale/migrations/7.0.1.0.1/pre-migration.py' |
361 | --- point_of_sale/migrations/7.0.1.0.1/pre-migration.py 1970-01-01 00:00:00 +0000 |
362 | +++ point_of_sale/migrations/7.0.1.0.1/pre-migration.py 2013-10-14 23:49:02 +0000 |
363 | @@ -0,0 +1,34 @@ |
364 | +# -*- coding: utf-8 -*- |
365 | +############################################################################## |
366 | +# |
367 | +# OpenERP, Open Source Management Solution |
368 | +# This module copyright (C) 2013 Sylvain LE GAL |
369 | +# |
370 | +# This program is free software: you can redistribute it and/or modify |
371 | +# it under the terms of the GNU Affero General Public License as |
372 | +# published by the Free Software Foundation, either version 3 of the |
373 | +# License, or (at your option) any later version. |
374 | +# |
375 | +# This program is distributed in the hope that it will be useful, |
376 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
377 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
378 | +# GNU Affero General Public License for more details. |
379 | +# |
380 | +# You should have received a copy of the GNU Affero General Public License |
381 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
382 | +# |
383 | +############################################################################## |
384 | + |
385 | +from openerp.openupgrade import openupgrade |
386 | + |
387 | +column_renames = { |
388 | +} |
389 | + |
390 | +xmlid_renames = [ |
391 | +] |
392 | + |
393 | + |
394 | +@openupgrade.migrate() |
395 | +def migrate(cr, version): |
396 | + openupgrade.rename_columns(cr, column_renames) |
397 | + openupgrade.rename_xmlids(cr, xmlid_renames) |
398 | |
399 | === added file 'point_of_sale/migrations/7.0.1.0.1/user_notes.txt' |
400 | --- point_of_sale/migrations/7.0.1.0.1/user_notes.txt 1970-01-01 00:00:00 +0000 |
401 | +++ point_of_sale/migrations/7.0.1.0.1/user_notes.txt 2013-10-14 23:49:02 +0000 |
402 | @@ -0,0 +1,14 @@ |
403 | +Point of Sale V7 change the behaviour of the close of bank_statement. |
404 | +It's not possible in V7 to close a session if there is some unpaid pos order in the session. |
405 | + |
406 | + |
407 | +Point of sale V7 is very different. So The script migration will assume that |
408 | +The users have used the point of sale V6.1 like a point of sale V7. Specially for the following things : |
409 | +- a user can not sale (use a pos.config) if the pos.config is in use by an other user. |
410 | +So script migration will create a pos.config for each sale user. |
411 | + |
412 | +- |
413 | + |
414 | +WARNING : standart V7 doesn't allow to close a pos.session (and so associated account.bank.statement) if a pos.order is not paid in the pos.session. |
415 | + |
416 | + |
My apologize for the mistake.
2013/10/15 Sylvain LE GAL (GRAP) <email address hidden>
> The proposal to merge /code.launchpad .net/~sylvain- legal/openupgra de-addons/ 7.0_point_ of_sale/ +merge/ 187221 /code.launchpad .net/~sylvain- legal/openupgra de-addons/ 7.0_point_ of_sale/ +merge/ 187221
> lp:~sylvain-legal/openupgrade-addons/7.0_point_of_sale into
> lp:openupgrade-addons has been updated.
>
> Status: Merged => Work in progress
>
> For more details, see:
>
> https:/
> --
>
> https:/
> You are the owner of
> lp:~sylvain-legal/openupgrade-addons/7.0_point_of_sale.
>