From 4e32e16fcb8a8f9f90d5c67e085bed5f6d129a78 Mon Sep 17 00:00:00 2001
From: Paul Mehrer
Date: Thu, 6 Feb 2025 16:18:24 +0100
Subject: [PATCH] tweak(TB) numberable bucket_key centralized
---
tests/tine20/ExampleApplication/JsonTest.php | 2 --
tine20/ExampleApplication/Model/ExampleRecord.php | 2 --
tine20/Sales/Controller/Debitor.php | 1 -
tine20/Sales/Controller/Document/Abstract.php | 1 -
tine20/Sales/Model/Customer.php | 1 -
tine20/Sales/Model/Debitor.php | 1 -
tine20/Sales/Model/Document/Abstract.php | 2 --
tine20/Sales/Model/Document/Delivery.php | 1 -
tine20/Sales/Model/Document/Invoice.php | 1 -
tine20/Tinebase/ModelConfiguration.php | 3 ---
tine20/Tinebase/Numberable.php | 5 ++++-
11 files changed, 4 insertions(+), 16 deletions(-)
diff --git a/tests/tine20/ExampleApplication/JsonTest.php b/tests/tine20/ExampleApplication/JsonTest.php
index 290c2d6a621..d2cbccb273e 100644
--- a/tests/tine20/ExampleApplication/JsonTest.php
+++ b/tests/tine20/ExampleApplication/JsonTest.php
@@ -59,8 +59,6 @@ public function testNumberableConfigByContainer()
$container->xprops()[Tinebase_Numberable::CONFIG_XPROPS] = [
Tinebase_Numberable::STEPSIZE => 10,
// TODO create this automatically?
- Tinebase_Numberable::BUCKETKEY => ExampleApplication_Model_ExampleRecord::class .
- '#number_int#' . $container->getId(),
Tinebase_Model_NumberableConfig::FLD_ADDITIONAL_KEY => $container->getId(),
Tinebase_Numberable::START => 100,
];
diff --git a/tine20/ExampleApplication/Model/ExampleRecord.php b/tine20/ExampleApplication/Model/ExampleRecord.php
index fe4faf88583..a0ebfbc1985 100644
--- a/tine20/ExampleApplication/Model/ExampleRecord.php
+++ b/tine20/ExampleApplication/Model/ExampleRecord.php
@@ -129,7 +129,6 @@ class ExampleApplication_Model_ExampleRecord extends Tinebase_Record_NewAbstract
self::QUERY_FILTER => true,
self::CONFIG => [
Tinebase_Numberable::STEPSIZE => 1,
- Tinebase_Numberable::BUCKETKEY => self::class . '#number_str',
Tinebase_Numberable_String::PREFIX => 'ER-',
Tinebase_Numberable_String::ZEROFILL => 0,
// TODO implement that
@@ -150,7 +149,6 @@ class ExampleApplication_Model_ExampleRecord extends Tinebase_Record_NewAbstract
self::QUERY_FILTER => true,
self::CONFIG => [
Tinebase_Numberable::STEPSIZE => 1,
- Tinebase_Numberable::BUCKETKEY => 'ExampleApplication_Model_ExampleRecord#number_int',
Tinebase_Numberable::CONFIG_OVERRIDE => 'Tinebase_Container::getNumberableConfig',
]
],
diff --git a/tine20/Sales/Controller/Debitor.php b/tine20/Sales/Controller/Debitor.php
index 705694c71a7..7b45f1f8134 100644
--- a/tine20/Sales/Controller/Debitor.php
+++ b/tine20/Sales/Controller/Debitor.php
@@ -55,7 +55,6 @@ public function numberConfigOverride(Sales_Model_Debitor $debitor): array
$division = Sales_Controller_Division::getInstance()->get($division);
}
return [
- Tinebase_Numberable::BUCKETKEY => $this->_modelName . '#' . Sales_Model_Debitor::FLD_NUMBER . '#' . $division->getId(),
Tinebase_Model_NumberableConfig::FLD_ADDITIONAL_KEY => 'Division - ' . $division->getId(),
];
}
diff --git a/tine20/Sales/Controller/Document/Abstract.php b/tine20/Sales/Controller/Document/Abstract.php
index af547cbe921..154483c4150 100644
--- a/tine20/Sales/Controller/Document/Abstract.php
+++ b/tine20/Sales/Controller/Document/Abstract.php
@@ -545,7 +545,6 @@ public function documentNumberConfigOverride(Sales_Model_Document_Abstract $docu
{
$division = Sales_Controller_Division::getInstance()->get($document->getDivisionId());
return [
- Tinebase_Numberable::BUCKETKEY => $this->_modelName . '#' . $property . '#' . $division->getId(),
Tinebase_Model_NumberableConfig::FLD_ADDITIONAL_KEY => 'Division - ' . $division->getId(),
];
}
diff --git a/tine20/Sales/Model/Customer.php b/tine20/Sales/Model/Customer.php
index 5173aaf4d71..5126a1d98e3 100644
--- a/tine20/Sales/Model/Customer.php
+++ b/tine20/Sales/Model/Customer.php
@@ -167,7 +167,6 @@ class Sales_Model_Customer extends Tinebase_Record_NewAbstract
'queryFilter' => true,
self::TYPE => self::TYPE_NUMBERABLE_STRING,
self::CONFIG => [
- Tinebase_Numberable_Abstract::BUCKETKEY => self::CLASS . '#number',
Tinebase_Numberable_String::ZEROFILL => 6,
],
),
diff --git a/tine20/Sales/Model/Debitor.php b/tine20/Sales/Model/Debitor.php
index 60cb7de9aa2..9f90bf3c2e9 100644
--- a/tine20/Sales/Model/Debitor.php
+++ b/tine20/Sales/Model/Debitor.php
@@ -96,7 +96,6 @@ class Sales_Model_Debitor extends Tinebase_Record_NewAbstract
self::QUERY_FILTER => true,
self::CONFIG => [
Tinebase_Numberable::STEPSIZE => 1,
- Tinebase_Numberable::BUCKETKEY => self::class . '#' . self::FLD_NUMBER,
Tinebase_Numberable_String::PREFIX => 'DEB-',
Tinebase_Numberable_String::ZEROFILL => 0,
Tinebase_Model_NumberableConfig::NO_AUTOCREATE => true,
diff --git a/tine20/Sales/Model/Document/Abstract.php b/tine20/Sales/Model/Document/Abstract.php
index 37ce89d1ce0..97badca8763 100644
--- a/tine20/Sales/Model/Document/Abstract.php
+++ b/tine20/Sales/Model/Document/Abstract.php
@@ -552,8 +552,6 @@ public static function inheritModelConfigHook(array &$_definition)
$_definition[self::FIELDS][self::FLD_DOCUMENT_CATEGORY][self::VALIDATORS][Zend_Filter_Input::DEFAULT_VALUE] =
Sales_Config::getInstance()->{Sales_Config::DOCUMENT_CATEGORY_DEFAULT};
- $_definition[self::FIELDS][self::FLD_DOCUMENT_NUMBER][self::CONFIG][Tinebase_Numberable::BUCKETKEY] =
- 'Sales_Model_' . static::MODEL_NAME_PART . '#'. self::FLD_DOCUMENT_NUMBER;
$_definition[self::FIELDS][self::FLD_DOCUMENT_NUMBER][self::CONFIG][Tinebase_Numberable_String::PREFIX] =
Tinebase_Translation::getDefaultTranslation(Sales_Config::APP_NAME)->_(static::$_documentNumberPrefix);
$_definition[self::FIELDS][self::FLD_DOCUMENT_NUMBER][self::CONFIG][Tinebase_Numberable::CONFIG_OVERRIDE] =
diff --git a/tine20/Sales/Model/Document/Delivery.php b/tine20/Sales/Model/Document/Delivery.php
index 8dc46ae599b..79812bd1cf4 100644
--- a/tine20/Sales/Model/Document/Delivery.php
+++ b/tine20/Sales/Model/Document/Delivery.php
@@ -83,7 +83,6 @@ public static function inheritModelConfigHook(array &$_definition)
self::SHY => true,
self::CONFIG => [
Tinebase_Numberable::STEPSIZE => 1,
- Tinebase_Numberable::BUCKETKEY => self::class . '#' . self::FLD_DOCUMENT_PROFORMA_NUMBER,
Tinebase_Numberable_String::PREFIX => 'PD-', // _('PD-')
Tinebase_Numberable_String::ZEROFILL => 7,
Tinebase_Model_NumberableConfig::NO_AUTOCREATE => true,
diff --git a/tine20/Sales/Model/Document/Invoice.php b/tine20/Sales/Model/Document/Invoice.php
index 445aea0d0e8..17a89b60619 100644
--- a/tine20/Sales/Model/Document/Invoice.php
+++ b/tine20/Sales/Model/Document/Invoice.php
@@ -93,7 +93,6 @@ public static function inheritModelConfigHook(array &$_definition)
self::SHY => true,
self::CONFIG => [
Tinebase_Numberable::STEPSIZE => 1,
- Tinebase_Numberable::BUCKETKEY => self::class . '#' . self::FLD_DOCUMENT_PROFORMA_NUMBER,
Tinebase_Numberable_String::PREFIX => 'PI-', // _('PI-')
Tinebase_Numberable_String::ZEROFILL => 7,
Tinebase_Model_NumberableConfig::NO_AUTOCREATE => true,
diff --git a/tine20/Tinebase/ModelConfiguration.php b/tine20/Tinebase/ModelConfiguration.php
index 22f52f2d5f3..038d293f2a9 100644
--- a/tine20/Tinebase/ModelConfiguration.php
+++ b/tine20/Tinebase/ModelConfiguration.php
@@ -1447,9 +1447,6 @@ class_exists($this->_appName . '_Model_' . $this->_modelName . 'Grants')) {
case self::TYPE_NUMBERABLE_STRING:
case self::TYPE_NUMBERABLE_INT:
- if (!isset($fieldDef[self::CONFIG][Tinebase_Numberable_Abstract::BUCKETKEY])) {
- $fieldDef[self::CONFIG][Tinebase_Numberable_Abstract::BUCKETKEY] = $this->_appName . '_Model_' . $this->_modelName . '#' . $fieldDef['fieldName'];
- }
if ($numberableCfgs = Tinebase_Controller_NumberableConfig::getInstance()->search(
Tinebase_Model_Filter_FilterGroup::getFilterForModel(Tinebase_Model_NumberableConfig::class, [
[TMFA::FIELD => Tinebase_Model_NumberableConfig::FLD_MODEL, TMFA::OPERATOR => TMFA::OP_EQUALS, TMFA::VALUE => $this->_appName . '_Model_' . $this->_modelName],
diff --git a/tine20/Tinebase/Numberable.php b/tine20/Tinebase/Numberable.php
index fe595f2817c..481de486e5e 100644
--- a/tine20/Tinebase/Numberable.php
+++ b/tine20/Tinebase/Numberable.php
@@ -64,7 +64,9 @@ public static function getCreateUpdateNumberableConfig(string $model, string $pr
$numberableCfg = Tinebase_Controller_NumberableConfig::getInstance()->create(new Tinebase_Model_NumberableConfig([
Tinebase_Model_NumberableConfig::FLD_MODEL => $model,
Tinebase_Model_NumberableConfig::FLD_PROPERTY => $property,
- Tinebase_Model_NumberableConfig::FLD_BUCKET_KEY => $config[TMCC::CONFIG][Tinebase_Numberable_Abstract::BUCKETKEY] ?? '',
+ Tinebase_Model_NumberableConfig::FLD_BUCKET_KEY => $model . '#' . $property
+ . (($config[TMCC::CONFIG][Tinebase_Model_NumberableConfig::FLD_ADDITIONAL_KEY] ?? false) ? '#' . $config[TMCC::CONFIG][Tinebase_Model_NumberableConfig::FLD_ADDITIONAL_KEY] : '')
+ . '#' . ($config[TMCC::CONFIG][Tinebase_Numberable_String::PREFIX] ?? ''),
Tinebase_Model_NumberableConfig::FLD_ADDITIONAL_KEY => $config[TMCC::CONFIG][Tinebase_Model_NumberableConfig::FLD_ADDITIONAL_KEY] ?? '',
Tinebase_Model_NumberableConfig::FLD_PREFIX => $config[TMCC::CONFIG][Tinebase_Numberable_String::PREFIX] ?? '',
Tinebase_Model_NumberableConfig::FLD_ZEROFILL => $config[TMCC::CONFIG][Tinebase_Numberable_String::ZEROFILL] ?? 0,
@@ -99,6 +101,7 @@ public static function getNumberable(Tinebase_Record_Interface $_record, string
$_config[TMCC::CONFIG][Tinebase_Numberable_String::ZEROFILL] = (int)$numberableCfg->{Tinebase_Model_NumberableConfig::FLD_ZEROFILL};
$_config[TMCC::CONFIG][Tinebase_Numberable_Abstract::START] = (int)$numberableCfg->{Tinebase_Model_NumberableConfig::FLD_START};
$_config[TMCC::CONFIG][Tinebase_Numberable_String::PREFIX] = $numberableCfg->{Tinebase_Model_NumberableConfig::FLD_PREFIX};
+ $_config[TMCC::CONFIG][Tinebase_Numberable_Abstract::BUCKETKEY] = $numberableCfg->{Tinebase_Model_NumberableConfig::FLD_BUCKET_KEY};
}
if ($_config['type'] === TMCC::TYPE_NUMBERABLE_STRING) {