diff --git a/jikimo_sale_multiple_supply_methods/__init__.py b/jikimo_sale_multiple_supply_methods/__init__.py
index 9cb6cca1..e7a30879 100644
--- a/jikimo_sale_multiple_supply_methods/__init__.py
+++ b/jikimo_sale_multiple_supply_methods/__init__.py
@@ -121,3 +121,18 @@ def _create_or_update_stock_rule(env, rule_data):
# 如果不存在,创建新记录
env['stock.rule'].create(rule_data)
+def _data_uninstall(cr, registry):
+ env = api.Environment(cr, SUPERUSER_ID, {})
+ warehouse = env['stock.warehouse'].search([('company_id', '=', env.company.id)], limit=1)
+ product_route_id = warehouse.pbm_route_id
+ resupply_route_id = warehouse.subcontracting_route_id
+ mto_route_id = env.ref('stock.route_warehouse0_mto')
+ # Fail unlink means that the route is used somewhere (e.g. route_id on stock.rule). In this case
+ # we don't try to do anything.
+ try:
+ with env.cr.savepoint():
+ env['stock.rule'].search([('name', 'in', ('WH: 原料存货区 → 制造前', 'WH: 坯料存货区 → 制造前', 'WH: 制造后 → 坯料存货区', 'WH: 制造后 → 成品存货区')), ('route_id', '=', product_route_id.id)]).unlink()
+ env['stock.rule'].search([('name', 'in', ('WH: 原料存货区 → 外包位置 (MTO)', 'WH: 坯料存货区 → 外包位置 (MTO)')), ('route_id', '=', mto_route_id.id)]).unlink()
+ env['stock.rule'].search([('name', '=', 'WH: 坯料存货区 → 外包位置'), ('route_id', '=', resupply_route_id.id)]).unlink()
+ except:
+ pass
\ No newline at end of file
diff --git a/jikimo_sale_multiple_supply_methods/__manifest__.py b/jikimo_sale_multiple_supply_methods/__manifest__.py
index 78507e37..b39d70a8 100644
--- a/jikimo_sale_multiple_supply_methods/__manifest__.py
+++ b/jikimo_sale_multiple_supply_methods/__manifest__.py
@@ -19,6 +19,7 @@
# ],
},
'post_init_hook': '_data_install',
+ 'uninstall_hook': '_data_uninstall',
'application': True,
'installable': True,
'auto_install': False,
diff --git a/jikimo_sale_multiple_supply_methods/controllers/main.py b/jikimo_sale_multiple_supply_methods/controllers/main.py
index 13113ac0..389c0c3c 100644
--- a/jikimo_sale_multiple_supply_methods/controllers/main.py
+++ b/jikimo_sale_multiple_supply_methods/controllers/main.py
@@ -27,11 +27,11 @@ class JikimoSaleRoutePicking(Sf_Bf_Connect):
kw['delivery_end_date'], kw['payments_way'], kw['pay_way'], state='draft')
i = 1
# 给sale_order的default_code字段赋值
- aa = request.env['sale.order'].sudo().search([('name', '=', order_id.name)])
- _logger.info('get_bfm_process_or===================================:%s' % order_id.name)
- aa.default_code = kw['order_number']
+ # aa = request.env['sale.order'].sudo().search([('name', '=', order_id.name)])
+ # _logger.info('get_bfm_process_or===================================:%s' % order_id.name)
+ order_id.default_code = kw['order_number']
if kw.get('logistics_way'):
- aa.logistics_way = kw['logistics_way']
+ order_id.logistics_way = kw['logistics_way']
_logger.info('get_bfm_process_order_listaaaaaaaaaaaaaaaaaaaaaaaaaaaa================:%s' % aa.default_code)
for item in bfm_process_order_list:
product = request.env['product.template'].sudo().product_create(product_id, item, order_id,
diff --git a/jikimo_sale_multiple_supply_methods/models/quick_easy_order.py b/jikimo_sale_multiple_supply_methods/models/quick_easy_order.py
new file mode 100644
index 00000000..d61d3a6f
--- /dev/null
+++ b/jikimo_sale_multiple_supply_methods/models/quick_easy_order.py
@@ -0,0 +1,71 @@
+from datetime import datetime
+from odoo import models
+
+import logging
+import base64
+import hashlib
+
+_logger = logging.getLogger(__name__)
+
+
+class QuickEasyOrder(models.Model):
+ _inherit = 'quick.easy.order'
+
+ def distribute_to_factory(self, obj):
+ """
+ 多供货方式,重写派单到工厂
+ :return:
+ """
+ try:
+ _logger.info('---------派单到工厂-------')
+ res = {'bfm_process_order_list': []}
+ for item in obj:
+ attachment = item.upload_model_file[0]
+ base64_data = base64.b64encode(attachment.datas)
+ base64_datas = base64_data.decode('utf-8')
+ barcode = hashlib.sha1(base64_datas.encode('utf-8')).hexdigest()
+ # logging.info('model_file-size: %s' % len(item.model_file))
+ res['bfm_process_order_list'].append({
+ 'model_long': item.model_length,
+ 'model_width': item.model_width,
+ 'model_height': item.model_height,
+ 'model_volume': item.model_volume,
+ 'model_machining_precision': item.machining_precision,
+ 'model_name': attachment.name,
+ 'model_data': base64_datas,
+ 'model_file': base64.b64encode(item.model_file).decode('utf-8'),
+ 'texture_code': item.material_id.materials_no,
+ 'texture_type_code': item.material_model_id.materials_no,
+ # 'surface_process_code': self.env['jikimo.surface.process']._json_surface_process_code(item),
+ 'process_parameters_code': self.env[
+ 'sf.production.process.parameter']._json_production_process_item_code(
+ item),
+ 'price': item.price,
+ 'number': item.quantity,
+ 'total_amount': item.price,
+ 'remark': '',
+ 'manual_quotation': True,
+ 'barcode': barcode,
+ 'part_number': item.part_drawing_number,
+ 'machining_drawings_name': '',
+ 'quality_standard_name': '',
+ 'machining_drawings_mimetype': '',
+ 'quality_standard_mimetype': '',
+ 'machining_drawings': item.machining_drawings,
+ 'quality_standard': '',
+ 'part_name': '',
+ })
+ company_id = self.env.ref('base.main_company').sudo()
+ product_id = self.env.ref('jikimo_sale_multiple_supply_methods.product_product_default').sudo()
+ # user_id = request.env.ref('base.user_admin').sudo()
+ order_id = self.env['sale.order'].sale_order_create(company_id, 'XXXXX', 'XXXXX', 'XXXXX',
+ str(datetime.now()), '现结', '支付宝', state='draft')
+ order_id.default_code = obj.name
+ i = 1
+ for item in res['bfm_process_order_list']:
+ product = self.env['product.template'].sudo().product_create(product_id, item, order_id,
+ obj.name, i)
+ order_id.with_user(self.env.ref("base.user_admin")).sale_order_create_line(product, item)
+ return order_id
+ except Exception as e:
+ return UserError('工厂创建销售订单和产品失败,请联系管理员')
diff --git a/jikimo_sale_multiple_supply_methods/views/sale_order_views.xml b/jikimo_sale_multiple_supply_methods/views/sale_order_views.xml
index 3021f301..58e8f8ae 100644
--- a/jikimo_sale_multiple_supply_methods/views/sale_order_views.xml
+++ b/jikimo_sale_multiple_supply_methods/views/sale_order_views.xml
@@ -34,13 +34,9 @@
- jikimo.sale.order.search.inherit.quotation
- sale.order
- primary
-
-
-
+
+ [('state', 'in', ('draft', 'sent')), ('user_id', '=', uid)]
@@ -51,8 +47,8 @@
primary
-
-
+
+ [('state', 'in', ('draft', 'sent')), ('user_id', '=', uid)]
@@ -60,7 +56,7 @@
-
+
@@ -69,6 +65,7 @@
ir.actions.act_window
sale.order
tree,kanban,form,calendar,pivot,graph,activity
+
{'search_default_supply_method': 1}
@@ -93,7 +90,7 @@