diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 00000000000..186b20a051d
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,5 @@
+# These are supported funding model platforms
+
+open_collective: dolibarr
+custom: https://wiki.dolibarr.org/index.php/Subscribe
+# github: [eldy]
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/bug_report.md
similarity index 78%
rename from .github/ISSUE_TEMPLATE.md
rename to .github/ISSUE_TEMPLATE/bug_report.md
index a105eed20ea..432f30f2332 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,8 +1,16 @@
+---
+name: Bug report
+about: Create a report to help us fix something that is broken
+title: ''
+labels: Bug
+assignees: ''
+
+---
+
# Instructions
*This is a template to help you report good issues. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.*
*Please:*
-- *only keep the "Bug" or "Feature Request" section*
-- *replace the bracket enclosed texts with meaningful informations*
+- *replace the bracket enclosed texts with meaningful information*
- *remove any unused sub-section*
@@ -25,17 +33,3 @@
## [Attached files](https://help.github.com/articles/issue-attachments) (Screenshots, screencasts, dolibarr.log, debugging informations…)
[*Files*]
-
-
-
-# Feature Request
-[*Short description*]
-
-## Use case
-[*Verbose description*]
-
-## Suggested implementation
-[*Verbose description*]
-
-## Suggested steps
-[*List of tasks to achieve goal*]
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 00000000000..32e2deff2c1
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,27 @@
+---
+name: Feature request
+about: Suggest a new idea for this project
+title: ''
+labels: Feature request
+assignees: ''
+
+---
+
+# Instructions
+*This is a template to help you report good issues. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.*
+*Please:*
+- *replace the bracket enclosed texts with meaningful information*
+- *remove any unused sub-section*
+
+
+# Feature Request
+[*Short description*]
+
+## Use case
+[*Verbose description*]
+
+## Suggested implementation
+[*Verbose description*]
+
+## Suggested steps
+[*List of tasks to achieve goal*]
diff --git a/.scrutinizer.yml b/.scrutinizer.yml
index 85809bcc058..7c43ab24aef 100644
--- a/.scrutinizer.yml
+++ b/.scrutinizer.yml
@@ -38,6 +38,7 @@ tools:
- doc/*
- test/*
- htdocs/includes/*
+ - htdocs/core/class/lessc.class.php
paths:
- htdocs/
- scripts/
diff --git a/.stickler.yml b/.stickler.yml
new file mode 100644
index 00000000000..b68804448b2
--- /dev/null
+++ b/.stickler.yml
@@ -0,0 +1,10 @@
+---
+linters:
+ phpcs:
+ standard: 'dev/setup/codesniffer/ruleset.xml'
+ extensions: 'php'
+ tab_width: 4
+ fixer: true
+
+fixers:
+ enable: true
diff --git a/.travis.yml b/.travis.yml
index 1521035578b..cccc1efe1c4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,9 +18,7 @@ addons:
apt:
sources:
# To use the last version of pgloader, we add repo of postgresql
- - postgresql
- - sourceline: 'deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main'
- - key_url: 'https://www.postgresql.org/media/keys/ACCC4CF8.asc'
+ - pgdg-trusty
packages:
# We need a webserver to test the webservices
# Let's install Apache with.
@@ -112,32 +110,33 @@ install:
rm $TRAVIS_BUILD_DIR/composer.json
rm $TRAVIS_BUILD_DIR/composer.lock
composer self-update
+ # To have composer making parallel downloads
+ composer global require hirak/prestissimo
composer -n init
composer -n config vendor-dir htdocs/includes
echo
- |
- echo "Installing Parallel Lint"
- composer -n require jakub-onderka/php-parallel-lint ^0
- composer -n require jakub-onderka/php-console-highlighter ^0
- echo
-
-- |
- echo "Installing PHP Unit"
+ echo "Installing Composer dependencies (PHP Unit, Parallel Lint & PHP CodeSniffer"
if [ "$TRAVIS_PHP_VERSION" = '5.4' ] || [ "$TRAVIS_PHP_VERSION" = '5.5' ]; then
- composer -n require phpunit/phpunit ^4
+ composer -n require phpunit/phpunit ^4 \
+ jakub-onderka/php-parallel-lint ^0 \
+ jakub-onderka/php-console-highlighter ^0 \
+ squizlabs/php_codesniffer ^3
fi
- if [ "$TRAVIS_PHP_VERSION" = '5.6' ] || [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ]; then
- composer -n require phpunit/phpunit ^5
+ if [ "$TRAVIS_PHP_VERSION" = '5.6' ] || [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] \
+ [ "$TRAVIS_PHP_VERSION" = '7.2' ] || [ "$TRAVIS_PHP_VERSION" = '7.3' ]; then
+ composer -n require phpunit/phpunit ^5 \
+ jakub-onderka/php-parallel-lint ^0 \
+ jakub-onderka/php-console-highlighter ^0 \
+ squizlabs/php_codesniffer ^3
fi
- if [ "$TRAVIS_PHP_VERSION" = '7.2' ] || [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
- composer -n require phpunit/phpunit ^5
- fi
- echo
-
-- |
- echo "Installing PHP CodeSniffer"
- composer -n require squizlabs/php_codesniffer ^3
+ if [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
+ composer -n require --ignore-platform-reqs phpunit/phpunit ^5 \
+ jakub-onderka/php-parallel-lint ^0 \
+ jakub-onderka/php-console-highlighter ^0 \
+ squizlabs/php_codesniffer ^3
+ fi
echo
- |
@@ -246,8 +245,6 @@ before_script:
- echo "Setting up Apache + FPM"
- - sudo apt-get update
- - sudo apt-get install apache2 libapache2-mod-fastcgi
# enable php-fpm
- sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf
- |
@@ -293,12 +290,12 @@ script:
echo
- |
- echo "Checking coding style"
+ echo "Checking coding style (excluding Pull Requests builds)"
# Ensure we catch errors
set -e
# Exclusions are defined in the ruleset.xml file
#phpcs -s -n -p -d memory_limit=-1 --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 .
- phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .
+ if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .; fi
set +e
echo
diff --git a/COPYRIGHT b/COPYRIGHT
index f58095e1558..a6ce437a9c3 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -13,7 +13,7 @@ Component Version License GPL Compatible
-------------------------------------------------------------------------------------
PHP libraries:
AdoDb-Date 0.36 Modified BSD License Yes Date convertion (not into rpm package)
-CKEditor 4.11.4 LGPL-2.1+ Yes Editor WYSIWYG
+CKEditor 4.12.1 LGPL-2.1+ Yes Editor WYSIWYG
EvalMath 1.0 BSD Yes Safe math expressions evaluation
Escpos-php ? MIT License Yes Thermal receipt printer library, for use with ESC/POS compatible printers
GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package)
@@ -37,7 +37,8 @@ TCPDF 6.2.25 LGPL-3+ Yes
TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement
JS libraries:
-jQuery 3.3.1 MIT License Yes JS library
+Ace 1.4.6 BSD Yes JS library to get code syntaxique coloration in a textarea.
+jQuery 3.4.1 MIT License Yes JS library
jQuery UI 1.12.1 GPL and MIT License Yes JS library plugin UI
jQuery select2 4.0.5 GPL and Apache License Yes JS library plugin for sexier multiselect
jQuery blockUI 2.70.0 GPL and MIT License Yes JS library plugin blockUI (to use ajax popups)
@@ -54,7 +55,6 @@ jQuery Timepicker 1.1.0 GPL and MIT License Yes
jsGanttImproved 1.7.5.4 BSD License Yes JS library (to build Gantt reports)
JsTimezoneDetect 1.0.6 MIT License Yes JS library to detect user timezone
SwaggerUI 2.0.24 GPL-2+ Yes JS library to offer the REST API explorer
-Ace 1.2.8 BSD Yes JS library to get code syntaxique coloration in a textarea.
Image libraries:
Octicons 8.1 MIT Yes
diff --git a/ChangeLog b/ChangeLog
index 62d791a670a..b8a3fea2ce9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -16,8 +16,114 @@ Following changes may create regressions for some external modules, but were nec
* Properties ->libelle_incoterms were renamed into ->label_incoterms
* Removed the method liste_array() of project class. It was not used by core code.
* The function show_theme() hase been renamed into showSkins()
+* Rename 'module_part' parameter into 'modulepart' into document APIs, for consistency.
+* The deprecated method get_OutstandingBill has been removed. You can use getOutstandingBills() instead.
+* The hook "moreFamily" must return payment into var "totalpayment" and no more "paiement" (english replace french).
+* Removed deprecated method actioncomm->add(), use create() instead
+* If you have developed your own emailing target selector and used parent::add_to_target(...), you must now use parent::addToTargets(...)
+* Removed function dol_micro_time. Use native PHP microtime instead.
+***** ChangeLog for 10.0.2 compared to 10.0.1 *****
+
+FIX: #10460 compatibility with MariaDB 10.4
+FIX: #11401 Adherent unknown language key
+FIX: #11422 Can't edit his own events with standard rights
+FIX: #11427 require product class (fixes POST /supplierinvoices REST API endpoint)
+FIX: #11570
+FIX: #11591 FIX: #11592
+FIX: #11671 CVE-2019-15062
+FIX: #11672
+FIX: #11685
+FIX: #11702
+FIX: #11711
+FIX: #11720
+FIX: #11746 Unable to modify amount of insurance of a loan
+FIX: #11752
+FIX: #11789 FIX: #11790
+FIX: #11804 list of tickets from a customer card display ALL tickets
+FIX: #11834
+FIX: Add char $ and ; in sanitizing of filenames.
+FIX: Add comment before protected functions
+FIX: Add log and type of content in dolWebsiteOutput and
+FIX: Add repair.php option 'restore' to restore user picture after v10
+FIX: amount opened on thirdparty card dont care of credit note not converted
+FIX: Api of documents work with value 'thirdparty'
+FIX: author in message / ticket API
+FIX: avoid sql error if fk_project is empty during update
+FIX: avoid Warning: A non-numeric value encountered
+FIX: bad consistency in list of invoice for direct debit order.
+FIX: Bad error management in zip compress and web site export
+FIX: bad substitution for extrafields type checkbox
+FIX: better help message with multicompany
+FIX: calculation of $products_dispatched
+FIX: Can't add a new chart of account
+FIX: Can't delete a draft leave even if it should
+FIX: Can't save setup of mailman module
+FIX: column jabberid missing
+FIX: Confirmation of deletion
+FIX: Consistency in direct debit order lists.
+FIX: Content send before header warning
+FIX: credit note can be split
+FIX: credit note used on list
+FIX: Css was saved on wrong website.
+FIX: delivery extrafields
+FIX: Disabling a website does not put it offline
+FIX: display only stripe sources for customer
+FIX: display payment intent in stripe's charge list
+FIX: document list for products in API
+FIX: dol_thirdparty_id for stripe PI
+FIX: Do not show tooltip if tooltip is empty
+FIX: duplicate css tag, decrease padding-bottom for boxes in eldy theme
+FIX: duration when creating service
+FIX: EDB-ID:47370
+FIX: Enable web site
+FIX: error management when adding a property with type real
+FIX: Fatal situation if payment removed on expense report. Action
+FIX: filepath of generated documents doesn't handle products with special characters
+FIX: for MAIN_MAXTABS_IN_CARD = $i card
+FIX: gzip and bzip2 must use option -f
+FIX: It was possible to create cashfence without entering data.
+FIX: javascript error when using dol_use_jmobile=1
+FIX: logout redirect to takepos.php
+FIX: Look and feel v10
+FIX: Make protected all pfd models functions
+FIX: management of extrafields in modulebuilder
+FIX: Missing div for buttons in tax, loan, various payment modules
+FIX: missing include (dol_convert_file not found)
+FIX: Missing some replacements in website module
+FIX: missing test on permission on button to delete ledger record
+FIX: Missing the filter fields in export of expense report and leaves
+FIX: Missing ticket icon on md theme
+FIX: Missing transaction
+FIX: Mode smartphone was not triggered when there is too loo menu
+FIX: Must escape shell
+FIX: Must exclude logs and some dirs for compressed backup
+FIX: name and position of hook FIX: #11710
+FIX: Not showing MAIN_INVERT_SENDER_RECIPIENT when edit field
+FIX: Nowrap missing on amount in boxes
+FIX: Option to use ZipArchive instead of PclZip bugged with large files.
+FIX: order or proposals billed if both workflow conf activated
+FIX: permission check on API intervention
+FIX: phpcs
+FIX: placement function
+FIX: qty in invoice list on product's stats
+FIX: remove disabled product type from product list
+FIX: Return code of pdf_einstein.modules.php and proformat
+FIX: round for application fee in stripe
+FIX: Sens of the balance (Debit - Credit in accountancy not contrary)
+FIX: Several pb in export of documents
+FIX: SQL syntax error and CSRF check on vat reports
+FIX: takepos layout clear or focus search
+FIX: too many record in sql request. Whena criteria is a filter, we must
+FIX: Translation of month
+FIX: USEDOLIBARREDITOR not always set
+FIX: VAT number for Monaco (it uses FR)
+FIX: vulenrability in uploading file found by 美创科技安全实验室
+FIX: wrong display (and hidden input) for already dispatched quantity
+FIX: wrong parameters (same error in branch 9, 10, develop)
+FIX: Wrong variable. Must be PROJECT_HIDE_UNSELECTABLES
+
***** ChangeLog for 10.0.1 compared to 10.0.0 *****
FIX: #10930
FIX: #10984
diff --git a/README.md b/README.md
index 5d4de0af909..0ae6d1b9de5 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,6 @@
# DOLIBARR ERP & CRM

-[](https://houndci.com)
|7|8|9|10|develop|
|----------|----------|----------|----------|----------|
@@ -75,6 +74,7 @@ If you don't have time to install it yourself, you can try some commercial 'read
## UPGRADING
+- At first make a backup of your Dolibarr files & than see https://wiki.dolibarr.org/index.php/Installation_-_Upgrade#Upgrade_Dolibarr
- Overwrite all old files from 'dolibarr' directory with files provided into the new version's package.
- At first next access, Dolibarr will redirect your to the "install/" page to follow the upgrade process.
If an `install.lock` file exists to lock any other upgrade process, the application will ask you to remove the file manually (you should find the `install.lock` file into the directory used to store generated and uploaded documents, in most cases, it is the directory called "*documents*").
@@ -91,18 +91,19 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
### Main application/modules (all optional)
-- Customers, Prospects and/or Suppliers directory
+- Customers, Prospects (Leads) and/or Suppliers directory
- Products and/or Services catalog
- Commercial proposals management
- Customer and Supplier Orders management
- Invoices and payment management
- Standing orders management (European SEPA)
- Bank accounts management
+- Accounting management
- Shared calendar/agenda (with ical and vcal export for third party tools integration)
- Opportunities and/or project management
- Projects management
- Contracts management
-- Stock management
+- Warehouse/Stock management
- Shipping management
- Interventions management
- Employee's leave requests management
@@ -112,7 +113,7 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
- Foundations members management
- Mass emailing
- Surveys
-- Point of Sale
+- Point of Sale (POS)
- …
### Other application/modules
@@ -132,15 +133,15 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
### Other general features
-- Localization in most major languages.
-- Multi-Users and groups with finely grained rights.
-- Multi-currency.
-- Multi-company by adding of an external module.
-- Very user friendly and easy to use.
+- Localization in most major languages
+- Multi-Users and groups with finely grained rights
+- Multi-currency
+- Multi-company by adding of an external module
+- Very user friendly and easy to use
+- customizable Dashboard
- Highly customizable: enable only the modules you need, add user personalized fields, choose your skin, several menu managers (can be used by internal users as a back-office with a particular menu, or by external users as a front-office with another one)
-- Works with PHP 5.3+ and MariaDB 5.0.3+, MySQL 5.0.3+ or PostgreSQL 8.1.4+ (See requirements on the [Wiki](https://wiki.dolibarr.org/index.php/Prerequisite))
-- Compatible with all Cloud solutions that match MySQL, PHP or PostgreSQL prerequisites.
-- APIs.
+
+- APIs
- An easy to understand, maintain and develop code (PHP with no heavy framework; trigger and hook architecture)
- Support a lot of country specific features:
- Spanish Tax RE and ISPF
@@ -154,6 +155,12 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
- PDF or ODT generation for invoice, proposals, orders...
- …
+### System Environment / Requirements
+
+- Works with PHP 5.5+ and MariaDB 5.0.3+, MySQL 5.0.3+ or PostgreSQL 8.1.4+ (See requirements on the [Wiki](https://wiki.dolibarr.org/index.php/Prerequisite))
+- Compatible with all Cloud solutions that match MySQL, PHP or PostgreSQL prerequisites.
+
+
### Extending
Dolibarr can be extended with a lot of other external application or modules from third party developers available at the [DoliStore](https://www.dolistore.com).
diff --git a/build/README b/build/README
index 27ddf4178fd..ab83fef26e4 100644
--- a/build/README
+++ b/build/README
@@ -3,8 +3,7 @@ README (English)
Building packages
##################################################
-All sub-directories of "build" directory contains files required to build
-automatically Dolibarr packages.
+All sub-directories of "build" directory contains files (setup or binary tools) required to build automatically Dolibarr packages.
There are several tools:
diff --git a/build/docker/README.md b/build/docker/README.md
index 5a0997cf121..616cbd8fa78 100644
--- a/build/docker/README.md
+++ b/build/docker/README.md
@@ -23,3 +23,6 @@ The URL to go to the Dolibarr is :
The URL to go to PhpMyAdmin is (login/password is root/root) :
http://0.0.0.0:8080
+
+Setup the database connection during the installation process, please use mariad
+b (name of the database container) as database host.
diff --git a/build/doxygen/doxygen_footer.html b/build/doxygen/doxygen_footer.html
index 8ffdc5341fe..1426885a565 100644
--- a/build/doxygen/doxygen_footer.html
+++ b/build/doxygen/doxygen_footer.html
@@ -10,7 +10,6 @@ File added into doxygen generated documentation
-
@@ -24,13 +23,30 @@ File added into doxygen generated documentation
+
+
+
+
+
+
-
+
+