Shelby Owens
08/05/2025, 3:11 PMGeo
08/05/2025, 3:25 PMShelby Owens
08/05/2025, 3:31 PMconst beforeLoad = (context) => {
return logErrorIfNeeded("beforeLoad", function() {
var currentRecord = context.newRecord;
context.form.addButton({
id: 'custpage_quote_button',
label: 'Create Quote',
functionName: 'createQuoteForm'
});
context.form.clientScriptModulePath = "SuiteScripts/LX_CL_Quote_Line_Items.js";
});
};
return {beforeLoad}
And the code for file cabinet client script:
function createQuoteForm() {
return logErrorIfNeeded("pageInit", function () {
var currentRecObj = currentRecordMod.get();
var caseId = currentRecObj.id;
var caseRecord = record.load({
type: record.Type.SUPPORT_CASE,
id: caseId
});
var quoteRecord = record.create({
type: record.Type.ESTIMATE,
isDynamic: true
});
//set fields on quote
quoteRecord.setValue({
fieldId: 'entity',
value: caseRecord.getValue({fieldId: 'company'})
});
...
...
...
var sublistName = 'recmachcustrecord_na_case';
var itemLineCount = caseRecord.getLineCount({
sublistId: sublistName
});
log.debug("itemLineCount", itemLineCount);
for (var i = 0; i < itemLineCount; i++) {
//get item fields from case
var itemSKU = caseRecord.getSublistValue({
sublistId: sublistName,
fieldId: 'custrecord_na_item',
line: i
});
...
...
...
//add line
quoteRecord.selectNewLine({sublistId: 'item'});
//set line item fields
quoteRecord.setCurrentSublistValue({sublistId: "item", fieldId: "item", value: itemSKU, forceSyncSourcing: true});
...
...
...
//commit line
quoteRecord.commitLine({sublistId: 'item'});
}
var quoteId = quoteRecord.save();
var quoteUrl = url.resolveRecord({
recordType: 'estimate',
recordId: quoteId,
isEditMode: true
});
window.open(quoteUrl);
})
}
return {
pageInit: pageInit,
createQuoteForm: createQuoteForm
};
Geo
08/05/2025, 4:07 PMShelby Owens
08/05/2025, 4:08 PM