diff --git a/sf_message/__manifest__.py b/sf_message/__manifest__.py index cdfef4bd..0f032a6d 100644 --- a/sf_message/__manifest__.py +++ b/sf_message/__manifest__.py @@ -11,7 +11,7 @@ """, 'category': 'sf', 'website': 'https://www.sf.jikimo.com', - 'depends': ['sale', 'purchase', 'sf_plan', 'jikimo_message_notify'], + 'depends': ['sale', 'purchase', 'sf_plan', 'jikimo_message_notify','stock'], 'data': [ 'data/bussiness_node.xml' ], diff --git a/sf_message/data/bussiness_node.xml b/sf_message/data/bussiness_node.xml index eeb7cbe7..76f3fcb7 100644 --- a/sf_message/data/bussiness_node.xml +++ b/sf_message/data/bussiness_node.xml @@ -10,5 +10,21 @@ 确认接单 sale.order + + 调拨入库 + stock.picking + + + 功能刀具组装 + sf.functional.tool.assembly + + + 功能刀具寿命到期 + sf.functional.tool.dismantle + + + 坯料采购提醒 + purchase.order + \ No newline at end of file diff --git a/sf_message/models/__init__.py b/sf_message/models/__init__.py index b0c058fc..e84a0acd 100644 --- a/sf_message/models/__init__.py +++ b/sf_message/models/__init__.py @@ -6,3 +6,4 @@ from . import sf_message_cam_program from . import sf_message_functional_tool_assembly from . import sf_message_purchase from . import sf_message_workorder +from . import sf_message_functional_tool_dismantle \ No newline at end of file diff --git a/sf_message/models/sf_message_functional_tool_assembly.py b/sf_message/models/sf_message_functional_tool_assembly.py index 251af2cc..d4e05fc0 100644 --- a/sf_message/models/sf_message_functional_tool_assembly.py +++ b/sf_message/models/sf_message_functional_tool_assembly.py @@ -3,4 +3,16 @@ from odoo import models, fields, api, _ class SFMessagefunctionalToolAssembly(models.Model): _name = 'sf.functional.tool.assembly' + _description = "刀具组装单" _inherit = ['sf.functional.tool.assembly', 'jikimo.message.dispatch'] + + @api.model_create_multi + def create(self, vals): + result = super(SFMessagefunctionalToolAssembly, self).create(vals) + is_cam = False + for obj in result: + if obj.loading_task_source == '0' and obj.assemble_status == '0': + is_cam = True + if is_cam: + self.add_queue('功能刀具组装') + return result diff --git a/sf_message/models/sf_message_functional_tool_dismantle.py b/sf_message/models/sf_message_functional_tool_dismantle.py new file mode 100644 index 00000000..dac3db28 --- /dev/null +++ b/sf_message/models/sf_message_functional_tool_dismantle.py @@ -0,0 +1,18 @@ +from odoo import models, api + + +class SFMessagefunctionalToolDismantle(models.Model): + _name = 'sf.functional.tool.dismantle' + _description = "刀具拆解单" + _inherit = ['sf.functional.tool.dismantle', 'jikimo.message.dispatch'] + + @api.model + def create(self, vals): + result = super(SFMessagefunctionalToolDismantle, self).create(vals) + is_dismantle = False + for obj in result: + if obj.dismantle_cause in ['寿命到期报废', '崩刀报废']and obj.state=='待拆解': + is_dismantle = True + if is_dismantle: + self.add_queue('功能刀具寿命到期') + return result diff --git a/sf_message/models/sf_message_purchase.py b/sf_message/models/sf_message_purchase.py index 073a7814..e9fe3956 100644 --- a/sf_message/models/sf_message_purchase.py +++ b/sf_message/models/sf_message_purchase.py @@ -1,6 +1,17 @@ +import logging from odoo import models, fields, api, _ class SFMessagePurchase(models.Model): _name = 'purchase.order' _inherit = ['purchase.order', 'jikimo.message.dispatch'] + + @api.model_create_multi + def create(self, vals_list): + res = super(SFMessagePurchase, self).create(vals_list) + if res: + try: + res.add_queue('坯料采购提醒') + except Exception as e: + logging.info('add_queue error:%s' % e) + return res diff --git a/sf_message/models/sf_message_stock_picking.py b/sf_message/models/sf_message_stock_picking.py index b090549e..d66008f9 100644 --- a/sf_message/models/sf_message_stock_picking.py +++ b/sf_message/models/sf_message_stock_picking.py @@ -3,4 +3,11 @@ from odoo import models, fields, api, _ class SFMessageStockPicking(models.Model): _name = 'stock.picking' + _description = "库存调拨" _inherit = ['stock.picking', 'jikimo.message.dispatch'] + + def button_validate(self): + res = super(SFMessageStockPicking, self).button_validate() + if self.location_id.name == '进货' and self.location_dest_id.name == '刀具房': + self.add_queue('调拨入库') + return res diff --git a/sf_message/models/sf_message_template.py b/sf_message/models/sf_message_template.py index 7380fbe6..957b0f58 100644 --- a/sf_message/models/sf_message_template.py +++ b/sf_message/models/sf_message_template.py @@ -9,4 +9,8 @@ class SfMessageTemplate(models.Model): def _get_message_model(self): res = super(SfMessageTemplate, self)._get_message_model() res.append("sale.order") + res.append("stock.picking") + res.append('sf.functional.tool.assembly') + res.append('sf.functional.tool.dismantle') + res.append('purchase.order') return res diff --git a/sf_tool_management/models/jikimo_bom.py b/sf_tool_management/models/jikimo_bom.py index 62138d77..b5caf495 100644 --- a/sf_tool_management/models/jikimo_bom.py +++ b/sf_tool_management/models/jikimo_bom.py @@ -89,7 +89,7 @@ class jikimo_bom(models.Model): ('cutting_tool_blade_diameter', '=', self.tool_inventory_id.diameter), # r角 - ('cutting_tool_blade_tip_working_size', '=', self.tool_inventory_id.angle)] + ('cutting_tool_blade_tip_r_size', '=', self.tool_inventory_id.angle)] if option.name == '刀杆': domain = ['&'] + domain + [ ("cutting_tool_cutter_arbor_diameter", "=", self.tool_inventory_id.diameter)]