2016-03-04 82 views
0

使用Pick,Pack和Ship以及高级PDF HTML模板,NetSuite不能显示剩余的数量。所以如果我们做一个部分选择,我们不能显示仓库剩余的余额。数学很简单,这里是我希望看到的脚本和功能(基于论坛反馈)。这是否可行,以及部署此脚本的最佳方式是如何将结果存储在自定义列中,直到发生另一次选择?该值将在更改时计算,但可用于所有相关交易记录。suitescript设置自定义列值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); 
    } 
} 

回答

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> 

另一种方法是在提交事件之前将脚本放入用户事件脚本中。你会部署它在物品履行

+0

感谢您的提示。会给它一个镜头,让你知道。 – DLindy

+0

我希望你上面概述的方法可以完成这项工作。它看起来像是假定履行事件已经发生。实际上有三种可能的情况:1.订单没有得到满足,因此没有在tranline,只有信息的顺序,2.充分履行,其中有一条tranline,并且还有0要履行。 3.部分履行的地方,既有一条生产线,又有信息来源于订单。你会如何处理这个问题?我们已经对这个脚本进行了探索,结果好坏参半,希望你的方法能够完成。 – DLindy

+0

其实上面的代码是用于装箱单的。如果您打印的是选票,您将只有销售订单行,并且它们将以'<#list record.item as item>'的形式存在,并且您将与装箱单代码大致相同,但忽略了其中的部分你尝试调整项目实现的内容。 – bknights

相关问题