diff --git a/CHANGELOG.md b/CHANGELOG.md index 233952fe40..4680a4de04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Fix generate associated item massive action - Update locales - +- Fix getDatabaseRelations() declarations to fix warnings on order deletion ## [2.12.6] - 2026-02-23 diff --git a/hook.php b/hook.php index b28c79e1ed..4e2ddfadb5 100644 --- a/hook.php +++ b/hook.php @@ -162,22 +162,33 @@ function plugin_order_getDropdown() } -/* define dropdown relations */ function plugin_order_getDatabaseRelations() { $plugin = new Plugin(); if ($plugin->isActivated("order")) { + // Ensure all plugin classes are declared so that getItemTypeForTable() resolves + // them with the correct case on the first call (before they are in the cache). + foreach (glob(PLUGIN_ORDER_DIR . '/inc/*.php') as $file) { + if (preg_match('/injection.class.php/', $file) === 0) { + include_once($file); + } + } + return [ - "glpi_plugin_order_orders" => [ - "glpi_plugin_order_orderpayments" => "plugin_order_orders_id", - "glpi_plugin_order_ordertaxes" => "plugin_order_orders_id", - "glpi_plugin_order_ordertypes" => "plugin_order_orders_id", - "glpi_plugin_order_orderstates" => "plugin_order_orders_id", - "glpi_plugin_order_orders_items" => "plugin_order_orders_id", - "glpi_plugin_order_orders_suppliers" => "plugin_order_orders_id", + "glpi_plugin_order_orderpayments" => [ + "glpi_plugin_order_orders" => "plugin_order_orderpayments_id", + ], + "glpi_plugin_order_ordertaxes" => [ + "glpi_plugin_order_orders" => "plugin_order_ordertaxes_id", + ], + "glpi_plugin_order_ordertypes" => [ + "glpi_plugin_order_orders" => "plugin_order_ordertypes_id", + ], + "glpi_plugin_order_orderstates" => [ + "glpi_plugin_order_orders" => "plugin_order_orderstates_id", ], "glpi_plugin_order_accountsections" => [ - "glpi_plugin_order_orders" => "plugin_order_accountsections_id", + "glpi_plugin_order_accountsections" => "plugin_order_accountsections_id", ], "glpi_plugin_order_analyticnatures" => [ "glpi_plugin_order_orders_items" => "plugin_order_analyticnatures_id", @@ -185,15 +196,19 @@ function plugin_order_getDatabaseRelations() "glpi_plugin_order_deliverystates" => [ "glpi_plugin_order_orders_items" => "plugin_order_deliverystates_id", ], + "glpi_plugin_order_orders" => [ + "glpi_plugin_order_orders_items" => "plugin_order_orders_id", + "glpi_plugin_order_orders_suppliers" => "plugin_order_orders_id", + ], "glpi_plugin_order_references" => [ - "glpi_plugin_order_orders_items" => "plugin_order_references_id", + "glpi_plugin_order_orders_items" => "plugin_order_references_id", "glpi_plugin_order_references_suppliers" => "plugin_order_references_id", ], "glpi_entities" => [ - "glpi_plugin_order_orders" => "entities_id", + "glpi_plugin_order_orders" => "entities_id", "glpi_plugin_order_references" => "entities_id", - "glpi_plugin_order_others" => "entities_id", - "glpi_plugin_order_bills" => "entities_id", + "glpi_plugin_order_others" => "entities_id", + "glpi_plugin_order_bills" => "entities_id", ], "glpi_budgets" => [ "glpi_plugin_order_orders" => "budgets_id", @@ -202,8 +217,8 @@ function plugin_order_getDatabaseRelations() "glpi_plugin_order_others" => "plugin_order_othertypes_id", ], "glpi_suppliers" => [ - "glpi_plugin_order_orders" => "suppliers_id", - "glpi_plugin_order_orders_suppliers" => "suppliers_id", + "glpi_plugin_order_orders" => "suppliers_id", + "glpi_plugin_order_orders_suppliers" => "suppliers_id", "glpi_plugin_order_references_suppliers" => "suppliers_id", ], "glpi_manufacturers" => [