2024-06-19 23:03:54 +07:00
import {
Controller ,
Get ,
Post ,
Delete ,
Route ,
Security ,
Tags ,
Body ,
Path ,
Request ,
Response ,
} from "tsoa" ;
import { AppDataSource } from "../database/data-source" ;
import HttpSuccess from "../interfaces/http-success" ;
import HttpStatusCode from "../interfaces/http-status" ;
import HttpError from "../interfaces/http-error" ;
import { PosMasterAct } from "../entities/PosMasterAct" ;
import { PosMaster } from "../entities/PosMaster" ;
2024-10-23 00:31:00 +07:00
import { Brackets , LessThan , MoreThan } from "typeorm" ;
2024-07-18 14:16:46 +07:00
import { OrgRevision } from "../entities/OrgRevision" ;
import Extension from "../interfaces/extension" ;
2024-06-19 23:03:54 +07:00
@Route ( "api/v1/org/pos/act" )
@Tags ( "PosMasterAct" )
@Security ( "bearerAuth" )
@Response (
HttpStatusCode . INTERNAL_SERVER_ERROR ,
"เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" ,
)
export class PosMasterActController extends Controller {
2024-07-18 14:16:46 +07:00
private orgRevisionRepository = AppDataSource . getRepository ( OrgRevision ) ;
2024-06-19 23:03:54 +07:00
private posMasterActRepository = AppDataSource . getRepository ( PosMasterAct ) ;
private posMasterRepository = AppDataSource . getRepository ( PosMaster ) ;
/ * *
* API เ พ ิ ่ ม ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง
*
* @summary เ พ ิ ่ ม ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง ( ADMIN )
*
* /
@Post ( )
async createPosMasterAct (
@Body ( ) requestBody : { posMasterId : string ; posMasterChildId : string } ,
@Request ( ) request : { user : Record < string , any > } ,
) {
const posMaster = await this . posMasterRepository . findOne ( {
where : {
id : requestBody.posMasterId ,
} ,
} ) ;
if ( posMaster == null ) {
throw new HttpError ( HttpStatusCode . NOT_FOUND , "ไม่พบข้อมูลตำแหน่งนี้" ) ;
}
const posMasterChild = await this . posMasterRepository . findOne ( {
where : {
id : requestBody.posMasterChildId ,
} ,
} ) ;
if ( posMasterChild == null ) {
throw new HttpError ( HttpStatusCode . NOT_FOUND , "ไม่พบข้อมูลตำแหน่งนี้" ) ;
}
const posMasterActOld = await this . posMasterActRepository . findOne ( {
where : {
posMasterId : requestBody.posMasterId ,
} ,
order : { posMasterOrder : "DESC" } ,
} ) ;
let num = 0 ;
if ( posMasterActOld != null ) {
num = posMasterActOld . posMasterOrder ;
}
const posMasterAct = new PosMasterAct ( ) ;
posMasterAct . posMasterOrder = num + 1 ;
posMasterAct . posMasterId = requestBody . posMasterId ;
posMasterAct . posMasterChildId = requestBody . posMasterChildId ;
posMasterAct . createdUserId = request . user . sub ;
posMasterAct . createdFullName = request . user . name ;
posMasterAct . lastUpdateUserId = request . user . sub ;
posMasterAct . lastUpdateFullName = request . user . name ;
2024-08-30 21:02:14 +07:00
posMasterAct . createdAt = new Date ( ) ;
posMasterAct . lastUpdatedAt = new Date ( ) ;
2024-06-19 23:03:54 +07:00
await this . posMasterActRepository . save ( posMasterAct ) ;
return new HttpSuccess ( posMasterAct ) ;
}
/ * *
* API ล บ ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง
*
* @summary ล บ ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง ( ADMIN )
*
* @param { string } id Id ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง
* /
@Delete ( "{id}" )
async deletePosMasterAct ( @Path ( ) id : string ) {
let result : any ;
const posMasterAct = await this . posMasterActRepository . findOne ( {
where : {
id : id ,
} ,
} ) ;
try {
result = await this . posMasterActRepository . delete ( { id : id } ) ;
} catch {
throw new HttpError (
HttpStatusCode . NOT_FOUND ,
"ไม่สามารถลบได้เนื่องจากมีการใช้งานระดับตำแหน่งนี้อยู่" ,
) ;
}
if ( result . affected == undefined || result . affected <= 0 ) {
throw new HttpError ( HttpStatusCode . NOT_FOUND , "ไม่พบข้อมูล" ) ;
}
if ( posMasterAct != null ) {
const posMasterActList = await this . posMasterActRepository . find ( {
where : {
posMasterId : posMasterAct.posMasterId ,
} ,
} ) ;
2024-09-25 16:17:06 +07:00
posMasterActList . forEach ( async ( p , i ) = > {
p . posMasterOrder = i + 1 ;
2024-06-19 23:03:54 +07:00
await this . posMasterActRepository . save ( p ) ;
} ) ;
}
return new HttpSuccess ( ) ;
}
/ * *
* API ส ล ั บ ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง
*
* @summary ส ล ั บ ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง ( ADMIN )
*
* /
@Get ( "swap/{direction}/{posMasterActId}" )
async swapPosMasterAct (
@Path ( ) direction : string ,
posMasterActId : string ,
@Request ( ) request : { user : Record < string , any > } ,
) {
const source_item = await this . posMasterActRepository . findOne ( {
where : {
id : posMasterActId ,
} ,
} ) ;
if ( source_item == null ) throw new HttpError ( HttpStatusCode . NOT_FOUND , "ไม่พบข้อมูลตำแหน่งนี้" ) ;
const sourceOrder = source_item . posMasterOrder ;
if ( direction . trim ( ) . toUpperCase ( ) == "UP" ) {
const dest_item = await this . posMasterActRepository . findOne ( {
where : { posMasterId : source_item.posMasterId , posMasterOrder : LessThan ( sourceOrder ) } ,
order : { posMasterOrder : "DESC" } ,
} ) ;
if ( dest_item == null ) return new HttpSuccess ( ) ;
var destOrder = dest_item . posMasterOrder ;
dest_item . posMasterOrder = sourceOrder ;
source_item . posMasterOrder = destOrder ;
await Promise . all ( [
this . posMasterActRepository . save ( source_item ) ,
this . posMasterActRepository . save ( dest_item ) ,
] ) ;
} else {
const dest_item = await this . posMasterActRepository . findOne ( {
where : { posMasterId : source_item.posMasterId , posMasterOrder : MoreThan ( sourceOrder ) } ,
order : { posMasterOrder : "ASC" } ,
} ) ;
if ( dest_item == null ) return new HttpSuccess ( ) ;
var destOrder = dest_item . posMasterOrder ;
dest_item . posMasterOrder = sourceOrder ;
source_item . posMasterOrder = destOrder ;
await Promise . all ( [
this . posMasterActRepository . save ( source_item ) ,
this . posMasterActRepository . save ( dest_item ) ,
] ) ;
}
return new HttpSuccess ( ) ;
}
2024-07-18 14:16:46 +07:00
/ * *
* API ร า ย ช ื ่ อ ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง
*
* @summary ร า ย ช ื ่ อ ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง ( ADMIN )
*
* @param { string } id Id ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง
* /
@Get ( "profile" )
async GetPosMasterActProfile() {
const orgRevisionActive = await this . orgRevisionRepository . findOne ( {
where : { orgRevisionIsCurrent : true , orgRevisionIsDraft : false } ,
} ) ;
if ( ! orgRevisionActive ) {
return new HttpSuccess ( ) ;
}
const posMasterActs = await this . posMasterActRepository . find ( {
relations : [
"posMaster" ,
"posMasterChild" ,
"posMasterChild.orgRoot" ,
"posMasterChild.orgChild1" ,
"posMasterChild.orgChild2" ,
"posMasterChild.orgChild3" ,
"posMasterChild.orgChild4" ,
"posMasterChild.current_holder" ,
"posMasterChild.current_holder.posLevel" ,
"posMasterChild.current_holder.posType" ,
] ,
where : {
posMaster : {
orgRevisionId : orgRevisionActive.id ,
} ,
} ,
} ) ;
if ( ! posMasterActs ) {
throw new HttpError ( HttpStatusCode . NOT_FOUND , "ไม่พบข้อมูลประเภทตำแหน่งนี้" ) ;
}
const data = await Promise . all (
posMasterActs
. sort ( ( a , b ) = > a . posMaster . posMasterOrder - b . posMaster . posMasterOrder )
. map ( ( item ) = > {
const shortName =
item . posMasterChild != null && item . posMasterChild . orgChild4 != null
? ` ${ item . posMasterChild . orgChild4 . orgChild4ShortName } ${ item . posMasterChild . posMasterNo } `
: item . posMasterChild != null && item . posMasterChild ? . orgChild3 != null
? ` ${ item . posMasterChild . orgChild3 . orgChild3ShortName } ${ item . posMasterChild . posMasterNo } `
: item . posMasterChild != null && item . posMasterChild ? . orgChild2 != null
? ` ${ item . posMasterChild . orgChild2 . orgChild2ShortName } ${ item . posMasterChild . posMasterNo } `
: item . posMasterChild != null && item . posMasterChild ? . orgChild1 != null
? ` ${ item . posMasterChild . orgChild1 . orgChild1ShortName } ${ item . posMasterChild . posMasterNo } `
: item . posMasterChild != null && item . posMasterChild ? . orgRoot != null
? ` ${ item . posMasterChild . orgRoot . orgRootShortName } ${ item . posMasterChild . posMasterNo } `
: null ;
return {
id : item.id ,
posMasterOrder : item.posMasterOrder ,
profileId : item.posMasterChild?.current_holder?.id ? ? null ,
citizenId : item.posMasterChild?.current_holder?.citizenId ? ? null ,
prefix : item.posMasterChild?.current_holder?.prefix ? ? null ,
firstName : item.posMasterChild?.current_holder?.firstName ? ? null ,
lastName : item.posMasterChild?.current_holder?.lastName ? ? null ,
posLevel : item.posMasterChild?.current_holder?.posLevel?.posLevelName ? ? null ,
posType : item.posMasterChild?.current_holder?.posType?.posTypeName ? ? null ,
position : item.posMasterChild?.current_holder?.position ? ? null ,
posNo : shortName ,
} ;
} ) ,
) ;
return new HttpSuccess ( data ) ;
}
/ * *
* API ร า ย ช ื ่ อ ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง
*
* @summary ร า ย ช ื ่ อ ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง ( ADMIN )
*
* @param { string } id Id ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง
* /
@Get ( "{posMasterActId}/{profileId}" )
async GetPosMasterActProfileReport (
@Path ( ) posMasterActId : string ,
2024-10-04 22:36:34 +07:00
profileId : string ,
2024-07-18 14:16:46 +07:00
@Request ( ) request : { user : Record < string , any > } ,
) {
const posMasterAct = await this . posMasterActRepository . findOne ( {
relations : [
"posMaster" ,
"posMaster" ,
"posMaster.orgRoot" ,
"posMaster.orgChild1" ,
"posMaster.orgChild2" ,
"posMaster.orgChild3" ,
"posMaster.orgChild4" ,
"posMaster.current_holder" ,
"posMasterChild" ,
"posMasterChild.orgRoot" ,
"posMasterChild.orgChild1" ,
"posMasterChild.orgChild2" ,
"posMasterChild.orgChild3" ,
"posMasterChild.orgChild4" ,
"posMasterChild.current_holder" ,
"posMasterChild.current_holder.posLevel" ,
"posMasterChild.current_holder.posType" ,
] ,
where : {
id : posMasterActId ,
} ,
} ) ;
if ( ! posMasterAct ) {
throw new HttpError ( HttpStatusCode . NOT_FOUND , "ไม่พบข้อมูลประเภทตำแหน่งนี้" ) ;
}
const organization = [
posMasterAct . posMasterChild ? . current_holder ? . position ? ? null ,
posMasterAct . posMasterChild ? . orgChild4 ? . orgChild4Name ? ? null ,
posMasterAct . posMasterChild ? . orgChild3 ? . orgChild3Name ? ? null ,
posMasterAct . posMasterChild ? . orgChild2 ? . orgChild2Name ? ? null ,
posMasterAct . posMasterChild ? . orgChild1 ? . orgChild1Name ? ? null ,
posMasterAct . posMasterChild ? . orgRoot ? . orgRootName ? ? null ,
] ;
const _organization = organization
. filter ( ( part ) = > part !== undefined && part !== null )
2025-01-21 10:45:14 +07:00
. join ( " " ) ;
2024-07-18 14:16:46 +07:00
const organizationNew = [
posMasterAct . posMaster ? . current_holder ? . position ? ? null ,
posMasterAct . posMaster ? . orgChild4 ? . orgChild4Name ? ? null ,
posMasterAct . posMaster ? . orgChild3 ? . orgChild3Name ? ? null ,
posMasterAct . posMaster ? . orgChild2 ? . orgChild2Name ? ? null ,
posMasterAct . posMaster ? . orgChild1 ? . orgChild1Name ? ? null ,
posMasterAct . posMaster ? . orgRoot ? . orgRootName ? ? null ,
] ;
const _organizationNew = organizationNew
. filter ( ( part ) = > part !== undefined && part !== null )
2025-01-21 10:45:14 +07:00
. join ( " " ) ;
2024-07-18 14:16:46 +07:00
return new HttpSuccess ( {
prefix : posMasterAct.posMasterChild?.current_holder?.prefix ? ? null ,
firstName : posMasterAct.posMasterChild?.current_holder?.firstName ? ? null ,
lastName : posMasterAct.posMasterChild?.current_holder?.lastName ? ? null ,
organization : _organization , //
position : posMasterAct.posMasterChild?.current_holder?.position ? ? null ,
postype : posMasterAct.posMasterChild?.current_holder?.posType?.posTypeName ? ? null ,
poslevel : posMasterAct.posMasterChild?.current_holder?.posLevel?.posLevelName ? ? null ,
organizationNew : _organizationNew ,
date : Extension.ToThaiShortDate_noPrefix ( new Date ( ) ) ,
order :
posMasterAct . posMasterOrder == null
? "-"
: "ลำดับที่ " + Extension . ToThaiNumber ( posMasterAct . posMasterOrder . toString ( ) ) ,
} ) ;
}
2024-06-19 23:03:54 +07:00
/ * *
* API ร า ย ล ะ เ อ ี ย ด ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง
*
* @summary ร า ย ล ะ เ อ ี ย ด ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง ( ADMIN )
*
* @param { string } id Id ร ั ก ษ า ก า ร ใ น ต ำ แ ห น ่ ง
* /
@Get ( "{id}" )
async GetPosMasterActDetail ( @Path ( ) id : string ) {
const posMaster = await this . posMasterRepository . findOne ( {
relations : [
"posMasterActs" ,
"posMasterActs.posMasterChild" ,
"posMasterActs.posMasterChild.orgRoot" ,
"posMasterActs.posMasterChild.orgChild1" ,
"posMasterActs.posMasterChild.orgChild2" ,
"posMasterActs.posMasterChild.orgChild3" ,
"posMasterActs.posMasterChild.orgChild4" ,
"posMasterActs.posMasterChild.current_holder" ,
"posMasterActs.posMasterChild.current_holder.posLevel" ,
"posMasterActs.posMasterChild.current_holder.posType" ,
] ,
where : { id : id } ,
} ) ;
if ( ! posMaster ) {
throw new HttpError ( HttpStatusCode . NOT_FOUND , "ไม่พบข้อมูลประเภทตำแหน่งนี้" ) ;
}
const data = await Promise . all (
posMaster . posMasterActs
. sort ( ( a , b ) = > a . posMasterOrder - b . posMasterOrder )
. map ( ( item ) = > {
const shortName =
item . posMasterChild != null && item . posMasterChild . orgChild4 != null
? ` ${ item . posMasterChild . orgChild4 . orgChild4ShortName } ${ item . posMasterChild . posMasterNo } `
: item . posMasterChild != null && item . posMasterChild ? . orgChild3 != null
? ` ${ item . posMasterChild . orgChild3 . orgChild3ShortName } ${ item . posMasterChild . posMasterNo } `
: item . posMasterChild != null && item . posMasterChild ? . orgChild2 != null
? ` ${ item . posMasterChild . orgChild2 . orgChild2ShortName } ${ item . posMasterChild . posMasterNo } `
: item . posMasterChild != null && item . posMasterChild ? . orgChild1 != null
? ` ${ item . posMasterChild . orgChild1 . orgChild1ShortName } ${ item . posMasterChild . posMasterNo } `
: item . posMasterChild != null && item . posMasterChild ? . orgRoot != null
? ` ${ item . posMasterChild . orgRoot . orgRootShortName } ${ item . posMasterChild . posMasterNo } `
: null ;
return {
id : item.id ,
posMasterOrder : item.posMasterOrder ,
citizenId : item.posMasterChild?.current_holder?.citizenId ? ? null ,
prefix : item.posMasterChild?.current_holder?.prefix ? ? null ,
firstName : item.posMasterChild?.current_holder?.firstName ? ? null ,
lastName : item.posMasterChild?.current_holder?.lastName ? ? null ,
posLevel : item.posMasterChild?.current_holder?.posLevel?.posLevelName ? ? null ,
posType : item.posMasterChild?.current_holder?.posType?.posTypeName ? ? null ,
position : item.posMasterChild?.current_holder?.position ? ? null ,
posNo : shortName ,
} ;
} ) ,
) ;
return new HttpSuccess ( data ) ;
}
2024-10-23 00:31:00 +07:00
/ * *
* API ร า ย ช ื ่ อ ต า ม ก ล ุ ่ ม ใ น ร ั ก ษ า ก า ร แ ท น
*
* @summary ร า ย ช ื ่ อ ต า ม ก ล ุ ่ ม ใ น ร ั ก ษ า ก า ร แ ท น
*
* /
@Post ( "report/draft" )
async reportDraft (
@Body ( )
body : {
type : string ;
rootId : string ;
} ,
) {
let conditionGroup = "" ;
if ( body . type . trim ( ) . toUpperCase ( ) == "GROUP1.1" ) {
conditionGroup =
"(posType.posTypeName = 'ทั่วไป' AND posLevel.posLevelName = 'ชำนาญงาน') OR (posType.posTypeName = 'ทั่วไป' AND posLevel.posLevelName = 'ปฏิบัติงาน') OR (posType.posTypeName = 'วิชาการ' AND posLevel.posLevelName = 'ปฏิบัติการ') OR (posType.posTypeName = 'วิชาการ' AND posLevel.posLevelName = 'ชำนาญการ')" ;
} else if ( body . type . trim ( ) . toUpperCase ( ) == "GROUP1.2" ) {
conditionGroup =
"(posType.posTypeName = 'ทั่วไป' AND posLevel.posLevelName = 'อาวุโส') OR (posType.posTypeName = 'วิชาการ' AND posLevel.posLevelName = 'ชำนาญการพิเศษ') OR (posType.posTypeName = 'อำนวยการ' AND posLevel.posLevelName = 'ต้น')" ;
} else if ( body . type . trim ( ) . toUpperCase ( ) == "GROUP2" ) {
conditionGroup =
"(posType.posTypeName = 'ทั่วไป' AND posLevel.posLevelName = 'ทักษะพิเศษ') OR (posType.posTypeName = 'วิชาการ' AND posLevel.posLevelName = 'เชี่ยวชาญ') OR (posType.posTypeName = 'วิชาการ' AND posLevel.posLevelName = 'ทรงคุณวุฒิ') OR (posType.posTypeName = 'อำนวยการ' AND posLevel.posLevelName = 'สูง') OR (posType.posTypeName = 'บริหาร' AND posLevel.posLevelName = 'ต้น') OR (posType.posTypeName = 'บริหาร' AND posLevel.posLevelName = 'สูง')" ;
} else {
throw new HttpError ( HttpStatusCode . NOT_FOUND , "กลุ่มเป้าหมายไม่ถูกต้อง" ) ;
}
let posMaster = await AppDataSource . getRepository ( PosMasterAct )
. createQueryBuilder ( "posMasterAct" )
. leftJoinAndSelect ( "posMasterAct.posMasterChild" , "posMasterChild" )
. leftJoinAndSelect ( "posMasterChild.orgRoot" , "orgRoot" )
. leftJoinAndSelect ( "posMasterChild.orgChild1" , "orgChild1" )
. leftJoinAndSelect ( "posMasterChild.orgChild2" , "orgChild2" )
. leftJoinAndSelect ( "posMasterChild.orgChild3" , "orgChild3" )
. leftJoinAndSelect ( "posMasterChild.orgChild4" , "orgChild4" )
. leftJoinAndSelect ( "posMasterChild.current_holder" , "current_holder" )
. leftJoinAndSelect ( "posMasterChild.positions" , "positions" )
. leftJoinAndSelect ( "positions.posType" , "posType" )
. leftJoinAndSelect ( "positions.posLevel" , "posLevel" )
. leftJoinAndSelect ( "posMasterChild.orgRevision" , "orgRevision" )
. andWhere ( "posMasterChild.orgRootId LIKE :orgRootId" , {
orgRootId : body.type.trim ( ) . toUpperCase ( ) == "GROUP1.1" ? body . rootId : ` %% ` ,
} )
. andWhere ( "posMasterAct.statusReport = :statusReport" , { statusReport : "PENDING" } )
. andWhere ( "posMasterChild.current_holderId IS NOT NULL" )
. andWhere ( "orgRevision.orgRevisionIsCurrent = :orgRevisionIsCurrent" , {
orgRevisionIsCurrent : true ,
} )
. andWhere ( "orgRevision.orgRevisionIsDraft = :orgRevisionIsDraft" , {
orgRevisionIsDraft : false ,
} )
. andWhere ( "positions.positionIsSelected = :isSelected" , { isSelected : true } )
. andWhere (
new Brackets ( ( qb ) = > {
qb . andWhere ( conditionGroup ) ;
} ) ,
)
. orderBy ( "posMasterChild.posMasterOrder" , "ASC" )
. select ( [
"posMasterAct.id" ,
"posMasterChild.posMasterNo" ,
"positions.positionName" ,
"positions.positionIsSelected" ,
"posType.posTypeName" ,
"posLevel.posLevelName" ,
"orgRoot.orgRootShortName" ,
"orgChild1.orgChild1ShortName" ,
"orgChild2.orgChild2ShortName" ,
"orgChild3.orgChild3ShortName" ,
"orgChild4.orgChild4ShortName" ,
"current_holder.prefix" ,
"current_holder.firstName" ,
"current_holder.lastName" ,
"current_holder.id" ,
"current_holder.citizenId" ,
] )
. getMany ( ) ;
const _posMaster = posMaster . map ( ( x ) = > {
const posMasterNo =
x . posMasterChild . orgChild4 != null
? ` ${ x . posMasterChild . orgChild4 . orgChild4ShortName } ${ x . posMasterChild . posMasterNo } `
: x . posMasterChild != null && x ? . posMasterChild ? . orgChild3 != null
? ` ${ x . posMasterChild . orgChild3 . orgChild3ShortName } ${ x . posMasterChild . posMasterNo } `
: x . posMasterChild != null && x ? . posMasterChild ? . orgChild2 != null
? ` ${ x . posMasterChild . orgChild2 . orgChild2ShortName } ${ x . posMasterChild . posMasterNo } `
: x . posMasterChild != null && x ? . posMasterChild ? . orgChild1 != null
? ` ${ x . posMasterChild . orgChild1 . orgChild1ShortName } ${ x . posMasterChild . posMasterNo } `
: x . posMasterChild != null && x ? . posMasterChild ? . orgRoot != null
? ` ${ x . posMasterChild . orgRoot . orgRootShortName } ${ x . posMasterChild . posMasterNo } `
: null ;
const position =
x . posMasterChild . positions . filter ( ( x ) = > x . positionIsSelected == true ) . length > 0
? x . posMasterChild . positions . filter ( ( x ) = > x . positionIsSelected == true ) [ 0 ]
: null ;
return {
id : x.id ,
posMasterNo : posMasterNo ,
positionName : position?.positionName || null ,
posType : position?.posType?.posTypeName || null ,
posLevel : position?.posLevel?.posLevelName || null ,
profileId : x.posMasterChild?.current_holder?.id || null ,
prefix : x.posMasterChild?.current_holder?.prefix || null ,
firstName : x.posMasterChild?.current_holder?.firstName || null ,
lastName : x.posMasterChild?.current_holder?.lastName || null ,
citizenId : x.posMasterChild?.current_holder?.citizenId || null ,
} ;
} ) ;
return new HttpSuccess ( _posMaster ) ;
}
2024-06-19 23:03:54 +07:00
}