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);
From 7bb519ea40f7ebcc0b3a16ebf590f55404cb7047 Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Wed, 5 Jun 2024 14:12:48 +0200
Subject: [PATCH 04/15] kommissionierung etikettautodruck
---
www/pages/auftrag.php | 64 ++++++++++++++++----
www/pages/content/auftrag_versandzentrum.tpl | 3 +-
2 files changed, 55 insertions(+), 12 deletions(-)
diff --git a/www/pages/auftrag.php b/www/pages/auftrag.php
index 96300924..3a94d439 100644
--- a/www/pages/auftrag.php
+++ b/www/pages/auftrag.php
@@ -5787,6 +5787,7 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
$kommissionierung = $this->app->erp->GetNextKommissionierung();
$druckercode = $this->app->erp->Projektdaten($projekt,'druckerlogistikstufe1');
+ $etikettendrucker = $this->app->erp->Projektdaten($projekt,'etiketten_drucker');
$auslagernresult =
$this->app->erp->LieferscheinAuslagern(
@@ -5799,6 +5800,9 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
$nurRestmenge
);
+ $sql = "SELECT etikett, etikettautodruck FROM adresse WHERE id =".$adresse;
+ $settings = $this->app->DB->SelectRow($sql);
+
$this->Kommissionieren(
kommissionierung : $kommissionierung,
auftrag: $id,
@@ -5806,7 +5810,10 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
ausgelagert: true,
lagerplatzliste: $auslagernresult,
mengedruck: $projektarr['autodruckkommissionierscheinstufe1']?$projektarr['autodruckkommissionierscheinstufe1menge']:0,
- druckercode: $druckercode);
+ druckercode: $druckercode,
+ mengeetiketten: $settings['etikettautodruck']?1:0,
+ etikett: $settings['etikettautodruck']?$settings['etikett']:0,
+ etikettendrucker: $etikettendrucker);
}
// Prozesse ohne Versandzentrum
@@ -5939,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)
@@ -6506,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)) {
@@ -6554,7 +6564,21 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
);
$druckercode = $this->app->erp->Firmendaten('standardversanddrucker');
- $projektarr = $this->app->DB->SelectRow("SELECT projekt.* FROM projekt INNER JOIN auftrag ON projekt.id = auftrag.projekt WHERE auftrag.id = '".$v."'");
+
+ $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."'"
+ );
+
+ $etikettendrucker = $this->app->erp->Projektdaten($settings['projekt'],'etiketten_drucker');
$this->Kommissionieren(
kommissionierung : $kid,
@@ -6562,11 +6586,11 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
lieferschein: 0,
ausgelagert: false,
lagerplatzliste: $auslagernresult,
- mengedruck: $projektarr['autodruckkommissionierscheinstufe1']?$projektarr['autodruckkommissionierscheinstufe1menge']:0,
- druckercode: $druckercode);
-
- $this->app->erp->AuftragProtokoll($v,'Auftrag vorkommissioniert, Kommissionierung '.$kid);
-
+ 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;
@@ -7294,7 +7318,7 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
$this->app->Tpl->Parse('PAGE',"tabview.tpl");
}
- function Kommissionieren(int $kommissionierung, int $auftrag, int $lieferschein, bool $ausgelagert, array $lagerplatzliste, int $mengedruck, int $druckercode) {
+ 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",
@@ -7336,5 +7360,23 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
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|}:
From a7fae122009026229a03afc30c80f18b005cad14 Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Wed, 5 Jun 2024 15:00:40 +0200
Subject: [PATCH 05/15] bugfix versandpakete save comment, lose tracking
---
www/pages/versandpakete.php | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
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']);
From bba2f6e56faddf36daaf7d748ec01f16fa1de971 Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Thu, 6 Jun 2024 14:14:39 +0200
Subject: [PATCH 06/15] bugfix auftrag versanduebergabe minidetail
---
www/pages/auftrag.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/www/pages/auftrag.php b/www/pages/auftrag.php
index 3a94d439..8d61edde 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':
From 4f8e5958ef2dadbbf7386d6b197b736410416391 Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Thu, 6 Jun 2024 15:30:49 +0200
Subject: [PATCH 07/15] Paketmarke bugfix versandart send no email
---
www/lib/class.versanddienstleister.php | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
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');
From d01e37d15c9c319cff956b6bfbff00f1d5906abf Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Fri, 7 Jun 2024 17:59:17 +0200
Subject: [PATCH 08/15] Kommissionierung removed background
---
www/pages/auftrag.php | 7 ++++---
www/pages/kommissionierung.php | 2 +-
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/www/pages/auftrag.php b/www/pages/auftrag.php
index 8d61edde..2153f982 100644
--- a/www/pages/auftrag.php
+++ b/www/pages/auftrag.php
@@ -6563,7 +6563,8 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
simulieren: true
);
- $druckercode = $this->app->erp->Firmendaten('standardversanddrucker');
+ $projekt = $this->app->DB->Select("SELECT projekt FROM auftrag WHERE id='$v' LIMIT 1");
+ $druckercode = $this->app->erp->Projektdaten($projekt,'druckerlogistikstufe1');
$settings = $this->app->DB->SelectRow("
SELECT
@@ -7350,12 +7351,12 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
// 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();
- $this->app->erp->BriefpapierHintergrunddisable = true; // Disable background
for($drucklauf = 0; $drucklauf < $mengedruck;$drucklauf++) {
- $this->app->printer->Drucken($druckercode, $tmpfile);
+ $spooler_id = $this->app->printer->Drucken($druckercode, $tmpfile);
}
unlink($tmpfile);
$this->app->erp->BriefpapierHintergrundDisable($druckercode); // Restore default background from printersettings
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();
From e3ffa8c1b84f911bddf91cad762188ba9fbf28a0 Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Mon, 10 Jun 2024 14:57:28 +0200
Subject: [PATCH 09/15] Bugfix autoversand lieferscheinauslagern
---
www/pages/auftrag.php | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/www/pages/auftrag.php b/www/pages/auftrag.php
index 2153f982..d0e914fe 100644
--- a/www/pages/auftrag.php
+++ b/www/pages/auftrag.php
@@ -5778,10 +5778,21 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
if($kommissionierverfahren==='lieferschein' && $lieferschein > 0)
{
//FALL 1 Lieferschein mit Lagerplatz
+
+ $auslagernresult =
+ $this->app->erp->LieferscheinAuslagern(
+ $lieferschein,
+ true,
+ (int)$this->app->DB->Select(sprintf('SELECT standardlager FROM auftrag WHERE id = %d LIMIT 1', $id)),
+ 'lieferschein',
+ true,
+ 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();
@@ -5789,17 +5800,6 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
$druckercode = $this->app->erp->Projektdaten($projekt,'druckerlogistikstufe1');
$etikettendrucker = $this->app->erp->Projektdaten($projekt,'etiketten_drucker');
- $auslagernresult =
- $this->app->erp->LieferscheinAuslagern(
- $lieferschein,
- true,
- (int)$this->app->DB->Select(sprintf('SELECT standardlager FROM auftrag WHERE id = %d LIMIT 1', $id)),
- 'lieferschein',
- true,
- false,
- $nurRestmenge
- );
-
$sql = "SELECT etikett, etikettautodruck FROM adresse WHERE id =".$adresse;
$settings = $this->app->DB->SelectRow($sql);
From 69f06d5a1d533ea80ae8efa04f5c13f8aea98ac7 Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Mon, 10 Jun 2024 17:44:23 +0200
Subject: [PATCH 10/15] module creator added some conversions
---
tools/module_creator/module_creator_php_template.txt | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tools/module_creator/module_creator_php_template.txt b/tools/module_creator/module_creator_php_template.txt
index 1760582f..e0806214 100644
--- a/tools/module_creator/module_creator_php_template.txt
+++ b/tools/module_creator/module_creator_php_template.txt
@@ -110,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)) {
@@ -185,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":"");
*/
From 2327ffdf811d3f930d0bafb160bfc8ecc43e57fc Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Fri, 14 Jun 2024 13:20:19 +0200
Subject: [PATCH 11/15] Bugfix shopimport escaping
---
www/pages/shopimport.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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");
From 4bbafdf5cbf7bd75f271249735bd69c99d93e80c Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Mon, 17 Jun 2024 14:57:36 +0200
Subject: [PATCH 12/15] Onlineshops Smarty bugfix XML
---
www/pages/onlineshops.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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) {
From e94894bad618dc15eb18cc695acc7f1bf7ea5a4d Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Tue, 25 Jun 2024 11:34:17 +0200
Subject: [PATCH 13/15] verbindlichkeit preis 10 decimal places
---
upgrade/data/db_schema.json | 2 +-
www/pages/content/verbindlichkeit_position_edit.tpl | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/upgrade/data/db_schema.json b/upgrade/data/db_schema.json
index 8fc821b2..e6a0f50d 100644
--- a/upgrade/data/db_schema.json
+++ b/upgrade/data/db_schema.json
@@ -112329,7 +112329,7 @@
},
{
"Field": "preis",
- "Type": "decimal(14,5)",
+ "Type": "decimal(14,10)",
"Collation": null,
"Null": "NO",
"Key": "",
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|}:
-
+
|
From 9d3d5227f84758e1889746ad9b7ef7969fbcb206 Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Thu, 4 Jul 2024 18:33:36 +0200
Subject: [PATCH 14/15] lieferbedingungen
---
www/pages/content/lieferbedingungen_edit.tpl | 103 +++++++++
www/pages/content/lieferbedingungen_list.tpl | 10 +
www/pages/lieferbedingungen.php | 213 +++++++++++++++++++
3 files changed, 326 insertions(+)
create mode 100644 www/pages/content/lieferbedingungen_edit.tpl
create mode 100644 www/pages/content/lieferbedingungen_list.tpl
create mode 100644 www/pages/lieferbedingungen.php
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/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;
+ }
+ }
From 439edc93e9e3a26f3cb7956732e1ffbf2f9bb61c Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Mon, 8 Jul 2024 19:30:51 +0200
Subject: [PATCH 15/15] bugfix angebot abweichendelieferadresse
---
www/lib/class.erpapi.php | 34 ++++++++++++++++++----------------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/www/lib/class.erpapi.php b/www/lib/class.erpapi.php
index b855b0f3..d1e88e54 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 ="";