* This PR adds visual indicators on the Sales Order card (commande/card.php) to quickly identify if an order or its lines are shippable based on current stock levels. This feature mirrors the existing functionality found in the Orders List, bringing valuable logistics information directly into the Order Card context.
Key Features:
Global Shippable Status: Adds a "shippable" icon (Truck) next to the "Planned delivery date" field.
Logic: Checks if all products in the order are in stock.
Condition: Visible only if Stock and Shipment modules are enabled, a delivery date is set, and the order is validated.
Visual: Green icon if fully shippable, Red/Warning if stock is insufficient. Includes a detailed tooltip.
Per-Line Shippable Status: Adds a new "Shippable" column in the product lines table.
Logic: Compares real stock vs. remaining quantity to ship for each line.
Visual: Displays a green/red status bullet (standard Dolibarr status icons) directly in the line.
Implementation: Done by updating objectline_title.tpl.php and objectline_view.tpl.php with specific checks for the commande element.
New Configuration Option: Added a hidden option ORDER_DISABLE_SHIPPABLE_ICON_ON_CARD to disable this feature if needed (configurable in Home > Setup > Other Setup or via module settings).
Backend Optimization: Added a new method getShippableInfos() in commande.class.php to centralize the stock check logic (optimized with stock caching to avoid N+1 query issues).
Technical Details:
Modified Files:
commande/card.php: Integration of the global icon next to the date.
commande/class/commande.class.php: Added getShippableInfos() method.
core/tpl/objectline_title.tpl.php: Added "Shippable" column header (conditional for Orders).
core/tpl/objectline_view.tpl.php: Added "Shippable" column cell content (conditional for Orders).
Performance: Logic uses static caching for product stock to minimize database impact when rendering large orders.
* missed element
* img_picto
* phan add
* load_stock and global $i
* phan
* ci retour
* change icon
change phan directive
* phan
* Fight against optionflation
Signed-off-by: Laurent Destailleur <eldy@destailleur.fr>
* Change condition for displaying shippable icon
Signed-off-by: Laurent Destailleur <eldy@destailleur.fr>
* Change condition for displaying shippable status icon
Signed-off-by: Laurent Destailleur <eldy@destailleur.fr>
* Update card.php
Signed-off-by: Laurent Destailleur <eldy@destailleur.fr>
* Update shippable status condition in template
Signed-off-by: Laurent Destailleur <eldy@destailleur.fr>
* Update shippable status condition logic
Signed-off-by: Laurent Destailleur <eldy@destailleur.fr>
---------
Signed-off-by: Laurent Destailleur <eldy@destailleur.fr>
Co-authored-by: jpb <jean-pascal.boudet@atm-consulting>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* QUAL Add missing Spanish translations in es_ES locale
Add missing keys in ticket.lang, agenda.lang and errors.lang:
- Ticket email notification template keys
- Auto-read on assign keys
- ManualActions key in agenda
- OIDC user auto-creation messages
- ErrorFailedToGetTokenFromClientIdAndSecret
* QUAL Fix untranslated key in es_ES errors.lang
Translate UserDoesNotHaveRightsToChangeHisPassword key that was
left in English in the Spanish locale file.
* NEW Add status canceled on direct debit payment
* Link are clicable on page
* Debug v24
* Fix link
* Fix link
* Fix list of status
* Fix status code
* Debug v23
* NEW Add direct debit to close on home thumbs
* Fix link
* Debug v23
* Debug v23
* Clean code
* Debug extrafields chckbxlist v23
* Debug extrafields chckbxlist v23
* Debug v23
* Fix missing lagal requirement
* Better rate showing
* Debug v23 - sql request for list of actioncomm must not use a OR
* Clean code
* Code comment
* Debug v23
* Fix the limit
* css
* Debug v23
* Fix max
* Fix CI
* More debug info
* Increase editor height for note input fields (#37128)
* Edit form must match have order of field similat to create form
* Update card.php (#37108)
@defrance https://github.com/Dolibarr/dolibarr/issues/36767
* Update card.php (#37108)
@defrance https://github.com/Dolibarr/dolibarr/issues/36767
* Fix CI
* Fix CI
* Fix CI
* Correct linked_objects assignment for 'propal' #Wrong sourcetype 'commande' instead of 'propal' when creating recurring invoice template from invoice linked to proposal #37099 @defrance (#37112)
* Correct linked_objects assignment for 'propal'
@defrance Adam Hocini
* Refactor linked objects assignment for proposals
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fixed Bug : email sending test #36741 (#37107)
Fixed Bug : email sending test #36741
@defrance
-->
Issue fixed
The problem was caused by initializing $result = 0 in core/actions_sendmails.inc.php.
When sending a test email from Setup → Emails, there is no $object to fetch. As a result, $result remained 0 and the code incorrectly triggered ErrorFailedToReadObject.
The fix consists in explicitly setting $result = 1 when no $object is provided (test email / generic email context). This correctly treats the absence of an object as a valid case and restores the ability to send test emails, while keeping $result properly initialized.
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix CI
* Fixed Bug : email sending test #36741 (#37107)
Fixed Bug : email sending test #36741
@defrance
-->
Issue fixed
The problem was caused by initializing $result = 0 in core/actions_sendmails.inc.php.
When sending a test email from Setup → Emails, there is no $object to fetch. As a result, $result remained 0 and the code incorrectly triggered ErrorFailedToReadObject.
The fix consists in explicitly setting $result = 1 when no $object is provided (test email / generic email context). This correctly treats the absence of an object as a valid case and restores the ability to send test emails, while keeping $result properly initialized.
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Correct linked_objects assignment for 'propal' #Wrong sourcetype 'commande' instead of 'propal' when creating recurring invoice template from invoice linked to proposal #37099 @defrance (#37112)
* Correct linked_objects assignment for 'propal'
@defrance Adam Hocini
* Refactor linked objects assignment for proposals
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix CI
* Fix CI
* FIX Replace direct $_POST access with GETPOST() in origin/originid recovery paths (#37143)
When a create action fails and rolls back, several list/card pages
restore origin parameters by assigning $_POST values directly to
$_GET. This causes 'undefined array key' warnings on PHP 8.1+ if
the POST data is missing or malformed.
Replace raw $_POST['origin'] with GETPOST('origin', 'alpha') and
raw $_POST['originid'] with GETPOSTINT('originid') which safely
handle missing parameters.
Files fixed:
- htdocs/expedition/list.php
- htdocs/fourn/commande/list.php
- htdocs/commande/list.php
- htdocs/compta/facture/card.php
- htdocs/reception/list.php
These files had TODO-style comments ('Keep this ?', 'Keep GET and
POST here ?') indicating the pattern was already questionable.
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
* FIX Add missing isset() check for $_GET['file'] in viewimage.php (#37141)
On line 65, $_GET['file'] is accessed without isset() check inside
the modulepart=='mycompany' condition. This causes an 'undefined array
key' warning on PHP 8.1+ when modulepart is 'mycompany' but no file
parameter is provided.
Note: GETPOST() is intentionally not used here as it is not available
before main.inc.php is loaded (see existing code comment).
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
* CI
* Debug v23
* Debug v23
* FIX Show total on multicurrency only if currency are the same on all
lines
* FIX Show total on multicurrency only if currency are the same on all
lines
* Fix regression
* fix avoids undefined array key (#37103)
* NEW Add method formatLogObject to allow logs in 1 line #37135
* Initialize arrayforbutaction before hook (#37149)
* Initialize arrayforbutaction before hook (#37149)
* FIX#36923 Fix undefined array key warnings in opensurvey create_survey.php (#37140)
The session variable initialization logic was inverted: it set variables
to null only when they already existed, instead of initializing them
when they were missing. This caused 'undefined array key' warnings on
PHP 8.1+ when accessing the poll creation form for the first time.
Changes:
- Inverted isset() condition to !isset() to properly initialize missing
session variables
- Initialize to empty string instead of null
- Added missing session variables (allow_comments, allow_spy, champdatefin)
to the initialization array
- Added dol_escape_htmltag() for title output (XSS hardening)
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* CI
* Debug v23
* FIX#34342 PHP 8.1 undefined array key warnings in Product::getSellPrice() multiprices (#37144)
When using multiprices (PRODUIT_MULTIPRICES or
PRODUIT_CUSTOMER_PRICES_AND_MULTIPRICES), getSellPrice() accesses
$this->multiprices[$level], multiprices_ttc, multiprices_min,
multiprices_min_ttc, and multiprices_base_type arrays using the
buyer's price_level as key without checking if the key exists.
This causes 'undefined array key' warnings on PHP 8.1+ when a
third party has a price_level set but the product doesn't have
prices defined for that specific level.
Similarly, prices_by_qty array accesses for PRODUIT_CUSTOMER_PRICES_BY_QTY
and PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES modes could trigger
warnings when the array index doesn't exist.
Changes:
- Add isset() checks with safe defaults for all multiprices array
accesses (0 for prices, 'HT' for price_base_type)
- Replace direct prices_by_qty access with !empty() checks
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix CI
* Qual: Update comments from French to English (#37097)
* Qual: Update comments from French to English
# Qual: Update comments from French to English
* Qual: Fix missing initialisations
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Debug v23
* Ensure that if $object->members is not loaded either we do not send m… (#37126)
* Ensure that if $object->members is not loaded either we do not send members to LDAP or we explicitly loads them before according to LDAP configuration
* Fix typo
* Sec: Add param $dolibarr_website_allow_custom_php to block by default
any PHP content in website module.
* Fix CI
* Comment
* Debug v23 - Min price was wrong in multicurrency mode
* Debug v23 - Filter on action type ko
* Debug v23 - Filter on action type ko
* add fk_parent on group group for permission inheritance (#37152)
* FIX PHP 8.1 undefined array key warnings in ProductCombination multiprices loop (#37142)
When PRODUIT_MULTIPRICES is enabled and a product variant's parent has
multiprices configured, the updateChildPrice() method iterates through
all price levels up to PRODUIT_MULTIPRICES_LIMIT. For price levels that
don't have prices defined, accessing $parent->multiprices[$i] and
related arrays directly causes 'undefined array key' warnings on
PHP 8.1+.
Changes:
- Add isset() check before comparing $parent->multiprices[$i]
- Use isset() ternary for $parent->multiprices_min[$i] (default: 0)
- Use !empty() for $parent->prices_by_qty_list[$i] check
- Use isset() ternary for $parent->multiprices_ttc[$i] (default: 0)
- Use isset() ternary for second $parent->multiprices[$i] (default: 0)
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Add error message
* Avoid ( in sql
* Clean sql
* Fix spellcheck
* Debug v23
* TakePOS hook “AddAction” jamais exécuté (#35961) (#37113)
@defrance
Adam Hocini
* Update modProduct.class.php (#37087)
Fix: allow import of sell_or_eat_by_mandatory for products
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Update modProduct.class.php (#37087)
Fix: allow import of sell_or_eat_by_mandatory for products
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Clean code
* Fix package debian
* NEW Use the js lib into htdocs/public/includes instead of htdocs/includes
* New LNE Collect of buisness informations (#37084)
* Working LNE ping
* remove GPDA
* Add of other informations
* remove testing var
* fix Ci
* fix Ci
* fix ci
* fix CI
* Fix Ci
* fix Ci
---------
Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
* CI
* CI
* CI
* CI
* Clean code. File not used.
* CSS
* CSS
* Fix phpunit
* More legal info
* CI
* Fix CI
* Fix: IRPF tax not applied when creating invoice from project times (#37077)
* Remove 'supplier_invoice' from old path array
* Update module path in arrayforoldpath
Sorry Eldy, I was confused. You are absolutely right, it is already corrected.
* Replace localtax2 assignment with get_localtax function
Error when creating an invoice with personal income tax from project times. The rate does not apply
* Refactor localtax1 calculation using get_localtax
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix: IRPF tax not applied when creating invoice from project times (#37077)
* Remove 'supplier_invoice' from old path array
* Update module path in arrayforoldpath
Sorry Eldy, I was confused. You are absolutely right, it is already corrected.
* Replace localtax2 assignment with get_localtax function
Error when creating an invoice with personal income tax from project times. The rate does not apply
* Refactor localtax1 calculation using get_localtax
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Protect module
* Add currency
* CSS
* WIP LNE
* Fix navigation
* cs
* Debug registration process
* Debug setup navigation
* CI
* CI
* Factorize code
* Fix CI
* Fix CI
* Fix CI
* CI
* CI
* CI
* CI
* Disable phan on v23
* CI
* CI
* FIX: missing include for blockedlog lib (#37165)
* Debug CI
* fix ternary always true (#37161)
* fix ternary always true
* Update requests.php
* Update registration.php
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* CI
* FIX: missing include for blockedlog lib (#37165)
* FIX#37134 Use json_encode for IMAP search logging in EmailCollector (#37135)
var_export() produces multiline output that breaks log aggregators
(Loki, Splunk, Elasticsearch) as each line becomes a separate log entry.
Using json_encode() produces single-line structured output that works
correctly with all log aggregation tools.
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Populate syslog with placeholder (#37163)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Doc
* datamodel for user change password next time (#37155)
* Qual: Update phan baseline (#37172)
* Fix typo in file path (#37160)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix phpunit
* Complete call to setStatus so we have a trigy as 4th parameter (help to
fix the #37129)
* FIX Product - Warning on admin (#37157)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* FIX Product - Warning on admin + CSS (#37158)
* FIX Product - Warning on admin
* CSS
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* CI
* CI
* CI
* Avoid error if include fails
* More functions in blacklist (even if nw we use the whitelist by default)
* #37166 [SQL] add: email template for ticket admin creation (#37182)
* Replace var_export with new function formatLogObject (#37178)
* FIX BOM - Class product missing, column offset and information recording (form/input overlap) in admin (#37177)
* FIX BOM - Class product missing in admin
* Fix column offset and information recording (form/input overlap)
* ci
* ci
* FIX Intracommreport - Warning & link problem on tab (#37176)
* FIX Bank transfer admin - Warning & save 0 on constant PAYMENTBYBANKTRANSFER_ADDDAYS (#37175)
* Look and feel v24
* Update default time handling in index.php (#37150)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix file path comment in supplier invoice module (#37133)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix file path comment in supplier invoice module (#37133)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix CI
* Add template in migration
* fix phpdoc comment (#37184)
* fix phpdoc comment
* fix phpdoc comment
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* CI
* Fix phpstan
* Replace var_export by formatLogObject (continued) (#37188)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Debug amount suggested on membership public form
* Issue 36923 Fix session title handling in survey creation (#37105)
* Issue 36923 Fix session title handling in survey creation
* Change input field to use id attribute for title
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* fix phpstan errors blocking action baseline (#37189)
* fix phpstan errors blocking action baseline
* fix phpstan errors blocking action baseline
* fix phpstan errors blocking action baseline
* fix phpstan errors blocking action baseline
* fix phpstan errors blocking action baseline
* refresh baseline
* QUAL Replace var_export() with json_encode() in dol_syslog() calls (#37138)
var_export() produces multiline output that breaks log aggregators
(Loki, Splunk, Elasticsearch, Graylog) as each line becomes a separate
log entry.
json_encode() produces single-line structured output that works correctly
with all log aggregation tools. This pattern is already used elsewhere
in Dolibarr (accountancy, install modules).
Files changed:
- core/class/commoninvoice.class.php (payment intent logging)
- core/class/commonobject.class.php (payment terms logging)
- core/modules/mailings/advthirdparties.modules.php (mailing targets)
- core/modules/oauth/google_oauthcallback.php (userinfo logging)
- core/modules/oauth/generic_oauthcallback.php (userinfo logging)
- public/payment/newpayment.php (GET/POST debug logging)
- public/payment/paymentok.php (payment tag logging)
- public/stripe/ipn.php (Stripe event data logging)
- paypal/lib/paypal.lib.php (PayPal response logging)
- api/index.php (API debug logging)
- stripe/class/stripe.class.php (payment/setup intent logging)
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix CI
* CI
* Check if upload_max_filesize is not empty
* clean code
* Debug v23
* CI
* Fix#33521 VAT total false (#36990)
* - Fix#33521 VAT total false
- Fix some warnings
- Fix : delete $this->vat_rate
* - Fix#33521 VAT total false
- Fix some warnings
- Fix :delete $this->tva array (replaced by $this->tva_array)
* - Fix#33521 VAT total false
- Fix some warnings
- Fix :delete $this->tva array (replaced by $this->tva_array)
* Update pdf_octopus.modules.php
* Update pdf_octopus.modules.php
* Update pdf_octopus.modules.php
* Update pdf_octopus.modules.php
* Update pdf_octopus.modules.php
---------
Co-authored-by: vmaury <vmaury@vmaury-Lafite-Pro-16-AMD>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* NEW #25829 Automatically send the invoice generated from a template (#36967)
* Update DB
* ADD email template
* Ajout d'une clé de trad
* Ajout des traductions
* Suppression des traductions, sauf en_US
* Add flag auto send
* Modif form + cron auto send
* Suppression auto_send
* correction loopError
* ajout du selected au model de mail
* Prise en compte default model
* Fix pre-commit
* ménage
* precommit
* Correction Phan
* Correction Phan
* Correction, double cal du trigger
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Develop force user change pass userclass (#37174)
* datamodel for user change password next time
* add force_pass_change in user object
* Initialize force_pass_change to 0
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Another step for #37171
* Qual: Partial phan run on PR's, complete run on integration branches (#37186)
* Qual: Partial phan run on PR's, complete on main
# Qual: Partial phan run on PR's, complete on main
The selection is based on the branch name.
To run a complete phan run in a PR, the branch name of the PR must include phan_full.
This can help to fix remaining phan issue before re-integrating to the develop branch.
* qual: Update workflow and pre-commit configurations
- Enable phan workflow by uncommenting the relevant lines
- Update actionlint version to v1.7.10
- Add manual stage to actionlint hook in pre-commit-config.yaml
* qual: Update Phan analysis conditions
The conditions for running Phan analysis have been updated to include an additional check for branches containing 'phan_full'.
* qual: Update Phan workflow
- Replace github.event.ref with github.ref_name
- Add FILE_CHANGE_LIST environment variable for better file handling
- Update file list creation and usage in the workflow
* qual: Update Phan workflow conditions
Fix the branch reference (head_ref in PR, ref_name otherwise)
* Add step for debug information
* Remove debug step
* Fix: Missing initialisations members/new.php
Following a suppression of assignments, the variables disabledphy and disabledmor were undefined.
* fix: Update budget selection dropdown arguments in member creation form
Correct the arguments in the member creation form.
* qual: Add cs2pr to phan workflow
- Add cs2pr to the tools list in the phan workflow
- Change the output mode of phan to checkstyle
- Add a step to add results to PR as Github notices
- Add a step to provide phan log as artifact
* qual: Update Phan workflow to use environment variable for file list
The change fixes the Phan workflow to use the environment variable `$FILE_CHANGED_LIST` to clear the file
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix phan
* Fix phan
* Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0
* Doc
* Qual: Fix ambigious redirect error on Phan workflow (#37200)
# Qual: Fix ambigious redirect error on Phan workflow
Rewrote the shell command that is supposed to suppress a file contents
but is flagged by the environment.
* PHPStan > Update baseline (#37197)
Co-authored-by: Dolibot <dolibarr-bot@users.noreply.github.com>
* Typo fix (#37195)
* css
* qual: Update PHPStan workflow to run on all files in integration (#37207)
The PHPStan workflow has been updated to run on all files in integration branches.
* Fix CI
* CLOSE#37190 ODT Templates for thirdparties - Birthday is returned in epoch format (#37198)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* fix: Remove HTML from accounting menu tooltips in eldy theme (#37203)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Qual: Update spelling (#37199)
* Qual: Update spelling for pre-select variants
# Qual: Update spelling for pre-select variants
In English, preselect is without the hyphen. Update text and made some translations
related to preselect.
* Qual: Update composant to component and/or adequate translation.
# Qual: Update composant to component and/or adequate translation.
"Composant(s)" was mostly referenced in french file/class comments.
Updated
* Qual: Fix misspellings related to "criteria"
# Qual: Fix misspellings related to "criteria"
* Qual: Fix produt misspellings
# Qual: Fix produt misspellings
Change 'produt' to 'product'.
* Qual: Update French comments with "composants"
#Qual: Update French comments with "composants"
- Translating French comments to English (avoid codespell notice)
* Qual: Fixed typo 'bad practive' to 'bad practice'
# Qual: Fixed typo 'bad practive' to 'bad practice'
* Qual: Update phan.yml to exclude specific files from analysis
- Added file exclusion pattern to match phan configuration
- Added check for empty file list to avoid unnecessary phan execution
* Qual: Update file filtering in phan.yml workflow
The change updates the file filtering process in the phan.yml workflow to correctly redirect the output of the grep command to a temporary file.
* Qual: Ignore $systemfunction always exists
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Error handling methods for commonobject (#37201)
* NEW Can request and force user to change its password (#37196)
* force user to change password : redirect to user card on login
* force user to change password : redirect to user card on login
* redirect to a dedicated page
* bad old idea : self change passwd on user card + edit mode and rights: it makes a hole on security check
* only apply on dolibarr auth mode context
* only on dolibarr auth mode context
* Fix force_pass_change SQL assignment logic
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Doc
* Setup easier to understand between INVOICE_CHECK_POSTERIOR_DATE and
FAC_FORCE_DATE_VALIDATION
* Setup easier to understand between INVOICE_CHECK_POSTERIOR_DATE and
FAC_FORCE_DATE_VALIDATION
* Qual: Ignore exit code from `grep -v` in phan flow (#37213)
# Qual: Ignore exit code from `grep -v` in phan flow
`grep -v` returns 1 when the resulting filtered list is empty and would stop the execution.
This is fixed with `|| true` to have a final exit code that is 0.
* WIP LNE
* Debug v23
* WIP LNE
* FIX Bad header name
* Fix CSP for ping
* Compatibility with multicompany
* Debug
* Fix include
* FIX phpdoc on createFixedAmountDiscount() (#37212)
* FIX phpdoc on createFixedAmountDiscount
* FIX phpdoc
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix in card css modal display (#36569)
* Fix display of cards in a modal
* fix php stan
* fix php stan
* Try a change to force CI
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* select language display AutoDetectLangShort if no showcode
* Add short version for AutoDetectLang
* Add AutoDetectLangShort translation to French
* Update html.formadmin.class.php
* Fix spacing in condition for showcode
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
Co-authored-by: AnthoXic <a.sapet-dev@proton.me>
Co-authored-by: adamhocini <72007447+adamhocini@users.noreply.github.com>
Co-authored-by: DarmonNoah <152853486+DarmonNoah@users.noreply.github.com>
Co-authored-by: minimexat <minimexat@gmail.com>
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Mathieu G. <118812426+MathieuGDev@users.noreply.github.com>
Co-authored-by: Vanyo <vanyolai@gmail.com>
Co-authored-by: MDW <mdeweerd@users.noreply.github.com>
Co-authored-by: David Beniamine <david.beniamine@tetras-libre.fr>
Co-authored-by: Laurent Destailleur <eldy@users.sourceforge.net>
Co-authored-by: Eric - CAP-REL <1468823+rycks@users.noreply.github.com>
Co-authored-by: Jarvis <94354305+Jarvis-69@users.noreply.github.com>
Co-authored-by: Lucas Marcouiller <45882981+Hystepik@users.noreply.github.com>
Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
Co-authored-by: Yamil Esteban Garcia <120027058+developmentOYR@users.noreply.github.com>
Co-authored-by: Noé Cendrier <81741011+altairis-noe@users.noreply.github.com>
Co-authored-by: Frédéric FRANCE <frederic34@users.noreply.github.com>
Co-authored-by: hansemschnokeloch <hansemschnokeloch@users.noreply.github.com>
Co-authored-by: Alexandre SPANGARO <alexandre.spangaro@gmail.com>
Co-authored-by: evarisk-kilyan <kilyan.evarisk@gmail.com>
Co-authored-by: jeremydassaud <49372108+jeremydassaud@users.noreply.github.com>
Co-authored-by: Vincent Maury <artec.vm@arnac.net>
Co-authored-by: vmaury <vmaury@vmaury-Lafite-Pro-16-AMD>
Co-authored-by: Vincent Penel <vincent.penel@atm-consulting.fr>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Dolibot <dolibarr-bot@users.noreply.github.com>
Co-authored-by: Joris Le Blansch <jleblansch@gmail.com>
Co-authored-by: intelliking <tyleradams93226@gmail.com>
Co-authored-by: Benjamin Falière <121813548+BenjaminFlr@users.noreply.github.com>
Co-authored-by: John BOTELLA <68917336+thersane-john@users.noreply.github.com>
* NEW #25922 Add OIDC user auto-creation and fix login bugs
NEW #25922 Add OIDC user auto-creation and fix login bugs
* Fix indentation in OIDC auto-create user admin settings block
* Move require_once statements to file level in openid_connect.lib.php
* Cast login_claim to string before user creation
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>