From aaf3b20e65572d7d54573e8e9e68c3d439f5acff Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Tue, 24 Dec 2024 17:27:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=A2=E4=BB=B7=E5=8D=95=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=8E=92=E7=89=88=E5=8F=8A=E5=A2=9E=E5=8A=A0=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jikimo_purchase_tier_validation/__init__.py | 4 ++ .../__manifest__.py | 35 +++++++++++ .../controllers/__init__.py | 3 + .../controllers/controllers.py | 21 +++++++ jikimo_purchase_tier_validation/demo/demo.xml | 30 ++++++++++ .../models/__init__.py | 3 + .../models/models.py | 19 ++++++ .../security/ir.model.access.csv | 2 + .../views/templates.xml | 24 ++++++++ .../views/views.xml | 60 +++++++++++++++++++ sf_sale/models/sale_order.py | 5 ++ sf_sale/views/purchase_order_view.xml | 59 +++++++++++++++--- 12 files changed, 258 insertions(+), 7 deletions(-) create mode 100644 jikimo_purchase_tier_validation/__init__.py create mode 100644 jikimo_purchase_tier_validation/__manifest__.py create mode 100644 jikimo_purchase_tier_validation/controllers/__init__.py create mode 100644 jikimo_purchase_tier_validation/controllers/controllers.py create mode 100644 jikimo_purchase_tier_validation/demo/demo.xml create mode 100644 jikimo_purchase_tier_validation/models/__init__.py create mode 100644 jikimo_purchase_tier_validation/models/models.py create mode 100644 jikimo_purchase_tier_validation/security/ir.model.access.csv create mode 100644 jikimo_purchase_tier_validation/views/templates.xml create mode 100644 jikimo_purchase_tier_validation/views/views.xml diff --git a/jikimo_purchase_tier_validation/__init__.py b/jikimo_purchase_tier_validation/__init__.py new file mode 100644 index 00000000..511a0ca3 --- /dev/null +++ b/jikimo_purchase_tier_validation/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +from . import controllers +from . import models \ No newline at end of file diff --git a/jikimo_purchase_tier_validation/__manifest__.py b/jikimo_purchase_tier_validation/__manifest__.py new file mode 100644 index 00000000..99945b9e --- /dev/null +++ b/jikimo_purchase_tier_validation/__manifest__.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +{ + 'name': "机企猫 采购审批流程", + + 'summary': """ + Short (1 phrase/line) summary of the module's purpose, used as + subtitle on modules listing or apps.openerp.com""", + + 'description': """ + Long description of module's purpose + """, + + 'author': "My Company", + 'website': "https://www.yourcompany.com", + + # Categories can be used to filter modules in modules listing + # Check https://github.com/odoo/odoo/blob/16.0/odoo/addons/base/data/ir_module_category_data.xml + # for the full list + 'category': 'Uncategorized', + 'version': '0.1', + + # any module necessary for this one to work correctly + 'depends': ['purchase', 'base_tier_validation'], + + # always loaded + 'data': [ + # 'security/ir.model.access.csv', + 'views/views.xml', + 'views/templates.xml', + ], + # only loaded in demonstration mode + 'demo': [ + 'demo/demo.xml', + ], +} diff --git a/jikimo_purchase_tier_validation/controllers/__init__.py b/jikimo_purchase_tier_validation/controllers/__init__.py new file mode 100644 index 00000000..457bae27 --- /dev/null +++ b/jikimo_purchase_tier_validation/controllers/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import controllers \ No newline at end of file diff --git a/jikimo_purchase_tier_validation/controllers/controllers.py b/jikimo_purchase_tier_validation/controllers/controllers.py new file mode 100644 index 00000000..6bbe5e40 --- /dev/null +++ b/jikimo_purchase_tier_validation/controllers/controllers.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# from odoo import http + + +# class JikimoPurchaseTierValidation(http.Controller): +# @http.route('/jikimo_purchase_tier_validation/jikimo_purchase_tier_validation', auth='public') +# def index(self, **kw): +# return "Hello, world" + +# @http.route('/jikimo_purchase_tier_validation/jikimo_purchase_tier_validation/objects', auth='public') +# def list(self, **kw): +# return http.request.render('jikimo_purchase_tier_validation.listing', { +# 'root': '/jikimo_purchase_tier_validation/jikimo_purchase_tier_validation', +# 'objects': http.request.env['jikimo_purchase_tier_validation.jikimo_purchase_tier_validation'].search([]), +# }) + +# @http.route('/jikimo_purchase_tier_validation/jikimo_purchase_tier_validation/objects/', auth='public') +# def object(self, obj, **kw): +# return http.request.render('jikimo_purchase_tier_validation.object', { +# 'object': obj +# }) diff --git a/jikimo_purchase_tier_validation/demo/demo.xml b/jikimo_purchase_tier_validation/demo/demo.xml new file mode 100644 index 00000000..cbba42ce --- /dev/null +++ b/jikimo_purchase_tier_validation/demo/demo.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/jikimo_purchase_tier_validation/models/__init__.py b/jikimo_purchase_tier_validation/models/__init__.py new file mode 100644 index 00000000..5305644d --- /dev/null +++ b/jikimo_purchase_tier_validation/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models \ No newline at end of file diff --git a/jikimo_purchase_tier_validation/models/models.py b/jikimo_purchase_tier_validation/models/models.py new file mode 100644 index 00000000..bb61cd5b --- /dev/null +++ b/jikimo_purchase_tier_validation/models/models.py @@ -0,0 +1,19 @@ +from odoo import models, fields, api, _ +from odoo.exceptions import ValidationError + +class jikimo_purchase_tier_validation(models.Model): + _name = 'purchase.order' + _inherit = ['purchase.order', 'tier.validation'] + + def request_validation(self): + for record in self: + missing_fields = [] + if not record.partner_ref: + missing_fields.append('合同名称') + if not record.contract_number: + missing_fields.append('合同编号') + + if missing_fields: + raise ValidationError(_('如下字段要求必须填写:%s') % '、'.join(missing_fields)) + + return super(jikimo_purchase_tier_validation, self).request_validation() diff --git a/jikimo_purchase_tier_validation/security/ir.model.access.csv b/jikimo_purchase_tier_validation/security/ir.model.access.csv new file mode 100644 index 00000000..ccd753fc --- /dev/null +++ b/jikimo_purchase_tier_validation/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_jikimo_purchase_tier_validation_jikimo_purchase_tier_validation,jikimo_purchase_tier_validation.jikimo_purchase_tier_validation,model_jikimo_purchase_tier_validation_jikimo_purchase_tier_validation,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/jikimo_purchase_tier_validation/views/templates.xml b/jikimo_purchase_tier_validation/views/templates.xml new file mode 100644 index 00000000..cea6b39a --- /dev/null +++ b/jikimo_purchase_tier_validation/views/templates.xml @@ -0,0 +1,24 @@ + + + + + \ No newline at end of file diff --git a/jikimo_purchase_tier_validation/views/views.xml b/jikimo_purchase_tier_validation/views/views.xml new file mode 100644 index 00000000..5c87a811 --- /dev/null +++ b/jikimo_purchase_tier_validation/views/views.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index 2958ce00..8717fe13 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -287,6 +287,11 @@ class RePurchaseOrder(models.Model): origin_sale_id = fields.Many2one('sale.order', string='销售订单号', compute='_compute_origin_sale_id') + # 合同编号 + contract_number = fields.Char(string='合同编号', size=20) + # 合同概况 + contract_summary = fields.Text(string='合同概况') + @api.depends('origin') def _compute_purchase_type(self): for purchase in self: diff --git a/sf_sale/views/purchase_order_view.xml b/sf_sale/views/purchase_order_view.xml index be35d8a2..bce50f1f 100644 --- a/sf_sale/views/purchase_order_view.xml +++ b/sf_sale/views/purchase_order_view.xml @@ -36,7 +36,7 @@ - +