-
-
-
+
+
@@ -34,7 +34,7 @@
-
+
@@ -48,16 +48,16 @@
-
- product.category.form.inherit.sf
- product.category
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
product.template.stock.property.form.inherit
diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py
index a39e6d92..55cd0ca4 100644
--- a/sf_manufacturing/models/mrp_production.py
+++ b/sf_manufacturing/models/mrp_production.py
@@ -51,10 +51,10 @@ class MrpProduction(models.Model):
def action_generate_serial(self):
self.ensure_one()
- self.lot_producing_id = self.env['stock.production.lot'].create({
+ self.lot_producing_id = self.env['stock.lot'].create({
'product_id': self.product_id.id,
'company_id': self.company_id.id,
- 'name': self.env['stock.production.lot']._get_next_serial(self.company_id, self.product_id) or self.env[
+ 'name': self.env['stock.lot']._get_next_serial(self.company_id, self.product_id) or self.env[
'ir.sequence'].next_by_code('stock.lot.serial'),
})
if self.move_finished_ids.filtered(lambda m: m.product_id == self.product_id).move_line_ids:
diff --git a/sf_manufacturing/models/mrp_routing_workcenter.py b/sf_manufacturing/models/mrp_routing_workcenter.py
index 8f533a68..23123d14 100644
--- a/sf_manufacturing/models/mrp_routing_workcenter.py
+++ b/sf_manufacturing/models/mrp_routing_workcenter.py
@@ -40,24 +40,24 @@ class ResMrpRoutingWorkcenter(models.Model):
return self.env.cr.dictfetchall()[0].get('workcenter_id')
-class ModelTypeRoutingSort(models.Model):
- _name = 'sf.model.type.routing.sort'
- _description = '工序排序'
-
- sequence = fields.Integer('Sequence')
- route_workcenter_id = fields.Many2one('mrp.routing.workcenter')
- is_repeat = fields.Boolean('重复', related='route_workcenter_id.is_repeat')
- routing_type = fields.Selection([
- ('获取CNC加工程序', '获取CNC加工程序'),
- ('装夹', '装夹'),
- ('前置三元定位检测', '前置三元定位检测'),
- ('CNC加工', 'CNC加工'),
- ('后置三元质量检测', '后置三元质量检测'),
- ('解除装夹', '解除装夹'),
- ], string="工序类型", related='route_workcenter_id.routing_type')
- workcenter_ids = fields.Many2many('mrp.workcenter', required=False, related='route_workcenter_id.workcenter_ids')
- model_type_id = fields.Many2one('sf.model.type')
-
- _sql_constraints = [
- ('route_model_type_uniq', 'unique (route_workcenter_id,model_type_id)', '工序不能重复!')
- ]
+# class ModelTypeRoutingSort(models.Model):
+# _name = 'sf.model.type.routing.sort'
+# _description = '工序排序'
+#
+# sequence = fields.Integer('Sequence')
+# route_workcenter_id = fields.Many2one('mrp.routing.workcenter')
+# is_repeat = fields.Boolean('重复', related='route_workcenter_id.is_repeat')
+# routing_type = fields.Selection([
+# ('获取CNC加工程序', '获取CNC加工程序'),
+# ('装夹', '装夹'),
+# ('前置三元定位检测', '前置三元定位检测'),
+# ('CNC加工', 'CNC加工'),
+# ('后置三元质量检测', '后置三元质量检测'),
+# ('解除装夹', '解除装夹'),
+# ], string="工序类型", related='route_workcenter_id.routing_type')
+# workcenter_ids = fields.Many2many('mrp.workcenter', required=False, related='route_workcenter_id.workcenter_ids')
+# model_type_id = fields.Many2one('sf.model.type')
+#
+# _sql_constraints = [
+# ('route_model_type_uniq', 'unique (route_workcenter_id,model_type_id)', '工序不能重复!')
+# ]
diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py
index b6cdc3b2..70970d16 100644
--- a/sf_manufacturing/models/mrp_workorder.py
+++ b/sf_manufacturing/models/mrp_workorder.py
@@ -241,7 +241,7 @@ class ResMrpWorkOrder(models.Model):
'material_type_code': cnc.env['sf.materials.model'].search(
[('id', '=', cnc.product_id.materials_type_id.id)]).materials_no,
'machining_precision': cnc.product_id.model_machining_precision,
- 'embryo_long': cnc.product_id.bom_ids.bom_line_ids.product_id.long,
+ 'embryo_long': cnc.product_id.bom_ids.bom_line_ids.product_id.length,
'embryo_height': cnc.product_id.bom_ids.bom_line_ids.product_id.height,
'embryo_width': cnc.product_id.bom_ids.bom_line_ids.product_id.width
# 'factory_code': self.env.user.company_id.partner_id.
@@ -345,7 +345,7 @@ class CNCprocessing(models.Model):
# mrs下发编程单创建CNC加工
def cnc_processing_create(self, obj):
- workorder = self.env['mrp.workorder'].search([('production_id.name', '=', obj['manufacturing_order_no']),
+ workorder = self.env['mrp.workorder'].search([('production_id.name', '=', obj['production_order_no']),
('processing_panel', '=', obj['processing_panel']),
('routing_type', '=', 'CNC加工')])
vals = {
diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py
index c31b3e61..cf1433f7 100644
--- a/sf_manufacturing/models/stock.py
+++ b/sf_manufacturing/models/stock.py
@@ -181,7 +181,7 @@ class StockRule(models.Model):
class ProductionLot(models.Model):
- _inherit = 'stock.production.lot'
+ _inherit = 'stock.lot'
@api.model
def generate_lot_names1(self, display_name, first_lot, count):
@@ -217,10 +217,10 @@ class ProductionLot(models.Model):
def _get_next_serial(self, company, product):
"""Return the next serial number to be attributed to the product."""
if product.tracking == "serial":
- last_serial = self.env['stock.production.lot'].search(
+ last_serial = self.env['stock.lot'].search(
[('company_id', '=', company.id), ('product_id', '=', product.id)],
limit=1, order='id DESC')
if last_serial:
- return self.env['stock.production.lot'].generate_lot_names1(product.display_name, last_serial.name, 2)[
+ return self.env['stock.lot'].generate_lot_names1(product.display_name, last_serial.name, 2)[
1]
return "%s-%03d" % (product.display_name, 1)
diff --git a/sf_mrs_connect/controllers/controllers.py b/sf_mrs_connect/controllers/controllers.py
index f0ada0a3..94e7e2d1 100644
--- a/sf_mrs_connect/controllers/controllers.py
+++ b/sf_mrs_connect/controllers/controllers.py
@@ -29,9 +29,11 @@ class Sf_Mrs_Connect(http.Controller):
# # 从ftp拉取对应的文件
model_code = cnc.workorder_id.product_id.barcode
processing_panel = cnc.workorder_id.processing_panel
+ logging.info('model_code:%s' % model_code)
server_dir = cnc.with_user(request.env.ref("base.user_admin")).download_file_tmp(model_code,
processing_panel)
cnc_file_path = os.path.join(server_dir, cnc.program_name + '.NC')
+ logging.info('cnc_file_path:%s' % cnc_file_path)
cnc.with_user(request.env.ref("base.user_admin")).write_file(cnc_file_path, cnc)
# logging.info('get_cnc_processing_create:%s' % '111111111111111')
# for root, dirs, files in os.walk(server_dir):
diff --git a/sf_mrs_connect/models/ftp_operate.py b/sf_mrs_connect/models/ftp_operate.py
index 32c8d32d..a71ee83f 100644
--- a/sf_mrs_connect/models/ftp_operate.py
+++ b/sf_mrs_connect/models/ftp_operate.py
@@ -19,25 +19,24 @@ class FtpController():
try:
self.ftp.connect(host, port)
self.ftp.login(username, password)
+ logging.info("连接成功: ")
except:
logging.info("连接失败: ")
# 下载目录下的文件
- def download_file_tree(self, remotepath, serverdir):
+ def download_file_tree(self, target_dir, serverdir):
+ self.ftp.cwd(target_dir) # 切换工作路径
if not os.path.exists(serverdir):
os.makedirs(serverdir)
- self.ftp.cwd(remotepath)
- remotenames = self.ftp.nlst()
- for file in remotenames:
- server = os.path.join(serverdir, file)
- if file.find(".") != -1:
- self.download_file(server, file)
- else:
- return False
+ remotenames = self.ftp.nlst()
+ for file in remotenames:
+ server = os.path.join(serverdir, file)
+ if file.find(".") != -1:
+ self.download_file(server, file)
+ return
# 下载指定目录下的指定文件
def download_file(self, serverfile, remotefile):
file_handler = open(serverfile, 'wb')
self.ftp.retrbinary('RETR ' + remotefile, file_handler.write)
file_handler.close()
-
diff --git a/sf_sale/__manifest__.py b/sf_sale/__manifest__.py
index 2181f64a..51769040 100644
--- a/sf_sale/__manifest__.py
+++ b/sf_sale/__manifest__.py
@@ -10,7 +10,7 @@
""",
'category': 'sf',
'website': 'https://www.sf.jikimo.com',
- 'depends': ['sale', 'sale_management', 'sf_bf_connect', 'sf_dlm'],
+ 'depends': ['sale', 'sale_management'],
'data': [
'views/sale_order_view.xml'
],
diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py
index a5eaf572..2ae0ae49 100644
--- a/sf_sale/models/sale_order.py
+++ b/sf_sale/models/sale_order.py
@@ -1,6 +1,7 @@
from odoo import models, fields
from odoo.exceptions import ValidationError
import datetime
+import logging
class ReSaleOrder(models.Model):
@@ -20,9 +21,9 @@ class ReSaleOrder(models.Model):
'company_id': company_id.id,
'date_order': now_time,
'name': self.env['ir.sequence'].next_by_code('sale.order', sequence_date=now_time),
- 'partner_id': 8,
+ 'partner_id': 1,
'state': 'sale',
- 'user_id': 6,
+ 'user_id': 1,
'person_of_delivery': delivery_name,
'telephone_of_delivery': delivery_telephone,
'address_of_delivery': delivery_address,