diff options
| author | Niklas Olmes <niklas@olmes.de> | 2026-04-24 19:30:00 +0200 |
|---|---|---|
| committer | Niklas Olmes <niklas@olmes.de> | 2026-04-24 19:30:00 +0200 |
| commit | cdea8caa5617f0cb77bcbc9803759abd2df50644 (patch) | |
| tree | 2f7f1bd3af3b2396baf5403ad1a7ad00bcb7fae9 /donation.php | |
Diffstat (limited to 'donation.php')
| -rw-r--r-- | donation.php | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/donation.php b/donation.php new file mode 100644 index 0000000..dd5a29e --- /dev/null +++ b/donation.php @@ -0,0 +1,206 @@ +<?php +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +?> +<?php +/* vim: set ts=4 sw=4 et : */ + +require_once __DIR__ . "/check_auth.php"; +require_once __DIR__ . "/../includes/common.php"; +require_once __DIR__ . "/lookup.php"; +require_once __DIR__ . "/lookup_more.php"; + +(function () use ($mysqli) { + global $donationID, $persID, $orgaID; + + $donationID = $_GET['id']; + assureInt($donationID) || dead(); + + $sql = " +SELECT + Spenden.*, + Spenden.contract AS VertrID, + + Spenden.Organisation AS OrgaID, + + DATE(Spenden.Geldeingang) AS Geldeingang, + Spendenarten.Name AS Spendenart, + + Spenden.Person AS PersID, + CONCAT(Personen.Nachname, ', ', Personen.Vorname) AS Name, + + Spenden.`Spendenquittung Person` AS QuittPersID, + CONCAT(APerson.Nachname, ', ', APerson.Vorname) AS `Spendenquittung Person`, + + IF(Förderer.zuwendungen > 0, FPerson.Anrede, Personen.Anrede) AS Anrede, + IF(Förderer.zuwendungen > 0, FPerson.Ansprache, Personen.Ansprache) AS Ansprache, + IF(Förderer.zuwendungen > 0, FPerson.Vorname, Personen.Vorname) AS Vorname, + IF(Förderer.zuwendungen > 0, FPerson.Nachname, Personen.Nachname) AS Nachname, + IF(Förderer.zuwendungen > 0, FPerson.Email, Personen.Email) AS Email, + Förderer.zahlungsanmerkung AS Zahlungsanmerkung, + + SuperSpende.Betrag AS SupBetrag, + DATE(SuperSpende.Geldeingang) AS SupGeldeingang, + + SuperSpende.Person AS SupPerson, + CONCAT(SuperSpendePerson.Nachname, ', ', SuperSpendePerson.Vorname) AS SupPersonName, + + SuperSpende.Organisation AS SupOrga, + SuperSpendeOrga.Name AS SupOrgaName, + + (SuperSpende.Betrag - (SELECT SUM(SumSpende.Betrag) AS BetrUsed FROM Spenden AS SumSpende WHERE SumSpende.SuperID = Spenden.SuperID)) AS SupUnused + +FROM Spenden + +LEFT JOIN Personen ON Spenden.Person = Personen.ID +LEFT JOIN Organisationen ON Spenden.Organisation = Organisationen.ID +LEFT JOIN Förderer ON Förderer.Organisation = Organisationen.ID +LEFT JOIN Spendenarten ON Spenden.Förderart = Spendenarten.ID +LEFT JOIN Personen AS APerson ON Spenden.`Spendenquittung Person` = APerson.ID +LEFT JOIN Personen AS FPerson ON Förderer.zuwendungen = FPerson.ID + +LEFT JOIN Spenden AS SuperSpende ON Spenden.SuperID = SuperSpende.ID +LEFT JOIN Personen AS SuperSpendePerson ON SuperSpende.Person = SuperSpendePerson.ID +LEFT JOIN Organisationen AS SuperSpendeOrga ON SuperSpende.Organisation = SuperSpendeOrga.ID +"; + + $email_sql = $sql . " WHERE Spenden.ID IN "; + $sql .= "WHERE Spenden.ID=?"; + $stmt = $mysqli->prepare($sql); + $stmt->bind_param('i', $donationID); + $stmt->execute(); + $r = $stmt->get_result(); + $l = $r->fetch_object(); + $persID = $l->PersID; + $orgaID = $l->OrgaID; + + $_title = 'Spende (ID ' . $donationID . ')'; + include_once __DIR__ . "/header.php"; + + $pdf_sql = " +SELECT + Spenden.ID AS SpendenID, + Person AS PersID, + CONCAT ( + IF(Spenden.Organisation > 0, CONCAT(Organisationen.ID, 'orga', '-'), ''), + IF(Förderer.zuwendungen > 0, CONCAT(FPerson.ID, 'person', '-'), ''), + IF(Spenden.Person > 0, CONCAT(Spenden.Person, 'person', '-'), ''), + Spenden.ID, 'donation' + ) AS uid, + CONCAT(Personen.Nachname, ', ', Personen.Vorname) AS Name, + Spenden.Organisation AS OrgaID, + Organisationen.Name AS Organisation, + Kommentar, + Betrag, + DATE(Geldeingang) AS Geldeingang, + Förderjahr, + Spendenarten.Name AS Spendenart, + `Spendenquittung Person` AS QuittPersID, + CONCAT(APerson.Nachname, ', ', APerson.Vorname) AS `Spendenquittung Person`, + IF(Förderer.zuwendungen > 0, FPerson.Anrede, Personen.Anrede) AS Anrede, + IF(Förderer.zuwendungen > 0, FPerson.Ansprache, Personen.Ansprache) AS Ansprache, + IF(Förderer.zuwendungen > 0, FPerson.Vorname, Personen.Vorname) AS Vorname, + IF(Förderer.zuwendungen > 0, FPerson.Nachname, Personen.Nachname) AS Nachname, + IF(Förderer.zuwendungen > 0, FPerson.Email, Personen.Email) AS Email, + IF(Spenden.Organisation > 0, Organisationen.strasse, Personen.Straße) AS Strasse, + IF(Spenden.Organisation > 0, Organisationen.plz, Personen.PLZ) AS PLZ, + IF(Spenden.Organisation > 0, Organisationen.ort, Personen.Ort) AS Ort, + Förderer.zahlungsanmerkung AS Zahlungsanmerkung + +FROM Spenden + +LEFT JOIN Personen ON Spenden.Person = Personen.ID +LEFT JOIN Organisationen ON Spenden.Organisation = Organisationen.ID +LEFT JOIN Förderer ON Förderer.Organisation = Organisationen.ID +LEFT JOIN Spendenarten ON Spenden.Förderart = Spendenarten.ID +LEFT JOIN Personen AS APerson ON Spenden.`Spendenquittung Person` = APerson.ID +LEFT JOIN Personen AS FPerson ON Förderer.zuwendungen = FPerson.ID +"; + $pdf_sql .= " WHERE Spenden.ID IN "; + + $id = "donview"; + include __DIR__ . '/autoemail.php'; + include __DIR__ . '/autopdf.php'; +?> + +<h1 style="display: inline-block;"><?=$_title?></h1> + + <button class="small" onclick="return doEmail_donview(<?=$donationID?>);"><i class="fas fa-envelope"></i> E-Mail senden</button> +<? if (!$l->SuperID) { ?> + <button class="small" onclick="return doPDF_donview(<?=$donationID?>);"><i class="fas fa-file-pdf"></i> PDF generieren</button> + <button class="small" onclick="window.location = '/db/main/newsubdonation.php?superid=<?=$donationID?>';"><i class="fas fa-coins"></i> Spendenaufteilung anlegen</button> +<? } ?> + <button class="small" style="background-color: red;" onclick="location.href='/db/main/deldonation.php?id=<?=$donationID?>';"><i class="fas fa-trash-alt"></i></sup> Datensatz löschen</button> + +<?php + global $persXorga, $contracts, $contractsall; + + _lookup_contracts($orgaID); + $contractsorga = $contracts; + _lookup_contracts(''); + $contractsall = array_replace($contractsorga, $contracts); + + $sql = "SELECT Personen.ID, Personen.Nachname, Personen.Vorname FROM Personen_Organisationen INNER JOIN Personen ON Personen_Organisationen.Person = Personen.ID WHERE Personen_Organisationen.Organisation = ? ORDER BY Personen.Nachname"; + $stmt = $mysqli->prepare($sql); + $stmt->bind_param('i', $orgaID); + $stmt->bind_result($id, $nachname, $vorname); + $stmt->execute(); + $persXorga = []; + while ($stmt->fetch()) { + $persXorga[$id] = $nachname . ", " . $vorname; + } + $stmt->reset(); + + if ($l->SuperID) { + $id = "subdonation"; + $entrytable = "Spenden"; + $def = [ + "Aufteilung der zugrundeliegenden Super-Spende", + [6, 'Betrag', '_VertrID', '=4contract|contractsall~an Vertrag'], + [1, 'Kommentar'], + "Zugrundliegende Super-Spende", + [5, '_SuperID~SuperSpendenID', '_SupBetrag~Betrag', '_SupGeldeingang#isodate~Geldeingang', '_=2SupUnused~nicht aufgeteilter Betrag'], + "Spender", + [10, '_SupPerson~PersID', '_=9SupPersonName~Name'], + [10, '_SupOrga~OrgaID', '_=9SupOrgaName~Organisation'], + ]; + } else { + $id = "donation"; + $entrytable = "Spenden"; + $def = [ + "Allgemein", + [5, 'Betrag', 'Geldeingang#isodate', 'Förderjahr', '_Spendenart'], + [1, 'Kommentar'], + [5, '_VertrID', '=4contract|contractsall~Vertrag'], + "Spender", + [10, '_PersID', '=2Person#search_pers_id~Person setzen', '_=5Name'], + [10, '_OrgaID', '=5Organisation|organisationen', '_=4Zahlungsanmerkung'], + ]; + $links = [ + 'QuittPersID' => '/db/person', + ]; + } + + include __DIR__ . '/autoform.php'; + $stmt->reset(); +})(); + +(function () use ($donationID) { + $globstring = "{*-" . $donationID . "donation*," . $donationID . "donation*}_"; + require_once __DIR__ . "/doc.php"; + })(); + +include_once __DIR__ . '/donationsXdonation.php'; + +include_once __DIR__ . '/persXorga.php'; + +include_once __DIR__ . '/footer.php'; |
