Merge lp:~pedro.baeza/account-financial-tools/7.0-account-chart-update-imp into lp:~joaquing-pedrosa/account-financial-tools/7.0-account-chart-update

Proposed by Pedro Manuel Baeza
Status: Merged
Merged at revision: 126
Proposed branch: lp:~pedro.baeza/account-financial-tools/7.0-account-chart-update-imp
Merge into: lp:~joaquing-pedrosa/account-financial-tools/7.0-account-chart-update
Diff against target: 2991 lines (+803/-694)
18 files modified
account_chart_update/__openerp__.py (+9/-7)
account_chart_update/i18n/account_chart_update.pot (+93/-96)
account_chart_update/i18n/ca.po (+1/-1)
account_chart_update/i18n/ca_ES.po (+1/-1)
account_chart_update/i18n/es.po (+103/-204)
account_chart_update/i18n/es_ES.po (+1/-1)
account_chart_update/i18n/fr.po (+1/-1)
account_chart_update/i18n/pt.po (+1/-1)
account_chart_update/i18n/sv.po (+1/-1)
account_chart_update/wizard/wizard_chart_update.py (+92/-208)
account_chart_update/wizard/wizard_chart_update_view.xml (+170/-173)
currency_rate_date_check/__init__.py (+25/-0)
currency_rate_date_check/__openerp__.py (+48/-0)
currency_rate_date_check/company.py (+42/-0)
currency_rate_date_check/company_view.xml (+25/-0)
currency_rate_date_check/currency_rate_date_check.py (+82/-0)
currency_rate_date_check/i18n/currency_rate_date_check.pot (+54/-0)
currency_rate_date_check/i18n/fr.po (+54/-0)
To merge this branch: bzr merge lp:~pedro.baeza/account-financial-tools/7.0-account-chart-update-imp
Reviewer Review Type Date Requested Status
Joaquin Gutierrez Approve
Review via email: mp+191201@code.launchpad.net

Description of the change

[FIX] account_chart_update: Corrected description for RST parser and english faults in it.
[FIX] account_chart_update: Corrected some english terms.
[IMP] account_chart_update: Changed name of menu to avoid excessive length.
[IMP] account_chart_update: Removed three line comments style.
[IMP] account_chart_update: Remove class instantiation.
[IMP] account_chart_update: Put method descriptions according documentation standards.
[IMP] account_chart_update: Updated translations.
[IMP] account_chart_update: Menu path to avoid needing multi-company permission.

To post a comment you must log in.
122. By Pedro Manuel Baeza

[IMP] account_chart_update: Menu path to avoid needing multi-company permission.

Revision history for this message
Joaquin Gutierrez (joaquing-pedrosa) wrote :

Thanks for your work Revision

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'account_chart_update/__openerp__.py'
2--- account_chart_update/__openerp__.py 2013-10-01 16:28:19 +0000
3+++ account_chart_update/__openerp__.py 2013-10-15 14:29:10 +0000
4@@ -31,28 +31,30 @@
5 'website': "www.zikzakmedia.com",
6 'depends': ["account"],
7 'category': "Generic Modules/Accounting",
8- 'contributors': ['Joaquin Gutierrez', 'Pedro M. Baeza'],
9+ 'contributors': ['Joaquín Gutierrez', 'Pedro M. Baeza', 'invitu'],
10 'description': """
11 Adds a wizard to update a company account chart from a chart template.
12 ======================================================================
13
14-This is a pretty useful tool to update OpenERP instalations after tax reforms
15-on the oficial charts of accounts, or to apply fixes performed on the chart
16+This is a pretty useful tool to update OpenERP installations after tax reforms
17+on the official charts of accounts, or to apply fixes performed on the chart
18 template.
19
20 The wizard:
21+
22 - Allows the user to compare a chart and a template showing differences
23- on accounts, taxes, tax codes and fiscal positions.
24+ on accounts, taxes, tax codes and fiscal positions.
25 - It may create the new account, taxes, tax codes and fiscal positions detected
26- on the template.
27+ on the template.
28 - It can also update (overwrite) the accounts, taxes, tax codes and fiscal
29- positions that got modified on the template.
30+ positions that got modified on the template.
31
32 The wizard lets the user select what kind of objects must be checked/updated,
33-and whether old records must be checked for changes and updated.
34+and whether old records must be checked for changes and updates.
35 It will display all the accounts to be created / updated with some information
36 about the detected differences, and allow the user to exclude records
37 individually.
38+
39 Any problem found while updating will be shown on the last step.
40 """,
41 'license': "AGPL-3",
42
43=== modified file 'account_chart_update/i18n/account_chart_update.pot'
44--- account_chart_update/i18n/account_chart_update.pot 2013-10-01 16:28:19 +0000
45+++ account_chart_update/i18n/account_chart_update.pot 2013-10-15 14:29:10 +0000
46@@ -4,10 +4,10 @@
47 #
48 msgid ""
49 msgstr ""
50-"Project-Id-Version: OpenERP Server 7.0-20130927-231103\n"
51+"Project-Id-Version: OpenERP Server 7.0\n"
52 "Report-Msgid-Bugs-To: \n"
53-"POT-Creation-Date: 2013-09-30 21:45+0000\n"
54-"PO-Revision-Date: 2013-09-30 21:45+0000\n"
55+"POT-Creation-Date: 2013-10-15 14:01+0000\n"
56+"PO-Revision-Date: 2013-10-15 14:01+0000\n"
57 "Last-Translator: <>\n"
58 "Language-Team: \n"
59 "MIME-Version: 1.0\n"
60@@ -16,12 +16,17 @@
61 "Plural-Forms: \n"
62
63 #. module: account_chart_update
64+#: view:wizard.update.charts.accounts:0
65+msgid "Update chart of accounts from a template"
66+msgstr ""
67+
68+#. module: account_chart_update
69 #: field:wizard.update.charts.accounts.account,update_account_id:0
70 msgid "Account to update"
71 msgstr ""
72
73 #. module: account_chart_update
74-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:359
75+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:368
76 #, python-format
77 msgid "The code field is different.\n"
78 ""
79@@ -43,19 +48,14 @@
80 msgstr ""
81
82 #. module: account_chart_update
83-#: help:wizard.update.charts.accounts,update_account:0
84-msgid "Existing accounts are updated. Accounts are searched by code."
85-msgstr ""
86-
87-#. module: account_chart_update
88-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:753
89+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:716
90 #, python-format
91 msgid "Created tax code %s.\n"
92 ""
93 msgstr ""
94
95 #. module: account_chart_update
96-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1083
97+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1012
98 #, python-format
99 msgid "Tax %s: The collected account can not be set.\n"
100 ""
101@@ -80,14 +80,14 @@
102 msgstr ""
103
104 #. module: account_chart_update
105-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1161
106+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1076
107 #, python-format
108 msgid "Fiscal position %s: The destination tax %s can not be set.\n"
109 ""
110 msgstr ""
111
112 #. module: account_chart_update
113-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:892
114+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:839
115 #, python-format
116 msgid "Tax %s: The tax code for the tax refund %s can not be set.\n"
117 ""
118@@ -104,7 +104,7 @@
119 msgstr ""
120
121 #. module: account_chart_update
122-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:630
123+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:617
124 #, python-format
125 msgid "The template has taxes the fiscal position instance does not.\n"
126 ""
127@@ -135,31 +135,19 @@
128 msgstr ""
129
130 #. module: account_chart_update
131-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:362
132+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:371
133 #, python-format
134 msgid "The info field is different.\n"
135 ""
136 msgstr ""
137
138 #. module: account_chart_update
139-#: selection:wizard.update.charts.accounts,state:0
140-msgid "Wizard Complete"
141-msgstr ""
142-
143-#. module: account_chart_update
144-#: model:ir.actions.act_window,name:account_chart_update.action_wizard_update_chart
145-#: model:ir.ui.menu,name:account_chart_update.menu_wizard
146-msgid "Update Chart of Accounts from a Chart Template\n"
147-" "
148-msgstr ""
149-
150-#. module: account_chart_update
151 #: field:wizard.update.charts.accounts,new_taxes:0
152 msgid "New taxes"
153 msgstr ""
154
155 #. module: account_chart_update
156-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:762
157+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:723
158 #, python-format
159 msgid "Updated tax code %s.\n"
160 ""
161@@ -176,21 +164,21 @@
162 msgstr ""
163
164 #. module: account_chart_update
165-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:853
166+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:806
167 #, python-format
168 msgid "Created tax %s.\n"
169 ""
170 msgstr ""
171
172 #. module: account_chart_update
173-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:456
174+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:459
175 #, python-format
176 msgid "The base sign field is different.\n"
177 ""
178 msgstr ""
179
180 #. module: account_chart_update
181-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:438
182+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:441
183 #, python-format
184 msgid "The type field is different.\n"
185 ""
186@@ -208,14 +196,14 @@
187 msgstr ""
188
189 #. module: account_chart_update
190-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:888
191+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:835
192 #, python-format
193 msgid "Tax %s: The tax code for the tax %s can not be set.\n"
194 ""
195 msgstr ""
196
197 #. module: account_chart_update
198-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:625
199+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:612
200 #, python-format
201 msgid "Tax mapping not found on the fiscal position instance: %s -> %s.\n"
202 ""
203@@ -250,7 +238,12 @@
204 msgstr ""
205
206 #. module: account_chart_update
207-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:432
208+#: help:wizard.update.charts.accounts,code_digits:0
209+msgid "No. of digits to use for account code. Make sure it is the same number as existing accounts."
210+msgstr ""
211+
212+#. module: account_chart_update
213+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:435
214 #, python-format
215 msgid "The sequence field is different.\n"
216 ""
217@@ -262,7 +255,7 @@
218 msgstr ""
219
220 #. module: account_chart_update
221-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:645
222+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:630
223 #, python-format
224 msgid "Account mapping not found on the fiscal position instance: %s -> %s.\n"
225 ""
226@@ -287,7 +280,7 @@
227 msgstr ""
228
229 #. module: account_chart_update
230-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:462
231+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:465
232 #, python-format
233 msgid "The include base amount field is different.\n"
234 ""
235@@ -299,7 +292,7 @@
236 msgstr ""
237
238 #. module: account_chart_update
239-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:648
240+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:633
241 #, python-format
242 msgid "The template has accounts the fiscal position instance does not.\n"
243 ""
244@@ -316,14 +309,20 @@
245 msgstr ""
246
247 #. module: account_chart_update
248-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1085
249+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1014
250 #, python-format
251 msgid "Tax %s: The paid account can not be set.\n"
252 ""
253 msgstr ""
254
255 #. module: account_chart_update
256-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1002
257+#: model:ir.actions.act_window,name:account_chart_update.action_wizard_update_chart
258+#: model:ir.ui.menu,name:account_chart_update.menu_wizard
259+msgid "Update chart of accounts"
260+msgstr ""
261+
262+#. module: account_chart_update
263+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:941
264 #, python-format
265 msgid "Exception creating account %s: %s - %s.\n"
266 ""
267@@ -335,7 +334,7 @@
268 msgstr ""
269
270 #. module: account_chart_update
271-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:450
272+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:453
273 #, python-format
274 msgid "The python compute field is different.\n"
275 ""
276@@ -347,36 +346,29 @@
277 msgstr ""
278
279 #. module: account_chart_update
280-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1187
281+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1092
282 #, python-format
283 msgid "Fiscal position %s: The source account %s can not be set.\n"
284 ""
285 msgstr ""
286
287 #. module: account_chart_update
288-#: field:wizard.update.charts.accounts,code_digits:0
289-msgid "# of Digits"
290-msgstr ""
291-
292-#. module: account_chart_update
293-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:886
294+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:833
295 #, python-format
296 msgid "Tax %s: The tax code for the base %s can not be set.\n"
297 ""
298 msgstr ""
299
300 #. module: account_chart_update
301-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1015
302+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:952
303 #, python-format
304 msgid "Exception writing account %s: %s - %s.\n"
305 ""
306 msgstr ""
307
308 #. module: account_chart_update
309-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1028
310-#, python-format
311-msgid "Account %s: The parent account %s can not be set.\n"
312-""
313+#: view:wizard.update.charts.accounts:0
314+msgid "Note: Not all the fields are tested for changes, just the main ones"
315 msgstr ""
316
317 #. module: account_chart_update
318@@ -385,14 +377,18 @@
319 msgstr ""
320
321 #. module: account_chart_update
322-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:239
323-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:705
324+#: view:wizard.update.charts.accounts:0
325+msgid "or"
326+msgstr ""
327+
328+#. module: account_chart_update
329+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:250
330 #, python-format
331 msgid "Update Chart of Accounts from a Chart Template "
332 msgstr ""
333
334 #. module: account_chart_update
335-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:534
336+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:531
337 #, python-format
338 msgid "The name is different.\n"
339 ""
340@@ -404,28 +400,28 @@
341 msgstr ""
342
343 #. module: account_chart_update
344-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:777
345+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:736
346 #, python-format
347 msgid "Tax code %s: The parent tax code %s can not be set.\n"
348 ""
349 msgstr ""
350
351 #. module: account_chart_update
352-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:435
353+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:438
354 #, python-format
355 msgid "The amount field is different.\n"
356 ""
357 msgstr ""
358
359 #. module: account_chart_update
360-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:447
361+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:450
362 #, python-format
363 msgid "The child depend field is different.\n"
364 ""
365 msgstr ""
366
367 #. module: account_chart_update
368-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1011
369+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:948
370 #, python-format
371 msgid "Updated account %s.\n"
372 ""
373@@ -442,14 +438,26 @@
374 msgstr ""
375
376 #. module: account_chart_update
377-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:465
378+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:468
379 #, python-format
380 msgid "The type tax use field is different.\n"
381 ""
382 msgstr ""
383
384 #. module: account_chart_update
385-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:884
386+#: selection:wizard.update.charts.accounts,state:0
387+msgid "Wizard completed"
388+msgstr ""
389+
390+#. module: account_chart_update
391+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:963
392+#, python-format
393+msgid "Account %s: The parent account %s can not be set.\n"
394+""
395+msgstr ""
396+
397+#. module: account_chart_update
398+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:831
399 #, python-format
400 msgid "Tax %s: The parent tax %s can not be set.\n"
401 ""
402@@ -477,29 +485,34 @@
403 msgstr ""
404
405 #. module: account_chart_update
406-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:365
407+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:374
408 #, python-format
409 msgid "The sign field is different.\n"
410 ""
411 msgstr ""
412
413 #. module: account_chart_update
414-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:862
415+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:813
416 #, python-format
417 msgid "Updated tax %s.\n"
418 ""
419 msgstr ""
420
421 #. module: account_chart_update
422-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:927
423+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:874
424 #, python-format
425 msgid "Exception setting the parent of account %s children: %s - %s.\n"
426 ""
427 msgstr ""
428
429 #. module: account_chart_update
430-#: help:wizard.update.charts.accounts,code_digits:0
431-msgid "No. of Digits to use for account code. Make sure it is the same number as existing accounts."
432+#: help:wizard.update.charts.accounts,update_account:0
433+msgid "Existing accounts are updated. Accounts are searched by code."
434+msgstr ""
435+
436+#. module: account_chart_update
437+#: field:wizard.update.charts.accounts,code_digits:0
438+msgid "# of digits"
439 msgstr ""
440
441 #. module: account_chart_update
442@@ -518,23 +531,18 @@
443 msgstr ""
444
445 #. module: account_chart_update
446-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1226
447+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1127
448 #, python-format
449 msgid "Error"
450 msgstr ""
451
452 #. module: account_chart_update
453 #: view:wizard.update.charts.accounts:0
454-msgid "Update Chart of Accounts from a Chart Template"
455-msgstr ""
456-
457-#. module: account_chart_update
458-#: view:wizard.update.charts.accounts:0
459 msgid "Summary of created objects"
460 msgstr ""
461
462 #. module: account_chart_update
463-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:537
464+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:534
465 #, python-format
466 msgid "The type is different.\n"
467 ""
468@@ -563,16 +571,11 @@
469
470 #. module: account_chart_update
471 #: view:wizard.update.charts.accounts:0
472-msgid "Note:Not all the fields are tested for changes, just the main ones"
473-msgstr ""
474-
475-#. module: account_chart_update
476-#: view:wizard.update.charts.accounts:0
477 msgid "Create/Update"
478 msgstr ""
479
480 #. module: account_chart_update
481-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:890
482+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:837
483 #, python-format
484 msgid "Tax %s: The tax code for the base refund %s can not be set.\n"
485 ""
486@@ -589,14 +592,14 @@
487 msgstr ""
488
489 #. module: account_chart_update
490-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:459
491+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:462
492 #, python-format
493 msgid "The tax sign field is different.\n"
494 ""
495 msgstr ""
496
497 #. module: account_chart_update
498-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1226
499+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1127
500 #, python-format
501 msgid "One or more errors detected!\n"
502 "\n"
503@@ -604,7 +607,7 @@
504 msgstr ""
505
506 #. module: account_chart_update
507-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1189
508+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1094
509 #, python-format
510 msgid "Fiscal position %s: The destination account %s can not be set.\n"
511 ""
512@@ -616,7 +619,7 @@
513 msgstr ""
514
515 #. module: account_chart_update
516-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:441
517+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:444
518 #, python-format
519 msgid "The applicable type field is different.\n"
520 ""
521@@ -633,7 +636,7 @@
522 msgstr ""
523
524 #. module: account_chart_update
525-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:627
526+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:614
527 #, python-format
528 msgid "Tax mapping not found on the fiscal position instance: %s -> None.\n"
529 ""
530@@ -650,7 +653,7 @@
531 msgstr ""
532
533 #. module: account_chart_update
534-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:540
535+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:537
536 #, python-format
537 msgid "The user type is different.\n"
538 ""
539@@ -670,26 +673,20 @@
540 msgstr ""
541
542 #. module: account_chart_update
543-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:543
544+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:540
545 #, python-format
546 msgid "The reconcile is different.\n"
547 ""
548 msgstr ""
549
550 #. module: account_chart_update
551-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:444
552+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:447
553 #, python-format
554 msgid "The domain field is different.\n"
555 ""
556 msgstr ""
557
558 #. module: account_chart_update
559-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1253
560-#, python-format
561-msgid "Update Accounts"
562-msgstr ""
563-
564-#. module: account_chart_update
565 #: view:wizard.update.charts.accounts:0
566 msgid "Other options"
567 msgstr ""
568@@ -705,14 +702,14 @@
569 msgstr ""
570
571 #. module: account_chart_update
572-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1191
573+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1096
574 #, python-format
575 msgid "Created or updated fiscal position %s.\n"
576 ""
577 msgstr ""
578
579 #. module: account_chart_update
580-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1159
581+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1074
582 #, python-format
583 msgid "Fiscal position %s: The source tax %s can not be set.\n"
584 ""
585@@ -729,7 +726,7 @@
586 msgstr ""
587
588 #. module: account_chart_update
589-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:998
590+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:937
591 #, python-format
592 msgid "Created account %s.\n"
593 ""
594
595=== modified file 'account_chart_update/i18n/ca.po'
596--- account_chart_update/i18n/ca.po 2013-10-01 16:28:19 +0000
597+++ account_chart_update/i18n/ca.po 2013-10-15 14:29:10 +0000
598@@ -208,7 +208,7 @@
599
600 #. module: account_chart_update
601 #: selection:wizard.update.charts.accounts,state:0
602-msgid "Wizard Complete"
603+msgid "Wizard completep"
604 msgstr "Assistent completat"
605
606 #. module: account_chart_update
607
608=== modified file 'account_chart_update/i18n/ca_ES.po'
609--- account_chart_update/i18n/ca_ES.po 2013-10-01 16:28:19 +0000
610+++ account_chart_update/i18n/ca_ES.po 2013-10-15 14:29:10 +0000
611@@ -233,7 +233,7 @@
612
613 #. module: account_chart_update
614 #: selection:wizard.update.charts.accounts,state:0
615-msgid "Wizard Complete"
616+msgid "Wizard completed"
617 msgstr "Assistent completat"
618
619 #. module: account_chart_update
620
621=== modified file 'account_chart_update/i18n/es.po'
622--- account_chart_update/i18n/es.po 2013-10-01 16:28:19 +0000
623+++ account_chart_update/i18n/es.po 2013-10-15 14:29:10 +0000
624@@ -1,21 +1,24 @@
625 # Translation of OpenERP Server.
626 # This file contains the translation of the following modules:
627-# * account_chart_update
628+# * account_chart_update
629 #
630 msgid ""
631 msgstr ""
632-"Project-Id-Version: OpenERP Server 5.0.10\n"
633+"Project-Id-Version: OpenERP Server 7.0\n"
634 "Report-Msgid-Bugs-To: \n"
635-"POT-Creation-Date: 2013-09-30 21:45+0000\n"
636-"PO-Revision-Date: 2013-09-30 23:52+0100\n"
637-"Last-Translator: Joaquin Gutierrez <joaquing.pedrosa@gmail.com>\n"
638+"POT-Creation-Date: 2013-10-15 14:02+0000\n"
639+"PO-Revision-Date: 2013-10-15 16:02+0100\n"
640+"Last-Translator: Pedro Manuel Baeza <pedro.baeza@serviciosbaeza.com>\n"
641 "Language-Team: \n"
642-"Language: \n"
643 "MIME-Version: 1.0\n"
644 "Content-Type: text/plain; charset=UTF-8\n"
645 "Content-Transfer-Encoding: 8bit\n"
646-"X-Launchpad-Export-Date: 2012-11-28 04:55+0000\n"
647-"X-Generator: Launchpad (build 16309)\n"
648+"Plural-Forms: \n"
649+
650+#. module: account_chart_update
651+#: view:wizard.update.charts.accounts:0
652+msgid "Update chart of accounts from a template"
653+msgstr "Actualizar plan contable desde una plantilla"
654
655 #. module: account_chart_update
656 #: field:wizard.update.charts.accounts.account,update_account_id:0
657@@ -23,7 +26,7 @@
658 msgstr "Cuenta a actualizar"
659
660 #. module: account_chart_update
661-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:359
662+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:368
663 #, python-format
664 msgid "The code field is different.\n"
665 msgstr "El campo código es diferente.\n"
666@@ -44,18 +47,13 @@
667 msgstr "Posición fiscal a actualizar"
668
669 #. module: account_chart_update
670-#: help:wizard.update.charts.accounts,update_account:0
671-msgid "Existing accounts are updated. Accounts are searched by code."
672-msgstr "Las cuentas contables existentes serán actualizadas. Las cuentas se buscarán por código."
673-
674-#. module: account_chart_update
675-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:753
676+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:716
677 #, python-format
678 msgid "Created tax code %s.\n"
679 msgstr "Creado código de impuesto %s.\n"
680
681 #. module: account_chart_update
682-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1083
683+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1012
684 #, python-format
685 msgid "Tax %s: The collected account can not be set.\n"
686 msgstr "Impuesto %s: No se pudo establecer la cuenta a recibir.\n"
687@@ -79,22 +77,21 @@
688 msgstr "Compañía"
689
690 #. module: account_chart_update
691-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1161
692+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1076
693 #, python-format
694 msgid "Fiscal position %s: The destination tax %s can not be set.\n"
695 msgstr "Posición fiscal %s: No se pudo establecer la cuenta destino %s.\n"
696
697 #. module: account_chart_update
698-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:892
699+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:839
700 #, python-format
701 msgid "Tax %s: The tax code for the tax refund %s can not be set.\n"
702 msgstr "Impuesto %s: No se pudo establecer el código de impuesto para la devolución de impuesto %s.\n"
703
704 #. module: account_chart_update
705 #: view:wizard.update.charts.accounts:0
706-#, fuzzy
707 msgid "If you leave these options set, the wizard will not just create new records, but also update records with changes (i.e. different tax amount)"
708-msgstr "Si deja marcadas estas opciones, el asistente no sólo creará nuevos registros, sino que también actualizará registros con cambios (p.ej. diferente importe de impuesto)"
709+msgstr "Si deja esta opción marcada, el asistente creará no sólo nuevos registros, si no que también actualizará aquellos con cambios (por ejemplo, diferente porcentaje de impuesto)"
710
711 #. module: account_chart_update
712 #: field:wizard.update.charts.accounts,updated_tax_codes:0
713@@ -102,7 +99,7 @@
714 msgstr "Códigos de impuesto actualizados"
715
716 #. module: account_chart_update
717-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:630
718+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:617
719 #, python-format
720 msgid "The template has taxes the fiscal position instance does not.\n"
721 msgstr "La plantilla tiene impuestos que la instancia de posición fiscal no.\n"
722@@ -132,32 +129,18 @@
723 msgstr "Impuestos"
724
725 #. module: account_chart_update
726-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:362
727+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:371
728 #, python-format
729 msgid "The info field is different.\n"
730 msgstr "El campo info es diferente.\n"
731
732 #. module: account_chart_update
733-#: selection:wizard.update.charts.accounts,state:0
734-msgid "Wizard Complete"
735-msgstr "Asistente completado"
736-
737-#. module: account_chart_update
738-#: model:ir.actions.act_window,name:account_chart_update.action_wizard_update_chart
739-#: model:ir.ui.menu,name:account_chart_update.menu_wizard
740-#, fuzzy
741-msgid ""
742-"Update Chart of Accounts from a Chart Template\n"
743-"\t\t\t"
744-msgstr "Actualizar plan contable a partir de una plantilla de plan contable"
745-
746-#. module: account_chart_update
747 #: field:wizard.update.charts.accounts,new_taxes:0
748 msgid "New taxes"
749 msgstr "Nuevos impuestos"
750
751 #. module: account_chart_update
752-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:762
753+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:723
754 #, python-format
755 msgid "Updated tax code %s.\n"
756 msgstr "Actualizado código de impuesto %s.\n"
757@@ -173,19 +156,19 @@
758 msgstr "Impuesto a actualizar"
759
760 #. module: account_chart_update
761-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:853
762+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:806
763 #, python-format
764 msgid "Created tax %s.\n"
765 msgstr "Creado impuesto %s.\n"
766
767 #. module: account_chart_update
768-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:456
769+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:459
770 #, python-format
771 msgid "The base sign field is different.\n"
772 msgstr "El campo signo base es diferente.\n"
773
774 #. module: account_chart_update
775-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:438
776+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:441
777 #, python-format
778 msgid "The type field is different.\n"
779 msgstr "El campo tipo es diferente.\n"
780@@ -193,7 +176,7 @@
781 #. module: account_chart_update
782 #: model:ir.model,name:account_chart_update.model_wizard_update_charts_accounts_account
783 msgid "wizard.update.charts.accounts.account"
784-msgstr "wizard.update.charts.accounts.account"
785+msgstr "Asistente de actualización de plan contable"
786
787 #. module: account_chart_update
788 #: view:wizard.update.charts.accounts:0
789@@ -202,13 +185,13 @@
790 msgstr "Cuentas"
791
792 #. module: account_chart_update
793-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:888
794+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:835
795 #, python-format
796 msgid "Tax %s: The tax code for the tax %s can not be set.\n"
797 msgstr "Impuesto %s: No se pudo establecer el código de impuesto para el impuesto %s.\n"
798
799 #. module: account_chart_update
800-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:625
801+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:612
802 #, python-format
803 msgid "Tax mapping not found on the fiscal position instance: %s -> %s.\n"
804 msgstr "Mapeo de cuenta no encontrado en la instancia de la posición fiscal: %s -> %s.\n"
805@@ -242,7 +225,12 @@
806 msgstr "Nueva plantilla"
807
808 #. module: account_chart_update
809-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:432
810+#: help:wizard.update.charts.accounts,code_digits:0
811+msgid "No. of digits to use for account code. Make sure it is the same number as existing accounts."
812+msgstr "Nº de dígitos a usar para el código de cuenta. Asegúrese que este número es el mismo que el de las cuentas existentes."
813+
814+#. module: account_chart_update
815+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:435
816 #, python-format
817 msgid "The sequence field is different.\n"
818 msgstr "El campo secuencia es diferente.\n"
819@@ -253,7 +241,7 @@
820 msgstr "Cuentas actualizadas"
821
822 #. module: account_chart_update
823-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:645
824+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:630
825 #, python-format
826 msgid "Account mapping not found on the fiscal position instance: %s -> %s.\n"
827 msgstr "Mapeo de cuenta no encontrado en la instancia de posición fiscal: %s -> %s.\n"
828@@ -277,7 +265,7 @@
829 msgstr "Impuestos actualizados"
830
831 #. module: account_chart_update
832-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:462
833+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:465
834 #, python-format
835 msgid "The include base amount field is different.\n"
836 msgstr "El campo incluir en importe base es diferente.\n"
837@@ -288,7 +276,7 @@
838 msgstr "Plan contable"
839
840 #. module: account_chart_update
841-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:648
842+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:633
843 #, python-format
844 msgid "The template has accounts the fiscal position instance does not.\n"
845 msgstr "La plantilla tiene cuentas que la instancia de posición fiscal no.\n"
846@@ -304,13 +292,19 @@
847 msgstr "Paso 2"
848
849 #. module: account_chart_update
850-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1085
851+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1014
852 #, python-format
853 msgid "Tax %s: The paid account can not be set.\n"
854 msgstr "Impuesto %s: No se pudo establecer la cuenta a pagar.\n"
855
856 #. module: account_chart_update
857-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1002
858+#: model:ir.actions.act_window,name:account_chart_update.action_wizard_update_chart
859+#: model:ir.ui.menu,name:account_chart_update.menu_wizard
860+msgid "Update chart of accounts"
861+msgstr "Actualizar plan de cuentas"
862+
863+#. module: account_chart_update
864+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:941
865 #, python-format
866 msgid "Exception creating account %s: %s - %s.\n"
867 msgstr "Excepción creando cuenta %s: %s - %s.\n"
868@@ -321,7 +315,7 @@
869 msgstr "Continuar tras errores"
870
871 #. module: account_chart_update
872-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:450
873+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:453
874 #, python-format
875 msgid "The python compute field is different.\n"
876 msgstr "El campo cálculo python es diferente.\n"
877@@ -332,33 +326,27 @@
878 msgstr "wizard.update.charts.accounts.tax.code"
879
880 #. module: account_chart_update
881-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1187
882+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1092
883 #, python-format
884 msgid "Fiscal position %s: The source account %s can not be set.\n"
885 msgstr "Posición fiscal %s: No se pudo establecer la cuenta de origen %s.\n"
886
887 #. module: account_chart_update
888-#: field:wizard.update.charts.accounts,code_digits:0
889-msgid "# of Digits"
890-msgstr "Núm. de dígitos"
891-
892-#. module: account_chart_update
893-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:886
894+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:833
895 #, python-format
896 msgid "Tax %s: The tax code for the base %s can not be set.\n"
897 msgstr "Impuesto %s: No se pudo establecer el código de impuesto para la base %s.\n"
898
899 #. module: account_chart_update
900-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1015
901+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:952
902 #, python-format
903 msgid "Exception writing account %s: %s - %s.\n"
904 msgstr "Excepción escribiendo cuenta %s: %s - %s.\n"
905
906 #. module: account_chart_update
907-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1028
908-#, python-format
909-msgid "Account %s: The parent account %s can not be set.\n"
910-msgstr "Cuenta %s: No se pudo establecer la cuenta padre %s.\n"
911+#: view:wizard.update.charts.accounts:0
912+msgid "Note: Not all the fields are tested for changes, just the main ones"
913+msgstr "Nota: No se comprueban todos los campos, sólo los importantes"
914
915 #. module: account_chart_update
916 #: field:wizard.update.charts.accounts,update_fiscal_position:0
917@@ -366,14 +354,18 @@
918 msgstr "Actualizar posiciones fiscales"
919
920 #. module: account_chart_update
921-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:239
922-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:705
923-#, fuzzy, python-format
924+#: view:wizard.update.charts.accounts:0
925+msgid "or"
926+msgstr "o"
927+
928+#. module: account_chart_update
929+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:250
930+#, python-format
931 msgid "Update Chart of Accounts from a Chart Template "
932 msgstr "Actualizar plan contable a partir de una plantilla de plan contable"
933
934 #. module: account_chart_update
935-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:534
936+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:531
937 #, python-format
938 msgid "The name is different.\n"
939 msgstr "El nombre es diferente.\n"
940@@ -384,25 +376,25 @@
941 msgstr "Registro"
942
943 #. module: account_chart_update
944-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:777
945+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:736
946 #, python-format
947 msgid "Tax code %s: The parent tax code %s can not be set.\n"
948 msgstr "Código de impuesto %s: No se pudo establecer el código de impuesto padre %s.\n"
949
950 #. module: account_chart_update
951-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:435
952+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:438
953 #, python-format
954 msgid "The amount field is different.\n"
955 msgstr "El campo importe es diferente.\n"
956
957 #. module: account_chart_update
958-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:447
959+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:450
960 #, python-format
961 msgid "The child depend field is different.\n"
962 msgstr "El campo impuesto en hijos es diferente.\n"
963
964 #. module: account_chart_update
965-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1011
966+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:948
967 #, python-format
968 msgid "Updated account %s.\n"
969 msgstr "Actualizada cuenta %s.\n"
970@@ -418,13 +410,24 @@
971 msgstr "Mensajes y errores"
972
973 #. module: account_chart_update
974-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:465
975+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:468
976 #, python-format
977 msgid "The type tax use field is different.\n"
978 msgstr "El campo aplicación impuesto es diferente.\n"
979
980 #. module: account_chart_update
981-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:884
982+#: selection:wizard.update.charts.accounts,state:0
983+msgid "Wizard completed"
984+msgstr "Asistente completado"
985+
986+#. module: account_chart_update
987+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:963
988+#, python-format
989+msgid "Account %s: The parent account %s can not be set.\n"
990+msgstr "Cuenta %s: No se pudo establecer la cuenta padre %s.\n"
991+
992+#. module: account_chart_update
993+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:831
994 #, python-format
995 msgid "Tax %s: The parent tax %s can not be set.\n"
996 msgstr "Impuesto %s: No se pudo establecer el impuesto padre %s.\n"
997@@ -451,27 +454,32 @@
998 msgstr "Resumen de objetos actualizados"
999
1000 #. module: account_chart_update
1001-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:365
1002+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:374
1003 #, python-format
1004 msgid "The sign field is different.\n"
1005 msgstr "El campo signo es diferente.\n"
1006
1007 #. module: account_chart_update
1008-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:862
1009+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:813
1010 #, python-format
1011 msgid "Updated tax %s.\n"
1012 msgstr "Actualizado impuesto %s.\n"
1013
1014 #. module: account_chart_update
1015-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:927
1016+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:874
1017 #, python-format
1018 msgid "Exception setting the parent of account %s children: %s - %s.\n"
1019 msgstr "Excepción estableciendo el padre de los hijos de la cuenta %s: %s - %s.\n"
1020
1021 #. module: account_chart_update
1022-#: help:wizard.update.charts.accounts,code_digits:0
1023-msgid "No. of Digits to use for account code. Make sure it is the same number as existing accounts."
1024-msgstr "Número de dígitos para utilizar en el código de cuenta. Asegúrese que sea el mismo número de dígitos que el de las cuentas existentes."
1025+#: help:wizard.update.charts.accounts,update_account:0
1026+msgid "Existing accounts are updated. Accounts are searched by code."
1027+msgstr "Las cuentas contables existentes serán actualizadas. Las cuentas se buscarán por código."
1028+
1029+#. module: account_chart_update
1030+#: field:wizard.update.charts.accounts,code_digits:0
1031+msgid "# of digits"
1032+msgstr "Nº de dígitos"
1033
1034 #. module: account_chart_update
1035 #: field:wizard.update.charts.accounts,update_tax_code:0
1036@@ -489,23 +497,18 @@
1037 msgstr "Plantilla de cuenta"
1038
1039 #. module: account_chart_update
1040-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1226
1041+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1127
1042 #, python-format
1043 msgid "Error"
1044 msgstr "Error"
1045
1046 #. module: account_chart_update
1047 #: view:wizard.update.charts.accounts:0
1048-msgid "Update Chart of Accounts from a Chart Template"
1049-msgstr "Actualizar plan contable a partir de una plantilla de plan contable"
1050-
1051-#. module: account_chart_update
1052-#: view:wizard.update.charts.accounts:0
1053 msgid "Summary of created objects"
1054 msgstr "Resumen de objetos creados"
1055
1056 #. module: account_chart_update
1057-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:537
1058+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:534
1059 #, python-format
1060 msgid "The type is different.\n"
1061 msgstr "El tipo es diferente.\n"
1062@@ -533,17 +536,11 @@
1063
1064 #. module: account_chart_update
1065 #: view:wizard.update.charts.accounts:0
1066-#, fuzzy
1067-msgid "Note:Not all the fields are tested for changes, just the main ones"
1068-msgstr "Nota: No se buscan cambios en todos los campos, sólo en los principales."
1069-
1070-#. module: account_chart_update
1071-#: view:wizard.update.charts.accounts:0
1072 msgid "Create/Update"
1073 msgstr "Crear/Actualizar"
1074
1075 #. module: account_chart_update
1076-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:890
1077+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:837
1078 #, python-format
1079 msgid "Tax %s: The tax code for the base refund %s can not be set.\n"
1080 msgstr "Impuesto %s: No se pudo establecer el código de impuesto para la base de devolución %s.\n"
1081@@ -559,13 +556,13 @@
1082 msgstr "Plantilla plan contable"
1083
1084 #. module: account_chart_update
1085-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:459
1086+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:462
1087 #, python-format
1088 msgid "The tax sign field is different.\n"
1089 msgstr "El campo signo de impuesto es diferente.\n"
1090
1091 #. module: account_chart_update
1092-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1226
1093+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1127
1094 #, python-format
1095 msgid ""
1096 "One or more errors detected!\n"
1097@@ -577,7 +574,7 @@
1098 "%s"
1099
1100 #. module: account_chart_update
1101-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1189
1102+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1094
1103 #, python-format
1104 msgid "Fiscal position %s: The destination account %s can not be set.\n"
1105 msgstr "Posición fiscal %s: No se pudo establecer la cuenta de destino %s.\n"
1106@@ -588,7 +585,7 @@
1107 msgstr "Nuevas posiciones fiscales"
1108
1109 #. module: account_chart_update
1110-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:441
1111+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:444
1112 #, python-format
1113 msgid "The applicable type field is different.\n"
1114 msgstr "El campo tipo aplicable es diferente.\n"
1115@@ -604,7 +601,7 @@
1116 msgstr "Plantilla de impuesto"
1117
1118 #. module: account_chart_update
1119-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:627
1120+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:614
1121 #, python-format
1122 msgid "Tax mapping not found on the fiscal position instance: %s -> None.\n"
1123 msgstr "Mapeo de cuentas no encontrado en la instancia de posición fiscal: %s -> Ninguno.\n"
1124@@ -620,7 +617,7 @@
1125 msgstr "Las posiciones fiscales existentes serán actualizadas. Las posiciones fiscales se buscarán por nombre."
1126
1127 #. module: account_chart_update
1128-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:540
1129+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:537
1130 #, python-format
1131 msgid "The user type is different.\n"
1132 msgstr "El tipo de usuario es diferente.\n"
1133@@ -635,29 +632,22 @@
1134
1135 #. module: account_chart_update
1136 #: view:wizard.update.charts.accounts:0
1137-#, fuzzy
1138 msgid "This wizard will update your accounts, taxes and fiscal positions according to the selected chart template"
1139-msgstr "Este asistente actualizará sus cuentas, impuestos y posiciones fiscales de acuerdo a la plantilla de plan contable seleccionada."
1140+msgstr "Este asistente actualizará sus cuentas, impuestos y posiciones fiscales de acuerdo a la plantilla de plan contable seleccionada"
1141
1142 #. module: account_chart_update
1143-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:543
1144+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:540
1145 #, python-format
1146 msgid "The reconcile is different.\n"
1147 msgstr "El campo reconciliar es diferente.\n"
1148
1149 #. module: account_chart_update
1150-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:444
1151+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:447
1152 #, python-format
1153 msgid "The domain field is different.\n"
1154 msgstr "El campo dominio es diferente.\n"
1155
1156 #. module: account_chart_update
1157-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1253
1158-#, fuzzy, python-format
1159-msgid "Update Accounts"
1160-msgstr "Actualizar cuentas"
1161-
1162-#. module: account_chart_update
1163 #: view:wizard.update.charts.accounts:0
1164 msgid "Other options"
1165 msgstr "Otras opciones"
1166@@ -673,13 +663,13 @@
1167 msgstr "Registros a crear/actualizar"
1168
1169 #. module: account_chart_update
1170-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1191
1171+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1096
1172 #, python-format
1173 msgid "Created or updated fiscal position %s.\n"
1174 msgstr "Creada o actualizada posición fiscal %s.\n"
1175
1176 #. module: account_chart_update
1177-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1159
1178+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:1074
1179 #, python-format
1180 msgid "Fiscal position %s: The source tax %s can not be set.\n"
1181 msgstr "Posición fiscal %s: No se pudo establecer el impuesto origen %s.\n"
1182@@ -692,10 +682,10 @@
1183 #. module: account_chart_update
1184 #: help:wizard.update.charts.accounts,lang:0
1185 msgid "For records searched by name (taxes, tax codes, fiscal positions), the template name will be matched against the record name on this language."
1186-msgstr "Para los registros de (impuestos, códigos de impuestos y posiciones fiscales) se comparan con los de la plantilla seleccionada, basándose en sus nombres."
1187+msgstr "Para los registros de impuestos, códigos de impuestos y posiciones fiscales, sus nombres se comparan con los de la plantilla seleccionada."
1188
1189 #. module: account_chart_update
1190-#: code:addons/account_chart_update/wizard/wizard_chart_update.py:998
1191+#: code:addons/account_chart_update/wizard/wizard_chart_update.py:937
1192 #, python-format
1193 msgid "Created account %s.\n"
1194 msgstr "Creada cuenta %s.\n"
1195@@ -708,101 +698,10 @@
1196 #. module: account_chart_update
1197 #: help:wizard.update.charts.accounts,continue_on_errors:0
1198 msgid "If set, the wizard will continue to the next step even if there are minor errors (for example the parent account of a new account couldn't be set)."
1199-msgstr "Si marcado, el asistente continuará al paso siguiente incluso si hay errores menores (por ejemplo no se pudo establecer la cuenta padre de una nueva cuenta)."
1200+msgstr "Si está marcado, el asistente continuará al paso siguiente incluso si hay errores menores (por ejemplo, no se pudo establecer la cuenta padre de una nueva cuenta)."
1201
1202 #. module: account_chart_update
1203 #: field:wizard.update.charts.accounts.tax.code,tax_code_id:0
1204 msgid "Tax code template"
1205 msgstr "Plantilla de código de impuesto"
1206
1207-#~ msgid "Invalid model name in the action definition."
1208-#~ msgstr "Nombre de modelo inválido en la definición de acción."
1209-
1210-#~ msgid "Ok"
1211-#~ msgstr "Aceptar"
1212-
1213-#~ msgid "The tax group field is different.\n"
1214-#~ msgstr "El campo grupo de impuestos es diferente.\n"
1215-
1216-#~ msgid "Invalid XML for View Architecture!"
1217-#~ msgstr "¡XML inválido para la estructura de la vista!"
1218-
1219-#~ msgid ""
1220-#~ "\n"
1221-#~ "Adds a wizard to update a company account chart from a chart template.\n"
1222-#~ "\n"
1223-#~ "This is a pretty useful tool to update OpenERP instalations after tax "
1224-#~ "reforms\n"
1225-#~ "on the oficial charts of accounts, or to apply fixes performed on the "
1226-#~ "chart\n"
1227-#~ "template.\n"
1228-#~ "\n"
1229-#~ "The wizard:\n"
1230-#~ "\n"
1231-#~ "- Allows the user to compare a chart and a template showing differences\n"
1232-#~ " on accounts, taxes, tax codes and fiscal positions.\n"
1233-#~ "- It may create the new account, taxes, tax codes and fiscal positions "
1234-#~ "detected\n"
1235-#~ " on the template.\n"
1236-#~ "- It can also update (overwrite) the accounts, taxes, tax codes and "
1237-#~ "fiscal\n"
1238-#~ " positions that got modified on the template.\n"
1239-#~ "\n"
1240-#~ "The wizard lets the user select what kind of objects must be checked/"
1241-#~ "updated,\n"
1242-#~ "and whether old records must be checked for changes and updated.\n"
1243-#~ "It will display all the accounts to be created / updated with some "
1244-#~ "information\n"
1245-#~ "about the detected differences, and allow the user to exclude records\n"
1246-#~ "individually.\n"
1247-#~ "Any problem found while updating will be shown on the last step.\n"
1248-#~ "\n"
1249-#~ "Authors:\n"
1250-#~ " Jordi Esteve (Zikzakmedia) <jesteve@zikzakmedia.com>\n"
1251-#~ " Borja López Soilán (Pexego) <borjals@pexego.es>\n"
1252-#~ msgstr ""
1253-#~ "\n"
1254-#~ "Añade un asistente para actualizar el plan de cuentas de una compañía "
1255-#~ "desde una plantilla.\n"
1256-#~ "\n"
1257-#~ "Es una herramienta bastante útil para actualizar instalaciones de OpenERP "
1258-#~ "tras reformas de impuestos\n"
1259-#~ "en los planes contables oficiales, o para aplicar correcciones realizadas "
1260-#~ "en la plantilla del\n"
1261-#~ "plan contable.\n"
1262-#~ "\n"
1263-#~ "El asistente:\n"
1264-#~ "\n"
1265-#~ "- Permite al usuario comparar un plan y una plantilla mostrando las "
1266-#~ "diferencias\n"
1267-#~ " en cuentas, impuestos, códigos de impuestos y posiciones fiscales.\n"
1268-#~ "- Puede crear las nuevas cuentas, impuestos, códigos de impuestos y "
1269-#~ "posiciones fiscales\n"
1270-#~ " detectadas en la plantilla.\n"
1271-#~ "- También puede actualizar (sobreescribir) las cuentas, impuestos, "
1272-#~ "códigos de impuestos y posiciones\n"
1273-#~ " fiscales que se modificaron en la plantilla.\n"
1274-#~ "\n"
1275-#~ "El asistente permite al usuario seleccionar que clase de objetos deben "
1276-#~ "ser comprobados/actualizados,\n"
1277-#~ "y si se deben buscar cambios en los registros existentes y "
1278-#~ "actualizarlos.\n"
1279-#~ "Mostrará todas las cuentas a crear / actualizar con alguna información\n"
1280-#~ "sobre las diferencias detectadas, permitiendo al usuario excluir "
1281-#~ "registros\n"
1282-#~ "individualmente.\n"
1283-#~ "Cualquier problema encontrado al actualizar se mostrará en el último "
1284-#~ "paso.\n"
1285-#~ "\n"
1286-#~ "Autores:\n"
1287-#~ " Jordi Esteve (Zikzakmedia) <jesteve@zikzakmedia.com>\n"
1288-#~ " Borja López Soilán (Pexego) <borjals@pexego.es>\n"
1289-
1290-#~ msgid "Detect changes and update the Account Chart from a template"
1291-#~ msgstr "Detectar cambios y actualizar el Plan Contable desde una plantilla"
1292-
1293-#~ msgid ""
1294-#~ "The Object name must start with x_ and not contain any special character !"
1295-#~ msgstr ""
1296-#~ "¡El objeto debe empezar con x_ y no puede contener ningún carácter "
1297-#~ "especial!"
1298
1299=== modified file 'account_chart_update/i18n/es_ES.po'
1300--- account_chart_update/i18n/es_ES.po 2013-10-01 16:28:19 +0000
1301+++ account_chart_update/i18n/es_ES.po 2013-10-15 14:29:10 +0000
1302@@ -138,7 +138,7 @@
1303
1304 #. module: account_chart_update
1305 #: selection:wizard.update.charts.accounts,state:0
1306-msgid "Wizard Complete"
1307+msgid "Wizard completed"
1308 msgstr "Asistente completado"
1309
1310 #. module: account_chart_update
1311
1312=== modified file 'account_chart_update/i18n/fr.po'
1313--- account_chart_update/i18n/fr.po 2013-10-08 18:15:46 +0000
1314+++ account_chart_update/i18n/fr.po 2013-10-15 14:29:10 +0000
1315@@ -140,7 +140,7 @@
1316
1317 #. module: account_chart_update
1318 #: selection:wizard.update.charts.accounts,state:0
1319-msgid "Wizard Complete"
1320+msgid "Wizard completed"
1321 msgstr "Assistant terminé"
1322
1323 #. module: account_chart_update
1324
1325=== modified file 'account_chart_update/i18n/pt.po'
1326--- account_chart_update/i18n/pt.po 2013-10-01 16:28:19 +0000
1327+++ account_chart_update/i18n/pt.po 2013-10-15 14:29:10 +0000
1328@@ -208,7 +208,7 @@
1329
1330 #. module: account_chart_update
1331 #: selection:wizard.update.charts.accounts,state:0
1332-msgid "Wizard Complete"
1333+msgid "Wizard completed"
1334 msgstr "Assistente Completo"
1335
1336 #. module: account_chart_update
1337
1338=== modified file 'account_chart_update/i18n/sv.po'
1339--- account_chart_update/i18n/sv.po 2013-10-01 16:28:19 +0000
1340+++ account_chart_update/i18n/sv.po 2013-10-15 14:29:10 +0000
1341@@ -201,7 +201,7 @@
1342
1343 #. module: account_chart_update
1344 #: selection:wizard.update.charts.accounts,state:0
1345-msgid "Wizard Complete"
1346+msgid "Wizard completed"
1347 msgstr ""
1348
1349 #. module: account_chart_update
1350
1351=== modified file 'account_chart_update/wizard/wizard_chart_update.py'
1352--- account_chart_update/wizard/wizard_chart_update.py 2013-10-08 18:15:46 +0000
1353+++ account_chart_update/wizard/wizard_chart_update.py 2013-10-15 14:29:10 +0000
1354@@ -19,15 +19,10 @@
1355 # along with this program. If not, see <http://www.gnu.org/licenses/>.
1356 #
1357 ##############################################################################
1358-"""
1359-Account Chart Update Wizard
1360-"""
1361-
1362 from openerp.osv import fields, orm
1363 from openerp.tools.translate import _
1364 import logging
1365
1366-
1367 def _reopen(self, res_id, model):
1368 return {
1369 'type': 'ir.actions.act_window',
1370@@ -54,10 +49,10 @@
1371 self.messages = []
1372 self.errors = []
1373
1374- """
1375- Adds a message to the log.
1376- """
1377 def add(self, message, is_error=False):
1378+ """
1379+ Adds a message to the log.
1380+ """
1381 logger = logging.getLogger("account_chart_update")
1382 if is_error:
1383 logger.warning(u"Log line: %s" % message)
1384@@ -66,10 +61,10 @@
1385 logger.debug(u"Log line: %s" % message)
1386 self.messages.append(message)
1387
1388- """
1389- Returns whether errors where logged.
1390- """
1391 def has_errors(self):
1392+ """
1393+ Returns whether errors where logged.
1394+ """
1395 return self.errors
1396
1397 def __call__(self):
1398@@ -85,10 +80,10 @@
1399 class wizard_update_charts_accounts(orm.TransientModel):
1400 _name = 'wizard.update.charts.accounts'
1401
1402- """
1403- Gets the available languages for the selection.
1404- """
1405 def _get_lang_selection_options(self, cr, uid, context={}):
1406+ """
1407+ Gets the available languages for the selection.
1408+ """
1409 obj = self.pool.get('res.lang')
1410 ids = obj.search(cr, uid, [], context=context)
1411 res = obj.read(cr, uid, ids, ['code', 'name'], context)
1412@@ -98,11 +93,11 @@
1413 'state': fields.selection([
1414 ('init', 'Step 1'),
1415 ('ready', 'Step 2'),
1416- ('done', 'Wizard Complete')
1417+ ('done', 'Wizard completed')
1418 ], 'Status', readonly=True),
1419 'company_id': fields.many2one('res.company', 'Company', required=True, ondelete='set null'),
1420 'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True, ondelete='set null'),
1421- 'code_digits': fields.integer('# of Digits', required=True, help="No. of Digits to use for account code. Make sure it is the same number as existing accounts."),
1422+ 'code_digits': fields.integer('# of digits', required=True, help="No. of digits to use for account code. Make sure it is the same number as existing accounts."),
1423 'lang': fields.selection(_get_lang_selection_options, 'Language', size=5, help="For records searched by name (taxes, tax codes, fiscal positions), the template name will be matched against the record name on this language."),
1424 'update_tax_code': fields.boolean('Update tax codes', help="Existing tax codes are updated. Tax codes are searched by name."),
1425 'update_tax': fields.boolean('Update taxes', help="Existing taxes are updated. Taxes are searched by name."),
1426@@ -125,11 +120,11 @@
1427 'updated_fps': fields.integer('Updated fiscal positions', readonly=True),
1428 'log': fields.text('Messages and Errors', readonly=True)
1429 }
1430- """
1431- Redefine the search to search by company name.
1432- """
1433 def name_search(self, cr, user, name,
1434 args=None, operator='ilike', context=None, limit=80):
1435+ """
1436+ Redefine the search to search by company name.
1437+ """
1438 if not name:
1439 name = '%'
1440 if not args:
1441@@ -142,10 +137,10 @@
1442 cr, user, [('company_id', operator, name)] + args, limit=limit)
1443 return self.name_get(cr, user, ids, context=context)
1444
1445- """
1446- Use the company name and template as name.
1447- """
1448 def name_get(self, cr, uid, ids, context=None):
1449+ """
1450+ Use the company name and template as name.
1451+ """
1452 if context is None:
1453 context = {}
1454 if not len(ids):
1455@@ -157,10 +152,10 @@
1456 ' - ' + record.chart_template_id.name))
1457 return res
1458
1459- """
1460- Returns the default chart template.
1461- """
1462 def _get_chart(self, cr, uid, context=None):
1463+ """
1464+ Returns the default chart template.
1465+ """
1466 if context is None:
1467 context = {}
1468 ids = self.pool.get(
1469@@ -169,13 +164,13 @@
1470 return ids[0]
1471 return False
1472
1473- """
1474- Returns the default code size for the accounts.
1475- To figure out the number of digits of the accounts it look at the
1476- code size of the default receivable account of the company
1477- (or user's company if any company is given).
1478- """
1479 def _get_code_digits(self, cr, uid, context=None, company_id=None):
1480+ """
1481+ Returns the default code size for the accounts.
1482+ To figure out the number of digits of the accounts it look at the
1483+ code size of the default receivable account of the company
1484+ (or user's company if any company is given).
1485+ """
1486 if context is None:
1487 context = {}
1488 property_obj = self.pool.get('ir.property')
1489@@ -225,10 +220,10 @@
1490 'lang': lambda self, cr, uid, context: context and context.get('lang') or None,
1491 }
1492
1493- """
1494- Update the code size when the company changes
1495- """
1496 def onchange_company_id(self, cr, uid, ids, company_id, context=None):
1497+ """
1498+ Update the code size when the company changes
1499+ """
1500 res = {
1501 'value': {
1502 'code_digits': self._get_code_digits(
1503@@ -240,10 +235,10 @@
1504 }
1505 return res
1506
1507- """
1508- Initial action that sets the initial state.
1509- """
1510 def action_init(self, cr, uid, ids, context=None):
1511+ """
1512+ Initial action that sets the initial state.
1513+ """
1514 if context is None:
1515 context = {}
1516 wizard = self.browse(cr, uid, ids[0], context=context)
1517@@ -268,10 +263,11 @@
1518 ##########################################################################
1519 # Helper methods
1520 ##########################################################################
1521- """
1522+
1523+ def _map_tax_template(self, cr, uid, wizard, tax_template_mapping, tax_template, context=None):
1524+ """
1525 Adds a tax template -> tax id to the mapping.
1526- """
1527- def _map_tax_template(self, cr, uid, wizard, tax_template_mapping, tax_template, context=None):
1528+ """
1529 if tax_template and not tax_template_mapping.get(tax_template.id):
1530 taxes = self.pool.get('account.tax')
1531 tax_ids = taxes.search(cr, uid, [
1532@@ -281,10 +277,10 @@
1533 if tax_ids:
1534 tax_template_mapping[tax_template.id] = tax_ids[0]
1535
1536- """
1537- Adds a tax code template -> tax code id to the mapping.
1538- """
1539 def _map_tax_code_template(self, cr, uid, wizard, tax_code_template_mapping, tax_code_template, context=None):
1540+ """
1541+ Adds a tax code template -> tax code id to the mapping.
1542+ """
1543 if tax_code_template and not tax_code_template_mapping.get(tax_code_template.id):
1544 tax_codes = self.pool.get('account.tax.code')
1545 root_tax_code_id = wizard.chart_template_id.tax_code_root_id.id
1546@@ -297,10 +293,10 @@
1547 tax_code_template_mapping[
1548 tax_code_template.id] = tax_code_ids[0]
1549
1550- """
1551- Adds an account template -> account id to the mapping
1552- """
1553 def _map_account_template(self, cr, uid, wizard, account_template_mapping, account_template, context=None):
1554+ """
1555+ Adds an account template -> account id to the mapping
1556+ """
1557 if account_template and not account_template_mapping.get(account_template.id):
1558 accounts = self.pool.get('account.account')
1559 code = account_template.code or ''
1560@@ -314,10 +310,11 @@
1561 ], context=context)
1562 if account_ids:
1563 account_template_mapping[account_template.id] = account_ids[0]
1564- """
1565- Adds a fiscal position template -> fiscal position id to the mapping.
1566- """
1567+
1568 def _map_fp_template(self, cr, uid, wizard, fp_template_mapping, fp_template, context=None):
1569+ """
1570+ Adds a fiscal position template -> fiscal position id to the mapping.
1571+ """
1572 if fp_template and not fp_template_mapping.get(fp_template.id):
1573 fiscalpositions = self.pool.get('account.fiscal.position')
1574 fp_ids = fiscalpositions.search(cr, uid, [
1575@@ -327,10 +324,10 @@
1576 if fp_ids:
1577 fp_template_mapping[fp_template.id] = fp_ids[0]
1578
1579- """
1580- Search for, and load, tax code templates to create/update.
1581- """
1582 def _find_tax_codes(self, cr, uid, wizard, context=None):
1583+ """
1584+ Search for, and load, tax code templates to create/update.
1585+ """
1586 new_tax_codes = 0
1587 updated_tax_codes = 0
1588 tax_code_template_mapping = {}
1589@@ -343,9 +340,7 @@
1590 wiz_taxcodes.unlink(
1591 cr, uid, wiz_taxcodes.search(cr, uid, []))
1592
1593- #
1594 # Search for new / updated tax codes
1595- #
1596 root_tax_code_id = wizard.chart_template_id.tax_code_root_id.id
1597 children_tax_code_template = taxes_codes_templates.search(cr, uid, [(
1598 'parent_id', 'child_of', [root_tax_code_id])], order='id')
1599@@ -363,9 +358,7 @@
1600 'type': 'new',
1601 }, context)
1602 elif wizard.update_tax_code:
1603- #
1604 # Check the tax code for changes.
1605- #
1606 modified = False
1607 notes = ""
1608 tax_code = taxcodes.browse(
1609@@ -384,9 +377,7 @@
1610 # TODO: We could check other account fields for changes...
1611
1612 if modified:
1613- #
1614 # Tax code to update.
1615- #
1616 updated_tax_codes += 1
1617 wiz_taxcodes.create(cr, uid, {
1618 'tax_code_id': tax_code_template.id,
1619@@ -401,10 +392,11 @@
1620 'updated': updated_tax_codes,
1621 'mapping': tax_code_template_mapping
1622 }
1623- """
1624- Search for, and load, tax templates to create/update.
1625- """
1626+
1627 def _find_taxes(self, cr, uid, wizard, context=None):
1628+ """
1629+ Search for, and load, tax templates to create/update.
1630+ """
1631 new_taxes = 0
1632 updated_taxes = 0
1633 tax_template_mapping = {}
1634@@ -415,10 +407,7 @@
1635 delay_wiz_tax = []
1636 # Remove previous taxes
1637 wiz_taxes.unlink(cr, uid, wiz_taxes.search(cr, uid, []))
1638-
1639- #
1640 # Search for new / updated taxes
1641- #
1642 for tax_template in wizard.chart_template_id.tax_template_ids:
1643 # Ensure the tax template is on the map (search for the mapped tax
1644 # id).
1645@@ -438,9 +427,7 @@
1646 else:
1647 delay_wiz_tax.append(vals_wiz)
1648 elif wizard.update_tax:
1649- #
1650 # Check the tax for changes.
1651- #
1652 modified = False
1653 notes = ""
1654 tax = taxes.browse(cr, uid, tax_id, context=context)
1655@@ -483,9 +470,7 @@
1656 # TODO: We could check other tax fields for changes...
1657
1658 if modified:
1659- #
1660 # Tax code to update.
1661- #
1662 updated_taxes += 1
1663 wiz_taxes.create(cr, uid, {
1664 'tax_id': tax_template.id,
1665@@ -500,10 +485,10 @@
1666
1667 return {'new': new_taxes, 'updated': updated_taxes, 'mapping': tax_template_mapping}
1668
1669- """
1670- Search for, and load, account templates to create/update.
1671- """
1672 def _find_accounts(self, cr, uid, wizard, context=None):
1673+ """
1674+ Search for, and load, account templates to create/update.
1675+ """
1676 new_accounts = 0
1677 updated_accounts = 0
1678 account_template_mapping = {}
1679@@ -517,9 +502,7 @@
1680 wiz_accounts.unlink(
1681 cr, uid, wiz_accounts.search(cr, uid, []))
1682
1683- #
1684 # Search for new / updated accounts
1685- #
1686 root_account_id = wizard.chart_template_id.account_root_id.id
1687 children_acc_template = accounts_template.search(cr, uid, [(
1688 'parent_id', 'child_of', [root_account_id])], context=context)
1689@@ -538,9 +521,7 @@
1690 'type': 'new',
1691 }, context)
1692 elif wizard.update_account:
1693- #
1694 # Check the account for changes.
1695- #
1696 modified = False
1697 notes = ""
1698 account = accounts.browse(
1699@@ -562,9 +543,7 @@
1700 # TODO: We could check other account fields for changes...
1701
1702 if modified:
1703- #
1704 # Account to update.
1705- #
1706 updated_accounts += 1
1707 wiz_accounts.create(cr, uid, {
1708 'account_id': account_template.id,
1709@@ -576,10 +555,10 @@
1710
1711 return {'new': new_accounts, 'updated': updated_accounts, 'mapping': account_template_mapping}
1712
1713- """
1714- Search for, and load, fiscal position templates to create/update.
1715- """
1716 def _find_fiscal_positions(self, cr, uid, wizard, context=None):
1717+ """
1718+ Search for, and load, fiscal position templates to create/update.
1719+ """
1720 new_fps = 0
1721 updated_fps = 0
1722 fp_template_mapping = {}
1723@@ -592,9 +571,7 @@
1724 # Remove previous fiscal positions
1725 wiz_fiscalpositions.unlink(cr, uid, wiz_fiscalpositions.search(cr, uid, []))
1726
1727- #
1728 # Search for new / updated fiscal positions
1729- #
1730 fp_template_ids = fiscalpostitions_template.search(cr, uid, [('chart_template_id', '=', wizard.chart_template_id.id)], context=context)
1731 for fp_template in fiscalpostitions_template.browse(cr, uid, fp_template_ids, context=context):
1732 # Ensure the fiscal position template is on the map (search for the
1733@@ -604,9 +581,7 @@
1734
1735 fp_id = fp_template_mapping.get(fp_template.id)
1736 if not fp_id:
1737- #
1738 # New fiscal position template.
1739- #
1740 new_fps += 1
1741 wiz_fiscalpositions.create(cr, uid, {
1742 'fiscal_position_id': fp_template.id,
1743@@ -614,16 +589,12 @@
1744 'type': 'new',
1745 }, context)
1746 elif wizard.update_fiscal_position:
1747- #
1748 # Check the fiscal position for changes.
1749- #
1750 modified = False
1751 notes = ""
1752 fp = fiscalpositions.browse(cr, uid, fp_id, context=context)
1753
1754- #
1755 # Check fiscal position taxes for changes.
1756- #
1757 if fp_template.tax_ids and fp.tax_ids:
1758 for fp_tax_template in fp_template.tax_ids:
1759 found = False
1760@@ -646,9 +617,7 @@
1761 notes += _("The template has taxes the fiscal position instance does not.\n")
1762 modified = True
1763
1764- #
1765 # Check fiscal position accounts for changes.
1766- #
1767 if fp_template.account_ids and fp.account_ids:
1768 for fp_account_template in fp_template.account_ids:
1769 found = False
1770@@ -665,9 +634,7 @@
1771 modified = True
1772
1773 if modified:
1774- #
1775 # Fiscal position template to update.
1776- #
1777 updated_fps += 1
1778 wiz_fiscalpositions.create(cr, uid, {
1779 'fiscal_position_id': fp_template.id,
1780@@ -679,10 +646,10 @@
1781
1782 return {'new': new_fps, 'updated': updated_fps, 'mapping': fp_template_mapping}
1783
1784- """
1785- Searchs for records to update/create and shows them
1786- """
1787 def action_find_records(self, cr, uid, ids, context=None):
1788+ """
1789+ Searchs for records to update/create and shows them
1790+ """
1791 if context is None:
1792 context = {}
1793 wizard = self.browse(cr, uid, ids[0], context=context)
1794@@ -692,17 +659,13 @@
1795 elif context.get('lang'):
1796 del context['lang']
1797
1798- #
1799 # Search for, and load, the records to create/update.
1800- #
1801 tax_codes_res = self._find_tax_codes(cr, uid, wizard, context=context)
1802 taxes_res = self._find_taxes(cr, uid, wizard, context=context)
1803 accounts_res = self._find_accounts(cr, uid, wizard, context=context)
1804 fps_res = self._find_fiscal_positions(cr, uid, wizard, context=context)
1805
1806- #
1807 # Write the results, and go to the next step.
1808- #
1809 self.write(cr, uid, [wizard.id], {
1810 'state': 'ready',
1811 'new_tax_codes': tax_codes_res.get('new', 0),
1812@@ -716,10 +679,11 @@
1813 }, context)
1814
1815 return _reopen(self, wizard.id, 'wizard.update.chart.accounts')
1816- """
1817- Search for, and load, tax code templates to create/update.
1818- """
1819+
1820 def _update_tax_codes(self, cr, uid, wizard, log, context=None):
1821+ """
1822+ Search for, and load, tax code templates to create/update.
1823+ """
1824 taxcodes = self.pool.get('account.tax.code')
1825 root_tax_code_id = wizard.chart_template_id.tax_code_root_id.id
1826 new_tax_codes = 0
1827@@ -733,9 +697,7 @@
1828 # Ensure the parent tax code template is on the map.
1829 self._map_tax_code_template(cr, uid, wizard, tax_code_template_mapping, tax_code_template.parent_id, context)
1830
1831- #
1832 # Values
1833- #
1834 vals = {
1835 'name': tax_code_name,
1836 'code': tax_code_template.code,
1837@@ -749,17 +711,13 @@
1838 modified = False
1839
1840 if wiz_tax_code.type == 'new':
1841- #
1842 # Create the tax code
1843- #
1844 tax_code_id = taxcodes.create(cr, uid, vals)
1845 log.add(_("Created tax code %s.\n") % tax_code_name)
1846 new_tax_codes += 1
1847 modified = True
1848 elif wizard.update_tax_code and wiz_tax_code.update_tax_code_id:
1849- #
1850 # Update the tax code
1851- #
1852 tax_code_id = wiz_tax_code.update_tax_code_id.id
1853 taxcodes.write(cr, uid, [tax_code_id], vals)
1854 log.add(_("Updated tax code %s.\n") % tax_code_name)
1855@@ -773,9 +731,7 @@
1856 tax_code_template_mapping[tax_code_template.id] = tax_code_id
1857
1858 if modified:
1859- #
1860 # Detect errors
1861- #
1862 if tax_code_template.parent_id and not tax_code_template_mapping.get(tax_code_template.parent_id.id):
1863 log.add(_("Tax code %s: The parent tax code %s can not be set.\n") % (tax_code_name, tax_code_template.parent_id.name), True)
1864
1865@@ -785,10 +741,10 @@
1866 'mapping': tax_code_template_mapping
1867 }
1868
1869- """
1870- Search for, and load, tax templates to create/update.
1871- """
1872 def _update_taxes(self, cr, uid, wizard, log, tax_code_template_mapping, context=None):
1873+ """
1874+ Search for, and load, tax templates to create/update.
1875+ """
1876 taxes = self.pool.get('account.tax')
1877
1878 new_taxes = 0
1879@@ -803,9 +759,7 @@
1880 self._map_tax_template(cr, uid, wizard, tax_template_mapping,
1881 tax_template.parent_id, context)
1882
1883- #
1884 # Ensure the referenced tax codes are on the map.
1885- #
1886 tax_code_templates_to_find = [
1887 tax_template.base_code_id,
1888 tax_template.tax_code_id,
1889@@ -815,9 +769,7 @@
1890 for tax_code_template in [tmpl for tmpl in tax_code_templates_to_find if tmpl]:
1891 self._map_tax_code_template(cr, uid, wizard, tax_code_template_mapping, tax_code_template)
1892
1893- #
1894 # Values
1895- #
1896 vals_tax = {
1897 'name': tax_template.name,
1898 'sequence': tax_template.sequence,
1899@@ -849,17 +801,13 @@
1900 modified = False
1901
1902 if wiz_tax.type == 'new':
1903- #
1904 # Create a new tax.
1905- #
1906 tax_id = taxes.create(cr, uid, vals_tax)
1907 log.add(_("Created tax %s.\n") % tax_template.name)
1908 new_taxes += 1
1909 modified = True
1910 elif wizard.update_tax and wiz_tax.update_tax_id:
1911- #
1912 # Update a tax.
1913- #
1914 tax_id = wiz_tax.update_tax_id.id
1915 taxes.write(cr, uid, [tax_id], vals_tax)
1916 log.add(_("Updated tax %s.\n") % tax_template.name)
1917@@ -872,17 +820,13 @@
1918 tax_template_mapping[tax_template.id] = tax_id
1919
1920 if modified:
1921- #
1922 # Add to the dict of taxes waiting for accounts.
1923- #
1924 taxes_pending_for_accounts[tax_id] = {
1925 'account_collected_id': tax_template.account_collected_id and tax_template.account_collected_id.id or False,
1926 'account_paid_id': tax_template.account_paid_id and tax_template.account_paid_id.id or False,
1927 }
1928
1929- #
1930 # Detect errors
1931- #
1932 if tax_template.parent_id and not tax_template_mapping.get(tax_template.parent_id.id):
1933 log.add(_("Tax %s: The parent tax %s can not be set.\n") % (tax_template.name, tax_template.parent_id.name), True)
1934 if tax_template.base_code_id and not tax_code_template_mapping.get(tax_template.base_code_id.id):
1935@@ -901,12 +845,12 @@
1936 'pending': taxes_pending_for_accounts
1937 }
1938
1939- """
1940- Updates the parent_id of accounts that seem to be children of the
1941- given account (accounts that start with the same code and are brothers
1942- of the first account).
1943- """
1944 def _update_children_accounts_parent(self, cr, uid, wizard, log, parent_account_id, context=None):
1945+ """
1946+ Updates the parent_id of accounts that seem to be children of the
1947+ given account (accounts that start with the same code and are brothers
1948+ of the first account).
1949+ """
1950 account_account = self.pool.get('account.account')
1951 parent_account = account_account.browse(
1952 cr, uid, parent_account_id, context=context)
1953@@ -931,10 +875,10 @@
1954
1955 return True
1956
1957- """
1958- Search for, and load, account templates to create/update.
1959- """
1960 def _update_accounts(self, cr, uid, wizard, log, tax_template_mapping, context=None):
1961+ """
1962+ Search for, and load, account templates to create/update.
1963+ """
1964 accounts = self.pool.get('account.account')
1965 root_account_id = wizard.chart_template_id.account_root_id.id
1966
1967@@ -951,9 +895,7 @@
1968 # Ensure the parent account template is on the map.
1969 self._map_account_template(cr, uid, wizard, account_template_mapping, account_template.parent_id, context)
1970
1971- #
1972 # Ensure the related tax templates are on the map.
1973- #
1974 for tax_template in account_template.tax_ids:
1975 self._map_tax_template(cr, uid, wizard, tax_template_mapping,
1976 tax_template, context)
1977@@ -961,19 +903,15 @@
1978 # Get the tax ids
1979 tax_ids = [tax_template_mapping[tax_template.id] for tax_template in account_template.tax_ids if tax_template_mapping[tax_template.id]]
1980
1981- #
1982 # Calculate the account code (we need to add zeros to non-view
1983 # account codes)
1984- #
1985 code = account_template.code or ''
1986 if account_template.type != 'view':
1987 if len(code) > 0 and len(code) <= wizard.code_digits:
1988 code = '%s%s' % (
1989 code, '0' * (wizard.code_digits - len(code)))
1990
1991- #
1992 # Values
1993- #
1994 vals = {
1995 'name': (root_account_id == account_template.id) and wizard.company_id.name or account_template.name,
1996 #'sign': account_template.sign,
1997@@ -993,9 +931,7 @@
1998 modified = False
1999
2000 if wiz_account.type == 'new':
2001- #
2002 # Create the account
2003- #
2004 try:
2005 account_id = accounts.create(cr, uid, vals)
2006 log.add(_("Created account %s.\n") % code)
2007@@ -1005,9 +941,7 @@
2008 log.add(_("Exception creating account %s: %s - %s.\n")
2009 % (code, ex.name, ex.value), True)
2010 elif wizard.update_account and wiz_account.update_account_id:
2011- #
2012 # Update the account
2013- #
2014 account_id = wiz_account.update_account_id.id
2015 try:
2016 accounts.write(cr, uid, [account_id], vals)
2017@@ -1024,24 +958,18 @@
2018 account_template_mapping[account_template.id] = account_id
2019
2020 if modified:
2021- #
2022 # Detect errors
2023- #
2024 if account_template.parent_id and not account_template_mapping.get(account_template.parent_id.id):
2025 log.add(_("Account %s: The parent account %s can not be set.\n") % (code, account_template.parent_id.code), True)
2026
2027- #
2028 # Set this account as the parent of the accounts that seem to
2029 # be its children (brothers starting with the same code).
2030- #
2031 if wizard.update_children_accounts_parent:
2032 self._update_children_accounts_parent(
2033 cr, uid, wizard, log, account_id, context=context)
2034
2035- #
2036 # Reenable the parent_store computing on account_account
2037 # and force the recomputation.
2038- #
2039 self.pool._init = False
2040 self.pool.get('account.account')._parent_store_compute(cr)
2041
2042@@ -1051,19 +979,17 @@
2043 'mapping': account_template_mapping
2044 }
2045
2046- """
2047- Updates the taxes (created or updated on previous steps) to set
2048- the references to the accounts (the taxes where created/updated first,
2049- when the referenced accounts where still not available).
2050- """
2051 def _update_taxes_pending_for_accounts(self, cr, uid, wizard, log, taxes_pending_for_accounts, account_template_mapping, context=None):
2052+ """
2053+ Updates the taxes (created or updated on previous steps) to set
2054+ the references to the accounts (the taxes where created/updated first,
2055+ when the referenced accounts where still not available).
2056+ """
2057 taxes = self.pool.get('account.tax')
2058 accounts_template = self.pool.get('account.account.template')
2059
2060 for key, value in taxes_pending_for_accounts.items():
2061- #
2062 # Ensure the related account templates are on the map.
2063- #
2064 if value['account_collected_id']:
2065 account_template = accounts_template.browse(
2066 cr, uid, value['account_collected_id'], context=context)
2067@@ -1088,10 +1014,10 @@
2068 log.add(_("Tax %s: The paid account can not be set.\n")
2069 % (tax.name), True)
2070
2071- """
2072- Search for, and load, fiscal position templates to create/update.
2073- """
2074 def _update_fiscal_positions(self, cr, uid, wizard, log, tax_template_mapping, account_template_mapping, context=None):
2075+ """
2076+ Search for, and load, fiscal position templates to create/update.
2077+ """
2078 fiscalpositions = self.pool.get('account.fiscal.position')
2079 fiscalpositions_taxes = self.pool.get('account.fiscal.position.tax')
2080 fiscalpositions_account = self.pool.get('account.fiscal.position.account')
2081@@ -1104,9 +1030,7 @@
2082 fp_id = None
2083 modified = False
2084 if wiz_fp.type == 'new':
2085- #
2086 # Create a new fiscal position
2087- #
2088 vals_fp = {
2089 'company_id': wizard.company_id.id,
2090 'name': fp_template.name,
2091@@ -1115,10 +1039,8 @@
2092 new_fps += 1
2093 modified = True
2094 elif wizard.update_fiscal_position and wiz_fp.update_fiscal_position_id:
2095- #
2096 # Update the given fiscal position (remove the tax and account
2097 # mappings, that will be regenerated later)
2098- #
2099 fp_id = wiz_fp.update_fiscal_position_id.id
2100 updated_fps += 1
2101 modified = True
2102@@ -1134,58 +1056,38 @@
2103 fp_id = wiz_fp.update_fiscal_position_id and wiz_fp.update_fiscal_position_id.id
2104
2105 if modified:
2106- #
2107 # (Re)create the tax mappings
2108- #
2109 for fp_tax in fp_template.tax_ids:
2110- #
2111 # Ensure the related tax templates are on the map.
2112- #
2113 self._map_tax_template(cr, uid, wizard, tax_template_mapping, fp_tax.tax_src_id, context)
2114 if fp_tax.tax_dest_id:
2115 self._map_tax_template(cr, uid, wizard, tax_template_mapping, fp_tax.tax_dest_id, context)
2116-
2117- #
2118 # Create the fp tax mapping
2119- #
2120 vals_tax = {
2121 'tax_src_id': tax_template_mapping.get(fp_tax.tax_src_id.id),
2122 'tax_dest_id': fp_tax.tax_dest_id and tax_template_mapping.get(fp_tax.tax_dest_id.id),
2123 'position_id': fp_id,
2124 }
2125 fiscalpositions_taxes.create(cr, uid, vals_tax)
2126-
2127- #
2128 # Check for errors
2129- #
2130 if not tax_template_mapping.get(fp_tax.tax_src_id.id):
2131 log.add(_("Fiscal position %s: The source tax %s can not be set.\n") % (fp_template.name, fp_tax.tax_src_id.code), True)
2132 if fp_tax.tax_dest_id and not tax_template_mapping.get(fp_tax.tax_dest_id.id):
2133 log.add(_("Fiscal position %s: The destination tax %s can not be set.\n") % (fp_template.name, fp_tax.tax_dest_id.name), True)
2134- #
2135 # (Re)create the account mappings
2136- #
2137 for fp_account in fp_template.account_ids:
2138- #
2139 # Ensure the related account templates are on the map.
2140- #
2141 self._map_account_template(cr, uid, wizard, account_template_mapping, fp_account.account_src_id, context)
2142 if fp_account.account_dest_id:
2143 self._map_account_template(cr, uid, wizard, account_template_mapping, fp_account.account_dest_id, context)
2144-
2145- #
2146 # Create the fp account mapping
2147- #
2148 vals_account = {
2149 'account_src_id': account_template_mapping.get(fp_account.account_src_id.id),
2150 'account_dest_id': fp_account.account_dest_id and account_template_mapping.get(fp_account.account_dest_id.id),
2151 'position_id': fp_id,
2152 }
2153 fiscalpositions_account.create(cr, uid, vals_account)
2154-
2155- #
2156 # Check for errors
2157- #
2158 if not account_template_mapping.get(fp_account.account_src_id.id):
2159 log.add(_("Fiscal position %s: The source account %s can not be set.\n") % (fp_template.name, fp_account.account_src_id.code), True)
2160 if fp_account.account_dest_id and not account_template_mapping.get(fp_account.account_dest_id.id):
2161@@ -1195,10 +1097,10 @@
2162 % fp_template.name)
2163 return {'new': new_fps, 'updated': updated_fps}
2164
2165- """
2166- Action that creates/updates the selected elements.
2167- """
2168 def action_update_records(self, cr, uid, ids, context=None):
2169+ """
2170+ Action that creates/updates the selected elements.
2171+ """
2172 if context is None:
2173 context = {}
2174 wizard = self.browse(cr, uid, ids[0], context=context)
2175@@ -1210,9 +1112,7 @@
2176
2177 log = WizardLog()
2178
2179- #
2180 # Create or update the records.
2181- #
2182 tax_codes_res = self._update_tax_codes(
2183 cr, uid, wizard, log, context=context)
2184 taxes_res = self._update_taxes(
2185@@ -1222,16 +1122,12 @@
2186 self._update_taxes_pending_for_accounts(cr, uid, wizard, log, taxes_res['pending'], accounts_res['mapping'], context=context)
2187 fps_res = self._update_fiscal_positions(cr, uid, wizard, log, taxes_res['mapping'], accounts_res['mapping'], context=context)
2188
2189- #
2190 # Check if errors where detected and wether we should stop.
2191- #
2192 if log.has_errors() and not wizard.continue_on_errors:
2193 raise orm.except_orm(_('Error'), _(
2194 "One or more errors detected!\n\n%s") % log.get_errors_str())
2195
2196- #
2197 # Store the data and go to the next step.
2198- #
2199 self.write(cr, uid, [wizard.id], {
2200 'state': 'done',
2201 'new_tax_codes': tax_codes_res.get('new', 0),
2202@@ -1247,8 +1143,6 @@
2203
2204 return _reopen(self, wizard.id, 'wizard.update.chart.accounts')
2205
2206-wizard_update_charts_accounts()
2207-
2208
2209 class wizard_update_charts_accounts_tax_code(orm.TransientModel):
2210 """
2211@@ -1268,9 +1162,7 @@
2212 'notes': fields.text('Notes'),
2213 }
2214 _defaults = {
2215- }
2216-
2217-wizard_update_charts_accounts_tax_code()
2218+ }
2219
2220
2221 class wizard_update_charts_accounts_tax(orm.TransientModel):
2222@@ -1292,9 +1184,7 @@
2223 }
2224
2225 _defaults = {
2226- }
2227-
2228-wizard_update_charts_accounts_tax()
2229+ }
2230
2231
2232 class wizard_update_charts_accounts_account(orm.TransientModel):
2233@@ -1307,7 +1197,6 @@
2234 # The chart of accounts can have a lot of accounts, so we need an higher
2235 # limit for the objects in memory to let the wizard create all the items
2236 # at once.
2237- _max_count = 4096
2238 _columns = {
2239 'account_id': fields.many2one('account.account.template', 'Account template', required=True, ondelete='set null'),
2240 'update_chart_wizard_id': fields.many2one('wizard.update.charts.accounts', 'Update chart wizard', required=True, ondelete='cascade'),
2241@@ -1320,9 +1209,7 @@
2242 }
2243
2244 _defaults = {
2245- }
2246-
2247-wizard_update_charts_accounts_account()
2248+ }
2249
2250
2251 class wizard_update_charts_accounts_fiscal_position(orm.TransientModel):
2252@@ -1343,9 +1230,6 @@
2253 'notes': fields.text('Notes'),
2254 }
2255 _defaults = {
2256- }
2257-
2258-
2259-wizard_update_charts_accounts_fiscal_position()
2260+ }
2261
2262 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
2263
2264=== modified file 'account_chart_update/wizard/wizard_chart_update_view.xml'
2265--- account_chart_update/wizard/wizard_chart_update_view.xml 2013-10-01 16:28:19 +0000
2266+++ account_chart_update/wizard/wizard_chart_update_view.xml 2013-10-15 14:29:10 +0000
2267@@ -1,176 +1,173 @@
2268 <?xml version="1.0" encoding="utf-8"?>
2269 <openerp>
2270- <data>
2271-
2272- <!-- Wizard for Multi Charts of Accounts -->
2273-
2274- <record id="view_update_multi_chart" model="ir.ui.view">
2275- <field name="name">Update Chart of Accounts from a Chart Template
2276- </field>
2277- <field name="model">wizard.update.charts.accounts</field>
2278- <!-- <field name="type">form</field> -->
2279- <field name="arch" type="xml">
2280- <form string="Update Chart of Accounts from a Chart Template" version="7.0">
2281- <header>
2282- <field name="state" select="2" widget="statusbar"
2283- statusbar_visible="init,ready,done" statusbar_colors='{"ready":"blue","done":"blue"}' />
2284- </header>
2285- <group attrs="{'invisible':[('state','!=','init')]}">
2286- <h3>
2287- <p><center>This wizard will update your accounts, taxes and fiscal positions according to the selected chart template</center></p>
2288-
2289- </h3>
2290- </group>
2291- <group string="Chart of Accounts" attrs="{'invisible':[('state','!=','init')]}">
2292- <field name="company_id" on_change="onchange_company_id(company_id)"
2293- attrs="{'invisible':[('state','!=','init')]}" />
2294- <field name="code_digits" attrs="{'invisible':[('state','!=','init')]}" />
2295- <field name="chart_template_id" attrs="{'invisible':[('state','!=','init')]}" />
2296- <field name="lang" attrs="{'invisible':[('state','!=','init')]}" />
2297- </group>
2298- <group attrs="{'invisible':[('state','!=','init')]}">
2299- <group string="Update records?">
2300- <field name="update_tax_code" />
2301- <field name="update_tax" />
2302- <field name="update_account" />
2303- <field name="update_fiscal_position" />
2304- </group>
2305- <group string="Other options" attrs="{'invisible':[('state','!=','init')]}">
2306- <field name="update_children_accounts_parent" />
2307- <field name="continue_on_errors" />
2308- </group>
2309- </group>
2310-
2311- <group attrs="{'invisible':[('state','!=','init')]}">
2312- <h5>
2313- <p>If you leave these options set, the wizard will not just create new records, but also update records with changes (i.e. different tax amount)</p>
2314- <p>Note:Not all the fields are tested for changes, just the main ones</p>
2315- </h5>
2316- </group>
2317- <group attrs="{'invisible':[('state','!=','ready'),]}"
2318- string="Records to create/update">
2319- <notebook colspan="4">
2320- <page string="Tax codes">
2321- <field name="tax_code_ids">
2322- <tree string="Tax codes" colors="red:type=='updated'">
2323- <field name="tax_code_id" />
2324- <field name="update_tax_code_id" />
2325- <field name="type" invisible="1" />
2326- </tree>
2327- <form string="Tax code" version="7.0">
2328- <group>
2329- <field name="tax_code_id" />
2330- <field name="type" />
2331- <field name="update_tax_code_id" />
2332- <field name="notes" readonly="1" class="oe_inline" />
2333- </group>
2334- </form>
2335- </field>
2336- </page>
2337-
2338- <page string="Taxes">
2339- <field name="tax_ids" nolabel="1">
2340- <tree string="Taxes" colors="red:type=='updated'">
2341- <field name="tax_id" />
2342- <field name="update_tax_id" />
2343- <field name="type" invisible="1" />
2344- </tree>
2345- <form string="Tax" version="7.0">
2346- <group>
2347- <field name="tax_id" />
2348- <field name="type" />
2349- <field name="update_tax_id" />
2350- <field name="notes" readonly="1" class="oe_inline" />
2351- </group>
2352- </form>
2353- </field>
2354- </page>
2355- <page string="Accounts">
2356- <field name="account_ids" nolabel="1">
2357- <tree string="Accounts" colors="red:type=='updated'">
2358- <field name="account_id" />
2359- <field name="update_account_id" />
2360- <field name="type" invisible="1" />
2361- </tree>
2362- <form string="Account" version="7.0">
2363- <group>
2364- <field name="account_id" />
2365- <field name="type" />
2366- <field name="update_account_id" />
2367- <field name="notes" readonly="1" class="oe_inline" />
2368- </group>
2369- </form>
2370- </field>
2371- </page>
2372- <page string="Fiscal positions">
2373- <field name="fiscal_position_ids" nolabel="1">
2374- <tree string="Fiscal positions" colors="red:type=='updated'">
2375- <field name="fiscal_position_id" />
2376- <field name="update_fiscal_position_id" />
2377- <field name="type" invisible="1" />
2378- </tree>
2379- <form string="Fiscal position" version="7.0">
2380- <group>
2381- <field name="fiscal_position_id" />
2382- <field name="type" />
2383- <field name="update_fiscal_position_id" />
2384- <field name="notes" readonly="1" class="oe_inline" />
2385- </group>
2386- </form>
2387- </field>
2388- </page>
2389-
2390- </notebook>
2391- </group>
2392-
2393- <group col="4" colspan="4"
2394- attrs="{'invisible':[('state','!=','done'),]}">
2395- <separator colspan="4" string="Log" />
2396- <field name="log" colspan="4" nolabel="1" />
2397- <group colspan="4">
2398- <separator colspan="4" string="Summary of created objects" />
2399- <field name="new_tax_codes" />
2400- <field name="new_taxes" />
2401- <field name="new_accounts" />
2402- <field name="new_fps" />
2403- </group>
2404- <group colspan="4">
2405- <separator colspan="4" string="Summary of updated objects" />
2406- <field name="updated_tax_codes" />
2407- <field name="updated_taxes" />
2408- <field name="updated_accounts" />
2409- <field name="updated_fps" />
2410- </group>
2411- </group>
2412-
2413- <footer>
2414- <div states="init">
2415- <button name="action_find_records" string="Next" class="oe_highlight" type="object" />
2416- o
2417- <button special="cancel" string="Cancel" class="oe_link" />
2418- </div>
2419- <div states="ready">
2420- <button name="action_init" string="Previous" type="object" />
2421- <button name="action_update_records" string="Create/Update" type="object" class="oe_highlight" />
2422- o
2423- <button special="cancel" string="Cancel" class="oe_link" />
2424- </div>
2425- </footer>
2426- </form>
2427- </field>
2428- </record>
2429-
2430- <record id="action_wizard_update_chart" model="ir.actions.act_window">
2431- <field name="name">Update Chart of Accounts from a Chart Template
2432- </field>
2433- <field name="type">ir.actions.act_window</field>
2434- <field name="res_model">wizard.update.charts.accounts</field>
2435- <field name="view_type">form</field>
2436- <field name="view_mode">form</field>
2437- <field name="target">new</field>
2438- </record>
2439-
2440- <menuitem parent="account.account_template_folder" action="action_wizard_update_chart" id="menu_wizard" />
2441-
2442- </data>
2443+ <data>
2444+
2445+ <!-- Wizard for Multi Charts of Accounts -->
2446+
2447+ <record id="view_update_multi_chart" model="ir.ui.view">
2448+ <field name="name">Update Chart of Accounts from a Chart Template
2449+ </field>
2450+ <field name="model">wizard.update.charts.accounts</field>
2451+ <field name="arch" type="xml">
2452+ <form string="Update chart of accounts from a template" version="7.0">
2453+ <header>
2454+ <field name="state" select="2" widget="statusbar"
2455+ statusbar_visible="init,ready,done" statusbar_colors='{"ready":"blue","done":"blue"}' />
2456+ </header>
2457+ <group attrs="{'invisible':[('state','!=','init')]}">
2458+ <h3>
2459+ <p><center>This wizard will update your accounts, taxes and fiscal positions according to the selected chart template</center></p>
2460+ </h3>
2461+ </group>
2462+ <group string="Chart of Accounts" attrs="{'invisible':[('state','!=','init')]}">
2463+ <field name="company_id" on_change="onchange_company_id(company_id)"
2464+ attrs="{'invisible':[('state','!=','init')]}" />
2465+ <field name="code_digits" attrs="{'invisible':[('state','!=','init')]}" />
2466+ <field name="chart_template_id" attrs="{'invisible':[('state','!=','init')]}" />
2467+ <field name="lang" attrs="{'invisible':[('state','!=','init')]}" />
2468+ </group>
2469+ <group attrs="{'invisible':[('state','!=','init')]}">
2470+ <group string="Update records?">
2471+ <field name="update_tax_code" />
2472+ <field name="update_tax" />
2473+ <field name="update_account" />
2474+ <field name="update_fiscal_position" />
2475+ </group>
2476+ <group string="Other options" attrs="{'invisible':[('state','!=','init')]}">
2477+ <field name="update_children_accounts_parent" />
2478+ <field name="continue_on_errors" />
2479+ </group>
2480+ </group>
2481+
2482+ <group attrs="{'invisible':[('state','!=','init')]}">
2483+ <h5>
2484+ <p>If you leave these options set, the wizard will not just create new records, but also update records with changes (i.e. different tax amount)</p>
2485+ <p>Note: Not all the fields are tested for changes, just the main ones</p>
2486+ </h5>
2487+ </group>
2488+ <group attrs="{'invisible':[('state','!=','ready'),]}"
2489+ string="Records to create/update">
2490+ <notebook colspan="4">
2491+ <page string="Tax codes">
2492+ <field name="tax_code_ids">
2493+ <tree string="Tax codes" colors="red:type=='updated'">
2494+ <field name="tax_code_id" />
2495+ <field name="update_tax_code_id" />
2496+ <field name="type" invisible="1" />
2497+ </tree>
2498+ <form string="Tax code" version="7.0">
2499+ <group>
2500+ <field name="tax_code_id" />
2501+ <field name="type" />
2502+ <field name="update_tax_code_id" />
2503+ <field name="notes" readonly="1" class="oe_inline" />
2504+ </group>
2505+ </form>
2506+ </field>
2507+ </page>
2508+
2509+ <page string="Taxes">
2510+ <field name="tax_ids" nolabel="1">
2511+ <tree string="Taxes" colors="red:type=='updated'">
2512+ <field name="tax_id" />
2513+ <field name="update_tax_id" />
2514+ <field name="type" invisible="1" />
2515+ </tree>
2516+ <form string="Tax" version="7.0">
2517+ <group>
2518+ <field name="tax_id" />
2519+ <field name="type" />
2520+ <field name="update_tax_id" />
2521+ <field name="notes" readonly="1" class="oe_inline" />
2522+ </group>
2523+ </form>
2524+ </field>
2525+ </page>
2526+ <page string="Accounts">
2527+ <field name="account_ids" nolabel="1">
2528+ <tree string="Accounts" colors="red:type=='updated'">
2529+ <field name="account_id" />
2530+ <field name="update_account_id" />
2531+ <field name="type" invisible="1" />
2532+ </tree>
2533+ <form string="Account" version="7.0">
2534+ <group>
2535+ <field name="account_id" />
2536+ <field name="type" />
2537+ <field name="update_account_id" />
2538+ <field name="notes" readonly="1" class="oe_inline" />
2539+ </group>
2540+ </form>
2541+ </field>
2542+ </page>
2543+ <page string="Fiscal positions">
2544+ <field name="fiscal_position_ids" nolabel="1">
2545+ <tree string="Fiscal positions" colors="red:type=='updated'">
2546+ <field name="fiscal_position_id" />
2547+ <field name="update_fiscal_position_id" />
2548+ <field name="type" invisible="1" />
2549+ </tree>
2550+ <form string="Fiscal position" version="7.0">
2551+ <group>
2552+ <field name="fiscal_position_id" />
2553+ <field name="type" />
2554+ <field name="update_fiscal_position_id" />
2555+ <field name="notes" readonly="1" class="oe_inline" />
2556+ </group>
2557+ </form>
2558+ </field>
2559+ </page>
2560+
2561+ </notebook>
2562+ </group>
2563+
2564+ <group col="4" colspan="4"
2565+ attrs="{'invisible':[('state','!=','done'),]}">
2566+ <separator colspan="4" string="Log" />
2567+ <field name="log" colspan="4" nolabel="1" />
2568+ <group colspan="4">
2569+ <separator colspan="4" string="Summary of created objects" />
2570+ <field name="new_tax_codes" />
2571+ <field name="new_taxes" />
2572+ <field name="new_accounts" />
2573+ <field name="new_fps" />
2574+ </group>
2575+ <group colspan="4">
2576+ <separator colspan="4" string="Summary of updated objects" />
2577+ <field name="updated_tax_codes" />
2578+ <field name="updated_taxes" />
2579+ <field name="updated_accounts" />
2580+ <field name="updated_fps" />
2581+ </group>
2582+ </group>
2583+
2584+ <footer>
2585+ <div states="init">
2586+ <button name="action_find_records" string="Next" class="oe_highlight" type="object" />
2587+ or
2588+ <button special="cancel" string="Cancel" class="oe_link" />
2589+ </div>
2590+ <div states="ready">
2591+ <button name="action_init" string="Previous" type="object" />
2592+ <button name="action_update_records" string="Create/Update" type="object" class="oe_highlight" />
2593+ or
2594+ <button special="cancel" string="Cancel" class="oe_link" />
2595+ </div>
2596+ </footer>
2597+ </form>
2598+ </field>
2599+ </record>
2600+
2601+ <record id="action_wizard_update_chart" model="ir.actions.act_window">
2602+ <field name="name">Update chart of accounts</field>
2603+ <field name="type">ir.actions.act_window</field>
2604+ <field name="res_model">wizard.update.charts.accounts</field>
2605+ <field name="view_type">form</field>
2606+ <field name="view_mode">form</field>
2607+ <field name="target">new</field>
2608+ </record>
2609+
2610+ <menuitem sequence="0" parent="account.account_account_menu" action="action_wizard_update_chart" id="menu_wizard" />
2611+
2612+ </data>
2613 </openerp>
2614
2615=== added directory 'currency_rate_date_check'
2616=== added file 'currency_rate_date_check/__init__.py'
2617--- currency_rate_date_check/__init__.py 1970-01-01 00:00:00 +0000
2618+++ currency_rate_date_check/__init__.py 2013-10-15 14:29:10 +0000
2619@@ -0,0 +1,25 @@
2620+# -*- encoding: utf-8 -*-
2621+##############################################################################
2622+#
2623+# Currency rate date check module for OpenERP
2624+# Copyright (C) 2012-2013 Akretion (http://www.akretion.com).
2625+# @author Alexis de Lattre <alexis.delattre@akretion.com>
2626+#
2627+# This program is free software: you can redistribute it and/or modify
2628+# it under the terms of the GNU Affero General Public License as
2629+# published by the Free Software Foundation, either version 3 of the
2630+# License, or (at your option) any later version.
2631+#
2632+# This program is distributed in the hope that it will be useful,
2633+# but WITHOUT ANY WARRANTY; without even the implied warranty of
2634+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2635+# GNU Affero General Public License for more details.
2636+#
2637+# You should have received a copy of the GNU Affero General Public License
2638+# along with this program. If not, see <http://www.gnu.org/licenses/>.
2639+#
2640+##############################################################################
2641+
2642+from . import company
2643+from . import currency_rate_date_check
2644+
2645
2646=== added file 'currency_rate_date_check/__openerp__.py'
2647--- currency_rate_date_check/__openerp__.py 1970-01-01 00:00:00 +0000
2648+++ currency_rate_date_check/__openerp__.py 2013-10-15 14:29:10 +0000
2649@@ -0,0 +1,48 @@
2650+# -*- encoding: utf-8 -*-
2651+##############################################################################
2652+#
2653+# Currency rate date check module for OpenERP
2654+# Copyright (C) 2012-2013 Akretion (http://www.akretion.com).
2655+# @author Alexis de Lattre <alexis.delattre@akretion.com>
2656+#
2657+# This program is free software: you can redistribute it and/or modify
2658+# it under the terms of the GNU Affero General Public License as
2659+# published by the Free Software Foundation, either version 3 of the
2660+# License, or (at your option) any later version.
2661+#
2662+# This program is distributed in the hope that it will be useful,
2663+# but WITHOUT ANY WARRANTY; without even the implied warranty of
2664+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2665+# GNU Affero General Public License for more details.
2666+#
2667+# You should have received a copy of the GNU Affero General Public License
2668+# along with this program. If not, see <http://www.gnu.org/licenses/>.
2669+#
2670+##############################################################################
2671+
2672+
2673+{
2674+ 'name': 'Currency Rate Date Check',
2675+ 'version': '1.0',
2676+ 'category': 'Financial Management/Configuration',
2677+ 'license': 'AGPL-3',
2678+ 'summary': "Make sure currency rates used are always up-to-update",
2679+ 'description': """
2680+Currency Rate Date Check
2681+========================
2682+
2683+This module adds a check on dates when doing currency conversion in OpenERP. It checks that the currency rate used to make the conversion is not more than N days away from the date of the amount to convert. The maximum number of days of the interval can be configured on the company form.
2684+
2685+Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com> for any help or question about this module.
2686+ """,
2687+ 'author': 'Akretion',
2688+ 'website': 'http://www.akretion.com',
2689+ 'depends': ['base'],
2690+ 'data': ['company_view.xml'],
2691+ 'images': [
2692+ 'images/date_check_error_popup.jpg',
2693+ 'images/date_check_company_config.jpg',
2694+ ],
2695+ 'installable': True,
2696+ 'active': False,
2697+}
2698
2699=== added file 'currency_rate_date_check/company.py'
2700--- currency_rate_date_check/company.py 1970-01-01 00:00:00 +0000
2701+++ currency_rate_date_check/company.py 2013-10-15 14:29:10 +0000
2702@@ -0,0 +1,42 @@
2703+# -*- encoding: utf-8 -*-
2704+##############################################################################
2705+#
2706+# Currency rate date check module for OpenERP
2707+# Copyright (C) 2012-2013 Akretion (http://www.akretion.com)
2708+# @author Alexis de Lattre <alexis.delattre@akretion.com>
2709+#
2710+# This program is free software: you can redistribute it and/or modify
2711+# it under the terms of the GNU Affero General Public License as
2712+# published by the Free Software Foundation, either version 3 of the
2713+# License, or (at your option) any later version.
2714+#
2715+# This program is distributed in the hope that it will be useful,
2716+# but WITHOUT ANY WARRANTY; without even the implied warranty of
2717+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2718+# GNU Affero General Public License for more details.
2719+#
2720+# You should have received a copy of the GNU Affero General Public License
2721+# along with this program. If not, see <http://www.gnu.org/licenses/>.
2722+#
2723+##############################################################################
2724+
2725+from openerp.osv import orm, fields
2726+
2727+class res_company(orm.Model):
2728+ _inherit = 'res.company'
2729+
2730+ _columns = {
2731+ 'currency_rate_max_delta': fields.integer(
2732+ 'Max Time Delta in Days for Currency Rates',
2733+ help="This is the maximum interval in days between the date associated with the amount to convert and the date of the nearest currency rate available in OpenERP."),
2734+ }
2735+
2736+ _defaults = {
2737+ 'currency_rate_max_delta': 7,
2738+ }
2739+
2740+ _sql_constraints = [
2741+ ('currency_rate_max_delta_positive',
2742+ 'CHECK (currency_rate_max_delta >= 0)',
2743+ "The value of the field 'Max Time Delta in Days for Currency Rates' must be positive or 0."),
2744+ ]
2745
2746=== added file 'currency_rate_date_check/company_view.xml'
2747--- currency_rate_date_check/company_view.xml 1970-01-01 00:00:00 +0000
2748+++ currency_rate_date_check/company_view.xml 2013-10-15 14:29:10 +0000
2749@@ -0,0 +1,25 @@
2750+<?xml version="1.0" encoding="utf-8"?>
2751+
2752+<!--
2753+ Copyright (C) 2012 Akretion (http://www.akretion.com/)
2754+ @author Alexis de Lattre <alexis.delattre@akretion.com>
2755+ The licence is in the file __openerp__.py
2756+-->
2757+
2758+<openerp>
2759+<data>
2760+
2761+<record id="currency_rate_date_check_form" model="ir.ui.view">
2762+ <field name="name">currency.rate.date.check.form</field>
2763+ <field name="model">res.company</field>
2764+ <field name="inherit_id" ref="base.view_company_form" />
2765+ <field name="arch" type="xml">
2766+ <field name="currency_id" position="after">
2767+ <field name="currency_rate_max_delta" />
2768+ </field>
2769+ </field>
2770+</record>
2771+
2772+
2773+</data>
2774+</openerp>
2775
2776=== added file 'currency_rate_date_check/currency_rate_date_check.py'
2777--- currency_rate_date_check/currency_rate_date_check.py 1970-01-01 00:00:00 +0000
2778+++ currency_rate_date_check/currency_rate_date_check.py 2013-10-15 14:29:10 +0000
2779@@ -0,0 +1,82 @@
2780+# -*- encoding: utf-8 -*-
2781+##############################################################################
2782+#
2783+# Currency rate date check module for OpenERP
2784+# Copyright (C) 2012-2013 Akretion (http://www.akretion.com)
2785+# @author Alexis de Lattre <alexis.delattre@akretion.com>
2786+#
2787+# This program is free software: you can redistribute it and/or modify
2788+# it under the terms of the GNU Affero General Public License as
2789+# published by the Free Software Foundation, either version 3 of the
2790+# License, or (at your option) any later version.
2791+#
2792+# This program is distributed in the hope that it will be useful,
2793+# but WITHOUT ANY WARRANTY; without even the implied warranty of
2794+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2795+# GNU Affero General Public License for more details.
2796+#
2797+# You should have received a copy of the GNU Affero General Public License
2798+# along with this program. If not, see <http://www.gnu.org/licenses/>.
2799+#
2800+##############################################################################
2801+
2802+from openerp.osv import fields, orm
2803+from datetime import datetime, timedelta
2804+from openerp.tools.translate import _
2805+
2806+# Here are some explainations about the design of this module.
2807+# In server/openerp/addons/base/res/res_currency.py :
2808+# compute() -> _get_conversion_rate() -> _current_rate() -> _current_rate_computation()
2809+# The date used for the rate is the one in the context
2810+# compute() adds currency_rate_type_from and currency_rate_type_to to the context
2811+# _get_conversion_rate() adds currency_rate_type_id to context ; its value is currency_rate_type_to ; if it doesn't exist it's currency_rate_type_from ; if it doesn't exist either it's False
2812+# It already contains raise "No rate found for currency ... at the date ..."
2813+# _current_rate() reads currency_rate_type_id from context and uses it in the SQL request
2814+# This is the function used for the definition of the field.function 'rate' on res_currency
2815+
2816+# Which one of the 3 functions should we inherit ? Good question...
2817+# It's probably better to inherit the lowest level function, i.e. _current_rate_computation()
2818+# Advantage : by inheriting the lowest level function, we can be sure that the check
2819+# always apply, even for scenarios where we read the field "rate" of the obj currency
2820+# => that's the solution I implement in the code below
2821+
2822+
2823+class res_currency(orm.Model):
2824+ _inherit = 'res.currency'
2825+
2826+ def _current_rate_computation(self, cr, uid, ids, name, arg, raise_on_no_rate, context=None):
2827+ if context is None: context = {}
2828+ # We only do the check if there is an explicit date in the context and
2829+ # there is no specific currency_rate_type_id
2830+ if context.get('date') and not context.get('currency_rate_type_id') and not context.get('disable_rate_date_check'):
2831+ for currency_id in ids:
2832+ # We could get the company from the currency, but it's not a
2833+ # 'required' field, so we should probably continue to get it from
2834+ # the user, shouldn't we ?
2835+ user = self.pool['res.users'].browse(cr, uid, uid, context=context)
2836+ # if it's the company currency, don't do anything
2837+ # (there is just one old rate at 1.0)
2838+ if user.company_id.currency_id.id == currency_id:
2839+ continue
2840+ else:
2841+ # now we do the real work !
2842+ date = context.get('date', datetime.today().strftime('%Y-%m-%d'))
2843+ date_datetime = datetime.strptime(date, '%Y-%m-%d')
2844+ rate_obj = self.pool['res.currency.rate']
2845+ selected_rate = rate_obj.search(cr, uid, [
2846+ ('currency_id', '=', currency_id),
2847+ ('name', '<=', date),
2848+ ('currency_rate_type_id', '=', None)
2849+ ], order='name desc', limit=1, context=context)
2850+ if not selected_rate:
2851+ continue
2852+
2853+ rate_date = rate_obj.read(cr, uid, selected_rate[0], ['name'], context=context)['name']
2854+ rate_date_datetime = datetime.strptime(rate_date, '%Y-%m-%d')
2855+ max_delta = user.company_id.currency_rate_max_delta
2856+ if (date_datetime - rate_date_datetime).days > max_delta:
2857+ currency_name = self.read(cr, uid, currency_id, ['name'], context=context)['name']
2858+ raise orm.except_orm(_('Error'), _('You are requesting a rate conversion on %s for currency %s but the nearest rate before that date is dated %s and the maximum currency rate time delta for your company is %s days') % (date, currency_name, rate_date, max_delta))
2859+ # Now we call the regular function from the "base" module
2860+ return super(res_currency, self)._current_rate_computation(cr, uid, ids, name, arg, raise_on_no_rate, context=context)
2861+
2862
2863=== added directory 'currency_rate_date_check/i18n'
2864=== added file 'currency_rate_date_check/i18n/currency_rate_date_check.pot'
2865--- currency_rate_date_check/i18n/currency_rate_date_check.pot 1970-01-01 00:00:00 +0000
2866+++ currency_rate_date_check/i18n/currency_rate_date_check.pot 2013-10-15 14:29:10 +0000
2867@@ -0,0 +1,54 @@
2868+# Translation of OpenERP Server.
2869+# This file contains the translation of the following modules:
2870+# * currency_rate_date_check
2871+#
2872+msgid ""
2873+msgstr ""
2874+"Project-Id-Version: OpenERP Server 7.0\n"
2875+"Report-Msgid-Bugs-To: \n"
2876+"POT-Creation-Date: 2013-09-23 10:05+0000\n"
2877+"PO-Revision-Date: 2013-09-23 10:05+0000\n"
2878+"Last-Translator: <>\n"
2879+"Language-Team: \n"
2880+"MIME-Version: 1.0\n"
2881+"Content-Type: text/plain; charset=UTF-8\n"
2882+"Content-Transfer-Encoding: \n"
2883+"Plural-Forms: \n"
2884+
2885+#. module: currency_rate_date_check
2886+#: model:ir.model,name:currency_rate_date_check.model_res_currency
2887+msgid "Currency"
2888+msgstr ""
2889+
2890+#. module: currency_rate_date_check
2891+#: code:addons/currency_rate_date_check/currency_rate_date_check.py:84
2892+#, python-format
2893+msgid "You are requesting a rate conversion on %s for currency %s but the nearest rate before that date is dated %s and the maximum currency rate time delta for your company is %s days"
2894+msgstr ""
2895+
2896+#. module: currency_rate_date_check
2897+#: model:ir.model,name:currency_rate_date_check.model_res_company
2898+msgid "Companies"
2899+msgstr ""
2900+
2901+#. module: currency_rate_date_check
2902+#: field:res.company,currency_rate_max_delta:0
2903+msgid "Max Time Delta in Days for Currency Rates"
2904+msgstr ""
2905+
2906+#. module: currency_rate_date_check
2907+#: help:res.company,currency_rate_max_delta:0
2908+msgid "This is the maximum interval in days between the date associated with the amount to convert and the date of the nearest currency rate available in OpenERP."
2909+msgstr ""
2910+
2911+#. module: currency_rate_date_check
2912+#: code:addons/currency_rate_date_check/currency_rate_date_check.py:84
2913+#, python-format
2914+msgid "Error"
2915+msgstr ""
2916+
2917+#. module: currency_rate_date_check
2918+#: constraint:res.company:0
2919+msgid "The value must be positive or 0"
2920+msgstr ""
2921+
2922
2923=== added file 'currency_rate_date_check/i18n/fr.po'
2924--- currency_rate_date_check/i18n/fr.po 1970-01-01 00:00:00 +0000
2925+++ currency_rate_date_check/i18n/fr.po 2013-10-15 14:29:10 +0000
2926@@ -0,0 +1,54 @@
2927+# Translation of OpenERP Server.
2928+# This file contains the translation of the following modules:
2929+# * currency_rate_date_check
2930+#
2931+msgid ""
2932+msgstr ""
2933+"Project-Id-Version: OpenERP Server 7.0\n"
2934+"Report-Msgid-Bugs-To: \n"
2935+"POT-Creation-Date: 2013-09-23 10:06+0000\n"
2936+"PO-Revision-Date: 2013-09-23 10:06+0000\n"
2937+"Last-Translator: <>\n"
2938+"Language-Team: \n"
2939+"MIME-Version: 1.0\n"
2940+"Content-Type: text/plain; charset=UTF-8\n"
2941+"Content-Transfer-Encoding: \n"
2942+"Plural-Forms: \n"
2943+
2944+#. module: currency_rate_date_check
2945+#: model:ir.model,name:currency_rate_date_check.model_res_currency
2946+msgid "Currency"
2947+msgstr "Devise"
2948+
2949+#. module: currency_rate_date_check
2950+#: code:addons/currency_rate_date_check/currency_rate_date_check.py:84
2951+#, python-format
2952+msgid "You are requesting a rate conversion on %s for currency %s but the nearest rate before that date is dated %s and the maximum currency rate time delta for your company is %s days"
2953+msgstr "Vous demandez une conversion de devise à la date du %s pour la devise %s mais le taux de change le plus proche qui précède cette date est daté du %s et l'écart temporel maximum pour les taux de change pour votre société est de %s jours"
2954+
2955+#. module: currency_rate_date_check
2956+#: model:ir.model,name:currency_rate_date_check.model_res_company
2957+msgid "Companies"
2958+msgstr "Sociétés"
2959+
2960+#. module: currency_rate_date_check
2961+#: field:res.company,currency_rate_max_delta:0
2962+msgid "Max Time Delta in Days for Currency Rates"
2963+msgstr "Ecart temporel maximum pour les taux de change (en jours)"
2964+
2965+#. module: currency_rate_date_check
2966+#: help:res.company,currency_rate_max_delta:0
2967+msgid "This is the maximum interval in days between the date associated with the amount to convert and the date of the nearest currency rate available in OpenERP."
2968+msgstr "Intervalle de temps maximum en jours entre la date associée au montant à convertir et la date du taux de change le plus rapproché disponible dans OpenERP."
2969+
2970+#. module: currency_rate_date_check
2971+#: code:addons/currency_rate_date_check/currency_rate_date_check.py:84
2972+#, python-format
2973+msgid "Error"
2974+msgstr "Erreur"
2975+
2976+#. module: currency_rate_date_check
2977+#: constraint:res.company:0
2978+msgid "The value must be positive or 0"
2979+msgstr "La valeur doit être positive ou nulle"
2980+
2981
2982=== added directory 'currency_rate_date_check/images'
2983=== added file 'currency_rate_date_check/images/date_check_company_config.jpg'
2984Binary files currency_rate_date_check/images/date_check_company_config.jpg 1970-01-01 00:00:00 +0000 and currency_rate_date_check/images/date_check_company_config.jpg 2013-10-15 14:29:10 +0000 differ
2985=== added file 'currency_rate_date_check/images/date_check_error_popup.jpg'
2986Binary files currency_rate_date_check/images/date_check_error_popup.jpg 1970-01-01 00:00:00 +0000 and currency_rate_date_check/images/date_check_error_popup.jpg 2013-10-15 14:29:10 +0000 differ
2987=== added directory 'currency_rate_date_check/static'
2988=== added directory 'currency_rate_date_check/static/src'
2989=== added directory 'currency_rate_date_check/static/src/img'
2990=== added file 'currency_rate_date_check/static/src/img/icon.png'
2991Binary files currency_rate_date_check/static/src/img/icon.png 1970-01-01 00:00:00 +0000 and currency_rate_date_check/static/src/img/icon.png 2013-10-15 14:29:10 +0000 differ

Subscribers

People subscribed via source and target branches