Geschaeftskonto module restored (basic variant)

This commit is contained in:
OpenXE 2023-03-13 14:22:39 +01:00
parent 3f135f6852
commit 73dbbb061a
2 changed files with 621 additions and 113 deletions

View File

@ -18,37 +18,58 @@
<legend>{|Einstellungen|}</legend> <legend>{|Einstellungen|}</legend>
<table width="100%"> <table width="100%">
<tr> <tr>
<td width="150">{|Bezeichnung|}:</td> <td width="150">
<td><input type="text" name="bezeichnung" id="bezeichnung" size="40" rule="notempty" {|Bezeichnung|}:
msg="Pflichfeld!" tabindex="2" value="[BEZEICHNUNG]"></td> </td>
<td>
<input type="text" name="bezeichnung" id="bezeichnung" size="40" rule="notempty" msg="Pflichfeld!" tabindex="2" value="[BEZEICHNUNG]" required>
</td>
</tr> </tr>
<tr> <tr>
<td>{|Typ|}:</td>
<td> <td>
{|Typ|}:
</td>
<td>
<!--
<select name="type" id="type"> <select name="type" id="type">
[TYPE] [TYPE]
</select> </select>
-->
<input type="text" name="type" id="type" size="40" value="konto" required readonly>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>{|Projekt|}:</td> <td>
<td><input type="text" size="30" name="projekt" id="projekt" value="[PROJEKT]"></td> {|Projekt|}:
</td>
<td>
<input type="text" size="30" name="projekt" id="projekt" value="[PROJEKT]">
</td>
</tr> </tr>
<tr> <tr>
<td>{|Aktiv|}:</td> <td>
<td><input type="checkbox" name="aktiv" id="aktiv" value="1" {|Aktiv|}:
[AKTIV]><i>{|Aktiv. Nicht mehr verwendete Konten k&ouml;nnen deaktiviert werden.|}</i> </td>
<td>
<input type="checkbox" name="aktiv" id="aktiv" value="1"
[AKTIV]><i>{|Aktiv. Nicht mehr verwendete Konten k&ouml;nnen deaktiviert werden.|}</i>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>{|Keine E-Mail|}:</td> <td>
<td><input type="checkbox" name="keineemail" id="keineemail" value="1" {|Keine E-Mail|}:
[KEINEEMAIL]><i>{|Normalerweise wird beim Zahlungseingang eine Mail an den Kunden gesendet. Soll dies unterdr&uuml;ckt werden muss diese Option gesetzt werden.|}</i> </td>
<td>
<input type="checkbox" name="keineemail" id="keineemail" value="1"
[KEINEEMAIL]><i>{|Normalerweise wird beim Zahlungseingang eine Mail an den Kunden gesendet. Soll dies unterdr&uuml;ckt werden muss diese Option gesetzt werden.|}</i>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>{|&Auml;nderungen erlauben|}:</td> <td>
<td><input type="checkbox" name="schreibbar" id="schreibbar" value="1" {|&Auml;nderungen erlauben|}:
</td>
<td>
<input type="checkbox" name="schreibbar" id="schreibbar" value="1"
[SCHREIBBAR]><i>&nbsp;{|Es d&uuml;rfen nachtr&auml;glich Kontobuchungen ver&auml;ndert werden|}</i> [SCHREIBBAR]><i>&nbsp;{|Es d&uuml;rfen nachtr&auml;glich Kontobuchungen ver&auml;ndert werden|}</i>
</td> </td>
</tr> </tr>
@ -66,38 +87,71 @@
<legend>{|Bankverbindung (bei Typ Bank)|}</legend> <legend>{|Bankverbindung (bei Typ Bank)|}</legend>
<table width="100%"> <table width="100%">
<tr> <tr>
<td width="150">{|Inhaber|}:</td> <td width="150">{|Inhaber|}:
<td><input type="text" name="inhaber" id="inhaber" size="40" value="[INHABER]"></td> </td>
<td> <td>
<input type="text" name="inhaber" id="inhaber" size="40" value="[INHABER]">
</td>
<td>
</tr> </tr>
<tr> <tr>
<td>{|BIC|}:</td>
<td><input type="text" name="swift" id="swift" size="40" value="[SWIFT]"></td>
<td> <td>
{|BIC|}:
</td>
<td>
<input type="text" name="swift" id="swift" size="40" value="[SWIFT]">
</td>
<td>
</tr> </tr>
<tr> <tr>
<td>{|IBAN|}:</td>
<td><input type="text" name="iban" id="iban" size="40" value="[IBAN]"></td>
<td> <td>
{|IBAN|}:
</td>
<td>
<input type="text" name="iban" id="iban" size="40" value="[IBAN]">
</td>
<td>
</tr> </tr>
<tr> <tr>
<td>{|BLZ|}:</td>
<td><input type="text" name="blz" id="blz" size="40" value="[BLZ]"></td>
<td> <td>
{|BLZ|}:
</td>
<td>
<input type="text" name="blz" id="blz" size="40" value="[BLZ]">
</td>
<td>
</tr> </tr>
<tr> <tr>
<td>{|Konto|}:</td>
<td><input type="text" name="konto" id="konto" size="40" value="[KONTO]"></td>
<td> <td>
{|Konto|}:
</td>
<td>
<input type="text" name="konto" id="konto" size="40" value="[KONTO]">
</td>
<td>
</tr> </tr>
<tr> <tr>
<td>{|Gl&auml;ubiger ID|}:</td>
<td><input type="text" name="glaeubiger" id="glaeubiger" size="40" value="[GLAEUBIGER]"></td>
<td> <td>
{|Gl&auml;ubiger ID|}:
</td>
<td>
<input type="text" name="glaeubiger" id="glaeubiger" size="40" value="[GLAEUBIGER]">
</td>
<td>
</tr> </tr>
<tr> <tr>
<td>{|Lastschrift|}:</td> <td>
<td><input type="checkbox" name="lastschrift" id="lastschrift" value="1" [LASTSCHRIFT]></td> {|Lastschrift|}:
</td>
<td>
<input type="checkbox" name="lastschrift" id="lastschrift" value="1" [LASTSCHRIFT]>
</td>
</tr> </tr>
</table> </table>
</fieldset> </fieldset>
@ -113,9 +167,13 @@
<legend>{|DATEV|}</legend> <legend>{|DATEV|}</legend>
<table width="100%"> <table width="100%">
<tr> <tr>
<td width="150">{|Konto|}:</td> <td width="150">{|Konto|}:
<td><input type="text" name="datevkonto" id="datevkonto" size="40" value="[DATEVKONTO]"></td> </td>
<td> <td>
<input type="text" name="datevkonto" id="datevkonto" size="40" value="[DATEVKONTO]">
</td>
<td>
</tr> </tr>
</table> </table>
</fieldset> </fieldset>
@ -123,6 +181,7 @@
</div> </div>
</div> </div>
</div> </div>
<!--
<div class="row"> <div class="row">
<div class="row-height"> <div class="row-height">
<div class="col-xs-12 col-md-12 col-md-height"> <div class="col-xs-12 col-md-12 col-md-height">
@ -131,46 +190,68 @@
<legend>{|CSV-Import|}</legend> <legend>{|CSV-Import|}</legend>
<table width="100%"> <table width="100%">
<tr> <tr>
<td width="150">{|Erste Datenzeile|}:</td> <td width="150">{|Erste Datenzeile|}:
<td><input type="text" name="importerstezeilenummer" id="importerstezeilenummer" size="15" </td>
value="[IMPORTERSTEZEILENUMMER]">&nbsp;
<i>{|Zeilennummer in der echte Daten stehen (Erste Zeile: 1)|}</i></td>
</tr>
<tr>
<td width="150">{|Kodierung|}:</td>
<td><select name="codierung" id="codierung">[CODIERUNG]</select></td>
</tr>
<tr>
<td width="150">{|Trennzeichen|}:</td>
<td><select name="importtrennzeichen" id="importtrennzeichen">[IMPORTTRENNZEICHEN]</select></td>
</tr>
<tr>
<td width="150">{|Maskierung|}:</td>
<td> <td>
<input type="text" name="importerstezeilenummer" id="importerstezeilenummer" size="15"
value="[IMPORTERSTEZEILENUMMER]">&nbsp;
<i>{|Zeilennummer in der echte Daten stehen (Erste Zeile: 1)|}</i>
</td>
</tr>
<tr>
<td width="150">{|Kodierung|}:
</td>
<td>
<select name="codierung" id="codierung">[CODIERUNG]</select>
</td>
</tr>
<tr>
<td width="150">{|Trennzeichen|}:
</td>
<td>
<select name="importtrennzeichen" id="importtrennzeichen">[IMPORTTRENNZEICHEN]</select>
</td>
</tr>
<tr>
<td width="150">{|Maskierung|}:
</td>
<td>
<select name="importdatenmaskierung" id="importdatenmaskierung"> <select name="importdatenmaskierung" id="importdatenmaskierung">
[IMPORTDATENMASKIERUNG] [IMPORTDATENMASKIERUNG]
</select> </select>
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="150">{|Nullbytes entfernen|}:</td> <td width="150">{|Nullbytes entfernen|}:
<td><input type="checkbox" name="importnullbytes" id="importnullbytes" value="1" [IMPORTNULLBYTES]> </td>
<td>
<input type="checkbox" name="importnullbytes" id="importnullbytes" value="1" [IMPORTNULLBYTES]>
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="150">{|Letzte Zeilen ignorieren|}:</td> <td width="150">{|Letzte Zeilen ignorieren|}:
<td><input type="text" size="15" name="importletztenzeilenignorieren" </td>
id="importletztenzeilenignorieren" value="[IMPORTLETZTENZEILENIGNORIEREN]"></td> <td>
<input type="text" size="15" name="importletztenzeilenignorieren"
id="importletztenzeilenignorieren" value="[IMPORTLETZTENZEILENIGNORIEREN]">
</td>
</tr> </tr>
</table> </table>
<br><br> <br><br>
<table> <table>
<tr> <tr>
<td width="150">{|Spalte in CSV|}</td> <td width="150">{|Spalte in CSV|}
<td>{|Spalten 1 bis n (Spaltennummer in CSV).|}</tr> </td>
<td>
{|Spalten 1 bis n (Spaltennummer in CSV).|}</tr>
<tr> <tr>
<td width="150">{|Datum|}:</td> <td width="150">{|Datum|}:
<td><input type="text" name="importfelddatum" id="importfelddatum" size="15" </td>
<td>
<input type="text" name="importfelddatum" id="importfelddatum" size="15"
value="[IMPORTFELDDATUM]"> value="[IMPORTFELDDATUM]">
&nbsp;{|Eingabeformat|}:&nbsp;<input type="text" name="importfelddatumformat" &nbsp;{|Eingabeformat|}:&nbsp;<input type="text" name="importfelddatumformat"
id="importfelddatumformat" size="20" id="importfelddatumformat" size="20"
@ -179,67 +260,103 @@
id="importfelddatumformatausgabe" size="20" id="importfelddatumformatausgabe" size="20"
value="[IMPORTFELDDATUMFORMATAUSGABE]"> value="[IMPORTFELDDATUMFORMATAUSGABE]">
<br><i>{|Bsp. 24.12.2016 in CSV entspricht Eingabeformat %1.%2.%3 und Ausgabeformat %3-%2-%1 (Ausgabe muss immer auf diese Format gebracht werden YYYY-MM-DD)|}</i> <br><i>{|Bsp. 24.12.2016 in CSV entspricht Eingabeformat %1.%2.%3 und Ausgabeformat %3-%2-%1 (Ausgabe muss immer auf diese Format gebracht werden YYYY-MM-DD)|}</i>
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="150">{|Betrag|}:</td> <td width="150">{|Betrag|}:
<td><input type="text" name="importfeldbetrag" id="importfeldbetrag" size="15" </td>
value="[IMPORTFELDBETRAG]"></td>
</tr>
<tr>
<td width="150">{|Extra Haben u. Soll|}:</td>
<td><input type="checkbox" name="importextrahabensoll" id="importextrahabensoll" value="1" size="15"
[IMPORTEXTRAHABENSOLL] /></td>
</tr>
<tr>
<td></td>
<td> <td>
<input type="text" name="importfeldbetrag" id="importfeldbetrag" size="15"
value="[IMPORTFELDBETRAG]">
</td>
</tr>
<tr>
<td width="150">{|Extra Haben u. Soll|}:
</td>
<td>
<input type="checkbox" name="importextrahabensoll" id="importextrahabensoll" value="1" size="15"
[IMPORTEXTRAHABENSOLL] />
</td>
</tr>
<tr>
<td>
</td>
<td>
<table> <table>
<tr> <tr>
<td width="150">{|Haben|}:</td> <td width="150">{|Haben|}:
<td><input type="text" name="importfeldhaben" id="importfeldhaben" size="15" </td>
value="[IMPORTFELDHABEN]"></td> <td>
<input type="text" name="importfeldhaben" id="importfeldhaben" size="15"
value="[IMPORTFELDHABEN]">
</td>
</tr> </tr>
<tr> <tr>
<td width="150">{|Soll|}:</td> <td width="150">{|Soll|}:
<td><input type="text" name="importfeldsoll" id="importfeldsoll" size="15" </td>
value="[IMPORTFELDSOLL]"></td> <td>
<input type="text" name="importfeldsoll" id="importfeldsoll" size="15"
value="[IMPORTFELDSOLL]">
</td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="150">{|Buchungstext|}:</td> <td width="150">{|Buchungstext|}:
<td><input type="text" name="importfeldbuchungstext" id="importfeldbuchungstext" size="15" </td>
<td>
<input type="text" name="importfeldbuchungstext" id="importfeldbuchungstext" size="15"
value="[IMPORTFELDBUCHUNGSTEXT]">&nbsp;<i> {|Mit + mehre Spalten zusammenf&uuml;gen (aus dem Inhalt wird eine Pr&uuml;fsumme berechnet, daher so eindeutig wie m&ouml;glich machen.)|}</i> value="[IMPORTFELDBUCHUNGSTEXT]">&nbsp;<i> {|Mit + mehre Spalten zusammenf&uuml;gen (aus dem Inhalt wird eine Pr&uuml;fsumme berechnet, daher so eindeutig wie m&ouml;glich machen.)|}</i>
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="150">{|W&auml;hrung|}:</td> <td width="150">{|W&auml;hrung|}:
<td><input type="text" name="importfeldwaehrung" id="importfeldwaehrung" size="15"
value="[IMPORTFELDWAEHRUNG]">&nbsp;<i>{|Ziel: EUR, USD|}</i></td>
</tr>
<tr>
<td width="150">{|Haben/Soll Kennung|}:</td>
<td><input type="text" name="importfeldhabensollkennung" id="importfeldhabensollkennung" size="15"
value="[IMPORTFELDHABENSOLLKENNUNG]">&nbsp;<i>{|Extra Spalte in der steht was der Betrag ist.|}</i>
</td> </td>
</tr>
<tr>
<td width="150"></td>
<td> <td>
<input type="text" name="importfeldwaehrung" id="importfeldwaehrung" size="15"
value="[IMPORTFELDWAEHRUNG]">&nbsp;<i>{|Ziel: EUR, USD|}</i>
</td>
</tr>
<tr>
<td width="150">{|Haben/Soll Kennung|}:
</td>
<td>
<input type="text" name="importfeldhabensollkennung" id="importfeldhabensollkennung" size="15"
value="[IMPORTFELDHABENSOLLKENNUNG]">&nbsp;<i>{|Extra Spalte in der steht was der Betrag ist.|}</i>
</td>
</tr>
<tr>
<td width="150">
</td>
<td>
<table> <table>
<tr> <tr>
<td width="150">{|Markierung Eingang|}:</td> <td width="150">{|Markierung Eingang|}:
<td><input type="text" name="importfeldkennunghaben" id="importfeldkennunghaben" size="15" </td>
value="[IMPORTFELDKENNUNGHABEN]">&nbsp;<i>{|z.B. H oder +|}</i></td> <td>
<input type="text" name="importfeldkennunghaben" id="importfeldkennunghaben" size="15"
value="[IMPORTFELDKENNUNGHABEN]">&nbsp;<i>{|z.B. H oder +|}</i>
</td>
</tr> </tr>
<tr> <tr>
<td>{|Markierung Ausgang|}:&nbsp;</td> <td>
<td><input type="text" name="importfeldkennungsoll" id="importfeldkennungsoll" size="15" {|Markierung Ausgang|}:&nbsp;
value="[IMPORTFELDKENNUNGSOLL]">&nbsp;<i>{|z.B. S oder -|}</i></td> </td>
<td>
<input type="text" name="importfeldkennungsoll" id="importfeldkennungsoll" size="15"
value="[IMPORTFELDKENNUNGSOLL]">&nbsp;<i>{|z.B. S oder -|}</i>
</td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
@ -256,37 +373,56 @@
<legend>{|Live-Import|}</legend> <legend>{|Live-Import|}</legend>
<table id="liveimport-table"> <table id="liveimport-table">
<tr> <tr>
<td>{|Live-Import aktiv|}:</td> <td>
<td><input type="checkbox" name="liveimport_online" id="liveimport_online" value="1" {|Live-Import aktiv|}:
[LIVEIMPORT_ONLINE]></td> </td>
<td>
<input type="checkbox" name="liveimport_online" id="liveimport_online" value="1"
[LIVEIMPORT_ONLINE]>
</td>
</tr> </tr>
<tr> <tr>
<td>{|Zeitraum|}:</td>
<td> <td>
{|Zeitraum|}:
</td>
<td>
<select name="importperiode_in_hours" id="importperiode_in_hours"> <select name="importperiode_in_hours" id="importperiode_in_hours">
[IMPORTPERIODE_IN_HOURS] [IMPORTPERIODE_IN_HOURS]
</select> {|Stunden|} </select> {|Stunden|}
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
{|zu Zeiten|}: {|zu Zeiten|}:
</td> </td>
<td> <td>
[SCHEDULER] [SCHEDULER]
</td> </td>
</tr> </tr>
[BEFORELIVEIMPORT] [BEFORELIVEIMPORT]
<tr> <tr>
<td width="150">{|Zugangsdaten|}:</td> <td width="150">{|Zugangsdaten|}:
<td><textarea rows="5" cols="100" name="liveimport" id="liveimport">[LIVEIMPORT]</textarea></td> </td>
<td>
<textarea rows="5" cols="100" name="liveimport" id="liveimport">[LIVEIMPORT]</textarea>
</td>
</tr> </tr>
[AFTERLIVEIMPORT] [AFTERLIVEIMPORT]
<tr> <tr>
<td>{|Passwort Tresor|}:</td> <td>
<td><input type="button" value="{|Passwort setzen|}" {|Passwort Tresor|}:
</td>
<td>
<input type="button" value="{|Passwort setzen|}"
id="setpassword"/> id="setpassword"/>
<i>{|Der Inhalt des Passwort-Tresors kann in der Datenstruktur der Zugangsdaten über die Variable {PASSWORT} genutzt werden.|}</i> <i>{|Der Inhalt des Passwort-Tresors kann in der Datenstruktur der Zugangsdaten über die Variable {PASSWORT} genutzt werden.|}</i>
</td> </td>
</tr> </tr>
</table> </table>
@ -316,13 +452,21 @@
<legend>{|Prozessstarter|}</legend> <legend>{|Prozessstarter|}</legend>
<table> <table>
<tr> <tr>
<td>{|Zahlungseing&auml;nge automatisch abholen|}:</td> <td>
<td><input type="checkbox" name="cronjobaktiv" id="cronjobaktiv" value="1" [CRONJOBAKTIV]></td> {|Zahlungseing&auml;nge automatisch abholen|}:
</td>
<td>
<input type="checkbox" name="cronjobaktiv" id="cronjobaktiv" value="1" [CRONJOBAKTIV]>
</td>
</tr> </tr>
<tr> <tr>
<td>{|Zahlungseing&auml;nge automatisch verbuchen|}:</td> <td>
<td><input type="checkbox" name="cronjobverbuchen" id="cronjobverbuchen" value="1" {|Zahlungseing&auml;nge automatisch verbuchen|}:
[CRONJOBVERBUCHEN]></td> </td>
<td>
<input type="checkbox" name="cronjobverbuchen" id="cronjobverbuchen" value="1"
[CRONJOBVERBUCHEN]>
</td>
</tr> </tr>
</table> </table>
</fieldset> </fieldset>
@ -330,6 +474,7 @@
</div> </div>
</div> </div>
</div> </div>
-->
<div class="row"> <div class="row">
<div class="row-height"> <div class="row-height">
<div class="col-xs-12 col-md-12 col-md-height"> <div class="col-xs-12 col-md-12 col-md-height">
@ -338,20 +483,32 @@
<legend>{|Startwert für Konto|}</legend> <legend>{|Startwert für Konto|}</legend>
<table width="100%"> <table width="100%">
<tr> <tr>
<td width="150">{|Summieren|}:</td> <td width="150">{|Summieren|}:
<td><input type="checkbox" name="saldo_summieren" id="saldo_summieren" value="1" [SALDO_SUMMIEREN]>
</td> </td>
<td> <td>
<input type="checkbox" name="saldo_summieren" id="saldo_summieren" value="1" [SALDO_SUMMIEREN]>
</td>
<td>
</tr> </tr>
<tr> <tr>
<td width="150">{|Datum Saldo|}:</td> <td width="150">{|Datum Saldo|}:
<td><input type="text" name="saldo_datum" id="saldo_datum" size="40" value="[SALDO_DATUM]"></td> </td>
<td> <td>
<input type="text" name="saldo_datum" id="saldo_datum" size="40" value="[SALDO_DATUM]">
</td>
<td>
</tr> </tr>
<tr> <tr>
<td width="150">{|Betrag Saldo|}:</td> <td width="150">{|Betrag Saldo|}:
<td><input type="text" name="saldo_betrag" id="saldo_betrag" size="40" value="[SALDO_BETRAG]"></td> </td>
<td> <td>
<input type="text" name="saldo_betrag" id="saldo_betrag" size="40" value="[SALDO_BETRAG]">
</td>
<td>
</tr> </tr>
</table> </table>
</fieldset> </fieldset>
@ -359,8 +516,7 @@
</div> </div>
</div> </div>
</div> </div>
<input type="hidden" name="save" value="1" /> <input type="submit" name="submit" value="Speichern" style="float:right"/>
<input type="submit" value="{|Speichern|}" style="float:right"/>
</form> </form>
</div> </div>
<!-- tab view schließen --> <!-- tab view schließen -->
@ -372,8 +528,11 @@
<input type="hidden" id="e_id" value="[ID]"/> <input type="hidden" id="e_id" value="[ID]"/>
<table width="" cellspacing="0" cellpadding="0"> <table width="" cellspacing="0" cellpadding="0">
<tr> <tr>
<td width="110"><label for="e_passwort">{|Passwort|}:</label></td> <td width="110"><label for="e_passwort">{|Passwort|}:</label>
<td><input type="password" id="e_passwort" name="e_passwort" size="40"/></td> </td>
<td>
<input type="password" id="e_passwort" name="e_passwort" size="40"/>
</td>
</tr> </tr>
</table> </table>
</div> </div>

349
www/pages/konten.php Normal file
View File

@ -0,0 +1,349 @@
<?php
/*
* Copyright (c) 2022 OpenXE project
*/
use Xentral\Components\Database\Exception\QueryFailureException;
class Konten {
function __construct($app, $intern = false) {
$this->app = $app;
if ($intern)
return;
$this->app->ActionHandlerInit($this);
$this->app->ActionHandler("list", "konten_list");
$this->app->ActionHandler("create", "konten_edit"); // This automatically adds a "New" button
$this->app->ActionHandler("edit", "konten_edit");
$this->app->ActionHandler("delete", "konten_delete");
$this->app->DefaultActionHandler("list");
$this->app->ActionHandlerListen($app);
}
public function Install() {
/* Fill out manually later */
}
static function TableSearch(&$app, $name, $erlaubtevars) {
switch ($name) {
case "konten_list":
$allowed['konten_list'] = array('list');
$heading = array('','','Bezeichnung', 'Kurzbezeichnung', 'Typ', 'Projekt', 'Aktiv','Men&uuml;');
$width = array('1%','1%','10%'); // Fill out manually later
// columns that are aligned right (numbers etc)
// $alignright = array(4,5,6,7,8);
$findcols = array('k.id','k.id','k.bezeichnung', 'k.kurzbezeichnung', 'k.type', 'p.abkuerzung', ' k.aktiv','k.id');
$searchsql = array('k.bezeichnung', 'k.kurzbezeichnung', 'k.datevkonto', 'k.blz', 'k.konto', 'k.swift', 'k.iban', 'k.inhaber', 'k.firma','p.abkuerzung');
$defaultorder = 1;
$defaultorderdesc = 0;
$dropnbox = "'<img src=./themes/new/images/details_open.png class=details>' AS `open`, CONCAT('<input type=\"checkbox\" name=\"auswahl[]\" value=\"',k.id,'\" />') AS `auswahl`";
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap>" . "<a href=\"index.php?module=konten&action=edit&id=%value%\"><img src=\"./themes/{$app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\"></a>&nbsp;<a href=\"#\" onclick=DeleteDialog(\"index.php?module=konten&action=delete&id=%value%\");>" . "<img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\"></a>" . "</td></tr></table>";
$sql = "SELECT SQL_CALC_FOUND_ROWS
k.id,
$dropnbox,
k.bezeichnung,
k.kurzbezeichnung,
k.type,
p.abkuerzung,
k.aktiv,
k.id
FROM
konten k
LEFT JOIN
projekt p
ON
p.id = k.projekt ";
$where = " k.aktiv = 1 ";
// Toggle filters
$app->Tpl->Add('JQUERYREADY', "$('#archiv').click( function() { fnFilterColumn1( 0 ); } );");
for ($r = 1;$r <= 1;$r++) {
$app->Tpl->Add('JAVASCRIPT', '
function fnFilterColumn' . $r . ' ( i )
{
if(oMoreData' . $r . $name . '==1)
oMoreData' . $r . $name . ' = 0;
else
oMoreData' . $r . $name . ' = 1;
$(\'#' . $name . '\').dataTable().fnFilter(
\'\',
i,
0,0
);
}
');
}
$more_data1 = $app->Secure->GetGET("more_data1");
if ($more_data1 == 1) {
$where .= " OR k.aktiv <> 1";
} else {
}
$count = "SELECT count(DISTINCT id) FROM konten k WHERE $where";
// $groupby = "";
break;
}
$erg = false;
foreach ($erlaubtevars as $k => $v) {
if (isset($$v)) {
$erg[$v] = $$v;
}
}
return $erg;
}
function konten_list() {
$this->app->erp->MenuEintrag("index.php?module=konten&action=list", "&Uuml;bersicht");
$this->app->erp->MenuEintrag("index.php?module=konten&action=create", "Neu anlegen");
$this->app->erp->MenuEintrag("index.php", "Zur&uuml;ck");
$this->app->YUI->TableSearch('TAB1', 'konten_list', "show", "", "", basename(__FILE__), __CLASS__);
$this->app->Tpl->Parse('PAGE', "konten_list.tpl");
}
public function konten_delete() {
$id = (int) $this->app->Secure->GetGET('id');
$this->app->DB->Delete("UPDATE `konten` SET `aktiv` = 0 WHERE `id` = '{$id}'");
$this->app->Tpl->Set('MESSAGE', "<div class=\"info\">Der Eintrag wurde deaktiviert.</div>");
$this->konten_list();
}
/*
* Edit konten item
* If id is empty, create a new one
*/
function konten_edit() {
$id = $this->app->Secure->GetGET('id');
// Check if other users are editing this id
if($this->app->erp->DisableModul('artikel',$id))
{
return;
}
$this->app->Tpl->Set('ID', $id);
$this->app->erp->MenuEintrag("index.php?module=konten&action=edit&id=$id", "Details");
$this->app->erp->MenuEintrag("index.php?module=konten&action=list", "Zur&uuml;ck zur &Uuml;bersicht");
$id = $this->app->Secure->GetGET('id');
$input = $this->GetInput();
$submit = $this->app->Secure->GetPOST('submit');
if (empty($id)) {
// New item
$id = 'NULL';
}
if ($submit != '')
{
// Write to database
// Add checks here
$input['projekt'] = $this->app->erp->ReplaceProjekt(true,$input['projekt'],true);
$columns = "id, ";
$values = "$id, ";
$update = "";
$fix = "";
foreach ($input as $key => $value) {
$columns = $columns.$fix.$key;
$values = $values.$fix."'".$value."'";
$update = $update.$fix.$key." = '$value'";
$fix = ", ";
}
// echo($columns."<br>");
// echo($values."<br>");
// echo($update."<br>");
$sql = "INSERT INTO konten (".$columns.") VALUES (".$values.") ON DUPLICATE KEY UPDATE ".$update;
// echo($sql);
$this->app->DB->Update($sql);
if ($id == 'NULL') {
$msg = $this->app->erp->base64_url_encode("<div class=\"success\">Das Element wurde erfolgreich angelegt.</div>");
header("Location: index.php?module=konten&action=list&msg=$msg");
} else {
$this->app->Tpl->Set('MESSAGE', "<div class=\"success\">Die Einstellungen wurden erfolgreich &uuml;bernommen.</div>");
}
}
// Load values again from database
$dropnbox = "'<img src=./themes/new/images/details_open.png class=details>' AS `open`, CONCAT('<input type=\"checkbox\" name=\"auswahl[]\" value=\"',k.id,'\" />') AS `auswahl`";
$result = $this->app->DB->SelectArr("SELECT SQL_CALC_FOUND_ROWS k.id, $dropnbox, k.bezeichnung, k.kurzbezeichnung, k.type, k.erstezeile, k.datevkonto, k.blz, k.konto, k.swift, k.iban, k.lastschrift, k.hbci, k.hbcikennung, k.inhaber, k.aktiv, k.keineemail, k.firma, k.schreibbar, k.importletztenzeilenignorieren, k.liveimport, k.liveimport_passwort, k.liveimport_online, k.importtrennzeichen, k.codierung, k.importerstezeilenummer, k.importdatenmaskierung, k.importnullbytes, k.glaeubiger, k.geloescht, k.projekt, k.saldo_summieren, k.saldo_betrag, k.saldo_datum, k.importfelddatum, k.importfelddatumformat, k.importfelddatumformatausgabe, k.importfeldbetrag, k.importfeldbetragformat, k.importfeldbuchungstext, k.importfeldbuchungstextformat, k.importfeldwaehrung, k.importfeldwaehrungformat, k.importfeldhabensollkennung, k.importfeldkennunghaben, k.importfeldkennungsoll, k.importextrahabensoll, k.importfeldhaben, k.importfeldsoll, k.cronjobaktiv, k.cronjobverbuchen, k.last_import, k.importperiode_in_hours, k.id FROM konten k"." WHERE id=$id");
foreach ($result[0] as $key => $value) {
$this->app->Tpl->Set(strtoupper($key), $value);
}
/*
* Add displayed items later
*
$this->app->Tpl->Add('KURZUEBERSCHRIFT2', $email);
$this->app->Tpl->Add('EMAIL', $email);
$this->app->Tpl->Add('ANGEZEIGTERNAME', $angezeigtername);
*/
$this->app->YUI->AutoComplete('projekt','projektname',1);
$this->app->Tpl->Set('PROJEKT',$this->app->erp->ReplaceProjekt(false,$result[0]['projekt'],false));
$this->app->Tpl->Set('AKTIV',$result[0]['aktiv']==1?'checked':'');
$this->app->Tpl->Set('KEINEEMAIL',$result[0]['keineemail']==1?'checked':'');
$this->app->Tpl->Set('SCHREIBBAR',$result[0]['schreibbar']==1?'checked':'');
$this->app->Tpl->Set('LASTSCHRIFT',$result[0]['lastschrift']==1?'checked':'');
$this->app->Tpl->Set('SALDO_SUMMIEREN',$result[0]['saldo_summieren']==1?'checked':'');
$this->app->Tpl->Parse('PAGE', "konten_edit.tpl");
}
/**
* Get all paramters from html form and save into $input
*/
public function GetInput(): array {
$input = array();
//$input['EMAIL'] = $this->app->Secure->GetPOST('email');
$input['bezeichnung'] = $this->app->Secure->GetPOST('bezeichnung');
$input['kurzbezeichnung'] = $this->app->Secure->GetPOST('kurzbezeichnung');
$input['type'] = $this->app->Secure->GetPOST('type');
$input['erstezeile'] = $this->app->Secure->GetPOST('erstezeile');
$input['datevkonto'] = $this->app->Secure->GetPOST('datevkonto');
$input['blz'] = $this->app->Secure->GetPOST('blz');
$input['konto'] = $this->app->Secure->GetPOST('konto');
$input['swift'] = $this->app->Secure->GetPOST('swift');
$input['iban'] = $this->app->Secure->GetPOST('iban');
$input['lastschrift'] = $this->app->Secure->GetPOST('lastschrift');
$input['hbci'] = $this->app->Secure->GetPOST('hbci');
$input['hbcikennung'] = $this->app->Secure->GetPOST('hbcikennung');
$input['inhaber'] = $this->app->Secure->GetPOST('inhaber');
$input['aktiv'] = $this->app->Secure->GetPOST('aktiv');
$input['keineemail'] = $this->app->Secure->GetPOST('keineemail');
$input['firma'] = $this->app->Secure->GetPOST('firma');
$input['schreibbar'] = $this->app->Secure->GetPOST('schreibbar');
$input['importletztenzeilenignorieren'] = $this->app->Secure->GetPOST('importletztenzeilenignorieren');
$input['liveimport'] = $this->app->Secure->GetPOST('liveimport');
$input['liveimport_passwort'] = $this->app->Secure->GetPOST('liveimport_passwort');
$input['liveimport_online'] = $this->app->Secure->GetPOST('liveimport_online');
$input['importtrennzeichen'] = $this->app->Secure->GetPOST('importtrennzeichen');
$input['codierung'] = $this->app->Secure->GetPOST('codierung');
$input['importerstezeilenummer'] = $this->app->Secure->GetPOST('importerstezeilenummer');
$input['importdatenmaskierung'] = $this->app->Secure->GetPOST('importdatenmaskierung');
$input['importnullbytes'] = $this->app->Secure->GetPOST('importnullbytes');
$input['glaeubiger'] = $this->app->Secure->GetPOST('glaeubiger');
$input['geloescht'] = $this->app->Secure->GetPOST('geloescht');
$input['projekt'] = $this->app->Secure->GetPOST('projekt');
$input['saldo_summieren'] = $this->app->Secure->GetPOST('saldo_summieren');
$input['saldo_betrag'] = $this->app->Secure->GetPOST('saldo_betrag');
$input['saldo_datum'] = $this->app->Secure->GetPOST('saldo_datum');
$input['importfelddatum'] = $this->app->Secure->GetPOST('importfelddatum');
$input['importfelddatumformat'] = $this->app->Secure->GetPOST('importfelddatumformat');
$input['importfelddatumformatausgabe'] = $this->app->Secure->GetPOST('importfelddatumformatausgabe');
$input['importfeldbetrag'] = $this->app->Secure->GetPOST('importfeldbetrag');
$input['importfeldbetragformat'] = $this->app->Secure->GetPOST('importfeldbetragformat');
$input['importfeldbuchungstext'] = $this->app->Secure->GetPOST('importfeldbuchungstext');
$input['importfeldbuchungstextformat'] = $this->app->Secure->GetPOST('importfeldbuchungstextformat');
$input['importfeldwaehrung'] = $this->app->Secure->GetPOST('importfeldwaehrung');
$input['importfeldwaehrungformat'] = $this->app->Secure->GetPOST('importfeldwaehrungformat');
$input['importfeldhabensollkennung'] = $this->app->Secure->GetPOST('importfeldhabensollkennung');
$input['importfeldkennunghaben'] = $this->app->Secure->GetPOST('importfeldkennunghaben');
$input['importfeldkennungsoll'] = $this->app->Secure->GetPOST('importfeldkennungsoll');
$input['importextrahabensoll'] = $this->app->Secure->GetPOST('importextrahabensoll');
$input['importfeldhaben'] = $this->app->Secure->GetPOST('importfeldhaben');
$input['importfeldsoll'] = $this->app->Secure->GetPOST('importfeldsoll');
$input['cronjobaktiv'] = $this->app->Secure->GetPOST('cronjobaktiv');
$input['cronjobverbuchen'] = $this->app->Secure->GetPOST('cronjobverbuchen');
$input['last_import'] = $this->app->Secure->GetPOST('last_import');
$input['importperiode_in_hours'] = $this->app->Secure->GetPOST('importperiode_in_hours');
return $input;
}
/*
* Set all fields in the page corresponding to $input
*/
function SetInput($input) {
// $this->app->Tpl->Set('EMAIL', $input['email']);
$this->app->Tpl->Set('BEZEICHNUNG', $input['bezeichnung']);
$this->app->Tpl->Set('KURZBEZEICHNUNG', $input['kurzbezeichnung']);
$this->app->Tpl->Set('TYPE', $input['type']);
$this->app->Tpl->Set('ERSTEZEILE', $input['erstezeile']);
$this->app->Tpl->Set('DATEVKONTO', $input['datevkonto']);
$this->app->Tpl->Set('BLZ', $input['blz']);
$this->app->Tpl->Set('KONTO', $input['konto']);
$this->app->Tpl->Set('SWIFT', $input['swift']);
$this->app->Tpl->Set('IBAN', $input['iban']);
$this->app->Tpl->Set('LASTSCHRIFT', $input['lastschrift']);
$this->app->Tpl->Set('HBCI', $input['hbci']);
$this->app->Tpl->Set('HBCIKENNUNG', $input['hbcikennung']);
$this->app->Tpl->Set('INHABER', $input['inhaber']);
$this->app->Tpl->Set('AKTIV', $input['aktiv']);
$this->app->Tpl->Set('KEINEEMAIL', $input['keineemail']);
$this->app->Tpl->Set('FIRMA', $input['firma']);
$this->app->Tpl->Set('SCHREIBBAR', $input['schreibbar']);
$this->app->Tpl->Set('IMPORTLETZTENZEILENIGNORIEREN', $input['importletztenzeilenignorieren']);
$this->app->Tpl->Set('LIVEIMPORT', $input['liveimport']);
$this->app->Tpl->Set('LIVEIMPORT_PASSWORT', $input['liveimport_passwort']);
$this->app->Tpl->Set('LIVEIMPORT_ONLINE', $input['liveimport_online']);
$this->app->Tpl->Set('IMPORTTRENNZEICHEN', $input['importtrennzeichen']);
$this->app->Tpl->Set('CODIERUNG', $input['codierung']);
$this->app->Tpl->Set('IMPORTERSTEZEILENUMMER', $input['importerstezeilenummer']);
$this->app->Tpl->Set('IMPORTDATENMASKIERUNG', $input['importdatenmaskierung']);
$this->app->Tpl->Set('IMPORTNULLBYTES', $input['importnullbytes']);
$this->app->Tpl->Set('GLAEUBIGER', $input['glaeubiger']);
$this->app->Tpl->Set('GELOESCHT', $input['geloescht']);
$this->app->Tpl->Set('PROJEKT', $input['projekt']);
$this->app->Tpl->Set('SALDO_SUMMIEREN', $input['saldo_summieren']);
$this->app->Tpl->Set('SALDO_BETRAG', $input['saldo_betrag']);
$this->app->Tpl->Set('SALDO_DATUM', $input['saldo_datum']);
$this->app->Tpl->Set('IMPORTFELDDATUM', $input['importfelddatum']);
$this->app->Tpl->Set('IMPORTFELDDATUMFORMAT', $input['importfelddatumformat']);
$this->app->Tpl->Set('IMPORTFELDDATUMFORMATAUSGABE', $input['importfelddatumformatausgabe']);
$this->app->Tpl->Set('IMPORTFELDBETRAG', $input['importfeldbetrag']);
$this->app->Tpl->Set('IMPORTFELDBETRAGFORMAT', $input['importfeldbetragformat']);
$this->app->Tpl->Set('IMPORTFELDBUCHUNGSTEXT', $input['importfeldbuchungstext']);
$this->app->Tpl->Set('IMPORTFELDBUCHUNGSTEXTFORMAT', $input['importfeldbuchungstextformat']);
$this->app->Tpl->Set('IMPORTFELDWAEHRUNG', $input['importfeldwaehrung']);
$this->app->Tpl->Set('IMPORTFELDWAEHRUNGFORMAT', $input['importfeldwaehrungformat']);
$this->app->Tpl->Set('IMPORTFELDHABENSOLLKENNUNG', $input['importfeldhabensollkennung']);
$this->app->Tpl->Set('IMPORTFELDKENNUNGHABEN', $input['importfeldkennunghaben']);
$this->app->Tpl->Set('IMPORTFELDKENNUNGSOLL', $input['importfeldkennungsoll']);
$this->app->Tpl->Set('IMPORTEXTRAHABENSOLL', $input['importextrahabensoll']);
$this->app->Tpl->Set('IMPORTFELDHABEN', $input['importfeldhaben']);
$this->app->Tpl->Set('IMPORTFELDSOLL', $input['importfeldsoll']);
$this->app->Tpl->Set('CRONJOBAKTIV', $input['cronjobaktiv']);
$this->app->Tpl->Set('CRONJOBVERBUCHEN', $input['cronjobverbuchen']);
$this->app->Tpl->Set('LAST_IMPORT', $input['last_import']);
$this->app->Tpl->Set('IMPORTPERIODE_IN_HOURS', $input['importperiode_in_hours']);
}
}