diff --git a/sf_manufacturing/__manifest__.py b/sf_manufacturing/__manifest__.py index e2ef6dbe..ba0c6751 100644 --- a/sf_manufacturing/__manifest__.py +++ b/sf_manufacturing/__manifest__.py @@ -27,6 +27,7 @@ 'wizard/production_technology_re_adjust_wizard_views.xml', 'wizard/mrp_workorder_batch_replan_wizard_views.xml', 'wizard/sf_programming_reason_views.xml', + 'wizard/sale_order_cancel_views.xml', 'views/mrp_views_menus.xml', 'views/agv_scheduling_views.xml', 'views/stock_lot_views.xml', diff --git a/sf_manufacturing/models/sale_order.py b/sf_manufacturing/models/sale_order.py index e31faf1c..1b94f07f 100644 --- a/sf_manufacturing/models/sale_order.py +++ b/sf_manufacturing/models/sale_order.py @@ -149,6 +149,23 @@ class SaleOrder(models.Model): product_bom_purchase.with_user(self.env.ref("base.user_admin")).bom_create_line_has( purchase_embryo) return super(SaleOrder, self).action_confirm() + + def action_show_cancel_wizard(self): + wizard = self.env['sf.sale.order.cancel.wizard'].create({ + 'order_id': self.id, + }) + + # 创建关联单据行 + self.env['sf.sale.order.cancel.line'].create_from_order(wizard.id, self) + + return { + 'name': '取消销售订单', + 'type': 'ir.actions.act_window', + 'res_model': 'sf.sale.order.cancel.wizard', + 'view_mode': 'form', + 'target': 'new', + 'res_id': wizard.id, + } class SaleOrderLine(models.Model): _inherit = 'sale.order.line' diff --git a/sf_manufacturing/security/ir.model.access.csv b/sf_manufacturing/security/ir.model.access.csv index e8c1882f..246cce63 100644 --- a/sf_manufacturing/security/ir.model.access.csv +++ b/sf_manufacturing/security/ir.model.access.csv @@ -192,3 +192,5 @@ access_sf_programming_reason,sf_programming_reason,model_sf_programming_reason,b access_sf_programming_record,sf_programming_record,model_sf_programming_record,base.group_user,1,1,1,0 access_sf_work_individuation_page,sf_work_individuation_page,model_sf_work_individuation_page,sf_base.group_sf_mrp_user,1,1,1,0 access_sf_work_individuation_page_group_plan_dispatch,sf_work_individuation_page_group_plan_dispatch,model_sf_work_individuation_page,sf_base.group_plan_dispatch,1,1,0,0 +access_sf_sale_order_cancel_wizard,sf_sale_order_cancel_wizard,model_sf_sale_order_cancel_wizard,sf_base.group_sf_order_user,1,1,1,0 +access_sf_sale_order_cancel_line,sf_sale_order_cancel_line,model_sf_sale_order_cancel_line,sf_base.group_sf_order_user,1,1,1,0 \ No newline at end of file diff --git a/sf_manufacturing/views/sale_order_views.xml b/sf_manufacturing/views/sale_order_views.xml index aa5bfaa0..e17c1546 100644 --- a/sf_manufacturing/views/sale_order_views.xml +++ b/sf_manufacturing/views/sale_order_views.xml @@ -27,10 +27,20 @@ {'invisible': [('state', 'not in', ['draft', 'supply method', 'sale', 'processing'])]} + 警告:取消操作将不可逆,是否确定要取消该单据? {'invisible': ['|','&',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel','supply method']),'&',('check_status', '=', 'approved'),('state', 'in', ['sale','cancel','supply method'])]} + + +