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
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

Subscribers

People subscribed via source and target branches