Merge lp:~julie-w/unifield-server/US-1255 into lp:unifield-server
- US-1255
- Merge into trunk
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
UniField Reviewer Team | Pending | ||
Review via email: mp+332481@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'bin/addons/account/wizard/account_invoice_refund.py' |
2 | --- bin/addons/account/wizard/account_invoice_refund.py 2017-07-03 16:00:30 +0000 |
3 | +++ bin/addons/account/wizard/account_invoice_refund.py 2017-10-19 09:52:42 +0000 |
4 | @@ -238,6 +238,14 @@ |
5 | if 'value' in data and data['value']: |
6 | inv_obj.write(cr, uid, [inv_id], data['value']) |
7 | created_inv.append(inv_id) |
8 | + |
9 | + # Refund cancel/modify: set the invoice JI/AJIs as Corrected by the system so that they can't be |
10 | + # corrected manually. This must be done at the end of the refund process to handle the right AJI ids |
11 | + # get the list of move lines excluding invoice header |
12 | + ml_list = [ml.id for ml in movelines if not (ml.account_id.id == inv.account_id.id and |
13 | + abs(abs(inv.amount_total) - abs(ml.amount_currency)) <= 10**-3)] |
14 | + account_m_line_obj.set_as_corrected(cr, uid, ml_list, manual=False, context=None) |
15 | + |
16 | if inv.type in ('out_invoice', 'out_refund'): |
17 | xml_id = 'action_invoice_tree3' |
18 | else: |
19 | |
20 | === modified file 'bin/addons/account_corrections/account_move_line.py' |
21 | --- bin/addons/account_corrections/account_move_line.py 2017-04-28 07:56:21 +0000 |
22 | +++ bin/addons/account_corrections/account_move_line.py 2017-10-19 09:52:42 +0000 |
23 | @@ -148,6 +148,7 @@ |
24 | 'last_cor_was_only_analytic': fields.boolean(string="AD Corrected?", |
25 | invisible=True, |
26 | help="If true, this line has been corrected by an accounting correction wizard but with only an AD correction (no G/L correction)"), |
27 | + 'is_manually_corrected': fields.boolean('Is Manually Corrected'), |
28 | } |
29 | |
30 | _defaults = { |
31 | @@ -156,6 +157,7 @@ |
32 | 'have_an_historic': lambda *a: False, |
33 | 'is_corrigible': lambda *a: True, |
34 | 'last_cor_was_only_analytic': lambda *a: False, |
35 | + 'is_manually_corrected': lambda *a: False, |
36 | } |
37 | |
38 | def copy(self, cr, uid, aml_id, default=None, context=None): |
39 | @@ -174,6 +176,7 @@ |
40 | 'corrected': False, |
41 | 'reversal': False, |
42 | 'last_cor_was_only_analytic': False, |
43 | + 'is_manually_corrected': False, |
44 | }) |
45 | if 'exported' not in default: |
46 | default['exported'] = False |
47 | @@ -280,7 +283,7 @@ |
48 | wiz_obj = self.pool.get('wizard.journal.items.corrections') |
49 | ml = self.browse(cr, uid, ids[0]) |
50 | # Create wizard |
51 | - wizard = wiz_obj.create(cr, uid, {'move_line_id': ids[0]}, context=context) |
52 | + wizard = wiz_obj.create(cr, uid, {'move_line_id': ids[0], 'from_ji': True}, context=context) |
53 | # Change wizard state in order to change date requirement on wizard |
54 | wiz_obj.write(cr, uid, [wizard], {'state': 'open'}, context=context) |
55 | # Update context |
56 | @@ -316,6 +319,34 @@ |
57 | context={} |
58 | if isinstance(ids, (int, long)): |
59 | ids = [ids] |
60 | + # if JI was marked as corrected manually: display the Reverse Manual Corr. wizard instead of the History wizard |
61 | + # except if it's a project line that was marked as Corrected in a upper level |
62 | + reverse_corr_wiz_obj = self.pool.get('reverse.manual.correction.wizard') |
63 | + user_obj = self.pool.get('res.users') |
64 | + display_reverse_corr_wiz = False |
65 | + if len(ids) == 1: |
66 | + ml = self.read(cr, uid, ids[0], ['is_manually_corrected', 'corrected_upstream'], context=context) |
67 | + if ml['is_manually_corrected']: |
68 | + company = user_obj.browse(cr, uid, uid, context=context).company_id |
69 | + level = company.instance_id and company.instance_id.level or '' |
70 | + if not ml['corrected_upstream'] or level != 'project': |
71 | + display_reverse_corr_wiz = True |
72 | + if display_reverse_corr_wiz: |
73 | + context.update({ |
74 | + 'active_id': ids[0], |
75 | + 'active_ids': ids, |
76 | + }) |
77 | + reverse_corr_wizard = reverse_corr_wiz_obj.create(cr, uid, {}, context=context) |
78 | + return { |
79 | + 'name': _("History Move Line"), # same title as the History Wizard |
80 | + 'type': 'ir.actions.act_window', |
81 | + 'res_model': 'reverse.manual.correction.wizard', |
82 | + 'view_mode': 'form,tree', |
83 | + 'view_type': 'form', |
84 | + 'res_id': [reverse_corr_wizard], |
85 | + 'context': context, |
86 | + 'target': 'new', |
87 | + } |
88 | # Prepare some values |
89 | domain_ids = [] |
90 | # Search ids to be open |
91 | @@ -949,8 +980,42 @@ |
92 | self.write(cr, uid, ml_ids, {'corrected_upstream': True}, check=False, update_check=False, context=context) |
93 | return True |
94 | |
95 | + def set_as_corrected(self, cr, uid, ji_ids, manual=True, context=None): |
96 | + """ |
97 | + Sets the JIs and their related AJIs as Corrected according to the following rules: |
98 | + - if one of the JIs or AJIs has already been corrected it raises an error |
99 | + - if manual = True, the Correction will be set as Manual (= the user will be able to reverse it manually) |
100 | + """ |
101 | + if context is None: |
102 | + context = {} |
103 | + if isinstance(ji_ids, (int, long)): |
104 | + ji_ids = [ji_ids] |
105 | + aal_obj = self.pool.get('account.analytic.line') |
106 | + for ji in self.browse(cr, uid, ji_ids, fields_to_fetch=['corrected', 'move_id'], context=context): |
107 | + # check that the JI isn't already corrected |
108 | + if ji.corrected: |
109 | + raise osv.except_osv(_('Error'), _('The entry %s has already been corrected.') % ji.move_id.name) |
110 | + # check that none of the AJIs linked to the JIs has already been reallocated |
111 | + aji_ids = aal_obj.search(cr, uid, [('move_id', '=', ji.id)], order='NO_ORDER', context=context) |
112 | + for aji in aal_obj.read(cr, uid, aji_ids, ['is_reallocated'], context=context): |
113 | + if aji['is_reallocated']: |
114 | + raise osv.except_osv(_('Error'), _('One AJI related to the entry %s has already been corrected.') % ji.move_id.name) |
115 | + # set the JI as corrected |
116 | + manual_corr_vals = {'is_manually_corrected': manual, |
117 | + 'corrected': True, # is_corrigible will be seen as "False" |
118 | + 'have_an_historic': True} |
119 | + # write on JI without recreating AJIs |
120 | + self.write(cr, uid, ji.id, manual_corr_vals, context=context, check=False, update_check=False) |
121 | + # Set the "corrected_upstream" flag on the JI if necessary |
122 | + # (so that project lines marked as corrected in a upper level can't be "uncorrected" in project) |
123 | + self.corrected_upstream_marker(cr, uid, [ji.id], context=context) |
124 | + # set the AJIs as corrected |
125 | + aal_obj.write(cr, uid, aji_ids, {'is_reallocated': True}, context=context) |
126 | + |
127 | + |
128 | account_move_line() |
129 | |
130 | + |
131 | class account_move(osv.osv): |
132 | _name = 'account.move' |
133 | _inherit = 'account.move' |
134 | @@ -971,4 +1036,45 @@ |
135 | return reversed_move |
136 | |
137 | account_move() |
138 | + |
139 | + |
140 | +class reverse_manual_correction_wizard(osv.osv_memory): |
141 | + _name = 'reverse.manual.correction.wizard' |
142 | + _description = 'Manual Correction Reversal Wizard' |
143 | + |
144 | + _columns = { |
145 | + } |
146 | + |
147 | + _defaults = { |
148 | + } |
149 | + |
150 | + def reverse_manual_correction(self, cr, uid, ids, context=None): |
151 | + """ |
152 | + Cancels the "Manual Correction" on the JI and its AJIs so that they can be re-corrected |
153 | + """ |
154 | + if context is None: |
155 | + context = {} |
156 | + aml_obj = self.pool.get('account.move.line') |
157 | + aal_obj = self.pool.get('account.analytic.line') |
158 | + ji_id = context.get('active_id', False) |
159 | + if ji_id: |
160 | + # set the JI as non-corrected |
161 | + is_cor_line = False |
162 | + if aml_obj.read(cr, uid, ji_id, ['corrected_line_id'], context=context)['corrected_line_id']: |
163 | + # if a COR line was corrected manually: the History Wizard must still appear if manual corr. is removed |
164 | + is_cor_line = True |
165 | + reverse_corr_vals = {'is_manually_corrected': False, |
166 | + 'corrected': False, # is_corrigible will be seen as "True" |
167 | + 'have_an_historic': is_cor_line, |
168 | + 'corrected_upstream': False} |
169 | + # add a tag in context to allow the write on a system JI (ex: to cancel a manual corr. done on a SI line) |
170 | + context.update({'from_manual_corr_reversal': True}) |
171 | + aml_obj.write(cr, uid, ji_id, reverse_corr_vals, context=context, check=False, update_check=False) |
172 | + # set the AJIs as non-corrected |
173 | + aji_ids = aal_obj.search(cr, uid, [('move_id', '=', ji_id)], order='NO_ORDER', context=context) |
174 | + aal_obj.write(cr, uid, aji_ids, {'is_reallocated': False}, context=context) |
175 | + return {'type': 'ir.actions.act_window_close'} |
176 | + |
177 | + |
178 | +reverse_manual_correction_wizard() |
179 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
180 | |
181 | === modified file 'bin/addons/account_corrections/account_wizard_view.xml' |
182 | --- bin/addons/account_corrections/account_wizard_view.xml 2016-05-27 09:17:16 +0000 |
183 | +++ bin/addons/account_corrections/account_wizard_view.xml 2017-10-19 09:52:42 +0000 |
184 | @@ -38,9 +38,14 @@ |
185 | <field name="arch" type="xml"> |
186 | <form string="Journal items corrections Wizard"> |
187 | <separator string="Correction"/> |
188 | - <field name="date" on_change="onchange_date(date)" colspan="2"/> |
189 | - <label string="" colspan="2"/> |
190 | - <field name="from_donation" invisible="1"/> |
191 | + <group col="10" colspan="4"> |
192 | + <field name="date" on_change="onchange_date(date)" colspan="2"/> |
193 | + <field name="from_ji" invisible="1" colspan="2"/> |
194 | + <button name="correct_manually" type="object" string="Set as Corrected Manually" colspan="2" |
195 | + icon="terp-gtk-go-back-rtl" attrs="{'invisible': [('from_ji', '=', False)]}" /> |
196 | + <label string="" colspan="2"/> |
197 | + <field name="from_donation" invisible="1" colspan="2"/> |
198 | + </group> |
199 | <newline/> |
200 | <field name="to_be_corrected_ids" colspan="6" context="{'from_donation_account': from_donation}" nolabel="1"/> |
201 | <newline/> |
202 | @@ -79,5 +84,19 @@ |
203 | </field> |
204 | </record> |
205 | |
206 | + <!-- Reversal Manual Correction Wizard --> |
207 | + <record model="ir.ui.view" id="reverse_manual_correction_wizard_form"> |
208 | + <field name="name">reverse.manual.correction.wizard.form</field> |
209 | + <field name="model">reverse.manual.correction.wizard</field> |
210 | + <field name="type">form</field> |
211 | + <field name="arch" type="xml"> |
212 | + <form> |
213 | + <label string="This line has been manually corrected. Do you want to reverse the correction?" colspan="4"/> |
214 | + <button icon="gtk-cancel" special="cancel" string="Cancel"/> |
215 | + <button icon="terp-gtk-go-back-ltr" string="Reverse the correction" name="reverse_manual_correction" type="object"/> |
216 | + </form> |
217 | + </field> |
218 | + </record> |
219 | + |
220 | </data> |
221 | </openerp> |
222 | |
223 | === modified file 'bin/addons/account_corrections/wizard/journal_items_corrections.py' |
224 | --- bin/addons/account_corrections/wizard/journal_items_corrections.py 2017-04-19 10:18:53 +0000 |
225 | +++ bin/addons/account_corrections/wizard/journal_items_corrections.py 2017-10-19 09:52:42 +0000 |
226 | @@ -208,6 +208,7 @@ |
227 | 'state': fields.selection([('draft', 'Draft'), ('open', 'Open')], string="state"), |
228 | 'from_donation': fields.boolean('From Donation account?'), |
229 | 'from_register': fields.function(_get_from_register, type='boolean', string='From register?', method=True, store=False), |
230 | + 'from_ji': fields.boolean('Opened from the JI view?'), |
231 | } |
232 | |
233 | _defaults = { |
234 | @@ -359,6 +360,19 @@ |
235 | employee_id=aml.employee_id or False, transfer_journal_id=aml.transfer_journal_id or False, |
236 | partner_id=aml.partner_id or False, raise_it=True, context=context) |
237 | |
238 | + def correct_manually(self, cr, uid, ids, context=None): |
239 | + """ |
240 | + Gets the JI displayed in the wizard and sets it as Manually Corrected |
241 | + """ |
242 | + if context is None: |
243 | + context = {} |
244 | + if isinstance(ids, (int, long)): |
245 | + ids = [ids] |
246 | + aml_obj = self.pool.get('account.move.line') |
247 | + wizard = self.browse(cr, uid, ids[0], context=context) |
248 | + aml_obj.set_as_corrected(cr, uid, [wizard.move_line_id.id], context=context) |
249 | + return {'type': 'ir.actions.act_window_close'} |
250 | + |
251 | def action_confirm(self, cr, uid, ids, context=None, distrib_id=False): |
252 | """ |
253 | Do a correction from the given line |
254 | @@ -368,6 +382,7 @@ |
255 | context = {} |
256 | if isinstance(ids, (int, long)): |
257 | ids = [ids] |
258 | + aml_obj = self.pool.get('account.move.line') |
259 | # Verify that date is superior to line's date |
260 | for wiz in self.browse(cr, uid, ids, context=context): |
261 | if wiz.move_line_id and wiz.move_line_id.date: |
262 | @@ -384,7 +399,6 @@ |
263 | if cp.state != 'draft': |
264 | raise osv.except_osv(_('Error'), _('Period (%s) is not open.') % (cp.name,)) |
265 | |
266 | - aml_obj = self.pool.get('account.move.line') |
267 | # Fetch old line |
268 | old_line = wizard.move_line_id |
269 | # Verify what have changed between old line and new one |
270 | |
271 | === modified file 'bin/addons/account_mcdb/account_mcdb.py' |
272 | --- bin/addons/account_mcdb/account_mcdb.py 2017-08-10 12:29:42 +0000 |
273 | +++ bin/addons/account_mcdb/account_mcdb.py 2017-10-19 09:52:42 +0000 |
274 | @@ -411,9 +411,15 @@ |
275 | # REALLOCATION field |
276 | if wiz.reallocated: |
277 | if wiz.reallocated == 'reallocated': |
278 | + # entries corrected by the system (= not marked as corrected manually) |
279 | domain.append(('is_reallocated', '=', True)) |
280 | + domain.append('|') |
281 | + domain.append(('move_id', '=', False)) |
282 | + domain.append(('move_id.is_manually_corrected', '=', False)) |
283 | elif wiz.reallocated == 'unreallocated': |
284 | + domain.append('|') |
285 | domain.append(('is_reallocated', '=', False)) |
286 | + domain.append(('move_id.is_manually_corrected', '=', True)) |
287 | # REVERSED field |
288 | if wiz.reversed: |
289 | if wiz.reversed == 'reversed': |
290 | |
291 | === modified file 'bin/addons/account_override/account_move_line.py' |
292 | --- bin/addons/account_override/account_move_line.py 2017-08-21 10:17:48 +0000 |
293 | +++ bin/addons/account_override/account_move_line.py 2017-10-19 09:52:42 +0000 |
294 | @@ -557,7 +557,8 @@ |
295 | reconciliation = ml.reconcile_id or ml.reconcile_partial_id or False |
296 | if reconciliation and reconciliation.type == 'auto': |
297 | raise osv.except_osv(_('Warning'), _('Only manually reconciled entries can be unreconciled.')) |
298 | - elif ml.move_id and ml.move_id.status == 'sys': |
299 | + # prevent from modifying system JIs except for reversing a manual correction |
300 | + elif ml.move_id and ml.move_id.status == 'sys' and not context.get('from_manual_corr_reversal'): |
301 | raise osv.except_osv(_('Warning'), _('You cannot change Journal Items that comes from the system!')) |
302 | # Check date validity with period |
303 | self._check_date_validity(cr, uid, ids, vals) |
304 | |
305 | === modified file 'bin/addons/msf_profile/i18n/fr_MF.po' |
306 | --- bin/addons/msf_profile/i18n/fr_MF.po 2017-10-09 16:01:14 +0000 |
307 | +++ bin/addons/msf_profile/i18n/fr_MF.po 2017-10-19 09:52:42 +0000 |
308 | @@ -94508,7 +94508,7 @@ |
309 | msgid "Search Uninvoiced Lines" |
310 | msgstr "Rechercher Lignes non-facturées" |
311 | |
312 | -#. 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 |
313 | +#. 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 |
314 | #: view:account.addtmpl.wizard:0 |
315 | #: view:account.aged.trial.balance:0 |
316 | #: view:account.analytic.Journal.report:0 |
317 | @@ -94731,6 +94731,7 @@ |
318 | #: view:stock.picking.processor:0 |
319 | #: view:wizard.import.invoice.line:0 |
320 | #: view:wizard.report.paid.invoice:0 |
321 | +#: view:reverse.manual.correction.wizard:0 |
322 | #, python-format |
323 | msgid "Cancel" |
324 | msgstr "Annuler" |
325 | @@ -99629,3 +99630,51 @@ |
326 | #, python-format |
327 | msgid "You can't delete this FX rate as the period \"%s\" isn't in Draft state." |
328 | msgstr "Vous ne pouvez pas supprimer ce taux de change car la période \"%s\" n'est pas en statut Brouillon." |
329 | + |
330 | +#. module: account_corrections |
331 | +#: view:wizard.journal.items.corrections:0 |
332 | +msgid "Set as Corrected Manually" |
333 | +msgstr "Marquer comme Corrigé Manuellement" |
334 | + |
335 | +#. module: account_corrections |
336 | +#: field:wizard.journal.items.corrections,from_ji:0 |
337 | +msgid "Opened from the JI view?" |
338 | +msgstr "Ouvert depuis la vue Lignes d'Ecritures Comptables ?" |
339 | + |
340 | +#. module: account_corrections |
341 | +#: field:account.move.line,is_manually_corrected:0 |
342 | +msgid "Is Manually Corrected" |
343 | +msgstr "Est Corrigé Manuellement" |
344 | + |
345 | +#. module: account_corrections |
346 | +#: code:addons/account_corrections/account_move_line.py:341 |
347 | +#, python-format |
348 | +msgid "History Move Line" |
349 | +msgstr "Historique - Ecriture" |
350 | + |
351 | +#. module: account_corrections |
352 | +#: view:reverse.manual.correction.wizard:0 |
353 | +msgid "This line has been manually corrected. Do you want to reverse the correction?" |
354 | +msgstr "Cette ligne a été corrigée manuellement. Voulez-vous annuler la correction ?" |
355 | + |
356 | +#. module: account_corrections |
357 | +#: view:reverse.manual.correction.wizard:0 |
358 | +msgid "Reverse the correction" |
359 | +msgstr "Annuler la correction" |
360 | + |
361 | +#. module: account_corrections |
362 | +#: model:ir.model,name:account_corrections.model_reverse_manual_correction_wizard |
363 | +msgid "Manual Correction Reversal Wizard" |
364 | +msgstr "Assistant d'Annulation de Correction Manuelle" |
365 | + |
366 | +#. module: account_corrections |
367 | +#: code:addons/account_corrections/account_move_line.py:997 |
368 | +#, python-format |
369 | +msgid "The entry %s has already been corrected." |
370 | +msgstr "L'écriture %s a déjà été corrigée." |
371 | + |
372 | +#. module: account_corrections |
373 | +#: code:addons/account_corrections/account_move_line.py:1001 |
374 | +#, python-format |
375 | +msgid "One AJI related to the entry %s has already been corrected." |
376 | +msgstr "Une entrée analytique liée à l'écriture %s a déjà été corrigée." |
377 | |
378 | === modified file 'bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv' |
379 | --- bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2017-08-23 18:38:09 +0000 |
380 | +++ bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2017-10-19 09:52:42 +0000 |
381 | @@ -74,7 +74,7 @@ |
382 | msf_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 |
383 | msf_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 |
384 | msf_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 |
385 | -msf_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,,412 |
386 | +msf_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 |
387 | msf_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 |
388 | msf_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 |
389 | msf_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 |
390 | @@ -181,7 +181,7 @@ |
391 | msf_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 |
392 | msf_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 |
393 | msf_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 |
394 | -msf_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,,1521 |
395 | +msf_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 |
396 | msf_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 |
397 | msf_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 |
398 | msf_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 |