Merge lp:~julie-w/unifield-server/US-1255 into lp:unifield-server

Proposed by jftempo
Status: Merged
Merged at revision: 4558
Proposed branch: lp:~julie-w/unifield-server/US-1255
Merge into: lp:unifield-server
Diff against target: 398 lines (+212/-9)
8 files modified
bin/addons/account/wizard/account_invoice_refund.py (+8/-0)
bin/addons/account_corrections/account_move_line.py (+107/-1)
bin/addons/account_corrections/account_wizard_view.xml (+22/-3)
bin/addons/account_corrections/wizard/journal_items_corrections.py (+15/-1)
bin/addons/account_mcdb/account_mcdb.py (+6/-0)
bin/addons/account_override/account_move_line.py (+2/-1)
bin/addons/msf_profile/i18n/fr_MF.po (+50/-1)
bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv (+2/-2)
To merge this branch: bzr merge lp:~julie-w/unifield-server/US-1255
Reviewer Review Type Date Requested Status
UniField Reviewer Team Pending
Review via email: mp+332481@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bin/addons/account/wizard/account_invoice_refund.py'
--- bin/addons/account/wizard/account_invoice_refund.py 2017-07-03 16:00:30 +0000
+++ bin/addons/account/wizard/account_invoice_refund.py 2017-10-19 09:52:42 +0000
@@ -238,6 +238,14 @@
238 if 'value' in data and data['value']:238 if 'value' in data and data['value']:
239 inv_obj.write(cr, uid, [inv_id], data['value'])239 inv_obj.write(cr, uid, [inv_id], data['value'])
240 created_inv.append(inv_id)240 created_inv.append(inv_id)
241
242 # Refund cancel/modify: set the invoice JI/AJIs as Corrected by the system so that they can't be
243 # corrected manually. This must be done at the end of the refund process to handle the right AJI ids
244 # get the list of move lines excluding invoice header
245 ml_list = [ml.id for ml in movelines if not (ml.account_id.id == inv.account_id.id and
246 abs(abs(inv.amount_total) - abs(ml.amount_currency)) <= 10**-3)]
247 account_m_line_obj.set_as_corrected(cr, uid, ml_list, manual=False, context=None)
248
241 if inv.type in ('out_invoice', 'out_refund'):249 if inv.type in ('out_invoice', 'out_refund'):
242 xml_id = 'action_invoice_tree3'250 xml_id = 'action_invoice_tree3'
243 else:251 else:
244252
=== modified file 'bin/addons/account_corrections/account_move_line.py'
--- bin/addons/account_corrections/account_move_line.py 2017-04-28 07:56:21 +0000
+++ bin/addons/account_corrections/account_move_line.py 2017-10-19 09:52:42 +0000
@@ -148,6 +148,7 @@
148 'last_cor_was_only_analytic': fields.boolean(string="AD Corrected?",148 'last_cor_was_only_analytic': fields.boolean(string="AD Corrected?",
149 invisible=True,149 invisible=True,
150 help="If true, this line has been corrected by an accounting correction wizard but with only an AD correction (no G/L correction)"),150 help="If true, this line has been corrected by an accounting correction wizard but with only an AD correction (no G/L correction)"),
151 'is_manually_corrected': fields.boolean('Is Manually Corrected'),
151 }152 }
152153
153 _defaults = {154 _defaults = {
@@ -156,6 +157,7 @@
156 'have_an_historic': lambda *a: False,157 'have_an_historic': lambda *a: False,
157 'is_corrigible': lambda *a: True,158 'is_corrigible': lambda *a: True,
158 'last_cor_was_only_analytic': lambda *a: False,159 'last_cor_was_only_analytic': lambda *a: False,
160 'is_manually_corrected': lambda *a: False,
159 }161 }
160162
161 def copy(self, cr, uid, aml_id, default=None, context=None):163 def copy(self, cr, uid, aml_id, default=None, context=None):
@@ -174,6 +176,7 @@
174 'corrected': False,176 'corrected': False,
175 'reversal': False,177 'reversal': False,
176 'last_cor_was_only_analytic': False,178 'last_cor_was_only_analytic': False,
179 'is_manually_corrected': False,
177 })180 })
178 if 'exported' not in default:181 if 'exported' not in default:
179 default['exported'] = False182 default['exported'] = False
@@ -280,7 +283,7 @@
280 wiz_obj = self.pool.get('wizard.journal.items.corrections')283 wiz_obj = self.pool.get('wizard.journal.items.corrections')
281 ml = self.browse(cr, uid, ids[0])284 ml = self.browse(cr, uid, ids[0])
282 # Create wizard285 # Create wizard
283 wizard = wiz_obj.create(cr, uid, {'move_line_id': ids[0]}, context=context)286 wizard = wiz_obj.create(cr, uid, {'move_line_id': ids[0], 'from_ji': True}, context=context)
284 # Change wizard state in order to change date requirement on wizard287 # Change wizard state in order to change date requirement on wizard
285 wiz_obj.write(cr, uid, [wizard], {'state': 'open'}, context=context)288 wiz_obj.write(cr, uid, [wizard], {'state': 'open'}, context=context)
286 # Update context289 # Update context
@@ -316,6 +319,34 @@
316 context={}319 context={}
317 if isinstance(ids, (int, long)):320 if isinstance(ids, (int, long)):
318 ids = [ids]321 ids = [ids]
322 # if JI was marked as corrected manually: display the Reverse Manual Corr. wizard instead of the History wizard
323 # except if it's a project line that was marked as Corrected in a upper level
324 reverse_corr_wiz_obj = self.pool.get('reverse.manual.correction.wizard')
325 user_obj = self.pool.get('res.users')
326 display_reverse_corr_wiz = False
327 if len(ids) == 1:
328 ml = self.read(cr, uid, ids[0], ['is_manually_corrected', 'corrected_upstream'], context=context)
329 if ml['is_manually_corrected']:
330 company = user_obj.browse(cr, uid, uid, context=context).company_id
331 level = company.instance_id and company.instance_id.level or ''
332 if not ml['corrected_upstream'] or level != 'project':
333 display_reverse_corr_wiz = True
334 if display_reverse_corr_wiz:
335 context.update({
336 'active_id': ids[0],
337 'active_ids': ids,
338 })
339 reverse_corr_wizard = reverse_corr_wiz_obj.create(cr, uid, {}, context=context)
340 return {
341 'name': _("History Move Line"), # same title as the History Wizard
342 'type': 'ir.actions.act_window',
343 'res_model': 'reverse.manual.correction.wizard',
344 'view_mode': 'form,tree',
345 'view_type': 'form',
346 'res_id': [reverse_corr_wizard],
347 'context': context,
348 'target': 'new',
349 }
319 # Prepare some values350 # Prepare some values
320 domain_ids = []351 domain_ids = []
321 # Search ids to be open352 # Search ids to be open
@@ -949,8 +980,42 @@
949 self.write(cr, uid, ml_ids, {'corrected_upstream': True}, check=False, update_check=False, context=context)980 self.write(cr, uid, ml_ids, {'corrected_upstream': True}, check=False, update_check=False, context=context)
950 return True981 return True
951982
983 def set_as_corrected(self, cr, uid, ji_ids, manual=True, context=None):
984 """
985 Sets the JIs and their related AJIs as Corrected according to the following rules:
986 - if one of the JIs or AJIs has already been corrected it raises an error
987 - if manual = True, the Correction will be set as Manual (= the user will be able to reverse it manually)
988 """
989 if context is None:
990 context = {}
991 if isinstance(ji_ids, (int, long)):
992 ji_ids = [ji_ids]
993 aal_obj = self.pool.get('account.analytic.line')
994 for ji in self.browse(cr, uid, ji_ids, fields_to_fetch=['corrected', 'move_id'], context=context):
995 # check that the JI isn't already corrected
996 if ji.corrected:
997 raise osv.except_osv(_('Error'), _('The entry %s has already been corrected.') % ji.move_id.name)
998 # check that none of the AJIs linked to the JIs has already been reallocated
999 aji_ids = aal_obj.search(cr, uid, [('move_id', '=', ji.id)], order='NO_ORDER', context=context)
1000 for aji in aal_obj.read(cr, uid, aji_ids, ['is_reallocated'], context=context):
1001 if aji['is_reallocated']:
1002 raise osv.except_osv(_('Error'), _('One AJI related to the entry %s has already been corrected.') % ji.move_id.name)
1003 # set the JI as corrected
1004 manual_corr_vals = {'is_manually_corrected': manual,
1005 'corrected': True, # is_corrigible will be seen as "False"
1006 'have_an_historic': True}
1007 # write on JI without recreating AJIs
1008 self.write(cr, uid, ji.id, manual_corr_vals, context=context, check=False, update_check=False)
1009 # Set the "corrected_upstream" flag on the JI if necessary
1010 # (so that project lines marked as corrected in a upper level can't be "uncorrected" in project)
1011 self.corrected_upstream_marker(cr, uid, [ji.id], context=context)
1012 # set the AJIs as corrected
1013 aal_obj.write(cr, uid, aji_ids, {'is_reallocated': True}, context=context)
1014
1015
952account_move_line()1016account_move_line()
9531017
1018
954class account_move(osv.osv):1019class account_move(osv.osv):
955 _name = 'account.move'1020 _name = 'account.move'
956 _inherit = 'account.move'1021 _inherit = 'account.move'
@@ -971,4 +1036,45 @@
971 return reversed_move1036 return reversed_move
9721037
973account_move()1038account_move()
1039
1040
1041class reverse_manual_correction_wizard(osv.osv_memory):
1042 _name = 'reverse.manual.correction.wizard'
1043 _description = 'Manual Correction Reversal Wizard'
1044
1045 _columns = {
1046 }
1047
1048 _defaults = {
1049 }
1050
1051 def reverse_manual_correction(self, cr, uid, ids, context=None):
1052 """
1053 Cancels the "Manual Correction" on the JI and its AJIs so that they can be re-corrected
1054 """
1055 if context is None:
1056 context = {}
1057 aml_obj = self.pool.get('account.move.line')
1058 aal_obj = self.pool.get('account.analytic.line')
1059 ji_id = context.get('active_id', False)
1060 if ji_id:
1061 # set the JI as non-corrected
1062 is_cor_line = False
1063 if aml_obj.read(cr, uid, ji_id, ['corrected_line_id'], context=context)['corrected_line_id']:
1064 # if a COR line was corrected manually: the History Wizard must still appear if manual corr. is removed
1065 is_cor_line = True
1066 reverse_corr_vals = {'is_manually_corrected': False,
1067 'corrected': False, # is_corrigible will be seen as "True"
1068 'have_an_historic': is_cor_line,
1069 'corrected_upstream': False}
1070 # add a tag in context to allow the write on a system JI (ex: to cancel a manual corr. done on a SI line)
1071 context.update({'from_manual_corr_reversal': True})
1072 aml_obj.write(cr, uid, ji_id, reverse_corr_vals, context=context, check=False, update_check=False)
1073 # set the AJIs as non-corrected
1074 aji_ids = aal_obj.search(cr, uid, [('move_id', '=', ji_id)], order='NO_ORDER', context=context)
1075 aal_obj.write(cr, uid, aji_ids, {'is_reallocated': False}, context=context)
1076 return {'type': 'ir.actions.act_window_close'}
1077
1078
1079reverse_manual_correction_wizard()
974# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:1080# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
9751081
=== modified file 'bin/addons/account_corrections/account_wizard_view.xml'
--- bin/addons/account_corrections/account_wizard_view.xml 2016-05-27 09:17:16 +0000
+++ bin/addons/account_corrections/account_wizard_view.xml 2017-10-19 09:52:42 +0000
@@ -38,9 +38,14 @@
38 <field name="arch" type="xml">38 <field name="arch" type="xml">
39 <form string="Journal items corrections Wizard">39 <form string="Journal items corrections Wizard">
40 <separator string="Correction"/>40 <separator string="Correction"/>
41 <field name="date" on_change="onchange_date(date)" colspan="2"/>41 <group col="10" colspan="4">
42 <label string="" colspan="2"/>42 <field name="date" on_change="onchange_date(date)" colspan="2"/>
43 <field name="from_donation" invisible="1"/>43 <field name="from_ji" invisible="1" colspan="2"/>
44 <button name="correct_manually" type="object" string="Set as Corrected Manually" colspan="2"
45 icon="terp-gtk-go-back-rtl" attrs="{'invisible': [('from_ji', '=', False)]}" />
46 <label string="" colspan="2"/>
47 <field name="from_donation" invisible="1" colspan="2"/>
48 </group>
44 <newline/>49 <newline/>
45 <field name="to_be_corrected_ids" colspan="6" context="{'from_donation_account': from_donation}" nolabel="1"/>50 <field name="to_be_corrected_ids" colspan="6" context="{'from_donation_account': from_donation}" nolabel="1"/>
46 <newline/>51 <newline/>
@@ -79,5 +84,19 @@
79 </field>84 </field>
80 </record>85 </record>
8186
87 <!-- Reversal Manual Correction Wizard -->
88 <record model="ir.ui.view" id="reverse_manual_correction_wizard_form">
89 <field name="name">reverse.manual.correction.wizard.form</field>
90 <field name="model">reverse.manual.correction.wizard</field>
91 <field name="type">form</field>
92 <field name="arch" type="xml">
93 <form>
94 <label string="This line has been manually corrected. Do you want to reverse the correction?" colspan="4"/>
95 <button icon="gtk-cancel" special="cancel" string="Cancel"/>
96 <button icon="terp-gtk-go-back-ltr" string="Reverse the correction" name="reverse_manual_correction" type="object"/>
97 </form>
98 </field>
99 </record>
100
82 </data>101 </data>
83</openerp>102</openerp>
84103
=== modified file 'bin/addons/account_corrections/wizard/journal_items_corrections.py'
--- bin/addons/account_corrections/wizard/journal_items_corrections.py 2017-04-19 10:18:53 +0000
+++ bin/addons/account_corrections/wizard/journal_items_corrections.py 2017-10-19 09:52:42 +0000
@@ -208,6 +208,7 @@
208 'state': fields.selection([('draft', 'Draft'), ('open', 'Open')], string="state"),208 'state': fields.selection([('draft', 'Draft'), ('open', 'Open')], string="state"),
209 'from_donation': fields.boolean('From Donation account?'),209 'from_donation': fields.boolean('From Donation account?'),
210 'from_register': fields.function(_get_from_register, type='boolean', string='From register?', method=True, store=False),210 'from_register': fields.function(_get_from_register, type='boolean', string='From register?', method=True, store=False),
211 'from_ji': fields.boolean('Opened from the JI view?'),
211 }212 }
212213
213 _defaults = {214 _defaults = {
@@ -359,6 +360,19 @@
359 employee_id=aml.employee_id or False, transfer_journal_id=aml.transfer_journal_id or False,360 employee_id=aml.employee_id or False, transfer_journal_id=aml.transfer_journal_id or False,
360 partner_id=aml.partner_id or False, raise_it=True, context=context)361 partner_id=aml.partner_id or False, raise_it=True, context=context)
361362
363 def correct_manually(self, cr, uid, ids, context=None):
364 """
365 Gets the JI displayed in the wizard and sets it as Manually Corrected
366 """
367 if context is None:
368 context = {}
369 if isinstance(ids, (int, long)):
370 ids = [ids]
371 aml_obj = self.pool.get('account.move.line')
372 wizard = self.browse(cr, uid, ids[0], context=context)
373 aml_obj.set_as_corrected(cr, uid, [wizard.move_line_id.id], context=context)
374 return {'type': 'ir.actions.act_window_close'}
375
362 def action_confirm(self, cr, uid, ids, context=None, distrib_id=False):376 def action_confirm(self, cr, uid, ids, context=None, distrib_id=False):
363 """377 """
364 Do a correction from the given line378 Do a correction from the given line
@@ -368,6 +382,7 @@
368 context = {}382 context = {}
369 if isinstance(ids, (int, long)):383 if isinstance(ids, (int, long)):
370 ids = [ids]384 ids = [ids]
385 aml_obj = self.pool.get('account.move.line')
371 # Verify that date is superior to line's date386 # Verify that date is superior to line's date
372 for wiz in self.browse(cr, uid, ids, context=context):387 for wiz in self.browse(cr, uid, ids, context=context):
373 if wiz.move_line_id and wiz.move_line_id.date:388 if wiz.move_line_id and wiz.move_line_id.date:
@@ -384,7 +399,6 @@
384 if cp.state != 'draft':399 if cp.state != 'draft':
385 raise osv.except_osv(_('Error'), _('Period (%s) is not open.') % (cp.name,))400 raise osv.except_osv(_('Error'), _('Period (%s) is not open.') % (cp.name,))
386401
387 aml_obj = self.pool.get('account.move.line')
388 # Fetch old line402 # Fetch old line
389 old_line = wizard.move_line_id403 old_line = wizard.move_line_id
390 # Verify what have changed between old line and new one404 # Verify what have changed between old line and new one
391405
=== modified file 'bin/addons/account_mcdb/account_mcdb.py'
--- bin/addons/account_mcdb/account_mcdb.py 2017-08-10 12:29:42 +0000
+++ bin/addons/account_mcdb/account_mcdb.py 2017-10-19 09:52:42 +0000
@@ -411,9 +411,15 @@
411 # REALLOCATION field411 # REALLOCATION field
412 if wiz.reallocated:412 if wiz.reallocated:
413 if wiz.reallocated == 'reallocated':413 if wiz.reallocated == 'reallocated':
414 # entries corrected by the system (= not marked as corrected manually)
414 domain.append(('is_reallocated', '=', True))415 domain.append(('is_reallocated', '=', True))
416 domain.append('|')
417 domain.append(('move_id', '=', False))
418 domain.append(('move_id.is_manually_corrected', '=', False))
415 elif wiz.reallocated == 'unreallocated':419 elif wiz.reallocated == 'unreallocated':
420 domain.append('|')
416 domain.append(('is_reallocated', '=', False))421 domain.append(('is_reallocated', '=', False))
422 domain.append(('move_id.is_manually_corrected', '=', True))
417 # REVERSED field423 # REVERSED field
418 if wiz.reversed:424 if wiz.reversed:
419 if wiz.reversed == 'reversed':425 if wiz.reversed == 'reversed':
420426
=== modified file 'bin/addons/account_override/account_move_line.py'
--- bin/addons/account_override/account_move_line.py 2017-08-21 10:17:48 +0000
+++ bin/addons/account_override/account_move_line.py 2017-10-19 09:52:42 +0000
@@ -557,7 +557,8 @@
557 reconciliation = ml.reconcile_id or ml.reconcile_partial_id or False557 reconciliation = ml.reconcile_id or ml.reconcile_partial_id or False
558 if reconciliation and reconciliation.type == 'auto':558 if reconciliation and reconciliation.type == 'auto':
559 raise osv.except_osv(_('Warning'), _('Only manually reconciled entries can be unreconciled.'))559 raise osv.except_osv(_('Warning'), _('Only manually reconciled entries can be unreconciled.'))
560 elif ml.move_id and ml.move_id.status == 'sys':560 # prevent from modifying system JIs except for reversing a manual correction
561 elif ml.move_id and ml.move_id.status == 'sys' and not context.get('from_manual_corr_reversal'):
561 raise osv.except_osv(_('Warning'), _('You cannot change Journal Items that comes from the system!'))562 raise osv.except_osv(_('Warning'), _('You cannot change Journal Items that comes from the system!'))
562 # Check date validity with period563 # Check date validity with period
563 self._check_date_validity(cr, uid, ids, vals)564 self._check_date_validity(cr, uid, ids, vals)
564565
=== modified file 'bin/addons/msf_profile/i18n/fr_MF.po'
--- bin/addons/msf_profile/i18n/fr_MF.po 2017-10-09 16:01:14 +0000
+++ bin/addons/msf_profile/i18n/fr_MF.po 2017-10-19 09:52:42 +0000
@@ -94508,7 +94508,7 @@
94508msgid "Search Uninvoiced Lines"94508msgid "Search Uninvoiced Lines"
94509msgstr "Rechercher Lignes non-facturées"94509msgstr "Rechercher Lignes non-facturées"
9451094510
94511#. modules: res_currency_functional, financing_contract, msf_tools, account_voucher, account_hq_entries, account_override, product_attributes, base_report_designer, register_accounting, procurement_cycle, msf_accrual, finance, sync_client, purchase_followup, account_mcdb, res_currency_tables, supplier_catalogue, procurement_request, purchase, purchase_compare_rfq, board, stock_override, msf_doc_import, analytic_distribution, threshold_value, account_payment, msf_homere_interface, msf_instance, account_reconciliation, consumption_calculation, purchase_override, specific_rules, kit, sale_override, base, account_period_closing_level, msf_currency_revaluation, msf_supply_doc_export, product_list, procurement_report, msf_budget, account_corrections, account, msf_outgoing, stock_move_tracking, procurement_auto, documents_done, sale, msf_config_locations, sales_followup, vertical_integration, procurement, sourcing, msf_custom_settings, msf_audittrail, tender_flow, stock, msf_profile94511#. modules: res_currency_functional, financing_contract, msf_tools, account_voucher, account_hq_entries, account_override, product_attributes, base_report_designer, register_accounting, procurement_cycle, msf_accrual, finance, sync_client, purchase_followup, account_mcdb, res_currency_tables, supplier_catalogue, procurement_request, purchase, purchase_compare_rfq, board, stock_override, msf_doc_import, analytic_distribution, threshold_value, account_payment, msf_homere_interface, msf_instance, account_reconciliation, consumption_calculation, purchase_override, specific_rules, kit, sale_override, base, account_period_closing_level, msf_currency_revaluation, msf_supply_doc_export, product_list, procurement_report, msf_budget, account_corrections, account, msf_outgoing, stock_move_tracking, procurement_auto, documents_done, sale, msf_config_locations, sales_followup, vertical_integration, procurement, sourcing, msf_custom_settings, msf_audittrail, tender_flow, stock, msf_profile, account_corrections
94512#: view:account.addtmpl.wizard:094512#: view:account.addtmpl.wizard:0
94513#: view:account.aged.trial.balance:094513#: view:account.aged.trial.balance:0
94514#: view:account.analytic.Journal.report:094514#: view:account.analytic.Journal.report:0
@@ -94731,6 +94731,7 @@
94731#: view:stock.picking.processor:094731#: view:stock.picking.processor:0
94732#: view:wizard.import.invoice.line:094732#: view:wizard.import.invoice.line:0
94733#: view:wizard.report.paid.invoice:094733#: view:wizard.report.paid.invoice:0
94734#: view:reverse.manual.correction.wizard:0
94734#, python-format94735#, python-format
94735msgid "Cancel"94736msgid "Cancel"
94736msgstr "Annuler"94737msgstr "Annuler"
@@ -99629,3 +99630,51 @@
99629#, python-format99630#, python-format
99630msgid "You can't delete this FX rate as the period \"%s\" isn't in Draft state."99631msgid "You can't delete this FX rate as the period \"%s\" isn't in Draft state."
99631msgstr "Vous ne pouvez pas supprimer ce taux de change car la période \"%s\" n'est pas en statut Brouillon."99632msgstr "Vous ne pouvez pas supprimer ce taux de change car la période \"%s\" n'est pas en statut Brouillon."
99633
99634#. module: account_corrections
99635#: view:wizard.journal.items.corrections:0
99636msgid "Set as Corrected Manually"
99637msgstr "Marquer comme Corrigé Manuellement"
99638
99639#. module: account_corrections
99640#: field:wizard.journal.items.corrections,from_ji:0
99641msgid "Opened from the JI view?"
99642msgstr "Ouvert depuis la vue Lignes d'Ecritures Comptables ?"
99643
99644#. module: account_corrections
99645#: field:account.move.line,is_manually_corrected:0
99646msgid "Is Manually Corrected"
99647msgstr "Est Corrigé Manuellement"
99648
99649#. module: account_corrections
99650#: code:addons/account_corrections/account_move_line.py:341
99651#, python-format
99652msgid "History Move Line"
99653msgstr "Historique - Ecriture"
99654
99655#. module: account_corrections
99656#: view:reverse.manual.correction.wizard:0
99657msgid "This line has been manually corrected. Do you want to reverse the correction?"
99658msgstr "Cette ligne a été corrigée manuellement. Voulez-vous annuler la correction ?"
99659
99660#. module: account_corrections
99661#: view:reverse.manual.correction.wizard:0
99662msgid "Reverse the correction"
99663msgstr "Annuler la correction"
99664
99665#. module: account_corrections
99666#: model:ir.model,name:account_corrections.model_reverse_manual_correction_wizard
99667msgid "Manual Correction Reversal Wizard"
99668msgstr "Assistant d'Annulation de Correction Manuelle"
99669
99670#. module: account_corrections
99671#: code:addons/account_corrections/account_move_line.py:997
99672#, python-format
99673msgid "The entry %s has already been corrected."
99674msgstr "L'écriture %s a déjà été corrigée."
99675
99676#. module: account_corrections
99677#: code:addons/account_corrections/account_move_line.py:1001
99678#, python-format
99679msgid "One AJI related to the entry %s has already been corrected."
99680msgstr "Une entrée analytique liée à l'écriture %s a déjà été corrigée."
9963299681
=== modified file 'bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv'
--- bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2017-08-23 18:38:09 +0000
+++ bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2017-10-19 09:52:42 +0000
@@ -74,7 +74,7 @@
74msf_sync_data_server.account_move_reconcile,TRUE,TRUE,TRUE,FALSE,bidirectional,Bidirectional,[],"['name', 'type', 'is_multi_instance', 'multi_instance_level_creation', 'instance_id', 'nb_partial_legs']",HQ + MISSION,account.move.reconcile,,Account Move Reconcile,Valid,,41074msf_sync_data_server.account_move_reconcile,TRUE,TRUE,TRUE,FALSE,bidirectional,Bidirectional,[],"['name', 'type', 'is_multi_instance', 'multi_instance_level_creation', 'instance_id', 'nb_partial_legs']",HQ + MISSION,account.move.reconcile,,Account Move Reconcile,Valid,,410
75msf_sync_data_server.register_line_deleted,TRUE,TRUE,FALSE,FALSE,bidirectional,Bidirectional-Private,"[('instance_id' , 'in' , ('msf.instance' , 'id' , [('level' , '=' , 'project')]))]","['statement_id/id', 'sequence','instance_id/id']",MISSION,account.bank.statement.line.deleted,instance_id,Register Deleted Line,Valid,,40575msf_sync_data_server.register_line_deleted,TRUE,TRUE,FALSE,FALSE,bidirectional,Bidirectional-Private,"[('instance_id' , 'in' , ('msf.instance' , 'id' , [('level' , '=' , 'project')]))]","['statement_id/id', 'sequence','instance_id/id']",MISSION,account.bank.statement.line.deleted,instance_id,Register Deleted Line,Valid,,405
76msf_sync_data_server.account_move,TRUE,TRUE,TRUE,FALSE,bidirectional,Bidirectional-Private,[],"['date', 'document_date', 'imported', 'journal_id/id', 'name', 'narration', 'period_id/id', 'ref', 'statement_line_ids/id', 'to_check','instance_id/id','status','employee_id/id','transfer_journal_id/id','manual_currency_id/id','block_manual_currency_id','partner_id2/id','analytic_distribution_id/id', 'register_line_id/id']",HQ + MISSION,account.move,instance_id,Account Move,Valid,,41176msf_sync_data_server.account_move,TRUE,TRUE,TRUE,FALSE,bidirectional,Bidirectional-Private,[],"['date', 'document_date', 'imported', 'journal_id/id', 'name', 'narration', 'period_id/id', 'ref', 'statement_line_ids/id', 'to_check','instance_id/id','status','employee_id/id','transfer_journal_id/id','manual_currency_id/id','block_manual_currency_id','partner_id2/id','analytic_distribution_id/id', 'register_line_id/id']",HQ + MISSION,account.move,instance_id,Account Move,Valid,,411
77msf_sync_data_server.account_move_line,TRUE,TRUE,TRUE,FALSE,bidirectional,Bidirectional-Private,[],"['account_id/id', 'accrual', 'analytic_account_id/id', 'analytic_distribution_id/id', 'blocked', 'cheque_number','corrected', 'credit', 'credit_currency', 'currency_id/id', 'date_created', 'date_maturity', 'debit', 'debit_currency', 'document_date', 'employee_id/id', 'have_an_historic', 'instance_id/id', 'is_addendum_line', 'is_counterpart', 'is_transfer_with_change', 'is_write_off', 'journal_id/id', 'last_cor_was_only_analytic', 'move_id/id', 'name', 'partner_id/id','partner_txt','period_id/id', 'reconcile_id/id', 'reconcile_partial_id/id', 'ref', 'reversal', 'source_date', 'statement_id/id', 'reference', 'state','transfer_journal_id/id', 'transfer_amount', 'is_downpayment', 'reconcile_date', 'is_revaluated_ok', 'unreconcile_date', 'unreconcile_txt']",HQ + MISSION,account.move.line,instance_id,Account Move Line,Valid,,41277msf_sync_data_server.account_move_line,TRUE,TRUE,TRUE,FALSE,bidirectional,Bidirectional-Private,[],"['account_id/id', 'accrual', 'analytic_account_id/id', 'analytic_distribution_id/id', 'blocked', 'cheque_number','corrected', 'credit', 'credit_currency', 'currency_id/id', 'date_created', 'date_maturity', 'debit', 'debit_currency', 'document_date', 'employee_id/id', 'have_an_historic', 'instance_id/id', 'is_addendum_line', 'is_counterpart', 'is_transfer_with_change', 'is_write_off', 'journal_id/id', 'last_cor_was_only_analytic', 'move_id/id', 'name', 'partner_id/id','partner_txt','period_id/id', 'reconcile_id/id', 'reconcile_partial_id/id', 'ref', 'reversal', 'source_date', 'statement_id/id', 'reference', 'state','transfer_journal_id/id', 'transfer_amount', 'is_downpayment', 'reconcile_date', 'is_revaluated_ok', 'unreconcile_date', 'unreconcile_txt', 'is_manually_corrected']",HQ + MISSION,account.move.line,instance_id,Account Move Line,Valid,,412
78msf_sync_data_server.account_move_line_correction,TRUE,TRUE,FALSE,FALSE,bidirectional,Bidirectional-Private,"[('move_id','in',('account.move','id',[('state','=','posted')]))]","['corrected_line_id/id', 'instance_id/id', 'reversal_line_id/id']",HQ + MISSION,account.move.line,instance_id,Account Move Line Correction,Valid,,41378msf_sync_data_server.account_move_line_correction,TRUE,TRUE,FALSE,FALSE,bidirectional,Bidirectional-Private,"[('move_id','in',('account.move','id',[('state','=','posted')]))]","['corrected_line_id/id', 'instance_id/id', 'reversal_line_id/id']",HQ + MISSION,account.move.line,instance_id,Account Move Line Correction,Valid,,413
79msf_sync_data_server.account_move_line_register_line,TRUE,TRUE,FALSE,FALSE,bidirectional,Bidirectional-Private,[],"['corrected_st_line_id/id', 'instance_id/id']",MISSION,account.move.line,instance_id,Account Move Line / Register Line,Valid,,41479msf_sync_data_server.account_move_line_register_line,TRUE,TRUE,FALSE,FALSE,bidirectional,Bidirectional-Private,[],"['corrected_st_line_id/id', 'instance_id/id']",MISSION,account.move.line,instance_id,Account Move Line / Register Line,Valid,,414
80msf_sync_data_server.register_line_account_move_line,TRUE,TRUE,FALSE,FALSE,bidirectional,Bidirectional-Private,"[('instance_id' , 'in' , ('msf.instance' , 'id' , [('level' , '=' , 'project')])),('statement_id','in',('account.bank.statement','id',[('state','!=','draft')])),'!',('state','=','draft')]","['direct_invoice_move_id/id', 'first_move_line_id/id', 'from_import_cheque_id/id', 'imported_invoice_line_ids/id','instance_id/id', 'cash_return_move_line_id/id']",MISSION,account.bank.statement.line,instance_id,Register Line / Account Move Line,Valid,,41580msf_sync_data_server.register_line_account_move_line,TRUE,TRUE,FALSE,FALSE,bidirectional,Bidirectional-Private,"[('instance_id' , 'in' , ('msf.instance' , 'id' , [('level' , '=' , 'project')])),('statement_id','in',('account.bank.statement','id',[('state','!=','draft')])),'!',('state','=','draft')]","['direct_invoice_move_id/id', 'first_move_line_id/id', 'from_import_cheque_id/id', 'imported_invoice_line_ids/id','instance_id/id', 'cash_return_move_line_id/id']",MISSION,account.bank.statement.line,instance_id,Register Line / Account Move Line,Valid,,415
@@ -181,7 +181,7 @@
181msf_usb_sync_data_server.cp_gl_journals_registers,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,"['|',('type', '=', 'cash'),('type', '=', 'cheque')]","['bank_journal_id/id','analytic_journal_id/id', 'code', 'currency/id', 'default_credit_account_id/id', 'default_debit_account_id/id', 'name', 'type','instance_id/id']",USB,account.journal,,[MASTER] GL Journals - Registers,Valid,,1507181msf_usb_sync_data_server.cp_gl_journals_registers,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,"['|',('type', '=', 'cash'),('type', '=', 'cheque')]","['bank_journal_id/id','analytic_journal_id/id', 'code', 'currency/id', 'default_credit_account_id/id', 'default_debit_account_id/id', 'name', 'type','instance_id/id']",USB,account.journal,,[MASTER] GL Journals - Registers,Valid,,1507
182msf_usb_sync_data_server.cp_account_move_reconcile,TRUE,TRUE,TRUE,TRUE,cp_to_rw,Bidirectional,[],"['name', 'type']",USB,account.move.reconcile,,[MASTER] Account Move Reconcile,Valid,,1510182msf_usb_sync_data_server.cp_account_move_reconcile,TRUE,TRUE,TRUE,TRUE,cp_to_rw,Bidirectional,[],"['name', 'type']",USB,account.move.reconcile,,[MASTER] Account Move Reconcile,Valid,,1510
183msf_usb_sync_data_server.cp_account_move,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,[],"['date', 'document_date', 'imported', 'journal_id/id', 'name', 'narration', 'period_id/id', 'ref', 'statement_line_ids/id', 'to_check','instance_id/id','status','employee_id/id','transfer_journal_id/id','manual_currency_id/id','block_manual_currency_id','partner_id2/id','analytic_distribution_id/id']",USB,account.move,,[MASTER] Account Move,Valid,,1520183msf_usb_sync_data_server.cp_account_move,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,[],"['date', 'document_date', 'imported', 'journal_id/id', 'name', 'narration', 'period_id/id', 'ref', 'statement_line_ids/id', 'to_check','instance_id/id','status','employee_id/id','transfer_journal_id/id','manual_currency_id/id','block_manual_currency_id','partner_id2/id','analytic_distribution_id/id']",USB,account.move,,[MASTER] Account Move,Valid,,1520
184msf_usb_sync_data_server.cp_account_move_line,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,[],"['account_id/id', 'accrual', 'analytic_account_id/id', 'analytic_distribution_id/id', 'blocked', 'cheque_number','corrected', 'credit', 'credit_currency', 'currency_id/id', 'date', 'date_created', 'date_maturity', 'debit', 'debit_currency', 'document_date', 'employee_id/id', 'have_an_historic', 'instance_id/id', 'is_addendum_line', 'is_counterpart', 'is_transfer_with_change', 'is_write_off', 'journal_id/id', 'last_cor_was_only_analytic', 'move_id/id', 'move_state', 'name', 'partner_id/id','partner_txt','period_id/id', 'reconcile_id/id', 'ref', 'reversal', 'source_date', 'statement_id/id', 'reference', 'state','transfer_journal_id/id', 'transfer_amount', 'is_downpayment', 'reconcile_date', 'unreconcile_date', 'unreconcile_txt']",USB,account.move.line,,[MASTER] Account Move Line,Valid,,1521184msf_usb_sync_data_server.cp_account_move_line,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,[],"['account_id/id', 'accrual', 'analytic_account_id/id', 'analytic_distribution_id/id', 'blocked', 'cheque_number','corrected', 'credit', 'credit_currency', 'currency_id/id', 'date', 'date_created', 'date_maturity', 'debit', 'debit_currency', 'document_date', 'employee_id/id', 'have_an_historic', 'instance_id/id', 'is_addendum_line', 'is_counterpart', 'is_transfer_with_change', 'is_write_off', 'journal_id/id', 'last_cor_was_only_analytic', 'move_id/id', 'move_state', 'name', 'partner_id/id','partner_txt','period_id/id', 'reconcile_id/id', 'ref', 'reversal', 'source_date', 'statement_id/id', 'reference', 'state','transfer_journal_id/id', 'transfer_amount', 'is_downpayment', 'reconcile_date', 'unreconcile_date', 'unreconcile_txt', 'is_manually_corrected']",USB,account.move.line,,[MASTER] Account Move Line,Valid,,1521
185msf_usb_sync_data_server.cp_account_move_line_correction,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,"[('move_id','in',('account.move','id',[('state','=','posted')]))]","['corrected_line_id/id', 'instance_id/id', 'reversal_line_id/id']",USB,account.move.line,,[MASTER] Account Move Line Correction,Valid,,1522185msf_usb_sync_data_server.cp_account_move_line_correction,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,"[('move_id','in',('account.move','id',[('state','=','posted')]))]","['corrected_line_id/id', 'instance_id/id', 'reversal_line_id/id']",USB,account.move.line,,[MASTER] Account Move Line Correction,Valid,,1522
186msf_usb_sync_data_server.cp_account_move_line_register_line,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,[],"['corrected_st_line_id/id', 'instance_id/id']",USB,account.move.line,,[MASTER] Account Move Line / Register Line,Valid,,1523186msf_usb_sync_data_server.cp_account_move_line_register_line,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,[],"['corrected_st_line_id/id', 'instance_id/id']",USB,account.move.line,,[MASTER] Account Move Line / Register Line,Valid,,1523
187msf_usb_sync_data_server.cp_register_line_account_move_line,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,"[('instance_id' , 'in' , ('msf.instance' , 'id' , [('level' , '=' , 'project')])),('statement_id','in',('account.bank.statement','id',[('state','!=','draft')])),'!',('state','=','draft')]","['first_move_line_id/id', 'instance_id/id']",USB,account.bank.statement.line,,[MASTER] Register Line / Account Move Line,Valid,,1530187msf_usb_sync_data_server.cp_register_line_account_move_line,TRUE,TRUE,FALSE,TRUE,cp_to_rw,Bidirectional,"[('instance_id' , 'in' , ('msf.instance' , 'id' , [('level' , '=' , 'project')])),('statement_id','in',('account.bank.statement','id',[('state','!=','draft')])),'!',('state','=','draft')]","['first_move_line_id/id', 'instance_id/id']",USB,account.bank.statement.line,,[MASTER] Register Line / Account Move Line,Valid,,1530

Subscribers

People subscribed via source and target branches