diff --git a/addons/hw_blackbox_be/controllers/main.py b/addons/hw_blackbox_be/controllers/main.py index 8db84fbbffa..13579ee7b9b 100644 --- a/addons/hw_blackbox_be/controllers/main.py +++ b/addons/hw_blackbox_be/controllers/main.py @@ -3,6 +3,8 @@ import logging import serial +import subprocess +from os.path import isfile from os import listdir from threading import Thread, Lock @@ -148,15 +150,20 @@ class Blackbox(Thread): ser.close() return "" -blackbox_thread = Blackbox() -hw_proxy.drivers['fiscal_data_module'] = blackbox_thread +if isfile("/home/pi/registered_blackbox_be"): + blackbox_thread = Blackbox() + hw_proxy.drivers['fiscal_data_module'] = blackbox_thread -class BlackboxDriver(hw_proxy.Proxy): - @http.route('/hw_proxy/request_blackbox/', type='json', auth='none', cors='*') - def request_blackbox(self, high_level_message, response_size): - to_send = blackbox_thread._wrap_low_level_message_around(high_level_message) + class BlackboxDriver(hw_proxy.Proxy): + @http.route('/hw_proxy/request_blackbox/', type='json', auth='none', cors='*') + def request_blackbox(self, high_level_message, response_size): + to_send = blackbox_thread._wrap_low_level_message_around(high_level_message) - with blackbox_thread.blackbox_lock: - response = blackbox_thread._send_to_blackbox(to_send, response_size, blackbox_thread.device_path) + with blackbox_thread.blackbox_lock: + response = blackbox_thread._send_to_blackbox(to_send, response_size, blackbox_thread.device_path) - return response + return response + + @http.route('/hw_proxy/request_serial/', type='json', auth='none', cors='*') + def request_serial(self): + return subprocess.check_output("ifconfig eth0 | grep -o 'HWaddr.*' | sed 's/HWaddr \\(.*\\)/\\1/' | sed 's/://g'", shell=True).rstrip()[-7:] diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py index a588003456e..5915273fe21 100644 --- a/addons/sale_stock/sale_stock.py +++ b/addons/sale_stock/sale_stock.py @@ -236,6 +236,13 @@ class SaleOrderLine(models.Model): pass if mto_route_id and mto_route_id in product_routes.ids: is_available = True + if not is_available: + product_routes = product.route_ids + product.categ_id.total_route_ids + for pull_rule in product_routes.mapped('pull_ids'): + if pull_rule.picking_type_id.sudo().default_location_src_id.usage == 'supplier' and\ + pull_rule.picking_type_id.sudo().default_location_dest_id.usage == 'customer': + is_available = True + break # Check Drop-Shipping if not is_available: