diff --git a/CHANGELOG.md b/CHANGELOG.md index 222efd7d2a..1fc2c01c7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Prevent invalid references and non-existent classes during generate item flow. - Remove unnecessary message during plugin installation - Update locales +- Fix getDatabaseRelations() declarations to fix warnings on order deletion - Fix `glpi_plugin_order_referencefrees` table not removed on uninstall diff --git a/hook.php b/hook.php index 7f17b9b958..896b671df4 100644 --- a/hook.php +++ b/hook.php @@ -151,22 +151,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", @@ -174,15 +185,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", @@ -191,8 +206,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" => [