suitescript set custom column value netsuite

大兔子大兔子 提交于 2019-12-12 03:34:52

问题


Using Pick, Pack and Ship and advanced PDF HTML templates, NetSuite cannot display the qty remaining to pick. So if we do a partial pick, we cannot show the warehouse the remaining balance. The math is simple, here is the script and function I would like to see (based on forum feedback). Will this work and what is the best way to deploy this script such that the result is stored in the custom column until another pick takes place? The value is to be calculated at time of changes, but available to all related transaction records.

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:


Actually one of the really fun things about the Advanced HTML/PDF templates is that you don't need your code. When print the packing slip the template supplies the item fulfillment (as record) and the sales order (as salesorder).

You can get the value you need from the Sales Order's Item Line's quantityfulfilled value.

the following snippet was from a customized packing slip where the customer wanted the PS to always show all the Sales Order's items. It doesn't directly solve your problem but you can see that the template itself can be used to calculate the items remaining to ship at the time of printing.

<#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>

The other way to do this would be to put your script into a user event script before submit event. You'd deploy it on Item Fulfillments



来源:https://stackoverflow.com/questions/35801629/suitescript-set-custom-column-value-netsuite

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!