UNPKG

netsuite-mockups

Version:
383 lines (373 loc) 12.8 kB
const _ = require('lodash'); /** * Return a Netsuite Search Module * * @classDescription Search object * @constructor * @returns {N/Module} */ /** * Return NetSuite ResultSet type. * @returns {object} resultset */ function ResultSet() { const _columns = this.columns; const times = this.type === 'customrecord_mycs_script_settings' ? 1 : Math.floor(Math.random() * 99) + 1; const mockupData = _.map(_.times(times), (item) => ({ id: item + 1, type: this.type, columns: _columns.map(function (columnName) { return { name: columnName }; }), getValue(column) { const hardcodedValues = { custrecord_mycs_ship_meth_is_assembly: false, custrecord_mycs_ship_meth_sel_method: 10, custrecord_mycs_ship_meth_config_coll_wg: random(1, 30), custrecord_mycs_ship_meth_max_colli_l: random(1, 30), custrecord_mycs_ship_meth_max_colli_w: random(1, 30), custrecord_mycs_ship_meth_max_colli_h: random(1, 30), custrecord_mycs_ship_meth_max_order_val: random(1, 30), custrecord_mycs_ship_meth_max_order_wgh: random(1, 30), custrecord_mycs_ship_meth_max_colli_cnt: random(1, 30), custrecord_mycs_url: '' }; const _data = _.reduce( _columns, (result, columnName) => { let columnNameText = columnName.name || columnName; result[columnNameText] = hardcodedValues.hasOwnProperty(columnNameText) ? hardcodedValues[columnNameText] : `${columnNameText}_${ item + 1 }`; result.internalid = random(1, 9000); return result; }, {} ); if (typeof column === 'string') { return _data[column]; } else if (typeof column === 'object') { const _column = createColumn(column); return _data[_column]; } return ''; }, getText(column) { const _data = _.reduce( _columns, (result, columnName) => { result[columnName] = `columnName_${ item + 1 }`; result.internalid = random(1, 9000); return result; }, {} ); if (typeof column === 'string') { return _data[column]; } else if (typeof column === 'object') { const _column = createColumn(column); return _data[_column]; } return ''; }, })); const each = callback => _.each(mockupData, (item, index) => callback.call(null, item, index)); const getRange = options => { const _options = {}; _options.start = options.start || 0; _options.end = options.end || 0; return mockupData.slice(_options.start, _options.end); }; return { each, getRange, }; } /** * NetSuite new column * @param {*} options * @returns {string} */ function createColumn(options) { return `${ options.name }${ options.join ? '__' + options.join : '' }`; } /** * NetSuite new filter * @param {*} options * @returns {string} */ function createFilter(options) { // eslint-disable-line no-unused-vars return `${ options.name }${ options.join ? '__' + options.join : '' }`; } /** * NetSuite - constructor of search module. * @param {*} options_ * @returns {*} */ function create(options_) { const _id = Math.ceil(Math.random() * 100); const _options = {}; var options = options_ || {}; _options.type = options.type; if (!_options.type) { throw new { message: 'SSS_MISSING_REQD_ARGUMENT: type' }(); } _options.filters = options.filters; _options.filterExpression = options.filterExpression; _options.columns = options.columns; _options.title = options.title; _options.id = options.id; _options.isPublic = options.isPublic; const save = () => _id; const run = () => ResultSet.apply(_options); return { save, run, type: _options.type, filters: _options.filters, filterExpression: _options.filterExpression, columns: _options.columns, title: _options.title, id: _options.id, isPublic: _options.isPublic, }; } module.exports = { create: options => create(options), createColumn: options => createColumn(options), lookupFields: options => { const result = {}; options.columns.map((item, index) => { result[item] = [ { value: index, text: item } ]; }); return result; }, Type: { ACCOUNT: 'account', ACCOUNTING_BOOK: 'accountingbook', ACCOUNTING_CONTEXT: 'accountingcontext', ACCOUNTING_PERIOD: 'accountingperiod', ADV_INTER_COMPANY_JOURNAL_ENTRY: 'advintercompanyjournalentry', ALLOCATION_SCHEDULE: 'allocationschedule', AMORTIZATION_SCHEDULE: 'amortizationschedule', AMORTIZATION_TEMPLATE: 'amortizationtemplate', ASSEMBLY_BUILD: 'assemblybuild', ASSEMBLY_ITEM: 'assemblyitem', ASSEMBLY_UNBUILD: 'assemblyunbuild', BILLING_ACCOUNT: 'billingaccount', BILLING_CLASS: 'billingclass', BILLING_RATE_CARD: 'billingratecard', BILLING_REVENUE_EVENT: 'billingrevenueevent', BILLING_SCHEDULE: 'billingschedule', BIN: 'bin', BIN_TRANSFER: 'bintransfer', BIN_WORKSHEET: 'binworksheet', BLANKET_PURCHASE_ORDER: 'blanketpurchaseorder', BOM: 'bom', BOM_REVISION: 'bomrevision', BULK_OWNERSHIP_TRANSFER: 'bulkownershiptransfer', BUNDLE_INSTALLATION_SCRIPT: 'bundleinstallationscript', CALENDAR_EVENT: 'calendarevent', CAMPAIGN: 'campaign', CAMPAIGN_RESPONSE: 'campaignresponse', CAMPAIGN_TEMPLATE: 'campaigntemplate', CASH_REFUND: 'cashrefund', CASH_SALE: 'cashsale', CHARGE: 'charge', CHARGE_RULE: 'chargerule', CHECK: 'check', CLASSIFICATION: 'classification', CLIENT_SCRIPT: 'clientscript', CMS_CONTENT: 'cmscontent', CMS_CONTENT_TYPE: 'cmscontenttype', COMMERCE_CATEGORY: 'commercecategory', COMPETITOR: 'competitor', CONSOLIDATED_EXCHANGE_RATE: 'consolidatedexchangerate', CONTACT: 'contact', CONTACT_CATEGORY: 'contactcategory', CONTACT_ROLE: 'contactrole', COST_CATEGORY: 'costcategory', COUPON_CODE: 'couponcode', CREDIT_CARD_CHARGE: 'creditcardcharge', CREDIT_CARD_REFUND: 'creditcardrefund', CREDIT_MEMO: 'creditmemo', CURRENCY: 'currency', CUSTOMER: 'customer', CUSTOMER_CATEGORY: 'customercategory', CUSTOMER_DEPOSIT: 'customerdeposit', CUSTOMER_MESSAGE: 'customermessage', CUSTOMER_PAYMENT: 'customerpayment', CUSTOMER_PAYMENT_AUTHORIZATION: 'customerpaymentauthorization', CUSTOMER_REFUND: 'customerrefund', CUSTOMER_STATUS: 'customerstatus', CUSTOM_RECORD: 'customrecord', CUSTOM_TRANSACTION: 'customtransaction', DEPARTMENT: 'department', DEPOSIT: 'deposit', DEPOSIT_APPLICATION: 'depositapplication', DESCRIPTION_ITEM: 'descriptionitem', DISCOUNT_ITEM: 'discountitem', DOWNLOAD_ITEM: 'downloaditem', EMAIL_TEMPLATE: 'emailtemplate', EMPLOYEE: 'employee', ENTITY_ACCOUNT_MAPPING: 'entityaccountmapping', ESTIMATE: 'estimate', EXPENSE_CATEGORY: 'expensecategory', EXPENSE_REPORT: 'expensereport', FAIR_VALUE_PRICE: 'fairvalueprice', FIXED_AMOUNT_PROJECT_REVENUE_RULE: 'fixedamountprojectrevenuerule', FOLDER: 'folder', FULFILLMENT_REQUEST: 'fulfillmentrequest', GENERIC_RESOURCE: 'genericresource', GIFT_CERTIFICATE: 'giftcertificate', GIFT_CERTIFICATE_ITEM: 'giftcertificateitem', GLOBAL_ACCOUNT_MAPPING: 'globalaccountmapping', INBOUND_SHIPMENT: 'inboundshipment', INTERCOMP_ALLOCATION_SCHEDULE: 'intercompallocationschedule', INTER_COMPANY_JOURNAL_ENTRY: 'intercompanyjournalentry', INTER_COMPANY_TRANSFER_ORDER: 'intercompanytransferorder', INVENTORY_ADJUSTMENT: 'inventoryadjustment', INVENTORY_COST_REVALUATION: 'inventorycostrevaluation', INVENTORY_COUNT: 'inventorycount', INVENTORY_DETAIL: 'inventorydetail', INVENTORY_ITEM: 'inventoryitem', INVENTORY_NUMBER: 'inventorynumber', INVENTORY_STATUS: 'inventorystatus', INVENTORY_STATUS_CHANGE: 'inventorystatuschange', INVENTORY_TRANSFER: 'inventorytransfer', INVOICE: 'invoice', ISSUE: 'issue', ITEM_ACCOUNT_MAPPING: 'itemaccountmapping', ITEM_DEMAND_PLAN: 'itemdemandplan', ITEM_FULFILLMENT: 'itemfulfillment', ITEM_GROUP: 'itemgroup', ITEM_LOCATION_CONFIGURATION: 'itemlocationconfiguration', ITEM_RECEIPT: 'itemreceipt', ITEM_REVISION: 'itemrevision', ITEM_SUPPLY_PLAN: 'itemsupplyplan', JOB: 'job', JOB_STATUS: 'jobstatus', JOB_TYPE: 'jobtype', JOURNAL_ENTRY: 'journalentry', KIT_ITEM: 'kititem', LABOR_BASED_PROJECT_REVENUE_RULE: 'laborbasedprojectrevenuerule', LEAD: 'lead', LOCATION: 'location', LOT_NUMBERED_ASSEMBLY_ITEM: 'lotnumberedassemblyitem', LOT_NUMBERED_INVENTORY_ITEM: 'lotnumberedinventoryitem', MANUFACTURING_COST_TEMPLATE: 'manufacturingcosttemplate', MANUFACTURING_OPERATION_TASK: 'manufacturingoperationtask', MANUFACTURING_ROUTING: 'manufacturingrouting', MAP_REDUCE_SCRIPT: 'mapreducescript', MARKUP_ITEM: 'markupitem', MASSUPDATE_SCRIPT: 'massupdatescript', MESSAGE: 'message', MFG_PLANNED_TIME: 'mfgplannedtime', NEXUS: 'nexus', NON_INVENTORY_ITEM: 'noninventoryitem', NOTE: 'note', NOTE_TYPE: 'notetype', OPPORTUNITY: 'opportunity', ORDER_SCHEDULE: 'orderschedule', OTHER_CHARGE_ITEM: 'otherchargeitem', OTHER_NAME: 'othername', OTHER_NAME_CATEGORY: 'othernamecategory', PARTNER: 'partner', PARTNER_CATEGORY: 'partnercategory', PAYCHECK: 'paycheck', PAYCHECK_JOURNAL: 'paycheckjournal', PAYMENT_ITEM: 'paymentitem', PAYMENT_METHOD: 'paymentmethod', PAYROLL_ITEM: 'payrollitem', PCT_COMPLETE_PROJECT_REVENUE_RULE: 'pctcompleteprojectrevenuerule', PHONE_CALL: 'phonecall', PORTLET: 'portlet', PRICE_BOOK: 'pricebook', PRICE_LEVEL: 'pricelevel', PRICE_PLAN: 'priceplan', PRICING_GROUP: 'pricinggroup', PROJECT_EXPENSE_TYPE: 'projectexpensetype', PROJECT_TASK: 'projecttask', PROJECT_TEMPLATE: 'projecttemplate', PROMOTION_CODE: 'promotioncode', PROSPECT: 'prospect', PURCHASE_CONTRACT: 'purchasecontract', PURCHASE_ORDER: 'purchaseorder', PURCHASE_REQUISITION: 'purchaserequisition', REALLOCATE_ITEM: 'reallocateitem', RECEIVE_INBOUND_SHIPMENT: 'receiveinboundshipment', RESOURCE_ALLOCATION: 'resourceallocation', RESTLET: 'restlet', RETURN_AUTHORIZATION: 'returnauthorization', REVENUE_ARRANGEMENT: 'revenuearrangement', REVENUE_COMMITMENT: 'revenuecommitment', REVENUE_COMMITMENT_REVERSAL: 'revenuecommitmentreversal', REVENUE_PLAN: 'revenueplan', REV_REC_SCHEDULE: 'revrecschedule', REV_REC_TEMPLATE: 'revrectemplate', SALES_ORDER: 'salesorder', SALES_ROLE: 'salesrole', SALES_TAX_ITEM: 'salestaxitem', SCHEDULED_SCRIPT: 'scheduledscript', SCHEDULED_SCRIPT_INSTANCE: 'scheduledscriptinstance', SCRIPT_DEPLOYMENT: 'scriptdeployment', SERIALIZED_ASSEMBLY_ITEM: 'serializedassemblyitem', SERIALIZED_INVENTORY_ITEM: 'serializedinventoryitem', SERVICE_ITEM: 'serviceitem', SHIP_ITEM: 'shipitem', SOLUTION: 'solution', STATISTICAL_JOURNAL_ENTRY: 'statisticaljournalentry', STORE_PICKUP_FULFILLMENT: 'storepickupfulfillment', SUBSCRIPTION: 'subscription', SUBSCRIPTION_CHANGE_ORDER: 'subscriptionchangeorder', SUBSCRIPTION_LINE: 'subscriptionline', SUBSCRIPTION_PLAN: 'subscriptionplan', SUBSIDIARY: 'subsidiary', SUBTOTAL_ITEM: 'subtotalitem', SUITELET: 'suitelet', SUPPORT_CASE: 'supportcase', TASK: 'task', TAX_ACCT: 'taxacct', TAX_GROUP: 'taxgroup', TAX_PERIOD: 'taxperiod', TAX_TYPE: 'taxtype', TERM: 'term', TIME_BILL: 'timebill', TIME_ENTRY: 'timeentry', TIME_OFF_CHANGE: 'timeoffchange', TIME_OFF_PLAN: 'timeoffplan', TIME_OFF_REQUEST: 'timeoffrequest', TIME_OFF_RULE: 'timeoffrule', TIME_OFF_TYPE: 'timeofftype', TIME_SHEET: 'timesheet', TOPIC: 'topic', TRANSFER_ORDER: 'transferorder', TRANSACTION: 'transaction', UNITS_TYPE: 'unitstype', USAGE: 'usage', USEREVENT_SCRIPT: 'usereventscript', VENDOR: 'vendor', VENDOR_BILL: 'vendorbill', VENDOR_CATEGORY: 'vendorcategory', VENDOR_CREDIT: 'vendorcredit', VENDOR_PAYMENT: 'vendorpayment', VENDOR_RETURN_AUTHORIZATION: 'vendorreturnauthorization', WEBSITE: 'website', WORKFLOW_ACTION_SCRIPT: 'workflowactionscript', WORK_ORDER: 'workorder', WORK_ORDER_CLOSE: 'workorderclose', WORK_ORDER_COMPLETION: 'workordercompletion', WORK_ORDER_ISSUE: 'workorderissue', WORKPLACE: 'workplace', }, Operator: { IS: 'is', ANYOF: 'anyof' }, Sort: { DESC: 'DESC', ASC: 'ASC', }, Summary: { GROUP: 'GROUP' } };