diff --git a/classes/Modules/Ticket/Task/TicketImportHelper.php b/classes/Modules/Ticket/Task/TicketImportHelper.php
index c1649185..a9575e28 100644
--- a/classes/Modules/Ticket/Task/TicketImportHelper.php
+++ b/classes/Modules/Ticket/Task/TicketImportHelper.php
@@ -850,9 +850,9 @@ class TicketImportHelper
if (
$this->mailAccount->isAutoresponseEnabled()
&& $this->mailAccount->getAutoresponseText() !== ''
- && (
-// $this->erpApi->AutoresponderBlacklist($from) !== 1 ||
- $this->mailAccount->isAutoresponseLimitEnabled() === false
+ && !(
+ $this->CheckAutoresponderBlacklist($from) &&
+ $this->mailAccount->isAutoresponseLimitEnabled()
)
) {
@@ -867,20 +867,38 @@ class TicketImportHelper
$betreff = str_replace('{TICKET}', $ticketNumber, $betreff);
$betreff = str_replace('{BETREFF}', $subject, $betreff);
-
if (!$this->erpApi->isHTML($text)) {
$text = str_replace("\r\n", '
', $text);
}
+
+ $this->SetAutoresponderBlacklist($from);
+
$this->erpApi->MailSend(
$this->mailAccount->getSenderEmailAddress(),
- '',
+ $this->mailAccount->getSenderName(),
+ $from,
$from,
- $name_sender,
$betreff,
$text
- );
+ );
}
-
return(true);
}
+
+ // Check if the given address has already been autoresponded to
+ // True if blocked
+ function CheckAutoresponderBlacklist(string $mailaddress) : bool {
+ $blocked = $this->db->Select("SELECT * FROM autoresponder_blacklist WHERE mailaddress = '".$mailaddress."' AND cachetime > DATE_ADD(CURRENT_TIMESTAMP, INTERVAL -24 HOUR)");
+
+ $this->logger->debug('Blacklist',['address' => $mailaddress, 'result' => $blocked]);
+
+ return(!empty($blocked));
+ }
+
+ function SetAutoresponderBlacklist(string $mailaddress) {
+ $this->db->Insert("INSERT INTO autoresponder_blacklist (mailaddress) VALUES ('".$mailaddress."')");
+ $this->db->Delete("DELETE FROM autoresponder_blacklist WHERE cachetime < DATE_ADD(CURRENT_TIMESTAMP, INTERVAL -24 HOUR)");
+ }
+
+
}
diff --git a/phpwf/plugins/class.acl.php b/phpwf/plugins/class.acl.php
index df419fe4..59315a18 100644
--- a/phpwf/plugins/class.acl.php
+++ b/phpwf/plugins/class.acl.php
@@ -1313,6 +1313,7 @@ Allow from all
}
function refresh_githash() {
+ $gitinfo = array();
$path = '../.git/';
if (!is_dir($path)) {
return;
@@ -1321,12 +1322,13 @@ Allow from all
$refs = trim(substr($head,0,4));
if ($refs == 'ref:') {
$ref = substr($head,5);
- $hash = trim(file_get_contents($path . $ref));
+ $gitinfo['hash'] = trim(file_get_contents($path . $ref));
+ $gitinfo['branch'] = basename($path . $ref);
} else {
- $hash = $head;
+ $gitinfo['hash'] = $head;
}
- if (!empty($hash)) {
- file_put_contents("../githash.txt", $hash);
+ if (!empty($gitinfo)) {
+ file_put_contents("../gitinfo.json", json_encode($gitinfo));
}
}
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 ba830e9c..8fc821b2 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": [
diff --git a/version.php b/version.php
index 2b810c37..2553c804 100755
--- a/version.php
+++ b/version.php
@@ -2,9 +2,19 @@
$version="OSS";
$version_revision="1.11";
-$githash = file_get_contents("../githash.txt");
-if (!empty($githash)) {
- $version_revision .= " (".substr($githash,0,8).")";
+$gitinfo = file_get_contents("../gitinfo.json");
+if (!empty($gitinfo)) {
+ $gitinfo = json_decode($gitinfo);
+
+ if ($gitinfo->branch != 'master') {
+ $version_revision .= " (".substr($gitinfo->hash,0,8)." - ".$gitinfo->branch.")";
+ }
+ else {
+ $version_revision .= " (".substr($gitinfo->hash,0,8).")";
+ }
+
+} else {
+ $version_revision .= " (?)";
}
?>
diff --git a/www/lib/class.erpapi.php b/www/lib/class.erpapi.php
index 135b7e3e..b855b0f3 100644
--- a/www/lib/class.erpapi.php
+++ b/www/lib/class.erpapi.php
@@ -4318,39 +4318,6 @@ title: 'Abschicken',
$result[0]['lieferemail'] = $auftragArr['lieferemail'];
}
- if($type==='bestellung' || $type==='angebot' || $type==='proformarechnung' || $type==='retoure')
- {
- $typeArr = $this->app->DB->SelectRow("SELECT * FROM $type WHERE id = '$id' LIMIT 1");
- $result[0]['abweichendelieferadresse']=$typeArr['abweichendelieferadresse'];
- $result[0]['liefername']=$typeArr['liefername'];
- $result[0]['lieferabteilung']=$typeArr['lieferabteilung'];
- $result[0]['lieferunterabteilung']=$typeArr['lieferunterabteilung'];
- $result[0]['lieferadresszusatz']=$typeArr['lieferadresszusatz'];
- $result[0]['liefertitel']=$typeArr['liefertitel'];
- $result[0]['lieferansprechpartner']=$typeArr['lieferansprechpartner'];
- $result[0]['lieferstrasse']=$typeArr['lieferstrasse'];
- $result[0]['lieferplz']=$typeArr['lieferplz'];
- $result[0]['lieferland']=$typeArr['lieferland'];
- $result[0]['lieferort'] = $typeArr['lieferort'];
- $result[0]['liefergln'] = $typeArr['liefergln'];
- $result[0]['lieferemail'] = $typeArr['lieferemail'];
- if($type === 'proformarechnung')
- {
- $result[0]['verzollungadresse']=$typeArr['verzollungadresse'];
- $result[0]['verzollungname']=$typeArr['verzollungname'];
- $result[0]['verzollungabteilung']=$typeArr['verzollungabteilung'];
- $result[0]['verzollungunterabteilung']=$typeArr['verzollungunterabteilung'];
- $result[0]['verzollungadresszusatz']=$typeArr['verzollungadresszusatz'];
- $result[0]['verzollungtitel']=$typeArr['verzollungtitel'];
- $result[0]['verzollungansprechpartner']=$typeArr['verzollungansprechpartner'];
- $result[0]['verzollungstrasse']=$typeArr['verzollungstrasse'];
- $result[0]['verzollungplz']=$typeArr['verzollungplz'];
- $result[0]['verzollungland']=$typeArr['verzollungland'];
- $result[0]['verzollungort'] = $typeArr['verzollungort'];
- $result[0]['verzollunginformationen'] = $typeArr['verzollunginformationen'];
- }
- }
-
if($type=="angebot" || $type=="auftrag")
{
$soll = $result[0]['gesamtsumme'];
@@ -4586,7 +4553,7 @@ title: 'Abschicken',
$text = str_replace('{NETTOGEWICHT}',number_format((float)$nettogewicht,2,",",""),$text);
$zahlungsweise = '';
if($type !== 'lieferschein'){
- $zahlungsweise = $this->app->DB->Select("SELECT zahlungsweise FROM $type WHERE id='$id' LIMIT 1");
+ $zahlungsweise = $result[0]['zahlungsweise'];
}
$text = str_replace("{ZAHLUNGSWEISE}",$zahlungsweise,$text);
} else {
@@ -4600,8 +4567,6 @@ title: 'Abschicken',
$result[0][$key]=str_replace('NONBLOCKINGZERO','',$result[0][$key]);
}
- $result[0]['anschreiben'] = $this->app->DB->Select("SELECT anschreiben FROM `$type` WHERE id='".$id."' LIMIT 1");
-
if($type === 'adresse') {
$tmpAddr = $result[0];
}
@@ -4663,7 +4628,7 @@ title: 'Abschicken',
if($type=="rechnung" || $type=="lieferschein")
{
- $tmpauftragid = $this->app->DB->Select("SELECT auftragid FROM $type WHERE id='$id' LIMIT 1");
+ $tmpauftragid =$result[0]['auftragid'];
$result[0]['lieferdatum'] = $this->app->DB->Select("SELECT lieferdatum FROM auftrag WHERE id='$tmpauftragid' LIMIT 1");
$result[0]['tatsaechlicheslieferdatum'] = $this->app->DB->Select("SELECT tatsaechlicheslieferdatum FROM auftrag WHERE id='$tmpauftragid' LIMIT 1");
}
@@ -4872,7 +4837,7 @@ title: 'Abschicken',
if($type=="rechnung" || $type=="lieferschein")
{
- $tmpauftragid = $this->app->DB->Select("SELECT auftragid FROM $type WHERE id='$id' LIMIT 1");
+ $tmpauftragid = $resul[0]['auftragid'];
$auftragsadresse = $this->app->DB->SelectRow("SELECT * FROM auftrag WHERE id='$tmpauftragid' LIMIT 1");
if(!empty($auftragsadresse)){
$auftragsadressetext = '';
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/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/shopimport.php b/www/pages/shopimport.php
index e80f83dd..0a1112d1 100644
--- a/www/pages/shopimport.php
+++ b/www/pages/shopimport.php
@@ -1643,7 +1643,7 @@ class Shopimport
$this->drawShopOrderTable($deletedRows);
} else
{
- return $count+(isset($gesamtanzahl)?$gesamtanzahl:0);
+ return $count+(is_numeric($gesamtanzahl)?$gesamtanzahl:0);
}
}
@@ -1703,9 +1703,9 @@ class Shopimport
$adresseprojekt = '';
}
- $checkid = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE `name`='".$this->app->erp->ReadyForPDF($warenkorb['name'])."' AND abteilung='".$this->app->erp->ReadyForPDF($warenkorb['abteilung'])."'
- AND strasse='".$this->app->erp->ReadyForPDF($warenkorb['strasse'])."' AND plz='".$this->app->erp->ReadyForPDF($warenkorb['plz'])."' AND ort='".$this->app->erp->ReadyForPDF($warenkorb['ort'])."' AND kundennummer <> '' AND geloescht!=1 $adresseprojekt
- ORDER BY email='".$this->app->erp->ReadyForPDF($warenkorb['email'])."' DESC
+ $checkid = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE `name`='".$this->app->DB->real_escape_string($warenkorb['name'])."' AND abteilung='".$this->app->DB->real_escape_string($warenkorb['abteilung'])."'
+ 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'])."' AND kundennummer <> '' AND geloescht!=1 $adresseprojekt
+ ORDER BY email='".$this->app->DB->real_escape_string($warenkorb['email'])."' DESC
LIMIT 1");
@@ -1719,7 +1719,7 @@ class Shopimport
$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");
}
}else{
- $checkidemail = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE name='".$this->app->erp->ReadyForPDF($warenkorb['name'])."' AND strasse='".$this->app->erp->ReadyForPDF($warenkorb['strasse'])."' AND plz='".$this->app->erp->ReadyForPDF($warenkorb['plz'])."' AND ort='".$this->app->erp->ReadyForPDF($warenkorb['ort'])."' $adresseprojekt AND geloescht!=1 AND kundennummer <> '' LIMIT 1");
+ $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");
}
if($warenkorb['kundennummer']!='' && !empty($validkundennummer) && $validkundennummer==$warenkorb['kundennummer'])
@@ -1871,9 +1871,9 @@ class Shopimport
$adresseprojekt = '';
}
- $checkid = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE `name`='".$this->app->erp->ReadyForPDF($warenkorb['name'])."' AND abteilung='".$this->app->erp->ReadyForPDF($warenkorb['abteilung'])."'
- AND strasse='".$this->app->erp->ReadyForPDF($warenkorb['strasse'])."' AND plz='".$this->app->erp->ReadyForPDF($warenkorb['plz'])."' AND ort='".$this->app->erp->ReadyForPDF($warenkorb['ort'])."' AND kundennummer <> '' AND geloescht!=1 $adresseprojekt
- ORDER BY email='".$this->app->erp->ReadyForPDF($warenkorb['email'])."' DESC
+ $checkid = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE `name`='".$this->app->DB->real_escape_string($warenkorb['name'])."' AND abteilung='".$this->app->DB->real_escape_string($warenkorb['abteilung'])."'
+ 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'])."' AND kundennummer <> '' AND geloescht!=1 $adresseprojekt
+ ORDER BY email='".$this->app->DB->real_escape_string($warenkorb['email'])."' DESC
LIMIT 1");
@@ -1887,7 +1887,7 @@ class Shopimport
$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");
}
}else{
- $checkidemail = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE name='".$this->app->erp->ReadyForPDF($warenkorb['name'])."' AND strasse='".$this->app->erp->ReadyForPDF($warenkorb['strasse'])."' AND plz='".$this->app->erp->ReadyForPDF($warenkorb['plz'])."' AND ort='".$this->app->erp->ReadyForPDF($warenkorb['ort'])."' $adresseprojekt AND geloescht!=1 AND kundennummer <> '' LIMIT 1");
+ $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");
}
if($warenkorb['kundennummer']!='' && !empty($validkundennummer) && $validkundennummer==$warenkorb['kundennummer'])
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);