有没有办法在 Netsuite 高级 PDF 装箱单(freemarker)上显示延期交货的商品?

Is there a way of displaying backordered items on a Netsuite advanced PDF Packing Slip (freemarker)?

基本上我们有一个用于装箱单的 freemarker 表格(netsuite 称之为 Advanced PDF)。它显示已发货的物品、订购数量、发货数量和延期交货数量 - 很简单。 请记住,它需要尊重以前的发货,所以它不会显示已经完成的项目。 问题是,在排除之前发货的过程中,它排除了尚未发货的延期交货商品,我们希望这些商品显示为 X 已订购,0 已发货,X 延期交货。

看看下面的部分 - 到目前为止,我已经尝试为 when quantitybackorder+quantitycommitted gt 0 添加 #elseif,但这实际上是按照订单上的行数重复履行中的每一行,这很奇怪(即订购了 8 行,完成了 2 行 - 这 2 行将重复 8 次,每组数据在其自己的行上)

<#if record.item?has_content>
            <table class="itemtable"><!-- start items -->
            <#list record.item as item>
                <#if item_index==0>
                    <thead>
                        <tr>
                            <th colspan="5" style="align: left;"><span style="font-size:12px;">Item Number</span></th>
                            <th colspan="12" style="align: left;"><span style="font-size:12px;">Item Description</span></th>
                            <th colspan="3"><span style="font-size:12px;">Ordered</span></th>
                            <th colspan="3"><span style="font-size:12px;">Backorder</span></th>
                            <th colspan="3"><span style="font-size:12px;">Shipped</span></th>
                            <th colspan="2"><span style="font-size:12px;">Unit</span></th>
                        </tr>
                    </thead>
                </#if>
                <#list salesorder.item as tranline>
                    <#if tranline.custcol_item_code==item.item>
                            <tr>
                                <td colspan="5"><p style="text-align: left;">${item.item}</p></td>
                                <td colspan="12"><p style="text-align: left;"><span style="font-weight: bold; line-height: 18px;">${item.description}</span><br /><em>${tranline.custcol_extra_details}</em></p></td>
                                <td colspan="3" style="align: center;">${tranline.quantity}</td>
                                <td colspan="3" style="align: center;">${tranline.quantitybackordered+tranline.quantitycommitted}</td>
                                <td colspan="3" style="align: center;">${item.quantity}</td>
                                <td colspan="2" style="align: center;">${tranline.units}</td>
                            </tr>
                    </#if>
                </#list>
            </#list>
    <!-- end items --></table>
</#if>

有谁知道我如何在此处允许延期交货的商品,或者从另一个角度来看,只排除已履行的商品而留下当前履行和延期交货? 非常感谢您的帮助!

我认为这是一个无法解决的问题,您提供的解决方案可以解决它。我实际上已经放弃了,因为出于某种原因,这对列表使所有行都加倍了。我最终得到的是:

<#list salesorder.item as tranline>
    <#list record.item as item>
        <#if tranline.custcol_item_code==item.custcol_item_code><#assign shippednow=item.quantity ><#else><#assign shippednow=0 ></#if>
    </#list>
    <tr>
        <td colspan="5"><p style="text-align: left;">${tranline.custcol_item_code}</p></td>
        <td colspan="12"><p style="text-align: left;"><span style="font-weight: bold; line-height: 18px;">${tranline.description}</span><br /><em>${tranline.custcol_extra_details}</em></p></td>
        <td colspan="3" style="align: center;"><#if tranline.quantity gt 0>${tranline.quantity}<#else>0</#if></td>
        <td colspan="3" style="align: center;">${tranline.quantitybackordered+tranline.quantitycommitted}</td>
        <td colspan="3" style="align: center;">${shippednow}</td>
        <td colspan="2" style="align: center;">${tranline.units}</td>
    </tr>
</#list>

除了我之前的回答之外,更好的方法是在开始之前将 shippednow 定义为 0,然后绘制数据而不给它选项为零。这避免了在第一行出现索引问题。

        <#list salesorder.item as tranline><#assign shippednow=0 >
          <#list record.item as item><#if item.orderline==tranline.line><#assign shippednow=item.quantity ></#if></#list><#assign prevship=tranline.quantityfulfilled-shippednow>
            <#if tranline.quantity==(prevship!0)><#else>
                    <tr>
                        <td colspan="5"><p style="text-align: left;">${tranline.custcol_item_code}</p></td>
                        <td colspan="12"><p style="text-align: left;"><span style="font-weight: bold; line-height: 18px;">${tranline.description}</span><br /><em>${tranline.custcol_extra_details}</em></p></td>
                        <td colspan="3" style="align: center;"><#if tranline.quantity gt 0>${tranline.quantity}<#else>0</#if></td>
                        <td colspan="3" style="align: center;">${(tranline.quantitybackordered+tranline.quantitycommitted)?string.number}</td>
                        <td colspan="3" style="align: center;">${shippednow!"0"}</td>
                        <td colspan="2" style="align: center;">${tranline.units}</td>
                      </tr></#if>
        </#list>