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

Proposed by jftempo on 2020-07-08
Status: Needs review
Proposed branch: lp:~julie-w/unifield-server/US-7314
Merge into: lp:unifield-server/uf17
Diff against target: 684 lines (+162/-70)
22 files modified
bin/addons/account/project/project.py (+1/-0)
bin/addons/account/project/project_view.xml (+0/-1)
bin/addons/account/report/account_general_ledger.py (+12/-14)
bin/addons/account/report/account_general_ledger_xls.mako (+42/-9)
bin/addons/account/wizard/account_report_general_ledger.py (+5/-2)
bin/addons/account/wizard/account_report_general_ledger_view.xml (+1/-2)
bin/addons/account_mcdb/report/combined_journals_report.py (+1/-1)
bin/addons/account_reconciliation/wizard/account_reconcile.py (+2/-9)
bin/addons/finance/account_drill.py (+1/-1)
bin/addons/msf_doc_import/account.py (+10/-1)
bin/addons/msf_profile/data/patches.xml (+9/-0)
bin/addons/msf_profile/i18n/fr_MF.po (+21/-10)
bin/addons/msf_profile/msf_profile.py (+27/-0)
bin/addons/msf_supply_doc_export/wizard/wizard_pick_import.py (+7/-6)
bin/addons/msf_sync_data_server/data/sync_server.message_rule.csv (+1/-1)
bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv (+4/-4)
bin/addons/register_accounting/wizard/wizard_register_import.py (+4/-0)
bin/addons/sale/report/sale_donation_stock_moves_report.py (+4/-2)
bin/addons/sales_followup/report/ir_follow_up_location_report.py (+1/-1)
bin/addons/stock/report/products_situation_report.py (+4/-2)
bin/osv/expression.py (+4/-3)
bin/release.py (+1/-1)
To merge this branch: bzr merge lp:~julie-w/unifield-server/US-7314
Reviewer Review Type Date Requested Status
UniField Dev Team 2020-07-08 Pending
Review via email: mp+387028@code.launchpad.net
To post a comment you must log in.

Unmerged revisions

5748. By Julie Nuguet on 2020-07-07

US-7314 [IMP] Reconciliations: rec. on the Salaries default account are now based on booking amouts => code refactoring following that change (bis)

5747. By Julie Nuguet on 2020-07-07

US-7314 [IMP] Reconciliations: rec. on the Salaries default account are now based on booking amouts => code refactoring following that change

5746. By Julie Nuguet on 2020-07-07

US-7314 [IMP] Reconciliations on the Salaries default account: use the booking amounts to determine whether the rec. should be total

5745. By jftempo on 2020-07-06

[MERGE] UF17.1 US-7654 VI IN import: don't block if ED is not set in the xml file

5744. By jftempo on 2020-07-06

US-7370 [FIX] PICK import: ignore check on BN for unprocessed lines / disable checks if the line is Not Available

lp:~dorian-kemps/unifield-server/US-7370

5743. By jftempo on 2020-07-06

US-7318 [FIX] IR followup report: fixed UC with non-Cancel/Done IR and a fully cancelled line

lp:~dorian-kemps/unifield-server/US-7318

5742. By jftempo on 2020-06-29

[MERGE] UF17.1 US-7631 Default account code for liquidity journals

5741. By jftempo on 2020-06-29

US-6544 [FIX] Patch script must not be executed on new instances

5740. By jftempo on 2020-06-25

[MERGE] UF17.1
  US-4280 [FIX] PO followup: exclude pick/out from the report
  US-7593 [FIX] Partners form view: do not display inactive languages and currencies + patch script to inactive en_US
  US-7500 [FIX] Physical Inventory: CS import prevent creation of line_no duplication, allow to import Disc. with duplicates line_no

5739. By jftempo on 2020-06-25

US-6896 [FIX] Product Situation report: BN/ED filters fixed

lp:~dorian-kemps/unifield-server/US-6896

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'bin/addons/account/project/project.py'
2--- bin/addons/account/project/project.py 2019-12-16 11:00:41 +0000
3+++ bin/addons/account/project/project.py 2020-07-08 09:16:28 +0000
4@@ -28,6 +28,7 @@
5 _columns = {
6 'name': fields.char('Journal Name', size=64, required=True),
7 'code': fields.char('Journal Code', size=8),
8+ # the Active tag should not be used anymore from US-7194
9 'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the analytic journal without removing it."),
10 'type': fields.selection([('sale','Sale'), ('purchase','Purchase'), ('cash','Cash'), ('general','General'), ('situation','Situation')], 'Type', size=32, required=True, help="Gives the type of the analytic journal. When it needs for a document (eg: an invoice) to create analytic entries, OpenERP will look for a matching journal of the same type."),
11 'line_ids': fields.one2many('account.analytic.line', 'journal_id', 'Lines'),
12
13=== modified file 'bin/addons/account/project/project_view.xml'
14--- bin/addons/account/project/project_view.xml 2020-01-30 10:18:45 +0000
15+++ bin/addons/account/project/project_view.xml 2020-07-08 09:16:28 +0000
16@@ -330,7 +330,6 @@
17 <field name="name" select="1" default_focus="1"/>
18 <field name="code" select="1" attrs="{'readonly': [('has_ajis', '=', True)]}"/>
19 <field name="type" select="2" attrs="{'readonly': [('has_ajis', '=', True)]}"/>
20- <field name="active" select="2"/>
21 <field name="company_id" groups="base.group_multi_company" widget="selection"/>
22 </form>
23 </field>
24
25=== modified file 'bin/addons/account/report/account_general_ledger.py'
26--- bin/addons/account/report/account_general_ledger.py 2020-02-03 14:46:06 +0000
27+++ bin/addons/account/report/account_general_ledger.py 2020-07-08 09:16:28 +0000
28@@ -225,7 +225,6 @@
29 'get_start_period': self.get_start_period,
30 'get_end_period': self.get_end_period,
31 'get_filter': self._get_filter,
32- 'get_sortby': self._get_sortby,
33 'get_start_date':self._get_start_date,
34 'get_end_date':self._get_end_date,
35 'get_target_move': self._get_target_move,
36@@ -337,10 +336,14 @@
37 del counterpart_res'''
38 # Then select all account_move_line of this account
39
40- if self.sortby == 'sort_journal_partner':
41- sql_sort='j.code, p.name, l.move_id'
42- else:
43- sql_sort='l.date, l.move_id'
44+ if self.sortby == 'sort_third_party':
45+ sql_sort = 'l.partner_txt NULLS first, l.move_id'
46+ elif self.sortby == 'sort_currency':
47+ sql_sort = 'c.name, l.move_id'
48+ elif self.sortby == 'sort_reconcile':
49+ sql_sort = 'l.reconcile_txt NULLS first, l.move_id'
50+ else: # sort_date by default
51+ sql_sort = 'l.date, l.move_id'
52 sql = """
53 SELECT l.id AS lid, l.date AS ldate, j.code AS lcode, l.currency_id,
54 l.amount_currency,l.ref AS lref, l.name AS lname,
55@@ -352,7 +355,7 @@
56 c.symbol AS currency_code,
57 i.id AS invoice_id, i.type AS invoice_type,
58 i.number AS invoice_number,
59- p.name AS partner_name, c.name as currency_name, l.partner_txt as third_party
60+ p.name AS partner_name, c.name as currency_name, l.partner_txt as third_party, l.reconcile_txt
61 FROM account_move_line l
62 JOIN account_move m on (l.move_id=m.id)
63 LEFT JOIN res_currency c on (l.currency_id=c.id)
64@@ -370,6 +373,8 @@
65 if self.init_balance:
66 # US-822: move lines for period 0 IB journal
67 sql_sort = 'l.move_id'
68+ if self.sortby == 'sort_currency': # also sort by currency in case the related option is selected
69+ sql_sort = 'c.name, l.move_id'
70 sql = """
71 SELECT l.id AS lid, l.date AS ldate, j.code AS lcode, l.currency_id,
72 l.amount_currency,l.ref AS lref, l.name AS lname,
73@@ -381,7 +386,7 @@
74 per.code as period_code, c.symbol AS currency_code,
75 '' AS invoice_id, '' invoice_type,
76 '' AS invoice_number,
77- '' AS partner_name, c.name as currency_name
78+ '' AS partner_name, c.name as currency_name, l.reconcile_txt
79 FROM account_move_line l
80 JOIN account_move m on (l.move_id=m.id)
81 LEFT JOIN res_currency c on (l.currency_id=c.id)
82@@ -416,13 +421,6 @@
83 return self.pool.get('account.account').browse(self.cr, self.uid, data['form']['id'], context=self.context).company_id.name
84 return super(general_ledger ,self)._get_account(data)
85
86- def _get_sortby(self, data):
87- if self.sortby == 'sort_date':
88- return 'Date'
89- elif self.sortby == 'sort_journal_partner':
90- return 'Journal & Partner'
91- return 'Date'
92-
93 def _get_output_currency_code(self, data):
94 return self.output_currency_code or self.currency_name
95
96
97=== modified file 'bin/addons/account/report/account_general_ledger_xls.mako'
98--- bin/addons/account/report/account_general_ledger_xls.mako 2019-07-31 15:26:10 +0000
99+++ bin/addons/account/report/account_general_ledger_xls.mako 2020-07-08 09:16:28 +0000
100@@ -132,6 +132,16 @@
101 <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" />
102 </Borders>
103 </Style>
104+<Style ss:ID="ssAccountLineRight">
105+<Alignment ss:Bottom="Top" ss:WrapText="1" ss:Vertical="Center" ss:Horizontal="Right"/>
106+<Font ss:Size="8"/>
107+<Borders>
108+ <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" />
109+ <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1" />
110+ <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1" />
111+ <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" />
112+</Borders>
113+</Style>
114 <Style ss:ID="ssAccountLineColored1">
115 <Alignment ss:Bottom="Top" ss:WrapText="1"/>
116 <Font ss:Size="8"/>
117@@ -201,10 +211,7 @@
118 <Column ss:AutoFitWidth="1" ss:Width="55" />
119 <Column ss:AutoFitWidth="1" ss:Width="100" ss:Span="1" />
120 <Column ss:AutoFitWidth="1" ss:Width="55" />
121-<Column ss:Width="90" />
122-<Column ss:Width="90" />
123-<Column ss:Width="90" />
124-<Column ss:Width="90" />
125+<Column ss:Width="90" ss:Span="4" />
126 <Row>
127 <Cell ss:StyleID="ssH"><Data ss:Type="String">${header_company_or_chart_of_account}</Data></Cell>
128 <Cell ss:StyleID="ssH"><Data ss:Type="String">Fiscal Year</Data></Cell>
129@@ -213,7 +220,12 @@
130 <Cell ss:StyleID="ssH"><Data ss:Type="String">${_('Open Items at')}</Data></Cell>
131 <Cell ss:StyleID="ssH"><Data ss:Type="String">Filter By ${(get_filter(data)!='No Filter' and get_filter(data) or '')|x}</Data></Cell>
132 <Cell ss:StyleID="ssH"><Data ss:Type="String">Target Moves</Data></Cell>
133-<Cell ss:StyleID="ssH" ss:MergeAcross="1"><Data ss:Type="String">Proprietary Instances</Data></Cell>
134+% if get_show_move_lines():
135+ <Cell ss:StyleID="ssH" ss:MergeAcross="2">
136+% else:
137+ <Cell ss:StyleID="ssH" ss:MergeAcross="1">
138+% endif
139+<Data ss:Type="String">Proprietary Instances</Data></Cell>
140 <Cell ss:StyleID="ssH"><Data ss:Type="String">Currency</Data></Cell>
141 </Row>
142 % for a in objects:
143@@ -239,8 +251,12 @@
144 <Cell ss:StyleID="ssHeader">
145 <Data ss:Type="String">${(get_target_move(data) or '')|x}</Data>
146 </Cell>
147-<Cell ss:StyleID="ssHeader" ss:MergeAcross="1">
148- <Data ss:Type="String">${(get_prop_instances() or '')|x}</Data>
149+% if get_show_move_lines():
150+ <Cell ss:StyleID="ssHeader" ss:MergeAcross="2">
151+% else:
152+ <Cell ss:StyleID="ssHeader" ss:MergeAcross="1">
153+% endif
154+<Data ss:Type="String">${(get_prop_instances() or '')|x}</Data>
155 </Cell>
156 <Cell ss:StyleID="ssHeader">
157 <Data ss:Type="String">${get_output_currency_code(data)}</Data>
158@@ -269,6 +285,9 @@
159 <Cell ss:StyleID="ssH"><Data ss:Type="String">Credit</Data></Cell>
160 <Cell ss:StyleID="ssH"><Data ss:Type="String">Booking Balance</Data></Cell>
161 <Cell ss:StyleID="ssH"><Data ss:Type="String">Balance ${get_output_currency_code(data)}</Data></Cell>
162+% if get_show_move_lines():
163+ <Cell ss:StyleID="ssH"><Data ss:Type="String">${_('Reconcile Number')}</Data></Cell>
164+% endif
165 <Cell><Data ss:Type="String"></Data></Cell>
166 % if not get_show_move_lines():
167 <Cell><Data ss:Type="String"></Data></Cell>
168@@ -305,6 +324,9 @@
169 <Cell ss:StyleID="ssNumber${ac_style_suffix}">
170 <Data ss:Type="Number">${o.data['*']['debit'] - o.data['*']['credit']}</Data>
171 </Cell>
172+% if get_show_move_lines():
173+ <Cell ss:StyleID="ssBorder${ac_style_suffix}"><Data ss:Type="String"></Data></Cell>
174+% endif
175 </Row>
176 % endif
177
178@@ -333,6 +355,9 @@
179 <Cell ss:StyleID="ssNumber${ccy_sub_total_style_suffix}">
180 <Data ss:Type="Number">${o.data[ccy]['debit'] - o.data[ccy]['credit']}</Data>
181 </Cell>
182+ % if get_show_move_lines():
183+ <Cell ss:StyleID="ssAccountLine${ccy_sub_total_style_suffix}"><Data ss:Type="String"></Data></Cell>
184+ % endif
185 </Row>
186 % endfor
187 % endif
188@@ -360,13 +385,18 @@
189 <Cell ss:StyleID="ssNumber${ccy_sub_total_style_suffix}">
190 <Data ss:Type="Number">${get_line_balance(line, booking=False)}</Data>
191 </Cell>
192+% if get_show_move_lines():
193+ <Cell ss:StyleID="ssAccountLine${ccy_sub_total_style_suffix}">
194+ <Data ss:Type="String">${(line.get('reconcile_txt') or '')|x}</Data>
195+ </Cell>
196+% endif
197 </Row>
198 % endfor
199
200 % for line in lines(o, initial_balance_mode=False):
201 <Row>
202-<Cell ss:StyleID="ssAccountLine">
203- <Data ss:Type="String"></Data>
204+<Cell ss:StyleID="ssAccountLineRight">
205+ <Data ss:Type="String">${(o.code or '')|x}</Data>
206 </Cell>
207 <Cell ss:StyleID="ssAccountLine">
208 <Data ss:Type="String">${(line['move'] or '' or '')|x}</Data>
209@@ -395,6 +425,9 @@
210 <Cell ss:StyleID="ssAccountLineNumber">
211 <Data ss:Type="Number">${get_line_balance(line, booking=False)}</Data>
212 </Cell>
213+<Cell ss:StyleID="ssAccountLine">
214+ <Data ss:Type="String">${(line.get('reconcile_txt') or '')|x}</Data>
215+</Cell>
216 </Row>
217 % endfor
218
219
220=== modified file 'bin/addons/account/wizard/account_report_general_ledger.py'
221--- bin/addons/account/wizard/account_report_general_ledger.py 2017-08-18 09:55:08 +0000
222+++ bin/addons/account/wizard/account_report_general_ledger.py 2020-07-08 09:16:28 +0000
223@@ -41,7 +41,10 @@
224 help='It adds initial balance row on report which display previous sum amount of debit/credit/balance'),
225 'is_initial_balance_available': fields.function(_get_fake, method=True, type='boolean', string="Is initial balance filter available ?"),
226 'amount_currency': fields.boolean("With Currency", help="It adds the currency column if the currency is different then the company currency"),
227- 'sortby': fields.selection([('sort_date', 'Date'), ('sort_journal_partner', 'Journal & Partner')], 'Sort By', required=True),
228+ 'sortby': fields.selection([('sort_date', 'Posting Date'),
229+ ('sort_third_party', 'Third Party'),
230+ ('sort_currency', 'Currency'),
231+ ('sort_reconcile', 'Reconcile Number')], 'Sort by', required=True),
232 'output_currency': fields.many2one('res.currency', 'Output Currency', required=True),
233 'instance_ids': fields.many2many('msf.instance', 'account_report_general_ledger_instance_rel', 'instance_id', 'argl_id', 'Proprietary Instances'),
234 #'export_format': fields.selection([('xls', 'Excel'), ('csv', 'CSV'), ('pdf', 'PDF')], string="Export format", required=True),
235@@ -196,7 +199,7 @@
236
237 if data['form']['export_format'] \
238 and data['form']['export_format'] == 'xls':
239- return {
240+ return {
241 'type': 'ir.actions.report.xml',
242 'report_name': 'account.general.ledger_xls',
243 'datas': data,
244
245=== modified file 'bin/addons/account/wizard/account_report_general_ledger_view.xml'
246--- bin/addons/account/wizard/account_report_general_ledger_view.xml 2017-08-10 14:19:58 +0000
247+++ bin/addons/account/wizard/account_report_general_ledger_view.xml 2020-07-08 09:16:28 +0000
248@@ -16,7 +16,6 @@
249 <xpath expr="//field[@name='target_move']" position="after">
250 <field name="is_initial_balance_available" invisible="1"/>
251 <field name="display_account"/>
252- <field name="sortby" invisible="1" />
253 <field name="initial_balance" attrs="{'readonly':[('is_initial_balance_available', '=', False)]}" />
254 <field name="export_format"/>
255 <newline/>
256@@ -24,7 +23,7 @@
257 <field name="amount_currency" invisible="1" />
258 <newline/>
259 <field name="account_type" />
260- <newline/>
261+ <field name="sortby" />
262 <field name="reconciled" />
263 <field name="reconcile_date" />
264 <field name="open_items"/>
265
266=== modified file 'bin/addons/account_mcdb/report/combined_journals_report.py'
267--- bin/addons/account_mcdb/report/combined_journals_report.py 2019-09-17 12:44:09 +0000
268+++ bin/addons/account_mcdb/report/combined_journals_report.py 2020-07-08 09:16:28 +0000
269@@ -331,7 +331,7 @@
270 for aji in aal_obj.browse(self.cr, self.uid, analytic_line_ids, fields_to_fetch=aji_fields, context=self.context):
271 if not aji.move_id:
272 aji_ids.append(aji.id)
273- elif aji.journal_id.type == 'correction':
274+ elif aji.journal_id.type in ('correction', 'correction_hq', 'extra'):
275 corrected_aal = aji.last_corrected_id or aji.reversal_origin or False
276 corrected_aml = corrected_aal and corrected_aal.move_id or False
277 if corrected_aml and corrected_aml.last_cor_was_only_analytic and corrected_aml.id == aji.move_id.id:
278
279=== modified file 'bin/addons/account_reconciliation/wizard/account_reconcile.py'
280--- bin/addons/account_reconciliation/wizard/account_reconcile.py 2019-05-10 14:28:26 +0000
281+++ bin/addons/account_reconciliation/wizard/account_reconcile.py 2020-07-08 09:16:28 +0000
282@@ -226,15 +226,8 @@
283 different_currencies = True
284 debit = fdebit
285 credit = fcredit
286- # For salaries, behaviour is the same as total_change: we use functional debit/credit
287- if account_id == salary_account_id or (currency_id and currency2_id and not transfer_with_change):
288- if abs(fdebit - fcredit) <= 10**-3:
289- state = 'total'
290- else:
291- state = 'partial'
292- # UF-2050: Do not allow partial reconciliation of entries in different currencies. We ALWAYS do total reconciliation
293- if different_currencies and not transfer_with_change:
294- state = 'total'
295+ # UF-2050: Do not allow partial reconciliation of entries in different currencies. We ALWAYS do total reconciliation
296+ state = 'total'
297 return {'trans_nbr': count, 'account_id': account_id, 'credit': credit, 'debit': debit, 'writeoff': debit - credit, 'state': state, 'different_currencies': different_currencies}
298
299 def total_reconcile(self, cr, uid, ids, context=None):
300
301=== modified file 'bin/addons/finance/account_drill.py'
302--- bin/addons/finance/account_drill.py 2017-07-06 10:27:39 +0000
303+++ bin/addons/finance/account_drill.py 2020-07-08 09:16:28 +0000
304@@ -54,7 +54,7 @@
305 def get_currencies(self):
306 if not self.data:
307 return []
308- return [ c for c in self.data.keys() if c != '*' ]
309+ return sorted([ c for c in self.data.keys() if c != '*' ])
310
311 def output(self):
312 """
313
314=== modified file 'bin/addons/msf_doc_import/account.py'
315--- bin/addons/msf_doc_import/account.py 2020-03-17 16:24:38 +0000
316+++ bin/addons/msf_doc_import/account.py 2020-07-08 09:16:28 +0000
317@@ -370,6 +370,7 @@
318 r_credit = book_credit
319
320 # Check the journal code which must match with one of the journal types listed in ACCOUNTING_IMPORT_JOURNALS
321+ journal_type = ''
322 if not line[cols['Journal Code']]:
323 errors.append(_('Line %s. No Journal Code specified') % (current_line_num,))
324 continue
325@@ -381,7 +382,8 @@
326 continue
327 else:
328 aj_data = aj_obj.read(cr, uid, aj_ids, ['type'])[0]
329- if aj_data.get('type', False) is False or aj_data.get('type', False) not in ACCOUNTING_IMPORT_JOURNALS:
330+ journal_type = aj_data.get('type', False)
331+ if journal_type is False or journal_type not in ACCOUNTING_IMPORT_JOURNALS:
332 journal_list = ', '.join([x[1] for x in aj_obj.get_journal_type(cr, uid) if x[0] in ACCOUNTING_IMPORT_JOURNALS])
333 errors.append(_('Line %s. Import of entries only allowed on the following journal(s): %s') % (current_line_num, journal_list))
334 continue
335@@ -462,6 +464,13 @@
336 "\"Prevent correction on account codes\".") % (current_line_num, account.code, account.name,))
337 continue
338
339+ if account.type_for_register == 'donation' and journal_type != 'extra':
340+ jtype_value = journal_type and \
341+ dict(aj_obj.fields_get(cr, uid, context=context)['type']['selection']).get(journal_type) or ''
342+ errors.append(_('Line %s. The donation accounts are not compatible with the journal type %s.') %
343+ (current_line_num, jtype_value))
344+ continue
345+
346 # Check analytic axis only if G/L account is analytic-a-holic
347 if account.is_analytic_addicted:
348 # Check Destination
349
350=== modified file 'bin/addons/msf_profile/data/patches.xml'
351--- bin/addons/msf_profile/data/patches.xml 2020-06-26 12:27:30 +0000
352+++ bin/addons/msf_profile/data/patches.xml 2020-07-08 09:16:28 +0000
353@@ -560,5 +560,14 @@
354 <field name="method">us_7631_set_default_liquidity_accounts</field>
355 </record>
356
357+ <!-- UF18.0 -->
358+ <record id="us_7576_sync_msg_from_itself" model="patch.scripts">
359+ <field name="method">sync_msg_from_itself</field>
360+ </record>
361+
362+ <record id="us_6544_no_sync_on_forced_out" model="patch.scripts">
363+ <field name="method">us_6544_no_sync_on_forced_out</field>
364+ </record>
365+
366 </data>
367 </openerp>
368
369=== modified file 'bin/addons/msf_profile/i18n/fr_MF.po'
370--- bin/addons/msf_profile/i18n/fr_MF.po 2020-07-06 08:41:50 +0000
371+++ bin/addons/msf_profile/i18n/fr_MF.po 2020-07-08 09:16:28 +0000
372@@ -11816,11 +11816,6 @@
373 msgid "Group By"
374 msgstr "Grouper par"
375
376-#. module: account
377-#: selection:account.report.general.ledger,sortby:0
378-msgid "Journal & Partner"
379-msgstr "Journal et Partenaire"
380-
381 #. module: account_mcdb
382 #: selection:account.mcdb,currency_choice:0
383 msgid "Functional"
384@@ -12112,7 +12107,7 @@
385
386 #. module: account
387 #: field:account.report.general.ledger,sortby:0
388-msgid "Sort By"
389+msgid "Sort by"
390 msgstr "Trier par"
391
392 #. module: product
393@@ -37163,7 +37158,6 @@
394 #: selection:account.pl.report,filter:0
395 #: selection:account.print.journal,filter:0
396 #: selection:account.print.journal,sort_selection:0
397-#: selection:account.report.general.ledger,sortby:0
398 #: field:account.subscription.generate,date:0
399 #: field:account.subscription.line,date:0
400 #: report:account.tax.code.entries:0
401@@ -65008,6 +65002,7 @@
402 #: selection:integrity.finance.wizard,filter:0
403 #: code:addons/account_override/res_company.py:40
404 #: report:addons/account/report/export_invoice.mako:108
405+#: selection:account.report.general.ledger,sortby:0
406 #, python-format
407 msgid "Posting Date"
408 msgstr "Date de Comptabilisation"
409@@ -78028,6 +78023,7 @@
410 #: report:account.general.ledger_landscape:0
411 #: report:account.general.ledger_landscape_tb:0
412 #: report:addons/account/report/account_general_ledger_xls.mako:247
413+#: selection:account.report.general.ledger,sortby:0
414 #, python-format
415 msgid "Third Party"
416 msgstr "Tiers"
417@@ -92901,6 +92897,7 @@
418 #: report:addons/stock/report/stock_delivery_report_xls.mako:221
419 #: report:addons/account/report/export_invoice.mako:96
420 #: report:msf.purchase.quotation:0
421+#: selection:account.report.general.ledger,sortby:0
422 #, python-format
423 msgid "Currency"
424 msgstr "Devise"
425@@ -100630,6 +100627,8 @@
426 #: report:account.third_party_ledger:0
427 #: report:account.third_party_ledger_other:0
428 #: report:addons/account/report/account_partner_ledger.mako:310
429+#: selection:account.report.general.ledger,sortby:0
430+#: report:addons/account/report/account_general_ledger_xls.mako:289
431 msgid "Reconcile Number"
432 msgstr "Numéro de lettrage"
433
434@@ -108042,7 +108041,7 @@
435 #. module: procurement_cycle
436 #: field:replenishment.segment,order_creation_lt:0
437 msgid "Order Creation Lead Time (days)"
438-msgstr "Délai de création de commande (jours)"
439+msgstr "Délai de Création de Commande (jours)"
440
441 #. module: procurement_cycle
442 #: report:addons/procurement_cycle/report/replenishment_order_calc.mako:428
443@@ -110298,7 +110297,7 @@
444 #. module: procurement_cycle
445 #: view:replenishment.segment:0
446 msgid "Order Creation Lead Time (days) :"
447-msgstr "Délai de création de commande (jours) :"
448+msgstr "Délai de Création de Commande (jours) :"
449
450 #. module: procurement_cycle
451 #: view:replenishment.segment:0
452@@ -110323,7 +110322,19 @@
453 #. module: procurement_cycle
454 #: view:replenishment.segment:0
455 msgid "Handling Lead Time (days) :"
456-msgstr "Délai de traitement (jours) :"
457+msgstr "Délai de Manutention (jours) :"
458+
459+#. module: register_accounting
460+#: code:addons/register_accounting/wizard/wizard_register_import.py:495
461+#, python-format
462+msgid "Line %s. The journal third party used for the internal transfer must be different from the journal of the register."
463+msgstr "Ligne %s. Le tiers de type journal utilisé pour le transfert interne doit être différent du journal du registre."
464+
465+#. module: msf_doc_import
466+#: code:addons/msf_doc_import/account.py:470
467+#, python-format
468+msgid "Line %s. The donation accounts are not compatible with the journal type %s."
469+msgstr "Ligne %s. Les comptes de donation ne sont pas compatibles avec le type de journal %s."
470
471 #. module: msf_doc_import
472 #: code:addons/msf_doc_import/wizard/wizard_in_simulation_screen.py:1570
473
474=== modified file 'bin/addons/msf_profile/msf_profile.py'
475--- bin/addons/msf_profile/msf_profile.py 2020-06-26 12:27:30 +0000
476+++ bin/addons/msf_profile/msf_profile.py 2020-07-08 09:16:28 +0000
477@@ -52,6 +52,33 @@
478 'model': lambda *a: 'patch.scripts',
479 }
480
481+ # UF18.0
482+ def sync_msg_from_itself(self, cr, uid, *a, **b):
483+ instance = self.pool.get('res.users').browse(cr, uid, uid, fields_to_fetch=['company_id']).company_id.instance_id
484+ if not instance:
485+ return True
486+ cr.execute(''' update sync_client_message_received set run='t', manually_ran='t', log='Set manually to run without execution', manually_set_run_date=now() where run='f' and source=%s ''', (instance.instance, ))
487+ self._logger.warn('Set %s self sync messages as Run' % (cr.rowcount,))
488+ return True
489+
490+
491+ def us_6544_no_sync_on_forced_out(self, cr, uid, *a, **b):
492+ # already forced OUT as delivred must no generate sync msg to prevent NR at reception
493+ if self.pool.get('sync_client.version'):
494+ cr.execute('''
495+ update ir_model_data set sync_date=NOW() where id in (
496+ select d.id from
497+ stock_picking p
498+ left join ir_model_data d on d.model='stock.picking' and d.res_id=p.id and d.module='sd'
499+ where
500+ p.type='out' and
501+ p.subtype='standard' and
502+ p.state='delivered' and
503+ (d.sync_date is null or d.sync_date < d.last_modification)
504+ )''')
505+ self._logger.warn('Prevent NR on forced delivered OUT (%s)' % (cr.rowcount,))
506+ return True
507+
508 # UF17.1
509 def us_7631_set_default_liquidity_accounts(self, cr, uid, *a, **b):
510 if self.pool.get('sync_client.version') and self.pool.get('sync.client.entity'):
511
512=== modified file 'bin/addons/msf_supply_doc_export/wizard/wizard_pick_import.py'
513--- bin/addons/msf_supply_doc_export/wizard/wizard_pick_import.py 2019-10-01 09:33:29 +0000
514+++ bin/addons/msf_supply_doc_export/wizard/wizard_pick_import.py 2020-07-08 09:16:28 +0000
515@@ -281,13 +281,14 @@
516 qty_per_line[line_data['item']] = line_data['qty']
517
518 product = self.get_product(cr, uid, ids, line_data, context=context)
519- self.checks_on_batch(cr, uid, ids, product, line_data, context=context)
520- to_write.update({
521- 'move_id': self.get_matching_move(cr, uid, ids, line_data, product.id, wiz.picking_id.id, treated_lines, context=context)
522- })
523- if not to_write.get('move_id'):
524+ move_id = self.get_matching_move(cr, uid, ids, line_data, product.id, wiz.picking_id.id, treated_lines, context=context)
525+ if not move_id:
526 continue
527 else:
528+ self.checks_on_batch(cr, uid, ids, product, line_data, context=context)
529+ to_write.update({
530+ 'move_id': move_id,
531+ })
532 if line_data['qty_to_process'] > line_data['qty']:
533 raise osv.except_osv(
534 _('Error'),
535@@ -334,7 +335,7 @@
536 cr.execute("""
537 SELECT m.line_number, p.default_code, SUM(product_qty)
538 FROM stock_move m, product_product p
539- WHERE m.product_id = p.id AND m.picking_id = %s AND m.state IN ('confirmed', 'assigned')
540+ WHERE m.product_id = p.id AND m.picking_id = %s AND m.state = 'assigned'
541 GROUP BY m.line_number, p.default_code
542 """, (wiz.picking_id.id,))
543 for prod in cr.fetchall():
544
545=== modified file 'bin/addons/msf_sync_data_server/data/sync_server.message_rule.csv'
546--- bin/addons/msf_sync_data_server/data/sync_server.message_rule.csv 2020-05-10 10:29:07 +0000
547+++ bin/addons/msf_sync_data_server/data/sync_server.message_rule.csv 2020-07-08 09:16:28 +0000
548@@ -8,7 +8,7 @@
549 msf_sync_data_server.pol_create_sol,TRUE,TRUE,"['sync_local_id', 'order_id/name','product_id/id', 'product_id/name', 'name', 'state', 'product_qty', 'product_uom', 'price_unit', 'analytic_distribution_id/id','comment','have_analytic_distribution_from_header','line_number', 'nomen_manda_0/id','nomen_manda_1/id','nomen_manda_2/id','nomen_manda_3/id', 'nomenclature_description','notes','default_name','default_code','is_line_split','date_planned', 'stock_take_date', 'ir_name_for_sync']","[('sync_linked_sol', '=', False), ('order_id.partner_type', 'not in',['external','esc']), ('state', 'in', ['validated', 'confirmed', 'done']), ('order_id.state', 'not in', ['draft', 'draft_p', 'cancel'])]",partner_id,MISSION,sale.order.line.create_so_line,purchase.order.line,PO line creates FO line,11,,Valid
550 msf_sync_data_server.sol_updates_pol,TRUE,TRUE,"['resourced_original_line/id', 'resourced_original_remote_line','sync_sourced_origin', 'sync_local_id', 'sync_linked_pol', 'order_id/name', 'product_id/id', 'product_id/name', 'name', 'state','product_uom_qty', 'product_uom', 'price_unit', 'in_name_goods_return', 'analytic_distribution_id/id','comment','have_analytic_distribution_from_header','line_number', 'nomen_manda_0/id','nomen_manda_1/id','nomen_manda_2/id','nomen_manda_3/id', 'nomenclature_description','notes','default_name','default_code','date_planned','is_line_split', 'original_line_id/id', 'confirmed_delivery_date', 'stock_take_date', 'cancel_split_ok', 'modification_comment', 'from_cancel_out', 'pol_external_ref']","[('order_id.partner_type', '!=', 'external'), ('state', '!=', 'draft'), ('product_uom_qty', '!=', 0.0), '!', '&', ('order_id.fo_created_by_po_sync', '=', False), ('order_id.state', '=', 'draft')]",partner_id,MISSION,purchase.order.line.sol_update_original_pol,sale.order.line,FO line updates PO line,12,"[('order_id.state', 'in', ['draft', 'draft_p']), ('order_id.partner_type', 'not in', ['external', 'esc']), ('order_id.client_order_ref', '=', False)]",Valid
551 msf_sync_data_server.pol_update_date_expected,TRUE,TRUE,"['sync_local_id', 'sync_linked_pol']","[('id', '=', 0)]",partner_id,MISSION,purchase.order.line.update_date_expected,sale.order.line,Update IN expected date,55,,Valid
552-msf_sync_data_server.partial_shipped_coordo_updates_in_at_project,TRUE,TRUE,"['name', 'state', 'origin', 'partner_type_stock_picking', 'shipment_id/name', 'min_date', 'note', 'claim', 'move_lines/processed_stock_move', 'move_lines/id', 'move_lines/state','move_lines/original_qty_partial', 'move_lines/line_number', 'move_lines/name', 'move_lines/change_reason', 'move_lines/product_id/id', 'move_lines/product_id/name', 'move_lines/product_id/default_code', 'move_lines/product_qty', 'move_lines/prodlot_id/id','move_lines/prodlot_id/name','move_lines/prodlot_id/life_date', 'move_lines/prodlot_id/type', 'move_lines/prodlot_id/comment', 'move_lines/expired_date', 'move_lines/asset_id/id','move_lines/product_uom/id', 'move_lines/product_uom/name', 'move_lines/date', 'move_lines/date_expected', 'move_lines/note', 'move_lines/location_dest_id/usage', 'move_lines/comment', 'move_lines/sale_line_id/id', 'move_lines/sale_line_id/in_name_goods_return', 'sale_id/claim_name_goods_return', 'sale_id/client_order_ref']","['&','&','&','&','&',('partner_type_stock_picking', '!=', 'external'), ('type', '=', 'out'), ('subtype', 'in', ['standard', 'packing']), ('state', '=', 'done'), ('already_shipped', '=', True), ('do_not_sync', '=', False)]",partner_id,MISSION,stock.picking.partial_shipped_fo_updates_in_po,stock.picking,Partial shipped at Coordo updates IN at Project,19,,Valid
553+msf_sync_data_server.partial_shipped_coordo_updates_in_at_project,TRUE,TRUE,"['name', 'state', 'origin', 'partner_type_stock_picking', 'shipment_id/name', 'min_date', 'note', 'claim', 'move_lines/processed_stock_move', 'move_lines/id', 'move_lines/state','move_lines/original_qty_partial', 'move_lines/line_number', 'move_lines/name', 'move_lines/change_reason', 'move_lines/product_id/id', 'move_lines/product_id/name', 'move_lines/product_id/default_code', 'move_lines/product_qty', 'move_lines/prodlot_id/id','move_lines/prodlot_id/name','move_lines/prodlot_id/life_date', 'move_lines/prodlot_id/type', 'move_lines/prodlot_id/comment', 'move_lines/expired_date', 'move_lines/asset_id/id','move_lines/product_uom/id', 'move_lines/product_uom/name', 'move_lines/date', 'move_lines/date_expected', 'move_lines/note', 'move_lines/location_dest_id/usage', 'move_lines/comment', 'move_lines/sale_line_id/id', 'move_lines/sale_line_id/in_name_goods_return', 'sale_id/claim_name_goods_return', 'sale_id/client_order_ref']","['&','&','&','&','&',('partner_type_stock_picking', '!=', 'external'), ('type', '=', 'out'), ('subtype', 'in', ['standard', 'packing']), ('state', 'in', ['done', 'delivered']), ('already_shipped', '=', True), ('do_not_sync', '=', False)]",partner_id,MISSION,stock.picking.partial_shipped_fo_updates_in_po,stock.picking,Partial shipped at Coordo updates IN at Project,19,,Valid
554 msf_sync_data_server.moves_from_dpo_closed_coordo_updates_in_at_project,TRUE,TRUE,"['name', 'state', 'origin', 'subtype', 'partner_type_stock_picking', 'shipment_id/name', 'min_date', 'note', 'move_lines/processed_stock_move', 'move_lines/id', 'move_lines/state','move_lines/original_qty_partial', 'move_lines/line_number', 'move_lines/name', 'move_lines/change_reason', 'move_lines/product_id/id', 'move_lines/product_id/name', 'move_lines/product_id/default_code', 'move_lines/product_qty', 'move_lines/prodlot_id/id','move_lines/prodlot_id/name','move_lines/prodlot_id/life_date', 'move_lines/prodlot_id/type', 'move_lines/prodlot_id/comment', 'move_lines/expired_date', 'move_lines/asset_id/id','move_lines/product_uom/id', 'move_lines/product_uom/name', 'move_lines/date', 'move_lines/date_expected', 'move_lines/note', 'move_lines/dpo_line_id', 'move_lines/comment']","['&', '&', '&', ('partner_type_stock_picking', '!=', 'external'), ('type', '=', 'out'), ('subtype', 'in', ['picking', 'standard']), ('dpo_out', '=', True)]",partner_id,MISSION,stock.picking.partial_shippped_dpo_updates_in_po,stock.picking,Moves from DPO closed at Coordo updates IN at Project,20,,Valid
555 msf_sync_data_server.dpo_service_lines_update_in_at_project,FALSE,TRUE,"['order_id/name', 'order_id/delivery_confirmed_date', 'sync_local_id', 'origin', 'confirmed_delivery_date', 'name', 'product_uom/id', 'product_uom/name', 'link_sol_id/line_number', 'notes', 'product_qty', 'product_id/name', 'product_id/id', 'product_id/default_code', 'comment']","[('dest_partner_id.partner_type', '=', 'internal'), ('order_id.order_type', '=', 'direct'), ('order_id.state', 'in', ['approved', 'done']), ('product_id.type', 'in', ['service', 'service_recep'])]",dest_partner_id,MISSION,purchase.order.line.confirmed_dpo_service_lines_update_in_po,purchase.order.line,DPO service lines update IN at Project,21,,Valid
556 msf_sync_data_server.closed_in_validates_delivery_out_ship,TRUE,TRUE,"['name', 'state', 'shipment_ref']","['&','&','&','&','&',('partner_type_stock_picking', '!=', 'external'), ('type', '=', 'in'),('subtype', 'in', ['standard']), ('state', '=', 'done'), ('shipment_ref', '!=', False), ('dpo_incoming', '=', False)]",partner_id,MISSION,stock.picking.closed_in_validates_delivery_out_ship,stock.picking,Closed IN validates delivery of OUT-SHIP,26,,Valid
557
558=== modified file 'bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv'
559--- bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2020-05-25 09:59:55 +0000
560+++ bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2020-07-08 09:16:28 +0000
561@@ -21,10 +21,10 @@
562 msf_sync_data_server.gl_account_type,TRUE,TRUE,TRUE,TRUE,bidirectional,Down,[],"['close_method', 'code', 'name', 'note', 'not_correctible', 'report_type']",OC,account.account.type,,GL Account Type,Valid,,116
563 msf_sync_data_server.gl_accounts,TRUE,TRUE,FALSE,TRUE,bidirectional,Down,[],"['accrual_account','code', 'default_destination_id/id', 'display_in_reports', 'inactivation_date', 'activation_date', 'is_not_hq_correctible', 'name', 'note', 'reconcile', 'shrink_entries_for_hq', 'type', 'type_for_register', 'user_type/id', 'currency_revaluation', 'include_in_yearly_move', 'has_partner_type_internal', 'has_partner_type_section', 'has_partner_type_external', 'has_partner_type_esc', 'has_partner_type_intermission', 'has_partner_type_local', 'has_partner_type_ex', 'has_partner_type_book', 'has_partner_type_empty', 'is_not_ad_correctable', 'prevent_multi_curr_rec']",OC,account.account,,GL Accounts,Valid,,117
564 msf_sync_data_server.gl_accounts_tree,TRUE,TRUE,TRUE,TRUE,bidirectional,Down,"[('parent_id', '!=', '')]",['parent_id/id'],OC,account.account,,GL Accounts Tree,Valid,,118
565-msf_sync_data_server.analytical_journal_hq,TRUE,TRUE,FALSE,TRUE,bidirectional,Down,"[('instance_id.level', '=', 'section')]","['active', 'code', 'name', 'type','instance_id/id']",OC,account.analytic.journal,,Analytical Journal (HQ),Valid,,119
566-msf_sync_data_server.analytical_journal_coordo,TRUE,TRUE,FALSE,TRUE,bidirectional,Down,"[('instance_id.level', '=', 'coordo'),('code','!=','ENGI')]","['active', 'code', 'name', 'type','instance_id/id']",MISSION,account.analytic.journal,,Analytical Journal (Coordo),Valid,,120
567-msf_sync_data_server.analytical_journal_project,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional,"[('instance_id.level', '=', 'project'),('code','!=','ENGI')]","['active', 'code', 'name', 'type','instance_id/id']",MISSION,account.analytic.journal,,Analytical Journal (Project),Valid,,121
568-msf_sync_data_server.analytical_journal,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional-Private,[],"['active', 'code', 'name', 'type','instance_id/id']",OC,account.analytic.journal,instance_id,Analytical Journal,Valid,,122
569+msf_sync_data_server.analytical_journal_hq,TRUE,TRUE,FALSE,TRUE,bidirectional,Down,"[('instance_id.level', '=', 'section')]","['code', 'name', 'type','instance_id/id']",OC,account.analytic.journal,,Analytical Journal (HQ),Valid,,119
570+msf_sync_data_server.analytical_journal_coordo,TRUE,TRUE,FALSE,TRUE,bidirectional,Down,"[('instance_id.level', '=', 'coordo'),('code','!=','ENGI')]","['code', 'name', 'type','instance_id/id']",MISSION,account.analytic.journal,,Analytical Journal (Coordo),Valid,,120
571+msf_sync_data_server.analytical_journal_project,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional,"[('instance_id.level', '=', 'project'),('code','!=','ENGI')]","['code', 'name', 'type','instance_id/id']",MISSION,account.analytic.journal,,Analytical Journal (Project),Valid,,121
572+msf_sync_data_server.analytical_journal,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional-Private,[],"['code', 'name', 'type','instance_id/id']",OC,account.analytic.journal,instance_id,Analytical Journal,Valid,,122
573 msf_sync_data_server.link_accounts_destination,TRUE,TRUE,TRUE,TRUE,bidirectional,Down,[],"['account_id/id', 'destination_id/id', 'disabled']",OC,account.destination.link,,Link accounts Destination,Valid,,123
574 msf_sync_data_server.funding_pool_to_coordo,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional-Private,"[('category' , '=' , 'FUNDING')]","['category', 'code', 'cost_center_ids/id', 'date', 'date_start', 'description', 'instance_id/id', 'name', 'tuple_destination_account_ids/id', 'type']",HQ + MISSION,account.analytic.account,instance_id,Funding Pool linked to a special coordo,Valid,,124
575 msf_sync_data_server.fp_tree0,TRUE,TRUE,FALSE,TRUE,bidirectional,Down,"[('category', 'in', ['FREE1', 'FREE2', 'DEST']),('parent_id', '!=', '')]","['parent_id/id', 'instance_id/id']",OC,account.analytic.account,instance_id,"DestF1F2 tree (only F1, F2 and Dest)",Valid,,126
576
577=== modified file 'bin/addons/register_accounting/wizard/wizard_register_import.py'
578--- bin/addons/register_accounting/wizard/wizard_register_import.py 2020-02-27 16:28:21 +0000
579+++ bin/addons/register_accounting/wizard/wizard_register_import.py 2020-07-08 09:16:28 +0000
580@@ -491,6 +491,10 @@
581 if tp_journal.currency.id != register_currency:
582 errors.append(_('Line %s. A Transfer Same Journal must have the same currency as the register.') % (current_line_num,))
583 continue
584+ if tp_journal.id == wiz.register_id.journal_id.id:
585+ errors.append(_('Line %s. The journal third party used for the internal transfer '
586+ 'must be different from the journal of the register.') % (current_line_num,))
587+ continue
588 # Type DP ==> PARTNER required
589 elif type_for_register == 'down_payment':
590 tp_ids = partner_obj.search(cr, uid, [('name', '=', line[cols['third_party']])], context=context)
591
592=== modified file 'bin/addons/sale/report/sale_donation_stock_moves_report.py'
593--- bin/addons/sale/report/sale_donation_stock_moves_report.py 2019-10-30 16:33:21 +0000
594+++ bin/addons/sale/report/sale_donation_stock_moves_report.py 2020-07-08 09:16:28 +0000
595@@ -45,8 +45,10 @@
596 Return the moves for the report
597 '''
598 result = []
599- for move in report.sm_ids:
600- result.append(self.pool.get('stock.move').browse(self.cr, self.uid, move))
601+ for move_id in report.sm_ids:
602+ move = self.pool.get('stock.move').browse(self.cr, self.uid, move_id)
603+ if self._get_qty(move) != 0:
604+ result.append(move)
605
606 return sorted(result, key=lambda r: (r['date']), reverse=True)
607
608
609=== modified file 'bin/addons/sales_followup/report/ir_follow_up_location_report.py'
610--- bin/addons/sales_followup/report/ir_follow_up_location_report.py 2019-12-12 13:30:26 +0000
611+++ bin/addons/sales_followup/report/ir_follow_up_location_report.py 2020-07-08 09:16:28 +0000
612@@ -331,7 +331,7 @@
613 # Put the backorderd qty on the first line
614 if not lines:
615 continue
616- if bo_qty and bo_qty > 0 and not first_line and line.order_id.state not in ('cancel', 'done'):
617+ if bo_qty and bo_qty > 0 and not first_line and line.state not in ('cancel', 'cancel_r', 'done'):
618 lines.append({
619 'po_name': po_name,
620 'cdd': cdd,
621
622=== modified file 'bin/addons/stock/report/products_situation_report.py'
623--- bin/addons/stock/report/products_situation_report.py 2019-05-10 15:21:38 +0000
624+++ bin/addons/stock/report/products_situation_report.py 2020-07-08 09:16:28 +0000
625@@ -131,10 +131,12 @@
626 prod_domain.append(('dangerous_goods', '=', report.dangerous_goods))
627
628 if report.perishable:
629- prod_domain.append(('perishable', '=', report.perishable))
630+ perishable = report.perishable == 'True' and True or report.perishable == 'False' and False or ''
631+ prod_domain.append(('perishable', '=', perishable))
632
633 if report.batch_management:
634- prod_domain.append(('batch_management', '=', report.batch_management))
635+ batch_management = report.batch_management == 'True' and True or report.batch_management == 'False' and False or ''
636+ prod_domain.append(('batch_management', '=', batch_management))
637
638 prod_ids = prod_obj.search(cr, uid, prod_domain, order='default_code', context=context)
639
640
641=== modified file 'bin/osv/expression.py'
642--- bin/osv/expression.py 2020-02-28 09:27:51 +0000
643+++ bin/osv/expression.py 2020-07-08 09:16:28 +0000
644@@ -70,7 +70,7 @@
645 raise ValueError('Bad domain expression: %r' % (exp,))
646 self.__exp = exp
647 self.__field_tables = {} # used to store the table to use for the sql generation. key = index of the leaf
648- self.__all_tables = set()
649+ self.__all_tables = []
650 self.__joins = []
651 self.__main_table = None # 'root' table. set by parse()
652 self.__DUMMY_LEAF = (1, '=', 1) # a dummy leaf that must not be parsed or sql generated
653@@ -107,7 +107,8 @@
654 return [(left, 'in', rg(ids, table, parent or table._parent_name))]
655
656 self.__main_table = table
657- self.__all_tables.add(table)
658+ if table not in self.__all_tables:
659+ self.__all_tables.append(table)
660
661 i = -1
662 while i + 1<len(self.__exp):
663@@ -130,7 +131,7 @@
664 working_table = main_table.pool.get(main_table._inherit_fields[fargs[0]][0])
665 if working_table not in self.__all_tables:
666 self.__joins.append('%s.%s=%s.%s' % (working_table._table, 'id', main_table._table, main_table._inherits[working_table._name]))
667- self.__all_tables.add(working_table)
668+ self.__all_tables.append(working_table)
669 main_table = working_table
670
671 field = working_table._columns.get(fargs[0], False)
672
673=== modified file 'bin/release.py'
674--- bin/release.py 2020-06-26 08:10:24 +0000
675+++ bin/release.py 2020-07-08 09:16:28 +0000
676@@ -20,7 +20,7 @@
677 ##############################################################################
678
679 name = 'openerp-server'
680-version = 'UF17.1dev'
681+version = 'UF18.0dev'
682 major_version = '8.0'
683 description = 'OpenERP Server'
684 long_desc = '''OpenERP is a complete ERP and CRM. The main features are accounting (analytic

Subscribers

People subscribed via source and target branches