269 lines
12 KiB
TypeScript
269 lines
12 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { Connection, Request } from 'mssql';
|
|
import { MssqlDBService } from 'src/db/db.service';
|
|
import * as mssql from 'mssql';
|
|
import { CreateHoldersDTO, GetHolderDTO, HolderActivateOrInactivateDTO, HolderContactActivateOrInactivateDTO, UpdateHolderContactDTO, UpdateHolderDTO } from 'src/dto/manage-holders/manage-holders.dto';
|
|
|
|
@Injectable()
|
|
export class ManageHoldersService {
|
|
constructor(private readonly mssqlDBService: MssqlDBService) { }
|
|
|
|
CreateHolders = async (body: CreateHoldersDTO) => {
|
|
const newBody = {
|
|
p_spid: null,
|
|
p_clientlocationid: null,
|
|
p_holderno: null,
|
|
p_holdertype: null,
|
|
p_uscibmemberflag: null,
|
|
p_govagencyflag: null,
|
|
p_holdername: null,
|
|
p_namequalifier: null,
|
|
p_addlname: null,
|
|
p_address1: null,
|
|
p_address2: null,
|
|
p_city: null,
|
|
p_state: null,
|
|
p_zip: null,
|
|
p_country: null,
|
|
p_userid: null,
|
|
p_contactstable: null,
|
|
};
|
|
|
|
const reqBody = JSON.parse(JSON.stringify(body));
|
|
|
|
function setEmptyStringsToNull(obj) {
|
|
Object.keys(obj).forEach((key) => {
|
|
if (typeof obj[key] === 'object' && obj[key] !== null) {
|
|
setEmptyStringsToNull(obj[key]);
|
|
} else if (obj[key] === '') {
|
|
obj[key] = null;
|
|
}
|
|
});
|
|
}
|
|
|
|
setEmptyStringsToNull(reqBody);
|
|
|
|
const finalBody: CreateHoldersDTO = { ...newBody, ...reqBody };
|
|
|
|
let connection: mssql.ConnectionPool;
|
|
try {
|
|
connection = await this.mssqlDBService.getConnection();
|
|
const request: Request = new Request(connection);
|
|
request.input('P_SPID', mssql.Int, finalBody.P_SPID);
|
|
request.input('P_CLIENTLOCATIONID', mssql.Int, finalBody.P_CLIENTLOCATIONID);
|
|
request.input('P_HOLDERNO', mssql.VarChar(15), finalBody.P_HOLDERNO);
|
|
request.input('P_HOLDERTYPE', mssql.VarChar(3), finalBody.P_HOLDERTYPE);
|
|
request.input('P_USCIBMEMBERFLAG', mssql.VarChar(1), finalBody.P_USCIBMEMBERFLAG);
|
|
request.input('P_GOVAGENCYFLAG', mssql.VarChar(1), finalBody.P_GOVAGENCYFLAG);
|
|
request.input('P_HOLDERNAME', mssql.VarChar(50), finalBody.P_HOLDERNAME);
|
|
request.input('P_NAMEQUALIFIER', mssql.VarChar(10), finalBody.P_NAMEQUALIFIER);
|
|
request.input('P_ADDLNAME', mssql.VarChar(50), finalBody.P_ADDLNAME);
|
|
request.input('P_ADDRESS1', mssql.VarChar(50), finalBody.P_ADDRESS1);
|
|
request.input('P_ADDRESS2', mssql.VarChar(50), finalBody.P_ADDRESS2);
|
|
request.input('P_CITY', mssql.VarChar(30), finalBody.P_CITY);
|
|
request.input('P_STATE', mssql.VarChar(2), finalBody.P_STATE);
|
|
request.input('P_ZIP', mssql.VarChar(10), finalBody.P_ZIP);
|
|
request.input('P_COUNTRY', mssql.VarChar(2), finalBody.P_COUNTRY);
|
|
request.input('P_USERID', mssql.VarChar(50), finalBody.P_USERID);
|
|
|
|
|
|
const contactTable = new mssql.Table('carnetsys.ContactsTable');
|
|
contactTable.create = true;
|
|
contactTable.columns.add('FirstName', mssql.VarChar(50));
|
|
contactTable.columns.add('LastName', mssql.VarChar(50));
|
|
contactTable.columns.add('MiddleInitial', mssql.VarChar(3));
|
|
contactTable.columns.add('Title', mssql.VarChar(50));
|
|
contactTable.columns.add('EmailAddress', mssql.VarChar(100));
|
|
contactTable.columns.add('PhoneNo', mssql.VarChar(20));
|
|
contactTable.columns.add('MobileNo', mssql.VarChar(20));
|
|
contactTable.columns.add('FaxNo', mssql.VarChar(20));
|
|
|
|
// finalBody.P_CONTACTSTABLE && finalBody.P_CONTACTSTABLE.forEach((contact) => {
|
|
// contactTable.rows.add(
|
|
// contact.P_FIRSTNAME,
|
|
// contact.P_LASTNAME,
|
|
// contact.P_MIDDLEINITIAL,
|
|
// contact.P_TITLE,
|
|
// contact.P_EMAILADDRESS,
|
|
// contact.P_PHONENO,
|
|
// contact.P_MOBILENO,
|
|
// contact.P_FAXNO,
|
|
// );
|
|
// });
|
|
|
|
// request.input('p_contactstable', contactTable);
|
|
|
|
const result = await request.execute('carnetsys.CreateHolderData');
|
|
return { data: result.recordset };
|
|
} catch (error) {
|
|
|
|
return { error: error.message };
|
|
}
|
|
|
|
};
|
|
|
|
GetHolderRecord = async (body: GetHolderDTO) => {
|
|
let connection: mssql.ConnectionPool;
|
|
try {
|
|
connection = await this.mssqlDBService.getConnection();
|
|
const request: Request = new Request(connection);
|
|
request.input('P_SPID', mssql.Int, body.P_SPID);
|
|
request.input('P_HOLDERID', mssql.Int, body.P_HOLDERID);
|
|
|
|
const result = await request.execute('carnetsys.GetHolderMaster');
|
|
return { data: result.recordset };
|
|
} catch (error) {
|
|
|
|
return { error: error.message };
|
|
}
|
|
};
|
|
|
|
UpdateHolder = async (body: UpdateHolderDTO) => {
|
|
let connection: mssql.ConnectionPool;
|
|
try {
|
|
connection = await this.mssqlDBService.getConnection();
|
|
const request: Request = new mssql.Request(connection);
|
|
|
|
request.input('P_HOLDERID', mssql.Int, body.P_HOLDERID);
|
|
request.input('P_SPID', mssql.Int, body.P_SPID);
|
|
request.input('P_LOCATIONID', mssql.Int, body.P_LOCATIONID);
|
|
request.input('P_HOLDERNO', mssql.VarChar(15), body.P_HOLDERNO);
|
|
request.input('P_HOLDERTYPE', mssql.VarChar(3), body.P_HOLDERTYPE);
|
|
request.input('P_USCIBMEMBERFLAG', mssql.VarChar(1), body.P_USCIBMEMBERFLAG);
|
|
request.input('P_GOVAGENCYFLAG', mssql.VarChar(1), body.P_GOVAGENCYFLAG);
|
|
request.input('P_HOLDERNAME', mssql.VarChar(50), body.P_HOLDERNAME);
|
|
request.input('P_NAMEQUALIFIER', mssql.VarChar(10), body.P_NAMEQUALIFIER);
|
|
request.input('P_ADDLNAME', mssql.VarChar(50), body.P_ADDLNAME);
|
|
request.input('P_ADDRESS1', mssql.VarChar(50), body.P_ADDRESS1);
|
|
request.input('P_ADDRESS2', mssql.VarChar(50), body.P_ADDRESS2);
|
|
request.input('P_CITY', mssql.VarChar(30), body.P_CITY);
|
|
request.input('P_STATE', mssql.VarChar(2), body.P_STATE);
|
|
request.input('P_ZIP', mssql.VarChar(10), body.P_ZIP);
|
|
request.input('P_COUNTRY', mssql.VarChar(2), body.P_COUNTRY);
|
|
request.input('P_USERID', mssql.VarChar(100), body.P_USERID);
|
|
|
|
|
|
const result = await request.execute('carnetsys.UpdateHolders');
|
|
return { data: result.recordset };
|
|
} catch (error) {
|
|
|
|
return { error: error.message };
|
|
}
|
|
};
|
|
|
|
UpdateHolderContact = async (body: UpdateHolderContactDTO) => {
|
|
|
|
let connection: mssql.ConnectionPool;
|
|
try {
|
|
connection = await this.mssqlDBService.getConnection();
|
|
const request: Request = new mssql.Request(connection);
|
|
|
|
request.input('P_HOLDERCONTACTID', mssql.Int, body.P_HOLDERCONTACTID);
|
|
request.input('P_SPID', mssql.Int, body.P_SPID);
|
|
request.input('P_FIRSTNAME', mssql.VarChar(50), body.P_FIRSTNAME);
|
|
request.input('P_LASTNAME', mssql.VarChar(50), body.P_LASTNAME);
|
|
request.input('P_MIDDLEINITIAL', mssql.VarChar(3), body.P_MIDDLEINITIAL);
|
|
request.input('P_TITLE', mssql.VarChar(50), body.P_TITLE);
|
|
request.input('P_PHONENO', mssql.VarChar(20), body.P_PHONENO);
|
|
request.input('P_MOBILENO', mssql.VarChar(20), body.P_MOBILENO);
|
|
request.input('P_FAXNO', mssql.VarChar(20), body.P_FAXNO);
|
|
request.input('P_EMAILADDRESS', mssql.VarChar(100), body.P_EMAILADDRESS);
|
|
request.input('P_USERID', mssql.VarChar(100), body.P_USERID);
|
|
|
|
|
|
const result = await request.execute('carnetsys.UpdateHolderContacts');
|
|
return { data: result.recordset };
|
|
} catch (error) {
|
|
|
|
return { error: error.message };
|
|
}
|
|
};
|
|
|
|
GetHolderContacts = async (body: GetHolderDTO) => {
|
|
|
|
let connection: mssql.ConnectionPool;
|
|
try {
|
|
connection = await this.mssqlDBService.getConnection();
|
|
const request: Request = new Request(connection);
|
|
request.input('P_SPID', mssql.Int, body.P_SPID);
|
|
request.input('P_HOLDERID', mssql.Int, body.P_HOLDERID);
|
|
|
|
const result = await request.execute('carnetsys.GetHolderContacts');
|
|
return { data: result.recordset };
|
|
} catch (error) {
|
|
|
|
return { error: error.message };
|
|
}
|
|
};
|
|
|
|
InactivateHolder = async (body: HolderActivateOrInactivateDTO) => {
|
|
|
|
console.log(body);
|
|
|
|
let connection: mssql.ConnectionPool;
|
|
try {
|
|
connection = await this.mssqlDBService.getConnection();
|
|
const request: Request = new Request(connection);
|
|
request.input('P_SPID', mssql.Int, body.P_SPID);
|
|
request.input('P_HOLDERID', mssql.Int, body.P_HOLDERID);
|
|
request.input('P_USERID', mssql.VarChar(100), body.P_USERID);
|
|
const result = await request.execute('carnetsys.InactivateHolder');
|
|
return { data: result.recordset };
|
|
} catch (error) {
|
|
|
|
return { error: error.message };
|
|
}
|
|
};
|
|
|
|
ReactivateHolder = async (body: HolderActivateOrInactivateDTO) => {
|
|
let connection: mssql.ConnectionPool;
|
|
try {
|
|
connection = await this.mssqlDBService.getConnection();
|
|
const request: Request = new Request(connection);
|
|
request.input('P_SPID', mssql.Int, body.P_SPID);
|
|
request.input('P_HOLDERID', mssql.Int, body.P_HOLDERID);
|
|
request.input('P_USERID', mssql.VarChar(100), body.P_USERID);
|
|
|
|
const result = await request.execute('carnetsys.ReactivateHolder');
|
|
return { data: result.recordset };
|
|
} catch (error) {
|
|
|
|
return { error: error.message };
|
|
}
|
|
};
|
|
|
|
InactivateHolderContact = async (body: HolderContactActivateOrInactivateDTO) => {
|
|
let connection: mssql.ConnectionPool;
|
|
try {
|
|
connection = await this.mssqlDBService.getConnection();
|
|
const request: Request = new Request(connection);
|
|
request.input('P_SPID', mssql.Int, body.P_SPID);
|
|
request.input('P_HOLDERCONTACTID', mssql.Int, body.P_HOLDERCONTACTID);
|
|
request.input('P_USERID', mssql.VarChar(100), body.P_USERID);
|
|
|
|
const result = await request.execute('carnetsys.InactivateHolderContact');
|
|
return { data: result.recordset };
|
|
} catch (error) {
|
|
|
|
return { error: error.message };
|
|
}
|
|
};
|
|
|
|
ReactivateHolderContact = async (body: HolderContactActivateOrInactivateDTO) => {
|
|
let connection: mssql.ConnectionPool;
|
|
try {
|
|
connection = await this.mssqlDBService.getConnection();
|
|
const request: Request = new Request(connection);
|
|
request.input('P_SPID', mssql.Int, body.P_SPID);
|
|
request.input('P_HOLDERCONTACTID', mssql.Int, body.P_HOLDERCONTACTID);
|
|
request.input('P_USERID', mssql.VarChar(100), body.P_USERID);
|
|
|
|
const result = await request.execute('carnetsys.ReactivateHolderContact');
|
|
return { data: result.recordset };
|
|
} catch (error) {
|
|
|
|
return { error: error.message };
|
|
}
|
|
};
|
|
}
|