~unifield-team/unifield-wm/us-907

« back to all changes in this revision

Viewing changes to analytic_distribution/wizard/analytic_distribution_wizard.py

  • Committer: jf
  • Date: 2016-01-29 14:36:34 UTC
  • mfrom: (2740.8.3 unifield-wm)
  • Revision ID: jfb@tempo-consulting.fr-20160129143634-3c8d0q1hmei0bm75
US-863 [FIX] Direct Invoice re-edition: fix crash on AD changes
lp:~fabien-morin/unifield-wm/fm-us-863

Show diffs side-by-side

added added

removed removed

Lines of Context:
1077
1077
        self._check_analytic_account_validity(cr, uid, ids)
1078
1078
        # Return on direct invoice if we come from this one
1079
1079
        wiz = self.browse(cr, uid, ids, context=context)[0]
1080
 
        if wiz and (wiz.direct_invoice_id or wiz.direct_invoice_line_id):
1081
 
            # Get direct_invoice id
1082
 
            direct_invoice_id = (wiz.direct_invoice_id and wiz.direct_invoice_id.id) or \
1083
 
                (wiz.direct_invoice_line_id and wiz.direct_invoice_line_id.invoice_id.id) or False
1084
 
            # Get register from which we come from
1085
 
            direct_invoice = self.pool.get('wizard.account.invoice').browse(cr, uid, [direct_invoice_id], context=context)[0]
1086
 
            register_id = direct_invoice and direct_invoice.register_id and direct_invoice.register_id.id or False
1087
 
            if register_id:
1088
 
                context.update({
1089
 
                    'active_id': register_id,
1090
 
                    'type': 'in_invoice',
1091
 
                    'journal_type': 'purchase',
1092
 
                    'active_ids': register_id,
1093
 
                    })
1094
 
                return {
1095
 
                    'name': "Supplier Direct Invoice",
1096
 
                    'type': 'ir.actions.act_window',
1097
 
                    'res_model': 'wizard.account.invoice',
1098
 
                    'target': 'new',
1099
 
                    'view_mode': 'form',
1100
 
                    'view_type': 'form',
1101
 
                    'res_id': direct_invoice_id,
1102
 
                    'context': context,
1103
 
                }
1104
1080
        if wiz and (wiz.account_direct_invoice_wizard_id or wiz.account_direct_invoice_wizard_line_id):
1105
1081
            # Get direct_invoice id
1106
1082
            direct_invoice_id = (wiz.account_direct_invoice_wizard_id and wiz.account_direct_invoice_wizard_id.id) or\
1108
1084
                            wiz.account_direct_invoice_wizard_line_id.invoice_wizard_id.id) or False
1109
1085
            # Get register from which we come from
1110
1086
            direct_invoice = self.pool.get('account.direct.invoice.wizard').browse(cr, uid, [direct_invoice_id], context=context)[0]
1111
 
            register_id = direct_invoice and direct_invoice.register_id and direct_invoice.register_id.id or False
1112
 
            if register_id:
1113
 
                context.update({
1114
 
                    'active_id': register_id,
1115
 
                    'type': 'in_invoice',
1116
 
                    'journal_type': 'purchase',
1117
 
                    'active_ids': register_id,
1118
 
                    })
1119
 
                return {
1120
 
                    'name': "Supplier Direct Invoice",
1121
 
                    'type': 'ir.actions.act_window',
1122
 
                    'res_model': 'account.direct.invoice.wizard',
1123
 
                    'target': 'new',
1124
 
                    'view_mode': 'form',
1125
 
                    'view_type': 'form',
1126
 
                    'res_id': direct_invoice_id,
1127
 
                    'context': context,
1128
 
                }
 
1087
            register_id = direct_invoice and\
 
1088
                    hasattr(direct_invoice, 'register_id') and\
 
1089
                    direct_invoice.register_id.id or False
 
1090
            if register_id:
 
1091
                context.update({
 
1092
                    'active_id': register_id,
 
1093
                    'type': 'in_invoice',
 
1094
                    'journal_type': 'purchase',
 
1095
                    'active_ids': register_id,
 
1096
                    })
 
1097
            context.update({
 
1098
                'type': 'in_invoice',
 
1099
                'journal_type': 'purchase',
 
1100
                })
 
1101
            return {
 
1102
                'name': "Supplier Direct Invoice",
 
1103
                'type': 'ir.actions.act_window',
 
1104
                'res_model': 'account.direct.invoice.wizard',
 
1105
                'target': 'new',
 
1106
                'view_mode': 'form',
 
1107
                'view_type': 'form',
 
1108
                'res_id': direct_invoice_id,
 
1109
                'context': context,
 
1110
            }
 
1111
        if wiz and (wiz.direct_invoice_id or wiz.direct_invoice_line_id):
 
1112
            # Get direct_invoice id
 
1113
            direct_invoice_id = (wiz.direct_invoice_id and wiz.direct_invoice_id.id) or \
 
1114
                (wiz.direct_invoice_line_id and wiz.direct_invoice_line_id.invoice_id.id) or False
 
1115
            # Get register from which we come from
 
1116
            direct_invoice = self.pool.get('wizard.account.invoice').browse(cr, uid, [direct_invoice_id], context=context)[0]
 
1117
            register_id = direct_invoice and\
 
1118
                    hasattr(direct_invoice, 'register_id') and\
 
1119
                    direct_invoice.register_id.id or False
 
1120
            if register_id:
 
1121
                context.update({
 
1122
                    'active_id': register_id,
 
1123
                    'type': 'in_invoice',
 
1124
                    'journal_type': 'purchase',
 
1125
                    'active_ids': register_id,
 
1126
                    })
 
1127
            context.update({
 
1128
                'type': 'in_invoice',
 
1129
                'journal_type': 'purchase',
 
1130
                })
 
1131
            return {
 
1132
                'name': "Supplier Direct Invoice",
 
1133
                'type': 'ir.actions.act_window',
 
1134
                'res_model': 'wizard.account.invoice',
 
1135
                'target': 'new',
 
1136
                'view_mode': 'form',
 
1137
                'view_type': 'form',
 
1138
                'res_id': direct_invoice_id,
 
1139
                'context': context,
 
1140
            }
1129
1141
        wizard_account_invoice = self._check_open_wizard_account_invoice(cr, uid, wiz, context)
1130
1142
        if wizard_account_invoice:
1131
1143
            return wizard_account_invoice
1349
1361
            # US-99 do not refresh lines as imported JE has no pencil
1350
1362
            # (only AD wizard button allowed)
1351
1363
            o2m_toreload = {}
1352
 
        if wiz and (wiz.direct_invoice_id or wiz.direct_invoice_line_id):
1353
 
            # Get direct_invoice id
1354
 
            direct_invoice_id = (wiz.direct_invoice_id and wiz.direct_invoice_id.id) or \
1355
 
                (wiz.direct_invoice_line_id and wiz.direct_invoice_line_id.invoice_id.id) or False
1356
 
            # Get register from which we come from
1357
 
            direct_invoice = self.pool.get('wizard.account.invoice').browse(cr, uid, [direct_invoice_id], context=context)[0]
1358
 
            register_id = direct_invoice and direct_invoice.register_id and direct_invoice.register_id.id or False
1359
 
            if register_id:
1360
 
                context.update({
1361
 
                    'active_id': register_id,
1362
 
                    'type': 'in_invoice',
1363
 
                    'journal_type': 'purchase',
1364
 
                    'active_ids': register_id,
1365
 
                    })
1366
 
                return {
1367
 
                    'name': "Supplier Direct Invoice",
1368
 
                    'type': 'ir.actions.act_window',
1369
 
                    'res_model': 'wizard.account.invoice',
1370
 
                    'target': 'new',
1371
 
                    'view_mode': 'form',
1372
 
                    'view_type': 'form',
1373
 
                    'res_id': direct_invoice_id,
1374
 
                    'context': context,
1375
 
                }
1376
1364
        if wiz and (wiz.account_direct_invoice_wizard_id or wiz.account_direct_invoice_wizard_line_id):
1377
1365
            # Get direct_invoice id
1378
1366
            direct_invoice_id = (wiz.account_direct_invoice_wizard_id and \
1382
1370
            # Get register from which we come from
1383
1371
            direct_invoice = self.pool.get('account.direct.invoice.wizard').browse(cr,
1384
1372
                    uid, [direct_invoice_id], context=context)[0]
1385
 
            register_id = direct_invoice and direct_invoice.register_id and direct_invoice.register_id.id or False
 
1373
            register_id = direct_invoice and\
 
1374
                    hasattr(direct_invoice, 'register_id') and\
 
1375
                    direct_invoice.register_id.id or False
1386
1376
            if register_id:
1387
1377
                context.update({
1388
1378
                    'active_id': register_id,
1402
1392
                'res_id': direct_invoice_id,
1403
1393
                'context': context,
1404
1394
            }
 
1395
        if wiz and (wiz.direct_invoice_id or wiz.direct_invoice_line_id):
 
1396
            # Get direct_invoice id
 
1397
            direct_invoice_id = (wiz.direct_invoice_id and wiz.direct_invoice_id.id) or \
 
1398
                (wiz.direct_invoice_line_id and wiz.direct_invoice_line_id.invoice_id.id) or False
 
1399
            # Get register from which we come from
 
1400
            direct_invoice = self.pool.get('wizard.account.invoice').browse(cr, uid, [direct_invoice_id], context=context)[0]
 
1401
            register_id = direct_invoice and\
 
1402
                    hasattr(direct_invoice, 'register_id') and\
 
1403
                    direct_invoice.register_id.id or False
 
1404
            if register_id:
 
1405
                context.update({
 
1406
                    'active_id': register_id,
 
1407
                    'type': 'in_invoice',
 
1408
                    'journal_type': 'purchase',
 
1409
                    'active_ids': register_id,
 
1410
                    })
 
1411
            context.update({
 
1412
                'type': 'in_invoice',
 
1413
                'journal_type': 'purchase',
 
1414
                })
 
1415
            return {
 
1416
                'name': "Supplier Direct Invoice",
 
1417
                'type': 'ir.actions.act_window',
 
1418
                'res_model': 'wizard.account.invoice',
 
1419
                'target': 'new',
 
1420
                'view_mode': 'form',
 
1421
                'view_type': 'form',
 
1422
                'res_id': direct_invoice_id,
 
1423
                'context': context,
 
1424
            }
1405
1425
        wizard_account_invoice = self._check_open_wizard_account_invoice(cr, uid, wiz, context)
1406
1426
        if wizard_account_invoice:
1407
1427
            return wizard_account_invoice