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 /donations.php | |
Diffstat (limited to 'donations.php')
| -rw-r--r-- | donations.php | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/donations.php b/donations.php new file mode 100644 index 0000000..428616c --- /dev/null +++ b/donations.php @@ -0,0 +1,197 @@ +<?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. + */ +?> +<? +/* vim: set ts=4 sw=4 et : */ + +$_title = "Alle Spenden"; + +require_once __DIR__ . "/check_auth.php"; + +$_constraint = ""; +if (isset($_GET['year']) && $_GET['year'] > 2000) { + $_constraint = " WHERE Geldeingang >= '" . intval($_GET['year']) . "-01-01' AND Geldeingang < '" . (intval($_GET['year']) + 1) . "-01-01'"; + $_title .= " (Jahr " . $_GET['year'] . ")"; +} +if (isset($_GET['ay']) && $_GET['ay'] > 2000) { + $_constraint = " WHERE Geldeingang >= '" . intval($_GET['ay']) . "-09-01' AND Geldeingang < '" . (intval($_GET['ay']) + 1) . "-09-01'"; + $_title .= " (Förderjahr/Akad. Jahr an FH " . $_GET['ay'] . "/" . (intval($_GET['ay'])+1) . ")"; +} +if (isset($_GET['call']) && $_GET['call'] != "") { + $_constraint = " WHERE `call` = '" . $_GET['call'] . "'"; + $_title .= " (Call " . $_GET['call'] . ")"; +} +if (isset($_GET['last']) && $_GET['last'] != "") { + $_constraint = " ORDER BY Spenden.ID DESC LIMIT " . intval($_GET['last']); + $_title .= " (Letzte " . $_GET['last'] . " <small>nach ID</small>)"; +} + +include_once __DIR__ . "/header.php"; +require_once __DIR__ . "/../includes/common.php"; +require_once __DIR__ . "/../includes/db2.php"; + +doTitle(); + +(function () use ($_constraint, $mysqli2) { + $id = "donations5"; + $sql = " +SELECT + Spenden.ID AS SpendenID, + Spenden.SuperID AS SuperSpendenID, + Person AS PersID, + CONCAT(Personen.Nachname, ', ', Personen.Vorname) AS Name, + Spenden.Organisation AS OrgaID, + Organisationen.Name AS Organisation, + legal.name AS Rechtsform, + contract AS VertrID, + CONCAT(calls.name, ' [', contracts.call, '] - ', ContractOrga.Name) AS Vertrag, + Kommentar, + Betrag, + DATE(Geldeingang) AS Geldeingang, + Förderjahr, + Spendenarten.Name AS Spendenart, + FPerson.Anrede, FPerson.Ansprache, FPerson.Vorname, FPerson.Nachname, FPerson.Geschlecht, + Organisationen.strasse AS Strasse, + Organisationen.plz AS PLZ, + Organisationen.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 FPerson ON Förderer.zuwendungen = FPerson.ID +LEFT JOIN contracts ON Spenden.contract = contracts.id +LEFT JOIN Förderer AS ContractPatron ON contracts.patron = ContractPatron.ID +LEFT JOIN Organisationen AS ContractOrga ON ContractPatron.Organisation = ContractOrga.ID +LEFT JOIN calls ON contracts.`call` = calls.shorthand +LEFT JOIN legal ON Förderer.legal = legal.id +"; + $sql .= $_constraint; + $getthdef = true; + $order = '[[1, "desc"]]'; + $entrytable = 'Spenden'; + $idcell = 'SpendenID'; + $idcellreal = 'ID'; + $types = [ + 'Spendenquittung erstellt' => 'checkbox' + ]; + $editable = [ + 'Kommentar', + 'Betrag', + 'Geldeingang', + 'Förderjahr', + 'Spendenquittung erstellt', + 'Spendenquittung verschickt' + ]; + $callback_heading = "Dokumente u. Mails"; + + $globs = glob(__DIR__ . "/../uploads/*donation*_/*.pdf", GLOB_BRACE|GLOB_NOSORT|GLOB_ERR); + $callback = function ($x) use ($globs, $_constraint, $mysqli2) { + + foreach($globs as $g) { + //foreach (glob(__DIR__ . "/../uploads/{" . $x . "donation*,*-" . $x . "donation*" . "}_/*.pdf", GLOB_BRACE|GLOB_NOSORT|GLOB_ERR) as $d) { + if (strstr($g, "/" . $x . "donation") !== false || strstr($g, "-" . $x . "donation") !== false) { + echo '<a style="color: blue !important;" href="/db/main/download.php?document&filename=' . basename($g) . '&uid=' . substr(basename(dirname($g)), 0, -1) . '">' . basename($g) . '</a>'; + echo ' <a onclick="return confirm(\'Wirklich unwiderruflich entsorgen?\');" style="color: blue !important;" href="/db/main/deldocument.php?filename=' . basename($g). '&uid=' . substr(basename(dirname($g)), 0, -1) . '"><i style="color: red !important;" class="fas fa-trash-alt"></i></a>'; + echo '<br />'; + } + } + + $sql2 = "select ID FROM mails WHERE MATCH (attached) AGAINST ('" . $x . "donation*' IN BOOLEAN MODE)"; + $stmt2 = $mysqli2->prepare($sql2); + $stmt2->bind_result($s); + $stmt2->execute(); + while ($stmt2->fetch()) { + echo "<a href='/db/email/" . $s . "'>[Mail " . $s . "]</a><br />"; + } + $stmt2->reset(); + }; + $checkboxes = true; + + $bottom = <<<EOD +<div class="admin_actionsbelow"> + Ausgewählte + <button class="medium" style="background: darkorange;" onclick="return delDonation();"><i class="fas fa-trash-alt"></i> entfernen</button> +</div> +EOD; + + include __DIR__ . '/autotable.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 erstellt`, + DATE(`Spendenquittung verschickt`) AS `Spendenquittung verschickt`, + `Spendenquittung Person` AS QuittPersID, + 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.Geschlecht, Personen.Geschlecht) AS Geschlecht, + 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 + +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 FPerson ON Förderer.zuwendungen = FPerson.ID +"; + $pdf_sql .= " WHERE Spenden.ID IN "; + $email_sql = $pdf_sql; + $pdf_file = "spendenbescheinigung"; + include __DIR__ . '/autoactions.php'; + include __DIR__ . '/autoemail.php'; + include __DIR__ . '/autopdf.php'; +?> + +<script> +function delDonation() { + $.ajaxSetup({async:false}); + $.ajax({ + type: 'POST', + url: '/db/main/deldonation.php', + data: { + 'ids': getIDs_<?=$id?>() + } + }); + window.location.reload(); + return false; +} +</script> +<? +})(); + +include_once __DIR__ . "/footer.php"; |
