Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b7704ff03 | ||
|
|
2779f505df | ||
|
|
490c4f12a4 | ||
|
|
3dfbf1c9c7 | ||
|
|
3f7d070d7f | ||
|
|
8fe43d6802 | ||
|
|
b76d883fbe | ||
|
|
d8fff4aeb6 |
@@ -16,6 +16,10 @@ for f in $(git ls-files "*.php" | grep -vE "^(incs/(tcpdf|pChart|PHPMailer|WebAu
|
||||
|
||||
Zum Ausführen braucht es einen Webserver mit PHP, eine MariaDB/MySQL-Instanz und die externe Konfigurationsdatei (siehe unten). Ohne die Konfiguration springt `index.php` in den Setup-Modus (`update/firststart.php`). **Nur** dann: Das Setup läuft ohne Login, schreibt die Config und kann die Datenbank leeren. Deshalb wird `action=setup` bei gültiger Config verworfen, und `firststart.php` und `rebuild-settings.php` brechen selbst ab. Werte, die in die Config geschrieben werden, immer über `var_export()` maskieren – die Config ist ausführbarer PHP-Code.
|
||||
|
||||
**Lokal testen** (auch unter Windows): Die Umgebungsvariable `KV_CONFIG_PATH` ersetzt `CONFIG_PATH`. Die Config-Datei heißt nach dem Verzeichnisnamen des Checkouts, also z.B. `Kundenverwaltung_settings.conf`; `$lokale_netze` muss `127.0.0.1`/`::1` enthalten, sonst gibt es kein Passwortfeld. Start im Repo-Verzeichnis mit `php -S 127.0.0.1:8765`. Die PDF-Vorschau als Bild (`makeImageFromPDF()`) braucht ImageMagick unter `/opt/bin/convert` und funktioniert lokal nicht.
|
||||
|
||||
Die Testumgebung zum Umbau liegt **neben** dem Repo in `../kundentest` (portable MariaDB auf Port 3307, Testdatengenerator, Vergleich von altem und neuem Code, Schreib- und Template-Tests). `../kundentest/LIESMICH.md` erklärt sie; alles auf einmal läuft mit `sh alles.sh neu` in dem Verzeichnis.
|
||||
|
||||
## Die zwei zentralen Mechanismen
|
||||
|
||||
### 1. Das Verzeichnis bestimmt die Instanz
|
||||
@@ -86,14 +90,37 @@ Eine Schemaänderung besteht also aus: neuer Eintrag **vorn** in `update/version
|
||||
|
||||
**Umbau läuft (Branch `db-umbau`):** Verbindungen entstehen nur noch über `db_verbinden()` aus `incs/db.php`. Die Funktion setzt `utf8mb4`, den strikten `sql_mode` und schaltet die mysqli-Exceptions ab. Neue und umgebaute Abfragen nutzen `db_abfrage()`, `db_zeilen()`, `db_zeile()` und `db_wert()` mit `?`-Platzhaltern statt String-Verkettung. Ziel-Schema ist das der Instanz `kunden` in `utf8mb4`; die Altdaten sind teils doppelt kodiert und werden per Migration repariert. Dieser Stand darf nur zusammen mit der migrierten Datenbank live gehen.
|
||||
|
||||
Regeln für den Umbau:
|
||||
|
||||
- **Ergebnisse sind Strings** wie früher bei `mysqli_query()`: `db_zeilen()`, `db_zeile()`, `db_wert()` und `db_zuordnung()` wandeln die nativen int/float-Werte der Prepared Statements um. Wer `db_abfrage()` selbst ausliest, bekommt native Typen.
|
||||
- **Formularwerte** über `formularText()`, `formularZahl()` (Komma als Dezimaltrenner, leer wird 0) und `formularGanzzahl()` aus `incs/saveNchange.php` holen – der strikte Modus lehnt `''` in Zahlenspalten ab.
|
||||
- **Änderungsprotokoll:** `saveLog()` bekommt den Text aus `db_sql_text()`. Die Tabelle `log` ist reine Dokumentation, nichts daraus wird ausgeführt.
|
||||
- **Mehrschrittiges Speichern** in eine Transaktion, damit bei Fehlern keine halben Datensätze bleiben — aber über `beginneSpeichern()` / `beendeSpeichern()` aus `incs/saveNchange.php`, nicht über `mysqli_begin_transaction()` direkt. Die Speicherfunktionen rufen sich gegenseitig auf (`savePart()` → `saveAdress()` → `updateKunde()` → `saveAdress()`, `loeschePartner()` → `delRechnung()`), MariaDB kennt aber keine geschachtelten Transaktionen; ein Zähler sorgt dafür, dass nur der äußerste Aufruf öffnet und schließt.
|
||||
- **Tabellen- und Spaltennamen** lassen sich nicht binden; nur feste Werte aus dem Code einsetzen, `LIMIT` als `(int)`.
|
||||
- **Suchabfragen** (`create*Qry()` in `incs/listfuncs.php`) liefern `array("all", "limited", "params")`. Aufrufer nutzen `db_abfrage($dbconn, $q["limited"], $q["params"])` und `zaehleTreffer()`. Die Suchbegriffe sind Platzhalterwerte, `%` und `_` darin bleiben absichtlich Jokerzeichen — so ist die Suche dokumentiert. In der Autovervollständigung (`ajax/auto/`) werden sie dagegen über `db_like_praefix()` entwertet.
|
||||
- **Werte aus der Datenbank sind kein HTML.** `GROUP_CONCAT` trennt mit einem Zeilenumbruch; zusammengebaut und escaped wird erst in `zeilenHtml()` bzw. `makenameline()`/`makeadressline()`/`maketelline()`.
|
||||
|
||||
Umgebaut: Login/Passkeys, Benutzereinstellungen, Änderungsprotokoll, Rechnungsmodul (`incs/rechnung.php`, `sites/rechnungadd.php`, `sites/umschlagshow.php`, `ajax/autosave.php`, `ajax/preview.php`, Rechnungssuche), Kunden und Lieferanten (`incs/saveNchange.php` samt `sites/kunden*.php`, `sites/liefer*.php`, Kunden-, Lieferanten-, Adress- und Kommissionssuche, `ajax/auto/`), Termine (`incs/termin.php` samt `sites/termin*.php`, Terminliste, Terminzettel). Offen: Projekte, Zeiten, Benutzerverwaltung, der Rest von `incs/makepdf.php`, `update/`.
|
||||
|
||||
Prozedurales `mysqli`. `$dbconn` wird zusätzlich in `$_SESSION["dbconn"]` abgelegt, damit `incs/mysql_ecape_wrapper.php` eine globale Funktion `mysql_escape_string()` als Shim über diese Verbindung bereitstellen kann — ein Überbleibsel der `mysql_*`-Ära, das in altem Code noch aufgerufen wird.
|
||||
|
||||
SQL wird durchgehend per String-Verkettung gebaut. Escaping ist Handarbeit über `mysqli_real_escape_string($dbconn, …)` und muss bei jeder Änderung mitgedacht werden.
|
||||
|
||||
## Termine
|
||||
|
||||
Ein Termin über mehrere Tage ist eine **Reihe einzelner Zeilen** in `termin`, die alle dieselbe `main_id` tragen — die id der ersten Zeile (des „Hauptsatzes“). Der Kalender zeigt die Zeilen einzeln, die Terminliste fasst sie über `main_id` zusammen.
|
||||
|
||||
Beim Speichern bleibt der Hauptsatz immer stehen und wird aktualisiert; nur die Folgetage werden gelöscht und neu angelegt. Der Termin behält dadurch seine id, egal ob aus einem Tag mehrere werden oder umgekehrt — Verweise auf die id (Drucken, Links, Protokoll) bleiben gültig. `terminHauptsatz()` löst dafür jede Zeilen-id auf ihre Reihe auf, damit auch der Einstieg über eine Nebenzeile funktioniert.
|
||||
|
||||
Urlaub und Krankheit sind Termine ohne Kundenadresse. Ihre Typ-ids sind fest verdrahtet — `TERMTYP_URLAUB` = 0 und `TERMTYP_KRANKHEIT` = 5 in `incs/termin.php`; `incs/users.php` rechnet den Urlaubsanspruch über `typ = 0` aus und `templates/addtermin.tpl` blendet danach die Felder um. `termtyp` muss also eine Zeile mit der id 0 enthalten; beim Kopieren einer Datenbank braucht es dafür `NO_AUTO_VALUE_ON_ZERO`, sonst macht MariaDB eine 1 daraus.
|
||||
|
||||
Ganztägige Termine haben die Dauer `24:00:00` — die Terminliste unterscheidet die Registerkarten daran.
|
||||
|
||||
## Fallstricke
|
||||
|
||||
- **`smarty/` enthält Smarty 4.5.6** — der schlichte Verzeichnisname sagt nichts über die Version.
|
||||
- **PHPMailer liegt in zwei Versionen parallel und beide sind aktiv:** `index.php` lädt `incs/PHPMailer_v6` für den Rechnungsversand, `sites/projectadd.php` dagegen `incs/PHPMailer_v5.1`. Keine der beiden ist entfernbar, ohne den jeweiligen Aufrufer umzustellen.
|
||||
- **PDF-Schriften nur über `PDF_SCHRIFT_SERIF` / `PDF_SCHRIFT_SANS`** (oben in `incs/makepdf.php`, FreeSerif/FreeSans). Die eingebauten PDF-Schriften Times/Helvetica können nur westeuropäische Zeichen; aus ř, ł, č würde ein „?“.
|
||||
- **`incs/font/` gehört zu pChart, nicht zu TCPDF.** Die TTFs dort werden von `stats.php` für die Diagramme geladen; TCPDF bringt seine Schriften in `incs/tcpdf/fonts/` selbst mit.
|
||||
- **`index.php` setzt `error_reporting(E_ERROR | E_PARSE)`.** Warnungen und Notices sind unterdrückt, und der Code verlässt sich darauf — nicht ohne Not hochdrehen, sonst überflutet es die Ausgabe.
|
||||
- **`templates_c/`, `ajax/templates_c/` und `temp/` müssen für den Webserver schreibbar sein.** Sie sind git-ignoriert und nur über `.gitkeep` im Repo vorhanden.
|
||||
@@ -111,4 +138,6 @@ Klassischer Login plus WebAuthn/FIDO2. Server-Seite: `authServer.php` mit `incs/
|
||||
|
||||
Am 2026-08-28 wurden tote Pfade entfernt: `smarty3/` (ungenutztes Smarty 3.1.6), `incs/tcpdf_old/`, `incs/fpdf.php` samt FPDF-Schriftmetriken und `incs/font/makefont/`, `sites/makepdf_OLD.php`, `incs/users_old.php` und `oldindex.php`. Auf keines davon verwies noch Code.
|
||||
|
||||
Am 2026-09-22 kam `templates/calendar_month.tpl` dazu (Monatsansicht des Kalenders): kein Code band es ein, und unter PHP 8 lief es in einen Fehler.
|
||||
|
||||
Das Repository wurde am 2026-08-28 neu initialisiert. Die mitgelieferte Historie von 2014 war irreparabel beschädigt und wurde verworfen — der erste Commit ist der Ausgangsstand, nicht der Projektbeginn.
|
||||
|
||||
+39
-43
@@ -1,50 +1,46 @@
|
||||
<?php
|
||||
|
||||
require_once("./connectmysql.php");
|
||||
require_once("./autofuncs.php");
|
||||
|
||||
if(!$err)
|
||||
/*
|
||||
* Artikel-Autovervollständigung für das Rechnungsformular: je Bezeichnung
|
||||
* der zuletzt angelegte Artikel, dazu Preis und Eigenschaften aus seiner
|
||||
* letzten Verwendung.
|
||||
*/
|
||||
if(!$err && autoBegriff() !== "")
|
||||
{
|
||||
if($_GET["term"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT MAX(artikel.id) AS id FROM artikel
|
||||
JOIN artikeltyp ON typ_id = artikeltyp.id
|
||||
WHERE artikel.bezeichn LIKE '".$_GET["term"]."%' AND dropdown = 1 AND YEAR(artikel.datetime) >= YEAR(NOW())-1 GROUP BY artikel.bezeichn") or die(mysqli_error($dbconn));
|
||||
if($tmpres=mysqli_fetch_array($qry))
|
||||
{
|
||||
$innerqry = mysqli_query($dbconn,"SELECT artikel.bezeichn, artikel.typ_id, artikel.einheit_id, artikel.id, artikel_rechn.preis, artikel_rechn.rech_id, artikel_rechn.posnr FROM artikel
|
||||
JOIN artikeltyp ON typ_id = artikeltyp.id
|
||||
JOIN artikel_rechn ON artikel.id = art_id
|
||||
WHERE artikel.id = ".$tmpres["id"]." ORDER BY artikel_rechn.art_id DESC LIMIT 1") or die(mysqli_error($dbconn));
|
||||
$res = mysqli_fetch_array($innerqry);
|
||||
echo "[ ";
|
||||
echo '{"value": "'.$res[0].'","typ": "'.$res[1].'","einh": "'.$res[2].'","preis": "'.number_format($res[4],2,",","").'","eig":[';
|
||||
$qry2 = mysqli_query($dbconn,"SELECT bezeichn, wert, einheit_id FROM eigensch
|
||||
JOIN artikel_eigensch ON eig_id = eigensch.id
|
||||
WHERE art_id='".$res[3]."' AND rech_id='".$res[5]."' AND artposnr = '".$res[6]."' ORDER BY posnr ASC");
|
||||
if($res2 = mysqli_fetch_array($qry2))
|
||||
echo '{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
|
||||
while($res2=mysqli_fetch_array($qry2))
|
||||
echo ',{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
|
||||
echo ']}';
|
||||
while($tmpres=mysqli_fetch_array($qry))
|
||||
{
|
||||
$innerqry = mysqli_query($dbconn,"SELECT artikel.bezeichn, artikel.typ_id, artikel.einheit_id, artikel.id, artikel_rechn.preis, artikel_rechn.rech_id, artikel_rechn.posnr FROM artikel
|
||||
$treffer = db_zeilen($dbconn, "SELECT MAX(artikel.id) AS id FROM artikel
|
||||
JOIN artikeltyp ON typ_id = artikeltyp.id
|
||||
JOIN artikel_rechn ON artikel.id = art_id
|
||||
WHERE artikel.id = ".$tmpres["id"]." ORDER BY artikel_rechn.art_id DESC LIMIT 1") or die(mysqli_error($dbconn));
|
||||
$res = mysqli_fetch_array($innerqry);
|
||||
echo ',{"value": "'.$res[0].'","typ": "'.$res[1].'","einh": "'.$res[2].'","preis": "'.number_format($res[4],2,",","").'","eig":[';
|
||||
$qry2 = mysqli_query($dbconn,"SELECT bezeichn, wert, einheit_id FROM eigensch
|
||||
JOIN artikel_eigensch ON eig_id = eigensch.id
|
||||
WHERE art_id='".$res[0]."' AND rech_id='".$res[5]."' AND artposnr = '".$res[6]."' ORDER BY posnr ASC");
|
||||
if($res2 = mysqli_fetch_array($qry2))
|
||||
echo '{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
|
||||
while($res2=mysqli_fetch_array($qry2))
|
||||
echo ',{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
|
||||
echo ']}';
|
||||
}
|
||||
echo "]";
|
||||
}
|
||||
WHERE artikel.bezeichn LIKE ? AND dropdown = 1
|
||||
AND YEAR(artikel.datetime) >= YEAR(NOW())-1
|
||||
GROUP BY artikel.bezeichn LIMIT 25",
|
||||
array(db_like_praefix(autoBegriff())));
|
||||
|
||||
$liste = array();
|
||||
foreach((array)$treffer as $t)
|
||||
{
|
||||
$art = db_zeile($dbconn, "SELECT artikel.bezeichn, artikel.typ_id, artikel.einheit_id, artikel.id,
|
||||
artikel_rechn.preis, artikel_rechn.rech_id, artikel_rechn.posnr
|
||||
FROM artikel
|
||||
JOIN artikeltyp ON artikel.typ_id = artikeltyp.id
|
||||
JOIN artikel_rechn ON artikel.id = art_id
|
||||
WHERE artikel.id = ? ORDER BY artikel_rechn.art_id DESC LIMIT 1",
|
||||
array($t["id"]));
|
||||
if(!$art)
|
||||
continue;
|
||||
$eigensch = db_zeilen($dbconn, "SELECT bezeichn AS des, wert AS val, einheit_id AS einh
|
||||
FROM eigensch
|
||||
JOIN artikel_eigensch ON eig_id = eigensch.id
|
||||
WHERE art_id = ? AND rech_id = ? AND artposnr = ? ORDER BY posnr ASC",
|
||||
array($art["id"], $art["rech_id"], $art["posnr"]));
|
||||
$liste[] = array(
|
||||
"value" => $art["bezeichn"],
|
||||
"typ" => $art["typ_id"],
|
||||
"einh" => $art["einheit_id"],
|
||||
"preis" => number_format((float)$art["preis"], 2, ",", ""),
|
||||
"eig" => $eigensch ? $eigensch : array(),
|
||||
);
|
||||
}
|
||||
header("Content-Type: application/json; charset=utf-8");
|
||||
echo json_encode($liste, JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/*
|
||||
* Gemeinsames für die Autovervollständigung der Formulare.
|
||||
*
|
||||
* Die Endpunkte liefern eine JSON-Liste, die jQuery UI direkt als
|
||||
* Vorschlagsliste verwendet: "value" ist der Vorschlag selbst, die übrigen
|
||||
* Schlüssel füllen weitere Felder desselben Formulars (siehe die
|
||||
* focus-Handler in den Templates).
|
||||
*/
|
||||
|
||||
/* Suchbegriff aus der Anfrage, "" wenn keiner da ist */
|
||||
function autoBegriff()
|
||||
{
|
||||
return isset($_GET["term"]) && is_string($_GET["term"]) ? trim($_GET["term"]) : "";
|
||||
}
|
||||
|
||||
/*
|
||||
* Führt die Abfrage aus und gibt das Ergebnis als JSON aus. Die Spalten
|
||||
* heißen bereits so, wie das Formular sie erwartet. json_encode() kümmert
|
||||
* sich ums Maskieren - früher war die Liste von Hand zusammengesetzt und
|
||||
* ein Anführungszeichen im Ortsnamen machte sie unbrauchbar.
|
||||
*/
|
||||
function autoAusgabe($dbconn, $sql, $params)
|
||||
{
|
||||
$zeilen = db_zeilen($dbconn, $sql, $params);
|
||||
header("Content-Type: application/json; charset=utf-8");
|
||||
echo json_encode($zeilen ? $zeilen : array(), JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
+5
-19
@@ -1,22 +1,8 @@
|
||||
<?php
|
||||
require_once("./connectmysql.php");
|
||||
if(!$err)
|
||||
{
|
||||
require_once("./autofuncs.php");
|
||||
|
||||
if($_GET["term"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT bank,blz FROM bank WHERE bank LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY bank ORDER BY bank ASC") or die(mysqli_error($dbconn));
|
||||
if($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo "[ ";
|
||||
|
||||
echo '{"value": "'.$res[0].'","blz":"'.$res[1].'"}';
|
||||
while($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo ',{"value":"'.$res[0].'","blz":"'.$res[1].'"}';
|
||||
}
|
||||
echo "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
if(!$err && autoBegriff() !== "")
|
||||
autoAusgabe($dbconn, "SELECT bank AS value, blz FROM bank
|
||||
WHERE bank LIKE ? GROUP BY bank ORDER BY bank ASC LIMIT 25",
|
||||
array(db_like_praefix(autoBegriff())));
|
||||
|
||||
+6
-18
@@ -1,20 +1,8 @@
|
||||
<?php
|
||||
require_once("./connectmysql.php");
|
||||
if(!$err)
|
||||
{
|
||||
if($_GET["term"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT blz,bank FROM bank WHERE blz LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY blz ORDER BY blz ASC") or die(mysqli_error($dbconn));
|
||||
if($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo "[ ";
|
||||
echo '{"value": "'.$res[0].'","bank":"'.$res[1].'"}';
|
||||
while($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo ',{"value":"'.$res[0].'","bank":"'.$res[1].'"}';
|
||||
}
|
||||
echo "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
require_once("./autofuncs.php");
|
||||
|
||||
if(!$err && autoBegriff() !== "")
|
||||
autoAusgabe($dbconn, "SELECT blz AS value, bank FROM bank
|
||||
WHERE blz LIKE ? GROUP BY blz ORDER BY blz ASC LIMIT 25",
|
||||
array(db_like_praefix(autoBegriff())));
|
||||
|
||||
+5
-19
@@ -1,22 +1,8 @@
|
||||
<?php
|
||||
require_once("./connectmysql.php");
|
||||
require_once("./autofuncs.php");
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
|
||||
if($_GET["term"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT land FROM land WHERE land LIKE '".mysql_escape_string($_GET["term"])."%' ORDER BY land ASC") or die(mysqli_error($dbconn));
|
||||
if($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo "[ ";
|
||||
echo '{"value": "'.$res[0].'"}';
|
||||
while($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo ',{"value":"'.$res[0].'"}';
|
||||
}
|
||||
echo "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
if(!$err && autoBegriff() !== "")
|
||||
autoAusgabe($dbconn, "SELECT land AS value FROM land
|
||||
WHERE land LIKE ? ORDER BY land ASC LIMIT 25",
|
||||
array(db_like_praefix(autoBegriff())));
|
||||
|
||||
+6
-19
@@ -1,22 +1,9 @@
|
||||
<?php
|
||||
require_once("./connectmysql.php");
|
||||
require_once("./autofuncs.php");
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
|
||||
if($_GET["term"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT ort, plz, land, vwahl FROM ort JOIN land ON land.id = ort.land_id WHERE ort LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY ort ORDER BY ort ASC") or die(mysqli_error($dbconn));
|
||||
if($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo "[ ";
|
||||
echo '{"value": "'.$res[0].'","plz":"'.$res[1].'","lnd":"'.$res[2].'","vwl":"'.$res[3].'"}';
|
||||
while($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo ',{"value":"'.$res[0].'","plz":"'.$res[1].'","lnd":"'.$res[2].'","vwl":"'.$res[3].'"}';
|
||||
}
|
||||
echo "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
if(!$err && autoBegriff() !== "")
|
||||
autoAusgabe($dbconn, "SELECT ort AS value, plz, land AS lnd, vwahl AS vwl
|
||||
FROM ort JOIN land ON land.id = ort.land_id
|
||||
WHERE ort LIKE ? GROUP BY ort ORDER BY ort ASC LIMIT 25",
|
||||
array(db_like_praefix(autoBegriff())));
|
||||
|
||||
+6
-20
@@ -1,23 +1,9 @@
|
||||
<?php
|
||||
require_once("./connectmysql.php");
|
||||
require_once("./autofuncs.php");
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
|
||||
if($_GET["term"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT ortsteil, plz, ort, land, vwahl FROM ort JOIN land ON land.id = ort.land_id WHERE ortsteil LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY ortsteil ORDER BY ort ASC") or die(mysqli_error($dbconn));
|
||||
if($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo "[ ";
|
||||
|
||||
echo '{"value": "'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].',"lnd":"'.$res[3].'","vwl":"'.$res[3].'"}';
|
||||
while($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo ',{"value":"'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].',"lnd":"'.$res[3].'","vwl":"'.$res[3].'"}';
|
||||
}
|
||||
echo "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
if(!$err && autoBegriff() !== "")
|
||||
autoAusgabe($dbconn, "SELECT ortsteil AS value, plz, ort, land AS lnd, vwahl AS vwl
|
||||
FROM ort JOIN land ON land.id = ort.land_id
|
||||
WHERE ortsteil LIKE ? GROUP BY ortsteil ORDER BY ort ASC LIMIT 25",
|
||||
array(db_like_praefix(autoBegriff())));
|
||||
|
||||
+6
-20
@@ -1,23 +1,9 @@
|
||||
<?php
|
||||
require_once("./connectmysql.php");
|
||||
require_once("./autofuncs.php");
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
|
||||
if($_GET["term"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT plz, ort, land FROM ort JOIN land ON land.id = ort.land_id WHERE plz LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY plz ORDER BY plz ASC") or die(mysqli_error($dbconn));
|
||||
if($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo "[ ";
|
||||
|
||||
echo '{"value": "'.$res[0].'","ort":"'.$res[1].'","lnd":"'.$res[2].'","vwl":"'.$res[3].'"}';
|
||||
while($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo ',{"value":"'.$res[0].'","ort":"'.$res[1].'","lnd":"'.$res[2].'","vwl":"'.$res[3].'"}';
|
||||
}
|
||||
echo "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
if(!$err && autoBegriff() !== "")
|
||||
autoAusgabe($dbconn, "SELECT plz AS value, ort, land AS lnd, vwahl AS vwl
|
||||
FROM ort JOIN land ON land.id = ort.land_id
|
||||
WHERE plz LIKE ? GROUP BY plz ORDER BY plz ASC LIMIT 25",
|
||||
array(db_like_praefix(autoBegriff())));
|
||||
|
||||
+8
-20
@@ -1,23 +1,11 @@
|
||||
<?php
|
||||
require_once("./connectmysql.php");
|
||||
require_once("./autofuncs.php");
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
|
||||
if($_GET["term"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT str, plz, ort, land FROM strasse JOIN ort ON ort.id = strasse.ort_id JOIN land ON land.id = ort.land_id WHERE str LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY str ORDER BY str ASC") or die(mysqli_error($dbconn));
|
||||
if($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo "[ ";
|
||||
|
||||
echo '{"value": "'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].'","lnd":"'.$res[3].'"}';
|
||||
while($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo ',{"value": "'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].'","lnd":"'.$res[3].'"}';
|
||||
}
|
||||
echo "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
if(!$err && autoBegriff() !== "")
|
||||
autoAusgabe($dbconn, "SELECT str AS value, plz, ort, ortsteil AS otl, land AS lnd
|
||||
FROM strasse
|
||||
JOIN ort ON ort.id = strasse.ort_id
|
||||
JOIN land ON land.id = ort.land_id
|
||||
WHERE str LIKE ? GROUP BY str ORDER BY str ASC LIMIT 25",
|
||||
array(db_like_praefix(autoBegriff())));
|
||||
|
||||
+6
-19
@@ -1,22 +1,9 @@
|
||||
<?php
|
||||
require_once("./connectmysql.php");
|
||||
require_once("./autofuncs.php");
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
|
||||
if($_GET["term"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT vwahl, plz, ort, ortsteil, land FROM ort JOIN land ON land.id = ort.land_id WHERE vwahl LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY vwahl ORDER BY vwahl ASC") or die(mysqli_error($dbconn));
|
||||
if($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo "[ ";
|
||||
echo '{"value": "'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].'","otl":"'.$res[3].'","lnd":"'.$res[4].'"}';
|
||||
while($res=mysqli_fetch_array($qry))
|
||||
{
|
||||
echo ',{"value": "'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].'","otl":"'.$res[3].'","lnd":"'.$res[4].'"}';
|
||||
}
|
||||
echo "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
if(!$err && autoBegriff() !== "")
|
||||
autoAusgabe($dbconn, "SELECT vwahl AS value, plz, ort, ortsteil AS otl, land AS lnd
|
||||
FROM ort JOIN land ON land.id = ort.land_id
|
||||
WHERE vwahl LIKE ? GROUP BY vwahl ORDER BY vwahl ASC LIMIT 25",
|
||||
array(db_like_praefix(autoBegriff())));
|
||||
|
||||
+7
-179
@@ -9,202 +9,30 @@ require('../smarty/libs/Smarty.class.php');
|
||||
$smarty = new Smarty;
|
||||
|
||||
|
||||
|
||||
if(!isset($err))
|
||||
{
|
||||
$show = "";
|
||||
if(isset($_POST["show_firmaanr"]))
|
||||
$show .= str_pad($_POST["show_firmaanr"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_firma"]))
|
||||
$show .= str_pad($_POST["show_firma"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_anr"]))
|
||||
$show .= str_pad($_POST["show_anr"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if( isset($_POST["show_titel"]))
|
||||
$show .= str_pad($_POST["show_titel"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_name"]))
|
||||
$show .= str_pad($_POST["show_name"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_anr2"]))
|
||||
$show .= str_pad($_POST["show_anr2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_titel2"]))
|
||||
$show .= str_pad($_POST["show_titel2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_name2"]))
|
||||
$show .= str_pad($_POST["show_name2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_str"]))
|
||||
$show .= str_pad($_POST["show_str"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_ort"]))
|
||||
$show .= str_pad($_POST["show_ort"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_land"]))
|
||||
$show .= str_pad($_POST["show_land"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_zusatz"]))
|
||||
$show .= str_pad($_POST["show_zusatz"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
|
||||
if(isset($_POST["anr1"]))
|
||||
$anr1 = trim($_POST["anr1"]);
|
||||
else
|
||||
$anr1 = "";
|
||||
if(isset($_POST["anr2"]))
|
||||
$anr2 = trim($_POST["anr2"]);
|
||||
else
|
||||
$anr2 = "";
|
||||
if(isset($_POST["intro"]))
|
||||
$intro = trim($_POST["intro"]);
|
||||
else
|
||||
$intro = "";
|
||||
|
||||
$adrerw = trim($_POST["adresserweiterung"]);
|
||||
$outro = trim($_POST["outro"]);
|
||||
$type = $_POST["type"];
|
||||
$adressid = $_POST["adressid"];
|
||||
$partnerid = $_POST["partnerid"];
|
||||
$mwst = $_POST["mwst"];
|
||||
$zahlziel = $_POST["zahlziel"];
|
||||
$wahrung = $_POST["wahrung"];
|
||||
if(isset($_POST["sub_mwst"]))
|
||||
$sub_mwst = $_POST["sub_mwst"];
|
||||
else
|
||||
$sub_mwst = "";
|
||||
$rabatt = $_POST["rabatt"];
|
||||
$rabattdesc = $_POST["rabattdesc"];
|
||||
$lieferdatum = $_POST["lieferdatum"];
|
||||
$buchKto = $_POST["buchKto"];
|
||||
|
||||
$qry = mysqli_query($dbconn, "SELECT id FROM tmp_rechnung WHERE user_id = '".$_SESSION["user"]."' AND typ_id = '$type'") or $err=error("Fehler beim ermitteln der Rechnung <br />".mysqli_error($dbconn));
|
||||
$progressid = mysqli_fetch_array($qry);
|
||||
$progressid = $progressid[0];
|
||||
if(!$progressid)
|
||||
{
|
||||
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_rechnung SET
|
||||
user_id = '".$_SESSION["user"]."',
|
||||
adressfields='$show',
|
||||
anrede1='$anr1',
|
||||
anrede2='$anr2',
|
||||
intro='$intro',
|
||||
outro='$outro',
|
||||
typ_id = '$type',
|
||||
adresse_id='$adressid',
|
||||
partner_id='$partnerid',
|
||||
mwst_id = '$mwst',
|
||||
zahlziel_id = '$zahlziel',
|
||||
wahrung_id='$wahrung',
|
||||
sub_mwst='$sub_mwst',
|
||||
rabatt='$rabatt',
|
||||
rabattdesc='$rabattdesc',
|
||||
adresserweiterung='$adrerw',
|
||||
lieferdatum='$lieferdatum',
|
||||
buchungsKto_id = '$buchKto',
|
||||
datetime=NOW()") or $err=error("[autosave.js] Fehler beim erstellen der Rechnung <br />".mysqli_error($dbconn));
|
||||
$progressid = mysqli_insert_id($dbconn);
|
||||
}
|
||||
// Entwurf speichern, alle Artikel (auch deaktivierte)
|
||||
list($progressid, $fehler) = saveTmpRechnung($dbconn, false);
|
||||
if($fehler)
|
||||
$err = $fehler;
|
||||
else
|
||||
{
|
||||
$qry = mysqli_query($dbconn, "UPDATE tmp_rechnung SET
|
||||
user_id = '".$_SESSION["user"]."',
|
||||
adressfields='$show',
|
||||
anrede1='$anr1',
|
||||
anrede2='$anr2',
|
||||
intro='$intro',
|
||||
outro='$outro',
|
||||
typ_id = '$type',
|
||||
adresse_id='$adressid',
|
||||
partner_id='$partnerid',
|
||||
mwst_id = '$mwst',
|
||||
zahlziel_id = '$zahlziel',
|
||||
wahrung_id='$wahrung',
|
||||
sub_mwst='$sub_mwst',
|
||||
rabatt='$rabatt',
|
||||
rabattdesc='$rabattdesc',
|
||||
lieferdatum='$lieferdatum',
|
||||
adresserweiterung='$adrerw',
|
||||
buchungsKto_id = '$buchKto',
|
||||
datetime=NOW() WHERE id='$progressid'") or $err=error("Fehler beim aktualisieren der Rechnung <br />".mysqli_error($dbconn));
|
||||
$qry = mysqli_query($dbconn, "DELETE FROM tmp_rechnung WHERE user_id = '".$_SESSION["user"]."' AND typ_id = '$type' AND id != '$progressid' LIMIT 1") or $err=error("Fehler beim löschen alter tmp Rechnungen <br />".mysqli_error($dbconn));
|
||||
}
|
||||
|
||||
$qry= mysqli_query($dbconn, "SELECT id FROM tmp_artikel WHERE rech_id = '".$progressid."'");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
mysqli_query($dbconn, "DELETE FROM tmp_eigensch WHERE art_id = '".$res["id"]."'") or $err=error("Fehler beim löschen der eigenschaften <br />".mysqli_error($dbconn));
|
||||
}
|
||||
|
||||
$qry = mysqli_query($dbconn, "DELETE FROM tmp_artikel WHERE rech_id = '".$progressid."'") or $err=error("Fehler beim löschen der Artikel <br />".mysqli_error($dbconn));
|
||||
if(!isset($err))
|
||||
{
|
||||
$i = 1;
|
||||
while($_POST["arthead".$i] && !isset($err))
|
||||
{
|
||||
$angtyp = trim($_POST["angtyp".$i]);
|
||||
$arttyp = trim($_POST["arttyp".$i]);
|
||||
$arthead = trim($_POST["arthead".$i]);
|
||||
$artpr = str_replace(",",".",trim($_POST["artpr".$i]));
|
||||
$artmen = str_replace(",",".",trim($_POST["artmen".$i]));
|
||||
$artrab = trim($_POST["artrab".$i]);
|
||||
if(!isset($_POST["artrabtyp".$i]))
|
||||
$_POST["artrabtyp".$i] = "";
|
||||
$artrabtyp = trim($_POST["artrabtyp".$i]);
|
||||
$artmeneinh = trim($_POST["artmeneinh".$i]);
|
||||
$artwa = trim($_POST["artwa".$i]);
|
||||
$artmwst = trim($_POST["artmwst".$i]);
|
||||
$pagebreak = trim($_POST["pagebreak".$i]);
|
||||
|
||||
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_artikel SET bezeichn='$arthead', preis='$artpr', mwst_id='$artmwst', pagebreak='$pagebreak', einheit_id='$artmeneinh', typ_id='$arttyp', datetime=NOW(), wanr='$artwa', rech_id='$progressid',posnr='$i',rabatt='$artrab',rabatttyp='$artrabtyp',menge='$artmen',angtyp='$angtyp'") or $err=error("Fehler beim anlegen der Artikel <br />".mysqli_error($dbconn));
|
||||
$artid=mysqli_insert_id($dbconn);
|
||||
$ii = 1;
|
||||
while($_POST["arteig".$i."_".$ii] && !isset($err))
|
||||
{
|
||||
$arteig = trim($_POST["arteig".$i."_".$ii]);
|
||||
$artval = trim($_POST["artval".$i."_".$ii]);
|
||||
$arteinh = trim($_POST["arteinh".$i."_".$ii]);
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_eigensch SET bezeichn='$arteig', wert='$artval', einheit_id='$arteinh', datetime=NOW(), posnr='$ii', art_id='$artid'") or $err=error("Fehler beim anlegen der Eigenschaften <br />".mysqli_error($dbconn));
|
||||
$eigid=mysqli_insert_id($dbconn);
|
||||
$ii++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if(!isset($err))
|
||||
{
|
||||
$type = formularGanzzahl("type");
|
||||
$adresse = makeadressblock($dbconn,$progressid,1);
|
||||
$rechnung = makerechnungsarray($dbconn,$progressid,1);
|
||||
$artikel = makeartikelarray($dbconn,$progressid,1);
|
||||
if($adresse["lines"]>6)
|
||||
error("Die Adresse hat zu viele Zeilen!<br />Bitte wählen Sie einige Elemente ab.");
|
||||
if(!$_POST["show_ort"] || !$_POST["show_str"])
|
||||
if(!formularText("show_ort") || !formularText("show_str"))
|
||||
error("Die Adresse erscheint nicht vollständig auf der Rechnung!<br />Falls die Rechnung über den Postweg zugestellt werden soll muss die Adresse vervollständigt werden!");
|
||||
if($rechnung["rabatt"] && !$rechnung["rabattdesc"])
|
||||
warning("Ein Rabatt wird von der Gesamtsumme abgezogen, jedoch ist die Rabattbeschreibung leer!<br />Bitte geben Sie eine Rabattbeschreibung ein (z.B.: Sonderrabatt, Winterrabatt, etc.).");
|
||||
if(!$artikel[0] && $type != 5)
|
||||
if(empty($artikel) && $type != 5)
|
||||
warning("Es sind noch keine Artikel vorhanden. Bitte Fügen Sie Artikel durch eintragen einer Artikelbeschreibung ein.");
|
||||
if(!is_file("../".UPLOADS_PATH."signs/".$_SESSION["user"].".png"))
|
||||
error("Für Ihren Benutzer wurde noch keine Unterschrift hinterlegt. Bitte vergessen Sie nicht zu unterschreiben.<br />("."./".UPLOADS_PATH."signs/".$_SESSION["user"].".png");
|
||||
|
||||
ok("<img src='' id='saveimg' class='saveimg' /><br />Dokument wurde um ".date("H:i:s")." Uhr gespeichert!");
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
+7
-189
@@ -10,206 +10,25 @@ require('../smarty/libs/Smarty.class.php');
|
||||
$smarty = new Smarty;
|
||||
|
||||
|
||||
|
||||
if(!isset($err))
|
||||
{
|
||||
$show = "";
|
||||
if(isset($_POST["show_firmaanr"]))
|
||||
$show .= str_pad($_POST["show_firmaanr"],1,"0");
|
||||
// Entwurf speichern, nur aktive Artikel, und daraus die Vorschau erzeugen
|
||||
list($progressid, $fehler) = saveTmpRechnung($dbconn, true);
|
||||
if($fehler)
|
||||
$err = $fehler;
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_firma"]))
|
||||
$show .= str_pad($_POST["show_firma"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_anr"]))
|
||||
$show .= str_pad($_POST["show_anr"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if( isset($_POST["show_titel"]))
|
||||
$show .= str_pad($_POST["show_titel"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_name"]))
|
||||
$show .= str_pad($_POST["show_name"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_anr2"]))
|
||||
$show .= str_pad($_POST["show_anr2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_titel2"]))
|
||||
$show .= str_pad($_POST["show_titel2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_name2"]))
|
||||
$show .= str_pad($_POST["show_name2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_str"]))
|
||||
$show .= str_pad($_POST["show_str"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_ort"]))
|
||||
$show .= str_pad($_POST["show_ort"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_land"]))
|
||||
$show .= str_pad($_POST["show_land"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_zusatz"]))
|
||||
$show .= str_pad($_POST["show_zusatz"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
|
||||
if(isset($_POST["anr1"]))
|
||||
$anr1 = trim($_POST["anr1"]);
|
||||
else
|
||||
$anr1 = "";
|
||||
if(isset($_POST["anr2"]))
|
||||
$anr2 = trim($_POST["anr2"]);
|
||||
else
|
||||
$anr2 = "";
|
||||
if(isset($_POST["intro"]))
|
||||
$intro = trim($_POST["intro"]);
|
||||
else
|
||||
$intro = "";
|
||||
$adrerw = trim($_POST["adresserweiterung"]);
|
||||
$outro = trim($_POST["outro"]);
|
||||
$type = $_POST["type"];
|
||||
$adressid = $_POST["adressid"];
|
||||
$partnerid = $_POST["partnerid"];
|
||||
$mwst = $_POST["mwst"];
|
||||
$zahlziel = $_POST["zahlziel"];
|
||||
$wahrung = $_POST["wahrung"];
|
||||
if(!isset($_POST["sub_mwst"]))
|
||||
$_POST["sub_mwst"] = "";
|
||||
$sub_mwst = $_POST["sub_mwst"];
|
||||
$rabatt = $_POST["rabatt"];
|
||||
$rabattdesc = $_POST["rabattdesc"];
|
||||
$buchKto = $_POST["buchKto"];
|
||||
$lieferdatum = $_POST["lieferdatum"];
|
||||
$qry = mysqli_query($dbconn, "SELECT id FROM tmp_rechnung WHERE user_id = '".$_SESSION["user"]."' AND typ_id = '$type' LIMIT 1") or $err=error("Fehler beim ermitteln der Rechnung <br />".mysqli_error($dbconn));
|
||||
$progressid = mysqli_fetch_array($qry);
|
||||
$progressid = $progressid[0];
|
||||
if(!$progressid)
|
||||
{
|
||||
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_rechnung SET
|
||||
user_id = '".$_SESSION["user"]."',
|
||||
adressfields='$show',
|
||||
anrede1='$anr1',
|
||||
anrede2='$anr2',
|
||||
intro='$intro',
|
||||
outro='$outro',
|
||||
typ_id = '$type',
|
||||
adresse_id='$adressid',
|
||||
partner_id='$partnerid',
|
||||
mwst_id = '$mwst',
|
||||
zahlziel_id = '$zahlziel',
|
||||
wahrung_id='$wahrung',
|
||||
sub_mwst='$sub_mwst',
|
||||
rabatt='$rabatt',
|
||||
adresserweiterung='$adrerw',
|
||||
rabattdesc='$rabattdesc',
|
||||
buchungsKto_id = '$buchKto',
|
||||
lieferdatum='$lieferdatum',
|
||||
datetime=NOW()") or $err=error("Fehler beim erstellen der Rechnung <br />".mysqli_error($dbconn));
|
||||
$progressid = mysqli_insert_id($dbconn);
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = mysqli_query($dbconn, "UPDATE tmp_rechnung SET
|
||||
user_id = '".$_SESSION["user"]."',
|
||||
adressfields='$show',
|
||||
anrede1='$anr1',
|
||||
anrede2='$anr2',
|
||||
intro='$intro',
|
||||
outro='$outro',
|
||||
typ_id = '$type',
|
||||
adresse_id='$adressid',
|
||||
partner_id='$partnerid',
|
||||
mwst_id = '$mwst',
|
||||
zahlziel_id = '$zahlziel',
|
||||
wahrung_id='$wahrung',
|
||||
sub_mwst='$sub_mwst',
|
||||
rabatt='$rabatt',
|
||||
adresserweiterung='$adrerw',
|
||||
rabattdesc='$rabattdesc',
|
||||
buchungsKto_id = '$buchKto',
|
||||
lieferdatum='$lieferdatum',
|
||||
datetime=NOW() WHERE id='$progressid'") or $err=error("Fehler beim aktualisieren der Rechnung <br />".mysqli_error($dbconn));
|
||||
$qry = mysqli_query($dbconn, "DELETE FROM tmp_rechnung WHERE user_id = '".$_SESSION["user"]."' AND typ_id = '$type' AND id != '$progressid' LIMIT 1") or $err=error("Fehler beim löschen alter tmp Rechnungen <br />".mysqli_error($dbconn));
|
||||
}
|
||||
$qry= mysqli_query($dbconn, "SELECT id FROM tmp_artikel WHERE rech_id = '".$progressid."'");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
mysqli_query($dbconn, "DELETE FROM tmp_eigensch WHERE art_id = '".$res["id"]."'") or $err=error("Fehler beim löschen der eigenschaften <br />".mysqli_error($dbconn));
|
||||
}
|
||||
|
||||
$qry = mysqli_query($dbconn, "DELETE FROM tmp_artikel WHERE rech_id = '".$progressid."'") or $err=error("Fehler beim löschen der Artikel <br />".mysqli_error($dbconn));
|
||||
if(!isset($err))
|
||||
{
|
||||
$i = 1;
|
||||
while($_POST["arthead".$i] && !isset($err))
|
||||
{
|
||||
if($_POST["artact".$i])
|
||||
{
|
||||
$angtyp = trim($_POST["angtyp".$i]);
|
||||
$arttyp = trim($_POST["arttyp".$i]);
|
||||
$arthead = trim($_POST["arthead".$i]);
|
||||
$artpr = str_replace(",",".",trim($_POST["artpr".$i]));
|
||||
$artmen = str_replace(",",".",trim($_POST["artmen".$i]));
|
||||
$artrab = trim($_POST["artrab".$i]);
|
||||
if(!isset($_POST["artrabtyp".$i]))
|
||||
$_POST["artrabtyp".$i] = "";
|
||||
$artrabtyp = trim($_POST["artrabtyp".$i]);
|
||||
$artmeneinh = trim($_POST["artmeneinh".$i]);
|
||||
$artwa = trim($_POST["artwa".$i]);
|
||||
$artmwst = trim($_POST["artmwst".$i]);
|
||||
$pagebreak = trim($_POST["pagebreak".$i]);
|
||||
|
||||
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_artikel SET bezeichn='$arthead', preis='$artpr', mwst_id='$artmwst', pagebreak='$pagebreak', einheit_id='$artmeneinh', typ_id='$arttyp', datetime=NOW(), wanr='$artwa', rech_id='$progressid',posnr='$i',rabatt='$artrab',rabatttyp='$artrabtyp',menge='$artmen',angtyp='$angtyp'") or $err=error("Fehler beim anlegen der Artikel <br />".mysqli_error($dbconn));
|
||||
$artid=mysqli_insert_id($dbconn);
|
||||
$ii = 1;
|
||||
while($_POST["arteig".$i."_".$ii] && !isset($err))
|
||||
{
|
||||
$arteig = trim($_POST["arteig".$i."_".$ii]);
|
||||
$artval = trim($_POST["artval".$i."_".$ii]);
|
||||
$arteinh = trim($_POST["arteinh".$i."_".$ii]);
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_eigensch SET bezeichn='$arteig', wert='$artval', einheit_id='$arteinh', datetime=NOW(), posnr='$ii', art_id='$artid'") or $err=error("Fehler beim anlegen der Eigenschaften <br />".mysqli_error($dbconn));
|
||||
$eigid=mysqli_insert_id($dbconn);
|
||||
$ii++;
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if(!isset($err))
|
||||
{
|
||||
$adresse = makeadressblock($dbconn,$progressid,1);
|
||||
$rechnung = makerechnungsarray($dbconn,$progressid,1);
|
||||
$artikel = makeartikelarray($dbconn,$progressid,1);
|
||||
/*
|
||||
if($adresse["lines"]>6)
|
||||
error("Die Adresse hat zu viele Zeilen!<br />Bitte wählen Sie einige Elemente ab.");
|
||||
if(!$_POST["show_ort"] || !$_POST["show_str"])
|
||||
error("Die Adresse erscheint nicht vollständig auf der Rechnung!<br />Falls die Rechnung über den Postweg zugestellt werden soll muss die Adresse vervollständigt werden!");
|
||||
if($rechnung["rabatt"] && !$rechnung["rabattdesc"])
|
||||
warning("Ein Rabatt wird von der Gesamtsumme abgezogen, jedoch ist die Rabattbeschreibung leer!<br />Bitte geben Sie eine Rabattbeschreibung ein (z.B.: Sonderrabatt, Winterrabatt, etc.).");
|
||||
if(!$artikel[0] && $type != 5)
|
||||
warning("Es sind noch keine Artikel vorhanden. Bitte Fügen Sie Artikel durch eintragen einer Artikelbeschreibung ein.");
|
||||
if(!is_file("../pics/users/".$_SESSION["user"].".png"))
|
||||
error("Für Ihren Benutzer wurde noch keine Unterschrift hinterlegt. Bitte vergessen Sie nicht zu unterschreiben.");
|
||||
*/
|
||||
|
||||
$pdf = makerawPDF(1);
|
||||
|
||||
makefirstpage($pdf,$adresse["adresse"],$rechnung,1);
|
||||
$gesamtpreis = 0;
|
||||
if(count($artikel))
|
||||
{
|
||||
$gesamtpreis = maketable($pdf,$artikel,$rechnung,1);
|
||||
$gesamtpreis = maketable($pdf,$artikel,$rechnung,1);
|
||||
}
|
||||
makeEndPage($pdf,$rechnung,$gesamtpreis,1);
|
||||
|
||||
@@ -217,6 +36,5 @@ if(!isset($err))
|
||||
savePDF($pdf,"../temp/pdfpreview/$tmppdfname.pdf");
|
||||
echo makeImageFromPDF("../temp/pdfpreview/$tmppdfname.pdf");
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
+28
-32
@@ -4,53 +4,49 @@ require_once("../incs/funcs.php");
|
||||
require_once("../incs/listfuncs.php");
|
||||
require('../smarty/libs/Smarty.class.php');
|
||||
|
||||
|
||||
$smarty = new Smarty;
|
||||
|
||||
|
||||
$pagesize = 50;
|
||||
|
||||
if(!isset($err))
|
||||
$err = "";
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
$speciallines=array();
|
||||
// kommt per encodeURIComponent bereits als UTF-8
|
||||
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
|
||||
$link = isset($_GET["link"]) && is_string($_GET["link"]) ? $_GET["link"] : "";
|
||||
$field = isset($_GET["field"]) && is_string($_GET["field"]) ? $_GET["field"] : "";
|
||||
$page = isset($_GET["page"]) ? (int)$_GET["page"] : 0;
|
||||
$rechid = isset($_GET["rechid"]) ? (int)$_GET["rechid"] : 0;
|
||||
// steuert, wofür die gewählte Adresse verwendet wird
|
||||
$subact = (isset($_GET["subact"]) && $_GET["subact"] == "copy") ? "copy" : "changeadr";
|
||||
|
||||
$fulltag = utf8_encode($_GET["search"]);
|
||||
$src = explode(" ",$fulltag);
|
||||
$combiner = mysql_escape_string($_GET["link"]);
|
||||
if($combiner != "AND" && $combiner != "OR")
|
||||
{
|
||||
$combiner = "AND";
|
||||
}
|
||||
$page = $_GET["page"];
|
||||
$speciallines = array();
|
||||
$listlines = array();
|
||||
$src = explode(" ", $fulltag);
|
||||
$combiner = $link == "OR" ? "OR" : "AND";
|
||||
|
||||
$queries = createAdressQry($page,$pagesize,$src,$combiner,$_GET["field"],0,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
$queries = createAdressQry($page,$pagesize,$src,$combiner,$field,0,1);
|
||||
$numres = zaehleTreffer($dbconn, $queries);
|
||||
if(!$numres)
|
||||
{
|
||||
$queries = createAdressQry($page,$pagesize,$src,$combiner,$_GET["field"],1,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
$queries = createAdressQry($page,$pagesize,$src,$combiner,$field,1,1);
|
||||
$numres = zaehleTreffer($dbconn, $queries);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
}
|
||||
if($numres)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$name = $res["vname"]." ".$res["nname"];
|
||||
if($res["firma"])
|
||||
$name .= " <i><u>".$res["firma"]."</u></i>";
|
||||
if($res["vwahl"])
|
||||
$res["tel"] = $res["vwahl"]."/".$res["tel"];
|
||||
if(!$res["updated_by"])
|
||||
$listlines[] = array("<a href='?action=rechnungadd&id=".$_GET["rechid"]."&".$_GET["subact"]."=1&adrid=".$res["adrid"]."'><span class='check' title='Diese Adresse verwenden'></span></a> ".$res["kdnr"]."",$name,$res["plz"]." ".$res["ort"], $res["str"]." ".$res["hnr"], $res["tel"]);
|
||||
$adresse = makeadressline($res);
|
||||
$waehlen = "<a href='?action=rechnungadd&id=".$rechid."&".$subact."=1&adrid=".(int)$res["adrid"]."'><span class='check' title='Diese Adresse verwenden'></span></a>";
|
||||
$zeile = array($waehlen." ".(int)$res["kdnr"], makenameline($res), $adresse["ort"], $adresse["str"], maketelline($res));
|
||||
if(empty($res["updated_by"]))
|
||||
$listlines[] = $zeile;
|
||||
else
|
||||
$speciallines[] = array("<a href='?action=rechnungadd&id=".$_GET["rechid"]."&".$_GET["subact"]."=1&adrid=".$res["adrid"]."'><span class='check' title='Diese Adresse verwenden'></span></a> ".$res["kdnr"]."",$name,$res["plz"]." ".$res["ort"], $res["str"]." ".$res["hnr"], $res["tel"]);
|
||||
$speciallines[] = $zeile;
|
||||
}
|
||||
$headings = array("Kd.Nr.","Name/<i><u>Firma</u></i>","Ort","Straße","Telefon");
|
||||
$lastdisplay = ($page+1)*$pagesize;
|
||||
@@ -61,9 +57,9 @@ if(!$err)
|
||||
else
|
||||
ok($numres." Adressen sind insgesamt gespeichert.");
|
||||
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchadress");
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchadress",",".$rechid.",'".$subact."'");
|
||||
displayList($headings,$listlines,$speciallines);
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchadress");
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchadress",",".$rechid.",'".$subact."'");
|
||||
}
|
||||
else
|
||||
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab keine Ergebnisse.");
|
||||
|
||||
+25
-70
@@ -4,84 +4,40 @@ require_once("../incs/funcs.php");
|
||||
require_once("../incs/listfuncs.php");
|
||||
require('../smarty/libs/Smarty.class.php');
|
||||
|
||||
|
||||
$smarty = new Smarty;
|
||||
|
||||
|
||||
$pagesize = 20;
|
||||
|
||||
if(!isset($err))
|
||||
$err = "";
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
// kommt per encodeURIComponent bereits als UTF-8
|
||||
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
|
||||
$link = isset($_GET["link"]) && is_string($_GET["link"]) ? $_GET["link"] : "";
|
||||
$page = isset($_GET["page"]) ? (int)$_GET["page"] : 0;
|
||||
$id = isset($_GET["kdnid"]) ? (int)$_GET["kdnid"] : 0;
|
||||
|
||||
$src = explode(" ", $fulltag);
|
||||
$combiner = $link == "OR" ? "OR" : "AND";
|
||||
$listlines = array();
|
||||
|
||||
$fulltag = utf8_encode($_GET["search"]);
|
||||
$src = explode(" ",$fulltag);
|
||||
$combiner = mysql_escape_string($_GET["link"]);
|
||||
if($combiner != "AND" && $combiner != "OR")
|
||||
{
|
||||
$combiner = "AND";
|
||||
}
|
||||
$page = $_GET["page"];
|
||||
$skspage = $_GET["skspage"];
|
||||
$typ = $_GET["typ"];
|
||||
$id = $_GET["kdnid"];
|
||||
$queries = createKdnProjectQry($page,$pagesize,$src,$combiner,$id);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
/*
|
||||
if(!$numres)
|
||||
{
|
||||
$queries = createKdnRechQry($page,$pagesize,$src,$combiner,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
}
|
||||
*/
|
||||
$numres = zaehleTreffer($dbconn, $queries);
|
||||
if($numres)
|
||||
{
|
||||
$listlines=array();
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$actions = "<span class='del' title='löschen' onClick='askdel(\"Möchten Sie das Projekt ".$res["name"]."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=projectadd&id=".$res["id"]."&del=1\")'></span>";
|
||||
$actions .= "<a href='?action=projectadd&id=".$res["id"]."'><span class='edit' title='Projekt ändern'></span></a>";
|
||||
//$actions .= "<a href='?action=projectadd&id=".$res["id"]."©=1'><span class='copy' title='Projekt kopieren'></span></a>";
|
||||
//$tmpqry = mysqli_query($dbconn,"SELECT id FROM kontakt WHERE partner_id = '$id' AND typ_id = 1");
|
||||
//if(mysqli_fetch_array($tmpqry))
|
||||
// $actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&mail=1'><span class='mail' title='Dokument per E-Mail versenden'></span></a>";
|
||||
/*
|
||||
$res["drechnr"] = substr($res["rechnr"],0,4)."-".substr($res["rechnr"],4,2)."-".substr($res["rechnr"],6,2).".".substr($res["rechnr"],8,2);
|
||||
switch($res["typ_id"])
|
||||
{
|
||||
case 1:
|
||||
$res["drechnr"] = "R".$res["drechnr"];
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&newtype=2'><span class='gutschradd' title='Gutschrift aus dieser Rechnung erstellen'></span></a>";
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&newtype=6'><span class='mahnadd' title='Mahnung aus dieser Rechnung erstellen'></span></a>";
|
||||
break;
|
||||
case 2:
|
||||
$res["drechnr"] = "G".$res["drechnr"];
|
||||
break;
|
||||
case 3:
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&newtype=1'><span class='rechnadd' title='Rechnung aus diesem Angebot erstellen'></span></a>";
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&newtype=4'><span class='bestadd' title='Auftragsbestätigung aus diesem Angebot erstellen'></span></a>";
|
||||
$res["drechnr"] = "A".$res["drechnr"];
|
||||
break;
|
||||
case 4:
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&newtype=1'><span class='rechnadd' title='Rechnung aus dieser Auftragsbestätigung erstellen'></span></a>";
|
||||
$res["drechnr"] = "B".$res["drechnr"];
|
||||
break;
|
||||
}
|
||||
if(!$res["drechnr"])
|
||||
$res["drechnr"] = $res["drechnr"];
|
||||
*/
|
||||
$listlines[] = array("<a href='?action=projectshow&id=".$res["id"]."'>".$res["name"]."</a>",
|
||||
$res["date"],
|
||||
$res["work"],
|
||||
$actions
|
||||
);
|
||||
$projektid = (int)$res["id"];
|
||||
$name = htmlspecialchars((string)$res["name"]);
|
||||
$actions = "<span class='del' title='löschen' onClick='askdel(\"Möchten Sie das Projekt ".$name."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=projectadd&id=".$projektid."&del=1\")'></span>";
|
||||
$actions .= "<a href='?action=projectadd&id=".$projektid."'><span class='edit' title='Projekt ändern'></span></a>";
|
||||
$listlines[] = array("<a href='?action=projectshow&id=".$projektid."'>".$name."</a>",
|
||||
htmlspecialchars((string)$res["date"]),
|
||||
htmlspecialchars((string)$res["work"]),
|
||||
$actions);
|
||||
}
|
||||
|
||||
$headings = array("Name","Datum","Unberechnete<br />Stunden","Aktionen");
|
||||
@@ -93,9 +49,9 @@ if(!$err)
|
||||
else
|
||||
ok($numres." Projekte sind insgesamt gespeichert.");
|
||||
|
||||
displaySplitPages($pagesize,$page,$skspage,0,$numres,"ajax_searchkdnprojects",",$typ,$id");
|
||||
displayList($headings,$listlines,$speciallines);
|
||||
displaySplitPages($pagesize,$page,$skspage,0,$numres,"ajax_searchkdnprojects",",$typ,$id");
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchkdnprojects",",".$id);
|
||||
displayList($headings,$listlines,array());
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchkdnprojects",",".$id);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -104,6 +60,5 @@ if(!$err)
|
||||
else
|
||||
ok("Keine Einträge.");
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
+18
-17
@@ -16,26 +16,28 @@ if(!isset($err))
|
||||
if(!isset($_GET["link"])){
|
||||
$_GET["link"] ="";
|
||||
}
|
||||
$fulltag = utf8_encode($_GET["search"]);
|
||||
// kommt per encodeURIComponent bereits als UTF-8
|
||||
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
|
||||
$src = explode(" ",$fulltag);
|
||||
$combiner = mysql_escape_string($_GET["link"]);
|
||||
$combiner = $_GET["link"];
|
||||
if($combiner != "AND" && $combiner != "OR")
|
||||
{
|
||||
$combiner = "AND";
|
||||
}
|
||||
$page = $_GET["page"];
|
||||
$skspage = $_GET["skspage"];
|
||||
$typ = $_GET["typ"];
|
||||
$id = $_GET["kdnid"];
|
||||
$page = (int)$_GET["page"];
|
||||
$skspage = (int)$_GET["skspage"];
|
||||
// landen auch in JavaScript-Aufrufen der Seitennavigation
|
||||
$typ = (int)$_GET["typ"];
|
||||
$id = (int)$_GET["kdnid"];
|
||||
$queries = createKdnRechQry($page,$pagesize,$src,$combiner,$id,$typ,0);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
/*
|
||||
if(!$numres)
|
||||
{
|
||||
$queries = createKdnRechQry($page,$pagesize,$src,$combiner,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
@@ -44,7 +46,7 @@ if(!isset($err))
|
||||
if($numres)
|
||||
{
|
||||
$listlines=array();
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
@@ -53,8 +55,7 @@ if(!isset($err))
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."'><span class='edit' title='Dokument ändern'></span></a>";
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&changeadr=1'><span class='changeadr' title='Adresse ändern'></span></a>";
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."©=1'><span class='copy' title='Dokument kopieren'></span></a>";
|
||||
$tmpqry = mysqli_query($dbconn,"SELECT id FROM kontakt WHERE partner_id = '$id' AND typ_id = 1");
|
||||
if(mysqli_fetch_array($tmpqry))
|
||||
if(db_wert($dbconn, "SELECT id FROM kontakt WHERE partner_id = ? AND typ_id = 1 LIMIT 1", array($id)))
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&mail=1'><span class='mail' title='Dokument per E-Mail versenden'></span></a>";
|
||||
|
||||
switch($res["typ_id"])
|
||||
@@ -87,14 +88,14 @@ if(!isset($err))
|
||||
if($res["storno"] == 1){
|
||||
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'><font color='#FF0000'>".$res["drechnr"]."</font></a>",
|
||||
$res["date"],
|
||||
$res["artikel"],
|
||||
zeilenHtml($res["artikel"]),
|
||||
$actions
|
||||
);
|
||||
}
|
||||
else{
|
||||
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["drechnr"]."</a>",
|
||||
$res["date"],
|
||||
$res["artikel"],
|
||||
zeilenHtml($res["artikel"]),
|
||||
$actions
|
||||
);
|
||||
}
|
||||
@@ -128,14 +129,14 @@ if(!isset($err))
|
||||
echo "<h3>SKS Dokumente:</h3><div class='line'></div>";
|
||||
$queries="";
|
||||
$queries = createKdnRechQry($skspage,$pagesize,$src,$combiner,$id,$typ,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
/*
|
||||
if(!$numres)
|
||||
{
|
||||
$queries = createKdnRechQry($page,$pagesize,$src,$combiner,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
@@ -145,13 +146,13 @@ if(!isset($err))
|
||||
{
|
||||
$speciallines[]=array();
|
||||
$listlines[]=array();
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$speciallines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["rechnr"]."</a>",
|
||||
$res["date"],
|
||||
$res["artikel"],
|
||||
zeilenHtml($res["artikel"]),
|
||||
"<span class='del' title='löschen' onClick='askdel(\"Möchten Sie das Dokument ".$res["rechnr"]."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=rechadd&rechid=".$res["id"]."&del=1\")'></span>");
|
||||
}
|
||||
$headings = array("Nummer","Datum","Artikel","Aktion");
|
||||
|
||||
+31
-50
@@ -4,63 +4,44 @@ require_once("../incs/funcs.php");
|
||||
require_once("../incs/listfuncs.php");
|
||||
require('../smarty/libs/Smarty.class.php');
|
||||
|
||||
|
||||
$smarty = new Smarty;
|
||||
|
||||
|
||||
$pagesize = 50;
|
||||
|
||||
if(!isset($err))
|
||||
$err = "";
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
$fulltag = utf8_encode($_GET["search"]);
|
||||
$src = explode(" ",$fulltag);
|
||||
$combiner = mysql_escape_string($_GET["link"]);
|
||||
if($combiner != "AND" && $combiner != "OR")
|
||||
{
|
||||
$combiner = "AND";
|
||||
}
|
||||
$page = $_GET["page"];
|
||||
$id = $_GET["kdnid"];
|
||||
$queries = createKommQry($page,$pagesize,$src,$combiner,$id,$typ,0);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
/*
|
||||
if(!$numres)
|
||||
{
|
||||
$queries = createKdnRechQry($page,$pagesize,$src,$combiner,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
}
|
||||
*/
|
||||
// kommt per encodeURIComponent bereits als UTF-8
|
||||
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
|
||||
$link = isset($_GET["link"]) && is_string($_GET["link"]) ? $_GET["link"] : "";
|
||||
$page = isset($_GET["page"]) ? (int)$_GET["page"] : 0;
|
||||
$id = isset($_GET["kdnid"]) ? (int)$_GET["kdnid"] : 0;
|
||||
|
||||
$src = explode(" ", $fulltag);
|
||||
$combiner = $link == "OR" ? "OR" : "AND";
|
||||
$listlines = array();
|
||||
|
||||
$queries = createKommQry($page,$pagesize,$src,$combiner,$id);
|
||||
$numres = zaehleTreffer($dbconn, $queries);
|
||||
if($numres)
|
||||
{
|
||||
$listlines=array();
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$actions = " <a href='?action=kundenchange&do=adress&adressid=".$res["id"]."&kunde=$id'><span class='edit' title='Adresse ändern'></span></a>";
|
||||
$actions .= " <span class='del' title='Adresse löschen' onClick='askdel(\"Möchten Sie diese Adresse<br /><b>UND ALLE ZUGEHÖRIGEN RECHNUNGEN</b><br />wirklich unwiederruflich löschen?\",\"?action=kundenchange&do=adress&adressid=".$res["id"]."&del=1\")'></span>";
|
||||
$actions .= " <a href='http://maps.google.com?q=".$res["plz"]."+".$res["ort"]."+".$res["str"]."+".$res["hnr"]."' class='noloading' target='_blank'><span class='map' title='Auf Karte zeigen'></span></a>";
|
||||
$actions .= " <a href='?action=terminadd&adressid=".$res["id"]."'><span class='termadd' title='Termin anlegen'></span></a><br />";
|
||||
$actions .= " <a href='?action=rechnungadd&type=1&adressid=".$res["id"]."'><span class='rechnadd' title='Rechnung anlegen'></span></a>";
|
||||
$actions .= " <a href='?action=rechnungadd&type=1&adressid=".$res["id"]."'><span class='gutschradd' title='Gutschrift anlegen'></span></a>";
|
||||
$actions .= " <a href='?action=rechnungadd&type=3&adressid=".$res["id"]."'><span class='angadd' title='Angebot anlegen'></span></a>";
|
||||
$actions .= " <a href='?action=rechnungadd&type=5&adressid=".$res["id"]."'><span class='letteradd' title='Brief anlegen'></span></a><br />";
|
||||
$tmpqry = mysqli_query($dbconn,"SELECT id FROM kontakt WHERE partner_id = '$id' AND typ_id = 1");
|
||||
if(mysqli_fetch_array($tmpqry))
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&mail=1'><span class='mail' title='Dokument per E-Mail versenden'></span></a>";
|
||||
$name=makenameline($res);
|
||||
$adresse=makeadressline($res);
|
||||
$listlines[] = array($name,
|
||||
$adresse["ort"], $adresse["str"],
|
||||
maketelline($res),
|
||||
$actions
|
||||
);
|
||||
$adrid = (int)$res["id"];
|
||||
$karte = rawurlencode($res["plz"]." ".$res["ort"]." ".$res["str"]." ".$res["hnr"]);
|
||||
$actions = " <a href='?action=kundenchange&do=adress&adressid=".$adrid."&kunde=".$id."'><span class='edit' title='Adresse ändern'></span></a>";
|
||||
$actions .= " <span class='del' title='Adresse löschen' onClick='askdel(\"Möchten Sie diese Adresse<br /><b>UND ALLE ZUGEHÖRIGEN RECHNUNGEN</b><br />wirklich unwiederruflich löschen?\",\"?action=kundenchange&do=adress&adressid=".$adrid."&del=1\")'></span>";
|
||||
$actions .= " <a href='https://maps.google.com/?q=".$karte."' class='noloading' target='_blank' rel='noopener'><span class='map' title='Auf Karte zeigen'></span></a>";
|
||||
$actions .= " <a href='?action=terminadd&adressid=".$adrid."'><span class='termadd' title='Termin anlegen'></span></a><br />";
|
||||
$actions .= " <a href='?action=rechnungadd&type=1&adressid=".$adrid."'><span class='rechnadd' title='Rechnung anlegen'></span></a>";
|
||||
$actions .= " <a href='?action=rechnungadd&type=2&adressid=".$adrid."'><span class='gutschradd' title='Gutschrift anlegen'></span></a>";
|
||||
$actions .= " <a href='?action=rechnungadd&type=3&adressid=".$adrid."'><span class='angadd' title='Angebot anlegen'></span></a>";
|
||||
$actions .= " <a href='?action=rechnungadd&type=5&adressid=".$adrid."'><span class='letteradd' title='Brief anlegen'></span></a><br />";
|
||||
$adresse = makeadressline($res);
|
||||
$listlines[] = array(makenameline($res), $adresse["ort"], $adresse["str"], maketelline($res), $actions);
|
||||
}
|
||||
$headings = array("Name","Ort","Straße","Tel","Aktionen");
|
||||
$lastdisplay = ($page+1)*$pagesize;
|
||||
@@ -71,9 +52,9 @@ if(!$err)
|
||||
else
|
||||
ok($numres." Kommissionen sind insgesamt gespeichert.");
|
||||
|
||||
displaySplitPages($pagesize,$page,$skspage,0,$numres,"ajax_searchkomm",",$id");
|
||||
displayList($headings,$listlines,$speciallines);
|
||||
displaySplitPages($pagesize,$page,$skspage,0,$numres,"ajax_searchkomm",",$id");
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchkomm",",".$id);
|
||||
displayList($headings,$listlines,array());
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchkomm",",".$id);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+30
-44
@@ -4,70 +4,56 @@ require_once("../incs/funcs.php");
|
||||
require_once("../incs/listfuncs.php");
|
||||
require('../smarty/libs/Smarty.class.php');
|
||||
|
||||
|
||||
$smarty = new Smarty;
|
||||
|
||||
|
||||
$pagesize = 50;
|
||||
if(!isset($err)){
|
||||
$err="";
|
||||
}
|
||||
if(!isset($err))
|
||||
$err = "";
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
if(!isset($_GET["link"])){
|
||||
$_GET["link"] = "";
|
||||
}
|
||||
if(!isset($_GET["field"])){
|
||||
$_GET["field"] = "";
|
||||
}
|
||||
// kommt per encodeURIComponent bereits als UTF-8
|
||||
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
|
||||
$link = isset($_GET["link"]) && is_string($_GET["link"]) ? $_GET["link"] : "";
|
||||
$field = isset($_GET["field"]) && is_string($_GET["field"]) ? $_GET["field"] : "";
|
||||
$page = isset($_GET["page"]) ? (int)$_GET["page"] : 0;
|
||||
|
||||
$_SESSION["search"] = $_GET["search"];
|
||||
$_SESSION["link"] = $_GET["link"];
|
||||
$_SESSION["field"] = $_GET["field"];
|
||||
$_SESSION["page"] = $_GET["page"];
|
||||
$speciallines=array();
|
||||
$_SESSION["search"] = $fulltag;
|
||||
$_SESSION["link"] = $link;
|
||||
$_SESSION["field"] = $field;
|
||||
$_SESSION["page"] = $page;
|
||||
|
||||
$fulltag = utf8_encode($_GET["search"]);
|
||||
$src = explode(" ",$fulltag);
|
||||
$combiner = mysql_escape_string($_GET["link"]);
|
||||
if($combiner != "AND" && $combiner != "OR")
|
||||
{
|
||||
$combiner = "AND";
|
||||
}
|
||||
$page = $_GET["page"];
|
||||
$speciallines = array();
|
||||
$listlines = array();
|
||||
$src = explode(" ", $fulltag);
|
||||
$combiner = $link == "OR" ? "OR" : "AND";
|
||||
|
||||
$queries = createPartQry($page,$pagesize,$src,$combiner,$_GET["field"],0,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
$queries = createPartQry($page,$pagesize,$src,$combiner,$field,0,1);
|
||||
$numres = zaehleTreffer($dbconn, $queries);
|
||||
if(!$numres)
|
||||
{
|
||||
$queries = createPartQry($page,$pagesize,$src,$combiner,$_GET["field"],1,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
$queries = createPartQry($page,$pagesize,$src,$combiner,$field,1,1);
|
||||
$numres = zaehleTreffer($dbconn, $queries);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
}
|
||||
if($numres)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$name = $res["vname"]." ".$res["nname"];
|
||||
if(isset($res["firma"]))
|
||||
$name .= " <i><u>".$res["firma"]."</u></i>";
|
||||
if(isset($res["vwahl"]))
|
||||
$res["tel"] = $res["vwahl"]."/".$res["tel"];
|
||||
$adresse=makeadressline($res);
|
||||
if(!isset($res["updated_by"]))
|
||||
$listlines[] = array("<a href='?action=kundenshow&id=".$res["kdnr"]."'>".$res["kdnr"]."</a>",makenameline($res),$adresse["ort"], $adresse["str"], maketelline($res),"<span class='del' title='Kunde löschen' onClick='askdel(\"Möchten Sie den Kunden ".$res["kdnr"]." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=kundenadd&kundeid=".$res["kdnr"]."&del=1\")'></span><a href='?action=projectlist&kundeid=".$res["kdnr"]."'><span class='projects' title='Projekte dieses Kunden auflisten'></span></a>");
|
||||
$adresse = makeadressline($res);
|
||||
$kdnr = (int)$res["kdnr"];
|
||||
$aktionen = "<span class='del' title='Kunde löschen' onClick='askdel(\"Möchten Sie den Kunden ".$kdnr." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=kundenadd&kundeid=".$kdnr."&del=1\")'></span>"
|
||||
."<a href='?action=projectlist&kundeid=".$kdnr."'><span class='projects' title='Projekte dieses Kunden auflisten'></span></a>";
|
||||
$zeile = array("<a href='?action=kundenshow&id=".$kdnr."'>".$kdnr."</a>", makenameline($res), $adresse["ort"], $adresse["str"], maketelline($res), $aktionen);
|
||||
if(empty($res["updated_by"]))
|
||||
$listlines[] = $zeile;
|
||||
else
|
||||
$speciallines[] = array("<a href='?action=kundenshow&id=".$res["kdnr"]."'>".$res["kdnr"]."</a>",makenameline($res),$adresse["ort"], $adresse["str"], maketelline($res),"<span class='del' title='Kunde löschen' onClick='askdel(\"Möchten Sie den Kunden ".$res["kdnr"]." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=kundenadd&kundeid=".$res["kdnr"]."&del=1\")'></span><a href='?action=projectlist&kundeid=".$res["kdnr"]."'><span class='projects' title='Projekte dieses Kunden auflisten'></span></a>");
|
||||
$speciallines[] = $zeile;
|
||||
}
|
||||
$headings = array("Kd.Nr.","Name/<i><u>Firma</u></i>","Ort","Straße","Telefon","Löschen");
|
||||
$lastdisplay = (intval($page)+1)*$pagesize;
|
||||
$lastdisplay = ($page+1)*$pagesize;
|
||||
if($numres < $lastdisplay)
|
||||
$lastdisplay = $numres;
|
||||
if($fulltag)
|
||||
|
||||
+25
-40
@@ -4,58 +4,44 @@ require_once("../incs/funcs.php");
|
||||
require_once("../incs/listfuncs.php");
|
||||
require('../smarty/libs/Smarty.class.php');
|
||||
|
||||
|
||||
$smarty = new Smarty;
|
||||
|
||||
$pagesize = 50;
|
||||
|
||||
|
||||
if(!isset($err))
|
||||
$err = "";
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
// kommt per encodeURIComponent bereits als UTF-8
|
||||
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
|
||||
$link = isset($_GET["link"]) && is_string($_GET["link"]) ? $_GET["link"] : "";
|
||||
$field = isset($_GET["field"]) && is_string($_GET["field"]) ? $_GET["field"] : "";
|
||||
$page = isset($_GET["page"]) ? (int)$_GET["page"] : 0;
|
||||
|
||||
if(!isset($_GET["link"])){
|
||||
$_GET["link"]="";
|
||||
}
|
||||
$listlines = array();
|
||||
$src = explode(" ", $fulltag);
|
||||
$combiner = $link == "OR" ? "OR" : "AND";
|
||||
|
||||
$fulltag = utf8_encode($_GET["search"]);
|
||||
$src = explode(" ",$fulltag);
|
||||
$combiner = mysql_escape_string($_GET["link"]);
|
||||
if($combiner != "AND" && $combiner != "OR")
|
||||
{
|
||||
$combiner = "AND";
|
||||
}
|
||||
$page = $_GET["page"];
|
||||
|
||||
$queries = createPartQry($page,$pagesize,$src,$combiner,$_GET["field"],0,2);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
$queries = createPartQry($page,$pagesize,$src,$combiner,$field,0,2);
|
||||
$numres = zaehleTreffer($dbconn, $queries);
|
||||
if(!$numres)
|
||||
{
|
||||
$queries = createPartQry($page,$pagesize,$src,$combiner,$_GET["field"],1,2);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
$queries = createPartQry($page,$pagesize,$src,$combiner,$field,1,2);
|
||||
$numres = zaehleTreffer($dbconn, $queries);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
}
|
||||
if($numres)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
if(!isset($res["nname"]))
|
||||
$name = $res["firma"];
|
||||
else
|
||||
$name = $res["vname"]." ".$res["nname"];
|
||||
if(isset($res["vwahl"]))
|
||||
$res["tel"] = $res["vwahl"]."/".$res["tel"];
|
||||
if(!isset($res["updated_by"]))
|
||||
$listlines[] = array("<a href='?action=liefershow&id=".$res["kdnr"]."'>".$res["kdnr"]."</a>",$name,$res["plz"]." ".$res["ort"], $res["str"]." ".$res["hnr"], $res["tel"],"<span class='del' title='Kunde löschen' onClick='askdel(\"Möchten Sie den Kunden ".$res["kdnr"]." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=kundenadd&kundeid=".$res["kdnr"]."&del=1\")'></span>");
|
||||
else
|
||||
$speciallines[] = array("<a href='?action=liefershow&id=".$res["kdnr"]."'>".$res["kdnr"]."</a>",$name,$res["plz"]." ".$res["ort"], $res["str"]." ".$res["hnr"], $res["tel"],"<span class='del' title='Kunde löschen' onClick='askdel(\"Möchten Sie den Kunden ".$res["kdnr"]." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=kundenadd&kundeid=".$res["kdnr"]."&del=1\")'></span>");
|
||||
$adresse = makeadressline($res);
|
||||
$kdnr = (int)$res["kdnr"];
|
||||
$aktionen = "<span class='del' title='Lieferant löschen' onClick='askdel(\"Möchten Sie den Lieferanten ".$kdnr." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=lieferadd&kundeid=".$kdnr."&del=1\")'></span>";
|
||||
$listlines[] = array("<a href='?action=liefershow&id=".$kdnr."'>".$kdnr."</a>", makenameline($res), $adresse["ort"], $adresse["str"], maketelline($res), $aktionen);
|
||||
}
|
||||
$headings = array("Kd.Nr.","Name/Firma","Ort","Straße","Telefon","Löschen");
|
||||
$headings = array("Kd.Nr.","Name/<i><u>Firma</u></i>","Ort","Straße","Telefon","Löschen");
|
||||
$lastdisplay = ($page+1)*$pagesize;
|
||||
if($numres < $lastdisplay)
|
||||
$lastdisplay = $numres;
|
||||
@@ -64,10 +50,9 @@ if(!isset($err))
|
||||
else
|
||||
ok($numres." Lieferanten sind insgesamt gespeichert.");
|
||||
|
||||
$speciallines = Array();
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchkunden");
|
||||
displayList($headings,$listlines,$speciallines);
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchkunden");
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchliefer");
|
||||
displayList($headings,$listlines,array());
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchliefer");
|
||||
}
|
||||
else
|
||||
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab keine Ergebnisse.");
|
||||
|
||||
+14
-13
@@ -22,26 +22,27 @@ if(!isset($err))
|
||||
if(!isset($_GET["kdnid"])){
|
||||
$_GET["kdnid"]="";
|
||||
}
|
||||
$fulltag = utf8_encode($_GET["search"]);
|
||||
// kommt per encodeURIComponent bereits als UTF-8
|
||||
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
|
||||
$src = explode(" ",$fulltag);
|
||||
$combiner = mysql_escape_string($_GET["link"]);
|
||||
$combiner = $_GET["link"];
|
||||
if($combiner != "AND" && $combiner != "OR")
|
||||
{
|
||||
$combiner = "AND";
|
||||
}
|
||||
$page = $_GET["page"];
|
||||
$skspage = $_GET["skspage"];
|
||||
$page = (int)$_GET["page"];
|
||||
$skspage = (int)$_GET["skspage"];
|
||||
$typ = $_GET["typ"];
|
||||
$id = $_GET["kdnid"];
|
||||
$queries = createRechQry($page,$pagesize,$src,$combiner,0);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
/*
|
||||
if(!$numres)
|
||||
{
|
||||
$queries = createKdnRechQry($page,$pagesize,$src,$combiner,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
@@ -49,7 +50,7 @@ if(!isset($err))
|
||||
*/
|
||||
if($numres)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
@@ -82,14 +83,14 @@ if(!isset($err))
|
||||
if($res["storno"] == 1){
|
||||
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'><font color='#FF0000'>".$res["drechnr"]."</font></a>",
|
||||
$res["date"],
|
||||
$res["artikel"],
|
||||
zeilenHtml($res["artikel"]),
|
||||
$actions
|
||||
);
|
||||
}
|
||||
else{
|
||||
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["drechnr"]."</a>",
|
||||
$res["date"],
|
||||
$res["artikel"],
|
||||
zeilenHtml($res["artikel"]),
|
||||
$actions
|
||||
);
|
||||
}
|
||||
@@ -122,14 +123,14 @@ if(!isset($err))
|
||||
{
|
||||
echo "<h3>SKS Dokumente:</h3><div class='line'></div>";
|
||||
$queries = createRechQry($skspage,$pagesize,$src,$combiner,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
/*
|
||||
if(!$numres)
|
||||
{
|
||||
$queries = createKdnRechQry($page,$pagesize,$src,$combiner,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
@@ -137,12 +138,12 @@ if(!isset($err))
|
||||
*/
|
||||
if($numres)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,$queries["limited"]);
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"]);
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$speciallines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["rechnr"]."</a>",
|
||||
$res["date"],
|
||||
$res["artikel"],
|
||||
zeilenHtml($res["artikel"]),
|
||||
"<span class='del' title='löschen' onClick='askdel(\"Möchten Sie das Dokument ".$res["rechnr"]."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=rechadd&rechid=".$res["id"]."&del=1\")'></span>");
|
||||
}
|
||||
$headings = array("Nummer","Datum","Artikel","Aktion");
|
||||
|
||||
+116
-154
@@ -1,166 +1,132 @@
|
||||
<?php
|
||||
<?php
|
||||
require_once("../incs/connectmysql.php");
|
||||
require_once("../incs/funcs.php");
|
||||
require_once("../incs/listfuncs.php");
|
||||
require('../smarty/libs/Smarty.class.php');
|
||||
|
||||
|
||||
$smarty = new Smarty;
|
||||
|
||||
|
||||
$pagesize = 25;
|
||||
|
||||
|
||||
if(!isset($err))
|
||||
{
|
||||
$usercolors = array("#f00","#0c0","#ff0","#90c","#0bb","#066","#09f","#f60","#00f","#f09");
|
||||
$err = "";
|
||||
|
||||
$fulltag = utf8_encode($_GET["search"]);
|
||||
$src = explode(" ",$fulltag);
|
||||
if(isset($_GET["link"])){
|
||||
$combiner = mysql_escape_string($_GET["link"]);
|
||||
}else{
|
||||
$combiner = "";
|
||||
}
|
||||
if($combiner != "AND" && $combiner != "OR")
|
||||
/*
|
||||
* Datum und Dauer eines Termins für die Liste. Ab 24 Stunden zählt der
|
||||
* Termin in Tagen, sonst in Stunden und Minuten.
|
||||
*/
|
||||
function terminZeitraum($termtime, $termdauer)
|
||||
{
|
||||
$stunden = (int)strtok((string)$termdauer, ":");
|
||||
$minuten = (int)substr((string)$termdauer, 3, 2);
|
||||
|
||||
if($termtime == "0000-00-00 00:00:00")
|
||||
$zeitpunkt = "N/A";
|
||||
elseif($stunden > 23)
|
||||
{
|
||||
$combiner = "AND";
|
||||
$zeitpunkt = date("d.m.Y", strtotime($termtime));
|
||||
if($stunden / 24 > 1)
|
||||
$zeitpunkt .= " - ".date("d.m", strtotime("+".(($stunden / 24) - 1)." day", strtotime($termtime)));
|
||||
}
|
||||
$page = $_GET["page"];
|
||||
$termtyp = $_GET["termtyp"];
|
||||
else
|
||||
$zeitpunkt = date("d.m.Y H:i ", strtotime($termtime))."Uhr";
|
||||
|
||||
$dauer = "";
|
||||
if($stunden > 23)
|
||||
$dauer = ($stunden / 24)." Tag".($stunden / 24 > 1 ? "e" : "");
|
||||
elseif($stunden > 0)
|
||||
$dauer = $stunden." Std";
|
||||
if($stunden <= 23 && $stunden > 0 && $minuten > 0)
|
||||
$dauer .= " - ";
|
||||
if($stunden <= 23 && $minuten > 0)
|
||||
$dauer .= $minuten." Min";
|
||||
return array($zeitpunkt, $dauer);
|
||||
}
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
// kommt per encodeURIComponent bereits als UTF-8
|
||||
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
|
||||
$link = isset($_GET["link"]) && is_string($_GET["link"]) ? $_GET["link"] : "";
|
||||
$page = isset($_GET["page"]) ? (int)$_GET["page"] : 0;
|
||||
$termtyp = isset($_GET["termtyp"]) ? (int)$_GET["termtyp"] : 1;
|
||||
$_SESSION["termtyp"] = $termtyp;
|
||||
|
||||
$src = explode(" ", $fulltag);
|
||||
$combiner = $link == "OR" ? "OR" : "AND";
|
||||
$listlines = array();
|
||||
$colors = array();
|
||||
|
||||
$queries = createTermQry($page,$pagesize,$src,$combiner,$termtyp);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
$numres = zaehleTreffer($dbconn, $queries);
|
||||
if($numres)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
|
||||
$counter = 0;
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$counter = $counter+1;
|
||||
$termdauer = "";
|
||||
$termtime ="";
|
||||
$telqry = mysqli_query($dbconn,"SELECT GROUP_CONCAT(nr SEPARATOR ', ') AS nr from tel WHERE partner_id = '".$res["partner_id"]."' AND RIGHT(nr,1) <> '-' GROUP BY partner_id")or $err=error("Fehler beim Listen der Termine <br />".mysqli_error($dbconn));
|
||||
$telres=mysqli_fetch_assoc($telqry);
|
||||
//Normale Termine anzeigen
|
||||
if($res)
|
||||
$counter++;
|
||||
$id = (int)$res["id"];
|
||||
$kopf = htmlspecialchars((string)$res["head"]);
|
||||
|
||||
$actions = "<span class='del' title='löschen' onClick='askdel(\"Möchten Sie den Termin ".$kopf."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=terminadd&id=".$id."&del=1\")'></span>";
|
||||
$actions .= "<a href='?action=terminadd&id=".$id."&adressid=".(int)$res["adresse_id"]."'><span class='edit' title='Termin ändern'></span></a>";
|
||||
$actions .= "<a href='?action=kundenshow&id=".(int)$res["partner_id"]."'><span class='partner' title='Kunden anzeigen'></span></a>";
|
||||
$actions .= "<a href='?action=terminshow&id=".$id."'><span class='print' title='Termin drucken'></span></a>";
|
||||
if(!$res["done"])
|
||||
$actions .= "<span class='check' title='Termin als erledigt markieren' onClick='askbranch(\"Möchten Sie einen Folgetermin vormerken?\",\"?action=terminadd&id=".$id."\",\"?action=terminadd&id=".$id."&done=yes\")'></span>";
|
||||
else
|
||||
$actions .= "<a href='?action=terminadd&id=".$id."&done=no'><span class='cross' title='Termin als nicht erledigt markieren'></span></a>";
|
||||
|
||||
list($termtime, $termdauer) = terminZeitraum($res["termtime"], $res["termdauer"]);
|
||||
|
||||
$adresse = "<b>".htmlspecialchars($res["plz"]." ".$res["ort"]);
|
||||
if($res["ortsteil"])
|
||||
$adresse .= "-".htmlspecialchars((string)$res["ortsteil"]);
|
||||
$adresse .= "</b><br />".htmlspecialchars($res["str"]." ".$res["hnr"]);
|
||||
// Nummern ohne Durchwahl-Bindestrich am Ende
|
||||
$nummern = db_wert($dbconn, "SELECT GROUP_CONCAT(nr ORDER BY id SEPARATOR ', ') FROM tel
|
||||
WHERE partner_id = ? AND RIGHT(nr,1) != '-'", array($res["partner_id"]));
|
||||
if($nummern)
|
||||
{
|
||||
$actions = "<span class='del' title='löschen' onClick='askdel(\"Möchten Sie den Termiiin ".htmlspecialchars($res["head"],ENT_QUOTES)."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=terminadd&id=".$res["id"]."&del=1\")'></span>";
|
||||
$actions .= "<a href='?action=terminadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."'><span class='edit' title='Termin ändern'></span></a>";
|
||||
$actions .= "<a href='?action=kundenshow&id=".$res["partner_id"]."'><span class='partner' title='Kunden anzeigen'></span></a>";
|
||||
$actions .= "<a href='?action=terminshow&id=".$res["id"]."'><span class='print' title='Termin drucken'></span></a>";
|
||||
if(!$res["done"])
|
||||
$actions .= "<span class='check' title='Termin als erledigt markieren' onClick='askbranch(\"Möchten Sie einen Folgetermin vormerken?\",\"?action=terminadd&id=".$res["id"]."\",\"?action=terminadd&id=".$res["id"]."&done=yes\")'></span>";
|
||||
else
|
||||
$actions .= "<a href='?action=terminadd&id=".$res["id"]."&done=no'><span class='cross' title='Termin als nicht erledigt markieren'></span></a>";
|
||||
$split_termdauer = explode(":",$res["termdauer"]);
|
||||
|
||||
if($res["termtime"] == "0000-00-00 00:00:00")
|
||||
$termtime = "N/A";
|
||||
else if($split_termdauer[0] > 23)
|
||||
{
|
||||
if($split_termdauer[0]/24 > 1)
|
||||
{
|
||||
$termtime = date("d.m.Y - ",strtotime($res["termtime"]));
|
||||
$termtime .= date("d.m",strtotime("+".(($split_termdauer[0]/24)-1)." day",strtotime($res["termtime"])));
|
||||
}
|
||||
else
|
||||
{
|
||||
$termtime = date("d.m.Y",strtotime($res["termtime"]));
|
||||
}
|
||||
}
|
||||
else
|
||||
$termtime = date("d.m.Y H:i ",strtotime($res["termtime"]))."Uhr";
|
||||
|
||||
if($split_termdauer[0] > 23)
|
||||
{
|
||||
if($split_termdauer[0]/24 > 1)
|
||||
$termdauer = ($split_termdauer[0]/24)." Tage";
|
||||
else
|
||||
$termdauer = ($split_termdauer[0]/24)." Tag";
|
||||
}
|
||||
else if($split_termdauer[0] > 0)
|
||||
$termdauer = ltrim(substr($res["termdauer"],0,2),"0")." Std";
|
||||
if($split_termdauer[0] > 0 && $split_termdauer[1] > 0)
|
||||
$termdauer .= " - ";
|
||||
if($split_termdauer[1] > 0)
|
||||
$termdauer .= ltrim(substr($res["termdauer"],3,2),"0")." Min";
|
||||
|
||||
$adresse = "<b>".$res["plz"]." ".$res["ort"];
|
||||
if($res["ortsteil"])
|
||||
$adresse .= "-".$res["ortsteil"];
|
||||
$adresse .= "</b><br />".$res["str"]." ".$res["hnr"];
|
||||
if(isset($telres)){
|
||||
if($res["vname"])
|
||||
$adresse .= "<br />Tel: ".$telres["nr"]."<br />(".$res["vname"]." ".$res["nname"].")";
|
||||
else if($res["nname"])
|
||||
$adresse .= "<br />Tel: ".$telres["nr"]."<br />(".$res["nname"].")";
|
||||
else if($res["firma"])
|
||||
$adresse .= "<br />Tel: ".$telres["nr"]."<br />(".$res["firma"].")";
|
||||
else
|
||||
$adresse .= "<br />Tel: ".$telres["nr"];
|
||||
}
|
||||
$namelist = $res["uservname"]." ".substr($res["usernname"],0,1);
|
||||
if($res["user2"])
|
||||
$namelist .= ", ".$res["uservname2"]." ".substr($res["usernname2"],0,1);
|
||||
if($res["user3"])
|
||||
$namelist .= ", ".$res["uservname3"]." ".substr($res["usernname3"],0,1);
|
||||
if($res["user4"])
|
||||
$namelist .= ", ".$res["uservname4"]." ".substr($res["usernname4"],0,1);
|
||||
if($termtyp == 1){
|
||||
$checkbox = "<input type='checkbox' value='".$res["id"]."' id='erl".$counter."' name='erl".$counter."'></input>";
|
||||
|
||||
$listlines[] = array("<a href='?action=terminshow&id=".$res["id"]."'><b>".$res["typ"]."</b></a><br />".$namelist,
|
||||
"<a href='?action=terminshow&id=".$res["id"]."'>".$res["head"]."</a>",
|
||||
$termtime,
|
||||
$termdauer,
|
||||
$adresse,
|
||||
$actions,
|
||||
$checkbox
|
||||
);
|
||||
}
|
||||
else if($termtyp == 3){
|
||||
$checkbox = "<input type='checkbox' value='".$res["id"]."' id='del".$counter."' name='del".$counter."'></input>";
|
||||
|
||||
$listlines[] = array("<a href='?action=terminshow&id=".$res["id"]."'><b>".$res["typ"]."</b></a><br />".$namelist,
|
||||
"<a href='?action=terminshow&id=".$res["id"]."'>".$res["head"]."</a>",
|
||||
$termtime,
|
||||
$termdauer,
|
||||
$adresse,
|
||||
$actions,
|
||||
$checkbox
|
||||
);
|
||||
}
|
||||
else{
|
||||
$listlines[] = array("<a href='?action=terminshow&id=".$res["id"]."'><b>".$res["typ"]."</b></a><br />".$namelist,
|
||||
"<a href='?action=terminshow&id=".$res["id"]."'>".$res["head"]."</a>",
|
||||
$termtime,
|
||||
$termdauer,
|
||||
$adresse,
|
||||
$actions
|
||||
);
|
||||
}
|
||||
if($res["user2"] || $res["user3"] || $res["user4"])
|
||||
$colors[] = "#fff";
|
||||
else if($res["color"])
|
||||
$colors[] = $res["color"];
|
||||
else
|
||||
$colors[] = "#fff";
|
||||
|
||||
$adresse .= "<br />Tel: ".htmlspecialchars($nummern);
|
||||
if($res["vname"] || $res["nname"])
|
||||
$adresse .= "<br />(".htmlspecialchars(trim($res["vname"]." ".$res["nname"])).")";
|
||||
elseif($res["firma"])
|
||||
$adresse .= "<br />(".htmlspecialchars((string)$res["firma"]).")";
|
||||
}
|
||||
|
||||
$namelist = htmlspecialchars($res["uservname"]." ".substr((string)$res["usernname"], 0, 1));
|
||||
foreach(array(2, 3, 4) as $n)
|
||||
if($res["user".$n])
|
||||
$namelist .= ", ".htmlspecialchars($res["uservname".$n]." ".substr((string)$res["usernname".$n], 0, 1));
|
||||
|
||||
$zeile = array("<a href='?action=terminshow&id=".$id."'><b>".htmlspecialchars((string)$res["typ"])."</b></a><br />".$namelist,
|
||||
"<a href='?action=terminshow&id=".$id."'>".$kopf."</a>",
|
||||
$termtime,
|
||||
$termdauer,
|
||||
$adresse,
|
||||
$actions);
|
||||
// Registerkarte 1 hakt ab, Registerkarte 3 löscht - beides mehrfach
|
||||
if($termtyp == 1 || $termtyp == 3)
|
||||
{
|
||||
$feld = $termtyp == 1 ? "erl" : "del";
|
||||
$zeile[] = "<input type='checkbox' value='".$id."' id='".$feld.$counter."' name='".$feld.$counter."' />";
|
||||
}
|
||||
$listlines[] = $zeile;
|
||||
|
||||
if($res["user2"] || $res["user3"] || $res["user4"] || !$res["color"])
|
||||
$colors[] = "#fff";
|
||||
else
|
||||
$colors[] = $res["color"];
|
||||
}
|
||||
if($termtyp == 1){
|
||||
$headings = array("Typ","Beschreibung","Datum","Dauer","Ort","Aktionen"," Erledigt ");
|
||||
}
|
||||
else if($termtyp == 3){
|
||||
$headings = array("Typ","Beschreibung","Datum","Dauer","Ort","Aktionen"," Löschen ");
|
||||
}
|
||||
else{
|
||||
$headings = array("Typ","Beschreibung","Datum","Dauer","Ort","Aktionen");
|
||||
}
|
||||
|
||||
$headings = array("Typ","Beschreibung","Datum","Dauer","Ort","Aktionen");
|
||||
if($termtyp == 1)
|
||||
$headings[] = " Erledigt ";
|
||||
elseif($termtyp == 3)
|
||||
$headings[] = " Löschen ";
|
||||
|
||||
$lastdisplay = ($page+1)*$pagesize;
|
||||
if($numres < $lastdisplay)
|
||||
$lastdisplay = $numres;
|
||||
@@ -169,19 +135,15 @@ if(!isset($err))
|
||||
else
|
||||
ok($numres." Termine sind insgesamt gespeichert.");
|
||||
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchterm",",$termtyp");
|
||||
if($termtyp == 1){
|
||||
echo "<form action='?action=terminadd&id=multi&done=yes' method='post'><input type='hidden' name='pagesize' value='".$pagesize."'></input>";
|
||||
}
|
||||
else if($termtyp == 3){
|
||||
echo "<form action='?action=terminadd&id=multi&del=1' method='post'><input type='hidden' name='pagesize' value='".$pagesize."'></input>";
|
||||
}
|
||||
displayList($headings,$listlines,Array(),$colors);
|
||||
if($termtyp == 1 || $termtyp == 3){
|
||||
echo "<input type='submit' value='Mehrfachänderung ausführen'></input></form><br />";
|
||||
}
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchterm",",$termtyp");
|
||||
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchterm",",".$termtyp);
|
||||
if($termtyp == 1)
|
||||
echo "<form action='?action=terminadd&id=multi&done=yes' method='post'><input type='hidden' name='pagesize' value='".$pagesize."' />";
|
||||
elseif($termtyp == 3)
|
||||
echo "<form action='?action=terminadd&id=multi&del=1' method='post'><input type='hidden' name='pagesize' value='".$pagesize."' />";
|
||||
displayList($headings,$listlines,array(),$colors);
|
||||
if($termtyp == 1 || $termtyp == 3)
|
||||
echo "<input type='submit' value='Mehrfachänderung ausführen' /></form><br />";
|
||||
displayPages($pagesize,$page,$numres,"ajax_searchterm",",".$termtyp);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+6
-2
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
$dirs = explode("/",getcwd());
|
||||
// Unter Windows liefert getcwd() Backslashes
|
||||
$dirs = preg_split('#[/\\\\]#', getcwd());
|
||||
|
||||
$dir = $dirs[count($dirs)-1];
|
||||
if($dir == "ajax")
|
||||
@@ -7,7 +8,10 @@ if($dir == "ajax")
|
||||
else if($dir == "auto")
|
||||
$dir = $dirs[count($dirs)-3];
|
||||
|
||||
if(DIRECTORY_SEPARATOR == "/")
|
||||
// KV_CONFIG_PATH erlaubt einen anderen Ort, etwa für eine lokale Testumgebung
|
||||
if(getenv("KV_CONFIG_PATH"))
|
||||
define("CONFIG_PATH", rtrim(getenv("KV_CONFIG_PATH"), "/\\")."/");
|
||||
elseif(DIRECTORY_SEPARATOR == "/")
|
||||
define("CONFIG_PATH", "/volume1/homes/wagner/kundenconfig/");
|
||||
else
|
||||
define("CONFIG_PATH", "c:/kundenverwaltung/config/");
|
||||
|
||||
+63
-3
@@ -44,19 +44,36 @@ function db_verbinden($server, $user, $pw, $db)
|
||||
/*
|
||||
* Führt eine Abfrage mit ?-Platzhaltern aus. Gibt bei SELECT ein
|
||||
* mysqli_result zurück, sonst true, bei Fehlern false.
|
||||
*
|
||||
* Achtung: Prepared Statements liefern Zahlen als int/float, mysqli_query()
|
||||
* lieferte Strings. db_zeilen(), db_zeile(), db_wert() und db_zuordnung()
|
||||
* wandeln deshalb in Strings um, damit sich alter Code (=== "0", "1" etc.)
|
||||
* gleich verhält. Wer das Ergebnis von db_abfrage() selbst ausliest, bekommt
|
||||
* die nativen Typen.
|
||||
*/
|
||||
function db_abfrage($dbconn, $sql, $params = array())
|
||||
{
|
||||
return mysqli_execute_query($dbconn, $sql, array_values($params));
|
||||
}
|
||||
|
||||
/* Werte einer Zeile als Strings wie bei mysqli_query(), NULL bleibt NULL */
|
||||
function db_als_text($zeile)
|
||||
{
|
||||
if(!is_array($zeile))
|
||||
return $zeile;
|
||||
foreach($zeile as $spalte => $wert)
|
||||
if($wert !== null && !is_string($wert))
|
||||
$zeile[$spalte] = (string)$wert;
|
||||
return $zeile;
|
||||
}
|
||||
|
||||
/* Alle Zeilen als Liste assoziativer Arrays, bei Fehlern false. */
|
||||
function db_zeilen($dbconn, $sql, $params = array())
|
||||
{
|
||||
$res = db_abfrage($dbconn, $sql, $params);
|
||||
if(!$res)
|
||||
return false;
|
||||
return mysqli_fetch_all($res, MYSQLI_ASSOC);
|
||||
return array_map("db_als_text", mysqli_fetch_all($res, MYSQLI_ASSOC));
|
||||
}
|
||||
|
||||
/* Erste Zeile als assoziatives Array, null ohne Treffer, bei Fehlern false. */
|
||||
@@ -65,7 +82,50 @@ function db_zeile($dbconn, $sql, $params = array())
|
||||
$res = db_abfrage($dbconn, $sql, $params);
|
||||
if(!$res)
|
||||
return false;
|
||||
return mysqli_fetch_assoc($res);
|
||||
return db_als_text(mysqli_fetch_assoc($res));
|
||||
}
|
||||
|
||||
/*
|
||||
* Zwei Spalten als Zuordnung erste => zweite, etwa für Auswahllisten
|
||||
* (SELECT id, anrede FROM anrede). Bei Fehlern false.
|
||||
*/
|
||||
function db_zuordnung($dbconn, $sql, $params = array())
|
||||
{
|
||||
$res = db_abfrage($dbconn, $sql, $params);
|
||||
if(!$res)
|
||||
return false;
|
||||
$zuordnung = array();
|
||||
while($zeile = mysqli_fetch_row($res))
|
||||
$zuordnung[$zeile[0]] = $zeile[1] === null ? null : (string)$zeile[1];
|
||||
return $zuordnung;
|
||||
}
|
||||
|
||||
/*
|
||||
* Die Abfrage mit eingesetzten Werten als lesbarer Text - ausschließlich für
|
||||
* das Änderungsprotokoll (Tabelle log). Nie ausführen.
|
||||
*/
|
||||
function db_sql_text($dbconn, $sql, $params = array())
|
||||
{
|
||||
$teile = explode("?", $sql);
|
||||
$text = array_shift($teile);
|
||||
foreach(array_values($params) as $i => $wert)
|
||||
{
|
||||
if($wert === null)
|
||||
$text .= "NULL";
|
||||
else
|
||||
$text .= "'".mysqli_real_escape_string($dbconn, (string)$wert)."'";
|
||||
$text .= isset($teile[$i]) ? $teile[$i] : "";
|
||||
}
|
||||
return $text;
|
||||
}
|
||||
|
||||
/*
|
||||
* Text als Praefix-Suchmuster fuer LIKE. % und _ waeren darin sonst
|
||||
* Platzhalter; das Fluchtzeichen ist der Backslash.
|
||||
*/
|
||||
function db_like_praefix($text)
|
||||
{
|
||||
return str_replace(array("\\", "%", "_"), array("\\\\", "\%", "\_"), (string)$text)."%";
|
||||
}
|
||||
|
||||
/* Erste Spalte der ersten Zeile, null ohne Treffer, bei Fehlern false. */
|
||||
@@ -75,5 +135,5 @@ function db_wert($dbconn, $sql, $params = array())
|
||||
if(!$res)
|
||||
return false;
|
||||
$zeile = mysqli_fetch_row($res);
|
||||
return $zeile === null ? null : $zeile[0];
|
||||
return $zeile === null || $zeile[0] === null ? null : (string)$zeile[0];
|
||||
}
|
||||
|
||||
@@ -36,6 +36,9 @@ function rrmdir($dir) {
|
||||
function del_files($path, $pattern) {
|
||||
$matches = Array();
|
||||
$entries = Array();
|
||||
// Fehlt das Verzeichnis, gibt es auch nichts zu loeschen
|
||||
if(!is_dir($path))
|
||||
return;
|
||||
$dir = dir($path);
|
||||
while ($entry = $dir->read())
|
||||
{
|
||||
@@ -51,6 +54,10 @@ function del_files($path, $pattern) {
|
||||
function search_file($path, $pattern) {
|
||||
$matches = Array();
|
||||
$entries = Array();
|
||||
$ret = "";
|
||||
// Fehlt das Verzeichnis, gibt es auch nichts zu finden
|
||||
if(!is_dir($path))
|
||||
return $ret;
|
||||
$dir = dir($path);
|
||||
while ($entry = $dir->read())
|
||||
{
|
||||
|
||||
+244
-251
@@ -1,197 +1,119 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Die Suchbedingung der Kunden-, Lieferanten- und Adresssuche. $fields
|
||||
* waehlt aus, worin gesucht wird, $src sind die einzelnen Suchbegriffe.
|
||||
* Die Werte kommen als Platzhalter dazu, die Spaltennamen stehen fest.
|
||||
*/
|
||||
function partnerSuchbedingung($src, $combiner, $fields, &$params)
|
||||
{
|
||||
$spalten = array(
|
||||
"all" => array("vname", "nname", "vname2", "nname2", "firma", "ort", "str", "plz", "partner.id"),
|
||||
"kdnr" => array("partner.id"),
|
||||
"name" => array("vname", "nname", "vname2", "nname2", "firma"),
|
||||
"str" => array("str"),
|
||||
"plz" => array("plz"),
|
||||
"ort" => array("ort"),
|
||||
"tel" => array("tel.nr"),
|
||||
"kont" => array("kontakt"),
|
||||
);
|
||||
if(!isset($spalten[$fields]))
|
||||
return "";
|
||||
$combiner = $combiner == "OR" ? "OR" : "AND";
|
||||
$bedingung = "";
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$teile = array();
|
||||
foreach($spalten[$fields] as $spalte)
|
||||
{
|
||||
$teile[] = "$spalte LIKE ?";
|
||||
$params[] = "%".$tag."%";
|
||||
}
|
||||
$bedingung .= " $combiner (".implode(" OR ", $teile).")";
|
||||
}
|
||||
return $bedingung;
|
||||
}
|
||||
|
||||
/*
|
||||
* Kunden- bzw. Lieferantensuche, eine Zeile je Partner. $typ ist 1 fuer
|
||||
* Kunden, 2 fuer Lieferanten. Mit $full kommen auch veraltete Versionen
|
||||
* dazu; ihre Namen, Adressen und Telefonnummern stehen dann untereinander
|
||||
* in einer Zelle (siehe zeilenHtml()).
|
||||
* Rueckgabe: array("all" => sql, "limited" => sql mit LIMIT, "params" => Werte).
|
||||
*/
|
||||
function createPartQry($page,$pagesize,$src,$combiner,$fields,$full=0,$typ=1)
|
||||
{
|
||||
$joins = "FROM partner
|
||||
LEFT JOIN adresse ON adresse.partner_id = partner.id
|
||||
LEFT JOIN strasse ON strasse.id = str_id
|
||||
LEFT JOIN ort ON ort.id = ort_id
|
||||
LEFT JOIN tel ON tel.partner_id = partner.id
|
||||
LEFT JOIN kontakt ON kontakt.partner_id = partner.id";
|
||||
if(!$full)
|
||||
{
|
||||
$query = "SELECT partner.id AS kdnr,firma,vname,nname,vname2,nname2,ort,plz,str,hnr, tel.nr AS tel FROM partner
|
||||
LEFT JOIN adresse ON adresse.partner_id = partner.id
|
||||
LEFT JOIN strasse ON strasse.id = str_id
|
||||
LEFT JOIN ort ON ort.id = ort_id
|
||||
LEFT JOIN tel ON tel.partner_id = partner.id
|
||||
LEFT JOIN kontakt ON kontakt.partner_id = partner.id
|
||||
WHERE updated_by = 0 and adresse.typ_id = 1 AND partner.typ_id = $typ";
|
||||
}
|
||||
$query = "SELECT partner.id AS kdnr,firma,vname,nname,vname2,nname2,ort,plz,str,hnr, tel.nr AS tel
|
||||
$joins
|
||||
WHERE updated_by = 0 AND adresse.typ_id = 1 AND partner.typ_id = ?";
|
||||
else
|
||||
{
|
||||
$query = "SELECT partner.id AS kdnr,firma,GROUP_CONCAT(CONCAT(vname,' ',nname) SEPARATOR '<br />') AS nname, '' AS vname,GROUP_CONCAT(CONCAT(vname2,' ',nname2) SEPARATOR '<br />') AS nname2,'' AS vname2,'' AS ort,GROUP_CONCAT(CONCAT(plz,' ',ort) SEPARATOR '<br />') AS plz,GROUP_CONCAT(CONCAT(str,' ',hnr) SEPARATOR '<br />') AS str,'' AS hnr, GROUP_CONCAT(tel.nr SEPARATOR '<br />') AS tel FROM partner
|
||||
LEFT JOIN adresse ON adresse.partner_id = partner.id
|
||||
LEFT JOIN strasse ON strasse.id = str_id
|
||||
LEFT JOIN ort ON ort.id = ort_id
|
||||
LEFT JOIN tel ON tel.partner_id = partner.id
|
||||
LEFT JOIN kontakt ON kontakt.partner_id = partner.id
|
||||
WHERE partner.typ_id = $typ";
|
||||
}
|
||||
$query = "SELECT partner.id AS kdnr,firma,
|
||||
GROUP_CONCAT(CONCAT(vname,' ',nname) ORDER BY adresse.id, tel.id SEPARATOR '\n') AS nname, '' AS vname,
|
||||
GROUP_CONCAT(CONCAT(vname2,' ',nname2) ORDER BY adresse.id, tel.id SEPARATOR '\n') AS nname2,'' AS vname2,'' AS ort,
|
||||
GROUP_CONCAT(CONCAT(plz,' ',ort) ORDER BY adresse.id, tel.id SEPARATOR '\n') AS plz,
|
||||
GROUP_CONCAT(CONCAT(str,' ',hnr) ORDER BY adresse.id, tel.id SEPARATOR '\n') AS str,'' AS hnr,
|
||||
GROUP_CONCAT(tel.nr ORDER BY adresse.id, tel.id SEPARATOR '\n') AS tel
|
||||
$joins
|
||||
WHERE partner.typ_id = ?";
|
||||
$params = array((int)$typ);
|
||||
$query .= partnerSuchbedingung($src, $combiner, $fields, $params);
|
||||
// Ohne feste Reihenfolge kann dieselbe Zeile beim Blaettern zweimal
|
||||
// oder gar nicht auftauchen
|
||||
$query .= " GROUP BY partner.id ORDER BY partner.id";
|
||||
|
||||
switch($fields)
|
||||
{
|
||||
case "all":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (vname LIKE '$tag' OR nname LIKE '$tag' OR vname2 LIKE '$tag' OR nname2 LIKE '$tag' OR firma LIKE '$tag' OR ort LIKE '$tag' OR str LIKE '$tag' OR plz LIKE '$tag' OR partner.id LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "kdnr":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (partner.id LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "name":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (vname LIKE '$tag' OR nname LIKE '$tag' OR vname2 LIKE '$tag' OR nname2 LIKE '$tag' OR firma LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "str":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (str LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "plz":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (plz LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "ort":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (ort LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "tel":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (tel.nr LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "kont":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (kontakt LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
}
|
||||
$query .= " GROUP BY partner.id";
|
||||
$ret["all"] = $query;
|
||||
$query .= " LIMIT ".(intval($page)*$pagesize).", $pagesize";
|
||||
$ret["limited"] = $query;
|
||||
$ret["limited"] = $query." LIMIT ".((int)$page*(int)$pagesize).", ".(int)$pagesize;
|
||||
$ret["params"] = $params;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Adresssuche: wie createPartQry(), aber eine Zeile je Adresse statt je
|
||||
* Partner. Damit laesst sich fuer ein Dokument eine Nebenadresse auswaehlen.
|
||||
*/
|
||||
function createAdressQry($page,$pagesize,$src,$combiner,$fields,$full=0,$typ=1)
|
||||
{
|
||||
if(!$full)
|
||||
{
|
||||
$query = "SELECT partner.id AS kdnr,firma,vname,nname,vname2,nname2,ort,plz,str,hnr,adresse.id AS adrid, tel.nr AS tel
|
||||
FROM partner
|
||||
LEFT JOIN adresse ON adresse.partner_id = partner.id
|
||||
LEFT JOIN strasse ON strasse.id = str_id
|
||||
LEFT JOIN ort ON ort.id = ort_id
|
||||
LEFT JOIN tel ON tel.partner_id = partner.id
|
||||
LEFT JOIN kontakt ON kontakt.partner_id = partner.id
|
||||
WHERE updated_by = 0 AND partner.typ_id = $typ";
|
||||
}
|
||||
else
|
||||
{
|
||||
$query = "SELECT partner.id AS kdnr,firma,vname,nname,vname2,nname2,ort,plz,str,hnr,adresse.id AS adrid, tel.nr AS tel
|
||||
FROM partner
|
||||
LEFT JOIN adresse ON adresse.partner_id = partner.id
|
||||
LEFT JOIN strasse ON strasse.id = str_id
|
||||
LEFT JOIN ort ON ort.id = ort_id
|
||||
LEFT JOIN tel ON tel.partner_id = partner.id
|
||||
LEFT JOIN kontakt ON kontakt.partner_id = partner.id
|
||||
WHERE partner.typ_id = $typ";
|
||||
}
|
||||
$query = "SELECT partner.id AS kdnr,firma,vname,nname,vname2,nname2,ort,plz,str,hnr,adresse.id AS adrid, tel.nr AS tel
|
||||
FROM partner
|
||||
LEFT JOIN adresse ON adresse.partner_id = partner.id
|
||||
LEFT JOIN strasse ON strasse.id = str_id
|
||||
LEFT JOIN ort ON ort.id = ort_id
|
||||
LEFT JOIN tel ON tel.partner_id = partner.id
|
||||
LEFT JOIN kontakt ON kontakt.partner_id = partner.id
|
||||
WHERE ".($full ? "" : "updated_by = 0 AND ")."partner.typ_id = ?";
|
||||
$params = array((int)$typ);
|
||||
$query .= partnerSuchbedingung($src, $combiner, $fields, $params);
|
||||
$query .= " GROUP BY adresse.id ORDER BY adresse.id";
|
||||
|
||||
switch($fields)
|
||||
{
|
||||
case "all":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (vname LIKE '$tag' OR nname LIKE '$tag' OR vname2 LIKE '$tag' OR nname2 LIKE '$tag' OR firma LIKE '$tag' OR ort LIKE '$tag' OR str LIKE '$tag' OR plz LIKE '$tag' OR partner.id LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "kdnr":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (partner.id LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "name":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (vname LIKE '$tag' OR nname LIKE '$tag' OR vname2 LIKE '$tag' OR nname2 LIKE '$tag' OR firma LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "str":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (str LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "plz":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (plz LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "ort":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (ort LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "tel":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (tel.nr LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
case "kont":
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (kontakt LIKE '$tag')";
|
||||
}
|
||||
break;
|
||||
}
|
||||
$query .= " GROUP BY adresse.id";
|
||||
$ret["all"] = $query;
|
||||
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
|
||||
$ret["limited"] = $query;
|
||||
$ret["limited"] = $query." LIMIT ".((int)$page*(int)$pagesize).", ".(int)$pagesize;
|
||||
$ret["params"] = $params;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Suche in den Dokumenten eines Kunden. Liefert array("all" => sql,
|
||||
* "limited" => sql mit LIMIT, "params" => Platzhalterwerte für beide).
|
||||
* $combiner muss "AND" oder "OR" sein.
|
||||
*/
|
||||
function createKdnRechQry($page,$pagesize,$src,$combiner,$id,$typ,$sks=0)
|
||||
{
|
||||
if($typ == 1)
|
||||
$docnr = "rechnr";
|
||||
else
|
||||
$docnr = "rechnr";
|
||||
$docnr = "rechnr";
|
||||
$combiner = $combiner == "OR" ? "OR" : "AND";
|
||||
$params = array($id, $typ);
|
||||
if(!$sks)
|
||||
{
|
||||
$query = "SELECT rechnung.$docnr AS rechnr,
|
||||
rechnung.id,
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
|
||||
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '<br />') AS artikel,
|
||||
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '\n') AS artikel,
|
||||
adresse_id,
|
||||
storno,
|
||||
rechnung.typ_id
|
||||
@@ -199,11 +121,12 @@ function createKdnRechQry($page,$pagesize,$src,$combiner,$id,$typ,$sks=0)
|
||||
LEFT JOIN rechtyp ON rechnung.typ_id = rechtyp.id
|
||||
LEFT JOIN artikel_rechn ON rechnung.id = artikel_rechn.rech_id
|
||||
LEFT JOIN artikel ON artikel_rechn.art_id = artikel.id
|
||||
WHERE partner_id='".$id."' AND rechtyp.id = '".$typ."' AND rechnung.sks = 0 ";
|
||||
WHERE partner_id = ? AND rechtyp.id = ? AND rechnung.sks = 0 ";
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag .= "%";
|
||||
$query .= " $combiner (artikel.bezeichn LIKE '$tag' OR rechnung.rechnr LIKE '$tag' OR DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE '$tag')";
|
||||
$query .= " $combiner (artikel.bezeichn LIKE ? OR rechnung.rechnr LIKE ? OR DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE ?)";
|
||||
array_push($params, $tag, $tag, $tag);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -211,88 +134,104 @@ function createKdnRechQry($page,$pagesize,$src,$combiner,$id,$typ,$sks=0)
|
||||
$query = "SELECT rechnung.$docnr AS rechnr,
|
||||
rechnung.id,
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
|
||||
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '<br />') AS artikel,
|
||||
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '\n') AS artikel,
|
||||
adresse_id,
|
||||
rechnung.typ_id
|
||||
FROM rechnung
|
||||
LEFT JOIN rechtyp ON rechnung.typ_id = rechtyp.id
|
||||
RIGHT JOIN artikelsks ON rechnung.rechnr = artikelsks.rechnr
|
||||
WHERE partner_id='".$id."' AND rechtyp.id = '".$typ."' AND rechnung.sks = 1 ";
|
||||
WHERE partner_id = ? AND rechtyp.id = ? AND rechnung.sks = 1 ";
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag .= "%";
|
||||
$query .= " $combiner (artikelsks.bezeichn1 LIKE '$tag' OR artikelsks.bezeichn2 LIKE '$tag' OR rechnung.rechnr LIKE '$tag' OR DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE '$tag')";
|
||||
$query .= " $combiner (artikelsks.bezeichn1 LIKE ? OR artikelsks.bezeichn2 LIKE ? OR rechnung.rechnr LIKE ? OR DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE ?)";
|
||||
array_push($params, $tag, $tag, $tag, $tag);
|
||||
}
|
||||
}
|
||||
|
||||
$query .= " GROUP BY rechnung.rechnr ORDER BY rechnung.datetime DESC ";
|
||||
|
||||
$ret["all"] = $query;
|
||||
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
|
||||
$query .= " LIMIT ".((int)$page*(int)$pagesize).", ".(int)$pagesize;
|
||||
$ret["limited"] = $query;
|
||||
$ret["params"] = $params;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/* Projekte eines Kunden, Rueckgabe wie createKdnRechQry(). */
|
||||
function createKdnProjectQry($page,$pagesize,$src,$combiner,$id)
|
||||
{
|
||||
$combiner = $combiner == "OR" ? "OR" : "AND";
|
||||
$params = array($id);
|
||||
$query = "SELECT project.id, project.name,
|
||||
DATE_FORMAT(project.datetime, '%d.%m.%Y') AS date,
|
||||
SUM(CASE WHEN rechn = 0 THEN work.std ELSE 0 END) AS work
|
||||
FROM project
|
||||
JOIN work ON project.id = work.project_id
|
||||
AND partner_id='".$id."'";
|
||||
AND partner_id = ?";
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag .= "%";
|
||||
$query .= " $combiner (work.bezeichn LIKE '$tag' OR project.name LIKE '$tag' OR DATE_FORMAT(project.datetime, '%d.%m.%Y') LIKE '$tag')";
|
||||
$query .= " $combiner (work.bezeichn LIKE ? OR project.name LIKE ? OR DATE_FORMAT(project.datetime, '%d.%m.%Y') LIKE ?)";
|
||||
array_push($params, $tag, $tag, $tag);
|
||||
}
|
||||
|
||||
$query .= " GROUP BY project.id ORDER BY project.datetime DESC ";
|
||||
|
||||
$ret["all"] = $query;
|
||||
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
|
||||
$ret["limited"] = $query;
|
||||
$ret["limited"] = $query." LIMIT ".((int)$page*(int)$pagesize).", ".(int)$pagesize;
|
||||
$ret["params"] = $params;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/* Kommissionsadressen (adresstyp 5) eines Kunden, Rueckgabe wie createKdnRechQry(). */
|
||||
function createKommQry($page,$pagesize,$src,$combiner,$id)
|
||||
{
|
||||
$combiner = $combiner == "OR" ? "OR" : "AND";
|
||||
$params = array($id);
|
||||
$query = "SELECT adresse.id, adresse.partner_id, firma, vname, nname, vname2, nname2, titel_id, titel2_id, anrede_id, anrede2_id, str, hnr, ort, ortsteil,plz,ort,nr AS tel,vwahl
|
||||
FROM adresse
|
||||
LEFT JOIN strasse ON adresse.str_id = strasse.id
|
||||
LEFT JOIN ort ON ort_id = ort.id
|
||||
LEFT JOIN tel ON adresse.id = tel.adresse_id
|
||||
WHERE adresse.partner_id='".$id."' AND adresse.typ_id = '5' ";
|
||||
WHERE adresse.partner_id = ? AND adresse.typ_id = 5 ";
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag .= "%";
|
||||
$query .= " $combiner (ort LIKE '$tag'
|
||||
OR str LIKE '$tag'
|
||||
OR nr LIKE '$tag'
|
||||
OR vname LIKE '$tag'
|
||||
OR nname LIKE '$tag'
|
||||
OR vname2 LIKE '$tag'
|
||||
OR nname2 LIKE '$tag'
|
||||
OR firma LIKE '$tag')";
|
||||
$query .= " $combiner (ort LIKE ?
|
||||
OR str LIKE ?
|
||||
OR nr LIKE ?
|
||||
OR vname LIKE ?
|
||||
OR nname LIKE ?
|
||||
OR vname2 LIKE ?
|
||||
OR nname2 LIKE ?
|
||||
OR firma LIKE ?)";
|
||||
for($i = 0; $i < 8; $i++)
|
||||
$params[] = $tag;
|
||||
}
|
||||
$query .= " GROUP BY adresse.id ORDER BY adresse.id DESC ";
|
||||
|
||||
$ret["all"] = $query;
|
||||
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
|
||||
$ret["limited"] = $query;
|
||||
$ret["limited"] = $query." LIMIT ".((int)$page*(int)$pagesize).", ".(int)$pagesize;
|
||||
$ret["params"] = $params;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Suche über alle Dokumente, Rückgabe wie createKdnRechQry().
|
||||
*/
|
||||
function createRechQry($page,$pagesize,$src,$combiner,$sks=0)
|
||||
{
|
||||
$docnr = "rechnr";
|
||||
$combiner = $combiner == "OR" ? "OR" : "AND";
|
||||
$params = array();
|
||||
if(!$sks)
|
||||
{
|
||||
$query = "SELECT CONCAT(ELT(rechnung.typ_id,'R','G','A','B','L','M'),MID(rechnung.$docnr,1,4),'-',MID(rechnung.$docnr,5,2),'-',MID(rechnung.$docnr,7,2),'.',MID(rechnung.$docnr,9,2)) AS drechnr,
|
||||
rechnung.$docnr AS rechnr,
|
||||
rechnung.id,
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
|
||||
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '<br />') AS artikel,
|
||||
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '\n') AS artikel,
|
||||
adresse_id,
|
||||
storno,
|
||||
rechnung.typ_id
|
||||
@@ -304,9 +243,10 @@ function createRechQry($page,$pagesize,$src,$combiner,$sks=0)
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (artikel.bezeichn LIKE '$tag' OR
|
||||
CONCAT(ELT(rechnung.typ_id,'R','G','A','B','L','M'),MID(rechnung.$docnr,1,4),'-',MID(rechnung.$docnr,5,2),'-',MID(rechnung.$docnr,7,2),'.',MID(rechnung.$docnr,9,2)) LIKE '$tag' OR
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE '$tag')";
|
||||
$query .= " $combiner (artikel.bezeichn LIKE ? OR
|
||||
CONCAT(ELT(rechnung.typ_id,'R','G','A','B','L','M'),MID(rechnung.$docnr,1,4),'-',MID(rechnung.$docnr,5,2),'-',MID(rechnung.$docnr,7,2),'.',MID(rechnung.$docnr,9,2)) LIKE ? OR
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE ?)";
|
||||
array_push($params, $tag, $tag, $tag);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -315,7 +255,7 @@ function createRechQry($page,$pagesize,$src,$combiner,$sks=0)
|
||||
rechnung.$docnr AS rechnr,
|
||||
rechnung.id,
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
|
||||
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '<br />') AS artikel,
|
||||
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '\n') AS artikel,
|
||||
adresse_id,
|
||||
storno = 0,
|
||||
rechnung.typ_id
|
||||
@@ -326,77 +266,99 @@ function createRechQry($page,$pagesize,$src,$combiner,$sks=0)
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (artikelsks.bezeichn1 LIKE '$tag' OR
|
||||
artikelsks.bezeichn2 LIKE '$tag' OR
|
||||
rechnung.rechnr LIKE '$tag' OR
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE '$tag')";
|
||||
$query .= " $combiner (artikelsks.bezeichn1 LIKE ? OR
|
||||
artikelsks.bezeichn2 LIKE ? OR
|
||||
rechnung.rechnr LIKE ? OR
|
||||
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE ?)";
|
||||
array_push($params, $tag, $tag, $tag, $tag);
|
||||
}
|
||||
}
|
||||
|
||||
$query .= " GROUP BY rechnung.rechnr ORDER BY rechnung.datetime DESC ";
|
||||
|
||||
$ret["all"] = $query;
|
||||
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
|
||||
$query .= " LIMIT ".((int)$page*(int)$pagesize).", ".(int)$pagesize;
|
||||
$ret["limited"] = $query;
|
||||
$ret["params"] = $params;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Terminliste. $termtyp waehlt die Registerkarte:
|
||||
* 1 offene mit Datum, 2 offene ohne Datum, 3 erledigte,
|
||||
* 4 vorgemerkte (Wiedervorlage in der Zukunft), 5 ganztaegige.
|
||||
* Rueckgabe wie createKdnRechQry().
|
||||
*/
|
||||
function createTermQry($page,$pagesize,$src,$combiner,$termtyp)
|
||||
{
|
||||
|
||||
$query = "SELECT termin.id,termtyp.typ, termin.head, MIN(termtime) AS termtime, SEC_TO_TIME(SUM(TIME_TO_SEC(termdauer))) AS termdauer, user, user2, user3, user4, done, partner_id, adresse_id, termin.id, str, ort, ortsteil, plz, hnr, adresse.vname as vname, adresse.nname as nname,
|
||||
adresse.firma as firma,
|
||||
user.vname as uservname, user.nname as usernname, user.color as color,
|
||||
user2.vname as uservname2, user2.nname as usernname2,
|
||||
user3.vname as uservname3, user3.nname as usernname3,
|
||||
user4.vname as uservname4, user4.nname as usernname4,
|
||||
$combiner = $combiner == "OR" ? "OR" : "AND";
|
||||
$params = array();
|
||||
$query = "SELECT termin.id, termtyp.typ, termin.head, MIN(termtime) AS termtime,
|
||||
SEC_TO_TIME(SUM(TIME_TO_SEC(termdauer))) AS termdauer,
|
||||
user, user2, user3, user4, done, partner_id, adresse_id, main_id,
|
||||
str, ort, ortsteil, plz, hnr, adresse.vname AS vname, adresse.nname AS nname,
|
||||
user.vname AS uservname, user.nname AS usernname, user.color AS color,
|
||||
user2.vname AS uservname2, user2.nname AS usernname2,
|
||||
user3.vname AS uservname3, user3.nname AS usernname3,
|
||||
user4.vname AS uservname4, user4.nname AS usernname4,
|
||||
firma, vname2, nname2
|
||||
FROM termin
|
||||
LEFT JOIN termtyp ON termin.typ = termtyp.id
|
||||
LEFT JOIN adresse ON termin.adresse_id = adresse.id
|
||||
LEFT JOIN partner ON adresse.partner_id = partner.id
|
||||
LEFT JOIN strasse ON adresse.str_id = strasse.id
|
||||
LEFT JOIN ort ON strasse.ort_id = ort.id
|
||||
LEFT JOIN user ON termin.user = user.id
|
||||
LEFT JOIN user AS user2 ON termin.user2 = user2.id
|
||||
LEFT JOIN user AS user3 ON termin.user3 = user3.id
|
||||
LEFT JOIN user AS user4 ON termin.user4 = user4.id
|
||||
WHERE ";
|
||||
if($termtyp == 1)
|
||||
$query .= "termdauer != '24:00:00' AND termtime != '0000-00-00 00:00:00' AND done = 0 AND act_date < NOW()";
|
||||
elseif($termtyp == 2)
|
||||
$query .= "termdauer != '24:00:00' AND termtime = '0000-00-00 00:00:00' AND done = 0 AND act_date < NOW()";
|
||||
elseif($termtyp == 3)
|
||||
$query .= "termdauer != '24:00:00' AND done = 1 AND act_date < NOW()";
|
||||
elseif($termtyp == 4)
|
||||
$query .= "termdauer != '24:00:00' AND act_date > NOW()";
|
||||
elseif($termtyp == 5)
|
||||
$query .= "termdauer = '24:00:00'";
|
||||
FROM termin
|
||||
LEFT JOIN termtyp ON termin.typ = termtyp.id
|
||||
LEFT JOIN adresse ON termin.adresse_id = adresse.id
|
||||
LEFT JOIN partner ON adresse.partner_id = partner.id
|
||||
LEFT JOIN strasse ON adresse.str_id = strasse.id
|
||||
LEFT JOIN ort ON strasse.ort_id = ort.id
|
||||
LEFT JOIN user ON termin.user = user.id
|
||||
LEFT JOIN user AS user2 ON termin.user2 = user2.id
|
||||
LEFT JOIN user AS user3 ON termin.user3 = user3.id
|
||||
LEFT JOIN user AS user4 ON termin.user4 = user4.id
|
||||
WHERE ";
|
||||
switch((int)$termtyp)
|
||||
{
|
||||
case 2:
|
||||
$query .= "termdauer != '24:00:00' AND termtime = '0000-00-00 00:00:00' AND done = 0 AND act_date < NOW()";
|
||||
break;
|
||||
case 3:
|
||||
$query .= "termdauer != '24:00:00' AND done = 1 AND act_date < NOW()";
|
||||
break;
|
||||
case 4:
|
||||
$query .= "termdauer != '24:00:00' AND act_date > NOW()";
|
||||
break;
|
||||
case 5:
|
||||
$query .= "termdauer = '24:00:00'";
|
||||
break;
|
||||
// 1 ist die uebliche Ansicht und faengt zugleich unbekannte Werte ab
|
||||
default:
|
||||
$query .= "termdauer != '24:00:00' AND termtime != '0000-00-00 00:00:00' AND done = 0 AND act_date < NOW()";
|
||||
break;
|
||||
}
|
||||
foreach($src AS $tag)
|
||||
{
|
||||
$tag = "%".$tag."%";
|
||||
$query .= " $combiner (termin.head LIKE '$tag' OR
|
||||
termin.text LIKE '$tag' OR
|
||||
adresse.firma LIKE '$tag' OR
|
||||
adresse.vname LIKE '$tag' OR
|
||||
adresse.nname LIKE '$tag' OR
|
||||
ort LIKE '$tag' OR
|
||||
plz LIKE '$tag' OR
|
||||
str LIKE '$tag' OR
|
||||
DATE_FORMAT(termtime, '%d.%m.%Y %H:%i') LIKE '$tag')";
|
||||
$query .= " $combiner (termin.head LIKE ? OR
|
||||
termin.text LIKE ? OR
|
||||
adresse.firma LIKE ? OR
|
||||
adresse.vname LIKE ? OR
|
||||
adresse.nname LIKE ? OR
|
||||
ort LIKE ? OR
|
||||
plz LIKE ? OR
|
||||
str LIKE ? OR
|
||||
DATE_FORMAT(termtime, '%d.%m.%Y %H:%i') LIKE ?)";
|
||||
for($i = 0; $i < 9; $i++)
|
||||
$params[] = $tag;
|
||||
}
|
||||
if($termtyp == 2)
|
||||
if((int)$termtyp == 2)
|
||||
$query .= " GROUP BY main_id ORDER BY ort ASC, termtime DESC";
|
||||
elseif($termtyp != 5 && $termtyp != 3)
|
||||
elseif((int)$termtyp != 5 && (int)$termtyp != 3)
|
||||
$query .= " GROUP BY main_id ORDER BY termtime ASC";
|
||||
else
|
||||
$query .= " GROUP BY main_id ORDER BY termtime DESC";
|
||||
|
||||
$ret["all"] = $query;
|
||||
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
|
||||
$ret["limited"] = $query;
|
||||
$ret["limited"] = $query." LIMIT ".((int)$page*(int)$pagesize).", ".(int)$pagesize;
|
||||
$ret["params"] = $params;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
@@ -446,6 +408,31 @@ function createMsgQry($page,$pagesize,$src,$combiner,$user)
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Zahl der Treffer einer Suche. Die Abfragen aus create*Qry() gruppieren,
|
||||
* deshalb wird die ungekuerzte Abfrage ausgefuehrt und gezaehlt, statt mit
|
||||
* COUNT(*) zu arbeiten.
|
||||
*/
|
||||
function zaehleTreffer($dbconn, $queries)
|
||||
{
|
||||
$res = isset($queries["params"])
|
||||
? db_abfrage($dbconn, $queries["all"], $queries["params"])
|
||||
: mysqli_query($dbconn, $queries["all"]);
|
||||
if(!$res)
|
||||
die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
|
||||
return mysqli_num_rows($res);
|
||||
}
|
||||
|
||||
/*
|
||||
* Mit \n verbundene Werte aus GROUP_CONCAT als escaptes HTML, eine Zeile
|
||||
* je Wert. Zusammengebaut wird erst hier, damit Daten aus der Datenbank
|
||||
* nicht als HTML durchschlagen.
|
||||
*/
|
||||
function zeilenHtml($text)
|
||||
{
|
||||
return implode("<br />", array_map("htmlspecialchars", explode("\n", (string)$text)));
|
||||
}
|
||||
|
||||
function displayPages($pagesize,$currpage,$numentries,$refreshfunc,$ad_params = "")
|
||||
{
|
||||
echo "Seite: ";
|
||||
@@ -535,7 +522,8 @@ function displayList($header,$entries,$speciallines=array(),$colors=array())
|
||||
echo "<tr style='background-color: #e2e2e2;'>";
|
||||
|
||||
if(isset($colors[$i]))
|
||||
echo "<td bgcolor='".$colors[$i]."' style='box-shadow: inset 0 0 0.7em #000; border: 1px solid black; border-top-left-radius: 0.5em; border-bottom-left-radius: 0.5em;'></td>";
|
||||
// die Farbe kommt aus der Benutzerverwaltung, nicht aus dem Code
|
||||
echo "<td bgcolor='".htmlspecialchars((string)$colors[$i])."' style='box-shadow: inset 0 0 0.7em #000; border: 1px solid black; border-top-left-radius: 0.5em; border-bottom-left-radius: 0.5em;'></td>";
|
||||
|
||||
foreach($entry AS $element)
|
||||
{
|
||||
@@ -564,25 +552,30 @@ function displayList($header,$entries,$speciallines=array(),$colors=array())
|
||||
echo "</table>";
|
||||
}
|
||||
|
||||
/*
|
||||
* Bausteine fuer die Trefferlisten. Sie liefern fertiges HTML und escapen
|
||||
* die Werte aus der Datenbank deshalb selbst.
|
||||
*/
|
||||
function makenameline($adresse)
|
||||
{
|
||||
$ret = $adresse["vname"]." ".$adresse["nname"];
|
||||
if($adresse["firma"])
|
||||
$ret .= "<br /><i><u>".$adresse["firma"]."</u></i>";
|
||||
$ret = zeilenHtml(trim($adresse["vname"]." ".$adresse["nname"]));
|
||||
if(!empty($adresse["firma"]))
|
||||
$ret .= "<br /><i><u>".zeilenHtml($adresse["firma"])."</u></i>";
|
||||
return $ret;
|
||||
}
|
||||
function makeadressline($adresse)
|
||||
{
|
||||
$ret["ort"] = $adresse["plz"]." ".$adresse["ort"];
|
||||
$ret["str"] = $adresse["str"]." ".$adresse["hnr"];
|
||||
$ret["ort"] = zeilenHtml(trim($adresse["plz"]." ".$adresse["ort"]));
|
||||
$ret["str"] = zeilenHtml(trim($adresse["str"]." ".$adresse["hnr"]));
|
||||
return $ret;
|
||||
}
|
||||
function maketelline($tel)
|
||||
{
|
||||
$ret="";
|
||||
if(isset($tel["vwahl"]) && !stristr($tel["tel"], "-") && !stristr($tel["tel"], "/"))
|
||||
$ret = $tel["vwahl"]."-";
|
||||
$ret .= $tel["tel"];
|
||||
$nr = isset($tel["tel"]) ? (string)$tel["tel"] : "";
|
||||
$ret = "";
|
||||
if(!empty($tel["vwahl"]) && !str_contains($nr, "-") && !str_contains($nr, "/"))
|
||||
$ret = zeilenHtml($tel["vwahl"])."-";
|
||||
$ret .= zeilenHtml($nr);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
+153
-171
@@ -1,6 +1,19 @@
|
||||
<?php
|
||||
<?php
|
||||
|
||||
require_once(__DIR__."/db.php");
|
||||
require_once('tcpdf/tcpdf.php');
|
||||
|
||||
// Unicode-Schriften statt der eingebauten PDF-Schriften Times/Helvetica: Die kennen
|
||||
// nur westeuropäische Zeichen, aus ř, ł, č usw. würde ein "?". FreeSerif und
|
||||
// FreeSans (bei TCPDF dabei) sind im Schriftbild und in der Breite nahezu gleich.
|
||||
define("PDF_SCHRIFT_SERIF", "freeserif");
|
||||
define("PDF_SCHRIFT_SANS", "freesans");
|
||||
|
||||
// Temporäre PDFs und Vorschaubilder in temp/ werden beim Erzeugen neuer Dateien
|
||||
// aufgeräumt, wenn sie älter sind als dies (Sekunden). Früher stand hier 20 -
|
||||
// gemeint waren Minuten: Bei 20 Sekunden konnte ein PDF verschwinden, bevor der
|
||||
// Browser es geladen hatte, sobald jemand anderes eins erzeugte.
|
||||
define("PDF_TEMP_MAX_ALTER", 20 * 60);
|
||||
function makerawPDF($ajax)
|
||||
{
|
||||
|
||||
@@ -45,13 +58,13 @@ function makerawPDF($ajax)
|
||||
$this->SetY(-16.5);
|
||||
$linepos=$this->GetY();
|
||||
$this->setX(30);
|
||||
$this->SetFont('Times','',9);
|
||||
$this->SetFont(PDF_SCHRIFT_SERIF,'',9);
|
||||
$this->SetTextColor(20,47,119);
|
||||
$this->Cell(180,5,'Seite '.$this->getAliasNumPage().' von '.$this->getAliasNbPages(),0,0,'R');
|
||||
$this->SetY(-16.3);
|
||||
$this->setX(15);
|
||||
//Arial fett 6
|
||||
$this->SetFont('helvetica','B',7);
|
||||
$this->SetFont(PDF_SCHRIFT_SANS,'B',7);
|
||||
|
||||
//Seitenzahl
|
||||
$this->SetDrawColor(20,47,119);
|
||||
@@ -100,12 +113,12 @@ function makerawPDF($ajax)
|
||||
//Position 1,5 cm von unten
|
||||
$this->SetY(-23);
|
||||
$this->setX(30);
|
||||
$this->SetFont('Times','',9);
|
||||
$this->SetFont(PDF_SCHRIFT_SERIF,'',9);
|
||||
$this->SetTextColor(0,0,0);
|
||||
$this->Cell(180,5,'Seite '.$this->getAliasNumPage().' von '.$this->getAliasNbPages(),0,0,'R');
|
||||
$this->SetY(-19);
|
||||
//Arial fett 6
|
||||
$this->SetFont('helvetica','B',8);
|
||||
$this->SetFont(PDF_SCHRIFT_SANS,'B',8);
|
||||
$this->SetTextColor(124,124,138);
|
||||
//Seitenzahl
|
||||
$this->setX(15);
|
||||
@@ -164,13 +177,13 @@ function makerawPDF($ajax)
|
||||
//Position 1,5 cm von unten
|
||||
$this->SetY(-17);
|
||||
$this->setX(30);
|
||||
$this->SetFont('Times','',9);
|
||||
$this->SetFont(PDF_SCHRIFT_SERIF,'',9);
|
||||
$this->SetTextColor(0,0,0);
|
||||
$this->Cell(180,5,'Seite '.$this->getAliasNumPage().' von '.$this->getAliasNbPages(),0,0,'R');
|
||||
$this->SetY(-10);
|
||||
$this->setX(15);
|
||||
//Arial fett 6
|
||||
$this->SetFont('helvetica','B',6);
|
||||
$this->SetFont(PDF_SCHRIFT_SANS,'B',6);
|
||||
$this->SetTextColor(124,124,138);
|
||||
//Seitenzahl
|
||||
|
||||
@@ -214,7 +227,7 @@ function makeumschlagAddress($ajax, $address){
|
||||
$pdf->SetAutoPageBreak(true,5);
|
||||
$pdf->AddPage("L",$pagelayout);
|
||||
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->setY(55);
|
||||
$pdf->setX(140);
|
||||
$pdf->MultiCell(75,50,str_replace("<br />","\n",$address["adresse"]),0,"L",0);
|
||||
@@ -261,7 +274,7 @@ function makerawPDFcopy($ajax)
|
||||
{
|
||||
$this->SetY(-17);
|
||||
$this->setX(30);
|
||||
$this->SetFont('Times','',9);
|
||||
$this->SetFont(PDF_SCHRIFT_SERIF,'',9);
|
||||
$this->SetTextColor(0,0,0);
|
||||
$this->Cell(180,5,'Seite '.$this->getAliasNumPage().' von '.$this->getAliasNbPages(),0,0,'R');
|
||||
$this->SetY(-10);
|
||||
@@ -303,7 +316,7 @@ function makerawPDFanfahrt($ajax)
|
||||
{
|
||||
$this->SetY(-17);
|
||||
$this->setX(30);
|
||||
$this->SetFont('Times','',9);
|
||||
$this->SetFont(PDF_SCHRIFT_SERIF,'',9);
|
||||
$this->SetTextColor(0,0,0);
|
||||
$this->Cell(180,5,'Seite '.$this->getAliasNumPage().' von '.$this->getAliasNbPages(),0,0,'R');
|
||||
$this->SetY(-10);
|
||||
@@ -329,13 +342,13 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
//$pdf->SetDrawColor(0,0,0);
|
||||
if($_SESSION["firma"] == "Wagner Markisen")
|
||||
{
|
||||
$pdf->SetFont('helvetica','B',10);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SANS,'B',10);
|
||||
$pdf->setY(52);
|
||||
$pdf->setX(165);
|
||||
$pdf->cell(40,5,"Öffnungszeiten:",0,0);
|
||||
$pdf->ln(5);
|
||||
$pdf->setX(165);
|
||||
$pdf->SetFont('helvetica','',9);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SANS,'',9);
|
||||
$pdf->cell(12,4,"Mo.:");
|
||||
$pdf->cell(20,4," 8:00 bis 12:00",0,0);
|
||||
$pdf->ln(3.8);
|
||||
@@ -361,7 +374,7 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
}
|
||||
//STORNO!!!
|
||||
if($rechnung["storno"] == 1){
|
||||
$pdf->SetFont('helvetica','B',75);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SANS,'B',75);
|
||||
$pdf->setY(135);
|
||||
$pdf->setX(70);
|
||||
$pdf->SetTextColor(200,0,0);
|
||||
@@ -372,7 +385,7 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
|
||||
}
|
||||
//ADRESSE!!!!
|
||||
$pdf->SetFont('helvetica','B',6);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SANS,'B',6);
|
||||
$pdf->setY(35);
|
||||
$pdf->setX(25);
|
||||
|
||||
@@ -392,7 +405,7 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
$pdf->Cell(0,3,'LSG OBERALLGÄU e.V. PHILIPP WAGNER IM ENGELFELD 13 87509 IMMENSTADT TEL.: 0176/21938558',0,0,'L');
|
||||
}
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->setY(40);
|
||||
$pdf->setX(25);
|
||||
$pdf->MultiCell(75,45,str_replace("<br />","\n",$adresse),0,"L",0);
|
||||
@@ -402,7 +415,7 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
$datum=strftime("%d.%m.%Y",strtotime($rechnung["datetime"]));
|
||||
$pdf->Cell(0,5,$datum,0,0,'L');
|
||||
//typ
|
||||
$pdf->SetFont('Times','B',18);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',18);
|
||||
$pdf->sety(80);
|
||||
$pdf->setX(20);
|
||||
if($rechnung["typ"] != "Brief")
|
||||
@@ -412,19 +425,19 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
|
||||
if($rechnung["typ"] != "Brief")
|
||||
{
|
||||
$pdf->SetFont('Times','B',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',12);
|
||||
$pdf->sety(95);
|
||||
$pdf->setX(20);
|
||||
$pdf->Cell(0,5,$rechnung["typ"].": ",0,0,'L');
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->sety(95);
|
||||
$pdf->setX(60);
|
||||
$pdf->Cell(0,5,$rechnung["drechnr"],0,0,'L');
|
||||
if($_SESSION["firma"] == "LSG Oberallgäu")
|
||||
{
|
||||
$pdf->SetFont('Times','B',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',12);
|
||||
$pdf->Cell(0,5,"Bitte bei der Überweisung angeben!!",0,0,'L');
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
}
|
||||
$currY = 100;
|
||||
}
|
||||
@@ -436,11 +449,11 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
|
||||
if($_SESSION["firma"] == "Wagner Markisen")
|
||||
{
|
||||
$pdf->SetFont('Times','B',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',12);
|
||||
$pdf->sety(100);
|
||||
$pdf->setX(20);
|
||||
$pdf->Cell(0,5,"Kundennummer: ",0,0,'L');
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->sety(100);
|
||||
$pdf->setX(60);
|
||||
$pdf->Cell(0,5,$rechnung["partner_id"],0,0,'L');
|
||||
@@ -454,7 +467,7 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
|
||||
|
||||
//Begrüßung
|
||||
$pdf->SetFont('Times','B',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',12);
|
||||
$pdf->setY($currY);
|
||||
$pdf->setX(20);
|
||||
$pdf->Cell(0,5,$rechnung["anrede1"],0,0,'L');
|
||||
@@ -470,7 +483,7 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
if ($rechnung["typ"] == "Rechnung")
|
||||
{
|
||||
// $currY += 5;
|
||||
// $pdf->SetFont('Times','',12);
|
||||
// $pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
// $pdf->sety($currY);
|
||||
// $pdf->setX(20);
|
||||
// $pdf->Cell(0,5,"Wir bedanken uns für Ihr Vertrauen.",0,0,'L');
|
||||
@@ -478,7 +491,7 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
elseif ($rechnung["typ"] == "Auftragsbestätigung")
|
||||
{
|
||||
$currY += 5;
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->sety($currY);
|
||||
$pdf->setX(20);
|
||||
if($_SESSION["firma"] == "Ingenieurbüro Wagner")
|
||||
@@ -489,7 +502,7 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
elseif ($rechnung["typ"] == "Angebot")
|
||||
{
|
||||
$currY += 5;
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->sety($currY);
|
||||
$pdf->setX(20);
|
||||
if($rechnung["anrede1"] || $rechnung["anrede2"])
|
||||
@@ -509,7 +522,7 @@ function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
||||
if (rtrim($rechnung["intro"])!="" )
|
||||
{
|
||||
$currY += 5;
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->sety($currY);
|
||||
$pdf->setX(20);
|
||||
if($rechnung["typ"] == "Brief")
|
||||
@@ -553,7 +566,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
$newpdf->setX(20);
|
||||
$newcurrY=3;
|
||||
$newpdf->setY($newcurrY);
|
||||
$newpdf->SetFont('Times','',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
||||
$newpdf->setX(20);
|
||||
$newpdf->MultiCell(100-$mixedmwst*15,5,$artikel[0]["art"]["bezeichn"],0,'L',0,1);
|
||||
$newpdf->setX(120-$mixedmwst*15);
|
||||
@@ -568,7 +581,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
$newpdf->Cell(15,5,$artikel[0]["art"]["artmwst"]."%",0,0,'R');
|
||||
}
|
||||
$newpdf->setY($newcurrY+2);
|
||||
$newpdf->SetFont('Times','',12);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
foreach($artikel[0]["eig"] as $eig)
|
||||
{
|
||||
$newpdf->Cell(100, 3, $eig["bezeichn"], 0, 1, "L", 0);
|
||||
@@ -582,7 +595,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
}
|
||||
|
||||
//Table-HEAD
|
||||
$pdf->SetFont('Times','B',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$pdf->sety($pdf->GetY()+5);
|
||||
$pdf->setX(20);
|
||||
$pdf->Cell(100-$mixedmwst*15,5,'Bezeichnung',0,0,'L');
|
||||
@@ -619,7 +632,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
$currY = $newpdf->GetY();
|
||||
if (($currY+$artheight > 255 && $artheight < 219) || ($art["art"]["pagebreak"] && !$wholetablebreak))
|
||||
{
|
||||
$newpdf->SetFont('Times','B',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$newpdf->Line(18 , $currY+4.3, 200, $currY+4.3);
|
||||
$newpdf->setY($currY+7);
|
||||
$newpdf->setX(130-$mixedmwst*15);
|
||||
@@ -632,7 +645,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
$newpdf->AddPage("P");
|
||||
//Table-re-HEAD
|
||||
$currY = $pdf->GetY();
|
||||
$pdf->SetFont('Times','B',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$pdf->setX(20);
|
||||
$pdf->Cell(100-$mixedmwst*15,5,'Bezeichnung',0,0,'L');
|
||||
$pdf->setX(120-$mixedmwst*15);
|
||||
@@ -651,7 +664,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
$currY = $pdf->GetY();
|
||||
|
||||
|
||||
$newpdf->SetFont('Times','',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
||||
}
|
||||
$currY = $newpdf->GetY();
|
||||
}
|
||||
@@ -671,7 +684,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
|
||||
$currY= $newpdf->GetY()+5;
|
||||
$newpdf->setY($currY);
|
||||
$newpdf->SetFont('Times','',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
||||
$newpdf->setX(120-$mixedmwst*15);
|
||||
$newpdf->Cell(15,5,number_significant($art["art"]["menge"], 3)." ".$art["art"]["einheit"],0,0,'C');
|
||||
$newpdf->setX(135-$mixedmwst*15);
|
||||
@@ -689,7 +702,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
}
|
||||
if($art["art"]["rabatt"])
|
||||
{
|
||||
$newpdf->SetFont('Times','I',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'I',14);
|
||||
$newpdf->setX(110-$mixedmwst*15);
|
||||
if(!$art["art"]["rabatttyp"])
|
||||
$newpdf->Cell(100,5,"Abzüglich ".$art["art"]["rabatt"]."% Rabatt",0,0,'L');
|
||||
@@ -707,10 +720,10 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
|
||||
$newpdf->setY($currY);
|
||||
$newpdf->setX(20);
|
||||
$newpdf->SetFont('Times','B',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$newpdf->MultiCell(90-$mixedmwst*15,5,$art["art"]["bezeichn"],0,'L',0,1);
|
||||
$currY = $newpdf->GetY();
|
||||
$newpdf->SetFont('Times','',12);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
foreach($art["eig"] as $eig)
|
||||
{
|
||||
if($eig["einheit"] == "keine")
|
||||
@@ -728,7 +741,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
|
||||
$currY= $newpdf->GetY()+3;
|
||||
$newpdf->setY($currY);
|
||||
$newpdf->SetFont('Times','',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
||||
$newpdf->setX(120-$mixedmwst*15);
|
||||
$newpdf->Cell(15,5,number_significant($art["art"]["menge"], 3)." ".$art["art"]["einheit"],0,0,'C');
|
||||
$newpdf->setX(135-$mixedmwst*15);
|
||||
@@ -743,7 +756,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
$newpdf->Ln();
|
||||
if($art["art"]["rabatt"])
|
||||
{
|
||||
$newpdf->SetFont('Times','I',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'I',14);
|
||||
$newpdf->setX(110-$mixedmwst*15);
|
||||
if(!$art["art"]["rabatttyp"])
|
||||
$newpdf->Cell(100,5,"Abzüglich ".$art["art"]["rabatt"]."% Rabatt",0,0,'L');
|
||||
@@ -761,10 +774,10 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
|
||||
$newpdf->setY($currY);
|
||||
$newpdf->setX(25);
|
||||
$newpdf->SetFont('Times','',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
||||
$newpdf->MultiCell(85-$mixedmwst*15,5,"(Optional: " .$art["art"]["bezeichn"].")",0,'L',0,1);
|
||||
$currY = $newpdf->GetY();
|
||||
$newpdf->SetFont('Times','',12);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
foreach($art["eig"] as $eig)
|
||||
{
|
||||
if($eig["einheit"] == "keine")
|
||||
@@ -780,7 +793,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
|
||||
$currY= $newpdf->GetY()+3;
|
||||
$newpdf->setY($currY);
|
||||
$newpdf->SetFont('Times','',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
||||
$newpdf->setX(120-$mixedmwst*15);
|
||||
$newpdf->Cell(15,5,number_significant($art["art"]["menge"], 3)." ".$art["art"]["einheit"],0,0,'C');
|
||||
$newpdf->setX(135-$mixedmwst*15);
|
||||
@@ -796,7 +809,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
|
||||
if($art["art"]["rabatt"])
|
||||
{
|
||||
$newpdf->SetFont('Times','I',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'I',14);
|
||||
$newpdf->setX(110-$mixedmwst*15);
|
||||
if(!$art["art"]["rabatttyp"])
|
||||
$newpdf->Cell(100,5,"Abzüglich ".$art["art"]["rabatt"]."% Rabatt",0,0,'L');
|
||||
@@ -814,10 +827,10 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
|
||||
$newpdf->setY($currY);
|
||||
$newpdf->setX(25);
|
||||
$newpdf->SetFont('Times','',14);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
||||
$newpdf->MultiCell(85-$mixedmwst*15,5,"(Alternativ: " .$art["art"]["bezeichn"].")",0,'L',0,1);
|
||||
$currY = $newpdf->GetY();
|
||||
$newpdf->SetFont('Times','',12);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
foreach($art["eig"] as $eig)
|
||||
{
|
||||
if($eig["einheit"] == "keine")
|
||||
@@ -837,7 +850,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
{
|
||||
$currY = $pdf->GetY();
|
||||
//Endbetrag
|
||||
$pdf->SetFont('Times','B',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$pdf->Line(18 , $currY+2, 200, $currY+2);
|
||||
$pdf->setY($currY+2);
|
||||
|
||||
@@ -874,7 +887,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
$pdf->Cell(30,6,number_format($ubertr_all,2,",",".")." ".$wahrung,0,1,'R');
|
||||
$currY=$pdf->GetY()+10;
|
||||
$pdf->setY($currY);
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->setX(20);
|
||||
$currY=$currY;
|
||||
}
|
||||
@@ -883,7 +896,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
{
|
||||
$currY = $pdf->GetY();
|
||||
//Endbetrag
|
||||
$pdf->SetFont('Times','B',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$pdf->Line(18 , $currY+2, 200, $currY+2);
|
||||
$pdf->setY($currY+2);
|
||||
$pdf->setX(130-$mixedmwst*15);
|
||||
@@ -936,7 +949,7 @@ function maketable($pdf,$artikel,$rechnung,$ajax)
|
||||
$pdf->Cell(30,6,number_format($ubertr_all,2,",",".")." ".$wahrung,0,1,'R');
|
||||
$currY=$pdf->GetY()+10;
|
||||
$pdf->setY($currY);
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->setX(20);
|
||||
$currY=$currY;
|
||||
}
|
||||
@@ -978,7 +991,7 @@ function makeEndPage($pdf,$rechnung,$gesamtpreis,$ajax)
|
||||
}
|
||||
if (rtrim($rechnung["outro"]) != "")
|
||||
{
|
||||
$newpdf->SetFont('Times','',12);
|
||||
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$newpdf->setX(20);
|
||||
$newpdf->MultiCell(0,5,rtrim($rechnung["outro"]),0,'L',0);
|
||||
//ENDE!!
|
||||
@@ -1121,9 +1134,9 @@ function savePDF($pdf,$PDFpath)
|
||||
if (preg_match("=^\.=", $file))
|
||||
continue; # ., .. und versteckte Dateien (.gitkeep) ignorieren
|
||||
elseif(is_file($PDFpathpart.$file))
|
||||
{ #Dateien prüfen, und löschen, wenn älter als $delFile - Minuten
|
||||
{ #Dateien löschen, wenn älter als PDF_TEMP_MAX_ALTER
|
||||
$lastTime = ceil((time() - filemtime($PDFpathpart.$file)));
|
||||
if($lastTime > 20){
|
||||
if($lastTime > PDF_TEMP_MAX_ALTER){
|
||||
unlink($PDFpathpart.$file);
|
||||
}
|
||||
}
|
||||
@@ -1144,27 +1157,27 @@ function makeImageFromPDF($PDFpath)
|
||||
$handle=opendir($PDFpathpart);
|
||||
while ($file = readdir($handle))
|
||||
{
|
||||
if (preg_match("=^\.{1,2}$=", $file))
|
||||
continue; # . und .. Dateien ignorieren
|
||||
if (preg_match("=^\.=", $file))
|
||||
continue; # ., .. und versteckte Dateien (.gitkeep) ignorieren
|
||||
|
||||
if (is_dir($PDFpathpart.$file))
|
||||
{
|
||||
$lastTime = ceil((time() - filemtime($PDFpathpart.$file)));
|
||||
if($lastTime > 20){
|
||||
if($lastTime > PDF_TEMP_MAX_ALTER){
|
||||
rrmdir($PDFpathpart.$file."/");
|
||||
}
|
||||
}
|
||||
else
|
||||
{ #Dateien prüfen, und löschen, wenn älter als $delFile - Minuten
|
||||
{ #Dateien löschen, wenn älter als PDF_TEMP_MAX_ALTER
|
||||
$lastTime = ceil((time() - filemtime($PDFpathpart.$file)));
|
||||
if($lastTime > 20){
|
||||
if($lastTime > PDF_TEMP_MAX_ALTER){
|
||||
unlink($PDFpathpart.$file);
|
||||
}
|
||||
}
|
||||
}
|
||||
mkdir(dirname($PDFpath)."/".basename($PDFpath,".pdf")."/");
|
||||
//exec('');
|
||||
exec("export PATH=\"/opt/bin\";/opt/bin/convert $PDFpath ".dirname($PDFpath)."/".basename($PDFpath,".pdf")."/".basename($PDFpath,".pdf").".png");
|
||||
exec("export PATH=\"/opt/bin\";/opt/bin/convert ".escapeshellarg($PDFpath)." ".escapeshellarg(dirname($PDFpath)."/".basename($PDFpath,".pdf")."/".basename($PDFpath,".pdf").".png"));
|
||||
$i="0";
|
||||
$ret = "";
|
||||
if(is_file(dirname($PDFpath)."/".basename($PDFpath,".pdf")."/".basename($PDFpath,".pdf").".png"))
|
||||
@@ -1202,24 +1215,24 @@ function makezettel($pdf,$termine,$anfahrt,$googleadressen='')
|
||||
}
|
||||
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
$pdf->SetFont('Times','',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
||||
$pdf->setY(20);
|
||||
$pdf->setX(25);
|
||||
$pdf->MultiCell(85,0,str_replace("<br />","\n",$adresse["adresse"]),0,"L",0);
|
||||
$pdf->Ln(10);
|
||||
$pdf->SetFont('Times','BU',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'BU',14);
|
||||
$pdf->Cell(0,5,strtoupper($termin["typ"])." - ".$termin["head"],0,1,"C",0);
|
||||
$pdf->SetFont('Times','B',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
//$pdf->Line(35,$pdf->GetY(),180,$pdf->GetY());
|
||||
$notespos = $pdf->GetY();
|
||||
$pdf->setY(20);
|
||||
$pdf->Cell(0,5,date("d.m.Y, H:i",strtotime($termin["termtime"]))." Uhr",0,1,"R",0);
|
||||
$pdf->Cell(0,5,"(".$dauer." geplant)",0,1,"R",0);
|
||||
$pdf->SetY($notespos);
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->MultiCell(0,0,$termin["text"],0,"C",0);
|
||||
$pdf->Ln();
|
||||
$pdf->SetFont('Times','B',16);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',16);
|
||||
$pdf->Cell(0,5,"Notizen:",0,1,"C",0);
|
||||
$pdf->Ln(12);
|
||||
$pdf->SetDrawColor(100,100,100);
|
||||
@@ -1261,17 +1274,17 @@ function makesingleterminpage($pdf,$termin,$adresse,$telnrn,$anfahrt,$googleadre
|
||||
$mitarbeiter .= ", ".$termin["uservname4"]." ".$termin["usernname4"];
|
||||
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
$pdf->SetFont('Times','',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
||||
$pdf->setY(20);
|
||||
$pdf->setX(25);
|
||||
$pdf->MultiCell(85,0,str_replace("<br />","\n",$adresse["adresse"]),0,"L",0);
|
||||
$pdf->SetFont('Times','B',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',12);
|
||||
$pdf->ln(5);
|
||||
$pdf->MultiCell(0,0,$telnrn,0,"L",0);
|
||||
$pdf->Ln(10);
|
||||
$pdf->SetFont('Times','BU',16);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'BU',16);
|
||||
$pdf->Cell(0,5,strtoupper($termin["typ"])." - ".$termin["head"],0,1,"C",0);
|
||||
$pdf->SetFont('Times','B',16);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',16);
|
||||
//$pdf->Line(35,$pdf->GetY(),180,$pdf->GetY());
|
||||
$notespos = $pdf->GetY();
|
||||
$pdf->setY(10);
|
||||
@@ -1279,10 +1292,10 @@ function makesingleterminpage($pdf,$termin,$adresse,$telnrn,$anfahrt,$googleadre
|
||||
$pdf->Cell(0,5,"(".$dauer." geplant)",0,1,"R",0);
|
||||
$pdf->MultiCell(0,0,"(".$mitarbeiter.")",0,"R",0);
|
||||
$pdf->SetY($notespos);
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->MultiCell(0,0,$termin["text"],0,"C",0);
|
||||
$pdf->Ln();
|
||||
$pdf->SetFont('Times','B',16);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',16);
|
||||
$pdf->Cell(0,5,"Notizen:",0,1,"C",0);
|
||||
$pdf->Ln(12);
|
||||
$pdf->SetDrawColor(100,100,100);
|
||||
@@ -1293,7 +1306,7 @@ function makesingleterminpage($pdf,$termin,$adresse,$telnrn,$anfahrt,$googleadre
|
||||
$pdf->line(10,$pdf->GetY(),200,$pdf->GetY());
|
||||
$pdf->Ln(12);
|
||||
}
|
||||
$pdf->SetFont('Times','',16);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',16);
|
||||
$pdf->Cell(0,5,"Ankunft:______________________ Abfahrt:_____________________",0,1,"L",0);
|
||||
$pdf->Ln(12);
|
||||
$pdf->Cell(0,5,"Unterschrift Kunde:_____________________",0,1,"C",0);
|
||||
@@ -1312,7 +1325,7 @@ function makesingleterminpage($pdf,$termin,$adresse,$telnrn,$anfahrt,$googleadre
|
||||
$pdf->line(120,$pdf->GetY(),200,$pdf->GetY());
|
||||
$pdf->Ln(12);
|
||||
}
|
||||
$pdf->SetFont('Times','',16);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',16);
|
||||
$pdf->Cell(0,5,"Ankunft:______________________ Abfahrt:_____________________",0,1,"L",0);
|
||||
$pdf->Ln(10);
|
||||
$pdf->Cell(0,5,"Unterschrift Kunde:_____________________",0,1,"C",0);
|
||||
@@ -1320,9 +1333,10 @@ function makesingleterminpage($pdf,$termin,$adresse,$telnrn,$anfahrt,$googleadre
|
||||
}
|
||||
}
|
||||
|
||||
/* Die Daten eines Termins fuer den Terminzettel */
|
||||
function maketerminarray($dbconn,$id)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT head, user, text, termin.id, termtime, termtyp.typ AS typ, termdauer, str, ort, hnr, plz, partner_id, land,
|
||||
$res = db_zeile($dbconn,"SELECT head, user, text, termin.id, termtime, termtyp.typ AS typ, termdauer, str, ort, hnr, plz, partner_id, land,
|
||||
adresse.vname AS vname, adresse.nname AS nname, titel_id, titel2_id, anrede_id, anrede2_id, vname2, nname2, zusatz,
|
||||
user.vname as uservname, user.nname as usernname,
|
||||
user2.vname as uservname2, user2.nname as usernname2,
|
||||
@@ -1338,72 +1352,38 @@ function maketerminarray($dbconn,$id)
|
||||
LEFT JOIN user AS user2 ON termin.user2 = user2.id
|
||||
LEFT JOIN user AS user3 ON termin.user3 = user3.id
|
||||
LEFT JOIN user AS user4 ON termin.user4 = user4.id
|
||||
WHERE termin.id = $id") or $err = error("Fehler beim ermitteln der Termindaten<br />".mysqli_error($dbconn));
|
||||
$res = mysqli_fetch_assoc($qry);
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT anrede
|
||||
FROM anrede
|
||||
WHERE id = '".$res["anrede_id"]."'") or $err = error("Fehler beim ermitteln der Anrede<br />".mysqli_error($dbconn));
|
||||
$res2 = mysqli_fetch_assoc($qry);
|
||||
$res["anrede"] = $res2["anrede"];
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT anrede
|
||||
FROM anrede
|
||||
WHERE id = '".$res["anrede2_id"]."'") or $err = error("Fehler beim ermitteln der Anrede2<br />".mysqli_error($dbconn));
|
||||
$res2 = mysqli_fetch_assoc($qry);
|
||||
$res["anrede2"] = $res2["anrede"];
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT titel
|
||||
FROM titel
|
||||
WHERE id = '".$res["titel_id"]."'") or $err = error("Fehler beim ermitteln des Titels<br />".mysqli_error($dbconn));
|
||||
$res2 = mysqli_fetch_assoc($qry);
|
||||
$res["titel"] = $res2["titel"];
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT titel
|
||||
FROM titel
|
||||
WHERE id = '".$res["titel2_id"]."'") or $err = error("Fehler beim ermitteln des Titel2<br />".mysqli_error($dbconn));
|
||||
$res2 = mysqli_fetch_assoc($qry);
|
||||
$res["titel2"] = $res2["titel"];
|
||||
|
||||
WHERE termin.id = ?", array($id));
|
||||
if(!$res)
|
||||
{
|
||||
error("Fehler beim ermitteln der Termindaten<br />".mysqli_error($dbconn));
|
||||
return array();
|
||||
}
|
||||
$anrs = db_zuordnung($dbconn, "SELECT id, anrede FROM anrede") ?: array();
|
||||
$titels = db_zuordnung($dbconn, "SELECT id, titel FROM titel") ?: array();
|
||||
$res["anrede"] = $anrs[$res["anrede_id"]] ?? "";
|
||||
$res["anrede2"] = $anrs[$res["anrede2_id"]] ?? "";
|
||||
$res["titel"] = $titels[$res["titel_id"]] ?? "";
|
||||
$res["titel2"] = $titels[$res["titel2_id"]] ?? "";
|
||||
return $res;
|
||||
}
|
||||
|
||||
function maketerminadresse($dbconn,$termid)
|
||||
{
|
||||
|
||||
$qry=mysqli_query($dbconn,"SELECT nname, titel_id, titel2_id, vname, nname2, vname2, str, ort, plz, hnr, land, firma, anrede_id, anrede2_id, partner_id, adresse_id
|
||||
$adresse = db_zeile($dbconn,"SELECT nname, titel_id, titel2_id, vname, nname2, vname2, str, ort, plz, hnr, land, firma, anrede_id, anrede2_id, partner_id, adresse_id
|
||||
FROM termin
|
||||
JOIN adresse ON termin.adresse_id = adresse.id
|
||||
JOIN strasse ON strasse.id = str_id
|
||||
JOIN ort ON ort.id = ort_id JOIN land ON land.id = land_id
|
||||
WHERE termin.id = $termid") or $err= error("Fehler beim ermitteln der Adressdaten<br />".mysqli_error($dbconn));
|
||||
|
||||
|
||||
$adresse = mysqli_fetch_assoc($qry);
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM anrede");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
WHERE termin.id = ?", array($termid));
|
||||
if(!$adresse)
|
||||
{
|
||||
$anrs[$res["id"]] = $res["anrede"];
|
||||
error("Fehler beim ermitteln der Adressdaten<br />".mysqli_error($dbconn));
|
||||
$adresse = array();
|
||||
}
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM titel");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$titels[$res["id"]] = $res["titel"];
|
||||
}
|
||||
|
||||
define("ADRFIELD_FIRMAANR", 0);
|
||||
define("ADRFIELD_FIRMA", 1);
|
||||
define("ADRFIELD_ANR1", 2);
|
||||
define("ADRFIELD_TITEL1", 3);
|
||||
define("ADRFIELD_NAME1", 4);
|
||||
define("ADRFIELD_ANR2", 5);
|
||||
define("ADRFIELD_TITEL2", 6);
|
||||
define("ADRFIELD_NAME2", 7);
|
||||
define("ADRFIELD_STR", 8);
|
||||
define("ADRFIELD_ORT", 9);
|
||||
define("ADRFIELD_LAND", 10);
|
||||
// ADRFIELD_* stehen in incs/constants.php
|
||||
$anrs = db_zuordnung($dbconn, "SELECT id, anrede FROM anrede") ?: array();
|
||||
$titels = db_zuordnung($dbconn, "SELECT id, titel FROM titel") ?: array();
|
||||
|
||||
$adressfields = "";
|
||||
if($adresse["firma"])
|
||||
@@ -1788,50 +1768,52 @@ define("ADRFIELD_LAND", 10);
|
||||
|
||||
function maketelnrn($dbconn,$termid)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"SELECT partner_id, adresse_id
|
||||
$telstr = "";
|
||||
$adresse = db_zeile($dbconn,"SELECT partner_id, adresse_id
|
||||
FROM termin
|
||||
JOIN adresse ON termin.adresse_id = adresse.id
|
||||
WHERE termin.id = $termid") or $err= error("Fehler beim ermitteln der Adressdaten<br />".mysqli_error($dbconn));
|
||||
|
||||
|
||||
if($adresse = mysqli_fetch_assoc($qry))
|
||||
WHERE termin.id = ?", array($termid));
|
||||
if($adresse)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT name,typ,tel.id,nr,ort,ortsteil,plz,vwahl FROM tel LEFT JOIN teltyp ON typ_id = teltyp.id LEFT JOIN ort ON ort_id = ort.id WHERE partner_id='".$adresse["partner_id"]."' AND (tel.adresse_id = 0 OR tel.adresse_id = '".$adresse["adresse_id"]."') ORDER BY typ_id ASC");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$telstr .= trim($res["typ"]).": "." (".$res["vwahl"].") ".$res["nr"]." in ".$res["ort"]."(".$res["name"].")\n";
|
||||
}
|
||||
$qry = mysqli_query($dbconn,"SELECT kontakt,typ FROM kontakt LEFT JOIN kontakttyp ON typ_id = kontakttyp.id WHERE partner_id='".$adresse["partner_id"]."' ORDER BY typ_id ASC");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$telstr .= trim($res["typ"]).": ".$res["kontakt"]."\n";
|
||||
}
|
||||
$zeilen = db_zeilen($dbconn,"SELECT name, typ, tel.id, nr, ort, ortsteil, plz, vwahl FROM tel
|
||||
LEFT JOIN teltyp ON tel.typ_id = teltyp.id
|
||||
LEFT JOIN ort ON tel.ort_id = ort.id
|
||||
WHERE partner_id = ? AND (tel.adresse_id = 0 OR tel.adresse_id = ?)
|
||||
ORDER BY tel.typ_id ASC", array($adresse["partner_id"], $adresse["adresse_id"]));
|
||||
foreach((array)$zeilen as $res)
|
||||
$telstr .= trim($res["typ"]).": "." (".$res["vwahl"].") ".$res["nr"]." in ".$res["ort"]."(".$res["name"].")\\n";
|
||||
$zeilen = db_zeilen($dbconn,"SELECT kontakt, typ FROM kontakt
|
||||
LEFT JOIN kontakttyp ON kontakt.typ_id = kontakttyp.id
|
||||
WHERE partner_id = ? ORDER BY kontakt.typ_id ASC", array($adresse["partner_id"]));
|
||||
foreach((array)$zeilen as $res)
|
||||
$telstr .= trim($res["typ"]).": ".$res["kontakt"]."\\n";
|
||||
}
|
||||
return $telstr;
|
||||
}
|
||||
|
||||
function makeadrtelnrn($dbconn,$partnerid)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT name,typ,tel.id,nr,ort,ortsteil,plz,vwahl FROM tel LEFT JOIN teltyp ON typ_id = teltyp.id LEFT JOIN ort ON ort_id = ort.id WHERE partner_id='".$partnerid."' ORDER BY typ_id ASC");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$telstr .= trim($res["typ"]).": "."(".$res["vwahl"].")".$res["nr"].",".$res["ort"]."(".$res["name"].")\n";
|
||||
}
|
||||
$telstr = "";
|
||||
$zeilen = db_zeilen($dbconn,"SELECT name, typ, tel.id, nr, ort, ortsteil, plz, vwahl FROM tel
|
||||
LEFT JOIN teltyp ON tel.typ_id = teltyp.id
|
||||
LEFT JOIN ort ON tel.ort_id = ort.id
|
||||
WHERE partner_id = ? ORDER BY tel.typ_id ASC", array($partnerid));
|
||||
foreach((array)$zeilen as $res)
|
||||
$telstr .= trim($res["typ"]).": "."(".$res["vwahl"].")".$res["nr"].",".$res["ort"]."(".$res["name"].")\\n";
|
||||
return $telstr;
|
||||
}
|
||||
|
||||
function makegooglestring($dbconn,$termid)
|
||||
{
|
||||
|
||||
$qry=mysqli_query($dbconn,"SELECT nname, titel_id, titel2_id, vname, nname2, vname2, str, ort, plz, hnr, land, firma, anrede_id, anrede2_id
|
||||
$googlestr = "";
|
||||
$adresse = db_zeile($dbconn,"SELECT nname, titel_id, titel2_id, vname, nname2, vname2, str, ort, plz, hnr, land, firma, anrede_id, anrede2_id
|
||||
FROM termin
|
||||
JOIN adresse ON termin.adresse_id = adresse.id
|
||||
JOIN strasse ON strasse.id = str_id
|
||||
JOIN ort ON ort.id = ort_id JOIN land ON land.id = land_id
|
||||
WHERE termin.id = $termid") or $err= error("Fehler beim ermitteln der Adressdaten<br />".mysqli_error($dbconn));
|
||||
|
||||
|
||||
if($adresse = mysqli_fetch_assoc($qry))
|
||||
WHERE termin.id = ?", array($termid));
|
||||
if($adresse)
|
||||
{
|
||||
$googlestr = "http://maps.googleapis.com/maps/api/staticmap";
|
||||
$googlestr .= "?markers=color:blue|label:A|";
|
||||
@@ -1852,7 +1834,7 @@ function makeprojectpage($pdf,$adresse,$telnrn,$project,$work)
|
||||
else
|
||||
$picpath = "./pics/";
|
||||
|
||||
$pdf->SetFont('helvetica','B',6);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SANS,'B',6);
|
||||
$pdf->setY(35);
|
||||
$pdf->setX(25);
|
||||
|
||||
@@ -1872,11 +1854,11 @@ function makeprojectpage($pdf,$adresse,$telnrn,$project,$work)
|
||||
$pdf->Cell(0,3,'LSG OBERALLGÄU e.V. PHILIPP WAGNER IM ENGELFELD 13 87509 IMMENSTADT TEL.: 0176/21938558',0,0,'L');
|
||||
}
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->setY(40);
|
||||
$pdf->setX(25);
|
||||
$pdf->MultiCell(85,0,str_replace("<br />","\n",$adresse["adresse"]),0,"L",0);
|
||||
$pdf->SetFont('Times','B',10);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',10);
|
||||
$tmpY = $pdf->getY();
|
||||
$pdf->setY(40);
|
||||
$pdf->setX(110);
|
||||
@@ -1885,13 +1867,13 @@ function makeprojectpage($pdf,$adresse,$telnrn,$project,$work)
|
||||
$tmpY = $pdf->getY();
|
||||
$pdf->setY($tmpY);
|
||||
$pdf->Ln(5);
|
||||
$pdf->SetFont('Times','BU',16);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'BU',16);
|
||||
$pdf->Cell(0,5,$project["name"],0,1,"C",0);
|
||||
$pdf->SetFont('Times','B',16);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',16);
|
||||
$pdf->Ln(12);
|
||||
//Table-re-HEAD
|
||||
$currY = $pdf->GetY();
|
||||
$pdf->SetFont('Times','B',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$pdf->setX(20);
|
||||
$pdf->Cell(135,5,'Arbeit',0,0,'C');
|
||||
$pdf->setX(155);
|
||||
@@ -1906,7 +1888,7 @@ function makeprojectpage($pdf,$adresse,$telnrn,$project,$work)
|
||||
$currY = $pdf->GetY();
|
||||
$pdf->SetDrawColor(100,100,100);
|
||||
//while($pdf->GetY() < 260)
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$gesstd = 0;
|
||||
foreach($work as $workline)
|
||||
{
|
||||
@@ -1928,7 +1910,7 @@ function makeprojectpage($pdf,$adresse,$telnrn,$project,$work)
|
||||
$pdf->AddPage("P");
|
||||
//Table-re-HEAD
|
||||
$currY = $pdf->GetY();
|
||||
$pdf->SetFont('Times','B',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$pdf->setX(20);
|
||||
$pdf->Cell(135,5,'Arbeit',0,0,'C');
|
||||
$pdf->setX(155);
|
||||
@@ -1939,13 +1921,13 @@ function makeprojectpage($pdf,$adresse,$telnrn,$project,$work)
|
||||
$pdf->Line(18 , $pdf->GetY(), 200, $pdf->GetY());
|
||||
$pdf->Line(180 , $pdf->GetY()-5, 180, 270);
|
||||
$pdf->Line(155 , $pdf->GetY()-5, 155, 270);
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
}
|
||||
}
|
||||
$pdf->Line(18 , $pdf->GetY()+1, 200, $pdf->GetY());
|
||||
$pdf->Line(18 , $pdf->GetY()+2, 200, $pdf->GetY()+1);
|
||||
$pdf->SetY($pdf->GetY()+3);
|
||||
$pdf->SetFont('Times','B',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$pdf->setX(20);
|
||||
$pdf->Cell(135,5,'Arbeitsstunden Summe:',0,0,'C');
|
||||
$pdf->setX(155);
|
||||
@@ -1961,7 +1943,7 @@ function makezeitpage($pdf,$name,$daymins,$zeiten)
|
||||
else
|
||||
$picpath = "./pics/";
|
||||
|
||||
$pdf->SetFont('helvetica','B',6);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SANS,'B',6);
|
||||
$pdf->setY(35);
|
||||
$pdf->setX(25);
|
||||
|
||||
@@ -1981,11 +1963,11 @@ function makezeitpage($pdf,$name,$daymins,$zeiten)
|
||||
$pdf->Cell(0,3,'LSG OBERALLGÄU e.V. PHILIPP WAGNER IM ENGELFELD 13 87509 IMMENSTADT TEL.: 0176/21938558',0,0,'L');
|
||||
}
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$pdf->setY(40);
|
||||
$pdf->setX(25);
|
||||
$pdf->MultiCell(85,0,str_replace("<br />","\n",$name),0,"L",0);
|
||||
$pdf->SetFont('Times','B',10);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',10);
|
||||
$tmpY = $pdf->getY();
|
||||
$pdf->setY(40);
|
||||
$pdf->setX(110);
|
||||
@@ -1994,13 +1976,13 @@ function makezeitpage($pdf,$name,$daymins,$zeiten)
|
||||
$tmpY = $pdf->getY();
|
||||
$pdf->setY($tmpY);
|
||||
$pdf->Ln(5);
|
||||
$pdf->SetFont('Times','BU',16);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'BU',16);
|
||||
$pdf->Cell(0,5,$project["name"],0,1,"C",0);
|
||||
$pdf->SetFont('Times','B',16);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',16);
|
||||
$pdf->Ln(12);
|
||||
//Table-re-HEAD
|
||||
$currY = $pdf->GetY();
|
||||
$pdf->SetFont('Times','B',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$pdf->setX(20);
|
||||
$pdf->Cell(35,5,'Kommen',0,0,'C');
|
||||
$pdf->setX(55);
|
||||
@@ -2017,7 +1999,7 @@ function makezeitpage($pdf,$name,$daymins,$zeiten)
|
||||
$currY = $pdf->GetY();
|
||||
$pdf->SetDrawColor(100,100,100);
|
||||
//while($pdf->GetY() < 260)
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
$gesstd = 0;
|
||||
foreach($zeiten as $zeit)
|
||||
{
|
||||
@@ -2040,7 +2022,7 @@ function makezeitpage($pdf,$name,$daymins,$zeiten)
|
||||
$pdf->AddPage("P");
|
||||
//Table-re-HEAD
|
||||
$currY = $pdf->GetY();
|
||||
$pdf->SetFont('Times','B',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$pdf->setX(20);
|
||||
$pdf->Cell(35,5,'Kommen',0,0,'C');
|
||||
$pdf->setX(55);
|
||||
@@ -2053,13 +2035,13 @@ function makezeitpage($pdf,$name,$daymins,$zeiten)
|
||||
$pdf->Line(18 , $pdf->GetY(), 200, $pdf->GetY());
|
||||
$pdf->Line(180 , $pdf->GetY()-5, 180, 270);
|
||||
$pdf->Line(155 , $pdf->GetY()-5, 155, 270);
|
||||
$pdf->SetFont('Times','',12);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
||||
}
|
||||
}
|
||||
$pdf->Line(18 , $pdf->GetY()+1, 200, $pdf->GetY());
|
||||
$pdf->Line(18 , $pdf->GetY()+2, 200, $pdf->GetY()+1);
|
||||
$pdf->SetY($pdf->GetY()+3);
|
||||
$pdf->SetFont('Times','B',14);
|
||||
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
||||
$pdf->setX(20);
|
||||
$pdf->Cell(35,5,'Arbeitsstunden Summe:',0,0,'C');
|
||||
$pdf->setX(55);
|
||||
|
||||
+415
-645
File diff suppressed because it is too large
Load Diff
+1141
-677
File diff suppressed because it is too large
Load Diff
+569
@@ -0,0 +1,569 @@
|
||||
<?php
|
||||
/*
|
||||
* Termine: Kalenderansicht, Terminliste, Anlegen, Ändern und Löschen.
|
||||
*
|
||||
* Ein Termin über mehrere Tage wird als Reihe einzelner Zeilen gespeichert,
|
||||
* die alle dasselbe `main_id` tragen - die id der ersten Zeile. Der Kalender
|
||||
* zeigt die Zeilen einzeln, die Liste fasst sie über `main_id` zusammen.
|
||||
*
|
||||
* Urlaub und Krankheit sind Termine ohne Kunden. Ihre Typ-ids stehen seit
|
||||
* jeher fest im Code (auch in `incs/users.php` bei der Urlaubsberechnung und
|
||||
* in `templates/addtermin.tpl`).
|
||||
*/
|
||||
require_once(__DIR__."/db.php");
|
||||
require_once(__DIR__."/saveNchange.php");
|
||||
|
||||
define("TERMTYP_URLAUB", 0);
|
||||
define("TERMTYP_KRANKHEIT", 5);
|
||||
|
||||
/* Ganztägige Termine bekommen diese Dauer; die Terminliste filtert darauf */
|
||||
define("TERMIN_GANZTAG", "24:00:00");
|
||||
|
||||
/* Leerwerte der NOT-NULL-Spalten - der strikte Modus lehnt '' dort ab */
|
||||
define("TERMIN_KEIN_DATUM", "0000-00-00 00:00:00");
|
||||
define("TERMIN_KEINE_DAUER", "00:00:00");
|
||||
|
||||
/* Urlaub und Krankheit laufen immer über ganze Tage */
|
||||
function terminIstGanztaegig($typ)
|
||||
{
|
||||
return $typ == TERMTYP_URLAUB || $typ == TERMTYP_KRANKHEIT;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
* Formularwerte
|
||||
* ------------------------------------------------------------------ */
|
||||
|
||||
/*
|
||||
* Die Felder aus addtermin.tpl. `datetime_start` und `datetime_end` kommen
|
||||
* in deutscher Schreibweise ("24.12.2026 um 09:30") und werden hier schon
|
||||
* in das Datenbankformat gebracht.
|
||||
*/
|
||||
function terminFormularwerte()
|
||||
{
|
||||
return array(
|
||||
"head" => formularText("head"),
|
||||
"text" => formularText("text"),
|
||||
"typ" => formularGanzzahl("typ"),
|
||||
"done" => formularGanzzahl("done") ? 1 : 0,
|
||||
"user" => formularGanzzahl("user"),
|
||||
"user2" => formularGanzzahl("user2"),
|
||||
"user3" => formularGanzzahl("user3"),
|
||||
"user4" => formularGanzzahl("user4"),
|
||||
"folge" => formularGanzzahl("folge") ? 1 : 0,
|
||||
"folgetyp" => formularGanzzahl("folgetyp"),
|
||||
"folgedays" => formularGanzzahl("folgedays"),
|
||||
"start" => dispdate_to_mysql_date(formularText("datetime_start"), 0),
|
||||
"ende" => dispdate_to_mysql_date(formularText("datetime_end"), 1),
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
* Verteilt einen Termin auf Tage. Länger als zwölf Stunden oder Urlaub und
|
||||
* Krankheit werden zu ganzen Tagen: Rückgabe ist
|
||||
* array(erster Tag, Dauer je Tag, Anzahl Tage).
|
||||
*/
|
||||
function terminTageUndDauer($werte)
|
||||
{
|
||||
$start = $werte["start"];
|
||||
$dauer = mysql_dauer($start, $werte["ende"]);
|
||||
$stunden = (int)strtok($dauer, ":");
|
||||
if($stunden <= 12 && !terminIstGanztaegig($werte["typ"]))
|
||||
return array($start, $dauer, 1);
|
||||
|
||||
// ceil() rechnet mit der Stundenzahl, nicht mit dem ganzen Zeitstring
|
||||
$tage = max(1, (int)ceil($stunden / 24));
|
||||
if($start != TERMIN_KEIN_DATUM)
|
||||
$start = substr($start, 0, 11)."00:00:00";
|
||||
return array($start, TERMIN_GANZTAG, $tage);
|
||||
}
|
||||
|
||||
/* Der $i-te Tag einer Terminreihe, ohne Datum bleibt es ohne Datum */
|
||||
function terminTag($start, $i)
|
||||
{
|
||||
if($start == TERMIN_KEIN_DATUM)
|
||||
return TERMIN_KEIN_DATUM;
|
||||
return date("Y-m-d H:i:s", strtotime("+".$i." day", strtotime($start)));
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
* Überschneidungen
|
||||
* ------------------------------------------------------------------ */
|
||||
|
||||
/*
|
||||
* Sucht einen Termin, bei dem $benutzer schon zwischen $start und $ende
|
||||
* eingetragen ist. $ausserMain schließt die gerade bearbeitete Reihe aus.
|
||||
* Gibt die id des kollidierenden Termins zurück, sonst null (false bei
|
||||
* Fehlern).
|
||||
*/
|
||||
function terminUeberschneidung($dbconn, $benutzer, $start, $ende, $ausserMain)
|
||||
{
|
||||
if(!$benutzer || $start == TERMIN_KEIN_DATUM)
|
||||
return null;
|
||||
$params = array(TERMIN_KEIN_DATUM, $benutzer, $benutzer, $benutzer, $benutzer);
|
||||
// eine main_id von 0 gibt es nur bei Altdaten, dann darf nichts ausgenommen werden
|
||||
$eigene = "";
|
||||
if($ausserMain > 0)
|
||||
{
|
||||
$eigene = " AND main_id != ?";
|
||||
$params[] = (int)$ausserMain;
|
||||
}
|
||||
array_push($params, $start, $start, $ende, $ende, $start, $ende);
|
||||
$sql = "SELECT id FROM
|
||||
(SELECT id, main_id, user, user2, user3, user4, termtime,
|
||||
DATE_ADD(termtime, INTERVAL CONCAT(HOUR(termdauer),' ',MINUTE(termdauer)) HOUR_MINUTE) AS termend
|
||||
FROM termin WHERE termtime != ? AND done = 0) AS belegt
|
||||
WHERE (user = ? OR user2 = ? OR user3 = ? OR user4 = ?)$eigene
|
||||
AND ((? >= termtime AND ? < termend)
|
||||
OR (? > termtime AND ? <= termend)
|
||||
OR (? <= termtime AND ? >= termend))
|
||||
LIMIT 1";
|
||||
return db_wert($dbconn, $sql, $params);
|
||||
}
|
||||
|
||||
/*
|
||||
* Prüft alle vier Mitarbeiter eines Termins für jeden Tag der Reihe.
|
||||
* Rückgabe 0, wenn nichts kollidiert, sonst die Fehlermeldung.
|
||||
*/
|
||||
function pruefeUeberschneidungen($dbconn, $werte, $start, $dauer, $tage, $ausserMain)
|
||||
{
|
||||
foreach(range(0, $tage - 1) as $i)
|
||||
{
|
||||
$tagStart = terminTag($start, $i);
|
||||
$tagEnde = dauer_to_date($tagStart, $dauer);
|
||||
foreach(array("user", "user2", "user3", "user4") as $feld)
|
||||
{
|
||||
$treffer = terminUeberschneidung($dbconn, $werte[$feld], $tagStart, $tagEnde, $ausserMain);
|
||||
if($treffer === false)
|
||||
return error("Fehler beim überprüfen von Überlappungen:<br />".mysqli_error($dbconn));
|
||||
if($treffer !== null)
|
||||
return error("Dieser Mitarbeiter hat zu der Zeit bereits einen Termin, er kann nicht an zwei Orten gleichzeitig sein.");
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
* Speichern
|
||||
* ------------------------------------------------------------------ */
|
||||
|
||||
/*
|
||||
* Der Hauptsatz der Reihe, zu der die Zeile $id gehoert. Altdaten ohne
|
||||
* main_id bestehen nur aus sich selbst. null, wenn es die Zeile nicht gibt,
|
||||
* false bei Fehlern.
|
||||
*/
|
||||
function terminHauptsatz($dbconn, $id)
|
||||
{
|
||||
$mainId = db_wert($dbconn, "SELECT main_id FROM termin WHERE id = ?", array($id));
|
||||
if($mainId === false || $mainId === null)
|
||||
return $mainId;
|
||||
return (int)$mainId > 0 ? (int)$mainId : (int)$id;
|
||||
}
|
||||
|
||||
/*
|
||||
* Legt einen Folgetermin an: gleicher Kopf und dieselben Mitarbeiter, aber
|
||||
* ohne Datum und mit einem Wiedervorlagedatum in $tage Tagen. Gibt dessen
|
||||
* id zurück oder false.
|
||||
*/
|
||||
function legeFolgeterminAn($dbconn, $werte, $adressid)
|
||||
{
|
||||
$sql = "INSERT INTO termin SET head = ?, text = '', adresse_id = ?, typ = ?,
|
||||
changetime = NOW(), datetime = NOW(), done = 0,
|
||||
termtime = ?, termdauer = ?, followed_by = 0,
|
||||
user = ?, user2 = ?, user3 = ?, user4 = ?, changeuser = ?,
|
||||
act_date = DATE_ADD(CURDATE(), INTERVAL ? DAY)";
|
||||
$params = array($werte["head"], $adressid, $werte["folgetyp"],
|
||||
TERMIN_KEIN_DATUM, TERMIN_KEINE_DAUER,
|
||||
$werte["user"], $werte["user2"], $werte["user3"], $werte["user4"],
|
||||
$_SESSION["user"], $werte["folgedays"]);
|
||||
if(!db_abfrage($dbconn, $sql, $params))
|
||||
{
|
||||
error("Fehler beim anlegen des Folgetermins:<br />".mysqli_error($dbconn));
|
||||
return false;
|
||||
}
|
||||
$id = mysqli_insert_id($dbconn);
|
||||
// Ein Termin ohne eigene Reihe ist sein eigener Hauptsatz
|
||||
db_abfrage($dbconn, "UPDATE termin SET main_id = ? WHERE id = ?", array($id, $id));
|
||||
if(saveLog($dbconn, db_sql_text($dbconn, $sql, $params)." [folgetermin, hat ID $id]",
|
||||
"DELETE FROM termin WHERE id = $id", "anlegen"))
|
||||
return false;
|
||||
return $id;
|
||||
}
|
||||
|
||||
/*
|
||||
* Legt einen Termin an oder ändert ihn. $terminid ist die id der Reihe
|
||||
* (0 = neu), $adressid die Kundenadresse (0 bei Urlaub und Krankheit).
|
||||
*
|
||||
* Wird aus einem eintägigen Termin ein mehrtägiger, wird die alte Reihe
|
||||
* verworfen und neu angelegt - anders lässt sich die Reihe nicht umbauen.
|
||||
*/
|
||||
function speichereTermin($dbconn, $terminid, $adressid)
|
||||
{
|
||||
$werte = terminFormularwerte();
|
||||
list($start, $dauer, $tage) = terminTageUndDauer($werte);
|
||||
|
||||
beginneSpeichern($dbconn);
|
||||
|
||||
$mainId = 0;
|
||||
$alt = null;
|
||||
if($terminid)
|
||||
{
|
||||
$mainId = terminHauptsatz($dbconn, $terminid);
|
||||
if($mainId === false)
|
||||
return beendeSpeichern($dbconn, error("Fehler beim ermitteln des Termins:<br />".mysqli_error($dbconn)));
|
||||
if($mainId === null)
|
||||
return beendeSpeichern($dbconn, error("Dieser Termin existiert nicht!"));
|
||||
|
||||
$alt = db_zeile($dbconn, "SELECT * FROM termin WHERE id = ?", array($mainId));
|
||||
if($alt === false || !$alt)
|
||||
return beendeSpeichern($dbconn, error("Dieser Termin existiert nicht!"));
|
||||
|
||||
/*
|
||||
* Die Folgetage werden neu angelegt, der Hauptsatz bleibt stehen -
|
||||
* so behaelt der Termin seine id, auch wenn aus einem Tag mehrere
|
||||
* werden oder umgekehrt.
|
||||
*/
|
||||
db_abfrage($dbconn, "DELETE FROM termin WHERE main_id = ? AND id != ?", array($mainId, $mainId))
|
||||
or $err = error("Konnte Nebentermine nicht löschen:<br />".mysqli_error($dbconn));
|
||||
if(!empty($err))
|
||||
return beendeSpeichern($dbconn, $err);
|
||||
}
|
||||
|
||||
if(!$werte["done"])
|
||||
{
|
||||
$err = pruefeUeberschneidungen($dbconn, $werte, $start, $dauer, $tage, $mainId);
|
||||
if($err)
|
||||
return beendeSpeichern($dbconn, $err);
|
||||
}
|
||||
|
||||
// Folgetermin nur einmal und nur, wenn der Termin gerade erledigt wird
|
||||
$folgeId = $alt ? (int)$alt["followed_by"] : 0;
|
||||
if($werte["done"] && $werte["folge"] && !$folgeId)
|
||||
{
|
||||
$folgeId = legeFolgeterminAn($dbconn, $werte, $adressid);
|
||||
if($folgeId === false)
|
||||
return beendeSpeichern($dbconn, 1);
|
||||
}
|
||||
|
||||
$felder = array(
|
||||
"head" => $werte["head"],
|
||||
"text" => $werte["text"],
|
||||
"adresse_id" => $adressid,
|
||||
"typ" => $werte["typ"],
|
||||
"done" => $werte["done"],
|
||||
"termdauer" => $dauer,
|
||||
"changeuser" => $_SESSION["user"],
|
||||
"user" => $werte["user"],
|
||||
"user2" => $werte["user2"],
|
||||
"user3" => $werte["user3"],
|
||||
"user4" => $werte["user4"],
|
||||
"followed_by" => $folgeId,
|
||||
);
|
||||
$zuweisung = array();
|
||||
foreach(array_keys($felder) as $spalte)
|
||||
$zuweisung[] = "`$spalte` = ?";
|
||||
$set = implode(", ", $zuweisung);
|
||||
$err = 0;
|
||||
|
||||
// Tag 0 ist der Hauptsatz: beim Aendern bleibt er stehen, sonst entsteht er hier
|
||||
if($mainId)
|
||||
{
|
||||
$sql = "UPDATE termin SET $set, termtime = ?, changetime = NOW() WHERE id = ?";
|
||||
$params = array_merge(array_values($felder), array(terminTag($start, 0), $mainId));
|
||||
if(!db_abfrage($dbconn, $sql, $params))
|
||||
return beendeSpeichern($dbconn, error("Fehler beim ändern des Termins:<br />".mysqli_error($dbconn)));
|
||||
$altWerte = array();
|
||||
foreach(array_keys($felder) as $spalte)
|
||||
$altWerte[] = $alt[$spalte];
|
||||
$err = saveLog($dbconn, db_sql_text($dbconn, $sql, $params)." [termin change]",
|
||||
db_sql_text($dbconn, $sql, array_merge($altWerte, array($alt["termtime"], $mainId))), "ändern");
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = "INSERT INTO termin SET $set, termtime = ?, changetime = NOW(), datetime = NOW()";
|
||||
$params = array_merge(array_values($felder), array(terminTag($start, 0)));
|
||||
if(!db_abfrage($dbconn, $sql, $params))
|
||||
return beendeSpeichern($dbconn, error("Fehler beim anlegen des Termins:<br />".mysqli_error($dbconn)));
|
||||
$mainId = mysqli_insert_id($dbconn);
|
||||
db_abfrage($dbconn, "UPDATE termin SET main_id = ? WHERE id = ?", array($mainId, $mainId))
|
||||
or $err = error("Fehler beim verknüpfen der Terminreihe:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
$err = saveLog($dbconn, db_sql_text($dbconn, $sql, $params)." [termin add, hat ID $mainId]",
|
||||
"DELETE FROM termin WHERE id = $mainId", "anlegen");
|
||||
}
|
||||
|
||||
// die weiteren Tage haengen als eigene Zeilen am Hauptsatz
|
||||
// (range(1, 0) liefe rueckwaerts, deshalb eine normale Schleife)
|
||||
for($i = 1; $i < $tage; $i++)
|
||||
{
|
||||
if($err)
|
||||
break;
|
||||
$sql = "INSERT INTO termin SET $set, termtime = ?, main_id = ?, changetime = NOW(), datetime = NOW()";
|
||||
$params = array_merge(array_values($felder), array(terminTag($start, $i), $mainId));
|
||||
if(!db_abfrage($dbconn, $sql, $params))
|
||||
{
|
||||
$err = error("Fehler beim anlegen des Termins:<br />".mysqli_error($dbconn));
|
||||
break;
|
||||
}
|
||||
$id = mysqli_insert_id($dbconn);
|
||||
$err = saveLog($dbconn, db_sql_text($dbconn, $sql, $params)." [termin add, hat ID $id]",
|
||||
"DELETE FROM termin WHERE id = $id", "anlegen");
|
||||
}
|
||||
return beendeSpeichern($dbconn, $err);
|
||||
}
|
||||
|
||||
/* Löscht eine Terminreihe samt Nebenzeilen */
|
||||
function loescheTerminreihe($dbconn, $id)
|
||||
{
|
||||
beginneSpeichern($dbconn);
|
||||
$err = 0;
|
||||
$id = terminHauptsatz($dbconn, $id);
|
||||
if($id === false)
|
||||
return beendeSpeichern($dbconn, error("Fehler beim ermitteln des Termins:<br />".mysqli_error($dbconn)));
|
||||
if($id === null)
|
||||
return beendeSpeichern($dbconn, error("Dieser Termin existiert nicht!"));
|
||||
$beschreibung = db_wert($dbconn, "SELECT head FROM termin WHERE id = ?", array($id));
|
||||
|
||||
// erst die Nebenzeilen, dann der Hauptsatz - sonst verliert main_id den Bezug
|
||||
$sql = "DELETE FROM termin WHERE main_id = ? AND id != ?";
|
||||
db_abfrage($dbconn, $sql, array($id, $id))
|
||||
or $err = error("Konnte Nebentermine nicht löschen:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
{
|
||||
$sql = "DELETE FROM termin WHERE id = ?";
|
||||
db_abfrage($dbconn, $sql, array($id))
|
||||
or $err = error("Konnte Haupttermin nicht löschen:<br />".mysqli_error($dbconn));
|
||||
}
|
||||
if(!$err)
|
||||
$err = saveLog($dbconn, db_sql_text($dbconn, "DELETE FROM termin WHERE main_id = ?", array($id))." [$beschreibung]", "", "löschen");
|
||||
return beendeSpeichern($dbconn, $err);
|
||||
}
|
||||
|
||||
/* Markiert eine Terminreihe als erledigt ($erledigt = 1) oder offen (0) */
|
||||
function setzeTerminErledigt($dbconn, $id, $erledigt)
|
||||
{
|
||||
$erledigt = $erledigt ? 1 : 0;
|
||||
$id = terminHauptsatz($dbconn, $id);
|
||||
if($id === false)
|
||||
return error("Fehler beim ermitteln des Termins:<br />".mysqli_error($dbconn));
|
||||
if($id === null)
|
||||
return error("Dieser Termin existiert nicht!");
|
||||
|
||||
beginneSpeichern($dbconn);
|
||||
$err = 0;
|
||||
$sql = "UPDATE termin SET done = ?, changetime = NOW(), changeuser = ? WHERE main_id = ? OR id = ?";
|
||||
$params = array($erledigt, $_SESSION["user"], $id, $id);
|
||||
db_abfrage($dbconn, $sql, $params)
|
||||
or $err = error("Konnte den Termin nicht umstellen:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
$err = saveLog($dbconn, db_sql_text($dbconn, $sql, $params)." [termin erledigt]", "", "ändern");
|
||||
return beendeSpeichern($dbconn, $err);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
* Lesen
|
||||
* ------------------------------------------------------------------ */
|
||||
|
||||
/*
|
||||
* Der Termin für das Formular: die Reihe zu einer Hauptsatz-id wird zu
|
||||
* einem Eintrag zusammengefasst, Anfang und Gesamtdauer eingeschlossen.
|
||||
*/
|
||||
function terminZumBearbeiten($dbconn, $id)
|
||||
{
|
||||
$res = db_zeile($dbconn, "SELECT MIN(termtime) AS termtime,
|
||||
SEC_TO_TIME(SUM(TIME_TO_SEC(termdauer))) AS termdauer,
|
||||
head, followed_by, MIN(id) AS id, main_id, typ, adresse_id,
|
||||
done, user, user2, user3, user4, changeuser, act_date, text
|
||||
FROM termin WHERE main_id = ? OR (id = ? AND main_id = 0)
|
||||
GROUP BY main_id", array($id, $id));
|
||||
if($res === false)
|
||||
{
|
||||
error("Fehler beim ermitteln des Termins:<br />".mysqli_error($dbconn));
|
||||
return null;
|
||||
}
|
||||
if(!$res)
|
||||
return null;
|
||||
|
||||
if($res["followed_by"] > 0)
|
||||
{
|
||||
$folge = db_zeile($dbconn, "SELECT DATE_FORMAT(act_date,'%Y-%m-%d') AS act_date, typ FROM termin WHERE id = ?",
|
||||
array($res["followed_by"]));
|
||||
if($folge)
|
||||
{
|
||||
$res["folgetyp"] = $folge["typ"];
|
||||
$tage = (strtotime($folge["act_date"]) - strtotime(date("Y-m-d"))) / 86400;
|
||||
if($tage > 0)
|
||||
{
|
||||
$res["folge"] = 1;
|
||||
$res["folgedays"] = (int)$tage;
|
||||
}
|
||||
}
|
||||
}
|
||||
$res["termend"] = dauer_to_date($res["termtime"], $res["termdauer"]);
|
||||
if(str_contains($res["termend"], "00:00:00"))
|
||||
$res["termend"] = date("Y-m-d H:i:s", strtotime("-1 minutes", strtotime($res["termend"])));
|
||||
return $res;
|
||||
}
|
||||
|
||||
/* Die Auswahllisten des Terminformulars */
|
||||
function terminAuswahllisten($dbconn, $smarty)
|
||||
{
|
||||
list($typids, $typs) = auswahlliste($dbconn, "SELECT id, typ FROM termtyp WHERE id > 0");
|
||||
$smarty->assign("typids", $typids);
|
||||
$smarty->assign("typs", $typs);
|
||||
|
||||
$benutzer = db_zeilen($dbconn, "SELECT id, vname, nname FROM user WHERE blocked = 0 AND id > 0 ORDER BY nname, vname");
|
||||
$ids = array();
|
||||
$namen = array();
|
||||
foreach((array)$benutzer as $b)
|
||||
{
|
||||
$ids[] = $b["id"];
|
||||
$namen[] = trim($b["vname"]." ".$b["nname"]);
|
||||
}
|
||||
$smarty->assign("userids", $ids);
|
||||
$smarty->assign("users", $namen);
|
||||
$ids[] = 0;
|
||||
$namen[] = "Keiner";
|
||||
$smarty->assign("optuserids", $ids);
|
||||
$smarty->assign("optusers", $namen);
|
||||
|
||||
$smarty->assign("days", range(0, 40));
|
||||
|
||||
list($urlaubIds, $urlaubNamen) = auswahlliste($dbconn, "SELECT id, typ FROM termtyp WHERE typ = 'Urlaub' OR typ = 'Krankheit'");
|
||||
$smarty->assign("vac_types_id", $urlaubIds);
|
||||
$smarty->assign("vac_types_name", $urlaubNamen);
|
||||
}
|
||||
|
||||
/* Die Adresse, an der ein Termin stattfindet - leer, wenn es keine gibt */
|
||||
function terminAdresse($dbconn, $adressid)
|
||||
{
|
||||
$res = db_zeile($dbconn, "SELECT plz, ortsteil, ort, str, hnr, vname, partner_id, nname, vname2, nname2,
|
||||
firma, adresse.id, land, anrede_id, titel_id, anrede2_id, titel2_id
|
||||
FROM adresse
|
||||
LEFT JOIN strasse ON str_id = strasse.id
|
||||
LEFT JOIN ort ON ort_id = ort.id
|
||||
LEFT JOIN land ON land_id = land.id
|
||||
WHERE adresse.id = ?", array($adressid));
|
||||
if($res === false)
|
||||
{
|
||||
error("Fehler beim abrufen der Daten:<br />".mysqli_error($dbconn));
|
||||
return array();
|
||||
}
|
||||
return $res ? $res : array();
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
* Kalender
|
||||
* ------------------------------------------------------------------ */
|
||||
|
||||
/* Deutsche Wochentagsnamen - unabhängig davon, ob die Locale vorhanden ist */
|
||||
function wochentag($zeitpunkt)
|
||||
{
|
||||
$namen = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
|
||||
return $namen[(int)date("w", $zeitpunkt)];
|
||||
}
|
||||
|
||||
/*
|
||||
* Die Termine eines Tages. $ganztags trennt die ganztägigen (Dauer über
|
||||
* zwölf Stunden) von den übrigen.
|
||||
*/
|
||||
function kalenderTermine($dbconn, $tag, $ganztags)
|
||||
{
|
||||
$vergleich = $ganztags ? ">" : "<";
|
||||
$sql = "SELECT termin.id, termtyp.typ, termin.head, termtime, termdauer,
|
||||
user, user2, user3, user4, done, partner_id, main_id,
|
||||
str, ort, ortsteil, plz, hnr, adresse.vname AS vname, adresse.nname AS nname,
|
||||
user.vname AS uservname, user.nname AS usernname,
|
||||
user2.vname AS uservname2, user2.nname AS usernname2,
|
||||
user3.vname AS uservname3, user3.nname AS usernname3,
|
||||
user4.vname AS uservname4, user4.nname AS usernname4,
|
||||
firma, vname2, nname2
|
||||
FROM termin
|
||||
LEFT JOIN termtyp ON termin.typ = termtyp.id
|
||||
LEFT JOIN adresse ON termin.adresse_id = adresse.id
|
||||
LEFT JOIN partner ON adresse.partner_id = partner.id
|
||||
LEFT JOIN strasse ON adresse.str_id = strasse.id
|
||||
LEFT JOIN ort ON strasse.ort_id = ort.id
|
||||
LEFT JOIN user ON termin.user = user.id
|
||||
LEFT JOIN user AS user2 ON termin.user2 = user2.id
|
||||
LEFT JOIN user AS user3 ON termin.user3 = user3.id
|
||||
LEFT JOIN user AS user4 ON termin.user4 = user4.id
|
||||
WHERE DATE(termtime) = ? AND termdauer $vergleich '12:00:00'
|
||||
ORDER BY termtime ASC";
|
||||
return db_zeilen($dbconn, $sql, array($tag)) ?: array();
|
||||
}
|
||||
|
||||
/* Die an einem Tag gebuchten Arbeiten aus der Projektverwaltung */
|
||||
function kalenderArbeiten($dbconn, $tag)
|
||||
{
|
||||
$sql = "SELECT work.id, project.id AS projectid, work.bezeichn AS head, work.rechn AS done,
|
||||
project.name AS projectname, work.datetime AS termtime, work.std AS termdauer,
|
||||
project.changeuser AS user, project.partner_id,
|
||||
adresse.vname AS vname, adresse.nname AS nname, adresse.firma AS firma
|
||||
FROM work
|
||||
LEFT JOIN project ON work.project_id = project.id
|
||||
LEFT JOIN partner ON project.partner_id = partner.id
|
||||
LEFT JOIN adresse ON adresse.partner_id = partner.id
|
||||
LEFT JOIN user ON work.changeuser = user.id
|
||||
WHERE adresse.typ_id = 1 AND DATE(work.datetime) = ?
|
||||
ORDER BY work.datetime ASC";
|
||||
return db_zeilen($dbconn, $sql, array($tag)) ?: array();
|
||||
}
|
||||
|
||||
/* Wer an einem Tag gestempelt hat und ob der Tag abgeschlossen ist */
|
||||
function kalenderAnwesenheit($dbconn, $tag)
|
||||
{
|
||||
$sql = "SELECT user.vname, user.nname, user.color,
|
||||
CASE MAX(zeiten.gehen) WHEN MAX(zeiten.kommen) THEN 0 ELSE 1 END AS complete
|
||||
FROM user
|
||||
LEFT JOIN zeiten ON user.id = zeiten.ma_id
|
||||
WHERE DATE(kommen) = ?
|
||||
GROUP BY user.id ORDER BY user.nname ASC";
|
||||
return db_zeilen($dbconn, $sql, array($tag)) ?: array();
|
||||
}
|
||||
|
||||
/*
|
||||
* Die acht Tage einer Kalenderseite, beginnend einen Tag vor dem
|
||||
* Seitenanfang (so ist der Vortag immer sichtbar).
|
||||
*/
|
||||
function kalenderTage($dbconn, $seite)
|
||||
{
|
||||
$heute = strtotime("today");
|
||||
$tage = array();
|
||||
for($i = $seite * 8 - 1; $i < $seite * 8 + 7; $i++)
|
||||
{
|
||||
$zeitpunkt = strtotime("+".$i." day", $heute);
|
||||
$datum = date("Y-m-d", $zeitpunkt);
|
||||
$feiertag = feiertag_bayern((int)date("d", $zeitpunkt), (int)date("m", $zeitpunkt), (int)date("Y", $zeitpunkt));
|
||||
$termine = array();
|
||||
if(($_SESSION["firma"] ?? "") == "Ingenieurbüro Wagner")
|
||||
$termine = kalenderArbeiten($dbconn, $datum);
|
||||
$termine = array_merge($termine, kalenderTermine($dbconn, $datum, false));
|
||||
|
||||
$tage[] = array(
|
||||
// am Feiertag steht der Name des Feiertags statt des Wochentags
|
||||
"weekday" => ($feiertag ? date("d.m.Y", $zeitpunkt)."<br/>" : wochentag($zeitpunkt)."<br/>".date("d.m.Y", $zeitpunkt)),
|
||||
"date" => date("Ymd", $zeitpunkt),
|
||||
"termine" => $termine,
|
||||
"fulldaytermine" => kalenderTermine($dbconn, $datum, true),
|
||||
"numfulldaytermine" => 0,
|
||||
"ma_check" => kalenderAnwesenheit($dbconn, $datum),
|
||||
"feiertag" => $feiertag ? $feiertag : "",
|
||||
);
|
||||
}
|
||||
return $tage;
|
||||
}
|
||||
|
||||
/* Die Mitarbeiter der Kalenderspalte samt Resturlaub */
|
||||
function kalenderBenutzer($dbconn)
|
||||
{
|
||||
$users = array();
|
||||
$zeilen = db_zeilen($dbconn, "SELECT id, vname, nname, color FROM user WHERE blocked = 0 AND nick != 'ALL'");
|
||||
foreach((array)$zeilen as $res)
|
||||
{
|
||||
$res["openvacation"] = urlaub_remaining($dbconn, $res["id"]);
|
||||
$users[$res["id"]] = $res;
|
||||
}
|
||||
return $users;
|
||||
}
|
||||
|
||||
?>
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
|
||||
function generateSalt() {
|
||||
|
||||
|
||||
+17
-15
@@ -7,8 +7,8 @@ function ajax_searchkunden(page)
|
||||
search_in_progress = 1;
|
||||
document.getElementById("kdnsrc_list").innerHTML = "<p><img src='pics/progress_white.gif' /></p>";
|
||||
//document.getElementById("kdnsrc_src").disabled = true;
|
||||
field = escape(document.getElementById("kdnsrc_field").value);
|
||||
search = escape(document.getElementById("kdnsrc_src").value);
|
||||
field = encodeURIComponent(document.getElementById("kdnsrc_field").value);
|
||||
search = encodeURIComponent(document.getElementById("kdnsrc_src").value);
|
||||
|
||||
var url = "ajax/searchkunden.php?field=" + field + "&page=" + page + "&search=" + search;
|
||||
reqkdnsrc = new XMLHttpRequest();
|
||||
@@ -35,7 +35,7 @@ function ajax_searchzeit(page,user)
|
||||
search_in_progress = 1;
|
||||
document.getElementById("termcontainer-"+user).innerHTML = "<p><img src='pics/progress_white.gif' /></p>";
|
||||
//document.getElementById("kdnsrc_src").disabled = true;
|
||||
search = escape(document.getElementById("zeit_src-"+user).value);
|
||||
search = encodeURIComponent(document.getElementById("zeit_src-"+user).value);
|
||||
|
||||
var url = "ajax/searchzeit.php?page=" + page + "&user=" + user + "&search=" + search;
|
||||
reqkdnsrc = new XMLHttpRequest();
|
||||
@@ -55,15 +55,17 @@ function ajax_searchzeit(page,user)
|
||||
}
|
||||
}
|
||||
|
||||
function ajax_searchadress(rechid,subact,page)
|
||||
// page zuerst, damit die Seitenschaltung (displayPages) die Nummer
|
||||
// als erstes Argument uebergeben kann - wie bei den anderen Suchen
|
||||
function ajax_searchadress(page,rechid,subact)
|
||||
{
|
||||
if(!search_in_progress)
|
||||
{
|
||||
search_in_progress = 1;
|
||||
document.getElementById("adrsrc_list").innerHTML = "<p><img src='pics/progress_white.gif' /></p>";
|
||||
//document.getElementById("kdnsrc_src").disabled = true;
|
||||
field = escape(document.getElementById("adrsrc_field").value);
|
||||
search = escape(document.getElementById("adrsrc_src").value);
|
||||
field = encodeURIComponent(document.getElementById("adrsrc_field").value);
|
||||
search = encodeURIComponent(document.getElementById("adrsrc_src").value);
|
||||
|
||||
var url = "ajax/searchadress.php?field=" + field + "&page=" + page + "&search=" + search + "&rechid=" + rechid + "&subact=" + subact;
|
||||
reqadrsrc = new XMLHttpRequest();
|
||||
@@ -90,8 +92,8 @@ function ajax_searchliefer(page)
|
||||
search_in_progress = 1;
|
||||
document.getElementById("kdnsrc_list").innerHTML = "<p><img src='pics/progress_white.gif' /></p>";
|
||||
//document.getElementById("kdnsrc_src").disabled = true;
|
||||
field = escape(document.getElementById("kdnsrc_field").value);
|
||||
search = escape(document.getElementById("kdnsrc_src").value);
|
||||
field = encodeURIComponent(document.getElementById("kdnsrc_field").value);
|
||||
search = encodeURIComponent(document.getElementById("kdnsrc_src").value);
|
||||
|
||||
var url = "ajax/searchliefer.php?field=" + field + "&page=" + page + "&search=" + search;
|
||||
reqkdnsrc = new XMLHttpRequest();
|
||||
@@ -118,7 +120,7 @@ function ajax_searchkdnprojects(page,kdnid)
|
||||
search_in_progress = 1;
|
||||
document.getElementById("projectlist").innerHTML = "<p><img src='pics/progress_white.gif' /></p>";
|
||||
//document.getElementById("kdnsrc_src").disabled = true;
|
||||
search = escape(document.getElementById("src_project").value);
|
||||
search = encodeURIComponent(document.getElementById("src_project").value);
|
||||
|
||||
var url = "ajax/searchkdnprojects.php?page=" + page + "&search=" + search+"&kdnid=" + kdnid;
|
||||
|
||||
@@ -146,7 +148,7 @@ function ajax_searchkdnrech(page,skspage,typ,kdnid)
|
||||
search_in_progress = 1;
|
||||
document.getElementById("rechlist-"+typ).innerHTML = "<p><img src='pics/progress_white.gif' /></p>";
|
||||
//document.getElementById("kdnsrc_src").disabled = true;
|
||||
search = escape(document.getElementById("src_rech-"+typ).value);
|
||||
search = encodeURIComponent(document.getElementById("src_rech-"+typ).value);
|
||||
|
||||
var url = "ajax/searchkdnrech.php?page=" + page + "&skspage=" + skspage + "&search=" + search+"&typ=" + typ + "&kdnid=" + kdnid;
|
||||
|
||||
@@ -173,7 +175,7 @@ function ajax_searchkomm(page,kdnid)
|
||||
search_in_progress = 1;
|
||||
document.getElementById("kommsrc_list").innerHTML = "<p><img src='pics/progress_white.gif' /></p>";
|
||||
//document.getElementById("kdnsrc_src").disabled = true;
|
||||
search = escape(document.getElementById("kommsrc_src").value);
|
||||
search = encodeURIComponent(document.getElementById("kommsrc_src").value);
|
||||
|
||||
var url = "ajax/searchkomm.php?page=" + page + "&search=" + search+"&kdnid=" + kdnid;
|
||||
|
||||
@@ -181,7 +183,7 @@ function ajax_searchkomm(page,kdnid)
|
||||
reqkommsrc.open("GET", url, true);
|
||||
reqkommsrc.onreadystatechange = function()
|
||||
{
|
||||
if(reqkdnsrc.readyState == 4)
|
||||
if(reqkommsrc.readyState == 4)
|
||||
{
|
||||
// Get the data from the server's response
|
||||
document.getElementById("kommsrc_list").innerHTML = reqkommsrc.responseText;
|
||||
@@ -200,7 +202,7 @@ function ajax_searchrech(page,skspage)
|
||||
search_in_progress = 1;
|
||||
document.getElementById("rechlist").innerHTML = "<p><img src='pics/progress_white.gif' /></p>";
|
||||
//document.getElementById("kdnsrc_src").disabled = true;
|
||||
search = escape(document.getElementById("src_rech").value);
|
||||
search = encodeURIComponent(document.getElementById("src_rech").value);
|
||||
|
||||
var url = "ajax/searchrech.php?page=" + page + "&skspage=" + skspage + "&search=" + search;
|
||||
|
||||
@@ -226,7 +228,7 @@ function ajax_searchterm(page, termtyp)
|
||||
{
|
||||
search_in_progress = 1;
|
||||
document.getElementById("termcontainer-"+termtyp).innerHTML = "<p><img src='pics/progress_white.gif' /></p>";
|
||||
search = escape(document.getElementById("term_src-"+termtyp).value);
|
||||
search = encodeURIComponent(document.getElementById("term_src-"+termtyp).value);
|
||||
|
||||
var url = "ajax/searchterm.php?page=" + page + "&search=" + search + "&termtyp=" + termtyp;
|
||||
|
||||
@@ -276,7 +278,7 @@ function ajax_displaymsgs(page,user)
|
||||
}
|
||||
function sendmsg(touser)
|
||||
{
|
||||
msg = escape(document.getElementById("message-"+touser).value);
|
||||
msg = encodeURIComponent(document.getElementById("message-"+touser).value);
|
||||
var url = "ajax/sendmsg.php?touser="+touser+"&msg="+msg;
|
||||
reqsndmsgs = new XMLHttpRequest();
|
||||
reqsndmsgs.open("GET", url, true);
|
||||
|
||||
+2
-54
@@ -1,59 +1,7 @@
|
||||
<?php
|
||||
require_once "incs/saveNchange.php";
|
||||
// loeschePartner() räumt die Dokumente des Kunden über delRechnung() mit ab
|
||||
require_once "incs/rechnung.php";
|
||||
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
|
||||
$kundeid=mysql_escape_string($_GET["kundeid"]);
|
||||
$qry=mysqli_query($dbconn,"SELECT partner.id, vname, nname, firma FROM partner JOIN adresse ON adresse.partner_id = partner.id WHERE partner_id = '$kundeid' AND adresse.typ_id = 1 AND partner.typ_id = 1") or $err=error("Fehler beim ermitteln der Kundendaten für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_array($qry);
|
||||
$kundeid=$res[0];
|
||||
$vname=$res[1];
|
||||
$nname=$res[2];
|
||||
$firma=$res[3];
|
||||
$qry=mysqli_query($dbconn,"SELECT id, rechnr FROM rechnung WHERE partner_id = '$kundeid'") or $err=error("Fehler beim ermitteln verknüpfter Rechnungen:<br />".mysqli_error($dbconn));
|
||||
while($res = mysqli_fetch_array($qry))
|
||||
{
|
||||
$qry2=mysqli_query($dbconn,"DELETE FROM artikel_rechn WHERE rech_id = '$res[0]'") or $err=error("Fehler beim löschen verknüpfter Artikel:<br />".mysqli_error($dbconn));
|
||||
$qry2=mysqli_query($dbconn,"DELETE FROM artikelsks WHERE rechnr = '$res[1]'") or $err=error("Fehler beim löschen verknüpfter SKS Artikel:<br />".mysqli_error($dbconn));
|
||||
}
|
||||
$qry=mysqli_query($dbconn,"SELECT id FROM rechnung WHERE partner_id = '$kundeid'") or $err=error("Fehler beim ermitteln verknüpfter Rechnungen:<br />".mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$err = delRechnung($dbconn,$res["id"]);
|
||||
}
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM adresse WHERE partner_id = '$kundeid'") or $err=error("Fehler beim Löschen verknüpfter Adressen:<br />".mysqli_error($dbconn));
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM tel WHERE partner_id = '$kundeid'") or $err=error("Fehler beim Löschen verknüpfter Telefonnummern:<br />".mysqli_error($dbconn));
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM kontakt WHERE partner_id = '$kundeid'") or $err=error("Fehler beim Löschen verknüpfter Kontaktadressen:<br />".mysqli_error($dbconn));
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM notiz WHERE partner_id = '$kundeid'") or $err=error("Fehler beim Löschen verknüpfter Notizen:<br />".mysqli_error($dbconn));
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM konto WHERE partner_id = '$kundeid'") or $err=error("Fehler beim Löschen verknüpfter Konten:<br />".mysqli_error($dbconn));
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM partner WHERE id = '$kundeid'") or $err=error("Fehler beim löschen des Kunden:<br />".mysqli_error($dbconn));
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM partner WHERE id = $kundeid [$vname $nname - $firma]",
|
||||
"",
|
||||
"löschen");
|
||||
if(!$err)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"UPDATE partner SET updated_by = 0 WHERE updated_by = '$kundeid'") or $err=error("Fehler beim unlinken einer eventuellen aktualisierung:<br />".mysqli_error($dbconn));
|
||||
}
|
||||
if(!$err)
|
||||
{
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$ret = savePart($dbconn,1);
|
||||
$_SESSION["camefrom"] = "kundenshow&id=".$ret[1];
|
||||
if(!$ret[0])
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispPartForm($dbconn,$smarty);
|
||||
}
|
||||
$err = partnerAddSeite($dbconn, $smarty, 1);
|
||||
?>
|
||||
+4
-204
@@ -1,207 +1,7 @@
|
||||
<?php
|
||||
require_once "incs/saveNchange.php";
|
||||
if($_GET["do"] == "adress")
|
||||
{
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
$adressid=mysql_escape_string($_GET["adressid"]);
|
||||
$qry=mysqli_query($dbconn,"SELECT vname, nname, firma, typ, partner.id FROM adresse
|
||||
JOIN adresstyp ON adresstyp.id = adresse.typ_id
|
||||
JOIN partner ON partner.id = adresse.partner_id
|
||||
WHERE adresse.id = '$adressid' AND partner.typ_id = 1") or $err=error("Fehler beim abrufen der Informationen für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_array($qry);
|
||||
$vname = $res[0];
|
||||
$nname = $res[1];
|
||||
$firma = $res[2];
|
||||
$typ = $res[3];
|
||||
$kdnr = $res[4];
|
||||
if($kdnr)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM adresse WHERE id = '$adressid'") or $err=error("Fehler beim löschen der Adresse:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM adresse WHERE id = $adressid [$typ von Kunde $kdnr ($vname $nname - $firma)]","","löschen");
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
if(!$err)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"SELECT * FROM tel WHERE adresse_id = '$adressid'");
|
||||
while($res = mysqli_fetch_assoc($dbconn,$qry))
|
||||
{
|
||||
mysqli_query($dbconn,"DELETE FROM tel WHERE id='".$res["id"]."'") or $err = error("Fehler beim löschen der zugehörigen Telefonnummern<br />".mysqli_error($dbconn));#
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM tel WHERE id = ".$res["$id"]." [$typ von Kunde $kdnr ($vname $nname - $firma)]","","löschen");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Ungültiger Kunde!");
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$err = saveAdress($dbconn);
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispAdressForm($dbconn,$smarty,1);
|
||||
}
|
||||
}
|
||||
elseif($_GET["do"] == "tel")
|
||||
{
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
$telid=mysql_escape_string($_GET["telid"]);
|
||||
$qry=mysqli_query($dbconn,"SELECT typ, partner.id FROM tel
|
||||
JOIN teltyp ON teltyp.id = tel.typ_id
|
||||
JOIN partner ON partner.id = tel.partner_id
|
||||
WHERE adresse.id = '$adressid' AND partner.typ_id = 1") or $err=error("Fehler beim abrufen der Informationen für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_array($dbconn,$qry);
|
||||
$typ = $res[0];
|
||||
$kdnr = $res[1];
|
||||
if($kdnr)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM tel WHERE id = '$telid'") or $err=error("Fehler beim löschen der Telefonnummer:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM tel WHERE id = $telid [$typ von Kunde $kdnr]","","löschen");
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Ungültiger Kunde!");
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$err = saveTel($dbconn);
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispTelForm($dbconn,$smarty,1);
|
||||
}
|
||||
}
|
||||
elseif($_GET["do"] == "kontakt")
|
||||
{
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
$kontaktid=mysql_escape_string($_GET["kontaktid"]);
|
||||
$qry=mysqli_query($dbconn,"SELECT typ, partner.id FROM kontakt
|
||||
JOIN kontakttyp ON kontakttyp.id = kontakt.typ_id
|
||||
JOIN partner ON partner.id = kontakt.partner_id
|
||||
WHERE kontakt.id = '$kontaktid'") or $err=error("Fehler beim abrufen der Informationen für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_array($qry);
|
||||
$typ = $res[0];
|
||||
$kdnr = $res[1];
|
||||
if($kdnr)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM kontakt WHERE id = '$kontaktid'") or $err=error("Fehler beim löschen der Kontaktinformation:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM kontakt WHERE id = $kontaktid [$typ von Kunde $kdnr]","","löschen");
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Ungültiger Kunde!");
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$err = saveKontakt($dbconn);
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispKontaktForm($dbconn,$smarty,1);
|
||||
}
|
||||
}
|
||||
elseif($_GET["do"] == "notiz")
|
||||
{
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
$notizid=mysql_escape_string($_GET["notizid"]);
|
||||
$qry=mysqli_query($dbconn,"SELECT partner_id FROM notiz
|
||||
JOIN partner ON partner.id = notiz.partner_id
|
||||
WHERE notiz.id = '$notizid' AND partner.typ_id = 1") or $err=error("Fehler beim abrufen der Informationen für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_array($qry);
|
||||
$kdnr = $res[0];
|
||||
if($kdnr)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM notiz WHERE id = '$notizid'") or $err=error("Fehler beim löschen der Notiz:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM notiz WHERE id = $notizid [von Kunde $kdnr]","","löschen");
|
||||
del_files("./".UPLOADS_PATH."notes/","!^".$notizid."\.(.)+$!");
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Ungültiger Kunde!");
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$err = saveNotiz($dbconn);
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispNotizForm($dbconn,$smarty,1);
|
||||
}
|
||||
}
|
||||
elseif($_GET["do"] == "konto")
|
||||
{
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
$kontoid = mysql_escape_string($_GET["kontoid"]);
|
||||
$qry = mysqli_query($dbconn,"SELECT konto.partner_id FROM konto
|
||||
JOIN partner ON partner.id = konto.partner_id
|
||||
WHERE konto.id = '$kontoid' AND partner.typ_id = 1") or $err=error("Fehler beim abrufen der Informationen für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res = mysqli_fetch_array($qry);
|
||||
$kdnr = $res[0];
|
||||
if($kdnr)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM konto WHERE id = '$kontoid'") or $err=error("Fehler beim löschen des Kontos:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM konto WHERE id = $kontoid [von Kunde $kdnr]","","löschen");
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Ungültiger Kunde!");
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$err = saveKonto($dbconn);
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispKontoForm($dbconn,$smarty,2);
|
||||
}
|
||||
}
|
||||
// Beim Löschen einer Adresse verschwinden auch ihre Dokumente (delRechnung)
|
||||
require_once "incs/rechnung.php";
|
||||
|
||||
$err = partnerChangeSeite($dbconn, $smarty, 1);
|
||||
?>
|
||||
+3
-117
@@ -1,121 +1,7 @@
|
||||
<?php
|
||||
if($_GET["id"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM partner WHERE id='".mysql_escape_string($_GET["id"])."' AND typ_id = 1");
|
||||
$kdnres=mysqli_fetch_assoc($qry);
|
||||
$smarty->assign("kunde",$kdnres);
|
||||
if($kdnres["id"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id, datetime_new FROM partner WHERE updated_by='".$kdnres["id"]."'");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$oldrecords[] = $res;
|
||||
$qry = mysqli_query($dbconn,"SELECT id, datetime_new FROM partner WHERE updated_by='".$res["id"]."'");
|
||||
}
|
||||
$smarty->assign("oldrecords",$oldrecords);
|
||||
require_once "incs/saveNchange.php";
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT id, datetime_new FROM partner WHERE id='".$kdnres["updated_by"]."'");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$newrecords[] = $res;
|
||||
$qry = mysqli_query($dbconn,"SELECT id, datetime_new FROM partner WHERE id='".$res["updated_by"]."'");
|
||||
}
|
||||
$smarty->assign("newrecords",$newrecords);
|
||||
|
||||
$tmp = array();
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM anrede");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tmp[$res["id"]] = $res["anrede"];
|
||||
}
|
||||
$smarty->assign("anr",$tmp);
|
||||
|
||||
$tmp = array();
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM titel");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tmp[$res["id"]] = $res["titel"];
|
||||
}
|
||||
$smarty->assign("titel",$tmp);
|
||||
|
||||
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT name,typ,tel.id,nr,ort,ortsteil,plz,vwahl, ort.id AS ort_id FROM tel LEFT JOIN teltyp ON typ_id = teltyp.id LEFT JOIN ort ON ort_id = ort.id WHERE partner_id='".mysql_escape_string($_GET["id"])."' AND tel.adresse_id = 0 ORDER BY typ_id ASC");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tels[] = $res;
|
||||
}
|
||||
$smarty->assign("telnrn",$tels);
|
||||
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT kontakt.id, kontakt, partner_id, typ FROM kontakt LEFT JOIN kontakttyp ON kontakttyp.id = kontakt.typ_id WHERE partner_id='".mysql_escape_string($_GET["id"])."' ORDER BY typ_id ASC");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$contacts[] = $res;
|
||||
}
|
||||
$smarty->assign("contacts",$contacts);
|
||||
|
||||
$tmp = array();
|
||||
$qry = mysqli_query($dbconn,"SELECT ktonr,iban,swift,blz,bank,partner_id,konto.id,inhaber
|
||||
FROM konto JOIN bank ON konto.bank_id = bank.id WHERE partner_id='".mysql_escape_string($_GET["id"])."'")
|
||||
or $err=error("Fehler beim auslesen der Konten:<br />". mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tmp[] = $res;
|
||||
}
|
||||
$smarty->assign("kontos",$tmp);
|
||||
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM notiz WHERE partner_id='".mysql_escape_string($_GET["id"])."'");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$res["file"] = search_file("./".UPLOADS_PATH."notes/","!^".$res["id"]."\.(.)+$!");
|
||||
$notes[] = $res;
|
||||
}
|
||||
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT COUNT(rechnr) AS nr_mahn, NOW() AS datetime FROM rechnung WHERE typ_id = 6 AND partner_id = '".mysql_escape_string($_GET["id"])."'") or $err=error("Fehler beim Auslesen der Daten:<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_assoc($qry);
|
||||
if($res["nr_mahn"] > 0)
|
||||
{
|
||||
$mahn["notiz"] = "ACHTUNG! Es sind bereits ".$res["nr_mahn"]." Mahnungen für diesen Kunden vorhanden!!";
|
||||
$mahn["color"] = "#f76";
|
||||
$mahn["datetime"] = $res["datetime"];
|
||||
$notes[] = $mahn;
|
||||
}
|
||||
$smarty->assign("notes",$notes);
|
||||
$qry = mysqli_query($dbconn,"SELECT plz, ortsteil, tel.nr, ort.vwahl, ort, str, DATE_FORMAT(gebdat,'%d.%m.%Y') AS gebdat, DATE_FORMAT(gebdat2,'%d.%m.%Y') AS gebdat2, hnr, vname, nname, vname2, nname2, firma, adresse.id, land, anrede_id, titel_id, anrede2_id, titel2_id, adresstyp.typ, adresse.typ_id
|
||||
FROM adresse JOIN
|
||||
adresstyp ON adresstyp.id = adresse.typ_id
|
||||
LEFT JOIN strasse ON str_id = strasse.id
|
||||
LEFT JOIN ort ON ort_id = ort.id
|
||||
LEFT JOIN land ON land_id = land.id
|
||||
LEFT JOIN tel ON tel.adresse_id = adresse.id
|
||||
WHERE adresse.partner_id='".mysql_escape_string($_GET["id"])."' AND adresse.typ_id != 5
|
||||
ORDER BY typ_id ASC")or $err=error("Mysql-Fehler:<br />".mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$adressen[] = $res;
|
||||
}
|
||||
$smarty->assign("adressen",$adressen);
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT id
|
||||
FROM adresse WHERE adresse.partner_id='".mysql_escape_string($_GET["id"])."' AND adresse.typ_id = 5
|
||||
ORDER BY typ_id ASC")or $err=error("Mysql-Fehler:<br />".mysqli_error($dbconn));
|
||||
if(mysqli_fetch_array($qry))
|
||||
$smarty->assign("kommadressen",1);
|
||||
|
||||
$tmp=array();
|
||||
$qry = mysqli_query($dbconn,"SELECT typ, id FROM rechtyp");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tmp[] = $res;
|
||||
}
|
||||
$smarty->assign("rechtypen",$tmp);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
$_SESSION["camefrom"] ="kundenshow&id=".$_GET["id"];
|
||||
partnerShowDaten($dbconn, $smarty, parameterGanzzahl("id"), 1);
|
||||
$_SESSION["camefrom"] = "kundenshow&id=".parameterGanzzahl("id");
|
||||
$smarty->display("kundenshow.tpl");
|
||||
?>
|
||||
+3
-53
@@ -1,57 +1,7 @@
|
||||
<?php
|
||||
require_once "incs/saveNchange.php";
|
||||
// loeschePartner() räumt die Dokumente des Lieferanten über delRechnung() mit ab
|
||||
require_once "incs/rechnung.php";
|
||||
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
|
||||
$kundeid=mysql_escape_string($_GET["kundeid"]);
|
||||
$qry=mysqli_query($dbconn,"SELECT partner.id, vname, nname, firma FROM partner JOIN adresse ON adresse.partner_id = partner.id WHERE partner_id = '$kundeid' AND adresse.typ_id = 1 AND partner.typ_id = 2") or $err=error("Fehler beim ermitteln der Kundendaten für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_array($qry);
|
||||
$kundeid=$res[0];
|
||||
$vname=$res[1];
|
||||
$nname=$res[2];
|
||||
$firma=$res[3];
|
||||
if($kundeid)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"SELECT id, rechnr FROM rechnung WHERE partner_id = '$kundeid'") or $err=error("Fehler beim ermitteln verknüpfter Rechnungen:<br />".mysqli_error($dbconn));
|
||||
while($res = mysqli_fetch_array($qry))
|
||||
{
|
||||
$qry2=mysqli_query($dbconn,"DELETE FROM artikel_rechn WHERE rech_id = '$res[0]'") or $err=error("Fehler beim löschen verknüpfter Artikel:<br />".mysqli_error($dbconn));
|
||||
$qry2=mysqli_query($dbconn,"DELETE FROM artikelsks WHERE rechnr = '$res[1]'") or $err=error("Fehler beim löschen verknüpfter SKS Artikel:<br />".mysqli_error($dbconn));
|
||||
}
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM rechnung WHERE partner_id = '$kundeid'") or $err=error("Fehler beim Löschen verknüpfter Rechnungen:<br />".mysqli_error($dbconn));
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM adresse WHERE partner_id = '$kundeid'") or $err=error("Fehler beim Löschen verknüpfter Adressen:<br />".mysqli_error($dbconn));
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM tel WHERE partner_id = '$kundeid'") or $err=error("Fehler beim Löschen verknüpfter Telefonnummern:<br />".mysqli_error($dbconn));
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM kontakt WHERE partner_id = '$kundeid'") or $err=error("Fehler beim Löschen verknüpfter Kontaktadressen:<br />".mysqli_error($dbconn));
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM notiz WHERE partner_id = '$kundeid'") or $err=error("Fehler beim Löschen verknüpfter Notizen:<br />".mysqli_error($dbconn));
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM konto WHERE partner_id = '$kundeid'") or $err=error("Fehler beim Löschen verknüpfter Konten:<br />".mysqli_error($dbconn));
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM partner WHERE id = '$kundeid'") or $err=error("Fehler beim löschen des Kunden:<br />".mysqli_error($dbconn));
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Ungültiger Lieferant!");
|
||||
}
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM partner WHERE id = $kundeid [$vname $nname - $firma]",
|
||||
"",
|
||||
"löschen");
|
||||
echo "sadlk";
|
||||
if(!$err)
|
||||
{
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$ret = savePart($dbconn,2);
|
||||
$_SESSION["camefrom"] = "liefershow&id=".$ret[1];
|
||||
if(!$ret[0])
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispPartForm($dbconn,$smarty,2);
|
||||
}
|
||||
$err = partnerAddSeite($dbconn, $smarty, 2);
|
||||
?>
|
||||
+4
-188
@@ -1,191 +1,7 @@
|
||||
<?php
|
||||
require_once "incs/saveNchange.php";
|
||||
if($_GET["do"] == "adress")
|
||||
{
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
$adressid=mysql_escape_string($_GET["adressid"]);
|
||||
$qry=mysqli_query($dbconn,"SELECT vname, nname, firma, typ, partner.id FROM adresse
|
||||
JOIN adresstyp ON adresstyp.id = adresse.typ_id
|
||||
JOIN partner ON partner.id = adresse.partner_id
|
||||
WHERE adresse.id = '$adressid' AND partner.typ_id = 2") or $err=error("Fehler beim abrufen der Informationen für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_array($qry);
|
||||
$vname = $res[0];
|
||||
$nname = $res[1];
|
||||
$firma = $res[2];
|
||||
$typ = $res[3];
|
||||
$kdnr = $res[4];
|
||||
if($kdnr)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM adresse WHERE id = '$adressid'") or $err=error("Fehler beim löschen der Adresse:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM adresse WHERE id = $adressid [$typ von Kunde $kdnr ($vname $nname - $firma)]","","löschen");
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Ungültiger Lieferant!");
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$err = saveAdress($dbconn);
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispAdressForm($dbconn,$smarty,2);
|
||||
}
|
||||
}
|
||||
elseif($_GET["do"] == "tel")
|
||||
{
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
$telid=mysql_escape_string($_GET["telid"]);
|
||||
$qry=mysqli_query($dbconn,"SELECT typ, partner.id FROM tel
|
||||
JOIN teltyp ON teltyp.id = tel.typ_id
|
||||
JOIN partner ON partner.id = tel.partner_id
|
||||
WHERE adresse.id = '$adressid' AND partner.typ_id = 2") or $err=error("Fehler beim abrufen der Informationen für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_array($qry);
|
||||
$typ = $res[0];
|
||||
$kdnr = $res[1];
|
||||
if($kdnr)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM tel WHERE id = '$telid'") or $err=error("Fehler beim löschen der Telefonnummer:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM tel WHERE id = $telid [$typ von Kunde $kdnr]","","löschen");
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Ungültiger Lieferant!");
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$err = saveTel($dbconn);
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispTelForm($dbconn,$smarty,2);
|
||||
}
|
||||
}
|
||||
elseif($_GET["do"] == "kontakt")
|
||||
{
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
$kontaktid=mysql_escape_string($_GET["kontaktid"]);
|
||||
$qry=mysqli_query($dbconn,"SELECT konatkttyp.typ, partner.id FROM kontakt
|
||||
JOIN kontakttyp ON kontakttyp.id = kontakt.typ_id
|
||||
JOIN partner ON partner.id = kontakt.partner_id WHERE kontakt.id = '$kontaktid' partner.typ_id = 2") or $err=error("Fehler beim abrufen der Informationen für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_array($qry);
|
||||
$typ = $res[0];
|
||||
$kdnr = $res[1];
|
||||
if($kdnr)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM kontakt WHERE id = '$kontaktid'") or $err=error("Fehler beim löschen der Kontaktinformation:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM kontakt WHERE id = $kontaktid [$typ von Kunde $kdnr]","","löschen");
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Ungültiger Lieferant!");
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$err = saveKontakt($dbconn);
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispKontaktForm($dbconn,$smarty,2);
|
||||
}
|
||||
}
|
||||
elseif($_GET["do"] == "notiz")
|
||||
{
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
$notizid=mysql_escape_string($_GET["notizid"]);
|
||||
$qry=mysqli_query($dbconn,"SELECT partner_id FROM notiz
|
||||
JOIN partner ON partner.id = notiz.partner_id
|
||||
WHERE notiz.id = '$notizid' AND partner.typ_id = 2") or $err=error("Fehler beim abrufen der Informationen für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_array($qry);
|
||||
$kdnr = $res[0];
|
||||
if($kdnr)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM notiz WHERE id = '$notizid'") or $err=error("Fehler beim löschen der Notiz:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM notiz WHERE id = $notizid [von Kunde $kdnr]","","löschen");
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Ungültiger Lieferant!");
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$err = saveNotiz($dbconn);
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispNotizForm($dbconn,$smarty,2);
|
||||
}
|
||||
}
|
||||
elseif($_GET["do"] == "konto")
|
||||
{
|
||||
if($_GET["del"] == 1)
|
||||
{
|
||||
$kontoid = mysql_escape_string($_GET["kontoid"]);
|
||||
$qry = mysqli_query($dbconn,"SELECT konto.partner_id FROM konto
|
||||
JOIN partner ON partner.id = konto.partner_id
|
||||
WHERE konto.id = '$kontoid' AND partner.typ_id = 2") or $err=error("Fehler beim abrufen der Informationen für die LOG:<br />".mysqli_error($dbconn));
|
||||
$res = mysqli_fetch_array($qry);
|
||||
$kdnr = $res[0];
|
||||
if($kdnr)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"DELETE FROM konto WHERE id = '$kontoid'") or $err=error("Fehler beim löschen des Kontos:<br />".mysqli_error($dbconn));
|
||||
if(!$err)
|
||||
{
|
||||
$err = saveLog($dbconn,"DELETE FROM konto WHERE id = $kontoid [von Kunde $kdnr]","","löschen");
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = error("Ungültiger Lieferant!");
|
||||
}
|
||||
}
|
||||
elseif($_GET["formsent"] == 1)
|
||||
{
|
||||
$err = saveKonto($dbconn);
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich erledigt!");
|
||||
}
|
||||
else
|
||||
{
|
||||
dispKontoForm($dbconn,$smarty,2);
|
||||
}
|
||||
}
|
||||
// Beim Löschen einer Adresse verschwinden auch ihre Dokumente (delRechnung)
|
||||
require_once "incs/rechnung.php";
|
||||
|
||||
$err = partnerChangeSeite($dbconn, $smarty, 2);
|
||||
?>
|
||||
+3
-116
@@ -1,120 +1,7 @@
|
||||
<?php
|
||||
if($_GET["id"])
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM partner WHERE id='".mysql_escape_string($_GET["id"])."' AND typ_id = 2")
|
||||
or $err=error("Fehler beim auslesen des Zulieferers:<br />". mysqli_error($dbconn));
|
||||
$kdnres=mysqli_fetch_assoc($qry);
|
||||
$smarty->assign("kunde",$kdnres);
|
||||
if($kdnres.id)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT id, datetime_new FROM partner WHERE updated_by='".$kdnres["id"]."'")
|
||||
or $err=error("Fehler beim auslesen der neueren Versionen:<br />". mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$oldrecords[] = $res;
|
||||
$qry = mysqli_query($dbconn,"SELECT id, datetime_new FROM partner WHERE updated_by='".$res["id"]."'")
|
||||
or $err=error("Fehler beim auslesen der neueren Versionen:<br />". mysqli_error($dbconn));
|
||||
}
|
||||
$smarty->assign("oldrecords",$oldrecords);
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT id, datetime_new FROM partner WHERE id='".$kdnres["updated_by"]."'")
|
||||
or $err=error("Fehler beim auslesen der älteren Versionen:<br />". mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$newrecords[] = $res;
|
||||
$qry = mysqli_query($dbconn,"SELECT id, datetime_new FROM partner WHERE id='".$res["updated_by"]."'")
|
||||
or $err=error("Fehler beim auslesen der älteren Versionen:<br />". mysqli_error($dbconn));
|
||||
}
|
||||
$smarty->assign("newrecords",$newrecords);
|
||||
|
||||
$tmp = array();
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM anrede")
|
||||
or $err=error("Fehler beim auslesen der Anreden:<br />". mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tmp[$res["id"]] = $res["anrede"];
|
||||
}
|
||||
$smarty->assign("anr",$tmp);
|
||||
|
||||
$tmp = array();
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM titel")
|
||||
or $err=error("Fehler beim auslesen der Titel:<br />". mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tmp[$res["id"]] = $res["titel"];
|
||||
}
|
||||
$smarty->assign("titel",$tmp);
|
||||
|
||||
$tmp = array();
|
||||
$qry = mysqli_query($dbconn,"SELECT name,typ,tel.id,nr,ort,ortsteil,plz,vwahl
|
||||
FROM tel LEFT JOIN teltyp ON typ_id = teltyp.id LEFT JOIN ort ON ort_id = ort.id
|
||||
WHERE partner_id='".mysql_escape_string($_GET["id"])."' ORDER BY typ_id ASC")
|
||||
or $err=error("Fehler beim auslesen der Telefonnummern:<br />". mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tmp[] = $res;
|
||||
}
|
||||
$smarty->assign("telnrn",$tmp);
|
||||
|
||||
$tmp = array();
|
||||
$qry = mysqli_query($dbconn,"SELECT kontakt.id, kontakt, partner_id, typ
|
||||
FROM kontakt LEFT JOIN kontakttyp ON kontakttyp.id = kontakt.typ_id
|
||||
WHERE partner_id='".mysql_escape_string($_GET["id"])."' ORDER BY typ_id ASC")
|
||||
or $err=error("Fehler beim auslesen der Kontakte:<br />". mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tmp[] = $res;
|
||||
}
|
||||
$smarty->assign("contacts",$tmp);
|
||||
|
||||
$tmp = array();
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM notiz WHERE partner_id='".mysql_escape_string($_GET["id"])."'")
|
||||
or $err=error("Fehler beim auslesen der Notizen:<br />". mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tmp[] = $res;
|
||||
}
|
||||
$smarty->assign("notes",$tmp);
|
||||
|
||||
$tmp = array();
|
||||
$qry = mysqli_query($dbconn,"SELECT ktonr,iban,swift,blz,bank,partner_id,konto.id,inhaber
|
||||
FROM konto JOIN bank ON konto.bank_id = bank.id WHERE partner_id='".mysql_escape_string($_GET["id"])."'")
|
||||
or $err=error("Fehler beim auslesen der Konten:<br />". mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tmp[] = $res;
|
||||
}
|
||||
$smarty->assign("kontos",$tmp);
|
||||
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT plz, ortsteil, ort, str, hnr, vname, nname, vname2, nname2, firma, adresse.id, land, anrede_id, titel_id, adresstyp.typ, adresse.typ_id
|
||||
FROM adresse JOIN
|
||||
adresstyp ON adresstyp.id = adresse.typ_id
|
||||
LEFT JOIN strasse ON str_id = strasse.id
|
||||
LEFT JOIN ort ON ort_id = ort.id
|
||||
LEFT JOIN land ON land_id = land.id
|
||||
WHERE partner_id='".mysql_escape_string($_GET["id"])."'
|
||||
ORDER BY typ_id ASC") or $err=error("Fehler beim auslesen der Adressen:<br />". mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$adressen[] = $res;
|
||||
}
|
||||
$smarty->assign("adressen",$adressen);
|
||||
|
||||
$tmp=array();
|
||||
$qry = mysqli_query($dbconn,"SELECT typ, id FROM rechtyp");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$tmp[] = $res;
|
||||
}
|
||||
$smarty->assign("rechtypen",$tmp);
|
||||
|
||||
|
||||
|
||||
|
||||
$_SESSION["camefrom"] ="liefershow&id=".$_GET["id"];
|
||||
}
|
||||
}
|
||||
require_once "incs/saveNchange.php";
|
||||
|
||||
partnerShowDaten($dbconn, $smarty, parameterGanzzahl("id"), 2);
|
||||
$_SESSION["camefrom"] = "liefershow&id=".parameterGanzzahl("id");
|
||||
$smarty->display("liefershow.tpl");
|
||||
?>
|
||||
+43
-132
@@ -17,7 +17,7 @@ elseif($_GET["changeadr"] == 1 && $_GET["id"])
|
||||
if(!$_GET["adrid"])
|
||||
{
|
||||
$smarty->assign("felder",array("all"=>"Name, Adresse, Kd.Nr.","kdnr"=>"Kundennummer","name"=>"Name und Firma","str"=>"Straße","plz"=>"PLZ","ort"=>"Ort","tel"=>"Tel","kont"=>"Kontakt"));
|
||||
$smarty->assign("rechid",$_GET["id"]);
|
||||
$smarty->assign("rechid",(int)$_GET["id"]);
|
||||
$smarty->display("changeadr.tpl");
|
||||
}
|
||||
else
|
||||
@@ -32,7 +32,7 @@ elseif($_GET["copy"] == 1 && $_GET["id"])
|
||||
if(!$_GET["adrid"])
|
||||
{
|
||||
$smarty->assign("felder",array("all"=>"Name, Adresse, Kd.Nr.","kdnr"=>"Kundennummer","name"=>"Name und Firma","str"=>"Straße","plz"=>"PLZ","ort"=>"Ort","tel"=>"Tel","kont"=>"Kontakt"));
|
||||
$smarty->assign("rechid",$_GET["id"]);
|
||||
$smarty->assign("rechid",(int)$_GET["id"]);
|
||||
$smarty->display("copyrech.tpl");
|
||||
}
|
||||
else
|
||||
@@ -42,58 +42,25 @@ elseif($_GET["copy"] == 1 && $_GET["id"])
|
||||
doneNreturn("Erfolgreich geändert");
|
||||
}
|
||||
}
|
||||
elseif($_GET["storno"] == "YES" && $_GET["id"]){
|
||||
$querystr = "UPDATE rechnung SET
|
||||
storno = 1, stornodate = NOW() WHERE id = '".$_GET["id"]."'";
|
||||
mysqli_query($dbconn,$querystr) or $err=error("Fehler beim aktualisieren der Rechnung<br />".mysqli_error($dbconn));
|
||||
doneNreturn("Erfolgreich geändert");
|
||||
}
|
||||
elseif($_GET["storno"] == "NO" && $_GET["id"]){
|
||||
$querystr = "UPDATE rechnung SET
|
||||
storno = 0 WHERE id = '".$_GET["id"]."'";
|
||||
mysqli_query($dbconn,$querystr) or $err=error("Fehler beim aktualisieren der Rechnung<br />".mysqli_error($dbconn));
|
||||
doneNreturn("Erfolgreich geändert");
|
||||
elseif(($_GET["storno"] == "YES" || $_GET["storno"] == "NO") && $_GET["id"]){
|
||||
$err = stornoRechnung($dbconn, $_GET["id"], $_GET["storno"] == "YES");
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich geändert");
|
||||
}
|
||||
elseif($_GET["mail"] == 1 && $_GET["id"])
|
||||
{
|
||||
$kdnres=makeadressarray($dbconn, $_GET["adressid"]);
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,anrede FROM anrede");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typnames[$res["id"]] = $res["anrede"];
|
||||
}
|
||||
$smarty->assign("anrs",$typnames);
|
||||
list($anrs, $titels) = anredenUndTitel($dbconn);
|
||||
$smarty->assign("anrs",$anrs);
|
||||
$smarty->assign("titels",$titels);
|
||||
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,titel FROM titel");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typnames[$res["id"]] = $res["titel"];
|
||||
}
|
||||
$smarty->assign("titels",$typnames);
|
||||
$mails = db_zuordnung($dbconn, "SELECT id, kontakt FROM kontakt WHERE partner_id = ? AND typ_id = 1", array($kdnres["partner_id"] ?? 0)) ?: array();
|
||||
$smarty->assign("mails",array_values($mails));
|
||||
$smarty->assign("mailids",array_keys($mails));
|
||||
|
||||
$mails=array();
|
||||
$mailids=array();
|
||||
$qry = mysqli_query($dbconn,"SELECT kontakt.id, kontakt, partner_id, typ FROM kontakt LEFT JOIN kontakttyp ON kontakttyp.id = kontakt.typ_id WHERE partner_id='".mysql_escape_string($kdnres["partner_id"])."' AND typ_id = 1");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$mails[] = $res["kontakt"];
|
||||
$mailids[] = $res["id"];
|
||||
}
|
||||
$smarty->assign("mails",$mails);
|
||||
$smarty->assign("mailids",$mailids);
|
||||
|
||||
$typids=array();
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,bezeichn FROM artikeltyp");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typids[] = $res["id"];
|
||||
$typnames[] = $res["bezeichn"];
|
||||
}
|
||||
$smarty->assign("typids",$typids);
|
||||
$smarty->assign("typs",$typnames);
|
||||
$typen = db_zuordnung($dbconn, "SELECT id, bezeichn FROM artikeltyp") ?: array();
|
||||
$smarty->assign("typids",array_keys($typen));
|
||||
$smarty->assign("typs",array_values($typen));
|
||||
$rechnung=makerechnungsarray($dbconn, $_GET["id"], 0);
|
||||
$smarty->assign("rechnung",$rechnung);
|
||||
$smarty->assign("adresse",$kdnres);
|
||||
@@ -174,7 +141,7 @@ else
|
||||
}
|
||||
else
|
||||
{
|
||||
$smarty->assign("loadrech",$_GET["id"]);
|
||||
$smarty->assign("loadrech",(int)$_GET["id"]);
|
||||
$rechnung=makerechnungsarray($dbconn, $_GET["id"], 0);
|
||||
$kommission=makeadressarray($dbconn, $rechnung["kommission"]);
|
||||
$smarty->assign("rechnung",$rechnung);
|
||||
@@ -189,80 +156,37 @@ else
|
||||
$smarty->assign("artikel",makeartikelarray($dbconn, $_GET["draft"], 1));
|
||||
}
|
||||
|
||||
$smarty->assign("type",$_GET["type"]);
|
||||
$smarty->assign("newtype",$_GET["newtype"]);
|
||||
$smarty->assign("type",(int)$_GET["type"]);
|
||||
$smarty->assign("newtype",(int)$_GET["newtype"]);
|
||||
|
||||
$kdnres=makeadressarray($dbconn, $_GET["adressid"]);
|
||||
|
||||
if($kdnres["adresstyp"] == "Kommission")
|
||||
{
|
||||
$smarty->assign("kommission",$kdnres);
|
||||
$qry = mysqli_query($dbconn,"SELECT plz, ortsteil, ort, str, adresstyp.typ AS adresstyp, hnr, vname, partner_id, nname, vname2, nname2, firma, adresse.id, land, anrede_id, titel_id, anrede2_id, titel2_id
|
||||
FROM adresse
|
||||
LEFT JOIN strasse ON str_id = strasse.id
|
||||
LEFT JOIN ort ON ort_id = ort.id
|
||||
LEFT JOIN land ON land_id = land.id
|
||||
JOIN adresstyp ON adresse.typ_id = adresstyp.id
|
||||
WHERE adresse.typ_id='1' AND adresse.partner_id = '".$kdnres["partner_id"]."'
|
||||
ORDER BY typ_id ASC") or $err = error("Fehler beim abrufen der Daten ".mysqli_error($dbconn));
|
||||
//$kdnres=mysqli_fetch_assoc($qry);
|
||||
}
|
||||
|
||||
if($kdnres["partner_id"])
|
||||
{
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,anrede FROM anrede");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typnames[$res["id"]] = $res["anrede"];
|
||||
}
|
||||
$smarty->assign("anrs",$typnames);
|
||||
list($anrs, $titels) = anredenUndTitel($dbconn);
|
||||
$smarty->assign("anrs",$anrs);
|
||||
$smarty->assign("titels",$titels);
|
||||
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,titel FROM titel");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typnames[$res["id"]] = $res["titel"];
|
||||
}
|
||||
$smarty->assign("titels",$typnames);
|
||||
$liste = db_zuordnung($dbconn, "SELECT id, bezeichn FROM artikeltyp") ?: array();
|
||||
$smarty->assign("typids",array_keys($liste));
|
||||
$smarty->assign("typs",array_values($liste));
|
||||
|
||||
$liste = db_zuordnung($dbconn, "SELECT id, einheit FROM einheit") ?: array();
|
||||
$smarty->assign("einhids",array_keys($liste));
|
||||
$smarty->assign("einhs",array_values($liste));
|
||||
|
||||
$liste = db_zuordnung($dbconn, "SELECT id, wahrung FROM wahrung") ?: array();
|
||||
$smarty->assign("wahrids",array_keys($liste));
|
||||
$smarty->assign("wahrs",array_values($liste));
|
||||
|
||||
$typids=array();
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,bezeichn FROM artikeltyp");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typids[] = $res["id"];
|
||||
$typnames[] = $res["bezeichn"];
|
||||
}
|
||||
$smarty->assign("typids",$typids);
|
||||
$smarty->assign("typs",$typnames);
|
||||
|
||||
$typids=array();
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,einheit FROM einheit");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typids[] = $res["id"];
|
||||
$typnames[] = $res["einheit"];
|
||||
}
|
||||
$smarty->assign("einhids",$typids);
|
||||
$smarty->assign("einhs",$typnames);
|
||||
|
||||
$typids=array();
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,wahrung FROM wahrung");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typids[] = $res["id"];
|
||||
$typnames[] = $res["wahrung"];
|
||||
}
|
||||
$smarty->assign("wahrids",$typids);
|
||||
$smarty->assign("wahrs",$typnames);
|
||||
|
||||
$typids=array();
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,mwst FROM mwst");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
foreach(db_zeilen($dbconn, "SELECT id, mwst FROM mwst") ?: array() as $res)
|
||||
{
|
||||
if($res["mwst"] != "999")
|
||||
{
|
||||
@@ -283,31 +207,18 @@ else
|
||||
$smarty->assign("artmwstids",$typids2);
|
||||
$smarty->assign("artmwsts",$typnames2);
|
||||
|
||||
$typids=array();
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,ziel FROM zahlziel");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typids[] = $res["id"];
|
||||
$typnames[] = $res["ziel"];
|
||||
}
|
||||
$smarty->assign("zzielids",$typids);
|
||||
$smarty->assign("zziels",$typnames);
|
||||
$liste = db_zuordnung($dbconn, "SELECT id, ziel FROM zahlziel") ?: array();
|
||||
$smarty->assign("zzielids",array_keys($liste));
|
||||
$smarty->assign("zziels",array_values($liste));
|
||||
|
||||
$typids=array();
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,kto,name FROM buchungsKontos");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typids[] = $res["id"];
|
||||
$liste = db_zuordnung($dbconn, "SELECT id, CONCAT(kto, ' (', name, ')') FROM buchungsKontos") ?: array();
|
||||
$smarty->assign("buchKtoids",array_keys($liste));
|
||||
$smarty->assign("buchKtos",array_values($liste));
|
||||
|
||||
$typnames[] = $res["kto"]." (".$res["name"].")";
|
||||
}
|
||||
$smarty->assign("buchKtoids",$typids);
|
||||
$smarty->assign("buchKtos",$typnames);
|
||||
|
||||
$qry=mysqli_query($dbconn,"SELECT tmp_rechnung.id,adresse_id, vname, nname, str, hnr FROM tmp_rechnung JOIN adresse ON adresse_id = adresse.id JOIN strasse ON str_id = strasse.id WHERE tmp_rechnung.typ_id='".mysql_escape_string($_GET["type"])."' AND user_id = '".mysql_escape_string($_SESSION["user"])."' ORDER BY datetime DESC LIMIT 1") or $err=error("Fehler beim Suchen nach nicht gespeicherten Daten<br />".mysqli_error($dbconn));
|
||||
if($res = mysqli_fetch_assoc($qry))
|
||||
$res = db_zeile($dbconn, "SELECT tmp_rechnung.id, adresse_id, vname, nname, str, hnr FROM tmp_rechnung JOIN adresse ON adresse_id = adresse.id JOIN strasse ON str_id = strasse.id WHERE tmp_rechnung.typ_id = ? AND user_id = ? ORDER BY datetime DESC LIMIT 1", array((string)$_GET["type"], $_SESSION["user"]));
|
||||
if($res === false)
|
||||
$err = error("Fehler beim Suchen nach nicht gespeicherten Daten<br />".mysqli_error($dbconn));
|
||||
if($res)
|
||||
{
|
||||
$smarty->assign("draft",$res["id"]);
|
||||
$smarty->assign("draftname",$res["vname"]." ".$res["nname"]);
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
require_once ("./incs/rechnung.php");
|
||||
$smarty->assign("heading","Steuerexport");
|
||||
$smarty->display("heading.tpl");
|
||||
|
||||
+12
-135
@@ -1,148 +1,25 @@
|
||||
<?php
|
||||
require_once("incs/users.php");
|
||||
$_SESSION["camefrom"] = "termin&show=".$_GET["show"]."&page=".$_GET["page"];
|
||||
require_once "incs/termin.php";
|
||||
require_once "incs/users.php";
|
||||
|
||||
if($_GET["show"] == "list")
|
||||
$seite = parameterGanzzahl("page");
|
||||
$_SESSION["camefrom"] = "termin&show=".(isset($_GET["show"]) && $_GET["show"] == "list" ? "list" : "")."&page=".$seite;
|
||||
|
||||
if(isset($_GET["show"]) && $_GET["show"] == "list")
|
||||
{
|
||||
|
||||
$smarty->assign("heading","Terminliste");
|
||||
if($_GET["tabs"])
|
||||
$smarty->assign("tabs",$_GET["tabs"]);
|
||||
else
|
||||
$smarty->assign("tabs",$_SESSION["termtyp"]);
|
||||
$smarty->assign("heading", "Terminliste");
|
||||
$smarty->assign("tabs", parameterGanzzahl("tabs") ?: ($_SESSION["termtyp"] ?? 1));
|
||||
$smarty->display("heading.tpl");
|
||||
$smarty->display("termlist.tpl");
|
||||
}
|
||||
else
|
||||
{
|
||||
$smarty->assign("heading","Termine");
|
||||
$smarty->assign("heading", "Termine");
|
||||
$smarty->display("heading.tpl");
|
||||
|
||||
//$colors = array("#f00","#0c0","#ff0","#90c","#0bb","#066","#09f","#f60","#00f","#f09");
|
||||
|
||||
//$weather = GetWeather();
|
||||
//$smarty->assign("weather",$weather);
|
||||
$start = $_GET["page"]*8 - 1;
|
||||
$end = $_GET["page"]*8 + 7;
|
||||
|
||||
for($i=$start; $i<$end; $i++)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT user.vname,user.nname, user.color,
|
||||
case MAX(zeiten.gehen)
|
||||
when MAX(zeiten.kommen) then 0
|
||||
else 1 end AS complete
|
||||
FROM user
|
||||
LEFT JOIN zeiten ON user.id = zeiten.ma_id
|
||||
WHERE DATE_FORMAT(kommen,'%Y%m%d') = '".date("Ymd",strtotime("+".$i." days"))."'
|
||||
GROUP BY user.id ORDER BY user.nname ASC") or $err=error("fehler beim ermitteln der anwesenden Mitarbeiter<br />".mysqli_error($dbconn));
|
||||
$ma_check=array();
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$ma_check[] = $res;
|
||||
}
|
||||
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT termin.id,termtyp.typ, termin.head, termtime, termdauer, user, user2, user3, user4, done, partner_id, termin.id, main_id, str, ort, ortsteil, plz, hnr, adresse.vname as vname, adresse.nname as nname,
|
||||
user.vname as uservname, user.nname as usernname,
|
||||
user2.vname as uservname2, user2.nname as usernname2,
|
||||
user3.vname as uservname3, user3.nname as usernname3,
|
||||
user4.vname as uservname4, user4.nname as usernname4,
|
||||
firma, vname2, nname2
|
||||
FROM termin
|
||||
LEFT JOIN termtyp ON termin.typ = termtyp.id
|
||||
LEFT JOIN adresse ON termin.adresse_id = adresse.id
|
||||
LEFT JOIN partner ON adresse.partner_id = partner.id
|
||||
LEFT JOIN strasse ON adresse.str_id = strasse.id
|
||||
LEFT JOIN ort ON strasse.ort_id = ort.id
|
||||
LEFT JOIN user ON termin.user = user.id
|
||||
LEFT JOIN user AS user2 ON termin.user2 = user2.id
|
||||
LEFT JOIN user AS user3 ON termin.user3 = user3.id
|
||||
LEFT JOIN user AS user4 ON termin.user4 = user4.id
|
||||
WHERE DATE_FORMAT(termtime,'%Y%m%d') = '".date("Ymd",strtotime("+".$i." days"))."' AND termdauer > '12:00:00'
|
||||
ORDER BY termtime ASC") or $err=error("fehler beim ermitteln der termine<br />".mysqli_error($dbconn));
|
||||
$fulldaytermine=array();
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$fulldaytermine[] = $res;
|
||||
}
|
||||
|
||||
$termine=array();
|
||||
if($_SESSION["firma"] == "Ingenieurbüro Wagner"){
|
||||
$qry = mysqli_query($dbconn,"SELECT work.id, project.id AS projectid, work.bezeichn AS head, work.rechn AS done, project.name AS projectname, work.datetime AS termtime, work.std AS termdauer, project.changeuser AS user, project.partner_id,
|
||||
adresse.vname as vname, adresse.nname as nname, adresse.firma AS firma
|
||||
FROM work
|
||||
LEFT JOIN project ON work.project_id = project.id
|
||||
LEFT JOIN partner ON project.partner_id = partner.id
|
||||
LEFT JOIN adresse ON adresse.partner_id = partner.id
|
||||
LEFT JOIN user ON work.changeuser = user.id
|
||||
WHERE adresse.typ_id = 1 AND DATE_FORMAT(work.datetime,'%Y%m%d') = '".date("Ymd",strtotime("+".$i." days"))."'
|
||||
ORDER BY work.datetime ASC") or $err=error("fehler beim ermitteln der termine<br />".mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$termine[] = $res;
|
||||
}
|
||||
}
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT termin.id,termtyp.typ, termin.head, termtime, termdauer, user, user2, user3, user4, done, partner_id, termin.id, main_id, str, ort, ortsteil, plz, hnr, adresse.vname as vname, adresse.nname as nname,
|
||||
user.vname as uservname, user.nname as usernname,
|
||||
user2.vname as uservname2, user2.nname as usernname2,
|
||||
user3.vname as uservname3, user3.nname as usernname3,
|
||||
user4.vname as uservname4, user4.nname as usernname4,
|
||||
firma, vname2, nname2
|
||||
FROM termin
|
||||
LEFT JOIN termtyp ON termin.typ = termtyp.id
|
||||
LEFT JOIN adresse ON termin.adresse_id = adresse.id
|
||||
LEFT JOIN partner ON adresse.partner_id = partner.id
|
||||
LEFT JOIN strasse ON adresse.str_id = strasse.id
|
||||
LEFT JOIN ort ON strasse.ort_id = ort.id
|
||||
LEFT JOIN user ON termin.user = user.id
|
||||
LEFT JOIN user AS user2 ON termin.user2 = user2.id
|
||||
LEFT JOIN user AS user3 ON termin.user3 = user3.id
|
||||
LEFT JOIN user AS user4 ON termin.user4 = user4.id
|
||||
WHERE DATE_FORMAT(termtime,'%Y%m%d') = '".date("Ymd",strtotime("+".$i." days"))."' AND termdauer < '12:00:00'
|
||||
ORDER BY termtime ASC") or $err=error("fehler beim ermitteln der termine<br />".mysqli_error($dbconn));
|
||||
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$termine[] = $res;
|
||||
}
|
||||
|
||||
|
||||
$feiertag = feiertag_bayern(idate("d",strtotime("+".$i." days")),idate("m",strtotime("+".$i." days")),idate("Y",strtotime("+".$i." days")));
|
||||
if($feiertag){
|
||||
$weekdays[]=array( "weekday"=>date("d.m.Y",strtotime("+".$i." days"))."<br/>",
|
||||
"date"=>strftime("%Y%m%d",strtotime("+".$i." days")),
|
||||
"termine"=>$termine,
|
||||
"fulldaytermine"=>$fulldaytermine,
|
||||
"numfulldaytermine" => 0,
|
||||
"ma_check"=>$ma_check,
|
||||
"feiertag" => $feiertag
|
||||
);
|
||||
}
|
||||
else{
|
||||
$weekdays[]=array( "weekday"=>strftime("%A",strtotime("+".$i." days"))."<br/>".date("d.m.Y",strtotime("+".$i." days")),
|
||||
"date"=>strftime("%Y%m%d",strtotime("+".$i." days")),
|
||||
"termine"=>$termine,
|
||||
"fulldaytermine"=>$fulldaytermine,
|
||||
"numfulldaytermine" => 0,
|
||||
"ma_check"=>$ma_check,
|
||||
"feiertag" => ""
|
||||
);
|
||||
}
|
||||
}
|
||||
$smarty->assign("page",$_GET["page"]);
|
||||
$smarty->assign("weekdays",$weekdays);
|
||||
|
||||
$qry=mysqli_query($dbconn,"SELECT id, vname, nname, color FROM user WHERE blocked = 0 AND nick != 'ALL'");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
//$res["color"] = $colors[$res["id"]];
|
||||
$res["openvacation"] = urlaub_remaining($dbconn, $res["id"]);
|
||||
$users[$res["id"]] = $res;
|
||||
}
|
||||
|
||||
$smarty->assign("users",$users);
|
||||
|
||||
$smarty->assign("page", $seite);
|
||||
$smarty->assign("weekdays", kalenderTage($dbconn, $seite));
|
||||
$smarty->assign("users", kalenderBenutzer($dbconn));
|
||||
$smarty->display("calendar.tpl");
|
||||
}
|
||||
?>
|
||||
|
||||
+68
-399
@@ -1,422 +1,91 @@
|
||||
<?php
|
||||
require_once "incs/termin.php";
|
||||
|
||||
if($_GET["id"] && $_GET["del"] == 1)
|
||||
/*
|
||||
* Termin anlegen, ändern, löschen oder als erledigt markieren.
|
||||
*
|
||||
* Die Terminliste kann mehrere Termine auf einmal abhaken oder löschen;
|
||||
* dafür kommt id=multi und je Zeile ein Ankreuzfeld erl<N> bzw. del<N>.
|
||||
*/
|
||||
|
||||
/* Die angekreuzten Termine einer Mehrfachauswahl */
|
||||
function angekreuzteTermine($praefix)
|
||||
{
|
||||
if($_GET["id"] == "multi"){
|
||||
for( $i=1; $i<=$_POST["pagesize"]; $i++){
|
||||
mysqli_query($dbconn,"DELETE FROM termin WHERE id='".$_POST["del".$i]."'") or $err=error("Konnte Haupttermin nicht löschen<br />".mysqli_error($dbconn));
|
||||
mysqli_query($dbconn,"DELETE FROM termin WHERE main_id='".$_POST["del".$i]."'" or $err=error("Konnte Nebentermine nicht löschen<br />".mysqli_error($dbconn)));
|
||||
}
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht");
|
||||
}
|
||||
else{
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM termin WHERE id='".mysqli_escape_string($dbconn,$_GET["id"])."'");
|
||||
$res = mysqli_fetch_assoc($qry);
|
||||
if(!$res)
|
||||
$err = error("Dieser Termin existiert nicht!");
|
||||
$ids = array();
|
||||
$anzahl = isset($_POST["pagesize"]) ? (int)$_POST["pagesize"] : 0;
|
||||
for($i = 1; $i <= $anzahl; $i++)
|
||||
if(!empty($_POST[$praefix.$i]))
|
||||
$ids[] = (int)$_POST[$praefix.$i];
|
||||
return $ids;
|
||||
}
|
||||
|
||||
mysqli_query($dbconn,"DELETE FROM termin WHERE id='".$res["id"]."'") or $err=error("Konnte Haupttermin nicht löschen<br />".mysqli_error($dbconn));
|
||||
mysqli_query($dbconn,"DELETE FROM termin WHERE main_id='".$res["id"]."'" or $err=error("Konnte Nebentermine nicht löschen<br />".mysqli_error($dbconn)));
|
||||
$mehrfach = isset($_GET["id"]) && $_GET["id"] === "multi";
|
||||
$terminid = parameterGanzzahl("id");
|
||||
$adressid = parameterGanzzahl("adressid");
|
||||
$err = 0;
|
||||
|
||||
if(($mehrfach || $terminid) && parameterGanzzahl("del") == 1)
|
||||
{
|
||||
foreach($mehrfach ? angekreuzteTermine("del") : array($terminid) as $id)
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich gelöscht");
|
||||
$err = loescheTerminreihe($dbconn, $id);
|
||||
if(!$err)
|
||||
{
|
||||
doneNreturn("Erfolgreich gelöscht");
|
||||
return;
|
||||
}
|
||||
}
|
||||
elseif($_GET["id"] && $_GET["done"])
|
||||
elseif(($mehrfach || $terminid) && !empty($_GET["done"]))
|
||||
{
|
||||
if($_GET["id"] == "multi"){
|
||||
for( $i=1; $i<=$_POST["pagesize"]; $i++){
|
||||
mysqli_query($dbconn,"UPDATE termin SET done = 1 WHERE id='".$_POST["erl".$i]."'") or $err+=error("Konnte Haupttermin nicht als erledigt markieren<br />".mysqli_error($dbconn));
|
||||
mysqli_query($dbconn,"UPDATE termin SET done = 1 WHERE main_id='".$_POST["erl".$i]."'") or $err+=error("Konnte Nebentermine nicht als erledigt markieren<br />".mysqli_error($dbconn));
|
||||
}
|
||||
$erledigt = $_GET["done"] != "no";
|
||||
foreach($mehrfach ? angekreuzteTermine("erl") : array($terminid) as $id)
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich geändert!");
|
||||
}
|
||||
else{
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM termin WHERE id='".mysqli_escape_string($dbconn,$_GET["id"])."'");
|
||||
$res = mysqli_fetch_assoc($qry);
|
||||
if(!$res)
|
||||
$err = error("Dieser Termin existiert nicht!");
|
||||
|
||||
if($_GET["done"] == "yes")
|
||||
{
|
||||
mysqli_query($dbconn,"UPDATE termin SET done = 1 WHERE id='".$res["id"]."'") or $err=error("Konnte Haupttermin nicht als erledigt markieren<br />".mysqli_error($dbconn));
|
||||
mysqli_query($dbconn,"UPDATE termin SET done = 1 WHERE main_id='".$res["id"]."'") or $err=error("Konnte Nebentermine nicht als erledigt markieren<br />".mysqli_error($dbconn));
|
||||
}
|
||||
elseif($_GET["done"] == "no")
|
||||
{
|
||||
mysqli_query($dbconn,"UPDATE termin SET done = 0 WHERE id='".$res["id"]."'") or $err=error("Konnte Haupttermin nicht als nicht erledigt markieren<br />".mysqli_error($dbconn));
|
||||
mysqli_query($dbconn,"UPDATE termin SET done = 0 WHERE main_id='".$res["id"]."'") or $err=error("Konnte Nebentermine nicht als nicht erledigt markieren<br />".mysqli_error($dbconn));
|
||||
}
|
||||
if(!$err)
|
||||
doneNreturn("Erfolgreich geändert!");
|
||||
$err = setzeTerminErledigt($dbconn, $id, $erledigt);
|
||||
if(!$err)
|
||||
{
|
||||
doneNreturn("Erfolgreich geändert!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT plz, ortsteil, ort, str, hnr, vname, partner_id, nname, vname2, nname2, firma, adresse.id, land, anrede_id, titel_id, anrede2_id, titel2_id
|
||||
FROM adresse
|
||||
LEFT JOIN strasse ON str_id = strasse.id
|
||||
LEFT JOIN ort ON ort_id = ort.id
|
||||
LEFT JOIN land ON land_id = land.id
|
||||
WHERE adresse.id='".mysql_escape_string($_GET["adressid"])."'
|
||||
ORDER BY typ_id ASC") or $err = error("Fehler beim abrufen der Daten ".mysqli_error($dbconn));
|
||||
$kdnres=mysqli_fetch_assoc($qry);
|
||||
if($_GET["user"])
|
||||
$smarty->assign("user",$_GET["user"]);
|
||||
$kunde = terminAdresse($dbconn, $adressid);
|
||||
if(empty($kunde["partner_id"]))
|
||||
$adressid = 0;
|
||||
|
||||
if(!$kdnres["partner_id"])
|
||||
if(!$err && parameterGanzzahl("formsent") == 1)
|
||||
{
|
||||
$_GET["adressid"] = 0;
|
||||
$err = speichereTermin($dbconn, $terminid, $adressid);
|
||||
if(!$err)
|
||||
{
|
||||
doneNreturn("Erfolgreich eingetragen");
|
||||
return;
|
||||
}
|
||||
// bei einem Fehler die Eingaben im Formular stehen lassen
|
||||
$smarty->assign("termin", $_POST);
|
||||
}
|
||||
if($_GET["formsent"] == 1)
|
||||
{
|
||||
$head = mysql_escape_string(trim($_POST["head"]));
|
||||
$user = mysql_escape_string(trim($_POST["user"]));
|
||||
$user2 = mysql_escape_string(trim($_POST["user2"]));
|
||||
$user3 = mysql_escape_string(trim($_POST["user3"]));
|
||||
$user4 = mysql_escape_string(trim($_POST["user4"]));
|
||||
$text = mysql_escape_string(trim($_POST["text"]));
|
||||
$typ = mysql_escape_string(trim($_POST["typ"]));
|
||||
$done = mysql_escape_string(trim($_POST["done"]));
|
||||
$folge = mysql_escape_string(trim($_POST["folge"]));
|
||||
$folgetyp = mysql_escape_string(trim($_POST["folgetyp"]));
|
||||
$folgedays = mysql_escape_string(trim($_POST["folgedays"]));
|
||||
$datetime_start = dispdate_to_mysql_date(mysql_escape_string(trim($_POST["datetime_start"])),0);
|
||||
$datetime_end = dispdate_to_mysql_date(mysql_escape_string(trim($_POST["datetime_end"])),1);
|
||||
$_POST["termtime"] = $datetime_start;
|
||||
$_POST["termend"] = $datetime_end;
|
||||
$dauer = $_POST["termdauer"] = mysql_dauer($datetime_start,$datetime_end);
|
||||
$days = 1;
|
||||
$split_dauer = explode(":",$dauer);
|
||||
if($split_dauer[0]>12 || $typ == 0)
|
||||
{
|
||||
$days = ceil($dauer/24);
|
||||
$dauer = "24:00:00";
|
||||
$_POST["termtime"] = $datetime_start = substr($datetime_start,0,11)."00:00:00";
|
||||
$_POST["termend"] = $datetime_end = substr($datetime_start,0,11)."23:59:00";
|
||||
}
|
||||
$datetime_start_tmp =$datetime_start;
|
||||
|
||||
if($days > 1 && $_GET["id"])
|
||||
{
|
||||
mysqli_query($dbconn,"DELETE FROM termin WHERE id='".mysqli_escape_string($dbconn,$_GET["id"])."'");
|
||||
mysqli_query($dbconn,"DELETE FROM termin WHERE main_id='".mysqli_escape_string($dbconn,$_GET["id"])."'");
|
||||
terminAuswahllisten($dbconn, $smarty);
|
||||
$smarty->assign("kunde", $kunde);
|
||||
$smarty->assign("user", parameterGanzzahl("user"));
|
||||
|
||||
$_GET["id"] = "";
|
||||
}
|
||||
else
|
||||
mysqli_query($dbconn,"DELETE FROM termin WHERE main_id='".mysqli_escape_string($dbconn,$_GET["id"])."' AND id != '".mysqli_escape_string($dbconn,$_GET["id"])."'");
|
||||
if($done == 0){
|
||||
for($i=0;$i<$days;$i++)
|
||||
{
|
||||
$datetime_start_tmp = date("Y-m-d H:i:s",strtotime("+".$i." day",strtotime($datetime_start)));
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM
|
||||
( SELECT id,user, user2, user3, user4, termtime,
|
||||
DATE_ADD(termtime,INTERVAL CONCAT(HOUR(termdauer),' ',MINUTE(termdauer)) HOUR_MINUTE)as termend
|
||||
FROM termin WHERE termtime != '0000-00-00 00:00:00' AND done = 0)
|
||||
as subselect
|
||||
WHERE
|
||||
(user='$user' OR user2='$user' OR user3='$user' OR user4='$user') AND
|
||||
(
|
||||
('$datetime_start_tmp' >= termtime AND '$datetime_start_tmp' < termend) OR
|
||||
('$datetime_end' > termtime AND '$datetime_end' <= termend) OR
|
||||
('$datetime_start_tmp' <= termtime AND '$datetime_end' >= termend)
|
||||
)") or $err=error("Fehler beim überprüfen von Überlappungen<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_assoc($qry);
|
||||
if(!$res && $user2)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM
|
||||
( SELECT id,user, user2, user3, user4, termtime,
|
||||
DATE_ADD(termtime,INTERVAL CONCAT(HOUR(termdauer),' ',MINUTE(termdauer)) HOUR_MINUTE)as termend
|
||||
FROM termin WHERE termtime != '0000-00-00 00:00:00' AND done = 0)
|
||||
as subselect
|
||||
WHERE
|
||||
(user='$user2' OR user2='$user2' OR user3='$user2' OR user4='$user2') AND
|
||||
(
|
||||
('$datetime_start_tmp' >= termtime AND '$datetime_start_tmp' < termend) OR
|
||||
('$datetime_end' > termtime AND '$datetime_end' <= termend) OR
|
||||
('$datetime_start_tmp' <= termtime AND '$datetime_end' >= termend)
|
||||
)") or $err=error("Fehler beim überprüfen von Überlappungen<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_assoc($qry);
|
||||
}
|
||||
if(!$res && $user3)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM
|
||||
( SELECT id,user, user2, user3, user4, termtime,
|
||||
DATE_ADD(termtime,INTERVAL CONCAT(HOUR(termdauer),' ',MINUTE(termdauer)) HOUR_MINUTE)as termend
|
||||
FROM termin WHERE termtime != '0000-00-00 00:00:00' AND done = 0)
|
||||
as subselect
|
||||
WHERE
|
||||
(user='$user3' OR user2='$user3' OR user3='$user3' OR user4='$user3') AND
|
||||
(
|
||||
('$datetime_start_tmp' >= termtime AND '$datetime_start_tmp' < termend) OR
|
||||
('$datetime_end' > termtime AND '$datetime_end' <= termend) OR
|
||||
('$datetime_start_tmp' <= termtime AND '$datetime_end' >= termend)
|
||||
)") or $err=error("Fehler beim überprüfen von Überlappungen<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_assoc($qry);
|
||||
}
|
||||
if(!$res && $user4)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,"SELECT * FROM
|
||||
( SELECT id,user, user2, user3, user4, termtime,
|
||||
DATE_ADD(termtime,INTERVAL CONCAT(HOUR(termdauer),' ',MINUTE(termdauer)) HOUR_MINUTE)as termend
|
||||
FROM termin WHERE termtime != '0000-00-00 00:00:00' AND done = 0)
|
||||
as subselect
|
||||
WHERE
|
||||
(user='$user4' OR user2='$user4' OR user3='$user4' OR user4='$user4') AND
|
||||
(
|
||||
('$datetime_start_tmp' >= termtime AND '$datetime_start_tmp' < termend) OR
|
||||
('$datetime_end' > termtime AND '$datetime_end' <= termend) OR
|
||||
('$datetime_start_tmp' <= termtime AND '$datetime_end' >= termend)
|
||||
)") or $err=error("Fehler beim überprüfen von Überlappungen<br />".mysqli_error($dbconn));
|
||||
$res=mysqli_fetch_assoc($qry);
|
||||
}
|
||||
if($res && $res["id"] != $_GET["id"])
|
||||
{
|
||||
$err=error("Dieser Mitarbeiter hat zu der Zeit bereits einen Termin, er kann nicht an zwei Orten gleichzeitig sein.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!$err)
|
||||
{
|
||||
|
||||
for($i=0;$i<$days;$i++)
|
||||
{
|
||||
$datetime_start_tmp = date("Y-m-d H:i:s",strtotime("+".$i." day",strtotime($datetime_start)));
|
||||
if(strstr($datetime_start_tmp,"1970")){
|
||||
echo "NICHTTERMINIERT!!";
|
||||
$datetime_start_tmp = "0000-00-00 00:00:00";
|
||||
}
|
||||
if($_GET["id"])
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"SELECT * FROM termin WHERE id = '".mysqli_escape_string($dbconn,($_GET["id"]))."'");
|
||||
if ($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
if($done && $folge && !$res["followed_by"] && !$i)
|
||||
{
|
||||
mysqli_query($dbconn,"INSERT INTO termin SET head='$head',
|
||||
text='',
|
||||
adresse_id='".mysqli_escape_string($dbconn,$_GET["adressid"])."',
|
||||
typ='$folgetyp',
|
||||
changetime=NOW(),
|
||||
datetime=NOW(),
|
||||
done='0',
|
||||
termtime='',
|
||||
termdauer='',
|
||||
user='$user',
|
||||
user2='$user2',
|
||||
user3='$user3',
|
||||
user4='$user4',
|
||||
changeuser='".$_SESSION["user"]."',
|
||||
act_date=DATE_ADD(CURDATE(),INTERVAL $folgedays DAY)") or $err=error("Fehler beim anlegen des Folgetermins<br />".mysqli_error($dbconn));
|
||||
$res["followed_by"] = mysqli_insert_id($dbconn);
|
||||
mysqli_query($dbconn,"UPDATE termin SET main_id = '".$res["followed_by"]."' WHERE id='".$res["followed_by"]."'");
|
||||
}
|
||||
if(!$i)
|
||||
{
|
||||
mysqli_query($dbconn,"UPDATE termin SET head='$head',
|
||||
text='$text',
|
||||
adresse_id='".mysqli_escape_string($dbconn,$_GET["adressid"])."',
|
||||
typ='$typ',
|
||||
changetime=NOW(),
|
||||
done='$done',
|
||||
termtime='$datetime_start_tmp',
|
||||
termdauer='$dauer',
|
||||
changeuser='".$_SESSION["user"]."',
|
||||
user='$user',
|
||||
user2='$user2',
|
||||
user3='$user3',
|
||||
user4='$user4',
|
||||
followed_by='".$res["followed_by"]."'
|
||||
WHERE id='".mysqli_escape_string($dbconn,$_GET["id"])."'") or $err=error("Fehler beim ändern des Termins<br />".mysqli_error($dbconn));
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
$err=error("dieser Termin existiert nicht!");
|
||||
}
|
||||
else
|
||||
{
|
||||
if($done && $folge && !$err && !$i)
|
||||
{
|
||||
mysqli_query($dbconn,"INSERT INTO termin SET head='$head',
|
||||
text='',
|
||||
adresse_id='".mysqli_escape_string($dbconn,$_GET["adressid"])."',
|
||||
typ='$folgetyp',
|
||||
changetime=NOW(),
|
||||
datetime=NOW(),
|
||||
done='0',
|
||||
termtime='',
|
||||
termdauer='',
|
||||
changeuser='".$_SESSION["user"]."',
|
||||
user='$user',
|
||||
user2='$user2',
|
||||
user3='$user3',
|
||||
user4='$user4',
|
||||
act_date=DATE_ADD(CURDATE(),INTERVAL $folgedays DAY)") or $err=error("Fehler beim anlegen des Folgetermins<br />".mysqli_error($dbconn));
|
||||
$res["followed_by"] = mysqli_insert_id($dbconn);
|
||||
mysqli_query($dbconn,"UPDATE termin SET main_id = '".$res["followed_by"]."' WHERE id='".$res["followed_by"]."'");
|
||||
}
|
||||
if(!$err)
|
||||
{
|
||||
if(!$i)
|
||||
{
|
||||
mysqli_query($dbconn,"INSERT INTO termin SET head='$head',
|
||||
text='$text',
|
||||
adresse_id='".mysqli_escape_string($dbconn,$_GET["adressid"])."',
|
||||
typ='$typ',
|
||||
changetime=NOW(),
|
||||
datetime=NOW(),
|
||||
done='$done',
|
||||
termtime='$datetime_start_tmp',
|
||||
termdauer='$dauer',
|
||||
changeuser='".$_SESSION["user"]."',
|
||||
user='$user',
|
||||
user2='$user2',
|
||||
user3='$user3',
|
||||
user4='$user4',
|
||||
followed_by='".$res["followed_by"]."'") or $err=error("Fehler beim anlegen des Termins<br />".mysqli_error($dbconn));
|
||||
$main_id = mysqli_insert_id($dbconn);
|
||||
mysqli_query($dbconn,"UPDATE termin SET main_id = '$main_id' WHERE id='$main_id'");
|
||||
}
|
||||
else
|
||||
{
|
||||
mysqli_query($dbconn,"INSERT INTO termin SET head='$head',
|
||||
text='$text',
|
||||
adresse_id='".mysqli_escape_string($dbconn,$_GET["adressid"])."',
|
||||
typ='$typ',
|
||||
changetime=NOW(),
|
||||
datetime=NOW(),
|
||||
done='$done',
|
||||
termtime='$datetime_start_tmp',
|
||||
termdauer='$dauer',
|
||||
changeuser='".$_SESSION["user"]."',
|
||||
user='$user',
|
||||
user2='$user2',
|
||||
user3='$user3',
|
||||
user4='$user4',
|
||||
main_id='$main_id',
|
||||
followed_by='".$res["followed_by"]."'") or $err=error("Fehler beim anlegen des Termins<br />".mysqli_error($dbconn));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!$err)
|
||||
{
|
||||
doneNreturn("Erfolgreich eingetragen");
|
||||
}
|
||||
}
|
||||
if($err){
|
||||
$smarty->assign("termin",$_POST);
|
||||
}
|
||||
//elseif(!$head)
|
||||
// $err=error("Bitte geben Sie eine Terminbeschreibung an!");
|
||||
}
|
||||
|
||||
|
||||
$qry = mysqli_query($dbconn,"SELECT id, typ
|
||||
FROM termtyp WHERE id > 0") or $err = error("Fehler beim abrufen der Termintypen<br />".mysqli_error($dbconn));
|
||||
while($res = mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typids[] =$res["id"];
|
||||
$typs[] = $res["typ"];
|
||||
}
|
||||
$smarty->assign("typs",$typs);
|
||||
$smarty->assign("typids",$typids);
|
||||
|
||||
$typids=array();
|
||||
$typs=array();
|
||||
$qry = mysqli_query($dbconn,"SELECT id, vname, nname
|
||||
FROM user WHERE blocked = 0 AND id > 0") or $err = error("Fehler beim abrufen der Benutzer<br />".mysqli_error($dbconn));
|
||||
while($res = mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typids[] =$res["id"];
|
||||
$typs[] = $res["vname"]." ".$res["nname"];
|
||||
}
|
||||
$smarty->assign("users",$typs);
|
||||
$smarty->assign("userids",$typids);
|
||||
$typs[]="Keiner";
|
||||
$typids[]=0;
|
||||
$smarty->assign("optusers",$typs);
|
||||
$smarty->assign("optuserids",$typids);
|
||||
|
||||
$smarty->assign("days",array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40));
|
||||
$smarty->assign("kunde",$kdnres);
|
||||
if($_GET["id"])
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"SELECT MIN(termtime) AS termtime,
|
||||
SEC_TO_TIME(SUM(TIME_TO_SEC(termdauer))) AS termdauer,
|
||||
head,
|
||||
followed_by,
|
||||
MIN(id) AS id,
|
||||
main_id,
|
||||
typ,adresse_id,
|
||||
done,
|
||||
user,
|
||||
user2,
|
||||
user3,
|
||||
user4,
|
||||
changeuser,
|
||||
act_date,
|
||||
text
|
||||
FROM termin WHERE main_id = '".mysqli_escape_string($dbconn,$_GET["id"])."' GROUP BY main_id");
|
||||
if ($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
|
||||
if($res["followed_by"] > 0)
|
||||
{
|
||||
$qry2=mysqli_query($dbconn, "SELECT DATE_FORMAT(act_date,'%Y-%m-%d'), typ_id FROM termin WHERE id = '".$res["followed_by"]."'");
|
||||
$res2=mysqli_fetch_assoc($qry2);
|
||||
$days = (strtotime($res2["act_date"]) - strtotime(date("Y-m-d"))) / (60 * 60 * 24);
|
||||
$res["folgetyp"]= $res2["typ_id"];
|
||||
if($days > 0)
|
||||
$res["folgedays"] = $days;
|
||||
}
|
||||
$res["termend"] = dauer_to_date($res["termtime"], $res["termdauer"]);
|
||||
if(strstr($res["termend"],"00:00:00")){
|
||||
$res["termend"] = date("Y-m-d H:i:s",strtotime("-1 minutes",strtotime($res["termend"])));
|
||||
}
|
||||
$smarty->assign("termin",$res);
|
||||
if($_GET["adressid"])
|
||||
$smarty->assign("heading","Termin ändern");
|
||||
else
|
||||
$smarty->assign("heading","Urlaub / Krankheit ändern");
|
||||
}
|
||||
else
|
||||
{
|
||||
$err=error("Dieser Termin existiert nicht!");
|
||||
}
|
||||
}
|
||||
if($terminid && !$err)
|
||||
{
|
||||
$termin = terminZumBearbeiten($dbconn, $terminid);
|
||||
if(!$termin)
|
||||
$err = error("Dieser Termin existiert nicht!");
|
||||
else
|
||||
{
|
||||
|
||||
$smarty->assign("termin",$_POST);
|
||||
|
||||
if($_GET["adressid"]){
|
||||
$smarty->assign("heading","Neuer Termin");
|
||||
}
|
||||
else{
|
||||
$smarty->assign("heading","Neuer Urlaub / Krankheitstag");
|
||||
$typids=array();
|
||||
$typs=array();
|
||||
$qry = mysqli_query($dbconn,"SELECT id, typ
|
||||
FROM termtyp WHERE typ = 'Urlaub' OR typ = 'Krankheit'") or $err = error("Fehler beim abrufen der Termintypen<br />".mysqli_error($dbconn));
|
||||
while($res = mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typids[] =$res["id"];
|
||||
$typs[] = $res["typ"];
|
||||
}
|
||||
$smarty->assign("vac_types_id",$typids);
|
||||
$smarty->assign("vac_types_name",$typs);
|
||||
|
||||
}
|
||||
$smarty->assign("termin", $termin);
|
||||
$smarty->assign("heading", $adressid ? "Termin ändern" : "Urlaub / Krankheit ändern");
|
||||
}
|
||||
$smarty->display("heading.tpl");
|
||||
$smarty->display("addtermin.tpl");
|
||||
|
||||
}
|
||||
elseif(!$terminid)
|
||||
{
|
||||
if(!$err)
|
||||
$smarty->assign("termin", $_POST);
|
||||
$smarty->assign("heading", $adressid ? "Neuer Termin" : "Neuer Urlaub / Krankheitstag");
|
||||
}
|
||||
|
||||
$smarty->display("heading.tpl");
|
||||
$smarty->display("addtermin.tpl");
|
||||
?>
|
||||
+33
-59
@@ -1,71 +1,45 @@
|
||||
<?php
|
||||
// GET: id OR date;type
|
||||
/*
|
||||
* Terminzettel als PDF: eine Seite je Termin, einmal zum Abheften und
|
||||
* einmal mit Anfahrtsskizze. Aufruf entweder mit id (ein Termin) oder mit
|
||||
* date (alle Termine eines Tages).
|
||||
*/
|
||||
require_once "incs/termin.php";
|
||||
include("incs/makepdf.php");
|
||||
|
||||
$pdf = makerawPDFcopy(0);
|
||||
if($_GET["id"] && !$_GET["date"])
|
||||
$terminid = parameterGanzzahl("id");
|
||||
$datum = isset($_GET["date"]) && is_string($_GET["date"]) ? date("Y-m-d", strtotime($_GET["date"])) : "";
|
||||
|
||||
$ids = array();
|
||||
if($terminid && !$datum)
|
||||
$ids[] = $terminid;
|
||||
elseif($datum)
|
||||
{
|
||||
$termin=maketerminarray($dbconn, $_GET["id"]);
|
||||
$adresse=maketerminadresse($dbconn, $_GET["id"]);
|
||||
$telnrn=maketelnrn($dbconn,$_GET["id"]);
|
||||
makesingleterminpage($pdf,$termin,$adresse,$telnrn,0);
|
||||
$zeilen = db_zeilen($dbconn, "SELECT id FROM termin WHERE adresse_id != 0 AND DATE(termtime) = ? ORDER BY termtime ASC", array($datum));
|
||||
foreach((array)$zeilen as $z)
|
||||
$ids[] = $z["id"];
|
||||
}
|
||||
elseif($_GET["date"])
|
||||
|
||||
/* $anfahrt = 0 für den Terminzettel, 1 für die Seite mit der Karte */
|
||||
function terminzettel($dbconn, $ids, $anfahrt)
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"SELECT id FROM termin WHERE adresse_id AND DATE_FORMAT(termtime,'%Y%m%d') = '".date("Ymd",strtotime($_GET["date"]))."' ORDER BY termtime ASC");
|
||||
if($_GET["type"]="singlepages")
|
||||
$pdf = $anfahrt ? makerawPDFanfahrt(0) : makerawPDFcopy(0);
|
||||
$erste = true;
|
||||
foreach($ids as $id)
|
||||
{
|
||||
$prevpage=0;
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
if($prevpage)
|
||||
$pdf->addpage();
|
||||
$prevpage=1;
|
||||
$termin=maketerminarray($dbconn, $res["id"]);
|
||||
$adresse=maketerminadresse($dbconn, $res["id"]);
|
||||
$telnrn=maketelnrn($dbconn,$res["id"]);
|
||||
makesingleterminpage($pdf,$termin,$adresse,$telnrn,0);
|
||||
}
|
||||
if(!$erste)
|
||||
$pdf->addpage();
|
||||
$erste = false;
|
||||
$googleadresse = $anfahrt ? makegooglestring($dbconn, $id) : "";
|
||||
makesingleterminpage($pdf, maketerminarray($dbconn, $id), maketerminadresse($dbconn, $id),
|
||||
maketelnrn($dbconn, $id), $anfahrt, $googleadresse);
|
||||
}
|
||||
$name = str_replace(array(" ", "."), array("_", "_"), microtime());
|
||||
savePDF($pdf, "./temp/pdftemp/$name.pdf");
|
||||
return "./temp/pdftemp/$name.pdf";
|
||||
}
|
||||
$tmppdfname = str_replace(array(" ","."),array("_","_"),microtime());
|
||||
savePDF($pdf,"./temp/pdftemp/$tmppdfname.pdf");
|
||||
$smarty->assign("pdffile","./temp/pdftemp/$tmppdfname.pdf");
|
||||
|
||||
$pdf = makerawPDFanfahrt(0);
|
||||
if($_GET["id"] && !$_GET["date"])
|
||||
{
|
||||
$termin=maketerminarray($dbconn, $_GET["id"]);
|
||||
$adresse=maketerminadresse($dbconn, $_GET["id"]);
|
||||
$googleadresse=makegooglestring($dbconn, $_GET["id"]);
|
||||
$telnrn=maketelnrn($dbconn,$_GET["id"]);
|
||||
makesingleterminpage($pdf,$termin,$adresse,$telnrn,1,$googleadresse);
|
||||
}
|
||||
elseif($_GET["date"])
|
||||
{
|
||||
$qry=mysqli_query($dbconn,"SELECT id FROM termin WHERE adresse_id AND DATE_FORMAT(termtime,'%Y%m%d') = '".date("Ymd",strtotime($_GET["date"]))."' ORDER BY termtime ASC");
|
||||
if($_GET["type"]="singlepages")
|
||||
{
|
||||
$prevpage=0;
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
if($prevpage)
|
||||
$pdf->addpage();
|
||||
$prevpage=1;
|
||||
$termin=maketerminarray($dbconn, $res["id"]);
|
||||
$adresse=maketerminadresse($dbconn, $res["id"]);
|
||||
$googleadresse=makegooglestring($dbconn,$res["id"]);
|
||||
$telnrn=maketelnrn($dbconn,$res["id"]);
|
||||
makesingleterminpage($pdf,$termin,$adresse,$telnrn,1,$googleadresse);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
$tmppdfname = str_replace(array(" ","."),array("_","_"),microtime());
|
||||
savePDF($pdf,"./temp/pdftemp/$tmppdfname.pdf");
|
||||
$smarty->assign("pdffile2","./temp/pdftemp/$tmppdfname.pdf");
|
||||
|
||||
$smarty->assign("pdffile", terminzettel($dbconn, $ids, 0));
|
||||
$smarty->assign("pdffile2", terminzettel($dbconn, $ids, 1));
|
||||
$smarty->display("terminshow.tpl");
|
||||
|
||||
|
||||
?>
|
||||
+3
-15
@@ -6,21 +6,9 @@ $kdnres=makeadressarray($dbconn, $_GET["adressid"]);
|
||||
if($kdnres["partner_id"])
|
||||
{
|
||||
$kdnres["adressid"] = $_GET["adressid"];
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,anrede FROM anrede");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typnames[$res["id"]] = $res["anrede"];
|
||||
}
|
||||
$smarty->assign("anrs",$typnames);
|
||||
|
||||
$typnames=array();
|
||||
$qry=mysqli_query($dbconn, "SELECT id,titel FROM titel");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$typnames[$res["id"]] = $res["titel"];
|
||||
}
|
||||
$smarty->assign("titels",$typnames);
|
||||
list($anrs, $titels) = anredenUndTitel($dbconn);
|
||||
$smarty->assign("anrs",$anrs);
|
||||
$smarty->assign("titels",$titels);
|
||||
$smarty->assign("adresse",$kdnres);
|
||||
|
||||
$smarty->display("umschlagshow.tpl");
|
||||
|
||||
+138
-138
@@ -1,4 +1,4 @@
|
||||
<div class="centersidebyside">
|
||||
<div class="centersidebyside">
|
||||
<div class="sidebyside">
|
||||
{if $rechnung.typ_id && !$newtype}
|
||||
{$type = $rechnung.typ_id}
|
||||
@@ -23,72 +23,72 @@
|
||||
{elseif $type == 6}
|
||||
{$typename="Mahnung"}
|
||||
{/if}
|
||||
<h2>{$typename} {$headstr}:</h2>
|
||||
<form action="?action=rechnungadd&formsent=1&id={$loadrech}" name="mainform" id='rechnform' method='POST'>
|
||||
<h2>{$typename|escape} {$headstr|escape}:</h2>
|
||||
<form action="?action=rechnungadd&formsent=1&id={$loadrech|escape}" name="mainform" id='rechnform' method='POST'>
|
||||
<input type="hidden" name="type" value="{$type|escape}" />
|
||||
<input type="hidden" name="adressid" value="{$adresse.id|escape}" />
|
||||
<input type="hidden" name="partnerid" value="{$adresse.partner_id|escape}" />
|
||||
<fieldset class='nolim'>
|
||||
|
||||
<legend>{$typename} an <a href="?action=kundenshow&id={$adresse.partner_id}">Kunde {$adresse.partner_id}</a></legend>
|
||||
<legend>{$typename|escape} an <a href="?action=kundenshow&id={$adresse.partner_id|escape}">Kunde {$adresse.partner_id|escape}</a></legend>
|
||||
{if $adresse.firma}
|
||||
<label class='checktext'><input type="checkbox" name="show_firmaanr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMAANR:1 || $rechnung.adressfields==0}checked="checked"{/if} />Firma</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_firma" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMA:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.firma}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_firma" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMA:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.firma|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.anrede_id > 1}
|
||||
<label class='checktext'><input type="checkbox" name="show_anr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede_id}}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_anr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede_id}|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.titel_id > 1}
|
||||
<label class='checktext'><input type="checkbox" name="show_titel" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel_id}}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_titel" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel_id}|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.vname || $adresse.nname}
|
||||
<label class='checktext'><input type="checkbox" name="show_name" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname} {$adresse.nname}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_name" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname|escape} {$adresse.nname|escape}</label>
|
||||
{/if}
|
||||
<br />
|
||||
{if $adresse.anrede2_id > 1}
|
||||
<label class='checktext'><input type="checkbox" name="show_anr2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede2_id}}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_anr2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede2_id}|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.titel2_id > 1}
|
||||
<label class='checktext'><input type="checkbox" name="show_titel2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel2_id}}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_titel2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel2_id}|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.vname2 || $adresse.nname2}
|
||||
<label class='checktext'><input type="checkbox" name="show_name2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname2} {$adresse.nname2}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_name2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname2|escape} {$adresse.nname2|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.str}
|
||||
<label class='checktext'><input type="checkbox" name="show_str" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_STR:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.str} {$adresse.hnr}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_str" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_STR:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.str|escape} {$adresse.hnr|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.plz || $adresse.ort}
|
||||
<label class='checktext'><input type="checkbox" name="show_ort" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ORT:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.plz} {$adresse.ort}
|
||||
<label class='checktext'><input type="checkbox" name="show_ort" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ORT:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.plz|escape} {$adresse.ort|escape}
|
||||
{/if}
|
||||
{if $adresse.ortsteil}
|
||||
- {$adresse.ortsteil}
|
||||
- {$adresse.ortsteil|escape}
|
||||
{/if}
|
||||
{if $adresse.plz || $adresse.ort}
|
||||
</label>
|
||||
{/if}
|
||||
{if $adresse.land}
|
||||
<label class='checktext'><input type="checkbox" name="show_land" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_LAND:1}checked="checked"{/if} />{$adresse.land}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_land" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_LAND:1}checked="checked"{/if} />{$adresse.land|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.zusatz}
|
||||
<label class='checktext'><input type="checkbox" name="show_zusatz" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ZUSATZ:1}checked="checked"{/if} />{$adresse.zusatz|truncate:60:"...":false}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_zusatz" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ZUSATZ:1}checked="checked"{/if} />{$adresse.zusatz|truncate:60:"...":false|escape}</label>
|
||||
{/if}
|
||||
<br />
|
||||
<label>Adresserweiterung: </label><input name="adresserweiterung" value="{$rechnung.adresserweiterung}" />
|
||||
<label>Adresserweiterung: </label><input name="adresserweiterung" value="{$rechnung.adresserweiterung|escape}" />
|
||||
<br />
|
||||
<p>
|
||||
<label>Währung:</label>
|
||||
<select name='wahrung'>
|
||||
{html_options values=$wahrids output=$wahrs selected="{$rechnung.wahrung_id|default:1}"}
|
||||
{html_options values=$wahrids output=$wahrs selected="{$rechnung.wahrung_id|default:1|escape}"}
|
||||
</select><br />
|
||||
<label>Mehrwertsteuer:</label>
|
||||
<select name='mwst'>
|
||||
{html_options values=$mwstids output=$mwsts selected="{$rechnung.mwst_id|default:2}"}
|
||||
{html_options values=$mwstids output=$mwsts selected="{$rechnung.mwst_id|default:2|escape}"}
|
||||
</select>
|
||||
<br />
|
||||
{if $type == 1}
|
||||
<label>Zahlungsziel:</label>
|
||||
<select name='zahlziel'>
|
||||
{html_options values=$zzielids output=$zziels selected="{$rechnung.zahlziel_id|default:2}"}
|
||||
{html_options values=$zzielids output=$zziels selected="{$rechnung.zahlziel_id|default:2|escape}"}
|
||||
</select>
|
||||
{else}
|
||||
<input type='hidden' name='zahlziel' value='1'>
|
||||
@@ -100,10 +100,10 @@
|
||||
<div class="leftalign">
|
||||
<br />
|
||||
<label>Rabatt:</label>
|
||||
<input name='rabatt' id='rabatt' maxlength='3' pattern="[0-9]{ldelim}0,3{rdelim}" value="{$rechnung.rabatt}" /><b>%</b>
|
||||
<input name='rabatt' id='rabatt' maxlength='3' pattern="[0-9]{ldelim}0,3{rdelim}" value="{$rechnung.rabatt|escape}" /><b>%</b>
|
||||
<br />
|
||||
<label>Rabatt Beschreibung:</label>
|
||||
<input name='rabattdesc' id='rabattdesc' maxlength='100' value="{$rechnung.rabattdesc}" />
|
||||
<input name='rabattdesc' id='rabattdesc' maxlength='100' value="{$rechnung.rabattdesc|escape}" />
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
@@ -114,71 +114,71 @@
|
||||
<p>
|
||||
<br />
|
||||
<label>Anrede:</label>
|
||||
{if $anrs.{$adresse.anrede_id} == "Herrn" || $anrs.{$adresse.anrede_id} == "Herr"}
|
||||
{if $anrs.{$adresse.anrede_id} == "Herrn" || $anrs.{$adresse.anrede_id|escape} == "Herr"}
|
||||
{strip}
|
||||
<input value='
|
||||
{if $rechnung.anr1}
|
||||
$rechnung.anr1
|
||||
{if $rechnung.anrede1}
|
||||
{$rechnung.anrede1|escape}
|
||||
{else}
|
||||
Sehr geehrter Herr{" "}
|
||||
{if $adresse.titel_id > 1}
|
||||
{$titels.{$adresse.titel_id}}{" "}
|
||||
{$titels.{$adresse.titel_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname}
|
||||
{$adresse.vname}{" "}
|
||||
{$adresse.vname|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname},
|
||||
{$adresse.nname|escape},
|
||||
{/if}
|
||||
' id='anr1' maxlength='150' name='anr1' /><br />
|
||||
{/strip}
|
||||
{elseif $anrs.{$adresse.anrede2_id} == "Herrn" || $anrs.{$adresse.anrede_id} == "Herr"}
|
||||
{elseif $anrs.{$adresse.anrede2_id} == "Herrn" || $anrs.{$adresse.anrede_id|escape} == "Herr"}
|
||||
{strip}
|
||||
<input value='
|
||||
{if $rechnung.anr1}
|
||||
$rechnung.anr1
|
||||
{if $rechnung.anrede1}
|
||||
{$rechnung.anrede1|escape}
|
||||
{else}
|
||||
Sehr geehrter Herr{" "}
|
||||
{if $adresse.titel2_id > 1}
|
||||
{$titels.{$adresse.titel2_id}}{" "}
|
||||
{$titels.{$adresse.titel2_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname2}
|
||||
{$adresse.vname2}{" "}
|
||||
{$adresse.vname2|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname2},
|
||||
{$adresse.nname2|escape},
|
||||
{/if}
|
||||
' id='anr1' maxlength='150' name='anr1' /><br />
|
||||
{/strip}
|
||||
{elseif $anrs.{$adresse.anrede_id} == "Frau"}
|
||||
{strip}
|
||||
<input value='
|
||||
{if $rechnung.anr1}
|
||||
$rechnung.anr1
|
||||
{if $rechnung.anrede1}
|
||||
{$rechnung.anrede1|escape}
|
||||
{else}
|
||||
Sehr geehrte Frau{" "}
|
||||
{if $adresse.titel_id > 1}
|
||||
{$titels.{$adresse.titel_id}}{" "}
|
||||
{$titels.{$adresse.titel_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname}
|
||||
{$adresse.vname}{" "}
|
||||
{$adresse.vname|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname},
|
||||
{$adresse.nname|escape},
|
||||
{/if}
|
||||
' id='anr1' maxlength='150' name='anr1' /><br />
|
||||
{/strip}
|
||||
{elseif $anrs.{$adresse.anrede2_id} == "Frau"}
|
||||
{strip}
|
||||
<input value='
|
||||
{if $rechnung.anr1}
|
||||
$rechnung.anr1
|
||||
{if $rechnung.anrede1}
|
||||
{$rechnung.anrede1|escape}
|
||||
{else}
|
||||
Sehr geehrte Frau{" "}
|
||||
{if $adresse.titel2_id > 1}
|
||||
{$titels.{$adresse.titel2_id}}{" "}
|
||||
{$titels.{$adresse.titel2_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname2}
|
||||
{$adresse.vname2}{" "}
|
||||
{$adresse.vname2|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname2},
|
||||
{$adresse.nname2|escape},
|
||||
{/if}
|
||||
' id='anr1' maxlength='150' name='anr1' /><br />
|
||||
{/strip}
|
||||
@@ -187,37 +187,37 @@
|
||||
{/if}
|
||||
|
||||
<label>Zweite Anrede:</label>
|
||||
{if $anrs.{$adresse.anrede_id} == "Frau" && $anrs.{$adresse.anrede2_id} == "Herrn"}
|
||||
{if $anrs.{$adresse.anrede_id} == "Frau" && $anrs.{$adresse.anrede2_id|escape} == "Herrn"}
|
||||
{strip}
|
||||
<input value='
|
||||
{if $rechnung.anr2}
|
||||
$rechnung.anr2
|
||||
{if $rechnung.anrede2}
|
||||
{$rechnung.anrede2|escape}
|
||||
{else}
|
||||
Sehr geehrte Frau{" "}
|
||||
{if $adresse.titel_id > 1}
|
||||
{$titels.{$adresse.titel_id}}{" "}
|
||||
{$titels.{$adresse.titel_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname}
|
||||
{$adresse.vname}{" "}
|
||||
{$adresse.vname|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname},
|
||||
{$adresse.nname|escape},
|
||||
{/if}
|
||||
' id='anr2' maxlength='150' name='anr2' /><br />
|
||||
{/strip}
|
||||
{elseif $anrs.{$adresse.anrede2_id} == "Frau"}
|
||||
{strip}
|
||||
<input value='
|
||||
{if $rechnung.anr2}
|
||||
$rechnung.anr2
|
||||
{if $rechnung.anrede2}
|
||||
{$rechnung.anrede2|escape}
|
||||
{else}
|
||||
Sehr geehrte Frau{" "}
|
||||
{if $adresse.titel2_id > 1}
|
||||
{$titels.{$adresse.titel2_id}}{" "}
|
||||
{$titels.{$adresse.titel2_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname2}
|
||||
{$adresse.vname2}{" "}
|
||||
{$adresse.vname2|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname2},
|
||||
{$adresse.nname2|escape},
|
||||
{/if}
|
||||
' id='anr2' maxlength='150' name='anr2' /><br />
|
||||
{/strip}
|
||||
@@ -226,22 +226,22 @@
|
||||
{/if}
|
||||
|
||||
<label class='artlabel'>{if $type != 5}Einleitungstext{else}Text{/if}:</label><br />
|
||||
<center><textarea name='intro' id='intro' {if $type == 5}class='tinymce'{else}class='bigtextarea'{/if}>{$rechnung.intro}
|
||||
{if $newtype == 6}Leider haben wir bis zum heutigen Tag noch keinen vollständigen Zahlungseingang zur Rechnung Nr. {$rechnung.drechnr} erhalten. Deshalb bitten wir Sie, den fehlenden Betrag bis zum angegeben Zahlungsziel auf unser Konto zu überweisen.{/if}
|
||||
<center><textarea name='intro' id='intro' {if $type == 5}class='tinymce'{else}class='bigtextarea'{/if}>{$rechnung.intro|escape}
|
||||
{if $newtype == 6}Leider haben wir bis zum heutigen Tag noch keinen vollständigen Zahlungseingang zur Rechnung Nr. {$rechnung.drechnr|escape} erhalten. Deshalb bitten wir Sie, den fehlenden Betrag bis zum angegeben Zahlungsziel auf unser Konto zu überweisen.{/if}
|
||||
</textarea></center>
|
||||
</p>
|
||||
{/if}
|
||||
{if $type == 1}
|
||||
{if $smarty.session.firma == "Wagner Markisen"}
|
||||
<label>Lieferdatum:</label><input value='{$rechnung.lieferdatum|default:"Lieferdatum ist gleich Rechnungsdatum"}' id='lieferdatum' maxlength='100' name='lieferdatum' /><br />
|
||||
<label>Lieferdatum:</label><input value='{$rechnung.lieferdatum|default:"Lieferdatum ist gleich Rechnungsdatum"|escape}' id='lieferdatum' maxlength='100' name='lieferdatum' /><br />
|
||||
{else}
|
||||
<label>Lieferdatum:</label><input value='{$rechnung.lieferdatum|default:""}' id='lieferdatum' maxlength='100' name='lieferdatum' /><br />
|
||||
<label>Lieferdatum:</label><input value='{$rechnung.lieferdatum|default:""|escape}' id='lieferdatum' maxlength='100' name='lieferdatum' /><br />
|
||||
{/if}
|
||||
{/if}
|
||||
{if $type == 1}
|
||||
<label>Buchungskonto:</label>
|
||||
<select name='buchKto'>
|
||||
{html_options values=$buchKtoids output=$buchKtos selected="{$rechnung.buchungsKto_id|default:1}"}
|
||||
{html_options values=$buchKtoids output=$buchKtos selected="{$rechnung.buchungsKto_id|default:1|escape}"}
|
||||
</select>
|
||||
{else}
|
||||
<input type='hidden' name='buchKto' value='1'>
|
||||
@@ -264,30 +264,30 @@
|
||||
<button type="button" class='swart' onclick="swart({$artnr|escape});"></button>
|
||||
{/if}
|
||||
{if $type == 3}
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="1angtyp{$artnr}" value="1" {if $art.art.angtyp == 1}checked="checked"{/if} />Normal</label><br />
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="2angtyp{$artnr}" value="2" {if $art.art.angtyp == 2}checked="checked"{/if} />Optional</label><br />
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="3angtyp{$artnr}" value="3" {if $art.art.angtyp == 3}checked="checked"{/if} />Alternativ</label><br />
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="1angtyp{$artnr|escape}" value="1" {if $art.art.angtyp == 1}checked="checked"{/if} />Normal</label><br />
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="2angtyp{$artnr|escape}" value="2" {if $art.art.angtyp == 2}checked="checked"{/if} />Optional</label><br />
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="3angtyp{$artnr|escape}" value="3" {if $art.art.angtyp == 3}checked="checked"{/if} />Alternativ</label><br />
|
||||
{else}
|
||||
<input type="hidden" name="angtyp{$artnr}" id="1angtyp{$artnr}" value="1" />
|
||||
<input type="hidden" name="angtyp{$artnr}" id="2angtyp{$artnr}" value="1" />
|
||||
<input type="hidden" name="angtyp{$artnr}" id="3angtyp{$artnr}" value="1" />
|
||||
<input type="hidden" name="angtyp{$artnr|escape}" id="1angtyp{$artnr|escape}" value="1" />
|
||||
<input type="hidden" name="angtyp{$artnr|escape}" id="2angtyp{$artnr|escape}" value="1" />
|
||||
<input type="hidden" name="angtyp{$artnr|escape}" id="3angtyp{$artnr|escape}" value="1" />
|
||||
{/if}
|
||||
</td>
|
||||
<td>
|
||||
{if $art.art.pagebreak}
|
||||
<button type="button" class='pagebreak' id='pagebreakimg{$artnr}' onclick="togglePageBreak({$artnr});" title='<b>Manueller Seitenumbruch</b><br />Durch klick wird der erzwungene Seitenumbruch an dieser Stelle entfernt.'></button>
|
||||
<input type='hidden' id='pagebreak{$artnr}' name='pagebreak{$artnr}' value='1' />
|
||||
<button type="button" class='pagebreak' id='pagebreakimg{$artnr|escape}' onclick="togglePageBreak({$artnr|escape});" title='<b>Manueller Seitenumbruch</b><br />Durch klick wird der erzwungene Seitenumbruch an dieser Stelle entfernt.'></button>
|
||||
<input type='hidden' id='pagebreak{$artnr|escape}' name='pagebreak{$artnr|escape}' value='1' />
|
||||
{else}
|
||||
<button type="button" class='nopagebreak' id='pagebreakimg{$artnr}' onclick="togglePageBreak({$artnr});" title='<b>Automatischer Seitenumbruch</b><br />Durch klick wird eine neue Seite an dieser Stelle Erzwungen'></button>
|
||||
<input type='hidden' id='pagebreak{$artnr}' name='pagebreak{$artnr}' value='' />
|
||||
<button type="button" class='nopagebreak' id='pagebreakimg{$artnr|escape}' onclick="togglePageBreak({$artnr|escape});" title='<b>Automatischer Seitenumbruch</b><br />Durch klick wird eine neue Seite an dieser Stelle Erzwungen'></button>
|
||||
<input type='hidden' id='pagebreak{$artnr|escape}' name='pagebreak{$artnr|escape}' value='' />
|
||||
{/if}
|
||||
<label class='checktext'><input type="checkbox" class="artcheck" name="artact{$artnr}" id="artact{$artnr}" value="1" checked="checked" onclick="artactivate({$artnr|escape})" title='Ohne Haken wird dieser Artikel nicht angezeigt und nicht gespeichert' />Aktiv</label><br />
|
||||
<label class='artlabel'>Artikeltyp:</label><select class='artselect' name='arttyp{$artnr}' id='arttyp{$artnr}'>
|
||||
{html_options values=$typids output=$typs selected="{$art.art.typ_id}"}
|
||||
<label class='checktext'><input type="checkbox" class="artcheck" name="artact{$artnr|escape}" id="artact{$artnr|escape}" value="1" checked="checked" onclick="artactivate({$artnr|escape})" title='Ohne Haken wird dieser Artikel nicht angezeigt und nicht gespeichert' />Aktiv</label><br />
|
||||
<label class='artlabel'>Artikeltyp:</label><select class='artselect' name='arttyp{$artnr|escape}' id='arttyp{$artnr|escape}'>
|
||||
{html_options values=$typids output=$typs selected="{$art.art.typ_id|escape}"}
|
||||
</select><br />
|
||||
<label class='artlabel'>Artikelbeschreibung:</label><br />
|
||||
<input class='art' value='{$art.art.bezeichn|escape}' id='arthead{$artnr}' maxlength='50' name='arthead{$artnr}' onInput='addArtBlock({$type|escape},{$artnr});' /><br />
|
||||
<div id='arteig{$artnr}'>
|
||||
<input class='art' value='{$art.art.bezeichn|escape}' id='arthead{$artnr|escape}' maxlength='50' name='arthead{$artnr|escape}' onInput='addArtBlock({$type|escape},{$artnr|escape});' /><br />
|
||||
<div id='arteig{$artnr|escape}'>
|
||||
{$eignr = 0}
|
||||
{foreach $art.eig as $eigensch}
|
||||
{$eignr = $eignr+1}
|
||||
@@ -295,12 +295,12 @@
|
||||
<div class="sweig_spacer"></div>
|
||||
{else}
|
||||
<br />
|
||||
<button type="button" class='sweig' onclick="sweig({$artnr},{$eignr});"></button>
|
||||
<button type="button" class='sweig' onclick="sweig({$artnr|escape},{$eignr|escape});"></button>
|
||||
{/if}
|
||||
<input class='arteig' value='{$eigensch.bezeichn|escape}' id='arteig{$artnr}_{$eignr}' maxlength='100' name='arteig{$artnr}_{$eignr}' onChange='addEigBlock({$artnr},{$eignr});' />
|
||||
<input class='artval' value='{$eigensch.wert|escape}' id='artval{$artnr}_{$eignr}' maxlength='50' name='artval{$artnr}_{$eignr}' />
|
||||
<select name='arteinh{$artnr}_{$eignr}' id='arteinh{$artnr}_{$eignr}' class='arteinh'>
|
||||
{html_options values=$einhids output=$einhs selected="{$eigensch.einheit_id}"}
|
||||
<input class='arteig' value='{$eigensch.bezeichn|escape}' id='arteig{$artnr|escape}_{$eignr|escape}' maxlength='100' name='arteig{$artnr|escape}_{$eignr|escape}' onChange='addEigBlock({$artnr|escape},{$eignr|escape});' />
|
||||
<input class='artval' value='{$eigensch.wert|escape}' id='artval{$artnr|escape}_{$eignr|escape}' maxlength='50' name='artval{$artnr|escape}_{$eignr|escape}' />
|
||||
<select name='arteinh{$artnr|escape}_{$eignr|escape}' id='arteinh{$artnr|escape}_{$eignr|escape}' class='arteinh'>
|
||||
{html_options values=$einhids output=$einhs selected="{$eigensch.einheit_id|escape}"}
|
||||
</select>
|
||||
{/foreach}
|
||||
{$eignr = $eignr+1}
|
||||
@@ -308,50 +308,50 @@
|
||||
<div class="sweig_spacer"></div>
|
||||
{else}
|
||||
<br />
|
||||
<button type="button" class='sweig' onclick="sweig({$artnr},{$eignr});"></button>
|
||||
<button type="button" class='sweig' onclick="sweig({$artnr|escape},{$eignr|escape});"></button>
|
||||
{/if}
|
||||
<input class='arteig' value='' id='arteig{$artnr}_{$eignr}' maxlength='100' name='arteig{$artnr}_{$eignr}' onChange='addEigBlock({$artnr},{$eignr});' />
|
||||
<input class='artval' value='' id='artval{$artnr}_{$eignr}' maxlength='50' name='artval{$artnr}_{$eignr}' />
|
||||
<select name='arteinh{$artnr}_{$eignr}' id='arteinh{$artnr}_{$eignr}' class='arteinh'>
|
||||
<input class='arteig' value='' id='arteig{$artnr|escape}_{$eignr|escape}' maxlength='100' name='arteig{$artnr|escape}_{$eignr|escape}' onChange='addEigBlock({$artnr|escape},{$eignr|escape});' />
|
||||
<input class='artval' value='' id='artval{$artnr|escape}_{$eignr|escape}' maxlength='50' name='artval{$artnr|escape}_{$eignr|escape}' />
|
||||
<select name='arteinh{$artnr|escape}_{$eignr|escape}' id='arteinh{$artnr|escape}_{$eignr|escape}' class='arteinh'>
|
||||
{html_options values=$einhids output=$einhs selected="1"}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
<p>
|
||||
<label class='artlabel'>Bestellnummer (WA-Nr.):</label><br />
|
||||
<input class='artwa' value='{$art.art.wanr}' id='artwa{$artnr}' maxlength='50' name='artwa{$artnr}' />
|
||||
<input class='artwa' value='{$art.art.wanr|escape}' id='artwa{$artnr|escape}' maxlength='50' name='artwa{$artnr|escape}' />
|
||||
<label>Mwst:</label>
|
||||
<select name='artmwst{$artnr}' id='artmwst{$artnr}' class='arteinh'>
|
||||
{html_options values=$artmwstids output=$artmwsts selected="{$art.art.mwst_id|default:1}"}
|
||||
<select name='artmwst{$artnr|escape}' id='artmwst{$artnr|escape}' class='arteinh'>
|
||||
{html_options values=$artmwstids output=$artmwsts selected="{$art.art.mwst_id|default:1|escape}"}
|
||||
</select>
|
||||
</p>
|
||||
</td>
|
||||
<td class="pricetd">
|
||||
<label class='artlabel'>Menge:</label><br />
|
||||
<input class='artmen' value='{$art.art.menge|replace:".":","}' id='artmen{$artnr}' maxlength='7' pattern="\d{ldelim}0,3{rdelim}(,\d{ldelim}0,3{rdelim})?" name='artmen{$artnr}' />
|
||||
<select name='artmeneinh{$artnr}' id='artmeneinh{$artnr}' class='artmeneinh'>
|
||||
{html_options values=$einhids output=$einhs selected="{$art.art.einheit_id}"}
|
||||
<input class='artmen' value='{$art.art.menge|replace:".":","|escape}' id='artmen{$artnr|escape}' maxlength='7' pattern="\d{ldelim}0,3{rdelim}(,\d{ldelim}0,3{rdelim})?" name='artmen{$artnr|escape}' />
|
||||
<select name='artmeneinh{$artnr|escape}' id='artmeneinh{$artnr|escape}' class='artmeneinh'>
|
||||
{html_options values=$einhids output=$einhs selected="{$art.art.einheit_id|escape}"}
|
||||
</select><br />
|
||||
<label class='artlabel'>Preis:</label><br />
|
||||
<input class='artpr' value='{$art.art.preis|replace:".":","}' id='artpr{$artnr}' pattern="-?\d+(,\d{ldelim}2{rdelim})?" name='artpr{$artnr}' /><br />
|
||||
<input class='artpr' value='{$art.art.preis|replace:".":","|escape}' id='artpr{$artnr|escape}' pattern="-?\d+(,\d{ldelim}2{rdelim})?" name='artpr{$artnr|escape}' /><br />
|
||||
<label class='artlabel'>Rabatt:</label><br />
|
||||
<input class='artpr' value='{$art.art.rabatt}' id='artrab{$artnr}' maxlength='3' pattern="[0-9]*" name='artrab{$artnr}' /><b>%</b>
|
||||
<label class='checktext'><input type="checkbox" name="artrabtyp{$artnr}" id="artrabtyp{$artnr}" value="1" {if $art.art.rabatttyp} checked='checked'{/if} />Winterrabatt</label>
|
||||
<input class='artpr' value='{$art.art.rabatt|escape}' id='artrab{$artnr|escape}' maxlength='3' pattern="[0-9]*" name='artrab{$artnr|escape}' /><b>%</b>
|
||||
<label class='checktext'><input type="checkbox" name="artrabtyp{$artnr|escape}" id="artrabtyp{$artnr|escape}" value="1" {if $art.art.rabatttyp} checked='checked'{/if} />Winterrabatt</label>
|
||||
<br />
|
||||
</td>
|
||||
</tr>
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#arthead{$artnr}" ).autocomplete({
|
||||
$( "#arthead{$artnr|escape}" ).autocomplete({
|
||||
source: "ajax/auto/art.php",
|
||||
minLength: 2,
|
||||
select: function( event, ui ) {
|
||||
i=0;
|
||||
$("#arthead{$artnr}").val(ui.item.value);
|
||||
$("#artpr{$artnr}").val(ui.item.preis);
|
||||
$("#arttyp{$artnr}").val(ui.item.typ);
|
||||
$("#artmeneinh{$artnr}").val(ui.item.einh);
|
||||
cleareig({$artnr});
|
||||
$("#arthead{$artnr|escape}").val(ui.item.value);
|
||||
$("#artpr{$artnr|escape}").val(ui.item.preis);
|
||||
$("#arttyp{$artnr|escape}").val(ui.item.typ);
|
||||
$("#artmeneinh{$artnr|escape}").val(ui.item.einh);
|
||||
cleareig({$artnr|escape});
|
||||
i=0;
|
||||
if(ui.item.eig)
|
||||
{
|
||||
@@ -359,9 +359,9 @@
|
||||
{
|
||||
i++;
|
||||
addEigBlock(1,i);
|
||||
$("#arteig{$artnr}_"+i).val(value.des);
|
||||
$("#artval{$artnr}_"+i).val(value.val);
|
||||
$("#arteinh{$artnr}_"+i).val(value.einh);
|
||||
$("#arteig{$artnr|escape}_"+i).val(value.des);
|
||||
$("#artval{$artnr|escape}_"+i).val(value.val);
|
||||
$("#arteinh{$artnr|escape}_"+i).val(value.einh);
|
||||
});
|
||||
}
|
||||
return false;
|
||||
@@ -378,71 +378,71 @@
|
||||
<button type="button" class='swart' onclick="swart({$artnr|escape});"></button>
|
||||
{/if}
|
||||
{if $type == 3 || $type == 5}
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="1angtyp{$artnr}" value="1" />Normal</label><br />
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="2angtyp{$artnr}" value="2" />Optional</label><br />
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr}" id="3angtyp{$artnr}" value="3" />Alternativ</label><br />
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="1angtyp{$artnr|escape}" value="1" />Normal</label><br />
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="2angtyp{$artnr|escape}" value="2" />Optional</label><br />
|
||||
<label class='artlabel'><input type="radio" class="artcheck" name="angtyp{$artnr|escape}" id="3angtyp{$artnr|escape}" value="3" />Alternativ</label><br />
|
||||
{else}
|
||||
<input type="hidden" name="angtyp{$artnr}" id="1angtyp{$artnr}" value="1" />
|
||||
<input type="hidden" name="angtyp{$artnr}" id="2angtyp{$artnr}" value="1" />
|
||||
<input type="hidden" name="angtyp{$artnr}" id="3angtyp{$artnr}" value="1" />
|
||||
<input type="hidden" name="angtyp{$artnr|escape}" id="1angtyp{$artnr|escape}" value="1" />
|
||||
<input type="hidden" name="angtyp{$artnr|escape}" id="2angtyp{$artnr|escape}" value="1" />
|
||||
<input type="hidden" name="angtyp{$artnr|escape}" id="3angtyp{$artnr|escape}" value="1" />
|
||||
{/if}
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<button type="button" class='nopagebreak' id='pagebreakimg{$artnr}' onclick="togglePageBreak({$artnr});" title='<b>Automatischer Seitenumbruch</b><br />Durch klick wird eine neue Seite an dieser Stelle Erzwungen'></button>
|
||||
<input type='hidden' id='pagebreak{$artnr}' name='pagebreak{$artnr}' value='' />
|
||||
<button type="button" class='nopagebreak' id='pagebreakimg{$artnr|escape}' onclick="togglePageBreak({$artnr|escape});" title='<b>Automatischer Seitenumbruch</b><br />Durch klick wird eine neue Seite an dieser Stelle Erzwungen'></button>
|
||||
<input type='hidden' id='pagebreak{$artnr|escape}' name='pagebreak{$artnr|escape}' value='' />
|
||||
|
||||
<label class='checktext'><input type="checkbox" class="artcheck" name="artact{$artnr}" id="artact{$artnr}" value="1" checked="checked" onclick="artactivate({$artnr|escape})" title='Ohne Haken wird dieser Artikel nicht angezeigt und nicht gespeichert' />Aktiv</label><br />
|
||||
<label class='artlabel'>Artikeltyp:</label><select class='artselect' name='arttyp{$artnr}' id='arttyp{$artnr}'>
|
||||
<label class='checktext'><input type="checkbox" class="artcheck" name="artact{$artnr|escape}" id="artact{$artnr|escape}" value="1" checked="checked" onclick="artactivate({$artnr|escape})" title='Ohne Haken wird dieser Artikel nicht angezeigt und nicht gespeichert' />Aktiv</label><br />
|
||||
<label class='artlabel'>Artikeltyp:</label><select class='artselect' name='arttyp{$artnr|escape}' id='arttyp{$artnr|escape}'>
|
||||
{html_options values=$typids output=$typs selected="1"}
|
||||
</select><br />
|
||||
<label class='artlabel'>Artikelbeschreibung:</label><br />
|
||||
<input class='art' value='' id='arthead{$artnr}' maxlength='50' name='arthead{$artnr}' onInput='addArtBlock({$type|escape},{$artnr});' /><br />
|
||||
<div id='arteig{$artnr}'>
|
||||
<input class='art' value='' id='arthead{$artnr|escape}' maxlength='50' name='arthead{$artnr|escape}' onInput='addArtBlock({$type|escape},{$artnr|escape});' /><br />
|
||||
<div id='arteig{$artnr|escape}'>
|
||||
{$eignr = 1}
|
||||
<div class="sweig_spacer"></div>
|
||||
<input class='arteig' value='' id='arteig{$artnr}_{$eignr}' maxlength='100' name='arteig{$artnr}_{$eignr}' onChange='addEigBlock({$artnr},{$eignr});' />
|
||||
<input class='artval' value='' id='artval{$artnr}_{$eignr}' maxlength='50' name='artval{$artnr}_{$eignr}' />
|
||||
<select name='arteinh{$artnr}_{$eignr}' id='arteinh{$artnr}_{$eignr}' class='arteinh'>
|
||||
<input class='arteig' value='' id='arteig{$artnr|escape}_{$eignr|escape}' maxlength='100' name='arteig{$artnr|escape}_{$eignr|escape}' onChange='addEigBlock({$artnr|escape},{$eignr|escape});' />
|
||||
<input class='artval' value='' id='artval{$artnr|escape}_{$eignr|escape}' maxlength='50' name='artval{$artnr|escape}_{$eignr|escape}' />
|
||||
<select name='arteinh{$artnr|escape}_{$eignr|escape}' id='arteinh{$artnr|escape}_{$eignr|escape}' class='arteinh'>
|
||||
{html_options values=$einhids output=$einhs selected="1"}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
<p>
|
||||
<label class='artlabel'>Bestellnummer (WA-Nr.):</label><br />
|
||||
<input class='artwa' value='' id='artwa{$artnr}' maxlength='50' name='artwa{$artnr}' />
|
||||
<input class='artwa' value='' id='artwa{$artnr|escape}' maxlength='50' name='artwa{$artnr|escape}' />
|
||||
<label>Mwst:</label>
|
||||
<select name='artmwst{$artnr}' id='artmwst{$artnr}' class='arteinh'>
|
||||
{html_options values=$artmwstids output=$artmwsts selected="{$art.art.mwst_id|default:1}"}
|
||||
<select name='artmwst{$artnr|escape}' id='artmwst{$artnr|escape}' class='arteinh'>
|
||||
{html_options values=$artmwstids output=$artmwsts selected="{$art.art.mwst_id|default:1|escape}"}
|
||||
</select>
|
||||
</p>
|
||||
</td>
|
||||
<td class="pricetd">
|
||||
<label class='artlabel'>Menge:</label><br />
|
||||
<input class='artmen' value='' id='artmen{$artnr}' maxlength='7' pattern="\d{ldelim}0,3{rdelim}+(,\d{ldelim}0,3{rdelim})?" name='artmen{$artnr}' />
|
||||
<select name='artmeneinh{$artnr}' id='artmeneinh{$artnr}' class='artmeneinh'>
|
||||
<input class='artmen' value='' id='artmen{$artnr|escape}' maxlength='7' pattern="\d{ldelim}0,3{rdelim}+(,\d{ldelim}0,3{rdelim})?" name='artmen{$artnr|escape}' />
|
||||
<select name='artmeneinh{$artnr|escape}' id='artmeneinh{$artnr|escape}' class='artmeneinh'>
|
||||
{html_options values=$einhids output=$einhs selected="5"}
|
||||
</select><br />
|
||||
<label class='artlabel'>Preis:</label><br />
|
||||
<input class='artpr' value='' id='artpr{$artnr}' pattern="-?\d+(,\d{ldelim}2{rdelim})?" name='artpr{$artnr}' /><br />
|
||||
<input class='artpr' value='' id='artpr{$artnr|escape}' pattern="-?\d+(,\d{ldelim}2{rdelim})?" name='artpr{$artnr|escape}' /><br />
|
||||
<label class='artlabel'>Rabatt:</label><br />
|
||||
<input class='artpr' value='' id='artrab{$artnr}' maxlength='3' pattern="[0-9]*" name='artrab{$artnr}' /><b>%</b>
|
||||
<label class='checktext'><input type="checkbox" name="artrabtyp{$artnr}" id="artrabtyp{$artnr}" value="1" />Winterrabatt</label>
|
||||
<input class='artpr' value='' id='artrab{$artnr|escape}' maxlength='3' pattern="[0-9]*" name='artrab{$artnr|escape}' /><b>%</b>
|
||||
<label class='checktext'><input type="checkbox" name="artrabtyp{$artnr|escape}" id="artrabtyp{$artnr|escape}" value="1" />Winterrabatt</label>
|
||||
<br />
|
||||
</td>
|
||||
</tr>
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#arthead{$artnr}" ).autocomplete({
|
||||
$( "#arthead{$artnr|escape}" ).autocomplete({
|
||||
source: "ajax/auto/art.php",
|
||||
minLength: 2,
|
||||
select: function( event, ui ) {
|
||||
i=0;
|
||||
$("#arthead{$artnr}").val(ui.item.value);
|
||||
$("#artpr{$artnr}").val(ui.item.preis);
|
||||
$("#arttyp{$artnr}").val(ui.item.typ);
|
||||
$("#artmeneinh{$artnr}").val(ui.item.einh);
|
||||
cleareig({$artnr});
|
||||
$("#arthead{$artnr|escape}").val(ui.item.value);
|
||||
$("#artpr{$artnr|escape}").val(ui.item.preis);
|
||||
$("#arttyp{$artnr|escape}").val(ui.item.typ);
|
||||
$("#artmeneinh{$artnr|escape}").val(ui.item.einh);
|
||||
cleareig({$artnr|escape});
|
||||
i=0;
|
||||
if(ui.item.eig)
|
||||
{
|
||||
@@ -450,9 +450,9 @@
|
||||
{
|
||||
i++;
|
||||
addEigBlock(1,i);
|
||||
$("#arteig{$artnr}_"+i).val(value.des);
|
||||
$("#artval{$artnr}_"+i).val(value.val);
|
||||
$("#arteinh{$artnr}_"+i).val(value.einh);
|
||||
$("#arteig{$artnr|escape}_"+i).val(value.des);
|
||||
$("#artval{$artnr|escape}_"+i).val(value.val);
|
||||
$("#arteinh{$artnr|escape}_"+i).val(value.einh);
|
||||
});
|
||||
}
|
||||
return false;
|
||||
@@ -470,11 +470,11 @@
|
||||
<fieldset class='nolim'>
|
||||
<legend>Rechnungsabschluss:</legend>
|
||||
<label class='artlabel'>Abschlusstext:</label><br />
|
||||
<textarea class='bigtextarea' name='outro' id='outro' >{$rechnung.outro}</textarea>
|
||||
<textarea class='bigtextarea' name='outro' id='outro' >{$rechnung.outro|escape}</textarea>
|
||||
{if $kommission}
|
||||
<p>
|
||||
<label>Kommission: </label> {$kommission.vname} {$kommission.nname} {$kommission.str} {$kommission.hnr}, {$kommission.plz} {$kommission.ort}
|
||||
<input type='hidden' name='kommission' id='kommission' value='{$kommission.id}' />
|
||||
<label>Kommission: </label> {$kommission.vname|escape} {$kommission.nname|escape} {$kommission.str|escape} {$kommission.hnr|escape}, {$kommission.plz|escape} {$kommission.ort|escape}
|
||||
<input type='hidden' name='kommission' id='kommission' value='{$kommission.id|escape}' />
|
||||
</p>
|
||||
{/if}
|
||||
<br />
|
||||
@@ -503,7 +503,7 @@
|
||||
|
||||
{if $draft && $loaddraft == 0}
|
||||
<script>
|
||||
askdraft("Sie haben {if $typename == "Angebot"}das{else if $typename == "Brief"}den{else}die{/if} zuletzt bearbeitete {$typename} nicht gespeichert.<br />{$draftname} ({$draftstr})<br />Möchten Sie daran nun weiter Arbeiten? Falls nein werden diese Daten gelöscht.",{$draft},{$type},{$draftadressid});
|
||||
askdraft("Sie haben {if $typename == "Angebot"}das{else if $typename == "Brief"}den{else}die{/if} zuletzt bearbeitete {$typename|escape} nicht gespeichert.<br />{$draftname|escape} ({$draftstr|escape})<br />Möchten Sie daran nun weiter Arbeiten? Falls nein werden diese Daten gelöscht.",{$draft|escape},{$type|escape},{$draftadressid|escape});
|
||||
</script>
|
||||
{else}
|
||||
<script>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
{/if}
|
||||
<h2>Termin für Kunde Nummer:</h2>
|
||||
<span class='big'>{$kunde.partner_id}</span><br />
|
||||
{$kunde.vname} {$kunde.nname} {$kunde.firma}<br />{$kunde.str} {$kunde.hnr}<br />{$kunde.plz} {$kunde.ort}
|
||||
{$kunde.vname|escape} {$kunde.nname|escape} {$kunde.firma|escape}<br />{$kunde.str|escape} {$kunde.hnr|escape}<br />{$kunde.plz|escape} {$kunde.ort|escape}
|
||||
{/if}
|
||||
{if $user}
|
||||
{$termin.user = $user}
|
||||
@@ -45,10 +45,10 @@
|
||||
</select><br />
|
||||
{/if}
|
||||
<label>Beschreibung:</label>
|
||||
<input name='head' id='head' maxlength='100' value='{$termin.head}' />
|
||||
<input name='head' id='head' maxlength='100' value='{$termin.head|escape}' />
|
||||
<br />
|
||||
<label kundeclass='artlabel'>Notizen:</label>
|
||||
<textarea class='bigtextarea' id='text' name='text'>{$termin.text}</textarea><p>
|
||||
<textarea class='bigtextarea' id='text' name='text'>{$termin.text|escape}</textarea><p>
|
||||
<label class='checktext'><input type="checkbox" id='done' name="done" value="1" {if $termin.done == 1}checked="checked"{/if} />Termin ist erledigt</label>
|
||||
</p>
|
||||
<br />
|
||||
|
||||
+15
-15
@@ -50,9 +50,9 @@
|
||||
{foreach $weekday.fulldaytermine as $key=>$termin}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: 1em;height: {$height}em;top: {$start}em;left: {$shift + $dayXpos}em;background-color: {$users.{$termin.user}.color};'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname} {$termin.usernname}</b><br /> Ganztags<br />{if {$termin.ort}}<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />{/if}{if {$termin.vname} || {$termin.nname} || {$termin.firma}}Bei {$termin.vname} {$termin.nname} {$termin.firma}{/if}'>
|
||||
<span class='rotate' style='padding-top: {$shift}em;'>{$termin.typ|substr:0:3}.</span>
|
||||
style='width: 1em;height: {$height}em;top: {$start}em;left: {$shift + $dayXpos}em;background-color: {$users.{$termin.user}.color|escape};'
|
||||
title='{$termin.typ|escape}<br />{$termin.head|escape} - <b>{$termin.uservname|escape} {$termin.usernname|escape}</b><br /> Ganztags<br />{if {$termin.ort}}<b>In {$termin.ort|escape}{if $termin.ortsteil}-{$termin.ortsteil|escape}{/if}</b><br />{/if}{if {$termin.vname} || {$termin.nname} || {$termin.firma}}Bei {$termin.vname|escape} {$termin.nname|escape} {$termin.firma|escape}{/if}'>
|
||||
<span class='rotate' style='padding-top: {$shift}em;'>{$termin.typ|substr:0:3|escape}.</span>
|
||||
</div>
|
||||
</a>
|
||||
{$shift = $shift+1.1}
|
||||
@@ -107,19 +107,19 @@
|
||||
|
||||
{if {$termin.typ} != 'Arbeitsleistung'}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width-0.3}em;height: {$height}em;top: {$start}em;left: {$dayXpos+ 0.1 + $shift}em;background-color: {$users.{$termin.user}.color}'
|
||||
style='width: {$width-0.3}em;height: {$height}em;top: {$start}em;left: {$dayXpos+ 0.1 + $shift}em;background-color: {$users.{$termin.user}.color|escape}'
|
||||
title='
|
||||
{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname} {$termin.usernname}</b><br />
|
||||
{$termin.typ|escape}<br />{$termin.head|escape} - <b>{$termin.uservname|escape} {$termin.usernname|escape}</b><br />
|
||||
Um {$termin.termtime|date_format:'%k:%M'}Uhr<br />Dauer {if {$termin.termdauer|date_format:'%k'} > 0} {$termin.termdauer|date_format:'%k'}h{/if}
|
||||
{if {$termin.termdauer|date_format:'%M'} > 0}{$termin.termdauer|date_format:'%M'}min{/if}<br />
|
||||
<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />
|
||||
Bei {$termin.vname} {$termin.nname} {$termin.firma}'>
|
||||
<b>In {$termin.ort|escape}{if $termin.ortsteil}-{$termin.ortsteil|escape}{/if}</b><br />
|
||||
Bei {$termin.vname|escape} {$termin.nname|escape} {$termin.firma|escape}'>
|
||||
{else}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width-0.3}em;height: {$height}em;top: {$start}em;left: {$dayXpos+ 0.1 + $shift}em;background-color: {if $termin.done}#CFC{else}{$users.{$termin.user}.color}{/if};'
|
||||
title='{$termin.typ} - {$termin.firma} {$termin.vname} {$termin.nname}<br /> <b>{$termin.projectname}</b> <br /> {$termin.head}<br /> <b>Dauer: </b>{$termin.termdauer|string_format:"%.1f"}h'>
|
||||
style='width: {$width-0.3}em;height: {$height}em;top: {$start}em;left: {$dayXpos+ 0.1 + $shift}em;background-color: {if $termin.done}#CFC{else}{$users.{$termin.user}.color|escape}{/if};'
|
||||
title='{$termin.typ|escape} - {$termin.firma|escape} {$termin.vname|escape} {$termin.nname|escape}<br /> <b>{$termin.projectname|escape}</b> <br /> {$termin.head|escape}<br /> <b>Dauer: </b>{$termin.termdauer|string_format:"%.1f"}h'>
|
||||
{/if}
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3|escape}.</span>
|
||||
</div>
|
||||
</a>
|
||||
{/foreach}
|
||||
@@ -133,9 +133,9 @@
|
||||
{$width = 9}
|
||||
{$start = $ma_nr + 0.5}
|
||||
<div class='mabox'
|
||||
style='width: {$width}em;height: {$height}em;top: {$start}em;left: {$dayXpos+ 0.5}em;background-color: {$mitarb.color};'
|
||||
title='{$mitarb.vname} {$mitarb.nname} - Anwesend {if {$mitarb.complete} == 0} aber noch nicht ausgestempelt{/if}<br />'>
|
||||
{if {$mitarb.complete} == 0}<font color='#aa0000'>{else}<font color='#000000'>{/if}{$mitarb.vname} {$mitarb.nname|substr:0:1}.</font>
|
||||
style='width: {$width}em;height: {$height}em;top: {$start}em;left: {$dayXpos+ 0.5}em;background-color: {$mitarb.color|escape};'
|
||||
title='{$mitarb.vname|escape} {$mitarb.nname|escape} - Anwesend {if {$mitarb.complete} == 0} aber noch nicht ausgestempelt{/if}<br />'>
|
||||
{if {$mitarb.complete} == 0}<font color='#aa0000'>{else}<font color='#000000'>{/if}{$mitarb.vname|escape} {$mitarb.nname|substr:0:1|escape}.</font>
|
||||
</div>
|
||||
</a>
|
||||
{/foreach}
|
||||
@@ -169,9 +169,9 @@
|
||||
</div>
|
||||
{foreach $users as $user}
|
||||
{if $user.openvacation < 0}
|
||||
<a href='?action=terminadd&user={$user.id}' style="color: #000;" title='Urlaub eintragen'><span class='legendcolbox' style='background-color: {$user.color}'>{$user.vname} {$user.nname} <font color='#cc0000'><b>({$user.openvacation})</b></font></span></a>
|
||||
<a href='?action=terminadd&user={$user.id}' style="color: #000;" title='Urlaub eintragen'><span class='legendcolbox' style='background-color: {$user.color|escape}'>{$user.vname|escape} {$user.nname|escape} <font color='#cc0000'><b>({$user.openvacation|escape})</b></font></span></a>
|
||||
{else}
|
||||
<a href='?action=terminadd&user={$user.id}' style="color: #000;" title='Urlaub eintragen'><span class='legendcolbox' style='background-color: {$user.color}'>{$user.vname} {$user.nname} <b>({$user.openvacation})</b></span></a>
|
||||
<a href='?action=terminadd&user={$user.id}' style="color: #000;" title='Urlaub eintragen'><span class='legendcolbox' style='background-color: {$user.color|escape}'>{$user.vname|escape} {$user.nname|escape} <b>({$user.openvacation|escape})</b></span></a>
|
||||
{/if}
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
@@ -1,276 +0,0 @@
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<br />
|
||||
<div id='monthview'>
|
||||
<a href='?action=termin&show=list'><span class='cal-list' title="Terminliste anzeigen" style='position: absolute; left: 50%;top: -11em;'></span></a><br />
|
||||
<a href='?action=termin&show=month&page={$page-1}'><span class='left' title="6 Monate zurück" style='position: absolute; left: 0;top: -8em;'></span></a>
|
||||
<a href='?action=termin&show=month&page=0'><span class='now' title="heute" style='position: absolute; left: 50%;top: -8em;'></span></a>
|
||||
<a href='?action=termin&show=month&page={$page+1}'><span class='right' title="6 Monate Tage vor" style='position: absolute; right: 0;top: -8em;'></span></a>
|
||||
{if $page == 0}
|
||||
{*<a href='?action=terminadd&date=0' title='Neuer Termin'>*}<div class='nowweekdaybg'></div>{*</a>*}
|
||||
{else}
|
||||
<div class='weekdaybg' style='left: 14em;'>
|
||||
</div>
|
||||
{/if}
|
||||
{foreach $weekdays as $weekday}
|
||||
{$lastarbtermend = 0}
|
||||
{if $i == 1 && $page == 0}
|
||||
<div class='nowweekdayhead' style='left: {10*$i+3.5}em;'>{$weekday.weekday}
|
||||
<a href='?action=terminshow&id=1&date={$weekday.date}&type=singlepages'><span class='print' title="Alle Termine von heute drucken" style='position:absolute;top: 0em;right:0em;'></span></a>
|
||||
</div>
|
||||
{else if {$weekday.weekday|substr:0:7} != "Samstag" && {$weekday.weekday|substr:0:7} != "Sonntag"}
|
||||
<div class='weekdayhead' style='left: {10*$i+3.5}em;'>{$weekday.weekday}<br />
|
||||
<a href='?action=terminshow&id=1&date={$weekday.date}&type=singlepages'><span class='print' title="Alle Termine an diesem Tag drucken" style='position:absolute;top: 0em;right:0em;'></span></a>
|
||||
</div>
|
||||
{*<a href='?action=terminadd&date={$i-1}' title='Neuer Termin'>*}<div class='weekdaybg' style='left: {10*$i+4}em;'></div>{*</a>*}
|
||||
{else}
|
||||
<div class='weekdayhead' style='left: {10*$i+3.5}em;background-color: #FFDDDD;'>{$weekday.weekday}<br />
|
||||
<a href='?action=terminshow&id=1&date={$weekday.date}&type=singlepages'><span class='print' title="Alle Termine an diesem Tag drucken" style='position:absolute;top: 0em;right:0em;'></span></a>
|
||||
</div>
|
||||
{*<a href='?action=terminadd&date={$i-1}' title='Neuer Termin'>*}<div class='weekdaybg' style='left: {10*$i+4}em;background-color: #FFFFFF;'></div>{*</a>*}
|
||||
{/if}
|
||||
<div class='weekday_line' style='left: {10*$i+3.5}em;'></div>
|
||||
|
||||
{$shift = 0}
|
||||
{$prevtermin= ""}
|
||||
{$absmaxshift.{$weekday.weekday} = 1}
|
||||
{$absmaxshiftone.{$weekday.weekday} = 0}
|
||||
{$shiftone = 0}
|
||||
{foreach $weekday.termine as $key=>$termin}
|
||||
|
||||
{if {$termin.termdauer} == "24:00:00"}
|
||||
{$termin.termdauer = "23:59:59"}
|
||||
{/if}
|
||||
{if {$prevtermin.termtime|date_format:"%H%M"} <= {$termin.termtime|date_format:"%H%M"} && {{$prevtermin.termtime|date_format:"%H%M"}+{$prevtermin.termdauer|date_format:"%H%M"}} > {$termin.termtime|date_format:"%H%M"}} {*starttime of next term is within the prev term*}
|
||||
{if {$prevtermin.termdauer} == "23:59:59"}
|
||||
{$shiftone = $shiftone+1}
|
||||
{else}
|
||||
{$shift = $shift+1}
|
||||
{/if}
|
||||
{/if}
|
||||
{if $termin.termdauer == "23:59:59"}
|
||||
{if $termin.user2 > 0}
|
||||
{$shiftone = $shiftone+1}
|
||||
{/if}
|
||||
{if $termin.user3 > 0}
|
||||
{$shiftone = $shiftone+1}
|
||||
{/if}
|
||||
{if $termin.user4 > 0}
|
||||
{$shiftone = $shiftone+1}
|
||||
{/if}
|
||||
{else}
|
||||
{if $termin.user2 > 0}
|
||||
{$shift = $shift+1}
|
||||
{/if}
|
||||
{if $termin.user3 > 0}
|
||||
{$shift = $shift+1}
|
||||
{/if}
|
||||
{if $termin.user4 > 0}
|
||||
{$shift = $shift+1}
|
||||
{/if}
|
||||
{/if}
|
||||
{$weekday.termine.{$key}.shift = $shift}
|
||||
{$weekday.termine.{$key}.shiftone = $shiftone}
|
||||
|
||||
{if $shift+1 > $absmaxshift.{$weekday.weekday}}
|
||||
{$absmaxshift.{$weekday.weekday} = $shift+1}
|
||||
{/if}
|
||||
{if $shiftone > $absmaxshiftone.{$weekday.weekday}}
|
||||
{$absmaxshiftone.{$weekday.weekday} = $shiftone}
|
||||
{/if}
|
||||
{$prevtermin = $termin}
|
||||
{/foreach}
|
||||
|
||||
{$width = ((18 / $absmaxshift.{$weekday.weekday})-$absmaxshiftone.{$weekday.weekday})}
|
||||
{foreach $weekday.termine as $key=>$termin}
|
||||
|
||||
{$shift = 10*$i + 3.9 + ($width/2)*$termin.shift + $termin.shiftone}
|
||||
{if {$termin.termdauer} == '24:00:00'}
|
||||
{$terminlength = 960}
|
||||
{$terminstart = 390}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: 1em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname} {$termin.usernname}</b><br /> Ganztags<br />{if {$termin.ort}}<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />{/if}{if {$termin.vname} || {$termin.nname} || {$termin.firma}}Bei {$termin.vname} {$termin.nname} {$termin.firma}{/if}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{else}
|
||||
{$terminlength = ({$termin.termdauer|date_format:"%H"}*60 + {$termin.termdauer|date_format:"%M"})}
|
||||
{$terminstart = ({$termin.termtime|date_format:"%H"}*60 + {$termin.termtime|date_format:"%M"})}
|
||||
{if {$terminstart} == 0}
|
||||
<a href='?action=projectadd&id={$termin.projectid}'>
|
||||
{$terminlength = {$termin.termdauer}*60}
|
||||
{$terminstart = 450+$lastarbtermend}
|
||||
{$lastarbtermend = $terminstart-450 + $termin.termdauer * 60}
|
||||
{$termin.typ = 'Arbeitsleistung'}
|
||||
{else}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
{/if}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
{if {$termin.typ} != 'Arbeitsleistung'}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width}em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user}.color}'
|
||||
title='
|
||||
{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname} {$termin.usernname}</b><br />
|
||||
Um {$termin.termtime|date_format:'%k:%M'}Uhr<br />Dauer {if {$termin.termdauer|date_format:'%k'} > 0} {$termin.termdauer|date_format:'%k'}h{/if}
|
||||
{if {$termin.termdauer|date_format:'%M'} > 0}{$termin.termdauer|date_format:'%M'}min{/if}<br />
|
||||
<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />
|
||||
Bei {$termin.vname} {$termin.nname} {$termin.firma}'>
|
||||
{else}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width/3}em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {if $termin.done}#CFC{else}{$users.{$termin.user}.color}{/if}'
|
||||
title='
|
||||
{$termin.typ} -
|
||||
{$termin.firma} {$termin.vname} {$termin.nname}<br />
|
||||
<b>{$termin.projectname}</b> <br />
|
||||
{$termin.head}<br />
|
||||
<b>Dauer: </b>{if {$termin.termdauer} > 1} {$termin.termdauer|string_format:"%.1f"}h{/if}<br />
|
||||
{/if}
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{/if}
|
||||
</a>
|
||||
{if $termin.user2}
|
||||
{$shift = 10*$i + 3.9 + ($width)*($termin.shift-1) + $termin.shiftone}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
{if {$termin.termdauer} == '24:00:00'}
|
||||
{$terminlength = 960}
|
||||
{$terminstart = 390}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: 1em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user2}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname2} {$termin.usernname2}</b><br /> Ganztags<br />{if {$termin.ort}}<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />{/if}{if {$termin.vname} || {$termin.nname} || {$termin.firma}}Bei {$termin.vname} {$termin.nname} {$termin.firma}{/if}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{else}
|
||||
{$terminlength = ({$termin.termdauer|date_format:"%H"}*60 + {$termin.termdauer|date_format:"%M"})}
|
||||
{$terminstart = ({$termin.termtime|date_format:"%H"}*60 + {$termin.termtime|date_format:"%M"})}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width}em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user2}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname2} {$termin.usernname2}</b><br /> Um {$termin.termtime|date_format:'%k:%M'}Uhr<br />Dauer {if {$termin.termdauer|date_format:'%k'} > 0} {$termin.termdauer|date_format:'%k'}h{/if} {if {$termin.termdauer|date_format:'%M'} > 0}{$termin.termdauer|date_format:'%M'}min{/if}<br /> <b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />Bei {$termin.vname} {$termin.nname} {$termin.firma}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{/if}
|
||||
</a>
|
||||
{/if}
|
||||
{if $termin.user3}
|
||||
{$shift = 10*$i + 3.9 + ($width)*($termin.shift-2) + $termin.shiftone}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
{if {$termin.termdauer} == '24:00:00'}
|
||||
{$terminlength = 960}
|
||||
{$terminstart = 390}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: 1em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user3}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname3} {$termin.usernname3}</b><br /> Ganztags<br />{if {$termin.ort}}<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />{/if}{if {$termin.vname} || {$termin.nname} || {$termin.firma}}Bei {$termin.vname} {$termin.nname} {$termin.firma}{/if}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{else}
|
||||
{$terminlength = ({$termin.termdauer|date_format:"%H"}*60 + {$termin.termdauer|date_format:"%M"})}
|
||||
{$terminstart = ({$termin.termtime|date_format:"%H"}*60 + {$termin.termtime|date_format:"%M"})}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width}em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user3}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname3} {$termin.usernname3}</b><br /> Um {$termin.termtime|date_format:'%k:%M'}Uhr<br />Dauer {if {$termin.termdauer|date_format:'%k'} > 0} {$termin.termdauer|date_format:'%k'}h{/if} {if {$termin.termdauer|date_format:'%M'} > 0}{$termin.termdauer|date_format:'%M'}min{/if}<br /> <b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />Bei {$termin.vname} {$termin.nname} {$termin.firma}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{/if}
|
||||
</a>
|
||||
{/if}
|
||||
{if $termin.user4}
|
||||
{$shift = 10*$i + 3.9 + ($width)*($termin.shift-3) + $termin.shiftone}
|
||||
<a href='?action=terminshow&id={$termin.main_id}'>
|
||||
{if {$termin.termdauer} == '24:00:00'}
|
||||
{$terminlength = 960}
|
||||
{$terminstart = 390}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: 1em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user4}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname4} {$termin.usernname4}</b><br /> Ganztags<br />{if {$termin.ort}}<b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />{/if}{if {$termin.vname} || {$termin.nname} || {$termin.firma}}Bei {$termin.vname} {$termin.nname} {$termin.firma}{/if}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{else}
|
||||
{$terminlength = ({$termin.termdauer|date_format:"%H"}*60 + {$termin.termdauer|date_format:"%M"})}
|
||||
{$terminstart = ({$termin.termtime|date_format:"%H"}*60 + {$termin.termtime|date_format:"%M"})}
|
||||
{$height = ($terminlength/15)}
|
||||
{$start = 4 + ($terminstart - 420)/15}
|
||||
<div class='{if $termin.done == 1}doneterminbox{else}terminbox{/if}'
|
||||
style='width: {$width}em;height: {$height}em;top: {$start}em;left: {$shift}em;background-color: {$users.{$termin.user4}.color}'
|
||||
title='{$termin.typ}<br />{$termin.head} - <b>{$termin.uservname4} {$termin.usernname4}</b><br /> Um {$termin.termtime|date_format:'%k:%M'}Uhr<br />Dauer {if {$termin.termdauer|date_format:'%k'} > 0} {$termin.termdauer|date_format:'%k'}h{/if} {if {$termin.termdauer|date_format:'%M'} > 0}{$termin.termdauer|date_format:'%M'}min{/if}<br /> <b>In {$termin.ort}{if $termin.ortsteil}-{$termin.ortsteil}{/if}</b><br />Bei {$termin.vname} {$termin.nname} {$termin.firma}'>
|
||||
<span class='rotate'>{$termin.typ|substr:0:3}.</span>
|
||||
</div>
|
||||
{/if}
|
||||
</a>
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
{$i=$i+1}
|
||||
{/foreach}
|
||||
|
||||
{$i = 0}
|
||||
{while $i < 16}
|
||||
{$i = $i+1}
|
||||
<div class='hourline_desc' style='top: {$i*4-0.5}em'>{{$i+6}|str_pad:2:'0':0}:00</div>
|
||||
<div class='hourline' style='top: {$i*4}em'></div>
|
||||
{/while}
|
||||
{$time = {$smarty.now|date_format:"%H"}*60 + {$smarty.now|date_format:"%M"}}
|
||||
<div id='timeline' style='top: {4 + ($time - 420)/15}em'></div>
|
||||
|
||||
{if $page == 0}
|
||||
{for $i = 1 to 7}
|
||||
<div class='weatherinfo' style="left: {3+10*$i}em;background-image: url('{$weather.{$i}.icon}');">
|
||||
{$weather.{$i}.low}°C - {$weather.{$i}.high}°C
|
||||
</div>
|
||||
{/for}
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<br />
|
||||
|
||||
{foreach $users as $user}
|
||||
<a href='?action=terminadd&user={$user.id}' style="color: #000;" title='Urlaub eintragen'><span class='legendcolbox' style='background-color: {$user.color}'>{$user.vname} {$user.nname}</span></a>
|
||||
{/foreach}
|
||||
<br />
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
$(".terminbox").tooltip({
|
||||
track: true,
|
||||
delay: 0,
|
||||
showURL: false,
|
||||
showBody: " - ",
|
||||
|
||||
});
|
||||
$(".doneterminbox").tooltip({
|
||||
track: true,
|
||||
delay: 0,
|
||||
showURL: false,
|
||||
showBody: " - ",
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -3,8 +3,8 @@
|
||||
<fieldset class="big">
|
||||
<legend>Neue Adresse:</legend>
|
||||
<div class='centersrc'>
|
||||
{html_options name=adrsrc_field onChange="ajax_searchadress({$rechid},'changeadr',0)" id=adrsrc_field options=$felder selected=$selfeld class='searchform' title='Bitte wählen Sie die Spalte, die durchsucht werden soll.' onchange='#'}
|
||||
<input name='adrsrc_src' id='adrsrc_src' value='' class='searchform' onKeyUp="ajax_searchadress({$rechid},'changeadr',0)" title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
{html_options name=adrsrc_field onChange="ajax_searchadress(0,{$rechid|intval},'changeadr')" id=adrsrc_field options=$felder selected=$selfeld class='searchform' title='Bitte wählen Sie die Spalte, die durchsucht werden soll.' onchange='#'}
|
||||
<input name='adrsrc_src' id='adrsrc_src' value='' class='searchform' onKeyUp="ajax_searchadress(0,{$rechid|intval},'changeadr')" title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
<br />
|
||||
</div>
|
||||
|
||||
@@ -14,4 +14,4 @@
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
<script language='javascript'>ajax_searchadress({$rechid},'changeadr',0);</script>
|
||||
<script language='javascript'>ajax_searchadress(0,{$rechid|intval},'changeadr');</script>
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
<fieldset class="big">
|
||||
<legend>Neue Adresse:</legend>
|
||||
<div class='centersrc'>
|
||||
{html_options name=adrsrc_field onChange='ajax_searchadress({$rechid},\'copy\',0)' id=adrsrc_field options=$felder selected=$selfeld class='searchform' title='Bitte wählen Sie die Spalte, die durchsucht werden soll.' onchange='#'}
|
||||
<input name='adrsrc_src' id='adrsrc_src' value='' class='searchform' onKeyUp='ajax_searchadress({$rechid},'copy',0)' title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
{html_options name=adrsrc_field onChange="ajax_searchadress(0,{$rechid|intval},'copy')" id=adrsrc_field options=$felder selected=$selfeld class='searchform' title='Bitte wählen Sie die Spalte, die durchsucht werden soll.' onchange='#'}
|
||||
<input name='adrsrc_src' id='adrsrc_src' value='' class='searchform' onKeyUp="ajax_searchadress(0,{$rechid|intval},'copy')" title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
<br />
|
||||
</div>
|
||||
|
||||
@@ -14,4 +14,4 @@
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
<script language='javascript'>ajax_searchadress({$rechid},'copy',0);</script>
|
||||
<script language='javascript'>ajax_searchadress(0,{$rechid|intval},'copy');</script>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<a href='?action=kundenadd'><span class='addcenter' title="Neuer Kunde"></span></a><br />
|
||||
<div class='centersrc'>
|
||||
{html_options name=kdnsrc_field onChange='ajax_searchkunden(0)' id=kdnsrc_field options=$felder selected=$selfeld class='searchform' title='Bitte wählen Sie die Spalte, die durchsucht werden soll.' onchange='#'}
|
||||
<input name='kdnsrc_src' id='kdnsrc_src' value='{$search}' class='searchform' onKeyUp='ajax_searchkunden(0)' autofocus='autofocus' title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
<input name='kdnsrc_src' id='kdnsrc_src' value='{$search|escape}' class='searchform' onKeyUp='ajax_searchkunden(0)' autofocus='autofocus' title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
<br />
|
||||
</div>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
<script language='javascript'>ajax_searchkunden({$page});</script>
|
||||
<script language='javascript'>ajax_searchkunden({$page|intval});</script>
|
||||
|
||||
<div id="question">
|
||||
</div>
|
||||
+13
-10
@@ -42,9 +42,9 @@
|
||||
{/if}
|
||||
{if $adresse.gebdat != "01.01.2100" && $adresse.gebdat != "00.00.0000"}
|
||||
{if $adresse.gebdat|substr:6:4 != "2099"}
|
||||
(Geburtstag: {$adresse.gebdat})<br />
|
||||
(Geburtstag: {$adresse.gebdat|escape})<br />
|
||||
{else}
|
||||
(Geburtstag: {$adresse.gebdat|substr:0:5})<br />
|
||||
(Geburtstag: {$adresse.gebdat|escape|substr:0:5})<br />
|
||||
{/if}
|
||||
{/if}
|
||||
{/if}
|
||||
@@ -56,9 +56,9 @@
|
||||
{/if}
|
||||
{if $adresse.gebdat2 != "01.01.2100" && $adresse.gebdat2 != "00.00.0000"}
|
||||
{if $adresse.gebdat2|substr:6:4 != "2099"}
|
||||
(Geburtstag: {$adresse.gebdat2})<br />
|
||||
(Geburtstag: {$adresse.gebdat2|escape})<br />
|
||||
{else}
|
||||
(Geburtstag: {$adresse.gebdat2|substr:0:5})<br />
|
||||
(Geburtstag: {$adresse.gebdat2|escape|substr:0:5})<br />
|
||||
{/if}
|
||||
{/if}
|
||||
{/if}
|
||||
@@ -71,6 +71,9 @@
|
||||
{$adresse.plz|escape|default:""} {$adresse.ort|escape|default:""} {$adresse.ortsteil|escape|default:""}<br />
|
||||
|
||||
<span>{$adresse.land|escape|default:""}</span>
|
||||
{if $adresse.nr}
|
||||
Telefon: {if $adresse.vwahl}{$adresse.vwahl|escape} / {/if}{$adresse.nr|escape}<br />
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -78,7 +81,7 @@
|
||||
{if $adresse.typ_id != 1}
|
||||
<span class='del' title="Adresse löschen" onClick='askdel("Möchten Sie diese Adresse<br /><b>UND ALLE ZUGEHÖRIGEN RECHNUNGEN</b><br />wirklich unwiederruflich löschen?","?action=kundenchange&do=adress&adressid={$adresse.id}&del=1")'></span>
|
||||
{/if}
|
||||
<a href="http://maps.google.com?q={$adresse.plz}+{$adresse.ort}+{$adresse.str}+{$adresse.hnr}" class="noloading" target="_blank"><span class='map' title="Auf Karte zeigen"></span></a>
|
||||
<a href="http://maps.google.com?q={$adresse.plz|escape:'url'}+{$adresse.ort|escape:'url'}+{$adresse.str|escape:'url'}+{$adresse.hnr|escape:'url'}" rel="noopener" class="noloading" target="_blank"><span class='map' title="Auf Karte zeigen"></span></a>
|
||||
<a href='?action=terminadd&adressid={$adresse.id}'><span class='termadd' title="Termin anlegen"></span></a><br />
|
||||
|
||||
<a href='?action=rechnungadd&type=1&adressid={$adresse.id}'><span class='rechnadd' title="Rechnung anlegen"></span></a>
|
||||
@@ -177,13 +180,13 @@
|
||||
{/if}
|
||||
{$i=$i+1}
|
||||
{strip}
|
||||
<fieldset class='note' style="background-color: {$note.color|default:'#fff'};">
|
||||
<fieldset class='note' style="background-color: {$note.color|default:'#fff'|escape};">
|
||||
<legend>{$note.datetime|date_format:"%a, %d.%m.%Y <br /> %R Uhr"}</legend>
|
||||
{$note.notiz|nl2br|default:""}<br />
|
||||
{$note.notiz|default:""|escape|nl2br}<br />
|
||||
<p>
|
||||
{if $note.id}
|
||||
{if $note.file}
|
||||
<a href='{$note.file}' target="_Blank" class='noloading'><span class='file' title="Angehängte Datei anzeigen"></span></a>
|
||||
<a href='{$note.file|escape}' target="_Blank" class='noloading'><span class='file' title="Angehängte Datei anzeigen"></span></a>
|
||||
{/if}
|
||||
<a href='?action=kundenchange&do=notiz¬izid={$note.id}'><span class='edit' title="Notiz ändern"></span></a>
|
||||
<span class='del' id='del' title="Notiz löschen" onClick='askdel("Möchten Sie diese Notiz wirklich unwiederruflich löschen?","?action=kundenchange&do=notiz¬izid={$note.id}&del=1")'></span>
|
||||
@@ -211,7 +214,7 @@
|
||||
{$i=$i+1}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$kto.bank} <br />{$kto.blz|chunk_split:3:" "}</legend>
|
||||
<legend>{$kto.bank|escape} <br />{$kto.blz|escape|chunk_split:3:" "}</legend>
|
||||
Konto Nr.: {$kto.ktonr|escape|chunk_split:3:" "}<br />
|
||||
Inhaber: {$kto.inhaber|escape}<br />
|
||||
{if $kto.iban}
|
||||
@@ -234,7 +237,7 @@
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
{foreach $rechtypen as $rechtyp}
|
||||
<li><a href="#tabs-{$rechtyp.id}" class='noloading' onClick='ajax_searchkdnrech(0,0,{$rechtyp.id},{$kunde.id})'>{$rechtyp.typ}</a></li>
|
||||
<li><a href="#tabs-{$rechtyp.id}" class='noloading' onClick='ajax_searchkdnrech(0,0,{$rechtyp.id},{$kunde.id})'>{$rechtyp.typ|escape}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{foreach $rechtypen as $rechtyp}
|
||||
|
||||
@@ -43,13 +43,16 @@
|
||||
{$adresse.plz|escape|default:""} {$adresse.ort|escape|default:""} {$adresse.ortsteil|escape|default:""}<br />
|
||||
|
||||
<span>{$adresse.land|escape|default:""}</span>
|
||||
{if $adresse.nr}
|
||||
Telefon: {if $adresse.vwahl}{$adresse.vwahl|escape} / {/if}{$adresse.nr|escape}<br />
|
||||
{/if}
|
||||
</p>
|
||||
<p>
|
||||
<a href='?action=lieferchange&do=adress&adressid={$adresse.id}&kunde={$kunde.id}'><span class='edit' title="Adresse ändern"></span></a>
|
||||
{if $adresse.typ_id != 1}
|
||||
<span class='del' id='del' title="Adresse löschen" onClick='askdel("Möchten Sie diese Adresse wirklich unwiederruflich löschen?","?action=lieferchange&do=adress&adressid={$adresse.id}&del=1")'></span>
|
||||
{/if}
|
||||
<a href="http://maps.google.com?q={$adresse.plz}+{$adresse.ort}+{$adresse.str}+{$adresse.hnr}" class="noloading" target="_blank"><span class='map' title="Auf Karte zeigen"></span></a>
|
||||
<a href="http://maps.google.com?q={$adresse.plz|escape:'url'}+{$adresse.ort|escape:'url'}+{$adresse.str|escape:'url'}+{$adresse.hnr|escape:'url'}" rel="noopener" class="noloading" target="_blank"><span class='map' title="Auf Karte zeigen"></span></a>
|
||||
</p>
|
||||
</fieldset>
|
||||
{/strip}
|
||||
@@ -116,7 +119,7 @@
|
||||
<a href='?action=lieferchange&kunde={$kunde.id}&do=notiz'><span class='add' title="Neue Notiz"></span></a>
|
||||
{foreach $notes as $note}
|
||||
{strip}
|
||||
<fieldset class='note' style="background-color: {$note.color|default:'#fff'};">
|
||||
<fieldset class='note' style="background-color: {$note.color|default:'#fff'|escape};">
|
||||
<legend>{$note.datetime|date_format:"%a, %d.%m.%Y <br /> %R Uhr"}</legend>
|
||||
{$note.notiz|escape|default:""}<br />
|
||||
<p>
|
||||
@@ -134,7 +137,7 @@
|
||||
{foreach $kontos as $kto}
|
||||
{strip}
|
||||
<fieldset class='small'>
|
||||
<legend>{$kto.bank} <br />{$kto.blz|chunk_split:3:" "}</legend>
|
||||
<legend>{$kto.bank|escape} <br />{$kto.blz|escape|chunk_split:3:" "}</legend>
|
||||
Konto Nr.: {$kto.ktonr|escape|chunk_split:3:" "}<br />
|
||||
Inhaber: {$kto.inhaber|escape}<br />
|
||||
{if $kto.iban}
|
||||
@@ -158,14 +161,14 @@
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
{foreach $rechtypen as $rechtyp}
|
||||
<li><a href="#tabs-{$rechtyp.id}" class='noloading' onClick='ajax_searchkdnrech(0,{$rechtyp.id},{$kunde.id})'>{$rechtyp.typ}</a></li>
|
||||
<li><a href="#tabs-{$rechtyp.id}" class='noloading' onClick='ajax_searchkdnrech(0,0,{$rechtyp.id},{$kunde.id})'>{$rechtyp.typ|escape}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{foreach $rechtypen as $rechtyp}
|
||||
<div id="tabs-{$rechtyp.id}">
|
||||
<div class='centersrc'>
|
||||
|
||||
<input name='kdnsrc_src' id='src_rech-{$rechtyp.id}' value='' class='searchform' onKeyUp='ajax_searchkdnrech(0,{$rechtyp.id},{$kunde.id})' title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
<input name='kdnsrc_src' id='src_rech-{$rechtyp.id}' value='' class='searchform' onKeyUp='ajax_searchkdnrech(0,0,{$rechtyp.id},{$kunde.id})' title='Geben Sie hier das Suchmuster ein <br />% ist ein Platzhalter für eine beliebige Anzahl Zeichen<br />_ ist der Platzhalter für ein einziges Zeichen.' />
|
||||
<br />
|
||||
</div>
|
||||
<div id='rechlist-{$rechtyp.id}'>
|
||||
@@ -181,7 +184,7 @@
|
||||
$(function() {
|
||||
$( "#tabs" ).tabs();
|
||||
});
|
||||
ajax_searchkdnrech(0,1,{$kunde.id});
|
||||
ajax_searchkdnrech(0,0,1,{$kunde.id});
|
||||
</script>
|
||||
|
||||
<div id="question">
|
||||
|
||||
+29
-29
@@ -15,11 +15,11 @@
|
||||
{elseif $type == 5}
|
||||
{$typename="Brief"}
|
||||
{/if}
|
||||
<h2>{$typename} {$headstr}:</h2>
|
||||
<form action="?action=rechnungadd&mailformsent=1&mail=1&id={$smarty.get.id}" name="mainform" id='rechnform' method='POST'>
|
||||
<h2>{$typename|escape} {$headstr|escape}:</h2>
|
||||
<form action="?action=rechnungadd&mailformsent=1&mail=1&id={$smarty.get.id|intval}" name="mainform" id='rechnform' method='POST'>
|
||||
<fieldset class='nolim'>
|
||||
|
||||
<legend>{$typename} an <a href="?action=kundenshow&id={$adresse.partner_id}">Kunde {$adresse.partner_id}</a></legend>
|
||||
<legend>{$typename|escape} an <a href="?action=kundenshow&id={$adresse.partner_id|escape}">Kunde {$adresse.partner_id|escape}</a></legend>
|
||||
|
||||
<p>
|
||||
<br />
|
||||
@@ -28,9 +28,9 @@
|
||||
{html_options values=$mails output=$mails}
|
||||
</select><br />
|
||||
<label>Betreff:</label>
|
||||
<input value='{$smarty.session.firma}: anbei das von Ihnen gewünschte Dokument' id='sub' maxlength='150' name='sub' /><br />
|
||||
<input value='{$smarty.session.firma|escape}: anbei das von Ihnen gewünschte Dokument' id='sub' maxlength='150' name='sub' /><br />
|
||||
<label>Anrede:</label>
|
||||
{if $anrs.{$adresse.anrede_id} == "Herrn" || $anrs.{$adresse.anrede_id} == "Herr"}
|
||||
{if $anrs.{$adresse.anrede_id} == "Herrn" || $anrs.{$adresse.anrede_id|escape} == "Herr"}
|
||||
{strip}
|
||||
<input value='
|
||||
{if $rechnung.anr1}
|
||||
@@ -38,16 +38,16 @@
|
||||
{else}
|
||||
Sehr geehrter Herr{" "}
|
||||
{if $adresse.titel_id > 1}
|
||||
{$titels.{$adresse.titel_id}}{" "}
|
||||
{$titels.{$adresse.titel_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname}
|
||||
{$adresse.vname}{" "}
|
||||
{$adresse.vname|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname},
|
||||
{$adresse.nname|escape},
|
||||
{/if}
|
||||
' id='anr1' maxlength='150' name='anr1' /><br />
|
||||
{/strip}
|
||||
{elseif $anrs.{$adresse.anrede2_id} == "Herrn" || $anrs.{$adresse.anrede_id} == "Herr"}
|
||||
{elseif $anrs.{$adresse.anrede2_id} == "Herrn" || $anrs.{$adresse.anrede_id|escape} == "Herr"}
|
||||
{strip}
|
||||
<input value='
|
||||
{if $rechnung.anr1}
|
||||
@@ -55,12 +55,12 @@
|
||||
{else}
|
||||
Sehr geehrter Herr{" "}
|
||||
{if $adresse.titel2_id > 1}
|
||||
{$titels.{$adresse.titel2_id}}{" "}
|
||||
{$titels.{$adresse.titel2_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname2}
|
||||
{$adresse.vname2}{" "}
|
||||
{$adresse.vname2|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname2},
|
||||
{$adresse.nname2|escape},
|
||||
{/if}
|
||||
' id='anr1' maxlength='150' name='anr1' /><br />
|
||||
{/strip}
|
||||
@@ -72,12 +72,12 @@
|
||||
{else}
|
||||
Sehr geehrte Frau{" "}
|
||||
{if $adresse.titel_id > 1}
|
||||
{$titels.{$adresse.titel_id}}{" "}
|
||||
{$titels.{$adresse.titel_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname}
|
||||
{$adresse.vname}{" "}
|
||||
{$adresse.vname|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname},
|
||||
{$adresse.nname|escape},
|
||||
{/if}
|
||||
' id='anr1' maxlength='150' name='anr1' /><br />
|
||||
{/strip}
|
||||
@@ -89,12 +89,12 @@
|
||||
{else}
|
||||
Sehr geehrte Frau{" "}
|
||||
{if $adresse.titel2_id > 1}
|
||||
{$titels.{$adresse.titel2_id}}{" "}
|
||||
{$titels.{$adresse.titel2_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname2}
|
||||
{$adresse.vname2}{" "}
|
||||
{$adresse.vname2|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname2},
|
||||
{$adresse.nname2|escape},
|
||||
{/if}
|
||||
' id='anr1' maxlength='150' name='anr1' /><br />
|
||||
{/strip}
|
||||
@@ -103,7 +103,7 @@
|
||||
{/if}
|
||||
|
||||
<label>Zweite Anrede:</label>
|
||||
{if $anrs.{$adresse.anrede_id} == "Frau" && $anrs.{$adresse.anrede2_id} == "Herr" && $anrs.{$adresse.anrede2_id} == "Herrn"}
|
||||
{if $anrs.{$adresse.anrede_id} == "Frau" && $anrs.{$adresse.anrede2_id|escape} == "Herr" && $anrs.{$adresse.anrede2_id|escape} == "Herrn"}
|
||||
{strip}
|
||||
<input value='
|
||||
{if $rechnung.anr2}
|
||||
@@ -111,12 +111,12 @@
|
||||
{else}
|
||||
Sehr geehrte Frau{" "}
|
||||
{if $adresse.titel_id > 1}
|
||||
{$titels.{$adresse.titel_id}}{" "}
|
||||
{$titels.{$adresse.titel_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname}
|
||||
{$adresse.vname}{" "}
|
||||
{$adresse.vname|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname},
|
||||
{$adresse.nname|escape},
|
||||
{/if}
|
||||
' id='anr2' maxlength='150' name='anr2' /><br />
|
||||
{/strip}
|
||||
@@ -128,12 +128,12 @@
|
||||
{else}
|
||||
Sehr geehrte Frau{" "}
|
||||
{if $adresse.titel2_id > 1}
|
||||
{$titels.{$adresse.titel2_id}}{" "}
|
||||
{$titels.{$adresse.titel2_id}|escape}{" "}
|
||||
{/if}
|
||||
{if $adresse.vname2}
|
||||
{$adresse.vname2}{" "}
|
||||
{$adresse.vname2|escape}{" "}
|
||||
{/if}
|
||||
{$adresse.nname2},
|
||||
{$adresse.nname2|escape},
|
||||
{/if}
|
||||
' id='anr2' maxlength='150' name='anr2' /><br />
|
||||
{/strip}
|
||||
@@ -142,11 +142,11 @@
|
||||
{/if}
|
||||
<label class='artlabel'>E-Mail Text:</label><br />
|
||||
<center><textarea name='intro' id='intro' {if $type == 5}class='tinymce'{else}class='bigtextarea'{/if}>
|
||||
Anbei senden wir Ihnen {if $typename == "Angebot"}das{elseif $typename == "Brief"}den{else}die{/if} geforderte{if $typename == "Brief"}n{/if} {$typename}.
|
||||
Anbei senden wir Ihnen {if $typename == "Angebot"}das{elseif $typename == "Brief"}den{else}die{/if} geforderte{if $typename == "Brief"}n{/if} {$typename|escape}.
|
||||
|
||||
Mit freundlichen Grüßen
|
||||
{$smarty.session.vname} {$smarty.session.nname}
|
||||
{$smarty.session.firma}
|
||||
{$smarty.session.vname|escape} {$smarty.session.nname|escape}
|
||||
{$smarty.session.firma|escape}
|
||||
|
||||
---
|
||||
Das Dokument ist als PDF-Datei im Anhang hinterlegt.
|
||||
@@ -169,7 +169,7 @@ http://www.adobe.de/products/acrobat/readstep2.html
|
||||
<br />
|
||||
<h2>Anhang:</h2>
|
||||
<div id="pdfpreview">
|
||||
<iframe src='{$pdffile}' width='100%' height='600px'></iframe>
|
||||
<iframe src='{$pdffile|escape}' width='100%' height='600px'></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{include file="heading.tpl" heading=$head}
|
||||
|
||||
<div class="widthlimiter">
|
||||
<form action="?action={$frmact}&do=adress&kunde={$kunde|escape}&formsent=1&adressid={$adressid}" name="mainform" method='POST'>
|
||||
<form action="?action={$frmact}&do=adress&kunde={$kunde|escape}&formsent=1&adressid={$adressid|intval}" name="mainform" method='POST'>
|
||||
|
||||
<fieldset>
|
||||
<label>Adresstyp:</label><select name="typ" id="typ" >
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{include file="heading.tpl" heading=$head}
|
||||
|
||||
<div class="widthlimiter">
|
||||
<form action="?action={$frmact}&do=kontakt&kunde={$kunde|escape}&formsent=1&kontaktid={$kontaktid}" method='POST'>
|
||||
<form action="?action={$frmact}&do=kontakt&kunde={$kunde|escape}&formsent=1&kontaktid={$kontaktid|intval}" method='POST'>
|
||||
<fieldset>
|
||||
<label>Typ:</label><select name="typ" id="typ" >
|
||||
{html_options values=$typids output=$typs selected="{$typ}"}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{include file="heading.tpl" heading=$head}
|
||||
|
||||
<div class="widthlimiter">
|
||||
<form action="?action={$frmact}&do=konto&kunde={$kunde|escape}&formsent=1&kontoid={$kontoid}" method='POST'>
|
||||
<form action="?action={$frmact}&do=konto&kunde={$kunde|escape}&formsent=1&kontoid={$kontoid|intval}" method='POST'>
|
||||
<fieldset>
|
||||
|
||||
<label>Bank:</label><input name='bank' id='bank' value="{$bank|escape}" pattern="[^0-9]*" /><br />
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
{include file="heading.tpl" heading=$head}
|
||||
|
||||
<div class="widthlimiter">
|
||||
<form action="?action={$frmact}&do=notiz&kunde={$kunde|escape}&formsent=1¬izid={$notizid}" method='POST' enctype="multipart/form-data">
|
||||
<form action="?action={$frmact}&do=notiz&kunde={$kunde|escape}&formsent=1¬izid={$notizid|intval}" method='POST' enctype="multipart/form-data">
|
||||
|
||||
|
||||
<fieldset class='colorchooser'>
|
||||
<legend>Farbe:</legend>
|
||||
{html_radios name='color' options=$colors selected={$color|default:'#fff'} separator=' ' escape=0 labels=1}
|
||||
{html_radios name='color' options=$colors selected={$color|default:'#fff'|escape} separator=' ' escape=0 labels=1}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Notiz:</legend>
|
||||
<textarea name='notiz' id='notiz' class='bigtextarea'>{$notiz}</textarea><br />
|
||||
<textarea name='notiz' id='notiz' class='bigtextarea'>{$notiz|escape}</textarea><br />
|
||||
<label>Dateianhang zu dieser Notiz: </label><input type="file" id='notefile' name='notefile' /><br />
|
||||
<button type="button" class='spell' onclick="$('textarea:not(#personalnotes,#globalnotes),input:not([type=radio])').spellCheckInDialog()">Rechtschreibung prüfen</button><br />
|
||||
</fieldset>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{include file="heading.tpl" heading=$head}
|
||||
|
||||
<div class="widthlimiter">
|
||||
<form action="?action={$frmact}&do=tel&kunde={$kunde|escape}&formsent=1&telid={$telid}" method='POST'>
|
||||
<form action="?action={$frmact}&do=tel&kunde={$kunde|escape}&formsent=1&telid={$telid|intval}" method='POST'>
|
||||
<fieldset>
|
||||
<label>Typ:</label><select name="typ" id="typ" >
|
||||
{html_options values=$typids output=$typs selected="{$typ}"}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{include file="heading.tpl" heading="Dokumentanzeige"}
|
||||
<h2><div class='fifty'>Original:</div><div class='fifty'>Kopie:</div></h2>
|
||||
<iframe style='display: block; float: left; margin: 1em;' src='{$pdffile}' width='45%' height='600px'></iframe>
|
||||
<iframe style='display: block; float: left; margin: 1em;' src='{$pdffile|escape}' width='45%' height='600px'></iframe>
|
||||
{if $pdffile2}
|
||||
<iframe style='display: block; float: left; margin: 1em;' src='{$pdffile2}' width='45%' height='600px'></iframe>
|
||||
<iframe style='display: block; float: left; margin: 1em;' src='{$pdffile2|escape}' width='45%' height='600px'></iframe>
|
||||
{/if}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{include file="heading.tpl" heading="Terminanzeige"}
|
||||
<h2><div class='fifty'>Ohne Anfahrt:</div><div class='fifty'>Mit Anfahrt:</div></h2>
|
||||
<iframe src='{$pdffile}' width='40%' height='600px'></iframe>
|
||||
<iframe src='{$pdffile2}' width='40%' height='600px'></iframe>
|
||||
<iframe src='{$pdffile|escape}' width='40%' height='600px'></iframe>
|
||||
<iframe src='{$pdffile2|escape}' width='40%' height='600px'></iframe>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<a href='?action=termin'><span class='cal' title="Terminkalender anzeigen" style='margin-left: 50%;'></span></a><br />
|
||||
<a href='?action=termin'><span class='cal' title="Terminkalender anzeigen" style='margin-left: 50%;'></span></a><br />
|
||||
<div id="tabs">
|
||||
{* ANZEIGE PANE *}
|
||||
<div class='widthlimiter'>
|
||||
|
||||
+16
-16
@@ -1,55 +1,55 @@
|
||||
{include file="heading.tpl" heading="Umschlag bedrucken"}
|
||||
|
||||
<div class="fifty">
|
||||
<form action="?action=rechnungadd&formsent=1&id={$loadrech}" name="mainform" id='rechnform' method='POST'>
|
||||
<form action="?action=rechnungadd&formsent=1&id={$loadrech|escape}" name="mainform" id='rechnform' method='POST'>
|
||||
<fieldset class='nolim'>
|
||||
<legend>{$typename} an <a href="?action=kundenshow&id={$adresse.partner_id}">Kunde {$adresse.partner_id}</a></legend>
|
||||
<legend>{$typename|escape} an <a href="?action=kundenshow&id={$adresse.partner_id|escape}">Kunde {$adresse.partner_id|escape}</a></legend>
|
||||
{if $adresse.firma}
|
||||
<label class='checktext'><input type="checkbox" name="show_firmaanr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMAANR:1 || $rechnung.adressfields==0}checked="checked"{/if} />Firma</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_firma" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMA:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.firma}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_firma" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_FIRMA:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.firma|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.anrede_id > 1}
|
||||
<label class='checktext'><input type="checkbox" name="show_anr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede_id}}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_anr" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede_id}|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.titel_id > 1}
|
||||
<label class='checktext'><input type="checkbox" name="show_titel" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel_id}}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_titel" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel_id}|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.vname || $adresse.nname}
|
||||
<label class='checktext'><input type="checkbox" name="show_name" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname} {$adresse.nname}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_name" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME1:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname|escape} {$adresse.nname|escape}</label>
|
||||
{/if}
|
||||
<br />
|
||||
{if $adresse.anrede2_id > 1}
|
||||
<label class='checktext'><input type="checkbox" name="show_anr2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede2_id}}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_anr2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ANR2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$anrs.{$adresse.anrede2_id}|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.titel2_id > 1}
|
||||
<label class='checktext'><input type="checkbox" name="show_titel2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel2_id}}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_titel2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_TITEL2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$titels.{$adresse.titel2_id}|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.vname2 || $adresse.nname2}
|
||||
<label class='checktext'><input type="checkbox" name="show_name2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname2} {$adresse.nname2}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_name2" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_NAME2:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.vname2|escape} {$adresse.nname2|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.str}
|
||||
<label class='checktext'><input type="checkbox" name="show_str" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_STR:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.str} {$adresse.hnr}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_str" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_STR:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.str|escape} {$adresse.hnr|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.plz || $adresse.ort}
|
||||
<label class='checktext'><input type="checkbox" name="show_ort" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ORT:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.plz} {$adresse.ort}
|
||||
<label class='checktext'><input type="checkbox" name="show_ort" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ORT:1 || $rechnung.adressfields==0}checked="checked"{/if} />{$adresse.plz|escape} {$adresse.ort|escape}
|
||||
{/if}
|
||||
{if $adresse.ortsteil}
|
||||
- {$adresse.ortsteil}
|
||||
- {$adresse.ortsteil|escape}
|
||||
{/if}
|
||||
{if $adresse.plz || $adresse.ort}
|
||||
</label>
|
||||
{/if}
|
||||
{if $adresse.land}
|
||||
<label class='checktext'><input type="checkbox" name="show_land" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_LAND:1}checked="checked"{/if} />{$adresse.land}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_land" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_LAND:1}checked="checked"{/if} />{$adresse.land|escape}</label>
|
||||
{/if}
|
||||
{if $adresse.zusatz}
|
||||
<label class='checktext'><input type="checkbox" name="show_zusatz" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ZUSATZ:1}checked="checked"{/if} />{$adresse.zusatz|truncate:60:"...":false}</label>
|
||||
<label class='checktext'><input type="checkbox" name="show_zusatz" value="1" {if $rechnung.adressfields|substr:$smarty.const.ADRFIELD_ZUSATZ:1}checked="checked"{/if} />{$adresse.zusatz|truncate:60:"...":false|escape}</label>
|
||||
{/if}
|
||||
<br />
|
||||
<label class='artlabel'>Adresserweiterung: </label>
|
||||
<input class='art' name="adresserweiterung" value="{$rechnung.adresserweiterung}" />
|
||||
<input class='art' name="adresserweiterung" value="{$rechnung.adresserweiterung|escape}" />
|
||||
<br />
|
||||
<input name="adressid" type="hidden" value="{$adresse.adressid}" />
|
||||
<input name="adressid" type="hidden" value="{$adresse.adressid|escape}" />
|
||||
<button type="button" class='preview' onclick="ajax_loadUmschlagpreview();">Vorschau aktualisieren</button><br />
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user