client-app/src/app/core/services/holder/basic-detail.service.ts
2025-07-17 13:56:18 -03:00

91 lines
3.5 KiB
TypeScript

import { HttpClient } from '@angular/common/http';
import { inject, Injectable } from '@angular/core';
import { UserService } from '../common/user.service';
import { environment } from '../../../../environments/environment';
import { map, Observable, } from 'rxjs';
import { BasicDetail } from '../../models/holder/basic-detail';
@Injectable({
providedIn: 'root'
})
export class BasicDetailService {
private apiUrl = environment.apiUrl;
private apiDb = environment.apiDb;
private http = inject(HttpClient);
private userService = inject(UserService);
getBasicDetailByHolderId(id: number): Observable<BasicDetail> {
return this.http.get<any[]>(`${this.apiUrl}/${this.apiDb}/GetHolderRecord/${this.userService.getUserSpid()}/${id}`).pipe(
map(response => this.mapToBasicDetail(response)));
}
private mapToBasicDetail(basicDetails: any): BasicDetail {
return {
holderid: basicDetails.HOLDERID,
spid: basicDetails.SPID,
locationid: basicDetails.LOCATIONID,
holderNumber: basicDetails.HOLDERNO,
holderType: basicDetails.HOLDERTYPE,
uscibMember: basicDetails.USCIBMEMBERFLAG === 'Y',
govAgency: basicDetails.GOVAGENCYFLAG === 'Y',
holderName: basicDetails.HOLDERNAME,
//NAMEQUALIFIER: basicDetails.NAMEQUALIFIER || null,
dbaName: basicDetails.ADDLNAME || null,
address1: basicDetails.ADDRESS1,
address2: basicDetails.ADDRESS2 || null,
city: basicDetails.CITY,
state: basicDetails.STATE,
zip: basicDetails.ZIP,
country: basicDetails.COUNTRY
};
}
createBasicDetail(data: BasicDetail): Observable<any> {
const basicDetail = {
P_SPID: this.userService.getUserSpid(),
P_CLIENTLOCATIONID: this.userService.getUserLocationid(),
P_HOLDERNO: data.holderNumber,
P_HOLDERTYPE: data.holderType,
P_USCIBMEMBERFLAG: data.uscibMember ? 'Y' : 'N',
P_GOVAGENCYFLAG: data.govAgency ? 'Y' : 'N',
P_HOLDERNAME: data.holderName,
P_NAMEQUALIFIER: null,
P_ADDLNAME: data.dbaName,
P_ADDRESS1: data.address1,
P_ADDRESS2: data.address2,
P_CITY: data.city,
P_STATE: data.state,
P_ZIP: data.zip,
P_COUNTRY: data.country,
P_USERID: this.userService.getUser()
};
return this.http.post(`${this.apiUrl}/${this.apiDb}/CreateHolderData`, basicDetail);
}
updateBasicDetails(id: number, data: BasicDetail): Observable<any> {
const basicDetail = {
P_HOLDERID: id,
P_SPID: this.userService.getUserSpid(),
P_LOCATIONID: this.userService.getUserLocationid(),
P_HOLDERNO: data.holderNumber,
P_HOLDERTYPE: data.holderType,
P_USCIBMEMBERFLAG: data.uscibMember ? 'Y' : 'N',
P_GOVAGENCYFLAG: data.govAgency ? 'Y' : 'N',
P_HOLDERNAME: data.holderName,
P_NAMEQUALIFIER: null,
P_ADDLNAME: data.dbaName,
P_ADDRESS1: data.address1,
P_ADDRESS2: data.address2,
P_CITY: data.city,
P_STATE: data.state,
P_ZIP: data.zip,
P_COUNTRY: data.country,
P_USERID: this.userService.getUser()
};
return this.http.put(`${this.apiUrl}/${this.apiDb}/UpdateHolder`, basicDetail);
}
}