Ingorca
06/09/2021, 3:34 PM/**
* @NApiVersion 2.x
* @NScriptType UserEventScript
* @NModuleScope SameAccount
*/
define(['N/record', 'N/search','N/log', 'N/ui/serverWidget'],
function(record, search, log, serverWidget) {
function getInputData(bmId){
var bm = {
internalid: -1,
solditem: " ",
clientname: " ",
}
if(bmId > 0){
var transactionSearchObj = search.create({
type: "transaction",
filters:
[
["itemsubof","anyof","2054"],
"AND",
["status","anyof","ItemShip:C"]
],
columns:
[
search.createColumn({name: "internalid", label: "Internal ID"}),
search.createColumn({
name: "formulatext",
formula: "SUBSTR({item}, 13, 10)",
label: "Formula (Text)"
}),
search.createColumn({name: "entity", label: "Name"})
]
});
var searchResultCount = transactionSearchObj.runPaged().count; // Nombre total de résultats de toutes les pages
log.debug("transactionSearchObj result count",searchResultCount);
transactionSearchObj.run().each(function(result){
bm.internalid = result.getValue({name: 'internalid'});
bm.solditem = result.getValue({name: 'item'});
bm.clientname = result.getValue({name: 'entity'});
});
}
return bm;
}
function beforeLoad(scriptContext) {
var form = scriptContext.form;
//Création d'un nouveau champ pour stocker les types de boitiers vendu au client X
var field = form.addField({id : 'custpage_new_boitier_field', type : serverWidget.FieldType.SELECT, label : 'Type de boitier disponible dans le stock du client' });
field.defaultValue = '';
if(scriptContext.type == 'edit' || scriptContext.type == 'view'){
var cRecord = scriptContext.newRecord;
var bm = getInputData(cRecord.getValue({fieldId: 'id'}));
if(bm.internalid > 0){
field.defaultValue = bm.solditem;
}
}
}
function beforeSubmit(scriptContext) {
//Enregistrer les données liées à l'Equipement client existant en cas de modification
try{
var cRecord = scriptContext.newRecord;
var toSave = false;
var bm = getInputData(scriptContext.newRecord.id);
var currentCustomer = cRecord.getValue({fieldId: 'custrecord_cam_customername'});
//On ajoute les équipement recueillis dans le Saved search dans le champ précédemment créé
if(currentCustomer != ''){
for(var i = 0; i < bm.length; i++){
if(currentCustomer == bm.clientname[i]){
if(bm.solditem[i] != bm.solditem[i-1]){
field.insertSelectOption({
value: bm.solditem[i]
});
}
}
}
selectedBoitier = cRecord.getValue({fieldId:'custrecord_cam_serialized_number'});
}
//Si on supprime l'Equipement client, alors on supprime l'enregistrement associé
if(scriptContext.type == 'delete'){
var bm = getInputData(scriptContext.oldRecord.id);
if(bm.internalid > 0){
record.delete({
type: 'customrecord_cam_equipment_client',
id: bm.internalid,
});
}
}
//Vérifier et enregistrer les modifications de l'Equipement client
if((scriptContext.type == 'edit' || scriptContext.type == 'view') && bm.internalid > 0){
var bmFields = record.load({
type: 'customrecord_cam_equipment_client',
id: bm.internalid,
isDynamic: true,
});
var newType = cRecord.getValue({fieldId: 'custpage_new_boitier_field'});
if(newType != bm.type){
toSave = true;
bmFields.setValue({
fieldId: 'custrecord_yourco_bin_move_type',
value: newType
});
}
if(toSave == true){
bmFields.save();
}
}
}catch(e){
log.error({
title: "Erreur d'enregistrement des données liées à l'éauipement client",
details: e.message
});
}
}
function afterSubmit(scriptContext) {
//Données liées à la création d'un nouvel équipement client
try{
if(scriptContext.type == 'create'){
var cRecord = scriptContext.newRecord;
var bmFields = record.create({
type: 'customrecord_cam_equipment_client',
isDynamic: false
});
bmFields.setValue({
fieldId: 'custpage_new_boitier_field',
value: scriptContext.newRecord.id
});
bmFields.setValue({
fieldId: 'custpage_new_boitier_field',
value: cRecord.getValue({fieldId: 'internalid'})
});
bmFields.save();
}
}catch(e){
log.error({
title: "Erreur d'enregistrement des données liées à l'éauipement client",
details: e.message
});
}
}
return {
beforeLoad: beforeLoad,
beforeSubmit: beforeSubmit,
afterSubmit: afterSubmit
};
});
battk
06/09/2021, 5:01 PMbattk
06/09/2021, 5:01 PMbattk
06/09/2021, 5:02 PMIngorca
06/09/2021, 5:04 PMIngorca
06/09/2021, 5:04 PMbattk
06/09/2021, 5:17 PMbattk
06/09/2021, 5:17 PMbattk
06/09/2021, 5:17 PMbattk
06/09/2021, 5:18 PMbattk
06/09/2021, 5:18 PMbattk
06/09/2021, 5:19 PMbattk
06/09/2021, 5:20 PMbattk
06/09/2021, 5:23 PMbattk
06/09/2021, 5:24 PMIngorca
06/09/2021, 5:26 PMbattk
06/09/2021, 5:31 PMbattk
06/09/2021, 5:33 PMbattk
06/09/2021, 5:33 PMIngorca
06/09/2021, 5:35 PMbattk
06/09/2021, 5:36 PMbattk
06/09/2021, 5:36 PMbattk
06/09/2021, 5:37 PMIngorca
06/09/2021, 5:37 PMIngorca
06/09/2021, 5:39 PMbattk
06/09/2021, 5:40 PMThe form is of type item
battk
06/09/2021, 5:40 PMIngorca
06/09/2021, 5:47 PMIngorca
06/09/2021, 5:47 PMbattk
06/09/2021, 5:53 PMbattk
06/09/2021, 5:53 PMbattk
06/09/2021, 5:54 PMIngorca
06/09/2021, 5:55 PMbattk
06/09/2021, 8:59 PMbattk
06/09/2021, 9:02 PMbattk
06/09/2021, 9:05 PMbattk
06/09/2021, 9:22 PMIngorca
06/10/2021, 7:33 AMIngorca
06/10/2021, 7:38 AM