suitescript设置自定义列值netsuite

时间:2016-03-04 16:51:45

标签: netsuite suitescript

使用Pick,Pack and Ship和高级PDF HTML模板,NetSuite无法显示剩余的数量。因此,如果我们进行部分选择,我们无法向仓库显示剩余余额。数学很简单,这是我想看的脚本和函数(基于论坛反馈)。这是否有效以及部署此脚本的最佳方式是什么,以便将结果存储在自定义列中,直到另一个选择发生?该值将在更改时计算,但可用于所有相关的交易记录。

function SetQtytoPick(type){
  if(type == 'item'){
    var qtyordered = nlapiGetCurrentLineItemValue('item', 'quantity');
    var qtypicked = nlapiGetCurrentLineItemValue('item', 'quantitypicked');
    var qtytopick = qtyordered-qtypicked
    nlapiSetCurrentLineItemValue('item', 'custcol_qty_to_pick', qtytopick);
  }
}

1 个答案:

答案 0 :(得分:2)

实际上,高级HTML / PDF模板真正有趣的一点是你不需要你的代码。打印装箱单时,模板提供物料履行(作为记录)和销售订单(作为销售订单)。

您可以从“销售订单”项目行的数量填充值中获取所需的值。

以下代码段来自定制的装箱单,客户希望PS始终显示所有销售订单的项目。它不能直接解决您的问题,但您可以看到模板本身可用于计算打印时剩余的物品。

<#list salesorder.item as tranline>
    <#assign shipped=0>
    <#assign prevShipped=tranline.quantityfulfilled>
    <#assign qtyRemaining=tranline.quantity - prevShipped>
    <#if (tranline.quantitybackordered gt 0)> <#assign qtyRemaining=tranline.quantitybackordered></#if>
    <#list record.item as item><#if tranline.line==item.orderline>
        <#assign shipped=item.quantity>
        <#assign prevShipped=tranline.quantityfulfilled-item.quantity>
    </#if></#list>
    <tr>
    <td colspan="12"><span class="itemname">${tranline.item}</span><#if tranline.itemtype =='NonInvtPart'>**<#assign anyNonInvt='T'></#if><br />${tranline.description?html}</td>
    <td align="center" colspan="3"><#if shipped gt 0><b>${shipped}</b><#else>0</#if></td>
    <td align="center" colspan="3">${tranline.quantity}</td>
    <td align="center" colspan="3">${prevShipped}</td>
    <td align="center" colspan="3">${qtyRemaining}</td>
    <td colspan="4">${tranline.options?html}</td>

    </tr>
    </#list>
</#if>

执行此操作的另一种方法是在提交事件之前将脚本放入用户事件脚本中。您可以在项目履行

上部署它