BE/src/mssql/uscib-managed-sp/sp-contacts/sp-contacts.service.ts
2025-04-28 12:08:13 +05:30

142 lines
5.6 KiB
TypeScript

import { Injectable } from '@nestjs/common';
import { MssqlDBService } from 'src/db/db.service';
import * as mssql from 'mssql'
import { Connection, Request } from 'mssql';
import { getSPAllContactsDTO, getSPDefaultcontactDTO, inactivateSPContactDTO, InsertSPContactsDTO, setSPDefaultcontactDTO, UpdateSPContactsDTO } from 'src/oracle/uscib-managed-sp/sp-contacts/sp-contacts.dto';
@Injectable()
export class SpContactsService {
constructor(private readonly mssqlDBService: MssqlDBService) { }
async getSpAllContacts(body: getSPAllContactsDTO) {
let connection: Connection;
try {
connection = await this.mssqlDBService.getConnection();
const request = new Request(connection);
request.input('P_SPID', mssql.Int, body.p_SPid);
const result = await request.execute('carnetsys.GETSPALLCONTACTS');
return { data: result.recordset };
} catch (error) {
return { error: error.message };
} finally {
if (connection) {
connection.close();
}
}
}
async getSPDefaultcontacts(body: getSPDefaultcontactDTO) {
let connection: Connection;
try {
connection = await this.mssqlDBService.getConnection();
const request = new Request(connection);
request.input('P_SPID', mssql.Int, body.p_SPid);
const result = await request.execute('carnetsys.GETSPDEFAULTCONTACTS');
return { data: result.recordset };
} catch (error) {
return { error: error.message };
} finally {
if (connection) {
connection.close();
}
}
}
async inactivateSPContact(body: inactivateSPContactDTO) {
let connection: Connection;
try {
connection = await this.mssqlDBService.getConnection();
const request = new Request(connection);
request.input('P_SPCONTACTID', mssql.Int, body.p_spcontactid);
const result = await request.execute('carnetsys.INACTIVATESPCONTACTS');
return { data: result.recordset };
} catch (error) {
return { error: error.message };
} finally {
if (connection) {
connection.close();
}
}
}
async insertSPContacts(body: InsertSPContactsDTO) {
let connection: Connection;
try {
connection = await this.mssqlDBService.getConnection();
const request = new Request(connection);
request.input('P_SPID', mssql.Int, body.p_spid);
request.input('P_DEFCONTACTFLAG', mssql.VarChar(4000), body.p_defcontactflag);
request.input('P_FIRSTNAME', mssql.VarChar(4000), body.p_firstname);
request.input('P_LASTNAME', mssql.VarChar(4000), body.p_lastname);
request.input('P_MIDDLEINITIAL', mssql.VarChar(4000), body.P_MIDDLEINITIAL);
request.input('P_TITLE', mssql.VarChar(4000), body.p_title);
request.input('P_PHONENO', mssql.VarChar(4000), body.p_phoneno);
request.input('P_MOBILENO', mssql.VarChar(4000), body.p_mobileno);
request.input('P_FAXNO', mssql.VarChar(4000), body.p_faxno);
request.input('P_EMAILADDRESS', mssql.VarChar(4000), body.p_emailaddress);
request.input('P_USER_ID', mssql.VarChar(4000), body.p_user_id);
const result = await request.execute('carnetsys.INSERTSPCONTACTS');
return { data: result.recordset };
} catch (error) {
return { error: error.message };
} finally {
if (connection) {
connection.close();
}
}
}
async setSPDefaultcontact(body: setSPDefaultcontactDTO) {
let connection: Connection;
try {
connection = await this.mssqlDBService.getConnection();
const request = new Request(connection);
request.input('p_spContactid', mssql.Int, body.p_spcontactid);
const result = await request.execute('carnetsys.SETDEFAULTCONTACT');
return { data: result.recordset };
} catch (error) {
return { error: error.message };
} finally {
if (connection) {
connection.close();
}
}
}
async updateSPContacts(body: UpdateSPContactsDTO) {
let connection: Connection;
try {
connection = await this.mssqlDBService.getConnection();
const request = new Request(connection);
request.input('P_SPCONTACTID', mssql.Int, body.p_spcontactid);
request.input('P_FIRSTNAME', mssql.VarChar(4000), body.p_firstname);
request.input('P_LASTNAME', mssql.VarChar(4000), body.p_lastname);
request.input('P_MIDDLEINITIAL', mssql.VarChar(4000), body.P_MIDDLEINITIAL);
request.input('P_TITLE', mssql.VarChar(4000), body.p_title);
request.input('P_PHONENO', mssql.VarChar(4000), body.p_phoneno);
request.input('P_MOBILENO', mssql.VarChar(4000), body.p_mobileno);
request.input('P_FAXNO', mssql.VarChar(4000), body.p_faxno);
request.input('P_EMAILADDRESS', mssql.VarChar(4000), body.p_emailaddress);
request.input('P_USER_ID', mssql.VarChar(4000), body.p_user_id);
const result = await request.execute('carnetsys.UPDATESPCONTACTS');
return { data: result.recordset };
} catch (error) {
return { error: error.message };
} finally {
if (connection) {
connection.close();
}
}
}
}