Commit graph

153811 commits

Author SHA1 Message Date
Laurent Destailleur
fb9a3881fa Fix alert on blacklisted module when no message provided 2026-05-05 13:40:41 +02:00
Laurent Destailleur
31affd0f6c NEW Show url of blacklisted modules in tooltip 2026-05-05 13:02:38 +02:00
Laurent Destailleur
884e5e2df4 Clean code 2026-05-05 11:02:35 +02:00
Laurent Destailleur
475eecdb03 Doc 2026-05-05 10:57:35 +02:00
Laurent Destailleur
efaa4452dc Test for MAIN_SECURITY_CSRF_WITH_TOKEN=3 2026-05-05 10:32:37 +02:00
Laurent Destailleur
41730d25b2 Debug v24 2026-05-05 02:39:53 +02:00
Laurent Destailleur
81ae592295 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-05-05 02:11:46 +02:00
Laurent Destailleur
74114f33cd Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-05-05 02:11:46 +02:00
Laurent Destailleur
c26634cc24 Debug v24 2026-05-05 02:11:16 +02:00
Laurent Destailleur
cb7debca53 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-05 01:41:43 +02:00
Laurent Destailleur
643637dc07 Fix missing hooks 2026-05-05 01:41:27 +02:00
Laurent Destailleur
ee4bdb99fb Debug v24 2026-05-05 00:56:49 +02:00
Laurent Destailleur
d4a45fc371 Trans 2026-05-05 00:43:19 +02:00
Laurent Destailleur
3b65a87ce2 FIX generation of SEPA files for credit tranfer with several requests 2026-05-05 00:35:24 +02:00
Laurent Destailleur
49471b98cc Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-05-04 22:47:37 +02:00
Laurent Destailleur
4447fae459 FIX generation of SEPA files for credit tranfer with several requests 2026-05-04 22:47:29 +02:00
Laurent Destailleur
ed726d159e Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-05-04 21:54:22 +02:00
Laurent Destailleur
f3e1e4b3f9 FIX generation of SEPA files for credit tranfer with several requests 2026-05-04 21:54:06 +02:00
Laurent Destailleur
eeb7e8cb5d Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-04 18:21:25 +02:00
Laurent Destailleur
3de2fa834a Fix typo 2026-05-04 18:20:25 +02:00
Pcauderlier
f11738c888
FIX Add missing addMoreActionsButtons hook in mailing card actions (#38083)
* Fix perms

* Fix CI

* UX Accountancy - Ledger - Add icon for more comprehension

* Fix phpunit

* Debug v23

* Debug v23

* Fix CI

* Qual: Update PHP-CS-Fixer configuration and DolibarrModules class

- Update PHP-CS-Fixer configuration to replace deprecated 'visibility_required' rule with 'modifier_keywords'
- Update DolibarrModules class to use const instead of public const for PHP 7.0 compatibility (revert recent change)

* fix warning in upgrade2.php

* Debug v23

* add modulepart for direct print capabilities

* add project

* add project

* add more

* add ficheuinter

* qual: Update phpstan-baseline.neon to remove unresolvable type issues

Removed multiple entries related to unresolvable types in dol_sort_array function calls and property assignments.

* FIX #36447 Email Collector subject/body exclusion filters not working

The '!' prefix was removed at line 1369-1373 before being tested
at lines 1398 and 1406, causing exclusion filters to never work.

This fix uses the $not variable (already set correctly) instead of
re-testing for '!' on the modified rulevalue.

* Qual: Improve type hinting for phpstan in dol_sort_array()

#Qual: Improve type hinting for phpstan in dol_sort_array()

- Improve phpdoc for phpstan in dol_sort_array()

* qual: Add type hint for $arraydata in select_juridicalstatus method

This change adds a type hint for the $arraydata variable in the select_juridicalstatus method for phpstan

* Qual: Change array assignment for phpstan type deduction

* Qual: Change array assignment for phpstan type deduction

* Qual: Cast properties to string in get_full_arbo method

* Qual: Type casting in select_country and loadCacheInputReason methods

* fix: Improve type casting and array initialization in user.class.php

- Added explicit type casting for array values
- Improved array initialization syntax for better readability and maintainability

* qual: Add type hint for group_list array

Add a type hint for the $group_list array for phpstan.

* qual: Update type hints and casting in select_juridicalstatus method

- Changed type hint for $arraydata
- Added explicit casting for `code` and `country_code` in the array assignment

* Qual: Cast label to string to ensure type consistency (phpstan)

* Qual: Add types for $workflow and $workflowcodes.

* Update upgrade2.php

* Debug v23

* Doc

* CSS

* Doc

* Fix prevent use of TRACE method in waf

* FIX: reinstate shipment with origin

* add another

* implem

* fix space

* add another

* fix space

* CSS

* Fix webhook history record save on error

* fix CI

* fix missing migration

* fix missing migration

* add more

* add more

* add more

* add more

* add more

* add more

* add more

* PHPStan > Update baseline

* FIX: ticket module - use random_int() for secure ID generation instead of microtime

* ENH: Accessibility on modulebuilder setup page

Add label for input fields

* Clarify supported versions for security reports

* Update supported versions for security reports

* Add default supplier type handling in card.php in creation mode

Hi
By default supplier is a professional in creation mode.

* Add default supplier type handling in card.php in creation mode

* CSS

* Add new phpunit tests

* Comment

* Debug v23

* Comment

* Update ticket.lib.php

* Fix: Do not transform [__XXX__] string when
MAIN_RESTRICTHTML_ONLY_VALID_HTML is on.

* Update card.php

* Fix formatting and add new line in card.php

* CSS

* Modification of the family VARCHAR field to VARCHAR(64), causing the failure of module re-activation.

* FIX must not allow deletion of invoice if printed or sent by email.

* Debug v23

* clean code

* Trans

* FIX: now there are two values for INVOICE_USE_SITUATION (1 = legacy, 2 = new), leading to two interpretations of situation_percent; in some algorithms, only the old algorithm was applied even when the new mode was on

* FIX: now there are two values for INVOICE_USE_SITUATION (1 = legacy, 2 = new), leading to two interpretations of situation_percent; in some algorithms, only the old algorithm was applied even when the new mode was on

* WIP Loi finance

* Fix yearly events and duplicate recurring events

* Debug v23

* Fix LNE

* Update addTimeSpent api method to use default progress

with null parameters, swagger validator fail

* Fix permission check from 'lire' to 'read'

* FIX: use suspended status in FactureFournisseurRec::updateline()

- The method checks `$this->status == self::STATUS_SUSPENDED`.
- For recurring **supplier** invoices, `$this->status` is not populated (it is always `null`).
- The real field used to store the suspended flag of the template is `$this->suspended`.

* Fix replace DISTINCT

* Fix progress assignment in addTimeSpent method

* FIX: INVOICE_USE_SITUATION (1 = legacy, 2 = new): some functions still use only the legacy algorithm

* FIX wrong indentation

* WIP LNE

* FIX missing space before cast

* FIX bad ratio calculation

* phpdoc: wrong return type

* WIP LNE

* Fix setup margin

* CSS

* Update blockedlog.php

* new: defaut to True show unit price on title and sub total

* Debug v23 - Navigation in timespent and style

* Trans

* Fix detection of security commit

* Fix detection of security commit

* Fix warning

* Fix webportal css

* Debug v23

* CSS

* Fix warning

* Fix warning

* Fixed shipping and availability updating. Updated contributor details.

* FIX #36407 BUG: API POST contact to a non-existing socid gives DB error

* Update blockedlog.php

* Fix CI

* Fix CI

* Better compatibility

* Fix CI

* Fix CI

* CSS

* Fix dialog for iframe

* restaure times

* Fix isset usage

* Fix isset usage

* Allow to define if data is user input or not into GETPOSTFLOAT.

* Typo

* Update holiday api methods from setValidate/setApproved to validate/approve

* CSS

* Doc

* Debug v23

* Fix some phan warnings

* remove var_dump

* Fix for #36550

there are \n and other characters that need to get handled here, otherwise they will get replaced with space character later.

* CSS

* Translation

* Debug v23

* Debug v23

* Debug v23

* Fix var_dump

* Debug v23 - fix link social networks

* Debug v23 - hide field with unknown meaning.

* fix modal css and display

* Fix CI

* Update odf.php

* Added postLine method to expense report API. Added mandatory expense report line fields check.

* Added deleteLine method. Updated contributor details.

* Added getLines method

* Added setToDraft method

* Cleaned code

* Updated PHPDoc

* Updated PHPDoc

* Updated PHPDoc

* Added cancel exepense report method

* Added return object

* CSS

* CSS

* Fix CI

* Fix CI

* CSS

* CSS

* CSS

* CSS

* Debug v23. Bad balance ul/li in menu.

* Debug v23

* FIX Add missing addMoreActionsButtons hook in mailing card actions

Add missing call to addMoreActionsButtons hook in mailing card.php to allow external modules to inject custom action buttons, ensuring consistency with other modules.

---------

Co-authored-by: Laurent Destailleur <eldy@users.sourceforge.net>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
Co-authored-by: Alexandre SPANGARO <alexandre.spangaro@gmail.com>
Co-authored-by: MDW <mdeweerd@users.noreply.github.com>
Co-authored-by: Frédéric FRANCE <frederic34@users.noreply.github.com>
Co-authored-by: Frédéric FRANCE <frederic.france@free.fr>
Co-authored-by: Steph501 <stmallet@gmail.com>
Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
Co-authored-by: Mélina JOUM <melina.joum@altairis.fr>
Co-authored-by: Rémi Champlon <r.champlon@vold.lu>
Co-authored-by: Lucas Marcouiller <45882981+Hystepik@users.noreply.github.com>
Co-authored-by: Dolibot <dolibarr-bot@users.noreply.github.com>
Co-authored-by: atm-jonathan <jonathan.lescaut@atm-consulting.fr>
Co-authored-by: Benjamin Falière <benjamin.faliere@altairis.fr>
Co-authored-by: Francis <162715304+le-reparateur@users.noreply.github.com>
Co-authored-by: atm-nicolasV <nicolas.vidal@atm-consulting.fr>
Co-authored-by: atm-florian <florian.mortgat@atm-consulting.fr>
Co-authored-by: Charlène Benke <1179011+defrance@users.noreply.github.com>
Co-authored-by: lelex86 <75493227+lelex86@users.noreply.github.com>
Co-authored-by: Florian HENRY <florian.henry@open-concept.pro>
Co-authored-by: John BOTELLA <68917336+thersane-john@users.noreply.github.com>
Co-authored-by: William Mead <william@m34d.com>
Co-authored-by: Jon Bendtsen <xcodeauthor@jonb.dk>
Co-authored-by: Joachim Kueter <priojk@users.noreply.github.com>
2026-05-04 17:37:40 +02:00
MDW
8e2868c291
Qual: Fix PHPStan (array definition) (#38071)
* Qual: Fix PHPStan (array definition)

# Qual: Fix PHPStan (array definition)

More complete array definition for $TNetNeeds argument

* Qual: Update PHPStan baseline

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-05-04 17:36:05 +02:00
Laurent Destailleur
d25b733a3e NEW Strings are trimed when doing import. 2026-05-04 17:17:26 +02:00
Laurent Destailleur
05b20fc643 NEW Strings are trimed when doing import. 2026-05-04 17:10:12 +02:00
Laurent Destailleur
7346a8fe27 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-05-04 16:59:41 +02:00
Laurent Destailleur
c9f38c2c79 Fix min of import 2026-05-04 16:59:18 +02:00
Regis Houssin
4861151c92
FIX #38074 (#38075) 2026-05-04 13:10:20 +02:00
ATM-NicolasV
7a572cd1d3
FIX product price.php: preserve default_vat_code and tva_npr when auto-creating initial product_price row (#38034)
When a product has no row in llx_product_price (typical for products
imported in bulk where only llx_product was populated), price.php
auto-creates an initial history line on first display of the price tab
(branch starting at "We must have at least one initial line").

The two updatePrice() calls in this branch omitted parameter 11
(\$newdefaultvatcode) which defaults to ''. In Product::updatePrice()
the SQL then writes default_vat_code = NULL in BOTH llx_product and
the new llx_product_price row, silently wiping a correctly-stored VAT
code on every first display.

Symptom: "ErrorBadValueForParamNotAString" rendered next to selling
price/min selling price (because \$langs->trans(\$object->price_base_type)
is called with NULL when the row is freshly created with empty fields),
and default_vat_code persistently reset to NULL until the user manually
re-saves through the form.

Fix: forward \$object->default_vat_code (and \$object->tva_npr for the
non-multiprice branch) to updatePrice() so the auto-init preserves the
product's VAT configuration.
2026-05-04 12:57:51 +02:00
Frédéric FRANCE
5539bc560a
Update export-bank-receipts.php (#38076)
* Update export-bank-receipts.php

* Update export-bank-receipts.php

* Update export-bank-receipts.php
2026-05-04 12:55:31 +02:00
Frédéric FRANCE
331af2c22d
clean code (#38077)
* clean code

* clean code
2026-05-04 12:54:54 +02:00
Zakaria Boushaba
a6c0de9769
Fix - clear resPrint after reading selectForFormsListUrl hook value (#38043)
* fix: clear resPrint after reading selectForFormsListUrl hook value to prevent showOptionals from appending stale URL params as visible text

* Fix indents

---------

Co-authored-by: Zakaria Boushaba <z.boushaba@vold.africa>
2026-05-04 12:46:56 +02:00
Laurent Destailleur
5dbb588a6a CSS 2026-05-04 11:49:35 +02:00
Laurent Destailleur
07075e1642 Debug v24 2026-05-04 11:43:19 +02:00
Laurent Destailleur
4b584ed59e Removed duplicate lib ckeditor from includes (keep in public only) 2026-05-04 11:34:18 +02:00
Laurent Destailleur
eb6d15cea5 Debug v24 - Removed useless duplicated files 2026-05-04 11:21:57 +02:00
Laurent Destailleur
ca806bda83 Can add a hidden message MAIN_FORCE_UPGRADE_MESSAGE on home page 2026-05-04 10:47:14 +02:00
Laurent Destailleur
b0dca0eb46 Clean code 2026-05-04 09:54:31 +02:00
Laurent Destailleur
126f013cb5 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-05-03 23:33:11 +02:00
Laurent Destailleur
2b69fc1bd9 Enhance look of combo for email templates 2026-05-03 23:32:58 +02:00
Laurent Destailleur
006a1550f2 Trans 2026-05-03 22:35:58 +02:00
Laurent Destailleur
b513d57ffd Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-03 22:17:00 +02:00
Laurent Destailleur
73003f82ed Trans 2026-05-03 22:16:36 +02:00
Alexandre Janniaux
163c51ae31
NEW debugbar: Add backtrace capture for database query failures (#36612)
* debugbar: Add backtrace capture for database query failures

Implements backtrace forwarding to capture and display backtraces when
database queries fail, making it easier for developers to identify the
source of database errors.

Backtrace are captured in TraceableDB::endTracing() when queries fail
using debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) and stored to be
fowarded to the DolQueryCollector that will expose it to the debugbar
integration.

Because of that, the backtrace is now captured at the correct location,
ie. when the query fails, rather than when the error is retrieved,
ensuring it shows the actual application code that triggered the
problematic query.

This is particularly useful for debugging MySQL to PostgreSQL
compatibility issues, module development and maintenance, and quickly
identifying query origins during development. In particular, paired with
the list and time profiling of each request, it will allow finding the
location where queries are not properly optimized.

Before this patch, it was possible to try and find snippets from the
queries but because queries are generated at runtime, it was tedious and
could lead to the wrong location.

Related to #34050

* debugbar: Add SQL query backtrace

Extends the debugbar SQL widget with backtrace display capabilities.

To keep vendor files pristine, a custom widget (TracingSQLQueriesWidget)
extends the vendor SQLQueriesWidget using DOM manipulation to inject
Dolibarr-specific features after parent render completes.

The widget intercepts the parent's data binding callback via
wrapDataBinding() to enhance rendered queries with backtrace buttons.
This patch pattern depends on php-debugbar internals but might break if
the vendor API changes, without breaking the rendering done by
php-debugbar.

A tracing toggle icon in the status bar allows switching between
tracing failed queries only (default, minimal overhead) and tracing
all queries. The setting persists via cookie (debugbar_full_tracing)
which the PHP backend reads to decide whether to capture backtraces.

Custom styles in widgets.css is for the tracing state (eye/eye-slash
icons) and so as to format the backtrace display within a frame and
using monospace font.

Closes #34050
2026-05-03 16:26:33 +02:00
atm-lena
aaa80c8346
Fix Translation Fr NumberScheduledJobError (#38041)
Co-authored-by: atm-lena-c <lena.challut@gmail.com>
2026-05-01 23:23:43 +02:00
Joachim Kueter
9af8e8037a
New #38051: Hook for calculating number of working days in a date range (#38052)
* Add user-aware hook to num_open_day

* Pass fk_user to num_open_day in holiday module
2026-05-01 23:21:59 +02:00
Frédéric FRANCE
9cf66200b9
avoid silent fail (#38048) 2026-05-01 23:13:13 +02:00
Laurent Destailleur
d2d48a5d36
Reorganize security reporting guidelines in SECURITY.md
Clarified installation requirements and security configurations for valid vulnerability reports.
2026-05-01 23:06:58 +02:00
Laurent Destailleur
be52ec4a33 Doc 2026-04-30 16:20:17 +02:00
Laurent Destailleur
1172677b01 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-04-30 14:57:57 +02:00
Laurent Destailleur
58b1828c66 Fix option STRIPE_USER_ACCOUNT_FOR_ACTIONS was unreachable 2026-04-30 14:48:36 +02:00