From b41116859441b63b8580dca9686faef67ba6bd66 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 24 Sep 2023 14:19:20 +0000 Subject: [PATCH] fix tests --- .github/workflows/main.yml | 2 +- Controller/BackendController.php | 4 ++-- Models/PurchaseBillMapper.php | 32 ++++++++++++++++++---------- Models/SalesBillMapper.php | 36 ++++++++++++++++++++------------ 4 files changed, 47 insertions(+), 27 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e12c33f..3281bdf 100755 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -42,7 +42,7 @@ jobs: run: composer install - name: Autoformat run: | - vendor/bin/php-cs-fixer fix ./ --rules=''{"array_syntax": {"syntax": "short"}, "blank_line_after_namespace": true, "global_namespace_import": {"import_classes": false, "import_constants": false, "import_functions": false}, "binary_operator_spaces": {"operators": {"=": "align", ".=": "align", "+=": "align", "-=": "align", "*=": "align", "/=": "align", "|=": "align", "&=": "align", "=>": "align", "??=": "align", ">>=": "align", "<<=": "align"}}, "cast_spaces": {"space": "single"}, "class_attributes_separation": { "elements": {"const": "one", "method": "one", "property": "one"} }, "combine_consecutive_issets": true, "compact_nullable_typehint": true, "declare_strict_types": true, "declare_equal_normalize": {"space": "none"}, "elseif": true, "encoding": true, "explicit_indirect_variable": true, "explicit_string_variable": true, "function_to_constant": true, "implode_call": true, "increment_style": {"style": "pre"}, "is_null": true, "yoda_style": {"equal": false, "identical": false, "less_and_greater": false}, "line_ending": true, "logical_operators": true, "lowercase_cast": true, "constant_case": {"case": "lower"}, "lowercase_keywords": true, "modernize_types_casting": true, "native_constant_invocation": true, "native_function_casing": true, "native_function_invocation": {"include": ["@all"]}, "new_with_braces": true, "no_extra_blank_lines": {"tokens": ["break", "case", "continue", "curly_brace_block", "extra", "return", "switch", "throw", "use"]}, "no_spaces_after_function_name": true, "no_alias_functions": true, "no_closing_tag": true, "no_empty_comment": true, "no_empty_phpdoc": true, "no_empty_statement": true, "no_homoglyph_names": true, "no_mixed_echo_print": {"use": "echo"}, "no_php4_constructor": true, "no_singleline_whitespace_before_semicolons": true, "no_spaces_inside_parenthesis": true, "no_trailing_whitespace": true, "no_unneeded_final_method": true, "no_unused_imports": true, "no_useless_return": true, "no_whitespace_before_comma_in_array": true, "no_whitespace_in_blank_line": true, "non_printable_character": true, "normalize_index_brace": true, "ordered_imports": {"sort_algorithm": "alpha"}, "ordered_interfaces": {"order": "alpha"}, "php_unit_construct": true, "php_unit_internal_class": true, "php_unit_set_up_tear_down_visibility": true, "phpdoc_indent": true, "phpdoc_align": {"align": "vertical"}, "phpdoc_annotation_without_dot": true, "phpdoc_scalar": true, "phpdoc_return_self_reference": {"replacements": {"this": "self"}}, "phpdoc_trim": true, "phpdoc_trim_consecutive_blank_line_separation": true, "random_api_migration": true, "self_accessor": true, "return_type_declaration": {"space_before": "one"}, "semicolon_after_instruction": true, "set_type_to_cast": true, "short_scalar_cast": true, "single_blank_line_at_eof": true, "single_line_after_imports": true, "standardize_increment": true, "trailing_comma_in_multiline": true, "trim_array_spaces": true, "visibility_required": true, "void_return": true}'' --allow-risky=yes + vendor/bin/php-cs-fixer fix ./ --rules='{"array_syntax": {"syntax": "short"}, "blank_line_after_namespace": true, "global_namespace_import": {"import_classes": false, "import_constants": false, "import_functions": false}, "binary_operator_spaces": {"operators": {"=": "align", ".=": "align", "+=": "align", "-=": "align", "*=": "align", "/=": "align", "|=": "align", "&=": "align", "=>": "align", "??=": "align", ">>=": "align", "<<=": "align"}}, "cast_spaces": {"space": "single"}, "class_attributes_separation": { "elements": {"const": "one", "method": "one", "property": "one"} }, "combine_consecutive_issets": true, "compact_nullable_typehint": true, "declare_strict_types": true, "declare_equal_normalize": {"space": "none"}, "elseif": true, "encoding": true, "explicit_indirect_variable": true, "explicit_string_variable": true, "function_to_constant": true, "implode_call": true, "increment_style": {"style": "pre"}, "is_null": true, "yoda_style": {"equal": false, "identical": false, "less_and_greater": false}, "line_ending": true, "logical_operators": true, "lowercase_cast": true, "constant_case": {"case": "lower"}, "lowercase_keywords": true, "modernize_types_casting": true, "native_constant_invocation": true, "native_function_casing": true, "native_function_invocation": {"include": ["@all"]}, "new_with_braces": true, "no_extra_blank_lines": {"tokens": ["break", "case", "continue", "curly_brace_block", "extra", "return", "switch", "throw", "use"]}, "no_spaces_after_function_name": true, "no_alias_functions": true, "no_closing_tag": true, "no_empty_comment": true, "no_empty_phpdoc": true, "no_empty_statement": true, "no_homoglyph_names": true, "no_mixed_echo_print": {"use": "echo"}, "no_php4_constructor": true, "no_singleline_whitespace_before_semicolons": true, "no_spaces_inside_parenthesis": true, "no_trailing_whitespace": true, "no_unneeded_final_method": true, "no_unused_imports": true, "no_useless_return": true, "no_whitespace_before_comma_in_array": true, "no_whitespace_in_blank_line": true, "non_printable_character": true, "normalize_index_brace": true, "ordered_imports": {"sort_algorithm": "alpha"}, "ordered_interfaces": {"order": "alpha"}, "php_unit_construct": true, "php_unit_internal_class": true, "php_unit_set_up_tear_down_visibility": true, "phpdoc_indent": true, "phpdoc_align": {"align": "vertical"}, "phpdoc_annotation_without_dot": true, "phpdoc_scalar": true, "phpdoc_return_self_reference": {"replacements": {"this": "self"}}, "phpdoc_trim": true, "phpdoc_trim_consecutive_blank_line_separation": true, "random_api_migration": true, "self_accessor": true, "return_type_declaration": {"space_before": "one"}, "semicolon_after_instruction": true, "set_type_to_cast": true, "short_scalar_cast": true, "single_blank_line_at_eof": true, "single_line_after_imports": true, "standardize_increment": true, "trailing_comma_in_multiline": true, "trim_array_spaces": true, "visibility_required": true, "void_return": true}' --allow-risky=yes vendor/bin/phpcbf --standard=Build/Config/phpcs.xml ./ - name: Check for modified files id: git-check diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 5e931d3..994ec5d 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -524,7 +524,7 @@ final class BackendController extends Controller ///// $currentCustomersCountry = []; for ($i = 1; $i < 51; ++$i) { - $country = ISO3166NameEnum::getRandom(); + $country = (string) ISO3166NameEnum::getRandom(); $currentCustomersCountry[\substr($country, 0, 20)] = [ 'customers' => (int) (\mt_rand(200, 400) / 12), ]; @@ -539,7 +539,7 @@ final class BackendController extends Controller $annualCustomersCountry = []; for ($i = 1; $i < 51; ++$i) { $countryCode = ISO3166CharEnum::getRandom(); - $countryName = ISO3166NameEnum::getByName('_' . $countryCode); + $countryName = (string) ISO3166NameEnum::getByName('_' . $countryCode); $annualCustomersCountry[\substr($countryName, 0, 20)] = []; for ($j = 1; $j < 11; ++$j) { diff --git a/Models/PurchaseBillMapper.php b/Models/PurchaseBillMapper.php index 7697791..967361f 100755 --- a/Models/PurchaseBillMapper.php +++ b/Models/PurchaseBillMapper.php @@ -80,7 +80,9 @@ final class PurchaseBillMapper extends BillMapper */ public static function getPurchaseByItemId(int $id, \DateTime $start, \DateTime $end) : FloatInt { - $query = new Builder(self::$db); + $query = new Builder(self::$db); + + /** @var array $result */ $result = $query->select('SUM(billing_bill_element_total_netpurchaseprice)') ->from(self::TABLE) ->leftJoin(BillElementMapper::TABLE) @@ -89,9 +91,9 @@ final class PurchaseBillMapper extends BillMapper ->andWhere(self::TABLE . '.billing_bill_performance_date', '>=', $start) ->andWhere(self::TABLE . '.billing_bill_performance_date', '<=', $end) ->execute() - ?->fetch(); + ?->fetch() ?? []; - return new FloatInt((int) $result[0]); + return new FloatInt((int) ($result[0] ?? 0)); } /** @@ -99,16 +101,18 @@ final class PurchaseBillMapper extends BillMapper */ public static function getPurchaseBySupplierId(int $id, \DateTime $start, \DateTime $end) : FloatInt { - $query = new Builder(self::$db); + $query = new Builder(self::$db); + + /** @var array $result */ $result = $query->select('SUM(billing_bill_netcosts)') ->from(self::TABLE) ->where(self::TABLE . '.billing_bill_supplier', '=', $id) ->andWhere(self::TABLE . '.billing_bill_performance_date', '>=', $start) ->andWhere(self::TABLE . '.billing_bill_performance_date', '<=', $end) ->execute() - ?->fetch(); + ?->fetch() ?? []; - return new FloatInt((int) $result[0]); + return new FloatInt((int) ($result[0] ?? 0)); } /** @@ -116,7 +120,9 @@ final class PurchaseBillMapper extends BillMapper */ public static function getAvgPurchasePriceByItemId(int $id, \DateTime $start, \DateTime $end) : FloatInt { - $query = new Builder(self::$db); + $query = new Builder(self::$db); + + /** @var false|array $result */ $result = $query->select('SUM(billing_bill_element_single_netpurchaseprice)', 'COUNT(billing_bill_element_total_netpurchaseprice)') ->from(self::TABLE) ->leftJoin(BillElementMapper::TABLE) @@ -125,7 +131,7 @@ final class PurchaseBillMapper extends BillMapper ->andWhere(self::TABLE . '.billing_bill_performance_date', '>=', $start) ->andWhere(self::TABLE . '.billing_bill_performance_date', '<=', $end) ->execute() - ?->fetch(); + ?->fetch() ?? false; return new FloatInt($result === false || $result[1] == 0 ? 0 : (int) (((int) $result[0]) / ((int) $result[1]))); } @@ -137,6 +143,8 @@ final class PurchaseBillMapper extends BillMapper { // @todo: only delivers/invoice/production (no offers ...) $query = new Builder(self::$db); + + /** @var false|array $result */ $result = $query->select('billing_bill_performance_date') ->from(self::TABLE) ->leftJoin(BillElementMapper::TABLE) @@ -145,7 +153,7 @@ final class PurchaseBillMapper extends BillMapper ->orderBy('billing_bill_id', 'DESC') ->limit(1) ->execute() - ?->fetch(); + ?->fetch() ?? false; return $result === false ? null : new \DateTimeImmutable($result[0]); } @@ -156,14 +164,16 @@ final class PurchaseBillMapper extends BillMapper public static function getLastOrderDateBySupplierId(int $id) : ?\DateTimeImmutable { // @todo: only delivers/invoice/production (no offers ...) - $query = new Builder(self::$db); + $query = new Builder(self::$db); + + /** @var false|array $result */ $result = $query->select('billing_bill_performance_date') ->from(self::TABLE) ->where(self::TABLE . '.billing_bill_supplier', '=', $id) ->orderBy('billing_bill_id', 'DESC') ->limit(1) ->execute() - ?->fetch(); + ?->fetch() ?? false; return $result === false ? null : new \DateTimeImmutable($result[0]); } diff --git a/Models/SalesBillMapper.php b/Models/SalesBillMapper.php index bf5e1aa..09467f9 100755 --- a/Models/SalesBillMapper.php +++ b/Models/SalesBillMapper.php @@ -80,7 +80,9 @@ final class SalesBillMapper extends BillMapper */ public static function getSalesByItemId(int $id, \DateTime $start, \DateTime $end) : FloatInt { - $query = new Builder(self::$db); + $query = new Builder(self::$db); + + /** @var array $result */ $result = $query->select('SUM(billing_bill_element_total_netsalesprice)') ->from(self::TABLE) ->leftJoin(BillElementMapper::TABLE) @@ -89,9 +91,9 @@ final class SalesBillMapper extends BillMapper ->andWhere(self::TABLE . '.billing_bill_performance_date', '>=', $start) ->andWhere(self::TABLE . '.billing_bill_performance_date', '<=', $end) ->execute() - ?->fetch(); + ?->fetch() ?? []; - return new FloatInt((int) $result[0] ?? 0); + return new FloatInt((int) ($result[0] ?? 0)); } /** @@ -99,16 +101,18 @@ final class SalesBillMapper extends BillMapper */ public static function getSalesByClientId(int $id, \DateTime $start, \DateTime $end) : FloatInt { - $query = new Builder(self::$db); + $query = new Builder(self::$db); + + /** @var array $result */ $result = $query->select('SUM(billing_bill_netsales)') ->from(self::TABLE) ->where(self::TABLE . '.billing_bill_client', '=', $id) ->andWhere(self::TABLE . '.billing_bill_performance_date', '>=', $start) ->andWhere(self::TABLE . '.billing_bill_performance_date', '<=', $end) ->execute() - ?->fetch(); + ?->fetch() ?? []; - return new FloatInt((int) $result[0] ?? 0); + return new FloatInt((int) ($result[0] ?? 0)); } /** @@ -116,7 +120,9 @@ final class SalesBillMapper extends BillMapper */ public static function getAvgSalesPriceByItemId(int $id, \DateTime $start, \DateTime $end) : FloatInt { - $query = new Builder(self::$db); + $query = new Builder(self::$db); + + /** @var false|array $result */ $result = $query->select('SUM(billing_bill_element_single_netsalesprice)', 'COUNT(billing_bill_element_total_netsalesprice)') ->from(self::TABLE) ->leftJoin(BillElementMapper::TABLE) @@ -125,7 +131,7 @@ final class SalesBillMapper extends BillMapper ->andWhere(self::TABLE . '.billing_bill_performance_date', '>=', $start) ->andWhere(self::TABLE . '.billing_bill_performance_date', '<=', $end) ->execute() - ?->fetch(); + ?->fetch() ?? false; return new FloatInt($result === false || ((int) ($result[1] ?? 0)) === 0 ? 0 : (int) (((int) $result[0] ?? 0) / ((int) $result[1]))); } @@ -136,7 +142,9 @@ final class SalesBillMapper extends BillMapper public static function getLastOrderDateByItemId(int $id) : ?\DateTimeImmutable { // @todo: only delivers/invoice/production (no offers ...) - $query = new Builder(self::$db); + $query = new Builder(self::$db); + + /** @var false|array $result */ $result = $query->select('billing_bill_performance_date') ->from(self::TABLE) ->leftJoin(BillElementMapper::TABLE) @@ -145,7 +153,7 @@ final class SalesBillMapper extends BillMapper ->orderBy('billing_bill_id', 'DESC') ->limit(1) ->execute() - ?->fetch(); + ?->fetch() ?? false; return $result === false ? null : new \DateTimeImmutable($result[0]); } @@ -156,14 +164,16 @@ final class SalesBillMapper extends BillMapper public static function getLastOrderDateByClientId(int $id) : ?\DateTimeImmutable { // @todo: only delivers/invoice/production (no offers ...) - $query = new Builder(self::$db); + $query = new Builder(self::$db); + + /** @var false|array $result */ $result = $query->select('billing_bill_performance_date') ->from(self::TABLE) ->where(self::TABLE . '.billing_bill_client', '=', $id) ->orderBy('billing_bill_id', 'DESC') ->limit(1) ->execute() - ?->fetch(); + ?->fetch() ?? false; return $result === false ? null : new \DateTimeImmutable($result[0]); } @@ -245,7 +255,7 @@ final class SalesBillMapper extends BillMapper ->groupBy('client'); $stmt = $query->execute(); - $data = $stmt->fetchAll(); + $data = $stmt?->fetchAll() ?? []; $clientIds = []; foreach ($data as $client) {