我可以退回数量超过最低库存的警报吗?

时间:2014-07-23 06:12:23

标签: netsuite

有人可以帮助我使用以下代码。我有来自custitem10的值的问题这是项目上存储的整数,但是我的公式似乎没有提取数字。我已经通过输入随机数来测试这个,代码似乎工作得很好,有什么建议吗?

function fieldChanged(type, name)
{
    if (name == 'quantity')
    {

        if (nlapiGetCurrentLineItemValue('item','quantity') >= nlapiGetCurrentLineItemValue('item','custitem10'))
        {
            alert("Order is above the minimum stock held. Please contact purchasing once you have completed the invoice.");
            return true;
        }
    }

    if (name == 'custbody533')
    {
        if (lodalert == "T")
        {
        alert("Letter of demand has been sent to this customer\n\nCustomer must pay for goods upfront!");
        }
    }
    return true;
}

4 个答案:

答案 0 :(得分:0)

您应该在商品记录中获得'custitem'值。使用nlapiLookupField API检索记录的字段值。

if (name == 'quantity')
{
        var itemId = nlapiGetCurrentLineItemValue('item','itemId');
        var itemCustomVal = nlapiLookupField('item', itemId, 'custitem10');

    if (nlapiGetCurrentLineItemValue('item','quantity') >= itemCustomVal)
    {
        alert("Order is above the minimum stock held. Please contact purchasing once you have completed the invoice.");
        return true;
    }
}

答案 1 :(得分:0)

而不是为每个订单项使用nlapiLookupField。我建议你在SO上创建一个自定义列字段来源项目自定义字段。

nlapiLookupField消耗使用量,因此如果您的SO包含大量订单项,则可能会遇到客户端脚本的使用限制。

答案 2 :(得分:0)

在比较之前执行parseInt或paraeFloat。你在那里比较2个字符串...

使用最低库存的电子邮件提醒进行预定报告也不会更好吗?

答案 3 :(得分:0)

感谢所有帮助提出了下面的代码似乎正在起作用。它有点像你所有答案的frankenstein,我确信有一个更好的方法来编码,但我肯定不是开发人员,这对我有用。再次感谢您的帮助!

function fieldChanged(type, name)
{   
    var lodalert = nlapiGetFieldValue('custbody533');
    var paymentby = nlapiGetFieldText('custbody14');



    if (name == 'quantity')
    {   
                var itemId = nlapiGetCurrentLineItemValue('item', 'item');
                var itemMinStock = nlapiLookupField("item", itemId, "custitem10");
                var itemq = parseInt(nlapiGetCurrentLineItemValue('item', 'quantity'));
                if (itemq < 1)
        {
            alert("Quantity is less than 1. You might want to use the 'Broken Price' Price level");
            return true;
        }
        if (itemq >= itemMinStock)
        {
            alert("Order is above the minimum stock held. Please contact purchasing once you have completed the invoice.");
            return true;
        }
    }

    if (name == 'custbody533')
    {
        if (lodalert == "T")
        {
        alert("Letter of demand has been sent to this customer\n\nCustomer must pay for goods upfront!");
        }
    }
    return true;
}