App erstellt

This commit is contained in:
2026-07-31 10:42:00 +00:00
parent a8158ed10b
commit d5467c3f1a
50 changed files with 3888 additions and 976 deletions
@@ -0,0 +1,35 @@
{
"gitSyncId": "6a6869faa8b745bffc91aca9_90a268fa-09ba-4502-adc1-fa6a57538075",
"id": "Page1_qryTeilnehmer",
"pluginId": "mssql-plugin",
"pluginType": "DB",
"unpublishedAction": {
"actionConfiguration": {
"body": "DECLARE @IDReise bigint =\n {{ Termin.selectedOptionValue }};\n\nSELECT\n BT.IDBuchungTN AS TeilnehmerID,\n B.Vorgang,\n AP.Name,\n AP.Vorname,\n\n COALESCE(\n NULLIF(E.Mailadresse, N''),\n N''\n ) AS [E-Mail],\n\n CONVERT(\n varchar(10),\n AP.Geburtsdatum,\n 104\n ) AS [Geb.-Datum],\n\n COALESCE(\n W.Zus_Wunsch,\n N''\n ) AS Zus_Wunsch,\n\n COALESCE(\n LJSON.LeistungenJSON,\n N'[]'\n ) AS LeistungenJSON,\n\n COALESCE(\n SP.Skipassnummer,\n N''\n ) AS Skipassnummer\n\nFROM dbo.Buchung B\n\nINNER JOIN dbo.BuchungTN BT\n ON BT.IDBuchung_FS = B.IDBuchung\n\nINNER JOIN dbo.AdressePerson AP\n ON AP.IDAdressePerson =\n BT.IDAdressePerson_FS\n\nOUTER APPLY\n(\n SELECT TOP (1)\n AK.Wert AS Mailadresse\n FROM dbo.AdresseKommunikation AK\n WHERE\n AK.IDAdressePerson_FS =\n AP.IDAdressePerson\n\n AND AK.Wert LIKE N'%@%'\n\n ORDER BY\n AK.IDAdresseKommunikation\n) E\n\nOUTER APPLY\n(\n SELECT\n STRING_AGG(\n NULLIF(\n LTRIM(RTRIM(BTW.Text)),\n N''\n ),\n N' · '\n ) AS Zus_Wunsch\n\n FROM dbo.BuchungTNWunsch BTW\n\n WHERE\n BTW.IDBuchungTN_FS =\n BT.IDBuchungTN\n) W\n\nOUTER APPLY\n(\n SELECT\n (\n SELECT\n X.Bezeichnung AS [name],\n X.Wert AS [value]\n\n FROM\n (\n SELECT DISTINCT\n L.Bezeichnung,\n\n CASE\n WHEN NULLIF(\n LTRIM(RTRIM(BTL.Nummer)),\n N''\n ) IS NOT NULL\n THEN BTL.Nummer\n\n ELSE N'1'\n END AS Wert\n\n FROM dbo.BuchungTNLeistung BTL\n\n INNER JOIN dbo.Leistung L\n ON L.IDLeistung =\n BTL.IDLeistung_FS\n\n WHERE\n BTL.IDBuchungTN_FS =\n BT.IDBuchungTN\n\n AND COALESCE(\n L.Status,\n N''\n ) <> N'L'\n\n AND EXISTS\n (\n SELECT 1\n\n FROM dbo.BuchungTNLeistungPreis BTLP\n\n INNER JOIN dbo.BuchungTNPreis BTP\n ON BTP.IDBuchungTNPreis =\n BTLP.IDBuchungTNPreis_FS\n\n WHERE\n BTLP.IDBuchungTNLeistung_FS =\n BTL.IDBuchungTNLeistung\n\n AND BTP.Status IN\n (N'F', N'O')\n )\n ) X\n\n ORDER BY\n X.Bezeichnung\n\n FOR JSON PATH\n ) AS LeistungenJSON\n) LJSON\n\nOUTER APPLY\n(\n SELECT TOP (1)\n BTL.Nummer AS Skipassnummer\n\n FROM dbo.BuchungTNLeistung BTL\n\n INNER JOIN dbo.Leistung L\n ON L.IDLeistung =\n BTL.IDLeistung_FS\n\n WHERE\n BTL.IDBuchungTN_FS =\n BT.IDBuchungTN\n\n AND L.Bezeichnung LIKE N'%Skipass%'\n\n AND NULLIF(\n LTRIM(RTRIM(BTL.Nummer)),\n N''\n ) IS NOT NULL\n\n AND EXISTS\n (\n SELECT 1\n\n FROM dbo.BuchungTNLeistungPreis BTLP\n\n INNER JOIN dbo.BuchungTNPreis BTP\n ON BTP.IDBuchungTNPreis =\n BTLP.IDBuchungTNPreis_FS\n\n WHERE\n BTLP.IDBuchungTNLeistung_FS =\n BTL.IDBuchungTNLeistung\n\n AND BTP.Status IN\n (N'F', N'O')\n )\n\n ORDER BY\n BTL.IDBuchungTNLeistung\n) SP\n\nWHERE\n B.IDReise_FS = @IDReise\n AND BT.Status = N'F'\n\nORDER BY\n B.Vorgang,\n AP.Name,\n AP.Vorname,\n BT.Position;",
"encodeParamsToggle": true,
"paginationType": "NONE",
"pluginSpecifiedTemplates": [
{
"value": true
}
],
"timeoutInMillisecond": 10000
},
"confirmBeforeExecute": false,
"datasource": {
"id": "Buspro Datenbank",
"isAutoGenerated": false,
"name": "Buspro Datenbank",
"pluginId": "mssql-plugin"
},
"dynamicBindingPathList": [
{
"key": "body"
}
],
"name": "qryTeilnehmer",
"pageId": "Page1",
"runBehaviour": "AUTOMATIC",
"userSetOnLoad": false
}
}
@@ -0,0 +1,194 @@
DECLARE @IDReise bigint =
{{ Termin.selectedOptionValue }};
SELECT
BT.IDBuchungTN AS TeilnehmerID,
B.Vorgang,
AP.Name,
AP.Vorname,
COALESCE(
NULLIF(E.Mailadresse, N''),
N''
) AS [E-Mail],
CONVERT(
varchar(10),
AP.Geburtsdatum,
104
) AS [Geb.-Datum],
COALESCE(
W.Zus_Wunsch,
N''
) AS Zus_Wunsch,
COALESCE(
LJSON.LeistungenJSON,
N'[]'
) AS LeistungenJSON,
COALESCE(
SP.Skipassnummer,
N''
) AS Skipassnummer
FROM dbo.Buchung B
INNER JOIN dbo.BuchungTN BT
ON BT.IDBuchung_FS = B.IDBuchung
INNER JOIN dbo.AdressePerson AP
ON AP.IDAdressePerson =
BT.IDAdressePerson_FS
OUTER APPLY
(
SELECT TOP (1)
AK.Wert AS Mailadresse
FROM dbo.AdresseKommunikation AK
WHERE
AK.IDAdressePerson_FS =
AP.IDAdressePerson
AND AK.Wert LIKE N'%@%'
ORDER BY
AK.IDAdresseKommunikation
) E
OUTER APPLY
(
SELECT
STRING_AGG(
NULLIF(
LTRIM(RTRIM(BTW.Text)),
N''
),
N' · '
) AS Zus_Wunsch
FROM dbo.BuchungTNWunsch BTW
WHERE
BTW.IDBuchungTN_FS =
BT.IDBuchungTN
) W
OUTER APPLY
(
SELECT
(
SELECT
X.Bezeichnung AS [name],
X.Wert AS [value]
FROM
(
SELECT DISTINCT
L.Bezeichnung,
CASE
WHEN NULLIF(
LTRIM(RTRIM(BTL.Nummer)),
N''
) IS NOT NULL
THEN BTL.Nummer
ELSE N'1'
END AS Wert
FROM dbo.BuchungTNLeistung BTL
INNER JOIN dbo.Leistung L
ON L.IDLeistung =
BTL.IDLeistung_FS
WHERE
BTL.IDBuchungTN_FS =
BT.IDBuchungTN
AND COALESCE(
L.Status,
N''
) <> N'L'
AND EXISTS
(
SELECT 1
FROM dbo.BuchungTNLeistungPreis BTLP
INNER JOIN dbo.BuchungTNPreis BTP
ON BTP.IDBuchungTNPreis =
BTLP.IDBuchungTNPreis_FS
WHERE
BTLP.IDBuchungTNLeistung_FS =
BTL.IDBuchungTNLeistung
AND BTP.Status IN
(N'F', N'O')
)
) X
ORDER BY
X.Bezeichnung
FOR JSON PATH
) AS LeistungenJSON
) LJSON
OUTER APPLY
(
SELECT TOP (1)
BTL.Nummer AS Skipassnummer
FROM dbo.BuchungTNLeistung BTL
INNER JOIN dbo.Leistung L
ON L.IDLeistung =
BTL.IDLeistung_FS
WHERE
BTL.IDBuchungTN_FS =
BT.IDBuchungTN
AND L.Bezeichnung LIKE N'%Skipass%'
AND NULLIF(
LTRIM(RTRIM(BTL.Nummer)),
N''
) IS NOT NULL
AND EXISTS
(
SELECT 1
FROM dbo.BuchungTNLeistungPreis BTLP
INNER JOIN dbo.BuchungTNPreis BTP
ON BTP.IDBuchungTNPreis =
BTLP.IDBuchungTNPreis_FS
WHERE
BTLP.IDBuchungTNLeistung_FS =
BTL.IDBuchungTNLeistung
AND BTP.Status IN
(N'F', N'O')
)
ORDER BY
BTL.IDBuchungTNLeistung
) SP
WHERE
B.IDReise_FS = @IDReise
AND BT.Status = N'F'
ORDER BY
B.Vorgang,
AP.Name,
AP.Vorname,
BT.Position;