* 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>
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.
* 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>
* 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