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
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;
|
|
|
|
|
|
|
|
|