From 45513e8e78a596bfb23ae1efb0667b3eb289a335 Mon Sep 17 00:00:00 2001 From: Thomas Peterson Date: Tue, 21 Jan 2020 15:14:19 +0100 Subject: [PATCH] Fix Calc --- composer.json | 1 + composer.lock | 1364 ++++++++++++++++++-------- src/Calc/Calc.php | 12 +- src/Calc/CalcValues.php | 21 +- src/Engine.php | 23 +- src/Option/Parser.php | 4 + src/Option/Parser/Template.php | 25 + src/Option/Type/PaperDbSelect.php | 25 + src/Option/Type/Template.php | 27 + src/Parser.php | 22 +- tests/Article/Complete1Test.php | 16 +- tests/Calc/OptionsRemoveTest.php | 4 +- tests/Customer/A/CalcTest.php | 56 ++ tests/Customer/A/calc.xml | 721 ++++++++++++++ tests/Customer/A/calcTemplates.xml | 160 +++ tests/Customer/A/formels.txt | 733 ++++++++++++++ tests/Customer/A/papierContainer.xml | 7 + tests/Customer/A/parameters.txt | 201 ++++ tests/Mock/Paper.php | 377 +++++++ tests/Mock/PaperRepostory.php | 15 + 20 files changed, 3401 insertions(+), 413 deletions(-) create mode 100644 src/Option/Parser/Template.php create mode 100644 src/Option/Type/Template.php create mode 100644 tests/Customer/A/CalcTest.php create mode 100644 tests/Customer/A/calc.xml create mode 100644 tests/Customer/A/calcTemplates.xml create mode 100644 tests/Customer/A/formels.txt create mode 100644 tests/Customer/A/papierContainer.xml create mode 100644 tests/Customer/A/parameters.txt diff --git a/composer.json b/composer.json index 7bcd5c7..986cf65 100644 --- a/composer.json +++ b/composer.json @@ -18,6 +18,7 @@ }, "require-dev": { "phpunit/phpunit": "^5", + "phpunit/php-code-coverage": "^4", "phpstan/phpstan": "^0.11.0" } } diff --git a/composer.lock b/composer.lock index f909c11..9795420 100644 --- a/composer.lock +++ b/composer.lock @@ -1,23 +1,23 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "51b742a6ed2a195b6f88e21197847013", + "content-hash": "c78ea4decb148f9a9ca6f4324fe2a984", "packages": [ { "name": "doctrine/annotations", - "version": "v1.6.0", + "version": "v1.8.0", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5" + "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", - "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/904dca4eb10715b92569fbcd79e201d5c349b6bc", + "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc", "shasum": "" }, "require": { @@ -26,12 +26,12 @@ }, "require-dev": { "doctrine/cache": "1.*", - "phpunit/phpunit": "^6.4" + "phpunit/phpunit": "^7.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "1.7.x-dev" } }, "autoload": { @@ -44,6 +44,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -52,10 +56,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -72,20 +72,20 @@ "docblock", "parser" ], - "time": "2017-12-06T07:11:42+00:00" + "time": "2019-10-01T18:55:10+00:00" }, { "name": "doctrine/cache", - "version": "v1.7.1", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a" + "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/b3217d58609e9c8e661cd41357a54d926c4a2a1a", - "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a", + "url": "https://api.github.com/repos/doctrine/cache/zipball/382e7f4db9a12dc6c19431743a2b096041bcdd62", + "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62", "shasum": "" }, "require": { @@ -96,8 +96,9 @@ }, "require-dev": { "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^6.0", "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^5.7", + "phpunit/phpunit": "^7.0", "predis/predis": "~1.0" }, "suggest": { @@ -106,7 +107,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "1.9.x-dev" } }, "autoload": { @@ -119,6 +120,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -127,10 +132,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -140,44 +141,53 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Caching library offering an object-oriented API for many cache backends", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", "keywords": [ + "abstraction", + "apcu", "cache", - "caching" + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" ], - "time": "2017-08-25T07:02:50+00:00" + "time": "2019-11-29T15:36:20+00:00" }, { "name": "doctrine/collections", - "version": "v1.5.0", + "version": "1.6.4", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf" + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf", - "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf", + "url": "https://api.github.com/repos/doctrine/collections/zipball/6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1.3" }, "require-dev": { - "doctrine/coding-standard": "~0.1@dev", - "phpunit/phpunit": "^5.7" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan-shim": "^0.9.2", + "phpunit/phpunit": "^7.0", + "vimeo/psalm": "^3.2.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "1.6.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Collections\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" } }, "notification-url": "https://packagist.org/downloads/", @@ -185,6 +195,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -193,10 +207,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -206,44 +216,53 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Collections Abstraction library", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", + "homepage": "https://www.doctrine-project.org/projects/collections.html", "keywords": [ "array", "collections", - "iterator" + "iterators", + "php" ], - "time": "2017-07-22T10:37:32+00:00" + "time": "2019-11-13T13:07:11+00:00" }, { "name": "doctrine/common", - "version": "v2.8.1", + "version": "2.12.0", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66" + "reference": "2053eafdf60c2172ee1373d1b9289ba1db7f1fc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/f68c297ce6455e8fd794aa8ffaf9fa458f6ade66", - "reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66", + "url": "https://api.github.com/repos/doctrine/common/zipball/2053eafdf60c2172ee1373d1b9289ba1db7f1fc6", + "reference": "2053eafdf60c2172ee1373d1b9289ba1db7f1fc6", "shasum": "" }, "require": { - "doctrine/annotations": "1.*", - "doctrine/cache": "1.*", - "doctrine/collections": "1.*", - "doctrine/inflector": "1.*", - "doctrine/lexer": "1.*", - "php": "~7.1" + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/inflector": "^1.0", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^1.1", + "doctrine/reflection": "^1.0", + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^5.7" + "doctrine/coding-standard": "^1.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpunit/phpunit": "^7.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^4.0.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8.x-dev" + "dev-master": "2.11.x-dev" } }, "autoload": { @@ -256,6 +275,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -264,10 +287,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -275,44 +294,47 @@ { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Common Library for Doctrine projects", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", "keywords": [ - "annotations", - "collections", - "eventmanager", - "persistence", - "spl" + "common", + "doctrine", + "php" ], - "time": "2017-08-31T08:43:38+00:00" + "time": "2020-01-10T15:49:25+00:00" }, { "name": "doctrine/dbal", - "version": "v2.7.1", + "version": "v2.10.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "11037b4352c008373561dc6fc836834eed80c3b5" + "reference": "c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/11037b4352c008373561dc6fc836834eed80c3b5", - "reference": "11037b4352c008373561dc6fc836834eed80c3b5", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8", + "reference": "c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8", "shasum": "" }, "require": { - "doctrine/common": "^2.7.1", + "doctrine/cache": "^1.0", + "doctrine/event-manager": "^1.0", "ext-pdo": "*", - "php": "^7.1" + "php": "^7.2" }, "require-dev": { - "doctrine/coding-standard": "^4.0", - "phpunit/phpunit": "^7.0", - "phpunit/phpunit-mock-objects": "!=3.2.4,!=3.2.5", - "symfony/console": "^2.0.5||^3.0", - "symfony/phpunit-bridge": "^3.4.5|^4.0.5" + "doctrine/coding-standard": "^6.0", + "jetbrains/phpstorm-stubs": "^2019.1", + "phpstan/phpstan": "^0.11.3", + "phpunit/phpunit": "^8.4.1", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -323,12 +345,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7.x-dev" + "dev-master": "2.10.x-dev", + "dev-develop": "3.0.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\DBAL\\": "lib/" + "psr-4": { + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" } }, "notification-url": "https://packagist.org/downloads/", @@ -336,6 +359,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -344,37 +371,124 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" } ], - "description": "Database Abstraction Layer", - "homepage": "http://www.doctrine-project.org", + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", "keywords": [ + "abstraction", "database", + "db2", "dbal", - "persistence", - "queryobject" + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlanywhere", + "sqlite", + "sqlserver", + "sqlsrv" ], - "time": "2018-04-07T18:44:18+00:00" + "time": "2020-01-04T12:56:21+00:00" }, { - "name": "doctrine/inflector", - "version": "v1.3.0", + "name": "doctrine/event-manager", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "5527a48b7313d15261292c149e55e26eae771b0a" + "url": "https://github.com/doctrine/event-manager.git", + "reference": "629572819973f13486371cb611386eb17851e85c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a", - "reference": "5527a48b7313d15261292c149e55e26eae771b0a", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c", + "reference": "629572819973f13486371cb611386eb17851e85c", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "time": "2019-11-10T09:48:07+00:00" + }, + { + "name": "doctrine/inflector", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1", + "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1", "shasum": "" }, "require": { @@ -399,6 +513,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -407,10 +525,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -428,31 +542,33 @@ "singularize", "string" ], - "time": "2018-01-09T20:05:19+00:00" + "time": "2019-10-30T19:59:35+00:00" }, { "name": "doctrine/instantiator", - "version": "1.1.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", "shasum": "" }, "require": { "php": "^7.1" }, "require-dev": { - "athletic/athletic": "~0.1.8", + "doctrine/coding-standard": "^6.0", "ext-pdo": "*", "ext-phar": "*", - "phpunit/phpunit": "^6.2.3", - "squizlabs/php_codesniffer": "^3.0.2" + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { @@ -477,39 +593,44 @@ } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ "constructor", "instantiate" ], - "time": "2017-07-22T11:58:36+00:00" + "time": "2019-10-21T16:45:58+00:00" }, { "name": "doctrine/lexer", - "version": "v1.0.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.2" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } }, "notification-url": "https://packagist.org/downloads/", @@ -517,57 +638,61 @@ "MIT" ], "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" } ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ + "annotations", + "docblock", "lexer", - "parser" + "parser", + "php" ], - "time": "2014-09-09T13:34:57+00:00" + "time": "2019-10-30T14:39:59+00:00" }, { "name": "doctrine/orm", - "version": "v2.6.1", + "version": "v2.7.0", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "87ee409783a4a322b5597ebaae558661404055a7" + "reference": "4d763ca4c925f647b248b9fa01b5f47aa3685d62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/87ee409783a4a322b5597ebaae558661404055a7", - "reference": "87ee409783a4a322b5597ebaae558661404055a7", + "url": "https://api.github.com/repos/doctrine/orm/zipball/4d763ca4c925f647b248b9fa01b5f47aa3685d62", + "reference": "4d763ca4c925f647b248b9fa01b5f47aa3685d62", "shasum": "" }, "require": { - "doctrine/annotations": "~1.5", - "doctrine/cache": "~1.6", - "doctrine/collections": "^1.4", - "doctrine/common": "^2.7.1", - "doctrine/dbal": "^2.6", - "doctrine/instantiator": "~1.1", + "doctrine/annotations": "^1.8", + "doctrine/cache": "^1.9.1", + "doctrine/collections": "^1.5", + "doctrine/common": "^2.11", + "doctrine/dbal": "^2.9.3", + "doctrine/event-manager": "^1.1", + "doctrine/instantiator": "^1.3", + "doctrine/persistence": "^1.2", "ext-pdo": "*", "php": "^7.1", - "symfony/console": "~3.0|~4.0" + "symfony/console": "^3.0|^4.0|^5.0" }, "require-dev": { - "doctrine/coding-standard": "^1.0", - "phpunit/phpunit": "^6.5", - "squizlabs/php_codesniffer": "^3.2", - "symfony/yaml": "~3.4|~4.0" + "doctrine/coding-standard": "^5.0", + "phpunit/phpunit": "^7.5", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" @@ -578,7 +703,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6.x-dev" + "dev-master": "2.7.x-dev" } }, "autoload": { @@ -591,6 +716,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -599,10 +728,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -613,42 +738,260 @@ } ], "description": "Object-Relational-Mapper for PHP", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org/projects/orm.html", "keywords": [ "database", "orm" ], - "time": "2018-02-27T07:30:56+00:00" + "time": "2019-11-19T08:38:05+00:00" }, { - "name": "symfony/console", - "version": "v4.0.8", + "name": "doctrine/persistence", + "version": "1.3.6", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "aad9a6fe47319f22748fd764f52d3a7ca6fa6b64" + "url": "https://github.com/doctrine/persistence.git", + "reference": "5dd3ac5eebef2d0b074daa4440bb18f93132dee4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/aad9a6fe47319f22748fd764f52d3a7ca6fa6b64", - "reference": "aad9a6fe47319f22748fd764f52d3a7ca6fa6b64", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/5dd3ac5eebef2d0b074daa4440bb18f93132dee4", + "reference": "5dd3ac5eebef2d0b074daa4440bb18f93132dee4", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/reflection": "^1.1", + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.10@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common", + "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://doctrine-project.org/projects/persistence.html", + "keywords": [ + "mapper", + "object", + "odm", + "orm", + "persistence" + ], + "time": "2020-01-16T22:06:23+00:00" + }, + { + "name": "doctrine/reflection", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/reflection.git", + "reference": "bc420ead87fdfe08c03ecc3549db603a45b06d4c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/reflection/zipball/bc420ead87fdfe08c03ecc3549db603a45b06d4c", + "reference": "bc420ead87fdfe08c03ecc3549db603a45b06d4c", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "ext-tokenizer": "*", + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.9" + }, + "require-dev": { + "doctrine/coding-standard": "^5.0", + "doctrine/common": "^2.10", + "phpstan/phpstan": "^0.11.0", + "phpstan/phpstan-phpunit": "^0.11.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.", + "homepage": "https://www.doctrine-project.org/projects/reflection.html", + "keywords": [ + "reflection", + "static" + ], + "time": "2020-01-08T19:53:19+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "symfony/console", + "version": "v4.4.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "82437719dab1e6bdd28726af14cb345c2ec816d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/82437719dab1e6bdd28726af14cb345c2ec816d0", + "reference": "82437719dab1e6bdd28726af14cb345c2ec816d0", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.0" + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1|^2" }, "conflict": { "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", "symfony/process": "<3.3" }, + "provide": { + "psr/log-implementation": "1.0" + }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~3.4|~4.0", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0" + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" }, "suggest": { "psr/log": "For using the console logger", @@ -659,7 +1002,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -686,20 +1029,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2018-04-03T05:24:00+00:00" + "time": "2019-12-17T10:32:23+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.7.0", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b" + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", "shasum": "" }, "require": { @@ -711,7 +1054,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -745,30 +1088,146 @@ "portable", "shim" ], - "time": "2018-01-30T19:27:44+00:00" + "time": "2019-11-27T14:18:11+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-11-27T16:25:15+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "144c5e51266b281231e947b51223ba14acf1a749" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", + "reference": "144c5e51266b281231e947b51223ba14acf1a749", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-11-18T17:27:11+00:00" } ], "packages-dev": [ { "name": "composer/xdebug-handler", - "version": "1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "dc523135366eb68f22268d069ea7749486458562" + "reference": "cbe23383749496fe0f373345208b79568e4bc248" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/dc523135366eb68f22268d069ea7749486458562", - "reference": "dc523135366eb68f22268d069ea7749486458562", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248", + "reference": "cbe23383749496fe0f373345208b79568e4bc248", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0", + "php": "^5.3.2 || ^7.0 || ^8.0", "psr/log": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" }, "type": "library", "autoload": { @@ -786,12 +1245,12 @@ "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "Restarts a process without xdebug.", + "description": "Restarts a process without Xdebug.", "keywords": [ "Xdebug", "performance" ], - "time": "2018-11-29T10:59:02+00:00" + "time": "2019-11-06T16:40:04+00:00" }, { "name": "jean85/pretty-package-versions", @@ -846,25 +1305,28 @@ }, { "name": "myclabs/deep-copy", - "version": "1.7.0", + "version": "1.9.5", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" }, "require-dev": { "doctrine/collections": "^1.0", "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" + "phpunit/phpunit": "^7.1" }, "type": "library", "autoload": { @@ -887,43 +1349,43 @@ "object", "object graph" ], - "time": "2017-10-19T19:58:43+00:00" + "time": "2020-01-17T21:11:47+00:00" }, { "name": "nette/bootstrap", - "version": "v2.4.6", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/nette/bootstrap.git", - "reference": "268816e3f1bb7426c3a4ceec2bd38a036b532543" + "reference": "b45a1e33b6a44beb307756522396551e5a9ff249" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/bootstrap/zipball/268816e3f1bb7426c3a4ceec2bd38a036b532543", - "reference": "268816e3f1bb7426c3a4ceec2bd38a036b532543", + "url": "https://api.github.com/repos/nette/bootstrap/zipball/b45a1e33b6a44beb307756522396551e5a9ff249", + "reference": "b45a1e33b6a44beb307756522396551e5a9ff249", "shasum": "" }, "require": { - "nette/di": "~2.4.7", - "nette/utils": "~2.4", - "php": ">=5.6.0" + "nette/di": "^3.0", + "nette/utils": "^3.0", + "php": ">=7.1" }, "conflict": { - "nette/nette": "<2.2" + "tracy/tracy": "<2.6" }, "require-dev": { - "latte/latte": "~2.2", - "nette/application": "~2.3", - "nette/caching": "~2.3", - "nette/database": "~2.3", - "nette/forms": "~2.3", - "nette/http": "~2.4.0", - "nette/mail": "~2.3", - "nette/robot-loader": "^2.4.2 || ^3.0", - "nette/safe-stream": "~2.2", - "nette/security": "~2.3", - "nette/tester": "~2.0", - "tracy/tracy": "^2.4.1" + "latte/latte": "^2.2", + "nette/application": "^3.0", + "nette/caching": "^3.0", + "nette/database": "^3.0", + "nette/forms": "^3.0", + "nette/http": "^3.0", + "nette/mail": "^3.0", + "nette/robot-loader": "^3.0", + "nette/safe-stream": "^2.2", + "nette/security": "^3.0", + "nette/tester": "^2.0", + "tracy/tracy": "^2.6" }, "suggest": { "nette/robot-loader": "to use Configurator::createRobotLoader()", @@ -932,7 +1394,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -963,41 +1425,43 @@ "configurator", "nette" ], - "time": "2018-05-17T12:52:20+00:00" + "time": "2019-09-30T08:19:38+00:00" }, { "name": "nette/di", - "version": "v2.4.14", + "version": "v3.0.3", "source": { "type": "git", "url": "https://github.com/nette/di.git", - "reference": "923da3e2c0aa53162ef455472c0ac7787b096c5a" + "reference": "77d69061cbf8f9cfb7363dd983136f51213d3e41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/923da3e2c0aa53162ef455472c0ac7787b096c5a", - "reference": "923da3e2c0aa53162ef455472c0ac7787b096c5a", + "url": "https://api.github.com/repos/nette/di/zipball/77d69061cbf8f9cfb7363dd983136f51213d3e41", + "reference": "77d69061cbf8f9cfb7363dd983136f51213d3e41", "shasum": "" }, "require": { "ext-tokenizer": "*", - "nette/neon": "^2.3.3 || ~3.0.0", - "nette/php-generator": "^2.6.1 || ~3.0.0", - "nette/utils": "^2.4.3 || ~3.0.0", - "php": ">=5.6.0" + "nette/neon": "^3.0", + "nette/php-generator": "^3.3.3", + "nette/robot-loader": "^3.2", + "nette/schema": "^1.0", + "nette/utils": "^3.1", + "php": ">=7.1" }, "conflict": { - "nette/bootstrap": "<2.4", - "nette/nette": "<2.2" + "nette/bootstrap": "<3.0" }, "require-dev": { - "nette/tester": "^2.0", + "nette/tester": "^2.2", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1008,8 +1472,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -1032,37 +1496,38 @@ "nette", "static" ], - "time": "2018-09-17T15:47:40+00:00" + "time": "2020-01-20T12:14:54+00:00" }, { "name": "nette/finder", - "version": "v2.4.2", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/nette/finder.git", - "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0" + "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/finder/zipball/ee951a656cb8ac622e5dd33474a01fd2470505a0", - "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0", + "url": "https://api.github.com/repos/nette/finder/zipball/4ad2c298eb8c687dd0e74ae84206a4186eeaed50", + "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50", "shasum": "" }, "require": { - "nette/utils": "~2.4", - "php": ">=5.6.0" + "nette/utils": "^2.4 || ^3.0", + "php": ">=7.1" }, "conflict": { "nette/nette": "<2.2" }, "require-dev": { - "nette/tester": "~2.0", + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -1094,35 +1559,36 @@ "iterator", "nette" ], - "time": "2018-06-28T11:49:23+00:00" + "time": "2020-01-03T20:35:40+00:00" }, { "name": "nette/neon", - "version": "v2.4.3", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/nette/neon.git", - "reference": "5e72b1dd3e2d34f0863c5561139a19df6a1ef398" + "reference": "0a18fc88801a14d66587932de133eeca01f7ce8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/5e72b1dd3e2d34f0863c5561139a19df6a1ef398", - "reference": "5e72b1dd3e2d34f0863c5561139a19df6a1ef398", + "url": "https://api.github.com/repos/nette/neon/zipball/0a18fc88801a14d66587932de133eeca01f7ce8e", + "reference": "0a18fc88801a14d66587932de133eeca01f7ce8e", "shasum": "" }, "require": { "ext-iconv": "*", "ext-json": "*", - "php": ">=5.6.0" + "php": ">=7.1" }, "require-dev": { - "nette/tester": "~2.0", + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -1155,37 +1621,35 @@ "nette", "yaml" ], - "time": "2018-03-21T12:12:21+00:00" + "time": "2019-12-27T04:00:04+00:00" }, { "name": "nette/php-generator", - "version": "v3.0.5", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/nette/php-generator.git", - "reference": "ea90209c2e8a7cd087b2742ca553c047a8df5eff" + "reference": "a4ff22c91681fefaa774cf952a2b69c2ec9477c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/ea90209c2e8a7cd087b2742ca553c047a8df5eff", - "reference": "ea90209c2e8a7cd087b2742ca553c047a8df5eff", + "url": "https://api.github.com/repos/nette/php-generator/zipball/a4ff22c91681fefaa774cf952a2b69c2ec9477c1", + "reference": "a4ff22c91681fefaa774cf952a2b69c2ec9477c1", "shasum": "" }, "require": { - "nette/utils": "^2.4.2 || ~3.0.0", - "php": ">=7.0" - }, - "conflict": { - "nette/nette": "<2.2" + "nette/utils": "^2.4.2 || ^3.0", + "php": ">=7.1" }, "require-dev": { "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -1196,8 +1660,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -1209,7 +1673,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.2 features.", + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.4 features.", "homepage": "https://nette.org", "keywords": [ "code", @@ -1217,39 +1681,37 @@ "php", "scaffolding" ], - "time": "2018-08-09T14:32:27+00:00" + "time": "2020-01-20T11:40:42+00:00" }, { "name": "nette/robot-loader", - "version": "v3.1.0", + "version": "v3.2.1", "source": { "type": "git", "url": "https://github.com/nette/robot-loader.git", - "reference": "fc76c70e740b10f091e502b2e393d0be912f38d4" + "reference": "d2a100e1f5cab390c78bc88709abbc91249c3993" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/fc76c70e740b10f091e502b2e393d0be912f38d4", - "reference": "fc76c70e740b10f091e502b2e393d0be912f38d4", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/d2a100e1f5cab390c78bc88709abbc91249c3993", + "reference": "d2a100e1f5cab390c78bc88709abbc91249c3993", "shasum": "" }, "require": { "ext-tokenizer": "*", - "nette/finder": "^2.3 || ^3.0", - "nette/utils": "^2.4 || ^3.0", - "php": ">=5.6.0" - }, - "conflict": { - "nette/nette": "<2.2" + "nette/finder": "^2.5 || ^3.0", + "nette/utils": "^3.0", + "php": ">=7.1" }, "require-dev": { "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1282,52 +1744,104 @@ "nette", "trait" ], - "time": "2018-08-13T14:19:06+00:00" + "time": "2019-12-26T22:32:02+00:00" }, { - "name": "nette/utils", - "version": "v2.5.3", + "name": "nette/schema", + "version": "v1.0.2", "source": { "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "17b9f76f2abd0c943adfb556e56f2165460b15ce" + "url": "https://github.com/nette/schema.git", + "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/17b9f76f2abd0c943adfb556e56f2165460b15ce", - "reference": "17b9f76f2abd0c943adfb556e56f2165460b15ce", + "url": "https://api.github.com/repos/nette/schema/zipball/febf71fb4052c824046f5a33f4f769a6e7fa0cb4", + "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4", "shasum": "" }, "require": { - "php": ">=5.6.0" + "nette/utils": "^3.1", + "php": ">=7.1" }, - "conflict": { - "nette/nette": "<2.2" + "require-dev": { + "nette/tester": "^2.2", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": [] + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "time": "2020-01-06T22:52:48+00:00" + }, + { + "name": "nette/utils", + "version": "v3.1.0", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "d6cd63d77dd9a85c3a2fae707e1255e44c2bc182" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/d6cd63d77dd9a85c3a2fae707e1255e44c2bc182", + "reference": "d6cd63d77dd9a85c3a2fae707e1255e44c2bc182", + "shasum": "" + }, + "require": { + "php": ">=7.1" }, "require-dev": { "nette/tester": "~2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "suggest": { "ext-gd": "to use Image", "ext-iconv": "to use Strings::webalize() and toAscii()", - "ext-intl": "for script transliteration in Strings::webalize() and toAscii()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", "ext-xml": "to use Strings::length() etc. when mbstring is not available" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev" + "dev-master": "3.1-dev" } }, "autoload": { "classmap": [ "src/" - ], - "files": [ - "src/loader.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1364,20 +1878,20 @@ "utility", "validation" ], - "time": "2018-09-18T10:22:16+00:00" + "time": "2020-01-03T18:13:31+00:00" }, { "name": "nikic/php-parser", - "version": "v4.2.0", + "version": "v4.3.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "594bcae1fc0bccd3993d2f0d61a018e26ac2865a" + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/594bcae1fc0bccd3993d2f0d61a018e26ac2865a", - "reference": "594bcae1fc0bccd3993d2f0d61a018e26ac2865a", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", "shasum": "" }, "require": { @@ -1385,7 +1899,8 @@ "php": ">=7.0" }, "require-dev": { - "phpunit/phpunit": "^6.5 || ^7.0" + "ircmaxell/php-yacc": "0.0.5", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, "bin": [ "bin/php-parse" @@ -1393,7 +1908,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -1415,37 +1930,39 @@ "parser", "php" ], - "time": "2019-01-12T16:31:37+00:00" + "time": "2019-11-08T13:50:10+00:00" }, { "name": "ocramius/package-versions", - "version": "1.3.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/Ocramius/PackageVersions.git", - "reference": "4489d5002c49d55576fa0ba786f42dbb009be46f" + "reference": "1d32342b8c1eb27353c8887c366147b4c2da673c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f", - "reference": "4489d5002c49d55576fa0ba786f42dbb009be46f", + "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/1d32342b8c1eb27353c8887c366147b4c2da673c", + "reference": "1d32342b8c1eb27353c8887c366147b4c2da673c", "shasum": "" }, "require": { "composer-plugin-api": "^1.0.0", - "php": "^7.1.0" + "php": "^7.3.0" }, "require-dev": { - "composer/composer": "^1.6.3", + "composer/composer": "^1.8.6", + "doctrine/coding-standard": "^6.0.0", "ext-zip": "*", - "infection/infection": "^0.7.1", - "phpunit/phpunit": "^7.0.0" + "infection/infection": "^0.13.4", + "phpunit/phpunit": "^8.2.5", + "vimeo/psalm": "^3.4.9" }, "type": "composer-plugin", "extra": { "class": "PackageVersions\\Installer", "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.6.x-dev" } }, "autoload": { @@ -1464,39 +1981,37 @@ } ], "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "time": "2018-02-05T13:05:30+00:00" + "time": "2019-07-17T15:49:50+00:00" }, { "name": "phpdocumentor/reflection-common", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", "shasum": "" }, "require": { - "php": ">=5.5" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^4.6" + "phpunit/phpunit": "~6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1518,31 +2033,32 @@ "reflection", "static analysis" ], - "time": "2017-09-11T18:02:19+00:00" + "time": "2018-08-07T13:53:10+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.0", + "version": "4.3.4", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08" + "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c", + "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c", "shasum": "" }, "require": { "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", + "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", + "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", "webmozart/assert": "^1.0" }, "require-dev": { - "doctrine/instantiator": "~1.0.5", + "doctrine/instantiator": "^1.0.5", "mockery/mockery": "^1.0", + "phpdocumentor/type-resolver": "0.4.*", "phpunit/phpunit": "^6.4" }, "type": "library", @@ -1569,41 +2085,40 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-11-30T07:14:17+00:00" + "time": "2019-12-28T18:55:12+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "0.4.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" + "php": "^7.1", + "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "ext-tokenizer": "^7.1", + "mockery/mockery": "~1", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1616,42 +2131,43 @@ "email": "me@mikevanriel.com" } ], - "time": "2017-07-14T14:27:02+00:00" + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2019-08-22T18:11:29+00:00" }, { "name": "phpspec/prophecy", - "version": "1.7.5", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401" + "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/cbe1df668b3fe136bcc909126a0f529a78d4cbbc", + "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", + "sebastian/comparator": "^1.2.3|^2.0|^3.0", "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + "phpspec/phpspec": "^2.5 || ^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "1.10.x-dev" } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" + "psr-4": { + "Prophecy\\": "src/Prophecy" } }, "notification-url": "https://packagist.org/downloads/", @@ -1679,32 +2195,33 @@ "spy", "stub" ], - "time": "2018-02-19T10:16:54+00:00" + "time": "2019-12-22T21:05:45+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "0.3.1", + "version": "0.3.5", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "2cc49f47c69b023eaf05b48e6529389893b13d74" + "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/2cc49f47c69b023eaf05b48e6529389893b13d74", - "reference": "2cc49f47c69b023eaf05b48e6529389893b13d74", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/8c4ef2aefd9788238897b678a985e1d5c8df6db4", + "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4", "shasum": "" }, "require": { "php": "~7.1" }, "require-dev": { - "consistence/coding-standard": "^2.0.0", + "consistence/coding-standard": "^3.5", "jakub-onderka/php-parallel-lint": "^0.9.2", "phing/phing": "^2.16.0", "phpstan/phpstan": "^0.10", "phpunit/phpunit": "^6.3", - "slevomat/coding-standard": "^3.3.0", + "slevomat/coding-standard": "^4.7.2", + "squizlabs/php_codesniffer": "^3.3.2", "symfony/process": "^3.4 || ^4.0" }, "type": "library", @@ -1725,20 +2242,20 @@ "MIT" ], "description": "PHPDoc parser with support for nullable, intersection and generic types", - "time": "2019-01-14T12:26:23+00:00" + "time": "2019-06-07T19:13:52+00:00" }, { "name": "phpstan/phpstan", - "version": "0.11", + "version": "0.11.19", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "cfb0b43021fb75abe853ab8d88d22cdb37596697" + "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cfb0b43021fb75abe853ab8d88d22cdb37596697", - "reference": "cfb0b43021fb75abe853ab8d88d22cdb37596697", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/63cc502f6957b7f74efbac444b4cf219dcadffd7", + "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7", "shasum": "" }, "require": { @@ -1746,11 +2263,13 @@ "jean85/pretty-package-versions": "^1.0.3", "nette/bootstrap": "^2.4 || ^3.0", "nette/di": "^2.4.7 || ^3.0", + "nette/neon": "^2.4.3 || ^3.0", "nette/robot-loader": "^3.0.1", + "nette/schema": "^1.0", "nette/utils": "^2.4.5 || ^3.0", - "nikic/php-parser": "^4.0.2", + "nikic/php-parser": "^4.2.3", "php": "~7.1", - "phpstan/phpdoc-parser": "^0.3", + "phpstan/phpdoc-parser": "^0.3.5", "symfony/console": "~3.2 || ~4.0", "symfony/finder": "~3.2 || ~4.0" }, @@ -1758,11 +2277,12 @@ "symfony/console": "3.4.16 || 4.1.5" }, "require-dev": { - "brianium/paratest": "^2.0", + "brianium/paratest": "^2.0 || ^3.0", "consistence/coding-standard": "^3.5", "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4", "ext-intl": "*", "ext-mysqli": "*", + "ext-simplexml": "*", "ext-soap": "*", "ext-zip": "*", "jakub-onderka/php-parallel-lint": "^1.0", @@ -1772,7 +2292,7 @@ "phpstan/phpstan-php-parser": "^0.11", "phpstan/phpstan-phpunit": "^0.11", "phpstan/phpstan-strict-rules": "^0.11", - "phpunit/phpunit": "^7.0", + "phpunit/phpunit": "^7.5.14 || ^8.0", "slevomat/coding-standard": "^4.7.2", "squizlabs/php_codesniffer": "^3.3.2" }, @@ -1788,8 +2308,7 @@ "autoload": { "psr-4": { "PHPStan\\": [ - "src/", - "build/PHPStan" + "src/" ] } }, @@ -1798,7 +2317,7 @@ "MIT" ], "description": "PHPStan - PHP Static Analysis Tool", - "time": "2019-01-15T14:21:47+00:00" + "time": "2019-10-22T20:20:22+00:00" }, { "name": "phpunit/php-code-coverage", @@ -2192,16 +2711,16 @@ }, { "name": "psr/log", - "version": "1.1.0", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", "shasum": "" }, "require": { @@ -2210,7 +2729,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -2235,7 +2754,7 @@ "psr", "psr-3" ], - "time": "2018-11-20T15:27:04+00:00" + "time": "2019-11-01T11:05:21+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -2752,16 +3271,16 @@ }, { "name": "symfony/finder", - "version": "v4.2.2", + "version": "v4.4.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9094d69e8c6ee3fe186a0ec5a4f1401e506071ce" + "reference": "ce8743441da64c41e2a667b8eb66070444ed911e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9094d69e8c6ee3fe186a0ec5a4f1401e506071ce", - "reference": "9094d69e8c6ee3fe186a0ec5a4f1401e506071ce", + "url": "https://api.github.com/repos/symfony/finder/zipball/ce8743441da64c41e2a667b8eb66070444ed911e", + "reference": "ce8743441da64c41e2a667b8eb66070444ed911e", "shasum": "" }, "require": { @@ -2770,7 +3289,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -2797,30 +3316,89 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:07:35+00:00" + "time": "2019-11-17T21:56:56+00:00" }, { - "name": "symfony/yaml", - "version": "v4.0.8", + "name": "symfony/polyfill-ctype", + "version": "v1.13.1", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "8b34ebb5989df61cbd77eff29a02c4db9ac1069c" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/8b34ebb5989df61cbd77eff29a02c4db9ac1069c", - "reference": "8b34ebb5989df61cbd77eff29a02c4db9ac1069c", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2019-11-27T13:56:44+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.4.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "a08832b974dd5fafe3085a66d41fe4c84bb2628c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/a08832b974dd5fafe3085a66d41fe4c84bb2628c", + "reference": "a08832b974dd5fafe3085a66d41fe4c84bb2628c", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { "symfony/console": "<3.4" }, "require-dev": { - "symfony/console": "~3.4|~4.0" + "symfony/console": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -2828,7 +3406,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -2855,35 +3433,33 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2018-04-03T05:24:00+00:00" + "time": "2019-12-10T10:33:21+00:00" }, { "name": "webmozart/assert", - "version": "1.3.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + "reference": "573381c0a64f155a0d9a23f4b0c797194805b925" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "url": "https://api.github.com/repos/webmozart/assert/zipball/573381c0a64f155a0d9a23f4b0c797194805b925", + "reference": "573381c0a64f155a0d9a23f4b0c797194805b925", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "vimeo/psalm": "<3.6.0" }, "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" @@ -2905,7 +3481,7 @@ "check", "validate" ], - "time": "2018-01-29T19:49:41+00:00" + "time": "2019-11-24T13:36:37+00:00" } ], "aliases": [], diff --git a/src/Calc/Calc.php b/src/Calc/Calc.php index e998f97..417daec 100644 --- a/src/Calc/Calc.php +++ b/src/Calc/Calc.php @@ -87,7 +87,11 @@ class Calc $formel = $this->formelCalc->parse($collection->getFormel()); eval('$var = ' . $formel . ';'); }else{ - $var = $this->engine->getVariables()[$collection->getName()]; + if(!isset($this->engine->getVariables()[$collection->getName()])) { + $var = 'XXXXXXXXXXXX'; + }else{ + $var = $this->engine->getVariables()[$collection->getName()]; + } } /** @var Edge $edge */ @@ -114,7 +118,9 @@ class Calc if ($formel != "" && $option->getId() != 'weight' && !$option->isAjaxExport()) { $p = 0; $formel = str_replace("tonumber", '$this->toNumber', $formel); + eval('@$p = ' . $formel . ';'); + //echo $option->getId(). ' / '.$formel . ' / '.$p.' / '.PHP_EOL.PHP_EOL; if($p > 0 || $p < 0) { $price += $p; } @@ -122,6 +128,10 @@ class Calc $this->engine->setVariable('price', $price); } } + + if($edge->getEdgesCollectionContainer()->count() > 0) { + $price = $this->parseEdgeCollection($price, $option, $edge->getEdgesCollectionContainer()); + } } } } diff --git a/src/Calc/CalcValues.php b/src/Calc/CalcValues.php index c89f4a5..9dc95b9 100644 --- a/src/Calc/CalcValues.php +++ b/src/Calc/CalcValues.php @@ -17,6 +17,7 @@ use PSC\Library\Calc\Option\Type\Base; use PSC\Library\Calc\Option\Type\PaperDbSelect; use PSC\Library\Calc\Option\Type\Select; use PSC\Library\Calc\Tests\Mock\Paper; +use SebastianBergmann\CodeCoverage\Report\PHP; class CalcValues { @@ -81,6 +82,9 @@ class CalcValues $calcValueAccount1 = 0; $calcValueAccount2 = 0; + eval($this->engine->getParameters()); + eval($this->engine->getFormulas()); + /** @var EdgeCollection $collection */ foreach($container as $collection) { if($collection->getName() == "opt") continue; @@ -88,7 +92,11 @@ class CalcValues $formel = $this->formelCalc->parse($collection->getFormel()); eval('$var = ' . $formel . ';'); }else{ - $var = $this->engine->getVariables()[$collection->getName()]; + if(!isset($this->engine->getVariables()[$collection->getName()])) { + $var = 'XXXXXXXX'; + }else{ + $var = $this->engine->getVariables()[$collection->getName()]; + } } /** @var Edge $edge */ @@ -99,11 +107,12 @@ class CalcValues if($edge->getCalcValue() != "") { $cv = $this->formelCalc->parse($edge->getCalcValue()); eval('$cv = ' . $cv . ';'); - if($isSub) { - $this->engine->addCalcVariable($id, $cv); - }else{ - $this->engine->addCalcVariable($id . '_' . $collection->getName(), $cv); - } + //echo $id . ' '. $this->formelCalc->parse($edge->getCalcValue()) . ' ' . $cv . ' '. PHP_EOL.PHP_EOL; + + $this->engine->addCalcVariable($id, $cv); + + $this->engine->addCalcVariable($id . '_' . $collection->getName(), $cv); + } if($edge->getEdgesCollectionContainer()->count() > 0) { diff --git a/src/Engine.php b/src/Engine.php index 8af7fb7..0752290 100644 --- a/src/Engine.php +++ b/src/Engine.php @@ -52,6 +52,8 @@ class Engine /** @var string */ protected $activeArticle = false; + /** @var \SimpleXMLElement $templates */ + protected $templates; /** * Load XML From String @@ -76,7 +78,9 @@ class Engine $parser = new Parser(); $parser->setPaperContainer($this->paperContainer); $parser->setPaperRepository($this->paperRepository); - + if($this->templates) { + $parser->setTemplates($this->templates); + } foreach ($this->xml as $article) { $this->articles->append($parser->parse($article)); @@ -231,6 +235,10 @@ class Engine $calcValues = new CalcValues($this, $this->article); $calcValues->calc(); + // CALC Values + $calcValues = new CalcValues($this, $this->article); + $calcValues->calc(); + // Check if Option is valid $calcValid = new Valid($this, $this->article); $calcValid->perform(true); @@ -360,4 +368,17 @@ class Engine return $tmp; } + public function setTemplates($templates) + { + $this->templates = simplexml_load_string($templates); + } + + /** + * @return \SimpleXMLElement + */ + public function getTemplates(): \SimpleXMLElement + { + return $this->templates; + } + } \ No newline at end of file diff --git a/src/Option/Parser.php b/src/Option/Parser.php index f7b2b1d..a623b44 100644 --- a/src/Option/Parser.php +++ b/src/Option/Parser.php @@ -4,6 +4,7 @@ namespace PSC\Library\Calc\Option; use PSC\Library\Calc\Option\Parser\Hidden; use PSC\Library\Calc\Option\Parser\Input; use PSC\Library\Calc\Option\Parser\Select; +use PSC\Library\Calc\Option\Parser\Template; use PSC\Library\Calc\Option\Parser\Text; use PSC\Library\Calc\PaperContainer\Container; @@ -35,6 +36,9 @@ class Parser case 'hidden': $obj = new Hidden($node); break; + case 'template': + $obj = new Template($node); + break; } return $obj; diff --git a/src/Option/Parser/Template.php b/src/Option/Parser/Template.php new file mode 100644 index 0000000..c4d1226 --- /dev/null +++ b/src/Option/Parser/Template.php @@ -0,0 +1,25 @@ +element = new \PSC\Library\Calc\Option\Type\Template(); + parent::__construct($node); + } + + public function parse() + { + parent::parse(); + + if($this->node['select']) { + $this->element->setSelect((string)$this->node['select']); + } + return $this->element; + } + +} \ No newline at end of file diff --git a/src/Option/Type/PaperDbSelect.php b/src/Option/Type/PaperDbSelect.php index 779bd71..e78d09c 100644 --- a/src/Option/Type/PaperDbSelect.php +++ b/src/Option/Type/PaperDbSelect.php @@ -24,6 +24,31 @@ class PaperDbSelect extends Select $variables[$this->getId() . '_digital_fix'] = $paper->getDigitalFix(); $variables[$this->getId() . '_digital_var'] = $paper->getDigitalVar(); + $variables[$this->getId() . '_papiertyp1'] = $paper->getPapierTyp1(); + $variables[$this->getId() . '_papiertyp2'] = $paper->getPapierTyp2(); + $variables[$this->getId() . '_papiertyp3'] = $paper->getPapierTyp3(); + $variables[$this->getId() . '_papiertyp4'] = $paper->getPapierTyp4(); + $variables[$this->getId() . '_papiertyp5'] = $paper->getPapierTyp5(); + $variables[$this->getId() . '_papiertyp6'] = $paper->getPapierTyp6(); + $variables[$this->getId() . '_papiertyp7'] = $paper->getPapierTyp7(); + $variables[$this->getId() . '_papiertyp8'] = $paper->getPapierTyp8(); + $variables[$this->getId() . '_papiertyp9'] = $paper->getPapierTyp9(); + $variables[$this->getId() . '_papiertyp10'] = $paper->getPapierTyp10(); + $variables[$this->getId() . '_papiertyp11'] = $paper->getPapierTyp11(); + $variables[$this->getId() . '_papiertyp12'] = $paper->getPapierTyp12(); + $variables[$this->getId() . '_papiertyp13'] = $paper->getPapierTyp13(); + $variables[$this->getId() . '_papiertyp14'] = $paper->getPapierTyp14(); + $variables[$this->getId() . '_umschlagen'] = $paper->getUmschlagen(); + + $variables[$this->getId() . '_happy'] = $paper->getHappy(); + $variables[$this->getId() . '_eq'] = $paper->getEq(); + $variables[$this->getId() . '_sense'] = $paper->getSense(); + $variables[$this->getId() . '_sky'] = $paper->getSky(); + $variables[$this->getId() . '_glam'] = $paper->getGlam(); + $variables[$this->getId() . '_post'] = $paper->getPost(); + $variables[$this->getId() . '_sammelform'] = $paper->getSammelform(); + + return $variables; } diff --git a/src/Option/Type/Template.php b/src/Option/Type/Template.php new file mode 100644 index 0000000..6f5b819 --- /dev/null +++ b/src/Option/Type/Template.php @@ -0,0 +1,27 @@ +select; + } + + /** + * @param String $select + */ + public function setSelect(String $select): void + { + $this->select = $select; + } +} \ No newline at end of file diff --git a/src/Parser.php b/src/Parser.php index d3ede4f..6b27a18 100644 --- a/src/Parser.php +++ b/src/Parser.php @@ -4,6 +4,7 @@ namespace PSC\Library\Calc; use Doctrine\Common\Persistence\ObjectRepository; use PSC\Library\Calc\Option\Parser\Select; +use PSC\Library\Calc\Option\Parser\Template; class Parser { @@ -15,6 +16,9 @@ class Parser /** @var ObjectRepository */ protected $paperRepository; + /** @var \SimpleXMLElement $templates */ + protected $templates; + public function __construct() { } @@ -33,8 +37,19 @@ class Parser $obj->setPaperContainer($this->getPaperContainer()); $obj->setPaperRepository($this->getPaperRepository()); } + if($obj instanceof Template) { + $element = $obj->parse(); - $element = $obj->parse(); + $default = $element->getDefault(); + $node = $this->templates->xpath('//option[@id="' . $element->getSelect() . '"]'); + $obj = $optionParser->getOptByType($node[0]); + $element = $obj->parse(); + if($default != "") { + $element->setDefault($default); + } + }else{ + $element = $obj->parse(); + } $this->article->addOption($element); } } @@ -74,4 +89,9 @@ class Parser $this->paperRepository = $paperRepository; } + public function setTemplates(\SimpleXMLElement $templates) + { + $this->templates = $templates; + } + } \ No newline at end of file diff --git a/tests/Article/Complete1Test.php b/tests/Article/Complete1Test.php index 9d2d6ed..51136a9 100644 --- a/tests/Article/Complete1Test.php +++ b/tests/Article/Complete1Test.php @@ -35,8 +35,8 @@ class Complete1Test extends \PHPUnit_Framework_TestCase public function testIfCalcArticleCorrect() { - $this->engine->setParameters([]); - $this->engine->setFormulas([]); + $this->engine->setParameters(""); + $this->engine->setFormulas(""); $this->engine->setVariables([]); $this->engine->calc('test1'); $this->assertEquals(0, $this->engine->getPrice()); @@ -45,8 +45,8 @@ class Complete1Test extends \PHPUnit_Framework_TestCase public function testIfCalcReturnsPrice() { - $this->engine->setParameters([]); - $this->engine->setFormulas([]); + $this->engine->setParameters(""); + $this->engine->setFormulas(""); $this->engine->setVariables(['gebwert' => 20000]); $this->engine->calc('test1'); $this->assertEquals(18.12, $this->engine->getPrice()); @@ -54,8 +54,8 @@ class Complete1Test extends \PHPUnit_Framework_TestCase public function testIfCalcReturnsPriceWithEdge() { - $this->engine->setParameters([]); - $this->engine->setFormulas([]); + $this->engine->setParameters(""); + $this->engine->setFormulas(""); $this->engine->setVariables(['gebyn' => 2, 'gebwert' => 20000]); $this->engine->calc('test1'); $this->assertEquals(0, $this->engine->getPrice()); @@ -63,8 +63,8 @@ class Complete1Test extends \PHPUnit_Framework_TestCase public function testIfCalcCompletePrice() { - $this->engine->setParameters([]); - $this->engine->setFormulas([]); + $this->engine->setParameters(""); + $this->engine->setFormulas(""); $this->engine->setVariables([ 'gebwert' => 20000, 'maschwertjuengerfuenf' => 12000, diff --git a/tests/Calc/OptionsRemoveTest.php b/tests/Calc/OptionsRemoveTest.php index 562f821..2df9805 100644 --- a/tests/Calc/OptionsRemoveTest.php +++ b/tests/Calc/OptionsRemoveTest.php @@ -37,8 +37,8 @@ class OptionsRemoveTest extends \PHPUnit_Framework_TestCase public function testIfOptionsNotValid() { - $this->engine->setParameters([]); - $this->engine->setFormulas([]); + $this->engine->setParameters(""); + $this->engine->setFormulas(""); $this->engine->setVariables([]); $this->engine->calc('test1'); diff --git a/tests/Customer/A/CalcTest.php b/tests/Customer/A/CalcTest.php new file mode 100644 index 0000000..afab794 --- /dev/null +++ b/tests/Customer/A/CalcTest.php @@ -0,0 +1,56 @@ +parse(simplexml_load_string(file_get_contents(__DIR__ . '/papierContainer.xml'))); + + $this->engine = new Engine(); + $this->engine->setPaperContainer($paperContainer); + $this->engine->setPaperRepository($repository); + $this->engine->setFormulas(file_get_contents(__DIR__ . '/formels.txt')); + $this->engine->setParameters(file_get_contents(__DIR__ . '/parameters.txt')); + $this->engine->setTemplates(file_get_contents(__DIR__ . '/calcTemplates.xml')); + + $this->engine->loadString(file_get_contents(__DIR__ . '/calc.xml')); + + } + + public function tearDown() + { + $this->engine = null; + } + + public function testIfDefaultPriceIsOk() + { + $this->assertEquals(229.86 , $this->engine->getPrice()); + } + + public function testVariant1() + { + $this->engine->setVariable('falzbrueche', 14); + $this->assertEquals(292.78 , $this->engine->getPrice()); + } + public function testVariant2() + { + $this->engine->setVariable('falzbrueche', 14); + $this->engine->setVariable('druckfarben_inhalt', 8); + $this->assertEquals(339.15 , $this->engine->getPrice()); + } +} \ No newline at end of file diff --git a/tests/Customer/A/calc.xml b/tests/Customer/A/calc.xml new file mode 100644 index 0000000..a58376d --- /dev/null +++ b/tests/Customer/A/calc.xml @@ -0,0 +1,721 @@ + + + + Prospekte, Sonderformat, gefalzt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Customer/A/calcTemplates.xml b/tests/Customer/A/calcTemplates.xml new file mode 100644 index 0000000..b6ba66c --- /dev/null +++ b/tests/Customer/A/calcTemplates.xml @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + diff --git a/tests/Customer/A/formels.txt b/tests/Customer/A/formels.txt new file mode 100644 index 0000000..42fb7de --- /dev/null +++ b/tests/Customer/A/formels.txt @@ -0,0 +1,733 @@ +$hilfsvalue_abschlag_sammelform_plano = '((($CVhilfsvalue_sammelform_format_auflage$CV/100*75)+($CVhilfsvalue_sammelform_menge_auflage$CV/100*25))/(75+25)*100)'; + +$hilfsvalue_sammelform_format_plano = '(max(0,getSammelformFormatPlano($Vsortenzahl$V*$CVformat_offen_breite_auflage$CV*$CVformat_offen_hoehe_auflage$CV)-(5*abs(1.408-max($CVformat_offen_breite_auflage$CV,$CVformat_offen_hoehe_auflage$CV)/min($CVformat_offen_breite_auflage$CV,$CVformat_offen_hoehe_auflage$CV)))))'; + +if(!function_exists('getSammelformMengenAbschlagPlano')) { + + function getSammelformMengenAbschlagPlano($menge) { + + if($menge < 2500) return 100; + if($menge < 7500) return 90; + if($menge < 10000) return 80; + if($menge < 15000) return 70; + if($menge < 20000) return 60; + if($menge < 35000) return 50; + if($menge < 50000) return 25; + return 1; + } + + function getSammelformFormatPlano($value) { + if($value < 56) return 150; + if($value < 63) return 130; + if($value < 649) return 100; + if($value < 1299) return 90; + if($value < 1999) return 80; + if($value < 2499) return 60; + return 0; + } + + + function getCalcTableValue($what, $papierType1,$papierType2,$papierType3,$papierType4,$papierType5,$papierType6,$papierType7,$papierType8,$papierType9,$papierType10,$papierType11,$papierType12,$papierType13,$papierType14, $kostenDruckplatte, $druckplatteOption, $gammatur, $papierKosten, $weiterVerarbeitung, $seiten, $auflage, $anzahlDruckfarben, $anzahlFarbwechsel, $anzahlDruckJeForm, $format_offen_breite, $format_offen_hoehe, $geiferRand, $bogenRaender) { + + $price = 9999999999; + $nutzen = 9999999999; + $nettobg = 9999999999; + $zuschuss = 9999999999; + $bogen_hoehe = 1000; + $bogen_breite = 1000; + $ctp = 999999999; + + $formate=array(); + if($papierType1) { + $formate[] = array('type' => 1, 'breite' => 88, 'hoehe' => 63, 'seiten' => 4); + } + if($papierType1 && ($weiterVerarbeitung == 3)) { + $formate[] = array('type' => 2, 'breite' => 88, 'hoehe' => 63, 'seiten' => 2); + } + + if($papierType2) { + $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'seiten' => 4); + } + if($papierType2 && ($weiterVerarbeitung == 3)) { + $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'seiten' => 2); + } + + if($papierType3) { + //$formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'seiten' => 4); + } + if($papierType3 && ($weiterVerarbeitung == 3)) { + //$formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'seiten' => 2); + } + + if($papierType4) { + //$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'seiten' => 4); + } + if($papierType4 && ($weiterVerarbeitung == 3)) { + //$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'seiten' => 2); + } + + if($papierType5) { + //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'seiten' => 4); + } + if($papierType5 && ($weiterVerarbeitung == 3)) { + //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'seiten' => 2); + } + + if($papierType6) { + //$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'seiten' => 4); + } + if($papierType6 && ($weiterVerarbeitung == 3)) { + //$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'seiten' => 2); + } + + if($papierType7) { + //$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'seiten' => 4); + } + if($papierType7 && ($weiterVerarbeitung == 3)) { + //$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'seiten' => 2); + } + + if($papierType8) { + //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'seiten' => 4); + } + if($papierType8 && ($weiterVerarbeitung == 3)) { + //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'seiten' => 2); + } + + if($papierType9) { + //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'seiten' => 4); + } + if($papierType9 && ($weiterVerarbeitung == 3)) { + //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'seiten' => 2); + } + + if($papierType10) { + //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'seiten' => 4); + } + if($papierType10 && ($weiterVerarbeitung == 3)) { + //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'seiten' => 2); + } + + if($papierType11) { + $formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'seiten' => 4); + } + if($papierType11 && ($weiterVerarbeitung == 3)) { + $formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'seiten' => 2); + } + + if($papierType12) { + //$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'seiten' => 4); + } + if($papierType12 && ($weiterVerarbeitung == 3)) { + //$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'seiten' => 2); + } + + if($papierType13) { + //$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'seiten' => 4); + } + if($papierType13 && ($weiterVerarbeitung == 3)) { + //$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'seiten' => 2); + } + if($papierType14) { + $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'seiten' => 4); + } + if($papierType14 && ($weiterVerarbeitung == 3)) { + $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'seiten' => 2); + } + + //echo "

"; + + foreach($formate as $key => $format) { + + if($format['seiten'] == 4) { + $calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe)*2; + $calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe)*2; + }else{ + $calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite/2)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe); + $calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite/2)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe); + } + + $nutzen_calc = ($calc1 > $calc2)? $calc1: $calc2; + + $calc1 = 200; + + $calc2 = ($anzahlDruckJeForm*$anzahlDruckfarben*100*ceil($seiten/($nutzen_calc*2))+($anzahlFarbwechsel*100)+($seiten/($nutzen_calc*2)*$auflage*0.02)); + + $zuschussCalc = ($calc1 > $calc2)? $calc1 : $calc2; + + $nettoBedruckGesamt = $seiten/$nutzen_calc*$auflage/2; + $ctp1 = ceil($seiten/$nutzen_calc)*($anzahlDruckfarben)+$druckplatteOption; + $price_calc = ((($nettoBedruckGesamt+$zuschussCalc)*$format['hoehe']*$format['breite']*$gammatur*$papierKosten/1000000000))+($kostenDruckplatte*$ctp1); + //var_dump($nutzen_calc); + //var_dump($format['hoehe'].'-'.$format['breite'].'-'.$ctp1.'-'.$nettoBedruckGesamt.'-'.$price_calc.'-'.$price); + //echo "
"; + + if($price_calc < $price && $nutzen > 0) { + $price = $price_calc; + $nutzen = $nutzen_calc; + $ctp = $ctp1; + $zuschuss = $zuschussCalc; + $nettobg = $nettoBedruckGesamt; + $bogen_hoehe = $format['hoehe']; + $bogen_breite = $format['breite']; + } + } + + + + + if($what == 'nutzen') { + if($seiten < $nutzen) { + return $seiten; + } + return $nutzen; + } + if($what == 'nettobg') { + return $nettobg; + } + if($what == 'zuschuss') { + return $zuschuss; + } + + if($what == 'bogen_hoehe') { + return $bogen_hoehe; + } + + if($what == 'ctp') { + return $ctp; + } + + if($what == 'bogen_breite') { + return $bogen_breite; + } + return $price; + + } + + + function getCalcTableValueUmschlag($what, $papierType1,$papierType2,$papierType3,$papierType4,$papierType5,$papierType6,$papierType7,$papierType8,$papierType9,$papierType10,$papierType11,$papierType12,$papierType13,$papierType14, $kostenDruckplatte, $druckplatteOption, $gammatur, $papierKosten, $umschlagen, $seiten, $auflage, $anzahlDruckfarben, $anzahlFarbwechsel, $anzahlDruckJeForm, $format_offen_breite, $format_offen_hoehe, $geiferRand, $bogenRaender, $umschlag_seiten_bedruckt) { + + $price = 9999999999; + $nutzen = 9999999999; + $nettobg = 9999999999; + $zuschuss = 9999999999; + $bogen_hoehe = 1000; + $bogen_breite = 1000; + + $formate=array(); + if($papierType1) { + $formate[] = array('type' => 1, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 0); + } + if($papierType1 && $umschlagen == 1) { + $formate[] = array('type' => 2, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 1); + } + + if($papierType2) { + $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 0); + } + if($papierType2 && $umschlagen == 1) { + $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 1); + } + + if($papierType3) { + $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 0); + } + if($papierType3 && $umschlagen == 1) { + $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 1); + } + + if($papierType4) { + //$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 0); + } + if($papierType4 && $umschlagen == 1) { + //$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 1); + } + + if($papierType5) { + //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 0); + } + if($papierType5 && $umschlagen == 1) { + //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 1); + } + + if($papierType6) { + //$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 0); + } + if($papierType6 && $umschlagen == 1) { + //$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 1); + } + + if($papierType7) { + //$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 0); + } + if($papierType7 && $umschlagen == 1) { + //$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 1); + } + + if($papierType8) { + //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 0); + } + if($papierType8 && $umschlagen == 1) { + //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 1); + } + + if($papierType9) { + //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 0); + } + if($papierType9 && $umschlagen == 1) { + //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 1); + } + + if($papierType10) { + //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 0); + } + if($papierType10 && $umschlagen == 1) { + //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 1); + } + + if($papierType11) { + //$formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 0); + } + if($papierType11 && $umschlagen == 1) { + //$formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 1); + } + + if($papierType12) { + //$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 0); + } + if($papierType12 && $umschlagen == 1) { + //$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 1); + } + + if($papierType13) { + //$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 0); + } + if($papierType13 && ($weiterVerarbeitung == 2 || $weiterVerarbeitung == 3)) { + //$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 1); + } + if($papierType14) { + $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 0); + } + if($papierType14 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 1); + } + + //echo "

"; + + foreach($formate as $key => $format) { + + + if($format['umschlagen'] == 0) { + $calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe); + $calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe); + + $ctp1 = $umschlag_seiten_bedruckt*$anzahlDruckfarben+$druckplatteOption; + + }else{ + $calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe); + $calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe); + + $ctp1 = $anzahlDruckfarben+$druckplatteOption; + } + + $nutzen_calc = ($calc1 > $calc2)? $calc1: $calc2; + + if($format['umschlagen'] == 1) { + $nutzen_calc = floor($nutzen_calc/2)*2; + } + + if($nutzen_calc == 0) { + continue; + } + + $calc1 = 150; + + $calc2 = ($anzahlDruckJeForm*$anzahlDruckfarben*100)+($auflage/$nutzen_calc*0.02); + + $zuschussCalc = ($calc1 > $calc2)? $calc1 : $calc2; + + //var_dump($nutzen_calc); + + $nettoBedruckGesamt = $auflage/$nutzen_calc; + + $gramGesch = (100-sqrt((150-$gammatur)*(150-$gammatur))/5)/100; + + $fortdruckGeschwindigkeit = 2500+$gramGesch*(log10($auflage*$auflage)*700); + + $kba1 = 140*($zuschussCalc+$nettoBedruckGesamt)/$fortdruckGeschwindigkeit*$umschlag_seiten_bedruckt*(ceil($anzahlDruckfarben/5)); + //var_dump($zuschussCalc.' - '.$nettoBedruckGesamt.' - '.$fortdruckGeschwindigkeit.' - '.$umschlag_seiten_bedruckt.' - '.$anzahlDruckfarben); + $price_calc = ($format['hoehe']*$format['breite']*($nettoBedruckGesamt+$zuschussCalc)*$gammatur*$papierKosten/1000000000)+($kostenDruckplatte*$ctp1)+$kba1; + + //var_dump($format['hoehe'].' - '.$format['breite'].' - '.$ctp1.' - '.$kba1.' - '.$price_calc.' - '.$price); + //echo "
"; + + + if($price_calc < $price) { + $price = $price_calc; + $nutzen = $nutzen_calc; + $zuschuss = $zuschussCalc; + $nettobg = $nettoBedruckGesamt; + $bogen_hoehe = $format['hoehe']; + $bogen_breite = $format['breite']; + } + } + + + + + if($what == 'nutzen') { + return $nutzen; + } + if($what == 'nettobg') { + return $nettobg; + } + if($what == 'zuschuss') { + return $zuschuss; + } + + if($what == 'bogen_hoehe') { + return $bogen_hoehe; + } + + if($what == 'bogen_breite') { + return $bogen_breite; + } + return $price; + + } + + function getPurHelpKlebe($what, $var) { + + $fix = 222; + $per = 89; + + if($var > 7) { + $fix = 233; + $per = 102; + } + if($var > 12) { + $fix = 244; + $per = 114; + } + if($var > 16) { + $fix = 366; + $per = 228; + } + + if($what=='fix') { + return $fix; + } + return $per; + } + + function getPurHelpFalz($what, $var) { + + $fix = 10.30; + $per = 7.05; + + if($var == 6) { + $fix = 15.40; + $per = 8.20; + } + if($var == 8) { + $fix = 15.40; + $per = 8.40; + } + if($var == 12) { + $fix = 20.50; + $per = 9.70; + } + if($var == 16) { + $fix = 31.50; + $per = 9.50; + } + if($var == 24) { + $fix = 41.00; + $per = 10.70; + } + if($var == 32) { + $fix = 51.20; + $per = 11.90; + } + if($var == 48) { + $fix = 102.30; + $per = 12.90; + } + + if($what=='fix') { + return $fix; + } + return $per; + } + + + function getCalcTableValueOffsetPlano($what, $papierType1,$papierType2,$papierType3,$papierType4,$papierType5,$papierType6,$papierType7,$papierType8,$papierType9,$papierType10,$papierType11,$papierType12,$papierType13,$papierType14, $kostenDruckplatte, $druckplatteOption, $gammatur, $papierKosten, $umschlagen, $seiten, $auflage, $anzahlDruckfarben, $anzahlFarbwechsel, $anzahlSeiten, $format_offen_breite, $format_offen_hoehe, $drucklack, $papier_vs_rs_unterschiedlich) { + //var_dump( func_get_args()); + $price = 9999999999; + $nutzen = 9999999999; + $nettobg = 9999999999; + $zuschuss = 9999999999; + $bogen_hoehe = 1000; + $bogen_breite = 1000; + $ctp = 999999999; + $druckgaenge = 99999999; + $fortdruckmaschine = 0; + $stundensatz = 99999999; + $maschine = 'kba'; + + $formate=array(); + if($papierType1) { + $formate[] = array('type' => 1, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 0); + } + if($papierType1 && $umschlagen == 1) { + $formate[] = array('type' => 2, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 1); + } + + if($papierType2) { + $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 0); + } + if($papierType2 && $umschlagen == 1) { + $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 1); + } + + if($papierType3) { + $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 0); + } + if($papierType3 && $umschlagen == 1) { + $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 1); + } + + if($papierType4) { + $formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 0); + } + if($papierType4 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 1); + } + + if($papierType5) { + $formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 0); + } + if($papierType5 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 1); + } + + if($papierType6) { + $formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 0); + } + if($papierType6 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 1); + } + + if($papierType7) { + $formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 0); + } + if($papierType7 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 1); + } + + if($papierType8) { + $formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 0); + } + if($papierType8 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 1); + } + + if($papierType9) { + $formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 0); + } + if($papierType9 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 1); + } + + if($papierType10) { + $formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 0); + } + if($papierType10 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 1); + } + + if($papierType11) { + $formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 0); + } + if($papierType11 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 1); + } + + if($papierType12) { + $formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 0); + } + if($papierType12 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 1); + } + + if($papierType13) { + $formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 0); + } + if($papierType13 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 1); + } + + if($papierType14) { + $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 0); + } + if($papierType14 && $umschlagen == 1) { + $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 1); + } + + //echo "

"; + + foreach($formate as $key => $format) { + + $geiferRand = getGeiferRand($format); + $bogenRaender = getBogenRaender($format); + + + if($format['umschlagen'] == 0) { + + $nutzen_calc = max( + ((floor(($format['breite']-$bogenRaender)/$format_offen_breite))*(floor(($format['hoehe']-$geiferRand)/$format_offen_hoehe))), + ((floor(($format['breite']-$bogenRaender)/$format_offen_hoehe)*(floor(($format['hoehe']-$geiferRand)/$format_offen_breite)))) + ); + + }else{ + $nutzen_calc= 2*floor((max( + ((floor(($format['breite']-$bogenRaender)/$format_offen_breite))*(floor(($format['hoehe']-$geiferRand)/$format_offen_hoehe))), + ((floor(($format['breite']-$bogenRaender)/$format_offen_hoehe)*(floor(($format['hoehe']-$geiferRand)/$format_offen_breite)))) + ))/2); + + + } + + + if($anzahlSeiten==2 && $papier_vs_rs_unterschiedlich==0 && $nutzen_calc > 1 && $format['umschlagen'] == 1) { + $ctp1 = ($anzahlDruckfarben+$drucklack)*$anzahlSeiten/2; + }else{ + $ctp1 = ($anzahlDruckfarben+$drucklack)*$anzahlSeiten; + } + + $maschine1 = getMaschine($format['breite'], $format['hoehe']); + + if(getMaschine($format['breite'], $format['hoehe']) == "gto") { + $druckgaenge1 = $anzahlSeiten*($anzahlDruckfarben+$drucklack); + $fortdruckmaschine1 = 0; + $stundensatz1 = 40; + $anzahlFarb1 = max($anzahlFarbwechsel, $anzahlDruckfarben-1); + }else{ + $druckgaenge1 = ceil(($anzahlDruckfarben+$drucklack)/5)*$anzahlSeiten; + $fortdruckmaschine1 = 4500; + $stundensatz1 = 140; + $anzahlFarb1 = $anzahlFarbwechsel; + } + + $zuschussCalc = intval(max(200,floor(($anzahlDruckfarben*100)+($auflage/$nutzen_calc*0.02)))); + + $fortdruckGeschwindigkeit = (log10($auflage*$auflage)*900)*(100-sqrt((150-$gammatur)*(150-$gammatur))/5)/100; + + $nettoBedruckGesamt = (round($auflage/$nutzen_calc,0)); + $druckkosten = $stundensatz1*((($zuschussCalc+$nettoBedruckGesamt)/$fortdruckGeschwindigkeit*$druckgaenge1)+($ctp1*7/60)+($anzahlFarb1*45/60)); + + //var_dump($maschine1.'-'.$stundensatz1.'-'.$zuschussCalc.'-'.$nettoBedruckGesamt.'-'.$fortdruckGeschwindigkeit.'-'.$druckgaenge1.'-'.$ctp1.'-'.$anzahlFarb1); + //echo "
"; + + $price_calc = (($nettoBedruckGesamt+$zuschussCalc)*($format['hoehe']*$format['breite']*$gammatur*$papierKosten/1000000000)+($kostenDruckplatte*$ctp1))+$druckkosten; + + if($price_calc < $price && $nettoBedruckGesamt != 0) { + $price = $price_calc; + $nutzen = $nutzen_calc; + $ctp = $ctp1; + $zuschuss = $zuschussCalc; + $nettobg = $nettoBedruckGesamt; + $bogen_hoehe = $format['hoehe']; + $bogen_breite = $format['breite']; + $druckgaenge = $druckgaenge1; + $fortdruckmaschine = $fortdruckmaschine1; + $stundensatz = $stundensatz1; + $maschine = $maschine1; + } + //var_dump($format['hoehe'].'-'.$format['breite'].'-'.$ctp1.'-'.($zuschussCalc+$nettoBedruckGesamt).'-'.$druckkosten.'-'.$price_calc.'-'.$price); + //echo "
"; + } + + + + + if($what == 'nutzen') { + return $nutzen; + } + if($what == 'nettobg') { + return $nettobg; + } + if($what == 'maschine') { + return $maschine; + } + if($what == 'zuschuss') { + return $zuschuss; + } + if($what == 'fortdruckmaschine') { + return $fortdruckmaschine; + } + + if($what == 'maschine_stundensatz') { + return $stundensatz; + } + + if($what == 'bogen_hoehe') { + return $bogen_hoehe; + } + + if($what == 'ctp') { + return $ctp; + } + + if($what == 'druckgaenge') { + return $druckgaenge; + } + + if($what == 'bogen_breite') { + return $bogen_breite; + } + return $price; + + } + + function getMaschine($breite, $hoehe) { + if($breite > 49 || $hoehe > 49) { + + return '"kba"'; + } + + return '"gto"'; + } + + function getGeiferRand($format) { + $maschine = getMaschine($format['breite'], $format['hoehe']); + + if($maschine == 'kba') { + return 2.3; + } + + return 1.4; + } + + function getBogenRaender($format) { + $maschine = getMaschine($format['breite'], $format['hoehe']); + + if($maschine == 'kba') { + return 1.5; + } + + return 0.8; + } + + function getMaschineKosten($format) { + $maschine = getMaschine($format['breite'], $format['hoehe']); + + if($maschine == 'kba') { + return 140; + } + + return 40; + } + + +} \ No newline at end of file diff --git a/tests/Customer/A/papierContainer.xml b/tests/Customer/A/papierContainer.xml new file mode 100644 index 0000000..139811c --- /dev/null +++ b/tests/Customer/A/papierContainer.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tests/Customer/A/parameters.txt b/tests/Customer/A/parameters.txt new file mode 100644 index 0000000..d3c0f6e --- /dev/null +++ b/tests/Customer/A/parameters.txt @@ -0,0 +1,201 @@ +$onlinerabatt_flaschenanhaenger_p = 0; +$onlinerabatt_flaschenanhaenger_f = 10; + +$onlinerabatt_digitalplot_p = 0; +$onlinerabatt_digitalplot_f = 5; + +$onlinerabatt_ausdruck_p = 0; +$onlinerabatt_ausdruck_f = 10; + +$onlinerabatt_digitalproof_p = 0; +$onlinerabatt_digitalproof_f = 0; +$medienkeil_aufpreis_f = 8; + +$onlinerabatt_farbscan_p = 0; +$onlinerabatt_farbscan_f = 5; + +$onlinerabatt_strichscan_p = 0; +$onlinerabatt_strichscan_f = 5; + +$hour_druckvorstufe = 60; +$geiferRand = 2.3; +$bogenRaender = 1.5; + +$onlinerabatt_broschuere_p = 0; +$onlinerabatt_broschuere_f = 30; +$aktionsrabatt_broschuere_p = 3; +$aktionsrabatt_broschuere_f = 0; + +$onlinerabatt_plano_p = 0; +$onlinerabatt_plano_f = 10; + +$onlinerabatt_privatdrucksachen_p = 0; +$onlinerabatt_privatdrucksachen_f = 5; + +$aktionsrabatt_plano_p = 6; +$aktionsrabatt_plano_p_vk = 6; +$aktionsrabatt_plano_f = 0; +$aktionsrabatt_plano_f_vk = 0; + +$papierzuschlag_broschuere = 1.3; +$papierzuschlag_plano = 1.3; + +$onlinerabatt_20 = -20; +$onlinerabatt_10 = -10; + +$onlinerabatt_etikett = -10; + +$kostenProDruckplatte = 15; +$stundenSatzDruck = 140; +$stundenSatzDruckGTO = 40; +$ruestZeitJeDruckplatte = 5; +$ruestZeitJeDruckplatteGTO = 15; +$kostenProZusatzdruckplatteGTO = 35; + +$farbwechselZeit = 45; +$farbwechselZeitGTO = 20; + +$stundensatz_wtv_maschinen = 50; +$stundensatz_wtv = 30; +$stundensatz_vorstufe = 60; +$stundensatz_vorstufe_daten_huellen = 60; +$vorstufe_fixkosten = 20; + +$papieraufschlag_huellen = 1.3; + +$durckfarbe_preis_je_bogen = 1; + +$buchrueckenstaerke = 0.36; + +// WTV +$ringoesen = 60; +$oesen_stkpreis = 0.20; +$oesen_fixpreis = 45; +$beilage_einlegen_bestimmte = 45; +$beilage_einlegen_unbestimmte = 35; +$buendeln = 0.15; +$perforation = 25; +$laserstanzung = 0.50; +$folieeinschweissen = 0.13; + +$ruestkosten_perforation = 35; +$ruestkosten_lochung = 15; +$ruestkosten_umlaufender_karton = 35; + +$fixkosten_nummerierung = 15; +$fixkosten_blockleimung = 25; +$fixkosten_umlaufender_karton = 0.6; + +$umschlag_kaschierung_mk = 0.8; +$umschlag_kaschierung_gl = 0.6; + +$faktor_klein_gross_falzung = 3; + +$plano_fa_aufpreis_anderes_dateiformat = 25; +$plano_fa_fixpreis_buendeln = 15; +$plano_fa_preis_je_buendel = 0.15; +$plano_fa_fixpreis_perforation = 35; +$plano_fa_tsdpreis_perforation = 35; +$plano_fa_tsdpreis_ecken_runden = 16; +$plano_fa_tsdpreis_ecken_runden_nassleimetik = 1.50; +$plano_fa_fixpreis_ecken_runden = 15; +$plano_fa_fixpreis_bohren = 25; +$plano_fa_tsdpreis_bohren = 5; +$plano_fa_stckpreis_laserstanzung = 0.50; +$plano_fa_fixpreis_laserstanzung = 150; +$plano_fa_fixpreis_cito = 260; +$plano_fa_tsdpreis_cito = 35; +$plano_fa_tsdpreis_cito_nassleimetik = 2; + +// Sammelform +$sammelform_brosch_inhalt_happy = -60; +$sammelform_brosch_inhalt_eq = -45; +$sammelform_brosch_inhalt_sense = -45; +$sammelform_brosch_inhalt_sky = -30; +$sammelform_brosch_inhalt_glam = -60; +$sammelform_brosch_inhalt_post = 0; + +$sammelform_brosch_umschlag_happy = -60; +$sammelform_brosch_umschlag_eq = -40; +$sammelform_brosch_umschlag_sense = -20; +$sammelform_brosch_umschlag_sky = -10; +$sammelform_brosch_umschlag_glam = -40; +$sammelform_brosch_umschlag_post = 0; + +$sammelform_plano_fa_happy = -180; +$sammelform_plano_fa_eq = -160; +$sammelform_plano_fa_sense = -130; +$sammelform_plano_fa_sky = -125; +$sammelform_plano_fa_glam = -90; +$sammelform_plano_fa_post = -90; +$sammelform_plano_fa_happy_rapetik = - 280; +$sammelform_plano_fa_happy_aufkleber = - 280; +$sammelform_plano_fa_eq_aufkleber = - 250; +$sammelform_plano_fa_stdformatabschlag = 30; + +// Banderolen Verschluss +$klebepunkte_lose_fix = 15; +$klebepunkte_lose_pro_tausend = 12; +$klebepunkte_vorkonf_fix = 15; +$klebepunkte_vorkonf_pro_tausend = 47; +$haftstreifen_lose_fix = 15; +$haftstreifen_lose_pro_tausend = 15; +$haftstreifen_vorkonf_fix = 45; +$haftstreifen_vorkonf_pro_tausend = 85; + +// Digitaldruck +$standard_bogenbreite = 45; +$standard_bogenhoehe = 32; +$stundensatz_vorstufe_digitaldruck = 90; +$stundensatz_nuten_digitaldruck = 15; +$stundensatz_klebebinder = 200; +$papierzuschlag_digitaldruck = 1.3; +$klick_digitaldruck_a4fbg = 0.17; +$klick_digitaldruck_a4sw = 0.07; + + +$plano_fa_maxabschlag_proz_ek = 90; +$plano_fa_maxabschlag_abs = 7; + +$plano_stanzen_fix1 = 35; +$plano_stanzen_fix1_vkru7 = 15; +$plano_stanzen_fix2 = 85; +$plano_stanzen_fix3_mappen = 260; + +$plano_stanzen_var1 = 13; +$plano_stanzen_var2 = 33; +$plano_stanzen_var3_mappen = 40; + + +$plano_praegen_fix1 = 60; +$plano_praegen_fix2 = 110; +$plano_praegen_var1 = 25; +$plano_praegen_var2 = 45; + +$plano_digitalproof_minimal = 15; + + +$plano_express_f = 45; +$plano_express_p = 13; +$plano_relax_f = 0; +$plano_relax_p = 15; +$plano_max_highend_f = 0; +$plano_max_highend_p = 10; +$plano_easy_value_f = 0; +$plano_easy_value_p = 10; + +$rdh_aufschlag_sonderformate = 1.7; +$bro_aufschlag_pur = 1.22; +$bro_aufschlag_wire_o = 1.40; +$bro_aufschlag_hdcover = 1.20; + +$bro_weight_faktor = 1.05; + +$brosch_express_f = 45; +$brosch_express_p = 13; +$brosch_relax_f = 0; +$brosch_relax_p = 8; +$brosch_max_highend_f = 60; +$brosch_max_highend_p = 10; +$brosch_easy_value_f = 0; +$brosch_easy_value_p = 10; \ No newline at end of file diff --git a/tests/Mock/Paper.php b/tests/Mock/Paper.php index ff0038c..9766dec 100644 --- a/tests/Mock/Paper.php +++ b/tests/Mock/Paper.php @@ -24,6 +24,27 @@ class Paper private $breite; private $hoehe; private $laenge; + protected $papierTyp1; + protected $papierTyp2; + protected $papierTyp3; + protected $papierTyp4; + protected $papierTyp5; + protected $papierTyp6; + protected $papierTyp7; + protected $papierTyp8; + protected $papierTyp9; + protected $papierTyp10; + protected $papierTyp11; + protected $papierTyp12; + protected $papierTyp13; + protected $papierTyp14; + protected $umschlagen; + protected $happy; + protected $eq; + protected $sense; + protected $sky; + protected $glam; + protected $post; private $rollenLaenge; @@ -1110,5 +1131,361 @@ class Paper $this->volume = $volume; } + /** + * @return mixed + */ + public function getPapierTyp1() + { + return $this->papierTyp1; + } + /** + * @param mixed $papierTyp1 + */ + public function setPapierTyp1($papierTyp1): void + { + $this->papierTyp1 = $papierTyp1; + } + + /** + * @return mixed + */ + public function getPapierTyp2() + { + return $this->papierTyp2; + } + + /** + * @param mixed $papierTyp2 + */ + public function setPapierTyp2($papierTyp2): void + { + $this->papierTyp2 = $papierTyp2; + } + + /** + * @return mixed + */ + public function getPapierTyp3() + { + return $this->papierTyp3; + } + + /** + * @param mixed $papierTyp3 + */ + public function setPapierTyp3($papierTyp3): void + { + $this->papierTyp3 = $papierTyp3; + } + + /** + * @return mixed + */ + public function getPapierTyp4() + { + return $this->papierTyp4; + } + + /** + * @param mixed $papierTyp4 + */ + public function setPapierTyp4($papierTyp4): void + { + $this->papierTyp4 = $papierTyp4; + } + + /** + * @return mixed + */ + public function getPapierTyp5() + { + return $this->papierTyp5; + } + + /** + * @param mixed $papierTyp5 + */ + public function setPapierTyp5($papierTyp5): void + { + $this->papierTyp5 = $papierTyp5; + } + + /** + * @return mixed + */ + public function getPapierTyp6() + { + return $this->papierTyp6; + } + + /** + * @param mixed $papierTyp6 + */ + public function setPapierTyp6($papierTyp6): void + { + $this->papierTyp6 = $papierTyp6; + } + + /** + * @return mixed + */ + public function getPapierTyp7() + { + return $this->papierTyp7; + } + + /** + * @param mixed $papierTyp7 + */ + public function setPapierTyp7($papierTyp7): void + { + $this->papierTyp7 = $papierTyp7; + } + + /** + * @return mixed + */ + public function getPapierTyp8() + { + return $this->papierTyp8; + } + + /** + * @param mixed $papierTyp8 + */ + public function setPapierTyp8($papierTyp8): void + { + $this->papierTyp8 = $papierTyp8; + } + + /** + * @return mixed + */ + public function getPapierTyp9() + { + return $this->papierTyp9; + } + + /** + * @param mixed $papierTyp9 + */ + public function setPapierTyp9($papierTyp9): void + { + $this->papierTyp9 = $papierTyp9; + } + + /** + * @return mixed + */ + public function getPapierTyp10() + { + return $this->papierTyp10; + } + + /** + * @param mixed $papierTyp10 + */ + public function setPapierTyp10($papierTyp10): void + { + $this->papierTyp10 = $papierTyp10; + } + + /** + * @return mixed + */ + public function getPapierTyp11() + { + return $this->papierTyp11; + } + + /** + * @param mixed $papierTyp11 + */ + public function setPapierTyp11($papierTyp11): void + { + $this->papierTyp11 = $papierTyp11; + } + + /** + * @return mixed + */ + public function getPapierTyp12() + { + return $this->papierTyp12; + } + + /** + * @param mixed $papierTyp12 + */ + public function setPapierTyp12($papierTyp12): void + { + $this->papierTyp12 = $papierTyp12; + } + + /** + * @return mixed + */ + public function getPapierTyp13() + { + return $this->papierTyp13; + } + + /** + * @param mixed $papierTyp13 + */ + public function setPapierTyp13($papierTyp13): void + { + $this->papierTyp13 = $papierTyp13; + } + + /** + * @return mixed + */ + public function getPapierTyp14() + { + return $this->papierTyp14; + } + + /** + * @param mixed $papierTyp14 + */ + public function setPapierTyp14($papierTyp14): void + { + $this->papierTyp14 = $papierTyp14; + } + + /** + * @return mixed + */ + public function getUmschlagen() + { + return $this->umschlagen; + } + + /** + * @param mixed $umschlagen + */ + public function setUmschlagen($umschlagen): void + { + $this->umschlagen = $umschlagen; + } + + /** + * @return mixed + */ + public function getHappy() + { + return $this->happy; + } + + /** + * @param mixed $happy + */ + public function setHappy($happy): void + { + $this->happy = $happy; + } + + /** + * @return mixed + */ + public function getEq() + { + return $this->eq; + } + + /** + * @param mixed $eq + */ + public function setEq($eq): void + { + $this->eq = $eq; + } + + /** + * @return mixed + */ + public function getSense() + { + return $this->sense; + } + + /** + * @param mixed $sense + */ + public function setSense($sense): void + { + $this->sense = $sense; + } + + /** + * @return mixed + */ + public function getSky() + { + return $this->sky; + } + + /** + * @param mixed $sky + */ + public function setSky($sky): void + { + $this->sky = $sky; + } + + /** + * @return mixed + */ + public function getGlam() + { + return $this->glam; + } + + /** + * @param mixed $glam + */ + public function setGlam($glam): void + { + $this->glam = $glam; + } + + /** + * @return mixed + */ + public function getPost() + { + return $this->post; + } + + /** + * @param mixed $post + */ + public function setPost($post): void + { + $this->post = $post; + } + + public function getSammelform() { + if($this->getHappy()) { + return 2; + } + if($this->getEq()) { + return 3; + } + if($this->getSense()) { + return 4; + } + if($this->getSky()) { + return 5; + } + if($this->getGlam()) { + return 6; + } + if($this->getPost()) { + return 7; + } + return 1; + } } diff --git a/tests/Mock/PaperRepostory.php b/tests/Mock/PaperRepostory.php index 944787e..0a23c05 100644 --- a/tests/Mock/PaperRepostory.php +++ b/tests/Mock/PaperRepostory.php @@ -186,6 +186,21 @@ class PaperRepostory implements ObjectRepository $papier['grasnatur205']->setDescription1('Graspapier 50% Faseranteil (205 g/m²)'); $papier['grasnatur205']->setDescription2('Graspapier 50% Faseranteil (205 g/m²)'); + $papier['sm150g'] = new Paper(); + $papier['sm150g']->setArtNr('sm150g'); + $papier['sm150g']->setGrammatur('150'); + $papier['sm150g']->setPreis('100'); + $papier['sm150g']->setVolume('1.2'); + $papier['sm150g']->setDescription1('Bilderdruck seidenmatt, aus zert. nachhaltiger Forstwirtschaft'); + $papier['sm150g']->setDescription2('Bilderdruck seidenmatt, aus zert. nachhaltiger Forstwirtschaft'); + $papier['sm150g']->setPapierTyp1(1); + $papier['sm150g']->setPapierTyp2(1); + $papier['sm150g']->setPapierTyp3(1); + $papier['sm150g']->setPapierTyp11(1); + $papier['sm150g']->setPapierTyp14(1); + $papier['sm150g']->setUmschlagen(1); + $papier['sm150g']->setHappy(1); + return $papier[$criteria['artNr']]; }