You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
3.7 KiB

#Parameter1:Datum von:datetime:now
#Parameter2:Datum bis:datetime:now
drop table if exists tmp1;
drop table if exists tmp2;
drop table if exists tmp3;
drop table if exists tmp4;
/*Summe der Zahlungen für eine Behandung */
create table tmp1 (SELECT
SUM(zahlung.Betrag) AS Zahlungsbetrag,
zahlung.Nrfaktura,
faktura.Total as Fakturatotal,
'1990.01.01' as Valuta
FROM
zahlung
INNER JOIN faktura ON (zahlung.Nrfaktura = faktura.Nrfaktura)
WHERE
(nrkonto = 14) and (valuta >= '#Parameter1') AND (valuta <= '#Parameter2') and
(zahlung.nrfaktura <> 0) and zahlung.status=0
GROUP BY
zahlung.Nrfaktura,
faktura.Total
ORDER BY
valuta DESC);
/*Unvollständige Zahlungen löschen*/
delete from tmp1 where zahlungsbetrag < fakturatotal;
update tmp1 set valuta=(select valuta from zahlung where zahlung.nrfaktura=tmp1.nrfaktura order by valuta desc limit 1);
create Table Tmp2 (
SELECT
faktura.Nrfaktura,
behandlu.Nrbehandlung,
behandlu.Behandlungsbeginn,
behandlu.Behandlungsende,
behandlu.Nrbehandler,
concat(privat.name) AS Behandler,
behandlu.Nrpatient,
Concat(privat1.name, ' ', privat1.vorname) AS Patient,
tmp1.Zahlungsbetrag,
tmp1.valuta,
tmp1.Fakturatotal,
000000.00 as Leistungen_4000_Total,
000000.00 as Leistungen_4000_Behandler,
000000.00 as Leistungen_NE_Rupf,
000000.00 as Leistungen_Rest,
000000.00 as Prozent,
000000.00 as TeilbetragProzent,
000000.00 as Leistungen,
000000.00 as ZuZahlen1,
000000.00 as Vorauszahlung
FROM
tmp1
INNER JOIN faktura ON (tmp1.Nrfaktura = faktura.Nrfaktura)
INNER JOIN behandlu ON (faktura.Nrbehandlung = behandlu.Nrbehandlung)
INNER JOIN privat ON (behandlu.Nrbehandler = privat.NRPRIVAT)
INNER JOIN privat privat1 ON (behandlu.Nrpatient = privat1.NRPRIVAT)
);
update tmp2 set leistungen_4000_Total = (select sum(leistung.total) from leistung
where leistung.nrbehandlung=tmp2.nrbehandlung and ((leistung.`SSO-Nummer` < 5000) AND (leistung.`SSO-Nummer` > 3999) or leistung.`SSO-Nummer`=7000 or leistung.`SSO-Nummer`=7997));
update tmp2 set leistungen_4000_Behandler = (select sum(leistung.total)*0.28 from leistung
where leistung.nrbehandler=5305 and leistung.nrbehandlung=tmp2.nrbehandlung and ((leistung.`SSO-Nummer` < 5000) AND (leistung.`SSO-Nummer` > 3999) or leistung.`SSO-Nummer`=7000 or leistung.`SSO-Nummer`=7997));
update tmp2 set leistungen_ne_rupf = (select sum(leistung.total) from leistung
where leistung.nrbehandler<>5305 and leistung.nrbehandlung=tmp2.nrbehandlung and ((leistung.`SSO-Nummer` < 5000) AND (leistung.`SSO-Nummer` > 3999) or leistung.`SSO-Nummer`=7000 or leistung.`SSO-Nummer`=7997));
update tmp2 set leistungen_Rest = (select sum(leistung.total) from leistung
where leistung.nrbehandlung=tmp2.nrbehandlung and ((leistung.`SSO-Nummer` < 4000) or (leistung.`SSO-Nummer` > 4999) and leistung.`SSO-Nummer` <> 7000 and leistung.`SSO-Nummer`<>7997));
update tmp2 set behandler = "Terlinden-Dünner" where behandler="Dominique Terlinden-Dünner";
update tmp2 set vorauszahlung = (select sum(betrag) from zahlung where vorauszahlung=1 and status=1 and Nrbehandlung=tmp2.Nrbehandlung);
update tmp2 set prozent = 100/(leistungen_4000_Total+leistungen_Rest+vorauszahlung)*leistungen_4000_Total;
update tmp2 set TeilbetragProzent=100/leistungen_4000_Total*fakturatotal+vorauszahlung;
update tmp2 set Leistungen=leistungen_4000_Behandler/28*100;
update tmp2 set zuzahlen1 =0.00;
update tmp2 set ZuZahlen1 = leistungen/100*TeilbetragProzent*.28;
update tmp2 set ZuZahlen1 = leistungen_4000_Behandler where teilbetragProzent>100;
/*update tmp2 set leistungen_4000_Behandler = (leistungen_4000_Total+leistungen_Rest) where leistungen_4000_Behandler>0;*/
select * from tmp2 where leistungen_4000_Behandler>0;