SuiteQL example
Tue Mar 14 2023 04:22:13 GMT+0000 (Coordinated Universal Time)
Saved by
@pandium_samples
export const getTransactionLineQuery = (
nsOrderId: string,
additionalFields: string[],
) => {
const columns = [
"Transaction.id as TransactionId",
"Entity.altname as CustomerName",
"BUILTIN.DF(Transaction.shippingaddress) AS shippingaddressname",
"TO_CHAR(Transaction.createddate, 'YYYY-MM-DD HH24:MI:SS') as CreatedDate",
"TransactionLine.linesequencenumber as LineNumber",
"Item.id as itemId",
"Item.displayname as ItemDisplayName",
"TransactionLine.Quantity"
]
// When a user installs this Netsuite Pandium integration they can select NetSuite sales order transaction fields from a drop down in the connection settings. Those selected fields are passed to this function, so we can make a query that will fetch those fields.
additionalFields.forEach((field) => {
columns.push(`transaction.${field}`)
})
const joins = [
'INNER JOIN Transaction ON (Transaction.ID = TransactionLine.Transaction)',
'INNER JOIN Item ON (Item.ID = TransactionLine.Item)',
'LEFT OUTER JOIN Entity ON (Entity.ID = Transaction.Entity)',
]
const filters = [`(transaction.id = '${<SALES ORDER ID>}'`)]
return `SELECT
${columns.join(', ')}
FROM
TransactionLine
${joins.join(' ')}
WHERE
${filters.join(' and ')}`
}
content_copyCOPY
Comments