diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..4ae74ece --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,25 @@ +{ + "version": 2, + "updates": [ + { + "allow": [ + { + "dependency-type": "all" + } + ], + "directory": "/", + "package-ecosystem": "composer", + "schedule": { + "interval": "daily" + }, + "versioning-strategy": "increase" + }, + { + "directory": "/", + "package-ecosystem": "github-actions", + "schedule": { + "interval": "daily" + } + } + ] +} diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml new file mode 100644 index 00000000..1981e254 --- /dev/null +++ b/.github/workflows/continuous-integration.yml @@ -0,0 +1,32 @@ +name: "Continuous Integration" + +on: + pull_request: + push: + branches: + - 'refs/pull/*' + - 'main' + +jobs: + matrix: + name: Generate job matrix + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.matrix.outputs.matrix }} + steps: + - name: Gather CI configuration + id: matrix + uses: laminas/laminas-ci-matrix-action@v1 + + qa: + name: QA Checks + needs: [matrix] + runs-on: ${{ matrix.operatingSystem }} + strategy: + fail-fast: false + matrix: ${{ fromJSON(needs.matrix.outputs.matrix) }} + steps: + - name: ${{ matrix.name }} + uses: laminas/laminas-continuous-integration-action@v1 + with: + job: ${{ matrix.job }} diff --git a/.github/workflows/cs.yaml b/.github/workflows/cs.yaml index fd1c14c0..c2496e6c 100644 --- a/.github/workflows/cs.yaml +++ b/.github/workflows/cs.yaml @@ -1,10 +1,11 @@ name: Code Style on: - push: - branches: [ master ] pull_request: - branches: [ master ] + push: + branches: + - 'refs/pull/*' + - 'main' jobs: build: diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml new file mode 100644 index 00000000..3c5fda8f --- /dev/null +++ b/.github/workflows/phpstan.yml @@ -0,0 +1,52 @@ +name: PHPStan +on: + pull_request: + push: + branches: + - 'refs/pull/*' + - '5.x' + +env: + CI: true + +jobs: + run: + name: PHPStan ${{ matrix.php }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest ] + php: [ '8.2' ] + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install PHP + uses: shivammathur/setup-php@v2 + with: + coverage: none + php-version: ${{ matrix.php }} + ini-values: memory_limit=-1 + tools: composer:v2 + + - name: Determine composer cache directory + id: composer-cache + run: | + echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - name: Cache composer dependencies + uses: actions/cache@v4.0.0 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ matrix.php }}-composer- + + - name: Install Dependencies + run: composer update --no-progress --ansi + + - name: PHPStan + run: ./vendor/bin/phpstan analyse diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml deleted file mode 100644 index c4fd6a6b..00000000 --- a/.github/workflows/tests.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: Tests - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - include: - - { operating-system: 'ubuntu-latest', php-version: '7.4', dependencies: '--ignore-platform-req=php' } - - { operating-system: 'ubuntu-latest', php-version: '8.0', dependencies: '--ignore-platform-req=php' } - - { operating-system: 'ubuntu-latest', php-version: '8.1', dependencies: '' } - - { operating-system: 'ubuntu-latest', php-version: '8.2', dependencies: '' } - - name: PHP ${{ matrix.php-version }} - - steps: - - uses: actions/checkout@v2 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - coverage: pcov - tools: composer:v2 - - - name: Install dependencies - run: | - composer install --no-interaction --prefer-dist --no-progress ${{ matrix.dependencies }} - - - name: Run tests - run: | - php vendor/bin/phpunit diff --git a/.gitignore b/.gitignore index bb9119b4..00e1f603 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ vendor .idea .DS_Store -/zugferd10 +/composer.lock /zugferd20 /zugferd211de .phpunit.result.cache diff --git a/.laminas-ci.json b/.laminas-ci.json new file mode 100644 index 00000000..a62e148d --- /dev/null +++ b/.laminas-ci.json @@ -0,0 +1,7 @@ +{ + "exclude": [ + { + "name": "README Linting [8.0, latest]" + } + ] +} diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index b7cc88f5..13f5eb10 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -1,35 +1,52 @@ in([__DIR__ . '/src', __DIR__ . '/tests']); +/* + * This file is part of the ZUGFeRD PHP package. + * + * This source file is subject to the MIT license that is bundled + * with this source code in the file LICENSE. + */ -return (new PhpCsFixer\Config()) - ->setRiskyAllowed(false) +use PhpCsFixer\Config; +use PhpCsFixer\Finder; + +$header = <<<'EOF' +This file is part of the ZUGFeRD PHP package. + +This source file is subject to the MIT license that is bundled +with this source code in the file LICENSE. +EOF; + +$finder = (new Finder()) + ->in([ + __DIR__ . '/src', + __DIR__ . '/tests', + ]) + ->append([ + __FILE__, + ]) +; + +return (new Config()) + ->setRiskyAllowed(true) ->setRules([ - '@PSR2' => true, '@Symfony' => true, - '@PhpCsFixer' => true, + '@Symfony:risky' => true, + '@DoctrineAnnotation' => true, 'array_syntax' => ['syntax' => 'short'], - 'cast_spaces' => ['space' => 'none'], + 'phpdoc_summary' => false, + 'no_superfluous_phpdoc_tags' => true, + 'header_comment' => ['header' => $header], 'concat_space' => ['spacing' => 'one'], - 'yoda_style' => false, - 'ordered_class_elements' => false, - 'ordered_imports' => false, - //'method_argument_space' => null, - //'no_whitespace_in_blank_line' => null, - //'no_extra_blank_lines' => null, - //'braces' => null, - 'blank_line_before_statement' => false, - 'phpdoc_align' => ['align' => 'left'], - 'phpdoc_var_without_name' => false, - 'phpdoc_types_order' => false, - 'phpdoc_order' => false, - 'phpdoc_separation' => false, - //'no_superfluous_elseif' => null, - 'class_definition' => false, - 'ternary_to_null_coalescing' => true, - 'php_unit_test_class_requires_covers' => false, - 'php_unit_internal_class' => false, + 'native_constant_invocation' => true, + 'native_function_invocation' => ['include' => ['@compiler_optimized']], + 'ordered_imports' => ['sort_algorithm' => 'alpha'], + 'global_namespace_import' => ['import_functions' => true], + 'declare_strict_types' => true, + 'non_printable_character' => false, + 'no_trailing_whitespace_in_string' => false, ]) - ->setFinder($finder); \ No newline at end of file + ->setFinder($finder) +; diff --git a/README.md b/README.md index e84691a0..f207d59b 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ ZUGFeRD PHP SDK (Factur-X, XRechnung) - Convert PHP Objects to XML and back. [Look @ Tests for more details](tests) ## Installation -The recommended way of installing this library is using [Composer](http://getcomposer.org/). + +The recommended way of installing this library is using [Composer](http://getcomposer.org/). Add this repository to your composer information using the following command @@ -16,36 +17,12 @@ Add this repository to your composer information using the following command composer require easybill/zugferd-php ``` -## Usage ZUGFeRD v1 - -Convert XML to PHP Objects: - -```php -use Easybill\ZUGFeRD\Reader; - -$document = Reader::create()->getDocument('zugferd-file.xml'); -echo $document->getHeader()->getId(); // Get invoice No. -``` - -Convert PHP Objects to XML: - -```php -use Easybill\ZUGFeRD\Builder; -use Easybill\ZUGFeRD\Model\Document; - -$doc = new Document(Document::TYPE_COMFORT); -$doc->getHeader()->setId('RE1337'); // Set invoice No. - -$xml = Builder::create()->getXML($doc); -echo $xml; // Zugferd XML. -``` - ## Usage ZUGFeRD v2.1 Convert XML to PHP Objects: ```php -use Easybill\ZUGFeRD211\Reader; +use src\Reader; $xml = file_get_contents('factur-x.xml'); $obj = Reader::create()->transform($xml); @@ -54,7 +31,7 @@ $obj = Reader::create()->transform($xml); Convert PHP Objects to XML: ```php -use Easybill\ZUGFeRD211\Builder; +use src\Builder; $obj = ...; diff --git a/composer.json b/composer.json index 0f20a07f..a84d1ea5 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "easybill/zugferd-php", + "name": "silarhi/zugferd-php", "description": "ZUGFeRD PHP SDK (Factur-X, XRechnung) - Convert PHP Objects to XML and back.", "keywords": [ "ZUGFeRD", "Factur-X", "XRechnung" @@ -11,31 +11,35 @@ { "name": "Patrick Romowicz", "email": "patrick@romowicz.de" + }, + { + "name": "SILARHI", + "email": "dev@silarhi.fr" } ], "require": { - "php": "^7.4 || ^8.0", - "jms/serializer": "^3.16", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", + "jms/serializer": "^3.18", "ext-dom": "*" }, "suggest": { "ext-libxml": "Needed for XSD validation" }, "require-dev": { - "phpunit/phpunit": "^9.3", + "phpunit/phpunit": "^9.6.15", "ext-libxml": "*", - "friendsofphp/php-cs-fixer": "^3.16" + "friendsofphp/php-cs-fixer": "^3.16", + "phpstan/phpstan": "^1.10", + "rector/rector": "^1.0" }, "autoload": { "psr-4": { - "Easybill\\ZUGFeRD\\": "src/zugferd10", - "Easybill\\ZUGFeRD211\\": "src/zugferd211" + "Easybill\\ZUGFeRD\\": "src/" } }, "autoload-dev": { "psr-4": { - "Easybill\\ZUGFeRD\\": "tests/zugferd10", - "Easybill\\ZUGFeRD211\\": "tests/zugferd211" + "Easybill\\ZUGFeRD\\Tests\\": "tests/" } }, "config": { diff --git a/composer.lock b/composer.lock deleted file mode 100644 index 218417f7..00000000 --- a/composer.lock +++ /dev/null @@ -1,3985 +0,0 @@ -{ - "_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#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "9c9573174f6533c77ec3275d757d49e6", - "packages": [ - { - "name": "doctrine/annotations", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", - "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", - "shasum": "" - }, - "require": { - "doctrine/lexer": "^2 || ^3", - "ext-tokenizer": "*", - "php": "^7.2 || ^8.0", - "psr/cache": "^1 || ^2 || ^3" - }, - "require-dev": { - "doctrine/cache": "^2.0", - "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.8.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "symfony/cache": "^5.4 || ^6", - "vimeo/psalm": "^4.10" - }, - "suggest": { - "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "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" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "support": { - "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/2.0.1" - }, - "time": "2023-02-02T22:02:53+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "v1.1.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" - }, - "time": "2023-06-03T09:27:29+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^11", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^5.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-12-30T00:23:10+00:00" - }, - { - "name": "doctrine/lexer", - "version": "2.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", - "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^4.11 || ^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Lexer\\": "src" - } - }, - "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": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "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", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/2.1.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], - "time": "2022-12-14T08:49:07+00:00" - }, - { - "name": "jms/metadata", - "version": "2.8.0", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/metadata.git", - "reference": "7ca240dcac0c655eb15933ee55736ccd2ea0d7a6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/7ca240dcac0c655eb15933ee55736ccd2ea0d7a6", - "reference": "7ca240dcac0c655eb15933ee55736ccd2ea0d7a6", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0" - }, - "require-dev": { - "doctrine/cache": "^1.0", - "doctrine/coding-standard": "^8.0", - "mikey179/vfsstream": "^1.6.7", - "phpunit/phpunit": "^8.5|^9.0", - "psr/container": "^1.0|^2.0", - "symfony/cache": "^3.1|^4.0|^5.0", - "symfony/dependency-injection": "^3.1|^4.0|^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Metadata\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" - } - ], - "description": "Class/method/property metadata management in PHP", - "keywords": [ - "annotations", - "metadata", - "xml", - "yaml" - ], - "support": { - "issues": "https://github.com/schmittjoh/metadata/issues", - "source": "https://github.com/schmittjoh/metadata/tree/2.8.0" - }, - "time": "2023-02-15T13:44:18+00:00" - }, - { - "name": "jms/serializer", - "version": "3.25.0", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/serializer.git", - "reference": "d1384d37926a32b38731c1d9fed6dc71ad630d8b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/d1384d37926a32b38731c1d9fed6dc71ad630d8b", - "reference": "d1384d37926a32b38731c1d9fed6dc71ad630d8b", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.13 || ^2.0", - "doctrine/instantiator": "^1.0.3 || ^2.0", - "doctrine/lexer": "^2", - "jms/metadata": "^2.6", - "php": "^7.2||^8.0", - "phpstan/phpdoc-parser": "^0.4 || ^0.5 || ^1.0" - }, - "require-dev": { - "doctrine/coding-standard": "^8.1", - "doctrine/orm": "~2.1", - "doctrine/persistence": "^1.3.3|^2.0|^3.0", - "doctrine/phpcr-odm": "^1.3|^2.0", - "ext-pdo_sqlite": "*", - "jackalope/jackalope-doctrine-dbal": "^1.1.5", - "ocramius/proxy-manager": "^1.0|^2.0", - "phpbench/phpbench": "^1.0", - "phpstan/phpstan": "^1.0.2", - "phpunit/phpunit": "^8.5.21||^9.0||^10.0", - "psr/container": "^1.0|^2.0", - "symfony/dependency-injection": "^3.0|^4.0|^5.0|^6.0", - "symfony/expression-language": "^3.2|^4.0|^5.0|^6.0", - "symfony/filesystem": "^3.0|^4.0|^5.0|^6.0", - "symfony/form": "^3.0|^4.0|^5.0|^6.0", - "symfony/translation": "^3.0|^4.0|^5.0|^6.0", - "symfony/uid": "^5.1|^6.0", - "symfony/validator": "^3.1.9|^4.0|^5.0|^6.0", - "symfony/yaml": "^3.3|^4.0|^5.0|^6.0", - "twig/twig": "~1.34|~2.4|^3.0" - }, - "suggest": { - "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.", - "symfony/cache": "Required if you like to use cache functionality.", - "symfony/uid": "Required if you'd like to serialize UID objects.", - "symfony/yaml": "Required if you'd like to use the YAML metadata format." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "JMS\\Serializer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" - } - ], - "description": "Library for (de-)serializing data of any complexity; supports XML, and JSON.", - "homepage": "http://jmsyst.com/libs/serializer", - "keywords": [ - "deserialization", - "jaxb", - "json", - "serialization", - "xml" - ], - "support": { - "issues": "https://github.com/schmittjoh/serializer/issues", - "source": "https://github.com/schmittjoh/serializer/tree/3.25.0" - }, - "funding": [ - { - "url": "https://github.com/goetas", - "type": "github" - } - ], - "time": "2023-06-09T15:44:27+00:00" - }, - { - "name": "phpstan/phpdoc-parser", - "version": "1.22.0", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "ec58baf7b3c7f1c81b3b00617c953249fb8cf30c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/ec58baf7b3c7f1c81b3b00617c953249fb8cf30c", - "reference": "ec58baf7b3c7f1c81b3b00617c953249fb8cf30c", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/annotations": "^2.0", - "nikic/php-parser": "^4.15", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", - "symfony/process": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", - "support": { - "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.22.0" - }, - "time": "2023-06-01T12:35:21+00:00" - }, - { - "name": "psr/cache", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/3.0.0" - }, - "time": "2021-02-03T23:26:27+00:00" - } - ], - "packages-dev": [ - { - "name": "composer/pcre", - "version": "3.1.0", - "source": { - "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Pcre\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", - "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" - ], - "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-11-17T09:50:14+00:00" - }, - { - "name": "composer/semver", - "version": "3.3.2", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-04-01T19:23:25+00:00" - }, - { - "name": "composer/xdebug-handler", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", - "shasum": "" - }, - "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" - }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-02-25T21:32:43+00:00" - }, - { - "name": "friendsofphp/php-cs-fixer", - "version": "v3.16.0", - "source": { - "type": "git", - "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/d40f9436e1c448d309fa995ab9c14c5c7a96f2dc", - "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc", - "shasum": "" - }, - "require": { - "composer/semver": "^3.3", - "composer/xdebug-handler": "^3.0.3", - "doctrine/annotations": "^2", - "doctrine/lexer": "^2 || ^3", - "ext-json": "*", - "ext-tokenizer": "*", - "php": "^7.4 || ^8.0", - "sebastian/diff": "^4.0 || ^5.0", - "symfony/console": "^5.4 || ^6.0", - "symfony/event-dispatcher": "^5.4 || ^6.0", - "symfony/filesystem": "^5.4 || ^6.0", - "symfony/finder": "^5.4 || ^6.0", - "symfony/options-resolver": "^5.4 || ^6.0", - "symfony/polyfill-mbstring": "^1.27", - "symfony/polyfill-php80": "^1.27", - "symfony/polyfill-php81": "^1.27", - "symfony/process": "^5.4 || ^6.0", - "symfony/stopwatch": "^5.4 || ^6.0" - }, - "require-dev": { - "justinrainbow/json-schema": "^5.2", - "keradus/cli-executor": "^2.0", - "mikey179/vfsstream": "^1.6.11", - "php-coveralls/php-coveralls": "^2.5.3", - "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", - "phpspec/prophecy": "^1.16", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5", - "phpunitgoodpractices/polyfill": "^1.6", - "phpunitgoodpractices/traits": "^1.9.2", - "symfony/phpunit-bridge": "^6.2.3", - "symfony/yaml": "^5.4 || ^6.0" - }, - "suggest": { - "ext-dom": "For handling output formats in XML", - "ext-mbstring": "For handling non-UTF8 characters." - }, - "bin": [ - "php-cs-fixer" - ], - "type": "application", - "autoload": { - "psr-4": { - "PhpCsFixer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Dariusz Rumiński", - "email": "dariusz.ruminski@gmail.com" - } - ], - "description": "A tool to automatically fix PHP code style", - "keywords": [ - "Static code analysis", - "fixer", - "standards", - "static analysis" - ], - "support": { - "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.16.0" - }, - "funding": [ - { - "url": "https://github.com/keradus", - "type": "github" - } - ], - "time": "2023-04-02T19:30:06+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.11.1", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" - }, - "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2023-03-08T13:26:56+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.15.4", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" - }, - "time": "2023-03-05T19:49:14+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" - }, - "time": "2021-07-20T11:28:43+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "9.2.26", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-03-06T12:58:08+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "3.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-12-02T12:48:52+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:58:55+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T05:33:50+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "5.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:16:10+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "9.6.7", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c993f0d3b0489ffc42ee2fe0bd645af1538a63b2", - "reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.3.1 || ^2", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", - "sebastian/version": "^3.0.2" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.6-dev" - } - }, - "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.7" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" - } - ], - "time": "2023-04-14T08:58:40+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://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" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psr/log", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" - }, - "time": "2021-07-14T16:46:02+00:00" - }, - { - "name": "sebastian/cli-parser", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:08:49+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "1.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:08:54+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:30:19+00:00" - }, - { - "name": "sebastian/comparator", - "version": "4.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T12:41:17+00:00" - }, - { - "name": "sebastian/complexity", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.7", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T15:52:27+00:00" - }, - { - "name": "sebastian/diff", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:10:38+00:00" - }, - { - "name": "sebastian/environment", - "version": "5.1.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:03:51+00:00" - }, - { - "name": "sebastian/exporter", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T06:03:37+00:00" - }, - { - "name": "sebastian/global-state", - "version": "5.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-02-14T08:28:10+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.6", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-28T06:42:11+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:12:34+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:14:26+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:07:39+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:45:17+00:00" - }, - { - "name": "sebastian/type", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:13:03+00:00" - }, - { - "name": "sebastian/version", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:39:44+00:00" - }, - { - "name": "symfony/console", - "version": "v6.2.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "3582d68a64a86ec25240aaa521ec8bc2342b369b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3582d68a64a86ec25240aaa521ec8bc2342b369b", - "reference": "3582d68a64a86ec25240aaa521ec8bc2342b369b", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.4|^6.0" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v6.2.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-03-29T21:42:15+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.2.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e", - "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.3-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "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": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-03-01T10:25:55+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v6.2.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/04046f35fd7d72f9646e721fc2ecb8f9c67d3339", - "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/event-dispatcher-contracts": "^2|^3" - }, - "conflict": { - "symfony/dependency-injection": "<5.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/stopwatch": "^5.4|^6.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-03-20T16:06:02+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v3.2.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ad3b6f1e4e2da5690fefe075cd53a238646d8dd", - "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/event-dispatcher": "^1" - }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.3-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "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 dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-03-01T10:32:47+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v6.2.7", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "82b6c62b959f642d000456f08c6d219d749215b3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/82b6c62b959f642d000456f08c6d219d749215b3", - "reference": "82b6c62b959f642d000456f08c6d219d749215b3", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.2.7" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-02-14T08:44:56+00:00" - }, - { - "name": "symfony/finder", - "version": "v6.2.7", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/20808dc6631aecafbe67c186af5dcb370be3a0eb", - "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "symfony/filesystem": "^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v6.2.7" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-02-16T09:57:23+00:00" - }, - { - "name": "symfony/options-resolver", - "version": "v6.2.7", - "source": { - "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "aa0e85b53bbb2b4951960efd61d295907eacd629" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/aa0e85b53bbb2b4951960efd61d295907eacd629", - "reference": "aa0e85b53bbb2b4951960efd61d295907eacd629", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an improved replacement for the array_replace PHP function", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ], - "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.2.7" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-02-14T08:44:56+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "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" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "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 for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "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 for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "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 for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-php81", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "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 8.1+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/process", - "version": "v6.2.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "75ed64103df4f6615e15a7fe38b8111099f47416" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/75ed64103df4f6615e15a7fe38b8111099f47416", - "reference": "75ed64103df4f6615e15a7fe38b8111099f47416", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v6.2.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-03-09T16:20:02+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.2.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "a8c9cedf55f314f3a186041d19537303766df09a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a8c9cedf55f314f3a186041d19537303766df09a", - "reference": "a8c9cedf55f314f3a186041d19537303766df09a", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^2.0" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.3-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "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" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.2.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-03-01T10:32:47+00:00" - }, - { - "name": "symfony/stopwatch", - "version": "v6.2.7", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "f3adc98c1061875dd2edcd45e5b04e63d0e29f8f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f3adc98c1061875dd2edcd45e5b04e63d0e29f8f", - "reference": "f3adc98c1061875dd2edcd45e5b04e63d0e29f8f", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/service-contracts": "^1|^2|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a way to profile code", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.2.7" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-02-14T08:44:56+00:00" - }, - { - "name": "symfony/string", - "version": "v6.2.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/193e83bbd6617d6b2151c37fff10fa7168ebddef", - "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.0" - }, - "require-dev": { - "symfony/error-handler": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/intl": "^6.2", - "symfony/translation-contracts": "^2.0|^3.0", - "symfony/var-exporter": "^5.4|^6.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v6.2.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-03-20T16:06:02+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2021-07-28T10:34:58+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": "^7.4 || ^8.0", - "ext-dom": "*" - }, - "platform-dev": { - "ext-libxml": "*" - }, - "plugin-api-version": "2.3.0" -} diff --git a/phpstan.dist.neon b/phpstan.dist.neon new file mode 100644 index 00000000..54e6f5d4 --- /dev/null +++ b/phpstan.dist.neon @@ -0,0 +1,5 @@ +parameters: + level: 6 + paths: + - src + - tests diff --git a/rector.php b/rector.php new file mode 100644 index 00000000..6ca8ca4d --- /dev/null +++ b/rector.php @@ -0,0 +1,39 @@ + + * This source file is subject to the MIT license that is bundled + * with this source code in the file LICENSE. + */ + +use Rector\Config\RectorConfig; +use Rector\Php80\Rector\Class_\AnnotationToAttributeRector; +use Rector\Php80\ValueObject\AnnotationToAttribute; +use Rector\Set\ValueObject\LevelSetList; +use Rector\Set\ValueObject\SetList; + +return static function (RectorConfig $config): void { + $config->importShortClasses(); + $config->importNames(); + + $config->paths([ + __DIR__ . '/src', + __DIR__ . '/tests', + ]); + + $config->import(LevelSetList::UP_TO_PHP_80); + $config->import(SetList::CODE_QUALITY); + + $config->ruleWithConfiguration(AnnotationToAttributeRector::class, [ + new AnnotationToAttribute('JMS\Serializer\Annotation\SerializedName'), + new AnnotationToAttribute('JMS\Serializer\Annotation\Type'), + new AnnotationToAttribute('JMS\Serializer\Annotation\XmlValue'), + new AnnotationToAttribute('JMS\Serializer\Annotation\XmlAttribute'), + new AnnotationToAttribute('JMS\Serializer\Annotation\XmlElement'), + new AnnotationToAttribute('JMS\Serializer\Annotation\XmlList'), + ]); +}; diff --git a/src/zugferd211/Builder.php b/src/Builder.php similarity index 53% rename from src/zugferd211/Builder.php rename to src/Builder.php index cb64804f..6a95f3ec 100644 --- a/src/zugferd211/Builder.php +++ b/src/Builder.php @@ -1,18 +1,24 @@ serializer = $serializer; } public function transform(CrossIndustryInvoice $crossIndustryInvoice): string @@ -20,12 +26,13 @@ public function transform(CrossIndustryInvoice $crossIndustryInvoice): string return $this->serializer->serialize($crossIndustryInvoice, 'xml'); } - public static function create(): Builder + public static function create(): self { $serializer = SerializerBuilder::create() ->setDebug(true) ->build() ; + return new self($serializer); } } diff --git a/src/zugferd211/Model/Amount.php b/src/Model/Amount.php similarity index 56% rename from src/zugferd211/Model/Amount.php rename to src/Model/Amount.php index 468f95a7..ed8ed0ea 100644 --- a/src/zugferd211/Model/Amount.php +++ b/src/Model/Amount.php @@ -1,6 +1,15 @@ value = $amount; $self->currency = $currency; + return $self; } } diff --git a/src/Model/BinaryObject.php b/src/Model/BinaryObject.php new file mode 100644 index 00000000..5e4e96ad --- /dev/null +++ b/src/Model/BinaryObject.php @@ -0,0 +1,31 @@ +dateTimeString = DateTimeString::create($format, $value); + + return $self; + } +} diff --git a/src/Model/DateTimeString.php b/src/Model/DateTimeString.php new file mode 100644 index 00000000..a1238b0d --- /dev/null +++ b/src/Model/DateTimeString.php @@ -0,0 +1,34 @@ +format = $format; + $self->value = $value; + + return $self; + } +} diff --git a/src/Model/DebtorFinancialAccount.php b/src/Model/DebtorFinancialAccount.php new file mode 100644 index 00000000..c66a0381 --- /dev/null +++ b/src/Model/DebtorFinancialAccount.php @@ -0,0 +1,24 @@ +id = $id; + + return $self; + } +} diff --git a/src/Model/DocumentLineDocument.php b/src/Model/DocumentLineDocument.php new file mode 100644 index 00000000..bb28028d --- /dev/null +++ b/src/Model/DocumentLineDocument.php @@ -0,0 +1,40 @@ +')] + #[XmlList(inline: true, entry: 'IncludedNote', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $notes = []; + + public static function create(string $lineId): self + { + $self = new self(); + $self->lineId = $lineId; + + return $self; + } +} diff --git a/src/Model/ExchangedDocument.php b/src/Model/ExchangedDocument.php new file mode 100644 index 00000000..83681185 --- /dev/null +++ b/src/Model/ExchangedDocument.php @@ -0,0 +1,55 @@ +')] + #[XmlElement(cdata: false)] + #[XmlList(inline: true, entry: 'LanguageID', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $languageId = []; + + /** + * @var Note[] + */ + #[Type('array')] + #[XmlList(inline: true, entry: 'IncludedNote', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $notes = []; +} diff --git a/src/Model/ExchangedDocumentContext.php b/src/Model/ExchangedDocumentContext.php new file mode 100644 index 00000000..372b52b6 --- /dev/null +++ b/src/Model/ExchangedDocumentContext.php @@ -0,0 +1,24 @@ +dateTimeString = DateTimeString::create($format, $value); + + return $self; + } +} diff --git a/src/Model/HeaderTradeAgreement.php b/src/Model/HeaderTradeAgreement.php new file mode 100644 index 00000000..c89a22bb --- /dev/null +++ b/src/Model/HeaderTradeAgreement.php @@ -0,0 +1,57 @@ +')] + #[XmlList(inline: true, entry: 'AdditionalReferencedDocument', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $additionalReferencedDocuments = []; + + #[Type(ProcuringProject::class)] + #[SerializedName('SpecifiedProcuringProject')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public ?ProcuringProject $specifiedProcuringProject = null; +} diff --git a/src/Model/HeaderTradeDelivery.php b/src/Model/HeaderTradeDelivery.php new file mode 100644 index 00000000..d331d3d5 --- /dev/null +++ b/src/Model/HeaderTradeDelivery.php @@ -0,0 +1,34 @@ +')] + #[XmlList(inline: true, entry: 'SpecifiedTradeSettlementPaymentMeans', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $specifiedTradeSettlementPaymentMeans = []; + + /** + * @var TradeTax[] + */ + #[Type('array')] + #[XmlList(inline: true, entry: 'ApplicableTradeTax', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $tradeTaxes = []; + + /** + * @var TradeAllowanceCharge[] + */ + #[Type('array')] + #[XmlList(inline: true, entry: 'SpecifiedTradeAllowanceCharge', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $specifiedTradeAllowanceCharge = []; + + /** + * @var LogisticsServiceCharge[] + */ + #[Type('array')] + #[XmlList(inline: true, entry: 'SpecifiedLogisticsServiceCharge', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $specifiedLogisticsServiceCharge = []; + + /** + * @var TradePaymentTerms[] + */ + #[Type('array')] + #[XmlList(inline: true, entry: 'SpecifiedTradePaymentTerms', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $specifiedTradePaymentTerms = []; + + #[Type(TradeSettlementHeaderMonetarySummation::class)] + #[SerializedName('SpecifiedTradeSettlementHeaderMonetarySummation')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public TradeSettlementHeaderMonetarySummation $specifiedTradeSettlementHeaderMonetarySummation; + + #[Type(ReferencedDocument::class)] + #[SerializedName('InvoiceReferencedDocument')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public ?ReferencedDocument $invoiceReferencedDocument = null; +} diff --git a/src/zugferd211/Model/Id.php b/src/Model/Id.php similarity index 58% rename from src/zugferd211/Model/Id.php rename to src/Model/Id.php index 3465f1f0..4ae1b6f3 100644 --- a/src/zugferd211/Model/Id.php +++ b/src/Model/Id.php @@ -1,6 +1,15 @@ value = $id; $self->schemeID = $schemeID; + return $self; } } diff --git a/src/Model/Indicator.php b/src/Model/Indicator.php new file mode 100644 index 00000000..68198012 --- /dev/null +++ b/src/Model/Indicator.php @@ -0,0 +1,22 @@ +')] + #[XmlList(inline: true, entry: 'ApplicableTradeTax', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $tradeTax = []; + + /** + * @var TradeAllowanceCharge[] + */ + #[Type('array')] + #[XmlList(inline: true, entry: 'SpecifiedTradeAllowanceCharge', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $specifiedTradeAllowanceCharge = []; + + #[Type(Period::class)] + #[SerializedName('BillingSpecifiedPeriod')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public ?Period $billingSpecifiedPeriod = null; + + #[Type(TradeSettlementLineMonetarySummation::class)] + #[SerializedName('SpecifiedTradeSettlementLineMonetarySummation')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public TradeSettlementLineMonetarySummation $monetarySummation; + + /** + * @var TradeAccountingAccount[] + */ + #[Type('array')] + #[XmlList(inline: true, entry: 'ReceivableSpecifiedTradeAccountingAccount', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $tradeAccountingAccount = []; +} diff --git a/src/Model/LogisticsServiceCharge.php b/src/Model/LogisticsServiceCharge.php new file mode 100644 index 00000000..88d54989 --- /dev/null +++ b/src/Model/LogisticsServiceCharge.php @@ -0,0 +1,37 @@ +')] + #[XmlList(inline: true, entry: 'AppliedTradeTax', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $tradeTaxes = []; +} diff --git a/src/Model/Note.php b/src/Model/Note.php new file mode 100644 index 00000000..7c342c29 --- /dev/null +++ b/src/Model/Note.php @@ -0,0 +1,44 @@ +content = $content; + $self->subjectCode = $subjectCode; + $self->contentCode = $contentCode; + + return $self; + } +} diff --git a/src/Model/Period.php b/src/Model/Period.php new file mode 100644 index 00000000..2273e613 --- /dev/null +++ b/src/Model/Period.php @@ -0,0 +1,29 @@ +id = $id; + $self->name = $name; + + return $self; + } +} diff --git a/src/zugferd211/Model/Quantity.php b/src/Model/Quantity.php similarity index 55% rename from src/zugferd211/Model/Quantity.php rename to src/Model/Quantity.php index 77dc1286..67eadefd 100644 --- a/src/zugferd211/Model/Quantity.php +++ b/src/Model/Quantity.php @@ -1,6 +1,15 @@ value = $value; $self->unitCode = $unitCode; + return $self; } } diff --git a/src/Model/ReferencedDocument.php b/src/Model/ReferencedDocument.php new file mode 100644 index 00000000..7ec5593a --- /dev/null +++ b/src/Model/ReferencedDocument.php @@ -0,0 +1,57 @@ +issuerAssignedID = Id::create($issuerAssignedID); + + return $self; + } +} diff --git a/src/Model/SupplyChainEvent.php b/src/Model/SupplyChainEvent.php new file mode 100644 index 00000000..85a72b7c --- /dev/null +++ b/src/Model/SupplyChainEvent.php @@ -0,0 +1,24 @@ +')] + #[XmlList(inline: true, entry: 'IncludedSupplyChainTradeLineItem', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $lineItems = []; + + #[Type(HeaderTradeAgreement::class)] + #[SerializedName('ApplicableHeaderTradeAgreement')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public HeaderTradeAgreement $applicableHeaderTradeAgreement; + + #[Type(HeaderTradeDelivery::class)] + #[SerializedName('ApplicableHeaderTradeDelivery')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public HeaderTradeDelivery $applicableHeaderTradeDelivery; + + #[Type(HeaderTradeSettlement::class)] + #[SerializedName('ApplicableHeaderTradeSettlement')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public HeaderTradeSettlement $applicableHeaderTradeSettlement; +} diff --git a/src/Model/TaxRegistration.php b/src/Model/TaxRegistration.php new file mode 100644 index 00000000..2c2d192b --- /dev/null +++ b/src/Model/TaxRegistration.php @@ -0,0 +1,32 @@ +registration = Id::create($id, $schemeID); + + return $self; + } +} diff --git a/src/Model/TradeAccountingAccount.php b/src/Model/TradeAccountingAccount.php new file mode 100644 index 00000000..414cd7d0 --- /dev/null +++ b/src/Model/TradeAccountingAccount.php @@ -0,0 +1,29 @@ +')] + #[JMS\XmlList(inline: true, entry: 'CategoryTradeTax', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $tradeTax = []; +} diff --git a/src/Model/TradeContact.php b/src/Model/TradeContact.php new file mode 100644 index 00000000..28106e59 --- /dev/null +++ b/src/Model/TradeContact.php @@ -0,0 +1,44 @@ +id = $id; + + return $self; + } +} diff --git a/src/Model/TradeParty.php b/src/Model/TradeParty.php new file mode 100644 index 00000000..7467af40 --- /dev/null +++ b/src/Model/TradeParty.php @@ -0,0 +1,69 @@ +')] + #[XmlList(inline: true, entry: 'GlobalID', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $globalID = []; + + #[Type('string')] + #[SerializedName('Name')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public string $name; + + #[Type('string')] + #[SerializedName('RoleCode')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public ?string $roleCode = null; + + #[Type('string')] + #[SerializedName('Description')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public ?string $description = null; + + #[Type(LegalOrganization::class)] + #[SerializedName('SpecifiedLegalOrganization')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public ?LegalOrganization $specifiedLegalOrganization = null; + + #[Type(TradeContact::class)] + #[SerializedName('DefinedTradeContact')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public ?TradeContact $definedTradeContact = null; + + #[Type(TradeAddress::class)] + #[SerializedName('PostalTradeAddress')] + #[XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public ?TradeAddress $postalTradeAddress = null; + + /** + * @var TaxRegistration[] + */ + #[Type('array')] + #[XmlList(inline: true, entry: 'SpecifiedTaxRegistration', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public $taxRegistrations = []; +} diff --git a/src/Model/TradePaymentTerms.php b/src/Model/TradePaymentTerms.php new file mode 100644 index 00000000..055add4d --- /dev/null +++ b/src/Model/TradePaymentTerms.php @@ -0,0 +1,32 @@ +chargeAmount = Amount::create($amount); + $self->basisQuantity = $quantity; + $self->appliedTradeAllowanceCharge = $appliedTradeAllowanceCharge; + + return $self; + } +} diff --git a/src/Model/TradeProduct.php b/src/Model/TradeProduct.php new file mode 100644 index 00000000..68410644 --- /dev/null +++ b/src/Model/TradeProduct.php @@ -0,0 +1,44 @@ +')] + #[XmlList(inline: true, entry: 'TaxBasisTotalAmount', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $taxBasisTotalAmount = []; + + /** + * @var Amount[] + */ + #[JMS\Type('array')] + #[XmlList(inline: true, entry: 'TaxTotalAmount', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $taxTotalAmount = []; + + #[JMS\Type(Amount::class)] + #[JMS\SerializedName('RoundingAmount')] + #[JMS\XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public ?Amount $roundingAmount = null; + + /** + * @var Amount[] + */ + #[JMS\Type('array')] + #[XmlList(inline: true, entry: 'GrandTotalAmount', namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public array $grandTotalAmount = []; + + #[JMS\Type(Amount::class)] + #[JMS\SerializedName('TotalPrepaidAmount')] + #[JMS\XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public ?Amount $totalPrepaidAmount = null; + + #[JMS\Type(Amount::class)] + #[JMS\SerializedName('DuePayableAmount')] + #[JMS\XmlElement(cdata: false, namespace: 'urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100')] + public Amount $duePayableAmount; +} diff --git a/src/Model/TradeSettlementLineMonetarySummation.php b/src/Model/TradeSettlementLineMonetarySummation.php new file mode 100644 index 00000000..32784346 --- /dev/null +++ b/src/Model/TradeSettlementLineMonetarySummation.php @@ -0,0 +1,40 @@ +totalAmount = Amount::create($totalAmount); + if (null != $totalAllowanceChargeAmount) { + $self->totalAllowanceChargeAmount = Amount::create($totalAllowanceChargeAmount); + } + + return $self; + } +} diff --git a/src/Model/TradeSettlementPaymentMeans.php b/src/Model/TradeSettlementPaymentMeans.php new file mode 100644 index 00000000..9704487b --- /dev/null +++ b/src/Model/TradeSettlementPaymentMeans.php @@ -0,0 +1,48 @@ +serializer = $serializer; } public function transform(string $xml): CrossIndustryInvoice @@ -20,12 +26,13 @@ public function transform(string $xml): CrossIndustryInvoice return $this->serializer->deserialize($xml, CrossIndustryInvoice::class, 'xml'); } - public static function create(): Reader + public static function create(): self { $serializer = SerializerBuilder::create() ->setDebug(true) ->build() ; + return new self($serializer); } } diff --git a/src/zugferd211/Schema/BASIC-WL/FACTUR-X_BASIC-WL.xsd b/src/Schema/BASIC-WL/FACTUR-X_BASIC-WL.xsd similarity index 100% rename from src/zugferd211/Schema/BASIC-WL/FACTUR-X_BASIC-WL.xsd rename to src/Schema/BASIC-WL/FACTUR-X_BASIC-WL.xsd diff --git a/src/zugferd211/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd b/src/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd similarity index 100% rename from src/zugferd211/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd rename to src/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd diff --git a/src/zugferd211/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd b/src/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd similarity index 100% rename from src/zugferd211/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd rename to src/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd diff --git a/src/zugferd211/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd b/src/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd similarity index 100% rename from src/zugferd211/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd rename to src/Schema/BASIC-WL/FACTUR-X_BASIC-WL_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd diff --git a/src/zugferd211/Schema/BASIC-WL/Schematron/FACTUR-X_BASIC-WL.sch b/src/Schema/BASIC-WL/Schematron/FACTUR-X_BASIC-WL.sch similarity index 100% rename from src/zugferd211/Schema/BASIC-WL/Schematron/FACTUR-X_BASIC-WL.sch rename to src/Schema/BASIC-WL/Schematron/FACTUR-X_BASIC-WL.sch diff --git a/src/zugferd211/Schema/BASIC-WL/Schematron/FACTUR-X_BASIC-WL_codedb.xml b/src/Schema/BASIC-WL/Schematron/FACTUR-X_BASIC-WL_codedb.xml similarity index 100% rename from src/zugferd211/Schema/BASIC-WL/Schematron/FACTUR-X_BASIC-WL_codedb.xml rename to src/Schema/BASIC-WL/Schematron/FACTUR-X_BASIC-WL_codedb.xml diff --git a/src/zugferd211/Schema/BASIC/FACTUR-X_BASIC.xsd b/src/Schema/BASIC/FACTUR-X_BASIC.xsd similarity index 100% rename from src/zugferd211/Schema/BASIC/FACTUR-X_BASIC.xsd rename to src/Schema/BASIC/FACTUR-X_BASIC.xsd diff --git a/src/zugferd211/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd b/src/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd similarity index 100% rename from src/zugferd211/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd rename to src/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd diff --git a/src/zugferd211/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd b/src/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd similarity index 100% rename from src/zugferd211/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd rename to src/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd diff --git a/src/zugferd211/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd b/src/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd similarity index 100% rename from src/zugferd211/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd rename to src/Schema/BASIC/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd diff --git a/src/zugferd211/Schema/BASIC/Schematron/FACTUR-X_BASIC.sch b/src/Schema/BASIC/Schematron/FACTUR-X_BASIC.sch similarity index 100% rename from src/zugferd211/Schema/BASIC/Schematron/FACTUR-X_BASIC.sch rename to src/Schema/BASIC/Schematron/FACTUR-X_BASIC.sch diff --git a/src/zugferd211/Schema/BASIC/Schematron/FACTUR-X_BASIC_codedb.xml b/src/Schema/BASIC/Schematron/FACTUR-X_BASIC_codedb.xml similarity index 100% rename from src/zugferd211/Schema/BASIC/Schematron/FACTUR-X_BASIC_codedb.xml rename to src/Schema/BASIC/Schematron/FACTUR-X_BASIC_codedb.xml diff --git a/src/zugferd211/Schema/EN16931/FACTUR-X_EN16931.xsd b/src/Schema/EN16931/FACTUR-X_EN16931.xsd similarity index 100% rename from src/zugferd211/Schema/EN16931/FACTUR-X_EN16931.xsd rename to src/Schema/EN16931/FACTUR-X_EN16931.xsd diff --git a/src/zugferd211/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd b/src/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd similarity index 100% rename from src/zugferd211/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd rename to src/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd diff --git a/src/zugferd211/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd b/src/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd similarity index 100% rename from src/zugferd211/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd rename to src/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd diff --git a/src/zugferd211/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd b/src/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd similarity index 100% rename from src/zugferd211/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd rename to src/Schema/EN16931/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd diff --git a/src/zugferd211/Schema/EN16931/Schematron/EN16931-CII-validation.xslt b/src/Schema/EN16931/Schematron/EN16931-CII-validation.xslt similarity index 100% rename from src/zugferd211/Schema/EN16931/Schematron/EN16931-CII-validation.xslt rename to src/Schema/EN16931/Schematron/EN16931-CII-validation.xslt diff --git a/src/zugferd211/Schema/EN16931/Schematron/FACTUR-X_EN16931.sch b/src/Schema/EN16931/Schematron/FACTUR-X_EN16931.sch similarity index 100% rename from src/zugferd211/Schema/EN16931/Schematron/FACTUR-X_EN16931.sch rename to src/Schema/EN16931/Schematron/FACTUR-X_EN16931.sch diff --git a/src/zugferd211/Schema/EN16931/Schematron/FACTUR-X_EN16931_codedb.xml b/src/Schema/EN16931/Schematron/FACTUR-X_EN16931_codedb.xml similarity index 100% rename from src/zugferd211/Schema/EN16931/Schematron/FACTUR-X_EN16931_codedb.xml rename to src/Schema/EN16931/Schematron/FACTUR-X_EN16931_codedb.xml diff --git a/src/zugferd211/Schema/EXTENDED/FACTUR-X_EXTENDED.xsd b/src/Schema/EXTENDED/FACTUR-X_EXTENDED.xsd similarity index 100% rename from src/zugferd211/Schema/EXTENDED/FACTUR-X_EXTENDED.xsd rename to src/Schema/EXTENDED/FACTUR-X_EXTENDED.xsd diff --git a/src/zugferd211/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd b/src/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd similarity index 100% rename from src/zugferd211/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd rename to src/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd diff --git a/src/zugferd211/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd b/src/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd similarity index 100% rename from src/zugferd211/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd rename to src/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd diff --git a/src/zugferd211/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd b/src/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd similarity index 100% rename from src/zugferd211/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd rename to src/Schema/EXTENDED/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd diff --git a/src/zugferd211/Schema/EXTENDED/Schematron/FACTUR-X_EXTENDED.sch b/src/Schema/EXTENDED/Schematron/FACTUR-X_EXTENDED.sch similarity index 100% rename from src/zugferd211/Schema/EXTENDED/Schematron/FACTUR-X_EXTENDED.sch rename to src/Schema/EXTENDED/Schematron/FACTUR-X_EXTENDED.sch diff --git a/src/zugferd211/Schema/EXTENDED/Schematron/FACTUR-X_EXTENDED_codedb.xml b/src/Schema/EXTENDED/Schematron/FACTUR-X_EXTENDED_codedb.xml similarity index 100% rename from src/zugferd211/Schema/EXTENDED/Schematron/FACTUR-X_EXTENDED_codedb.xml rename to src/Schema/EXTENDED/Schematron/FACTUR-X_EXTENDED_codedb.xml diff --git a/src/zugferd211/Schema/MINIMUM/FACTUR-X_MINIMUM.xsd b/src/Schema/MINIMUM/FACTUR-X_MINIMUM.xsd similarity index 100% rename from src/zugferd211/Schema/MINIMUM/FACTUR-X_MINIMUM.xsd rename to src/Schema/MINIMUM/FACTUR-X_MINIMUM.xsd diff --git a/src/zugferd211/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd b/src/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd similarity index 100% rename from src/zugferd211/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd rename to src/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd diff --git a/src/zugferd211/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd b/src/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd similarity index 100% rename from src/zugferd211/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd rename to src/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd diff --git a/src/zugferd211/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd b/src/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd similarity index 100% rename from src/zugferd211/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd rename to src/Schema/MINIMUM/FACTUR-X_MINIMUM_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd diff --git a/src/zugferd211/Schema/MINIMUM/Schematron/FACTUR-X_MINIMUM.sch b/src/Schema/MINIMUM/Schematron/FACTUR-X_MINIMUM.sch similarity index 100% rename from src/zugferd211/Schema/MINIMUM/Schematron/FACTUR-X_MINIMUM.sch rename to src/Schema/MINIMUM/Schematron/FACTUR-X_MINIMUM.sch diff --git a/src/zugferd211/Schema/MINIMUM/Schematron/FACTUR-X_MINIMUM_codedb.xml b/src/Schema/MINIMUM/Schematron/FACTUR-X_MINIMUM_codedb.xml similarity index 100% rename from src/zugferd211/Schema/MINIMUM/Schematron/FACTUR-X_MINIMUM_codedb.xml rename to src/Schema/MINIMUM/Schematron/FACTUR-X_MINIMUM_codedb.xml diff --git a/src/zugferd211/Validator.php b/src/Validator.php similarity index 77% rename from src/zugferd211/Validator.php rename to src/Validator.php index fe80de20..2c90310d 100644 --- a/src/zugferd211/Validator.php +++ b/src/Validator.php @@ -1,6 +1,17 @@ loadXML($xml); try { @@ -22,6 +33,7 @@ public function validateAgainstXsd(string $xml, string $schemaFile): ?string if ($isValid) { return null; } + return implode("\n", array_column(libxml_get_errors(), 'message')); } finally { libxml_use_internal_errors(false); diff --git a/src/zugferd10/Assets/Schema/ZUGFeRD1p0.xsd b/src/zugferd10/Assets/Schema/ZUGFeRD1p0.xsd deleted file mode 100755 index cc3075a4..00000000 --- a/src/zugferd10/Assets/Schema/ZUGFeRD1p0.xsd +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/zugferd10/Assets/Schema/ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_QualifiedDataType_12.xsd b/src/zugferd10/Assets/Schema/ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_QualifiedDataType_12.xsd deleted file mode 100755 index 42b66e81..00000000 --- a/src/zugferd10/Assets/Schema/ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_QualifiedDataType_12.xsd +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/zugferd10/Assets/Schema/ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_12.xsd b/src/zugferd10/Assets/Schema/ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_12.xsd deleted file mode 100755 index d207ef0a..00000000 --- a/src/zugferd10/Assets/Schema/ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_12.xsd +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/zugferd10/Assets/Schema/ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_15.xsd b/src/zugferd10/Assets/Schema/ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_15.xsd deleted file mode 100755 index 49670142..00000000 --- a/src/zugferd10/Assets/Schema/ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_15.xsd +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/zugferd10/Builder.php b/src/zugferd10/Builder.php deleted file mode 100644 index 05eee3f2..00000000 --- a/src/zugferd10/Builder.php +++ /dev/null @@ -1,31 +0,0 @@ -serializer = $serializer; - } - - public function getXML(Document $document): string - { - return $this->serializer->serialize($document, 'xml'); - } - - public static function create(): Builder - { - $serializer = SerializerBuilder::create() - ->setDebug(true) - ->build() - ; - return new self($serializer); - } -} diff --git a/src/zugferd10/Helper/UnitCodeHelper.php b/src/zugferd10/Helper/UnitCodeHelper.php deleted file mode 100644 index 0e350e3d..00000000 --- a/src/zugferd10/Helper/UnitCodeHelper.php +++ /dev/null @@ -1,46 +0,0 @@ -postcode = $postcode; - $this->lineOne = $lineOne; - $this->lineTwo = $lineTwo; - $this->city = $city; - $this->countryCode = $countryCode; - } - - /** - * @return string - */ - public function getPostcode() - { - return $this->postcode; - } - - /** - * @param string $postcode - */ - public function setPostcode($postcode) - { - $this->postcode = $postcode; - } - - /** - * @return string - */ - public function getLineOne() - { - return $this->lineOne; - } - - /** - * @param string $lineOne - */ - public function setLineOne($lineOne) - { - $this->lineOne = $lineOne; - } - - /** - * @return string - */ - public function getLineTwo() - { - return $this->lineTwo; - } - - /** - * @param string $lineTwo - */ - public function setLineTwo($lineTwo) - { - $this->lineTwo = $lineTwo; - } - - /** - * @return string - */ - public function getCity() - { - return $this->city; - } - - /** - * @param string $city - */ - public function setCity($city) - { - $this->city = $city; - } - - /** - * @return string - */ - public function getCountryCode() - { - return $this->countryCode; - } - - /** - * @param string $countryCode - */ - public function setCountryCode($countryCode) - { - $this->countryCode = $countryCode; - } -} diff --git a/src/zugferd10/Model/AllowanceCharge.php b/src/zugferd10/Model/AllowanceCharge.php deleted file mode 100644 index 0967d4f8..00000000 --- a/src/zugferd10/Model/AllowanceCharge.php +++ /dev/null @@ -1,245 +0,0 @@ -") - * @JMS\XmlList(inline = true, entry = "CategoryTradeTax", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $categoryTradeTaxes; - - /** - * AllowanceCharge constructor. - */ - public function __construct(bool $indicator, float $actualAmount, string $currency = 'EUR', bool $isSum = false) - { - $this->indicator = new Indicator($indicator); - $this->actualAmount = new Amount($actualAmount, $currency, $isSum); - } - - /** - * @return bool - */ - public function getIndicator() - { - return $this->indicator->getIndicator(); - } - - /** - * @param bool $indicator - * - * @return self - */ - public function setIndicator($indicator) - { - $this->indicator->setIndicator($indicator); - return $this; - } - - /** - * @return Amount - */ - public function getActualAmount() - { - return $this->actualAmount; - } - - /** - * @param Amount $actualAmount - * - * @return self - */ - public function setActualAmount($actualAmount) - { - $this->actualAmount = $actualAmount; - return $this; - } - - /** - * @return null|string - */ - public function getReason() - { - return $this->reason; - } - - public function setReason(string $reason): AllowanceCharge - { - $this->reason = $reason; - return $this; - } - - public function getCategoryTradeTaxes(): array - { - return $this->categoryTradeTaxes; - } - - /** - * @return self - */ - public function addCategoryTradeTax(TradeTax $tradeTax) - { - $this->categoryTradeTaxes[] = $tradeTax; - return $this; - } - - /** - * @return string - */ - public function getSequenceNumeric() - { - return $this->sequenceNumeric; - } - - /** - * @return self - */ - public function setSequenceNumeric(string $sequenceNumeric) - { - $this->sequenceNumeric = $sequenceNumeric; - return $this; - } - - /** - * @return string - */ - public function getCalculationPercent() - { - return $this->calculationPercent; - } - - /** - * @return self - */ - public function setCalculationPercent(string $calculationPercent) - { - $this->calculationPercent = $calculationPercent; - return $this; - } - - /** - * @return Quantity - */ - public function getBasisQuantity() - { - return $this->basisQuantity; - } - - /** - * @return self - */ - public function setBasisQuantity(Quantity $basisQuantity) - { - $this->basisQuantity = $basisQuantity; - return $this; - } - - /** - * @return Amount - */ - public function getBasisAmount() - { - return $this->basisAmount; - } - - /** - * @return self - */ - public function setBasisAmount(Amount $basisAmount) - { - $this->basisAmount = $basisAmount; - return $this; - } - - /** - * @return string - */ - public function getReasonCode() - { - return $this->reasonCode; - } - - /** - * @return self - */ - public function setReasonCode(string $reasonCode) - { - $this->reasonCode = $reasonCode; - return $this; - } -} diff --git a/src/zugferd10/Model/ContextParameterID.php b/src/zugferd10/Model/ContextParameterID.php deleted file mode 100644 index b03ee6fb..00000000 --- a/src/zugferd10/Model/ContextParameterID.php +++ /dev/null @@ -1,25 +0,0 @@ -id = $value; - } -} diff --git a/src/zugferd10/Model/Date.php b/src/zugferd10/Model/Date.php deleted file mode 100644 index ecab974c..00000000 --- a/src/zugferd10/Model/Date.php +++ /dev/null @@ -1,45 +0,0 @@ -date = new DateTime($date, $format); - } - - /** - * @return string - */ - public function getDate() - { - return $this->date->getTime(); - } - - /** - * @return int - */ - public function getFormat() - { - return $this->date->getFormat(); - } -} diff --git a/src/zugferd10/Model/DateTime.php b/src/zugferd10/Model/DateTime.php deleted file mode 100644 index 8ed1d93e..00000000 --- a/src/zugferd10/Model/DateTime.php +++ /dev/null @@ -1,73 +0,0 @@ -time = $dateTime->format($formatStr); - $this->format = $format; - } - - /** - * @return int - */ - public function getFormat() - { - return $this->format; - } - - /** - * @return string - */ - public function getTime() - { - return $this->time; - } -} diff --git a/src/zugferd10/Model/Document.php b/src/zugferd10/Model/Document.php deleted file mode 100644 index 22d6a345..00000000 --- a/src/zugferd10/Model/Document.php +++ /dev/null @@ -1,92 +0,0 @@ -context = new DocumentContext($type, $testIndicator); - $this->header = new Header(); - $this->trade = new Trade(); - } - - /** - * @return DocumentContext - */ - public function getContext() - { - return $this->context; - } - - /** - * @return Header - */ - public function getHeader() - { - return $this->header; - } - - /** - * @param Header $header - */ - public function setHeader($header) - { - $this->header = $header; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Trade - */ - public function getTrade() - { - return $this->trade; - } - - public function setTrade(Trade $trade) - { - $this->trade = $trade; - } -} diff --git a/src/zugferd10/Model/DocumentContext.php b/src/zugferd10/Model/DocumentContext.php deleted file mode 100644 index 5d7451c6..00000000 --- a/src/zugferd10/Model/DocumentContext.php +++ /dev/null @@ -1,47 +0,0 @@ -type = new ContextParameterID('urn:ferd:CrossIndustryDocument:invoice:1p0:' . strtolower($type)); - if ($testIndicator) { - $this->setTestIndicator($testIndicator); - } - } - - /** - * @return null|Indicator - */ - public function getTestIndicator() - { - return $this->testIndicator; - } - - public function setTestIndicator(bool $bool) - { - $this->testIndicator = new Indicator($bool); - } -} diff --git a/src/zugferd10/Model/Header.php b/src/zugferd10/Model/Header.php deleted file mode 100644 index 0bde56f3..00000000 --- a/src/zugferd10/Model/Header.php +++ /dev/null @@ -1,142 +0,0 @@ -") - * @XmlList(inline = true, entry = "IncludedNote", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $notes = []; - - /** - * @return string - */ - public function getId() - { - return $this->id; - } - - /** - * @param string $id - * - * @return self - */ - public function setId($id) - { - $this->id = (string)$id; - return $this; - } - - /** - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * @param string $name - * - * @return self - */ - public function setName($name) - { - $this->name = (string)$name; - return $this; - } - - /** - * @return string - */ - public function getTypeCode() - { - return $this->typeCode; - } - - /** - * @param string $typeCode - * - * @return self - */ - public function setTypeCode($typeCode) - { - $this->typeCode = (string)$typeCode; - return $this; - } - - /** - * @return self - */ - public function addNote(Note $note) - { - $this->notes[] = $note; - return $this; - } - - /** - * @return Note[] - */ - public function getNotes() - { - return $this->notes; - } - - /** - * @return Date - */ - public function getDate() - { - return $this->date; - } - - /** - * @return self - */ - public function setDate(Date $date) - { - $this->date = $date; - - return $this; - } -} diff --git a/src/zugferd10/Model/Indicator.php b/src/zugferd10/Model/Indicator.php deleted file mode 100644 index e20f2e43..00000000 --- a/src/zugferd10/Model/Indicator.php +++ /dev/null @@ -1,45 +0,0 @@ -indicator = $indicator; - } - - /** - * @return bool - */ - public function getIndicator() - { - return $this->indicator; - } - - /** - * @param bool $indicator - */ - public function setIndicator($indicator) - { - $this->indicator = $indicator; - } -} diff --git a/src/zugferd10/Model/Note.php b/src/zugferd10/Model/Note.php deleted file mode 100644 index 89d47aff..00000000 --- a/src/zugferd10/Model/Note.php +++ /dev/null @@ -1,86 +0,0 @@ -setContent($content); - $this->setSubjectCode($subjectCode); - } - - /** - * @return string - */ - public function getContent() - { - return $this->content; - } - - /** - * @param string $content - * - * @return self - */ - public function setContent($content) - { - $this->content = (string)$content; - return $this; - } - - /** - * @return string - */ - public function getSubjectCode() - { - return $this->subjectCode; - } - - /** - * @param string|null $subjectCode - */ - public function setSubjectCode($subjectCode) - { - if ($subjectCode !== null - && strlen($subjectCode) > 0 - && $subjectCode !== 'REG' - && $subjectCode !== 'AAK' - && $subjectCode !== 'AAJ' - && $subjectCode !== 'PMT' - ) { - throw new \RuntimeException('Invalid subject code! Please set it to null or to an empty string, REG, AAK, AAJ, PMT or '); - } - - $this->subjectCode = $subjectCode; - } -} diff --git a/src/zugferd10/Model/Schema.php b/src/zugferd10/Model/Schema.php deleted file mode 100644 index 6e60386f..00000000 --- a/src/zugferd10/Model/Schema.php +++ /dev/null @@ -1,70 +0,0 @@ -schemeID = $schemeID; - $this->value = $value; - } - - /** - * @return string - */ - public function getSchemeID() - { - return $this->schemeID; - } - - /** - * @param string $schemeID - */ - public function setSchemeID($schemeID) - { - $this->schemeID = $schemeID; - } - - /** - * @return string - */ - public function getValue() - { - return $this->value; - } - - /** - * @param string $value - */ - public function setValue($value) - { - $this->value = $value; - } -} diff --git a/src/zugferd10/Model/Trade/Agreement.php b/src/zugferd10/Model/Trade/Agreement.php deleted file mode 100644 index 387588d8..00000000 --- a/src/zugferd10/Model/Trade/Agreement.php +++ /dev/null @@ -1,168 +0,0 @@ -") - * @XmlList(inline = true, entry = "AdditionalReferencedDocument", namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $additionalReferencedDocuments; - - /** - * @var ReferencedDocument - * @Type("Easybill\ZUGFeRD\Model\Trade\ReferencedDocument") - * @XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - * @SerializedName("CustomerOrderReferencedDocument") - */ - private $customerOrderReferencedDocument; - - /** - * @return string - */ - public function getBuyerReference() - { - return $this->name; - } - - /** - * @param string $buyerReference - * - * @return self - */ - public function setBuyerReference($buyerReference) - { - $this->buyerReference = $buyerReference; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\TradeParty - */ - public function getSeller() - { - return $this->seller; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\TradeParty $seller - * - * @return self - */ - public function setSeller($seller) - { - $this->seller = $seller; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\TradeParty - */ - public function getBuyer() - { - return $this->buyer; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\TradeParty $buyer - * - * @return self - */ - public function setBuyer($buyer) - { - $this->buyer = $buyer; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\ReferencedDocument - */ - public function getBuyerOrder() - { - return $this->buyerOrder; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\ReferencedDocument $buyerOrder - * @return Agreement - */ - public function setBuyerOrder(ReferencedDocument $buyerOrder) - { - $this->buyerOrder = $buyerOrder; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\ReferencedDocument[] - */ - public function getAdditionalReferencedDocuments() - { - return $this->additionalReferencedDocuments; - } - - /** - * @return self - */ - public function addAdditionalReferencedDocument(ReferencedDocument $additionalReferencedDocument) - { - $this->additionalReferencedDocuments[] = $additionalReferencedDocument; - - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\ReferencedDocument - */ - public function getCustomerOrderReferencedDocument() - { - return $this->customerOrderReferencedDocument; - } - - /** - * @return self - */ - public function setCustomerOrderReferencedDocument(ReferencedDocument $customerOrderReferencedDocument) - { - $this->customerOrderReferencedDocument = $customerOrderReferencedDocument; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/Amount.php b/src/zugferd10/Model/Trade/Amount.php deleted file mode 100644 index ab568928..00000000 --- a/src/zugferd10/Model/Trade/Amount.php +++ /dev/null @@ -1,77 +0,0 @@ -setValue($value, $isSum); - $this->currency = $currency; - } - - /** - * @return string - */ - public function getValue() - { - return $this->value; - } - - /** - * @param string $value - * @return self - */ - public function setValue($value, bool $isSum = true) - { - $this->value = number_format($value, $isSum ? 2 : 4, '.', ''); - return $this; - } - - /** - * @return string - */ - public function getCurrency() - { - return $this->currency; - } - - /** - * @param string $currency - * @return self - */ - public function setCurrency($currency) - { - $this->currency = $currency; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/BillingPeriod.php b/src/zugferd10/Model/Trade/BillingPeriod.php deleted file mode 100644 index ef2201b1..00000000 --- a/src/zugferd10/Model/Trade/BillingPeriod.php +++ /dev/null @@ -1,67 +0,0 @@ -start = $start; - $this->end = $end; - } - - /** - * @return Date - */ - public function getStart() - { - return $this->start; - } - - /** - * @param Date $start - * @return self - */ - public function setStart($start) - { - $this->start = $start; - return $this; - } - - /** - * @return Date - */ - public function getEnd() - { - return $this->end; - } - - /** - * @param Date $end - * @return self - */ - public function setEnd($end) - { - $this->end = $end; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/CreditorFinancialAccount.php b/src/zugferd10/Model/Trade/CreditorFinancialAccount.php deleted file mode 100644 index c25fa4ea..00000000 --- a/src/zugferd10/Model/Trade/CreditorFinancialAccount.php +++ /dev/null @@ -1,98 +0,0 @@ -iban = $iban; - $this->accountName = $accountName; - $this->proprietary = $proprietary; - } - - /** - * @return string - */ - public function getIban() - { - return $this->iban; - } - - /** - * @param string $iban - */ - public function setIban($iban) - { - $this->iban = $iban; - } - - /** - * @return string - */ - public function getAccountName() - { - return $this->accountName; - } - - /** - * @param string $accountName - */ - public function setAccountName($accountName) - { - $this->accountName = $accountName; - } - - /** - * @return string - */ - public function getProprietary() - { - return $this->proprietary; - } - - /** - * @param string $proprietary - */ - public function setProprietary($proprietary) - { - $this->proprietary = $proprietary; - } -} diff --git a/src/zugferd10/Model/Trade/CreditorFinancialInstitution.php b/src/zugferd10/Model/Trade/CreditorFinancialInstitution.php deleted file mode 100644 index 409394fe..00000000 --- a/src/zugferd10/Model/Trade/CreditorFinancialInstitution.php +++ /dev/null @@ -1,102 +0,0 @@ -bic = $bic; - $this->germanBLZ = $germanBLZ; - $this->name = $name; - } - - /** - * @return string - */ - public function getBic() - { - return $this->bic; - } - - /** - * @param string $bic - */ - public function setBic($bic) - { - $this->bic = $bic; - } - - /** - * @return string - */ - public function getGermanBLZ() - { - return $this->germanBLZ; - } - - /** - * @param string $germanBLZ - */ - public function setGermanBLZ($germanBLZ) - { - $this->germanBLZ = $germanBLZ; - } - - /** - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * @param string $name - */ - public function setName($name) - { - $this->name = $name; - } -} diff --git a/src/zugferd10/Model/Trade/Delivery.php b/src/zugferd10/Model/Trade/Delivery.php deleted file mode 100644 index 997e5b46..00000000 --- a/src/zugferd10/Model/Trade/Delivery.php +++ /dev/null @@ -1,120 +0,0 @@ -chainEvent = new DeliveryChainEvent($date, $format); - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\DeliveryChainEvent - */ - public function getChainEvent() - { - return $this->chainEvent; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\DeliveryChainEvent $chainEvent - */ - public function setChainEvent($chainEvent) - { - $this->chainEvent = $chainEvent; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\TradeParty - */ - public function getShipToTradeParty() - { - return $this->shipToTradeParty; - } - - /** - * @return self - */ - public function setShipToTradeParty(TradeParty $shipToTradeParty) - { - $this->shipToTradeParty = $shipToTradeParty; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\TradeParty - */ - public function getUltimateShipToTradeParty() - { - return $this->ultimateShipToTradeParty; - } - - /** - * @return self - */ - public function setUltimateShipToTradeParty(TradeParty $ultimateShipToTradeParty) - { - $this->ultimateShipToTradeParty = $ultimateShipToTradeParty; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\TradeParty - */ - public function getShipFromTradeParty() - { - return $this->shipFromTradeParty; - } - - /** - * @return self - */ - public function setShipFromTradeParty(TradeParty $shipFromTradeParty) - { - $this->shipFromTradeParty = $shipFromTradeParty; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/DeliveryChainEvent.php b/src/zugferd10/Model/Trade/DeliveryChainEvent.php deleted file mode 100644 index 5a61efdc..00000000 --- a/src/zugferd10/Model/Trade/DeliveryChainEvent.php +++ /dev/null @@ -1,46 +0,0 @@ -date = new Date($date, $format); - } - - /** - * @return \Easybill\ZUGFeRD\Model\Date - */ - public function getDate() - { - return $this->date; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Date $date - */ - public function setDate($date) - { - $this->date = $date; - } -} diff --git a/src/zugferd10/Model/Trade/Item/LineDocument.php b/src/zugferd10/Model/Trade/Item/LineDocument.php deleted file mode 100644 index cf555189..00000000 --- a/src/zugferd10/Model/Trade/Item/LineDocument.php +++ /dev/null @@ -1,73 +0,0 @@ -") - * @XmlList(inline = true, entry = "IncludedNote", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $notes = []; - - /** - * LineDocument constructor. - * - * @param string $lineId - */ - public function __construct($lineId = '') - { - $this->lineId = $lineId; - } - - /** - * @return string - */ - public function getLineId() - { - return $this->lineId; - } - - /** - * @param string $lineId - * - * @return self - */ - public function setLineId($lineId) - { - $this->lineId = $lineId; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Note[] - */ - public function getNotes() - { - return $this->notes; - } - - /** - * @return self - */ - public function addNote(Note $note) - { - $this->notes[] = $note; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/Item/LineItem.php b/src/zugferd10/Model/Trade/Item/LineItem.php deleted file mode 100644 index 240431d7..00000000 --- a/src/zugferd10/Model/Trade/Item/LineItem.php +++ /dev/null @@ -1,145 +0,0 @@ -lineDocument; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Item\LineDocument $lineDocument - * - * @return self - */ - public function setLineDocument(LineDocument $lineDocument) - { - $this->lineDocument = $lineDocument; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Item\SpecifiedTradeAgreement - */ - public function getTradeAgreement() - { - return $this->tradeAgreement; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Item\SpecifiedTradeAgreement $tradeAgreement - * - * @return self - */ - public function setTradeAgreement($tradeAgreement) - { - $this->tradeAgreement = $tradeAgreement; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Item\SpecifiedTradeDelivery - */ - public function getDelivery() - { - return $this->delivery; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Item\SpecifiedTradeDelivery $delivery - * - * @return self - */ - public function setDelivery($delivery) - { - $this->delivery = $delivery; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Item\SpecifiedTradeSettlement - */ - public function getSettlement() - { - return $this->settlement; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Item\SpecifiedTradeSettlement $settlement - * - * @return self - */ - public function setSettlement($settlement) - { - $this->settlement = $settlement; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Item\Product - */ - public function getProduct() - { - return $this->product; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Item\Product $product - * - * @return self - */ - public function setProduct(Product $product) - { - $this->product = $product; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/Item/Price.php b/src/zugferd10/Model/Trade/Item/Price.php deleted file mode 100644 index 1db5ea3d..00000000 --- a/src/zugferd10/Model/Trade/Item/Price.php +++ /dev/null @@ -1,95 +0,0 @@ -") - * @JMS\XmlList(inline = true, entry = "AppliedTradeAllowanceCharge", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $allowanceCharges = []; - - /** - * GrossPrice constructor. - * - * @param float $value - * @param string $currency - * @param bool $isSum - */ - public function __construct($value, $currency = 'EUR', $isSum = true) - { - $this->amount = new Amount($value, $currency, $isSum); - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Amount - */ - public function getAmount() - { - return $this->amount; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Amount $amount - */ - public function setAmount($amount) - { - $this->amount = $amount; - } - - /** - * @return \Easybill\ZUGFeRD\Model\AllowanceCharge[] - */ - public function getAllowanceCharges() - { - return $this->allowanceCharges; - } - - /** - * @return self - */ - public function addAllowanceCharge(AllowanceCharge $allowanceCharge) - { - $this->allowanceCharges[] = $allowanceCharge; - return $this; - } - - /** - * @return Quantity - */ - public function getQuantity() - { - return $this->quantity; - } - - /** - * @return self - */ - public function setQuantity(Quantity $quantity) - { - $this->quantity = $quantity; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/Item/Product.php b/src/zugferd10/Model/Trade/Item/Product.php deleted file mode 100644 index 15bc7e6e..00000000 --- a/src/zugferd10/Model/Trade/Item/Product.php +++ /dev/null @@ -1,152 +0,0 @@ -") - * @XmlList(inline = true, entry = "OriginTradeCountry", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $tradeCountries = []; - - /** - * Product constructor. - * - * @param string $sellerAssignedID - * @param string $name - * @param null|mixed $description - */ - public function __construct($sellerAssignedID, $name, $description = null) - { - $this->sellerAssignedID = $sellerAssignedID; - $this->name = $name; - $this->description = $description; - } - - /** - * @return string - */ - public function getSellerAssignedID() - { - return $this->sellerAssignedID; - } - - /** - * @param string $sellerAssignedID - */ - public function setSellerAssignedID($sellerAssignedID) - { - $this->sellerAssignedID = $sellerAssignedID; - } - - /** - * @return string - */ - public function getBuyerAssignedID() - { - return $this->buyerAssignedID; - } - - /** - * @return self - */ - public function setBuyerAssignedID(string $buyerAssignedID) - { - $this->buyerAssignedID = $buyerAssignedID; - return $this; - } - - /** - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * @param string $name - */ - public function setName($name) - { - $this->name = $name; - } - - /** - * @return string - */ - public function getDescription() - { - return $this->description; - } - - /** - * @return self - */ - public function setDescription(string $description) - { - $this->description = $description; - return $this; - } - - /** - * @return TradeCountry[] - */ - public function getTradeCountries() - { - return $this->tradeCountries; - } - - /** - * @param TradeCountry[] $tradeCountry - * @return self - */ - public function addTradeCountry(TradeCountry $tradeCountry) - { - $this->tradeCountries[] = $tradeCountry; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/Item/Quantity.php b/src/zugferd10/Model/Trade/Item/Quantity.php deleted file mode 100644 index 05396dca..00000000 --- a/src/zugferd10/Model/Trade/Item/Quantity.php +++ /dev/null @@ -1,70 +0,0 @@ -unitCode = $unitCode; - $this->setValue($value); - } - - /** - * @return string - */ - public function getUnitCode() - { - return $this->unitCode; - } - - /** - * @param string $unitCode - */ - public function setUnitCode($unitCode) - { - $this->unitCode = $unitCode; - } - - /** - * @return string - */ - public function getValue() - { - return $this->value; - } - - /** - * @param float $value - */ - public function setValue($value) - { - $this->value = number_format($value, 4, '.', ''); - } -} diff --git a/src/zugferd10/Model/Trade/Item/SpecifiedTradeAgreement.php b/src/zugferd10/Model/Trade/Item/SpecifiedTradeAgreement.php deleted file mode 100644 index d6bec72f..00000000 --- a/src/zugferd10/Model/Trade/Item/SpecifiedTradeAgreement.php +++ /dev/null @@ -1,64 +0,0 @@ -grossPrice; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Item\Price $grossPrice - * - * @return self - */ - public function setGrossPrice($grossPrice) - { - $this->grossPrice = $grossPrice; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Item\Price - */ - public function getNetPrice() - { - return $this->netPrice; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Item\Price $netPrice - * - * @return self - */ - public function setNetPrice($netPrice) - { - $this->netPrice = $netPrice; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/Item/SpecifiedTradeDelivery.php b/src/zugferd10/Model/Trade/Item/SpecifiedTradeDelivery.php deleted file mode 100644 index 71931b0a..00000000 --- a/src/zugferd10/Model/Trade/Item/SpecifiedTradeDelivery.php +++ /dev/null @@ -1,42 +0,0 @@ -billedQuantity = $billedQuantity; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Item\Quantity - */ - public function getBilledQuantity() - { - return $this->billedQuantity; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Item\Quantity $billedQuantity - */ - public function setBilledQuantity($billedQuantity) - { - $this->billedQuantity = $billedQuantity; - } -} diff --git a/src/zugferd10/Model/Trade/Item/SpecifiedTradeMonetarySummation.php b/src/zugferd10/Model/Trade/Item/SpecifiedTradeMonetarySummation.php deleted file mode 100644 index da746a3b..00000000 --- a/src/zugferd10/Model/Trade/Item/SpecifiedTradeMonetarySummation.php +++ /dev/null @@ -1,70 +0,0 @@ -totalAmount = new Amount($value, $currency); - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Amount - */ - public function getTotalAmount() - { - return $this->totalAmount; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Amount $totalAmount - */ - public function setTotalAmount($totalAmount) - { - $this->totalAmount = $totalAmount; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Amount - */ - public function getTotalAllowanceChargeAmount() - { - return $this->totalAllowanceChargeAmount; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Amount $totalAllowanceChargeAmount - */ - public function setTotalAllowanceChargeAmount($totalAllowanceChargeAmount) - { - $this->totalAllowanceChargeAmount = $totalAllowanceChargeAmount; - } -} diff --git a/src/zugferd10/Model/Trade/Item/SpecifiedTradeSettlement.php b/src/zugferd10/Model/Trade/Item/SpecifiedTradeSettlement.php deleted file mode 100644 index bc747173..00000000 --- a/src/zugferd10/Model/Trade/Item/SpecifiedTradeSettlement.php +++ /dev/null @@ -1,65 +0,0 @@ -tradeTax; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Tax\TradeTax $tradeTax - * - * @return self - */ - public function setTradeTax($tradeTax) - { - $this->tradeTax = $tradeTax; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Item\SpecifiedTradeMonetarySummation - */ - public function getMonetarySummation() - { - return $this->monetarySummation; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Item\SpecifiedTradeMonetarySummation $monetarySummation - * - * @return self - */ - public function setMonetarySummation($monetarySummation) - { - $this->monetarySummation = $monetarySummation; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/MonetarySummation.php b/src/zugferd10/Model/Trade/MonetarySummation.php deleted file mode 100644 index f765c787..00000000 --- a/src/zugferd10/Model/Trade/MonetarySummation.php +++ /dev/null @@ -1,250 +0,0 @@ -lineTotal = new Amount($lineTotal, $currency); - $this->chargeTotal = new Amount($chargeTotal, $currency); - $this->allowanceTotal = new Amount($allowanceTotal, $currency); - $this->taxBasisTotal = new Amount($taxBasisTotal, $currency); - $this->taxTotal = new Amount($taxTotal, $currency); - $this->grandTotal = new Amount($grandTotal, $currency); - } - - /** - * @return Amount - */ - public function getLineTotal() - { - return $this->lineTotal; - } - - /** - * @param Amount $lineTotal - */ - public function setLineTotal($lineTotal) - { - $this->lineTotal = $lineTotal; - } - - /** - * @return Amount - */ - public function getChargeTotal() - { - return $this->chargeTotal; - } - - /** - * @param Amount $chargeTotal - */ - public function setChargeTotal($chargeTotal) - { - $this->chargeTotal = $chargeTotal; - } - - /** - * @return Amount - */ - public function getAllowanceTotal() - { - return $this->allowanceTotal; - } - - /** - * @param Amount $allowanceTotal - */ - public function setAllowanceTotal($allowanceTotal) - { - $this->allowanceTotal = $allowanceTotal; - } - - /** - * @return Amount - */ - public function getTaxBasisTotal() - { - return $this->taxBasisTotal; - } - - /** - * @param Amount $taxBasisTotal - */ - public function setTaxBasisTotal($taxBasisTotal) - { - $this->taxBasisTotal = $taxBasisTotal; - } - - /** - * @return Amount - */ - public function getTaxTotal() - { - return $this->taxTotal; - } - - /** - * @param Amount $taxTotal - */ - public function setTaxTotal($taxTotal) - { - $this->taxTotal = $taxTotal; - } - - /** - * @return Amount - */ - public function getGrandTotal() - { - return $this->grandTotal; - } - - /** - * @param Amount $grandTotal - */ - public function setGrandTotal($grandTotal) - { - $this->grandTotal = $grandTotal; - } - - /** - * @return Amount - */ - public function getTotalPrepaidAmount() - { - return $this->totalPrepaidAmount; - } - - /** - * @param Amount $totalPrepaidAmount gross amount - * @return self - */ - public function setTotalPrepaidAmount(Amount $totalPrepaidAmount) - { - $this->totalPrepaidAmount = $totalPrepaidAmount; - return $this; - } - - /** - * @return Amount - */ - public function getDuePayableAmount() - { - return $this->duePayableAmount; - } - - /** - * @param Amount $duePayableAmount gross amount - * @return self - */ - public function setDuePayableAmount(Amount $duePayableAmount) - { - $this->duePayableAmount = $duePayableAmount; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/PaymentMeans.php b/src/zugferd10/Model/Trade/PaymentMeans.php deleted file mode 100644 index 90f3234f..00000000 --- a/src/zugferd10/Model/Trade/PaymentMeans.php +++ /dev/null @@ -1,100 +0,0 @@ -code; - } - - public function setCode(?string $code): self - { - $this->code = $code; - return $this; - } - - public function getInformation(): ?string - { - return $this->information; - } - - public function setInformation(?string $information): self - { - $this->information = $information; - return $this; - } - - /** - * @return CreditorFinancialAccount - */ - public function getPayeeAccount() - { - return $this->payeeAccount; - } - - /** - * @return self - */ - public function setPayeeAccount(CreditorFinancialAccount $payeeAccount) - { - $this->payeeAccount = $payeeAccount; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\CreditorFinancialInstitution - */ - public function getPayeeInstitution() - { - return $this->payeeInstitution; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\CreditorFinancialInstitution $payeeInstitution - * - * @return self - */ - public function setPayeeInstitution($payeeInstitution) - { - $this->payeeInstitution = $payeeInstitution; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/PaymentTerms.php b/src/zugferd10/Model/Trade/PaymentTerms.php deleted file mode 100644 index 50f5a0dc..00000000 --- a/src/zugferd10/Model/Trade/PaymentTerms.php +++ /dev/null @@ -1,68 +0,0 @@ -description = $description; - $this->dueDate = $dueDate; - } - - /** - * @return string - */ - public function getDescription() - { - return $this->description; - } - - /** - * @param string $description - */ - public function setDescription($description) - { - $this->description = $description; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Date - */ - public function getDueDate() - { - return $this->dueDate; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Date $dueDate - */ - public function setDueDate($dueDate) - { - $this->dueDate = $dueDate; - } -} diff --git a/src/zugferd10/Model/Trade/ReferencedDocument.php b/src/zugferd10/Model/Trade/ReferencedDocument.php deleted file mode 100644 index 8f0d62ad..00000000 --- a/src/zugferd10/Model/Trade/ReferencedDocument.php +++ /dev/null @@ -1,92 +0,0 @@ -issuedDateTime = $issuedDateTime; - $this->typeCode = $typeCode; - $this->id = $id; - } - - /** - * @return string - */ - public function getId() - { - return $this->id; - } - - /** - * @return self - */ - public function setId(string $id) - { - $this->id = $id; - return $this; - } - - /** - * @return string - */ - public function getIssuedDateTime() - { - return $this->issuedDateTime; - } - - /** - * @return self - */ - public function setIssuedDateTime(string $issuedDateTime) - { - $this->issuedDateTime = $issuedDateTime; - return $this; - } - - /** - * @return string - */ - public function getTypeCode() - { - return $this->typeCode; - } - - /** - * @return self - */ - public function setTypeCode(string $typeCode) - { - $this->typeCode = $typeCode; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/Settlement.php b/src/zugferd10/Model/Trade/Settlement.php deleted file mode 100644 index 4a5ef233..00000000 --- a/src/zugferd10/Model/Trade/Settlement.php +++ /dev/null @@ -1,307 +0,0 @@ -") - * @XmlList(inline = true, entry = "ApplicableTradeTax", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $tradeTaxes = []; - - /** - * @var AllowanceCharge[] - * @Type("array") - * @XmlList(inline = true, entry = "SpecifiedTradeAllowanceCharge", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $allowanceCharges = []; - - /** - * @var SpecifiedLogisticsServiceCharge[] - * @Type("array") - * @XmlList(inline = true, entry = "SpecifiedLogisticsServiceCharge", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $logisticsServiceCharge = []; - - /** - * @var BillingPeriod - * @Type("Easybill\ZUGFeRD\Model\Trade\BillingPeriod") - * @XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - * @SerializedName("BillingSpecifiedPeriod") - */ - private $billingPeriod; - - /** - * @var MonetarySummation - * @Type("Easybill\ZUGFeRD\Model\Trade\MonetarySummation") - * @XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - * @SerializedName("SpecifiedTradeSettlementMonetarySummation") - */ - private $monetarySummation; - - /** - * @var PaymentTerms - * @Type("Easybill\ZUGFeRD\Model\Trade\PaymentTerms") - * @XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - * @SerializedName("SpecifiedTradePaymentTerms") - */ - private $paymentTerms; - - /** - * Settlement constructor. - * - * @param string $paymentReference - * @param string $currency - */ - public function __construct($paymentReference = '', $currency = 'EUR') - { - $this->paymentReference = $paymentReference; - $this->currency = $currency; - $this->paymentMeans = new PaymentMeans(); - } - - /** - * @return string - */ - public function getPaymentReference() - { - return $this->paymentReference; - } - - /** - * @param string $paymentReference - * @return self - */ - public function setPaymentReference($paymentReference) - { - $this->paymentReference = $paymentReference; - return $this; - } - - /** - * @return string - */ - public function getCurrency() - { - return $this->currency; - } - - /** - * @param string $currency - * @return self - */ - public function setCurrency($currency) - { - $this->currency = $currency; - return $this; - } - - /** - * @return PaymentMeans - */ - public function getPaymentMeans() - { - return $this->paymentMeans; - } - - /** - * @return self - */ - public function setPaymentMeans(PaymentMeans $paymentMeans) - { - $this->paymentMeans = $paymentMeans; - return $this; - } - - /** - * @return TradeTax[] - */ - public function getTradeTaxes() - { - return $this->tradeTaxes; - } - - /** - * @return self - */ - public function addTradeTax(TradeTax $tradeTax) - { - $this->tradeTaxes[] = $tradeTax; - return $this; - } - - /** - * @return AllowanceCharge[] - */ - public function getAllowanceCharges(): array - { - return $this->allowanceCharges; - } - - /** - * @return self - */ - public function addAllowanceCharge(AllowanceCharge $allowanceCharge) - { - $this->allowanceCharges[] = $allowanceCharge; - return $this; - } - - /** - * @return MonetarySummation - */ - public function getMonetarySummation() - { - return $this->monetarySummation; - } - - /** - * @param MonetarySummation $monetarySummation - * @return self - */ - public function setMonetarySummation($monetarySummation) - { - $this->monetarySummation = $monetarySummation; - return $this; - } - - /** - * @return PaymentTerms - */ - public function getPaymentTerms() - { - return $this->paymentTerms; - } - - /** - * @param PaymentTerms $paymentTerms - * @return self - */ - public function setPaymentTerms($paymentTerms) - { - $this->paymentTerms = $paymentTerms; - return $this; - } - - /** - * @return BillingPeriod - */ - public function getBillingPeriod() - { - return $this->billingPeriod; - } - - /** - * @param BillingPeriod $billingPeriod - * @return self - */ - public function setBillingPeriod($billingPeriod) - { - $this->billingPeriod = $billingPeriod; - return $this; - } - - /** - * @return SpecifiedLogisticsServiceCharge[] - */ - public function getLogisticsServiceCharge() - { - return $this->logisticsServiceCharge; - } - - /** - * @return self - */ - public function addLogisticsServiceCharge(SpecifiedLogisticsServiceCharge $logisticsServiceCharge) - { - $this->logisticsServiceCharge[] = $logisticsServiceCharge; - return $this; - } - - /** - * @return TradeParty - */ - public function getInvoiceeTradeParty() - { - return $this->invoiceeTradeParty; - } - - /** - * @return self - */ - public function setInvoiceeTradeParty(TradeParty $invoiceeTradeParty) - { - $this->invoiceeTradeParty = $invoiceeTradeParty; - return $this; - } - - /** - * @return TradeParty - */ - public function getPayeeTradeParty() - { - return $this->payeeTradeParty; - } - - /** - * @return self - */ - public function setPayeeTradeParty(TradeParty $payeeTradeParty) - { - $this->payeeTradeParty = $payeeTradeParty; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/SpecifiedLogisticsServiceCharge.php b/src/zugferd10/Model/Trade/SpecifiedLogisticsServiceCharge.php deleted file mode 100644 index 155cbc09..00000000 --- a/src/zugferd10/Model/Trade/SpecifiedLogisticsServiceCharge.php +++ /dev/null @@ -1,94 +0,0 @@ -") - * @XmlList(inline = true, entry = "AppliedTradeTax", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $tradeTaxes = []; - - public function __construct(string $description, Amount $appliedAmount) - { - $this->description = $description; - $this->appliedAmount = $appliedAmount; - } - - /** - * Get the value of description. - * @return string - */ - public function getDescription() - { - return $this->description; - } - - /** - * @return self - */ - public function setDescription(string $description) - { - $this->description = $description; - return $this; - } - - /** - * @return Amount - */ - public function getAppliedAmount() - { - return $this->appliedAmount; - } - - /** - * @return self - */ - public function setAppliedAmount(Amount $appliedAmount) - { - $this->appliedAmount = $appliedAmount; - return $this; - } - - /** - * @return TradeTax[] - */ - public function getTradeTaxes() - { - return $this->tradeTaxes; - } - - /** - * @param TradeTax $tradeTaxes - * @return self - */ - public function addTradeTax(TradeTax $tradeTax) - { - $this->tradeTaxes[] = $tradeTax; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/Tax/Registration.php b/src/zugferd10/Model/Trade/Tax/Registration.php deleted file mode 100644 index 9892d38c..00000000 --- a/src/zugferd10/Model/Trade/Tax/Registration.php +++ /dev/null @@ -1,70 +0,0 @@ -schemeID = $schemeID; - $this->value = $value; - } - - /** - * @return string - */ - public function getSchemeID() - { - return $this->schemeID; - } - - /** - * @param string $schemeID - */ - public function setSchemeID($schemeID) - { - $this->schemeID = $schemeID; - } - - /** - * @return string - */ - public function getValue() - { - return $this->value; - } - - /** - * @param string $value - */ - public function setValue($value) - { - $this->value = $value; - } -} diff --git a/src/zugferd10/Model/Trade/Tax/TaxRegistration.php b/src/zugferd10/Model/Trade/Tax/TaxRegistration.php deleted file mode 100644 index 8be3d3f7..00000000 --- a/src/zugferd10/Model/Trade/Tax/TaxRegistration.php +++ /dev/null @@ -1,45 +0,0 @@ -registration = new Registration($schemeID, $value); - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Tax\Registration - */ - public function getRegistration() - { - return $this->registration; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Tax\Registration $registration - */ - public function setRegistration(Registration $registration) - { - $this->registration = $registration; - } -} diff --git a/src/zugferd10/Model/Trade/Tax/TradeTax.php b/src/zugferd10/Model/Trade/Tax/TradeTax.php deleted file mode 100644 index 9b59812a..00000000 --- a/src/zugferd10/Model/Trade/Tax/TradeTax.php +++ /dev/null @@ -1,218 +0,0 @@ -calculatedAmount; - } - - /** - * @param Amount $calculatedAmount - * @return self - */ - public function setCalculatedAmount($calculatedAmount) - { - $this->calculatedAmount = $calculatedAmount; - return $this; - } - - /** - * @return string - */ - public function getCode() - { - return $this->code; - } - - /** - * @param string $code - * @return self - */ - public function setCode($code) - { - $this->code = $code; - return $this; - } - - /** - * @return null|Amount - */ - public function getBasisAmount() - { - return $this->basisAmount; - } - - /** - * @param Amount $basisAmount - * - * @return self - */ - public function setBasisAmount($basisAmount) - { - $this->basisAmount = $basisAmount; - - return $this; - } - - /** - * @return string - */ - public function getPercent() - { - return $this->percent; - } - - /** - * @param string $percent - * @return self - */ - public function setPercent($percent) - { - $this->percent = number_format($percent, 2, '.', ''); - - return $this; - } - - /** - * @return string - */ - public function getCategory() - { - return $this->category; - } - - /** - * @param string $category - * @return self - */ - public function setCategory($category) - { - $this->category = $category; - return $this; - } - - /** - * @return string - */ - public function getExemptionReason() - { - return $this->exemptionReason; - } - - /** - * @return self - */ - public function setExemptionReason(string $exemptionReason) - { - $this->exemptionReason = $exemptionReason; - - return $this; - } - - /** - * @return Amount - */ - public function getLineTotalBasisAmount() - { - return $this->lineTotalBasisAmount; - } - - /** - * @return self - */ - public function setLineTotalBasisAmount(Amount $lineTotalBasisAmount) - { - $this->lineTotalBasisAmount = $lineTotalBasisAmount; - return $this; - } - - /** - * @return Amount - */ - public function getAllowanceChargeBasisAmount() - { - return $this->allowanceChargeBasisAmount; - } - - /** - * @return self - */ - public function setAllowanceChargeBasisAmount(Amount $allowanceChargeBasisAmount) - { - $this->allowanceChargeBasisAmount = $allowanceChargeBasisAmount; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/Trade.php b/src/zugferd10/Model/Trade/Trade.php deleted file mode 100644 index e9d67eb1..00000000 --- a/src/zugferd10/Model/Trade/Trade.php +++ /dev/null @@ -1,122 +0,0 @@ -") - * @XmlList(inline = true, entry = "IncludedSupplyChainTradeLineItem", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $lineItems = []; - - public function __construct() - { - $this->agreement = new Agreement(); - $this->delivery = new Delivery(); - $this->settlement = new Settlement(); - } - - /** - * @return Agreement - */ - public function getAgreement() - { - return $this->agreement; - } - - /** - * @return self - */ - public function setAgreement(Agreement $agreement) - { - $this->agreement = $agreement; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Delivery - */ - public function getDelivery() - { - return $this->delivery; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Delivery $delivery - * - * @return self - */ - public function setDelivery($delivery) - { - $this->delivery = $delivery; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Settlement - */ - public function getSettlement() - { - return $this->settlement; - } - - /** - * @param \Easybill\ZUGFeRD\Model\Trade\Settlement $settlement - * - * @return self - */ - public function setSettlement($settlement) - { - $this->settlement = $settlement; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Item\LineItem[] - */ - public function getLineItems() - { - return $this->lineItems; - } - - /** - * @return self - */ - public function addLineItem(LineItem $lineItem) - { - $this->lineItems[] = $lineItem; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/TradeContact.php b/src/zugferd10/Model/Trade/TradeContact.php deleted file mode 100644 index 391c445f..00000000 --- a/src/zugferd10/Model/Trade/TradeContact.php +++ /dev/null @@ -1,141 +0,0 @@ -personName = $personName; - $this->departmentName = $departmentName; - $this->telephoneUniversalCommunication = $telephoneUniversalCommunication; - $this->faxUniversalCommunication = $faxUniversalCommunication; - $this->emailURIUniversalCommunication = $emailURIUniversalCommunication; - } - - /** - * @return string - */ - public function getPersonName() - { - return $this->personName; - } - - /** - * @param string $personName - * @return self - */ - public function setPersonName($personName) - { - $this->personName = $personName; - return $this; - } - - /** - * @return string - */ - public function getDepartmentName() - { - return $this->departmentName; - } - - /** - * @param string $departmentName - * @return self - */ - public function setDepartmentName($departmentName) - { - $this->departmentName = $departmentName; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\UniversalCommunication - */ - public function getTelephoneUniversalCommunication() - { - return $this->telephoneUniversalCommunication; - } - - /** - * @return self - */ - public function setTelephoneUniversalCommunication(UniversalCommunication $telephoneUniversalCommunication) - { - $this->telephoneUniversalCommunication = $telephoneUniversalCommunication; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\UniversalCommunication - */ - public function getFaxUniversalCommunication() - { - return $this->faxUniversalCommunication; - } - - /** - * @return self - */ - public function setFaxUniversalCommunication(UniversalCommunication $faxUniversalCommunication) - { - $this->faxUniversalCommunication = $faxUniversalCommunication; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\UniversalCommunication - */ - public function getEmailURIUniversalCommunication() - { - return $this->emailURIUniversalCommunication; - } - - /** - * @return self - */ - public function setEmailURIUniversalCommunication(UniversalCommunication $emailURIUniversalCommunication) - { - $this->emailURIUniversalCommunication = $emailURIUniversalCommunication; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/TradeCountry.php b/src/zugferd10/Model/Trade/TradeCountry.php deleted file mode 100644 index b105b6ad..00000000 --- a/src/zugferd10/Model/Trade/TradeCountry.php +++ /dev/null @@ -1,45 +0,0 @@ -id = $id; - } - - /** - * @return string - */ - public function getId() - { - return $this->id; - } - - /** - * @return self - */ - public function setId(string $id) - { - $this->id = $id; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/TradeParty.php b/src/zugferd10/Model/Trade/TradeParty.php deleted file mode 100644 index d852c5b1..00000000 --- a/src/zugferd10/Model/Trade/TradeParty.php +++ /dev/null @@ -1,170 +0,0 @@ -") - * @XmlList(inline = true, entry = "SpecifiedTaxRegistration", namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12") - */ - private $taxRegistrations; - - public function __construct($name, Address $address, array $taxRegistrations = [], TradeContact $definedTradeContact = null) - { - $this->name = $name; - $this->address = $address; - $this->definedTradeContact = $definedTradeContact; - $this->taxRegistrations = $taxRegistrations; - } - - /** - * @return string - */ - public function getId() - { - return $this->id; - } - - /** - * @param string $id - * - * @return self - */ - public function setId($id) - { - $this->id = $id; - - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Schema - */ - public function getGlobalId() - { - return $this->globalId; - } - - /** - * @return self - */ - public function setGlobalId(Schema $schema) - { - $this->globalId = $schema; - return $this; - } - - /** - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * @param string $name - * - * @return self - */ - public function setName($name) - { - $this->name = $name; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Address - */ - public function getAddress() - { - return $this->address; - } - - /** - * @return self - */ - public function setAddress(Address $address) - { - $this->address = $address; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Tax\TaxRegistration[] - */ - public function getTaxRegistrations() - { - return $this->taxRegistrations; - } - - /** - * @return self - */ - public function addTaxRegistration(TaxRegistration $taxRegistration) - { - $this->taxRegistrations[] = $taxRegistration; - return $this; - } - - /** - * @return \Easybill\ZUGFeRD\Model\Trade\Tax\TradeContact - */ - public function getDefinedTradeContact() - { - return $this->definedTradeContact; - } - - /** - * @return self - */ - public function setDefinedTradeContact(TradeContact $definedTradeContact) - { - $this->definedTradeContact = $definedTradeContact; - return $this; - } -} diff --git a/src/zugferd10/Model/Trade/UniversalCommunication.php b/src/zugferd10/Model/Trade/UniversalCommunication.php deleted file mode 100644 index 409cc3e4..00000000 --- a/src/zugferd10/Model/Trade/UniversalCommunication.php +++ /dev/null @@ -1,64 +0,0 @@ -completeNumber = $completeNumber; - $this->uriid = $uriid; - } - - /** - * @return string - */ - public function getCompleteNumber() - { - return $this->completeNumber; - } - - /** - * @return self - */ - public function setCompleteNumber(string $completeNumber) - { - $this->completeNumber = $completeNumber; - return $this; - } - - /** - * @return string - */ - public function getUriid() - { - return $this->uriid; - } - - /** - * @return self - */ - public function setUriid(string $uriid) - { - $this->uriid = $uriid; - return $this; - } -} diff --git a/src/zugferd10/Model/UnitCode.php b/src/zugferd10/Model/UnitCode.php deleted file mode 100644 index 4bc1c75d..00000000 --- a/src/zugferd10/Model/UnitCode.php +++ /dev/null @@ -1,37 +0,0 @@ -serializer = $serializer; - } - - public function getDocument(string $xml): Document - { - return $this->serializer->deserialize($xml, Document::class, 'xml'); - } - - public static function create(): Reader - { - $serializer = SerializerBuilder::create() - ->setDebug(true) - ->build() - ; - return new self($serializer); - } -} diff --git a/src/zugferd10/SchemaValidator.php b/src/zugferd10/SchemaValidator.php deleted file mode 100644 index 82b1379f..00000000 --- a/src/zugferd10/SchemaValidator.php +++ /dev/null @@ -1,16 +0,0 @@ -loadXML($xml); - return $xmlValidate->schemaValidate(__DIR__ . '/Assets/Schema/ZUGFeRD1p0.xsd'); - } -} diff --git a/src/zugferd211/.gitkeep b/src/zugferd211/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/zugferd211/Model/Address.php b/src/zugferd211/Model/Address.php deleted file mode 100644 index 73d631bc..00000000 --- a/src/zugferd211/Model/Address.php +++ /dev/null @@ -1,11 +0,0 @@ -dateTimeString = DateTimeString::create($format, $value); - return $self; - } -} diff --git a/src/zugferd211/Model/DateTimeString.php b/src/zugferd211/Model/DateTimeString.php deleted file mode 100644 index f84c3a74..00000000 --- a/src/zugferd211/Model/DateTimeString.php +++ /dev/null @@ -1,28 +0,0 @@ -format = $format; - $self->value = $value; - return $self; - } -} diff --git a/src/zugferd211/Model/DebtorFinancialAccount.php b/src/zugferd211/Model/DebtorFinancialAccount.php deleted file mode 100644 index 2fff6dcf..00000000 --- a/src/zugferd211/Model/DebtorFinancialAccount.php +++ /dev/null @@ -1,17 +0,0 @@ -id = $id; - return $self; - } -} diff --git a/src/zugferd211/Model/DocumentLineDocument.php b/src/zugferd211/Model/DocumentLineDocument.php deleted file mode 100644 index 4ac355a2..00000000 --- a/src/zugferd211/Model/DocumentLineDocument.php +++ /dev/null @@ -1,32 +0,0 @@ -") - * @XmlList(inline=true, entry="IncludedNote", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $notes = []; - - public static function create(string $lineId): self - { - $self = new self(); - $self->lineId = $lineId; - return $self; - } -} diff --git a/src/zugferd211/Model/ExchangedDocument.php b/src/zugferd211/Model/ExchangedDocument.php deleted file mode 100644 index 99449936..00000000 --- a/src/zugferd211/Model/ExchangedDocument.php +++ /dev/null @@ -1,54 +0,0 @@ -") - * @XmlElement(cdata=false) - * @XmlList(inline = true, entry = "LanguageID", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $languageId = []; - - /** - * @var Note[] - * @Type("array") - * @XmlList(inline = true, entry = "IncludedNote", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $notes = []; -} diff --git a/src/zugferd211/Model/ExchangedDocumentContext.php b/src/zugferd211/Model/ExchangedDocumentContext.php deleted file mode 100644 index 8fab9e34..00000000 --- a/src/zugferd211/Model/ExchangedDocumentContext.php +++ /dev/null @@ -1,17 +0,0 @@ -dateTimeString = DateTimeString::create($format, $value); - return $self; - } -} diff --git a/src/zugferd211/Model/HeaderTradeAgreement.php b/src/zugferd211/Model/HeaderTradeAgreement.php deleted file mode 100644 index f0d2c9c8..00000000 --- a/src/zugferd211/Model/HeaderTradeAgreement.php +++ /dev/null @@ -1,60 +0,0 @@ -") - * @XmlList(inline = true, entry = "AdditionalReferencedDocument", namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $additionalReferencedDocuments = []; - - /** - * @Type("Easybill\ZUGFeRD211\Model\ProcuringProject") - * @XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("SpecifiedProcuringProject") - */ - public ?ProcuringProject $specifiedProcuringProject = null; -} diff --git a/src/zugferd211/Model/HeaderTradeDelivery.php b/src/zugferd211/Model/HeaderTradeDelivery.php deleted file mode 100644 index 5c813f34..00000000 --- a/src/zugferd211/Model/HeaderTradeDelivery.php +++ /dev/null @@ -1,31 +0,0 @@ -") - * @XmlList(inline = true, entry = "SpecifiedTradeSettlementPaymentMeans", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $specifiedTradeSettlementPaymentMeans = []; - - /** - * @var TradeTax[] - * @Type("array") - * @XmlList(inline = true, entry = "ApplicableTradeTax", namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $tradeTaxes = []; - - /** - * @var TradeAllowanceCharge[] - * @Type("array") - * @XmlList(inline = true, entry = "SpecifiedTradeAllowanceCharge", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $specifiedTradeAllowanceCharge = []; - - /** - * @var LogisticsServiceCharge[] - * @Type("array") - * @XmlList(inline = true, entry = "SpecifiedLogisticsServiceCharge", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $specifiedLogisticsServiceCharge = []; - - /** - * @var TradePaymentTerms[] - * @Type("array") - * @XmlList(inline = true, entry = "SpecifiedTradePaymentTerms", namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $specifiedTradePaymentTerms = []; - - /** - * @Type("Easybill\ZUGFeRD211\Model\TradeSettlementHeaderMonetarySummation") - * @XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("SpecifiedTradeSettlementHeaderMonetarySummation") - */ - public TradeSettlementHeaderMonetarySummation $specifiedTradeSettlementHeaderMonetarySummation; - - /** - * @Type("Easybill\ZUGFeRD211\Model\ReferencedDocument") - * @XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("InvoiceReferencedDocument") - */ - public ?ReferencedDocument $invoiceReferencedDocument = null; -} diff --git a/src/zugferd211/Model/Indicator.php b/src/zugferd211/Model/Indicator.php deleted file mode 100644 index d8b2d86a..00000000 --- a/src/zugferd211/Model/Indicator.php +++ /dev/null @@ -1,17 +0,0 @@ -") - * @XmlList(inline = true, entry = "ApplicableTradeTax", namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $tradeTax = []; - - /** - * @var TradeAllowanceCharge[] - * @Type("array") - * @XmlList(inline = true, entry = "SpecifiedTradeAllowanceCharge", namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $specifiedTradeAllowanceCharge = []; - - /** - * @Type("Easybill\ZUGFeRD211\Model\Period") - * @XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("BillingSpecifiedPeriod") - */ - public ?Period $billingSpecifiedPeriod = null; - - /** - * @Type("Easybill\ZUGFeRD211\Model\TradeSettlementLineMonetarySummation") - * @XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("SpecifiedTradeSettlementLineMonetarySummation") - */ - public TradeSettlementLineMonetarySummation $monetarySummation; - - /** - * @var TradeAccountingAccount[] - * @Type("array") - * @XmlList(inline = true, entry = "ReceivableSpecifiedTradeAccountingAccount", namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $tradeAccountingAccount = []; -} diff --git a/src/zugferd211/Model/LogisticsServiceCharge.php b/src/zugferd211/Model/LogisticsServiceCharge.php deleted file mode 100644 index 43858f7d..00000000 --- a/src/zugferd211/Model/LogisticsServiceCharge.php +++ /dev/null @@ -1,32 +0,0 @@ -") - * @XmlList(inline = true, entry = "AppliedTradeTax", namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $tradeTaxes = []; -} diff --git a/src/zugferd211/Model/Note.php b/src/zugferd211/Model/Note.php deleted file mode 100644 index 185b755b..00000000 --- a/src/zugferd211/Model/Note.php +++ /dev/null @@ -1,40 +0,0 @@ -content = $content; - $self->subjectCode = $subjectCode; - $self->contentCode = $contentCode; - return $self; - } -} diff --git a/src/zugferd211/Model/Period.php b/src/zugferd211/Model/Period.php deleted file mode 100644 index 3a993f00..00000000 --- a/src/zugferd211/Model/Period.php +++ /dev/null @@ -1,24 +0,0 @@ -id = $id; - $self->name = $name; - return $self; - } -} diff --git a/src/zugferd211/Model/ReferencedDocument.php b/src/zugferd211/Model/ReferencedDocument.php deleted file mode 100644 index 28e36d4c..00000000 --- a/src/zugferd211/Model/ReferencedDocument.php +++ /dev/null @@ -1,59 +0,0 @@ -issuerAssignedID = Id::create($issuerAssignedID); - return $self; - } -} diff --git a/src/zugferd211/Model/SupplyChainEvent.php b/src/zugferd211/Model/SupplyChainEvent.php deleted file mode 100644 index 1c7b41e9..00000000 --- a/src/zugferd211/Model/SupplyChainEvent.php +++ /dev/null @@ -1,17 +0,0 @@ -") - * @XmlList(inline=true, entry="IncludedSupplyChainTradeLineItem", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $lineItems = []; - - /** - * @Type("Easybill\ZUGFeRD211\Model\HeaderTradeAgreement") - * @XmlElement(cdata=false, namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("ApplicableHeaderTradeAgreement") - */ - public HeaderTradeAgreement $applicableHeaderTradeAgreement; - - /** - * @Type("Easybill\ZUGFeRD211\Model\HeaderTradeDelivery") - * @XmlElement(cdata=false, namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("ApplicableHeaderTradeDelivery") - */ - public HeaderTradeDelivery $applicableHeaderTradeDelivery; - - /** - * @Type("Easybill\ZUGFeRD211\Model\HeaderTradeSettlement") - * @XmlElement(cdata=false, namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("ApplicableHeaderTradeSettlement") - */ - public HeaderTradeSettlement $applicableHeaderTradeSettlement; -} diff --git a/src/zugferd211/Model/TaxRegistration.php b/src/zugferd211/Model/TaxRegistration.php deleted file mode 100644 index 6317aafd..00000000 --- a/src/zugferd211/Model/TaxRegistration.php +++ /dev/null @@ -1,24 +0,0 @@ -registration = Id::create($id, $schemeID); - return $self; - } -} diff --git a/src/zugferd211/Model/TradeAccountingAccount.php b/src/zugferd211/Model/TradeAccountingAccount.php deleted file mode 100644 index 4722914e..00000000 --- a/src/zugferd211/Model/TradeAccountingAccount.php +++ /dev/null @@ -1,25 +0,0 @@ -") - * @JMS\XmlList(inline = true, entry = "CategoryTradeTax", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $tradeTax = []; -} diff --git a/src/zugferd211/Model/TradeContact.php b/src/zugferd211/Model/TradeContact.php deleted file mode 100644 index e57b2516..00000000 --- a/src/zugferd211/Model/TradeContact.php +++ /dev/null @@ -1,45 +0,0 @@ -id = $id; - return $self; - } -} diff --git a/src/zugferd211/Model/TradeParty.php b/src/zugferd211/Model/TradeParty.php deleted file mode 100644 index da0e3325..00000000 --- a/src/zugferd211/Model/TradeParty.php +++ /dev/null @@ -1,74 +0,0 @@ -") - * @XmlList(inline = true, entry = "GlobalID", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $globalID = []; - - /** - * @Type("string") - * @XmlElement(cdata=false, namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("Name") - */ - public string $name; - - /** - * @Type("string") - * @XmlElement(cdata=false, namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("RoleCode") - */ - public ?string $roleCode = null; - - /** - * @Type("string") - * @XmlElement(cdata=false, namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("Description") - */ - public ?string $description = null; - - /** - * @Type("Easybill\ZUGFeRD211\Model\LegalOrganization") - * @XmlElement(cdata=false, namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("SpecifiedLegalOrganization") - */ - public ?LegalOrganization $specifiedLegalOrganization = null; - - /** - * @Type("Easybill\ZUGFeRD211\Model\TradeContact") - * @XmlElement(cdata=false, namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("DefinedTradeContact") - */ - public ?TradeContact $definedTradeContact = null; - - /** - * @Type("Easybill\ZUGFeRD211\Model\TradeAddress") - * @XmlElement(cdata=false, namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @SerializedName("PostalTradeAddress") - */ - public ?TradeAddress $postalTradeAddress = null; - - /** - * @var TaxRegistration[] - * @Type("array") - * @XmlList(inline=true, entry="SpecifiedTaxRegistration", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public $taxRegistrations = []; -} diff --git a/src/zugferd211/Model/TradePaymentTerms.php b/src/zugferd211/Model/TradePaymentTerms.php deleted file mode 100644 index af532770..00000000 --- a/src/zugferd211/Model/TradePaymentTerms.php +++ /dev/null @@ -1,29 +0,0 @@ -chargeAmount = Amount::create($amount); - $self->basisQuantity = $quantity; - $self->appliedTradeAllowanceCharge = $appliedTradeAllowanceCharge; - return $self; - } -} diff --git a/src/zugferd211/Model/TradeProduct.php b/src/zugferd211/Model/TradeProduct.php deleted file mode 100644 index eaf128d7..00000000 --- a/src/zugferd211/Model/TradeProduct.php +++ /dev/null @@ -1,45 +0,0 @@ -") - * @XmlList(inline = true, entry = "TaxBasisTotalAmount", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $taxBasisTotalAmount = []; - - /** - * @var Amount[] - * @JMS\Type("array") - * @XmlList(inline = true, entry = "TaxTotalAmount", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $taxTotalAmount = []; - - /** - * @JMS\Type("Easybill\ZUGFeRD211\Model\Amount") - * @JMS\XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @JMS\SerializedName("RoundingAmount") - */ - public ?Amount $roundingAmount = null; - - /** - * @var Amount[] - * @JMS\Type("array") - * @XmlList(inline = true, entry = "GrandTotalAmount", namespace="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - */ - public array $grandTotalAmount = []; - - /** - * @JMS\Type("Easybill\ZUGFeRD211\Model\Amount") - * @JMS\XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @JMS\SerializedName("TotalPrepaidAmount") - */ - public ?Amount $totalPrepaidAmount = null; - - /** - * @JMS\Type("Easybill\ZUGFeRD211\Model\Amount") - * @JMS\XmlElement(cdata = false, namespace = "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100") - * @JMS\SerializedName("DuePayableAmount") - */ - public Amount $duePayableAmount; -} diff --git a/src/zugferd211/Model/TradeSettlementLineMonetarySummation.php b/src/zugferd211/Model/TradeSettlementLineMonetarySummation.php deleted file mode 100644 index 22468129..00000000 --- a/src/zugferd211/Model/TradeSettlementLineMonetarySummation.php +++ /dev/null @@ -1,34 +0,0 @@ -totalAmount = Amount::create($totalAmount); - if ($totalAllowanceChargeAmount != null) { - $self->totalAllowanceChargeAmount = Amount::create($totalAllowanceChargeAmount); - } - return $self; - } -} diff --git a/src/zugferd211/Model/TradeSettlementPaymentMeans.php b/src/zugferd211/Model/TradeSettlementPaymentMeans.php deleted file mode 100644 index bdfd16a3..00000000 --- a/src/zugferd211/Model/TradeSettlementPaymentMeans.php +++ /dev/null @@ -1,51 +0,0 @@ -supplyChainTradeTransaction->applicableHeaderTradeDelivery = new HeaderTradeDelivery(); $invoice->supplyChainTradeTransaction->applicableHeaderTradeDelivery->chainEvent = new SupplyChainEvent(); - $invoice->supplyChainTradeTransaction->applicableHeaderTradeDelivery->chainEvent->date = DateTime::create('102', '20180305'); + $invoice->supplyChainTradeTransaction->applicableHeaderTradeDelivery->chainEvent->date = DateTime::create(102, '20180305'); $invoice->supplyChainTradeTransaction->applicableHeaderTradeSettlement = new HeaderTradeSettlement(); $invoice->supplyChainTradeTransaction->applicableHeaderTradeSettlement->currency = 'EUR'; @@ -197,7 +206,7 @@ public function testBuildXRechnungExample(): void $xml = Builder::create()->transform($invoice); self::assertNotEmpty($xml); - $referenceFile = file_get_contents(__DIR__ . '/official_example_xml/zugferd_2p1_XRECHNUNG_Einfach.xml'); + $referenceFile = file_get_contents(__DIR__ . '/data/official_example_xml/zugferd_2p1_XRECHNUNG_Einfach.xml'); $referenceFile = ReaderAndBuildTest::reformatXml($referenceFile); $xml = ReaderAndBuildTest::reformatXml($xml); self::assertEquals($referenceFile, $xml); @@ -240,13 +249,13 @@ public function testBuildXRechnungExtendedExample(): void $item1->specifiedTradeProduct->tradeCountry = TradeCountry::create('DE'); $item1->tradeAgreement = new LineTradeAgreement(); - $item1->tradeAgreement->netPrice = TradePrice::create('9.9000', Quantity::create(1, 'C62')); + $item1->tradeAgreement->netPrice = TradePrice::create('9.9000', Quantity::create('1', 'C62')); $item1->tradeAgreement->grossPrice = TradePrice::create('9.9000'); $item1->delivery = new LineTradeDelivery(); $item1->delivery->billedQuantity = Quantity::create('20.0000', 'H87'); $item1->delivery->chainEvent = new SupplyChainEvent(); - $item1->delivery->chainEvent->date = DateTime::create('102', '20180305'); + $item1->delivery->chainEvent->date = DateTime::create(102, '20180305'); $item1->specifiedLineTradeSettlement = new LineTradeSettlement(); $item1->specifiedLineTradeSettlement->tradeTax[] = $item1tax = new TradeTax(); @@ -328,10 +337,10 @@ public function testBuildXRechnungExtendedExample(): void $invoice->supplyChainTradeTransaction->applicableHeaderTradeDelivery = new HeaderTradeDelivery(); $invoice->supplyChainTradeTransaction->applicableHeaderTradeDelivery->shipToTradeParty = $buyerTradeParty; $invoice->supplyChainTradeTransaction->applicableHeaderTradeDelivery->chainEvent = new SupplyChainEvent(); - $invoice->supplyChainTradeTransaction->applicableHeaderTradeDelivery->chainEvent->date = DateTime::create('102', '20180305'); + $invoice->supplyChainTradeTransaction->applicableHeaderTradeDelivery->chainEvent->date = DateTime::create(102, '20180305'); $invoice->supplyChainTradeTransaction->applicableHeaderTradeDelivery->deliveryNoteReferencedDocument = ReferencedDocument::create('123456'); - $invoice->supplyChainTradeTransaction->applicableHeaderTradeDelivery->deliveryNoteReferencedDocument->formattedIssueDateTime = FormattedDateTime::create('102', '20180305'); + $invoice->supplyChainTradeTransaction->applicableHeaderTradeDelivery->deliveryNoteReferencedDocument->formattedIssueDateTime = FormattedDateTime::create(102, '20180305'); $invoice->supplyChainTradeTransaction->applicableHeaderTradeSettlement = new HeaderTradeSettlement(); $invoice->supplyChainTradeTransaction->applicableHeaderTradeSettlement->creditorReferenceID = 'TEST1234'; @@ -388,7 +397,7 @@ public function testBuildXRechnungExtendedExample(): void $xml = Builder::create()->transform($invoice); self::assertNotEmpty($xml); - $referenceFile = file_get_contents(__DIR__ . '/zugferd_2p1_XRECHNUNG_Extended.xml'); + $referenceFile = file_get_contents(__DIR__ . '/data/zugferd_2p1_XRECHNUNG_Extended.xml'); $referenceFile = ReaderAndBuildTest::reformatXml($referenceFile); $xml = ReaderAndBuildTest::reformatXml($xml); self::assertEquals($referenceFile, $xml); @@ -633,7 +642,7 @@ public function testFacturXExtendedExample(): void // $invoice->supplyChainTradeTransaction->applicableHeaderTradeSettlement->specifiedTradePaymentTerms[] = $paymentTerms = new TradePaymentTerms(); $paymentTerms->description = '30% d\'acompte, solde à 30 j'; - $paymentTerms->dueDate = DateTime::create('102', '20171213'); + $paymentTerms->dueDate = DateTime::create(102, '20171213'); // // @@ -651,7 +660,7 @@ public function testFacturXExtendedExample(): void $xml = Builder::create()->transform($invoice); self::assertNotEmpty($xml); - $referenceFile = file_get_contents(__DIR__ . '/official_example_xml/facturx_EXTENDED.xml'); + $referenceFile = file_get_contents(__DIR__ . '/data/official_example_xml/facturx_EXTENDED.xml'); $referenceFile = ReaderAndBuildTest::reformatXml($referenceFile); $xml = ReaderAndBuildTest::reformatXml($xml); self::assertEquals($referenceFile, $xml); diff --git a/tests/zugferd211/Tests/ReaderAndBuildTest.php b/tests/ReaderAndBuildTest.php similarity index 63% rename from tests/zugferd211/Tests/ReaderAndBuildTest.php rename to tests/ReaderAndBuildTest.php index b91a8bb9..79db7da1 100644 --- a/tests/zugferd211/Tests/ReaderAndBuildTest.php +++ b/tests/ReaderAndBuildTest.php @@ -1,10 +1,19 @@ /', '', $xml); - $doc = new \DOMDocument('1.0', 'UTF-8'); + $doc = new DOMDocument('1.0', 'UTF-8'); $doc->preserveWhiteSpace = false; $doc->formatOutput = true; $doc->loadXML($xml); - return $doc->saveXML(); - } - /** - * @before - */ - public function setupAnnotationRegistry(): void - { - // AnnotationRegistry::registerLoader('class_exists'); + return $doc->saveXML(); } /** @dataProvider dataProvider */ public function testGetDocument(string $filename): void { - $xml = file_get_contents(__DIR__ . '/official_example_xml/' . $filename); + $xml = file_get_contents(__DIR__ . '/data/official_example_xml/' . $filename); $obj = Reader::create()->transform($xml); $str = Builder::create()->transform($obj); @@ -43,7 +45,10 @@ public function testGetDocument(string $filename): void self::assertTrue(true); } - public function dataProvider() + /** + * @return array> + */ + public function dataProvider(): array { return [ ['zugferd_2p1_BASIC-WL_Einfach.xml'], diff --git a/tests/zugferd211/Tests/TradeAccountingAccountTest.php b/tests/TradeAccountingAccountTest.php similarity index 82% rename from tests/zugferd211/Tests/TradeAccountingAccountTest.php rename to tests/TradeAccountingAccountTest.php index f730167b..ce69e740 100644 --- a/tests/zugferd211/Tests/TradeAccountingAccountTest.php +++ b/tests/TradeAccountingAccountTest.php @@ -1,30 +1,39 @@ supplyChainTradeTransaction->lineItems[] = $item1; - $xml = <<<'XML' + $xml = << @@ -105,7 +114,7 @@ public function testTradeAccountingAccount(): void -XML; +XML_WRAP; $this->assertEquals( // Removes white-space preg_replace('/\s/', '', $xml), diff --git a/tests/ValidatorTest.php b/tests/ValidatorTest.php new file mode 100644 index 00000000..3c6e273f --- /dev/null +++ b/tests/ValidatorTest.php @@ -0,0 +1,34 @@ +validateAgainstXsd($xml, Validator::SCHEMA_EN16931); + self::assertNull($errors, $errors ?? ''); + } + + public function testXsdFail(): void + { + $validator = new Validator(); + $xml = file_get_contents(__DIR__ . '/data/broken_example.xml'); + $errors = $validator->validateAgainstXsd($xml, Validator::SCHEMA_EN16931); + self::assertNotNull($errors, 'Validator says broken xml is valid.'); + } +} diff --git a/tests/zugferd211/Tests/broken_example.xml b/tests/data/broken_example.xml similarity index 100% rename from tests/zugferd211/Tests/broken_example.xml rename to tests/data/broken_example.xml diff --git a/tests/zugferd211/Tests/official_example_xml/facturx_EXTENDED.xml b/tests/data/official_example_xml/facturx_EXTENDED.xml similarity index 100% rename from tests/zugferd211/Tests/official_example_xml/facturx_EXTENDED.xml rename to tests/data/official_example_xml/facturx_EXTENDED.xml diff --git a/tests/zugferd211/Tests/official_example_xml/zugferd_2p1_BASIC-WL_Einfach.xml b/tests/data/official_example_xml/zugferd_2p1_BASIC-WL_Einfach.xml similarity index 100% rename from tests/zugferd211/Tests/official_example_xml/zugferd_2p1_BASIC-WL_Einfach.xml rename to tests/data/official_example_xml/zugferd_2p1_BASIC-WL_Einfach.xml diff --git a/tests/zugferd211/Tests/official_example_xml/zugferd_2p1_EN16931_Einfach.xml b/tests/data/official_example_xml/zugferd_2p1_EN16931_Einfach.xml similarity index 100% rename from tests/zugferd211/Tests/official_example_xml/zugferd_2p1_EN16931_Einfach.xml rename to tests/data/official_example_xml/zugferd_2p1_EN16931_Einfach.xml diff --git a/tests/zugferd211/Tests/official_example_xml/zugferd_2p1_XRECHNUNG_Einfach.xml b/tests/data/official_example_xml/zugferd_2p1_XRECHNUNG_Einfach.xml similarity index 100% rename from tests/zugferd211/Tests/official_example_xml/zugferd_2p1_XRECHNUNG_Einfach.xml rename to tests/data/official_example_xml/zugferd_2p1_XRECHNUNG_Einfach.xml diff --git a/tests/zugferd211/Tests/zugferd_2p1_XRECHNUNG_Extended.xml b/tests/data/zugferd_2p1_XRECHNUNG_Extended.xml similarity index 100% rename from tests/zugferd211/Tests/zugferd_2p1_XRECHNUNG_Extended.xml rename to tests/data/zugferd_2p1_XRECHNUNG_Extended.xml diff --git a/tests/zugferd10/Tests/BuilderTest.php b/tests/zugferd10/Tests/BuilderTest.php deleted file mode 100644 index e5818e3c..00000000 --- a/tests/zugferd10/Tests/BuilderTest.php +++ /dev/null @@ -1,267 +0,0 @@ -getHeader() - ->setId('RE1337') - ->setName('RECHNUNG') - ->setDate(new Date(new \DateTime('20130305'), 102)) - ->addNote(new Note('Test Node 1')) - ->addNote(new Note('Test Node 2')) - ->addNote(new Note('easybill GmbH - Düsselstr. 21 - 41564 Kaarst - - Geschäftsführer: - Christian Szardenings - Ronny Keyser', 'REG')) - ; - - $trade = $doc->getTrade(); - - $delivery = new Delivery('20130305', 102); - $delivery->setShipToTradeParty(new TradeParty( - 'Kunden AG Mitte', - new Address('69876', 'Hans Muster', 'Kundenstraße 15', 'Frankfurt', 'DE'), - [], - new TradeContact( - 'Test Kunde', - 'Rechnungsprüfung', - new UniversalCommunication('+49 (0)9876 54123.1'), - new UniversalCommunication('+49 (0)9876 54123.0'), - new UniversalCommunication(null, 'Rechnungsprüfung@testmail.de') - ) - )); - $trade->setDelivery($delivery); - - $this->setAgreement($trade); - $this->setLineItem($trade); - $this->setSettlement($trade); - - $builder = Builder::create(); - $xml = $builder->getXML($doc); - - // file_put_contents(__DIR__ . '/builder.zugferd.xml', $xml); - $this->assertStringEqualsFile(__DIR__ . '/builder.zugferd.xml', $xml); - - SchemaValidator::isValid($xml); - } - - private function setAgreement(Trade $trade): void - { - $seller = new TradeParty( - 'Lieferant GmbH', - new Address('80333', 'Lieferantenstraße 20', null, 'München', 'DE'), - [ - new TaxRegistration('FC', '201/113/40209'), - new TaxRegistration('VA', 'DE123456789'), - ], - new TradeContact( - null, - null, - new UniversalCommunication('+49 (0)1234 56789.1'), - new UniversalCommunication('+49 (0)1234 56789.0'), - new UniversalCommunication(null, 'mail@mail.de') - ) - ); - $seller->setId('ID576'); - $seller->setGlobalId(new Schema('0088', 'AZ327')); - - $buyer = new TradeParty( - 'Kunden AG Mitte', - new Address('69876', 'Hans Muster', 'Kundenstraße 15', 'Frankfurt', 'DE'), - [], - new TradeContact( - 'Test Kunde', - 'Rechnungsprüfung', - new UniversalCommunication('+49 (0)9876 54123.1'), - new UniversalCommunication('+49 (0)9876 54123.0'), - new UniversalCommunication(null, 'Rechnungsprüfung@testmail.de') - ) - ); - - $trade->getAgreement() - ->setBuyerReference('AB-312') - ->setSeller($seller) - ->setBuyer($buyer) - ->setBuyerOrder(new ReferencedDocument('0234587234')) - ->addAdditionalReferencedDocument(new ReferencedDocument('123456', '2021-08-06T09:20:00', 'AAA')) - ->setCustomerOrderReferencedDocument(new ReferencedDocument('654789')) - ; - } - - private function setLineItem(Trade $trade): void - { - $tradeAgreement = new SpecifiedTradeAgreement(); - - $grossPrice = new Price(9.90, 'EUR', false); - $grossPrice - ->addAllowanceCharge(new AllowanceCharge(false, 1.80)) - ->setQuantity(new Quantity('C62', 1)) - ; - - $tradeAgreement->setGrossPrice($grossPrice); - $grossNetPrice = new Price(9.90, 'EUR', false); - $grossNetPrice->setQuantity(new Quantity('C62', 1)); - $tradeAgreement->setNetPrice($grossNetPrice); - - $lineItemTradeTax = new TradeTax(); - $lineItemTradeTax->setCode('VAT'); - $lineItemTradeTax->setPercent(19.00); - $lineItemTradeTax->setCategory('S'); - - $lineItemSettlement = new SpecifiedTradeSettlement(); - $lineItemSettlement - ->setTradeTax($lineItemTradeTax) - ->setMonetarySummation(new SpecifiedTradeMonetarySummation(198.00)) - ; - - $product = new Product('TB100A4', 'Trennblätter A4', 'Das Beste was man kaufen kann'); - $product->addTradeCountry(new TradeCountry('DE')); - - $lineItem = new LineItem(); - $lineItem - ->setTradeAgreement($tradeAgreement) - ->setDelivery(new SpecifiedTradeDelivery(new Quantity('C62', 20.00))) - ->setSettlement($lineItemSettlement) - ->setProduct($product) - ->setLineDocument(new LineDocument('1')) - ->getLineDocument() - ->addNote(new Note('Testcontent in einem LineDocument')) - ; - - $trade->addLineItem($lineItem); - } - - private function setSettlement(Trade $trade): void - { - $settlement = new Settlement('2013-471102', 'EUR'); - $settlement->setPayeeTradeParty( - new TradeParty( - 'Kunden AG Mitte', - new Address('69876', 'Hans Muster', 'Kundenstraße 15', 'Frankfurt', 'DE'), - [], - new TradeContact( - 'Test Kunde', - 'Rechnungsprüfung', - new UniversalCommunication('+49 (0)9876 54123.1'), - new UniversalCommunication('+49 (0)9876 54123.0'), - new UniversalCommunication(null, 'Rechnungsprüfung@testmail.de') - ) - ) - ); - $settlement->setPaymentTerms(new PaymentTerms('Zahlbar innerhalb von 20 Tagen (bis zum 05.10.2016) unter Abzug von 3% Skonto (Zahlungsbetrag = 1.766,03 €). Bis zum 29.09.2016 ohne Abzug.', new Date('20130404'))); - - $settlement->setPaymentMeans(new PaymentMeans()); - $settlement->getPaymentMeans() - ->setCode('31') - ->setInformation('Überweisung') - ->setPayeeAccount(new CreditorFinancialAccount('DE08700901001234567890', '', '')) - ->setPayeeInstitution(new CreditorFinancialInstitution('GENODEF1M04', '', '')) - ; - - $tradeTax = new TradeTax(); - $tradeTax->setCode('VAT'); - $tradeTax->setPercent(7.00); - $tradeTax->setBasisAmount(new Amount(275.00, 'EUR')); - $tradeTax->setLineTotalBasisAmount(new Amount(270.00, 'EUR')); - $tradeTax->setAllowanceChargeBasisAmount(new Amount(5.00, 'EUR')); - $tradeTax->setCalculatedAmount(new Amount(19.25, 'EUR')); - - $tradeTax2 = new TradeTax(); - $tradeTax2->setCode('VAT'); - $tradeTax2->setPercent(19.00); - $tradeTax2->setBasisAmount(new Amount(198.00, 'EUR')); - $tradeTax2->setCalculatedAmount(new Amount(37.62, 'EUR')); - - $allowanceCharge = new AllowanceCharge(false, 1, 'EUR', true); - $allowanceCharge->setBasisAmount(new Amount(1, 'EUR')); - - $shippingTax = new TradeTax(); - $shippingTax->setCode('VAT'); - $shippingTax->setPercent(0.00); - $shippingTax->setCategory('S'); - - $shippingCost = new SpecifiedLogisticsServiceCharge('Versandkosten', new Amount(0, 'EUR')); - $shippingCost->addTradeTax($shippingTax); - - $monetarySummation = new MonetarySummation(198.00, 0.00, 0.00, 198.00, 37.62, 235.62, 'EUR'); - $monetarySummation->setDuePayableAmount(new Amount(235.62, 'EUR')); - - $settlement - ->addTradeTax($tradeTax) - ->addTradeTax($tradeTax2) - ->addAllowanceCharge( - $allowanceCharge - ->setReason('Sondernachlass') - ->addCategoryTradeTax( - (new TradeTax()) - ->setCode('VAT') - ->setCategory('S') - ->setPercent(19) - ) - ) - ->addLogisticsServiceCharge($shippingCost) - ->setMonetarySummation($monetarySummation) - ; - - $billingPeriod = new BillingPeriod( - new Date('20130104'), - new Date('20130204') - ); - $settlement->setBillingPeriod($billingPeriod); - - $trade->setSettlement($settlement); - } -} diff --git a/tests/zugferd10/Tests/ReaderTest.php b/tests/zugferd10/Tests/ReaderTest.php deleted file mode 100644 index a685a10f..00000000 --- a/tests/zugferd10/Tests/ReaderTest.php +++ /dev/null @@ -1,237 +0,0 @@ -getDocument(file_get_contents(__DIR__ . '/reader.zugferd.xml')); - $this->assertInstanceOf(Document::class, $doc); - - $this->checkHeader($doc->getHeader()); - $this->checkTrade($doc->getTrade()); - } - - private function checkHeader(Header $header): void - { - $this->assertSame('RE1337', $header->getId()); - $this->assertSame('RECHNUNG', $header->getName()); - $this->assertSame('380', $header->getTypeCode()); - - $this->assertInstanceOf(Date::class, $header->getDate()); - $this->assertSame(102, $header->getDate()->getFormat()); - $this->assertSame('20130305', $header->getDate()->getDate()); - - $notes = $header->getNotes(); - $this->assertCount(3, $notes); - - $cnt = 0; - foreach ($notes as $note) { - ++$cnt; - $this->assertInstanceOf(Note::class, $note); - - if ($cnt === 3) { - $this->assertStringContainsString('easybill GmbH', $note->getContent()); - $this->assertStringContainsString('Düsselstr. 21', $note->getContent()); - $this->assertStringContainsString('41564 Kaarst', $note->getContent()); - $this->assertStringContainsString('Geschäftsführer:', $note->getContent()); - $this->assertStringContainsString('Christian Szardenings', $note->getContent()); - $this->assertStringContainsString('Ronny Keyser', $note->getContent()); - $this->assertSame('REG', $note->getSubjectCode()); - } else { - $this->assertSame('Test Node ' . $cnt, $note->getContent()); - } - } - } - - private function checkTrade(Trade $trade): void - { - $this->assertInstanceOf(Trade::class, $trade); - - $this->checkAgreement($trade->getAgreement()); - $this->checkTradeSettlement($trade->getSettlement()); - - $delivery = $trade->getDelivery(); - $this->assertSame(102, $delivery->getChainEvent()->getDate()->getFormat()); - $this->assertSame('20130305', $delivery->getChainEvent()->getDate()->getDate()); - - $lineItems = $trade->getLineItems(); - $this->assertCount(1, $lineItems); - $this->checkLineItem($lineItems[0]); - } - - private function checkAgreement(Agreement $agreement): void - { - $seller = $agreement->getSeller(); - $buyer = $agreement->getBuyer(); - $this->assertInstanceOf(Agreement::class, $agreement); - $this->assertInstanceOf(TradeParty::class, $seller); - $this->assertInstanceOf(TradeParty::class, $buyer); - - $sellerAddress = $seller->getAddress(); - $this->assertSame('Lieferant GmbH', $seller->getName()); - $this->assertSame('80333', $sellerAddress->getPostcode()); - $this->assertSame('München', $sellerAddress->getCity()); - $this->assertSame('Lieferantenstraße 20', $sellerAddress->getLineOne()); - $this->assertSame('DE', $sellerAddress->getCountryCode()); - - $sellerRegistrations = $seller->getTaxRegistrations(); - $this->assertCount(2, $sellerRegistrations); - - for ($cnt = 0; $cnt < 2; ++$cnt) { - $taxRegistration = $sellerRegistrations[$cnt]; - if ($cnt === 0) { - $this->assertSame('FC', $taxRegistration->getRegistration()->getSchemeID()); - $this->assertSame('201/113/40209', $taxRegistration->getRegistration()->getValue()); - } else { - $this->assertSame('VA', $taxRegistration->getRegistration()->getSchemeID()); - $this->assertSame('DE123456789', $taxRegistration->getRegistration()->getValue()); - } - } - - $buyerAddress = $buyer->getAddress(); - $this->assertSame('Kunden AG Mitte', $buyer->getName()); - $this->assertSame('69876', $buyerAddress->getPostcode()); - $this->assertSame('Frankfurt', $buyerAddress->getCity()); - $this->assertSame('Hans Muster', $buyerAddress->getLineOne()); - $this->assertSame('Kundenstraße 15', $buyerAddress->getLineTwo()); - $this->assertSame('DE', $buyerAddress->getCountryCode()); - $this->assertEmpty($buyer->getTaxRegistrations()); - - $this->assertSame('0234587234', $agreement->getBuyerOrder()->getId()); - } - - private function checkTradeSettlement(Settlement $settlement): void - { - $this->assertSame('2013-471102', $settlement->getPaymentReference()); - $this->assertSame('EUR', $settlement->getCurrency()); - - $paymentMeans = $settlement->getPaymentMeans(); - $this->assertSame('31', $paymentMeans->getCode()); - $this->assertSame('Überweisung', $paymentMeans->getInformation()); - - $payeeAccount = $paymentMeans->getPayeeAccount(); - $this->assertSame('DE08700901001234567890', $payeeAccount->getIban()); - $this->assertEmpty($payeeAccount->getAccountName()); - $this->assertEmpty($payeeAccount->getProprietary()); - - $payeeInstitution = $paymentMeans->getPayeeInstitution(); - $this->assertSame('GENODEF1M04', $payeeInstitution->getBic()); - $this->assertEmpty($payeeInstitution->getGermanBLZ()); - $this->assertEmpty($payeeInstitution->getName()); - - $tradeTaxes = $settlement->getTradeTaxes(); - $this->assertCount(2, $tradeTaxes); - - $tradeTax1 = $tradeTaxes[0]; - $tradeTax2 = $tradeTaxes[1]; - $this->assertSame('EUR', $tradeTax1->getCalculatedAmount()->getCurrency()); - $this->assertSame('19.25', $tradeTax1->getCalculatedAmount()->getValue()); - $this->assertSame('VAT', $tradeTax1->getCode()); - $this->assertSame('EUR', $tradeTax1->getBasisAmount()->getCurrency()); - $this->assertSame('275.00', $tradeTax1->getBasisAmount()->getValue()); - $this->assertSame('7.00', $tradeTax1->getPercent()); - - $this->assertSame('EUR', $tradeTax2->getCalculatedAmount()->getCurrency()); - $this->assertSame('37.62', $tradeTax2->getCalculatedAmount()->getValue()); - $this->assertSame('VAT', $tradeTax2->getCode()); - $this->assertSame('EUR', $tradeTax2->getBasisAmount()->getCurrency()); - $this->assertSame('198.00', $tradeTax2->getBasisAmount()->getValue()); - $this->assertSame('19.00', $tradeTax2->getPercent()); - - $billingPeriod = $settlement->getBillingPeriod(); - $this->assertSame('20130104', $billingPeriod->getStart()->getDate()); - $this->assertSame('20130204', $billingPeriod->getEnd()->getDate()); - - $monetarySummation = $settlement->getMonetarySummation(); - $this->assertSame('198.00', $monetarySummation->getLineTotal()->getValue()); - $this->assertSame('EUR', $monetarySummation->getLineTotal()->getCurrency()); - - $this->assertSame('0.00', $monetarySummation->getChargeTotal()->getValue()); - $this->assertSame('EUR', $monetarySummation->getChargeTotal()->getCurrency()); - - $this->assertSame('0.00', $monetarySummation->getAllowanceTotal()->getValue()); - $this->assertSame('EUR', $monetarySummation->getAllowanceTotal()->getCurrency()); - - $this->assertSame('198.00', $monetarySummation->getTaxBasisTotal()->getValue()); - $this->assertSame('EUR', $monetarySummation->getTaxBasisTotal()->getCurrency()); - - $this->assertSame('37.62', $monetarySummation->getTaxTotal()->getValue()); - $this->assertSame('EUR', $monetarySummation->getTaxTotal()->getCurrency()); - - $this->assertSame('235.62', $monetarySummation->getGrandTotal()->getValue()); - $this->assertSame('EUR', $monetarySummation->getGrandTotal()->getCurrency()); - - $paymentTerms = $settlement->getPaymentTerms(); - $this->assertSame('Zahlbar innerhalb 30 Tagen netto bis 04.04.2013, 3% Skonto innerhalb 10 Tagen bis 15.03.2013', $paymentTerms->getDescription()); - $this->assertSame('20130404', $paymentTerms->getDueDate()->getDate()); - $this->assertSame(102, $paymentTerms->getDueDate()->getFormat()); - } - - private function checkLineItem(LineItem $lineItem): void - { - $lineDocument = $lineItem->getLineDocument(); - $lineDocumentNotes = $lineDocument->getNotes(); - $this->assertSame('1', $lineDocument->getLineId()); - $this->assertCount(1, $lineDocumentNotes); - $this->assertSame('Testcontent in einem LineDocument', $lineDocumentNotes[0]->getContent()); - - $agreement = $lineItem->getTradeAgreement(); - $grossPrice = $agreement->getGrossPrice(); - - $this->assertSame('9.90', $grossPrice->getAmount()->getValue()); - $this->assertSame('EUR', $grossPrice->getAmount()->getCurrency()); - - $grossPriceAllowanceCharges = $grossPrice->getAllowanceCharges(); - $this->assertCount(1, $grossPriceAllowanceCharges); - - $allowanceCharge = $grossPriceAllowanceCharges[0]; - $this->assertFalse($allowanceCharge->getIndicator()); - $this->assertSame('EUR', $allowanceCharge->getActualAmount()->getCurrency()); - $this->assertSame('1.8000', $allowanceCharge->getActualAmount()->getValue()); - - $this->assertSame('9.90', $agreement->getNetPrice()->getAmount()->getValue()); - $this->assertSame('EUR', $agreement->getNetPrice()->getAmount()->getCurrency()); - - $this->assertSame('C62', $lineItem->getDelivery()->getBilledQuantity()->getUnitCode()); - $this->assertSame('20.0000', $lineItem->getDelivery()->getBilledQuantity()->getValue()); - - $settlement = $lineItem->getSettlement(); - $tradeTax = $settlement->getTradeTax(); - $this->assertSame('VAT', $tradeTax->getCode()); - $this->assertSame('19.00', $tradeTax->getPercent()); - $this->assertSame('S', $tradeTax->getCategory()); - - $monetarySummationTotal = $settlement->getMonetarySummation()->getTotalAmount(); - $this->assertSame('198.00', $monetarySummationTotal->getValue()); - $this->assertSame('EUR', $monetarySummationTotal->getCurrency()); - - $product = $lineItem->getProduct(); - $this->assertSame('TB100A4', $product->getSellerAssignedID()); - $this->assertSame('Trennblätter A4', $product->getName()); - } -} diff --git a/tests/zugferd10/Tests/builder.zugferd.xml b/tests/zugferd10/Tests/builder.zugferd.xml deleted file mode 100644 index 76a4a16e..00000000 --- a/tests/zugferd10/Tests/builder.zugferd.xml +++ /dev/null @@ -1,274 +0,0 @@ - - - - - urn:ferd:CrossIndustryDocument:invoice:1p0:comfort - - - - RE1337 - RECHNUNG - 380 - - 20130305 - - - Test Node 1 - - - Test Node 2 - - - easybill GmbH - Düsselstr. 21 - 41564 Kaarst - - Geschäftsführer: - Christian Szardenings - Ronny Keyser - REG - - - - - AB-312 - - ID576 - AZ327 - Lieferant GmbH - - - +49 (0)1234 56789.1 - - - +49 (0)1234 56789.0 - - - mail@mail.de - - - - 80333 - Lieferantenstraße 20 - München - DE - - - 201/113/40209 - - - DE123456789 - - - - Kunden AG Mitte - - Test Kunde - Rechnungsprüfung - - +49 (0)9876 54123.1 - - - +49 (0)9876 54123.0 - - - Rechnungsprüfung@testmail.de - - - - 69876 - Hans Muster - Kundenstraße 15 - Frankfurt - DE - - - - 0234587234 - - - 2021-08-06T09:20:00 - AAA - 123456 - - - 654789 - - - - - Kunden AG Mitte - - Test Kunde - Rechnungsprüfung - - +49 (0)9876 54123.1 - - - +49 (0)9876 54123.0 - - - Rechnungsprüfung@testmail.de - - - - 69876 - Hans Muster - Kundenstraße 15 - Frankfurt - DE - - - - - 20130305 - - - - - 2013-471102 - EUR - - Kunden AG Mitte - - Test Kunde - Rechnungsprüfung - - +49 (0)9876 54123.1 - - - +49 (0)9876 54123.0 - - - Rechnungsprüfung@testmail.de - - - - 69876 - Hans Muster - Kundenstraße 15 - Frankfurt - DE - - - - 31 - Überweisung - - DE08700901001234567890 - - - - - GENODEF1M04 - - - - - - 19.25 - VAT - 275.00 - 270.00 - 5.00 - 7.00 - - - 37.62 - VAT - 198.00 - 19.00 - - - - 20130104 - - - 20130204 - - - - - false - - 1.00 - 1.00 - Sondernachlass - - VAT - S - 19.00 - - - - Versandkosten - 0.00 - - VAT - S - 0.00 - - - - Zahlbar innerhalb von 20 Tagen (bis zum 05.10.2016) unter Abzug von 3% Skonto (Zahlungsbetrag = 1.766,03 €). Bis zum 29.09.2016 ohne Abzug. - - 20130404 - - - - 198.00 - 0.00 - 0.00 - 198.00 - 37.62 - 235.62 - 235.62 - - - - - 1 - - Testcontent in einem LineDocument - - - - - 9.9000 - 1.0000 - - - false - - 1.8000 - - - - 9.9000 - 1.0000 - - - - 20.0000 - - - - VAT - S - 19.00 - - - 198.00 - - - - TB100A4 - Trennblätter A4 - Das Beste was man kaufen kann - - DE - - - - - diff --git a/tests/zugferd10/Tests/reader.zugferd.xml b/tests/zugferd10/Tests/reader.zugferd.xml deleted file mode 100644 index 9bb157ec..00000000 --- a/tests/zugferd10/Tests/reader.zugferd.xml +++ /dev/null @@ -1,163 +0,0 @@ - - - - - urn:ferd:CrossIndustryDocument:invoice:1p0:basic - - - - RE1337 - RECHNUNG - 380 - - 20130305 - - - Test Node 1 - - - Test Node 2 - - - easybill GmbH - Düsselstr. 21 - 41564 Kaarst - - Geschäftsführer: - Christian Szardenings - Ronny Keyser - - REG - - - - - - Lieferant GmbH - - 80333 - Lieferantenstraße 20 - München - DE - - - 201/113/40209 - - - DE123456789 - - - - Kunden AG Mitte - - 69876 - Hans Muster - Kundenstraße 15 - Frankfurt - DE - - - - 0234587234 - - - - - - 20130305 - - - - - 2013-471102 - EUR - - 31 - Überweisung - - DE08700901001234567890 - - - - - GENODEF1M04 - - - - - - 19.25 - VAT - 275.00 - 7.00 - - - 37.62 - VAT - 198.00 - 19.00 - - - - 20130104 - - - 20130204 - - - - Zahlbar innerhalb 30 Tagen netto bis 04.04.2013, 3% Skonto innerhalb 10 Tagen bis 15.03.2013 - - 20130404 - - - - 198.00 - 0.00 - 0.00 - 198.00 - 37.62 - 235.62 - - - - - 1 - - Testcontent in einem LineDocument - - - - - 9.90 - - - false - - 1.8000 - - - - 9.90 - - - - 20.0000 - - - - VAT - 19.00 - S - - - 198.00 - - - - TB100A4 - Trennblätter A4 - - - - \ No newline at end of file diff --git a/tests/zugferd211/.gitkeep b/tests/zugferd211/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/zugferd211/Tests/ValidatorTest.php b/tests/zugferd211/Tests/ValidatorTest.php deleted file mode 100644 index a4a44905..00000000 --- a/tests/zugferd211/Tests/ValidatorTest.php +++ /dev/null @@ -1,25 +0,0 @@ -validateAgainstXsd($xml, Validator::SCHEMA_EN16931); - self::assertNull($errors, $errors ?? ''); - } - - public function testXsdFail() - { - $validator = new Validator(); - $xml = file_get_contents(__DIR__ . '/broken_example.xml'); - $errors = $validator->validateAgainstXsd($xml, Validator::SCHEMA_EN16931); - self::assertNotNull($errors, 'Validator says broken xml is valid.'); - } -}