Compare commits
13 Commits
feature/工单
...
feature/取消
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e27ee2434 | ||
|
|
5dc5602e3d | ||
|
|
e20bf3816a | ||
|
|
44f29d001e | ||
|
|
aff81f0b3a | ||
|
|
88840abf9f | ||
|
|
332276752a | ||
|
|
d852cf54df | ||
|
|
6756cc201c | ||
|
|
978e427734 | ||
|
|
dd35a6ae5f | ||
|
|
0a8cc050b8 | ||
|
|
eb47e4c963 |
@@ -132,6 +132,26 @@ class Sf_Bf_Connect(http.Controller):
|
|||||||
request.cr.rollback()
|
request.cr.rollback()
|
||||||
return json.JSONEncoder().encode(res)
|
return json.JSONEncoder().encode(res)
|
||||||
|
|
||||||
|
@http.route('/api/bfm_cancel_order', type='http', auth='sf_token', methods=['GET', 'POST'], csrf=False,
|
||||||
|
cors="*")
|
||||||
|
def get_bfm_cancel_order(self, **kw):
|
||||||
|
"""
|
||||||
|
业务平台取消销售订单
|
||||||
|
:param kw:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
res = {'status': 1, 'message': '工厂取消销售订单成功'}
|
||||||
|
logging.info('get_bfm_cancel_order:%s' % kw['order_number'])
|
||||||
|
try:
|
||||||
|
sale_order_info = request.env['sale.order'].sudo().search([('name', '=', kw['order_number'])])
|
||||||
|
sale_order_info._action_cancel()
|
||||||
|
return json.JSONEncoder().encode(res)
|
||||||
|
except Exception as e:
|
||||||
|
logging.error('get_bfm_cancel_order error: %s' % e)
|
||||||
|
res['status'] = -1
|
||||||
|
res['message'] = '工厂取消销售订单失败,请联系管理员'
|
||||||
|
return json.JSONEncoder().encode(res)
|
||||||
|
|
||||||
|
|
||||||
class jdElcp(http.Controller):
|
class jdElcp(http.Controller):
|
||||||
|
|
||||||
|
|||||||
@@ -1305,6 +1305,7 @@ class MrpProduction(models.Model):
|
|||||||
# 对制造订单所以面的cnc工单的程序用刀进行校验
|
# 对制造订单所以面的cnc工单的程序用刀进行校验
|
||||||
try:
|
try:
|
||||||
logging.info(f'已更新制造订单:{productions_not_delivered}')
|
logging.info(f'已更新制造订单:{productions_not_delivered}')
|
||||||
|
productions = productions.filtered(lambda p: p.production_type == '自动化产线加工')
|
||||||
productions.production_cnc_tool_checkout()
|
productions.production_cnc_tool_checkout()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.info(f'对cnc工单的程序用刀进行校验报错:{e}')
|
logging.info(f'对cnc工单的程序用刀进行校验报错:{e}')
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import logging
|
import logging
|
||||||
import json
|
import json
|
||||||
from odoo import models, fields, api
|
from odoo import models, fields, api, _
|
||||||
from odoo.exceptions import UserError
|
from odoo.exceptions import UserError
|
||||||
|
|
||||||
_logger = logging.getLogger(__name__)
|
_logger = logging.getLogger(__name__)
|
||||||
@@ -24,6 +24,8 @@ class SaleOrder(models.Model):
|
|||||||
self.state = 'supply method'
|
self.state = 'supply method'
|
||||||
|
|
||||||
def action_confirm(self):
|
def action_confirm(self):
|
||||||
|
if self._get_forbidden_state_confirm() & set(self.mapped('state')):
|
||||||
|
raise UserError(_('订单状态已发生变化,请刷新当前页面'))
|
||||||
# 判断是否所有产品都选择了供货方式
|
# 判断是否所有产品都选择了供货方式
|
||||||
filter_line = self.order_line.filtered(lambda line: not line.supply_method)
|
filter_line = self.order_line.filtered(lambda line: not line.supply_method)
|
||||||
if filter_line:
|
if filter_line:
|
||||||
|
|||||||
@@ -197,7 +197,7 @@ class StockRule(models.Model):
|
|||||||
'''
|
'''
|
||||||
# productions._create_workorder()
|
# productions._create_workorder()
|
||||||
#
|
#
|
||||||
self.env['stock.move'].sudo().create(productions._get_moves_finished_values())
|
# self.env['stock.move'].sudo().create(productions._get_moves_finished_values())
|
||||||
productions.filtered(lambda p: (not p.orderpoint_id and p.move_raw_ids) or \
|
productions.filtered(lambda p: (not p.orderpoint_id and p.move_raw_ids) or \
|
||||||
(
|
(
|
||||||
p.move_dest_ids.procure_method != 'make_to_order' and not
|
p.move_dest_ids.procure_method != 'make_to_order' and not
|
||||||
@@ -289,7 +289,7 @@ class StockRule(models.Model):
|
|||||||
if production_item.product_id.id in product_id_to_production_names:
|
if production_item.product_id.id in product_id_to_production_names:
|
||||||
# 同一个产品多个制造订单对应一个编程单和模型库
|
# 同一个产品多个制造订单对应一个编程单和模型库
|
||||||
# 只调用一次fetchCNC,并将所有生产订单的名称作为字符串传递
|
# 只调用一次fetchCNC,并将所有生产订单的名称作为字符串传递
|
||||||
if not production_item.programming_no and production_item.production_type == '自动化产线加工':
|
if not production_item.programming_no and production_item.production_type in ['自动化产线加工', '人工线下加工']:
|
||||||
if not production_programming.programming_no:
|
if not production_programming.programming_no:
|
||||||
production_item.fetchCNC(
|
production_item.fetchCNC(
|
||||||
', '.join(product_id_to_production_names[production_item.product_id.id]))
|
', '.join(product_id_to_production_names[production_item.product_id.id]))
|
||||||
|
|||||||
@@ -117,11 +117,11 @@
|
|||||||
<xpath expr="//sheet//group//group//div[3]" position="after">
|
<xpath expr="//sheet//group//group//div[3]" position="after">
|
||||||
<field name="production_type" readonly="1"/>
|
<field name="production_type" readonly="1"/>
|
||||||
<field name="manual_quotation" readonly="1"
|
<field name="manual_quotation" readonly="1"
|
||||||
attrs="{'invisible': [('production_type', 'not in', ['自动化产线加工'])]}"/>
|
attrs="{'invisible': [('production_type', 'not in', ['自动化产线加工', '人工线下加工'])]}"/>
|
||||||
<field name="programming_no" readonly="1"
|
<field name="programming_no" readonly="1"
|
||||||
attrs="{'invisible': [('production_type', 'not in', ['自动化产线加工'])]}"/>
|
attrs="{'invisible': [('production_type', 'not in', ['自动化产线加工', '人工线下加工'])]}"/>
|
||||||
<field name="programming_state" readonly="1"
|
<field name="programming_state" readonly="1"
|
||||||
attrs="{'invisible': [('production_type', 'not in', ['自动化产线加工'])]}"
|
attrs="{'invisible': [('production_type', 'not in', ['自动化产线加工', '人工线下加工'])]}"
|
||||||
decoration-success="programming_state == '已编程'"
|
decoration-success="programming_state == '已编程'"
|
||||||
decoration-warning="programming_state =='编程中'"
|
decoration-warning="programming_state =='编程中'"
|
||||||
decoration-danger="programming_state =='已编程未下发'"/>
|
decoration-danger="programming_state =='已编程未下发'"/>
|
||||||
@@ -632,6 +632,8 @@
|
|||||||
<field name="state" icon="fa-filter" enable_counters="1"/>
|
<field name="state" icon="fa-filter" enable_counters="1"/>
|
||||||
<field name="delivery_status" icon="fa-filter" enable_counters="1"/>
|
<field name="delivery_status" icon="fa-filter" enable_counters="1"/>
|
||||||
<field name="production_type" icon="fa-filter" enable_counters="1"/>
|
<field name="production_type" icon="fa-filter" enable_counters="1"/>
|
||||||
|
<field name="programming_state" icon="fa-filter" enable_counters="1"/>
|
||||||
|
|
||||||
</searchpanel>
|
</searchpanel>
|
||||||
</xpath>
|
</xpath>
|
||||||
<filter name='todo' position="replace"/>
|
<filter name='todo' position="replace"/>
|
||||||
|
|||||||
@@ -493,7 +493,7 @@
|
|||||||
</group>
|
</group>
|
||||||
</page>
|
</page>
|
||||||
|
|
||||||
<page string="2D加工图纸" attrs="{'invisible': [('routing_type','!=','装夹预调')]}">
|
<page string="2D加工图纸" attrs='{"invisible": [("routing_type","not in",["装夹预调", "人工线下加工"])]}'>
|
||||||
<field name="machining_drawings" widget="adaptive_viewer"/>
|
<field name="machining_drawings" widget="adaptive_viewer"/>
|
||||||
</page>
|
</page>
|
||||||
|
|
||||||
@@ -565,7 +565,7 @@
|
|||||||
</page>
|
</page>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//page[1]" position="before">
|
<xpath expr="//page[1]" position="before">
|
||||||
<page string="CNC程序" attrs='{"invisible": [("routing_type","!=","CNC加工")]}'>
|
<page string="CNC程序" attrs='{"invisible": [("routing_type","not in",["CNC加工", "人工线下加工"])]}'>
|
||||||
<field name="cnc_ids" widget="one2many" string="工作程序" default_order="sequence_number,id"
|
<field name="cnc_ids" widget="one2many" string="工作程序" default_order="sequence_number,id"
|
||||||
readonly="0">
|
readonly="0">
|
||||||
<tree>
|
<tree>
|
||||||
@@ -589,7 +589,7 @@
|
|||||||
</field>
|
</field>
|
||||||
|
|
||||||
</page>
|
</page>
|
||||||
<page string="CMM程序" attrs='{"invisible": [("routing_type","!=","CNC加工")]}'>
|
<page string="CMM程序" attrs='{"invisible": [("routing_type","not in",["CNC加工", "人工线下加工"])]}'>
|
||||||
<field name="cmm_ids" widget="one2many" string="CMM程序" readonly="1">
|
<field name="cmm_ids" widget="one2many" string="CMM程序" readonly="1">
|
||||||
<tree>
|
<tree>
|
||||||
<field name="sequence_number"/>
|
<field name="sequence_number"/>
|
||||||
@@ -642,7 +642,7 @@
|
|||||||
<field name="inherit_id" ref="sf_manufacturing.view_mrp_production_workorder_tray_form_inherit_sf"/>
|
<field name="inherit_id" ref="sf_manufacturing.view_mrp_production_workorder_tray_form_inherit_sf"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr="//form//sheet//group//group[2]" position="replace">
|
<xpath expr="//form//sheet//group//group[2]" position="replace">
|
||||||
<group string="装夹图纸" attrs="{'invisible': [('routing_type', '!=', '装夹预调')]}">
|
<group string="装夹图纸" attrs="{'invisible': [('routing_type', 'not in', ['装夹预调', '人工线下加工'])]}">
|
||||||
<!-- 隐藏加工图纸字段名 -->
|
<!-- 隐藏加工图纸字段名 -->
|
||||||
<field name="processing_drawing" widget="pdf_viewer" string="" readonly="1"/>
|
<field name="processing_drawing" widget="pdf_viewer" string="" readonly="1"/>
|
||||||
<!-- <field name="production_id" invisible="0"/>-->
|
<!-- <field name="production_id" invisible="0"/>-->
|
||||||
|
|||||||
Reference in New Issue
Block a user