summaryrefslogtreecommitdiff
path: root/donation.php
diff options
context:
space:
mode:
Diffstat (limited to 'donation.php')
-rw-r--r--donation.php206
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>
+
+&nbsp;<button class="small" onclick="return doEmail_donview(<?=$donationID?>);"><i class="fas fa-envelope"></i> E-Mail senden</button>
+<? if (!$l->SuperID) { ?>
+&nbsp;<button class="small" onclick="return doPDF_donview(<?=$donationID?>);"><i class="fas fa-file-pdf"></i> PDF generieren</button>
+&nbsp;<button class="small" onclick="window.location = '/db/main/newsubdonation.php?superid=<?=$donationID?>';"><i class="fas fa-coins"></i> Spendenaufteilung anlegen</button>
+<? } ?>
+&nbsp;<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';