diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index a13037402f8..19c076242f8 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -115,12 +115,14 @@ Also, some code changes need a prior approbation:
Once a PR has been submitted, you may need to wait for its integration. It is common that the project leader let the PR open for a long delay to allow every developer discuss about the PR.
+If the label of PR start with "WIP" (Work In Progress), it will not be analyzed (until you change the label of PR).
+
If your PR has errors reported by the Continuous Integration Platform, it means your PR is not valid and nothing will be done with it. It will be kept open to allow developers to fix this, or it may be closed several month later. Don't expect anything on your PR if you have such errors, you MUST first fix the Continuous Integration error to have it taken into consideration.
If the PR is valid, and is kept open for a long time, a tag will also be added on the PR to describe the status of your PR and why the PR is kept open. By putting your mouse on the tag, you will get a full explanation of the tag/status that explain why your PR has not been integrated yet.
-In most cases, it give you information of things you have to do to have the PR taken into consideration (for example a change is requested, a conflict is expected to be solved, some questions were asked). If you have a yellow, red flag of purple flag, don't expect to have your PR validated. You must first provide the answer the flag ask you. The majority of PR are waiting a developer action.
+In most cases, it gives you information of things you have to do to have the PR taken into consideration (for example a change is requested, a conflict is expected to be solved, some questions were asked). If you have a yellow, red flag of purple flag, don't expect to have your PR validated. You must first provide the answer the flag ask you. The majority of PR are waiting an action of the developer/author.
-Around 95% of submitted PR are reviewed and tagged. Even if this is one of the most important ratio of answered PR in Open Source world, don't expect the core team to reach the 100%. With the increasing popularity of Dolibarr, this ratio will probably decrease in future.
+Statistics on Dolibarr project shows that around 95% of submitted PR are reviewed and tagged. This is one of the most important ratio of answered PR in Open Source world. Don't expect the core team to reach the 100%. With the increasing popularity of Dolibarr, this ratio will probably decrease in future.
### Resources
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 00000000000..81813c2bebe
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,4 @@
+# These are supported funding model platforms
+
+open_collective: dolibarr
+custom: https://wiki.dolibarr.org/index.php/Subscribe
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/.travis.yml b/.travis.yml
index b710e17c773..1521035578b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -288,7 +288,7 @@ script:
# Ensure we catch errors
set -e
#parallel-lint --exclude htdocs/includes --blame .
- parallel-lint --exclude htdocs/includes/sabre --exclude htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared --exclude htdocs/includes/phpoffice/PhpSpreadsheet --exclude htdocs/includes/sebastian --exclude htdocs/includes/squizlabs/php_codesniffer/tests --exclude htdocs/includes/jakub-onderka/php-parallel-lint/tests --exclude htdocs/includes/mike42/escpos-php/example --exclude htdocs/includes/phpunit/php-token-stream/tests --exclude htdocs/includes/composer/autoload_static.php --blame .
+ parallel-lint --exclude dev/namespacemig --exclude htdocs/includes/sabre --exclude htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared --exclude htdocs/includes/phpoffice/PhpSpreadsheet --exclude htdocs/includes/sebastian --exclude htdocs/includes/squizlabs/php_codesniffer/tests --exclude htdocs/includes/jakub-onderka/php-parallel-lint/tests --exclude htdocs/includes/mike42/escpos-php/example --exclude htdocs/includes/phpunit/php-token-stream/tests --exclude htdocs/includes/composer/autoload_static.php --blame .
set +e
echo
diff --git a/ChangeLog b/ChangeLog
index 0839fd77e95..6ca4df10d38 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -16,6 +16,116 @@ 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.
+
+
+***** ChangeLog for 10.0.1 compared to 10.0.0 *****
+FIX: #10930
+FIX: #10984
+FIX: reposition on "Build backup" button
+FIX: #11400
+FIX: #11412
+FIX: #11460
+FIX: #11463
+FIX: #11466
+FIX: #11492
+FIX: #11498
+FIX: #11505
+FIX: #11506
+FIX: #11507
+FIX: #11509
+FIX: #11537
+FIX: #11543
+FIX: #11553
+FIX: #11576
+FIX: #11584
+FIX: #11590
+FIX: accounting mode must be taken from global conf, because there's no way to choose a mode with interface
+FIX: Add message from public interface
+FIX: add missing hook calls
+FIX: Add warning when setup is strange
+FIX: ajax call for line positioning when CSRFCHECK_WITH_TOKEN is on
+FIX: API return 404 sometimes even if API exists
+FIX: Attachment was lost when we validate an expense report
+FIX: avoid conflict with "$classname" in card.php
+FIX: Bad sql request
+FIX: better compatibility with multicompany transverse mode
+FIX: Better PHP compatibility
+FIX: Block to link with tickets
+FIX: Can't submit a ticket from public interface
+FIX: categories import: prevent mismatch between category type and object type
+FIX: Closing ticket from public interface
+FIX: Column 'paid' missing in expense report
+FIX: compatibility mysql 8. rank is reserved
+FIX: Computed field were not calculated into lists.
+FIX: Content of email for subscription
+FIX: correct error in files with multiple spaces
+FIX: CVE-2019-11199
+FIX: delete of links between objects
+FIX: div not balanced
+FIX: do not return formatted prices in json string
+FIX: duplicate on the check (TODO field $onetrtd not used ?)
+FIX: element name in update_price
+FIX: empty product_use_units in product configuration
+FIX: expedition card: infinite loop for printObjectLine hook if return > 0
+FIX: extrafield loading bug due to assumption that an object is a third party while it may be a contact if MAIN_USE_COMPANY_NAME_OF_CONTACT is set.
+FIX: Fatal error on dol_htmloutput_mesg with corrupted array
+FIX: Fatal situation if payment removed on expense report. Action
+FIX: FEC Format - Missing date_creation in general ledger when you add a new transaction
+FIX: FEC Format - Save translation of the journal label in database & nowrap on amount
+FIX: floating point precision errors in the triggers of the workflow module
+FIX: for #11232
+FIX: format of field with type timestamp
+FIX: fournrprice log for insert
+FIX: help text
+FIX: import filter error
+FIX: __INFOS__ tag not exists
+FIX: issue #9300: install error with PostgreSQL when using custom table prefix
+FIX: Language key
+FIX: Limit of uploaded files (max_post_size was not used)
+FIX: list of balance of leaves
+FIX: minor spelling issues
+FIX: missing "dropdown-icon" replacement
+FIX: Missing field "Conciliated" into bank transaction export
+FIX: missing filter by current contact
+FIX: missing token
+FIX: Missing where on entity
+FIX: move sql request in INNER JOIN
+FIX: name was able to be in field but went back to new line
+FIX: Nowrap on amount
+FIX: Online payment
+FIX: on shipment delete confirm dialog, a new checkbox allows the user to choose if they want their stock re-incremented after the deletion.
+FIX: option EXPORT_LABEL_FOR_SELECT to restore compatibility in export
+FIX: Option THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION
+FIX: outdated phpdoc
+FIX: Permission for BOM menu
+FIX: permission to delete a draft purchase order
+FIX: phpcs
+FIX: Position was lost when we edit the line of template invoice
+FIX: product_use_units was set to 0 each time a conf in block other was set
+FIX: propal createFrom hook: undefined parameter attached
+FIX: Responsive of public interface of ticket
+FIX: search by phone pro
+FIX: Setup of TakePos was not possible after a clean install
+FIX: Show list of events on tickets
+FIX: socpeople assigned list in action com list
+FIX: SQL problem on donation & nowrap on amount
+FIX: stock increase on shipment deletion if STOCK_CALCULATE_ON_SHIPMENT_NEW: is set
+FIX: stripe webhook ID constant set
+FIX: summary of time spent in preview tab of projects
+FIX: the feature to bill time spent was not enabled.
+FIX: The new feature to attach document on lines was not correclty
+FIX: The proposed new supplier code does not work
+FIX: this function can not be private
+FIX: tk9877 - PDF rouget requires product.lib.php (otherwise measuring_units_string() is not defined)
+FIX: Update the file index table when we validate/rename a ref.
+FIX: use rounding to compare the amounts
+FIX: We must save code instead of value in database for template invoice modelpdf
+FIX: we need to be able to add freeline with qty between 0 & 1 in supplierorder line
+FIX: We should remove property comments only for project and task api.
+FIX: When saving an action it didn't save the label based on the type of event if the label is empty and the type is customized
+FIX: when STOCK_CALCULATE_ON_SHIPMENT_NEW: is set, deleting a "closed" shipment now increases stock as expected
+FIX: wrong path sociales/index.php doesnt exist anymore
***** ChangeLog for 10.0.1 compared to 10.0.0 *****
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 00000000000..e5493805733
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,13 @@
+# Security Policy
+
+## Supported Versions
+
+| Version | Supported |
+| -------- | ------------------ |
+| <= 8.0.* | :x: |
+| >= 9.0.* | :white_check_mark: |
+
+## Reporting a Vulnerability
+
+To report a vulnerability, please send an email to security@dolibarr.org
+In most cases, after fixing the security, we make an answer by email to say the issue has been fixed.
diff --git a/build/exe/doliwamp/php.ini.install b/build/exe/doliwamp/php.ini.install
index 04191a71f5a..af8ef607112 100644
--- a/build/exe/doliwamp/php.ini.install
+++ b/build/exe/doliwamp/php.ini.install
@@ -458,16 +458,6 @@ variables_order = "GPCS"
; with user data. This makes most sense when coupled with track_vars - in which
; case you can access all of the GPC variables through the $HTTP_*_VARS[],
; variables.
-;
-; You should do your best to write your scripts so that they do not require
-; register_globals to be on; Using form variables as globals can easily lead
-; to possible security problems, if the code is not very well thought of.
-register_globals = Off
-
-; Whether or not to register the old-style input arrays, HTTP_GET_VARS
-; and friends. If you're not using them, it's recommended to turn them off,
-; for performance reasons.
-register_long_arrays = Off
; This directive tells PHP whether to declare the argv&argc variables (that
; would contain the GET information). If you don't use these variables, you
@@ -477,8 +467,7 @@ register_argc_argv = Off
; When enabled, the SERVER and ENV variables are created when they're first
; used (Just In Time) instead of when the script starts. If these variables
; are not used within a script, having this directive on will result in a
-; performance gain. The PHP directives register_globals, register_long_arrays,
-; and register_argc_argv must be disabled for this directive to have any affect.
+; performance gain.
auto_globals_jit = On
; Maximum size of POST data that PHP will accept.
@@ -1101,14 +1090,6 @@ session.gc_maxlifetime = 1800
; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
; cd /path/to/sessions; find -cmin +24 | xargs rm
-; PHP 4.2 and less have an undocumented feature/bug that allows you to
-; to initialize a session variable in the global scope, albeit register_globals
-; is disabled. PHP 4.3 and later will warn you, if this feature is used.
-; You can disable the feature and the warning separately. At this time,
-; the warning is only displayed, if bug_compat_42 is enabled.
-
-session.bug_compat_42 = 0
-session.bug_compat_warn = 1
; Check HTTP Referer to invalidate externally stored URLs containing ids.
; HTTP_REFERER has to contain this substring for the session to be
diff --git a/build/rpm/httpd-dolibarr.conf b/build/rpm/httpd-dolibarr.conf
index 1126d4fe442..ebda2b3ddfc 100644
--- a/build/rpm/httpd-dolibarr.conf
+++ b/build/rpm/httpd-dolibarr.conf
@@ -29,16 +29,6 @@ Alias /dolibarr /usr/share/dolibarr/htdocs
ErrorDocument 401 /public/error-401.php
ErrorDocument 404 /public/error-404.php
-
- php_flag magic_quotes_gpc Off
- php_flag register_globals Off
-
-
-
- php_flag magic_quotes_gpc Off
- php_flag register_globals Off
-
-
# OPTIMIZE: To use gzip compressed files (for Dolibarr already compressed files).
# Note that constant MAIN_OPTIMIZE_SPEED must have a value with bit 0 set.
diff --git a/dev/namespacemig/README.md b/dev/namespacemig/README.md
new file mode 100644
index 00000000000..981292355ab
--- /dev/null
+++ b/dev/namespacemig/README.md
@@ -0,0 +1,4 @@
+Test to migrate Dolibarr to namespace "Dolibarr".
+
+Script bbb.php is a script of an external module with current code writing.
+It must works after migration.
\ No newline at end of file
diff --git a/dev/namespacemig/aaa.class.php b/dev/namespacemig/aaa.class.php
new file mode 100644
index 00000000000..1070e96f875
--- /dev/null
+++ b/dev/namespacemig/aaa.class.php
@@ -0,0 +1,23 @@
+do();
+
+$aaa = new Aaa();
+$aaa->do();
+
+echo $aaa::AAA."\n";
+echo $bbb::BBB."\n";
+
+echo Aaa::AAA."\n";
+echo Bbb::BBB."\n";
+
+echo faaa()."\n";
+echo fbbb()."\n";
+
+echo "globalaaa=$globalaaa\n";
+echo "globalbbb=$globalbbb\n";
diff --git a/dev/namespacemig/main.inc.php b/dev/namespacemig/main.inc.php
new file mode 100644
index 00000000000..5709a31f733
--- /dev/null
+++ b/dev/namespacemig/main.inc.php
@@ -0,0 +1,7 @@
+build/html
build/aps
+ dev/namespacemigdocuments
+ htdocs/core/class/lessc.class.phphtdocs/customhtdocs/includeshtdocs/install/doctemplates/websites
diff --git a/htdocs/accountancy/bookkeeping/balancebymonth.php b/htdocs/accountancy/bookkeeping/balancebymonth.php
index b9568228a36..1141accd476 100644
--- a/htdocs/accountancy/bookkeeping/balancebymonth.php
+++ b/htdocs/accountancy/bookkeeping/balancebymonth.php
@@ -73,19 +73,11 @@ $y = $year_current;
print '
';
if (! $i) $totalarray['nbfield']++;
}
@@ -1231,7 +1238,7 @@ if ($resql)
// Extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
// Fields from hook
- $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
+ $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i);
$reshook=$hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
// Date creation
@@ -1261,7 +1268,7 @@ if ($resql)
// Action column
print '
';
- if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
+ if (($massactionbutton || $massaction) && $contextpage != 'poslist') // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
{
$selected=0;
if (in_array($obj->id, $arrayofselected)) $selected=1;
diff --git a/htdocs/compta/paiement.php b/htdocs/compta/paiement.php
index 920acd1c22f..ce36be991d2 100644
--- a/htdocs/compta/paiement.php
+++ b/htdocs/compta/paiement.php
@@ -539,7 +539,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
$sql = 'SELECT f.rowid as facid, f.ref, f.total_ttc, f.multicurrency_code, f.multicurrency_total_ttc, f.type,';
$sql.= ' f.datef as df, f.fk_soc as socid, f.date_lim_reglement as dlr';
$sql.= ' FROM '.MAIN_DB_PREFIX.'facture as f';
- $sql.= ' WHERE f.entity IN ('.getEntity('invoice', $conf->entity).')';
+ $sql.= ' WHERE f.entity IN ('.getEntity('facture').')';
$sql.= ' AND (f.fk_soc = '.$facture->socid;
// Can pay invoices of all child of parent company
if(!empty($conf->global->FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS) && !empty($facture->thirdparty->parent)) {
@@ -744,6 +744,9 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
}
print "
";
+ $parameters=array();
+ $reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters, $objp, $action); // Note that $action and $object may have been modified by hook
+
// Warning
print '
';
- $parameters=array();
- $reshook=$hookmanager->executeHooks('printObjectLine', $parameters, $objp, $action); // Note that $action and $object may have been modified by hook
-
print "\n";
$total+=$objp->total;
@@ -893,12 +893,13 @@ if (! GETPOST('action', 'aZ09'))
print '
';
-
- $parameters=array();
- $reshook=$hookmanager->executeHooks('printObjectLine', $parameters, $objp, $action); // Note that $action and $object may have been modified by hook
-
+ print '
'.price($objp->amount).'
';
+ print '
';
print '';
+
+ $parameters=array();
+ $reshook=$hookmanager->executeHooks('printObjectLine', $parameters, $objp, $action); // Note that $action and $object may have been modified by hook
+
$i++;
}
print '
';
+ print '';
print '';
if (isset($_GET["error"]) && $_GET["error"] == 1)
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index d408cddc5c8..1b4badc39b5 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -432,7 +432,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe
ExtrafieldParamHelpsellist=List of values comes from a table Syntax: table_name:label_field:id_field::filter Example: c_typent:libelle:id::filter
- idfilter is necessarly a primary int key - filter can be a simple test (eg active=1) to display only active value You can also use $ID$ in filter witch is the current id of current object To do a SELECT in filter use $SEL$ if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)
In order to have the list depending on another complementary attribute list: c_typent:libelle:id:options_parent_list_code|parent_column:filter
In order to have the list depending on another list: c_typent:libelle:id:parent_list_code|parent_column:filter
ExtrafieldParamHelpchkbxlst=List of values comes from a table Syntax: table_name:label_field:id_field::filter Example: c_typent:libelle:id::filter
filter can be a simple test (eg active=1) to display only active value You can also use $ID$ in filter witch is the current id of current object To do a SELECT in filter use $SEL$ if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)
In order to have the list depending on another complementary attribute list: c_typent:libelle:id:options_parent_list_code|parent_column:filter
In order to have the list depending on another list: c_typent:libelle:id:parent_list_code|parent_column:filter
ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath Syntax: ObjectName:Classpath Examples: Societe:societe/class/societe.class.php Contact:contact/class/contact.class.php
-ExtrafieldParamHelpSeparator=Keep empty for a simple separator Set this to 1 for a collapsing separator (open by default) Set this to 2 for a collapsing separator (collapsed by default)
+ExtrafieldParamHelpSeparator=Keep empty for a simple separator Set this to 1 for a collapsing separator (open by default for new session, then status is kept for each user session) Set this to 2 for a collapsing separator (collapsed by default for new session, then status is kept fore each user session)
LibraryToBuildPDF=Library used for PDF generation
LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are: 1: local tax apply on products and services without vat (localtax is calculated on amount without tax) 2: local tax apply on products and services including vat (localtax is calculated on amount + main tax) 3: local tax apply on products without vat (localtax is calculated on amount without tax) 4: local tax apply on products including vat (localtax is calculated on amount + main vat) 5: local tax apply on services without vat (localtax is calculated on amount without tax) 6: local tax apply on services including vat (localtax is calculated on amount + tax)
SMS=SMS
@@ -1696,7 +1696,7 @@ SuppliersInvoiceNumberingModel=Vendor invoices numbering models
IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
##### GeoIPMaxmind #####
GeoIPMaxmindSetup=GeoIP Maxmind module setup
-PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation. Examples: /usr/local/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoIP.dat
+PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation. Examples: /usr/local/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoLite2-Country.mmdb
NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions).
YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s.
YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s.
@@ -1932,3 +1932,8 @@ DeleteEmailCollector=Delete email collector
ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector?
RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value
AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined
+RESTRICT_API_ON_IP=Allow available APIs to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can use the available APIs.
+RESTRICT_ON_IP=Allow access to some host IP only (wildcard not allowed, use space between values). Empty means every hosts can access.
+BaseOnSabeDavVersion=Based on the library SabreDAV version
+NotAPublicIp=Not a public IP
+MakeAnonymousPing=Make an anonymous Ping '+1' to the Dolibarr foundation server (done 1 time only after installation) to allow the foundation to count the number of Dolibarr installation.
\ No newline at end of file
diff --git a/htdocs/langs/en_US/banks.lang b/htdocs/langs/en_US/banks.lang
index c77158e07b7..47295ec7e31 100644
--- a/htdocs/langs/en_US/banks.lang
+++ b/htdocs/langs/en_US/banks.lang
@@ -73,6 +73,7 @@ BankTransaction=Bank entry
ListTransactions=List entries
ListTransactionsByCategory=List entries/category
TransactionsToConciliate=Entries to reconcile
+TransactionsToConciliateShort=To reconcile
Conciliable=Can be reconciled
Conciliate=Reconcile
Conciliation=Reconciliation
@@ -116,6 +117,7 @@ DeleteCheckReceipt=Delete this check receipt?
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
BankChecks=Bank checks
BankChecksToReceipt=Checks awaiting deposit
+BankChecksToReceiptShort=Checks awaiting deposit
ShowCheckReceipt=Show check deposit receipt
NumberOfCheques=No. of check
DeleteTransaction=Delete entry
diff --git a/htdocs/langs/en_US/cashdesk.lang b/htdocs/langs/en_US/cashdesk.lang
index 83c217b06f7..856cf1de0d2 100644
--- a/htdocs/langs/en_US/cashdesk.lang
+++ b/htdocs/langs/en_US/cashdesk.lang
@@ -68,4 +68,9 @@ Terminal=Terminal
NumberOfTerminals=Number of Terminals
TerminalSelect=Select terminal you want to use:
POSTicket=POS Ticket
-BasicPhoneLayout=Use basic layout for phones
\ No newline at end of file
+BasicPhoneLayout=Use basic layout for phones
+SetupOfTerminalNotComplete=Setup of terminal %s is not complete
+DirectPayment=Direct payment
+DirectPaymentButton=Direct cash payment button
+InvoiceIsAlreadyValidated=Invoice is already validated
+NoLinesToBill=No lines to bill
diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang
index 616b565496a..dccd53c597a 100644
--- a/htdocs/langs/en_US/companies.lang
+++ b/htdocs/langs/en_US/companies.lang
@@ -54,6 +54,7 @@ Firstname=First name
PostOrFunction=Job position
UserTitle=Title
NatureOfThirdParty=Nature of Third party
+NatureOfContact=Nature of Contact
Address=Address
State=State/Province
StateShort=State
diff --git a/htdocs/langs/en_US/contracts.lang b/htdocs/langs/en_US/contracts.lang
index 129b7d8416a..47572c355ab 100644
--- a/htdocs/langs/en_US/contracts.lang
+++ b/htdocs/langs/en_US/contracts.lang
@@ -51,6 +51,7 @@ ListOfClosedServices=List of closed services
ListOfRunningServices=List of running services
NotActivatedServices=Inactive services (among validated contracts)
BoardNotActivatedServices=Services to activate among validated contracts
+BoardNotActivatedServicesShort=Services to activate
LastContracts=Latest %s contracts
LastModifiedServices=Latest %s modified services
ContractStartDate=Start date
@@ -65,7 +66,9 @@ DateEndReal=Real end date
DateEndRealShort=Real end date
CloseService=Close service
BoardRunningServices=Services running
+BoardRunningServicesShort=Services running
BoardExpiredServices=Services expired
+BoardExpiredServicesShort=Services expired
ServiceStatus=Status of service
DraftContracts=Drafts contracts
CloseRefusedBecauseOneServiceActive=Contract can't be closed as there is at least one open service on it
diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
index 880978a13e5..5c3e30967de 100644
--- a/htdocs/langs/en_US/main.lang
+++ b/htdocs/langs/en_US/main.lang
@@ -705,6 +705,7 @@ DateOfSignature=Date of signature
HidePassword=Show command with password hidden
UnHidePassword=Show real command with clear password
Root=Root
+RootOfMedias=Root of public medias (/medias)
Informations=Information
Page=Page
Notes=Notes
@@ -982,3 +983,10 @@ PaymentInformation=Payment information
ValidFrom=Valid from
ValidUntil=Valid until
NoRecordedUsers=No users
+ToClose=To close
+ToProcess=To process
+ToApprove=To approve
+GlobalOpenedElemView=Global view
+NoArticlesFoundForTheKeyword=No article found for the keyword '%s'
+NoArticlesFoundForTheCategory=No article found for the category
+ToAcceptRefuse=To accept | refuse
\ No newline at end of file
diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang
index 9993e05428f..5886c598d52 100644
--- a/htdocs/langs/en_US/members.lang
+++ b/htdocs/langs/en_US/members.lang
@@ -29,6 +29,7 @@ MenuMembersUpToDate=Up to date members
MenuMembersNotUpToDate=Out of date members
MenuMembersResiliated=Terminated members
MembersWithSubscriptionToReceive=Members with subscription to receive
+MembersWithSubscriptionToReceiveShort=Subscription to receive
DateSubscription=Subscription date
DateEndSubscription=Subscription end date
EndSubscription=End subscription
diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang
index 36ca0ede002..73e672284de 100644
--- a/htdocs/langs/en_US/products.lang
+++ b/htdocs/langs/en_US/products.lang
@@ -340,4 +340,4 @@ ErrorCopyProductCombinations=There was an error while copying the product varian
ErrorDestinationProductNotFound=Destination product not found
ErrorProductCombinationNotFound=Product variant not found
ActionAvailableOnVariantProductOnly=Action only available on the variant of product
-ProductsPricePerCustomer=Product prices per customers
\ No newline at end of file
+ProductsPricePerCustomer=Product prices per customers
diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang
index ca9a1e2452f..4b4a787b6ad 100644
--- a/htdocs/langs/en_US/projects.lang
+++ b/htdocs/langs/en_US/projects.lang
@@ -76,7 +76,13 @@ MyProjects=My projects
MyProjectsArea=My projects Area
DurationEffective=Effective duration
ProgressDeclared=Declared progress
+TaskProgressSummary=Task progress
+CurentlyOpenedTasks=Curently opened tasks
+TheReportedProgressIsLessThanTheCalculatedProgressionByX=The declared progress is less %s than the calculated progression
+TheReportedProgressIsMoreThanTheCalculatedProgressionByX=The declared progress is more %s than the calculated progression
ProgressCalculated=Calculated progress
+WhichIamLinkedTo=which I'm linked to
+WhichIamLinkedToProject=which I'm linked to project
Time=Time
ListOfTasks=List of tasks
GoToListOfTimeConsumed=Go to list of time consumed
diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang
index f01494fcdac..6b5c0a300e8 100644
--- a/htdocs/langs/en_US/website.lang
+++ b/htdocs/langs/en_US/website.lang
@@ -2,7 +2,7 @@
Shortname=Code
WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
DeleteWebsite=Delete website
-ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
+ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed. The files uploaded (like into the medias directory, the ECM module, ...) will remain.
WEBSITE_TYPE_CONTAINER=Type of page/container
WEBSITE_PAGE_EXAMPLE=Web page to use as example
WEBSITE_PAGENAME=Page name/alias
@@ -15,6 +15,8 @@ WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
WEBSITE_ROBOT=Robot file (robots.txt)
WEBSITE_HTACCESS=Website .htaccess file
WEBSITE_MANIFEST_JSON=Website manifest.json file
+WEBSITE_README=README.md file
+EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package.
HtmlHeaderPage=HTML header (specific to this page only)
PageNameAliasHelp=Name or alias of the page. This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias.
EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
@@ -42,6 +44,7 @@ RealURL=Real URL
ViewWebsiteInProduction=View web site using home URLs
SetHereVirtualHost=Use with Apache/NGinx/... If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s then set the name of the virtual host you have created in the properties of web site, so the preview can be done also using this dedicated web server access instead of the internal Dolibarr server.
YouCanAlsoTestWithPHPS=Use with PHP embedded server On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running php -S 0.0.0.0:8080 -t %s
+YouCanAlsoDeployToAnotherWHP=Run your web site with another Dolibarr Hosting provider If you don't have a web server like Apache or NGinx available on internet, you can export and import your web site onto another Dolibarr instance provided by another Dolibarr hosting provider that provide full integration with the Website module. You can find a list of some Dolibarr hosting providers on https://saas.dolibarr.org
CheckVirtualHostPerms=Check also that virtual host has permission %s on files into %s
ReadPerm=Read
WritePerm=Write
@@ -76,7 +79,7 @@ AddWebsiteAccount=Create web site account
BackToListOfThirdParty=Back to list for Third Party
DisableSiteFirst=Disable website first
MyContainerTitle=My web site title
-AnotherContainer=Another container
+AnotherContainer=This is how to include content of another page/container (you may have an error here if you enable dynamic code because the embedded subcontainer may not exists)
SorryWebsiteIsCurrentlyOffLine=Sorry, this website is currently off line. Please comme back later...
WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / third party
@@ -106,4 +109,8 @@ DeleteAlsoJs=Delete also all javascript files specific to this website?
DeleteAlsoMedias=Delete also all medias files specific to this website?
MyWebsitePages=My website pages
SearchReplaceInto=Search | Replace into
-ReplaceString=New string
\ No newline at end of file
+ReplaceString=New string
+CSSContentTooltipHelp=Enter here CSS content. To avoid any conflict with the CSS of the application, be sure to prepend all declaration with the .bodywebsite class. For example:
#mycssselector, input.myclass:hover { ... } must be .bodywebsite #mycssselector, .bodywebsite input.myclass:hover { ... }
Note: If you have a large file without this prefix, you can use 'lessc' to convert it to append the .bodywebsite prefix everywhere.
+LinkAndScriptsHereAreNotLoadedInEditor=Warning: This content is output only when site is accessed from a server. It is not used in Edit mode so if you need to load javascript files also in edit mode, just add your tag 'script src=...' into the page.
+Dynamiccontent=Sample of a page with dynamic content
+ImportSite=Import site
\ No newline at end of file
diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang
index 097e2e3fc8d..6ad580cfcd9 100644
--- a/htdocs/langs/fr_FR/products.lang
+++ b/htdocs/langs/fr_FR/products.lang
@@ -340,4 +340,4 @@ ErrorCopyProductCombinations=Une erreur s'est produite lors de la copie des vari
ErrorDestinationProductNotFound=Produit destination non trouvé
ErrorProductCombinationNotFound=Variante du produit non trouvé
ActionAvailableOnVariantProductOnly=Action disponible uniquement sur la variante du produit
-ProductsPricePerCustomer=Prix produit par clients
+ProductsPricePerCustomer=Prix produit par clients
\ No newline at end of file
diff --git a/htdocs/loan/card.php b/htdocs/loan/card.php
index e826e86ea57..2ba29aef106 100644
--- a/htdocs/loan/card.php
+++ b/htdocs/loan/card.php
@@ -179,11 +179,12 @@ if (empty($reshook))
}
else
{
- $object->datestart = $datestart;
- $object->dateend = $dateend;
- $object->capital = $capital;
- $object->nbterm = GETPOST("nbterm", 'int');
- $object->rate = price2num(GETPOST("rate", 'alpha'));
+ $object->datestart = $datestart;
+ $object->dateend = $dateend;
+ $object->capital = $capital;
+ $object->nbterm = GETPOST("nbterm", 'int');
+ $object->rate = price2num(GETPOST("rate", 'alpha'));
+ $object->insurance_amount = price2num(GETPOST('insurance_amount', 'int'));
$accountancy_account_capital = GETPOST('accountancy_account_capital');
$accountancy_account_insurance = GETPOST('accountancy_account_insurance');
@@ -793,25 +794,25 @@ if ($id > 0)
{
// print ''.$langs->trans('CreateCalcSchedule').'';
- print ''.$langs->trans("Modify").'';
+ print '