cityssm/node-dynamics-gp

View on GitHub
gp/getVendorByVendorId.ts

Summary

Maintainability
A
45 mins
Test Coverage
import { connect } from '@cityssm/mssql-multi-pool'
import type { config as MSSQLConfig, IResult } from 'mssql'

import type { GPVendor } from './types.js'

/**
 * Inquiry > Purchasing > Vendor
 * @param vendorId
 * @returns
 */
export async function _getVendorByVendorId(
  mssqlConfig: MSSQLConfig,
  vendorId: string
): Promise<GPVendor | undefined> {
  const pool = await connect(mssqlConfig)

  const vendorResult: IResult<GPVendor> = await pool
    .request()
    .input('vendorId', vendorId).query(`SELECT top 1
      rtrim(VENDORID) as vendorId,
      rtrim(VENDNAME) as vendorName,
      rtrim(VNDCHKNM) as vendorCheckName,
      rtrim(VENDSHNM) as shortName,
      rtrim(VNDCNTCT) as contactPerson,
      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(ZIPCODE) as zipCode,
      rtrim(PHNUMBR1) as phoneNumber1,
      rtrim(PHNUMBR2) as phoneNumber2,
      rtrim(PHONE3) as phoneNumber3,
      rtrim(FAXNUMBR) as faxNumber,
      rtrim(COMMENT1) as comment1,
      rtrim(COMMENT2) as comment2,
      CREATDDT as dateCreated,
      MODIFDT as dateModified
      FROM PM00200
      where VENDORID = @vendorId`)

  return vendorResult.recordset.length > 0
    ? vendorResult.recordset[0]
    : undefined
}

export default _getVendorByVendorId