From 588b32ebbab1bb554e936669617aeb2272163dca Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 12 Jan 2024 00:30:21 +0000 Subject: [PATCH] continue implementations --- Controller/CliController.php | 72 +++++++++++++++++++ .../DefaultOrderSuggestion.php | 10 +-- .../{ => OrderSuggestion}/OrderSuggestion.php | 6 +- .../OrderSuggestionAveragingMethod.php | 6 +- .../OrderSuggestionComparisonDurationType.php | 14 ++-- .../OrderSuggestionInterface.php | 6 +- .../OrderSuggestionOptimizationType.php | 6 +- .../OrderSuggestion}/OrderSuggestionType.php | 8 +-- 8 files changed, 102 insertions(+), 26 deletions(-) create mode 100644 Controller/CliController.php rename {OrderSuggestion => Models/OrderSuggestion}/DefaultOrderSuggestion.php (91%) mode change 100755 => 100644 rename Models/{ => OrderSuggestion}/OrderSuggestion.php (67%) mode change 100755 => 100644 rename {OrderSuggestion => Models/OrderSuggestion}/OrderSuggestionAveragingMethod.php (75%) mode change 100755 => 100644 rename {OrderSuggestion => Models/OrderSuggestion}/OrderSuggestionComparisonDurationType.php (54%) mode change 100755 => 100644 rename Models/{ => OrderSuggestion}/OrderSuggestionInterface.php (68%) mode change 100755 => 100644 rename {OrderSuggestion => Models/OrderSuggestion}/OrderSuggestionOptimizationType.php (82%) mode change 100755 => 100644 rename {OrderSuggestion => Models/OrderSuggestion}/OrderSuggestionType.php (73%) mode change 100755 => 100644 diff --git a/Controller/CliController.php b/Controller/CliController.php new file mode 100644 index 0000000..d0fa261 --- /dev/null +++ b/Controller/CliController.php @@ -0,0 +1,72 @@ +with('attributes') + ->with('attributes/type') + ->where('stockIdentifier', StockIdentifierType::NONE, '!=') + ->where('attributes/type/name', [ + 'primary_supplier', 'lead_time', 'qc_time', + 'maximum_stock_quantity', 'minimum_stock_quantity', + 'maximum_order_interval', 'minimum_order_quantity', + 'order_suggestion_type', 'order_suggestion_optimization_type', + 'order_suggestion_history_duration', 'order_suggestion_averaging_method', + 'order_suggestion_comparison_duration_type' + ], 'IN') + ->execute(); + + foreach ($items as $item) { + + } + } + +} diff --git a/OrderSuggestion/DefaultOrderSuggestion.php b/Models/OrderSuggestion/DefaultOrderSuggestion.php old mode 100755 new mode 100644 similarity index 91% rename from OrderSuggestion/DefaultOrderSuggestion.php rename to Models/OrderSuggestion/DefaultOrderSuggestion.php index df9f0ba..26069e7 --- a/OrderSuggestion/DefaultOrderSuggestion.php +++ b/Models/OrderSuggestion/DefaultOrderSuggestion.php @@ -12,14 +12,14 @@ */ declare(strict_types=1); -namespace Modules\Purchase\OrderSuggestion; +namespace Modules\Purchase\Models\OrderSuggestion; -use Modules\Purchase\Models\OrderSuggestionInterface; +use Modules\Purchase\Models\OrderSuggestion\OrderSuggestionInterface; /** * OMS order suggestion class * - * @package Modules\Purchase\OrderSuggestion + * @package Modules\Purchase\Models\OrderSuggestion * @license OMS License 2.0 * @link https://jingga.app * @since 1.0.0 @@ -40,7 +40,7 @@ final class DefaultOrderSuggestion implements OrderSuggestionInterface * @var int * @since 1.0.0 */ - public int $historicComparisonDurationType = OrderSuggestionComparisonDurationType::ANNUALY; + public int $historicComparisonDurationType = OrderSuggestionComparisonDurationType::ANNUALLY; /** * How many years should used for the analysis. @@ -69,7 +69,7 @@ final class DefaultOrderSuggestion implements OrderSuggestionInterface /** * How greedy should the algorithm be? * - * The number represents how many items in % can be bought in additon to the optimal stock quantity. + * The number represents how many items in % can be bought in addition to the optimal stock quantity. * * Higher means more room for adjustments. * diff --git a/Models/OrderSuggestion.php b/Models/OrderSuggestion/OrderSuggestion.php old mode 100755 new mode 100644 similarity index 67% rename from Models/OrderSuggestion.php rename to Models/OrderSuggestion/OrderSuggestion.php index f5909a0..d77e723 --- a/Models/OrderSuggestion.php +++ b/Models/OrderSuggestion/OrderSuggestion.php @@ -4,7 +4,7 @@ * * PHP Version 8.1 * - * @package Modules\Purchase\Models + * @package Modules\Purchase\Models\OrderSuggestion * @copyright Dennis Eichhorn * @license OMS License 2.0 * @version 1.0.0 @@ -12,12 +12,12 @@ */ declare(strict_types=1); -namespace Modules\Purchase\Models; +namespace Modules\Purchase\Models\OrderSuggestion; /** * OrderSuggestion class. * - * @package Modules\Purchase\Models + * @package Modules\Purchase\Models\OrderSuggestion * @license OMS License 2.0 * @link https://jingga.app * @since 1.0.0 diff --git a/OrderSuggestion/OrderSuggestionAveragingMethod.php b/Models/OrderSuggestion/OrderSuggestionAveragingMethod.php old mode 100755 new mode 100644 similarity index 75% rename from OrderSuggestion/OrderSuggestionAveragingMethod.php rename to Models/OrderSuggestion/OrderSuggestionAveragingMethod.php index e89bdad..954df88 --- a/OrderSuggestion/OrderSuggestionAveragingMethod.php +++ b/Models/OrderSuggestion/OrderSuggestionAveragingMethod.php @@ -4,7 +4,7 @@ * * PHP Version 8.1 * - * @package Modules\Purchase\OrderSuggestion + * @package Modules\Purchase\Models\OrderSuggestion * @copyright Dennis Eichhorn * @license OMS License 2.0 * @version 1.0.0 @@ -12,14 +12,14 @@ */ declare(strict_types=1); -namespace Modules\Purchase\OrderSuggestion; +namespace Modules\Purchase\Models\OrderSuggestion; use phpOMS\Stdlib\Base\Enum; /** * Suggestion type enum. * - * @package Modules\Purchase\OrderSuggestion + * @package Modules\Purchase\Models\OrderSuggestion * @license OMS License 2.0 * @link https://jingga.app * @since 1.0.0 diff --git a/OrderSuggestion/OrderSuggestionComparisonDurationType.php b/Models/OrderSuggestion/OrderSuggestionComparisonDurationType.php old mode 100755 new mode 100644 similarity index 54% rename from OrderSuggestion/OrderSuggestionComparisonDurationType.php rename to Models/OrderSuggestion/OrderSuggestionComparisonDurationType.php index 9dd3166..c38e6e1 --- a/OrderSuggestion/OrderSuggestionComparisonDurationType.php +++ b/Models/OrderSuggestion/OrderSuggestionComparisonDurationType.php @@ -4,7 +4,7 @@ * * PHP Version 8.1 * - * @package Modules\Purchase\OrderSuggestion + * @package Modules\Purchase\Models\OrderSuggestion * @copyright Dennis Eichhorn * @license OMS License 2.0 * @version 1.0.0 @@ -12,23 +12,27 @@ */ declare(strict_types=1); -namespace Modules\Purchase\OrderSuggestion; +namespace Modules\Purchase\Models\OrderSuggestion; use phpOMS\Stdlib\Base\Enum; /** * Suggestion type enum. * - * @package Modules\Purchase\OrderSuggestion + * @package Modules\Purchase\Models\OrderSuggestion * @license OMS License 2.0 * @link https://jingga.app * @since 1.0.0 */ abstract class OrderSuggestionComparisonDurationType extends Enum { - public const ANNUALY = 1; + public const ANNUALLY = 1; public const MONTHLY = 2; // The basis is every month, the different months are considered the same - public const MONTHLY_ANNUAL = 3; // The basis is the same month, e.g. helpful for seasonal data + public const WEEKLY = 3; + + public const MONTHLY_ANNUAL = 4; // The basis is the same monthly, e.g. helpful for seasonal data + + public const WEEKLY_ANNUAL = 5; // The basis is the same weekly, e.g. helpful for seasonal data } diff --git a/Models/OrderSuggestionInterface.php b/Models/OrderSuggestion/OrderSuggestionInterface.php old mode 100755 new mode 100644 similarity index 68% rename from Models/OrderSuggestionInterface.php rename to Models/OrderSuggestion/OrderSuggestionInterface.php index 22df344..0888106 --- a/Models/OrderSuggestionInterface.php +++ b/Models/OrderSuggestion/OrderSuggestionInterface.php @@ -4,7 +4,7 @@ * * PHP Version 8.1 * - * @package Modules\Purchase\Models + * @package Modules\Purchase\Models\OrderSuggestion * @copyright Dennis Eichhorn * @license OMS License 2.0 * @version 1.0.0 @@ -12,12 +12,12 @@ */ declare(strict_types=1); -namespace Modules\Purchase\Models; +namespace Modules\Purchase\Models\OrderSuggestion; /** * Order suggestion interface. * - * @package Modules\Purchase\Models + * @package Modules\Purchase\Models\OrderSuggestion * @license OMS License 2.0 * @link https://jingga.app * @since 1.0.0 diff --git a/OrderSuggestion/OrderSuggestionOptimizationType.php b/Models/OrderSuggestion/OrderSuggestionOptimizationType.php old mode 100755 new mode 100644 similarity index 82% rename from OrderSuggestion/OrderSuggestionOptimizationType.php rename to Models/OrderSuggestion/OrderSuggestionOptimizationType.php index 7222dd1..0a70c5e --- a/OrderSuggestion/OrderSuggestionOptimizationType.php +++ b/Models/OrderSuggestion/OrderSuggestionOptimizationType.php @@ -4,7 +4,7 @@ * * PHP Version 8.1 * - * @package Modules\Purchase\OrderSuggestion + * @package Modules\Purchase\Models\OrderSuggestion * @copyright Dennis Eichhorn * @license OMS License 2.0 * @version 1.0.0 @@ -12,14 +12,14 @@ */ declare(strict_types=1); -namespace Modules\Purchase\OrderSuggestion; +namespace Modules\Purchase\Models\OrderSuggestion; use phpOMS\Stdlib\Base\Enum; /** * Suggestion type enum. * - * @package Modules\Purchase\OrderSuggestion + * @package Modules\Purchase\Models\OrderSuggestion * @license OMS License 2.0 * @link https://jingga.app * @since 1.0.0 diff --git a/OrderSuggestion/OrderSuggestionType.php b/Models/OrderSuggestion/OrderSuggestionType.php old mode 100755 new mode 100644 similarity index 73% rename from OrderSuggestion/OrderSuggestionType.php rename to Models/OrderSuggestion/OrderSuggestionType.php index d1c182f..abc3ca9 --- a/OrderSuggestion/OrderSuggestionType.php +++ b/Models/OrderSuggestion/OrderSuggestionType.php @@ -4,7 +4,7 @@ * * PHP Version 8.1 * - * @package Modules\Purchase\OrderSuggestion + * @package Modules\Purchase\Models\OrderSuggestion * @copyright Dennis Eichhorn * @license OMS License 2.0 * @version 1.0.0 @@ -12,14 +12,14 @@ */ declare(strict_types=1); -namespace Modules\Purchase\OrderSuggestion; +namespace Modules\Purchase\Models\OrderSuggestion; use phpOMS\Stdlib\Base\Enum; /** * Suggestion type enum. * - * @package Modules\Purchase\OrderSuggestion + * @package Modules\Purchase\Models\OrderSuggestion * @license OMS License 2.0 * @link https://jingga.app * @since 1.0.0 @@ -30,5 +30,5 @@ abstract class OrderSuggestionType extends Enum public const HISTORIC = 2; // Suggestion based on: available stock + current orders + historic demand - public const TREND = 3; // Suggestion based on: available stock + current orders + trend + public const TREND = 4; // Suggestion based on: available stock + current orders + trend }