You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Odoo v15/v16中实现发货单显示销售订单客户地址

在Odoo v15/v16发货单报表中显示销售订单客户地址的解决方案

问题核心

发货单(stock.report_delivery_document)默认将联系地址与送货地址显示为同一信息,且直接调用o.partner_id获取的是送货地址——因为库存调拨单(stock.picking)的partner_id字段默认绑定的是送货地址,而非销售订单上的客户地址。

解决方案

通过继承QWeb报表,直接关联销售订单的客户地址字段即可实现需求,具体步骤如下:

  1. 明确数据关联逻辑
    库存调拨单通过sale_id字段关联销售订单,销售订单的客户地址存储在sale_id.partner_id中,送货地址则是sale_id.partner_shipping_id。

  2. 修改报表代码
    继承stock.report_delivery_document模板,替换partner_header区域,调用销售订单的客户地址信息:

    <xpath expr="//div[@name='partner_header']" position="replace">
        <div class="pt-5" name="partner_header">
            <!-- 关联销售订单时显示客户地址 -->
            <t t-if="o.sale_id">
                <span t-esc="o.sale_id.partner_id.name"/><br/>
                <span t-esc="o.sale_id.partner_id.street"/><br/>
                <t t-if="o.sale_id.partner_id.street2"><span t-esc="o.sale_id.partner_id.street2"/><br/></t>
                <span t-esc="o.sale_id.partner_id.city"/> <span t-esc="o.sale_id.partner_id.state_id.name"/> <span t-esc="o.sale_id.partner_id.zip"/><br/>
                <span t-esc="o.sale_id.partner_id.country_id.name"/><br/>
                <t t-if="o.sale_id.partner_id.phone"><span>Phone: </span><span t-esc="o.sale_id.partner_id.phone"/><br/></t>
                <t t-if="o.sale_id.partner_id.email"><span>Email: </span><span t-esc="o.sale_id.partner_id.email"/></t>
            </t>
            <!-- 无关联销售订单时显示默认地址 -->
            <t t-else="">
                <span t-esc="o.partner_id.name"/><br/>
                <span t-esc="o.partner_id.street"/><br/>
                <t t-if="o.partner_id.street2"><span t-esc="o.partner_id.street2"/><br/></t>
                <span t-esc="o.partner_id.city"/> <span t-esc="o.partner_id.state_id.name"/> <span t-esc="o.partner_id.zip"/><br/>
                <span t-esc="o.partner_id.country_id.name"/><br/>
                <t t-if="o.partner_id.phone"><span>Phone: </span><span t-esc="o.partner_id.phone"/><br/></t>
                <t t-if="o.partner_id.email"><span>Email: </span><span t-esc="o.partner_id.email"/></t>
            </t>
        </div>
    </xpath>
    
  3. 模块依赖配置
    在自定义模块的__manifest__.py中声明依赖,确保能正常调用销售订单相关字段:

    'depends': ['stock', 'sale'],
    

内容的提问来源于stack exchange,提问作者Matija Amondi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 04:30:40