***** ChangeLog for 24.0.1 compared to 24.0.0 *****

FIX: $arrayfields used before definition in don/list.php
FIX: #38963 enforce website write right on legacy filemanager (v18) (#39731)
FIX: #39053 + compatibility with multicompany (#39648) prevent non-admin users deleting admin accounts (backport PR #39119)
FIX: #39396 Reject enclosing leave requests (#39798)
FIX: #39658 shorten accounting template FK name (#39688)
FIX: #39690 Division by zero in turnover collected report (#39706)
FIX: #39733 Map variant attribute elements (#39755)
FIX: #39756 Use configured printer for template test (#39900)
FIX: #39763 Default for product is "no template/doc" generated.
FIX: #39768 Preserve template sender after attachment (#39918)
FIX: #39816 Fix donation table creation
FIX: #39848 Honor SEPA mandate output directory (#39857)
FIX: #39933 localize edited line quantity (#39945)
FIX: #39938 restore email sender field references (#39940)
FIX: Access denied when changing account type on bank account creation form (#39931)
FIX: Added support for the 'date' data type in the Form editfieldval class (#39815)
FIX: Advanced target selector fails to insert too long links.
FIX: Alignment for combolist of widgets
FIX: An upload refused by dol_move_uploaded_file() was reported as a success (#40086)
FIX: API setup, the switch to enable the count of API calls had no effect (#40093)
FIX: Bug in tidy that change the LC_NUMERIC locale
FIX: Cast price2num() result to float for mass payment remain to pay
FIX: Chmod
FIX: Clone link uses filesystem path instead of URL in various_payment/card.php (#39707)
FIX: Combo list of partnership status is empty.
FIX: Contract clone: third-party filter excluded pure supplier companies (#39696)
FIX: Contract service lines have no background on card (#39937)
FIX: Correct broken SQL concatenations (missing space/comma/AND) (#39616)
FIX: CRFS on cheque deposit and bad filter
FIX: cron list keep search filters after launching a job (#39611)
FIX: Dictionary rows of another entity were editable from a child entity (#39742)
FIX: Donation - Missing statistics page
FIX: Enable multientity support for Localtax class (#39649)
FIX: fetch_lines() wrongly ran date_start/date_end through jdate() (#39812)
FIX: Fix #39830 Wrong hardcoded 'llx_' prefix on contratdet subqueries in contract list (#39832)
FIX: Fix #39831 Wrong hardcoded 'llx_' prefix in API token list and ticket contact check (#39833)
FIX: Fix fatal error in_array() on null in fourn/paiement/list.php (#39776)
FIX: Hardcoded "llx_" table prefix in a few queries (#39837)
FIX: Install SQL scripts that never created their table (#39836)
FIX: Intervention - Missing new statistics presentation
FIX: log too large
FIX: manage event in select_company with AJAX search option on
FIX: Mo::processBOM() ignores qty value for qty_frozen BOM lines (#39941)

***** ChangeLog for 23.0.4 compared to 23.0.3 *****

FIX: #32086 Notifications for Interventions ignores the email template (#38366)
FIX: #32217 Fire BILL_CREATE with create-form extrafields on next situation invoice (#39254)
FIX: #32909 Restrict salary/HR field edit to authorized users (#39033)
FIX: #34667 checkUserAccessToObject: skip entity check for non-multientity objects (multicompany) (#39246)
FIX: #35658 leading-zero account numbers dropped from personalized group totals (#39208)
FIX: #36744 fix user can delete some actioncomm on which he has not the right
FIX: #36777
FIX: #37026 Chart of accounts export drops root and cross-chart accounts (#39159)
FIX: #37327 There is no product description displayed in version 22 (#38267)
FIX: #37356 Category Products not listed (#38264)
FIX: #37540 DST distorts working day count in num_public_holiday (#39158)
FIX: #37867 Rename MAIN_MODULE_OPENIDCONNECT to MAIN_AUTHENTICATION_OIDC_ON in migration (#38326)
FIX: #38054 Societe - Export - Problem on stcomm & typent (#38065)
FIX: #38146 Honor tpl override on supplier contacts (#38150)
FIX: #38427 Donation - List - Sort order don't work if company is linked to third party
FIX: #38458 : don't let user chose line unit on predefined products (#38460)
FIX: #38957 - Supplier invoice :  Multi-currency code/rate and amount not saved when converting EXCESS PAID, CREDIT_NOTE or DEPOSIT to discount (#38971)
FIX: #38958 - Supplier payment : multi-currency code/rate not saved on payment-invoice link when caller does not fill multicurrency arrays (#38972)
FIX: #38959 - Supplier payment : multi-currency code/rate not saved on auto-created discount when a DEPOSIT supplier invoice is fully paid (#38973)
FIX: #39000
FIX: #39038 Double quote in product label truncates the combo (#39051)
FIX: #39113 CSV export: decode HTML entities in header labels (#39151)
FIX: #39190 wrong unit price when invoicing time spent with one line per declaration (#39215)
FIX: #39210 Contact extrafields filters missing on advanced emailing target selection (#39211)
FIX: #39237 Missing translation for "Weight" in product list
FIX: #39252 Undefined array key warning building nested supplement lines in takepos invoice (#39263)
FIX: #39258 Shipment: wrong backlog and component stock for a kit on several order lines (#39261)
FIX: #39259 Shipment: qty to ship prefilled 0 for 2nd+ order line of a same kit (#39262)
FIX: Accountancy - Closure - Income and deficit accounts should not prevent the closing process if they contain data
FIX: Accountancy - Hook to name generate file is not working
FIX: Accountancy: truncated doc ref not readable in ledger by account (#39242)
FIX: Allow editing quantity to produce on MO while in draft status (#38176)
FIX: API categories/objects returns empty array for ticket type Add missing require_once for api_tickets.class.php and handle ticket type in getObjects() method of api_categories.class.php (#38584)
FIX: API key cannot be cleared/revoked from user card (#38283)
FIX: API - PUT/DELETE categories on thirdparties/contacts always returns 403 (#38354)
FIX: autofill price with multicurrency on supplier doc (backport commit 391aca5) (#38028)
FIX: avoid php warnings (#39556)
FIX: BLOCKEDLOG_HMAC_KEY can not be the same by entity (#39067)
FIX: Broken feature 'Generate Child Mo' (#39560)
FIX: broken jquery selector prevents default model auto-select (#39196)
FIX: Buyer state/province VAT default (VATRULE 2) ignores active and entity filters (#39279)
FIX: calculate the files count on ECM when add multiple files in one time (#31866)
FIX: category links cleanup before deleting commercial objects (#38970)
FIX: change mark rate on all lines would display an error if some lines are free lines. (#39305)
FIX: Change translation method for loading message (ecm javascript) (#38903)
FIX: checkES loops past end of weights array (#39144)
FIX: Clean datas on infoGroups api call (#38643)
FIX: commande/stats: do not default "Created by" filter to current user (#39256)
FIX: cost price is not correctly computed when line->qty is < to 0 (#38268)
FIX: customer price : default VAT was not used (#38606)
FIX: Documents generated/sent in fichinter card use wrong directory in multicompany mode (Change branch from develop to 22.0) (#39266)
FIX: dolgeophp getXYString and getPointString methods (#38669)
FIX: dol_string_nohtmltag() skips double-space collapsing when string starts with a double space (#39175)
FIX: Donation - List - Sort order don't work if company is linked to third party
FIX: Do not quote NULL for fk_user_author & fk_element on insert (#39291)
FIX: double transaction db begin (#38033)
FIX: EmailCollector: DateTime/Carbon object passed as timestamp when MAIN_IMAP_USE_PHPIMAP is enabled (#39378)
FIX: Fatal error when deleting a line of a standalone shipment (#39340)
FIX: fix duplicate contact names in messaging timeline (#38855)
FIX: Fix mandatory field validation for select (empty '-1') and textarea (CKEDITOR not defined) (#39458)
FIX: Fix rang of added lines when create a contract from another element (#38856)
FIX: Fix variable collision in foreach loop causing 'Remove from cycle' button to be always disabled (#39243)
FIX: GDPR cron job false positive errors and birth date format (#38218)
FIX: generate_random_id() collisions (Duplicate entry on uk_ticket_track_id) (#38673)
FIX: getFirstDayOfEachWeek()/getLastDayOfEachWeek() use the wrong year for weeks overlapping 2 years (#39198)
FIX: getWeekNumbersOfMonth() drops the last week when the month ends on a Monday (#39185)
FIX: Holiday shown one day off in agenda for users in another timezone (#39465)
FIX: in list we must not make DNS checks to validate emails
FIX: intervention API line updating (#38414)
FIX: Invoice clone ignores target entity when multicompany sharing is enabled (#38587)
FIX: isInt() does not detect sized integer types (tinyint, bigint) (#39236)
FIX: issue on PRODUIT_SOUSPRODUITS_ALSO_ENABLE_PARENT_STOCK_MOVE Other  38847 (#38907)
FIX: isValidTinForES() rejects almost every Spanish NIE starting with T (#39384)
FIX: Kit Substock return on shipment cancel/delete (#38373)
FIX: Mass action "Reverse movement" bypasses the MAIN_LIMIT_FOR_MASS_ACTIONS limit (23.0) (#39092)
FIX: Mass action "Reverse movement" bypasses the MAIN_LIMIT_FOR_MASS_ACTIONS limit (#39091)
FIX: migration of const inversion STOCK_ALLOW_NEGATIVE_TRANSFER -> STOCK_DISALLOW_NEGATIVE_TRANSFER : do not delete STOCK_ALLOW_NEGATIVE_TRANSFER after inversion. (#39064)
FIX: Missing bottom margin on dropdown action buttons in md theme (#39388)
FIX: missing escaping param securekey in url.
FIX: Missing include of ActionComm in doAutoRenewContracts (#39387)
FIX: missing PRODUIT_CUSTOMER_PRICES_AND_MULTIPRICES checking (#38442)
FIX: Missing translation for "Weight"
FIX: mo_production: show very-short unit label instead of untranslated 'UnitPShort' (#39253)
FIX: Multicurrency amount columns were hidden on discount screens (wrong module test) (#38825)
FIX: MySQL DB_ERROR_1055 on treasury journal (#39359)
FIX: Odt generation : create missing temp directory (#39105)
FIX: Odt generation : create missing temp directory (#39106)
FIX: out of dynamically recalculated unit price inc tax was missing
FIX: phan and phpstan errors on 21.0 static analysis (#39152)
FIX: phone formatting dropping and duplicating digits for JO and PE (#39398)
FIX: preserve supplier price permissions on upgrade to 23.0 (#39066)
FIX: Prevent total discount rounding error on standard lines (#39044)
FIX: propagate extrafields from objectsrc in extrafields_add.tpl.php (#39073)
FIX: propal card should be reloaded after validation. (#38600)
FIX: Reception card shows order line description like shipment card (#38608)
FIX: Reception: require receptionlinebatch.class.php to avoid Fatal when Reception is loaded indirectly (#38481)
FIX: remain to pay is 0 if invoice has paid status (#33191)
FIX: reset fk_code_ventilation on cloned customer invoice lines
FIX: search billed in order line list (#38854)
FIX: selected default value ko on select_produits_fournisseurs_list()
FIX: setCategoriesCommon array_diff/foreach warnings when containing() returns -1 (#38660)
FIX: set SOCIETE_FISCAL_MONTH_START default to 1 (#37662) (#38162)
FIX: Show error when clone order fail (#39382)
FIX: situation invoice credit note wrong amount in progressive mode (#39197)
FIX: situation invoice mode setup uses a 3-value select instead of a yes/no toggle (#39098)
FIX: supplier proposal line extrafields not loaded (#38870)
FIX: Syntax error (#38976)
FIX: Task::getTasksArray() phantom column efpt.search_task_options_* (#38564)
FIX: Ticket list: "Remove filter" button does not reset the Company filter (#39375)
FIX: use get_exdir to compute holiday upload path in prepare_head (#38644)
FIX: use multidir_output fallback for multi-entity HRM PDF generation (#38640)
FIX: user image was not updated immediately. (#38602)
FIX: Using the default email template when sending bulk emails from a list (#38579)
FIX: very old llx_adherent migration bug from 3.6-3.7
FIX: when cloning a supplier order, the date would be set to 01/01/1970 (#38270)
FIX: wrong backtopage after editing agenda event on product messaging page (#39240)
FIX: wrong VAT amount on situation invoice PDF after conversion to delta lines (#39195)
SEC: #39000 Escalation to admin when user has clone permission - credit Abderrahmane Aksoum on the fix commit

***** ChangeLog for 23.0.3 compared to 23.0.2 *****

FIX: #36589 (#38037)
FIX: #37552 (#38073)
FIX: #37649 (#38101)
FIX: #37759
FIX: #37760
FIX: #37761
FIX: #37762
FIX: #37805
FIX: #38074 (#38075)
FIX: #38131 (#38140)
FIX: Accountancy - Select journal - Problem with the label (#37979)
FIX: AccountingAccount cache — silent reference mutation in accounting journals (#37981)
FIX: a param must not come from end user entry.
FIX: api create invoice. Do not allow a user limited as sale
FIX: avoid error when deleting a category (#37864)
FIX: avoid error with postgresql (#37865)
FIX: avoid Table 'llx_categorie_project_task' doesn't exist (#37861)
FIX: broken feature with api auth and Multicompany transverse mode (#37868)
FIX: do not print Extrafields in PDF if printable is 0 (#37789)
FIX: draft invoice paid when add absolute discount == remain to pay (#38104)
FIX: extrafield selectlist when there is a linked table (#37706)
FIX: Limit standard on price list (#37944)
FIX: missing "blob:" in the assistant for CSP editor.
FIX: option MEMBER_SEARCH_MEMBER_PUBLIC_FORM_CREATE
FIX: product price.php: preserve default_vat_code and tva_npr when auto-creating initial product_price row (#38034)
FIX: propagate fk_warehouse from BOM/MO to production lines in createProduction() and processBOM() (#38147)
FIX: selected default value ko on select_produits_fournisseurs_list()
FIX: Set default warehouse on order create. (#37815)
FIX: Site root missing in $backtopage. (#37804)
FIX: use company default RIB when it is defined (#38016)
FIX: wrong "REFERENCES" for foreign key of fk_project_task (report this fix in 23 to 24) (#37874)
FIX: IDOR on messaging.php - Credit Aksoum Abderrahmane
FIX: Some remaining cross-customer object creation on API (proposal, orders) - Credit Mitch311
FIX: add permission test on legacy filemanager - Credit Aksoum Abderrahmane
FIX: Can use AI module to make SSRF call. Credit Dilip
FIX: #GHSA-crgg-h74r-2m8r (#37636)
FIX: #GHSA-hq5j-39f9-qxcv (#37812)
FIX: SQL Injection via Operator Injection in Contract Service List
SEC: Better sanitization param for GETPOST of htmlheader of website page - See commit bbbbb56c6455514dcd0acca53afc17a92ed21bb9