From a959c5f876680518ea2b64b6c6084039a489524f Mon Sep 17 00:00:00 2001
From: Reinhold Kainhofer <reinhold@kainhofer.com>
Date: Sat, 4 Oct 2014 00:22:54 +0200
Subject: [PATCH] V1.12: Implement custom counter format, given in the number
 format string after a pipe.

This feature finally allows e.g. a yearly counter when the order number contains the month, too.
---
 Makefile                                      |   2 +-
 .../de-DE/de-DE.plg_vmshopper_ordernumber.ini |   6 +++---
 .../de-DE.plg_vmshopper_ordernumber.sys.ini   |   6 +++---
 .../en-GB/en-GB.plg_vmshopper_ordernumber.ini |   6 +++---
 .../en-GB.plg_vmshopper_ordernumber.sys.ini   |   6 +++---
 ordernumber.php                               |  18 ++++++++++++------
 ordernumber.xml                               |   4 ++--
 releases/plg_vmshopper_ordernumber_v1.12.zip  | Bin 0 -> 13483 bytes
 8 files changed, 27 insertions(+), 21 deletions(-)
 create mode 100644 releases/plg_vmshopper_ordernumber_v1.12.zip

diff --git a/Makefile b/Makefile
index b31b534..ac808d7 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 BASE=ordernumber
 PLUGINTYPE=vmshopper
-VERSION=1.11
+VERSION=1.12
 
 PLUGINFILES=$(BASE).php $(BASE).script.php $(BASE).xml index.html
 
diff --git a/language/de-DE/de-DE.plg_vmshopper_ordernumber.ini b/language/de-DE/de-DE.plg_vmshopper_ordernumber.ini
index fc1f00a..97d0eb7 100644
--- a/language/de-DE/de-DE.plg_vmshopper_ordernumber.ini
+++ b/language/de-DE/de-DE.plg_vmshopper_ordernumber.ini
@@ -12,7 +12,7 @@ PLG_ORDERNUMBER_ORDERNR="<b>Auftragsgsnummern</b>"
 PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE="Auftragsnummern anpassen"
 PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Auftragsnummern anpassen möchten und nicht die Standardeinstellung benutzen möchten."
 PLG_ORDERNUMBER_ORDERNR_FMT="Format der Auftragsnummern"
-PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Auftragsnummern angeben."
+PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Auftragsnummern angeben. Variablennamen müssen in eckige Klammern gesetzt werden, z.B. [year]. Für sehr fortgeschrittene Anwendungen (normalerweise nicht nötig!) kann ein eigenes Format für den Zählernamen nach einem senkrechten Strich (|) angegeben werden. Standardmäßig wird das Format auch für den Zahler benutzt."
 PLG_ORDERNUMBER_ORDERNR_COUNTER="Zähler"
 PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1."
 PLG_ORDERNUMBER_ORDERNR_PADDING="Mindestziffern für den Zähler"
@@ -28,7 +28,7 @@ PLG_ORDERNUMBER_INVOICENR="<b>Rechnungsnummern</b>"
 PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE="Rechnungsnummern anpassen"
 PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Rechnungsnummern anpassen möchten und nicht die Standardeinstellung benutzen möchten."
 PLG_ORDERNUMBER_INVOICENR_FMT="Format der Rechnungsnummern"
-PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Hier können Sie Ihr eigenes Format für Rechnungsnummern angeben."
+PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Hier können Sie Ihr eigenes Format für Rechnungsnummern angeben. Variablennamen müssen in eckige Klammern gesetzt werden, z.B. [year]. Für sehr fortgeschrittene Anwendungen (normalerweise nicht nötig!) kann ein eigenes Format für den Zählernamen nach einem senkrechten Strich (|) angegeben werden. Standardmäßig wird das Format auch für den Zahler benutzt."
 PLG_ORDERNUMBER_INVOICENR_COUNTER="Zähler"
 PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1."
 PLG_ORDERNUMBER_INVOICENR_PADDING="Mindestziffern für den Zähler"
@@ -38,7 +38,7 @@ PLG_ORDERNUMBER_CUSTOMERNR="<b>Kundennummern</b>"
 PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE="Kundennummern anpassen"
 PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Kundennummern anpassen möchten und nicht die Standardeinstellung benutzen möchten."
 PLG_ORDERNUMBER_CUSTOMERNR_FMT="Format der Kundennummern"
-PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Kundennummern angeben."
+PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Kundennummern angeben. Variablennamen müssen in eckige Klammern gesetzt werden, z.B. [year]. Für sehr fortgeschrittene Anwendungen (normalerweise nicht nötig!) kann ein eigenes Format für den Zählernamen nach einem senkrechten Strich (|) angegeben werden. Standardmäßig wird das Format auch für den Zahler benutzt."
 PLG_ORDERNUMBER_CUSTOMERNR_COUNTER="Zähler"
 PLG_ORDERNUMBER_CUSTOMERNR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1."
 PLG_ORDERNUMBER_CUSTOMERNR_PADDING="Mindestziffern für den Zähler"
diff --git a/language/de-DE/de-DE.plg_vmshopper_ordernumber.sys.ini b/language/de-DE/de-DE.plg_vmshopper_ordernumber.sys.ini
index fc1f00a..97d0eb7 100644
--- a/language/de-DE/de-DE.plg_vmshopper_ordernumber.sys.ini
+++ b/language/de-DE/de-DE.plg_vmshopper_ordernumber.sys.ini
@@ -12,7 +12,7 @@ PLG_ORDERNUMBER_ORDERNR="<b>Auftragsgsnummern</b>"
 PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE="Auftragsnummern anpassen"
 PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Auftragsnummern anpassen möchten und nicht die Standardeinstellung benutzen möchten."
 PLG_ORDERNUMBER_ORDERNR_FMT="Format der Auftragsnummern"
-PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Auftragsnummern angeben."
+PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Auftragsnummern angeben. Variablennamen müssen in eckige Klammern gesetzt werden, z.B. [year]. Für sehr fortgeschrittene Anwendungen (normalerweise nicht nötig!) kann ein eigenes Format für den Zählernamen nach einem senkrechten Strich (|) angegeben werden. Standardmäßig wird das Format auch für den Zahler benutzt."
 PLG_ORDERNUMBER_ORDERNR_COUNTER="Zähler"
 PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1."
 PLG_ORDERNUMBER_ORDERNR_PADDING="Mindestziffern für den Zähler"
@@ -28,7 +28,7 @@ PLG_ORDERNUMBER_INVOICENR="<b>Rechnungsnummern</b>"
 PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE="Rechnungsnummern anpassen"
 PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Rechnungsnummern anpassen möchten und nicht die Standardeinstellung benutzen möchten."
 PLG_ORDERNUMBER_INVOICENR_FMT="Format der Rechnungsnummern"
-PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Hier können Sie Ihr eigenes Format für Rechnungsnummern angeben."
+PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Hier können Sie Ihr eigenes Format für Rechnungsnummern angeben. Variablennamen müssen in eckige Klammern gesetzt werden, z.B. [year]. Für sehr fortgeschrittene Anwendungen (normalerweise nicht nötig!) kann ein eigenes Format für den Zählernamen nach einem senkrechten Strich (|) angegeben werden. Standardmäßig wird das Format auch für den Zahler benutzt."
 PLG_ORDERNUMBER_INVOICENR_COUNTER="Zähler"
 PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1."
 PLG_ORDERNUMBER_INVOICENR_PADDING="Mindestziffern für den Zähler"
@@ -38,7 +38,7 @@ PLG_ORDERNUMBER_CUSTOMERNR="<b>Kundennummern</b>"
 PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE="Kundennummern anpassen"
 PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Kundennummern anpassen möchten und nicht die Standardeinstellung benutzen möchten."
 PLG_ORDERNUMBER_CUSTOMERNR_FMT="Format der Kundennummern"
-PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Kundennummern angeben."
+PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Kundennummern angeben. Variablennamen müssen in eckige Klammern gesetzt werden, z.B. [year]. Für sehr fortgeschrittene Anwendungen (normalerweise nicht nötig!) kann ein eigenes Format für den Zählernamen nach einem senkrechten Strich (|) angegeben werden. Standardmäßig wird das Format auch für den Zahler benutzt."
 PLG_ORDERNUMBER_CUSTOMERNR_COUNTER="Zähler"
 PLG_ORDERNUMBER_CUSTOMERNR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1."
 PLG_ORDERNUMBER_CUSTOMERNR_PADDING="Mindestziffern für den Zähler"
diff --git a/language/en-GB/en-GB.plg_vmshopper_ordernumber.ini b/language/en-GB/en-GB.plg_vmshopper_ordernumber.ini
index eb64f59..1d9313e 100644
--- a/language/en-GB/en-GB.plg_vmshopper_ordernumber.ini
+++ b/language/en-GB/en-GB.plg_vmshopper_ordernumber.ini
@@ -13,7 +13,7 @@ PLG_ORDERNUMBER_ORDERNR="<b>Order numbers</b>"
 PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE="Customize order numbers"
 PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE_DESC="Check here if you want customized order number formats rather than the default."
 PLG_ORDERNUMBER_ORDERNR_FMT="Format for order numbers"
-PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Here you can customize the order number"
+PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Here you can customize the order number. All variables need to be enclosed in square brackets like [year]. For very advanced uses (usually not needed!) it is possible to give a separate counter name format after a pipe symbol (|). By default the format string will also be the counter name."
 PLG_ORDERNUMBER_ORDERNR_COUNTER="Counter"
 PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the order count will be within the year only."
 PLG_ORDERNUMBER_ORDERNR_PADDING="Minimum digits for the counter"
@@ -29,7 +29,7 @@ PLG_ORDERNUMBER_INVOICENR="<b>Invoice numbers</b>"
 PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE="Customize invoice numbers"
 PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE_DESC="Check here if you want customized invoice number formats rather than the default."
 PLG_ORDERNUMBER_INVOICENR_FMT="Format for invoice numbers"
-PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Here you can customize the invoice number"
+PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Here you can customize the invoice number. All variables need to be enclosed in square brackets like [year]. For very advanced uses (usually not needed!) it is possible to give a separate counter name format after a pipe symbol (|). By default the format string will also be the counter name."
 PLG_ORDERNUMBER_INVOICENR_COUNTER="Counter"
 PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the invoice count will be within the year only."
 PLG_ORDERNUMBER_INVOICENR_PADDING="Minimum digits for the counter"
@@ -39,7 +39,7 @@ PLG_ORDERNUMBER_CUSTOMERNR="<b>Customer numbers</b>"
 PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE="Customize customer numbers"
 PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE_DESC="Check here if you want customized customer number formats rather than the default."
 PLG_ORDERNUMBER_CUSTOMERNR_FMT="Format for customer numbers"
-PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Here you can customize the customer number"
+PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Here you can customize the customer number. All variables need to be enclosed in square brackets like [year]. For very advanced uses (usually not needed!) it is possible to give a separate counter name format after a pipe symbol (|). By default the format string will also be the counter name."
 PLG_ORDERNUMBER_CUSTOMERNR_COUNTER="Counter"
 PLG_ORDERNUMBER_CUSTOMERNR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the customer count will be within the year only."
 PLG_ORDERNUMBER_CUSTOMERNR_PADDING="Minimum digits for the counter"
diff --git a/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini b/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini
index eb64f59..1d9313e 100644
--- a/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini
+++ b/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini
@@ -13,7 +13,7 @@ PLG_ORDERNUMBER_ORDERNR="<b>Order numbers</b>"
 PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE="Customize order numbers"
 PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE_DESC="Check here if you want customized order number formats rather than the default."
 PLG_ORDERNUMBER_ORDERNR_FMT="Format for order numbers"
-PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Here you can customize the order number"
+PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Here you can customize the order number. All variables need to be enclosed in square brackets like [year]. For very advanced uses (usually not needed!) it is possible to give a separate counter name format after a pipe symbol (|). By default the format string will also be the counter name."
 PLG_ORDERNUMBER_ORDERNR_COUNTER="Counter"
 PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the order count will be within the year only."
 PLG_ORDERNUMBER_ORDERNR_PADDING="Minimum digits for the counter"
@@ -29,7 +29,7 @@ PLG_ORDERNUMBER_INVOICENR="<b>Invoice numbers</b>"
 PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE="Customize invoice numbers"
 PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE_DESC="Check here if you want customized invoice number formats rather than the default."
 PLG_ORDERNUMBER_INVOICENR_FMT="Format for invoice numbers"
-PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Here you can customize the invoice number"
+PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Here you can customize the invoice number. All variables need to be enclosed in square brackets like [year]. For very advanced uses (usually not needed!) it is possible to give a separate counter name format after a pipe symbol (|). By default the format string will also be the counter name."
 PLG_ORDERNUMBER_INVOICENR_COUNTER="Counter"
 PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the invoice count will be within the year only."
 PLG_ORDERNUMBER_INVOICENR_PADDING="Minimum digits for the counter"
@@ -39,7 +39,7 @@ PLG_ORDERNUMBER_CUSTOMERNR="<b>Customer numbers</b>"
 PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE="Customize customer numbers"
 PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE_DESC="Check here if you want customized customer number formats rather than the default."
 PLG_ORDERNUMBER_CUSTOMERNR_FMT="Format for customer numbers"
-PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Here you can customize the customer number"
+PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Here you can customize the customer number. All variables need to be enclosed in square brackets like [year]. For very advanced uses (usually not needed!) it is possible to give a separate counter name format after a pipe symbol (|). By default the format string will also be the counter name."
 PLG_ORDERNUMBER_CUSTOMERNR_COUNTER="Counter"
 PLG_ORDERNUMBER_CUSTOMERNR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the customer count will be within the year only."
 PLG_ORDERNUMBER_CUSTOMERNR_PADDING="Minimum digits for the counter"
diff --git a/ordernumber.php b/ordernumber.php
index 9bcba40..de1ce52 100644
--- a/ordernumber.php
+++ b/ordernumber.php
@@ -137,27 +137,33 @@ class plgVmShopperOrdernumber extends vmShopperPlugin {
         // First, replace all variables:
         $nr = $this->replace_fields ($fmt, $nrtype, $details);
 
+        // Split at a | to get the number format and a possibly different counter increment format
+        // If a separate counter format is given after the |, use it, otherwise reuse the number format itself as counter format
+        $parts = explode ("|", $nr);
+        $format = $parts[0];
+        $counterfmt = $parts[(count($parts)>1)?1:0];
+
         // Look up the current counter
         $db = JFactory::getDBO();
         /* prevent sql injection attacks by escaping the user-entered format! Empty for global counter... */
         /* For global counting, simply read the empty number_format entries! */
-        $nr_escaped = $global?"":$db->getEscaped ($nr);
-        $q = 'SELECT `count` FROM `'.$this->_tablename.'` WHERE `number_type`='.(int)$nrtype.' AND `number_format`="'.$nr_escaped.'"';
-        $db->setQuery($q);
+        $counterfmt = $global?"":$db->getEscaped ($counterfmt);
+        $q1 = 'SELECT `count` FROM `'.$this->_tablename.'` WHERE `number_type`='.(int)$nrtype.' AND `number_format`="'.$counterfmt.'"';
+        $db->setQuery($q1);
         $existing = $db->loadResult();
         $count = $existing?($existing+1):1;
 
         // Insert new counter value into the db
         if ($existing) {
-            $q = 'UPDATE `'.$this->_tablename.'` SET `count`= "'.$count.'" WHERE `number_type`='.(int)$nrtype.' AND `number_format`="'.$nr_escaped.'"';
+            $q = 'UPDATE `'.$this->_tablename.'` SET `count`= "'.$count.'" WHERE `number_type`='.(int)$nrtype.' AND `number_format`="'.$counterfmt.'"';
         } else {
-            $q = 'INSERT INTO `'.$this->_tablename.'` (`count`, `number_type`, `number_format`) VALUES ('.(int)$count.','.(int)$nrtype.', "'.$nr_escaped.'")';
+            $q = 'INSERT INTO `'.$this->_tablename.'` (`count`, `number_type`, `number_format`) VALUES ('.(int)$count.','.(int)$nrtype.', "'.$counterfmt.'")';
         }
         $db->setQuery( $q );
         $db->query();
 
         // return the format with the counter inserted
-        return str_replace ("#", sprintf('%0' . $padding . 's', $count), $nr);
+        return str_replace ("#", sprintf('%0' . $padding . 's', $count), $format);
     }
 
 
diff --git a/ordernumber.xml b/ordernumber.xml
index a595e27..afcf6c5 100644
--- a/ordernumber.xml
+++ b/ordernumber.xml
@@ -7,8 +7,8 @@
     <authorUrl>http://www.open-tools.net/</authorUrl>
     <copyright>Copyright (C) 2012-2014 Reinhold Kainhofer. All rights reserved.</copyright>
     <license>http://www.gnu.org/licenses/gpl-3.0.html GNU/GPLv3</license>
-    <version>1.11</version>
-    <releaseDate>2014-08-31</releaseDate>
+    <version>1.12</version>
+    <releaseDate>2014-10-04</releaseDate>
     <releaseType>Minor update</releaseType>
     <downloadUrl>http://www.open-tools.net/virtuemart-2-extensions/vm2-ordernumber-plugin.html</downloadUrl>
 
diff --git a/releases/plg_vmshopper_ordernumber_v1.12.zip b/releases/plg_vmshopper_ordernumber_v1.12.zip
new file mode 100644
index 0000000000000000000000000000000000000000..42385db6c39e613617dc1b9d9b53f998272979a4
GIT binary patch
literal 13483
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

literal 0
HcmV?d00001

-- 
GitLab