diff --git a/tools/module_creator/module_creator_php_template.txt b/tools/module_creator/module_creator_php_template.txt
index ab6d41e3..e0806214 100644
--- a/tools/module_creator/module_creator_php_template.txt
+++ b/tools/module_creator/module_creator_php_template.txt
@@ -84,11 +84,9 @@ class PLACEHOLDER_MODULECLASSNAME {
}
public function PLACEHOLDER_DELETE() {
- $id = (int) $this->app->Secure->GetGET('id');
-
+ $id = (int) $this->app->Secure->GetGET('id');
$this->app->DB->Delete("DELETE FROM `PLACEHOLDER_MODULENAME` WHERE `id` = '{$id}'");
- $this->app->Tpl->Set('MESSAGE', "
Der Eintrag wurde gelöscht.
");
-
+ $this->app->Tpl->addMessage('error', 'Der Eintrag wurde gelöscht');
$this->PLACEHOLDER_LIST();
}
@@ -112,6 +110,10 @@ class PLACEHOLDER_MODULECLASSNAME {
$this->app->erp->MenuEintrag("index.php?module=PLACEHOLDER_MODULENAME&action=list", "Zurück zur Übersicht");
$id = $this->app->Secure->GetGET('id');
$input = $this->GetInput();
+
+ // Convert here
+ // $input['prio'] = !empty($this->app->Secure->GetPOST('prio'))?"1":"0";
+
$submit = $this->app->Secure->GetPOST('submit');
if (empty($id)) {
@@ -156,23 +158,26 @@ class PLACEHOLDER_MODULECLASSNAME {
$msg = $this->app->erp->base64_url_encode("Das Element wurde erfolgreich angelegt.
");
header("Location: index.php?module=PLACEHOLDER_MODULENAME&action=list&msg=$msg");
} else {
- $this->app->Tpl->Set('MESSAGE', "Die Einstellungen wurden erfolgreich übernommen.
");
+ $this->app->Tpl->addMessage('success', 'Die Einstellungen wurden erfolgreich übernommen.');
}
}
// Load values again from database
- $dropnbox = "PLACEHOLDER_DROPNBOX";
- $result = $this->app->DB->SelectArr("PLACEHOLDER_SQL_LIST"." WHERE id=$id");
+ if ($id != 'NULL') {
- foreach ($result[0] as $key => $value) {
- $this->app->Tpl->Set(strtoupper($key), $value);
- }
+ $dropnbox = "PLACEHOLDER_DROPNBOX";
+ $result = $this->app->DB->SelectArr("PLACEHOLDER_SQL_LIST"." WHERE id=$id");
- if (!empty($result)) {
- $PLACEHOLDER_MODULENAME_from_db = $result[0];
- } else {
- return;
+ foreach ($result[0] as $key => $value) {
+ $this->app->Tpl->Set(strtoupper($key), $value);
+ }
+
+ if (!empty($result)) {
+ $PLACEHOLDER_MODULENAME_from_db = $result[0];
+ } else {
+ return;
+ }
}
/*
@@ -184,6 +189,8 @@ class PLACEHOLDER_MODULECLASSNAME {
$this->app->Tpl->Add('ANGEZEIGTERNAME', $angezeigtername);
$this->app->YUI->AutoComplete("artikel", "artikelnummer");
+ $this->app->Tpl->Set('PROJEKT',$this->app->erp->ReplaceProjekt(false,$PLACEHOLDER_MODULENAME_from_db['projekt'],false));
+ $this->app->Tpl->Set('PRIO', $PLACEHOLDER_MODULENAME_from_db['prio']==1?"checked":"");
*/
diff --git a/upgrade/data/db_schema.json b/upgrade/data/db_schema.json
index 7360bbc7..553f4e2e 100644
--- a/upgrade/data/db_schema.json
+++ b/upgrade/data/db_schema.json
@@ -3660,6 +3660,28 @@
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
+ },
+ {
+ "Field": "etikettautodruck",
+ "Type": "int(1)",
+ "Collation": null,
+ "Null": "NO",
+ "Key": "",
+ "Default": "0",
+ "Extra": "",
+ "Privileges": "select,insert,update,references",
+ "Comment": ""
+ },
+ {
+ "Field": "etikett",
+ "Type": "int(11)",
+ "Collation": null,
+ "Null": "NO",
+ "Key": "",
+ "Default": "0",
+ "Extra": "",
+ "Privileges": "select,insert,update,references",
+ "Comment": ""
}
],
"keys": [
@@ -112307,7 +112329,7 @@
},
{
"Field": "preis",
- "Type": "decimal(14,5)",
+ "Type": "decimal(14,10)",
"Collation": null,
"Null": "NO",
"Key": "",
diff --git a/www/lib/class.erpapi.php b/www/lib/class.erpapi.php
index 27679ee4..c895abbd 100644
--- a/www/lib/class.erpapi.php
+++ b/www/lib/class.erpapi.php
@@ -4247,7 +4247,6 @@ title: 'Abschicken',
$result = $this->app->DB->SelectArr("SELECT * FROM $type WHERE id='$id' LIMIT 1");
$waehrung = $result[0]['waehrung'];
-
$text = str_replace('{BELEGART}',ucfirst($type),$text);
$text = str_replace('{FIRMA}',$this->Firmendaten("name"),$text);
@@ -4302,20 +4301,24 @@ title: 'Abschicken',
if($type!=='auftrag' && $type!=='bestellung' && $type!=='retoure')
{
$auftragArr = $this->app->DB->SelectRow("SELECT a.*, DATE_FORMAT(datum,'%d.%m.%Y') as datum_de FROM auftrag AS a WHERE id='".$result[0]['auftragid']."' LIMIT 1");
- $result[0]['internet'] = $auftragArr['internet'];
- $result[0]['abweichendelieferadresse']=$auftragArr['abweichendelieferadresse'];
- $result[0]['liefername']=$auftragArr['liefername'];
- $result[0]['lieferabteilung']=$auftragArr['lieferabteilung'];
- $result[0]['lieferunterabteilung']=$auftragArr['lieferunterabteilung'];
- $result[0]['lieferadresszusatz']=$auftragArr['lieferadresszusatz'];
- $result[0]['liefertitel']=$auftragArr['liefertitel'];
- $result[0]['lieferansprechpartner']=$auftragArr['lieferansprechpartner'];
- $result[0]['lieferstrasse']=$auftragArr['lieferstrasse'];
- $result[0]['lieferplz']=$auftragArr['lieferplz'];
- $result[0]['lieferland']=$auftragArr['lieferland'];
- $result[0]['lieferort'] = $auftragArr['lieferort'];
- $result[0]['liefergln'] = $auftragArr['liefergln'];
- $result[0]['lieferemail'] = $auftragArr['lieferemail'];
+
+ if (!empty($auftragArr)) {
+
+ $result[0]['internet'] = $auftragArr['internet'];
+ $result[0]['abweichendelieferadresse']=$auftragArr['abweichendelieferadresse'];
+ $result[0]['liefername']=$auftragArr['liefername'];
+ $result[0]['lieferabteilung']=$auftragArr['lieferabteilung'];
+ $result[0]['lieferunterabteilung']=$auftragArr['lieferunterabteilung'];
+ $result[0]['lieferadresszusatz']=$auftragArr['lieferadresszusatz'];
+ $result[0]['liefertitel']=$auftragArr['liefertitel'];
+ $result[0]['lieferansprechpartner']=$auftragArr['lieferansprechpartner'];
+ $result[0]['lieferstrasse']=$auftragArr['lieferstrasse'];
+ $result[0]['lieferplz']=$auftragArr['lieferplz'];
+ $result[0]['lieferland']=$auftragArr['lieferland'];
+ $result[0]['lieferort'] = $auftragArr['lieferort'];
+ $result[0]['liefergln'] = $auftragArr['liefergln'];
+ $result[0]['lieferemail'] = $auftragArr['lieferemail'];
+ }
}
if($type=="angebot" || $type=="auftrag")
@@ -4860,7 +4863,6 @@ title: 'Abschicken',
}
}
}
-
if($result[0]['abweichendelieferadresse']=="1")
{
$liefertext ="";
diff --git a/www/lib/class.versanddienstleister.php b/www/lib/class.versanddienstleister.php
index 1cd85bd8..c0fc16a6 100644
--- a/www/lib/class.versanddienstleister.php
+++ b/www/lib/class.versanddienstleister.php
@@ -18,7 +18,7 @@ abstract class Versanddienstleister
protected int $projectId;
protected ?int $labelPrinterId;
protected ?int $documentPrinterId;
- protected bool $shippingMail;
+ protected int $shippingMail;
protected ?int $businessLetterTemplateId;
protected ?object $settings;
@@ -453,6 +453,17 @@ abstract class Versanddienstleister
$countries = Array();
$this->app->Tpl->addMessage('error', 'Länderliste ist leer. Siehe Einstellungen -> Länderliste.', false, 'PAGE');
}
+
+ switch ($this->shippingMail) {
+ case -1:
+ $address['email'] = '';
+ break;
+ case 1:
+ // User text template (not implemented)
+ break;
+ default:
+ break;
+ }
$json['form'] = $address;
$json['countries'] = $countries;
@@ -469,6 +480,7 @@ abstract class Versanddienstleister
$json['form']['services'] = [
Product::SERVICE_PREMIUM => false
];
+
$this->app->Tpl->Set('JSON', json_encode($json));
$this->app->Tpl->Set('CARRIERNAME', $this->GetName());
$this->app->Tpl->Parse($target, 'createshipment.tpl');
diff --git a/www/objectapi/mysql/_gen/object.gen.adresse.php b/www/objectapi/mysql/_gen/object.gen.adresse.php
index 086afcd3..5b064bfd 100644
--- a/www/objectapi/mysql/_gen/object.gen.adresse.php
+++ b/www/objectapi/mysql/_gen/object.gen.adresse.php
@@ -187,6 +187,8 @@ class ObjGenAdresse
private $freifeld9;
private $freifeld10;
private $rechnung_papier;
+ private $etikettautodruck;
+ private $etikett;
private $angebot_cc;
private $auftrag_cc;
private $rechnung_cc;
@@ -440,6 +442,8 @@ $result = $result[0];
$this->freifeld9=$result['freifeld9'];
$this->freifeld10=$result['freifeld10'];
$this->rechnung_papier=$result['rechnung_papier'];
+ $this->etikettautodruck=$result['etikettautodruck'];
+ $this->etikett=$result['etikett'];
$this->angebot_cc=$result['angebot_cc'];
$this->auftrag_cc=$result['auftrag_cc'];
$this->rechnung_cc=$result['rechnung_cc'];
@@ -693,6 +697,8 @@ $result = $result[0];
`freifeld9`='{$this->freifeld9}',
`freifeld10`='{$this->freifeld10}',
`rechnung_papier`='{$this->rechnung_papier}',
+ `etikettautodruck`='{$this->etikettautodruck}',
+ `etikett`='{$this->etikett}',
`angebot_cc`='{$this->angebot_cc}',
`auftrag_cc`='{$this->auftrag_cc}',
`rechnung_cc`='{$this->rechnung_cc}',
@@ -946,6 +952,8 @@ $result = $result[0];
$this->freifeld9='';
$this->freifeld10='';
$this->rechnung_papier='';
+ $this->etikettautodruck='';
+ $this->etikett='';
$this->angebot_cc='';
$this->auftrag_cc='';
$this->rechnung_cc='';
@@ -1392,6 +1400,10 @@ $result = $result[0];
public function GetFreifeld10() { return $this->freifeld10; }
public function SetRechnung_Papier($value) { $this->rechnung_papier=$value; }
public function GetRechnung_Papier() { return $this->rechnung_papier; }
+ public function SetEtikettautodruck($value) { $this->etikettautodruck=$value; }
+ public function GetEtikettautodruck() { return $this->etikettautodruck; }
+ public function SetEtikett($value) { $this->etikett=$value; }
+ public function GetEtikett() { return $this->etikett; }
public function SetAngebot_Cc($value) { $this->angebot_cc=$value; }
public function GetAngebot_Cc() { return $this->angebot_cc; }
public function SetAuftrag_Cc($value) { $this->auftrag_cc=$value; }
diff --git a/www/pages/auftrag.php b/www/pages/auftrag.php
index a1fa9811..d0e914fe 100644
--- a/www/pages/auftrag.php
+++ b/www/pages/auftrag.php
@@ -665,7 +665,7 @@ class Auftrag extends GenAuftrag
$menu .= "";
$moreinfo = true; // Minidetail active
- $menucol = 11; // For minidetail
+ $menucol = 13; // For minidetail
break;
case 'auftraegeoffeneautowartend':
@@ -5778,29 +5778,7 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
if($kommissionierverfahren==='lieferschein' && $lieferschein > 0)
{
//FALL 1 Lieferschein mit Lagerplatz
-
- $sql = "SELECT id FROM kommissionierung k WHERE k.auftrag = '".$id."'";
- $vorkommissionierung = $this->app->DB->Select($sql);
-
- if(!$vorkommissionierung)
- {
- $kommissionierung = $this->app->erp->GetNextKommissionierung();
- } else {
- $kommissionierung = false;
- }
-
- if($kommissionierung){
- $this->app->DB->Update(
- sprintf(
- "UPDATE kommissionierung SET lieferschein = %d, auftrag = %d, adresse = %d WHERE id = %d LIMIT 1",
- $lieferschein,
- $id,
- $adresse,
- $kommissionierung
- )
- );
- }
-
+
$auslagernresult =
$this->app->erp->LieferscheinAuslagern(
$lieferschein,
@@ -5811,40 +5789,33 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
false,
$nurRestmenge
);
+
+ $sql = "SELECT id FROM kommissionierung k WHERE k.auftrag = '".$id."'";
+ $vorkommissionierung = $this->app->DB->Select($sql);
+
+ if (!$vorkommissionierung)
+ {
+ $kommissionierung = $this->app->erp->GetNextKommissionierung();
+
+ $druckercode = $this->app->erp->Projektdaten($projekt,'druckerlogistikstufe1');
+ $etikettendrucker = $this->app->erp->Projektdaten($projekt,'etiketten_drucker');
+
+ $sql = "SELECT etikett, etikettautodruck FROM adresse WHERE id =".$adresse;
+ $settings = $this->app->DB->SelectRow($sql);
- if($kommissionierung){
- $this->app->DB->Update(
- sprintf(
- "UPDATE kommissionierung SET ausgelagert = 1 WHERE id = %d LIMIT 1",
- $kommissionierung
- )
- );
-
- foreach ($auslagernresult['storageMovements'] as $storageMovement) {
- $this->app->DB->Update(
- sprintf(
- "INSERT INTO kommissionierung_position (kommissionierung, artikel, lager_platz, menge) VALUES (%d, %d, %d, %d)",
- $kommissionierung,
- $storageMovement['artikel'],
- $storageMovement['lager_platz'],
- $storageMovement['menge']
- )
- );
- }
-
- // Kommissionierschein drucken?
- if ($projektarr['autodruckkommissionierscheinstufe1']) {
- $Brief = new KommissionierungPDF($this->app, styleData: array('ohne_steuer' => true, 'artikeleinheit' => false, 'abstand_boxrechtsoben' => -70, 'abstand_artikeltabelleoben' => -70, 'abstand_betreffzeileoben' => -70, 'preise_ausblenden' => true));
- $Brief->GetKommissionierung($kommissionierung);
- $tmpfile = $Brief->displayTMP();
- for($mengedruck=$projektarr['autodruckkommissionierscheinstufe1menge'];$mengedruck > 0;$mengedruck--) {
- $druckercode = $this->app->erp->Projektdaten($projekt,'druckerlogistikstufe1');
- $this->app->printer->Drucken($druckercode, $tmpfile);
- }
- unlink($tmpfile);
- }
+ $this->Kommissionieren(
+ kommissionierung : $kommissionierung,
+ auftrag: $id,
+ lieferschein: $lieferschein,
+ ausgelagert: true,
+ lagerplatzliste: $auslagernresult,
+ mengedruck: $projektarr['autodruckkommissionierscheinstufe1']?$projektarr['autodruckkommissionierscheinstufe1menge']:0,
+ druckercode: $druckercode,
+ mengeetiketten: $settings['etikettautodruck']?1:0,
+ etikett: $settings['etikettautodruck']?$settings['etikett']:0,
+ etikettendrucker: $etikettendrucker);
}
-
+
// Prozesse ohne Versandzentrum
$this->app->erp->BriefpapierHintergrundDisable($druckercode);
@@ -5975,9 +5946,9 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
// Check for override in adresse
$sql = "SELECT rechnung_anzahlpapier, rechnung_anzahlpapier_abweichend FROM adresse WHERE id =".$adresse;
- $rechnung_anzahlpapier = $this->app->DB->SelectArr($sql);
- if ($rechnung_anzahlpapier[0]['rechnung_anzahlpapier_abweichend']) {
- $autodruckrechnungstufe1menge = $rechnung_anzahlpapier[0]['rechnung_anzahlpapier'];
+ $adresse_settings = $this->app->DB->SelectArr($sql);
+ if ($adresse_settings[0]['rechnung_anzahlpapier_abweichend']) {
+ $autodruckrechnungstufe1menge = $adresse_settings[0]['rechnung_anzahlpapier'];
}
if($exportdruckrechnungstufe1)
@@ -6542,6 +6513,9 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
}
}
break;
+ case 'vorkommissionieren_ohne_etiketten':
+ $vorkommissionieren_ohne_etiketten = true;
+ // break ommitted
case 'vorkommissionieren':
if (!empty($auftraegemarkiert)) {
@@ -6577,9 +6551,6 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
$kid = $this->app->erp->GetNextKommissionierung();
- $sql = "UPDATE kommissionierung SET auftrag = $v, adresse = (SELECT adresse FROM auftrag WHERE id = ".$v.") WHERE id = $kid";
- $this->app->DB->Update($sql);
-
$auslagernresult =
$this->app->erp->LieferscheinAuslagern(
lieferschein: $v,
@@ -6592,33 +6563,35 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
simulieren: true
);
- foreach ($auslagernresult['storageMovements'] as $storageMovement) {
- $this->app->DB->Update(
- sprintf(
- "INSERT INTO kommissionierung_position (kommissionierung, artikel, lager_platz, menge) VALUES (%d, %d, %d, %d)",
- $kid,
- $storageMovement['artikel'],
- $storageMovement['lager_platz'],
- $storageMovement['menge']
- )
- );
- }
+ $projekt = $this->app->DB->Select("SELECT projekt FROM auftrag WHERE id='$v' LIMIT 1");
+ $druckercode = $this->app->erp->Projektdaten($projekt,'druckerlogistikstufe1');
- $this->app->erp->AuftragProtokoll($v,'Auftrag vorkommissioniert, Kommissionierung '.$kid);
+ $settings = $this->app->DB->SelectRow("
+ SELECT
+ projekt.autodruckkommissionierscheinstufe1,
+ projekt.autodruckkommissionierscheinstufe1menge,
+ adresse.etikett,
+ adresse.etikettautodruck,
+ projekt.id as projekt
+ FROM projekt
+ INNER JOIN auftrag ON projekt.id = auftrag.projekt
+ INNER JOIN adresse ON adresse.id = auftrag.adresse
+ WHERE auftrag.id = '".$v."'"
+ );
- $projektarr = $this->app->DB->SelectRow("SELECT projekt.* FROM projekt INNER JOIN auftrag ON projekt.id = auftrag.projekt WHERE auftrag.id = '".$v."'");
+ $etikettendrucker = $this->app->erp->Projektdaten($settings['projekt'],'etiketten_drucker');
- // Kommissionierschein drucken?
- if ($projektarr['autodruckkommissionierscheinstufe1']) {
- $Brief = new KommissionierungPDF($this->app, styleData: array('ohne_steuer' => true, 'artikeleinheit' => false, 'abstand_boxrechtsoben' => -70, 'abstand_artikeltabelleoben' => -70, 'abstand_betreffzeileoben' => -70, 'preise_ausblenden' => true));
- $Brief->GetKommissionierung($kid);
- $tmpfile = $Brief->displayTMP();
- for($mengedruck=$projektarr['autodruckkommissionierscheinstufe1menge'];$mengedruck > 0;$mengedruck--) {
- $druckercode = $this->app->erp->Projektdaten($projektarr['id'],'druckerlogistikstufe1');
- $this->app->printer->Drucken($druckercode, $tmpfile);
- }
- unlink($tmpfile);
- }
+ $this->Kommissionieren(
+ kommissionierung : $kid,
+ auftrag: $v,
+ lieferschein: 0,
+ ausgelagert: false,
+ lagerplatzliste: $auslagernresult,
+ mengedruck: $settings['autodruckkommissionierscheinstufe1']?$settings['autodruckkommissionierscheinstufe1menge']:0,
+ druckercode: $druckercode,
+ mengeetiketten: $settings['etikettautodruck']?1:0,
+ etikett: $vorkommissionieren_ohne_etiketten?0:($settings['etikettautodruck']?$settings['etikett']:0),
+ etikettendrucker: $etikettendrucker);
}
}
break;
@@ -7345,5 +7318,66 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
$this->app->YUI->TableSearch('TAB1','offenepositionen',"show","","",basename(__FILE__), __CLASS__);
$this->app->Tpl->Parse('PAGE',"tabview.tpl");
}
+
+ function Kommissionieren(int $kommissionierung, int $auftrag, int $lieferschein, bool $ausgelagert, array $lagerplatzliste, int $mengedruck, $druckercode, int $mengeetiketten, $etikett, $etikettendrucker) {
+ $sql = sprintf(
+ "UPDATE kommissionierung SET lieferschein = %d, auftrag = %d, adresse = IF (%d != 0,(SELECT adresse FROM lieferschein WHERE id = %d LIMIT 1),(SELECT adresse FROM auftrag WHERE id = %d LIMIT 1)), ausgelagert = %d WHERE id = %d LIMIT 1",
+ $lieferschein,
+ $auftrag,
+ $lieferschein,
+ $lieferschein,
+ $auftrag,
+ $adresse,
+ $kommissionierung,
+ $ausgelager
+ );
+
+ $this->app->DB->Update(
+ $sql
+ );
+
+ foreach ($lagerplatzliste['storageMovements'] as $storageMovement) {
+ $this->app->DB->Update(
+ sprintf(
+ "INSERT INTO kommissionierung_position (kommissionierung, artikel, lager_platz, menge) VALUES (%d, %d, %d, %d)",
+ $kommissionierung,
+ $storageMovement['artikel'],
+ $storageMovement['lager_platz'],
+ $storageMovement['menge']
+ )
+ );
+ }
+
+ // Kommissionierschein
+ if ($mengedruck > 0) {
+ $this->app->erp->BriefpapierHintergrunddisable = true; // Disable background
+ $Brief = new KommissionierungPDF($this->app, styleData: array('ohne_steuer' => true, 'artikeleinheit' => false, 'abstand_boxrechtsoben' => -70, 'abstand_artikeltabelleoben' => -70, 'abstand_betreffzeileoben' => -70, 'preise_ausblenden' => true));
+ $Brief->GetKommissionierung($kommissionierung);
+ $tmpfile = $Brief->displayTMP();
+ for($drucklauf = 0; $drucklauf < $mengedruck;$drucklauf++) {
+ $spooler_id = $this->app->printer->Drucken($druckercode, $tmpfile);
+ }
+ unlink($tmpfile);
+ $this->app->erp->BriefpapierHintergrundDisable($druckercode); // Restore default background from printersettings
+ }
+
+ // Etiketten
+ if ($mengeetiketten > 0) {
+ foreach ($lagerplatzliste['storageMovements'] as $storageMovement) {
+ $this->app->erp->EtikettenDrucker(
+ kennung: $etikett,
+ anzahl: $mengeetiketten*$storageMovement['menge'],
+ tabelle: 'artikel',
+ id: $storageMovement['artikel'],
+ variables: null,
+ druckercode: $etikettendrucker
+ );
+ }
+
+ //function EtikettenDrucker($kennung,$anzahl,$tabelle,$id,$variables="",$xml="",$druckercode="",$filenameprefix="",$xmlaspdf=false,$adresse=0,$verwendenals="")
+ }
+
+
+ }
}
diff --git a/www/pages/content/auftrag_versandzentrum.tpl b/www/pages/content/auftrag_versandzentrum.tpl
index 5e7fdd85..18a94133 100644
--- a/www/pages/content/auftrag_versandzentrum.tpl
+++ b/www/pages/content/auftrag_versandzentrum.tpl
@@ -48,7 +48,8 @@
-
+
+
{|Drucker|}:
diff --git a/www/pages/content/lieferbedingungen_edit.tpl b/www/pages/content/lieferbedingungen_edit.tpl
new file mode 100644
index 00000000..d9c02845
--- /dev/null
+++ b/www/pages/content/lieferbedingungen_edit.tpl
@@ -0,0 +1,103 @@
+
+
diff --git a/www/pages/content/lieferbedingungen_list.tpl b/www/pages/content/lieferbedingungen_list.tpl
new file mode 100644
index 00000000..394c103a
--- /dev/null
+++ b/www/pages/content/lieferbedingungen_list.tpl
@@ -0,0 +1,10 @@
+
+
+
+ [MESSAGE]
+ [TAB1]
+ [TAB1NEXT]
+
+
diff --git a/www/pages/content/verbindlichkeit_position_edit.tpl b/www/pages/content/verbindlichkeit_position_edit.tpl
index 5f77492a..6e22924b 100644
--- a/www/pages/content/verbindlichkeit_position_edit.tpl
+++ b/www/pages/content/verbindlichkeit_position_edit.tpl
@@ -32,7 +32,7 @@
{|Preis|}:
-
+
|
diff --git a/www/pages/kommissionierung.php b/www/pages/kommissionierung.php
index 22ffb526..f9146799 100644
--- a/www/pages/kommissionierung.php
+++ b/www/pages/kommissionierung.php
@@ -226,7 +226,7 @@ class Kommissionierung {
public function kommissionierung_print() {
$id = $this->app->Secure->GetGET('id');
- $Brief = new KommissionierungPDF($this->app, styleData: array('ohne_steuer' => true, 'artikeleinheit' => false, 'abstand_boxrechtsoben' => -70, 'abstand_artikeltabelleoben' => -70, 'abstand_betreffzeileoben' => -70, 'preise_ausblenden' => true));
+ $Brief = new KommissionierungPDF($this->app, styleData: array('ohne_steuer' => true, 'artikeleinheit' => false, 'abstand_boxrechtsoben' => -70, 'abstand_artikeltabelleoben' => -70, 'abstand_betreffzeileoben' => -70, 'preise_ausblenden' => true, 'hintergrund' => 'none'));
$Brief->GetKommissionierung($id);
$Brief->displayDocument(false);
exit();
diff --git a/www/pages/lieferbedingungen.php b/www/pages/lieferbedingungen.php
new file mode 100644
index 00000000..ae8d3c70
--- /dev/null
+++ b/www/pages/lieferbedingungen.php
@@ -0,0 +1,213 @@
+app = $app;
+ if ($intern)
+ return;
+
+ $this->app->ActionHandlerInit($this);
+ $this->app->ActionHandler("list", "lieferbedingungen_list");
+ $this->app->ActionHandler("create", "lieferbedingungen_edit"); // This automatically adds a "New" button
+ $this->app->ActionHandler("edit", "lieferbedingungen_edit");
+ $this->app->ActionHandler("delete", "lieferbedingungen_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 "lieferbedingungen_list":
+ $allowed['lieferbedingungen_list'] = array('list');
+ $heading = array('','','Lieferbedingungen', 'Kennzeichen', 'Menü');
+ $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('l.id','l.id','l.lieferbedingungen', 'l.kennzeichen');
+ $searchsql = array('l.lieferbedingungen', 'l.kennzeichen');
+
+ $defaultorder = 1;
+ $defaultorderdesc = 0;
+ $aligncenter = array();
+ $alignright = array();
+ $numbercols = array();
+ $sumcol = array();
+
+ $dropnbox = "'' AS `open`, CONCAT('') 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 = "";
+
+ $sql = "SELECT SQL_CALC_FOUND_ROWS l.id, $dropnbox, l.lieferbedingungen, l.kennzeichen, l.id FROM lieferbedingungen l";
+
+ $where = "1";
+ $count = "SELECT count(DISTINCT id) FROM lieferbedingungen WHERE $where";
+// $groupby = "";
+
+ break;
+ }
+
+ $erg = false;
+
+ foreach ($erlaubtevars as $k => $v) {
+ if (isset($$v)) {
+ $erg[$v] = $$v;
+ }
+ }
+ return $erg;
+ }
+
+ function lieferbedingungen_list() {
+ $this->app->erp->MenuEintrag("index.php?module=lieferbedingungen&action=list", "Übersicht");
+ $this->app->erp->MenuEintrag("index.php?module=lieferbedingungen&action=create", "Neu anlegen");
+
+ $this->app->erp->MenuEintrag("index.php", "Zurück");
+
+ $this->app->YUI->TableSearch('TAB1', 'lieferbedingungen_list', "show", "", "", basename(__FILE__), __CLASS__);
+ $this->app->Tpl->Parse('PAGE', "lieferbedingungen_list.tpl");
+ }
+
+ public function lieferbedingungen_delete() {
+ $id = (int) $this->app->Secure->GetGET('id');
+ $this->app->DB->Delete("DELETE FROM `lieferbedingungen` WHERE `id` = '{$id}'");
+ $this->app->Tpl->addMessage('error', 'Der Eintrag wurde gelöscht');
+ $this->lieferbedingungen_list();
+ }
+
+ /*
+ * Edit lieferbedingungen item
+ * If id is empty, create a new one
+ */
+
+ function lieferbedingungen_edit() {
+ $id = $this->app->Secure->GetGET('id');
+
+/* // Check if other users are editing this id
+ if($this->app->erp->DisableModul('lieferbedingungen',$id))
+ {
+ return;
+ } */
+
+ $this->app->Tpl->Set('ID', $id);
+
+ $this->app->erp->MenuEintrag("index.php?module=lieferbedingungen&action=edit&id=$id", "Details");
+ $this->app->erp->MenuEintrag("index.php?module=lieferbedingungen&action=list", "Zurück zur Übersicht");
+ $id = $this->app->Secure->GetGET('id');
+ $input = $this->GetInput();
+
+ // Convert here
+ // $input['prio'] = !empty($this->app->Secure->GetPOST('prio'))?"1":"0";
+
+ $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."
");
+// echo($values."
");
+// echo($update."
");
+
+ $sql = "INSERT INTO lieferbedingungen (".$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("Das Element wurde erfolgreich angelegt.
");
+ header("Location: index.php?module=lieferbedingungen&action=list&msg=$msg");
+ } else {
+ $this->app->Tpl->addMessage('success', 'Die Einstellungen wurden erfolgreich übernommen.');
+ }
+ }
+
+
+ // Load values again from database
+ if ($id != 'NULL') {
+
+ $dropnbox = "'' AS `open`, CONCAT('') AS `auswahl`";
+ $result = $this->app->DB->SelectArr("SELECT SQL_CALC_FOUND_ROWS l.id, $dropnbox, l.lieferbedingungen, l.kennzeichen, l.id FROM lieferbedingungen l"." WHERE id=$id");
+
+ foreach ($result[0] as $key => $value) {
+ $this->app->Tpl->Set(strtoupper($key), $value);
+ }
+
+ if (!empty($result)) {
+ $lieferbedingungen_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->Set('PROJEKT',$this->app->erp->ReplaceProjekt(false,$lieferbedingungen_from_db['projekt'],false));
+ $this->app->Tpl->Set('PRIO', $lieferbedingungen_from_db['prio']==1?"checked":"");
+
+ */
+
+ $this->app->Tpl->Parse('PAGE', "lieferbedingungen_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['lieferbedingungen'] = $this->app->Secure->GetPOST('lieferbedingungen');
+ $input['kennzeichen'] = $this->app->Secure->GetPOST('kennzeichen');
+
+
+ return $input;
+ }
+ }
diff --git a/www/pages/onlineshops.php b/www/pages/onlineshops.php
index a1eea6e4..9cfda337 100644
--- a/www/pages/onlineshops.php
+++ b/www/pages/onlineshops.php
@@ -4739,7 +4739,7 @@ INNER JOIN shopexport s ON
}
$this->arrayToXmlHelper($subNode, $value, $nameSpaces,$subNodeName);
}
- } else {
+ } else if (gettype($value) == 'string') {
$subNode = $xmlObj->addChild((string)$subNodeName, htmlspecialchars($value, ENT_QUOTES), $nameSpace);
if(!empty($attributes)) {
foreach($attributes as $attribute) {
diff --git a/www/pages/shopimport.php b/www/pages/shopimport.php
index 0a1112d1..e093318d 100644
--- a/www/pages/shopimport.php
+++ b/www/pages/shopimport.php
@@ -1881,10 +1881,10 @@ class Shopimport
{
if($warenkorb['email']!=='amazon_import_bounce@nfxmedia.de')
{
- $checkidemail = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE email='".$warenkorb['email']."' and email <> '' $adresseprojekt AND geloescht!=1 AND kundennummer <> '' LIMIT 1");
+ $checkidemail = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE email='".$this->app->DB->real_escape_string($warenkorb['email'])."' and email <> '' $adresseprojekt AND geloescht!=1 AND kundennummer <> '' LIMIT 1");
}
if((String)$checkidemail === ''){
- $checkidemail = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE name LIKE '" . $warenkorb['name'] . "' AND ort LIKE '" . $warenkorb['ort'] . "' AND geloescht!=1 $adresseprojekt AND kundennummer <> '' LIMIT 1");
+ $checkidemail = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE name LIKE '" . $this->app->DB->real_escape_string($warenkorb['name']) . "' AND ort LIKE '" . $this->app->DB->real_escape_string($warenkorb['ort']) . "' AND geloescht!=1 $adresseprojekt AND kundennummer <> '' LIMIT 1");
}
}else{
$checkidemail = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE name='".$this->app->DB->real_escape_string($warenkorb['name'])."' AND strasse='".$this->app->DB->real_escape_string($warenkorb['strasse'])."' AND plz='".$this->app->DB->real_escape_string($warenkorb['plz'])."' AND ort='".$this->app->DB->real_escape_string($warenkorb['ort'])."' $adresseprojekt AND geloescht!=1 AND kundennummer <> '' LIMIT 1");
diff --git a/www/pages/versandpakete.php b/www/pages/versandpakete.php
index 791fedf0..e29bf326 100644
--- a/www/pages/versandpakete.php
+++ b/www/pages/versandpakete.php
@@ -642,11 +642,13 @@ class Versandpakete {
// Write to database
// Add checks here
- $sql = "SELECT status FROM versandpakete WHERE id = ".$id;
- $input['status'] = $this->app->DB->SelectArr($sql)[0]['status']; // Status is not changeable
+ $sql = "SELECT * FROM versandpakete WHERE id = ".$id;
+ $paket_db = $this->app->DB->SelectRow($sql);
+ $input['status'] = $paket_db['status']; // Status is not changeable
if ($input['status'] != 'neu') {
$input = Array('bemerkung' => $input['bemerkung']);
}
+
if (!empty($paket_db['tracking'])) { // Tracking is not changeable
unset($input['tracking']);
unset($input['tracking_link']);
diff --git a/www/widgets/_gen/widget.gen.adresse.php b/www/widgets/_gen/widget.gen.adresse.php
index f058afec..8e9da36c 100644
--- a/www/widgets/_gen/widget.gen.adresse.php
+++ b/www/widgets/_gen/widget.gen.adresse.php
@@ -667,6 +667,13 @@ class WidgetGenadresse
$field = new HTMLInput("kennung","text","","30","","","","","","","","0","","");
$this->form->NewField($field);
+ $field = new HTMLCheckbox("etikettautodruck","","","1","0","0");
+ $this->form->NewField($field);
+
+ $field = new HTMLInput("etikett","text","","30","","","","","","","","0","","");
+ $this->form->NewField($field);
+
+
}
}
diff --git a/www/widgets/templates/_gen/adresse.tpl b/www/widgets/templates/_gen/adresse.tpl
index 538843aa..87238e64 100644
--- a/www/widgets/templates/_gen/adresse.tpl
+++ b/www/widgets/templates/_gen/adresse.tpl
@@ -771,6 +771,27 @@ function abweichend(cmd) {
+
diff --git a/www/widgets/widget.adresse.php b/www/widgets/widget.adresse.php
index b65ab7c1..fa00fbfe 100644
--- a/www/widgets/widget.adresse.php
+++ b/www/widgets/widget.adresse.php
@@ -438,6 +438,11 @@ class WidgetAdresse extends WidgetGenAdresse
$this->app->Tpl->Set('NACHBUNDESSTAAT','-->');
}
+ $etikettenart = $this->app->erp->GetEtiketten();
+ $field = new HTMLSelect("etikett",0);
+ $field->AddOptionsAsocSimpleArray($etikettenart);
+ $this->form->NewField($field);
+
}
function ReplaceDecimal($db,$value,$fromform)
diff --git a/www/widgets/widget.projekt.php b/www/widgets/widget.projekt.php
index 8488f348..9732dcde 100644
--- a/www/widgets/widget.projekt.php
+++ b/www/widgets/widget.projekt.php
@@ -152,7 +152,6 @@ class WidgetProjekt extends WidgetGenProjekt
$field->AddOptionsAsocSimpleArray($drucker);
$this->form->NewField($field);
-
$drucker = $this->app->erp->GetDrucker();
$field = new HTMLSelect("kasse_drucker",0);
$field->AddOptionsAsocSimpleArray($drucker);