客户端脚本[产品表单]-模式视图

时间:2019-02-12 14:35:48

标签: suitescript2.0

当用户要填写的字段已经在其他产品中注册时,我想在屏幕上显示一条消息。 有谁能够帮助我?代码下方:

2 个答案:

答案 0 :(得分:1)

在我的朋友Emerson Minero的帮助下,我正在将代码与解决方案一起发布。我希望它对这里的朋友有用。谢谢!

/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 * @author Adriano Barbosa
 * @since 2019.2
 */
define(['N/log', 'N/record', 'N/search', 'N/ui/dialog'], function(log, record, search, dialog) {
    function pageInit(context) {
        if ( context.mode === 'copy' || context.mode === 'create' ) {
            var currentRecord = context.currentRecord;
        }
    }

    function saveRecord(context) {
        var ean, item_id, ean_existe, codigo_item_sap;
        var currentRecord = context.currentRecord;

        item_id = currentRecord.getValue({ fieldId: 'itemid' });
        ean = currentRecord.getValue({ fieldId: 'upccode' });
        // Valida o EAN na cópia/criação do item
        if (!ean) {
            dialog.alert({ title: 'Alerta: EAN não informado', message: 'Informe o EAN para prosseguir cadastro.' });
            log.debug({ title: '[Cópia/Criação do Item] ' + 'Alerta: EAN não informado', details: 'Informe o EAN para prosseguir cadastro.' });
            return false; 
        } else {
            search.create({ type: "item",
                filters: [
                    [ "upccode", "is", ean ]
                ],
                columns: [
                    search.createColumn({ name: "internalid", label: "ID interna" }),
                    search.createColumn({ name: "upccode", label: "Código UPC" })
                ]
            }).run().each(function (result) {
                item_id = result.id;
                ean_existe = result.getValue({ name: 'upccode' });
                codigo_item_sap = record.load({ type: 'inventoryitem', id: item_id, isDynamic: true })
                                        .getValue({ fieldId: 'itemid' });
                return false;
            });
        }
        // Valida o EAN na edição do Item
        if (currentRecord.id) {
            ean = currentRecord.getValue({ fieldId: 'upccode' });
            if (!ean) {
                dialog.alert({ title: 'Alerta: EAN não informado', message: 'Informe o EAN para prosseguir cadastro.' });
                log.debug({ title: '[Edição do Item] ' + 'Alerta: EAN não informado', details: 'Informe o EAN para prosseguir cadastro.' }); 
                return false;
            } else {
                search.create({ type: "item",
                    filters: [
                        [ "upccode", "is", ean ]
                    ],
                    columns: [
                        search.createColumn({ name: "internalid", label: "ID interna" }),
                        search.createColumn({ name: "upccode", label: "Código UPC" })
                    ]
                }).run().each(function (result) {
                    item_id = result.id;
                    ean_existe = result.getValue({ name: 'upccode' });
                    codigo_item_sap = record.load({ type: 'inventoryitem', id: item_id, isDynamic: true })
                                            .getValue({ fieldId: 'itemid' });
                    return false;
                });
            }
            // [Edição do Item] - Se encontrado o EAN na base, impede o salvamento.
            if ((item_id != currentRecord.id) && codigo_item_sap) {
                dialog.alert({ title: 'Alerta: EAN ' + ean_existe + ' já cadastrado!', 
                    message: 'O item: ' + '"' + codigo_item_sap + '"' + ' já possui este mesmo EAN' + '. Informe outro EAN para prosseguir cadastro.' 
                });
                log.debug({ title: '[Edição do Item] ' + 'Alerta: EAN ' + ean_existe + ' já cadastrado!', 
                    details: 'Verifique o código do item: ' + '"' + codigo_item_sap + '".' 
                });
                return false;
            } else {
                return true;
            }
        } else if (ean_existe) { // [Cópia/Criação do Item] - Se encontrado o EAN na base, impede o salvamento.
            dialog.alert({ title: 'Alerta: EAN ' + ean_existe + ' já cadastrado!', 
                message: 'O item: ' + '"' + codigo_item_sap + '"' + ' já possui este mesmo EAN' + '. Informe outro EAN para prosseguir cadastro.' 
            });
            log.debug({ title: '[Cópia/Criação do Item] ' + 'Alerta: EAN ' + ean_existe + ' já cadastrado!', 
                details: 'Verifique o código do item: ' + '"' + codigo_item_sap + '".' 
            });
            return false;
        } else {
            log.debug({ title: 'Item cadastrado!', 
                details: '"Código Item SAP:" ' + currentRecord.getValue({ fieldId: 'itemid' }) + ', "EAN:" ' + currentRecord.getValue({ fieldId: 'upccode' }) 
            });
            return true;
        }
    }  
    return { pageInit: pageInit, saveRecord: saveRecord }
});

答案 1 :(得分:0)

在您的saveRecord事件中输入以下代码:

if(!currentReocord.id){
  //put here all your logic for your validation
}

上面的行将帮助您确定用户是否正在创建记录。