源代码版本:Odoo社区版V18
源代码位置:odoo\addons\sale\models\sale_order.py
sale_order.py这段代码是 Odoo 销售模块的核心,实现了从报价创建、确认、开票到支付的全流程管理,支持多公司、门户集成、财务对账和营销跟踪等功能。关键逻辑包括:
- 状态机管理:订单状态(
state)和发票状态(invoice_status)的自动更新。 - 金额与税收计算:结合价格表、税收规则和支付条款动态计算。
- 合作伙伴与地址管理:自动同步客户信息,支持多地址。
- 支付与发票集成:通过
payment.transaction和account.move实现闭环。
下面我们来分节讲解下sale_order.py中的重点代码。
一、代码结构与继承关系
模型定义
class SaleOrder(models.Model):
_name = 'sale.order'
_inherit = [
'portal.mixin', 'product.catalog.mixin', 'mail.thread',
'mail.activity.mixin', 'utm.mixin'
]
_description = "Sales Order"
_order = 'date_order desc, id desc'
_check_company_auto = True
- 继承关系(_inherit):
portal.mixin:支持门户访问功能(如客户查看订单)。mail.thread/mail.activity.mixin:支持消息线程和活动管理(如邮件通知、任务提醒)。product.catalog.mixin:集成产品目录功能(如从目录添加产品到订单)。utm.mixin:支持 UTM 跟踪(营销渠道分析)。

最低0.47元/天 解锁文章
5539

被折叠的 条评论
为什么被折叠?



