diff --git a/connector_opencart/__manifest__.py b/connector_opencart/__manifest__.py
index ddd2c9bc..af9c90e5 100644
--- a/connector_opencart/__manifest__.py
+++ b/connector_opencart/__manifest__.py
@@ -3,7 +3,7 @@
{
'name': 'Opencart Connector',
- 'version': '12.0.1.1.0',
+ 'version': '12.0.1.2.0',
'category': 'Connector',
'depends': [
'account',
diff --git a/connector_opencart/models/opencart/backend.py b/connector_opencart/models/opencart/backend.py
index 42cd62ad..0f0aff12 100644
--- a/connector_opencart/models/opencart/backend.py
+++ b/connector_opencart/models/opencart/backend.py
@@ -76,6 +76,17 @@ class OpencartBackend(models.Model):
so_require_product_setup = fields.Boolean(string='SO Require Product Setup',
help='Prevents SO from being confirmed (failed queue job), if one or more products has an open checkpoint.')
+ scheduler_order_import_running = fields.Boolean(string='Auctomatic Sale Order Import is Running',
+ compute='_compute_scheduler_order_import_running',
+ compute_sudo=True)
+ scheduler_order_import = fields.Boolean(string='Automatic Sale Order Import',
+ help='Individual stores should also be enabled for import.')
+
+ def _compute_scheduler_order_import_running(self):
+ sched_action = self.env.ref('connector_opencart.ir_cron_import_sale_orders', raise_if_not_found=False)
+ for backend in self:
+ backend.scheduler_order_import_running = bool(sched_action.active)
+
@contextmanager
@api.multi
def work_on(self, model_name, **kwargs):
@@ -124,6 +135,7 @@ class OpencartBackend(models.Model):
('base_url', '!=', False),
('restadmin_token', '!=', False),
('import_orders_after_id', '!=', False),
+ ('scheduler_order_import', '=', True),
])
return backends.import_sale_orders()
@@ -140,6 +152,3 @@ class OpencartBackend(models.Model):
backend,
filters={'after_id': after_id}
)
- # TODO !!!!!
- # cannot update the ID because we don't know what Ids would be returned.
- # this MUST be updated by the SO importer.
diff --git a/connector_opencart/models/opencart/store.py b/connector_opencart/models/opencart/store.py
index 4444b16f..33b97625 100644
--- a/connector_opencart/models/opencart/store.py
+++ b/connector_opencart/models/opencart/store.py
@@ -52,6 +52,8 @@ class OpencartStore(models.Model):
)
coupon_product_id = fields.Many2one(comodel_name='product.product', string='Coupon Product',
help='Product to represent coupon discounts.')
+ enable_order_import = fields.Boolean(string='Enable Sale Order Import', default=True,
+ help='If not enabled, then stores will be skipped during order imiport.')
class OpencartStoreAdapter(Component):
diff --git a/connector_opencart/models/sale_order/importer.py b/connector_opencart/models/sale_order/importer.py
index 79e19595..dcbe500b 100644
--- a/connector_opencart/models/sale_order/importer.py
+++ b/connector_opencart/models/sale_order/importer.py
@@ -1,8 +1,9 @@
# © 2019 Hibou Corp.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from copy import deepcopy, copy
+from copy import copy
from html import unescape
+import logging
from odoo import fields, _
from odoo.addons.component.core import Component
@@ -11,6 +12,9 @@ from odoo.exceptions import ValidationError
from odoo.addons.queue_job.exception import RetryableJobError
+_logger = logging.getLogger(__name__)
+
+
class SaleOrderBatchImporter(Component):
_name = 'opencart.sale.order.batch.importer'
_inherit = 'opencart.delayed.batch.importer'
@@ -24,10 +28,13 @@ class SaleOrderBatchImporter(Component):
}
if store_id is not None:
store_binder = self.binder_for('opencart.store')
- store = store_binder.to_internal(store_id)
- user = store.sudo().warehouse_id.company_id.user_tech_id
+ store = store_binder.to_internal(store_id).sudo()
+ if not store.enable_order_import:
+ _logger.warning('Store (%s) is not enabled for Sale Order import (%s).' % (store.name, external_id))
+ return
+ user = store.warehouse_id.company_id.user_tech_id
if user and user != self.env.user:
- # Note that this is a component, which has an env through it's 'colletion'
+ # Note that this is a component, which has an env through it's 'collection'
# however, when importing the 'model' is actually what runs the delayed job
env = self.env(user=user)
self.collection.env = env
diff --git a/connector_opencart/views/opencart_backend_views.xml b/connector_opencart/views/opencart_backend_views.xml
index d60fda7b..1b9138fe 100644
--- a/connector_opencart/views/opencart_backend_views.xml
+++ b/connector_opencart/views/opencart_backend_views.xml
@@ -34,6 +34,14 @@
+ The automatic scheduler is not currently enabled. +
++ The automatic scheduler is enabled. +