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

Proposed by jftempo
Status: Merged
Merged at revision: 4853
Proposed branch: lp:~julie-w/unifield-server/US-4169
Merge into: lp:unifield-server
Diff against target: 127 lines (+29/-12)
4 files modified
bin/addons/account_hq_entries/hq_entries.py (+22/-6)
bin/addons/account_hq_entries/wizard/hq_entries_unsplit.py (+2/-2)
bin/addons/account_hq_entries/wizard/hq_entries_validation.py (+3/-3)
bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv (+2/-1)
To merge this branch: bzr merge lp:~julie-w/unifield-server/US-4169
Reviewer Review Type Date Requested Status
UniField Reviewer Team Pending
Review via email: mp+343396@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_hq_entries/hq_entries.py'
2--- bin/addons/account_hq_entries/hq_entries.py 2018-02-26 09:49:40 +0000
3+++ bin/addons/account_hq_entries/hq_entries.py 2018-04-17 09:12:01 +0000
4@@ -260,9 +260,9 @@
5
6 for line in self.browse(cr, uid, ids, context=context):
7 res.add(line.id)
8- if line.is_original:
9+ if line.is_original and line.split_ids:
10 add_split(line)
11- if line.is_split:
12+ if line.is_split and line.original_id:
13 # add original one
14 res.add(line.original_id.id)
15 # then other split lines
16@@ -282,7 +282,9 @@
17 # Prepare some values
18 res = set()
19 for line in self.browse(cr, uid, ids, context=context):
20- if line.user_validated == False and (line.is_original or line.is_split):
21+ line_original = line.is_original and line.split_ids
22+ line_split = line.is_split and line.original_id
23+ if not line.user_validated and (line_original or line_split):
24 # First add original and split linked lines
25 for el in self.get_linked_lines(cr, uid, [line.id]):
26 res.add(el)
27@@ -466,8 +468,13 @@
28
29 #US-921: Only save the user_validated value if the update comes from sync!
30 if context.get('sync_update_execution', False):
31- if 'user_validated' in vals:
32- return super(hq_entries, self).write(cr, uid, ids, {'user_validated': vals['user_validated']}, context)
33+ sync_vals = {}
34+ if 'user_validated' in vals:
35+ sync_vals.update({'user_validated': vals['user_validated']})
36+ if 'is_original' in vals: # US-4169 also enable to sync the is_original tag
37+ sync_vals.update({'is_original': vals['is_original']})
38+ if sync_vals:
39+ return super(hq_entries, self).write(cr, uid, ids, sync_vals, context)
40 return True
41
42 if 'account_id' in vals:
43@@ -480,6 +487,7 @@
44
45 def unlink(self, cr, uid, ids, context=None):
46 """
47+ At synchro. only delete the entries having the tag is_split (= sync of an unsplit done in coordo). Otherwise:
48 Do not permit user to delete:
49 - validated HQ entries
50 - split entries
51@@ -487,10 +495,18 @@
52 """
53 if isinstance(ids, (int, long)):
54 ids = [ids]
55+ if context is None:
56+ context = {}
57+ if context.get('sync_update_execution', False):
58+ new_ids = []
59+ for hq_entry in self.browse(cr, uid, ids, fields_to_fetch=['is_split'], context=context):
60+ if hq_entry.is_split:
61+ new_ids.append(hq_entry.id)
62+ ids = new_ids
63 if not context.get('from', False) or context.get('from') != 'code' and ids:
64 if self.search(cr, uid, [('id', 'in', ids), ('user_validated', '=', True)]):
65 raise osv.except_osv(_('Error'), _('You cannot delete validated HQ Entries lines!'))
66- if self.search(cr, uid, [('id', 'in', ids), ('is_split', '=', True)]):
67+ if self.search(cr, uid, [('id', 'in', ids), ('is_split', '=', True)]) and not context.get('sync_update_execution'):
68 raise osv.except_osv(_('Error'), _('You cannot delete split entries!'))
69 if self.search(cr, uid, [('id', 'in', ids), ('is_original', '=', True)]):
70 raise osv.except_osv(_('Error'), _('You cannot delete original entries!'))
71
72=== modified file 'bin/addons/account_hq_entries/wizard/hq_entries_unsplit.py'
73--- bin/addons/account_hq_entries/wizard/hq_entries_unsplit.py 2015-05-27 15:54:46 +0000
74+++ bin/addons/account_hq_entries/wizard/hq_entries_unsplit.py 2018-04-17 09:12:01 +0000
75@@ -61,10 +61,10 @@
76 split_ids = []
77 original_ids = []
78 for line in wiz.process_ids:
79- if line.is_original:
80+ if line.is_original and line.split_ids:
81 original_ids.append(line.id)
82 continue
83- if line.is_split:
84+ if line.is_split and line.original_id:
85 split_ids.append(line.id)
86 continue
87 # Process
88
89=== modified file 'bin/addons/account_hq_entries/wizard/hq_entries_validation.py'
90--- bin/addons/account_hq_entries/wizard/hq_entries_validation.py 2018-04-03 10:18:51 +0000
91+++ bin/addons/account_hq_entries/wizard/hq_entries_validation.py 2018-04-17 09:12:01 +0000
92@@ -261,10 +261,10 @@
93 #+ original ones
94 #+ split ones
95 for line in lines:
96- if line.is_original:
97+ if line.is_original and line.split_ids:
98 original_lines.add(line)
99 all_lines.add(line.id)
100- elif line.is_split:
101+ elif line.is_split and line.original_id:
102 original_lines.add(line.original_id)
103 all_lines.add(line.original_id.id)
104 # Create the original line as it is (and its reverse)
105@@ -434,7 +434,7 @@
106 self.write(cr, uid, [wiz.id], {'running': False})
107 raise osv.except_osv(_('Warning'), _('Invalid analytic distribution!'))
108 # UTP-760: Do other modifications for split lines
109- if line.is_original or line.is_split:
110+ if (line.is_original and line.split_ids) or (line.is_split and line.original_id):
111 split_change.append(line)
112 continue
113 if not line.user_validated:
114
115=== modified file 'bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv'
116--- bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2018-03-15 14:46:24 +0000
117+++ bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2018-04-17 09:12:01 +0000
118@@ -38,7 +38,8 @@
119 msf_sync_data_server.fp_distribution_line_intermission,FALSE,TRUE,FALSE,FALSE,bidirectional,Bidirectional,"[('cost_center_id' , 'in' , ('account.analytic.account' , 'id' , [('code','=','cc-intermission')]))]","['amount', 'analytic_id/id', 'cost_center_id/id', 'currency_id/id', 'date', 'destination_id/id', 'distribution_id/id', 'name', 'percentage', 'source_date']",COORDINATIONS,funding.pool.distribution.line,,FP Distribution Line - Intermission ,Valid,,211
120 msf_sync_data_server.free_1_distribution_line,TRUE,TRUE,TRUE,FALSE,bidirectional,Bidirectional,[],"['amount', 'analytic_id/id', 'currency_id/id', 'date', 'destination_id/id', 'distribution_id/id', 'name', 'percentage', 'source_date']",HQ + MISSION,free.1.distribution.line,,Free 1 Distribution Line,Valid,,220
121 msf_sync_data_server.free_2_distribution_line,TRUE,TRUE,TRUE,FALSE,bidirectional,Bidirectional,[],"['amount', 'analytic_id/id', 'currency_id/id', 'date', 'destination_id/id', 'distribution_id/id', 'name', 'percentage', 'source_date']",HQ + MISSION,free.2.distribution.line,,Free 2 Distribution Line,Valid,,221
122-msf_sync_data_server.hq_entries,TRUE,TRUE,FALSE,FALSE,bidirectional,Bidirectional-Private,[],"['account_id/id', 'account_id_first_value/id', 'amount', 'analytic_id/id', 'analytic_id_first_value/id', 'analytic_state', 'cost_center_id/id', 'cost_center_id_first_value/id', 'currency_id/id', 'date', 'destination_id/id', 'destination_id_first_value/id', 'document_date', 'free_1_id/id', 'free_2_id/id', 'name', 'partner_txt', 'period_id/id', 'ref', 'user_validated']",OC,hq.entries,cost_center_id,HQ Entries,Valid,,250
123+msf_sync_data_server.hq_entries,TRUE,TRUE,FALSE,FALSE,bidirectional,Bidirectional-Private,[],"['account_id/id', 'account_id_first_value/id', 'amount', 'analytic_id/id', 'analytic_id_first_value/id', 'analytic_state', 'cost_center_id/id', 'cost_center_id_first_value/id', 'currency_id/id', 'date', 'destination_id/id', 'destination_id_first_value/id', 'document_date', 'free_1_id/id', 'free_2_id/id', 'name', 'partner_txt', 'period_id/id', 'ref', 'user_validated', 'is_split', 'is_original']",OC,hq.entries,cost_center_id,HQ Entries,Valid,,250
124+msf_sync_data_server.hq_entries_deletion,TRUE,TRUE,TRUE,FALSE,bidirectional,Up,"[('id', '=', 0)]","['name']",OC,hq.entries,,HQ Entries deletion,Valid,,251
125 msf_sync_data_server.gl_journal_non_registers,TRUE,TRUE,FALSE,TRUE,bidirectional,Up,"[('type', '!=', 'cash'),('type', '!=', 'cheque'),('type', '!=', 'bank')]","['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']",OC,account.journal,,GL Journal (Non Registers),Valid,,260
126 msf_sync_data_server.gl_journals_registers_hq_bank,FALSE,TRUE,FALSE,TRUE,bidirectional,Down,"[('type', '=', 'bank'),('instance_id.level', '=', 'section')]","['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']",OC,account.journal,,GL Journals – Bank Registers (HQ),Valid,,261
127 msf_sync_data_server.gl_journals_registers_coordo_bank,FALSE,TRUE,FALSE,TRUE,bidirectional,Down,"[('type', '=', 'bank'),('instance_id.level', '=', 'coordo')]","['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']",MISSION,account.journal,,GL Journals – Bank Registers (Coordo),Valid,,262

Subscribers

People subscribed via source and target branches