diff --git a/account_move_base_import/models/account_journal.py b/account_move_base_import/models/account_journal.py
index d5fbbbe6..667daa65 100644
--- a/account_move_base_import/models/account_journal.py
+++ b/account_move_base_import/models/account_journal.py
@@ -44,10 +44,9 @@ class AccountJournal(models.Model):
receivable_account_id = fields.Many2one(
comodel_name='account.account',
- string='Force Receivable/Payable Account',
- help="Choose a receivable account to force the default "
- "debit/credit account (eg. an intermediat bank account "
- "instead of default debitors).")
+ string='Receivable/Payable Account',
+ help="Choose a receivable/payable account to use as the default "
+ "debit/credit account.")
used_for_completion = fields.Boolean(
string="Journal used for completion")
@@ -114,35 +113,49 @@ class AccountJournal(models.Model):
total_amount += global_commission_amount
partner_id = self.partner_id.id
# Commission line
- if global_commission_amount < 0.0:
- commission_account_id = self.commission_account_id.id
- comm_values = {
- 'name': _('Commission line'),
- 'date_maturity': parser.get_move_vals().get('date') or
- fields.Date.today(),
- 'debit': -global_commission_amount,
- 'partner_id': partner_id,
- 'move_id': move.id,
- 'account_id': commission_account_id,
- 'already_completed': True,
- }
- move_line_obj.with_context(
- check_move_validity=False
- ).create(comm_values)
+ if global_commission_amount > 0.0:
+ raise UserError(_('Commission amount should not be positive.'))
+ elif global_commission_amount < 0.0:
+ if not self.commission_account_id:
+ raise UserError(
+ _('No commission account is set on the journal.'))
+ else:
+ commission_account_id = self.commission_account_id.id
+ comm_values = {
+ 'name': _('Commission line'),
+ 'date_maturity': parser.get_move_vals().get('date') or
+ fields.Date.today(),
+ 'debit': -global_commission_amount,
+ 'partner_id': partner_id,
+ 'move_id': move.id,
+ 'account_id': commission_account_id,
+ 'already_completed': True,
+ }
+ move_line_obj.with_context(
+ check_move_validity=False
+ ).create(comm_values)
+
# Counterpart line
if total_amount > 0.0:
- receivable_account_id = self.receivable_account_id.id or False
- counterpart_values = {
- 'name': _('Counterpart line'),
- 'date_maturity': parser.get_move_vals().get('date') or
- fields.Date.today(),
- 'debit': total_amount,
- 'partner_id': partner_id,
- 'move_id': move.id,
- 'account_id': receivable_account_id,
- 'already_completed': True,
- }
- move_line_obj.create(counterpart_values)
+ account_id = self.default_debit_account_id.id
+ credit = 0.0
+ debit = total_amount
+ else:
+ account_id = self.default_credit_account_id.id
+ credit = -total_amount
+ debit = 0.0
+ counterpart_values = {
+ 'name': _('/'),
+ 'date_maturity': parser.get_move_vals().get('date') or
+ fields.Date.today(),
+ 'credit': credit,
+ 'debit': debit,
+ 'partner_id': partner_id,
+ 'move_id': move.id,
+ 'account_id': account_id,
+ 'already_completed': True,
+ }
+ move_line_obj.create(counterpart_values)
@api.multi
def write_logs_after_import(self, move, num_lines):
@@ -177,10 +190,7 @@ class AccountJournal(models.Model):
values['company_currency_id'] = self.company_id.currency_id.id
values['journal_id'] = self.id
values['move_id'] = move.id
- if values['credit'] > 0.0:
- values['account_id'] = self.default_credit_account_id.id
- else:
- values['account_id'] = self.default_debit_account_id.id
+ values['account_id'] = self.receivable_account_id.id
values = move_line_obj._add_missing_default_values(values)
return values
@@ -263,6 +273,9 @@ class AccountJournal(models.Model):
move.button_auto_completion()
# Write the needed log infos on profile
self.write_logs_after_import(move, len(result_row_list))
+ except UserError:
+ # "Clean" exception, raise as such
+ raise
except Exception:
error_type, error_value, trbk = sys.exc_info()
st = "Error: %s\nDescription: %s\nTraceback:" % (
diff --git a/account_move_base_import/models/account_move.py b/account_move_base_import/models/account_move.py
index b5a4a9cf..5bbfe034 100644
--- a/account_move_base_import/models/account_move.py
+++ b/account_move_base_import/models/account_move.py
@@ -99,7 +99,8 @@ class AccountMoveCompletionRule(models.Model):
invoice = self._find_invoice(line, inv_type)
if invoice:
partner_id = invoice.commercial_partner_id.id
- res = {'partner_id': partner_id}
+ res = {'partner_id': partner_id,
+ 'account_id': invoice.account_id.id}
return res
# Should be private but data are initialised with no update XML
diff --git a/account_move_base_import/views/account_move_view.xml b/account_move_base_import/views/account_move_view.xml
index dacc737a..e16e225d 100644
--- a/account_move_base_import/views/account_move_view.xml
+++ b/account_move_base_import/views/account_move_view.xml
@@ -46,7 +46,7 @@
account.move.completion.rule.view
account.move.completion.rule
-
+
diff --git a/account_move_base_import/views/journal_view.xml b/account_move_base_import/views/journal_view.xml
index 37d17106..33ba085a 100644
--- a/account_move_base_import/views/journal_view.xml
+++ b/account_move_base_import/views/journal_view.xml
@@ -19,13 +19,13 @@
-
+
-
+