Клиентский скрипт [Форма продукта] - Режим просмотра - PullRequest
0 голосов
/ 12 февраля 2019

Я хотел отобразить сообщение на экране, когда поле, которое заполняет пользователь, уже зарегистрировано в другом продукте.Кто-нибудь может мне помочь?Ниже код:

Ответы [ 2 ]

0 голосов
/ 25 марта 2019

С помощью моего друга Эмерсона Минеро я выкладываю код с решением.Я надеюсь, что это может быть полезно для друзей здесь.Спасибо!

/**
 * @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 }
});
0 голосов
/ 13 февраля 2019

вставьте следующий код в событие saveRecord:

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

Приведенная выше строка поможет вам определить, создает ли пользователь запись.

...