Merge lp:~julie-w/unifield-server/US-7314 into lp:unifield-server/uf17
- US-7314
- Merge into uf17
Proposed by
jftempo
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
UniField Dev Team | Pending | ||
Review via email: mp+387028@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/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 | 28 | _columns = { | 28 | _columns = { |
6 | 29 | 'name': fields.char('Journal Name', size=64, required=True), | 29 | 'name': fields.char('Journal Name', size=64, required=True), |
7 | 30 | 'code': fields.char('Journal Code', size=8), | 30 | 'code': fields.char('Journal Code', size=8), |
8 | 31 | # the Active tag should not be used anymore from US-7194 | ||
9 | 31 | '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."), | 32 | '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 | 32 | '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."), | 33 | '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 | 33 | 'line_ids': fields.one2many('account.analytic.line', 'journal_id', 'Lines'), | 34 | 'line_ids': fields.one2many('account.analytic.line', 'journal_id', 'Lines'), |
12 | 34 | 35 | ||
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 | 330 | <field name="name" select="1" default_focus="1"/> | 330 | <field name="name" select="1" default_focus="1"/> |
18 | 331 | <field name="code" select="1" attrs="{'readonly': [('has_ajis', '=', True)]}"/> | 331 | <field name="code" select="1" attrs="{'readonly': [('has_ajis', '=', True)]}"/> |
19 | 332 | <field name="type" select="2" attrs="{'readonly': [('has_ajis', '=', True)]}"/> | 332 | <field name="type" select="2" attrs="{'readonly': [('has_ajis', '=', True)]}"/> |
20 | 333 | <field name="active" select="2"/> | ||
21 | 334 | <field name="company_id" groups="base.group_multi_company" widget="selection"/> | 333 | <field name="company_id" groups="base.group_multi_company" widget="selection"/> |
22 | 335 | </form> | 334 | </form> |
23 | 336 | </field> | 335 | </field> |
24 | 337 | 336 | ||
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 | 225 | 'get_start_period': self.get_start_period, | 225 | 'get_start_period': self.get_start_period, |
30 | 226 | 'get_end_period': self.get_end_period, | 226 | 'get_end_period': self.get_end_period, |
31 | 227 | 'get_filter': self._get_filter, | 227 | 'get_filter': self._get_filter, |
32 | 228 | 'get_sortby': self._get_sortby, | ||
33 | 229 | 'get_start_date':self._get_start_date, | 228 | 'get_start_date':self._get_start_date, |
34 | 230 | 'get_end_date':self._get_end_date, | 229 | 'get_end_date':self._get_end_date, |
35 | 231 | 'get_target_move': self._get_target_move, | 230 | 'get_target_move': self._get_target_move, |
36 | @@ -337,10 +336,14 @@ | |||
37 | 337 | del counterpart_res''' | 336 | del counterpart_res''' |
38 | 338 | # Then select all account_move_line of this account | 337 | # Then select all account_move_line of this account |
39 | 339 | 338 | ||
44 | 340 | if self.sortby == 'sort_journal_partner': | 339 | if self.sortby == 'sort_third_party': |
45 | 341 | sql_sort='j.code, p.name, l.move_id' | 340 | sql_sort = 'l.partner_txt NULLS first, l.move_id' |
46 | 342 | else: | 341 | elif self.sortby == 'sort_currency': |
47 | 343 | sql_sort='l.date, l.move_id' | 342 | sql_sort = 'c.name, l.move_id' |
48 | 343 | elif self.sortby == 'sort_reconcile': | ||
49 | 344 | sql_sort = 'l.reconcile_txt NULLS first, l.move_id' | ||
50 | 345 | else: # sort_date by default | ||
51 | 346 | sql_sort = 'l.date, l.move_id' | ||
52 | 344 | sql = """ | 347 | sql = """ |
53 | 345 | SELECT l.id AS lid, l.date AS ldate, j.code AS lcode, l.currency_id, | 348 | SELECT l.id AS lid, l.date AS ldate, j.code AS lcode, l.currency_id, |
54 | 346 | l.amount_currency,l.ref AS lref, l.name AS lname, | 349 | l.amount_currency,l.ref AS lref, l.name AS lname, |
55 | @@ -352,7 +355,7 @@ | |||
56 | 352 | c.symbol AS currency_code, | 355 | c.symbol AS currency_code, |
57 | 353 | i.id AS invoice_id, i.type AS invoice_type, | 356 | i.id AS invoice_id, i.type AS invoice_type, |
58 | 354 | i.number AS invoice_number, | 357 | i.number AS invoice_number, |
60 | 355 | p.name AS partner_name, c.name as currency_name, l.partner_txt as third_party | 358 | p.name AS partner_name, c.name as currency_name, l.partner_txt as third_party, l.reconcile_txt |
61 | 356 | FROM account_move_line l | 359 | FROM account_move_line l |
62 | 357 | JOIN account_move m on (l.move_id=m.id) | 360 | JOIN account_move m on (l.move_id=m.id) |
63 | 358 | LEFT JOIN res_currency c on (l.currency_id=c.id) | 361 | LEFT JOIN res_currency c on (l.currency_id=c.id) |
64 | @@ -370,6 +373,8 @@ | |||
65 | 370 | if self.init_balance: | 373 | if self.init_balance: |
66 | 371 | # US-822: move lines for period 0 IB journal | 374 | # US-822: move lines for period 0 IB journal |
67 | 372 | sql_sort = 'l.move_id' | 375 | sql_sort = 'l.move_id' |
68 | 376 | if self.sortby == 'sort_currency': # also sort by currency in case the related option is selected | ||
69 | 377 | sql_sort = 'c.name, l.move_id' | ||
70 | 373 | sql = """ | 378 | sql = """ |
71 | 374 | SELECT l.id AS lid, l.date AS ldate, j.code AS lcode, l.currency_id, | 379 | SELECT l.id AS lid, l.date AS ldate, j.code AS lcode, l.currency_id, |
72 | 375 | l.amount_currency,l.ref AS lref, l.name AS lname, | 380 | l.amount_currency,l.ref AS lref, l.name AS lname, |
73 | @@ -381,7 +386,7 @@ | |||
74 | 381 | per.code as period_code, c.symbol AS currency_code, | 386 | per.code as period_code, c.symbol AS currency_code, |
75 | 382 | '' AS invoice_id, '' invoice_type, | 387 | '' AS invoice_id, '' invoice_type, |
76 | 383 | '' AS invoice_number, | 388 | '' AS invoice_number, |
78 | 384 | '' AS partner_name, c.name as currency_name | 389 | '' AS partner_name, c.name as currency_name, l.reconcile_txt |
79 | 385 | FROM account_move_line l | 390 | FROM account_move_line l |
80 | 386 | JOIN account_move m on (l.move_id=m.id) | 391 | JOIN account_move m on (l.move_id=m.id) |
81 | 387 | LEFT JOIN res_currency c on (l.currency_id=c.id) | 392 | LEFT JOIN res_currency c on (l.currency_id=c.id) |
82 | @@ -416,13 +421,6 @@ | |||
83 | 416 | return self.pool.get('account.account').browse(self.cr, self.uid, data['form']['id'], context=self.context).company_id.name | 421 | return self.pool.get('account.account').browse(self.cr, self.uid, data['form']['id'], context=self.context).company_id.name |
84 | 417 | return super(general_ledger ,self)._get_account(data) | 422 | return super(general_ledger ,self)._get_account(data) |
85 | 418 | 423 | ||
86 | 419 | def _get_sortby(self, data): | ||
87 | 420 | if self.sortby == 'sort_date': | ||
88 | 421 | return 'Date' | ||
89 | 422 | elif self.sortby == 'sort_journal_partner': | ||
90 | 423 | return 'Journal & Partner' | ||
91 | 424 | return 'Date' | ||
92 | 425 | |||
93 | 426 | def _get_output_currency_code(self, data): | 424 | def _get_output_currency_code(self, data): |
94 | 427 | return self.output_currency_code or self.currency_name | 425 | return self.output_currency_code or self.currency_name |
95 | 428 | 426 | ||
96 | 429 | 427 | ||
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 | 132 | <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" /> | 132 | <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" /> |
102 | 133 | </Borders> | 133 | </Borders> |
103 | 134 | </Style> | 134 | </Style> |
104 | 135 | <Style ss:ID="ssAccountLineRight"> | ||
105 | 136 | <Alignment ss:Bottom="Top" ss:WrapText="1" ss:Vertical="Center" ss:Horizontal="Right"/> | ||
106 | 137 | <Font ss:Size="8"/> | ||
107 | 138 | <Borders> | ||
108 | 139 | <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" /> | ||
109 | 140 | <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1" /> | ||
110 | 141 | <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1" /> | ||
111 | 142 | <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" /> | ||
112 | 143 | </Borders> | ||
113 | 144 | </Style> | ||
114 | 135 | <Style ss:ID="ssAccountLineColored1"> | 145 | <Style ss:ID="ssAccountLineColored1"> |
115 | 136 | <Alignment ss:Bottom="Top" ss:WrapText="1"/> | 146 | <Alignment ss:Bottom="Top" ss:WrapText="1"/> |
116 | 137 | <Font ss:Size="8"/> | 147 | <Font ss:Size="8"/> |
117 | @@ -201,10 +211,7 @@ | |||
118 | 201 | <Column ss:AutoFitWidth="1" ss:Width="55" /> | 211 | <Column ss:AutoFitWidth="1" ss:Width="55" /> |
119 | 202 | <Column ss:AutoFitWidth="1" ss:Width="100" ss:Span="1" /> | 212 | <Column ss:AutoFitWidth="1" ss:Width="100" ss:Span="1" /> |
120 | 203 | <Column ss:AutoFitWidth="1" ss:Width="55" /> | 213 | <Column ss:AutoFitWidth="1" ss:Width="55" /> |
125 | 204 | <Column ss:Width="90" /> | 214 | <Column ss:Width="90" ss:Span="4" /> |
122 | 205 | <Column ss:Width="90" /> | ||
123 | 206 | <Column ss:Width="90" /> | ||
124 | 207 | <Column ss:Width="90" /> | ||
126 | 208 | <Row> | 215 | <Row> |
127 | 209 | <Cell ss:StyleID="ssH"><Data ss:Type="String">${header_company_or_chart_of_account}</Data></Cell> | 216 | <Cell ss:StyleID="ssH"><Data ss:Type="String">${header_company_or_chart_of_account}</Data></Cell> |
128 | 210 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Fiscal Year</Data></Cell> | 217 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Fiscal Year</Data></Cell> |
129 | @@ -213,7 +220,12 @@ | |||
130 | 213 | <Cell ss:StyleID="ssH"><Data ss:Type="String">${_('Open Items at')}</Data></Cell> | 220 | <Cell ss:StyleID="ssH"><Data ss:Type="String">${_('Open Items at')}</Data></Cell> |
131 | 214 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Filter By ${(get_filter(data)!='No Filter' and get_filter(data) or '')|x}</Data></Cell> | 221 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Filter By ${(get_filter(data)!='No Filter' and get_filter(data) or '')|x}</Data></Cell> |
132 | 215 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Target Moves</Data></Cell> | 222 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Target Moves</Data></Cell> |
134 | 216 | <Cell ss:StyleID="ssH" ss:MergeAcross="1"><Data ss:Type="String">Proprietary Instances</Data></Cell> | 223 | % if get_show_move_lines(): |
135 | 224 | <Cell ss:StyleID="ssH" ss:MergeAcross="2"> | ||
136 | 225 | % else: | ||
137 | 226 | <Cell ss:StyleID="ssH" ss:MergeAcross="1"> | ||
138 | 227 | % endif | ||
139 | 228 | <Data ss:Type="String">Proprietary Instances</Data></Cell> | ||
140 | 217 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Currency</Data></Cell> | 229 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Currency</Data></Cell> |
141 | 218 | </Row> | 230 | </Row> |
142 | 219 | % for a in objects: | 231 | % for a in objects: |
143 | @@ -239,8 +251,12 @@ | |||
144 | 239 | <Cell ss:StyleID="ssHeader"> | 251 | <Cell ss:StyleID="ssHeader"> |
145 | 240 | <Data ss:Type="String">${(get_target_move(data) or '')|x}</Data> | 252 | <Data ss:Type="String">${(get_target_move(data) or '')|x}</Data> |
146 | 241 | </Cell> | 253 | </Cell> |
149 | 242 | <Cell ss:StyleID="ssHeader" ss:MergeAcross="1"> | 254 | % if get_show_move_lines(): |
150 | 243 | <Data ss:Type="String">${(get_prop_instances() or '')|x}</Data> | 255 | <Cell ss:StyleID="ssHeader" ss:MergeAcross="2"> |
151 | 256 | % else: | ||
152 | 257 | <Cell ss:StyleID="ssHeader" ss:MergeAcross="1"> | ||
153 | 258 | % endif | ||
154 | 259 | <Data ss:Type="String">${(get_prop_instances() or '')|x}</Data> | ||
155 | 244 | </Cell> | 260 | </Cell> |
156 | 245 | <Cell ss:StyleID="ssHeader"> | 261 | <Cell ss:StyleID="ssHeader"> |
157 | 246 | <Data ss:Type="String">${get_output_currency_code(data)}</Data> | 262 | <Data ss:Type="String">${get_output_currency_code(data)}</Data> |
158 | @@ -269,6 +285,9 @@ | |||
159 | 269 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Credit</Data></Cell> | 285 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Credit</Data></Cell> |
160 | 270 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Booking Balance</Data></Cell> | 286 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Booking Balance</Data></Cell> |
161 | 271 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Balance ${get_output_currency_code(data)}</Data></Cell> | 287 | <Cell ss:StyleID="ssH"><Data ss:Type="String">Balance ${get_output_currency_code(data)}</Data></Cell> |
162 | 288 | % if get_show_move_lines(): | ||
163 | 289 | <Cell ss:StyleID="ssH"><Data ss:Type="String">${_('Reconcile Number')}</Data></Cell> | ||
164 | 290 | % endif | ||
165 | 272 | <Cell><Data ss:Type="String"></Data></Cell> | 291 | <Cell><Data ss:Type="String"></Data></Cell> |
166 | 273 | % if not get_show_move_lines(): | 292 | % if not get_show_move_lines(): |
167 | 274 | <Cell><Data ss:Type="String"></Data></Cell> | 293 | <Cell><Data ss:Type="String"></Data></Cell> |
168 | @@ -305,6 +324,9 @@ | |||
169 | 305 | <Cell ss:StyleID="ssNumber${ac_style_suffix}"> | 324 | <Cell ss:StyleID="ssNumber${ac_style_suffix}"> |
170 | 306 | <Data ss:Type="Number">${o.data['*']['debit'] - o.data['*']['credit']}</Data> | 325 | <Data ss:Type="Number">${o.data['*']['debit'] - o.data['*']['credit']}</Data> |
171 | 307 | </Cell> | 326 | </Cell> |
172 | 327 | % if get_show_move_lines(): | ||
173 | 328 | <Cell ss:StyleID="ssBorder${ac_style_suffix}"><Data ss:Type="String"></Data></Cell> | ||
174 | 329 | % endif | ||
175 | 308 | </Row> | 330 | </Row> |
176 | 309 | % endif | 331 | % endif |
177 | 310 | 332 | ||
178 | @@ -333,6 +355,9 @@ | |||
179 | 333 | <Cell ss:StyleID="ssNumber${ccy_sub_total_style_suffix}"> | 355 | <Cell ss:StyleID="ssNumber${ccy_sub_total_style_suffix}"> |
180 | 334 | <Data ss:Type="Number">${o.data[ccy]['debit'] - o.data[ccy]['credit']}</Data> | 356 | <Data ss:Type="Number">${o.data[ccy]['debit'] - o.data[ccy]['credit']}</Data> |
181 | 335 | </Cell> | 357 | </Cell> |
182 | 358 | % if get_show_move_lines(): | ||
183 | 359 | <Cell ss:StyleID="ssAccountLine${ccy_sub_total_style_suffix}"><Data ss:Type="String"></Data></Cell> | ||
184 | 360 | % endif | ||
185 | 336 | </Row> | 361 | </Row> |
186 | 337 | % endfor | 362 | % endfor |
187 | 338 | % endif | 363 | % endif |
188 | @@ -360,13 +385,18 @@ | |||
189 | 360 | <Cell ss:StyleID="ssNumber${ccy_sub_total_style_suffix}"> | 385 | <Cell ss:StyleID="ssNumber${ccy_sub_total_style_suffix}"> |
190 | 361 | <Data ss:Type="Number">${get_line_balance(line, booking=False)}</Data> | 386 | <Data ss:Type="Number">${get_line_balance(line, booking=False)}</Data> |
191 | 362 | </Cell> | 387 | </Cell> |
192 | 388 | % if get_show_move_lines(): | ||
193 | 389 | <Cell ss:StyleID="ssAccountLine${ccy_sub_total_style_suffix}"> | ||
194 | 390 | <Data ss:Type="String">${(line.get('reconcile_txt') or '')|x}</Data> | ||
195 | 391 | </Cell> | ||
196 | 392 | % endif | ||
197 | 363 | </Row> | 393 | </Row> |
198 | 364 | % endfor | 394 | % endfor |
199 | 365 | 395 | ||
200 | 366 | % for line in lines(o, initial_balance_mode=False): | 396 | % for line in lines(o, initial_balance_mode=False): |
201 | 367 | <Row> | 397 | <Row> |
204 | 368 | <Cell ss:StyleID="ssAccountLine"> | 398 | <Cell ss:StyleID="ssAccountLineRight"> |
205 | 369 | <Data ss:Type="String"></Data> | 399 | <Data ss:Type="String">${(o.code or '')|x}</Data> |
206 | 370 | </Cell> | 400 | </Cell> |
207 | 371 | <Cell ss:StyleID="ssAccountLine"> | 401 | <Cell ss:StyleID="ssAccountLine"> |
208 | 372 | <Data ss:Type="String">${(line['move'] or '' or '')|x}</Data> | 402 | <Data ss:Type="String">${(line['move'] or '' or '')|x}</Data> |
209 | @@ -395,6 +425,9 @@ | |||
210 | 395 | <Cell ss:StyleID="ssAccountLineNumber"> | 425 | <Cell ss:StyleID="ssAccountLineNumber"> |
211 | 396 | <Data ss:Type="Number">${get_line_balance(line, booking=False)}</Data> | 426 | <Data ss:Type="Number">${get_line_balance(line, booking=False)}</Data> |
212 | 397 | </Cell> | 427 | </Cell> |
213 | 428 | <Cell ss:StyleID="ssAccountLine"> | ||
214 | 429 | <Data ss:Type="String">${(line.get('reconcile_txt') or '')|x}</Data> | ||
215 | 430 | </Cell> | ||
216 | 398 | </Row> | 431 | </Row> |
217 | 399 | % endfor | 432 | % endfor |
218 | 400 | 433 | ||
219 | 401 | 434 | ||
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 | 41 | help='It adds initial balance row on report which display previous sum amount of debit/credit/balance'), | 41 | help='It adds initial balance row on report which display previous sum amount of debit/credit/balance'), |
225 | 42 | 'is_initial_balance_available': fields.function(_get_fake, method=True, type='boolean', string="Is initial balance filter available ?"), | 42 | 'is_initial_balance_available': fields.function(_get_fake, method=True, type='boolean', string="Is initial balance filter available ?"), |
226 | 43 | 'amount_currency': fields.boolean("With Currency", help="It adds the currency column if the currency is different then the company currency"), | 43 | 'amount_currency': fields.boolean("With Currency", help="It adds the currency column if the currency is different then the company currency"), |
228 | 44 | 'sortby': fields.selection([('sort_date', 'Date'), ('sort_journal_partner', 'Journal & Partner')], 'Sort By', required=True), | 44 | 'sortby': fields.selection([('sort_date', 'Posting Date'), |
229 | 45 | ('sort_third_party', 'Third Party'), | ||
230 | 46 | ('sort_currency', 'Currency'), | ||
231 | 47 | ('sort_reconcile', 'Reconcile Number')], 'Sort by', required=True), | ||
232 | 45 | 'output_currency': fields.many2one('res.currency', 'Output Currency', required=True), | 48 | 'output_currency': fields.many2one('res.currency', 'Output Currency', required=True), |
233 | 46 | 'instance_ids': fields.many2many('msf.instance', 'account_report_general_ledger_instance_rel', 'instance_id', 'argl_id', 'Proprietary Instances'), | 49 | 'instance_ids': fields.many2many('msf.instance', 'account_report_general_ledger_instance_rel', 'instance_id', 'argl_id', 'Proprietary Instances'), |
234 | 47 | #'export_format': fields.selection([('xls', 'Excel'), ('csv', 'CSV'), ('pdf', 'PDF')], string="Export format", required=True), | 50 | #'export_format': fields.selection([('xls', 'Excel'), ('csv', 'CSV'), ('pdf', 'PDF')], string="Export format", required=True), |
235 | @@ -196,7 +199,7 @@ | |||
236 | 196 | 199 | ||
237 | 197 | if data['form']['export_format'] \ | 200 | if data['form']['export_format'] \ |
238 | 198 | and data['form']['export_format'] == 'xls': | 201 | and data['form']['export_format'] == 'xls': |
240 | 199 | return { | 202 | return { |
241 | 200 | 'type': 'ir.actions.report.xml', | 203 | 'type': 'ir.actions.report.xml', |
242 | 201 | 'report_name': 'account.general.ledger_xls', | 204 | 'report_name': 'account.general.ledger_xls', |
243 | 202 | 'datas': data, | 205 | 'datas': data, |
244 | 203 | 206 | ||
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 | 16 | <xpath expr="//field[@name='target_move']" position="after"> | 16 | <xpath expr="//field[@name='target_move']" position="after"> |
250 | 17 | <field name="is_initial_balance_available" invisible="1"/> | 17 | <field name="is_initial_balance_available" invisible="1"/> |
251 | 18 | <field name="display_account"/> | 18 | <field name="display_account"/> |
252 | 19 | <field name="sortby" invisible="1" /> | ||
253 | 20 | <field name="initial_balance" attrs="{'readonly':[('is_initial_balance_available', '=', False)]}" /> | 19 | <field name="initial_balance" attrs="{'readonly':[('is_initial_balance_available', '=', False)]}" /> |
254 | 21 | <field name="export_format"/> | 20 | <field name="export_format"/> |
255 | 22 | <newline/> | 21 | <newline/> |
256 | @@ -24,7 +23,7 @@ | |||
257 | 24 | <field name="amount_currency" invisible="1" /> | 23 | <field name="amount_currency" invisible="1" /> |
258 | 25 | <newline/> | 24 | <newline/> |
259 | 26 | <field name="account_type" /> | 25 | <field name="account_type" /> |
261 | 27 | <newline/> | 26 | <field name="sortby" /> |
262 | 28 | <field name="reconciled" /> | 27 | <field name="reconciled" /> |
263 | 29 | <field name="reconcile_date" /> | 28 | <field name="reconcile_date" /> |
264 | 30 | <field name="open_items"/> | 29 | <field name="open_items"/> |
265 | 31 | 30 | ||
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 | 331 | for aji in aal_obj.browse(self.cr, self.uid, analytic_line_ids, fields_to_fetch=aji_fields, context=self.context): | 331 | for aji in aal_obj.browse(self.cr, self.uid, analytic_line_ids, fields_to_fetch=aji_fields, context=self.context): |
271 | 332 | if not aji.move_id: | 332 | if not aji.move_id: |
272 | 333 | aji_ids.append(aji.id) | 333 | aji_ids.append(aji.id) |
274 | 334 | elif aji.journal_id.type == 'correction': | 334 | elif aji.journal_id.type in ('correction', 'correction_hq', 'extra'): |
275 | 335 | corrected_aal = aji.last_corrected_id or aji.reversal_origin or False | 335 | corrected_aal = aji.last_corrected_id or aji.reversal_origin or False |
276 | 336 | corrected_aml = corrected_aal and corrected_aal.move_id or False | 336 | corrected_aml = corrected_aal and corrected_aal.move_id or False |
277 | 337 | if corrected_aml and corrected_aml.last_cor_was_only_analytic and corrected_aml.id == aji.move_id.id: | 337 | if corrected_aml and corrected_aml.last_cor_was_only_analytic and corrected_aml.id == aji.move_id.id: |
278 | 338 | 338 | ||
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 | 226 | different_currencies = True | 226 | different_currencies = True |
284 | 227 | debit = fdebit | 227 | debit = fdebit |
285 | 228 | credit = fcredit | 228 | credit = fcredit |
295 | 229 | # For salaries, behaviour is the same as total_change: we use functional debit/credit | 229 | # UF-2050: Do not allow partial reconciliation of entries in different currencies. We ALWAYS do total reconciliation |
296 | 230 | if account_id == salary_account_id or (currency_id and currency2_id and not transfer_with_change): | 230 | state = 'total' |
288 | 231 | if abs(fdebit - fcredit) <= 10**-3: | ||
289 | 232 | state = 'total' | ||
290 | 233 | else: | ||
291 | 234 | state = 'partial' | ||
292 | 235 | # UF-2050: Do not allow partial reconciliation of entries in different currencies. We ALWAYS do total reconciliation | ||
293 | 236 | if different_currencies and not transfer_with_change: | ||
294 | 237 | state = 'total' | ||
297 | 238 | return {'trans_nbr': count, 'account_id': account_id, 'credit': credit, 'debit': debit, 'writeoff': debit - credit, 'state': state, 'different_currencies': different_currencies} | 231 | return {'trans_nbr': count, 'account_id': account_id, 'credit': credit, 'debit': debit, 'writeoff': debit - credit, 'state': state, 'different_currencies': different_currencies} |
298 | 239 | 232 | ||
299 | 240 | def total_reconcile(self, cr, uid, ids, context=None): | 233 | def total_reconcile(self, cr, uid, ids, context=None): |
300 | 241 | 234 | ||
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 | 54 | def get_currencies(self): | 54 | def get_currencies(self): |
306 | 55 | if not self.data: | 55 | if not self.data: |
307 | 56 | return [] | 56 | return [] |
309 | 57 | return [ c for c in self.data.keys() if c != '*' ] | 57 | return sorted([ c for c in self.data.keys() if c != '*' ]) |
310 | 58 | 58 | ||
311 | 59 | def output(self): | 59 | def output(self): |
312 | 60 | """ | 60 | """ |
313 | 61 | 61 | ||
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 | 370 | r_credit = book_credit | 370 | r_credit = book_credit |
319 | 371 | 371 | ||
320 | 372 | # Check the journal code which must match with one of the journal types listed in ACCOUNTING_IMPORT_JOURNALS | 372 | # Check the journal code which must match with one of the journal types listed in ACCOUNTING_IMPORT_JOURNALS |
321 | 373 | journal_type = '' | ||
322 | 373 | if not line[cols['Journal Code']]: | 374 | if not line[cols['Journal Code']]: |
323 | 374 | errors.append(_('Line %s. No Journal Code specified') % (current_line_num,)) | 375 | errors.append(_('Line %s. No Journal Code specified') % (current_line_num,)) |
324 | 375 | continue | 376 | continue |
325 | @@ -381,7 +382,8 @@ | |||
326 | 381 | continue | 382 | continue |
327 | 382 | else: | 383 | else: |
328 | 383 | aj_data = aj_obj.read(cr, uid, aj_ids, ['type'])[0] | 384 | aj_data = aj_obj.read(cr, uid, aj_ids, ['type'])[0] |
330 | 384 | if aj_data.get('type', False) is False or aj_data.get('type', False) not in ACCOUNTING_IMPORT_JOURNALS: | 385 | journal_type = aj_data.get('type', False) |
331 | 386 | if journal_type is False or journal_type not in ACCOUNTING_IMPORT_JOURNALS: | ||
332 | 385 | journal_list = ', '.join([x[1] for x in aj_obj.get_journal_type(cr, uid) if x[0] in ACCOUNTING_IMPORT_JOURNALS]) | 387 | journal_list = ', '.join([x[1] for x in aj_obj.get_journal_type(cr, uid) if x[0] in ACCOUNTING_IMPORT_JOURNALS]) |
333 | 386 | errors.append(_('Line %s. Import of entries only allowed on the following journal(s): %s') % (current_line_num, journal_list)) | 388 | errors.append(_('Line %s. Import of entries only allowed on the following journal(s): %s') % (current_line_num, journal_list)) |
334 | 387 | continue | 389 | continue |
335 | @@ -462,6 +464,13 @@ | |||
336 | 462 | "\"Prevent correction on account codes\".") % (current_line_num, account.code, account.name,)) | 464 | "\"Prevent correction on account codes\".") % (current_line_num, account.code, account.name,)) |
337 | 463 | continue | 465 | continue |
338 | 464 | 466 | ||
339 | 467 | if account.type_for_register == 'donation' and journal_type != 'extra': | ||
340 | 468 | jtype_value = journal_type and \ | ||
341 | 469 | dict(aj_obj.fields_get(cr, uid, context=context)['type']['selection']).get(journal_type) or '' | ||
342 | 470 | errors.append(_('Line %s. The donation accounts are not compatible with the journal type %s.') % | ||
343 | 471 | (current_line_num, jtype_value)) | ||
344 | 472 | continue | ||
345 | 473 | |||
346 | 465 | # Check analytic axis only if G/L account is analytic-a-holic | 474 | # Check analytic axis only if G/L account is analytic-a-holic |
347 | 466 | if account.is_analytic_addicted: | 475 | if account.is_analytic_addicted: |
348 | 467 | # Check Destination | 476 | # Check Destination |
349 | 468 | 477 | ||
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 | 560 | <field name="method">us_7631_set_default_liquidity_accounts</field> | 560 | <field name="method">us_7631_set_default_liquidity_accounts</field> |
355 | 561 | </record> | 561 | </record> |
356 | 562 | 562 | ||
357 | 563 | <!-- UF18.0 --> | ||
358 | 564 | <record id="us_7576_sync_msg_from_itself" model="patch.scripts"> | ||
359 | 565 | <field name="method">sync_msg_from_itself</field> | ||
360 | 566 | </record> | ||
361 | 567 | |||
362 | 568 | <record id="us_6544_no_sync_on_forced_out" model="patch.scripts"> | ||
363 | 569 | <field name="method">us_6544_no_sync_on_forced_out</field> | ||
364 | 570 | </record> | ||
365 | 571 | |||
366 | 563 | </data> | 572 | </data> |
367 | 564 | </openerp> | 573 | </openerp> |
368 | 565 | 574 | ||
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 | 11816 | msgid "Group By" | 11816 | msgid "Group By" |
374 | 11817 | msgstr "Grouper par" | 11817 | msgstr "Grouper par" |
375 | 11818 | 11818 | ||
376 | 11819 | #. module: account | ||
377 | 11820 | #: selection:account.report.general.ledger,sortby:0 | ||
378 | 11821 | msgid "Journal & Partner" | ||
379 | 11822 | msgstr "Journal et Partenaire" | ||
380 | 11823 | |||
381 | 11824 | #. module: account_mcdb | 11819 | #. module: account_mcdb |
382 | 11825 | #: selection:account.mcdb,currency_choice:0 | 11820 | #: selection:account.mcdb,currency_choice:0 |
383 | 11826 | msgid "Functional" | 11821 | msgid "Functional" |
384 | @@ -12112,7 +12107,7 @@ | |||
385 | 12112 | 12107 | ||
386 | 12113 | #. module: account | 12108 | #. module: account |
387 | 12114 | #: field:account.report.general.ledger,sortby:0 | 12109 | #: field:account.report.general.ledger,sortby:0 |
389 | 12115 | msgid "Sort By" | 12110 | msgid "Sort by" |
390 | 12116 | msgstr "Trier par" | 12111 | msgstr "Trier par" |
391 | 12117 | 12112 | ||
392 | 12118 | #. module: product | 12113 | #. module: product |
393 | @@ -37163,7 +37158,6 @@ | |||
394 | 37163 | #: selection:account.pl.report,filter:0 | 37158 | #: selection:account.pl.report,filter:0 |
395 | 37164 | #: selection:account.print.journal,filter:0 | 37159 | #: selection:account.print.journal,filter:0 |
396 | 37165 | #: selection:account.print.journal,sort_selection:0 | 37160 | #: selection:account.print.journal,sort_selection:0 |
397 | 37166 | #: selection:account.report.general.ledger,sortby:0 | ||
398 | 37167 | #: field:account.subscription.generate,date:0 | 37161 | #: field:account.subscription.generate,date:0 |
399 | 37168 | #: field:account.subscription.line,date:0 | 37162 | #: field:account.subscription.line,date:0 |
400 | 37169 | #: report:account.tax.code.entries:0 | 37163 | #: report:account.tax.code.entries:0 |
401 | @@ -65008,6 +65002,7 @@ | |||
402 | 65008 | #: selection:integrity.finance.wizard,filter:0 | 65002 | #: selection:integrity.finance.wizard,filter:0 |
403 | 65009 | #: code:addons/account_override/res_company.py:40 | 65003 | #: code:addons/account_override/res_company.py:40 |
404 | 65010 | #: report:addons/account/report/export_invoice.mako:108 | 65004 | #: report:addons/account/report/export_invoice.mako:108 |
405 | 65005 | #: selection:account.report.general.ledger,sortby:0 | ||
406 | 65011 | #, python-format | 65006 | #, python-format |
407 | 65012 | msgid "Posting Date" | 65007 | msgid "Posting Date" |
408 | 65013 | msgstr "Date de Comptabilisation" | 65008 | msgstr "Date de Comptabilisation" |
409 | @@ -78028,6 +78023,7 @@ | |||
410 | 78028 | #: report:account.general.ledger_landscape:0 | 78023 | #: report:account.general.ledger_landscape:0 |
411 | 78029 | #: report:account.general.ledger_landscape_tb:0 | 78024 | #: report:account.general.ledger_landscape_tb:0 |
412 | 78030 | #: report:addons/account/report/account_general_ledger_xls.mako:247 | 78025 | #: report:addons/account/report/account_general_ledger_xls.mako:247 |
413 | 78026 | #: selection:account.report.general.ledger,sortby:0 | ||
414 | 78031 | #, python-format | 78027 | #, python-format |
415 | 78032 | msgid "Third Party" | 78028 | msgid "Third Party" |
416 | 78033 | msgstr "Tiers" | 78029 | msgstr "Tiers" |
417 | @@ -92901,6 +92897,7 @@ | |||
418 | 92901 | #: report:addons/stock/report/stock_delivery_report_xls.mako:221 | 92897 | #: report:addons/stock/report/stock_delivery_report_xls.mako:221 |
419 | 92902 | #: report:addons/account/report/export_invoice.mako:96 | 92898 | #: report:addons/account/report/export_invoice.mako:96 |
420 | 92903 | #: report:msf.purchase.quotation:0 | 92899 | #: report:msf.purchase.quotation:0 |
421 | 92900 | #: selection:account.report.general.ledger,sortby:0 | ||
422 | 92904 | #, python-format | 92901 | #, python-format |
423 | 92905 | msgid "Currency" | 92902 | msgid "Currency" |
424 | 92906 | msgstr "Devise" | 92903 | msgstr "Devise" |
425 | @@ -100630,6 +100627,8 @@ | |||
426 | 100630 | #: report:account.third_party_ledger:0 | 100627 | #: report:account.third_party_ledger:0 |
427 | 100631 | #: report:account.third_party_ledger_other:0 | 100628 | #: report:account.third_party_ledger_other:0 |
428 | 100632 | #: report:addons/account/report/account_partner_ledger.mako:310 | 100629 | #: report:addons/account/report/account_partner_ledger.mako:310 |
429 | 100630 | #: selection:account.report.general.ledger,sortby:0 | ||
430 | 100631 | #: report:addons/account/report/account_general_ledger_xls.mako:289 | ||
431 | 100633 | msgid "Reconcile Number" | 100632 | msgid "Reconcile Number" |
432 | 100634 | msgstr "Numéro de lettrage" | 100633 | msgstr "Numéro de lettrage" |
433 | 100635 | 100634 | ||
434 | @@ -108042,7 +108041,7 @@ | |||
435 | 108042 | #. module: procurement_cycle | 108041 | #. module: procurement_cycle |
436 | 108043 | #: field:replenishment.segment,order_creation_lt:0 | 108042 | #: field:replenishment.segment,order_creation_lt:0 |
437 | 108044 | msgid "Order Creation Lead Time (days)" | 108043 | msgid "Order Creation Lead Time (days)" |
439 | 108045 | msgstr "Délai de création de commande (jours)" | 108044 | msgstr "Délai de Création de Commande (jours)" |
440 | 108046 | 108045 | ||
441 | 108047 | #. module: procurement_cycle | 108046 | #. module: procurement_cycle |
442 | 108048 | #: report:addons/procurement_cycle/report/replenishment_order_calc.mako:428 | 108047 | #: report:addons/procurement_cycle/report/replenishment_order_calc.mako:428 |
443 | @@ -110298,7 +110297,7 @@ | |||
444 | 110298 | #. module: procurement_cycle | 110297 | #. module: procurement_cycle |
445 | 110299 | #: view:replenishment.segment:0 | 110298 | #: view:replenishment.segment:0 |
446 | 110300 | msgid "Order Creation Lead Time (days) :" | 110299 | msgid "Order Creation Lead Time (days) :" |
448 | 110301 | msgstr "Délai de création de commande (jours) :" | 110300 | msgstr "Délai de Création de Commande (jours) :" |
449 | 110302 | 110301 | ||
450 | 110303 | #. module: procurement_cycle | 110302 | #. module: procurement_cycle |
451 | 110304 | #: view:replenishment.segment:0 | 110303 | #: view:replenishment.segment:0 |
452 | @@ -110323,7 +110322,19 @@ | |||
453 | 110323 | #. module: procurement_cycle | 110322 | #. module: procurement_cycle |
454 | 110324 | #: view:replenishment.segment:0 | 110323 | #: view:replenishment.segment:0 |
455 | 110325 | msgid "Handling Lead Time (days) :" | 110324 | msgid "Handling Lead Time (days) :" |
457 | 110326 | msgstr "Délai de traitement (jours) :" | 110325 | msgstr "Délai de Manutention (jours) :" |
458 | 110326 | |||
459 | 110327 | #. module: register_accounting | ||
460 | 110328 | #: code:addons/register_accounting/wizard/wizard_register_import.py:495 | ||
461 | 110329 | #, python-format | ||
462 | 110330 | msgid "Line %s. The journal third party used for the internal transfer must be different from the journal of the register." | ||
463 | 110331 | msgstr "Ligne %s. Le tiers de type journal utilisé pour le transfert interne doit être différent du journal du registre." | ||
464 | 110332 | |||
465 | 110333 | #. module: msf_doc_import | ||
466 | 110334 | #: code:addons/msf_doc_import/account.py:470 | ||
467 | 110335 | #, python-format | ||
468 | 110336 | msgid "Line %s. The donation accounts are not compatible with the journal type %s." | ||
469 | 110337 | msgstr "Ligne %s. Les comptes de donation ne sont pas compatibles avec le type de journal %s." | ||
470 | 110327 | 110338 | ||
471 | 110328 | #. module: msf_doc_import | 110339 | #. module: msf_doc_import |
472 | 110329 | #: code:addons/msf_doc_import/wizard/wizard_in_simulation_screen.py:1570 | 110340 | #: code:addons/msf_doc_import/wizard/wizard_in_simulation_screen.py:1570 |
473 | 110330 | 110341 | ||
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 | 52 | 'model': lambda *a: 'patch.scripts', | 52 | 'model': lambda *a: 'patch.scripts', |
479 | 53 | } | 53 | } |
480 | 54 | 54 | ||
481 | 55 | # UF18.0 | ||
482 | 56 | def sync_msg_from_itself(self, cr, uid, *a, **b): | ||
483 | 57 | instance = self.pool.get('res.users').browse(cr, uid, uid, fields_to_fetch=['company_id']).company_id.instance_id | ||
484 | 58 | if not instance: | ||
485 | 59 | return True | ||
486 | 60 | 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 | 61 | self._logger.warn('Set %s self sync messages as Run' % (cr.rowcount,)) | ||
488 | 62 | return True | ||
489 | 63 | |||
490 | 64 | |||
491 | 65 | def us_6544_no_sync_on_forced_out(self, cr, uid, *a, **b): | ||
492 | 66 | # already forced OUT as delivred must no generate sync msg to prevent NR at reception | ||
493 | 67 | if self.pool.get('sync_client.version'): | ||
494 | 68 | cr.execute(''' | ||
495 | 69 | update ir_model_data set sync_date=NOW() where id in ( | ||
496 | 70 | select d.id from | ||
497 | 71 | stock_picking p | ||
498 | 72 | left join ir_model_data d on d.model='stock.picking' and d.res_id=p.id and d.module='sd' | ||
499 | 73 | where | ||
500 | 74 | p.type='out' and | ||
501 | 75 | p.subtype='standard' and | ||
502 | 76 | p.state='delivered' and | ||
503 | 77 | (d.sync_date is null or d.sync_date < d.last_modification) | ||
504 | 78 | )''') | ||
505 | 79 | self._logger.warn('Prevent NR on forced delivered OUT (%s)' % (cr.rowcount,)) | ||
506 | 80 | return True | ||
507 | 81 | |||
508 | 55 | # UF17.1 | 82 | # UF17.1 |
509 | 56 | def us_7631_set_default_liquidity_accounts(self, cr, uid, *a, **b): | 83 | def us_7631_set_default_liquidity_accounts(self, cr, uid, *a, **b): |
510 | 57 | if self.pool.get('sync_client.version') and self.pool.get('sync.client.entity'): | 84 | if self.pool.get('sync_client.version') and self.pool.get('sync.client.entity'): |
511 | 58 | 85 | ||
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 | 281 | qty_per_line[line_data['item']] = line_data['qty'] | 281 | qty_per_line[line_data['item']] = line_data['qty'] |
517 | 282 | 282 | ||
518 | 283 | product = self.get_product(cr, uid, ids, line_data, context=context) | 283 | product = self.get_product(cr, uid, ids, line_data, context=context) |
524 | 284 | self.checks_on_batch(cr, uid, ids, product, line_data, context=context) | 284 | move_id = self.get_matching_move(cr, uid, ids, line_data, product.id, wiz.picking_id.id, treated_lines, context=context) |
525 | 285 | to_write.update({ | 285 | if not move_id: |
521 | 286 | 'move_id': self.get_matching_move(cr, uid, ids, line_data, product.id, wiz.picking_id.id, treated_lines, context=context) | ||
522 | 287 | }) | ||
523 | 288 | if not to_write.get('move_id'): | ||
526 | 289 | continue | 286 | continue |
527 | 290 | else: | 287 | else: |
528 | 288 | self.checks_on_batch(cr, uid, ids, product, line_data, context=context) | ||
529 | 289 | to_write.update({ | ||
530 | 290 | 'move_id': move_id, | ||
531 | 291 | }) | ||
532 | 291 | if line_data['qty_to_process'] > line_data['qty']: | 292 | if line_data['qty_to_process'] > line_data['qty']: |
533 | 292 | raise osv.except_osv( | 293 | raise osv.except_osv( |
534 | 293 | _('Error'), | 294 | _('Error'), |
535 | @@ -334,7 +335,7 @@ | |||
536 | 334 | cr.execute(""" | 335 | cr.execute(""" |
537 | 335 | SELECT m.line_number, p.default_code, SUM(product_qty) | 336 | SELECT m.line_number, p.default_code, SUM(product_qty) |
538 | 336 | FROM stock_move m, product_product p | 337 | FROM stock_move m, product_product p |
540 | 337 | WHERE m.product_id = p.id AND m.picking_id = %s AND m.state IN ('confirmed', 'assigned') | 338 | WHERE m.product_id = p.id AND m.picking_id = %s AND m.state = 'assigned' |
541 | 338 | GROUP BY m.line_number, p.default_code | 339 | GROUP BY m.line_number, p.default_code |
542 | 339 | """, (wiz.picking_id.id,)) | 340 | """, (wiz.picking_id.id,)) |
543 | 340 | for prod in cr.fetchall(): | 341 | for prod in cr.fetchall(): |
544 | 341 | 342 | ||
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 | 8 | 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 | 8 | 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 | 9 | 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 | 9 | 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 | 10 | 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 | 10 | 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 |
553 | 11 | 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 | 11 | 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 | 12 | 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 | 12 | 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 | 13 | 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 | 13 | 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 | 14 | 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 | 14 | 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 | 15 | 15 | ||
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 | 21 | 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 | 21 | 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 | 22 | 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 | 22 | 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 | 23 | 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 | 23 | 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 |
569 | 24 | 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 | 24 | 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 | 25 | 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 | 25 | 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 | 26 | 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 | 26 | 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 | 27 | 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 | 27 | 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 | 28 | 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 | 28 | 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 | 29 | 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 | 29 | 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 | 30 | 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 | 30 | 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 | 31 | 31 | ||
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 | 491 | if tp_journal.currency.id != register_currency: | 491 | if tp_journal.currency.id != register_currency: |
582 | 492 | errors.append(_('Line %s. A Transfer Same Journal must have the same currency as the register.') % (current_line_num,)) | 492 | errors.append(_('Line %s. A Transfer Same Journal must have the same currency as the register.') % (current_line_num,)) |
583 | 493 | continue | 493 | continue |
584 | 494 | if tp_journal.id == wiz.register_id.journal_id.id: | ||
585 | 495 | errors.append(_('Line %s. The journal third party used for the internal transfer ' | ||
586 | 496 | 'must be different from the journal of the register.') % (current_line_num,)) | ||
587 | 497 | continue | ||
588 | 494 | # Type DP ==> PARTNER required | 498 | # Type DP ==> PARTNER required |
589 | 495 | elif type_for_register == 'down_payment': | 499 | elif type_for_register == 'down_payment': |
590 | 496 | tp_ids = partner_obj.search(cr, uid, [('name', '=', line[cols['third_party']])], context=context) | 500 | tp_ids = partner_obj.search(cr, uid, [('name', '=', line[cols['third_party']])], context=context) |
591 | 497 | 501 | ||
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 | 45 | Return the moves for the report | 45 | Return the moves for the report |
597 | 46 | ''' | 46 | ''' |
598 | 47 | result = [] | 47 | result = [] |
601 | 48 | for move in report.sm_ids: | 48 | for move_id in report.sm_ids: |
602 | 49 | result.append(self.pool.get('stock.move').browse(self.cr, self.uid, move)) | 49 | move = self.pool.get('stock.move').browse(self.cr, self.uid, move_id) |
603 | 50 | if self._get_qty(move) != 0: | ||
604 | 51 | result.append(move) | ||
605 | 50 | 52 | ||
606 | 51 | return sorted(result, key=lambda r: (r['date']), reverse=True) | 53 | return sorted(result, key=lambda r: (r['date']), reverse=True) |
607 | 52 | 54 | ||
608 | 53 | 55 | ||
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 | 331 | # Put the backorderd qty on the first line | 331 | # Put the backorderd qty on the first line |
614 | 332 | if not lines: | 332 | if not lines: |
615 | 333 | continue | 333 | continue |
617 | 334 | if bo_qty and bo_qty > 0 and not first_line and line.order_id.state not in ('cancel', 'done'): | 334 | if bo_qty and bo_qty > 0 and not first_line and line.state not in ('cancel', 'cancel_r', 'done'): |
618 | 335 | lines.append({ | 335 | lines.append({ |
619 | 336 | 'po_name': po_name, | 336 | 'po_name': po_name, |
620 | 337 | 'cdd': cdd, | 337 | 'cdd': cdd, |
621 | 338 | 338 | ||
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 | 131 | prod_domain.append(('dangerous_goods', '=', report.dangerous_goods)) | 131 | prod_domain.append(('dangerous_goods', '=', report.dangerous_goods)) |
627 | 132 | 132 | ||
628 | 133 | if report.perishable: | 133 | if report.perishable: |
630 | 134 | prod_domain.append(('perishable', '=', report.perishable)) | 134 | perishable = report.perishable == 'True' and True or report.perishable == 'False' and False or '' |
631 | 135 | prod_domain.append(('perishable', '=', perishable)) | ||
632 | 135 | 136 | ||
633 | 136 | if report.batch_management: | 137 | if report.batch_management: |
635 | 137 | prod_domain.append(('batch_management', '=', report.batch_management)) | 138 | batch_management = report.batch_management == 'True' and True or report.batch_management == 'False' and False or '' |
636 | 139 | prod_domain.append(('batch_management', '=', batch_management)) | ||
637 | 138 | 140 | ||
638 | 139 | prod_ids = prod_obj.search(cr, uid, prod_domain, order='default_code', context=context) | 141 | prod_ids = prod_obj.search(cr, uid, prod_domain, order='default_code', context=context) |
639 | 140 | 142 | ||
640 | 141 | 143 | ||
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 | 70 | raise ValueError('Bad domain expression: %r' % (exp,)) | 70 | raise ValueError('Bad domain expression: %r' % (exp,)) |
646 | 71 | self.__exp = exp | 71 | self.__exp = exp |
647 | 72 | self.__field_tables = {} # used to store the table to use for the sql generation. key = index of the leaf | 72 | self.__field_tables = {} # used to store the table to use for the sql generation. key = index of the leaf |
649 | 73 | self.__all_tables = set() | 73 | self.__all_tables = [] |
650 | 74 | self.__joins = [] | 74 | self.__joins = [] |
651 | 75 | self.__main_table = None # 'root' table. set by parse() | 75 | self.__main_table = None # 'root' table. set by parse() |
652 | 76 | self.__DUMMY_LEAF = (1, '=', 1) # a dummy leaf that must not be parsed or sql generated | 76 | self.__DUMMY_LEAF = (1, '=', 1) # a dummy leaf that must not be parsed or sql generated |
653 | @@ -107,7 +107,8 @@ | |||
654 | 107 | return [(left, 'in', rg(ids, table, parent or table._parent_name))] | 107 | return [(left, 'in', rg(ids, table, parent or table._parent_name))] |
655 | 108 | 108 | ||
656 | 109 | self.__main_table = table | 109 | self.__main_table = table |
658 | 110 | self.__all_tables.add(table) | 110 | if table not in self.__all_tables: |
659 | 111 | self.__all_tables.append(table) | ||
660 | 111 | 112 | ||
661 | 112 | i = -1 | 113 | i = -1 |
662 | 113 | while i + 1<len(self.__exp): | 114 | while i + 1<len(self.__exp): |
663 | @@ -130,7 +131,7 @@ | |||
664 | 130 | working_table = main_table.pool.get(main_table._inherit_fields[fargs[0]][0]) | 131 | working_table = main_table.pool.get(main_table._inherit_fields[fargs[0]][0]) |
665 | 131 | if working_table not in self.__all_tables: | 132 | if working_table not in self.__all_tables: |
666 | 132 | self.__joins.append('%s.%s=%s.%s' % (working_table._table, 'id', main_table._table, main_table._inherits[working_table._name])) | 133 | self.__joins.append('%s.%s=%s.%s' % (working_table._table, 'id', main_table._table, main_table._inherits[working_table._name])) |
668 | 133 | self.__all_tables.add(working_table) | 134 | self.__all_tables.append(working_table) |
669 | 134 | main_table = working_table | 135 | main_table = working_table |
670 | 135 | 136 | ||
671 | 136 | field = working_table._columns.get(fargs[0], False) | 137 | field = working_table._columns.get(fargs[0], False) |
672 | 137 | 138 | ||
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 | 20 | ############################################################################## | 20 | ############################################################################## |
678 | 21 | 21 | ||
679 | 22 | name = 'openerp-server' | 22 | name = 'openerp-server' |
681 | 23 | version = 'UF17.1dev' | 23 | version = 'UF18.0dev' |
682 | 24 | major_version = '8.0' | 24 | major_version = '8.0' |
683 | 25 | description = 'OpenERP Server' | 25 | description = 'OpenERP Server' |
684 | 26 | long_desc = '''OpenERP is a complete ERP and CRM. The main features are accounting (analytic | 26 | long_desc = '''OpenERP is a complete ERP and CRM. The main features are accounting (analytic |