|
Procedure Simul_Abrechnung:
BEGIN
SELECT concat(auszahlungen.knr) as knr,
(select kunden.kunde.namelang from kunden.kunde where kunden.kunde.knri = auszahlungen.knr) as Namelang,
(select kunden.kunde.hauptkunde from kunden.kunde where kunden.kunde.knri = auszahlungen.knr) as Hauptkunde,
SUM(abrechnungswertBrutto) AS "Abrechnungswert Brutto ",
round(sum(abrechnungswertBrutto/100*GKV_Grundpreis),2) as "Honorar Brutto",
round(sum(edvdatenschutz1),2) as "Datenschutzpauschale Brutto",
round(sum(abrechnungswertBrutto/100*GKV_Grundpreis)+sum(edvDatenschutz1),2) as "Gesamt Brutto",
min(auszahldatum) as "Erste Auszahlung", max(auszahldatum) as "Letzte Auszahlung" ,
sum(if(auszahlungen.auszahldatum =NULL,0,1)) as "Posteingänge mit Auszahlung ",
AVG(IF(anzahlTage BETWEEN 3 AND 5,GKV_Grundpreis, NULL)) AS gebuehr_3_tage,
sum(IF(anzahlTage BETWEEN 3 AND 5,1, 0)) AS anzahl_3_tage,
round(sum(if(anzahlTage between 3 and 5, (abrechnungswertBrutto/100*GKV_Grundpreis)+edvDatenschutz1,0)),2) as "Honorar Brutto 3 Tage (ECHT)",
round(sum(if(anzahlTage between 3 and 5, (abrechnungswertBrutto/100*simul3tage)+(if (edvDatenschutz1>0,datenschutz,0)),0)),2) as "Honorar Brutto 3 Tage (Simuliert)",
round(sum(if(anzahlTage between 3 and 5, (abrechnungswertBrutto/100*Stammdaten.abrSimul.3tage)+if(Stammdaten.abrSimul.datenschutz>=0,if (edvDatenschutz1>0, Stammdaten.abrSimul.datenschutz,edvDatenschutz), edvDatenschutz1) ,0)),2) as "Honorar Brutto 3 Tage (vorgabe Kunde)",
AVG(IF(anzahlTage between 9 and 12, GKV_Grundpreis, NULL)) as gebuehr_10_tage,
sum(IF(anzahlTage BETWEEN 9 AND 12,1, 0)) AS anzahl_10_tage,
round(sum(if(anzahlTage between 9 and 12, (abrechnungswertBrutto/100*GKV_Grundpreis)+edvDatenschutz1,0)),2) as "Honorar Brutto 10 Tage (ECHT)",
round(sum(if(anzahlTage between 9 and 12, (abrechnungswertBrutto/100*simul10tage)+(if (edvDatenschutz1>0,datenschutz,0)),0)),2) as "Honorar Brutto 10 Tage (Simuliert)",
round(sum(if(anzahlTage between 9 and 12, (abrechnungswertBrutto/100*Stammdaten.abrSimul.10tage)+if(Stammdaten.abrSimul.datenschutz>=0,if (edvDatenschutz1>0, Stammdaten.abrSimul.datenschutz,edvDatenschutz),edvDatenschutz1),0)),2) as "Honorar Brutto 10 Tage (vorgabe Kunde)",
AVG(IF(anzahlTage between 14 and 16, GKV_Grundpreis, NULL)) as gebuehr_15_tage,
sum(IF(anzahlTage BETWEEN 14 AND 16,1, 0)) AS anzahl_15_tage,
round(sum(if(anzahlTage between 14 and 16, (abrechnungswertBrutto/100*GKV_Grundpreis)+edvDatenschutz1,0)),2) as "Honorar Brutto 15 Tage (ECHT)",
round(sum(if(anzahlTage between 14 and 16, (abrechnungswertBrutto/100*simul15tage)+(if (edvDatenschutz1>0,datenschutz,0)),0)),2) as "Honorar Brutto 15 Tage (Simuliert)",
round(sum(if(anzahlTage between 14 and 16, (abrechnungswertBrutto/100*Stammdaten.abrSimul.15tage)+if(Stammdaten.abrSimul.datenschutz>=0,if (edvDatenschutz1>0, Stammdaten.abrSimul.datenschutz,edvDatenschutz),edvDatenschutz1),0)),2) as "Honorar Brutto 15 Tage (vorgabe Kunde)",
AVG(IF(anzahlTage between 19 and 21, GKV_Grundpreis, NULL)) as gebuehr_20_tage,
sum(IF(anzahlTage BETWEEN 19 AND 21,1, 0)) AS anzahl_20_tage,
round(sum(if(anzahlTage between 19 and 21, (abrechnungswertBrutto/100*GKV_Grundpreis)+edvDatenschutz1,0)),2) as "Honorar Brutto 20 Tage (ECHT)",
round(sum(if(anzahlTage between 19 and 21, (abrechnungswertBrutto/100*simul20tage)+(if (edvDatenschutz1>0,datenschutz,0)),0)),2) as "Honorar Brutto 20 Tage (Simuliert)",
round(sum(if(anzahlTage between 19 and 21, (abrechnungswertBrutto/100*Stammdaten.abrSimul.20tage)+if(Stammdaten.abrSimul.datenschutz>=0,if (edvDatenschutz1>0, Stammdaten.abrSimul.datenschutz,edvDatenschutz),edvDatenschutz1),0)),2) as "Honorar Brutto 20 Tage (vorgabe Kunde)",
AVG(IF(anzahlTage >= 24 , GKV_Grundpreis, NULL)) as gebuehr_25_tage,
sum(IF(anzahlTage >=24 ,1, 0)) AS anzahl_25_tage,
round(sum(if(anzahlTage >= 24 , (abrechnungswertBrutto/100*GKV_Grundpreis)+edvDatenschutz1,0)),2) as "Honorar Brutto 25 Tage (ECHT)",
round(sum(if(anzahlTage >= 24 , (abrechnungswertBrutto/100*simul20tage)+(if (edvDatenschutz1>0,datenschutz,0)),0)),2) as "Honorar Brutto 25 Tage (Simuliert)",
round(sum(if(anzahlTage >=24, (abrechnungswertBrutto/100*Stammdaten.abrSimul.25tage)+if(Stammdaten.abrSimul.datenschutz>=0, if (edvDatenschutz1>0, Stammdaten.abrSimul.datenschutz,edvDatenschutz),edvDatenschutz1),0)),2) as "Honorar Brutto 25 Tage (vorgabe Kunde)"
FROM auszahlungen
left JOIN V_Gebuehr_Kunde ON V_Gebuehr_Kunde.pegNr = auszahlungen.pegnr
left join Stammdaten.abrSimul on Stammdaten.abrSimul.konfigName=konfiguration and Stammdaten.abrSimul.knr = auszahlungen.knr
WHERE auszahlungen.auszahldatum between auszahlVon and auszahlBis and berufsgruppe regexp var_berufsgruppe and auszahlungen.knr regexp kunde
group by knr with rollup;
END
|
|
View V_Gebuehr_Kunde (Runs fine with select * from ..)
SELECT `absetzungen`.`honorar`.`VORGANG_ID` AS `VORGANG_ID`,`absetzungen`.`auszahlungen`.`pegnr` AS `pegNr`,`absetzungen`.`auszahlungen`.`knr` AS `knr`,`absetzungen`.`auszahlungen`.`Bgr` AS `berufsgruppe`,`absetzungen`.`auszahlungen`.`auszahldatum` AS `abrechnungsdatum`,`absetzungen`.`auszahlungen`.`eingangsdatum` AS `eingangsdatum`,`absetzungen`.`auszahlungen`.`anlagedatum` AS `anlagedatum`,`absetzungen`.`auszahlungen`.`auszahldatum1` AS `restauszahlung`, SUM(IF(`absetzungen`.`honorarPos`.`FAKTOR_ID` = 11,`absetzungen`.`honorarPos`.`GEBUEHR`,0)) AS `GKV_honorarProRezept`, SUM(IF(`absetzungen`.`honorarPos`.`FAKTOR_ID` = 12,`absetzungen`.`honorarPos`.`GEBUEHR`,0)) AS `PKV_HonorarProRezept`, SUM(IF(`absetzungen`.`honorarPos`.`FAKTOR_ID` = 21,`absetzungen`.`honorarPos`.`GEBUEHR`,0)) AS `GKV_mindestgebuehr`, SUM(IF(`absetzungen`.`honorarPos`.`FAKTOR_ID` = 22,`absetzungen`.`honorarPos`.`GEBUEHR`,0)) AS `PKV_mindestgebuehr`, SUM(IF(`absetzungen`.`honorarPos`.`FAKTOR_ID` = 23,`absetzungen`.`honorarPos`.`GEBUEHR`,0)) AS `ET_mindestgebuehr`,`absetzungen`.`auszahlungen`.`auszahltage` AS `anzahlTage`,`absetzungen`.`auszahlungen`.`auszahltageart` AS `tageArt`, SUM(IF(`absetzungen`.`honorarPos`.`FAKTOR_ID` = 1 AND `absetzungen`.`honorarPosAufteilung`.`ABRECHNUNGSGEBUEHR_ID` IN (1,13),`absetzungen`.`honorarPosAufteilung`.`PROZENTSATZ`,0)) AS `GKV_grundpreis`, SUM(IF(`absetzungen`.`honorarPos`.`FAKTOR_ID` = 4 AND `absetzungen`.`honorarPosAufteilung`.`ABRECHNUNGSGEBUEHR_ID` IN (1,13),`absetzungen`.`honorarPosAufteilung`.`PROZENTSATZ`,0)) AS `PKV_grundpreis`, SUM(IF(`absetzungen`.`honorarPos`.`FAKTOR_ID` = 15 AND `absetzungen`.`honorarPosAufteilung`.`ABRECHNUNGSGEBUEHR_ID` IN (1,13),`absetzungen`.`honorarPosAufteilung`.`PROZENTSATZ`,0)) AS `ET_Grundpreis`, SUM(IF(`INF`.`FAKTOR_HONORARLEISTUNGSART`.`HONORARLEISTUNGSART_ID` = 60,`absetzungen`.`honorarLeistungArt`.`PROZENT`,0)) AS `Arztnummernstatistik`, SUM(IF(`INF`.`FAKTOR_HONORARLEISTUNGSART`.`HONORARLEISTUNGSART_ID` = 59,`absetzungen`.`honorarLeistungArt`.`PROZENT`,0)) AS `Mitarbeiterstatistik`,`absetzungen`.`honorar`.`GESAMTBETRAGBRUTTO` AS `gesamtbetragBrutto`,`absetzungen`.`honorar`.`GESAMTBETRAGZUZAHLUNG` AS `gesamtbetragZuzahlung`,`absetzungen`.`honorar`.`GESAMTBETRAGNETTO` AS `gesamtbetragNetto`,`absetzungen`.`honorar`.`BELEGANZAHLVOMBELEGWERTREAL` AS `belegAnzahl`, IF(`absetzungen`.`auszahlungen`.`besonderheit` = 'interne Neuabrechnung',1,0) AS `kostenlos`,`absetzungen`.`honorar`.`EDVDATENPAUSCHALE` AS `edvDatenschutz1`,`absetzungen`.`honorar`.`MWST` AS `mwst`,`absetzungen`.`honorar`.`GESAMTBETRAGVERMINDERT` AS `gesamtbetragVermindert`,`absetzungen`.`honorar`.`HONORARSUMME_NETTO` AS `honorarNetto`,`absetzungen`.`honorar`.`VO_GEBUEHR` AS `voGebuehr`
FROM (((((((`absetzungen`.`auszahlungen`
LEFT JOIN `absetzungen`.`honorar` ON(`absetzungen`.`honorar`.`VORGANG_ID` = `absetzungen`.`auszahlungen`.`pegnr`))
LEFT JOIN `absetzungen`.`honorarPos` ON(`absetzungen`.`honorarPos`.`HONORAR_ID` = `absetzungen`.`honorar`.`HONORAR_ID`))
LEFT JOIN `INF`.`FAKTOR` ON(`INF`.`FAKTOR`.`FAKTOR_ID` = `absetzungen`.`honorarPos`.`FAKTOR_ID`))
LEFT JOIN `absetzungen`.`honorarPosAufteilung` ON(`absetzungen`.`honorarPosAufteilung`.`POS_ID` = `absetzungen`.`honorarPos`.`POS_ID`))
LEFT JOIN `absetzungen`.`honorarZusatzleistung` ON(`absetzungen`.`honorarZusatzleistung`.`HONORAR_ID` = `absetzungen`.`honorar`.`HONORAR_ID`))
LEFT JOIN `absetzungen`.`honorarLeistungArt` ON(`absetzungen`.`honorarLeistungArt`.`HONORARLEISTUNG_ID` = `absetzungen`.`honorarZusatzleistung`.`HONORARLEISTUNG_ID`))
LEFT JOIN `INF`.`FAKTOR_HONORARLEISTUNGSART` ON(`INF`.`FAKTOR_HONORARLEISTUNGSART`.`HONORARLEISTUNGSART_ID` = `absetzungen`.`honorarLeistungArt`.`HONORARLEISTUNGSART_ID`))
WHERE `absetzungen`.`auszahlungen`.`pegnr` IS NOT NULL
GROUP BY `absetzungen`.`auszahlungen`.`pegnr`
|