CREATE OR ALTER VIEW LD0VAA0DECISIONPROPOSAL
AS SELECT
DP.*,
Q01_BESLUT.KLARTEXT BESLUT_T,
ISNULL(VI_SENDER.NAMN, '') SENDER_T,
ISNULL(V1_RECEIVER.NAMN, '') RECEIVER_T,
ISNULL(Q01_ORSAK.KLARTEXT, '') ORSAK_T,
ISNULL(Q01_MEDORSAK.KLARTEXT, '') MEDORSAK_T,
ISNULL(Q01_BARN.KLARTEXT, '') BARNVAEG_T,
ISNULL(Q01_VH.KLARTEXT, '') VARDNHAV_T,
CASE 
WHEN Q01_I.XNUM40 IS NOT NULL THEN Q01_I.XNUM40
WHEN Q01_U.XNUM40 IS NOT NULL THEN Q01_U.XNUM40
WHEN Q01_V.XNUM40 IS NOT NULL THEN Q01_V.XNUM40
END AS FLOW,
UTRED.ORGENHNR InvestigationOrg,
UTRED.AKTPNR InvestigationPNR,
Q01_U.KLARTEXT AS InvestigationName,
VERK.ORGENHNR ExecutionOrg,
VERK.AKTPNR ExecutionPNR,
Q01_V.KLARTEXT AS ExecutionName,
INSATS.ORGENHNR AS ServicesOrg,
INSATS.AKTPNR AS ServicesPNR,
Person.NAMN,
Organisation.NAMN OrganizationName
FROM
LD0V0DecisionProposal DP
LEFT JOIN LD0V0I VI_SENDER 
ON DP.SENDER = VI_SENDER.HAND
LEFT JOIN LD0V0I V1_RECEIVER
ON DP.RECEIVER = V1_RECEIVER.HAND
LEFT JOIN LD0V0Q01 Q01_ORSAK 
ON Q01_ORSAK.KODTYP = 'BESLORSAK' 
AND DP.ORSAK = Q01_ORSAK.KOD
INNER JOIN LD0V0Q01 Q01_BESLUT 
ON Q01_BESLUT.KODTYP = 'BESLUT' 
AND DP.DECISIONTYPE = Q01_BESLUT.KOD
LEFT JOIN LD0V0Q01 Q01_MEDORSAK 
ON Q01_MEDORSAK.KODTYP = 'BESLORSAK' 
AND DP.ORSAKMED = Q01_MEDORSAK.KOD
LEFT JOIN LD0V0Q01 Q01_BARN 
ON Q01_BARN.KODTYP = 'BARNVAEG' 
AND DP.BARNVAEG = Q01_BARN.KOD
LEFT JOIN LD0V0Q01 Q01_VH 
ON Q01_VH.KODTYP = 'VARDHAVARE' 
AND DP.VARDNHAV = Q01_VH.KOD
LEFT JOIN LD0V0C20 INSATS
ON DP.INSNR = INSATS.INSNR AND INSATS.INSNR > 0  
LEFT JOIN LD0P0Q01 AS Q01_I 
ON Q01_I.KODTYP = 'INSATS' AND Q01_I.KOD = INSATS.INSTYP
LEFT JOIN LD0V0C UTRED   
ON DP.AEVERKNR = UTRED.AEVERKNR AND UTRED.AEVERKNR > 0 AND UTRED.TMARK = 0
LEFT JOIN LD0P0Q01 AS Q01_U 
ON Q01_U.KODTYP = 'UTREDTYP' AND Q01_U.KOD = UTRED.AEVERKTYP 
LEFT JOIN LD0V0C VERK   
ON DP.VERKNR = VERK.AEVERKNR AND VERK.AEVERKNR > 0  AND VERK.TMARK = 1
LEFT JOIN LD0P0Q01 AS Q01_V 
ON Q01_V.KODTYP = 'JOURNALTYP' AND Q01_V.KOD = VERK.AEVERKTYP
CROSS APPLY 
(
SELECT
	 TOP 1 NAMN
FROM LD0P0A 
WHERE LD0P0A.PNR = UTRED.AKTPNR
UNION ALL
SELECT
	 TOP 1 NAMN
FROM LD0P0A 
WHERE LD0P0A.PNR = INSATS.AKTPNR
UNION ALL
SELECT
	 TOP 1 NAMN
FROM LD0P0A 
WHERE LD0P0A.PNR = VERK.AKTPNR
) AS Person
CROSS APPLY 
(
SELECT
	 TOP 1 NAMN
FROM LD0P0J01 
WHERE LD0P0J01.ORGENHNR = UTRED.ORGENHNR
UNION ALL
SELECT
	 TOP 1 NAMN
FROM LD0P0J01 
WHERE LD0P0J01.ORGENHNR = INSATS.ORGENHNR
 UNION ALL
SELECT
	 TOP 1 NAMN
FROM LD0P0J01 
WHERE LD0P0J01.ORGENHNR = VERK.ORGENHNR
) AS Organisation
GO