diff --git a/.gitignore b/.gitignore
index 202d931f6..9560e8f5f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,4 +47,10 @@ local/*
.idea/*
include/tfpdf/font/unifont/*
html/ads.html
+<<<<<<< HEAD
/nbproject/private/
+=======
+doc/code/*
+nbproject/private/
+
+>>>>>>> unstable
diff --git a/Doxyfile b/Doxyfile
index 09d5e7ff2..2b01ef747 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -218,7 +218,7 @@ JAVADOC_AUTOBRIEF = YES
# interpreted by doxygen.
# The default value is: NO.
-JAVADOC_BANNER = NO
+JAVADOC_BANNER = YES
# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If
diff --git a/composer.json b/composer.json
index ee0c5eec8..855d603cc 100644
--- a/composer.json
+++ b/composer.json
@@ -1,10 +1,10 @@
{
"require": {
"horstoeko/zugferd": "^1.0",
- "zetacomponents/mail": "^1.10",
- "num-num/ubl-invoice": "^1.21",
"php-curl-class/php-curl-class": "^12.0",
"chillerlan/php-authenticator": "^5.2",
- "endroid/qr-code": "^6.0"
+ "endroid/qr-code": "^6.0",
+ "smalot/pdfparser": "^2.12",
+ "phpmailer/phpmailer": "^7.0"
}
}
diff --git a/composer.lock b/composer.lock
index 4e866e855..806385137 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,20 +4,20 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "03e0b831d2d0674eac8b1d9fb8f1a615",
+ "content-hash": "d6b57bd2081bafbe6bf8c26579cc52b4",
"packages": [
{
"name": "bacon/bacon-qr-code",
- "version": "v3.0.1",
+ "version": "v3.0.3",
"source": {
"type": "git",
"url": "https://github.com/Bacon/BaconQrCode.git",
- "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f"
+ "reference": "36a1cb2b81493fa5b82e50bf8068bf84d1542563"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/f9cc1f52b5a463062251d666761178dbdb6b544f",
- "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f",
+ "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/36a1cb2b81493fa5b82e50bf8068bf84d1542563",
+ "reference": "36a1cb2b81493fa5b82e50bf8068bf84d1542563",
"shasum": ""
},
"require": {
@@ -27,8 +27,9 @@
},
"require-dev": {
"phly/keep-a-changelog": "^2.12",
- "phpunit/phpunit": "^10.5.11 || 11.0.4",
+ "phpunit/phpunit": "^10.5.11 || ^11.0.4",
"spatie/phpunit-snapshot-assertions": "^5.1.5",
+ "spatie/pixelmatch-php": "^1.2.0",
"squizlabs/php_codesniffer": "^3.9"
},
"suggest": {
@@ -56,9 +57,9 @@
"homepage": "https://github.com/Bacon/BaconQrCode",
"support": {
"issues": "https://github.com/Bacon/BaconQrCode/issues",
- "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.1"
+ "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.3"
},
- "time": "2024-10-01T13:55:55+00:00"
+ "time": "2025-11-19T17:15:36+00:00"
},
{
"name": "chillerlan/php-authenticator",
@@ -208,16 +209,16 @@
},
{
"name": "dasprid/enum",
- "version": "1.0.6",
+ "version": "1.0.7",
"source": {
"type": "git",
"url": "https://github.com/DASPRiD/Enum.git",
- "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90"
+ "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/8dfd07c6d2cf31c8da90c53b83c026c7696dda90",
- "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90",
+ "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/b5874fa9ed0043116c72162ec7f4fb50e02e7cce",
+ "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce",
"shasum": ""
},
"require": {
@@ -252,9 +253,9 @@
],
"support": {
"issues": "https://github.com/DASPRiD/Enum/issues",
- "source": "https://github.com/DASPRiD/Enum/tree/1.0.6"
+ "source": "https://github.com/DASPRiD/Enum/tree/1.0.7"
},
- "time": "2024-08-09T14:30:48+00:00"
+ "time": "2025-09-16T12:23:56+00:00"
},
{
"name": "doctrine/instantiator",
@@ -649,16 +650,16 @@
},
{
"name": "horstoeko/zugferd",
- "version": "v1.0.115",
+ "version": "v1.0.117",
"source": {
"type": "git",
"url": "https://github.com/horstoeko/zugferd.git",
- "reference": "9bbf0c06942645001d10e88d6e26ff6d8983da2c"
+ "reference": "7c2fdb58e0910e199b1fd2162ae5d33a1e62e933"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/horstoeko/zugferd/zipball/9bbf0c06942645001d10e88d6e26ff6d8983da2c",
- "reference": "9bbf0c06942645001d10e88d6e26ff6d8983da2c",
+ "url": "https://api.github.com/repos/horstoeko/zugferd/zipball/7c2fdb58e0910e199b1fd2162ae5d33a1e62e933",
+ "reference": "7c2fdb58e0910e199b1fd2162ae5d33a1e62e933",
"shasum": ""
},
"require": {
@@ -717,9 +718,9 @@
],
"support": {
"issues": "https://github.com/horstoeko/zugferd/issues",
- "source": "https://github.com/horstoeko/zugferd/tree/v1.0.115"
+ "source": "https://github.com/horstoeko/zugferd/tree/v1.0.117"
},
- "time": "2025-06-06T08:14:02+00:00"
+ "time": "2025-11-17T14:09:15+00:00"
},
{
"name": "jms/metadata",
@@ -887,98 +888,28 @@
],
"time": "2025-05-26T15:55:41+00:00"
},
- {
- "name": "num-num/ubl-invoice",
- "version": "v1.21.2",
- "source": {
- "type": "git",
- "url": "https://github.com/num-num/ubl-invoice.git",
- "reference": "195712b3071e23c5aaa6fe95cb9e2de55c3d1348"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/num-num/ubl-invoice/zipball/195712b3071e23c5aaa6fe95cb9e2de55c3d1348",
- "reference": "195712b3071e23c5aaa6fe95cb9e2de55c3d1348",
- "shasum": ""
- },
- "require": {
- "php": "^7.3 || ^8.0",
- "sabre/xml": "^4.0"
- },
- "require-dev": {
- "phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^9.0",
- "squizlabs/php_codesniffer": "^3.7"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "NumNum\\UBL\\": [
- "src"
- ],
- "NumNum\\UBL\\Tests\\": [
- "tests"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bert Devriese",
- "email": "bert@numnum.be",
- "homepage": "https://www.numnum.be",
- "role": "Developer"
- }
- ],
- "description": "A modern object-oriented PHP library to create valid UBL and Peppol BIS 3.0 files",
- "homepage": "https://github.com/num-num/ubl-invoice",
- "keywords": [
- "E-Invoice",
- "digital invoice",
- "efff",
- "einvoice",
- "electronic invoice",
- "euinvoice",
- "invoice",
- "peppol",
- "peppol bis",
- "peppol invoice",
- "peppolbis",
- "ubl",
- "ubl invoice",
- "ublinvoice",
- "xml",
- "xml invoice"
- ],
- "support": {
- "issues": "https://github.com/num-num/ubl-invoice/issues",
- "source": "https://github.com/num-num/ubl-invoice/tree/v1.21.2"
- },
- "time": "2025-07-01T11:58:25+00:00"
- },
{
"name": "paragonie/constant_time_encoding",
- "version": "v3.0.0",
+ "version": "v3.1.3",
"source": {
"type": "git",
"url": "https://github.com/paragonie/constant_time_encoding.git",
- "reference": "df1e7fde177501eee2037dd159cf04f5f301a512"
+ "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/df1e7fde177501eee2037dd159cf04f5f301a512",
- "reference": "df1e7fde177501eee2037dd159cf04f5f301a512",
+ "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77",
+ "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77",
"shasum": ""
},
"require": {
"php": "^8"
},
"require-dev": {
- "phpunit/phpunit": "^9",
- "vimeo/psalm": "^4|^5"
+ "infection/infection": "^0",
+ "nikic/php-fuzzer": "^0",
+ "phpunit/phpunit": "^9|^10|^11",
+ "vimeo/psalm": "^4|^5|^6"
},
"type": "library",
"autoload": {
@@ -1024,20 +955,20 @@
"issues": "https://github.com/paragonie/constant_time_encoding/issues",
"source": "https://github.com/paragonie/constant_time_encoding"
},
- "time": "2024-05-08T12:36:18+00:00"
+ "time": "2025-09-24T15:06:41+00:00"
},
{
"name": "php-curl-class/php-curl-class",
- "version": "12.0.0",
+ "version": "12.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-curl-class/php-curl-class.git",
- "reference": "7a8f05efb18bb865dbce864b8fd34d4f5d920c74"
+ "reference": "064e78f89ab897284c1d098079fd121a0aac7ad7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-curl-class/php-curl-class/zipball/7a8f05efb18bb865dbce864b8fd34d4f5d920c74",
- "reference": "7a8f05efb18bb865dbce864b8fd34d4f5d920c74",
+ "url": "https://api.github.com/repos/php-curl-class/php-curl-class/zipball/064e78f89ab897284c1d098079fd121a0aac7ad7",
+ "reference": "064e78f89ab897284c1d098079fd121a0aac7ad7",
"shasum": ""
},
"require": {
@@ -1102,22 +1033,104 @@
],
"support": {
"issues": "https://github.com/php-curl-class/php-curl-class/issues",
- "source": "https://github.com/php-curl-class/php-curl-class/tree/12.0.0"
+ "source": "https://github.com/php-curl-class/php-curl-class/tree/12.0.2"
},
- "time": "2025-03-25T18:04:16+00:00"
+ "time": "2025-11-18T19:37:10+00:00"
},
{
- "name": "phpstan/phpdoc-parser",
- "version": "2.2.0",
+ "name": "phpmailer/phpmailer",
+ "version": "v7.0.0",
"source": {
"type": "git",
- "url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "b9e61a61e39e02dd90944e9115241c7f7e76bfd8"
+ "url": "https://github.com/PHPMailer/PHPMailer.git",
+ "reference": "c7111310c6116ba508a6a170a89eaaed2129bd42"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/b9e61a61e39e02dd90944e9115241c7f7e76bfd8",
- "reference": "b9e61a61e39e02dd90944e9115241c7f7e76bfd8",
+ "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c7111310c6116ba508a6a170a89eaaed2129bd42",
+ "reference": "c7111310c6116ba508a6a170a89eaaed2129bd42",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-filter": "*",
+ "ext-hash": "*",
+ "php": ">=5.5.0"
+ },
+ "require-dev": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
+ "doctrine/annotations": "^1.2.6 || ^1.13.3",
+ "php-parallel-lint/php-console-highlighter": "^1.0.0",
+ "php-parallel-lint/php-parallel-lint": "^1.3.2",
+ "phpcompatibility/php-compatibility": "^9.3.5",
+ "roave/security-advisories": "dev-latest",
+ "squizlabs/php_codesniffer": "^3.7.2",
+ "yoast/phpunit-polyfills": "^1.0.4"
+ },
+ "suggest": {
+ "decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication",
+ "ext-imap": "Needed to support advanced email address parsing according to RFC822",
+ "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
+ "ext-openssl": "Needed for secure SMTP sending and DKIM signing",
+ "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication",
+ "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
+ "league/oauth2-google": "Needed for Google XOAUTH2 authentication",
+ "psr/log": "For optional PSR-3 debug logging",
+ "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)",
+ "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PHPMailer\\PHPMailer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-2.1-only"
+ ],
+ "authors": [
+ {
+ "name": "Marcus Bointon",
+ "email": "phpmailer@synchromedia.co.uk"
+ },
+ {
+ "name": "Jim Jagielski",
+ "email": "jimjag@gmail.com"
+ },
+ {
+ "name": "Andy Prevost",
+ "email": "codeworxtech@users.sourceforge.net"
+ },
+ {
+ "name": "Brent R. Matzelle"
+ }
+ ],
+ "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
+ "support": {
+ "issues": "https://github.com/PHPMailer/PHPMailer/issues",
+ "source": "https://github.com/PHPMailer/PHPMailer/tree/v7.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Synchro",
+ "type": "github"
+ }
+ ],
+ "time": "2025-10-15T16:40:02+00:00"
+ },
+ {
+ "name": "phpstan/phpdoc-parser",
+ "version": "2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
+ "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495",
+ "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495",
"shasum": ""
},
"require": {
@@ -1149,138 +1162,9 @@
"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/2.2.0"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0"
},
- "time": "2025-07-13T07:04:09+00:00"
- },
- {
- "name": "sabre/uri",
- "version": "3.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sabre-io/uri.git",
- "reference": "38eeab6ed9eec435a2188db489d4649c56272c51"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sabre-io/uri/zipball/38eeab6ed9eec435a2188db489d4649c56272c51",
- "reference": "38eeab6ed9eec435a2188db489d4649c56272c51",
- "shasum": ""
- },
- "require": {
- "php": "^7.4 || ^8.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^3.64",
- "phpstan/extension-installer": "^1.4",
- "phpstan/phpstan": "^1.12",
- "phpstan/phpstan-phpunit": "^1.4",
- "phpstan/phpstan-strict-rules": "^1.6",
- "phpunit/phpunit": "^9.6"
- },
- "type": "library",
- "autoload": {
- "files": [
- "lib/functions.php"
- ],
- "psr-4": {
- "Sabre\\Uri\\": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Evert Pot",
- "email": "me@evertpot.com",
- "homepage": "http://evertpot.com/",
- "role": "Developer"
- }
- ],
- "description": "Functions for making sense out of URIs.",
- "homepage": "http://sabre.io/uri/",
- "keywords": [
- "rfc3986",
- "uri",
- "url"
- ],
- "support": {
- "forum": "https://groups.google.com/group/sabredav-discuss",
- "issues": "https://github.com/sabre-io/uri/issues",
- "source": "https://github.com/fruux/sabre-uri"
- },
- "time": "2024-09-04T15:30:08+00:00"
- },
- {
- "name": "sabre/xml",
- "version": "4.0.6",
- "source": {
- "type": "git",
- "url": "https://github.com/sabre-io/xml.git",
- "reference": "a89257fd188ce30e456b841b6915f27905dfdbe3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sabre-io/xml/zipball/a89257fd188ce30e456b841b6915f27905dfdbe3",
- "reference": "a89257fd188ce30e456b841b6915f27905dfdbe3",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-xmlreader": "*",
- "ext-xmlwriter": "*",
- "lib-libxml": ">=2.6.20",
- "php": "^7.4 || ^8.0",
- "sabre/uri": ">=2.0,<4.0.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^3.64",
- "phpstan/phpstan": "^1.12",
- "phpunit/phpunit": "^9.6"
- },
- "type": "library",
- "autoload": {
- "files": [
- "lib/Deserializer/functions.php",
- "lib/Serializer/functions.php"
- ],
- "psr-4": {
- "Sabre\\Xml\\": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Evert Pot",
- "email": "me@evertpot.com",
- "homepage": "http://evertpot.com/",
- "role": "Developer"
- },
- {
- "name": "Markus Staab",
- "email": "markus.staab@redaxo.de",
- "role": "Developer"
- }
- ],
- "description": "sabre/xml is an XML library that you may not hate.",
- "homepage": "https://sabre.io/xml/",
- "keywords": [
- "XMLReader",
- "XMLWriter",
- "dom",
- "xml"
- ],
- "support": {
- "forum": "https://groups.google.com/group/sabredav-discuss",
- "issues": "https://github.com/sabre-io/xml/issues",
- "source": "https://github.com/fruux/sabre-xml"
- },
- "time": "2024-09-06T08:00:55+00:00"
+ "time": "2025-08-30T15:50:23+00:00"
},
{
"name": "setasign/fpdf",
@@ -1330,16 +1214,16 @@
},
{
"name": "setasign/fpdi",
- "version": "v2.6.3",
+ "version": "v2.6.4",
"source": {
"type": "git",
"url": "https://github.com/Setasign/FPDI.git",
- "reference": "67c31f5e50c93c20579ca9e23035d8c540b51941"
+ "reference": "4b53852fde2734ec6a07e458a085db627c60eada"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Setasign/FPDI/zipball/67c31f5e50c93c20579ca9e23035d8c540b51941",
- "reference": "67c31f5e50c93c20579ca9e23035d8c540b51941",
+ "url": "https://api.github.com/repos/Setasign/FPDI/zipball/4b53852fde2734ec6a07e458a085db627c60eada",
+ "reference": "4b53852fde2734ec6a07e458a085db627c60eada",
"shasum": ""
},
"require": {
@@ -1354,7 +1238,7 @@
"setasign/fpdf": "~1.8.6",
"setasign/tfpdf": "~1.33",
"squizlabs/php_codesniffer": "^3.5",
- "tecnickcom/tcpdf": "^6.2"
+ "tecnickcom/tcpdf": "^6.8"
},
"suggest": {
"setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured."
@@ -1390,7 +1274,7 @@
],
"support": {
"issues": "https://github.com/Setasign/FPDI/issues",
- "source": "https://github.com/Setasign/FPDI/tree/v2.6.3"
+ "source": "https://github.com/Setasign/FPDI/tree/v2.6.4"
},
"funding": [
{
@@ -1398,20 +1282,20 @@
"type": "tidelift"
}
],
- "time": "2025-02-05T13:22:35+00:00"
+ "time": "2025-08-05T09:57:14+00:00"
},
{
"name": "smalot/pdfparser",
- "version": "v2.12.0",
+ "version": "v2.12.1",
"source": {
"type": "git",
"url": "https://github.com/smalot/pdfparser.git",
- "reference": "8440edbf58c8596074e78ada38dcb0bd041a5948"
+ "reference": "98d31ba34ef5b5a98897ef4b6c3925d502ea53b1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/smalot/pdfparser/zipball/8440edbf58c8596074e78ada38dcb0bd041a5948",
- "reference": "8440edbf58c8596074e78ada38dcb0bd041a5948",
+ "url": "https://api.github.com/repos/smalot/pdfparser/zipball/98d31ba34ef5b5a98897ef4b6c3925d502ea53b1",
+ "reference": "98d31ba34ef5b5a98897ef4b6c3925d502ea53b1",
"shasum": ""
},
"require": {
@@ -1447,9 +1331,9 @@
],
"support": {
"issues": "https://github.com/smalot/pdfparser/issues",
- "source": "https://github.com/smalot/pdfparser/tree/v2.12.0"
+ "source": "https://github.com/smalot/pdfparser/tree/v2.12.1"
},
- "time": "2025-03-31T13:16:09+00:00"
+ "time": "2025-07-31T06:19:56+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -1520,16 +1404,16 @@
},
{
"name": "symfony/finder",
- "version": "v7.3.0",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "ec2344cf77a48253bbca6939aa3d2477773ea63d"
+ "reference": "9f696d2f1e340484b4683f7853b273abff94421f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/ec2344cf77a48253bbca6939aa3d2477773ea63d",
- "reference": "ec2344cf77a48253bbca6939aa3d2477773ea63d",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/9f696d2f1e340484b4683f7853b273abff94421f",
+ "reference": "9f696d2f1e340484b4683f7853b273abff94421f",
"shasum": ""
},
"require": {
@@ -1564,7 +1448,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v7.3.0"
+ "source": "https://github.com/symfony/finder/tree/v7.3.5"
},
"funding": [
{
@@ -1575,16 +1459,20 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-12-30T19:00:26+00:00"
+ "time": "2025-10-15T18:45:57+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.32.0",
+ "version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
@@ -1643,7 +1531,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0"
},
"funding": [
{
@@ -1654,6 +1542,10 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
@@ -1663,7 +1555,7 @@
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.32.0",
+ "version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
@@ -1724,7 +1616,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0"
},
"funding": [
{
@@ -1735,6 +1627,10 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
@@ -1744,16 +1640,16 @@
},
{
"name": "symfony/polyfill-php83",
- "version": "v1.32.0",
+ "version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php83.git",
- "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491"
+ "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491",
- "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5",
+ "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5",
"shasum": ""
},
"require": {
@@ -1800,7 +1696,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0"
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0"
},
"funding": [
{
@@ -1811,25 +1707,29 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2025-07-08T02:45:35+00:00"
},
{
"name": "symfony/process",
- "version": "v7.3.0",
+ "version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af"
+ "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/40c295f2deb408d5e9d2d32b8ba1dd61e36f05af",
- "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af",
+ "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b",
+ "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b",
"shasum": ""
},
"require": {
@@ -1861,7 +1761,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v7.3.0"
+ "source": "https://github.com/symfony/process/tree/v7.3.4"
},
"funding": [
{
@@ -1872,25 +1772,29 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2025-04-17T09:11:12+00:00"
+ "time": "2025-09-11T10:12:26+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.6.0",
+ "version": "v3.6.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d"
+ "reference": "65a8bc82080447fae78373aa10f8d13b38338977"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/df210c7a2573f1913b2d17cc95f90f53a73d8f7d",
- "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977",
+ "reference": "65a8bc82080447fae78373aa10f8d13b38338977",
"shasum": ""
},
"require": {
@@ -1939,7 +1843,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.6.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1"
},
"funding": [
{
@@ -1950,25 +1854,29 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-27T08:32:26+00:00"
+ "time": "2025-07-15T13:41:35+00:00"
},
{
"name": "symfony/validator",
- "version": "v7.3.1",
+ "version": "v7.3.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/validator.git",
- "reference": "e2f2497c869fc57446f735fbf00cff4de32ae8c3"
+ "reference": "8290a095497c3fe5046db21888d1f75b54ddf39d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/validator/zipball/e2f2497c869fc57446f735fbf00cff4de32ae8c3",
- "reference": "e2f2497c869fc57446f735fbf00cff4de32ae8c3",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/8290a095497c3fe5046db21888d1f75b54ddf39d",
+ "reference": "8290a095497c3fe5046db21888d1f75b54ddf39d",
"shasum": ""
},
"require": {
@@ -2007,7 +1915,7 @@
"symfony/property-info": "^6.4|^7.0",
"symfony/string": "^6.4|^7.0",
"symfony/translation": "^6.4.3|^7.0.3",
- "symfony/type-info": "^7.1",
+ "symfony/type-info": "^7.1.8",
"symfony/yaml": "^6.4|^7.0"
},
"type": "library",
@@ -2037,7 +1945,7 @@
"description": "Provides tools to validate values",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/validator/tree/v7.3.1"
+ "source": "https://github.com/symfony/validator/tree/v7.3.7"
},
"funding": [
{
@@ -2048,25 +1956,29 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2025-06-26T13:22:23+00:00"
+ "time": "2025-11-08T16:29:29+00:00"
},
{
"name": "symfony/yaml",
- "version": "v7.3.1",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "0c3555045a46ab3cd4cc5a69d161225195230edb"
+ "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/0c3555045a46ab3cd4cc5a69d161225195230edb",
- "reference": "0c3555045a46ab3cd4cc5a69d161225195230edb",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/90208e2fc6f68f613eae7ca25a2458a931b1bacc",
+ "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc",
"shasum": ""
},
"require": {
@@ -2109,7 +2021,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v7.3.1"
+ "source": "https://github.com/symfony/yaml/tree/v7.3.5"
},
"funding": [
{
@@ -2120,162 +2032,16 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2025-06-03T06:57:57+00:00"
- },
- {
- "name": "zetacomponents/base",
- "version": "1.9.4",
- "source": {
- "type": "git",
- "url": "https://github.com/zetacomponents/Base.git",
- "reference": "b6ae5f6177f6e51c5fc3514800e1c3fb076ec4be"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zetacomponents/Base/zipball/b6ae5f6177f6e51c5fc3514800e1c3fb076ec4be",
- "reference": "b6ae5f6177f6e51c5fc3514800e1c3fb076ec4be",
- "shasum": ""
- },
- "require-dev": {
- "phpunit/php-invoker": "^2.0|^3.1",
- "phpunit/phpunit": "~9.0",
- "zetacomponents/coding-standard": "dev-main",
- "zetacomponents/unit-test": "~1.2.3"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Sergey Alexeev"
- },
- {
- "name": "Sebastian Bergmann"
- },
- {
- "name": "Jan Borsodi"
- },
- {
- "name": "Raymond Bosman"
- },
- {
- "name": "Frederik Holljen"
- },
- {
- "name": "Kore Nordmann"
- },
- {
- "name": "Derick Rethans"
- },
- {
- "name": "Vadym Savchuk"
- },
- {
- "name": "Tobias Schlitt"
- },
- {
- "name": "Alexandru Stanoi"
- }
- ],
- "description": "The Base package provides the basic infrastructure that all packages rely on. Therefore every component relies on this package.",
- "homepage": "https://github.com/zetacomponents",
- "support": {
- "issues": "https://github.com/zetacomponents/Base/issues",
- "source": "https://github.com/zetacomponents/Base/tree/1.9.4"
- },
- "time": "2022-11-30T16:16:25+00:00"
- },
- {
- "name": "zetacomponents/mail",
- "version": "1.10.1",
- "source": {
- "type": "git",
- "url": "https://github.com/zetacomponents/Mail.git",
- "reference": "644fe50cf9f05a455cc576e2d763bc7cd967769f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zetacomponents/Mail/zipball/644fe50cf9f05a455cc576e2d763bc7cd967769f",
- "reference": "644fe50cf9f05a455cc576e2d763bc7cd967769f",
- "shasum": ""
- },
- "require": {
- "zetacomponents/base": "~1.8"
- },
- "require-dev": {
- "phpunit/phpunit": "~9.0",
- "zetacomponents/unit-test": "*"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Sergey Alexeev"
- },
- {
- "name": "Sebastian Bergmann"
- },
- {
- "name": "Jan Borsodi"
- },
- {
- "name": "Raymond Bosman"
- },
- {
- "name": "Frederik Holljen"
- },
- {
- "name": "Kore Nordmann"
- },
- {
- "name": "Derick Rethans"
- },
- {
- "name": "Vadym Savchuk"
- },
- {
- "name": "Tobias Schlitt"
- },
- {
- "name": "Alexandru Stanoi"
- },
- {
- "name": "Sinisa Dukaric"
- },
- {
- "name": "Mikko Koppanen"
- },
- {
- "name": "Christian Michel"
- }
- ],
- "description": "The component allows you construct and/or parse Mail messages conforming to the mail standard. It has support for attachments, multipart messages and HTML mail. It also interfaces with SMTP to send mail or IMAP, POP3 or mbox to retrieve e-mail.",
- "homepage": "https://github.com/zetacomponents",
- "support": {
- "issues": "https://github.com/zetacomponents/Mail/issues",
- "source": "https://github.com/zetacomponents/Mail/tree/1.10.1"
- },
- "time": "2025-03-17T11:33:59+00:00"
+ "time": "2025-09-27T09:00:46+00:00"
}
],
"packages-dev": [],
diff --git a/html/.cvsignore b/html/.cvsignore
deleted file mode 100755
index 0d3c38dd8..000000000
--- a/html/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.log
-ajax
diff --git a/html/ajax_misc.php b/html/ajax_misc.php
index f1c4ca6dc..b926f4ccb 100644
--- a/html/ajax_misc.php
+++ b/html/ajax_misc.php
@@ -45,6 +45,7 @@ $http=new HttpInput();
try {
$op= $http->request("op");
if ($op =='check_vatnumber') session_write_close();
+ if ($op =='search_peppol') session_write_close();
} catch (\Exception $e) {
exit();
@@ -372,6 +373,14 @@ $path = array(
,'activate_plugin'=>'ajax_activate_plugin'
// set the operation paid or unpaid
, 'payment_status'=>'ajax_payment_status'
+ // email setting
+ , 'email_setting'=>'ajax_email_setting'
+ // check iban number
+ , 'check_ibannumber'=>'ajax_check_ibannumber'
+ // related to peppol : search
+ ,'search_peppol'=>'ajax_search_peppol'
+ // find and select a VATEX code : VAT Exemption code mandatory for PEPPOL
+ ,'search_vatex'=>'ajax_search_vatex'
) ;
if (array_key_exists($op, $path)) {
@@ -589,7 +598,7 @@ EOF;
$Res = $cn->exec_sql("select * from v_tva_rate
where
- tva_purchase <> '#' and tva_sale <> '#'
+ tva_purchase <> '#' or tva_sale <> '#'
order by tva_id asc");
}
$Max = Database::num_row($Res);
diff --git a/html/css/font/Montserrat-Regular.ttf b/html/css/font/Montserrat-Regular.ttf
new file mode 100644
index 000000000..48ba65ed3
Binary files /dev/null and b/html/css/font/Montserrat-Regular.ttf differ
diff --git a/html/css/font/Montserrat-Regular.woff b/html/css/font/Montserrat-Regular.woff
new file mode 100644
index 000000000..2a990e5d8
Binary files /dev/null and b/html/css/font/Montserrat-Regular.woff differ
diff --git a/html/css/font/Roboto-Light.ttf b/html/css/font/Roboto-Light.ttf
new file mode 100644
index 000000000..6fcd5f964
Binary files /dev/null and b/html/css/font/Roboto-Light.ttf differ
diff --git a/html/css/font/Roboto-Regular.ttf b/html/css/font/Roboto-Regular.ttf
new file mode 100644
index 000000000..7e3bb2f8c
Binary files /dev/null and b/html/css/font/Roboto-Regular.ttf differ
diff --git a/html/css/font/Roboto-Regular.woff2 b/html/css/font/Roboto-Regular.woff2
new file mode 100644
index 000000000..79a39bf57
Binary files /dev/null and b/html/css/font/Roboto-Regular.woff2 differ
diff --git a/html/css/style-classic7.css b/html/css/style-classic7.css
index e4f4749e2..1513a486d 100644
--- a/html/css/style-classic7.css
+++ b/html/css/style-classic7.css
@@ -1,7 +1,43 @@
/* <\/scr"+"ipt>");
- $BK("__ie_onload").onreadystatechange = function() {
- if (this.readyState == "complete"){bkLib.domLoaded();}
- };
- }
- window.onload = bkLib.domLoaded;
- }
-};
-
-function $BK(elm) {
- if(typeof(elm) == "string") {
- elm = document.getElementById(elm);
- }
- return (elm && !elm.appendTo) ? bkExtend(elm,bkElement.prototype) : elm;
-}
-
-var bkEvent = {
- addEvent : function(evType, evFunc) {
- if(evFunc) {
- this.eventList = this.eventList || {};
- this.eventList[evType] = this.eventList[evType] || [];
- this.eventList[evType].push(evFunc);
- }
- return this;
- },
- fireEvent : function() {
- var args = bkLib.toArray(arguments), evType = args.shift();
- if(this.eventList && this.eventList[evType]) {
- for(var i=0;i');
- }
- this.instanceDoc = document.defaultView;
- this.elm.addEvent('mousedown',this.selected.closureListener(this)).addEvent('keypress',this.keyDown.closureListener(this)).addEvent('focus',this.selected.closure(this)).addEvent('blur',this.blur.closure(this)).addEvent('keyup',this.selected.closure(this));
- this.ne.fireEvent('add',this);
- },
-
- remove : function() {
- this.saveContent();
- if(this.copyElm || this.options.hasPanel) {
- this.editorContain.remove();
- this.e.setStyle({'display' : 'block'});
- this.ne.removePanel();
- }
- this.disable();
- this.ne.fireEvent('remove',this);
- },
-
- disable : function() {
- this.elm.setAttribute('contentEditable','false');
- },
-
- getSel : function() {
- return (window.getSelection) ? window.getSelection() : document.selection;
- },
-
- getRng : function() {
- var s = this.getSel();
- if(!s || s.rangeCount === 0) { return; }
- return (s.rangeCount > 0) ? s.getRangeAt(0) : s.createRange();
- },
-
- selRng : function(rng,s) {
- if(window.getSelection) {
- s.removeAllRanges();
- s.addRange(rng);
- } else {
- rng.select();
- }
- },
-
- selElm : function() {
- var r = this.getRng();
- if(!r) { return; }
- if(r.startContainer) {
- var contain = r.startContainer;
- if(r.cloneContents().childNodes.length == 1) {
- for(var i=0;i'+((css) ? '' : '')+''+this.initialContent+'