diff --git a/v6.1.12-modrefchange/modrefchange/.info b/v6.1.12-modrefchange/modrefchange/.info index 7112731..0df0a8f 100644 --- a/v6.1.12-modrefchange/modrefchange/.info +++ b/v6.1.12-modrefchange/modrefchange/.info @@ -1 +1 @@ -K8ekbIMbIwtx8vVd3hIGsdHkD2iGIAmyzFp9j/Sj1KU1ZDwo8bInXlWu+2cnsfdGPD4NyEzsYI6EIUeYC29+x572begpse5B0d97ptnJCd2GyZ24YF4ne7GBM8a+Bask+kWf42w8qapfITdeshcDQt3mmpTf2I6F0mFpaFQknz+N8elp++IbhZChjs0XPX0HzbizjVR8MOBcLo/TkgKw4b4f8DjqwmNG+JaIf3Y+/gjTjJnPAzH43P0QO0NLiXG/OEOH2Mn1qThE0lKL5w0wUQ== \ No newline at end of file +hp8Rz5f1aqlQcR8AbPVjOjkQI3S9AqASU5CGcWdAc4bOanpJtTuCw1MQWoSn22wRrMkEHEnclQhWfgE6FpMva/d/T2Ovn2HEesI3dZ0x2APOJddCxqcHWZykofDjNy2WmHGZ/+GnCU9NQFIvXAoub4acI0GYU9sHJqPlCnblkk9Sq4QTeOITRsyRwQOLhCc+HtoNtT899Nt9xgoPYD/cPXzA/DU15quSquEqHjotfDod7asH52zlDQPn/n5oyLF9hyGg91AXSoECeSRLrowkpQ== \ No newline at end of file diff --git a/v6.1.12-modrefchange/modrefchange/classes/DocumentReferences.php b/v6.1.12-modrefchange/modrefchange/classes/DocumentReferences.php index c5522e3..5e3944e 100644 --- a/v6.1.12-modrefchange/modrefchange/classes/DocumentReferences.php +++ b/v6.1.12-modrefchange/modrefchange/classes/DocumentReferences.php @@ -256,9 +256,31 @@ class DocumentReferences extends ObjectModel WHERE `id_order` = '.(int)$orderId); } + public static function getDefaultCounterData() + { + return array( + 'counter_start_at' => '', + 'counter_increment_by' => '', + 'counter_actual_value' => '', + 'counter_reset_interval' => '5', + 'counter_reset_number' => '', + 'counter_reset_date' => '', + 'counter_reset_now' => '0', + 'counter_reference_length_in_use' => '0', + 'counter_reference_length' => '4', + 'counter_last_set_date' => date("Y-m-d") + ); + } + public static function checkForCounterReset($type) { $counterData = json_decode(Configuration::getGlobalValue('counterNumberData'), true); + if (!is_array($counterData)) { + $counterData = array(); + } + if (!isset($counterData[$type]) || !is_array($counterData[$type])) { + $counterData[$type] = self::getDefaultCounterData(); + } $currentCounterData = $counterData[$type]; $today = date("Y-m-d"); if ((int)$currentCounterData['counter_reset_interval'] == 0) //reset tyzdna diff --git a/v6.1.12-modrefchange/modrefchange/modrefchange.php b/v6.1.12-modrefchange/modrefchange/modrefchange.php index 03cbe2d..3a2fc7a 100644 --- a/v6.1.12-modrefchange/modrefchange/modrefchange.php +++ b/v6.1.12-modrefchange/modrefchange/modrefchange.php @@ -192,7 +192,26 @@ class ModRefChange extends Module $helper->table = $this->name; $helper->token = Tools::getAdminTokenLite('AdminModules'); $helper->currentIndex = AdminController::$currentIndex.'&configure='.$this->name; - return $helper->generateList(json_decode(Configuration::get($this->name), true), $this->fields_list); + return $helper->generateList($this->getReferenceNumbersData(), $this->fields_list); + } + + private function getReferenceNumbersData() + { + $referenceNumbersData = json_decode(Configuration::get($this->name), true); + if (!is_array($referenceNumbersData)) { + $referenceNumbersData = array(); + } + $needsUpdate = false; + foreach ($this->initReferenceNumbersData() as $key => $defaultValue) { + if (!isset($referenceNumbersData[$key]) || !is_array($referenceNumbersData[$key])) { + $referenceNumbersData[$key] = $defaultValue; + $needsUpdate = true; + } + } + if ($needsUpdate) { + Configuration::updateValue($this->name, json_encode($referenceNumbersData)); + } + return $referenceNumbersData; } public function displayForm() @@ -486,7 +505,7 @@ class ModRefChange extends Module ) ); $id_reference_number = (int)Tools::getValue('id_reference_number'); - $referenceNumbersData = json_decode(Configuration::get($this->name), true); + $referenceNumbersData = $this->getReferenceNumbersData(); $getAllCounterData = json_decode(Configuration::getGlobalValue('counterNumberData'), true); $helper = new HelperForm(); $helper->module = $this; @@ -691,7 +710,7 @@ class ModRefChange extends Module $customReferenceNumbersArray = array(); $counterNumbersArray = array(); $id_reference_number = (int)Tools::getValue('id_reference_number'); - $getAllReferenceNumberData = json_decode(Configuration::get($this->name), true); + $getAllReferenceNumberData = $this->getReferenceNumbersData(); $getAllCounterData = json_decode(Configuration::getGlobalValue('counterNumberData'), true); $currentCustomOrderReferenceArray = $getAllReferenceNumberData[$id_reference_number - 1]; $currentCounterData = $getAllCounterData[$id_reference_number - 1]; @@ -740,7 +759,7 @@ class ModRefChange extends Module private function setReferenceNumberStatus() { $id_reference_number = (int)Tools::getValue('id_reference_number'); - $getAllReferenceNumberData = json_decode(Configuration::get($this->name), true); + $getAllReferenceNumberData = $this->getReferenceNumbersData(); if ($getAllReferenceNumberData[$id_reference_number - 1]['activate_reference_number']) $getAllReferenceNumberData[$id_reference_number - 1]['activate_reference_number'] = false; else diff --git a/v6.1.12-modrefchange/modrefchange/override/classes/order/Order.php b/v6.1.12-modrefchange/modrefchange/override/classes/order/Order.php index 4e42768..495713f 100644 --- a/v6.1.12-modrefchange/modrefchange/override/classes/order/Order.php +++ b/v6.1.12-modrefchange/modrefchange/override/classes/order/Order.php @@ -9,22 +9,30 @@ if (!defined('_PS_VERSION_')) exit; -} require_once(_PS_MODULE_DIR_.'modrefchange/classes/DocumentReferences.php'); class Order extends OrderCore { + private static function loadDocumentReferences() + { + if (!class_exists('DocumentReferences')) { + require_once(_PS_MODULE_DIR_.'modrefchange/classes/DocumentReferences.php'); + } + } + public function setInvoice($use_existing_payment = false) { if (!$this->hasInvoice()) { parent::setInvoice($use_existing_payment); + self::loadDocumentReferences(); DocumentReferences::storeReference('invoice', $this->id); } } - + public function setDelivery() { + self::loadDocumentReferences(); $order_invoice_collection = $this->getInvoicesCollection(); foreach ($order_invoice_collection as $order_invoice) { if ($order_invoice->delivery_number) { @@ -34,9 +42,10 @@ class Order extends OrderCore } parent::setDelivery(); } - + public static function generateReference() { + self::loadDocumentReferences(); return DocumentReferences::storeReference('order'); } @@ -46,7 +55,7 @@ class Order extends OrderCore if (Context::getContext()->controller->controller_name == 'Admin') { return false; } - parent::hasBeenDelivered(); + return parent::hasBeenDelivered(); } else { if (Tools::getIsset('action')) if (Tools::getValue('action') == 'editProductOnOrder' || Tools::getValue('action') == 'deleteProductLine') diff --git a/v6.1.12-modrefchange/modrefchange/override/classes/order/OrderInvoice.php b/v6.1.12-modrefchange/modrefchange/override/classes/order/OrderInvoice.php index 95811a6..f5ec73a 100644 --- a/v6.1.12-modrefchange/modrefchange/override/classes/order/OrderInvoice.php +++ b/v6.1.12-modrefchange/modrefchange/override/classes/order/OrderInvoice.php @@ -9,15 +9,23 @@ if (!defined('_PS_VERSION_')) exit; -} require_once(_PS_MODULE_DIR_.'modrefchange/classes/DocumentReferences.php'); class OrderInvoice extends OrderInvoiceCore { + private static function loadDocumentReferences() + { + if (!class_exists('DocumentReferences')) { + require_once(_PS_MODULE_DIR_.'modrefchange/classes/DocumentReferences.php'); + } + } + public function getInvoiceNumberFormatted($id_lang, $id_shop = null, $oldFormat = false) { - $invoiceNumber = DocumentReferences::getReference($this->id, 'invoice')['reference']; + self::loadDocumentReferences(); + $reference = DocumentReferences::getReference($this->id, 'invoice'); + $invoiceNumber = $reference ? $reference['reference'] : null; if ($oldFormat || $invoiceNumber == NULL) { return parent::getInvoiceNumberFormatted($id_lang, $id_shop); } diff --git a/v6.1.12-modrefchange/modrefchange/override/classes/pdf/PDF.php b/v6.1.12-modrefchange/modrefchange/override/classes/pdf/PDF.php index a64c12c..fae54eb 100644 --- a/v6.1.12-modrefchange/modrefchange/override/classes/pdf/PDF.php +++ b/v6.1.12-modrefchange/modrefchange/override/classes/pdf/PDF.php @@ -9,14 +9,21 @@ if (!defined('_PS_VERSION_')) exit; -} require_once(_PS_MODULE_DIR_.'modrefchange/classes/DocumentReferences.php'); class PDF extends PDFCore { + private static function loadDocumentReferences() + { + if (!class_exists('DocumentReferences')) { + require_once(_PS_MODULE_DIR_.'modrefchange/classes/DocumentReferences.php'); + } + } + public function render($display = true) { + self::loadDocumentReferences(); $render = false; $this->pdf_renderer->setFontForLang(Context::getContext()->language->iso_code); foreach ($this->objects as $object) {