UNPKG

@cityssm/dynamics-gp

Version:

Read only inquiries into Microsoft Dynamics GP using a SQL Server connection.

51 lines (46 loc) 1.61 kB
import { type mssql, connect } from '@cityssm/mssql-multi-pool' import type { GPCustomer } from './types.js' /** * Retrieves a GP customer by their customer number. * @param mssqlConfig - The configuration for the SQL Server connection. * @param customerNumber - The customer number to look up. * @returns A promise that resolves to the GP customer, or undefined if not found. */ export default async function _getCustomerByCustomerNumber( mssqlConfig: mssql.config, customerNumber: string ): Promise<GPCustomer | undefined> { const pool = await connect(mssqlConfig) const customerResult = await pool .request() .input('customerNumber', customerNumber) .query<GPCustomer>(/* sql */ ` SELECT TOP 1 rtrim(CUSTNMBR) AS customerNumber, rtrim(CUSTNAME) AS customerName, rtrim(CUSTCLAS) AS customerClass, rtrim(CNTCPRSN) AS contactPerson, rtrim(STMTNAME) AS statementName, rtrim(SHRTNAME) AS shortName, rtrim(ADDRESS1) AS address1, rtrim(ADDRESS2) AS address2, rtrim(ADDRESS3) AS address3, rtrim(CITY) AS city, rtrim(STATE) AS state, rtrim(COUNTRY) AS country, rtrim(ZIP) AS zipCode, rtrim(PHONE1) AS phoneNumber1, rtrim(PHONE2) AS phoneNumber2, rtrim(PHONE3) AS phoneNumber3, rtrim(FAX) AS faxNumber, CREATDDT AS dateCreated, MODIFDT AS dateModified FROM RM00101 WHERE CUSTNMBR = @customerNumber `) return customerResult.recordset.length > 0 ? customerResult.recordset[0] : undefined }