# Conflicts:
#	sf_dlm/data/product_data.xml
This commit is contained in:
jinling.yang
2022-12-12 16:56:04 +08:00
4 changed files with 127 additions and 123 deletions

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<record id="product_template_sf" model="product.product">
<record id="product_template_sf" model="product.product">
<field name="name">CNC加工产品模板</field>
<!-- <field name="categ_id" ref="product.product_category_5"/>-->
<!-- <field name="categ_id" ref="product.product_category_5"/>-->
<field name="invoice_policy">delivery</field>
<field name="detailed_type">product</field>
<field name="purchase_ok">false</field>
@@ -53,7 +53,5 @@
<field name="company_id" ref="base.main_company"/>
<field name="active">False</field>
</record>
</data>
</odoo>

View File

@@ -29,6 +29,12 @@ class ResProductTemplate(models.Model):
materials_id = fields.Many2one('sf.production.materials', string='材料')
materials_type_id = fields.Many2one('sf.materials.model', string='材料型号')
# volume = fields.Float(compute='_compute_volume', store=True)
single_manufacturing = fields.Boolean(string="单个制造")
# @api.depends('long', 'width', 'height')
# def _compute_volume(self):
# self.volume = self.long * self.width * self.height
single_manufacturing = fields.Boolean(string="单个制造")
@@ -60,6 +66,11 @@ class ResProductTemplate(models.Model):
'model_long': item['model_long'],
'model_width': item['model_width'],
'model_height': item['model_height'],
'length': item['long'],
'width': item['width'],
'height': item['height'],
'volume': item['long'] * item['width'] * item['height'],
'model_price': item['price'],
'length': item['model_long'],
'width': item['model_width'],
'height': item['model_height'],
@@ -161,6 +172,10 @@ class ResMrpBom(models.Model):
# 二、胚料的材料型号与生成产品的材料型号一致;
# 三、胚料的长宽高均要大于模型的长宽高;
# 四、如果匹配成功多个胚料,则选取体积最小的胚料;
def bom_create_Line(self, product):
logging.info('bom_create_Line:%s' % product)
embryo = self.env['product.product'].search(
[('categ_id.is_embryo', '=', True), ('materials_type_id', '=', product.materials_type_id.id),
# 创建新的胚料,根据胚料材料型号的获取方式(
# 自加工,外协,采购) 的配置, 选择不同的库存路线,一种材料型号配置一个路线相关的配置:
# 材料型号配置不同的获取方式: (自加工, 外协, 采购);
@@ -185,6 +200,8 @@ class ResMrpBom(models.Model):
limit=1,
order='volume desc'
)
logging.info('bom_create_Line1:%s' % product)
return self.env['mrp.bom.line'].create(vals)
if embryo:
rate_of_waste = ((embryo.volume - product.model_volume) % embryo.volume) * 100
if rate_of_waste <= 20:

View File

@@ -63,7 +63,8 @@ class ResMrpWorkOrder(models.Model):
Y10_axis = fields.Float(default=0)
Z10_axis = fields.Float(default=0)
X_deviation_angle = fields.Integer(string="X轴偏差度", default=0)
test_results = fields.Selection([("合格", "合格"), ("返工", "返工"), ("报废", "报废")], string="检测结果")
test_results = fields.Selection([("合格", "合格"), ("返工", "返工"), ("报废", "报废")], default='合格',
string="检测结果")
cnc_ids = fields.One2many("sf.cnc.processing", 'workorder_id', string="CNC加工")
tray_code = fields.Char(string="托盘")
@@ -346,7 +347,7 @@ class CNCprocessing(models.Model):
# mrs下发编程单创建CNC加工
def cnc_processing_create(self, obj):
workorder = self.env['mrp.workorder'].search([('production_id.name', '=', obj['production_order_no']),
workorder = self.env['mrp.workorder'].search([('production_id.name', '=', obj['manufacturing_order_no']),
('processing_panel', '=', obj['processing_panel']),
('routing_type', '=', 'CNC加工')])
vals = {

View File

@@ -71,11 +71,12 @@
<field name="routing_type" invisible="1"/>
<field name="processing_panel" readonly="1"/>
<field name="tray_code"/>
<div class="col-12 col-lg-6 o_setting_box">
</group>
<div class="col-12 col-lg-6 o_setting_box">
<button type="object" class="oe_highlight" name="gettray" string="绑定托盘"
attrs='{"invisible": [("production_id","=",False)]}'/>
</div>
</group>
</page>
</xpath>
@@ -86,121 +87,107 @@
<field name="processing_panel" readonly="1"/>
</group>
</group>
<group>
<div>左面:</div>
<div>左面:</div>
<div class="o_address_format">
<label for="X1_axis" string="x"/>
<field name="X1_axis" class="o_form_label"/>
<label for="Y1_axis" string="y"/>
<field name="Y1_axis" class="o_form_label"/>
<label for="Z1_axis" string="z"/>
<field name="Z1_axis" class="o_form_label"/>
<div></div>
<div class="o_address_format">
<label for="X1_axis" string="x1"/>
<field name="X1_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Y1_axis" string="y1"/>
<field name="Y1_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Z1_axis" string="z1"/>
<field name="Z1_axis" class="o_address_zip"/>
</div>
<div class="o_address_format">
<label for="X2_axis" string="x2"/>
<field name="X2_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Y2_axis" string="y2"/>
<field name="Y2_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Z2_axis" string="z2"/>
<field name="Z2_axis" class="o_address_zip"/>
</div>
<div>前面:</div>
<label for="X2_axis" string="x"/>
<field name="X2_axis" class="o_form_label"/>
<label for="Y2_axis" string="y"/>
<field name="Y2_axis" class="o_form_label"/>
<label for="Z2_axis" string="z"/>
<field name="Z2_axis" class="o_form_label"/>
</div>
<div>前面:</div>
<div class="o_address_format">
<label for="X3_axis" string="x"/>
<field name="X3_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Y3_axis" string="y"/>
<field name="Y3_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Z3_axis" string="z"/>
<field name="Z3_axis" class="o_form_label"/>
<div></div>
<div class="o_address_format">
<label for="X3_axis" string="x1"/>
<field name="X3_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Y3_axis" string="y1"/>
<field name="Y3_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Z3_axis" string="z1"/>
<field name="Z3_axis" class="o_address_zip"/>
</div>
<div class="o_address_format">
<label for="X4_axis" string="x2"/>
<field name="X4_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Y4_axis" string="y2"/>
<field name="Y4_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Z4_axis" string="z2"/>
<field name="Z4_axis" class="o_address_zip"/>
</div>
<div>右面:</div>
<label for="X4_axis" string="x"/>
<field name="X4_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Y4_axis" string="y"/>
<field name="Y4_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Z4_axis" string="z"/>
<field name="Z4_axis" class="o_form_label"/>
</div>
<div>右面:</div>
<div class="o_address_format">
<label for="X5_axis" string="x"/>
<field name="X5_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Y5_axis" string="y"/>
<field name="Y5_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Z5_axis" string="z"/>
<field name="Z5_axis" class="o_form_label"/>
<div></div>
<div class="o_address_format">
<label for="X5_axis" string="x1"/>
<field name="X5_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Y5_axis" string="y1"/>
<field name="Y5_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Z5_axis" string="z1"/>
<field name="Z5_axis" class="o_address_zip"/>
</div>
<div class="o_address_format">
<label for="X6_axis" string="x2"/>
<field name="X6_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Y6_axis" string="y2"/>
<field name="Y6_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Z6_axis" string="z2"/>
<field name="Z6_axis" class="o_address_zip"/>
</div>
<div>后面:</div>
<label for="X6_axis" string="x"/>
<field name="X6_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Y6_axis" string="y"/>
<field name="Y6_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Z6_axis" string="z"/>
<field name="Z6_axis" class="o_form_label"/>
</div>
<div>后面:</div>
<div class="o_address_format">
<label for="X7_axis" string="x"/>
<field name="X7_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Y7_axis" string="y"/>
<field name="Y7_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Z7_axis" string="z"/>
<field name="Z7_axis" class="o_form_label"/>
<div></div>
<div class="o_address_format">
<label for="X7_axis" string="x1"/>
<field name="X7_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Y7_axis" string="y1"/>
<field name="Y7_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Z7_axis" string="z1"/>
<field name="Z7_axis" class="o_address_zip"/>
</div>
<div class="o_address_format">
<label for="X8_axis" string="x2"/>
<field name="X8_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Y8_axis" string="y2"/>
<field name="Y8_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Z8_axis" string="z2"/>
<field name="Z8_axis" class="o_address_zip"/>
</div>
<div>上面:</div>
<label for="X8_axis" string="x"/>
<field name="X8_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Y8_axis" string="y"/>
<field name="Y8_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Z8_axis" string="z"/>
<field name="Z8_axis" class="o_form_label"/>
</div>
<div>上面:</div>
<div class="o_address_format">
<label for="X9_axis" string="x"/>
<field name="X9_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Y9_axis" string="y"/>
<field name="Y9_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Z9_axis" string="z"/>
<field name="Z9_axis" class="o_form_label"/>
<div></div>
<div class="o_address_format">
<label for="X9_axis" string="x1"/>
<field name="X9_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Y9_axis" string="y1"/>
<field name="Y9_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Z9_axis" string="z1"/>
<field name="Z9_axis" class="o_address_zip"/>
</div>
<div class="o_address_format">
<label for="X10_axis" string="x2"/>
<field name="X10_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Y10_axis" string="y2"/>
<field name="Y10_axis" class="o_address_zip"/>
<span>&amp;nbsp;</span>
<label for="Z10_axis" string="z2"/>
<field name="Z10_axis" class="o_address_zip"/>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<button type="object" class="oe_highlight" name="getcenter" string="计算定位"/>
</div>
</group>
<label for="X10_axis" string="x"/>
<field name="X10_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Y10_axis" string="y"/>
<field name="Y10_axis" class="o_form_label"/>
<span>&amp;nbsp;</span>
<label for="Z10_axis" string="z"/>
<field name="Z10_axis" class="o_form_label"/>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<button type="object" class="oe_highlight" name="getcenter" string="计算定位"/>
</div>
<group>
<field name="material_center_point"/>
<field name='X_deviation_angle'/>
@@ -235,17 +222,18 @@
<xpath expr="//page[last()]" position="after">
<page string="后置三元检测" attrs='{"invisible": [("routing_type","!=","后置三元质量检测")]}'>
<group>
<field name="test_results" widget="selection"/>
<div class="col-12 col-lg-6 o_setting_box">
<field name="test_results" widget="selection" />
</group>
<div class="col-12 col-lg-6 o_setting_box">
<button type="object" class="oe_highlight" name="recreateManufacturingOrWorkerOrder"
string="检测确认"/>
</div>
</group>
</page>
</xpath>
<xpath expr="//page[last()]" position="after">
<page string="解除装夹" attrs='{"invisible": [("routing_type","!=","解除装夹")]}'>
<group>
<div class="col-12 col-lg-6 o_setting_box">
<button type="object" class="oe_highlight" name="unbindtray" string="解除装夹"/>
</div>
@@ -253,7 +241,7 @@
<button type="action" class="oe_highlight" name="sf_manufacturing.label_sf_tray_code1"
string="打印标签"/>
</div>
</group>
</page>
</xpath>
</field>