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 ')}`
    
}