diff --git a/account_bank_statement_import_online/__manifest__.py b/account_bank_statement_import_online/__manifest__.py
index eecfd845..597993b2 100644
--- a/account_bank_statement_import_online/__manifest__.py
+++ b/account_bank_statement_import_online/__manifest__.py
@@ -4,7 +4,7 @@
{
'name': 'Online Bank Statements',
- 'version': '12.0.1.4.1',
+ 'version': '11.0.1.0.0',
'author':
'Brainbean Apps, '
'Dataplug, '
diff --git a/account_bank_statement_import_online/models/account_journal.py b/account_bank_statement_import_online/models/account_journal.py
index 9fdc2302..d91649d4 100644
--- a/account_bank_statement_import_online/models/account_journal.py
+++ b/account_bank_statement_import_online/models/account_journal.py
@@ -12,6 +12,9 @@ _logger = logging.getLogger(__name__)
class AccountJournal(models.Model):
_inherit = 'account.journal'
+ bank_statements_source = fields.Selection(
+ selection_add=[('online', 'Online (OCA)')],
+ )
online_bank_statement_provider = fields.Selection(
selection=lambda self: self.env[
'account.journal'
@@ -24,11 +27,6 @@ class AccountJournal(models.Model):
copy=False,
)
- def __get_bank_statements_available_sources(self):
- result = super().__get_bank_statements_available_sources()
- result.append(('online', _('Online (OCA)')))
- return result
-
@api.model
def _selection_online_bank_statement_provider(self):
return self.env[
@@ -70,7 +68,7 @@ class AccountJournal(models.Model):
@api.model
def create(self, vals):
- rec = super().create(vals)
+ rec = super(AccountJournal, self).create(vals)
if 'bank_statements_source' in vals \
or 'online_bank_statement_provider' in vals:
rec._update_online_bank_statement_provider_id()
@@ -78,7 +76,7 @@ class AccountJournal(models.Model):
@api.multi
def write(self, vals):
- res = super().write(vals)
+ res = super(AccountJournal, self).write(vals)
if 'bank_statements_source' in vals \
or 'online_bank_statement_provider' in vals:
self._update_online_bank_statement_provider_id()
diff --git a/account_bank_statement_import_online/models/online_bank_statement_provider.py b/account_bank_statement_import_online/models/online_bank_statement_provider.py
index 2d44a0d4..9a93a6c7 100644
--- a/account_bank_statement_import_online/models/online_bank_statement_provider.py
+++ b/account_bank_statement_import_online/models/online_bank_statement_provider.py
@@ -11,8 +11,8 @@ from pytz import timezone, utc
from sys import exc_info
from odoo import models, fields, api, _
-from odoo.addons.base.models.res_bank import sanitize_account_number
-from odoo.addons.base.models.res_partner import _tz_get
+from odoo.addons.base.res.res_bank import sanitize_account_number
+from odoo.addons.base.res.res_partner import _tz_get
_logger = logging.getLogger(__name__)
@@ -24,6 +24,7 @@ class OnlineBankStatementProvider(models.Model):
company_id = fields.Many2one(
related='journal_id.company_id',
+ readonly=True,
store=True,
)
active = fields.Boolean()
@@ -43,9 +44,11 @@ class OnlineBankStatementProvider(models.Model):
)
currency_id = fields.Many2one(
related='journal_id.currency_id',
+ readonly=True,
)
account_number = fields.Char(
- related='journal_id.bank_account_id.sanitized_acc_number'
+ related='journal_id.bank_account_id.sanitized_acc_number',
+ readonly=True,
)
tz = fields.Selection(
selection=_tz_get,
@@ -220,15 +223,17 @@ class OnlineBankStatementProvider(models.Model):
statement = AccountBankStatement.search([
('journal_id', '=', provider.journal_id.id),
('state', '=', 'open'),
- ('date', '=', statement_date),
+ ('date', '=', fields.Date.to_string(statement_date)),
], limit=1)
if not statement:
statement_values.update({
'name': provider.journal_id.sequence_id.with_context(
- ir_sequence_date=statement_date,
+ ir_sequence_date=fields.Date.to_string(
+ statement_date
+ ),
).next_by_id(),
'journal_id': provider.journal_id.id,
- 'date': statement_date,
+ 'date': fields.Date.to_string(statement_date),
})
statement = AccountBankStatement.with_context(
journal_id=provider.journal_id.id,
@@ -269,7 +274,7 @@ class OnlineBankStatementProvider(models.Model):
date = date.replace(tzinfo=utc)
date = date.astimezone(provider_tz).replace(tzinfo=None)
- line_values['date'] = date
+ line_values['date'] = fields.Datetime.to_string(date)
unique_import_id = line_values.get('unique_import_id')
if unique_import_id:
@@ -315,7 +320,8 @@ class OnlineBankStatementProvider(models.Model):
def _schedule_next_run(self):
self.ensure_one()
self.last_successful_run = self.next_run
- self.next_run += self._get_next_run_period()
+ self.next_run = fields.Datetime.from_string(self.next_run) \
+ + self._get_next_run_period()
@api.multi
def _get_statement_date_since(self, date):
@@ -413,12 +419,13 @@ class OnlineBankStatementProvider(models.Model):
providers.mapped('journal_id.name')
))
for provider in providers.with_context({'scheduled': True}):
- date_since = (
+ next_run = fields.Datetime.from_string(provider.next_run)
+ date_since = fields.Datetime.from_string(
provider.last_successful_run
) if provider.last_successful_run else (
- provider.next_run - provider._get_next_run_period()
+ next_run - provider._get_next_run_period()
)
- date_until = provider.next_run
+ date_until = next_run
provider._pull(date_since, date_until)
_logger.info('Scheduled pull of online bank statements complete.')
diff --git a/account_bank_statement_import_online/tests/online_bank_statement_provider_dummy.py b/account_bank_statement_import_online/tests/online_bank_statement_provider_dummy.py
index 93b812e9..34f84d46 100644
--- a/account_bank_statement_import_online/tests/online_bank_statement_provider_dummy.py
+++ b/account_bank_statement_import_online/tests/online_bank_statement_provider_dummy.py
@@ -17,10 +17,11 @@ class OnlineBankStatementProviderDummy(models.Model):
def _obtain_statement_data(self, date_since, date_until):
self.ensure_one()
if self.service != 'dummy':
- return super()._obtain_statement_data(
- date_since,
- date_until,
- ) # pragma: no cover
+ return super(OnlineBankStatementProviderDummy, self) \
+ ._obtain_statement_data(
+ date_since,
+ date_until,
+ ) # pragma: no cover
if self.env.context.get('crash', False):
exception = self.env.context.get(
diff --git a/account_bank_statement_import_online/tests/test_account_bank_statement_import_online.py b/account_bank_statement_import_online/tests/test_account_bank_statement_import_online.py
index e8685190..048da677 100644
--- a/account_bank_statement_import_online/tests/test_account_bank_statement_import_online.py
+++ b/account_bank_statement_import_online/tests/test_account_bank_statement_import_online.py
@@ -2,7 +2,7 @@
# Copyright 2019-2020 Dataplug (https://dataplug.io)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-from datetime import date, datetime
+from datetime import datetime
from dateutil.relativedelta import relativedelta
from psycopg2 import IntegrityError
from urllib.error import HTTPError
@@ -15,9 +15,9 @@ from odoo import fields
class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
def setUp(self):
- super().setUp()
+ super(TestAccountBankAccountStatementImportOnline, self).setUp()
- self.now = fields.Datetime.now()
+ self.now = fields.Datetime.from_string(fields.Datetime.now())
self.AccountJournal = self.env['account.journal']
self.OnlineBankStatementProvider = self.env[
'online.bank.statement.provider'
@@ -34,10 +34,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
'type': 'bank',
'code': 'BANK',
})
- with common.Form(journal) as journal_form:
- journal_form.bank_statements_source = 'online'
- journal_form.online_bank_statement_provider = 'dummy'
- journal_form.save()
+ journal.bank_statements_source = 'online'
+ journal.online_bank_statement_provider = 'dummy'
with self.assertRaises(IntegrityError), mute_logger('odoo.sql_db'):
journal.online_bank_statement_provider_id.unlink()
@@ -48,10 +46,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
'type': 'bank',
'code': 'BANK',
})
- with common.Form(journal) as journal_form:
- journal_form.bank_statements_source = 'online'
- journal_form.online_bank_statement_provider = 'dummy'
- journal_form.save()
+ journal.bank_statements_source = 'online'
+ journal.online_bank_statement_provider = 'dummy'
self.assertTrue(journal.online_bank_statement_provider_id)
journal.unlink()
@@ -63,16 +59,12 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
'type': 'bank',
'code': 'BANK',
})
- with common.Form(journal) as journal_form:
- journal_form.bank_statements_source = 'online'
- journal_form.online_bank_statement_provider = 'dummy'
- journal_form.save()
+ journal.bank_statements_source = 'online'
+ journal.online_bank_statement_provider = 'dummy'
self.assertTrue(journal.online_bank_statement_provider_id)
- with common.Form(journal) as journal_form:
- journal_form.bank_statements_source = 'undefined'
- journal_form.save()
+ journal.bank_statements_source = 'undefined'
self.assertFalse(journal.online_bank_statement_provider_id)
self.assertFalse(self.OnlineBankStatementProvider.search([]))
@@ -512,10 +504,10 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
lines = statement.mapped('line_ids').sorted()
self.assertEqual(len(lines), 4)
- self.assertEqual(lines[0].date, date(2020, 4, 17))
- self.assertEqual(lines[1].date, date(2020, 4, 17))
- self.assertEqual(lines[2].date, date(2020, 4, 18))
- self.assertEqual(lines[3].date, date(2020, 4, 18))
+ self.assertEqual(lines[0].date, '2020-04-17')
+ self.assertEqual(lines[1].date, '2020-04-17')
+ self.assertEqual(lines[2].date, '2020-04-18')
+ self.assertEqual(lines[3].date, '2020-04-18')
def test_tz_non_utc(self):
journal = self.AccountJournal.create({
@@ -544,10 +536,10 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
lines = statement.mapped('line_ids').sorted()
self.assertEqual(len(lines), 4)
- self.assertEqual(lines[0].date, date(2020, 4, 18))
- self.assertEqual(lines[1].date, date(2020, 4, 18))
- self.assertEqual(lines[2].date, date(2020, 4, 18))
- self.assertEqual(lines[3].date, date(2020, 4, 18))
+ self.assertEqual(lines[0].date, '2020-04-18')
+ self.assertEqual(lines[1].date, '2020-04-18')
+ self.assertEqual(lines[2].date, '2020-04-18')
+ self.assertEqual(lines[3].date, '2020-04-18')
def test_other_tz_to_utc(self):
journal = self.AccountJournal.create({
@@ -577,10 +569,10 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
lines = statement.mapped('line_ids').sorted()
self.assertEqual(len(lines), 4)
- self.assertEqual(lines[0].date, date(2020, 4, 17))
- self.assertEqual(lines[1].date, date(2020, 4, 17))
- self.assertEqual(lines[2].date, date(2020, 4, 18))
- self.assertEqual(lines[3].date, date(2020, 4, 18))
+ self.assertEqual(lines[0].date, '2020-04-17')
+ self.assertEqual(lines[1].date, '2020-04-17')
+ self.assertEqual(lines[2].date, '2020-04-18')
+ self.assertEqual(lines[3].date, '2020-04-18')
def test_timestamp_date_only(self):
journal = self.AccountJournal.create({
@@ -608,10 +600,10 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
lines = statement.line_ids
self.assertEqual(len(lines), 4)
- self.assertEqual(lines[0].date, date(2020, 4, 18))
- self.assertEqual(lines[1].date, date(2020, 4, 18))
- self.assertEqual(lines[2].date, date(2020, 4, 18))
- self.assertEqual(lines[3].date, date(2020, 4, 18))
+ self.assertEqual(lines[0].date, '2020-04-18')
+ self.assertEqual(lines[1].date, '2020-04-18')
+ self.assertEqual(lines[2].date, '2020-04-18')
+ self.assertEqual(lines[3].date, '2020-04-18')
def test_timestamp_date_only(self):
journal = self.AccountJournal.create({
@@ -639,7 +631,7 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
lines = statement.line_ids
self.assertEqual(len(lines), 4)
- self.assertEqual(lines[0].date, date(2020, 4, 18))
- self.assertEqual(lines[1].date, date(2020, 4, 18))
- self.assertEqual(lines[2].date, date(2020, 4, 18))
- self.assertEqual(lines[3].date, date(2020, 4, 18))
+ self.assertEqual(lines[0].date, '2020-04-18')
+ self.assertEqual(lines[1].date, '2020-04-18')
+ self.assertEqual(lines[2].date, '2020-04-18')
+ self.assertEqual(lines[3].date, '2020-04-18')
diff --git a/account_bank_statement_import_online/views/account_journal.xml b/account_bank_statement_import_online/views/account_journal.xml
index 4b7de788..554c6466 100644
--- a/account_bank_statement_import_online/views/account_journal.xml
+++ b/account_bank_statement_import_online/views/account_journal.xml
@@ -101,14 +101,11 @@
account.journal
-
-
dashboard.bank_statements_source != 'online_sync' and dashboard.bank_statements_source != 'online'
-
-
- dashboard.bank_statements_source != 'online_sync' and dashboard.bank_statements_source != 'online'
+
+ dashboard.bank_statements_source == 'file_import'
-
- dashboard.bank_statements_source != 'online_sync' and dashboard.bank_statements_source != 'online'
+
+ dashboard.bank_statements_source == 'file_import'
diff --git a/account_bank_statement_import_online/wizards/online_bank_statement_pull_wizard.py b/account_bank_statement_import_online/wizards/online_bank_statement_pull_wizard.py
index 68bff3f7..b4984c3f 100644
--- a/account_bank_statement_import_online/wizards/online_bank_statement_pull_wizard.py
+++ b/account_bank_statement_import_online/wizards/online_bank_statement_pull_wizard.py
@@ -33,7 +33,7 @@ class OnlineBankStatementPullWizard(models.TransientModel):
self.with_context(
active_test=False,
).provider_ids._pull(
- self.date_since,
- self.date_until
+ fields.Datetime.from_string(self.date_since),
+ fields.Datetime.from_string(self.date_until)
)
return {'type': 'ir.actions.act_window_close'}