Merge branch 'master' into matrixartikel

# Conflicts:
#	.gitignore
This commit is contained in:
Andreas Palm 2024-01-25 22:34:02 +01:00
commit b8ae1a7f23
59 changed files with 24210 additions and 19766 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@ conf/user_defined.php
userdata userdata
www/cache/ www/cache/
node_modules/ node_modules/
www/themes/new/css/custom.css

View File

@ -223,7 +223,7 @@ if ($task) {
} catch (Exception $e) { } catch (Exception $e) {
$app->erp->LogFile( $app->erp->LogFile(
$app->DB->real_escape_string( $app->DB->real_escape_string(
'Prozessstarter Fehler bei Aufruf des Moduls ' . $task[$task_index]['parameter'] . ': ' . $e->getMessage() 'Prozessstarter Fehler bei Aufruf des Moduls ' . $task[$task_index]['parameter'] . ': ' . $e->getMessage()." Trace: ".$e->GetTraceAsString()
) )
); );
} }

View File

@ -16729,7 +16729,9 @@ INSERT INTO `firmendaten_werte` (`id`, `name`, `typ`, `typ1`, `typ2`, `wert`, `d
(386, 'cleaner_shopimport_tage', 'int', '11', '', '90', '90', 0, 0), (386, 'cleaner_shopimport_tage', 'int', '11', '', '90', '90', 0, 0),
(387, 'cleaner_adapterbox', 'tinyint', '1', '', '1', '1', 0, 0), (387, 'cleaner_adapterbox', 'tinyint', '1', '', '1', '1', 0, 0),
(388, 'cleaner_adapterbox_tage', 'int', '11', '', '90', '90', 0, 0), (388, 'cleaner_adapterbox_tage', 'int', '11', '', '90', '90', 0, 0),
(389, 'bcc3', 'varchar', '128', '', '', '', 0, 0) (389, 'bcc3', 'varchar', '128', '', '', '', 0, 0),
(390, 'rechnungersatz_standard', 'int', '1', '', '0', '0', 0, 0)
; ;
INSERT INTO `geschaeftsbrief_vorlagen` (`id`, `sprache`, `betreff`, `text`, `subjekt`, `projekt`, `firma`) VALUES INSERT INTO `geschaeftsbrief_vorlagen` (`id`, `sprache`, `betreff`, `text`, `subjekt`, `projekt`, `firma`) VALUES
@ -16749,6 +16751,24 @@ INSERT INTO `geschaeftsbrief_vorlagen` (`id`, `sprache`, `betreff`, `text`, `sub
(16, 'deutsch', 'Zusammenstellung Ihrer Bestellung', '{ANSCHREIBEN},<br><br>soeben wurde Ihr Bestellung zusammengestellt. Sie können Ihre Ware jetzt abholen. Sind Sie bereits bei uns gewesen, so sehen Sie diese E-Mail bitte als gegenstandslos an.<br><br>{VERSAND}<br><br>Ihr {FIRMA} Team<br>', 'Selbstabholer', 0, 1), (16, 'deutsch', 'Zusammenstellung Ihrer Bestellung', '{ANSCHREIBEN},<br><br>soeben wurde Ihr Bestellung zusammengestellt. Sie können Ihre Ware jetzt abholen. Sind Sie bereits bei uns gewesen, so sehen Sie diese E-Mail bitte als gegenstandslos an.<br><br>{VERSAND}<br><br>Ihr {FIRMA} Team<br>', 'Selbstabholer', 0, 1),
(17, 'deutsch', 'Ihre Gutschrift {BELEGNR} von {FIRMA}', '{ANSCHREIBEN},<br><br>anbei finden Sie Ihre Gutschrift. Gerne stehen wir Ihnen weiterhin zur Verfügung.<br><br>Ihre Gutschrift ist im PDF-Format erstellt worden. Um sich die Gutschrift ansehen zu können, klicken Sie auf den Anhang und es öffnet sich automatisch der Acrobat Reader. Sollten Sie keinen Acrobat Reader besitzen, haben wir für Sie den Link zum kostenlosen Download von Adobe Acrobat Reader mit angegeben. Er führt Sie automatisch auf die Downloadseite von Adobe. So können Sie sich Ihre Gutschrift auch für Ihre Unterlagen ausdrucken.<br><br>http://www.adobe.com/products/acrobat/readstep2.html<br><br>{IF}{INTERNET}{THEN}Internet-Bestellnr.: {INTERNET}{ELSE}{ENDIF}', 'Gutschrift', 1, 1); (17, 'deutsch', 'Ihre Gutschrift {BELEGNR} von {FIRMA}', '{ANSCHREIBEN},<br><br>anbei finden Sie Ihre Gutschrift. Gerne stehen wir Ihnen weiterhin zur Verfügung.<br><br>Ihre Gutschrift ist im PDF-Format erstellt worden. Um sich die Gutschrift ansehen zu können, klicken Sie auf den Anhang und es öffnet sich automatisch der Acrobat Reader. Sollten Sie keinen Acrobat Reader besitzen, haben wir für Sie den Link zum kostenlosen Download von Adobe Acrobat Reader mit angegeben. Er führt Sie automatisch auf die Downloadseite von Adobe. So können Sie sich Ihre Gutschrift auch für Ihre Unterlagen ausdrucken.<br><br>http://www.adobe.com/products/acrobat/readstep2.html<br><br>{IF}{INTERNET}{THEN}Internet-Bestellnr.: {INTERNET}{ELSE}{ENDIF}', 'Gutschrift', 1, 1);
/* OpenXE 2024-01-24 für datatablelabel */
INSERT INTO `hook` (`name`, `aktiv`, `parametercount`, `alias`, `description`) VALUES
('eproosystem_ende', 1, 0, '', ''),
('parseuservars', 1, 0, '', ''),
('dokumentsend_ende', 1, 0, '', ''),
('auftrag_versand_ende', 1, 0, '', ''),
('transfer_document_incoming', 1, 0, '', '')
;
INSERT INTO `hook_register` (`hook_action`, `function`, `aktiv`, `position`, `hook`, `module`, `module_parameter`) VALUES
(0, 'DataTableLabelsInclude', 1, 3, (SELECT id FROM hook WHERE name = 'eproosystem_ende'), 'Datatablelabels', 0),
(0, 'DatatablelabelsParseUserVars', 1, 2, (SELECT id FROM hook WHERE name = 'parseuservars'), 'Datatablelabels', 0),
(0, 'DataTableLabelsDokumentSendHook', 1, 1, (SELECT id FROM hook WHERE name = 'dokumentsend_ende'), 'Datatablelabels', 0),
(0, 'DatatablelabelsOrderSent', 1, 1, (SELECT id FROM hook WHERE name = 'auftrag_versand_ende'), 'Datatablelabels', 0),
(0, 'DatatablelabelsTransferDocumentIncomming', 1, 1, (SELECT id FROM hook WHERE name = 'transfer_document_incoming'), 'Datatablelabels', 0);
/* OpenXE 2024-01-24 für datatablelabel */
INSERT INTO `hook_menu` (`id`, `module`, `aktiv`) VALUES INSERT INTO `hook_menu` (`id`, `module`, `aktiv`) VALUES
(1, 'artikel', 1), (1, 'artikel', 1),
(2, 'provisionenartikel', 1), (2, 'provisionenartikel', 1),

View File

@ -765,6 +765,7 @@ $tooltip['firmendaten']['edit']['bezeichnungangebotersatz']="Im Angebot gibt es
$tooltip['firmendaten']['edit']['angebotersatz_standard']="Mit dieser Option setzen Sie die alternative Bezeichnung im Angebot (Option drüber) als Standard. Dadurch ist der Haken beim Erstellen eines neuen Angebots immer gesetzt."; $tooltip['firmendaten']['edit']['angebotersatz_standard']="Mit dieser Option setzen Sie die alternative Bezeichnung im Angebot (Option drüber) als Standard. Dadurch ist der Haken beim Erstellen eines neuen Angebots immer gesetzt.";
$tooltip['firmendaten']['edit']['bezeichnungauftragersatz']="Im Auftrag gibt es einen Haken um den Betreff des Augtrag-Belegs umzubenennen.<br>Mit der Option hier legen Sie den Namen des alternativen Betreffs fest."; $tooltip['firmendaten']['edit']['bezeichnungauftragersatz']="Im Auftrag gibt es einen Haken um den Betreff des Augtrag-Belegs umzubenennen.<br>Mit der Option hier legen Sie den Namen des alternativen Betreffs fest.";
$tooltip['firmendaten']['edit']['bezeichnungrechnungersatz']="In der Rechnung gibt es einen Haken um den Betreff des Rechnung-Belegs umzubenennen.<br>Mit der Option hier legen Sie den Namen des alternativen Betreffs fest."; $tooltip['firmendaten']['edit']['bezeichnungrechnungersatz']="In der Rechnung gibt es einen Haken um den Betreff des Rechnung-Belegs umzubenennen.<br>Mit der Option hier legen Sie den Namen des alternativen Betreffs fest.";
$tooltip['firmendaten']['edit']['rechnungersatz_standard']="Mit dieser Option setzen Sie die alternative Bezeichnung in der Rechnung (Option drüber) als Standard. Dadurch ist der Haken beim Erstellen einer neuen Rechnung immer gesetzt.";
$tooltip['firmendaten']['edit']['bezeichnunglieferscheinersatz']="Im Lieferschein gibt es einen Haken um den Betreff des Lieferschein-Belegs umzubenennen.<br>Mit der Option hier legen Sie den Namen des alternativen Betreffs fest."; $tooltip['firmendaten']['edit']['bezeichnunglieferscheinersatz']="Im Lieferschein gibt es einen Haken um den Betreff des Lieferschein-Belegs umzubenennen.<br>Mit der Option hier legen Sie den Namen des alternativen Betreffs fest.";
$tooltip['firmendaten']['edit']['bezeichnungbestellungersatz']="In der Bestellung gibt es einen Haken um den Betreff des Bestell-Belegs umzubenennen.<br>Mit der Option hier legen Sie den Namen des alternativen Betreffs fest."; $tooltip['firmendaten']['edit']['bezeichnungbestellungersatz']="In der Bestellung gibt es einen Haken um den Betreff des Bestell-Belegs umzubenennen.<br>Mit der Option hier legen Sie den Namen des alternativen Betreffs fest.";
$tooltip['firmendaten']['edit']['bezeichnungproformarechnungersatz']="In der Proformarechnung gibt es einen Haken um den Betreff der Proformarechnung-Belegs umzubenennen.<br>Mit der Option hier legen Sie den Namen des alternativen Betreffs fest."; $tooltip['firmendaten']['edit']['bezeichnungproformarechnungersatz']="In der Proformarechnung gibt es einen Haken um den Betreff der Proformarechnung-Belegs umzubenennen.<br>Mit der Option hier legen Sie den Namen des alternativen Betreffs fest.";

View File

@ -1,361 +1,361 @@
<?php <?php
/* /*
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
* *
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019 * Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
* *
* This file is licensed under the Embedded Projects General Public License *Version 3.1. * This file is licensed under the Embedded Projects General Public License *Version 3.1.
* *
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis * You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
* to obtain the text of the corresponding license version. * to obtain the text of the corresponding license version.
* *
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*/ */
?> ?>
<?php <?php
/// represent a HTML Form structure /// represent a HTML Form structure
class HTMLForm class HTMLForm
{ {
var $action; var $action;
var $method; var $method;
var $name; var $name;
var $id; var $id;
var $FieldList; var $FieldList;
function __construct($action="",$method="post",$name="",$id="") function __construct($action="",$method="post",$name="",$id="")
{ {
$this->action=$action; $this->action=$action;
$this->name=$name; $this->name=$name;
$this->method=$method; $this->method=$method;
$this->id=$id; $this->id=$id;
} }
function Set($value) function Set($value)
{ {
} }
function Get() function Get()
{ {
} }
function GetClose() function GetClose()
{ {
} }
} }
class HTMLTextarea class HTMLTextarea
{ {
var $name; var $name;
var $rows; var $rows;
var $value; var $value;
var $cols; var $cols;
var $id=""; var $id="";
var $readonly=""; var $readonly="";
var $disabled=""; var $disabled="";
var $class; var $class;
function __construct($name,$rows,$cols,$defvalue="",$id="",$readonly="",$disabled="",$class="") function __construct($name,$rows,$cols,$defvalue="",$id="",$readonly="",$disabled="",$class="")
{ {
$this->name = $name; $this->name = $name;
$this->rows = $rows; $this->rows = $rows;
$this->cols = $cols; $this->cols = $cols;
$this->class = $class; $this->class = $class;
$this->value = $defvalue; $this->value = $defvalue;
$this->id = $id; $this->id = $id;
if($id=="") if($id=="")
$this->id = $name; $this->id = $name;
$this->readonly = $readonly; $this->readonly = $readonly;
$this->disabled = $disabled; $this->disabled = $disabled;
} }
function Get() function Get()
{ {
// TEMP ACHTUNG HIER IST MIST!!! // TEMP ACHTUNG HIER IST MIST!!!
$value = $this->value; $value = $this->value;
/* /*
if(!defined('WFHTMLTextareabr') || !WFHTMLTextareabr)$value = preg_replace('/<br\\s*?\/??>/i', "\n", $value); if(!defined('WFHTMLTextareabr') || !WFHTMLTextareabr)$value = preg_replace('/<br\\s*?\/??>/i', "\n", $value);
*/ */
// $value = str_replace("\\r\\n","\n",$value); // $value = str_replace("\\r\\n","\n",$value);
$html = "<textarea rows=\"{$this->rows}\" id=\"{$this->id}\" class=\"{$this->class}\" $html = "<textarea rows=\"{$this->rows}\" id=\"{$this->id}\" class=\"{$this->class}\"
name=\"{$this->name}\" cols=\"{$this->cols}\" name=\"{$this->name}\" cols=\"{$this->cols}\"
{$this->readonly} {$this->disabled} [COMMONREADONLYINPUT]>$value</textarea>"; {$this->readonly} {$this->disabled} [COMMONREADONLYINPUT]>$value</textarea>";
return $html; return $html;
} }
function GetClose() function GetClose()
{ {
} }
} }
/// fuer Datenfelder die mit in die Datenbank o.ae. kommen sollen, aber nicht durch den /// fuer Datenfelder die mit in die Datenbank o.ae. kommen sollen, aber nicht durch den
/// user in irgendeiner art und weise gesehen und manipuliert werden koennen /// user in irgendeiner art und weise gesehen und manipuliert werden koennen
class BlindField class BlindField
{ {
var $name; var $name;
var $value; var $value;
function __construct($name,$value) function __construct($name,$value)
{ {
$this->name = $name; $this->name = $name;
$this->value = $value; $this->value = $value;
} }
function Get(){} function Get(){}
function GetClose(){} function GetClose(){}
} }
class HTMLInput class HTMLInput
{ {
var $name; var $name;
var $type; var $type;
var $value; var $value;
var $dbvalue; var $dbvalue;
var $checkvalue; var $checkvalue;
var $onchange; var $onchange;
var $onclick; var $onclick;
var $defvalue; var $defvalue;
var $size; var $size;
var $maxlength; var $maxlength;
var $tabindex; var $tabindex;
var $id=""; var $id="";
var $readonly=""; var $readonly="";
var $disabled=""; var $disabled="";
var $placeholder=""; var $placeholder="";
var $class; var $class;
var $checked; var $checked;
function __construct($name,$type,$value,$size="",$maxlength="",$id="",$defvalue="",$checked="",$readonly="",$disabled="",$class="",$onclick="",$tabindex="",$placeholder="") function __construct($name,$type,$value,$size="",$maxlength="",$id="",$defvalue="",$checked="",$readonly="",$disabled="",$class="",$onclick="",$tabindex="",$placeholder="")
{ {
$this->name = $name; $this->name = $name;
$this->type = $type; $this->type = $type;
$this->value = $value; $this->value = $value;
$this->size = $size; $this->size = $size;
$this->maxlength = $maxlength; $this->maxlength = $maxlength;
$this->id = $id; $this->id = $id;
$this->readonly = $readonly; $this->readonly = $readonly;
$this->disabled = $disabled; $this->disabled = $disabled;
$this->class=$class; $this->class=$class;
$this->checked=$checked; $this->checked=$checked;
$this->tabindex=$tabindex; $this->tabindex=$tabindex;
$this->placeholder=$placeholder; $this->placeholder=$placeholder;
$this->defvalue=$defvalue; // if value is empty use this $this->defvalue=$defvalue; // if value is empty use this
$this->onclick=$onclick; $this->onclick=$onclick;
} }
function Get() function Get()
{ {
if($this->id=="") $this->id = $this->name; if($this->id=="") $this->id = $this->name;
switch($this->type) switch($this->type)
{ {
case "text": case "text":
$html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\" tabindex=\"{$this->tabindex}\" $html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\" tabindex=\"{$this->tabindex}\"
name=\"{$this->name}\" value=\"".preg_replace("/\"/","&quot;",$this->value)."\" size=\"{$this->size}\" placeholder=\"{$this->placeholder}\" name=\"{$this->name}\" value=\"".preg_replace("/\"/","&quot;",$this->value)."\" size=\"{$this->size}\" placeholder=\"{$this->placeholder}\"
maxlength=\"{$this->maxlength}\" {$this->readonly} {$this->disabled} [COMMONREADONLYINPUT]>"; maxlength=\"{$this->maxlength}\" {$this->readonly} {$this->disabled} [COMMONREADONLYINPUT]>";
break; break;
case "password": case "password":
$html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\" tabindex=\"{$this->tabindex}\" $html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\" tabindex=\"{$this->tabindex}\"
name=\"{$this->name}\" value=\"{$this->value}\" size=\"{$this->size}\" name=\"{$this->name}\" value=\"{$this->value}\" size=\"{$this->size}\"
maxlength=\"{$this->maxlength}\" {$this->readonly} {$this->disabled} [COMMONREADONLYINPUT]>"; maxlength=\"{$this->maxlength}\" {$this->readonly} {$this->disabled} [COMMONREADONLYINPUT]>";
break; break;
case "checkbox": case "checkbox":
$html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\" tabindex=\"{$this->tabindex}\" $html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\" tabindex=\"{$this->tabindex}\"
name=\"{$this->name}\" value=\"{$this->value}\" {$this->checked} onchange=\"{$this->onchange}\" onclick=\"{$this->onclick}\" name=\"{$this->name}\" value=\"{$this->value}\" {$this->checked} onchange=\"{$this->onchange}\" onclick=\"{$this->onclick}\"
{$this->readonly} {$this->disabled} [COMMONREADONLYINPUT]>"; {$this->readonly} {$this->disabled} [COMMONREADONLYINPUT]>";
break; break;
case "radio": case "radio":
if($this->value==$this->defvalue) $this->checked="checked"; if($this->value==$this->defvalue) $this->checked="checked";
$tmpname = str_replace('_'.$this->defvalue,'',$this->name); $tmpname = str_replace('_'.$this->defvalue,'',$this->name);
$html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\" tabindex=\"{$this->tabindex}\" $html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\" tabindex=\"{$this->tabindex}\"
name=\"{$tmpname}\" value=\"{$this->defvalue}\" {$this->checked} onchange=\"{$this->onchange}\" name=\"{$tmpname}\" value=\"{$this->defvalue}\" {$this->checked} onchange=\"{$this->onchange}\"
{$this->readonly} {$this->disabled} [COMMONREADONLYINPUT]>"; {$this->readonly} {$this->disabled} [COMMONREADONLYINPUT]>";
break; break;
case "submit": case "submit":
$html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\" $html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\"
name=\"{$this->name}\" value=\"{$this->value}\" name=\"{$this->name}\" value=\"{$this->value}\"
{$this->readonly} {$this->disabled}>"; {$this->readonly} {$this->disabled}>";
break; break;
case "hidden": case "hidden":
$html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\" $html = "<input type=\"{$this->type}\" id=\"{$this->id}\" class=\"{$this->class}\"
name=\"{$this->name}\" value=\"{$this->value}\" size=\"{$this->size}\" name=\"{$this->name}\" value=\"{$this->value}\" size=\"{$this->size}\"
maxlength=\"{$this->maxlength}\" {$this->readonly} {$this->disabled}>"; maxlength=\"{$this->maxlength}\" {$this->readonly} {$this->disabled}>";
break; break;
} }
return $html; return $html;
} }
function GetClose() function GetClose()
{ {
} }
} }
class HTMLCheckbox extends HTMLInput class HTMLCheckbox extends HTMLInput
{ {
function __construct($name,$value,$defvalue,$checkvalue="",$onclick="",$tabindex="") function __construct($name,$value,$defvalue,$checkvalue="",$onclick="",$tabindex="")
{ {
if($checkvalue!="") if($checkvalue!="")
$this->checkvalue=$checkvalue; $this->checkvalue=$checkvalue;
else else
$this->checkvalue=$value; $this->checkvalue=$value;
$this->name = $name; $this->name = $name;
$this->type = "checkbox"; $this->type = "checkbox";
$this->checkradiovalue = isset($okvalue)?$okvalue:null; $this->checkradiovalue = isset($okvalue)?$okvalue:null;
$this->defvalue = $defvalue; $this->defvalue = $defvalue;
$this->value = $value; $this->value = $value;
$this->onclick= $onclick; $this->onclick= $onclick;
$this->tabindex= $tabindex; $this->tabindex= $tabindex;
$this->orgvalue = $value; $this->orgvalue = $value;
} }
function Get() function Get()
{ {
if(($this->value=="" && $this->defvalue==$this->checkvalue)) { if(($this->value=="" && $this->defvalue==$this->checkvalue)) {
} }
if($this->checkvalue==$this->value) { if($this->checkvalue==$this->value) {
$this->checked="checked"; $this->checked="checked";
} }
if($this->value=="" && $this->defvalue!=$this->checkvalue) if($this->value=="" && $this->defvalue!=$this->checkvalue)
$this->checked=""; $this->checked="";
$this->value = $this->checkvalue; $this->value = $this->checkvalue;
//$this->value=1; //$this->value=1;
return parent::Get(); return parent::Get();
} }
function GetClose() function GetClose()
{ {
} }
}; };
class HTMLSelect class HTMLSelect
{ {
var $name; var $name;
var $size; var $size;
var $id; var $id;
var $readonly; var $readonly;
var $disabled; var $disabled;
var $options; var $options;
var $onchange; var $onchange;
var $selected; var $selected;
var $tabindex; var $tabindex;
var $class; var $class;
function __construct($name,$size,$id="",$readonly=false,$disabled=false,$tabindex="") function __construct($name,$size,$id="",$readonly=false,$disabled=false,$tabindex="")
{ {
$this->name=$name; $this->name=$name;
$this->size=$size; $this->size=$size;
$this->id=$id; $this->id=$id;
$this->readonly=$readonly; $this->readonly=$readonly;
$this->disabled=$disabled; $this->disabled=$disabled;
$this->tabindex=$tabindex; $this->tabindex=$tabindex;
$this->class=""; $this->class="";
if($id=="") if($id=="")
$this->id = $name; $this->id = $name;
} }
function AddOption($option,$value) function AddOption($option,$value)
{ {
$this->options[] = array($option,$value); $this->options[] = array($option,$value);
} }
function AddOptionsDimensionalArray($values) function AddOptionsDimensionalArray($values)
{ {
foreach($values as $key=>$value) foreach($values as $key=>$value)
{ {
$this->options[] = array($value[wert],$value[schluessel]); $this->options[] = array($value[wert],$value[schluessel]);
} }
} }
function AddOptionsAsocSimpleArray($values) function AddOptionsAsocSimpleArray($values)
{ {
foreach($values as $key=>$value) foreach($values as $key=>$value)
$this->options[] = array($value,$key); $this->options[] = array($value,$key);
} }
function AddOptionsSimpleArray($values) function AddOptionsSimpleArray($values)
{ {
if(is_array($values)) if(is_array($values))
{ {
foreach($values as $key=>$value) foreach($values as $key=>$value)
{ {
if(!is_numeric($key)) if(!is_numeric($key))
$this->options[] = array($value,$key); $this->options[] = array($value,$key);
else else
$this->options[] = array($value,$value); $this->options[] = array($value,$value);
} }
} }
} }
function AddOptions($values) function AddOptions($values)
{ {
$number=0; $number=0;
if(count($values)>0) if(count($values)>0)
{ {
foreach($values as $key=>$row) foreach($values as $key=>$row)
foreach($row as $value) foreach($row as $value)
{ {
if($number==0){ if($number==0){
$option=$value; $option=$value;
$number=1; $number=1;
} }
else { else {
$this->options[] = array($option,$value); $this->options[] = array($option,$value);
$number=0; $number=0;
$option=""; $option="";
} }
} }
} }
} }
function Get() function Get()
{ {
$html = "<select name=\"{$this->name}\" size=\"{$this->size}\" tabindex=\"{$this->tabindex}\" $html = "<select name=\"{$this->name}\" size=\"{$this->size}\" tabindex=\"{$this->tabindex}\"
id=\"{$this->id}\" class=\"{$this->class}\" onchange=\"{$this->onchange}\" [COMMONREADONLYSELECT]>"; id=\"{$this->id}\" class=\"{$this->class}\" onchange=\"{$this->onchange}\" [COMMONREADONLYSELECT]>";
if($this->options && count($this->options)>0) if($this->options && count($this->options)>0)
{ {
foreach($this->options as $key=>$value) foreach($this->options as $key=>$value)
{ {
if($this->value==$value[1]) if($this->value==$value[1])
$html .="<option value=\"{$value[1]}\" selected>{$value[0]}</option>"; $html .="<option value=\"{$value[1]}\" selected>{$value[0]}</option>";
else else
$html .="<option value=\"{$value[1]}\">{$value[0]}</option>"; $html .="<option value=\"{$value[1]}\">{$value[0]}</option>";
} }
} }
$html .="</select>"; $html .="</select>";
return $html; return $html;
} }
function GetClose() function GetClose()
{ {
} }
} }

View File

@ -1230,7 +1230,7 @@ class DB{
$sql = "UPDATE `$tablename` SET "; $sql = "UPDATE `$tablename` SET ";
foreach($ArrCols as $key=>$value) { foreach($ArrCols as $key=>$value) {
if($key!=$pkname && (isset($ziel[$key]) || !$zielspalten)) { if($key!=$pkname && (isset($ziel[$key]) || !$zielspalten)) {
$sqla[] = $key." = '".($escape?$this->real_escape_string($value):$value)."' "; $sqla[] = "`".$key."` = '".($escape?$this->real_escape_string($value):$value)."' ";
} }
} }
if(!empty($sqla)) { if(!empty($sqla)) {

View File

@ -736,9 +736,10 @@ class YUI {
if($value == '')$value = '0'; if($value == '')$value = '0';
$this->app->DB->Update("UPDATE $table SET rabatt='$value',keinrabatterlaubt=1 WHERE id='$id' LIMIT 1"); $this->app->DB->Update("UPDATE $table SET rabatt='$value',keinrabatterlaubt=1 WHERE id='$id' LIMIT 1");
$result = $this->app->DB->Select("SELECT ".$this->FormatPreis('rabatt')." FROM $table WHERE id='$id' LIMIT 1"); $result = $this->app->DB->Select("SELECT ".$this->FormatPreis('rabatt')." FROM $table WHERE id='$id' LIMIT 1");
$sort = $this->app->DB->Select("SELECT sort FROM $table WHERE id='$id' LIMIT 1");
$parent = $this->app->DB->Select("SELECT $module FROM $table WHERE id='$id' LIMIT 1"); //$sort = $this->app->DB->Select("SELECT sort FROM $table WHERE id='$id' LIMIT 1");
if($parent && $sort == 1)$this->app->DB->Update("UPDATE $module SET rabatt = '$value',keinrabatterlaubt=1 WHERE id = '$parent' LIMIT 1"); //$parent = $this->app->DB->Select("SELECT $module FROM $table WHERE id='$id' LIMIT 1");
//if($parent && $sort == 1)$this->app->DB->Update("UPDATE $module SET rabatt = '$value',keinrabatterlaubt=1 WHERE id = '$parent' LIMIT 1");
if(in_array($module, array('auftrag','rechnung','gutschrift'))) if(in_array($module, array('auftrag','rechnung','gutschrift')))
{ {
$tmptable_value = $this->app->DB->Select("SELECT $module FROM $table WHERE id = '$id' LIMIT 1"); $tmptable_value = $this->app->DB->Select("SELECT $module FROM $table WHERE id = '$id' LIMIT 1");
@ -2563,7 +2564,7 @@ class YUI {
$anzeigebrutto = true; $anzeigebrutto = true;
} }
} }
$sortcol = ' b.sort '; $sortcol = ' b.sort ';
$schreibschutz = !empty($docArr)?$docArr['schreibschutz']:$this->app->DB->Select("SELECT schreibschutz FROM $module WHERE id='$id'"); $schreibschutz = !empty($docArr)?$docArr['schreibschutz']:$this->app->DB->Select("SELECT schreibschutz FROM $module WHERE id='$id'");
if(!$schreibschutz)$sortcol = " concat('<input type=\"checkbox\" name=\"belegsort[]\" value=\"',b.id,'\" />',b.sort) as sort "; if(!$schreibschutz)$sortcol = " concat('<input type=\"checkbox\" name=\"belegsort[]\" value=\"',b.id,'\" />',b.sort) as sort ";
@ -2853,7 +2854,64 @@ class YUI {
LEFT JOIN artikel a ON a.id=b.artikel LEFT JOIN projekt p ON b.projekt=p.id LEFT JOIN artikel a ON a.id=b.artikel LEFT JOIN projekt p ON b.projekt=p.id
WHERE b.$module='$id'"; WHERE b.$module='$id'";
} else { }
else if ($module == "verbindlichkeit") // OpenXE
{
$sql = "
SELECT
$sortcol,
IF(
b.beschreibung != '',
IF(
CHAR_LENGTH(b.bezeichnung) > " . $this->app->erp->MaxArtikelbezeichnung() . ",
CONCAT(
SUBSTR(
CONCAT(b.bezeichnung, ' *'),
1,
" . $this->app->erp->MaxArtikelbezeichnung() . "
),
'...'
),
CONCAT(b.bezeichnung, ' *')
),
IF(
CHAR_LENGTH(b.bezeichnung) > " . $this->app->erp->MaxArtikelbezeichnung() . ",
CONCAT(
SUBSTR(
b.bezeichnung,
1,
" . $this->app->erp->MaxArtikelbezeichnung() . "
),
'...'
),
b.bezeichnung
)
) AS Artikel,
p.abkuerzung AS projekt,
a.nummer,
".$this->app->erp->FormatDate('lieferdatum')." AS lieferdatum,
TRIM(b.menge) +0 AS menge,
" . $this->FormatPreis($preiscell) . " AS preis,
" . $this->FormatPreis($preiscell."*menge") . " AS Betrag,
CONCAT(
k.sachkonto,
' - ',
k.beschriftung
) AS sachkonto,
b.id AS id
FROM
$table b
LEFT JOIN artikel a ON
a.id = b.artikel
LEFT JOIN projekt p ON
b.projekt = p.id
LEFT JOIN kontorahmen k ON
k.id = b.sachkonto
WHERE
b.$module = '$id'
";
}
else {
$sql = null; $sql = null;
$this->app->erp->RunHook('yui_position_sql', 3, $table, $id, $sql); $this->app->erp->RunHook('yui_position_sql', 3, $table, $id, $sql);
if($sql === null){ if($sql === null){
@ -3539,34 +3597,26 @@ class YUI {
function IconsSQLVerbindlichkeit() { function IconsSQLVerbindlichkeit() {
$go_ware = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/ware_go.png\" style=\"margin-right:1px\" title=\"Wareneingangspr&uuml;fung OK\" border=\"0\">"; $go_ware = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/lagergo.png\" style=\"margin-right:1px\" title=\"Wareneingangspr&uuml;fung OK\" border=\"0\">";
$stop_ware = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/ware_stop.png\" style=\"margin-right:1px\" title=\"Wareneingangspr&uuml;fung fehlt\" border=\"0\">"; $stop_ware = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/lagerstop.png\" style=\"margin-right:1px\" title=\"Wareneingangspr&uuml;fung fehlt\" border=\"0\">";
$go_summe = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/summe_go.png\" style=\"margin-right:1px\" title=\"Rechnungseingangspr&uuml;fung OK\" border=\"0\">";
$stop_summe = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/summe_stop.png\" style=\"margin-right:1px\" title=\"Rechnungseingangspr&uuml;fung fehlt\" border=\"0\">"; $go_pdf = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/summe_go.png\" style=\"margin-right:1px\" title=\"Anhang OK\" border=\"0\">";
$stop_pdf = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/summe_stop.png\" style=\"margin-right:1px\" title=\"Anhang fehlt\" border=\"0\">";
$go_summe = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/check_go.png\" style=\"margin-right:1px\" title=\"Rechnungseingangspr&uuml;fung OK\" border=\"0\">";
$stop_summe = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/check_stop.png\" style=\"margin-right:1px\" title=\"Rechnungseingangspr&uuml;fung fehlt\" border=\"0\">";
$go_zahlung = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/bank_go.svg\" style=\"margin-right:1px\" title=\"Kontoverkn&uuml;pfung OK\" border=\"0\">"; $go_zahlung = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/bank_go.svg\" style=\"margin-right:1px\" title=\"Kontoverkn&uuml;pfung OK\" border=\"0\">";
$stop_zahlung = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/bank_stop.svg\" style=\"margin-right:1px\" title=\"Kontoverkn&uuml;pfung fehlt\" border=\"0\">"; $stop_zahlung = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/bank_stop.svg\" style=\"margin-right:1px\" title=\"Kontoverkn&uuml;pfung fehlt\" border=\"0\">";
$stop_betragbezahlt = "<img alt=\"Zahlung fehlt\" src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/vorkassestop.png\" style=\"margin-right:1px\" title=\"Zahlung fehlt\" border=\"0\">"; $stop_betragbezahlt = "<img alt=\"Zahlung fehlt\" src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/vorkassestop.png\" style=\"margin-right:1px\" title=\"Zahlung fehlt\" border=\"0\">";
$gostop_betragbezahlt = "<img alt=\"teilweise bezahlt\" src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/vorkassegostop.png\" style=\"margin-right:1px\" title=\"teilweise bezahlt\" border=\"0\">"; $gostop_betragbezahlt = "<img alt=\"teilweise bezahlt\" src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/vorkassegostop.png\" style=\"margin-right:1px\" title=\"teilweise bezahlt\" border=\"0\">";
$go_betragbezahlt = "<img alt=\"nicht bezahlt\" src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/vorkassego.png\" style=\"margin-right:1px\" title=\"komplett bezahlt\" border=\"0\">"; $go_betragbezahlt = "<img alt=\"nicht bezahlt\" src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/vorkassego.png\" style=\"margin-right:1px\" title=\"bezahlt\" border=\"0\">";
return "CONCAT('<table><tr><td nowrap>', return "CONCAT('<table><tr><td nowrap>',
if(datei_anzahl > 0,'$go_pdf','$stop_pdf'),
if(v.freigabe,'$go_ware','$stop_ware'), if(v.freigabe,'$go_ware','$stop_ware'),
if(v.rechnungsfreigabe,'$go_summe','$stop_summe'), if(v.rechnungsfreigabe,'$go_summe','$stop_summe'),
IF( v.betragbezahlt = 0 OR (v.betrag > 0 AND v.betragbezahlt < 0),'$stop_betragbezahlt', if(v.bezahlt,'$go_betragbezahlt','$stop_betragbezahlt'),
IF(v.betrag > 0 AND (v.betragbezahlt + v.skonto_erhalten) >= v.betrag, '$go_betragbezahlt',
IF(v.betrag - v.betragbezahlt <= v.betrag-((v.betrag/100.0)*v.skonto),
'$gostop_betragbezahlt',
'$go_betragbezahlt'
)
)
),
if((
(SELECT COUNT(ka.id)
FROM kontoauszuege_zahlungsausgang ka WHERE ka.parameter=v.id AND ka.objekt='verbindlichkeit') +
(SELECT COUNT(ke.id) FROM kontoauszuege_zahlungseingang ke WHERE ke.parameter=v.id AND ke.objekt='verbindlichkeit')) > 0,
'$go_zahlung','$stop_zahlung'
),
'</td></tr></table>')"; '</td></tr></table>')";
} }
@ -14862,8 +14912,6 @@ source: "index.php?module=ajax&action=filter&filtername=' . $filter . $extendurl
$table->headings[4] = 'Abr. bei Kd'; $table->headings[4] = 'Abr. bei Kd';
$table->headings[5] = 'sonst. MwSt'; // kann man auch umbenennen in Keine $table->headings[5] = 'sonst. MwSt'; // kann man auch umbenennen in Keine
$table->headings[6] = 'MwSt'; $table->headings[6] = 'MwSt';
$table->headings[7] = 'Kommentar'; $table->headings[7] = 'Kommentar';
$table->headings[8] = 'Bezahlt'; $table->headings[8] = 'Bezahlt';

View File

@ -41,6 +41,10 @@ class PLACEHOLDER_MODULECLASSNAME {
$defaultorder = 1; $defaultorder = 1;
$defaultorderdesc = 0; $defaultorderdesc = 0;
$aligncenter = array();
$alignright = array();
$numbercols = array();
$sumcol = array();
$dropnbox = "PLACEHOLDER_DROPNBOX"; $dropnbox = "PLACEHOLDER_DROPNBOX";
@ -97,7 +101,7 @@ class PLACEHOLDER_MODULECLASSNAME {
$id = $this->app->Secure->GetGET('id'); $id = $this->app->Secure->GetGET('id');
// Check if other users are editing this id // Check if other users are editing this id
if($this->app->erp->DisableModul('artikel',$id)) if($this->app->erp->DisableModul('PLACEHOLDER_MODULENAME',$id))
{ {
return; return;
} }
@ -159,11 +163,17 @@ class PLACEHOLDER_MODULECLASSNAME {
// Load values again from database // Load values again from database
$dropnbox = "PLACEHOLDER_DROPNBOX"; $dropnbox = "PLACEHOLDER_DROPNBOX";
$result = $this->app->DB->SelectArr("PLACEHOLDER_SQL_LIST"." WHERE id=$id"); $result = $this->app->DB->SelectArr("PLACEHOLDER_SQL_LIST"." WHERE id=$id");
foreach ($result[0] as $key => $value) { foreach ($result[0] as $key => $value) {
$this->app->Tpl->Set(strtoupper($key), $value); $this->app->Tpl->Set(strtoupper($key), $value);
} }
if (!empty($result)) {
$PLACEHOLDER_MODULENAME_from_db = $result[0];
} else {
return;
}
/* /*
* Add displayed items later * Add displayed items later
@ -177,7 +187,6 @@ class PLACEHOLDER_MODULECLASSNAME {
*/ */
// $this->SetInput($input);
$this->app->Tpl->Parse('PAGE', "PLACEHOLDER_MODULENAME_edit.tpl"); $this->app->Tpl->Parse('PAGE', "PLACEHOLDER_MODULENAME_edit.tpl");
} }

View File

@ -3649,6 +3649,17 @@
"Extra": "", "Extra": "",
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
},
{
"Field": "kontorahmen",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": "0",
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
} }
], ],
"keys": [ "keys": [
@ -16976,6 +16987,17 @@
"Extra": "", "Extra": "",
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
},
{
"Field": "kontorahmen",
"Type": "int(11)",
"Collation": null,
"Null": "YES",
"Key": "",
"Default": "0",
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
} }
], ],
"keys": [ "keys": [
@ -30911,6 +30933,122 @@
} }
] ]
}, },
{
"name": "crossselling_artikel",
"collation": "utf8mb3_general_ci",
"type": "BASE TABLE",
"columns": [
{
"Field": "id",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "PRI",
"Default": null,
"Extra": "auto_increment",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{
"Field": "aktiv",
"Type": "int(1)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{
"Field": "art",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{
"Field": "artikel",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{
"Field": "crosssellingartikel",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{
"Field": "shop",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{
"Field": "sort",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{
"Field": "bemerkung",
"Type": "varchar(255)",
"Collation": "utf8mb3_general_ci",
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{
"Field": "gegenseitigzuweisen",
"Type": "int(1)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
}
],
"keys": [
{
"Key_name": "PRIMARY",
"Index_type": "BTREE",
"columns": [
"id"
],
"Non_unique": ""
}
]
},
{ {
"name": "datei", "name": "datei",
"collation": "utf8mb3_general_ci", "collation": "utf8mb3_general_ci",
@ -52382,6 +52520,17 @@
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
}, },
{
"Field": "nummer",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "PRI",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{ {
"Field": "bezeichnung", "Field": "bezeichnung",
"Type": "varchar(255)", "Type": "varchar(255)",
@ -52393,6 +52542,17 @@
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
}, },
{
"Field": "beschreibung",
"Type": "varchar(255)",
"Collation": "utf8mb3_general_ci",
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{ {
"Field": "projekt", "Field": "projekt",
"Type": "varchar(255)", "Type": "varchar(255)",
@ -64439,6 +64599,17 @@
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
}, },
{
"Field": "datum_abgeschlossen",
"Type": "datetime",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{ {
"Field": "verpackungszustand", "Field": "verpackungszustand",
"Type": "int(11)", "Type": "int(11)",
@ -64494,6 +64665,17 @@
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
}, },
{
"Field": "bearbeiter_abgeschlossen",
"Type": "varchar(255)",
"Collation": "utf8mb3_general_ci",
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{ {
"Field": "projekt", "Field": "projekt",
"Type": "int(11)", "Type": "int(11)",
@ -94837,6 +95019,17 @@
"Extra": "", "Extra": "",
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
},
{
"Field": "produkt_ausgehend",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
} }
], ],
"keys": [ "keys": [
@ -108970,6 +109163,17 @@
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
}, },
{
"Field": "usereditid",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "PRI",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{ {
"Field": "belegnr", "Field": "belegnr",
"Type": "varchar(255)", "Type": "varchar(255)",
@ -108981,6 +109185,17 @@
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
}, },
{
"Field": "datum",
"Type": "date",
"Collation": null,
"Null": "YES",
"Key": "",
"Default": null,
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{ {
"Field": "status_beleg", "Field": "status_beleg",
"Type": "varchar(64)", "Type": "varchar(64)",
@ -110707,6 +110922,39 @@
"Extra": "", "Extra": "",
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
},
{
"Field": "steuersatz_normal",
"Type": "decimal(5,2)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": "0",
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{
"Field": "steuersatz_ermaessigt",
"Type": "decimal(5,2)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": "0",
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{
"Field": "ust_befreit",
"Type": "int(1)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": "0",
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
} }
], ],
"keys": [ "keys": [
@ -111160,6 +111408,17 @@
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
}, },
{
"Field": "paketdistribution",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "MUL",
"Default": "0",
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{ {
"Field": "waehrung", "Field": "waehrung",
"Type": "varchar(255)", "Type": "varchar(255)",
@ -111302,6 +111561,17 @@
"Extra": "", "Extra": "",
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
},
{
"Field": "kontorahmen",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": "0",
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
} }
], ],
"keys": [ "keys": [
@ -117925,7 +118195,7 @@
{ {
"name": "fibu_buchungen_alle_view", "name": "fibu_buchungen_alle_view",
"type": "VIEW", "type": "VIEW",
"Create": "CREATE VIEW `fibu_buchungen_alle_view` AS select `fb`.`buchungsart` AS `buchungsart`,`fb`.`typ` AS `typ`,`fb`.`id` AS `id`,if(`fibu_objekte_view`.`datum` <> '',`fibu_objekte_view`.`datum`,`fb`.`datum`) AS `datum`,`fb`.`gegen_typ` AS `doc_typ`,`fb`.`gegen_id` AS `doc_id`,`fibu_objekte_view`.`info` AS `doc_info`, CAST(`fb`.`soll` AS decimal(10,2)) AS `betrag`,`fb`.`waehrung` AS `waehrung`,`fb`.`edit_module` AS `edit_module`,`fb`.`edit_id` AS `edit_id` from ((select 'umsatz' AS `buchungsart`,'rechnung' AS `typ`,`rechnung`.`id` AS `id`,-`rechnung`.`soll` AS `soll`,`rechnung`.`waehrung` AS `waehrung`,'rechnung' AS `gegen_typ`,`rechnung`.`id` AS `gegen_id`,`rechnung`.`datum` AS `datum`,'rechnung' AS `edit_module`,`rechnung`.`id` AS `edit_id` from `rechnung` where `rechnung`.`belegnr` <> '' union select 'umsatz' AS `umsatz`,'gutschrift' AS `gutschrift`,`gutschrift`.`id` AS `id`,`gutschrift`.`soll` AS `soll`,`gutschrift`.`waehrung` AS `waehrung`,'gutschrift' AS `gutschrift`,`gutschrift`.`id` AS `id`,`gutschrift`.`datum` AS `datum`,'gutschrift' AS `edit_module`,`gutschrift`.`id` AS `id` from `gutschrift` where `gutschrift`.`belegnr` <> '' union select 'aufwand' AS `aufwand`,'verbindlichkeit' AS `verbindlichkeit`,`verbindlichkeit`.`id` AS `id`,`verbindlichkeit`.`betrag` AS `betrag`,`verbindlichkeit`.`waehrung` AS `waehrung`,'verbindlichkeit' AS `verbindlichkeit`,`verbindlichkeit`.`id` AS `id`,`verbindlichkeit`.`rechnungsdatum` AS `rechnungsdatum`,'verbindlichkeit' AS `verbindlichkeit`,`verbindlichkeit`.`id` AS `id` from `verbindlichkeit` where `verbindlichkeit`.`belegnr` <> '' union select 'zahlung' AS `zahlung`,'kontoauszuege' AS `kontoauszuege`,`kontoauszuege`.`id` AS `id`,`kontoauszuege`.`soll` AS `soll`,`kontoauszuege`.`waehrung` AS `waehrung`,'kontoauszuege' AS `kontoauszuege`,`kontoauszuege`.`id` AS `id`,`kontoauszuege`.`buchung` AS `buchung`,'kontoauszuege' AS `kontoauszuege`,`kontoauszuege`.`id` AS `id` from `kontoauszuege` where `kontoauszuege`.`importfehler` is null union select 'abbuchung' AS `abbuchung`,`fibu_buchungen`.`von_typ` AS `von_typ`,`fibu_buchungen`.`von_id` AS `von_id`,`fibu_buchungen`.`betrag` AS `betrag`,`fibu_buchungen`.`waehrung` AS `waehrung`,`fibu_buchungen`.`nach_typ` AS `nach_typ`,`fibu_buchungen`.`nach_id` AS `nach_id`,`fibu_buchungen`.`datum` AS `datum`,'fibu_buchungen' AS `fibu_buchungen`,`fibu_buchungen`.`id` AS `id` from `fibu_buchungen` union select 'zubuchung' AS `zubuchung`,`fibu_buchungen`.`nach_typ` AS `nach_typ`,`fibu_buchungen`.`nach_id` AS `nach_id`,-`fibu_buchungen`.`betrag` AS `-``openxe``.``fibu_buchungen``.``betrag```,`fibu_buchungen`.`waehrung` AS `waehrung`,`fibu_buchungen`.`von_typ` AS `von_typ`,`fibu_buchungen`.`von_id` AS `von_id`,`fibu_buchungen`.`datum` AS `datum`,'fibu_buchungen' AS `fibu_buchungen`,`fibu_buchungen`.`id` AS `id` from `fibu_buchungen`) `fb` left join `fibu_objekte_view` on(`fb`.`gegen_typ` = `fibu_objekte_view`.`typ` and `fb`.`gegen_id` = `fibu_objekte_view`.`id`)) where `fb`.`datum` >= (select `firmendaten_werte`.`wert` from `firmendaten_werte` where `firmendaten_werte`.`name` = 'fibu_buchungen_startdatum') and `fibu_objekte_view`.`datum` >= (select `firmendaten_werte`.`wert` from `firmendaten_werte` where `firmendaten_werte`.`name` = 'fibu_buchungen_startdatum') or `fibu_objekte_view`.`datum` = ''" "Create": "CREATE VIEW `fibu_buchungen_alle_view` AS select `fb`.`buchungsart` AS `buchungsart`,`fb`.`typ` AS `typ`,`fb`.`id` AS `id`,if(`fibu_objekte_view`.`datum` <> '',`fibu_objekte_view`.`datum`,`fb`.`datum`) AS `datum`,`fb`.`gegen_typ` AS `doc_typ`,`fb`.`gegen_id` AS `doc_id`,`fibu_objekte_view`.`info` AS `doc_info`,cast(`fb`.`soll` as decimal(10,2)) AS `betrag`,`fb`.`waehrung` AS `waehrung`,`fb`.`edit_module` AS `edit_module`,`fb`.`edit_id` AS `edit_id` from ((select 'umsatz' AS `buchungsart`,'rechnung' AS `typ`,`rechnung`.`id` AS `id`,-`rechnung`.`soll` AS `soll`,`rechnung`.`waehrung` AS `waehrung`,'rechnung' AS `gegen_typ`,`rechnung`.`id` AS `gegen_id`,`rechnung`.`datum` AS `datum`,'rechnung' AS `edit_module`,`rechnung`.`id` AS `edit_id` from `rechnung` where `rechnung`.`belegnr` <> '' union select 'umsatz' AS `umsatz`,'gutschrift' AS `gutschrift`,`gutschrift`.`id` AS `id`,`gutschrift`.`soll` AS `soll`,`gutschrift`.`waehrung` AS `waehrung`,'gutschrift' AS `gutschrift`,`gutschrift`.`id` AS `id`,`gutschrift`.`datum` AS `datum`,'gutschrift' AS `edit_module`,`gutschrift`.`id` AS `id` from `gutschrift` where `gutschrift`.`belegnr` <> '' union select 'aufwand' AS `aufwand`,'verbindlichkeit' AS `verbindlichkeit`,`verbindlichkeit`.`id` AS `id`,`verbindlichkeit`.`betrag` AS `betrag`,`verbindlichkeit`.`waehrung` AS `waehrung`,'verbindlichkeit' AS `verbindlichkeit`,`verbindlichkeit`.`id` AS `id`,`verbindlichkeit`.`rechnungsdatum` AS `rechnungsdatum`,'verbindlichkeit' AS `verbindlichkeit`,`verbindlichkeit`.`id` AS `id` from `verbindlichkeit` where `verbindlichkeit`.`belegnr` <> '' union select 'zahlung' AS `zahlung`,'kontoauszuege' AS `kontoauszuege`,`kontoauszuege`.`id` AS `id`,`kontoauszuege`.`soll` AS `soll`,`kontoauszuege`.`waehrung` AS `waehrung`,'kontoauszuege' AS `kontoauszuege`,`kontoauszuege`.`id` AS `id`,`kontoauszuege`.`buchung` AS `buchung`,'kontoauszuege' AS `kontoauszuege`,`kontoauszuege`.`id` AS `id` from `kontoauszuege` where `kontoauszuege`.`importfehler` is null union select 'abbuchung' AS `abbuchung`,`fibu_buchungen`.`von_typ` AS `von_typ`,`fibu_buchungen`.`von_id` AS `von_id`,`fibu_buchungen`.`betrag` AS `betrag`,`fibu_buchungen`.`waehrung` AS `waehrung`,`fibu_buchungen`.`nach_typ` AS `nach_typ`,`fibu_buchungen`.`nach_id` AS `nach_id`,`fibu_buchungen`.`datum` AS `datum`,'fibu_buchungen' AS `fibu_buchungen`,`fibu_buchungen`.`id` AS `id` from `fibu_buchungen` union select 'zubuchung' AS `zubuchung`,`fibu_buchungen`.`nach_typ` AS `nach_typ`,`fibu_buchungen`.`nach_id` AS `nach_id`,-`fibu_buchungen`.`betrag` AS `-``openxe``.``fibu_buchungen``.``betrag```,`fibu_buchungen`.`waehrung` AS `waehrung`,`fibu_buchungen`.`von_typ` AS `von_typ`,`fibu_buchungen`.`von_id` AS `von_id`,`fibu_buchungen`.`datum` AS `datum`,'fibu_buchungen' AS `fibu_buchungen`,`fibu_buchungen`.`id` AS `id` from `fibu_buchungen`) `fb` left join `fibu_objekte_view` on(`fb`.`gegen_typ` = `fibu_objekte_view`.`typ` and `fb`.`gegen_id` = `fibu_objekte_view`.`id`)) where `fb`.`datum` >= (select `firmendaten_werte`.`wert` from `firmendaten_werte` where `firmendaten_werte`.`name` = 'fibu_buchungen_startdatum') and `fibu_objekte_view`.`datum` >= (select `firmendaten_werte`.`wert` from `firmendaten_werte` where `firmendaten_werte`.`name` = 'fibu_buchungen_startdatum') or `fibu_objekte_view`.`datum` = ''"
} }
] ]
} }

View File

@ -1699,7 +1699,6 @@ if (typeof document.hidden !== \"undefined\") { // Opera 12.10 and Firefox 18 an
FROM `beleg_chargesnmhd` s FROM `beleg_chargesnmhd` s
INNER JOIN lieferschein_position lp ON s.doctype = 'lieferschein' AND s.pos = lp.id AND s.type = 'sn' AND s.wert <> '' INNER JOIN lieferschein_position lp ON s.doctype = 'lieferschein' AND s.pos = lp.id AND s.type = 'sn' AND s.wert <> ''
INNER JOIN lieferschein l ON lp.lieferschein = l.id AND l.status <> 'storniert' INNER JOIN lieferschein l ON lp.lieferschein = l.id AND l.status <> 'storniert'
WHERE l.id NOT IN (SELECT lieferscheinid FROM retoure LIMIT 1)
GROUP BY s.wert, lp.artikel GROUP BY s.wert, lp.artikel
) )
UNION ALL ( UNION ALL (
@ -1708,7 +1707,7 @@ if (typeof document.hidden !== \"undefined\") { // Opera 12.10 and Firefox 18 an
SELECT lp.artikel, s.seriennummer as wert , count(s.id) as anzahl, max(l.id) as lieferschein, max(l.belegnr) as belegnr SELECT lp.artikel, s.seriennummer as wert , count(s.id) as anzahl, max(l.id) as lieferschein, max(l.belegnr) as belegnr
FROM `seriennummern` s FROM `seriennummern` s
INNER JOIN lieferschein_position lp ON s.lieferscheinpos = lp.id INNER JOIN lieferschein_position lp ON s.lieferscheinpos = lp.id
INNER JOIN lieferschein l ON lp.lieferschein = l.id WHERE s.seriennummer <> '' AND l.id NOT IN (SELECT lieferscheinid FROM retoure LIMIT 1) INNER JOIN lieferschein l ON lp.lieferschein = l.id WHERE s.seriennummer <> ''
GROUP BY s.seriennummer, lp.artikel GROUP BY s.seriennummer, lp.artikel

View File

@ -2676,7 +2676,7 @@ public function NavigationHooks(&$menu)
// @refactor in Dateien Modul // @refactor in Dateien Modul
function AnzahlDateien($objekt,$id) function AnzahlDateien($objekt,$id)
{ {
return $this->app->DB->Select("SELECT COUNT(id) FROM datei_stichwoerter WHERE objekt='$objekt' AND parameter='$id'"); return $this->app->DB->Select("SELECT COUNT(ds.id) FROM datei_stichwoerter ds INNER JOIN datei d ON d.id = ds.datei WHERE ds.objekt='$objekt' AND ds.parameter='$id' AND d.geloescht <> 1");
} }
@ -8605,6 +8605,7 @@ function StandardFirmendatenWerte()
$this->AddNeuenFirmendatenWert( 'bezeichnungproformarechnungersatz', 'varchar', '64', '', 'Lieferschein mit Preis', 'Lieferschein mit Preis', 0, 0); $this->AddNeuenFirmendatenWert( 'bezeichnungproformarechnungersatz', 'varchar', '64', '', 'Lieferschein mit Preis', 'Lieferschein mit Preis', 0, 0);
$this->AddNeuenFirmendatenWert( 'bezeichnungauftragersatz', 'varchar', '64', '', 'Proformarechnung', 'Proformarechnung', 0, 0); $this->AddNeuenFirmendatenWert( 'bezeichnungauftragersatz', 'varchar', '64', '', 'Proformarechnung', 'Proformarechnung', 0, 0);
$this->AddNeuenFirmendatenWert( 'bezeichnungrechnungersatz', 'varchar', '64', '', 'Quittung', 'Quittung', 0, 0); $this->AddNeuenFirmendatenWert( 'bezeichnungrechnungersatz', 'varchar', '64', '', 'Quittung', 'Quittung', 0, 0);
$this->AddNeuenFirmendatenWert( 'rechnungersatz_standard', 'int', '1', '', '0', '0', 0, 0);
$this->AddNeuenFirmendatenWert( 'bezeichnunglieferscheinersatz', 'varchar', '64', '', 'Alternative Beschriftung', 'Alternative Beschriftung', 0, 0); $this->AddNeuenFirmendatenWert( 'bezeichnunglieferscheinersatz', 'varchar', '64', '', 'Alternative Beschriftung', 'Alternative Beschriftung', 0, 0);
$this->AddNeuenFirmendatenWert( 'bezeichnungbestellungersatz', 'varchar', '64', '', 'Alternative Beschriftung', 'Alternative Beschriftung', 0, 0); $this->AddNeuenFirmendatenWert( 'bezeichnungbestellungersatz', 'varchar', '64', '', 'Alternative Beschriftung', 'Alternative Beschriftung', 0, 0);
$this->AddNeuenFirmendatenWert( 'footer_zentriert', 'int', '1', '', '0', '0', 0, 0); $this->AddNeuenFirmendatenWert( 'footer_zentriert', 'int', '1', '', '0', '0', 0, 0);
@ -26850,7 +26851,9 @@ function Firmendaten($field,$projekt="")
$tmp[$extra[$i]['type']] = $extra[$i]['bezeichnung']; $tmp[$extra[$i]['type']] = $extra[$i]['bezeichnung'];
} }
if($zahlungsweise && empty($tmp[$zahlungsweise]))$tmp[$zahlungsweise] = ucfirst($zahlungsweise); if($zahlungsweise && empty($tmp[$zahlungsweise]))$tmp[$zahlungsweise] = ucfirst($zahlungsweise);
asort($tmp); if (!empty($tmp)) {
asort($tmp);
}
return $tmp; return $tmp;
// return array('rechnung'=>'Rechnung','vorkasse'=>'Vorkasse','nachnahme'=>'Nachnahme','kreditkarte'=>'Kreditkarte','einzugsermaechtigung'=>'Einzugsermaechtigung','bar'=>'Bar','paypal'=>'PayPal','lastschrift'=>'Lastschrift'); // return array('rechnung'=>'Rechnung','vorkasse'=>'Vorkasse','nachnahme'=>'Nachnahme','kreditkarte'=>'Kreditkarte','einzugsermaechtigung'=>'Einzugsermaechtigung','bar'=>'Bar','paypal'=>'PayPal','lastschrift'=>'Lastschrift');
} }
@ -27033,7 +27036,7 @@ function Firmendaten($field,$projekt="")
'zahlung_amazon_bestellung','zahlung_billsafe','zahlung_sofortueberweisung','zahlung_secupay','zahlung_eckarte','zeiterfassung_schliessen','zeiterfassung_pflicht', 'zahlung_amazon_bestellung','zahlung_billsafe','zahlung_sofortueberweisung','zahlung_secupay','zahlung_eckarte','zeiterfassung_schliessen','zeiterfassung_pflicht',
'zahlung_kreditkarte','zahlung_nachnahme','zahlung_ratenzahlung','knickfalz','begrenzen_artikeltabelle','begrenzen_adressetabelle','begrenzen_belege','schnellsuche','schnellsuchecount','versandmail_zwischenspeichern','keinhauptmenurahmen','bordertabnav','steuerfrei_inland_ausblenden','auftragexplodieren_unterstuecklisten', 'zahlung_kreditkarte','zahlung_nachnahme','zahlung_ratenzahlung','knickfalz','begrenzen_artikeltabelle','begrenzen_adressetabelle','begrenzen_belege','schnellsuche','schnellsuchecount','versandmail_zwischenspeichern','keinhauptmenurahmen','bordertabnav','steuerfrei_inland_ausblenden','auftragexplodieren_unterstuecklisten',
'standardaufloesung','immerbruttorechnungen','immernettorechnungen','bestellvorschlaggroessernull','erweiterte_positionsansicht','schnellanlegen','kleinunternehmer','steuerspalteausblenden','api_enable','api_importwarteschlange','warnung_doppelte_nummern','warnung_doppelte_seriennummern','wareneingang_zwischenlager','bestellungohnepreis','zahlung_lastschrift_konditionen','porto_berechnen','breite_artikelbeschreibung','deviceenable','auftrag_eantab','bestellungmitartikeltext','bestellungeigeneartikelnummer','bestellunglangeartikelnummern','steuer_standardkonto_aufwendungen', 'standardaufloesung','immerbruttorechnungen','immernettorechnungen','bestellvorschlaggroessernull','erweiterte_positionsansicht','schnellanlegen','kleinunternehmer','steuerspalteausblenden','api_enable','api_importwarteschlange','warnung_doppelte_nummern','warnung_doppelte_seriennummern','wareneingang_zwischenlager','bestellungohnepreis','zahlung_lastschrift_konditionen','porto_berechnen','breite_artikelbeschreibung','deviceenable','auftrag_eantab','bestellungmitartikeltext','bestellungeigeneartikelnummer','bestellunglangeartikelnummern','steuer_standardkonto_aufwendungen',
'iconset_dunkel','api_cleanutf8','mahnwesenmitkontoabgleich','briefhtml','absenderunterstrichen','seite_von_ausrichtung_relativ','wareneingang_gross','datatables_export_button_flash','viernachkommastellen_belege','stornorechnung_standard','angebotersatz_standard','geburtstagekalender','footer_zentriert','auftragmarkierenegsaldo','wareneingangauftragzubestellung','freifelderimdokument','zeiterfassung_anderemitarbeiter','zeiterfassung_beschreibungssperre','zeiterfassung_ort','zeiterfassung_kommentar','zeiterfassung_erweitert','footer_reihenfolge_angebot_aktivieren','footer_reihenfolge_auftrag_aktivieren','footer_reihenfolge_rechnung_aktivieren','footer_reihenfolge_gutschrift_aktivieren','footer_reihenfolge_lieferschein_aktivieren','footer_reihenfolge_bestellung_aktivieren','position_quantity_change_price_update', 'iconset_dunkel','api_cleanutf8','mahnwesenmitkontoabgleich','briefhtml','absenderunterstrichen','seite_von_ausrichtung_relativ','wareneingang_gross','datatables_export_button_flash','viernachkommastellen_belege','stornorechnung_standard','angebotersatz_standard','rechnungersatz_standard','geburtstagekalender','footer_zentriert','auftragmarkierenegsaldo','wareneingangauftragzubestellung','freifelderimdokument','zeiterfassung_anderemitarbeiter','zeiterfassung_beschreibungssperre','zeiterfassung_ort','zeiterfassung_kommentar','zeiterfassung_erweitert','footer_reihenfolge_angebot_aktivieren','footer_reihenfolge_auftrag_aktivieren','footer_reihenfolge_rechnung_aktivieren','footer_reihenfolge_gutschrift_aktivieren','footer_reihenfolge_lieferschein_aktivieren','footer_reihenfolge_bestellung_aktivieren','position_quantity_change_price_update',
'beleg_pos_ean','beleg_pos_charge','beleg_pos_mhd','beleg_pos_sn','beleg_pos_zolltarifnummer', 'beleg_pos_ean','beleg_pos_charge','beleg_pos_mhd','beleg_pos_sn','beleg_pos_zolltarifnummer',
'schnellanlegen_ohnefreigabe','langeartikelnummern','noauth','belege_subpositionen', 'schnellanlegen_ohnefreigabe','langeartikelnummern','noauth','belege_subpositionen',
'belege_subpositionenstuecklisten','briefpapier_ohnedoppelstrich','bearbeiteremailimdokument', 'belege_subpositionenstuecklisten','briefpapier_ohnedoppelstrich','bearbeiteremailimdokument',
@ -34837,7 +34840,7 @@ function Firmendaten($field,$projekt="")
$projekt = $orderRow['projekt']; $projekt = $orderRow['projekt'];
$differenztage = $this->Projektdaten($projekt,'differenz_auslieferung_tage'); $differenztage = $this->Projektdaten($projekt,'differenz_auslieferung_tage');
if($differenztage<0 || empty($differenztage)) { if($differenztage<0 || empty($differenztage)) {
$differenztage=2; $differenztage=0;
} }
$lieferdatum = $orderRow['lieferdatum']; $lieferdatum = $orderRow['lieferdatum'];
$land = $orderRow['land']; $land = $orderRow['land'];
@ -35375,6 +35378,7 @@ function Firmendaten($field,$projekt="")
{ {
case 'bestellung': case 'bestellung':
case 'anfrage': case 'anfrage':
case 'verbindlichkeit':
$aufwendung = true; $aufwendung = true;
break; break;
} }
@ -37298,7 +37302,7 @@ function Firmendaten($field,$projekt="")
function GetDateiSubjektObjekt($subjekt,$objekt,$parameter) function GetDateiSubjektObjekt($subjekt,$objekt,$parameter)
{ {
$dateien = $this->app->DB->SelectArr("SELECT datei FROM datei_stichwoerter WHERE subjekt LIKE '$subjekt' AND objekt LIKE '$objekt' AND parameter='$parameter' GROUP by datei"); $dateien = $this->app->DB->SelectArr("SELECT datei FROM datei_stichwoerter INNER JOIN datei d on d.id = datei WHERE subjekt LIKE '$subjekt' AND objekt LIKE '$objekt' AND parameter='$parameter' AND d.geloescht <> 1 GROUP by datei");
if(empty($dateien)) { if(empty($dateien)) {
return null; return null;
} }

View File

@ -1586,14 +1586,20 @@ class Remote
$data[$i]['crosssellingartikel'] = []; $data[$i]['crosssellingartikel'] = [];
} }
$gegenseitigzugewiesen = $this->app->DB->SelectArr("SELECT a.id, a.nummer, ak.bezeichnung as kategorie, a.name_de, a.name_en, ca.art, ca.gegenseitigzuweisen, af.nummer AS fremdnummer
$sql =
"SELECT a.id, a.nummer, ak.bezeichnung as kategorie, a.name_de, a.name_en, ca.art, ca.gegenseitigzuweisen, af.nummer AS fremdnummer
FROM crossselling_artikel ca FROM crossselling_artikel ca
JOIN artikel a ON ca.artikel = a.id JOIN artikel a ON ca.artikel = a.id
LEFT JOIN artikelkategorien ak ON CONCAT(ak.id,'_kat') = a.typ LEFT JOIN artikelkategorien ak ON CONCAT(ak.id,'_kat') = a.typ
LEFT JOIN (SELECT af.id,af.nummer,af.artikel,af.shopid FROM artikelnummer_fremdnummern af JOIN (SELECT artikel, MAX(shopid) AS maxid FROM artikelnummer_fremdnummern WHERE aktiv=1 AND (shopid=0 OR shopid=2) GROUP BY artikel) x ON x.artikel = af.artikel AND af.shopid=x.maxid WHERE af.aktiv = 1) af ON af.artikel = a.id LEFT JOIN (SELECT af.id,af.nummer,af.artikel,af.shopid FROM artikelnummer_fremdnummern af JOIN (SELECT artikel, MAX(shopid) AS maxid FROM artikelnummer_fremdnummern WHERE aktiv=1 AND (shopid=0 OR shopid=2) GROUP BY artikel) x ON x.artikel = af.artikel AND af.shopid=x.maxid WHERE af.aktiv = 1) af ON af.artikel = a.id
LEFT JOIN (SELECT nummer,artikel FROM artikelnummer_fremdnummern WHERE shopid=0 OR shopid='$id' ORDER BY shopid DESC LIMIT 1 ) af2 ON af2.artikel = a.id
WHERE ca.crosssellingartikel='" . $tmp->GetId() . "' AND ca.gegenseitigzuweisen=1 AND (ca.shop='$id' OR ca.shop='0') WHERE ca.crosssellingartikel='" . $tmp->GetId() . "' AND ca.gegenseitigzuweisen=1 AND (ca.shop='$id' OR ca.shop='0')
LEFT JOIN (SELECT nummer,artikel FROM artikelnummer_fremdnummern WHERE shopid=0 OR shopid='$id' ORDER BY shopid DESC LIMIT 1 ) af ON af.artikel = a.id GROUP BY ca.artikel, ca.art";
GROUP BY ca.artikel, ca.art");
$gegenseitigzugewiesen = $this->app->DB->SelectArr($sql);
if (!empty($gegenseitigzugewiesen)) { if (!empty($gegenseitigzugewiesen)) {
foreach ($gegenseitigzugewiesen as $gegenseitigzugewiesenercrosssellingartikel) { foreach ($gegenseitigzugewiesen as $gegenseitigzugewiesenercrosssellingartikel) {
$data[$i]['crosssellingartikel'][] = $gegenseitigzugewiesenercrosssellingartikel; $data[$i]['crosssellingartikel'][] = $gegenseitigzugewiesenercrosssellingartikel;

View File

@ -1,406 +1,406 @@
<?php <?php
/* /*
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
* *
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019 * Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
* *
* This file is licensed under the Embedded Projects General Public License *Version 3.1. * This file is licensed under the Embedded Projects General Public License *Version 3.1.
* *
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis * You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
* to obtain the text of the corresponding license version. * to obtain the text of the corresponding license version.
* *
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*/ */
?> ?>
<?php <?php
if(!class_exists('BriefpapierCustom')) if(!class_exists('BriefpapierCustom'))
{ {
class BriefpapierCustom extends Briefpapier class BriefpapierCustom extends Briefpapier
{ {
} }
} }
class BestellungPDF extends BriefpapierCustom { class BestellungPDF extends BriefpapierCustom {
public $doctype; public $doctype;
function __construct($app,$projekt="") function __construct($app,$projekt="")
{ {
$this->app=$app; $this->app=$app;
//parent::Briefpapier(); //parent::Briefpapier();
$this->doctype="bestellung"; $this->doctype="bestellung";
$this->doctypeOrig="Bestellung"; $this->doctypeOrig="Bestellung";
$this->bestellungohnepreis=0; $this->bestellungohnepreis=0;
parent::__construct($this->app,$projekt); parent::__construct($this->app,$projekt);
} }
function GetBestellung($id) function GetBestellung($id)
{ {
$this->doctypeid = $id; $this->doctypeid = $id;
$briefpapier_bearbeiter_ausblenden = $this->app->erp->Firmendaten('briefpapier_bearbeiter_ausblenden'); $briefpapier_bearbeiter_ausblenden = $this->app->erp->Firmendaten('briefpapier_bearbeiter_ausblenden');
$this->setRecipientLieferadresse($id,"bestellung"); $this->setRecipientLieferadresse($id,"bestellung");
$data = $this->app->DB->SelectRow( $data = $this->app->DB->SelectRow(
"SELECT adresse,projekt, sprache, angebot, ustid, keineartikelnummern, bestellbestaetigung, artikelnummerninfotext, "SELECT adresse,projekt, sprache, angebot, ustid, keineartikelnummern, bestellbestaetigung, artikelnummerninfotext,
einkaeufer, belegnr, freitext, bodyzusatz, ohne_briefpapier, abweichendebezeichnung, bestellungohnepreis, einkaeufer, belegnr, freitext, bodyzusatz, ohne_briefpapier, abweichendebezeichnung, bestellungohnepreis,
kundennummerlieferant AS kundennummer, DATE_FORMAT(datum,'%d.%m.%Y') AS datum, DATE_FORMAT(datum,'%Y%m%d') as datum2, kundennummerlieferant AS kundennummer, DATE_FORMAT(datum,'%d.%m.%Y') AS datum, DATE_FORMAT(datum,'%Y%m%d') as datum2,
lieferantennummer lieferantennummer
FROM bestellung FROM bestellung
WHERE id='$id' WHERE id='$id'
LIMIT 1" LIMIT 1"
); );
extract($data,EXTR_OVERWRITE); extract($data,EXTR_OVERWRITE);
$adresse = $data['adresse']; $adresse = $data['adresse'];
$sprache = $data['sprache']; $sprache = $data['sprache'];
$angebot = $data['angebot']; $angebot = $data['angebot'];
$ustid = $data['ustid']; $ustid = $data['ustid'];
$projekt = $data['projekt']; $projekt = $data['projekt'];
$keineartikelnummern = $data['keineartikelnummern']; $keineartikelnummern = $data['keineartikelnummern'];
$bestellbestaetigung = $data['bestellbestaetigung']; $bestellbestaetigung = $data['bestellbestaetigung'];
$artikelnummerninfotext = $data['artikelnummerninfotext']; $artikelnummerninfotext = $data['artikelnummerninfotext'];
$einkaeufer = $data['einkaeufer']; $einkaeufer = $data['einkaeufer'];
$belegnr = $data['belegnr']; $belegnr = $data['belegnr'];
$freitext = $data['freitext']; $freitext = $data['freitext'];
$bodyzusatz = $data['bodyzusatz']; $bodyzusatz = $data['bodyzusatz'];
$ohne_briefpapier = $data['ohne_briefpapier']; $ohne_briefpapier = $data['ohne_briefpapier'];
$abweichendebezeichnung = $data['abweichendebezeichnung']; $abweichendebezeichnung = $data['abweichendebezeichnung'];
$bestellungohnepreis = $data['bestellungohnepreis']; $bestellungohnepreis = $data['bestellungohnepreis'];
$kundennummer = $data['kundennummer']; $kundennummer = $data['kundennummer'];
$datum = $data['datum']; $datum = $data['datum'];
$datum2 = $data['datum2']; $datum2 = $data['datum2'];
$lieferantennummer = $data['lieferantennummer']; $lieferantennummer = $data['lieferantennummer'];
$this->bestellungohnepreis=$data['bestellungohnepreis']; $this->bestellungohnepreis=$data['bestellungohnepreis'];
if(empty($kundennummer)) { if(empty($kundennummer)) {
$kundennummer = $this->app->DB->Select("SELECT kundennummerlieferant FROM adresse WHERE id='$adresse' LIMIT 1"); $kundennummer = $this->app->DB->Select("SELECT kundennummerlieferant FROM adresse WHERE id='$adresse' LIMIT 1");
} }
if($einkaeufer=='') { if($einkaeufer=='') {
$einkaeufer = $this->app->DB->Select("SELECT bearbeiter FROM bestellung WHERE id='$id' LIMIT 1"); $einkaeufer = $this->app->DB->Select("SELECT bearbeiter FROM bestellung WHERE id='$id' LIMIT 1");
} }
if(empty($sprache)) { if(empty($sprache)) {
$sprache = $this->app->DB->Select("SELECT sprache FROM adresse WHERE id='$adresse' LIMIT 1"); $sprache = $this->app->DB->Select("SELECT sprache FROM adresse WHERE id='$adresse' LIMIT 1");
} }
$kundennummer = $this->app->erp->ReadyForPDF($kundennummer); $kundennummer = $this->app->erp->ReadyForPDF($kundennummer);
$einkaeufer = $this->app->erp->ReadyForPDF($einkaeufer); $einkaeufer = $this->app->erp->ReadyForPDF($einkaeufer);
$angebot = $this->app->erp->ReadyForPDF($angebot); $angebot = $this->app->erp->ReadyForPDF($angebot);
$this->app->erp->BeschriftungSprache($sprache); $this->app->erp->BeschriftungSprache($sprache);
$this->sprache = $sprache; $this->sprache = $sprache;
$projektabkuerzung = $this->app->DB->Select(sprintf('SELECT abkuerzung FROM projekt WHERE id = %d', $projekt)); $projektabkuerzung = $this->app->DB->Select(sprintf('SELECT abkuerzung FROM projekt WHERE id = %d', $projekt));
if($this->bestellungohnepreis) { if($this->bestellungohnepreis) {
$this->nichtsichtbar_summe = 1; $this->nichtsichtbar_summe = 1;
} }
if($ohne_briefpapier=='1') { if($ohne_briefpapier=='1') {
$this->logofile = ''; $this->logofile = '';
$this->briefpapier=''; $this->briefpapier='';
$this->briefpapier2=''; $this->briefpapier2='';
} }
if($belegnr=='' || $belegnr=='0') { if($belegnr=='' || $belegnr=='0') {
$belegnr = '- '.$this->app->erp->Beschriftung('dokument_entwurf'); $belegnr = '- '.$this->app->erp->Beschriftung('dokument_entwurf');
} }
$this->doctypeOrig=$this->app->erp->Beschriftung('dokument_bestellung')." $belegnr"; $this->doctypeOrig=$this->app->erp->Beschriftung('dokument_bestellung')." $belegnr";
if($abweichendebezeichnung) if($abweichendebezeichnung)
{ {
$this->doctypeOrig=($this->app->erp->Beschriftung('bezeichnungbestellungersatz')?$this->app->erp->Beschriftung('bezeichnungbestellungersatz'):$this->app->erp->Beschriftung('dokument_bestellung'))." $belegnr"; $this->doctypeOrig=($this->app->erp->Beschriftung('bezeichnungbestellungersatz')?$this->app->erp->Beschriftung('bezeichnungbestellungersatz'):$this->app->erp->Beschriftung('dokument_bestellung'))." $belegnr";
} }
else { else {
$this->doctypeOrig=$this->app->erp->Beschriftung('dokument_bestellung')." $belegnr"; $this->doctypeOrig=$this->app->erp->Beschriftung('dokument_bestellung')." $belegnr";
} }
if($angebot=='') { if($angebot=='') {
$angebot = '-'; $angebot = '-';
} }
if($kundennummer=='') { if($kundennummer=='') {
$kundennummer= '-'; $kundennummer= '-';
} }
if(!$this->app->erp->BestellungMitUmsatzeuer($id)) { if(!$this->app->erp->BestellungMitUmsatzeuer($id)) {
$this->ust_befreit=true; $this->ust_befreit=true;
} }
/** @var \Xentral\Modules\Company\Service\DocumentCustomizationService $service */ /** @var \Xentral\Modules\Company\Service\DocumentCustomizationService $service */
$service = $this->app->Container->get('DocumentCustomizationService'); $service = $this->app->Container->get('DocumentCustomizationService');
if($block = $service->findActiveBlock('corr', 'suppliers_order', $projekt)) { if($block = $service->findActiveBlock('corr', 'suppliers_order', $projekt)) {
$sCD = $service->parseBlockAsArray($this->getLanguageCodeFrom($this->sprache),'corr', 'suppliers_order',[ $sCD = $service->parseBlockAsArray($this->getLanguageCodeFrom($this->sprache),'corr', 'suppliers_order',[
'BESTELLNUMMER' => $belegnr, 'BESTELLNUMMER' => $belegnr,
'DATUM' => $datum, 'DATUM' => $datum,
'KUNDENNUMMER' => $kundennummer, 'KUNDENNUMMER' => $kundennummer,
'EINKAEUFER' => $einkaeufer, 'EINKAEUFER' => $einkaeufer,
'LIEFERANTENNUMMER' => $lieferantennummer, 'LIEFERANTENNUMMER' => $lieferantennummer,
'PROJEKT' => $projektabkuerzung, 'PROJEKT' => $projektabkuerzung,
'EMAIL' => '', 'EMAIL' => '',
'TELEFON' => '', 'TELEFON' => '',
'BEARBEITER' => '', 'BEARBEITER' => '',
'VERTRIEB' => '', 'VERTRIEB' => '',
], $projekt); ], $projekt);
if(!empty($sCD)) { if(!empty($sCD)) {
switch($block['fontstyle']) { switch($block['fontstyle']) {
case 'f': case 'f':
$this->setBoldCorrDetails($sCD); $this->setBoldCorrDetails($sCD);
break; break;
case 'i': case 'i':
$this->setItalicCorrDetails($sCD); $this->setItalicCorrDetails($sCD);
break; break;
case 'fi': case 'fi':
$this->setItalicBoldCorrDetails($sCD); $this->setItalicBoldCorrDetails($sCD);
break; break;
default: default:
$this->setCorrDetails($sCD, true); $this->setCorrDetails($sCD, true);
break; break;
} }
} }
} }
else{ else{
if($briefpapier_bearbeiter_ausblenden){ if($briefpapier_bearbeiter_ausblenden){
$this->setCorrDetails(array($this->app->erp->Beschriftung("dokument_bestellung_angebotnummer") => $angebot, $this->setCorrDetails(array($this->app->erp->Beschriftung("dokument_bestellung_angebotnummer") => $angebot,
$this->app->erp->Beschriftung("dokument_bestellung_unserekundennummer") => $kundennummer, $this->app->erp->Beschriftung("dokument_bestellung_unserekundennummer") => $kundennummer,
$this->app->erp->Beschriftung("dokument_bestelldatum") => $datum)); $this->app->erp->Beschriftung("dokument_bestelldatum") => $datum));
}else{ }else{
$this->setCorrDetails(array($this->app->erp->Beschriftung("dokument_bestellung_angebotnummer") => $angebot, $this->setCorrDetails(array($this->app->erp->Beschriftung("dokument_bestellung_angebotnummer") => $angebot,
$this->app->erp->Beschriftung("dokument_bestellung_unserekundennummer") => $kundennummer, $this->app->erp->Beschriftung("dokument_bestellung_unserekundennummer") => $kundennummer,
$this->app->erp->Beschriftung("dokument_bestelldatum") => $datum, $this->app->erp->Beschriftung("dokument_bestelldatum") => $datum,
$this->app->erp->Beschriftung("dokument_bestellung_einkauf") => $einkaeufer)); $this->app->erp->Beschriftung("dokument_bestellung_einkauf") => $einkaeufer));
} }
} }
if(!$this->app->erp->BestellungMitUmsatzeuer($id) && $ustid!='' ) { if(!$this->app->erp->BestellungMitUmsatzeuer($id) && $ustid!='' ) {
//$steuer = "\nSteuerfreie innergemeinschaftliche Lieferung. Ihre USt-IdNr. $ustid Land: $land"; //$steuer = "\nSteuerfreie innergemeinschaftliche Lieferung. Ihre USt-IdNr. $ustid Land: $land";
$this->ust_befreit=true; $this->ust_befreit=true;
if($keinsteuersatz!='1') { if($keinsteuersatz!='1') {
$steuer = $this->app->erp->Beschriftung('eu_lieferung_vermerk'); $steuer = $this->app->erp->Beschriftung('eu_lieferung_vermerk');
} }
$steuer = str_replace('{USTID}',$ustid,$steuer); $steuer = str_replace('{USTID}',$ustid,$steuer);
$steuer = str_replace('{LAND}',$land,$steuer); $steuer = str_replace('{LAND}',$land,$steuer);
} }
$body=$this->app->erp->Beschriftung('bestellung_header'); $body=$this->app->erp->Beschriftung('bestellung_header');
if($bodyzusatz!='') { if($bodyzusatz!='') {
$body=$body."\r\n".$bodyzusatz; $body=$body."\r\n".$bodyzusatz;
} }
$body = $this->app->erp->ParseUserVars('bestellung',$id,$body); $body = $this->app->erp->ParseUserVars('bestellung',$id,$body);
if($this->app->erp->Firmendaten('footer_reihenfolge_bestellung_aktivieren')=='1') if($this->app->erp->Firmendaten('footer_reihenfolge_bestellung_aktivieren')=='1')
{ {
$footervorlage = $this->app->erp->Firmendaten('footer_reihenfolge_bestellung'); $footervorlage = $this->app->erp->Firmendaten('footer_reihenfolge_bestellung');
if($footervorlage==''){ if($footervorlage==''){
$footervorlage = "{FOOTERFREITEXT}\r\n{FOOTERTEXTVORLAGEBESTELLUNG}"; $footervorlage = "{FOOTERFREITEXT}\r\n{FOOTERTEXTVORLAGEBESTELLUNG}";
} }
$footervorlage = str_replace('{FOOTERFREITEXT}',$freitext,$footervorlage); $footervorlage = str_replace('{FOOTERFREITEXT}',$freitext,$footervorlage);
$footervorlage = str_replace('{FOOTERTEXTVORLAGEBESTELLUNG}',$this->app->erp->Beschriftung("bestellung_footer"),$footervorlage); $footervorlage = str_replace('{FOOTERTEXTVORLAGEBESTELLUNG}',$this->app->erp->Beschriftung("bestellung_footer"),$footervorlage);
$footervorlage = $this->app->erp->ParseUserVars("bestellung",$id,$footervorlage); $footervorlage = $this->app->erp->ParseUserVars("bestellung",$id,$footervorlage);
$footer = $footervorlage; $footer = $footervorlage;
} else { } else {
$footer = $freitext."\r\n".$this->app->erp->ParseUserVars('bestellung',$id,$this->app->erp->Beschriftung("bestellung_footer")); $footer = $freitext."\r\n".$this->app->erp->ParseUserVars('bestellung',$id,$this->app->erp->Beschriftung("bestellung_footer"));
} }
if($bestellbestaetigung) { if($bestellbestaetigung) {
$this->setTextDetails(array( $this->setTextDetails(array(
"body"=>$body, "body"=>$body,
"footer"=>$footer."\r\n".$this->app->erp->Beschriftung('dokument_bestellung_bestaetigung'))); "footer"=>$footer."\r\n".$this->app->erp->Beschriftung('dokument_bestellung_bestaetigung')));
} else } else
{ {
$this->setTextDetails(array( $this->setTextDetails(array(
"body"=>$body, "body"=>$body,
"footer"=>$footer)); "footer"=>$footer));
} }
$artikel = $this->app->DB->SelectArr( $artikel = $this->app->DB->SelectArr(
"SELECT bp.*, art.ean AS artean, art.nummer AS artnummer, art.herstellernummer AS artherstellernummer, "SELECT bp.*, art.ean AS artean, art.nummer AS artnummer, art.herstellernummer AS artherstellernummer,
art.einheit as arteinheit, art.hersteller AS arthersteller art.einheit as arteinheit, art.hersteller AS arthersteller
FROM bestellung_position AS bp FROM bestellung_position AS bp
LEFT JOIN artikel AS art ON bp.artikel = art.id LEFT JOIN artikel AS art ON bp.artikel = art.id
WHERE bp.bestellung='$id' WHERE bp.bestellung='$id'
ORDER By bp.sort" ORDER By bp.sort"
); );
if(empty($artikel)) { if(empty($artikel)) {
$artikel = []; $artikel = [];
} }
$steuersatzV = $this->app->erp->GetSteuersatzNormal(false,$id,'bestellung'); $steuersatzV = $this->app->erp->GetSteuersatzNormal(false,$id,'bestellung');
$steuersatzR = $this->app->erp->GetSteuersatzErmaessigt(false,$id,'bestellung'); $steuersatzR = $this->app->erp->GetSteuersatzErmaessigt(false,$id,'bestellung');
$gesamtsteuern = 0; $gesamtsteuern = 0;
$mitumsatzsteuer = $this->app->erp->BestellungMitUmsatzeuer($id); $mitumsatzsteuer = $this->app->erp->BestellungMitUmsatzeuer($id);
//$waehrung = $this->app->DB->Select("SELECT waehrung FROM bestellung_position WHERE bestellung='$id' LIMIT 1"); //$waehrung = $this->app->DB->Select("SELECT waehrung FROM bestellung_position WHERE bestellung='$id' LIMIT 1");
$summe = 0; $summe = 0;
foreach($artikel as $key=>$value) { foreach($artikel as $key=>$value) {
$lieferdatum = $this->app->String->Convert($value['lieferdatum'],'%1-%2-%3','%3.%2.%1'); $lieferdatum = $this->app->String->Convert($value['lieferdatum'],'%1-%2-%3','%3.%2.%1');
if($lieferdatum==='00.00.0000') { if($lieferdatum==='00.00.0000') {
$lieferdatum =''; $lieferdatum ='';
}//$this->app->erp->Beschriftung("dokument_lieferdatum_sofort"); }//$this->app->erp->Beschriftung("dokument_lieferdatum_sofort");
if($value['umsatzsteuer'] !== 'ermaessigt' && $value['umsatzsteuer'] !== 'befreit') { if($value['umsatzsteuer'] !== 'ermaessigt' && $value['umsatzsteuer'] !== 'befreit') {
$value['umsatzsteuer'] = 'normal'; $value['umsatzsteuer'] = 'normal';
} }
$tmpsteuersatz = null; $tmpsteuersatz = null;
$tmpsteuertext = null; $tmpsteuertext = null;
$this->app->erp->GetSteuerPosition('bestellung', $value['id'],$tmpsteuersatz, $tmpsteuertext); $this->app->erp->GetSteuerPosition('bestellung', $value['id'],$tmpsteuersatz, $tmpsteuertext);
if($value['steuersatz'] === null || $value['steuersatz'] < 0) { if($value['steuersatz'] === null || $value['steuersatz'] < 0) {
if($value['umsatzsteuer'] === 'ermaessigt') { if($value['umsatzsteuer'] === 'ermaessigt') {
$value['steuersatz'] = $steuersatzR; $value['steuersatz'] = $steuersatzR;
} }
elseif($value['umsatzsteuer'] === 'befreit') { elseif($value['umsatzsteuer'] === 'befreit') {
$value['steuersatz'] = 0; $value['steuersatz'] = 0;
}else{ }else{
$value['steuersatz'] = $steuersatzV; $value['steuersatz'] = $steuersatzV;
} }
if($tmpsteuersatz !== null) { if($tmpsteuersatz !== null) {
$value['steuersatz'] = $tmpsteuersatz; $value['steuersatz'] = $tmpsteuersatz;
} }
} }
if($tmpsteuertext && !$value['steuertext']) { if($tmpsteuertext && !$value['steuertext']) {
$value['steuertext'] = $tmpsteuertext; $value['steuertext'] = $tmpsteuertext;
} }
if(!$mitumsatzsteuer) { if(!$mitumsatzsteuer) {
$value['steuersatz'] = 0; $value['steuersatz'] = 0;
} }
// if(!$this->app->erp->BestellungMitUmsatzeuer($id)) $value[umsatzsteuer] = ""; // if(!$this->app->erp->BestellungMitUmsatzeuer($id)) $value[umsatzsteuer] = "";
if($keineartikelnummern==1) { if($keineartikelnummern==1) {
$value['bestellnummer'] = $this->app->erp->Beschriftung('dokument_bestellung_keineartikelnummer'); $value['bestellnummer'] = $this->app->erp->Beschriftung('dokument_bestellung_keineartikelnummer');
} }
$ohne_artikeltext = $this->app->DB->Select("SELECT ohne_artikeltext FROM ".$this->table." WHERE id='".$this->id."' LIMIT 1"); $ohne_artikeltext = $this->app->DB->Select("SELECT ohne_artikeltext FROM ".$this->table." WHERE id='".$this->id."' LIMIT 1");
if($ohne_artikeltext=='1') { if($ohne_artikeltext=='1') {
$value['beschreibung']=''; $value['beschreibung']='';
} }
$value['artikelnummer']= $value['artnummer'];// $this->app->DB->Select("SELECT nummer FROM artikel WHERE id='".$value['artikel']."' LIMIT 1"); $value['artikelnummer']= $value['artnummer'];// $this->app->DB->Select("SELECT nummer FROM artikel WHERE id='".$value['artikel']."' LIMIT 1");
if($artikelnummerninfotext) { if($artikelnummerninfotext) {
if($value['bestellnummer']!=''){ if($value['bestellnummer']!=''){
$value['beschreibung'] = $value['beschreibung'] . "\n" . $this->app->erp->Beschriftung('dokument_bestellung_bestellnummer') . ': ' . $value['bestellnummer']; $value['beschreibung'] = $value['beschreibung'] . "\n" . $this->app->erp->Beschriftung('dokument_bestellung_bestellnummer') . ': ' . $value['bestellnummer'];
} }
$value['bestellnummer']=$value['artikelnummer']; $value['bestellnummer']=$value['artikelnummer'];
} else { } else {
if($value['artikelnummer']!=''){ if($value['artikelnummer']!=''){
$value['beschreibung'] = $value['beschreibung'] . "\n" . $this->app->erp->Beschriftung('dokument_bestellung_unsereartikelnummer') . ': ' . $value['artikelnummer']; $value['beschreibung'] = $value['beschreibung'] . "\n" . $this->app->erp->Beschriftung('dokument_bestellung_unsereartikelnummer') . ': ' . $value['artikelnummer'];
} }
} }
if($value['vpe'] > 1 && is_numeric($value['vpe'])) { if($value['vpe'] > 1 && is_numeric($value['vpe'])) {
$value['beschreibung'] = $value['beschreibung']."\n".$this->app->erp->Beschriftung('dokument_bestellung_mengeinvpe').': '.$value['vpe']; $value['beschreibung'] = $value['beschreibung']."\n".$this->app->erp->Beschriftung('dokument_bestellung_mengeinvpe').': '.$value['vpe'];
//umschalbar in der Zukunft //umschalbar in der Zukunft
$value['preis'] = $value['preis']*$value['menge']/($value['menge'] / $value['vpe']); $value['preis'] = $value['preis']*$value['menge']/($value['menge'] / $value['vpe']);
$value['menge'] = round($value['menge'] / $value['vpe'],2); $value['menge'] = round($value['menge'] / $value['vpe'],2);
$value['einheit'] = "VPE"; $value['einheit'] = "VPE";
} }
elseif((String)$value['einheit'] === '') { elseif((String)$value['einheit'] === '') {
$value['einheit'] = $value['arteinheit'];// $this->app->DB->Select("SELECT einheit FROM artikel WHERE id = '".$value['artikel']."' LIMIT 1"); $value['einheit'] = $value['arteinheit'];// $this->app->DB->Select("SELECT einheit FROM artikel WHERE id = '".$value['artikel']."' LIMIT 1");
if((String)$value['einheit'] === '') { if((String)$value['einheit'] === '') {
$value['einheit'] = $this->app->erp->Firmendaten('artikeleinheit_standard'); $value['einheit'] = $this->app->erp->Firmendaten('artikeleinheit_standard');
} }
} }
if($value['beschreibung']!='') { if($value['beschreibung']!='') {
$newline="\n"; $newline="\n";
} }
if($this->bestellungohnepreis) { if($this->bestellungohnepreis) {
$value['preis'] = '-'; $value['preis'] = null;
} }
if($value['waehrung']!='' && $value['waehrung']!=$this->waehrung){ if($value['waehrung']!='' && $value['waehrung']!=$this->waehrung){
$this->waehrung = $value['waehrung']; $this->waehrung = $value['waehrung'];
} }
$value['menge'] = (float)$value['menge']; $value['menge'] = (float)$value['menge'];
$value['herstellernummer'] = $value['artherstellernummer'];// $this->app->DB->Select("SELECT herstellernummer FROM artikel WHERE id='".$value['artikel']."' LIMIT 1"); $value['herstellernummer'] = $value['artherstellernummer'];// $this->app->DB->Select("SELECT herstellernummer FROM artikel WHERE id='".$value['artikel']."' LIMIT 1");
$value['hersteller'] = $value['arthersteller'];//$this->app->DB->Select("SELECT hersteller FROM artikel WHERE id='".$value['artikel']."' LIMIT 1"); $value['hersteller'] = $value['arthersteller'];//$this->app->DB->Select("SELECT hersteller FROM artikel WHERE id='".$value['artikel']."' LIMIT 1");
$this->addItem( $this->addItem(
array( array(
'belegposition'=>$value['id'], 'belegposition'=>$value['id'],
'artikel'=>$value['artikel'], 'artikel'=>$value['artikel'],
'currency'=>$value['waehrung'], 'currency'=>$value['waehrung'],
'amount'=>$value['menge'], 'amount'=>$value['menge'],
'price'=>$value['preis'], 'price'=>$value['preis'],
'tax'=>$value['umsatzsteuer'],'steuersatz'=>$value['steuersatz'], 'tax'=>$value['umsatzsteuer'],'steuersatz'=>$value['steuersatz'],
'steuertext'=>$value['steuertext'], 'steuertext'=>$value['steuertext'],
'vpe'=>$value['vpe'], 'vpe'=>$value['vpe'],
'unit'=>$value['einheit'], 'unit'=>$value['einheit'],
'itemno'=>$value['bestellnummer'], 'itemno'=>$value['bestellnummer'],
'desc'=>$value['beschreibung'].($lieferdatum!=''?$newline.$this->app->erp->Beschriftung('dokument_lieferdatum').': '.$lieferdatum:''), 'desc'=>$value['beschreibung'].($lieferdatum!=''?$newline.$this->app->erp->Beschriftung('dokument_lieferdatum').': '.$lieferdatum:''),
'hersteller'=>$value['hersteller'], 'hersteller'=>$value['hersteller'],
'herstellernummer'=>$value['herstellernummer'], 'herstellernummer'=>$value['herstellernummer'],
'freifeld1'=>$value['freifeld1'], 'freifeld1'=>$value['freifeld1'],
'freifeld2'=>$value['freifeld2'], 'freifeld2'=>$value['freifeld2'],
'freifeld3'=>$value['freifeld3'], 'freifeld3'=>$value['freifeld3'],
'freifeld4'=>$value['freifeld4'], 'freifeld4'=>$value['freifeld4'],
'freifeld5'=>$value['freifeld5'], 'freifeld5'=>$value['freifeld5'],
'freifeld6'=>$value['freifeld6'], 'freifeld6'=>$value['freifeld6'],
'freifeld7'=>$value['freifeld7'], 'freifeld7'=>$value['freifeld7'],
'freifeld8'=>$value['freifeld8'], 'freifeld8'=>$value['freifeld8'],
'freifeld9'=>$value['freifeld9'], 'freifeld9'=>$value['freifeld9'],
'freifeld10'=>$value['freifeld10'], 'freifeld10'=>$value['freifeld10'],
'freifeld11'=>$value['freifeld11'], 'freifeld11'=>$value['freifeld11'],
'freifeld12'=>$value['freifeld12'], 'freifeld12'=>$value['freifeld12'],
'freifeld13'=>$value['freifeld13'], 'freifeld13'=>$value['freifeld13'],
'freifeld14'=>$value['freifeld14'], 'freifeld14'=>$value['freifeld14'],
'freifeld15'=>$value['freifeld15'], 'freifeld15'=>$value['freifeld15'],
'freifeld16'=>$value['freifeld16'], 'freifeld16'=>$value['freifeld16'],
'freifeld17'=>$value['freifeld17'], 'freifeld17'=>$value['freifeld17'],
'freifeld18'=>$value['freifeld18'], 'freifeld18'=>$value['freifeld18'],
'freifeld19'=>$value['freifeld19'], 'freifeld19'=>$value['freifeld19'],
'freifeld20'=>$value['freifeld20'], 'freifeld20'=>$value['freifeld20'],
'freifeld21'=>$value['freifeld21'], 'freifeld21'=>$value['freifeld21'],
'freifeld22'=>$value['freifeld22'], 'freifeld22'=>$value['freifeld22'],
'freifeld23'=>$value['freifeld23'], 'freifeld23'=>$value['freifeld23'],
'freifeld24'=>$value['freifeld24'], 'freifeld24'=>$value['freifeld24'],
'freifeld25'=>$value['freifeld25'], 'freifeld25'=>$value['freifeld25'],
'freifeld26'=>$value['freifeld26'], 'freifeld26'=>$value['freifeld26'],
'freifeld27'=>$value['freifeld27'], 'freifeld27'=>$value['freifeld27'],
'freifeld28'=>$value['freifeld28'], 'freifeld28'=>$value['freifeld28'],
'freifeld29'=>$value['freifeld29'], 'freifeld29'=>$value['freifeld29'],
'freifeld30'=>$value['freifeld30'], 'freifeld30'=>$value['freifeld30'],
'freifeld31'=>$value['freifeld31'], 'freifeld31'=>$value['freifeld31'],
'freifeld32'=>$value['freifeld32'], 'freifeld32'=>$value['freifeld32'],
'freifeld33'=>$value['freifeld33'], 'freifeld33'=>$value['freifeld33'],
'freifeld34'=>$value['freifeld34'], 'freifeld34'=>$value['freifeld34'],
'freifeld35'=>$value['freifeld35'], 'freifeld35'=>$value['freifeld35'],
'freifeld36'=>$value['freifeld36'], 'freifeld36'=>$value['freifeld36'],
'freifeld37'=>$value['freifeld37'], 'freifeld37'=>$value['freifeld37'],
'freifeld38'=>$value['freifeld38'], 'freifeld38'=>$value['freifeld38'],
'freifeld39'=>$value['freifeld39'], 'freifeld39'=>$value['freifeld39'],
'freifeld40'=>$value['freifeld40'], 'freifeld40'=>$value['freifeld40'],
"name"=>$value['bezeichnunglieferant'] "name"=>$value['bezeichnunglieferant']
) )
); );
$netto_gesamt = $value['menge']*$value['preis']; $netto_gesamt = $value['menge']*$value['preis'];
$summe += $netto_gesamt; $summe += $netto_gesamt;
if(!isset($summen[$value['steuersatz']])) { if(!isset($summen[$value['steuersatz']])) {
$summen[$value['steuersatz']] = 0; $summen[$value['steuersatz']] = 0;
} }
$summen[$value['steuersatz']] += ($netto_gesamt/100)*$value['steuersatz']; $summen[$value['steuersatz']] += ($netto_gesamt/100)*$value['steuersatz'];
$gesamtsteuern +=($netto_gesamt/100)*$value['steuersatz']; $gesamtsteuern +=($netto_gesamt/100)*$value['steuersatz'];
} }
/* /*
$summe = $this->app->DB->Select("SELECT SUM(menge*preis) FROM bestellung_position WHERE bestellung='$id'"); $summe = $this->app->DB->Select("SELECT SUM(menge*preis) FROM bestellung_position WHERE bestellung='$id'");
$summeV = $this->app->DB->Select("SELECT SUM(menge*preis) FROM bestellung_position WHERE bestellung='$id' AND (umsatzsteuer='normal' || umsatzsteuer='') ")/100 * $this->app->erp->GetSteuersatzNormal(false,$id,"bestellung"); $summeV = $this->app->DB->Select("SELECT SUM(menge*preis) FROM bestellung_position WHERE bestellung='$id' AND (umsatzsteuer='normal' || umsatzsteuer='') ")/100 * $this->app->erp->GetSteuersatzNormal(false,$id,"bestellung");
$summeR = $this->app->DB->Select("SELECT SUM(menge*preis) FROM bestellung_position WHERE bestellung='$id' AND umsatzsteuer='ermaessigt'")/100 * $this->app->erp->GetSteuersatzErmaessigt(false,$id,"bestellung"); $summeR = $this->app->DB->Select("SELECT SUM(menge*preis) FROM bestellung_position WHERE bestellung='$id' AND umsatzsteuer='ermaessigt'")/100 * $this->app->erp->GetSteuersatzErmaessigt(false,$id,"bestellung");
*/ */
if($this->bestellungohnepreis!=1) if($this->bestellungohnepreis!=1)
{ {
if($this->app->erp->BestellungMitUmsatzeuer($id)) if($this->app->erp->BestellungMitUmsatzeuer($id))
{ {
$this->setTotals( $this->setTotals(
array('totalArticles'=>$summe,'total'=>$summe + $gesamtsteuern,'summen'=>$summen,'totalTaxV'=>0,'totalTaxR'=>0) array('totalArticles'=>$summe,'total'=>$summe + $gesamtsteuern,'summen'=>$summen,'totalTaxV'=>0,'totalTaxR'=>0)
); );
//$this->setTotals(array("totalArticles"=>$summe,"total"=>$summe + $summeV + $summeR,"totalTaxV"=>$summeV,"totalTaxR"=>$summeR)); //$this->setTotals(array("totalArticles"=>$summe,"total"=>$summe + $summeV + $summeR,"totalTaxV"=>$summeV,"totalTaxR"=>$summeR));
} else{ } else{
$this->setTotals(array('totalArticles' => $summe, 'total' => $summe)); $this->setTotals(array('totalArticles' => $summe, 'total' => $summe));
} }
} }
/* Dateiname */ /* Dateiname */
//$tmp_name = str_replace([' ','.'],'', trim($this->recipient['enterprise'])); //$tmp_name = str_replace([' ','.'],'', trim($this->recipient['enterprise']));
$this->filename = $datum2.'_BE'.$belegnr.'.pdf'; $this->filename = $datum2.'_BE'.$belegnr.'.pdf';
$this->setBarcode($belegnr); $this->setBarcode($belegnr);
} }
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,238 +1,244 @@
<?php <?php
/* /*
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
* *
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019 * Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
* *
* This file is licensed under the Embedded Projects General Public License *Version 3.1. * This file is licensed under the Embedded Projects General Public License *Version 3.1.
* *
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis * You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
* to obtain the text of the corresponding license version. * to obtain the text of the corresponding license version.
* *
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*/ */
?> ?>
<?php <?php
class ObjGenVerbindlichkeit_Position class ObjGenVerbindlichkeit_Position
{ {
private $id; private $id;
private $verbindlichkeit; private $verbindlichkeit;
private $sort; private $sort;
private $artikel; private $artikel;
private $projekt; private $projekt;
private $bestellung; private $bestellung;
private $nummer; private $nummer;
private $bestellnummer; private $bestellnummer;
private $waehrung; private $waehrung;
private $einheit; private $einheit;
private $vpe; private $vpe;
private $bezeichnung; private $bezeichnung;
private $umsatzsteuer; private $umsatzsteuer;
private $status; private $status;
private $beschreibung; private $beschreibung;
private $lieferdatum; private $lieferdatum;
private $steuersatz; private $steuersatz;
private $steuertext; private $steuertext;
private $preis; private $preis;
private $menge; private $menge;
private $kostenstelle; private $kostenstelle;
private $sachkonto;
public $app; //application object
public $app; //application object
public function __construct($app)
{ public function __construct($app)
$this->app = $app; {
} $this->app = $app;
}
public function Select($id)
{ public function Select($id)
if(is_numeric($id)) {
$result = $this->app->DB->SelectArr("SELECT * FROM `verbindlichkeit_position` WHERE (`id` = '$id')"); if(is_numeric($id))
else $result = $this->app->DB->SelectArr("SELECT * FROM `verbindlichkeit_position` WHERE (`id` = '$id')");
return -1; else
return -1;
$result = $result[0];
$result = $result[0];
$this->id=$result['id'];
$this->verbindlichkeit=$result['verbindlichkeit']; $this->id=$result['id'];
$this->sort=$result['sort']; $this->verbindlichkeit=$result['verbindlichkeit'];
$this->artikel=$result['artikel']; $this->sort=$result['sort'];
$this->projekt=$result['projekt']; $this->artikel=$result['artikel'];
$this->bestellung=$result['bestellung']; $this->projekt=$result['projekt'];
$this->nummer=$result['nummer']; $this->bestellung=$result['bestellung'];
$this->bestellnummer=$result['bestellnummer']; $this->nummer=$result['nummer'];
$this->waehrung=$result['waehrung']; $this->bestellnummer=$result['bestellnummer'];
$this->einheit=$result['einheit']; $this->waehrung=$result['waehrung'];
$this->vpe=$result['vpe']; $this->einheit=$result['einheit'];
$this->bezeichnung=$result['bezeichnung']; $this->vpe=$result['vpe'];
$this->umsatzsteuer=$result['umsatzsteuer']; $this->bezeichnung=$result['bezeichnung'];
$this->status=$result['status']; $this->umsatzsteuer=$result['umsatzsteuer'];
$this->beschreibung=$result['beschreibung']; $this->status=$result['status'];
$this->lieferdatum=$result['lieferdatum']; $this->beschreibung=$result['beschreibung'];
$this->steuersatz=$result['steuersatz']; $this->lieferdatum=$result['lieferdatum'];
$this->steuertext=$result['steuertext']; $this->steuersatz=$result['steuersatz'];
$this->preis=$result['preis']; $this->steuertext=$result['steuertext'];
$this->menge=$result['menge']; $this->preis=$result['preis'];
$this->kostenstelle=$result['kostenstelle']; $this->menge=$result['menge'];
} $this->kostenstelle=$result['kostenstelle'];
$this->sachkonto=$result['sachkonto'];
public function Create() }
{
$sql = "INSERT INTO `verbindlichkeit_position` (`id`,`verbindlichkeit`,`sort`,`artikel`,`projekt`,`bestellung`,`nummer`,`bestellnummer`,`waehrung`,`einheit`,`vpe`,`bezeichnung`,`umsatzsteuer`,`status`,`beschreibung`,`lieferdatum`,`steuersatz`,`steuertext`,`preis`,`menge`,`kostenstelle`) public function Create()
VALUES(NULL,'{$this->verbindlichkeit}','{$this->sort}','{$this->artikel}','{$this->projekt}','{$this->bestellung}','{$this->nummer}','{$this->bestellnummer}','{$this->waehrung}','{$this->einheit}','{$this->vpe}','{$this->bezeichnung}','{$this->umsatzsteuer}','{$this->status}','{$this->beschreibung}','{$this->lieferdatum}','{$this->steuersatz}','{$this->steuertext}','{$this->preis}','{$this->menge}','{$this->kostenstelle}')"; {
$sql = "INSERT INTO `verbindlichkeit_position` (`id`,`verbindlichkeit`,`sort`,`artikel`,`projekt`,`bestellung`,`nummer`,`bestellnummer`,`waehrung`,`einheit`,`vpe`,`bezeichnung`,`umsatzsteuer`,`status`,`beschreibung`,`lieferdatum`,`steuersatz`,`steuertext`,`preis`,`menge`,`kostenstelle`)
$this->app->DB->Insert($sql); VALUES(NULL,'{$this->verbindlichkeit}','{$this->sort}','{$this->artikel}','{$this->projekt}','{$this->bestellung}','{$this->nummer}','{$this->bestellnummer}','{$this->waehrung}','{$this->einheit}','{$this->vpe}','{$this->bezeichnung}','{$this->umsatzsteuer}','{$this->status}','{$this->beschreibung}','{$this->lieferdatum}','{$this->steuersatz}','{$this->steuertext}','{$this->preis}','{$this->menge}','{$this->kostenstelle}','{$this->sachkonto}')";
$this->id = $this->app->DB->GetInsertID();
} $this->app->DB->Insert($sql);
$this->id = $this->app->DB->GetInsertID();
public function Update() }
{
if(!is_numeric($this->id)) { public function Update()
return -1; {
} if(!is_numeric($this->id)) {
return -1;
$sql = "UPDATE `verbindlichkeit_position` SET }
`verbindlichkeit`='{$this->verbindlichkeit}',
`sort`='{$this->sort}', $sql = "UPDATE `verbindlichkeit_position` SET
`artikel`='{$this->artikel}', `verbindlichkeit`='{$this->verbindlichkeit}',
`projekt`='{$this->projekt}', `sort`='{$this->sort}',
`bestellung`='{$this->bestellung}', `artikel`='{$this->artikel}',
`nummer`='{$this->nummer}', `projekt`='{$this->projekt}',
`bestellnummer`='{$this->bestellnummer}', `bestellung`='{$this->bestellung}',
`waehrung`='{$this->waehrung}', `nummer`='{$this->nummer}',
`einheit`='{$this->einheit}', `bestellnummer`='{$this->bestellnummer}',
`vpe`='{$this->vpe}', `waehrung`='{$this->waehrung}',
`bezeichnung`='{$this->bezeichnung}', `einheit`='{$this->einheit}',
`umsatzsteuer`='{$this->umsatzsteuer}', `vpe`='{$this->vpe}',
`status`='{$this->status}', `bezeichnung`='{$this->bezeichnung}',
`beschreibung`='{$this->beschreibung}', `umsatzsteuer`='{$this->umsatzsteuer}',
`lieferdatum`='{$this->lieferdatum}', `status`='{$this->status}',
`steuersatz`='{$this->steuersatz}', `beschreibung`='{$this->beschreibung}',
`steuertext`='{$this->steuertext}', `lieferdatum`='{$this->lieferdatum}',
`preis`='{$this->preis}', `steuersatz`='{$this->steuersatz}',
`menge`='{$this->menge}', `steuertext`='{$this->steuertext}',
`kostenstelle`='{$this->kostenstelle}' `preis`='{$this->preis}',
WHERE (`id`='{$this->id}')"; `menge`='{$this->menge}',
`kostenstelle`='{$this->kostenstelle}',
$this->app->DB->Update($sql); `sachkonto`='{$this->sachkonto}'
} WHERE (`id`='{$this->id}')";
public function Delete($id='') $this->app->DB->Update($sql);
{ }
if(is_numeric($id))
{ public function Delete($id='')
$this->id=$id; {
} if(is_numeric($id))
else {
return -1; $this->id=$id;
}
$sql = "DELETE FROM `verbindlichkeit_position` WHERE (`id`='{$this->id}')"; else
$this->app->DB->Delete($sql); return -1;
$this->id=''; $sql = "DELETE FROM `verbindlichkeit_position` WHERE (`id`='{$this->id}')";
$this->verbindlichkeit=''; $this->app->DB->Delete($sql);
$this->sort='';
$this->artikel=''; $this->id='';
$this->projekt=''; $this->verbindlichkeit='';
$this->bestellung=''; $this->sort='';
$this->nummer=''; $this->artikel='';
$this->bestellnummer=''; $this->projekt='';
$this->waehrung=''; $this->bestellung='';
$this->einheit=''; $this->nummer='';
$this->vpe=''; $this->bestellnummer='';
$this->bezeichnung=''; $this->waehrung='';
$this->umsatzsteuer=''; $this->einheit='';
$this->status=''; $this->vpe='';
$this->beschreibung=''; $this->bezeichnung='';
$this->lieferdatum=''; $this->umsatzsteuer='';
$this->steuersatz=''; $this->status='';
$this->steuertext=''; $this->beschreibung='';
$this->preis=''; $this->lieferdatum='';
$this->menge=''; $this->steuersatz='';
$this->kostenstelle=''; $this->steuertext='';
} $this->preis='';
$this->menge='';
public function Copy() $this->kostenstelle='';
{ $this->sachkonto='';
$this->id = ''; }
$this->Create();
} public function Copy()
{
/** $this->id = '';
Mit dieser Funktion kann man einen Datensatz suchen $this->Create();
dafuer muss man die Attribute setzen nach denen gesucht werden soll }
dann kriegt man als ergebnis den ersten Datensatz der auf die Suche uebereinstimmt
zurueck. Mit Next() kann man sich alle weiteren Ergebnisse abholen /**
**/ Mit dieser Funktion kann man einen Datensatz suchen
dafuer muss man die Attribute setzen nach denen gesucht werden soll
public function Find() dann kriegt man als ergebnis den ersten Datensatz der auf die Suche uebereinstimmt
{ zurueck. Mit Next() kann man sich alle weiteren Ergebnisse abholen
//TODO Suche mit den werten machen **/
}
public function Find()
public function FindNext() {
{ //TODO Suche mit den werten machen
//TODO Suche mit den alten werten fortsetzen machen }
}
public function FindNext()
/** Funktionen um durch die Tabelle iterieren zu koennen */ {
//TODO Suche mit den alten werten fortsetzen machen
public function Next() }
{
//TODO: SQL Statement passt nach meiner Meinung nach noch nicht immer /** Funktionen um durch die Tabelle iterieren zu koennen */
}
public function Next()
public function First() {
{ //TODO: SQL Statement passt nach meiner Meinung nach noch nicht immer
//TODO: SQL Statement passt nach meiner Meinung nach noch nicht immer }
}
public function First()
/** dank dieser funktionen kann man die tatsaechlichen werte einfach {
ueberladen (in einem Objekt das mit seiner klasse ueber dieser steht)**/ //TODO: SQL Statement passt nach meiner Meinung nach noch nicht immer
}
public function SetId($value) { $this->id=$value; }
public function GetId() { return $this->id; } /** dank dieser funktionen kann man die tatsaechlichen werte einfach
public function SetVerbindlichkeit($value) { $this->verbindlichkeit=$value; } ueberladen (in einem Objekt das mit seiner klasse ueber dieser steht)**/
public function GetVerbindlichkeit() { return $this->verbindlichkeit; }
public function SetSort($value) { $this->sort=$value; } public function SetId($value) { $this->id=$value; }
public function GetSort() { return $this->sort; } public function GetId() { return $this->id; }
public function SetArtikel($value) { $this->artikel=$value; } public function SetVerbindlichkeit($value) { $this->verbindlichkeit=$value; }
public function GetArtikel() { return $this->artikel; } public function GetVerbindlichkeit() { return $this->verbindlichkeit; }
public function SetProjekt($value) { $this->projekt=$value; } public function SetSort($value) { $this->sort=$value; }
public function GetProjekt() { return $this->projekt; } public function GetSort() { return $this->sort; }
public function SetBestellung($value) { $this->bestellung=$value; } public function SetArtikel($value) { $this->artikel=$value; }
public function GetBestellung() { return $this->bestellung; } public function GetArtikel() { return $this->artikel; }
public function SetNummer($value) { $this->nummer=$value; } public function SetProjekt($value) { $this->projekt=$value; }
public function GetNummer() { return $this->nummer; } public function GetProjekt() { return $this->projekt; }
public function SetBestellnummer($value) { $this->bestellnummer=$value; } public function SetBestellung($value) { $this->bestellung=$value; }
public function GetBestellnummer() { return $this->bestellnummer; } public function GetBestellung() { return $this->bestellung; }
public function SetWaehrung($value) { $this->waehrung=$value; } public function SetNummer($value) { $this->nummer=$value; }
public function GetWaehrung() { return $this->waehrung; } public function GetNummer() { return $this->nummer; }
public function SetEinheit($value) { $this->einheit=$value; } public function SetBestellnummer($value) { $this->bestellnummer=$value; }
public function GetEinheit() { return $this->einheit; } public function GetBestellnummer() { return $this->bestellnummer; }
public function SetVpe($value) { $this->vpe=$value; } public function SetWaehrung($value) { $this->waehrung=$value; }
public function GetVpe() { return $this->vpe; } public function GetWaehrung() { return $this->waehrung; }
public function SetBezeichnung($value) { $this->bezeichnung=$value; } public function SetEinheit($value) { $this->einheit=$value; }
public function GetBezeichnung() { return $this->bezeichnung; } public function GetEinheit() { return $this->einheit; }
public function SetUmsatzsteuer($value) { $this->umsatzsteuer=$value; } public function SetVpe($value) { $this->vpe=$value; }
public function GetUmsatzsteuer() { return $this->umsatzsteuer; } public function GetVpe() { return $this->vpe; }
public function SetStatus($value) { $this->status=$value; } public function SetBezeichnung($value) { $this->bezeichnung=$value; }
public function GetStatus() { return $this->status; } public function GetBezeichnung() { return $this->bezeichnung; }
public function SetBeschreibung($value) { $this->beschreibung=$value; } public function SetUmsatzsteuer($value) { $this->umsatzsteuer=$value; }
public function GetBeschreibung() { return $this->beschreibung; } public function GetUmsatzsteuer() { return $this->umsatzsteuer; }
public function SetLieferdatum($value) { $this->lieferdatum=$value; } public function SetStatus($value) { $this->status=$value; }
public function GetLieferdatum() { return $this->lieferdatum; } public function GetStatus() { return $this->status; }
public function SetSteuersatz($value) { $this->steuersatz=$value; } public function SetBeschreibung($value) { $this->beschreibung=$value; }
public function GetSteuersatz() { return $this->steuersatz; } public function GetBeschreibung() { return $this->beschreibung; }
public function SetSteuertext($value) { $this->steuertext=$value; } public function SetLieferdatum($value) { $this->lieferdatum=$value; }
public function GetSteuertext() { return $this->steuertext; } public function GetLieferdatum() { return $this->lieferdatum; }
public function SetPreis($value) { $this->preis=$value; } public function SetSteuersatz($value) { $this->steuersatz=$value; }
public function GetPreis() { return $this->preis; } public function GetSteuersatz() { return $this->steuersatz; }
public function SetMenge($value) { $this->menge=$value; } public function SetSteuertext($value) { $this->steuertext=$value; }
public function GetMenge() { return $this->menge; } public function GetSteuertext() { return $this->steuertext; }
public function SetKostenstelle($value) { $this->kostenstelle=$value; } public function SetPreis($value) { $this->preis=$value; }
public function GetKostenstelle() { return $this->kostenstelle; } public function GetPreis() { return $this->preis; }
public function SetMenge($value) { $this->menge=$value; }
} public function GetMenge() { return $this->menge; }
public function SetKostenstelle($value) { $this->kostenstelle=$value; }
public function GetKostenstelle() { return $this->kostenstelle; }
public function SetSachkonto($value) { $this->sachkonto=$value; }
public function GetSachkonto() { return $this->sachkonto; }
}

View File

@ -1,59 +1,59 @@
<?php <?php
/* /*
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
* *
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019 * Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
* *
* This file is licensed under the Embedded Projects General Public License *Version 3.1. * This file is licensed under the Embedded Projects General Public License *Version 3.1.
* *
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis * You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
* to obtain the text of the corresponding license version. * to obtain the text of the corresponding license version.
* *
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*/ */
?> ?>
<?php <?php
class GenAdresse { class GenAdresse {
function __construct(&$app) { function __construct(&$app) {
$this->app=&$app; $this->app=&$app;
$this->app->ActionHandlerInit($this); $this->app->ActionHandlerInit($this);
$this->app->ActionHandler("create","AdresseCreate"); $this->app->ActionHandler("create","AdresseCreate");
$this->app->ActionHandler("edit","AdresseEdit"); $this->app->ActionHandler("edit","AdresseEdit");
$this->app->ActionHandler("copy","AdresseCopy"); $this->app->ActionHandler("copy","AdresseCopy");
$this->app->ActionHandler("list","AdresseList"); $this->app->ActionHandler("list","AdresseList");
$this->app->ActionHandler("delete","AdresseDelete"); $this->app->ActionHandler("delete","AdresseDelete");
$this->app->Tpl->Set("HEADING","Adresse"); //$this->app->ActionHandlerListen($app); $this->app->Tpl->Set("HEADING","Adresse"); //$this->app->ActionHandlerListen($app);
} }
function AdresseCreate(){ function AdresseCreate(){
$this->app->Tpl->Set("HEADING","Adresse (Anlegen)"); $this->app->Tpl->Set("HEADING","Adresse (Anlegen)");
$this->app->PageBuilder->CreateGen("adresse_create.tpl"); $this->app->PageBuilder->CreateGen("adresse_create.tpl");
} }
function AdresseEdit(){ function AdresseEdit(){
$this->app->Tpl->Set("HEADING","Adresse (Bearbeiten)"); $this->app->Tpl->Set("HEADING","Adresse (Bearbeiten)");
$this->app->PageBuilder->CreateGen("adresse_edit.tpl"); $this->app->PageBuilder->CreateGen("adresse_edit.tpl");
} }
function AdresseCopy(){ function AdresseCopy(){
$this->app->Tpl->Set("HEADING","Adresse (Kopieren)"); $this->app->Tpl->Set("HEADING","Adresse (Kopieren)");
$this->app->PageBuilder->CreateGen("adresse_copy.tpl"); $this->app->PageBuilder->CreateGen("adresse_copy.tpl");
} }
function AdresseDelete(){ function AdresseDelete(){
$this->app->Tpl->Set("HEADING","Adresse (L&ouml;schen)"); $this->app->Tpl->Set("HEADING","Adresse (L&ouml;schen)");
$this->app->PageBuilder->CreateGen("adresse_delete.tpl"); $this->app->PageBuilder->CreateGen("adresse_delete.tpl");
} }
function AdresseList(){ function AdresseList(){
$this->app->Tpl->Set("HEADING","Adresse (&Uuml;bersicht)"); $this->app->Tpl->Set("HEADING","Adresse (&Uuml;bersicht)");
$this->app->PageBuilder->CreateGen("adresse_list.tpl"); $this->app->PageBuilder->CreateGen("adresse_list.tpl");
} }
} }
?> ?>

View File

@ -682,6 +682,7 @@ class Ajax {
echo $str; echo $str;
exit; exit;
} }
if(!empty($datei['parameter'])) { if(!empty($datei['parameter'])) {
if($cmd === 'projekt') { if($cmd === 'projekt') {
if(!$this->app->erp->UserProjektRecht($datei['parameter'])) { if(!$this->app->erp->UserProjektRecht($datei['parameter'])) {
@ -715,8 +716,7 @@ class Ajax {
} }
} }
} }
//Rechte prüfen //Rechte prüfen
$userdata = isset($this->app->Conf->WFuserdata) $userdata = isset($this->app->Conf->WFuserdata)
?$this->app->Conf->WFuserdata ?$this->app->Conf->WFuserdata
:(str_replace('index.php', '', $_SERVER['SCRIPT_FILENAME']).'../userdata'); :(str_replace('index.php', '', $_SERVER['SCRIPT_FILENAME']).'../userdata');
@ -754,34 +754,17 @@ class Ajax {
exit; exit;
break; break;
case 'application/pdf': case 'application/pdf':
$str = file_get_contents(dirname(__DIR__) . '/themes/new/images/pdf.svg'); $str = file_get_contents(dirname(__DIR__) . '/themes/new/images/pdf.png');
header('Content-type: image/png'); header('Content-type: image/png');
echo $str; echo $str;
exit; exit;
break; break;
default: default:
$str = file_get_contents(dirname(__DIR__) . '/themes/new/images/pdf.svg');
if(substr(strtolower($datei['dateiname']),-4) === '.gif'){
header('Content-type: image/gif');
echo $str;
exit;
}
if(substr(strtolower($datei['dateiname']),-4) === '.png'){
header('Content-type: image/png');
echo $str;
exit;
}
if(substr(strtolower($datei['dateiname']),-4) === '.jpg'
|| substr(strtolower($datei['dateiname']),-4) === 'jpeg'){
header('Content-type: image/jpg');
echo $str;
exit;
}
break; break;
} }
} }
} }
if(file_exists($cachefolder.'/'.$datei['id'].'_100_100')) { if(file_exists($cachefolder.'/'.$datei['id'].'_100_100')) {
$type = is_file($path.'/'.$datei['id'])? false : mime_content_type($path.'/'.$datei['id']); $type = is_file($path.'/'.$datei['id'])? false : mime_content_type($path.'/'.$datei['id']);
if($type === false) { if($type === false) {
@ -2391,7 +2374,14 @@ select a.kundennummer, (SELECT name FROM adresse a2 WHERE a2.kundennummer = a.ku
for($i = 0; $i < $carr; $i++) for($i = 0; $i < $carr; $i++)
$newarr[] = $arr[$i]['name']; $newarr[] = $arr[$i]['name'];
break; break;
case "sachkonto_aufwendungen":
$arr = $this->app->DB->SelectArr("SELECT CONCAT(sachkonto,' ',beschriftung) as name FROM kontorahmen
WHERE art = 1 AND (beschriftung LIKE '%$term%' OR sachkonto LIKE '%$term%' OR sachkonto LIKE '%$term2%' OR sachkonto LIKE '%$term3%' OR beschriftung LIKE '%$term2%' OR beschriftung LIKE '%$term3%') AND ausblenden!=1 $andprojekt ORDER by sachkonto");
$carr = !empty($arr)?count($arr):0;
for($i = 0; $i < $carr; $i++)
$newarr[] = $arr[$i]['name'];
break;
case "lieferbedingungen": case "lieferbedingungen":
$arr = $this->app->DB->SelectArr("SELECT CONCAT(lieferbedingungen) as name FROM lieferbedingungen $arr = $this->app->DB->SelectArr("SELECT CONCAT(lieferbedingungen) as name FROM lieferbedingungen
WHERE (lieferbedingungen LIKE '%$term%' OR lieferbedingungen LIKE '%$term2%' OR lieferbedingungen LIKE '%$term3%') ORDER by lieferbedingungen"); WHERE (lieferbedingungen LIKE '%$term%' OR lieferbedingungen LIKE '%$term2%' OR lieferbedingungen LIKE '%$term3%') ORDER by lieferbedingungen");
@ -2470,6 +2460,7 @@ select a.kundennummer, (SELECT name FROM adresse a2 WHERE a2.kundennummer = a.ku
$subwhere = $this->AjaxFilterWhere($termorig,$felder); $subwhere = $this->AjaxFilterWhere($termorig,$felder);
$arr = $this->app->DB->SelectArr("SELECT CONCAT(nummer,' ',beschreibung) as name FROM kostenstellen WHERE $subwhere ORDER by nummer"); $arr = $this->app->DB->SelectArr("SELECT CONCAT(nummer,' ',beschreibung) as name FROM kostenstellen WHERE $subwhere ORDER by nummer");
$carr = !empty($arr)?count($arr):0; $carr = !empty($arr)?count($arr):0;
for($i = 0; $i < $carr; $i++) for($i = 0; $i < $carr; $i++)
$newarr[] = $arr[$i]['name']; $newarr[] = $arr[$i]['name'];
@ -2510,7 +2501,7 @@ select a.kundennummer, (SELECT name FROM adresse a2 WHERE a2.kundennummer = a.ku
$adresse = $this->app->DB->Select("SELECT id FROM adresse WHERE lieferantennummer = '".$lieferant[0]."' AND lieferantennummer <> '' LIMIT 1"); $adresse = $this->app->DB->Select("SELECT id FROM adresse WHERE lieferantennummer = '".$lieferant[0]."' AND lieferantennummer <> '' LIMIT 1");
} }
$beleg = str_replace('lieferanten','',$filtername); $beleg = str_replace('lieferanten','',$filtername);
$arr = $this->app->DB->SelectArr("SELECT CONCAT(id,' ',if(belegnr <> '',belegnr,'ENTWURF'),' ',lieferantennummer,' ',name) as name FROM $beleg WHERE (belegnr LIKE '%$term%' OR name LIKE '%$term%' OR lieferantennummer LIKE '$%term%') AND (status = 'angelegt' OR status = 'freigegeben') $arr = $this->app->DB->SelectArr("SELECT CONCAT(belegnr,' ',lieferantennummer,' ',name) as name FROM $beleg WHERE (belegnr <> '') AND (belegnr LIKE '%$term%' OR name LIKE '%$term%' OR lieferantennummer LIKE '$%term%') AND (status = 'versendet' OR status = 'freigegeben')
".($adresse?" AND adresse = '$adresse' ":'')." ".$this->app->erp->ProjektRechte('projekt')." ".($adresse?" AND adresse = '$adresse' ":'')." ".$this->app->erp->ProjektRechte('projekt')."
ORDER by belegnr LIMIT 20" ); ORDER by belegnr LIMIT 20" );
$carr = !empty($arr)?count($arr):0; $carr = !empty($arr)?count($arr):0;

File diff suppressed because it is too large Load Diff

View File

@ -1,298 +1,304 @@
<?php <?php
/* /*
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
* *
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019 * Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
* *
* This file is licensed under the Embedded Projects General Public License *Version 3.1. * This file is licensed under the Embedded Projects General Public License *Version 3.1.
* *
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis * You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
* to obtain the text of the corresponding license version. * to obtain the text of the corresponding license version.
* *
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*/ */
?> ?>
<?php <?php
use Xentral\Components\Http\JsonResponse; use Xentral\Components\Http\JsonResponse;
class Api_account class Api_account
{ {
/** @var Application $app */ /** @var Application $app */
protected $app; protected $app;
const MODULE_NAME = 'ApiAccount'; const MODULE_NAME = 'ApiAccount';
/** @var string[] $javascript */ /** @var string[] $javascript */
public $javascript = [ public $javascript = [
'./classes/Modules/ApiAccount/www/js/api_account.js', './classes/Modules/ApiAccount/www/js/api_account.js',
]; ];
/** /**
* @param Application $app * @param Application $app
* @param string $name * @param string $name
* @param array $erlaubtevars * @param array $erlaubtevars
* *
* @return array * @return array
*/ */
public static function TableSearch($app, $name, $erlaubtevars) public static function TableSearch($app, $name, $erlaubtevars)
{ {
switch($name) switch($name)
{ {
case 'api_account_list': case 'api_account_list':
$allowed['api_account'] = array('list'); $allowed['api_account'] = array('list');
$heading = array('API Account ID', 'Bezeichnung', 'Aktiv', 'Men&uuml;'); $heading = array('API Account ID', 'Bezeichnung', 'Aktiv', 'Men&uuml;');
$width = array('10%', '79%', '10%', '1%'); $width = array('10%', '79%', '10%', '1%');
$findcols = array('aa.id', 'bezeichnung', "if(aktiv = 1, 'ja','nein')", 'id'); $findcols = array('aa.id', 'bezeichnung', "if(aktiv = 1, 'ja','nein')", 'id');
$searchsql = array('bezeichnung'); $searchsql = array('bezeichnung');
$defaultorder = 1; //Optional wenn andere Reihenfolge gewuenscht $defaultorder = 1; //Optional wenn andere Reihenfolge gewuenscht
$defaultorderdesc = 1; $defaultorderdesc = 1;
$menucol = 3; $menucol = 3;
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap><a data-id=\"%value%\" class=\"get\" href=\"#\"><img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\"></a></td></tr></table>"; $menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap><a data-id=\"%value%\" class=\"get\" href=\"#\"><img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\"></a></td></tr></table>";
$sql = "SELECT aa.id, aa.id, aa.bezeichnung, $sql = "SELECT aa.id, aa.id, aa.bezeichnung,
if(aa.aktiv = 1, 'ja','nein') as aktiv, if(aa.aktiv = 1, 'ja','nein') as aktiv,
aa.id aa.id
FROM `api_account` AS `aa` FROM `api_account` AS `aa`
"; ";
$fastcount = "SELECT COUNT(`aa`.`id`) FROM `api_account` AS `aa`"; $fastcount = "SELECT COUNT(`aa`.`id`) FROM `api_account` AS `aa`";
break; break;
} }
$erg = []; $erg = [];
foreach($erlaubtevars as $k => $v) { foreach($erlaubtevars as $k => $v) {
if(isset($$v)) { if(isset($$v)) {
$erg[$v] = $$v; $erg[$v] = $$v;
} }
} }
return $erg; return $erg;
} }
/** /**
* Api_account constructor. * Api_account constructor.
* *
* @param Application $app * @param Application $app
* @param bool $intern * @param bool $intern
*/ */
public function __construct($app, $intern = false) public function __construct($app, $intern = false)
{ {
$this->app=$app; $this->app=$app;
if($intern) { if($intern) {
return; return;
} }
$this->app->ActionHandlerInit($this); $this->app->ActionHandlerInit($this);
$this->app->ActionHandler("create","Api_AccountCreate"); $this->app->ActionHandler("create","Api_AccountCreate");
$this->app->ActionHandler("edit","Api_AccountEdit"); $this->app->ActionHandler("edit","Api_AccountEdit");
$this->app->ActionHandler("list","Api_AccountList"); $this->app->ActionHandler("list","Api_AccountList");
$this->app->ActionHandler("delete","Api_AccountDelete"); $this->app->ActionHandler("delete","Api_AccountDelete");
$this->app->DefaultActionHandler('list'); $this->app->DefaultActionHandler('list');
$this->app->ActionHandlerListen($app); $this->app->ActionHandlerListen($app);
} }
function Api_AccountCreate(){ function Api_AccountCreate(){
} }
function Api_AccountEdit(){ function Api_AccountEdit(){
} }
public function Api_AccountDelete(){ public function Api_AccountDelete(){
$id = $this->app->Secure->GetGET('id'); $id = $this->app->Secure->GetGET('id');
$this->app->DB->Delete(sprintf('DELETE FROM `api_account` WHERE `id` = %d', $id)); $this->app->DB->Delete(sprintf('DELETE FROM `api_account` WHERE `id` = %d', $id));
$this->app->Location->execute('index.php?module=api_account&action=list'); $this->app->Location->execute('index.php?module=api_account&action=list');
} }
/** /**
* @return JsonResponse * @return JsonResponse
*/ */
public function HandleGetAjaxAction() public function HandleGetAjaxAction()
{ {
$id = (int)$this->app->Secure->GetPOST('id'); $id = (int)$this->app->Secure->GetPOST('id');
if($id === 0) { if($id === 0) {
$data = [ $data = [
'aktiv' => 0, 'aktiv' => 0,
'id' => '', 'id' => '',
'bezeichnung' => '', 'bezeichnung' => '',
'projekt' => '', 'projekt' => '',
'remotedomain' => '', 'remotedomain' => '',
'initkey' => '', 'initkey' => '',
'importwarteschlange' => 0, 'importwarteschlange' => 0,
'importwarteschlange_name' => '', 'importwarteschlange_name' => '',
'event_url' => '', 'event_url' => '',
'cleanutf8' => 0, 'cleanutf8' => 0,
'apitempkey' => '', 'apitempkey' => '',
'ishtmltransformation' => 0, 'ishtmltransformation' => 0,
]; ];
return new JsonResponse($data); return new JsonResponse($data);
} }
if($id > 0) { if($id > 0) {
$data = $this->app->DB->SelectRow( $data = $this->app->DB->SelectRow(
sprintf( sprintf(
"SELECT a.id, a.bezeichnung, a.aktiv, p.abkuerzung AS `projekt`, a.remotedomain, a.initkey, "SELECT a.id, a.bezeichnung, a.aktiv, p.abkuerzung AS `projekt`, a.remotedomain, a.initkey,
a.importwarteschlange, a.importwarteschlange_name, a.cleanutf8, a.event_url, a.permissions, a.ishtmltransformation a.importwarteschlange, a.importwarteschlange_name, a.cleanutf8, a.event_url, a.permissions, a.ishtmltransformation
FROM `api_account` AS `a` FROM `api_account` AS `a`
LEFT JOIN `projekt` AS `p` ON a.projekt = p.id LEFT JOIN `projekt` AS `p` ON a.projekt = p.id
WHERE a.id = %d", WHERE a.id = %d",
$id $id
) )
); );
/** @var Api $api */ /** @var Api $api */
$api = $this->app->loadModule('api'); $api = $this->app->loadModule('api');
$data['apitempkey'] = $api->generateHashFromDomainAndKey($data['initkey'], $data['remotedomain']); $data['apitempkey'] = $api->generateHashFromDomainAndKey($data['initkey'], $data['remotedomain']);
if(!empty($data)) { if(!empty($data)) {
return new JsonResponse($data); return new JsonResponse($data);
} }
} }
return new JsonResponse(['error'=>'Account nicht gefunden'], JsonResponse::HTTP_BAD_REQUEST); return new JsonResponse(['error'=>'Account nicht gefunden'], JsonResponse::HTTP_BAD_REQUEST);
} }
/** /**
* @return JsonResponse * @return JsonResponse
*/ */
public function HandleSaveAjaxAction() public function HandleSaveAjaxAction()
{ {
if(!$this->app->erp->RechteVorhanden('api_account', 'edit')) { if(!$this->app->erp->RechteVorhanden('api_account', 'edit')) {
return new JsonResponse(['error'=>'Fehlende Rechte'], JsonResponse::HTTP_BAD_REQUEST); return new JsonResponse(['error'=>'Fehlende Rechte'], JsonResponse::HTTP_BAD_REQUEST);
} }
$id = (int)$this->app->Secure->GetPOST('id'); $id = (int)$this->app->Secure->GetPOST('id');
$bezeichnung = $this->app->Secure->GetPOST('bezeichnung'); $bezeichnung = $this->app->Secure->GetPOST('bezeichnung');
if(empty($bezeichnung)) { if(empty($bezeichnung)) {
return new JsonResponse(['error'=>'Bitte füllen Sie die Bezeichnung aus'], JsonResponse::HTTP_BAD_REQUEST); return new JsonResponse(['error'=>'Bitte füllen Sie die Bezeichnung aus'], JsonResponse::HTTP_BAD_REQUEST);
} }
$projekt = (string)$this->app->Secure->GetPOST('projekt'); $projekt = (string)$this->app->Secure->GetPOST('projekt');
if($projekt !== ''){ if($projekt !== ''){
$projekt = (int)$this->app->erp->ReplaceProjekt(1, $projekt, 1); $projekt = (int)$this->app->erp->ReplaceProjekt(1, $projekt, 1);
} }
else { else {
$projekt = 0; $projekt = 0;
} }
$aktiv = (int)(bool)$this->app->Secure->GetPOST('aktiv'); $aktiv = (int)(bool)$this->app->Secure->GetPOST('aktiv');
$importwarteschlange = (int)(bool)$this->app->Secure->GetPOST('importwarteschlange'); $importwarteschlange = (int)(bool)$this->app->Secure->GetPOST('importwarteschlange');
$cleanutf8 = (int)(bool)$this->app->Secure->GetPOST('cleanutf8'); $cleanutf8 = (int)(bool)$this->app->Secure->GetPOST('cleanutf8');
$remotedomain = $this->app->Secure->GetPOST('remotedomain'); $remotedomain = $this->app->Secure->GetPOST('remotedomain');
$initkey = $this->app->Secure->GetPOST('initkey'); $initkey = $this->app->Secure->GetPOST('initkey');
$importwarteschlange_name = $this->app->Secure->GetPOST('importwarteschlange_name'); $importwarteschlange_name = $this->app->Secure->GetPOST('importwarteschlange_name');
$event_url = $this->app->Secure->GetPOST('event_url'); $event_url = $this->app->Secure->GetPOST('event_url');
$isHtmlTransformation = (int)(bool)$this->app->Secure->GetPOST('ishtmltransformation'); $isHtmlTransformation = (int)(bool)$this->app->Secure->GetPOST('ishtmltransformation');
$api_permissions = $this->prepareApiPermissions($this->app->Secure->GetPOST('api_permissions')); $api_permissions = $this->prepareApiPermissions($this->app->Secure->GetPOST('api_permissions'));
if($id <= 0) { if($id <= 0) {
$this->app->DB->Insert( $this->app->DB->Insert(
sprintf( sprintf(
"INSERT INTO `api_account` "INSERT INTO `api_account`
(`bezeichnung`, `initkey`, `importwarteschlange_name`, `event_url`, `remotedomain`, `aktiv`, (`bezeichnung`, `initkey`, `importwarteschlange_name`, `event_url`, `remotedomain`, `aktiv`,
`importwarteschlange`, `cleanutf8`, `uebertragung_account`, `projekt`, `permissions`, `ishtmltransformation`) `importwarteschlange`, `cleanutf8`, `uebertragung_account`, `projekt`, `permissions`, `ishtmltransformation`)
VALUES ('%s', '%s', '%s', '%s', '%s', %d, VALUES ('%s', '%s', '%s', '%s', '%s', %d,
%d, %d, 0, %d, '%s', %d) ", %d, %d, 0, %d, '%s', %d) ",
$bezeichnung, $initkey, $importwarteschlange_name, $event_url, $remotedomain, $aktiv, $bezeichnung, $initkey, $importwarteschlange_name, $event_url, $remotedomain, $aktiv,
$importwarteschlange, $cleanutf8, $projekt, $api_permissions, $isHtmlTransformation $importwarteschlange, $cleanutf8, $projekt, $api_permissions, $isHtmlTransformation
) )
); );
$id = (int)$this->app->DB->GetInsertID(); $id = (int)$this->app->DB->GetInsertID();
if($id){ if($id){
$data = ['success' => true, 'id' => $id]; $data = ['success' => true, 'id' => $id];
return new JsonResponse($data); return new JsonResponse($data);
} }
return new JsonResponse(['error'=>'Account konnte nicht erstellt werden'], JsonResponse::HTTP_BAD_REQUEST); return new JsonResponse(['error'=>'Account konnte nicht erstellt werden'], JsonResponse::HTTP_BAD_REQUEST);
} }
$data = $this->app->DB->SelectRow( $data = $this->app->DB->SelectRow(
sprintf( sprintf(
"SELECT a.id, a.bezeichnung, a.aktiv, p.abkuerzung AS `projekt`, a.remotedomain, a.initkey, "SELECT a.id, a.bezeichnung, a.aktiv, p.abkuerzung AS `projekt`, a.remotedomain, a.initkey,
a.importwarteschlange, a.importwarteschlange_name, a.cleanutf8, a.event_url, a.permissions, a.ishtmltransformation a.importwarteschlange, a.importwarteschlange_name, a.cleanutf8, a.event_url, a.permissions, a.ishtmltransformation
FROM `api_account` AS `a` FROM `api_account` AS `a`
LEFT JOIN `projekt` AS `p` ON a.projekt = p.id LEFT JOIN `projekt` AS `p` ON a.projekt = p.id
WHERE a.id = %d", WHERE a.id = %d",
$id $id
) )
); );
if(empty($data)) { if(empty($data)) {
return new JsonResponse(['error'=>'Account nicht gefunden'], JsonResponse::HTTP_BAD_REQUEST); return new JsonResponse(['error'=>'Account nicht gefunden'], JsonResponse::HTTP_BAD_REQUEST);
} }
$this->app->DB->Update( $this->app->DB->Update(
sprintf( sprintf(
"UPDATE `api_account` "UPDATE `api_account`
SET `bezeichnung` = '%s', SET `bezeichnung` = '%s',
`initkey` = '%s', `initkey` = '%s',
`importwarteschlange_name` = '%s', `importwarteschlange_name` = '%s',
`event_url` = '%s', `event_url` = '%s',
`remotedomain` = '%s', `remotedomain` = '%s',
`aktiv` = %d, `aktiv` = %d,
`importwarteschlange` = %d, `importwarteschlange` = %d,
`cleanutf8` = %d, `cleanutf8` = %d,
`uebertragung_account` = 0, `uebertragung_account` = 0,
`projekt` = %d , `projekt` = %d ,
`permissions` = '%s', `permissions` = '%s',
`ishtmltransformation` = %d `ishtmltransformation` = %d
WHERE `id` = %d", WHERE `id` = %d",
$bezeichnung, $initkey, $importwarteschlange_name, $event_url, $remotedomain, $aktiv, $bezeichnung, $initkey, $importwarteschlange_name, $event_url, $remotedomain, $aktiv,
$importwarteschlange, $cleanutf8, $projekt, $api_permissions, $isHtmlTransformation, $id $importwarteschlange, $cleanutf8, $projekt, $api_permissions, $isHtmlTransformation, $id
) )
); );
if(empty($this->app->DB->error())) { if(empty($this->app->DB->error())) {
$data = ['success' => true, 'id' => $id]; $data = ['success' => true, 'id' => $id];
return new JsonResponse($data); return new JsonResponse($data);
} }
return new JsonResponse(['error'=>'Account konnte nicht geändert werden'], JsonResponse::HTTP_BAD_REQUEST); return new JsonResponse(['error'=>'Account konnte nicht geändert werden'], JsonResponse::HTTP_BAD_REQUEST);
} }
private function prepareApiPermissions(array $apiPermissions){ private function prepareApiPermissions(array $apiPermissions){
$cleanedPermissions = []; $cleanedPermissions = [];
foreach ($apiPermissions as $permission => $value){ foreach ($apiPermissions as $permission => $value){
if($value === 'true'){ if($value === 'true'){
$cleanedPermissions[] = $permission; $cleanedPermissions[] = $permission;
} }
} }
return json_encode($cleanedPermissions); return json_encode($cleanedPermissions);
} }
public function Api_AccountList(){ public function Api_AccountList(){
$cmd = $this->app->Secure->GetGET('cmd'); $cmd = $this->app->Secure->GetGET('cmd');
if($cmd === 'get') { if($cmd === 'get') {
return $this->HandleGetAjaxAction(); return $this->HandleGetAjaxAction();
} }
if($cmd === 'save') { if($cmd === 'save') {
return $this->HandleSaveAjaxAction(); return $this->HandleSaveAjaxAction();
} }
$apiPermissions = $this->app->DB->SelectArr("SELECT * FROM `api_permission`"); $apiPermissions = $this->app->DB->SelectArr("SELECT * FROM `api_permission`");
$groupedApiPermissions = []; if (empty($apiPermissions)) {
foreach ($apiPermissions as $apiPermission){ $api = $this->app->loadModule('api');
$groupedApiPermissions[$apiPermission['group']][] =$apiPermission; $api->fillApiPermissions();
} $apiPermissions = $this->app->DB->SelectArr("SELECT * FROM `api_permission`");
}
$apiPermissionsHtml = '';
foreach ($groupedApiPermissions as $group => $permissions) { $groupedApiPermissions = [];
$apiPermissionsHtml .= '<tr>'; foreach ($apiPermissions as $apiPermission){
$apiPermissionsHtml .= "<td>{$group}</td>"; $groupedApiPermissions[$apiPermission['group']][] =$apiPermission;
$apiPermissionsHtml .= "<td>"; }
foreach ($permissions as $permission){
$apiPermissionsHtml .= "<label for='{$permission['key']}'>"; $apiPermissionsHtml = '';
$apiPermissionsHtml .= "<input class='permission-checkbox' type='checkbox' name='{$permission['key']}'>"; foreach ($groupedApiPermissions as $group => $permissions) {
$apiPermissionsHtml .= "&nbsp;&nbsp;{$permission['key']}</label>"; $apiPermissionsHtml .= '<tr>';
$apiPermissionsHtml .= "<br>"; $apiPermissionsHtml .= "<td>{$group}</td>";
} $apiPermissionsHtml .= "<td>";
$apiPermissionsHtml .= "</td>"; foreach ($permissions as $permission){
$apiPermissionsHtml .= '</tr>'; $apiPermissionsHtml .= "<label for='{$permission['key']}'>";
} $apiPermissionsHtml .= "<input class='permission-checkbox' type='checkbox' name='{$permission['key']}'>";
$apiPermissionsHtml .= "&nbsp;&nbsp;{$permission['key']}</label>";
$this->app->YUI->TableSearch('TAB1','api_account_list', 'show','','',basename(__FILE__), __CLASS__); $apiPermissionsHtml .= "<br>";
$this->app->erp->MenuEintrag('#', 'Neu'); }
$this->app->erp->MenuEintrag('index.php?module=api_account&action=list', '&Uuml;bersicht'); $apiPermissionsHtml .= "</td>";
$this->app->erp->Headlines('API Account'); $apiPermissionsHtml .= '</tr>';
$this->app->Tpl->Set('API_PERMISSIONS_HTML', $apiPermissionsHtml); }
$this->app->YUI->Autocomplete('projekt', 'projektname', 1);
$this->app->Tpl->Parse('PAGE','api_account_list.tpl'); $this->app->YUI->TableSearch('TAB1','api_account_list', 'show','','',basename(__FILE__), __CLASS__);
} $this->app->erp->MenuEintrag('#', 'Neu');
} $this->app->erp->MenuEintrag('index.php?module=api_account&action=list', '&Uuml;bersicht');
$this->app->erp->Headlines('API Account');
$this->app->Tpl->Set('API_PERMISSIONS_HTML', $apiPermissionsHtml);
$this->app->YUI->Autocomplete('projekt', 'projektname', 1);
$this->app->Tpl->Parse('PAGE','api_account_list.tpl');
}
}

View File

@ -1,179 +1,346 @@
<div id="tabs"> <div id="tabs">
<ul> <ul>
<li><a href="#tabs-1"></a></li> <li>
</ul> <a href="#tabs-1"></a>
<!-- Example for multiple tabs </li>
</ul>
<!-- Example for multiple tabs
<ul hidden"> <ul hidden">
<li><a href="#tabs-1">First Tab</a></li> <li><a href="#tabs-1">First Tab</a></li>
<li><a href="#tabs-2">Second Tab</a></li> <li><a href="#tabs-2">Second Tab</a></li>
</ul> </ul>
--> -->
<div id="tabs-1"> <div id="tabs-1"> [MESSAGE]
[MESSAGE] <form action="" method="post"> [FORMHANDLEREVENT]
<form action="" method="post"> <div class="row">
[FORMHANDLEREVENT] <div class="row-height">
<div class="row"> <div class="col-xs-12 col-md-12 col-md-height">
<div class="row-height"> <div class="inside inside-full-height">
<div class="col-xs-12 col-md-12 col-md-height"> <fieldset>
<div class="inside inside-full-height"> <legend>{|Allgemein|}</legend>
<fieldset> <input type="submit" name="submit" value="Speichern" style="float:right" />
<legend>{|Allgemein|}</legend> <table width="100%" border="0" class="mkTableFormular">
<table width="100%" border="0" class="mkTableFormular"> <tr>
<tr><td>{|E-Mail-Adresse|}:</td><td><input type="text" name="email" value="[EMAIL]" size="40"></td></tr> <td width="200">{|E-Mail-Adresse|}:</td>
<tr><td>{|Angezeigter Name|}:</td><td><input type="text" name="angezeigtername" value="[ANGEZEIGTERNAME]" size="40"></td></tr> <td>
<tr><td>{|Interne Beschreibung|}:</td><td><input type="text" name="internebeschreibung" value="[INTERNEBESCHREIBUNG]" size="40"></td></tr> <input type="text" name="email" value="[EMAIL]" size="40">
<tr><td>{|Benutzername|}:</td><td><input type="text" name="benutzername" value="[BENUTZERNAME]" size="40"></td></tr> </td>
<tr><td>{|Passwort|}:</td><td><input type="password" name="passwort" value="[PASSWORT]" size="40"></td></tr> </tr>
</table> <tr>
</fieldset> <td>{|Angezeigter Name|}:</td>
</div> <td>
</div> <input type="text" name="angezeigtername" value="[ANGEZEIGTERNAME]" size="40">
</div> </td>
</div> </tr>
<div class="row"> <tr>
<div class="row-height"> <td>{|Interne Beschreibung|}:</td>
<div class="col-xs-12 col-md-12 col-md-height"> <td>
<div class="inside inside-full-height"> <input type="text" name="internebeschreibung" value="[INTERNEBESCHREIBUNG]" size="40">
<fieldset> </td>
<legend>{|SMTP|}</legend> </tr>
<table width="100%" border="0" class="mkTableFormular"> <tr>
<tr><td>{|SMTP benutzen|}:</td><td><input type="text" name="smtp_extra" value="[SMTP_EXTRA]" size="40"><i>0 = nein, 1 = ja</i></td></tr> <td>{|Benutzername|}:</td>
<tr><td>{|Server|}:</td><td><input type="text" name="smtp" value="[SMTP]" size="40"></td></tr> <td>
<tr><td>{|Verschl&uuml;sselung|}:</td><td><input type="text" name="smtp_ssl" value="[SMTP_SSL]" size="40"><i>0 = keine, 1 = TLS, 2 = SSL</i></td></tr> <input type="text" name="benutzername" value="[BENUTZERNAME]" size="40">
<tr><td>{|Port|}:</td><td><input type="text" name="smtp_port" value="[SMTP_PORT]" size="40"></td></tr> </td>
<tr><td>{|Authtype|}:</td><td><input type="text" name="smtp_authtype" value="[SMTP_AUTHTYPE]" size="40"><i>'', 'smtp', 'oauth_google'</i></td></tr> </tr>
<tr><td>{|Authparam|}:</td><td><input type="text" name="smtp_authparam" value="[SMTP_AUTHPARAM]" size="40"></td></tr> <tr>
<tr><td>{|Client_alias|}:</td><td><input type="text" name="client_alias" value="[CLIENT_ALIAS]" size="40"></td></tr> <td>{|Passwort|}:</td>
<tr><td>{|Loglevel|}:</td><td><input type="text" name="smtp_loglevel" value="[SMTP_LOGLEVEL]" size="40"></td></tr> <td>
<input type="password" name="passwort" value="[PASSWORT]" size="40">
<tr><td width="50">Testmail:</td><td> </td>
<input type="submit" form="smtp_test" value="Testmail senden" id="testmail-senden-button">&nbsp;<i>Bitte erst speichern und dann senden!</i> </tr>
</td></tr> </table>
</fieldset>
</table> </div>
</fieldset> </div>
</div> </div>
</div> </div>
</div> <div class="row">
</div> <div class="row-height">
<div class="row"> <div class="col-xs-12 col-md-12 col-md-height">
<div class="row-height"> <div class="inside inside-full-height">
<div class="col-xs-12 col-md-12 col-md-height"> <fieldset>
<div class="inside inside-full-height"> <legend>{|SMTP|}</legend>
<fieldset> <table width="100%" border="0" class="mkTableFormular">
<legend>{|IMAP|}</legend> <tr>
<table width="100%" border="0" class="mkTableFormular"> <td width="200">{|SMTP benutzen|}:</td>
<tr><td>{|IMAP server|}:</td><td><input type="text" name="server" value="[SERVER]" size="40"></td></tr> <td>
<tr><td>{|imap_sentfolder_aktiv|}:</td><td><input type="text" name="imap_sentfolder_aktiv" value="[IMAP_SENTFOLDER_AKTIV]" size="40"></td></tr> <input type="checkbox" name="smtp_extra" value="1" [SMTP_EXTRA]>
<tr><td>{|imap_sentfolder|}:</td><td><input type="text" name="imap_sentfolder" value="[IMAP_SENTFOLDER]" size="40"></td></tr> </td>
<tr><td>{|imap_port|}:</td><td><input type="text" name="imap_port" value="[IMAP_PORT]" size="40"></td></tr> </tr>
<tr><td>{|imap_type|}:</td><td><input type="text" name="imap_type" value="[IMAP_TYPE]" size="40"><i>1 = standard, 3 = SSL, 5 = OAuth</i></td></tr> <tr>
<tr><td width="50">Testmail:</td><td> <td>{|Server|}:</td>
<input type="submit" form="imap_test" value="IMAP testen" id="testimap-button">&nbsp;<i>Bitte erst speichern und dann testen!</i> <td>
</td></tr> <input type="text" name="smtp" value="[SMTP]" size="40">
</table> </td>
</fieldset> </tr>
</div> <tr>
</div> <td>{|Verschl&uuml;sselung|}:</td>
</div> <td>
</div> <select name="smtp_ssl">
<div class="row"> [SMTP_SSL_SELECT]
<div class="row-height"> </select>
<div class="col-xs-12 col-md-12 col-md-height"> </td>
<div class="inside inside-full-height"> </tr>
<fieldset> <tr>
<legend>{|Archiv|}</legend> <td>{|Port|}:</td>
<table width="100%" border="0" class="mkTableFormular"> <td>
<tr><td>{|E-Mailarchiv aktiv|}:</td><td><input type="text" name="emailbackup" value="[EMAILBACKUP]" size="40"></td></tr> <input type="text" name="smtp_port" value="[SMTP_PORT]" size="40">
<tr><td>{|Löschen nach wievielen Tagen?|}:</td><td><input type="text" name="loeschtage" value="[LOESCHTAGE]" size="40"></td></tr> </td>
</table> </tr>
</fieldset> <tr>
</div> <td>{|Authtype|}:</td>
</div> <td>
</div> <select name="smtp_authtype">
</div> [SMTP_AUTHTYPE_SELECT]
<div class="row"> </select>
<div class="row-height"> </td>
<div class="col-xs-12 col-md-12 col-md-height"> </tr>
<div class="inside inside-full-height"> <tr>
<fieldset> <td>{|Authparam|}:</td>
<legend>{|Ticketsystem|}</legend> <td>
<table width="100%" border="0" class="mkTableFormular"> <input type="text" name="smtp_authparam" value="[SMTP_AUTHPARAM]" size="40">
<tr><td>{|ticket|}:</td><td><input type="text" name="ticket" value="[TICKET]" size="40"></td></tr> </td>
<tr><td>{|ticketprojekt|}:</td><td><input type="text" id="ticketprojekt" name="ticketprojekt" value="[TICKETPROJEKT]" size="40"></td></tr> </tr>
<tr><td>{|ticketqueue|}:</td><td><input type="text" id="ticketqueue" name="ticketqueue" value="[TICKETQUEUE]" size="40"></td></tr> <tr>
<tr><td>{|abdatum|}:</td><td><input type="text" name="abdatum" value="[ABDATUM]" size="40"></td></tr> <td>{|Client alias|}:</td>
<tr><td>{|ticketloeschen|}:</td><td><input type="text" name="ticketloeschen" value="[TICKETLOESCHEN]" size="40"></td></tr> <td>
<tr><td>{|ticketabgeschlossen|}:</td><td><input type="text" name="ticketabgeschlossen" value="[TICKETABGESCHLOSSEN]" size="40"></td></tr> <input type="text" name="client_alias" value="[CLIENT_ALIAS]" size="40">
<tr><td>{|ticketemaileingehend|}:</td><td><input type="text" name="ticketemaileingehend" value="[TICKETEMAILEINGEHEND]" size="40"></td></tr> </td>
</table> </tr>
</fieldset> <tr>
</div> <td>{|SMTP Debug|}:</td>
</div> <td>
</div> <input type="checkbox" name="smtp_loglevel" value="1" [SMTP_LOGLEVEL]>
</div> </td>
<div class="row"> </tr>
<div class="row-height"> <tr>
<div class="col-xs-12 col-md-12 col-md-height"> <td width="50">Testmail:</td>
<div class="inside inside-full-height"> <td>
<fieldset> <input type="submit" form="smtp_test" value="Testmail senden" id="testmail-senden-button">&nbsp;<i>Bitte erst speichern und dann senden!</i>
<legend>{|Sonstiges|}</legend> </td>
<table width="100%" border="0" class="mkTableFormular"> </tr>
<tr><td>{|autosresponder_blacklist|}:</td><td><input type="text" name="autosresponder_blacklist" value="[AUTOSRESPONDER_BLACKLIST]" size="40"></td></tr> </table>
<tr><td>{|eigenesignatur|}:</td><td><input type="text" name="eigenesignatur" value="[EIGENESIGNATUR]" size="40"></td></tr> </fieldset>
<tr><td>{|signatur|}:</td><td><textarea id="signatur" name="signatur" rows="6" style="width:100%;">[SIGNATUR]</textarea></td></tr> </div>
<tr><td>{|adresse|}:</td><td><input type="text" id="adresse" name="adresse" value="[ADRESSE]" size="40"></td></tr> </div>
<tr><td>{|firma|}:</td><td><input type="text" name="firma" value="[FIRMA]" size="40"></td></tr> </div>
<tr><td>{|geloescht|}:</td><td><input type="text" name="geloescht" value="[GELOESCHT]" size="40"></td></tr> </div>
<tr><td>{|mutex|}:</td><td><input type="text" name="mutex" value="[MUTEX]" size="40"></td></tr> <div class="row">
<tr><td>{|autoresponder|}:</td><td><input type="text" name="autoresponder" value="[AUTORESPONDER]" size="40"></td></tr> <div class="row-height">
<tr><td>{|geschaeftsbriefvorlage|}:</td><td><input type="text" name="geschaeftsbriefvorlage" value="[GESCHAEFTSBRIEFVORLAGE]" size="40"></td></tr> <div class="col-xs-12 col-md-12 col-md-height">
<tr><td>{|autoresponderbetreff|}:</td><td><textarea id="autoresponderbetreff" name="autoresponderbetreff" rows="6" style="width:100%;">[AUTORESPONDERBETREFF]</textarea></td></tr> <div class="inside inside-full-height">
<tr><td>{|autorespondertext|}:</td><td><textarea id="autorespondertext" name="autorespondertext" rows="6" style="width:100%;">[AUTORESPONDERTEXT]</textarea></td></tr> <fieldset>
<tr><td>{|projekt|}:</td><td><input type="text" id="projekt" name="projekt" value="[PROJEKT]" size="40"></td></tr> <legend>{|IMAP|}</legend>
</table> <table width="100%" border="0" class="mkTableFormular">
</fieldset> <tr>
</div> <td width="200">{|IMAP server|}:</td>
</div> <td>
</div> <input type="text" name="server" value="[SERVER]" size="40">
</div> </td>
<input type="submit" name="submit" value="Speichern" style="float:right"/> </tr>
</form> <tr>
</div> <td>{|Gesendete Mails in IMAP-Ordner legen|}:</td>
<!-- Example for 2nd tab <td>
<div id="tabs-2"> <input type="checkbox" name="imap_sentfolder_aktiv" value="1" [IMAP_SENTFOLDER_AKTIV]>
[MESSAGE] </td>
<form action="" method="post"> </tr>
[FORMHANDLEREVENT] <tr>
<div class="row"> <td>{|IMAP-Ordner|}:</td>
<div class="row-height"> <td>
<div class="col-xs-12 col-md-12 col-md-height"> <input type="text" name="imap_sentfolder" value="[IMAP_SENTFOLDER]" size="40">
<div class="inside inside-full-height"> </td>
<fieldset> </tr>
<legend>{|...|}</legend> <tr>
<table width="100%" border="0" class="mkTableFormular"> <td>{|IMAP-Port|}:</td>
... <td>
</table> <input type="text" name="imap_port" value="[IMAP_PORT]" size="40">
</fieldset> </td>
</div> </tr>
</div> <tr>
</div> <td>{|IMAP-Typ|}:</td>
</div> <td>
<input type="submit" name="submit" value="Speichern" style="float:right"/> <select name="imap_type">
</form> [IMAP_TYPE_SELECT]
</div> </select>
--> </td>
</div> </tr>
<tr>
<form id="smtp_test" action = "index.php"> <td width="50">Testmail:</td>
<input type="text" name="module" value="emailbackup" style="display:none"> <td>
<input type="text" name="action" value="test_smtp" style="display:none"> <input type="submit" form="imap_test" value="IMAP testen" id="testimap-button">&nbsp;<i>Bitte erst speichern und dann testen!</i>
<input type="text" name="id" value="[ID]" style="display:none"> </td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
<div class="row">
<div class="row-height">
<div class="col-xs-12 col-md-12 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Archiv|}</legend>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td width="200">{|E-Mailarchiv aktiv|}:</td>
<td>
<input type="checkbox" name="emailbackup" value="1" [EMAILBACKUP]>
</td>
</tr>
<tr>
<td>{|Löschen nach wievielen Tagen?|}:</td>
<td>
<input type="text" name="loeschtage" value="[LOESCHTAGE]" size="40">
</td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
<div class="row">
<div class="row-height">
<div class="col-xs-12 col-md-12 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Ticketsystem|}</legend>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td width="200">{|Mails als Ticket importieren|}:</td>
<td>
<input type="checkbox" name="ticket" value="1" [TICKET]>
</td>
</tr>
<tr>
<td>{|Projekt f&uuml;r Ticket|}:</td>
<td>
<input type="text" id="ticketprojekt" name="ticketprojekt" value="[TICKETPROJEKT]" size="40">
</td>
</tr>
<tr>
<td>{|Warteschlange f&uuml;r Ticket|}:</td>
<td>
<input type="text" id="ticketqueue" name="ticketqueue" value="[TICKETQUEUE]" size="40">
</td>
</tr>
<tr>
<td>{|E-Mails ab Datum importieren|}:</td>
<td>
<input type="text" name="abdatum" id="abdatum" value="[ABDATUM]" size="40">
</td>
</tr>
<tr>
<td>{|E-Mail nach Import l&ouml;schen|}:</td>
<td>
<input type="checkbox" name="ticketloeschen" value="1" [TICKETLOESCHEN]>
</td>
</tr>
<tr>
<td>{|Ticket auf abgeschlossen setzen|}:</td>
<td>
<input type="checkbox" name="ticketabgeschlossen" value="1" [TICKETABGESCHLOSSEN]>
</td>
</tr>
<tr>
<td>{|Ausgehende E-Mailadresse|}:</td>
<td>
<input type="checkbox" name="ticketemaileingehend" value="1" [TICKETEMAILEINGEHEND]>
</td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
<div class="row">
<div class="row-height">
<div class="col-xs-12 col-md-12 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Sonstiges|}</legend>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td>{|Automatisch antworten|}:</td>
<td>
<input type="checkbox" name="autoresponder" value="1" [AUTORESPONDER]>
</td>
</tr>
<tr>
<td width="200">{|Nur eine Antwort pro Tag|}:</td>
<td>
<input type="checkbox" name="autosresponder_blacklist" value="1" [AUTOSRESPONDER_BLACKLIST]>
</td>
</tr>
<tr>
<td>{|Automatische Antwort Betreff|}:</td>
<td>
<textarea id="autoresponderbetreff" name="autoresponderbetreff" rows="6" style="width:100%;">[AUTORESPONDERBETREFF]</textarea>
</td>
</tr>
<tr>
<td>{|Automatische Antwort Text|}:</td>
<td>
<textarea id="autorespondertext" name="autorespondertext" rows="6" style="width:100%;">[AUTORESPONDERTEXT]</textarea>
</td>
</tr>
<tr>
<td>{|Eigene Signatur verwenden|}:</td>
<td>
<input type="checkbox" name="eigenesignatur" value="1" [EIGENESIGNATUR]>
</td>
</tr>
<tr>
<td>{|Signatur|}:</td>
<td>
<textarea id="signatur" name="signatur" rows="6" style="width:100%;">[SIGNATUR]</textarea>
</td>
</tr>
<tr>
<td>{|Adresse|}:</td>
<td>
<input type="text" id="adresse" name="adresse" value="[ADRESSE]" size="40">
</td>
</tr>
<tr>
<td>{|Projekt|}:</td>
<td>
<input type="text" id="projekt" name="projekt" value="[PROJEKT]" size="40">
</td>
</tr>
<tr>
<td>{|Firma|}:</td>
<td>
<input type="text" name="firma" value="[FIRMA]" size="40">
</td>
<tr>
<td>{|Gesch&auml;ftsbriefvorlage|}:</td>
<td>
<input type="text" name="geschaeftsbriefvorlage" value="[GESCHAEFTSBRIEFVORLAGE]" size="40">
</td>
</tr>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
<input type="submit" name="submit" value="Speichern" style="float:right" />
</form>
</div>
<form id="smtp_test" action="index.php">
<input type="text" name="module" value="emailbackup" style="display:none">
<input type="text" name="action" value="test_smtp" style="display:none">
<input type="text" name="id" value="[ID]" style="display:none">
</form> </form>
<form id="imap_test" action="index.php">
<form id="imap_test" action = "index.php"> <input type="text" name="module" value="emailbackup" style="display:none">
<input type="text" name="module" value="emailbackup" style="display:none"> <input type="text" name="action" value="test_imap" style="display:none">
<input type="text" name="action" value="test_imap" style="display:none"> <input type="text" name="id" value="[ID]" style="display:none">
<input type="text" name="id" value="[ID]" style="display:none">
</form> </form>

View File

@ -1412,6 +1412,7 @@
<tr><td width="300">[BEZEICHNUNGANGEBOTERSATZ] als Standard:</td><td><input type="checkbox" name="angebotersatz_standard" [ANGEBOTERSATZ_STANDARD]></td></tr> <tr><td width="300">[BEZEICHNUNGANGEBOTERSATZ] als Standard:</td><td><input type="checkbox" name="angebotersatz_standard" [ANGEBOTERSATZ_STANDARD]></td></tr>
<tr><td width="300">Beschriftung Abweichend Auftrag:</td><td><input type="text" name="bezeichnungauftragersatz" data-lang="bezeichnungauftragersatz" value="[BEZEICHNUNGAUFTRAGERSATZ]">&nbsp;<i>Beschriftung im Auftrag</i></td></tr> <tr><td width="300">Beschriftung Abweichend Auftrag:</td><td><input type="text" name="bezeichnungauftragersatz" data-lang="bezeichnungauftragersatz" value="[BEZEICHNUNGAUFTRAGERSATZ]">&nbsp;<i>Beschriftung im Auftrag</i></td></tr>
<tr><td width="300">Beschriftung Abweichend Rechnung:</td><td><input type="text" name="bezeichnungrechnungersatz" data-lang="bezeichnungrechnungersatz" value="[BEZEICHNUNGRECHNUNGERSATZ]">&nbsp;<i>Beschriftung in Rechnung</i></td></tr> <tr><td width="300">Beschriftung Abweichend Rechnung:</td><td><input type="text" name="bezeichnungrechnungersatz" data-lang="bezeichnungrechnungersatz" value="[BEZEICHNUNGRECHNUNGERSATZ]">&nbsp;<i>Beschriftung in Rechnung</i></td></tr>
<tr><td width="300">[BEZEICHNUNGRECHNUNGERSATZ] als Standard:</td><td><input type="checkbox" name="rechnungersatz_standard" [RECHNUNGERSATZ_STANDARD]></td></tr>
<tr><td width="300">Beschriftung Abweichend Gutschrift:</td><td><input type="text" name="bezeichnungstornorechnung" data-lang="bezeichnungstornorechnung" value="[BEZEICHNUNGSTORNORECHNUNG]">&nbsp;<i>laut 06/2013 §14 UStG</i></td></tr> <tr><td width="300">Beschriftung Abweichend Gutschrift:</td><td><input type="text" name="bezeichnungstornorechnung" data-lang="bezeichnungstornorechnung" value="[BEZEICHNUNGSTORNORECHNUNG]">&nbsp;<i>laut 06/2013 §14 UStG</i></td></tr>
<tr><td width="300">[BEZEICHNUNGSTORNORECHNUNG] als Standard:</td><td><input type="checkbox" name="stornorechnung_standard" [STORNORECHNUNG_STANDARD]></td></tr> <tr><td width="300">[BEZEICHNUNGSTORNORECHNUNG] als Standard:</td><td><input type="checkbox" name="stornorechnung_standard" [STORNORECHNUNG_STANDARD]></td></tr>
<tr><td width="300">Beschriftung Abweichend Lieferschein:</td><td><input type="text" name="bezeichnunglieferscheinersatz" data-lang="bezeichnunglieferscheinersatz" value="[BEZEICHNUNGLIEFERSCHEINERSATZ]">&nbsp;<i>Beschriftung in Lieferschein</i></td></tr> <tr><td width="300">Beschriftung Abweichend Lieferschein:</td><td><input type="text" name="bezeichnunglieferscheinersatz" data-lang="bezeichnunglieferscheinersatz" value="[BEZEICHNUNGLIEFERSCHEINERSATZ]">&nbsp;<i>Beschriftung in Lieferschein</i></td></tr>

View File

@ -0,0 +1,119 @@
<div id="tabs">
<ul>
<li><a href="#tabs-1"></a></li>
</ul>
<!-- Example for multiple tabs
<ul hidden">
<li><a href="#tabs-1">First Tab</a></li>
<li><a href="#tabs-2">Second Tab</a></li>
</ul>
-->
<div id="tabs-1">
[MESSAGE]
<form action="" method="post">
[FORMHANDLEREVENT]
<div class="row">
<div class="row-height">
<div class="col-xs-12 col-md-12 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|<!--Legend for this form area goes here>-->kostenstellen|}
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td>
{|Nummer|}:
</td>
<td>
<input type="text" name="nummer" id="nummer" value="[NUMMER]" size="20">
</td>
</tr>
<tr>
<td>
{|Beschreibung|}:
</td>
<td>
<input type="text" name="beschreibung" id="beschreibung" value="[BESCHREIBUNG]" size="20">
</td>
</tr>
<tr>
<td>
{|Internebemerkung|}:
</td>
<td>
<input type="text" name="internebemerkung" id="internebemerkung" value="[INTERNEBEMERKUNG]" size="20">
</td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
<!-- Example for 2nd row
<div class="row">
<div class="row-height">
<div class="col-xs-12 col-md-12 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Another legend|}</legend>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td>
{|Nummer|}:
</td>
<td>
<input type="text" name="nummer" id="nummer" value="[NUMMER]" size="20">
</td>
</tr>
<tr>
<td>
{|Beschreibung|}:
</td>
<td>
<input type="text" name="beschreibung" id="beschreibung" value="[BESCHREIBUNG]" size="20">
</td>
</tr>
<tr>
<td>
{|Internebemerkung|}:
</td>
<td>
<input type="text" name="internebemerkung" id="internebemerkung" value="[INTERNEBEMERKUNG]" size="20">
</td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div> -->
<input type="submit" name="submit" value="Speichern" style="float:right"/>
</form>
</div>
<!-- Example for 2nd tab
<div id="tabs-2">
[MESSAGE]
<form action="" method="post">
[FORMHANDLEREVENT]
<div class="row">
<div class="row-height">
<div class="col-xs-12 col-md-12 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|...|}</legend>
<table width="100%" border="0" class="mkTableFormular">
...
</table>
</fieldset>
</div>
</div>
</div>
</div>
<input type="submit" name="submit" value="Speichern" style="float:right"/>
</form>
</div>
-->
</div>

View File

@ -0,0 +1,10 @@
<div id="tabs">
<ul>
<li><a href="#tabs-1">[TABTEXT1]</a></li>
</ul>
<div id="tabs-1">
[MESSAGE]
[TAB1]
[TAB1NEXT]
</div>
</div>

View File

@ -8,6 +8,7 @@ SPDX-License-Identifier: LicenseRef-EGPL-3.1
<li><a href="#tabs-2">Aufträge</a></li> <li><a href="#tabs-2">Aufträge</a></li>
</ul> </ul>
<div id="tabs-1"> <div id="tabs-1">
[MESSAGE]
[MESSAGE_INVOICES] [MESSAGE_INVOICES]
<form method="post" action="#"> <form method="post" action="#">
[TAB_INVOICES] [TAB_INVOICES]
@ -19,6 +20,7 @@ SPDX-License-Identifier: LicenseRef-EGPL-3.1
</form> </form>
</div> </div>
<div id="tabs-2"> <div id="tabs-2">
[MESSAGE]
[MESSAGE_ORDERS] [MESSAGE_ORDERS]
<form method="post" action="#"> <form method="post" action="#">
[TAB_ORDERS] [TAB_ORDERS]

View File

@ -0,0 +1,85 @@
<div id="tabs" class="report">
<ul>
<li><a href="#tabs-1">Tabellen</a></li>
<li><a href="#tabs-2">Struktur</a></li>
<li><a href="#tabs-3">Vorschau</a></li>
</ul>
<!-- ende gehort zu tabview -->
<!-- erstes tab -->
<div id="tabs-1">
[MESSAGE]
<div class="row" id="report_list_main">
<div class="row-height">
<div class="col-xs-12 col-sm-10 col-sm-height">
<div>
[TAB1]
</div>
</div>
</div>
</div>
[TAB1NEXT]
</div>
<div id="tabs-2">
[MESSAGE]
<div class="row" id="report_list_main">
<div class="row-height">
<div class="col-xs-12 col-sm-10 col-sm-height">
<legend style="float:left">
Tabelle&nbsp;[TABLENAME]
</legend>
<form method="post" action="#tabs-3">
<fieldset style="float: right;">
<input type="text" name="table" value="[TABLENAME]" hidden></input>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td style="padding-right:10px;"><input type="checkbox" id="auswahlalle" onchange="alleauswaehlen();"/>{|alle markieren|}</td>
<td><button name="submit" value="vorschau" class="ui-button-icon" style="width:100%;float:right;">Vorschau</button></td>
</tr>
</table>
</fieldset>
<p></p>
<div id="columnstab">
[TAB2]
</div>
</form>
</div>
</div>
</div>
[TAB2NEXT]
</div>
<div id="tabs-3">
[MESSAGE]
<div class="row" id="report_list_main">
<div class="row-height">
<div class="col-xs-12 col-sm-10 col-sm-height">
<legend style="float:left">
Tabelle&nbsp;[TABLENAME]
</legend>
<form method="post" action="#tabs-3">
<fieldset style="float: right;">
<input type="text" name="table" value="[TABLENAME]" hidden></input>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td><button name="submit" value="erzeugen" class="ui-button-icon" style="width:100%;float:right;">Bericht erzeugen</button></td>
</tr>
</table>
</fieldset>
</form>
<div>
[TAB3]
</div>
</div>
</div>
</div>
[TAB3NEXT]
</div>
<!-- tab view schließen -->
</div>
<script>
function alleauswaehlen()
{
var wert = $('#auswahlalle').prop('checked');
$('#columnstab').find(':checkbox').prop('checked',wert);
}
</script>

View File

@ -60,7 +60,7 @@
<td> <td>
</td> </td>
<td> <td>
<button name="submit" value="spam_filter" class="ui-button-icon" title="Ticket auf Status 'Papierkorb' setzen und Absender-Adresse in Ticketregel eintragen" style="width:100%;">{|Spamregel erstellen|}</button> <button name="submit" value="spam_filter" class="ui-button-icon" title="Ticket auf Status 'Papierkorb' setzen und Absender-Adresse in Ticketregel eintragen" style="width:100%;" onclick="if(confirm('Wirklich Ticketregel erstellen?'))document.getElementById('form-id').submit(); else return false;">{|Spamregel erstellen|}</button>
</td> </td>
</tr> </tr>
</table> </table>

View File

@ -0,0 +1,215 @@
<div id="tabs">
<ul>
<li><a href="#tabs-1">Verbindlichkeit</a></li>
<li [POSITIONENHIDDEN]><a href="#tabs-2">Positionen</a></li>
<li><a href="#tabs-3">Protokoll</a></li>
</ul>
<div id="tabs-1">
[MESSAGE]
<form action="" method="post">
[FORMHANDLEREVENT]
<div class="row">
<div class="row-height">
<div class="col-xs-12 col-md-6 col-md-height">
<div class="inside inside-full-height">
<div class="row">
<div class="row-height">
<div class="col-xs-12 col-md-8 col-md-height">
<div class="inside inside-full-height">
<fieldset style="float: left;">
<legend>{|<b>Verbindlichkeit <font color="blue">[BELEGNR]</font></b> Lf-Nr. <a href="index.php?module=adresse&action=edit&id=[ADRESSE_ID]">[LIEFERANTENNUMMER]|}</a></legend>
[STATUSICONS]
</fieldset>
<fieldset style="float: right;">
<button name="submit" value="speichern" class="ui-button-icon" style="width:100%;">Speichern</button>
</fieldset>
</div>
</div>
</div>
</div>
<div class="row">
<div class="row-height">
<div class="col-xs-12 col-md-8 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td>
{|Status|}:
</td>
<td>
<input type="text" value="[STATUS]" size="20" disabled>
</td>
</tr>
<tr>
<td>
{|Adresse|}:
</td>
<td>
<input type="text" name="adresse" id="adresse" value="[ADRESSE]" size="20" [SAVEDISABLED] required>
</td>
</tr>
<tr>
<td>
{|Rechnungs-Nr.|}:
</td>
<td>
<input type="text" name="rechnung" id="rechnung" value="[RECHNUNG]" size="20" [SAVEDISABLED] required>
</td>
</tr>
<tr>
<td>
{|Rechnungsdatum|}:
</td>
<td>
<input type="text" name="rechnungsdatum" id="rechnungsdatum" value="[RECHNUNGSDATUM]" size="20" [SAVEDISABLED]>
</td>
</tr>
<tr>
<td>
{|Eingangsdatum|}:
</td>
<td>
<input type="text" name="eingangsdatum" id="eingangsdatum" value="[EINGANGSDATUM]" size="20" [SAVEDISABLED]>
</td>
</tr>
<tr>
<td>
{|Betrag brutto|}:
</td>
<td>
<input type="number" step="0.01" name="betrag" id="betrag" value="[BETRAG]" size="20" [SAVEDISABLED]>
<select name="waehrung" [SAVEDISABLED]>[WAEHRUNGSELECT]</select>
</td>
</tr>
<tr>
<td>
{|Betrag Positionen brutto|}:
</td>
<td>
<input type="number" step="0.01" name="betragbruttopos" id="betragbruttopos" value="[BETRAGBRUTTOPOS]" size="20" disabled><img class="wawitooltipicon" src="themes/new/images/tooltip_grau.png" title="Rundungsdifferenz [RUNDUNGSDIFFERENZ] wurde automatisch ber&uuml;cksichtigt" [RUNDUNGSDIFFERENZICONHIDDEN]>
</td>
</tr>
<tr>
<td>
{|Betrag Positionen netto|}:
</td>
<td>
<input type="number" step="0.01" name="betragnetto" id="betragnetto" value="[BETRAGNETTO]" size="20" disabled [SAVEDISABLED]>
</td>
</tr>
<tr>
<td>
{|Zahlbar bis|}:
</td>
<td>
<input type="text" name="zahlbarbis" id="zahlbarbis" value="[ZAHLBARBIS]" size="20" [SAVEDISABLED]>
</td>
</tr>
<tr>
<td>
{|Skonto %|}:
</td>
<td>
<input type="text" name="skonto" id="skonto" value="[SKONTO]" size="20" [SAVEDISABLED]>
</td>
</tr>
<tr>
<td>
{|Skonto bis|}:
</td>
<td>
<input type="text" name="skontobis" id="skontobis" value="[SKONTOBIS]" size="20" [SAVEDISABLED]>
</td>
</tr>
<tr>
<td>
{|Bestellung|}:
</td>
<td>
<input type="text" name="bestellung" id="bestellung" value="[BESTELLUNG]" size="20" [SAVEDISABLED]>
</td>
</tr>
<tr>
<td>
{|Waren-/Leistungsprüfung (Einkauf)|}:
</td>
<td>
<input type="checkbox" id="wareneingang" value="1" [WARENEINGANGCHECKED] size="20" disabled>
<a href="index.php?module=verbindlichkeit&action=freigabeeinkauf&id=[ID]" title="freigeben" [FREIGABEEINKAUFHIDDEN]><img src="themes/new/images/forward.svg" border="0" class="textfeld_icon"></a>
<a href="index.php?module=verbindlichkeit&action=ruecksetzeneinkauf&id=[ID]" title="r&uuml;cksetzen" [RUECKSETZENEINKAUFHIDDEN]><img src="themes/new/images/delete.svg" border="0" class="textfeld_icon"></a>
<i [EINKAUFINFOHIDDEN]>Wird automatisch gesetzt wenn Positionen vollst&auml;ndig</a>
</td>
</tr>
<tr>
<td>
{|Rechnungseingangsprüfung (Buchhaltung)|}:
</td>
<td>
<input type="checkbox" id="rechnungsfreigabe" [RECHNUNGSFREIGABECHECKED] size="20" disabled>
<a href="index.php?module=verbindlichkeit&action=freigabebuchhaltung&id=[ID]" title="freigeben" [FREIGABEBUCHHALTUNGHIDDEN]><img src="themes/new/images/forward.svg" border="0" class="textfeld_icon"></a>
<a href="index.php?module=verbindlichkeit&action=ruecksetzenbuchhaltung&id=[ID]" title="r&uuml;cksetzen" [RUECKSETZENBUCHHALTUNGHIDDEN]><img src="themes/new/images/delete.svg" border="0" class="textfeld_icon"></a>
</td>
</tr>
<tr>
<td>
{|Bezahlt|}:
</td>
<td>
<input type="checkbox" id="zahlungsstatus" [BEZAHLTCHECKED] size="20" disabled>
<a href="index.php?module=verbindlichkeit&action=freigabebezahlt&id=[ID]" title="auf &apos;bezahlt&apos; setzen" [FREIGABEBEZAHLTHIDDEN]><img src="themes/new/images/forward.svg" border="0" class="textfeld_icon"></a>
<a href="index.php?module=verbindlichkeit&action=ruecksetzenbezahlt&id=[ID]" title="r&uuml;cksetzen" [RUECKSETZENBEZAHLTHIDDEN]><img src="themes/new/images/delete.svg" border="0" class="textfeld_icon"></a>
</td>
</tr>
<tr>
<td>
{|Projekt|}:
</td>
<td>
<input type="text" name="projekt" id="projekt" value="[PROJEKT]" size="20">
</td>
</tr>
<tr>
<td>
{|Kostenstelle|}:
</td>
<td>
<input type="text" name="kostenstelle" id="kostenstelle" value="[KOSTENSTELLE]" size="20">
</td>
</tr>
<tr>
<td>
{|Internebemerkung|}:
</td>
<td>
<textarea name="internebemerkung" id="internebemerkung" rows="6" style="width:100%;">[INTERNEBEMERKUNG]</textarea>
</td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-xs-12 col-md-6 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Vorschau|}</legend>
[INLINEPDF]
</fieldset>
</div>
</div>
</div>
</div>
</form>
</div>
<div id="tabs-2">
[POSITIONENTAB]
</div>
<div id="tabs-3">
[MINIDETAIL]
</div>
</div>

View File

@ -0,0 +1,93 @@
<div id="tabs">
<ul>
<li><a href="#tabs-1">[TABTEXT1]</a></li>
</ul>
<div id="tabs-1">
[MESSAGE]
<div class="filter-box filter-usersave">
<div class="filter-block filter-inline">
<div class="filter-title">{|Filter|}</div>
<ul class="filter-list">
<li class="filter-item">
<label for="anhang" class="switch">
<input type="checkbox" id="anhang">
<span class="slider round"></span>
</label>
<label for="anhang">{|Anhang fehlt|}</label>
</li>
<li class="filter-item">
<label for="wareneingang" class="switch">
<input type="checkbox" id="wareneingang">
<span class="slider round"></span>
</label>
<label for="wareneingang">{|Wareingang/Leistungspr&uuml;fung fehlt|}</label>
</li>
<li class="filter-item">
<label for="rechnungsfreigabe" class="switch">
<input type="checkbox" id="rechnungsfreigabe">
<span class="slider round"></span>
</label>
<label for="rechnungsfreigabe">{|Rechnungseingangspr&uuml;fung fehlt|}</label>
</li>
<li class="filter-item">
<label for="nichtbezahlt" class="switch">
<input type="checkbox" id="nichtbezahlt">
<span class="slider round"></span>
</label>
<label for="nichtbezahlt">{|Nicht bezahlt|}</label>
</li>
<li class="filter-item">
<label for="stornierte" class="switch">
<input type="checkbox" id="stornierte">
<span class="slider round"></span>
</label>
<label for="stornierte">{|Inkl. stornierte|}</label>
</li>
<li class="filter-item">
<label for="abgeschlossen" class="switch">
<input type="checkbox" id="abgeschlossen">
<span class="slider round"></span>
</label>
<label for="abgeschlossen">{|Inkl. abgeschlossene|}</label>
</li>
<li class="filter-item">
<label for="zahlbarbis">{|Zahlbar bis|}:</label>
<input type="text" name="zahlbarbis" id="zahlbarbis" size="10">
</li>
<li class="filter-item">
<label for="skontobis">{|Skonto bis|}:</label>
<input type="text" name="skontobis" id="skontobis" size="10">
</li>
</ul>
<form method="post" action="#">
<button name="submit" value="status_berechnen" class="ui-button-icon">{|Status auffrischen|}</button>
</form>
</div>
</div>
<form method="post" action="#">
[TAB1]
<fieldset><legend>{|Stapelverarbeitung|}</legend>
<input type="checkbox" id="auswahlalle" onchange="alleauswaehlen();" />&nbsp;{|alle markieren|}&nbsp;
<select id="sel_aktion" name="sel_aktion">
<option value="">{|bitte w&auml;hlen|} ...</option>
[MANUELLFREIGABEEINKAUF]
[MANUELLFREIGABEBUCHHALTUNG]
[ALSBEZAHLTMARKIEREN]
</select>
<button name="submit" value="ausfuehren" class="ui-button-icon">{|Ausf&uuml;hren|}</button>
</fieldset>
</form>
[TAB1NEXT]
</div>
</div>
<script>
function alleauswaehlen()
{
var wert = $('#auswahlalle').prop('checked');
$('#verbindlichkeit_list').find(':checkbox').prop('checked',wert);
}
</script>

View File

@ -1,176 +1,76 @@
[FORMHANDLEREVENT] [FORMHANDLEREVENT]
[MESSAGE] [MESSAGE]
<style>
<table class="tableborder" border="0" cellpadding="3" cellspacing="0" width="100%"> .auftraginfo_cell {
<tbody> color: #636363;border: 1px solid #ccc;padding: 5px;
<tr valign="top" colspan="3"> }
<td > .auftrag_cell {
<fieldset><legend>{|Rechnungsdaten|}</legend> color: #636363;border: 1px solid #fff;padding: 0px; margin:0px;
}
</style>
<div style="float:left; width:39%; padding-right:1%;">
<table width="100%" border="0"> <table width="100%" border="0">
<tr valign="top"><td width="150">Lieferant:</td><td>[ADRESSEAUTOSTART][ADRESSE][MSGADRESSE][ADRESSEAUTOEND]</td> <tr valign="top">
<td>&nbsp;</td> <td width="150">Lieferant:</td>
<td colspan="2" rowspan="2" align="center"><b style="color:green">[MELDUNG]</b> <td colspan="3">[ADRESSEAUTOSTART][ADRESSE][MSGADRESSE][ADRESSEAUTOEND]</td>
<br><font size="7">[VERBINDLICHKEIT]</font> </tr>
</td></tr> <tr>
<td>Rechnungs-Nr.:</td>
<tr><td><br><br>Rechnungs Nr.:</td><td><br><br>[RECHNUNG][MSGRECHNUNG]</td> <td>[RECHNUNG][MSGRECHNUNG]</td>
<td>&nbsp;</td> </tr>
</tr> <tr>
<td>Rechnungsdatum:</td>
<tr><td>Bestellung:</td><td width="250">[DISABLESTART]<a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID]" target="_blank">[BESTELLUNG]</a>[MSGBESTELLUNG][MULTIBESTELLUNG][DISABLEENDE]</td> <td width="250">[RECHNUNGSDATUM][MSGRECHNUNGSDATUM]</td>
<td>&nbsp;</td> <tr>
<td width="200">Zahlweise:</td><td>[ZAHLUNGSWEISE][MSGZAHLUNGSWEISE]</td></tr> </tr>
</tr>
<tr><td>Rechnungsdatum:</td><td width="250">[RECHNUNGSDATUM][MSGRECHNUNGSDATUM]</td> <td width="200">Zahlbar bis:</td>
<td>&nbsp;</td> <td>[ZAHLBARBIS][MSGZAHLBARBIS][DATUM_ZAHLBARBIS]</td>
<td width="200">Zahlbar bis:</td><td>[ZAHLBARBIS][MSGZAHLBARBIS][DATUM_ZAHLBARBIS]</td></tr> </tr>
<td>Betrag/Total (Brutto):</td>
<tr><td>Betrag/Total (Brutto):</td><td>[BETRAG][MSGBETRAG]&nbsp;[WAEHRUNG][MSGWAEHRUNG]</td><td>&nbsp;</td> <td>[BETRAG][MSGBETRAG]&nbsp;[WAEHRUNG][MSGWAEHRUNG]</td>
<td>Skonto in %:</td><td>[SKONTO][MSGSKONTO]</td> <tr>
</tr> <td>Skonto in %:</td>
<td>[SKONTO][MSGSKONTO]</td>
<tr><td>USt. 19%:</td><td>[SUMMENORMAL][MSGSUMMENORMAL]</td><td>&nbsp;</td> </tr>
<td>Skonto bis:</td><td>[SKONTOBIS][MSGSKONTOBIS][DATUM_SKONTOBIS]</td> <tr>
</tr> <td>Skonto bis:</td>
<td>[SKONTOBIS][MSGSKONTOBIS][DATUM_SKONTOBIS]</td>
<tr> </tr>
<td>USt. 7%:</td><td>[SUMMEERMAESSIGT][MSGSUMMEERMAESSIGT]</td> <tr>
<td>&nbsp;</td> <td>Projekt:</td>
<td>Umsatzsteuer</td><td>[UMSATZSTEUER][MSGUMSATZSTEUER]</td> <td>[PROJEKT][MSGKOSTENSTELLE]</td>
<td>&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td>[STEUERSATZNAME3]</td><td>[SUMMESATZ3][MSGSUMMESATZ3]</td> <td>Kostenstelle:</td>
<td>&nbsp;</td> <td>[KOSTENSTELLE][MSGKOSTENSTELLE]</td>
<td>[STEUERSATZNAME4]</td><td>[SUMMESATZ4][MSGSUMMESATZ4]</td> <td>&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td>Verwendungszweck:</td><td>[VERWENDUNGSZWECK][MSGVERWENDUNGSZWECK]</td> <td>Interne Bemerkung:</td>
<td>&nbsp;</td> <td colspan="4">[INTERNEBEMERKUNG]</td>
<td>Frachtkosten:</td><td>[FRACHTKOSTEN][MSGFRACHTKOSTEN]</td> </tr>
</tr> </table>
<tr>
<td>Projekt:</td><td>[PROJEKT][MSGKOSTENSTELLE]</td>
<td>&nbsp;</td>
<td></td><td></td>
</tr>
<tr>
<td>Kostenstelle:</td><td>[KOSTENSTELLE][MSGKOSTENSTELLE]</td>
<td>&nbsp;</td>
<td>Freigabe:</td><td>[MSGFREIGABE]&nbsp;<i>Wareneingangspr&uuml;fung:</i>&nbsp;[FREIGABE]&nbsp;[MSGRECHNUNGSFREIGABE]&nbsp;<i>Rechnungseingangspr&uuml;fung:</i>&nbsp;[RECHNUNGSFREIGABE]</td>
</tr>
<tr>
<td>Sachkonto:</td><td>[SACHKONTO][MSGSACHKONTO]</td>
<td>&nbsp;</td>
<td>Aktion:</td><td>[BUTTONBEZAHLT]</td>
</tr>
<tr>
<td>Interne Bemerkung:</td><td colspan="4">[INTERNEBEMERKUNG]</td>
</tr>
</table>
</fieldset>
</td></tr>
</tbody>
</table>
<table class="tableborder" border="0" cellpadding="3" cellspacing="0" width="100%">
<tr valign="top"><td width="50%">
<table cellspacing="5" width="100%">
<!--<tr><td><b>Bestellung</b></td><td><b>Bestell-Nr.</b></td><td><b>Teilbetrag</b></td><td><b>Projekt</b></td><td><b>Kostenstelle</b></td><td><b>Bemerkung</b></td></tr>
<tr><td>Nr. 1</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID1]" target="_blank">[BESTELLUNG1]</a>[MSGBESTELLUNG1]</td><td>[BESTELLUNG1BETRAG][MSGBESTELLUNG1BETRAG]</td>
<td>[BESTELLUNG1PROJEKT]</td><td>[BESTELLUNG1KOSTENSTELLE]</td>
<td>[BESTELLUNG1BEMERKUNG][MSGBESTELLUNG1BEMERKUNG]</td></tr>
<tr><td>Nr. 2</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID2]" target="_blank">[BESTELLUNG2]</a>[MSGBESTELLUNG2]</td><td>[BESTELLUNG2BETRAG][MSGBESTELLUNG2BETRAG]</td>
<td>[BESTELLUNG2PROJEKT]</td><td>[BESTELLUNG2KOSTENSTELLE]</td>
<td>[BESTELLUNG2BEMERKUNG][MSGBESTELLUNG2BEMERKUNG]</td></tr>
<tr><td>Nr. 3</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID3]" target="_blank">[BESTELLUNG3]</a>[MSGBESTELLUNG3]</td><td>[BESTELLUNG3BETRAG][MSGBESTELLUNG3BETRAG]</td>
<td>[BESTELLUNG3PROJEKT]</td><td>[BESTELLUNG3KOSTENSTELLE]</td>
<td>[BESTELLUNG3BEMERKUNG][MSGBESTELLUNG3BEMERKUNG]</td></tr>
<tr><td>Nr. 4</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID4]" target="_blank">[BESTELLUNG4]</a>[MSGBESTELLUNG4]</td><td>[BESTELLUNG4BETRAG][MSGBESTELLUNG4BETRAG]</td>
<td>[BESTELLUNG4PROJEKT]</td><td>[BESTELLUNG4KOSTENSTELLE]</td>
<td>[BESTELLUNG4BEMERKUNG][MSGBESTELLUNG4BEMERKUNG]</td></tr>
<tr><td>Nr. 5</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID5]" target="_blank">[BESTELLUNG5]</a>[MSGBESTELLUNG5]</td><td>[BESTELLUNG5BETRAG][MSGBESTELLUNG5BETRAG]</td>
<td>[BESTELLUNG5PROJEKT]</td><td>[BESTELLUNG5KOSTENSTELLE]</td>
<td>[BESTELLUNG5BEMERKUNG][MSGBESTELLUNG5BEMERKUNG]</td></tr>
<tr><td>Nr. 6</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID6]" target="_blank">[BESTELLUNG6]</a>[MSGBESTELLUNG6]</td><td>[BESTELLUNG6BETRAG][MSGBESTELLUNG6BETRAG]</td>
<td>[BESTELLUNG6PROJEKT]</td><td>[BESTELLUNG6KOSTENSTELLE]</td>
<td>[BESTELLUNG6BEMERKUNG][MSGBESTELLUNG6BEMERKUNG]</td></tr>
<tr><td>Nr. 7</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID7]" target="_blank">[BESTELLUNG7]</a>[MSGBESTELLUNG7]</td><td>[BESTELLUNG7BETRAG][MSGBESTELLUNG7BETRAG]</td>
<td>[BESTELLUNG7PROJEKT]</td><td>[BESTELLUNG7KOSTENSTELLE]</td>
<td>[BESTELLUNG7BEMERKUNG][MSGBESTELLUNG7BEMERKUNG]</td></tr>
<tr><td>Nr. 8</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID8]" target="_blank">[BESTELLUNG8]</a>[MSGBESTELLUNG8]</td><td>[BESTELLUNG8BETRAG][MSGBESTELLUNG8BETRAG]</td>
<td>[BESTELLUNG8PROJEKT]</td><td>[BESTELLUNG8KOSTENSTELLE]</td>
<td>[BESTELLUNG8BEMERKUNG][MSGBESTELLUNG8BEMERKUNG]</td></tr>
<tr><td>Nr. 9</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID9]" target="_blank">[BESTELLUNG9]</a>[MSGBESTELLUNG9]</td><td>[BESTELLUNG9BETRAG][MSGBESTELLUNG9BETRAG]</td>
<td>[BESTELLUNG9PROJEKT]</td><td>[BESTELLUNG9KOSTENSTELLE]</td>
<td>[BESTELLUNG9BEMERKUNG][MSGBESTELLUNG9BEMERKUNG]</td></tr>
<tr><td>Nr. 10</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID10]" target="_blank">[BESTELLUNG10]</a>[MSGBESTELLUNG10]</td><td>[BESTELLUNG10BETRAG][MSGBESTELLUNG10BETRAG]</td>
<td>[BESTELLUNG10PROJEKT]</td><td>[BESTELLUNG10KOSTENSTELLE]</td>
<td>[BESTELLUNG10BEMERKUNG][MSGBESTELLUNG10BEMERKUNG]</td></tr>
<tr><td>Nr. 11</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID11]" target="_blank">[BESTELLUNG11]</a>[MSGBESTELLUNG11]</td><td>[BESTELLUNG11BETRAG][MSGBESTELLUNG11BETRAG]</td>
<td>[BESTELLUNG11PROJEKT]</td><td>[BESTELLUNG11KOSTENSTELLE]</td>
<td>[BESTELLUNG11BEMERKUNG][MSGBESTELLUNG11BEMERKUNG]</td></tr>
<tr><td>Nr. 12</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID12]" target="_blank">[BESTELLUNG12]</a>[MSGBESTELLUNG12]</td><td>[BESTELLUNG12BETRAG][MSGBESTELLUNG12BETRAG]</td>
<td>[BESTELLUNG12PROJEKT]</td><td>[BESTELLUNG12KOSTENSTELLE]</td>
<td>[BESTELLUNG12BEMERKUNG][MSGBESTELLUNG12BEMERKUNG]</td></tr>
<tr><td>Nr. 13</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID13]" target="_blank">[BESTELLUNG13]</a>[MSGBESTELLUNG13]</td><td>[BESTELLUNG13BETRAG][MSGBESTELLUNG13BETRAG]</td>
<td>[BESTELLUNG13PROJEKT]</td><td>[BESTELLUNG13KOSTENSTELLE]</td>
<td>[BESTELLUNG13BEMERKUNG][MSGBESTELLUNG13BEMERKUNG]</td></tr>
<tr><td>Nr. 14</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID14]" target="_blank">[BESTELLUNG14]</a>[MSGBESTELLUNG14]</td><td>[BESTELLUNG14BETRAG][MSGBESTELLUNG14BETRAG]</td>
<td>[BESTELLUNG14PROJEKT]</td><td>[BESTELLUNG14KOSTENSTELLE]</td>
<td>[BESTELLUNG14BEMERKUNG][MSGBESTELLUNG14BEMERKUNG]</td></tr>
<tr><td>Nr. 15</td><td><a href="index.php?module=bestellung&action=edit&id=[BESTELLUNGID15]" target="_blank">[BESTELLUNG15]</a>[MSGBESTELLUNG15]</td><td>[BESTELLUNG15BETRAG][MSGBESTELLUNG15BETRAG]</td>
<td>[BESTELLUNG15PROJEKT]</td><td>[BESTELLUNG15KOSTENSTELLE]</td>
<td>[BESTELLUNG15BEMERKUNG][MSGBESTELLUNG15BEMERKUNG]</td></tr>-->
[TABELLEBESTELLUNGEN]
</table>
</td>
<td>
<table width="100%>">
<tr><td>Summe Verbindlichkeit</td><td>Summe Kontierung</td></tr>
<tr>
<td class="greybox" width="25%">[SUMMEVERBINDLICHKEIT]</td>
<td class="greybox" width="25%">[SUMMEKONTIERUNG]</td>
</tr>
</table>
[MESSAGEVORKONTIERUNG]
[VORKONTIERUNG]
[ZAHLUNGEN]
<div style="background-color:white">
<h2 class="greyh2">{|Protokoll|}</h2>
<div style="padding:10px">
[PROTOKOLL]
</div> </div>
<div style="float:left; width:60%">
<div style="background-color:white">
<h2 class="greyh2">Artikel</h2>
<div style="padding:10px">
[ARTIKEL]
</div>
</div>
<div style="background-color:white">
<h2 class="greyh2">Buchungen</h2>
<div style="padding:10px">
[ZAHLUNGEN]
</div>
</div>
<div style="background-color:white">
<h2 class="greyh2">Protokoll</h2>
<div style="padding:10px;">
[PROTOKOLL]
</div>
</div>
</div> </div>
</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,64 @@
<div id="tabs">
<ul>
<li><a href="#tabs-1"></a></li>
</ul>
<!-- Example for multiple tabs
<ul hidden">
<li><a href="#tabs-1">First Tab</a></li>
<li><a href="#tabs-2">Second Tab</a></li>
</ul>
-->
<div id="tabs-1">
[MESSAGE]
<form action="" method="post">
[FORMHANDLEREVENT]
<div class="row">
<div class="row-height">
<div class="col-xs-12 col-md-12 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Position bearbeiten|}</legend><i></i>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td>
{|Menge|}:
</td>
<td>
<input type="number" name="menge" id="menge" value="[MENGE]" size="20" [SAVEDISABLED]>
</td>
</tr>
<tr>
<td>
{|Preis|}:
</td>
<td>
<input type="number" name="preis" id="preis" step="0.00001" value="[PREIS]" size="20" [SAVEDISABLED]>
</td>
</tr>
<tr>
<td>
{|Steuersatz %|}:
</td>
<td>
<input type="number" name="steuersatz" id="steuersatz" value="[STEUERSATZ]" size="20" [SAVEDISABLED]>
</td>
</tr>
<tr>
<td>
{|Sachkonto|}:
</td>
<td>
<input type="text" name="sachkonto" id="sachkonto" value="[SACHKONTO]" size="20" [SACHKONTOSAVEDISABLED]>
</td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
<input type="submit" name="submit" value="Speichern" style="float:right"/>
</form>
</div>
</div>

View File

@ -0,0 +1,91 @@
[POSITIONENMESSAGE]
<form method="post" action="#tabs-2">
<div class="row" [POSITIONHINZUFUEGENHIDDEN]>
<div class="row-height">
<div class="col-xs-14 col-md-12 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend style="float:left">Offene Artikel aus Wareneing&auml;ngen:</legend>
<div class="filter-box filter-usersave" style="float:right;">
<div class="filter-block filter-inline">
<div class="filter-title">{|Filter|}</div>
<ul class="filter-list">
<li class="filter-item">
<label for="passende" class="switch">
<input type="checkbox" id="passende">
<span class="slider round"></span>
</label>
<label for="passende">{|Nur passende (Bestellung/Rechnungsnummer)|}</label>
</li>
</ul>
</div>
</div>
[PAKETDISTRIBUTION]
</fieldset>
</div>
</div>
<div class="col-xs-14 col-md-2 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<table width="100%" border="0" class="mkTableFormular">
<legend>{|Aktionen|}</legend>
<tr>
<td><input type="checkbox" id="auswahlallewareneingaenge" onchange="allewareneingaengeauswaehlen();" />{|alle markieren|}</td>
</tr>
<tr>
<td><input type="checkbox" name="bruttoeingabe" value="1" />Bruttopreise eingeben</td>
</tr>
<tr>
<td><button [SAVEDISABLED] name="submit" value="positionen_hinzufuegen" class="ui-button-icon" style="width:100%;">Hinzuf&uuml;gen</button></td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
</form>
<form method="post" action="#tabs-2">
<div class="row">
<div class="row-height">
<div class="col-xs-14 col-md-12 col-md-height">
<div class="inside inside-full-height">
[POSITIONEN]
</div>
</div>
<div class="col-xs-14 col-md-2 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<table width="100%" border="0" class="mkTableFormular">
<legend>{|Aktionen|}</legend>
<tr [SACHKONTOCHANGEHIDDEN]>
<td><input type="checkbox" id="auswahlalle" onchange="alleauswaehlen();" />{|alle markieren|}</td>
</tr>
<tr [POSITIONHINZUFUEGENHIDDEN]>
<td><button [SAVEDISABLED] name="submit" value="positionen_entfernen" class="ui-button-icon" style="width:100%;">Entfernen</button></td>
</tr>
<tr [SACHKONTOCHANGEHIDDEN]>
<td><input type="text" name="positionen_sachkonto" id="positionen_sachkonto" value="" size="20"></td>
</tr>
<tr [SACHKONTOCHANGEHIDDEN]>
<td><button name="submit" value="positionen_kontorahmen_setzen" class="ui-button-icon" style="width:100%;">Sachkonto setzen</button></td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
</form>
<script>
function allewareneingaengeauswaehlen()
{
var wert = $('#auswahlallewareneingaenge').prop('checked');
$('#verbindlichkeit_paketdistribution_list').find(':checkbox').prop('checked',wert);
}
function alleauswaehlen()
{
var wert = $('#auswahlalle').prop('checked');
$('#verbindlichkeit_positionen').find(':checkbox').prop('checked',wert);
}
</script>

View File

@ -3,6 +3,19 @@
<li><a href="#tabs-1">[TABTEXT1]</a></li> <li><a href="#tabs-1">[TABTEXT1]</a></li>
</ul> </ul>
<div id="tabs-1"> <div id="tabs-1">
<div class="filter-box filter-usersave">
<div class="filter-block filter-inline">
<div class="filter-title">{|Filter|}</div>
<ul class="filter-list">
<li class="filter-item">
<label for="abgeschlossen" class="switch">
<input type="checkbox" id="abgeschlossen">
<span class="slider round"></span>
</label>
<label for="abgeschlossen">{|Inkl. abgeschlossene|}</label>
</ul>
</div>
</div>
[MESSAGE] [MESSAGE]
[TAB1] [TAB1]
[TAB1NEXT] [TAB1NEXT]

View File

@ -6,15 +6,19 @@
<table height="80" width="100%"><tr><td> <table height="80" width="100%"><tr><td>
<fieldset class="usersave"><legend>&nbsp;Filter</legend> <fieldset class="usersave"><legend>&nbsp;Filter</legend>
<center> <center>
<table width="100%" cellspacing="5"> <form method="POST">
<tr> <table width="100%" cellspacing="5">
<td width="33%"><input type="checkbox" id="eigene" title="nur Artikel vom Lieferant anzeigen">&nbsp;<label for="eigene">{|Nur Artikel vom Lieferant anzeigen|}</label></td> <tr>
<td width="33%">{|Scannen|}: <form method="POST"><input type="text" size="40" name="artikel" autofocus id="artikel" /></form></td> <td width="33%"><input type="checkbox" id="eigene" title="nur Artikel vom Lieferant anzeigen">&nbsp;<label for="eigene">{|Nur Artikel vom Lieferant anzeigen|}</label></td>
<td width="33%"></td> <td width="33%">{|Artikel|}: <input type="text" size="40" name="artikel" autofocus id="artikel" /></td>
</tr></table> <td width="33%">{|Menge|}: <input type="number" size="40" name="menge" id="menge" value="1"/></td>
</center> <td width="33%"><button name="submit" class="ui-button-icon" style="width:100%;" value="abschliessen">{|Weiter|}</button></td>
</fieldset>
</td></tr></table> </tr>
</table>
</center>
</fieldset>
</td></tr></table>
[MESSAGE] [MESSAGE]
[TAB1] [TAB1]

View File

@ -15,14 +15,14 @@
<table height="200" border="0" width="450"> <table height="200" border="0" width="450">
<tr valign="top"><td><b>Artikel:</b></td><td><u>[NAME]</u></td></tr> <tr valign="top"><td><b>Artikel:</b></td><td><u>[NAME]</u></td></tr>
<tr valign="top"><td><b>Menge:</b></td><td>[MENGE]</td></tr>
<!--<tr valign="top"><td>Lieferant:</td><td>[LIEFERANT]</td></tr> --> <!--<tr valign="top"><td>Lieferant:</td><td>[LIEFERANT]</td></tr> -->
<tr valign="top"><td><br></td><td align="center"></td></tr> <tr valign="top"><td><br></td><td align="center"></td></tr>
<tr valign="top"><td><b>Bemerkung:</b></td><td><textarea cols="35" rows="2" name="bemerkung">[BEMERKUNG]</textarea> <tr valign="top"><td><b>Bemerkung:</b></td><td><textarea cols="35" rows="2" name="bemerkung">[BEMERKUNG]</textarea>
</td></tr> </td></tr>
<tr valign="top"><td><br></td><td align="center"></td></tr> <tr valign="top"><td><br></td><td align="center"></td></tr>
<tr valign="top"><td nowrap><b>Anmerkung:</b></td><td>Artikel zu Mitarbeiter [MITARBEITER] bringen
[DISPLAY_WARENEINGANG_RMA_HOOK1] [DISPLAY_WARENEINGANG_RMA_HOOK1]
<tr valign="top"><td><br></td><td align="center"><input type="submit" name="submit" value="Speichern" />&nbsp;<input type="button" onclick="window.location.href='index.php?module=wareneingang&action=distriinhalt&id=[ID]'" value="Abbrechen" /></td></tr> <tr valign="top"><td><br></td><td align="center"><input type="submit" name="submit" value="Buchen" />&nbsp;<input type="button" onclick="window.location.href='index.php?module=wareneingang&action=distriinhalt&id=[ID]'" value="Abbrechen" /></td></tr>
</td></tr> </td></tr>
</table> </table>

View File

@ -1,160 +1,231 @@
<!-- gehort zu tabview --> <!-- gehort zu tabview -->
<div id="tabs"> <div id="tabs">
<ul> <ul> [BEFORETAB1]
[BEFORETAB1]<li><a href="#tabs-1">[TAB1TEXT]</a></li>[AFTERTAB1] <li><a href="#tabs-1">[TAB1TEXT]</a></li>[AFTERTAB1] [BEFORETAB2]
[BEFORETAB2]<li><a href="#tabs-2">[TAB2TEXT]</a></li>[AFTERTAB2] <li><a href="#tabs-2">[TAB2TEXT]</a></li>[AFTERTAB2] [BEFORETAB3]
[BEFORETAB3]<li><a href="#tabs-3">[TAB3TEXT]</a></li>[AFTERTAB3] <li><a href="#tabs-3">[TAB3TEXT]</a></li>[AFTERTAB3] </ul>
</ul> <!-- ende gehort zu tabview -->
<!-- ende gehort zu tabview --> <!-- erstes tab -->
<input type="hidden" id="paketannahme_id" value="[ID]" /> [BEFORETAB1]
<!-- erstes tab --> <form action="" method="post">
<input type="hidden" id="paketannahme_id" value="[ID]" /> <div id="tabs-1"> [TAB1START] [MESSAGE1] [MESSAGE]
[BEFORETAB1] <div class="row">
<div id="tabs-1"> <div class="row-height">
[TAB1START] <div class="col-xs-12 col-md-5 col-md-height">
[MESSAGE1] <div class="inside inside-full-height">
<form action="" method="post"> <fieldset>
<div class="row"> <legend>{|[LEGENDE]|}</legend>
<div class="row-height"> <table>
<div class="col-xs-12 col-md-10 col-md-height"> <tr>
<div class="inside inside-full-height"> <td>{|Status|}:</td>
<fieldset> <td>
<legend>{|[LEGENDE]|}</legend> <input type=text size="40" value="[STATUS]" disabled>
<table> </td>
<tr><td>{|Lieferschein-Nr.|}:</td><td><input type=text size="40" name="lsnr" value=[LSNR]></td></tr> </tr>
<tr><td>{|Rechnung-Nr.|}:</td><td><input type=text size="40" name="renr" value=[RENR]></td></tr> <tr [ABGESCHLOSSENHIDDEN]>
<tr><td>{|Bemerkung|}:</td><td><textarea rows="5" cols="40" name="bemerkung">[BEMERKUNG]</textarea></td></tr> <td></td>
[ISLIEFERANTSTART] <td><i>Abgeschlossen am [DATUM_ABGESCHLOSSEN] durch [BEARBEITER_ABGESCHLOSSEN]</i></td>
<tr><td>{|Ziellager|}:</td><td><input type=text size="40" name="ziellager" id="ziellager" value=[LAGER]><br><i>Wenn nicht angegeben, wird das Standardlager des Artikels bebucht.</i></td></tr> </tr>
[ISLIEFERANTENDE] <tr>
</table> <td>{|Lieferschein-Nr.|}:</td>
</fieldset> <td>
<input type=text size="40" name="lsnr" value="[LSNR]">
</td>
</tr>
<tr>
<td>{|Rechnung-Nr.|}:</td>
<td>
<input type=text size="40" name="renr" value="[RENR]">
</td>
</tr>
</table>
</fieldset>
</div>
</div>
<div class="col-xs-12 col-md-5 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<table>
<tr>
<td>{|Bemerkung|}:</td>
<td>
<textarea rows="5" cols="40" name="bemerkung">[BEMERKUNG]</textarea>
</td>
</tr>
[ISLIEFERANTSTART]
[ISLIEFERANTENDE]
</table>
</fieldset>
</div>
</div>
<div class="col-xs-12 col-md-2 col-md-height">
<div class="inside inside-full-height">
<fieldset> [BUTTONS] [BEFOREFRM] [AFTERFRM] [DISTRIINHALTBUTTONS] [BEFOREFRM] [AFTERFRM]
<button name="submit" class="ui-button-icon" style="width:100%;" value="speichern" hidden="true"></button>
<table width="100%" border="0" class="mkTableFormular">
<legend>{|Aktionen|}</legend>
<tr>
<td>
<button name="submit" class="ui-button-icon" style="width:100%;" value="speichern">{|Speichern|}</button>
</td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div> </div>
</div> <div class="row" [HINZUFUEGENHIDDEN]>
<div class="col-xs-12 col-md-2 col-md-height"> <div class="row-height">
<div class="inside inside-full-height"> <div class="col-xs-12 col-md-10 col-md-height">
<fieldset> <div class="inside-white inside-full-height">
[BUTTONS] <div class="filter-box filter-usersave" style="float:right;">
[BEFOREFRM] <div class="filter-block filter-inline">
[AFTERFRM] <div class="filter-title">{|Filter|}</div>
[DISTRIINHALTBUTTONS] <ul class="filter-list">
[BEFOREFRM] <li class="filter-item">
[AFTERFRM] <label for="ausfuellen" class="switch">
<button name="submit" class="ui-button-icon" style="width:100%;" value="speichern" hidden="true"></button> <input type="checkbox" id="ausfuellen">
<table width="100%" border="0" class="mkTableFormular"> <span class="slider round"></span>
<legend>{|Aktionen|}</legend> </label>
[BEFOREMANUELLERFASSEN] <label for="ausfuellen">{|Aus&uuml;llen|}</label>
<tr><td> </li>
<button name="submit" class="ui-button-icon" style="width:100%;" value="manuellerfassen">{|Artikel manuell erfassen|}</button> </ul>
</td></tr> </div>
[AFTERMANUELLERFASSEN] </div>
[ISLIEFERANTSTART] [TAB1]
<tr><td> </div>
<button name="submit" class="ui-button-icon" style="width:100%;" value="fuellen">{|Aus Bestellungen f&uuml;llen|}</button> </div>
</td></tr> <div class="col-xs-12 col-md-2 col-md-height">
<tr><td> <div class="inside inside-full-height">
<button name="submit" class="ui-button-icon" style="width:100%;" value="leeren">{|Leeren|}</button> <fieldset> [BUTTONS] [BEFOREFRM] [AFTERFRM] [DISTRIINHALTBUTTONS] [BEFOREFRM] [AFTERFRM]
</td></tr> <button name="submit" class="ui-button-icon" style="width:100%;" value="speichern" hidden="true"></button>
[ISLIEFERANTENDE] <table width="100%" border="0" class="mkTableFormular">
<tr><td> <legend>{|Aktionen|}</legend>
<button name="submit" class="ui-button-icon" style="width:100%;" value="speichern">{|Speichern|}</button> [ISLIEFERANTSTART]
</td></tr> <tr [HINZUFUEGENHIDDEN]>
[ISLIEFERANTSTART] <td>
<tr><td> <button name="submit" class="ui-button-icon" style="width:100%;" value="hinzufuegen">{|Hinzuf&uuml;gen|}</button>
<button name="submit" class="ui-button-icon" style="width:100%;" value="buchen">{|Buchen|}</button> </td>
</td></tr> </tr>
[ISLIEFERANTENDE] [ISLIEFERANTENDE]
<tr><td> [ISNOTLIEFERANTSTART]
<button name="submit" class="ui-button-icon" style="width:100%;" value="abschliessen">{|Abschlie&szlig;en|}</button> <tr [HINZUFUEGENHIDDEN]>
</td></tr> <td>
</table> {|Multifilter|}:
</fieldset> </td>
</tr>
<tr [HINZUFUEGENHIDDEN]>
<td>
<input type="text" name="multifilter" id="multifilter" value="[MULTIFILTER]" size="20" style="width:98%;" form="">
</td>
</tr>
<tr [HINZUFUEGENHIDDEN]>
<td>
<button name="submit" class="ui-button-icon" style="width:100%;" value="manuell_hinzufuegen">{|Hinzuf&uuml;gen|}</button>
</td>
</tr>
[ISNOTLIEFERANTENDE]
</table>
</fieldset>
</div>
</div>
</div>
</div> </div>
</div> <div class="row">
</div> <div class="row-height">
</div> <div class="col-xs-12 col-md-10 col-md-height">
<div class="row"> <div class="inside-white inside-full-height">
<div class="row-height">
<div class="col-xs-12 col-md-10 col-md-height"> </div>
<div class="inside-white inside-full-height"> </div>
[TAB1] </div>
</div> </div>
</div> <div class="row">
</div> <div class="row-height">
</div> <div class="col-xs-12 col-md-10 col-md-height">
<div class="row"> <div class="inside-white inside-full-height"> [TAB1_SECOND] </div>
<div class="row-height"> </div>
<div class="col-xs-12 col-md-10 col-md-height"> <div class="col-xs-12 col-md-2 col-md-height">
<div class="inside-white inside-full-height"> <div class="inside inside-full-height">
[TAB1_SECOND] <fieldset>
</div> <button name="submit" class="ui-button-icon" style="width:100%;" value="speichern" hidden="true"></button>
</div> <table width="100%" border="0" class="mkTableFormular">
</div> <legend>{|Aktionen|}</legend>
</div> <tr [BUCHENHIDDEN]>
</form> <td>
[TAB1ENDE] <button name="submit" class="ui-button-icon" style="width:100%;" value="vorlaeufige_buchen">{|Buchen|}</button>
</div> </td>
[AFTERTAB1] </tr>
[BEFORETAB2] <tr [BUCHENHIDDEN]>
<div id="tabs-2"> <td>
{|Ziellager|}:&nbsp;<img src="./themes/new/images/tooltip_grau.png" border="0" style="position: relative; left: 1px; top: 3px; z-index: 8;" class="wawitooltipicon" title="Wenn nicht angegeben, wird das Standardlager des Artikels bebucht.">
[TAB2START] </td>
[MESSAGE2] </tr>
<tr [BUCHENHIDDEN]>
<div class="row"> <td>
<div class="row-height"> <input type=text name="ziellager" id="ziellager" value="[LAGER]" style="width:98%;">
<div class="col-xs-12 col-md-10 col-md-height"> </td>
<div class="inside-white inside-full-height"> </tr>
[TAB2] <tr [ABSCHLIESSENHIDDEN]>
<div class="center">[BUTTONS2]</div> <td>
</div> <button name="submit" class="ui-button-icon" style="width:100%;" value="abschliessen">{|Abschlie&szlig;en|}</button>
</div> </td>
<div class="col-xs-12 col-md-2 col-md-height"> </tr>
<div class="inside inside-full-height"> </table>
<fieldset> </fieldset>
<legend>{|Aktionen|}</legend> </div>
[BUTTONS] </div>
</fieldset> </div>
</div> </div>
</div> [TAB1ENDE]
</div> </div> [AFTERTAB1] [BEFORETAB2]
</div> <div id="tabs-2"> [TAB2START] [MESSAGE2]
[TAB2ENDE] <div class="row">
</div> <div class="row-height">
[AFTERTAB2] <div class="col-xs-12 col-md-10 col-md-height">
[BEFORETAB3] <div class="inside-white inside-full-height"> [TAB2]
<div id="tabs-3"> <div class="center">[BUTTONS2]</div>
[TAB3START] </div>
[MESSAGE3] </div>
<div class="row"> <div class="col-xs-12 col-md-2 col-md-height">
<div class="row-height"> <div class="inside inside-full-height">
<div class="col-xs-12 col-md-10 col-md-height"> <fieldset>
<div class="inside-white inside-full-height"> <button name="submit" class="ui-button-icon" style="width:100%;" value="speichern" hidden="true"></button>
[TAB3] <table width="100%" border="0" class="mkTableFormular">
</div> <legend>{|Aktionen|}</legend>
</div> <tr [HINZUFUEGENHIDDEN]>
<div class="col-xs-12 col-md-2 col-md-height"> <td>
<div class="inside inside-full-height"> {|Multifilter|}:&nbsp;<img src="./themes/new/images/tooltip_grau.png" border="0" style="position: relative; left: 1px; top: 3px; z-index: 8;" class="wawitooltipicon" title="Auswahl mehrerer Artikel &uuml;ber Name oder Nummer">
<fieldset> </td>
<legend>{|Aktionen|}</legend> </tr>
[BUTTONS] <tr [HINZUFUEGENHIDDEN]>
</fieldset> <td>
</div> <input type="text" name="multifilter" id="multifilter" value="[MULTIFILTER]" size="20" style="width:98%;" form="">
</div> </td>
</div> </tr>
</div> <tr [HINZUFUEGENHIDDEN]>
[TAB3ENDE] <td>
</div> <button name="submit" class="ui-button-icon" style="width:100%;" value="manuell_hinzufuegen">{|Hinzuf&uuml;gen|}</button>
[AFTERTAB3] </td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div> [TAB2ENDE]
</div> [AFTERTAB2]
</form>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
$( "#tabs" ).tabs( "option", "active", [TABINDEX]); $("#tabs").tabs("option", "active", [TABINDEX]);
if($('#frmWareneingangDistribution').length) { if($('#frmWareneingangDistribution').length) {
$('#btnabschliessen').on('click',function(){ $('#btnabschliessen').on('click', function() {
$('#frmWareneingangDistribution').append('<input type="hidden" value="1" name="abschliessen" />'); $('#frmWareneingangDistribution').append('<input type="hidden" value="1" name="abschliessen" />');
$('#frmWareneingangDistribution').find('[name="submit"]').trigger('click'); $('#frmWareneingangDistribution').find('[name="submit"]').trigger('click');
}); });
} }
}); });
</script> </script>

View File

@ -116,6 +116,7 @@ $width = array('10%'); // Fill out manually later
$input['ticketprojekt'] = $this->app->erp->ReplaceProjekt(true,$input['ticketprojekt'],true); // Parameters: Target db?, value, from form? $input['ticketprojekt'] = $this->app->erp->ReplaceProjekt(true,$input['ticketprojekt'],true); // Parameters: Target db?, value, from form?
$input['adresse'] = $this->app->erp->ReplaceAdresse(true,$input['adresse'],true); // Parameters: Target db?, value, from form? $input['adresse'] = $this->app->erp->ReplaceAdresse(true,$input['adresse'],true); // Parameters: Target db?, value, from form?
$input['ticketqueue'] = explode(" ",$input['ticketqueue'])[0]; // Just the label $input['ticketqueue'] = explode(" ",$input['ticketqueue'])[0]; // Just the label
$input['abdatum'] = $this->app->erp->ReplaceDatum(true,$input['abdatum'],true);
$columns = "id, "; $columns = "id, ";
$values = "$id, "; $values = "$id, ";
@ -146,7 +147,6 @@ $width = array('10%'); // Fill out manually later
else { else {
$sql = "INSERT INTO emailbackup (".$columns.") VALUES (".$values.") ON DUPLICATE KEY UPDATE ".$update; $sql = "INSERT INTO emailbackup (".$columns.") VALUES (".$values.") ON DUPLICATE KEY UPDATE ".$update;
$this->app->DB->Update($sql); $this->app->DB->Update($sql);
if ($id == 'NULL') { if ($id == 'NULL') {
$msg = $this->app->erp->base64_url_encode("<div class=\"success\">Das Element wurde erfolgreich angelegt.</div>"); $msg = $this->app->erp->base64_url_encode("<div class=\"success\">Das Element wurde erfolgreich angelegt.</div>");
header("Location: index.php?module=emailbackup&action=list&msg=$msg"); header("Location: index.php?module=emailbackup&action=list&msg=$msg");
@ -159,31 +159,69 @@ $width = array('10%'); // Fill out manually later
// Load values again from database // Load values again from database
$result = $this->app->DB->SelectArr("SELECT id, angezeigtername, internebeschreibung, benutzername, passwort, server, smtp, ticket, imap_sentfolder_aktiv, imap_sentfolder, imap_port, imap_type, autoresponder, geschaeftsbriefvorlage, autoresponderbetreff, autorespondertext, projekt, emailbackup, adresse, firma, loeschtage, geloescht, ticketloeschen, ticketabgeschlossen, ticketqueue, ticketprojekt, ticketemaileingehend, smtp_extra, smtp_ssl, smtp_port, smtp_frommail, smtp_fromname, client_alias, smtp_authtype, smtp_authparam, smtp_loglevel, autosresponder_blacklist, eigenesignatur, signatur, mutex, abdatum, email, id FROM emailbackup"." WHERE id=$id"); $result = $this->app->DB->SelectArr("SELECT id, angezeigtername, internebeschreibung, benutzername, passwort, server, smtp, ticket, imap_sentfolder_aktiv, imap_sentfolder, imap_port, imap_type, autoresponder, geschaeftsbriefvorlage, autoresponderbetreff, autorespondertext, projekt, emailbackup, adresse, firma, loeschtage, geloescht, ticketloeschen, ticketabgeschlossen, ticketqueue, ticketprojekt, ticketemaileingehend, smtp_extra, smtp_ssl, smtp_port, smtp_frommail, smtp_fromname, client_alias, smtp_authtype, smtp_authparam, smtp_loglevel, autosresponder_blacklist, eigenesignatur, signatur, mutex, abdatum, email, id FROM emailbackup"." WHERE id=$id");
foreach ($result[0] as $key => $value) { if (!empty($result)) {
$emailbackup = $result[0];
} else {
return;
}
foreach ($emailbackup as $key => $value) {
$this->app->Tpl->Set(strtoupper($key), $value); $this->app->Tpl->Set(strtoupper($key), $value);
} }
/*
* Add displayed items later
*
$this->app->Tpl->Add('KURZUEBERSCHRIFT2', $email); // Checkboxes
$this->app->Tpl->Add('EMAIL', $email); $this->app->Tpl->Set('SMTP_EXTRA', $emailbackup['smtp_extra']?'checked':'');
$this->app->Tpl->Add('ANGEZEIGTERNAME', $angezeigtername); $this->app->Tpl->Set('SMTP_LOGLEVEL', $emailbackup['smtp_loglevel']?'checked':'');
*/ $this->app->Tpl->Set('IMAP_SENTFOLDER_AKTIV', $emailbackup['imap_sentfolder_aktiv']?'checked':'');
$this->app->Tpl->Set('EMAILBACKUP', $emailbackup['emailbackup']?'checked':'');
$this->app->Tpl->Set('TICKET', $emailbackup['ticket']?'checked':'');
$this->app->Tpl->Set('TICKETLOESCHEN', $emailbackup['ticketloeschen']?'checked':'');
$this->app->Tpl->Set('TICKETABGESCHLOSSEN', $emailbackup['ticketabgeschlossen']?'checked':'');
$this->app->Tpl->Set('TICKETEMAILEINGEHEND', $emailbackup['ticketemaileingehend']?'checked':'');
$this->app->Tpl->Set('EIGENESIGNATUR', $emailbackup['eigenesignatur']?'checked':'');
$this->app->Tpl->Set('AUTORESPONDER', $emailbackup['autoresponder']?'checked':'');
$this->app->Tpl->Set('AUTOSRESPONDER_BLACKLIST', $emailbackup['autosresponder_blacklist']?'checked':'');
$this->app->YUI->CkEditor("signatur","internal", null, 'JQUERY'); $this->app->YUI->CkEditor("signatur","internal", null, 'JQUERY');
$this->app->YUI->CkEditor("autoresponderbetreff","internal", null, 'JQUERY'); $this->app->YUI->CkEditor("autoresponderbetreff","internal", null, 'JQUERY');
$this->app->YUI->CkEditor("autorespondertext","internal", null, 'JQUERY'); $this->app->YUI->CkEditor("autorespondertext","internal", null, 'JQUERY');
$this->app->Tpl->Set('PROJEKT',$this->app->erp->ReplaceProjekt(false,$result[0]['projekt'],false)); // Parameters: Target db?, value, from form? $this->app->Tpl->Set('PROJEKT',$this->app->erp->ReplaceProjekt(false,$emailbackup['projekt'],false)); // Parameters: Target db?, value, from form?
$this->app->Tpl->Set('TICKETPROJEKT',$this->app->erp->ReplaceProjekt(false,$result[0]['ticketprojekt'],false)); // Parameters: Target db?, value, from form? $this->app->Tpl->Set('TICKETPROJEKT',$this->app->erp->ReplaceProjekt(false,$emailbackup['ticketprojekt'],false)); // Parameters: Target db?, value, from form?
$this->app->Tpl->Set('ADRESSE', $this->app->erp->ReplaceAdresse(false,$result[0]['adresse'],false)); // Convert ID to form display $this->app->Tpl->Set('ADRESSE', $this->app->erp->ReplaceAdresse(false,$emailbackup['adresse'],false)); // Convert ID to form display
$this->app->YUI->AutoComplete("projekt","projektname",1); $this->app->YUI->AutoComplete("projekt","projektname",1);
$this->app->YUI->AutoComplete("ticketprojekt","projektname",1); $this->app->YUI->AutoComplete("ticketprojekt","projektname",1);
$this->app->YUI->AutoComplete("adresse","adresse"); $this->app->YUI->AutoComplete("adresse","adresse");
$this->app->YUI->AutoComplete("ticketqueue","warteschlangename"); $this->app->YUI->AutoComplete("ticketqueue","warteschlangename");
$this->app->YUI->AutoComplete("ticketprojekt","projektname",1); $this->app->YUI->AutoComplete("ticketprojekt","projektname",1);
$this->app->Tpl->Parse('PAGE', "emailbackup_edit.tpl");
$this->app->YUI->DatePicker("abdatum");
$this->app->Tpl->Set('ABDATUM',$this->app->erp->ReplaceDatum(false,$emailbackup['abdatum'],false));
$smtp_ssl_select = Array(
'0' => 'Keine',
'1' => 'TLS',
'2' => 'SSL'
);
$smtp_ssl_select = $this->app->erp->GetSelectAsso($smtp_ssl_select,$emailbackup['smtp_ssl']);
$this->app->Tpl->Set('SMTP_SSL_SELECT',$smtp_ssl_select);
$smtp_authtype_select = Array(
'' => 'Kein',
'smtp' => 'SMTP',
'oauth_google' => 'Oauth Google'
);
$smtp_authtype_select = $this->app->erp->GetSelectAsso($smtp_authtype_select,$emailbackup['smtp_authtype']);
$this->app->Tpl->Set('SMTP_AUTHTYPE_SELECT',$smtp_authtype_select);
$imap_type_select = Array(
'1' => 'Standard',
'3' => 'SSL',
'5' => 'Oauth'
);
$imap_type_select = $this->app->erp->GetSelectAsso($imap_type_select,$emailbackup['imap_type']);
$this->app->Tpl->Set('IMAP_TYPE_SELECT',$imap_type_select);
$this->app->Tpl->Parse('PAGE', "emailbackup_edit.tpl");
} }
/** /**
@ -194,47 +232,46 @@ $width = array('10%'); // Fill out manually later
//$input['EMAIL'] = $this->app->Secure->GetPOST('email'); //$input['EMAIL'] = $this->app->Secure->GetPOST('email');
$input['angezeigtername'] = $this->app->Secure->GetPOST('angezeigtername'); $input['angezeigtername'] = $this->app->Secure->GetPOST('angezeigtername');
$input['internebeschreibung'] = $this->app->Secure->GetPOST('internebeschreibung'); $input['internebeschreibung'] = $this->app->Secure->GetPOST('internebeschreibung');
$input['benutzername'] = $this->app->Secure->GetPOST('benutzername'); $input['benutzername'] = $this->app->Secure->GetPOST('benutzername');
$input['passwort'] = $this->app->Secure->GetPOST('passwort'); $input['passwort'] = $this->app->Secure->GetPOST('passwort');
$input['server'] = $this->app->Secure->GetPOST('server'); $input['server'] = $this->app->Secure->GetPOST('server');
$input['smtp'] = $this->app->Secure->GetPOST('smtp'); $input['smtp'] = $this->app->Secure->GetPOST('smtp');
$input['ticket'] = $this->app->Secure->GetPOST('ticket'); $input['ticket'] = $this->app->Secure->GetPOST('ticket');
$input['imap_sentfolder_aktiv'] = $this->app->Secure->GetPOST('imap_sentfolder_aktiv'); $input['imap_sentfolder_aktiv'] = $this->app->Secure->GetPOST('imap_sentfolder_aktiv');
$input['imap_sentfolder'] = $this->app->Secure->GetPOST('imap_sentfolder'); $input['imap_sentfolder'] = $this->app->Secure->GetPOST('imap_sentfolder');
$input['imap_port'] = $this->app->Secure->GetPOST('imap_port'); $input['imap_port'] = $this->app->Secure->GetPOST('imap_port');
$input['imap_type'] = $this->app->Secure->GetPOST('imap_type'); $input['imap_type'] = $this->app->Secure->GetPOST('imap_type');
$input['autoresponder'] = $this->app->Secure->GetPOST('autoresponder'); $input['autoresponder'] = $this->app->Secure->GetPOST('autoresponder');
$input['geschaeftsbriefvorlage'] = $this->app->Secure->GetPOST('geschaeftsbriefvorlage'); $input['geschaeftsbriefvorlage'] = $this->app->Secure->GetPOST('geschaeftsbriefvorlage');
$input['autoresponderbetreff'] = $this->app->Secure->GetPOST('autoresponderbetreff'); $input['autoresponderbetreff'] = $this->app->Secure->GetPOST('autoresponderbetreff');
$input['autorespondertext'] = $this->app->Secure->GetPOST('autorespondertext'); $input['autorespondertext'] = $this->app->Secure->GetPOST('autorespondertext');
$input['projekt'] = $this->app->Secure->GetPOST('projekt'); $input['projekt'] = $this->app->Secure->GetPOST('projekt');
$input['emailbackup'] = $this->app->Secure->GetPOST('emailbackup'); $input['emailbackup'] = $this->app->Secure->GetPOST('emailbackup');
$input['adresse'] = $this->app->Secure->GetPOST('adresse'); $input['adresse'] = $this->app->Secure->GetPOST('adresse');
$input['firma'] = $this->app->Secure->GetPOST('firma'); $input['firma'] = $this->app->Secure->GetPOST('firma');
$input['loeschtage'] = $this->app->Secure->GetPOST('loeschtage'); $input['loeschtage'] = $this->app->Secure->GetPOST('loeschtage');
$input['geloescht'] = $this->app->Secure->GetPOST('geloescht'); $input['geloescht'] = $this->app->Secure->GetPOST('geloescht');
$input['ticketloeschen'] = $this->app->Secure->GetPOST('ticketloeschen'); $input['ticketloeschen'] = $this->app->Secure->GetPOST('ticketloeschen');
$input['ticketabgeschlossen'] = $this->app->Secure->GetPOST('ticketabgeschlossen'); $input['ticketabgeschlossen'] = $this->app->Secure->GetPOST('ticketabgeschlossen');
$input['ticketqueue'] = $this->app->Secure->GetPOST('ticketqueue'); $input['ticketqueue'] = $this->app->Secure->GetPOST('ticketqueue');
$input['ticketprojekt'] = $this->app->Secure->GetPOST('ticketprojekt'); $input['ticketprojekt'] = $this->app->Secure->GetPOST('ticketprojekt');
$input['ticketemaileingehend'] = $this->app->Secure->GetPOST('ticketemaileingehend'); $input['ticketemaileingehend'] = $this->app->Secure->GetPOST('ticketemaileingehend');
$input['smtp_extra'] = $this->app->Secure->GetPOST('smtp_extra'); $input['smtp_extra'] = $this->app->Secure->GetPOST('smtp_extra');
$input['smtp_ssl'] = $this->app->Secure->GetPOST('smtp_ssl'); $input['smtp_ssl'] = $this->app->Secure->GetPOST('smtp_ssl');
$input['smtp_port'] = $this->app->Secure->GetPOST('smtp_port'); $input['smtp_port'] = $this->app->Secure->GetPOST('smtp_port');
$input['smtp_frommail'] = $this->app->Secure->GetPOST('email'); // use only these $input['smtp_frommail'] = $this->app->Secure->GetPOST('email'); // use only these
$input['smtp_fromname'] = $this->app->Secure->GetPOST('angezeigtername'); // use only these $input['smtp_fromname'] = $this->app->Secure->GetPOST('angezeigtername'); // use only these
$input['client_alias'] = $this->app->Secure->GetPOST('client_alias'); $input['client_alias'] = $this->app->Secure->GetPOST('client_alias');
$input['smtp_authtype'] = $this->app->Secure->GetPOST('smtp_authtype'); $input['smtp_authtype'] = $this->app->Secure->GetPOST('smtp_authtype');
$input['smtp_authparam'] = $this->app->Secure->GetPOST('smtp_authparam'); $input['smtp_authparam'] = $this->app->Secure->GetPOST('smtp_authparam');
$input['smtp_loglevel'] = $this->app->Secure->GetPOST('smtp_loglevel'); $input['smtp_loglevel'] = $this->app->Secure->GetPOST('smtp_loglevel');
$input['autosresponder_blacklist'] = $this->app->Secure->GetPOST('autosresponder_blacklist'); $input['autosresponder_blacklist'] = $this->app->Secure->GetPOST('autosresponder_blacklist');
$input['eigenesignatur'] = $this->app->Secure->GetPOST('eigenesignatur'); $input['eigenesignatur'] = $this->app->Secure->GetPOST('eigenesignatur');
$input['signatur'] = $this->app->Secure->GetPOST('signatur'); $input['signatur'] = $this->app->Secure->GetPOST('signatur');
$input['mutex'] = $this->app->Secure->GetPOST('mutex'); $input['mutex'] = $this->app->Secure->GetPOST('mutex');
$input['abdatum'] = $this->app->Secure->GetPOST('abdatum'); $input['abdatum'] = $this->app->Secure->GetPOST('abdatum');
$input['email'] = $this->app->Secure->GetPOST('email'); $input['email'] = $this->app->Secure->GetPOST('email');
return $input; return $input;
} }
@ -245,45 +282,7 @@ $width = array('10%'); // Fill out manually later
function SetInput($input) { function SetInput($input) {
// $this->app->Tpl->Set('EMAIL', $input['email']); // $this->app->Tpl->Set('EMAIL', $input['email']);
$this->app->Tpl->Set('ANGEZEIGTERNAME', $input['angezeigtername']);
$this->app->Tpl->Set('INTERNEBESCHREIBUNG', $input['internebeschreibung']);
$this->app->Tpl->Set('BENUTZERNAME', $input['benutzername']);
$this->app->Tpl->Set('PASSWORT', $input['passwort']);
$this->app->Tpl->Set('SERVER', $input['server']);
$this->app->Tpl->Set('SMTP', $input['smtp']);
$this->app->Tpl->Set('TICKET', $input['ticket']);
$this->app->Tpl->Set('IMAP_SENTFOLDER_AKTIV', $input['imap_sentfolder_aktiv']);
$this->app->Tpl->Set('IMAP_SENTFOLDER', $input['imap_sentfolder']);
$this->app->Tpl->Set('IMAP_PORT', $input['imap_port']);
$this->app->Tpl->Set('IMAP_TYPE', $input['imap_type']);
$this->app->Tpl->Set('AUTORESPONDER', $input['autoresponder']);
$this->app->Tpl->Set('GESCHAEFTSBRIEFVORLAGE', $input['geschaeftsbriefvorlage']);
$this->app->Tpl->Set('AUTORESPONDERBETREFF', $input['autoresponderbetreff']);
$this->app->Tpl->Set('AUTORESPONDERTEXT', $input['autorespondertext']);
$this->app->Tpl->Set('PROJEKT', $input['projekt']);
$this->app->Tpl->Set('EMAILBACKUP', $input['emailbackup']);
$this->app->Tpl->Set('ADRESSE', $input['adresse']);
$this->app->Tpl->Set('FIRMA', $input['firma']);
$this->app->Tpl->Set('LOESCHTAGE', $input['loeschtage']);
$this->app->Tpl->Set('GELOESCHT', $input['geloescht']);
$this->app->Tpl->Set('TICKETLOESCHEN', $input['ticketloeschen']);
$this->app->Tpl->Set('TICKETABGESCHLOSSEN', $input['ticketabgeschlossen']);
$this->app->Tpl->Set('TICKETQUEUE', $input['ticketqueue']);
$this->app->Tpl->Set('TICKETPROJEKT', $input['ticketprojekt']);
$this->app->Tpl->Set('TICKETEMAILEINGEHEND', $input['ticketemaileingehend']);
$this->app->Tpl->Set('SMTP_EXTRA', $input['smtp_extra']);
$this->app->Tpl->Set('SMTP_SSL', $input['smtp_ssl']);
$this->app->Tpl->Set('SMTP_PORT', $input['smtp_port']);
$this->app->Tpl->Set('CLIENT_ALIAS', $input['client_alias']);
$this->app->Tpl->Set('SMTP_AUTHTYPE', $input['smtp_authtype']);
$this->app->Tpl->Set('SMTP_AUTHPARAM', $input['smtp_authparam']);
$this->app->Tpl->Set('SMTP_LOGLEVEL', $input['smtp_loglevel']);
$this->app->Tpl->Set('AUTOSRESPONDER_BLACKLIST', $input['autosresponder_blacklist']);
$this->app->Tpl->Set('EIGENESIGNATUR', $input['eigenesignatur']);
$this->app->Tpl->Set('SIGNATUR', $input['signatur']);
$this->app->Tpl->Set('MUTEX', $input['mutex']);
$this->app->Tpl->Set('ABDATUM', $input['abdatum']);
$this->app->Tpl->Set('EMAIL', $input['email']);
} }

207
www/pages/kostenstellen.php Normal file
View File

@ -0,0 +1,207 @@
<?php
/*
* Copyright (c) 2022 OpenXE project
*/
use Xentral\Components\Database\Exception\QueryFailureException;
class Kostenstellen {
function __construct($app, $intern = false) {
$this->app = $app;
if ($intern)
return;
$this->app->ActionHandlerInit($this);
$this->app->ActionHandler("list", "kostenstellen_list");
$this->app->ActionHandler("create", "kostenstellen_edit"); // This automatically adds a "New" button
$this->app->ActionHandler("edit", "kostenstellen_edit");
$this->app->ActionHandler("delete", "kostenstellen_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 "kostenstellen_list":
$allowed['kostenstellen_list'] = array('list');
$heading = array('','','Nummer', 'Beschreibung', 'Internebemerkung', '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.nummer', 'k.beschreibung', 'k.internebemerkung');
$searchsql = array('k.nummer', 'k.beschreibung', 'k.internebemerkung');
$defaultorder = 1;
$defaultorderdesc = 0;
$aligncenter = array();
$alignright = array();
$numbercols = array();
$sumcol = array();
$dropnbox = "'<img src=./themes/new/images/details_open.png class=details>' AS `open`, CONCAT('<input type=\"checkbox\" name=\"auswahl[]\" value=\"',k.id,'\" />') AS `auswahl`";
// $moreinfo = true; // Allow drop down details
// $moreinfoaction = "lieferschein"; // specify suffix for minidetail-URL to allow different minidetails
// $menucol = 11; // Set id col for moredata/menu
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap>" . "<a href=\"index.php?module=kostenstellen&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=kostenstellen&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.nummer, k.beschreibung, k.internebemerkung, k.id FROM kostenstellen k";
$where = "1";
$count = "SELECT count(DISTINCT id) FROM kostenstellen WHERE $where";
// $groupby = "";
break;
}
$erg = false;
foreach ($erlaubtevars as $k => $v) {
if (isset($$v)) {
$erg[$v] = $$v;
}
}
return $erg;
}
function kostenstellen_list() {
$this->app->erp->MenuEintrag("index.php?module=kostenstellen&action=list", "&Uuml;bersicht");
$this->app->erp->MenuEintrag("index.php?module=kostenstellen&action=create", "Neu anlegen");
$this->app->erp->MenuEintrag("index.php", "Zur&uuml;ck");
$this->app->YUI->TableSearch('TAB1', 'kostenstellen_list', "show", "", "", basename(__FILE__), __CLASS__);
$this->app->Tpl->Parse('PAGE', "kostenstellen_list.tpl");
}
public function kostenstellen_delete() {
$id = (int) $this->app->Secure->GetGET('id');
$this->app->DB->Delete("DELETE FROM `kostenstellen` WHERE `id` = '{$id}'");
$this->app->Tpl->Set('MESSAGE', "<div class=\"error\">Der Eintrag wurde gel&ouml;scht.</div>");
$this->kostenstellen_list();
}
/*
* Edit kostenstellen item
* If id is empty, create a new one
*/
function kostenstellen_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=kostenstellen&action=edit&id=$id", "Details");
$this->app->erp->MenuEintrag("index.php?module=kostenstellen&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); // Parameters: Target db?, value, from form?
$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 kostenstellen (".$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=kostenstellen&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.nummer, k.beschreibung, k.internebemerkung, k.id FROM kostenstellen k"." WHERE id=$id");
foreach ($result[0] as $key => $value) {
$this->app->Tpl->Set(strtoupper($key), $value);
}
if (!empty($result)) {
$kostenstellen_from_db = $result[0];
} else {
return;
}
/*
* 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("artikel", "artikelnummer");
*/
$this->app->Tpl->Parse('PAGE', "kostenstellen_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['nummer'] = $this->app->Secure->GetPOST('nummer');
$input['beschreibung'] = $this->app->Secure->GetPOST('beschreibung');
$input['internebemerkung'] = $this->app->Secure->GetPOST('internebemerkung');
return $input;
}
}

View File

@ -2362,6 +2362,7 @@ class Rechnung extends GenRechnung
$belegmax = ''; $belegmax = '';
$ohnebriefpapier = $this->app->erp->Firmendaten('rechnung_ohnebriefpapier'); $ohnebriefpapier = $this->app->erp->Firmendaten('rechnung_ohnebriefpapier');
$abweichendebezeichnung = $this->app->erp->Firmendaten('rechnungersatz_standard');
$usereditid = 0; $usereditid = 0;
if(isset($this->app->User) && $this->app->User && method_exists($this->app->User,'GetID')){ if(isset($this->app->User) && $this->app->User && method_exists($this->app->User,'GetID')){
@ -2375,24 +2376,24 @@ class Rechnung extends GenRechnung
zahlungszieltageskonto, zahlungszieltageskonto,
zahlungszielskonto, zahlungszielskonto,
lieferdatum, lieferdatum,
status,projekt,adresse,auftragid,ohne_briefpapier,angelegtam,usereditid) status,projekt,adresse,auftragid,ohne_briefpapier,angelegtam,usereditid,abweichendebezeichnung)
VALUES ('',NOW(),'','".$this->app->User->GetFirma()."','$belegmax','".$this->app->erp->StandardZahlungsweise($projekt)."', VALUES ('',NOW(),'','".$this->app->User->GetFirma()."','$belegmax','".$this->app->erp->StandardZahlungsweise($projekt)."',
'".$this->app->erp->ZahlungsZielTage($projekt)."', '".$this->app->erp->ZahlungsZielTage($projekt)."',
'".$this->app->erp->ZahlungsZielTageSkonto($projekt)."', '".$this->app->erp->ZahlungsZielTageSkonto($projekt)."',
'".$this->app->erp->ZahlungsZielSkonto($projekt)."',NOW(), '".$this->app->erp->ZahlungsZielSkonto($projekt)."',NOW(),
'angelegt','$projekt','$adresse',0,'".$ohnebriefpapier."',NOW(),'$usereditid')"); 'angelegt','$projekt','$adresse',0,'".$ohnebriefpapier."',NOW(),'$usereditid','$abweichendebezeichnung')");
} else { } else {
$this->app->DB->Insert("INSERT INTO rechnung (id,datum,bearbeiter,firma,belegnr,zahlungsweise, $this->app->DB->Insert("INSERT INTO rechnung (id,datum,bearbeiter,firma,belegnr,zahlungsweise,
zahlungszieltage, zahlungszieltage,
zahlungszieltageskonto, zahlungszieltageskonto,
zahlungszielskonto, zahlungszielskonto,
lieferdatum, lieferdatum,
status,projekt,adresse,auftragid,ohne_briefpapier,angelegtam,usereditid) status,projekt,adresse,auftragid,ohne_briefpapier,angelegtam,usereditid,abweichendebezeichnung)
VALUES ('',NOW(),'','".$this->app->User->GetFirma()."','$belegmax','".$this->app->erp->StandardZahlungsweise($projekt)."', VALUES ('',NOW(),'','".$this->app->User->GetFirma()."','$belegmax','".$this->app->erp->StandardZahlungsweise($projekt)."',
'0', '0',
'0', '0',
'0',NOW(), '0',NOW(),
'angelegt','$projekt','$adresse',0,'".$ohnebriefpapier."',NOW(),'$usereditid')"); 'angelegt','$projekt','$adresse',0,'".$ohnebriefpapier."',NOW(),'$usereditid','$abweichendebezeichnung')");
} }
$id = $this->app->DB->GetInsertID(); $id = $this->app->DB->GetInsertID();
@ -2518,9 +2519,6 @@ class Rechnung extends GenRechnung
$this->app->Secure->POST[$value] = str_replace("'", '&apos;',$arr[0][$value]); $this->app->Secure->POST[$value] = str_replace("'", '&apos;',$arr[0][$value]);
$uparr[$value] = str_replace("'", '&apos;',$arr[0][$value]); $uparr[$value] = str_replace("'", '&apos;',$arr[0][$value]);
} }
//$this->app->Secure->POST[$value] = $arr[0][$value];
//$uparr[$value] = $arr[0][$value];
} }
$uparr['adresse'] = $adresse; $uparr['adresse'] = $adresse;
@ -2531,6 +2529,10 @@ class Rechnung extends GenRechnung
$uparr['ohne_briefpapier'] = '1'; $uparr['ohne_briefpapier'] = '1';
} }
if($this->app->erp->Firmendaten('rechnungersatz_standard')=='1'){
$uparr['abweichendebezeichnung']=1;
}
$this->app->DB->UpdateArr('rechnung',$id,'id',$uparr,true); $this->app->DB->UpdateArr('rechnung',$id,'id',$uparr,true);
$uparr=null; $uparr=null;

View File

@ -248,6 +248,17 @@ class Rechnungslauf {
$this->app->Tpl->addMessage('info', 'Die Aufträge werden nun im Hintergrund erstellt', false, 'MESSAGE_ORDERS'); $this->app->Tpl->addMessage('info', 'Die Aufträge werden nun im Hintergrund erstellt', false, 'MESSAGE_ORDERS');
} }
} }
$cronjobActive = $this->app->DB->Select(
"SELECT ps.id
FROM `prozessstarter` AS `ps`
WHERE ps.aktiv = 1 and (ps.parameter = 'rechnungslauf_manual')
LIMIT 1"
);
if(!$cronjobActive) {
$this->app->Tpl->addMessage('warning', 'Der Prozessstarter \'rechnungslauf_manual\' ist nicht aktiv');
}
$this->app->Tpl->Parse('PAGE', 'rechnungslauf_list.tpl'); $this->app->Tpl->Parse('PAGE', 'rechnungslauf_list.tpl');
} }
@ -280,4 +291,4 @@ class Rechnungslauf {
$this->app->Tpl->Output('rechnungslauf_minidetail.tpl'); $this->app->Tpl->Output('rechnungslauf_minidetail.tpl');
$this->app->ExitXentral(); $this->app->ExitXentral();
} }
} }

View File

@ -109,6 +109,7 @@ class Report
$this->app->ActionHandler('transfer', 'ReportTransfer'); $this->app->ActionHandler('transfer', 'ReportTransfer');
$this->app->ActionHandler('share', 'HandleActionShare'); $this->app->ActionHandler('share', 'HandleActionShare');
$this->app->ActionHandler('export', 'ReportExport'); $this->app->ActionHandler('export', 'ReportExport');
$this->app->ActionHandler('databaseview', 'DataBaseView');
$this->app->ActionHandlerListen($app); $this->app->ActionHandlerListen($app);
$this->app->erp->Headlines('Berichte'); $this->app->erp->Headlines('Berichte');
@ -526,7 +527,29 @@ class Report
IF(c.sum = 1, 'Ja', 'Nein') as `sum`, c.sequence, c.id IF(c.sum = 1, 'Ja', 'Nein') as `sum`, c.sequence, c.id
FROM `report_column` AS `c`"; FROM `report_column` AS `c`";
break; break;
case 'databaseview':
$selectedtable = $this->app->User->GetParameter('report_databaseview_selectedtable');
$selectedcolumns = $this->app->User->GetParameter('report_databaseview_selectedcolumns');
if (!empty($selectedcolumns)) {
$columns = explode(',',$selectedcolumns);
} else {
$sql = "SHOW COLUMNS FROM `".$selectedtable."`";
$columns = array_column($this->app->DB->SelectArr($sql),'Field');
$columns = array_slice($columns,0,10);
}
$heading = $columns;
$heading[] = '';
$findcols = $columns;
$searchsql = $columns;
$sql = "SELECT `".$columns[0]."`, `".implode("`,`",$columns)."` from `".$selectedtable."`";
break;
} }
$erg = []; $erg = [];
@ -3098,7 +3121,7 @@ class Report
'Zur&uuml;ck zur &Uuml;bersicht' 'Zur&uuml;ck zur &Uuml;bersicht'
); );
if ($action === 'list') { if ($action === 'list' or $action == 'databaseview') {
$this->app->erp->MenuEintrag('index.php?module=report&action=list', '&Uuml;bersicht'); $this->app->erp->MenuEintrag('index.php?module=report&action=list', '&Uuml;bersicht');
} else { } else {
$this->app->erp->MenuEintrag( $this->app->erp->MenuEintrag(
@ -3118,6 +3141,7 @@ class Report
'Übertragung' 'Übertragung'
); );
} }
$this->app->erp->MenuEintrag('index.php?module=report&action=databaseview', 'Datenbankansicht');
} }
/** /**
@ -3187,4 +3211,91 @@ class Report
} }
} }
} }
function DataBaseView() {
$this->createMenu();
$this->template->Set('KURZUEBERSCHRIFT', 'Datenbank');
$sql = "SHOW TABLES";
$tables = $this->app->DB->SelectArr($sql);
$table_easytable = new EasyTable($this->app);
$table_easytable->headings = array('Tabelle');
foreach ($tables as $table) {
$table = reset($table);
$row = array(
'<a href="index.php?module=report&action=databaseview&table='.$table.'#tabs-2">'.$table.'</a>'
);
$table_easytable->AddRow($row);
}
$table_easytable->DisplayNew('TAB1');
$selectedtable = $this->app->Secure->GetGet('table');
if (!empty($selectedtable)) {
$this->app->User->SetParameter('report_databaseview_selectedtable',$selectedtable);
$submit = $this->app->Secure->GetPost('submit');
$selectedcolumns = $this->app->Secure->GetPost('auswahl');
$sql = "SHOW COLUMNS FROM `".$selectedtable."`";
$columns = $this->app->DB->SelectArr($sql);
$column_easytable = new EasyTable($this->app);
$column_easytable->headings = array_merge(['Auswahl'],array_keys(reset($columns)));
foreach ($columns as $column) {
$checked = '';
if (!empty($selectedcolumns)) {
if (in_array($column['Field'],$selectedcolumns)) {
$checked = 'checked';
}
}
$row = array();
$row[] = '<input type="checkbox" name="auswahl[]" '.$checked.' value="'.$column['Field'].'">';
$row = array_merge($row,$column);
$column_easytable->AddRow($row);
}
$column_easytable->DisplayNew('TAB2');
$this->app->Tpl->Set('TABLENAME',ucfirst($selectedtable));
switch($submit) {
case 'vorschau':
if (!empty($selectedcolumns)) {
$this->app->User->SetParameter('report_databaseview_selectedcolumns',implode(',',$selectedcolumns));
} else {
$this->app->YUI->Message('warning','Spalten w&auml;hlen');
}
$this->app->YUI->TableSearch('TAB3', 'databaseview', 'show', '', '', basename(__FILE__), __CLASS__);
break;
case 'erzeugen':
$selectedcolumns = $this->app->User->GetParameter('report_databaseview_selectedcolumns');
$columns = explode(',',$selectedcolumns);
$sql = "SELECT `".implode("`,`",$columns)."` from `".$selectedtable."`";
$name = $this->service->generateIncrementedReportName(ucfirst($selectedtable));
$userId = $this->app->User->GetID();
$report = ReportData::fromFormData(['name' => $name, 'sql_query' => $sql, 'description' => 'Erzeugt aus Datenbankansicht Tabelle '.ucfirst($selectedtable)]);
$newId = $this->service->saveReport($report);
if ($newId > 0) {
$this->service->saveReportUserArray([
'report_id' => $newId,
'user_id' => $userId,
'name' => $this->app->User->GetName(),
'chart_enabled' => 0,
'file_enabled' => 0,
'menu_enabled' => 0,
'tab_enabled' => 0,
]);
$report = $this->gateway->getReportById($newId);
$newReport = $this->service->autoCreateColumns($report);
$newId = $this->service->saveReport($newReport);
header('Location: index.php?module=report&action=edit&id='.$newId);
} else {
$this->app->YUI->Message('error','Bericht konnte nicht erzeugt werden');
}
break;
}
} else {
$this->app->YUI->Message('warning','Tabelle w&auml;hlen');
}
$this->template->Parse('PAGE', 'report_databaseview.tpl');
}
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1015 B

View File

@ -583,6 +583,9 @@ class WidgetGenadresse
$field = new HTMLCheckbox("geburtstagskarte","","","1","0","0"); $field = new HTMLCheckbox("geburtstagskarte","","","1","0","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("sachkonto","text","","30","","","","","","","","0","","");
$this->form->NewField($field);
$field = new HTMLSelect("verrechnungskontoreisekosten",0,"verrechnungskontoreisekosten","","","0"); $field = new HTMLSelect("verrechnungskontoreisekosten",0,"verrechnungskontoreisekosten","","","0");
$this->form->NewField($field); $this->form->NewField($field);

File diff suppressed because it is too large Load Diff

View File

@ -1,129 +1,129 @@
<?php <?php
/* /*
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
* *
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019 * Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
* *
* This file is licensed under the Embedded Projects General Public License *Version 3.1. * This file is licensed under the Embedded Projects General Public License *Version 3.1.
* *
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis * You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
* to obtain the text of the corresponding license version. * to obtain the text of the corresponding license version.
* *
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*/ */
?> ?>
<?php <?php
class WidgetGenverbindlichkeit_position class WidgetGenverbindlichkeit_position
{ {
private $app; //application object private $app; //application object
public $form; //store form object public $form; //store form object
protected $parsetarget; //target for content protected $parsetarget; //target for content
public function __construct($app,$parsetarget) public function __construct($app,$parsetarget)
{ {
$this->app = $app; $this->app = $app;
$this->parsetarget = $parsetarget; $this->parsetarget = $parsetarget;
$this->Form(); $this->Form();
} }
public function verbindlichkeit_positionDelete() public function verbindlichkeit_positionDelete()
{ {
$this->form->Execute("verbindlichkeit_position","delete"); $this->form->Execute("verbindlichkeit_position","delete");
$this->verbindlichkeit_positionList(); $this->verbindlichkeit_positionList();
} }
function Edit() function Edit()
{ {
$this->form->Edit(); $this->form->Edit();
} }
function Copy() function Copy()
{ {
$this->form->Copy(); $this->form->Copy();
} }
public function Create() public function Create()
{ {
$this->form->Create(); $this->form->Create();
} }
public function Search() public function Search()
{ {
$this->app->Tpl->Set($this->parsetarget,"SUUUCHEEE"); $this->app->Tpl->Set($this->parsetarget,"SUUUCHEEE");
} }
public function Summary() public function Summary()
{ {
$this->app->Tpl->Set($this->parsetarget,"grosse Tabelle"); $this->app->Tpl->Set($this->parsetarget,"grosse Tabelle");
} }
function Form() function Form()
{ {
$this->form = $this->app->FormHandler->CreateNew("verbindlichkeit_position"); $this->form = $this->app->FormHandler->CreateNew("verbindlichkeit_position");
$this->form->UseTable("verbindlichkeit_position"); $this->form->UseTable("verbindlichkeit_position");
$this->form->UseTemplate("verbindlichkeit_position.tpl",$this->parsetarget); $this->form->UseTemplate("verbindlichkeit_position.tpl",$this->parsetarget);
$field = new HTMLInput("artikel","text","","50","","","","","","","","0","",""); $field = new HTMLInput("artikel","text","","50","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$this->form->AddMandatory("artikel","notempty","Pflichtfeld!","MSGARTIKEL"); $this->form->AddMandatory("artikel","notempty","Pflichtfeld!","MSGARTIKEL");
$field = new HTMLInput("bezeichnung","text","","50","","","","","","","","0","",""); $field = new HTMLInput("bezeichnung","text","","50","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$this->form->AddMandatory("bezeichnung","notempty","Pflichtfeld!","MSGBEZEICHNUNG"); $this->form->AddMandatory("bezeichnung","notempty","Pflichtfeld!","MSGBEZEICHNUNG");
$field = new HTMLInput("nummer","text","","50","","","","","","","","0","",""); $field = new HTMLInput("nummer","text","","50","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLTextarea("beschreibung",5,30,"","","","","0"); $field = new HTMLTextarea("beschreibung",5,30,"","","","","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("menge","text","","8","","","","","","","","0","",""); $field = new HTMLInput("menge","text","","8","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$this->form->AddMandatory("menge","notempty","Pflichtfeld!","MSGMENGE"); $this->form->AddMandatory("menge","notempty","Pflichtfeld!","MSGMENGE");
$field = new HTMLInput("preis","text","","50","","","","","","","","0","",""); $field = new HTMLInput("preis","text","","40","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("waehrung","text","","15","","","","","","","","0","",""); $field = new HTMLSelect("umsatzsteuer",0,"umsatzsteuer","","","0");
$this->form->NewField($field); $field->AddOption('Standard','');
$field->AddOption('Erm&auml;&szlig;igt','ermaessigt');
$field = new HTMLSelect("umsatzsteuer",0,"umsatzsteuer","","","0"); $field->AddOption('Befreit','befreit');
$field->AddOption('Standard',''); $this->form->NewField($field);
$field->AddOption('Erm&auml;&szlig;igt','ermaessigt');
$field->AddOption('Befreit','befreit'); $field = new HTMLCheckbox("anderersteuersatz","","","","0","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLCheckbox("anderersteuersatz","","","","0","0"); $field = new HTMLInput("steuersatz","text","","15","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("steuersatz","text","","15","","","","","","","","0","",""); $field = new HTMLTextarea("steuertext",3,50,"","","","","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLTextarea("steuertext",3,50,"","","","","0"); $field = new HTMLInput("einheit","text","","50","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("einheit","text","","50","","","","","","","","0","",""); $field = new HTMLInput("vpe","text","","50","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("vpe","text","","50","","","","","","","","0","",""); $field = new HTMLInput("projekt","text","","50","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("projekt","text","","50","","","","","","","","0","",""); $field = new HTMLInput("sachkonto","text","","50","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("kostenstelle","text","","50","","","","","","","","0","",""); $field = new HTMLInput("kostenstelle","text","","50","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("lieferdatum","text","","15","","","","","","","","0","",""); $field = new HTMLInput("lieferdatum","text","","15","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
} }
} }
?> ?>

File diff suppressed because it is too large Load Diff

View File

@ -849,7 +849,87 @@
[DISABLECLOSESHOP] [DISABLECLOSESHOP]
<div id="tabs-5"> <div id="tabs-5">
<div class="row">
<div class="row-height">
<div class="col-xs-12 col-md-4 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Finanzbuchhaltung Export Erl&ouml;se|}</legend>
<table border="0" width="100%">
<tr>
<td width="300">Inland (normal):</td><td>[STEUER_ERLOESE_INLAND_NORMAL][MSGSTEUER_ERLOESE_INLAND_NORMAL]</td>
</tr>
<tr>
<td width="300">Inland (erm&auml;&szlig;igt):</td><td>[STEUER_ERLOESE_INLAND_ERMAESSIGT][MSGSTEUER_ERLOESE_INLAND_ERMAESSIGT]</td>
<tr>
<td width="300">Inland (steuerfrei):</td><td>[STEUER_ERLOESE_INLAND_NICHTSTEUERBAR][MSGSTEUER_ERLOESE_INLAND_NICHTSTEUERBAR]</td>
</tr>
<tr>
<td width="300">Innergemeinschaftlich EU:</td><td>[STEUER_ERLOESE_INLAND_INNERGEMEINSCHAFTLICH][MSGSTEUER_ERLOESE_INLAND_INNERGEMEINSCHAFTLICH]</td>
</tr>
<tr>
<td width="300">EU (normal):</td><td>[STEUER_ERLOESE_INLAND_EUNORMAL][MSGSTEUER_ERLOESE_INLAND_EUNORMAL]</td>
</tr>
<tr>
<td width="300">EU (erm&auml;&szlig;igt):</td><td>[STEUER_ERLOESE_INLAND_EUERMAESSIGT][MSGSTEUER_ERLOESE_INLAND_EUERMAESSIGT]</td>
</tr>
<tr>
<td width="300">Export:</td><td>[STEUER_ERLOESE_INLAND_EXPORT][MSGSTEUER_ERLOESE_INLAND_EXPORT]</td>
</tr>
</table>
</fieldset>
</div>
</div>
<div class="col-xs-12 col-md-4 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Finanzbuchhaltung Export Aufwendungen|}</legend>
<table>
<tr>
<td width="300">Inland (normal):</td><td>[STEUER_AUFWENDUNG_INLAND_NORMAL][MSGSTEUER_AUFWENDUNG_INLAND_NORMAL]</td>
</tr>
<tr>
<td width="300">Inland (erm&auml;&szlig;igt):</td><td>[STEUER_AUFWENDUNG_INLAND_ERMAESSIGT][MSGSTEUER_AUFWENDUNG_INLAND_ERMAESSIGT]</td>
</tr>
<tr>
<td width="300">Inland (steuefrei):</td><td>[STEUER_AUFWENDUNG_INLAND_NICHTSTEUERBAR][MSGSTEUER_AUFWENDUNG_INLAND_NICHTSTEUERBAR]</td>
</tr>
<tr>
<td width="300">Innergemeinschaftlich EU:</td><td>[STEUER_AUFWENDUNG_INLAND_INNERGEMEINSCHAFTLICH][MSGSTEUER_AUFWENDUNG_INLAND_INNERGEMEINSCHAFTLICH]</td>
</tr>
<tr>
<td width="300">EU (normal):</td><td>[STEUER_AUFWENDUNG_INLAND_EUNORMAL][MSGSTEUER_AUFWENDUNG_INLAND_EUNORMAL]</td>
</tr>
<tr>
<td width="300">EU (erm&auml;&szlig;igt):</td><td>[STEUER_AUFWENDUNG_INLAND_EUERMAESSIGT][MSGSTEUER_AUFWENDUNG_INLAND_EUERMAESSIGT]</td>
</tr>
<tr>
<td width="300">Import:</td><td>[STEUER_AUFWENDUNG_INLAND_IMPORT][MSGSTEUER_AUFWENDUNG_INLAND_IMPORT]</td>
</tr>
</table>
</fieldset>
</div>
</div>
<div class="col-xs-12 col-md-4 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Einstellungen|}</legend>
<table>
<tr>
<td width="300">Sachkonto f&uuml;r Verbindlichkeiten-Vorkontierung:</td><td colspan="3">[SACHKONTO]</td>
</tr>
<tr>
<td width="300">Kostenstelle:</td><td>[KOSTENSTELLE]</td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
<br />
<input type="submit" name="speichern" value="Speichern" onclick="this.form.action += '#tabs-5';" style="float:right"/>
</div>
</div> </div>
<script> <script>

View File

@ -25,31 +25,41 @@ $('#anderersteuersatz').click(function() { if (!$(this).is(':checked')) {
}); });
</script> </script>
<form action="" method="post" name="eprooform"> <form action="" method="post" name="eprooform">
[FORMHANDLEREVENT] [FORMHANDLEREVENT]
<table border="0" style="padding-right:10px;" class="mkTableFormular"> <table border="0" style="padding-right:10px;" class="mkTableFormular">
<tbody> <tbody>
<tr><td nowrap>{|Artikel-Nr|}:</td><td>[ARTIKEL][MSGARTIKEL]</td></tr> <tr valign="top">
<tr><td nowrap>{|Beschreibung|}:</td><td>[BEZEICHNUNG][MSGBEZEICHNUNG]</td></tr> <td width="550">
<tr><td nowrap>{|Artikel-Nr|}:</td><td>[NUMMER][MSGNUMMER]</td></tr> <table border="0" style="padding-right:10px;" class="mkTableFormular">
<tr><td>{|Beschreibung|}:</td><td>[BESCHREIBUNG][MSGBESCHREIBUNG]</td></tr> <tr><td nowrap>{|Artikel-Nr|}:</td><td>[ARTIKEL][MSGARTIKEL]</td></tr>
<tr><td>{|Menge|}:</td><td>[MENGE][MSGMENGE]</td></tr> <tr><td nowrap>{|Beschreibung|}:</td><td>[BEZEICHNUNG][MSGBEZEICHNUNG]</td></tr>
<tr><td>{|Preis|}:</td><td>[PREIS][MSGPREIS]</td></tr> <tr><td nowrap>{|Artikel-Nr|}:</td><td>[NUMMER][MSGNUMMER]</td></tr>
<tr><td>{|W&auml;hrung|}:</td><td>[WAEHRUNG][MSGWAEHRUNG]&nbsp;[WAEHRUNGSBUTTON]</td></tr> <tr><td>{|Beschreibung|}:</td><td>[BESCHREIBUNG][MSGBESCHREIBUNG]</td></tr>
<tr><td>{|Steuersatz|}:</td><td>[UMSATZSTEUER][MSGUMSATZSTEUER]&nbsp; <tr><td>{|Menge|}:</td><td>[MENGE][MSGMENGE]</td></tr>
<tr><td>{|Preis|}:</td><td>[PREIS][MSGPREIS][WAEHRUNG]</td></tr>
[ANDERERSTEUERSATZ][MSGANDERERSTEUERSATZ]&nbsp;individuellen Steuersatz verwenden <!-- <tr><td>{|W&auml;hrung|}:</td><td>[WAEHRUNG][MSGWAEHRUNG]&nbsp;[WAEHRUNGSBUTTON]</td></tr>-->
</td></tr> <tr><td>{|Steuersatz|}:</td><td>[UMSATZSTEUER][MSGUMSATZSTEUER]&nbsp;
<tr style="display:none" class="steuersatz"><td>{|Individueller Steuersatz|}:</td><td>[STEUERSATZ][MSGSTEUERSATZ]&nbsp;in Prozent</td></tr> [ANDERERSTEUERSATZ][MSGANDERERSTEUERSATZ]&nbsp;individuellen Steuersatz verwenden
<tr><td>{|Rechtlicher Steuerhinweis|}:</td><td> </td></tr>
[STEUERTEXT][MSGSTEUERTEXT] <tr style="display:none" class="steuersatz"><td>{|Individueller Steuersatz|}:</td><td>[STEUERSATZ][MSGSTEUERSATZ]&nbsp;in Prozent</td></tr>
</td></tr> <tr><td>{|Rechtlicher Steuerhinweis|}:</td><td>
<tr><td>{|Einheit|}:</td><td>[EINHEIT][MSGEINHEIT]</td></tr> [STEUERTEXT][MSGSTEUERTEXT]
<tr><td>{|VPE|}:</td><td>[VPE][MSGVPE]</td></tr> </td></tr>
<tr><td>{|Projekt|}:</td><td>[PROJEKT][MSGPROJEKT]</td></tr> <tr><td>{|Einheit|}:</td><td>[EINHEIT][MSGEINHEIT]</td></tr>
<tr><td>{|Kostenstelle|}:</td><td>[KOSTENSTELLE][MSGKOSTENSTELLE]</td></tr> <tr><td>{|VPE|}:</td><td>[VPE][MSGVPE]</td></tr>
<tr><td>{|Lieferdatum|}:</td><td>[LIEFERDATUM][MSGLIEFERDATUM]</td></tr> <tr><td>{|Lieferdatum|}:</td><td>[LIEFERDATUM][MSGLIEFERDATUM]</td></tr>
<tr><td></td><td><input type="submit" value="Speichern" ></td></tr> </table>
</td>
</tbody></table> <td width="30%" [STYLERECHTS]>
<table width="100%">
<tr><td></td><td align="right"><input type="submit" value="Speichern" ></td></tr>
<tr><td>{|Projekt|}:</td><td>[PROJEKT][MSGPROJEKT]</td></tr>
<tr><td>{|Kostenstelle|}:</td><td>[KOSTENSTELLE][MSGKOSTENSTELLE]</td></tr>
<tr><td>{|Sachkonto|}:</td><td>[SACHKONTO][MSGSACHKONTO]</td></tr>
</table>
</td>
</tr>
</tbody>
</table>
</form> </form>
[WAEHRUNGSTABELLE] [WAEHRUNGSTABELLE]

View File

@ -34,6 +34,9 @@ class WidgetAdresse extends WidgetGenAdresse
$this->form->ReplaceFunction("kreditlimit",$this,"ReplaceBetrag"); $this->form->ReplaceFunction("kreditlimit",$this,"ReplaceBetrag");
$this->form->ReplaceFunction("kreditlimiteinmalig",$this,"ReplaceBetrag"); $this->form->ReplaceFunction("kreditlimiteinmalig",$this,"ReplaceBetrag");
$this->app->YUI->AutoComplete("sachkonto","sachkonto",1);
$this->form->ReplaceFunction("sachkonto",$this,"ReplaceKontorahmen");
$this->form->ReplaceFunction("lat",$this,"ReplaceBetrag"); $this->form->ReplaceFunction("lat",$this,"ReplaceBetrag");
$this->form->ReplaceFunction("lng",$this,"ReplaceBetrag"); $this->form->ReplaceFunction("lng",$this,"ReplaceBetrag");
$this->form->ReplaceFunction("name",$this,"ReplaceTrim"); $this->form->ReplaceFunction("name",$this,"ReplaceTrim");
@ -473,6 +476,11 @@ class WidgetAdresse extends WidgetGenAdresse
return trim($value); return trim($value);
} }
function ReplaceKontorahmen($db,$value,$fromform)
{
return $this->app->erp->ReplaceKontorahmen($db,$value,$fromform);
}
/** /**
* @param int|bool $db * @param int|bool $db
* @param string|int $value * @param string|int $value

View File

@ -38,6 +38,7 @@ class WidgetArtikel extends WidgetGenArtikel
$this->app->YUI->AutoComplete("zolltarifnummer","zolltarifnummer",1); $this->app->YUI->AutoComplete("zolltarifnummer","zolltarifnummer",1);
$this->app->YUI->AutoComplete("bestandalternativartikel","artikelnummer"); $this->app->YUI->AutoComplete("bestandalternativartikel","artikelnummer");
$this->app->YUI->AutoComplete("steuergruppe","steuergruppe"); $this->app->YUI->AutoComplete("steuergruppe","steuergruppe");
$this->app->YUI->AutoComplete("sachkonto","sachkonto",1);
$this->app->YUI->AutoComplete("kostenstelle","kostenstelle",1); $this->app->YUI->AutoComplete("kostenstelle","kostenstelle",1);
$this->app->YUI->AutoComplete("steuersatz","steuersatz",1); $this->app->YUI->AutoComplete("steuersatz","steuersatz",1);
$this->app->YUI->AutoComplete("preproduced_partlist","lagerartikelnummer"); $this->app->YUI->AutoComplete("preproduced_partlist","lagerartikelnummer");
@ -68,6 +69,7 @@ class WidgetArtikel extends WidgetGenArtikel
$this->form->ReplaceFunction("nummer",$this,"ReplaceTrim"); $this->form->ReplaceFunction("nummer",$this,"ReplaceTrim");
$this->form->ReplaceFunction("ean",$this,"ReplaceTrim"); $this->form->ReplaceFunction("ean",$this,"ReplaceTrim");
$this->form->ReplaceFunction("name_de",$this,"ReplaceTrim"); $this->form->ReplaceFunction("name_de",$this,"ReplaceTrim");
$this->form->ReplaceFunction("sachkonto",$this,"ReplaceKontorahmen");
$this->form->ReplaceFunction("steuersatz",$this,"ReplaceSteuersatz"); $this->form->ReplaceFunction("steuersatz",$this,"ReplaceSteuersatz");
$this->app->Tpl->Set('GEWICHTBEZEICHNUNG', $this->app->erp->GetGewichtbezeichnung()); $this->app->Tpl->Set('GEWICHTBEZEICHNUNG', $this->app->erp->GetGewichtbezeichnung());
@ -642,6 +644,11 @@ class WidgetArtikel extends WidgetGenArtikel
{ {
return $this->app->erp->ReplaceArtikel($db,$value,$fromform); return $this->app->erp->ReplaceArtikel($db,$value,$fromform);
} }
function ReplaceKontorahmen($db,$value,$fromform)
{
return $this->app->erp->ReplaceKontorahmen($db,$value,$fromform);
}
function ReplaceSteuersatz($db,$value,$fromform) function ReplaceSteuersatz($db,$value,$fromform)
{ {

View File

@ -24,6 +24,7 @@ class WidgetVerbindlichkeit_position extends WidgetGenVerbindlichkeit_position
$this->app->YUI->AutoComplete("projekt","projektname",1); $this->app->YUI->AutoComplete("projekt","projektname",1);
$this->app->YUI->AutoComplete("kostenstelle","kostenstelle",1); $this->app->YUI->AutoComplete("kostenstelle","kostenstelle",1);
$this->app->YUI->AutoComplete("sachkonto","sachkonto_aufwendungen",1);
$this->app->YUI->AutoComplete("artikel","artikelnummer"); $this->app->YUI->AutoComplete("artikel","artikelnummer");
//$this->app->YUI->AutoComplete(AUTO,"artikel",array('nummer','name_de','warengruppe'),"nummer"); //$this->app->YUI->AutoComplete(AUTO,"artikel",array('nummer','name_de','warengruppe'),"nummer");
@ -36,6 +37,7 @@ class WidgetVerbindlichkeit_position extends WidgetGenVerbindlichkeit_position
$this->form->ReplaceFunction("menge",$this,"ReplaceMenge"); $this->form->ReplaceFunction("menge",$this,"ReplaceMenge");
//$this->form->ReplaceFunction("geliefert",$this,"ReplaceMenge"); //$this->form->ReplaceFunction("geliefert",$this,"ReplaceMenge");
$this->form->ReplaceFunction("projekt",$this,"ReplaceProjekt"); $this->form->ReplaceFunction("projekt",$this,"ReplaceProjekt");
$this->form->ReplaceFunction("sachkonto",$this,"ReplaceSachkonto");
if($this->app->erp->Firmendaten("briefhtml")=="1") if($this->app->erp->Firmendaten("briefhtml")=="1")
{ {
@ -79,6 +81,11 @@ class WidgetVerbindlichkeit_position extends WidgetGenVerbindlichkeit_position
return $this->app->erp->ReplaceProjekt($db,$value,$fromform); return $this->app->erp->ReplaceProjekt($db,$value,$fromform);
} }
function ReplaceSachkonto($db,$value,$fromform)
{
return $this->app->erp->ReplaceKontorahmen($db,$value,$fromform);
}
function ReplaceSteuersatz($db,$value,$fromform) function ReplaceSteuersatz($db,$value,$fromform)
{ {
if($db) if($db)