diff --git a/Makefile b/Makefile index f7950a125f2fddde99fd8510dfd38e2a2bd80fec..bf3e333d3ed51f99600463f16a5bd4cb356d5d22 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ BASE=ordernumber PLUGINTYPE=vmshopper -VERSION=1.4 +VERSION=1.5 PLUGINFILES=$(BASE).php $(BASE).xml index.html # TRANSDIR=../../../administrator/language/ diff --git a/de-DE.plg_vmshopper_ordernumber.sys.ini b/de-DE.plg_vmshopper_ordernumber.sys.ini index e457b8bf38ffeae04484531c7c0d103e45097f8a..91a4e55bc8c6e2937c4ec12587fc20935849f956 100644 --- a/de-DE.plg_vmshopper_ordernumber.sys.ini +++ b/de-DE.plg_vmshopper_ordernumber.sys.ini @@ -51,6 +51,8 @@ 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_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" +PLG_ORDERNUMBER_ORDERNR_PADDING_DESC = "Wählen Sie hier die Mindestzahl von Ziffern, die der Zähler anzeigt. Ist der Wert des Zählers kleiner, werden entsprechend viele führende Nullen vorangestellt." PLG_ORDERNUMBER_PASSWD = "<b>Auftragspasswort</b>" PLG_ORDERNUMBER_PASSWD_CUSTOMIZE = "Auftragspasswort anpassen" @@ -65,3 +67,5 @@ 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_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" +PLG_ORDERNUMBER_INVOICENR_PADDING_DESC = "Wählen Sie hier die Mindestzahl von Ziffern, die der Zähler anzeigt. Ist der Wert des Zählers kleiner, werden entsprechend viele führende Nullen vorangestellt." diff --git a/en-GB.plg_vmshopper_ordernumber.sys.ini b/en-GB.plg_vmshopper_ordernumber.sys.ini index 0cb65d747c15ff3416e622490197850e2ffa8f2f..3c291026f937649dd646ce7ac715e9ce9abcdbc4 100644 --- a/en-GB.plg_vmshopper_ordernumber.sys.ini +++ b/en-GB.plg_vmshopper_ordernumber.sys.ini @@ -51,6 +51,8 @@ PLG_ORDERNUMBER_ORDERNR_FMT="Format of the order numbers" PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Here you can customize the order number" 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" +PLG_ORDERNUMBER_ORDERNR_PADDING_DESC = "Select the minimum number of digits that the counter shall display. The value of the counter will be left-padded with 0 to have this minimum number of digits. If the counter is already larger than this number, no padding will occur" PLG_ORDERNUMBER_PASSWD = "<b>Order password</b>" PLG_ORDERNUMBER_PASSWD_CUSTOMIZE = "Customize order password" @@ -65,3 +67,5 @@ PLG_ORDERNUMBER_INVOICENR_FMT = "Format of the invoice numbers" PLG_ORDERNUMBER_INVOICENR_FMT_DESC = "Here you can customize the invoice number" 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" +PLG_ORDERNUMBER_INVOICENR_PADDING_DESC = "Select the minimum number of digits that the counter shall display. The value of the counter will be left-padded with 0 to have this minimum number of digits. If the counter is already larger than this number, no padding will occur" diff --git a/images/plg_vmshopper_ordernumber_Order.png b/images/plg_vmshopper_ordernumber_Order.png new file mode 100644 index 0000000000000000000000000000000000000000..0feabd8d2b8b130b7249ecd164c489d647afc180 Binary files /dev/null and b/images/plg_vmshopper_ordernumber_Order.png differ diff --git a/images/plg_vmshopper_ordernumber_Parameters.png b/images/plg_vmshopper_ordernumber_Parameters.png new file mode 100644 index 0000000000000000000000000000000000000000..5b7eef3dcb66dc3b8fb663f5deb1a6e0e7bb0661 Binary files /dev/null and b/images/plg_vmshopper_ordernumber_Parameters.png differ diff --git a/images/plg_vmshopper_ordernumber_Plugindescription.png b/images/plg_vmshopper_ordernumber_Plugindescription.png new file mode 100644 index 0000000000000000000000000000000000000000..da94a8b642a58c5f975fe390c8bea62130e1d132 Binary files /dev/null and b/images/plg_vmshopper_ordernumber_Plugindescription.png differ diff --git a/ordernumber.php b/ordernumber.php index 5afad90326cc908e8a87690d616dffc77a40512e..7a36fb6f27065edec623fcdeccd02f08bf736135 100644 --- a/ordernumber.php +++ b/ordernumber.php @@ -128,7 +128,7 @@ class plgVmShopperOrdernumber extends vmShopperPlugin { } /* Type 0 means order number, type 1 means invoice number */ - function format_number ($fmt, $orderDetails, $nrtype = 0, $global = 1) { + function format_number ($fmt, $orderDetails, $nrtype = 0, $global = 1, $padding = 1) { // First, replace all variables: $nr = $this->replace_fields ($fmt, $orderDetails); @@ -152,7 +152,8 @@ class plgVmShopperOrdernumber extends vmShopperPlugin { $db->query(); // return the format with the counter inserted - return str_replace ("#", $count, $nr); + + return str_replace ("#", sprintf('%0' . $padding . 's', $count), $nr); } @@ -162,7 +163,8 @@ class plgVmShopperOrdernumber extends vmShopperPlugin { $nrtype=0; /*order-nr*/ $fmt = $this->params->get ('order_number_format', "#"); $global = $this->params->get ('order_number_global', 1); - $ordernr = $this->format_number ($fmt, $orderDetails, $nrtype, $global); + $padding = $this->params->get ('order_number_padding', 1); + $ordernr = $this->format_number ($fmt, $orderDetails, $nrtype, $global, $padding); $orderDetails->order_number = $ordernr; } // Is order password customization enabled? @@ -185,7 +187,8 @@ class plgVmShopperOrdernumber extends vmShopperPlugin { $nrtype=1; /*invoice-nr*/ $fmt = $this->params->get ('invoice_number_format', "#"); $global = $this->params->get ('invoice_number_global', 1); - $invoicenr = $this->format_number ($fmt, (object)$orderDetails, $nrtype, $global); + $padding = $this->params->get ('invoice_number_padding', 1); + $invoicenr = $this->format_number ($fmt, (object)$orderDetails, $nrtype, $global, $padding); $data['invoice_number'] = $invoicenr; } } diff --git a/ordernumber.xml b/ordernumber.xml index 0e1e967d4227dd5d9e74b4acaa1b74919e7664a2..519ec37ccde5feb3cce59ae2269ded000b18e9cf 100644 --- a/ordernumber.xml +++ b/ordernumber.xml @@ -7,8 +7,8 @@ <authorUrl>http://www.kainhofer.com/</authorUrl> <copyright>Copyright (C) 2012 Reinhold Kainhofer. All rights reserved.</copyright> <license>http://www.gnu.org/licenses/gpl-3.0.html GNU/GPLv3</license> - <version>1.4.0</version> - <releaseDate>2012-11-13</releaseDate> + <version>1.5.0</version> + <releaseDate>2012-12-16</releaseDate> <releaseType>Minor update</releaseType> <downloadUrl>http://www.kainhofer.com/virtuemart-2-extensions/</downloadUrl> @@ -30,11 +30,13 @@ <option value="0">PLG_ORDERNUMBER_NO</option> </field> <field name="order_number_format" type="text" default="Order-[year][month]-#" label="PLG_ORDERNUMBER_ORDERNR_FMT" description="PLG_ORDERNUMBER_ORDERNR_FMT_DESC"/> + <field name="order_number_padding" type="integer" default="1" label="PLG_ORDERNUMBER_ORDERNR_PADDING" description="PLG_ORDERNUMBER_ORDERNR_PADDING_DESC" first="1" last="10" step="1" /> <field name="order_number_global" type="radio" default="0" label="PLG_ORDERNUMBER_ORDERNR_COUNTER" description="PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC"> <option value="1">PLG_ORDERNUMBER_COUNTER_GLOBAL</option> <option value="0">PLG_ORDERNUMBER_COUNTER_PERFORMAT</option> </field> + <field name="password_options" type="spacer" label="PLG_ORDERNUMBER_PASSWD" /> <field name="customize_order_password" type="radio" default="0" label="PLG_ORDERNUMBER_PASSWD_CUSTOMIZE" description="PLG_ORDERNUMBER_PASSWD_CUSTOMIZE_DESC"> <option value="1">Yes</option> @@ -47,7 +49,8 @@ <option value="1">PLG_ORDERNUMBER_YES</option> <option value="0">PLG_ORDERNUMBER_NO</option> </field> - <field name="invoice_number_format" type="text" default="[year]-#" label="PLG_ORDERNUMBER_INVOICENR_FMT" description="PLG_ORDERNUMBER_INVOICENR_FMT_DESC"/> + <field name="invoice_number_format" type="text" default="[year]-#" label="PLG_ORDERNUMBER_INVOICENR_FMT" description="PLG_ORDERNUMBER_INVOICENR_FMT_DESC"/> + <field name="invoice_number_padding" type="integer" default="1" label="PLG_ORDERNUMBER_INVOICENR_PADDING" description="PLG_ORDERNUMBER_INVOICENR_PADDING_DESC" first="1" last="10" step="1" /> <field name="invoice_number_global" type="radio" default="0" label="PLG_ORDERNUMBER_INVOICENR_COUNTER" description="PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC"> <option value="1">PLG_ORDERNUMBER_COUNTER_GLOBAL</option> <option value="0">PLG_ORDERNUMBER_COUNTER_PERFORMAT</option> diff --git a/releases/plg_vmshopper_ordernumber_v1.5.zip b/releases/plg_vmshopper_ordernumber_v1.5.zip new file mode 100644 index 0000000000000000000000000000000000000000..d8d5abfa7e77ab750081a31b66c53399b242f0d5 Binary files /dev/null and b/releases/plg_vmshopper_ordernumber_v1.5.zip differ