UNPKG

@cityssm/worktech-api

Version:

Integrations with the WorkTech work order management system.

50 lines (43 loc) 1.52 kB
import { connect, type mssql } from '@cityssm/mssql-multi-pool' import type { JobActivityObjectCode } from './types.js' const sql = `SELECT [Job_ID] as jobId, [Actv_ID] as activityId, [ObjCode] as objectCode, rtrim([Year]) as fiscalYear, coalesce([AcctSeg], '') as accountNumber FROM [WMABCA] WITH (NOLOCK)` /** * Retrieves a job - activity - object code. * @param mssqlConfig - SQL Server configuration. * @param keys - The keys to search on. * @param keys.jobId - The job id. * @param keys.activityId - The activity id. * @param keys.objectCode - The object code. * @param keys.fiscalYear - The fiscal year. * @returns - The job - activity - object code combination if available. */ export async function getJobActivityObjectCodeByKeys( mssqlConfig: mssql.config, keys: { jobId: string activityId: string objectCode: string fiscalYear: number | string } ): Promise<JobActivityObjectCode | undefined> { const pool = await connect(mssqlConfig) const result = (await pool .request() .input('jobId', keys.jobId) .input('activityId', keys.activityId) .input('objectCode', keys.objectCode) .input('fiscalYear', keys.fiscalYear).query(`${sql} where Job_ID = @jobId and Actv_ID = @activityId and ObjCode = @objectCode and Year = @fiscalYear`)) as mssql.IResult<JobActivityObjectCode> if (result.recordset.length === 0) { return undefined } return result.recordset[0] }