Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增机台日计划,工件预调(前置三元检测),NC程序下载接口

This commit is contained in:
jinling.yang
2024-01-19 17:18:59 +08:00
22 changed files with 287 additions and 146 deletions

View File

@@ -7,6 +7,19 @@ from odoo.exceptions import UserError
class ReSaleOrder(models.Model):
_inherit = 'sale.order'
state = fields.Selection(
selection=[
('draft', "报价"),
('sent', "报价已发送"),
('sale', "销售订单"),
('done', "已锁定"),
('cancel', '已废弃'),
],
string="状态",
readonly=True, copy=False, index=True,
tracking=3,
default='draft')
deadline_of_delivery = fields.Date('订单交期', tracking=True)
person_of_delivery = fields.Char('交货人')
telephone_of_delivery = fields.Char('交货人电话号码')
@@ -37,7 +50,8 @@ class ReSaleOrder(models.Model):
'name': self.env['ir.sequence'].next_by_code('sale.order', sequence_date=now_time),
'partner_id': partner.id,
'check_status': 'approved',
'state': 'draft',
'state': 'sale',
'user_id': partner.user_id.id,
'person_of_delivery': delivery_name,
'telephone_of_delivery': delivery_telephone,
'address_of_delivery': delivery_address,
@@ -59,11 +73,12 @@ class ReSaleOrder(models.Model):
self.check_status = 'pending'
def get_customer(self):
customer = self.env['res.partner'].search([('name', '=', '业务平台')])
customer = self.env['res.partner'].search([('name', '=', '业务平台')], limit=1, order='id asc')
if customer:
return customer
else:
partner = self.env['res.partner'].create({'name': '业务平台'})
self.env['res.users'].create({'name': '业务平台', 'partner_id': partner.id})
return partner
# 业务平台分配工厂时在创建完产品后再创建销售明细信息
@@ -79,7 +94,7 @@ class ReSaleOrder(models.Model):
'product_uom_qty': item['number'],
'model_glb_file': base64.b64decode(item['model_file']),
}
return self.env['sale.order.line'].create(vals)
return self.env['sale.order.line'].with_context(skip_procurement=True).create(vals)
@api.constrains('order_line')
def check_order_line(self):
@@ -113,10 +128,22 @@ class RePurchaseOrder(models.Model):
check_status = fields.Selection([('pending', '待审核'), ('approved', '已审核'), ('fail', '不通过')], '审核状态')
remark = fields.Text('备注')
user_id = fields.Many2one(
'res.users', string='买家', index=True, tracking=True,
compute='_compute_user_id',
store=True)
def button_confirming(self):
self.write({'state': 'purchase', 'check_status': 'pending'})
@api.depends('partner_id')
def _compute_user_id(self):
if not self.user_id:
if self.partner_id:
self.user_id = self.partner_id.purchase_user_id.id
else:
self.user_id = self.env.user.id
@api.constrains('order_line')
def check_order_line(self):
for item in self:

View File

@@ -12,7 +12,7 @@ access_product_product_group_sale_salemanager,product_product_group_sale_saleman
access_product_product_group_sale_director,product_product_group_sale_director,product.model_product_product,sf_base.group_sale_director,1,1,1,0
access_product_product_group_purchase,product_product_group_purchase,product.model_product_product,sf_base.group_purchase,1,0,0,0
access_product_product_group_purchase_director,product_product_group_purchase_director,product.model_product_product,sf_base.group_purchase_director,1,1,1,0
access_product_template_group_sale_salemanager,product_product_group_sale_salemanager,product.model_product_template,sf_base.group_sale_salemanager,1,0,0,0
access_product_template_group_sale_salemanager,product_template_group_sale_salemanager,product.model_product_template,sf_base.group_sale_salemanager,1,0,0,0
access_product_template_group_sale_director,product_template_group_sale_director,product.model_product_template,sf_base.group_sale_director,1,1,1,0
access_product_template_group_purchase,product_template_group_purchase,product.model_product_template,sf_base.group_purchase,1,0,0,0
access_product_template_group_purchase_director,product_template_group_purchase_director,product.model_product_template,sf_base.group_purchase_director,1,1,1,0
@@ -20,8 +20,8 @@ access_product_template_group_plan_dispatch,product_template_group_plan_dispatch
access_product_template_group_plan_director,product_template_group_plan_director,product.model_product_template,sf_base.group_plan_director,1,1,1,0
access_stock_picking_group_sale_salemanager,stock_picking_group_sale_salemanager,stock.model_stock_picking,sf_base.group_sale_salemanager,1,0,0,0
access_stock_picking_group_sale_director,stock_picking_group_sale_director,stock.model_stock_picking,sf_base.group_sale_director,1,0,0,0
access_stock_picking_group_purchase,stock_picking_group_purchase,stock.model_stock_picking,sf_base.group_purchase,1,0,0,0
access_stock_picking_group_purchase_director,stock_picking_group_purchase_director,stock.model_stock_picking,sf_base.group_purchase_director,1,0,0,0
access_stock_picking_group_purchase,stock_picking_group_purchase,stock.model_stock_picking,sf_base.group_purchase,1,1,1,0
access_stock_picking_group_purchase_director,stock_picking_group_purchase_director,stock.model_stock_picking,sf_base.group_purchase_director,1,1,1,0
access_account_move_group_sale_salemanager,account_move_group_sale_salemanager,account.model_account_move,sf_base.group_sale_salemanager,1,0,0,0
access_account_move_group_sale_director,account_move_group_sale_director,account.model_account_move,sf_base.group_sale_director,1,0,0,0
access_resource_resource_group_sale_director,resource_resource_group_sale_director,resource.model_resource_resource,sf_base.group_sale_director,1,1,1,0
@@ -33,8 +33,8 @@ access_mrp_bom_group_quality,mrp_bom_group_quality,mrp.model_mrp_bom,sf_base.gro
access_mrp_bom_group_quality_director,mrp_bom_group_quality_director,mrp.model_mrp_bom,sf_base.group_quality_director,1,0,0,0
access_stock_move_group_sale_salemanager,stock_move_group_sale_salemanager,stock.model_stock_move,sf_base.group_sale_salemanager,1,0,0,0
access_stock_move_group_sale_director,stock_move_group_sale_director,stock.model_stock_move,sf_base.group_sale_director,1,0,0,0
access_stock_move_group_purchase,stock_move_group_purchase,stock.model_stock_move,sf_base.group_purchase,1,0,0,0
access_stock_move_group_purchase_director,stock_move_group_purchase_director,stock.model_stock_move,sf_base.group_purchase_director,1,0,0,0
access_stock_move_group_purchase,stock_move_group_purchase,stock.model_stock_move,sf_base.group_purchase,1,1,1,0
access_stock_move_group_purchase_director,stock_move_group_purchase_director,stock.model_stock_move,sf_base.group_purchase_director,1,1,1,0
access_stock_warehouse_orderpoint_group_sale_salemanager,stock_warehouse_orderpoint_group_sale_salemanager,stock.model_stock_warehouse_orderpoint,sf_base.group_sale_salemanager,1,0,0,0
access_stock_warehouse_orderpoint_group_sale_director,stock_warehouse_orderpoint_group_sale_director,stock.model_stock_warehouse_orderpoint,sf_base.group_sale_director,1,0,0,0
access_stock_warehouse_orderpoint_group_purchase,stock_warehouse_orderpoint_group_purchase,stock.model_stock_warehouse_orderpoint,sf_base.group_purchase,1,1,0,0
@@ -72,7 +72,7 @@ access_purchase_order_wizard_group_purchase_director,purchase_order_wizard_group
access_crm_tag_group_sale_salemanager,crm_tag_group_sale_salemanager,sales_team.model_crm_tag,sf_base.group_sale_salemanager,1,0,0,0
access_crm_tag_group_sale_director,crm_tag_group_sale_director,sales_team.model_crm_tag,sf_base.group_sale_director,1,1,1,0
access_sale_order,sale.order,sale.model_sale_order,sf_base.group_plan_dispatch,1,0,0,0
access_sale_order,sale.order,sale.model_sale_order,sf_base.group_plan_dispatch,1,1,0,0
access_res_partner_group_sale_salemanager,res_partner_group_sale_salemanager,base.model_res_partner,sf_base.group_sale_salemanager,1,0,1,0
access_res_partner_group_sale_director,res_partner_group_sale_director,base.model_res_partner,sf_base.group_sale_director,1,0,1,0
access_res_partner_group_purchase,res_partner_group_purchase,base.model_res_partner,sf_base.group_purchase,1,0,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
12 access_product_product_group_sale_director product_product_group_sale_director product.model_product_product sf_base.group_sale_director 1 1 1 0
13 access_product_product_group_purchase product_product_group_purchase product.model_product_product sf_base.group_purchase 1 0 0 0
14 access_product_product_group_purchase_director product_product_group_purchase_director product.model_product_product sf_base.group_purchase_director 1 1 1 0
15 access_product_template_group_sale_salemanager product_product_group_sale_salemanager product_template_group_sale_salemanager product.model_product_template sf_base.group_sale_salemanager 1 0 0 0
16 access_product_template_group_sale_director product_template_group_sale_director product.model_product_template sf_base.group_sale_director 1 1 1 0
17 access_product_template_group_purchase product_template_group_purchase product.model_product_template sf_base.group_purchase 1 0 0 0
18 access_product_template_group_purchase_director product_template_group_purchase_director product.model_product_template sf_base.group_purchase_director 1 1 1 0
20 access_product_template_group_plan_director product_template_group_plan_director product.model_product_template sf_base.group_plan_director 1 1 1 0
21 access_stock_picking_group_sale_salemanager stock_picking_group_sale_salemanager stock.model_stock_picking sf_base.group_sale_salemanager 1 0 0 0
22 access_stock_picking_group_sale_director stock_picking_group_sale_director stock.model_stock_picking sf_base.group_sale_director 1 0 0 0
23 access_stock_picking_group_purchase stock_picking_group_purchase stock.model_stock_picking sf_base.group_purchase 1 0 1 0 1 0
24 access_stock_picking_group_purchase_director stock_picking_group_purchase_director stock.model_stock_picking sf_base.group_purchase_director 1 0 1 0 1 0
25 access_account_move_group_sale_salemanager account_move_group_sale_salemanager account.model_account_move sf_base.group_sale_salemanager 1 0 0 0
26 access_account_move_group_sale_director account_move_group_sale_director account.model_account_move sf_base.group_sale_director 1 0 0 0
27 access_resource_resource_group_sale_director resource_resource_group_sale_director resource.model_resource_resource sf_base.group_sale_director 1 1 1 0
33 access_mrp_bom_group_quality_director mrp_bom_group_quality_director mrp.model_mrp_bom sf_base.group_quality_director 1 0 0 0
34 access_stock_move_group_sale_salemanager stock_move_group_sale_salemanager stock.model_stock_move sf_base.group_sale_salemanager 1 0 0 0
35 access_stock_move_group_sale_director stock_move_group_sale_director stock.model_stock_move sf_base.group_sale_director 1 0 0 0
36 access_stock_move_group_purchase stock_move_group_purchase stock.model_stock_move sf_base.group_purchase 1 0 1 0 1 0
37 access_stock_move_group_purchase_director stock_move_group_purchase_director stock.model_stock_move sf_base.group_purchase_director 1 0 1 0 1 0
38 access_stock_warehouse_orderpoint_group_sale_salemanager stock_warehouse_orderpoint_group_sale_salemanager stock.model_stock_warehouse_orderpoint sf_base.group_sale_salemanager 1 0 0 0
39 access_stock_warehouse_orderpoint_group_sale_director stock_warehouse_orderpoint_group_sale_director stock.model_stock_warehouse_orderpoint sf_base.group_sale_director 1 0 0 0
40 access_stock_warehouse_orderpoint_group_purchase stock_warehouse_orderpoint_group_purchase stock.model_stock_warehouse_orderpoint sf_base.group_purchase 1 1 0 0
72 access_crm_tag_group_sale_salemanager crm_tag_group_sale_salemanager sales_team.model_crm_tag sf_base.group_sale_salemanager 1 0 0 0
73 access_crm_tag_group_sale_director crm_tag_group_sale_director sales_team.model_crm_tag sf_base.group_sale_director 1 1 1 0
74 access_sale_order sale.order sale.model_sale_order sf_base.group_plan_dispatch 1 0 1 0 0
75 access_res_partner_group_sale_salemanager res_partner_group_sale_salemanager base.model_res_partner sf_base.group_sale_salemanager 1 0 1 0
76 access_res_partner_group_sale_director res_partner_group_sale_director base.model_res_partner sf_base.group_sale_director 1 0 1 0
77 access_res_partner_group_purchase res_partner_group_purchase base.model_res_partner sf_base.group_purchase 1 0 1 0
78 access_res_partner_group_purchase_director res_partner_group_purchase_director base.model_res_partner sf_base.group_purchase_director 1 0 1 0

View File

@@ -11,14 +11,14 @@
</field>
<field name="currency_id" position="after">
<field name="check_status" invisible="1"/>
<!-- <field name="state"/>-->
<!-- <field name="state"/>-->
<field name="remark" attrs="{'readonly': ['&amp;',('state', 'in', ['purchase']),('check_status','in',
['pending','approved'])]}"/>
</field>
<xpath expr="//form/header/button[@name='action_rfq_send'][1]" position="after">
<button name="sf_sale.action_purchase_order_check_wizard" string="审核" type="action"
context="{'default_order_id':active_id}" groups="sf_base.group_purchase_director"
attrs="{'invisible': ['&amp;',('check_status','in', ['approved',False]),('state', 'in', ['purchase'])]}"
attrs="{'invisible': ['&amp;',('check_status','in', ['approved',False,'fail']),('state', 'in', ['purchase'])]}"
class="oe_highlight"/>
</xpath>

View File

@@ -84,7 +84,7 @@
<xpath expr="//form/header/button[@name='action_confirm'][2]" position="replace">
<button name="action_confirm" data-hotkey="v"
string="确认" type="object" context="{'validate_analytic': True}"
attrs="{'invisible': ['|','&amp;',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&amp;',('check_status', '=', 'approved'),('state', 'in', ['sale','cancel'])]}"/>
attrs="{'invisible': ['|','&amp;',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&amp;','&amp;',('check_status', '=', 'approved'),('state', 'in', ['sale','cancel']),('schedule_status', 'not in', False)]}"/>
</xpath>
<xpath expr="//form/header/button[@name='action_cancel']" position="attributes">
<attribute name="attrs">{'invisible': ['|',('state', 'in', ['cancel']),('check_status', 'in',
@@ -237,6 +237,9 @@
<field name="model">product.template</field>
<field name="inherit_id" ref="sale.product_template_form_view"/>
<field name="arch" type="xml">
<form position="attributes">
<attribute name="delete">False</attribute>
</form>
<field name="categ_id" position="replace">
<field name='categ_id' invisible="1"/>
</field>