CREATE VIEW dbo.PW001SRV106 AS
SELECT
p01.PIN,
p01.NAME,
p01.FIRSTNAME,
p01.LASTNAME,
p01.SEX GENDER,
plan_pos.NAME POSITION,
PLAN_DEP.NAME DEPARTMENT,
plan_ves.NAME VESSEL,
plan_ves.NUMORGID vessel_numorgid,
PLAN_DEP.numorgid department_numorgid,
ORG.NAME ORGANIZATION,
p01.BIRTHDATE as 'DATE OF BIRTH',
P01.PLACEOFBIRTH 'PLACE OF BIRTH',
CASE WHEN c20manning.NAME IS NULL THEN 'NOT ASSIGNED' ELSE C20MANNING.NAME END AS 'MANNING POOL',
nat.NATIONALITY AS 'NATIONALITY ',
p01.NATIONALITY 'NATIONALITY CODE',
nat.ISO3166_ALPHA3 'NATIONALOTY CODE ISO',
P08.TDNUMBER 'PASS NUMBER',
p08.datefrom 'PASS ISSUE',
p08.dateto 'PASS EXPIRY',
P081.TDNUMBER SBOOK,
P081.DATEFROM 'SB ISSUE DATE',
p081.issuedby 'SB ISSUE BY',
P081.DATETO 'SBOOK EXPIRY',
p08v.TDNUMBER 'VISA',
p08v.datefrom 'VISA ISSUE',
p08v.dateto 'VISA EXPIRY',
p03plan.DATEFROM 'EMBARKATION DATE',
ISNULL(portOn.portcode, portEst.portcode) 'EMBARKATION PORT CODE',
ISNULL(portOn.NAME, portEst.NAME) 'EMBARKATION PORT',
p03plan.TODATEESTIMATED 'DISEMBARKATION DATE',
ISNULL(portOff.portcode, portEstOff.portcode) 'DISEMBARKATION PORT CODE',
ISNULL(portOff.NAME, portEstOff.NAME) 'DISEMBARKATION PORT',
fb.GDSLOCATOR as 'GDS Locator',
Stuff((Select ','+Char(10)+al.AIRLINELOCATOR
From PWCCMAIRSEGMENTS al where al.seqno = fb.SEQNO
order by al.SEGNO
for xml path('')),1,2,'') as 'Airline Locator',
Stuff((Select ','+Char(10)
+Case when len(rd.CARRIER+convert(varchar,rd.FLIGHTNUM))<7 then Space(7-len(rd.CARRIER+convert(varchar,rd.FLIGHTNUM)))+rd.CARRIER+convert(varchar,rd.FLIGHTNUM) else rd.CARRIER+convert(varchar,rd.FLIGHTNUM) end +Space(1)
+case when left(convert(varchar,rd.DEPT_DATE,106),1) = '0'
then Replace(Replace(Upper(Left(convert(varchar,rd.DEPT_DATE,106),6)),' ',''),'0',' ')
else Replace(Upper(Left(convert(varchar,rd.DEPT_DATE,106),6)),' ','')
end+Space(1)
+Isnull((select Case when isnull(charindex('-',LTRIM(RTRIM(Replace(Replace(Replace(Replace([name],'Int`l',''),'Int''l',''),'Apt.',''),'Airport','')))),0)=0 then Replace(Replace(Replace(Replace([name],'Int`l',''),'Int''l',''),'Apt.',''),'Airport','')
else RTRIM(Left(LTRIM(RTRIM(Replace(Replace(Replace(Replace([name],'Int`l',''),'Int''l',''),'Apt.',''),'Airport',''))),charindex('-',LTRIM(RTRIM(Replace(Replace(Replace(Replace([name],'Int`l',''),'Int''l',''),'Apt.',''),'Airport',''))))-1))
End as airport from pw001c48 where code = rd.DEPT_AIRPORT),'')+Char(9)+
+Isnull((select Case when isnull(charindex('-',LTRIM(RTRIM(Replace(Replace(Replace(Replace([name],'Int`l',''),'Int''l',''),'Apt.',''),'Airport','')))),0)=0 then Replace(Replace(Replace(Replace([name],'Int`l',''),'Int''l',''),'Apt.',''),'Airport','')
else RTRIM(Left(LTRIM(RTRIM(Replace(Replace(Replace(Replace([name],'Int`l',''),'Int''l',''),'Apt.',''),'Airport',''))),charindex('-',LTRIM(RTRIM(Replace(Replace(Replace(Replace([name],'Int`l',''),'Int''l',''),'Apt.',''),'Airport',''))))-1))
End as airport from pw001c48 where code = rd.ARRV_AIRPORT),'')+Char(9)+
+Isnull(case when rd.DEPT_TIME<100 then '00' when rd.DEPT_TIME<1000 then '0' else '' end+Convert(varchar(4),rd.DEPT_TIME)+Space(1),' '+Space(1))
+Isnull(case when rd.ARRV_TIME<100 then '00' when rd.ARRV_TIME<1000 then '0' else '' end+Convert(varchar(4),rd.ARRV_TIME)+Space(1),' '+Space(1))
From PWCCMAIRSEGMENTS rd where rd.seqno = fb.SEQNO
order by rd.SEGNO
for xml path('')),1,2,'') as 'Route Details',
Stuff((Select ','+Char(10)+fn.CARRIER+Space(1)+Convert(varchar,fn.FLIGHTNUM)
From PWCCMAIRSEGMENTS fn where fn.seqno = fb.SEQNO
order by fn.SEGNO
for xml path('')),1,2,'') as 'Flight No',
fb.ARVLDATE as 'Arrival Date',
LEFT(fbat.ETA,2)+':'+RIGHT(fbat.ETA,2) as 'ETA',
Stuff((Select distinct ','+Char(10)+tn.TICKETCODE
From PWCCMAIRSEGMENTS tn where tn.seqno = fb.SEQNO
for xml path('')),1,2,'') as 'Ticket Number',
P01.client NUMORGID,
p01.EMPLOYMENTSTARTDATE,
p01.EMPLOYMENTENDDATE,
CASE WHEN P0N.NOTES IS NULL THEN 'N' ELSE 'Y' END AS NOTES
FROM PW001P01 p01
LEFT JOIN PWORG ORG ON P01.CLIENT=ORG.NUMORGID
JOIN PW001P03 p03plan
ON p03plan.PIN = p01.PIN
AND p03plan.PLANNED = 'Y'
AND NOT EXISTS (SELECT 1
FROM PW001P03 t
JOIN PW001C12 c12t
ON c12t.CODE = t.CODE
AND c12t.OPTIONS LIKE '%S%'
WHERE t.PIN = p03plan.Pin
AND dbo.ad_scanorgtree(t.NUMORGID, 3) = dbo.ad_scanorgtree(p03plan.NUMORGID, 3)
AND t.Numorgid <> p03plan.Numorgid
AND t.TODATEESTIMATED = p03plan.DATEFROM - 1
)
JOIN PW001C12 c12plan
ON c12plan.CODE = p03plan.CODE
AND c12plan.OPTIONS LIKE '%S%'
LEFT JOIN PWROT_SHIFT_ACTIVITIES psa
ON psa.ACTIVITIES = p03plan.SEQUENCENO
LEFT JOIN PWROT_ACTIVE_SHIFT pas
ON pas.SEQUENCENO = psa.SEQUENCENO
LEFT JOIN PWORG plan_ves
ON plan_ves.NUMORGID = dbo.ad_scanorgtree(p03plan.NUMORGID, 3)
LEFT JOIN PWORG PLAN_DEP
ON PLAN_DEP.NUMORGID = dbo.ad_scanorgtree(P03PLAN.NUMORGID, 4)
LEFT JOIN PWORG plan_pos
ON plan_pos.NUMORGID = p03plan.NUMORGID
AND plan_pos.ORGTYPE = 5
LEFT JOIN PW001C02 C02
ON C02.code = dbo.ad_orgPosC02Code(PLAN_POS.ORGCODE)
LEFT JOIN PWCOUNTRY nat ON nat.COUNTRYCODE = p01.NATIONALITY
LEFT JOIN PW001P08 P08 ON P08.PIN=P01.PIN AND P08.CODE='PP'
LEFT JOIN PW001P08 P081 ON P081.PIN=P01.PIN AND P081.CODE='SBBAH'
LEFT JOIN PW001P08 P08v ON P08v.PIN=P01.PIN AND P08v.CODE='VISASH'
LEFT JOIN PWCCMCHANGECREWLIST cclOn
ON cclOn.NEXTACT = p03plan.SEQUENCENO
LEFT JOIN PWORGVESACT ccOn
ON ccOn.SEQNO = cclOn.SEQNO
LEFT JOIN PWPORT portOn
ON portOn.PORTCODE = ccOn.PLACEFROM
LEFT JOIN PWORGVESACT ccEst
ON ccEst.SEQNO = pas.SPD_CC_SIGNON
LEFT JOIN PWPORT portEst
ON portEst.PORTCODE = ccEst.PLACEFROM
LEFT JOIN PWCCMCHANGECREWLIST cclOff
ON cclOff.CURRENTACT = p03plan.SEQUENCENO
LEFT JOIN PWORGVESACT ccOff
ON ccOff.SEQNO = cclOff.SEQNO
LEFT JOIN PWPORT portOff
ON portOff.PORTCODE = ccOff.PLACEFROM
LEFT JOIN PWORGVESACT ccEstOff
ON ccEstOff.SEQNO = pas.SPD_CC_SIGNON
LEFT JOIN PWPORT portEstOff
ON portEstOff.PORTCODE = ccEstOff.PLACEFROM
LEFT JOIN PW001P0N P0N
ON P0N.PIN = P01.PIN
LEFT JOIN PW001C20 c20manning
ON c20manning.CODE = MANAGENTCODE
left join PWCCMFLIGHTARRANGEMENTS fb
on fb.pin = p01.pin
and fb.SEQNOM = Isnull(cclOn.SEQNO,ccEst.SEQNO)
and fb.SIGNON = 1
and fb.BOOKING_STATUS in ('ISSUED','APPROVED')
Left Join (Select SEQNOM, PIN, case when SCHEDULED_ARRIVAL_TIME <100 then '00' when SCHEDULED_ARRIVAL_TIME<1000 then '0' else '' end+Convert(varchar(4),SCHEDULED_ARRIVAL_TIME) as 'ETA'
from PWCCMFLIGHTARRANGEMENTS
where signon = 1 and BOOKING_STATUS in ('ISSUED','APPROVED')) fbat
on fbat.pin = p01.pin and fbat.SEQNOM = Isnull(cclOn.SEQNO,ccEst.SEQNO)
|