***** ChangeLog for 24.0.3 compared to 24.0.2 ***** FIX: #30326 agenda assigned resources not shown on the event card (#41247) FIX: #39239 The user of the last change of a MO was unknown after a status change (#41903) FIX: #39456 a supplier credit note can hold a positive line (#41160) FIX: #39533 Store lastUpdate when it is empty, or the monthly leave credit never runs (#41349) FIX: #39771 TakePOS: free zone amount lost its decimals with a comma as decimal separator (#41742) FIX: #40158 Undefined array key warnings in the bank journal (#41904) FIX: #40432 Strip tab and newline from doc_ref in FEC export (#42097) FIX: #40487 Saving a contact wipes its civility when MAIN_USE_TITLE_FOR_CONTACT is off (#41501) FIX: #41246 Product related items page fails for users who cannot see all thirdparties (#41356) FIX: #41475 Deposit or credit note with several VAT rates: cost price of each discount line (#41476) FIX: #41689 REST API: keep the order of invoice lines sent with POST /invoices (#41690) FIX: #41780 scripts/cron: terminate the job log line when a job is skipped by its test condition (#41781) FIX: #41786 Vendor invoice: save the tags on creation, not on validation (#41787) FIX: #41842 PHP warnings in Ldap::fetch() for attributes missing from the LDAP entry (#41843) FIX: #41882 Delivery receipt PDF (storm): HTML entities in the signature boxes (#41884) FIX: #41967 TakePOS: floor plan opens on an empty floor 0 instead of the floor with tables (#41968) FIX: #42000 PHP warning Undefined array key "direct-download" on marketplace page (#42103) FIX: #42045 No EPC QR code with amount 0 on fully paid invoices (#42046) FIX: #42157 CSV export - quote only the values that need it (digits, journals and select labels) (#42159) FIX: #42168 Invoice due date is one day early when the payment term crosses a DST change (#42176) FIX: #42204 Add phone columns to Ticket::listeContact() for thirdparty (#42205) FIX: a bookmark title longer than 64 characters showed a raw database error (#41286) FIX: a category could be moved into one of its own sub-categories (#41340) FIX: a category that contains orders, invoices or interventions could not be deleted (#41333) FIX: Accountancy ledger PDF - account title lines wrap word by word (regression of #40790) FIX: Add Canadian bank account fields (#41977) (#42218) FIX: adding an object to a category without the permission on it reported a success (#41338) FIX: add missing CSRF token on agenda setup select none link (#41944) FIX: a disabled workstation could be deleted from its card without the permission to delete (#41273) FIX: a failed creation of a workstation still saved links to user groups and resources (#41272) FIX: Agenda recurring events were shifted by one hour by a daylight saving time change (#41693) FIX: a line of a validated, approved or paid expense report could be deleted (#41463) FIX: an MO could be consumed or produced while draft, produced or canceled (#41619) FIX: an MO with consumed or produced lines could be set back to draft and reset (#41621) FIX: answering No to record or cancel an inventory still recorded or canceled it (#41575) FIX: API errors answered with HTTP 200 instead of 500/501 when the output is not buffered (#42064) FIX: API refused for the IP answered with HTTP 200 instead of 503 when the output is not buffered (#42059) FIX: API setup: getListOfExtrafields reads showintooltip without selecting it (#41299) FIX: API setup: the VAT dictionary route omits einvoice_vatex (#41359) FIX: API setup: the VAT dictionary route returns only part of the table (#41313) FIX: API thirdparties: the VAT rate of a fixed amount discount is ignored (#41778) FIX: API to add or remove a category of a contact was always refused to users restricted to their third parties (#41268) FIX: API tokens not migrated on upgrade when table prefix is not llx_ (#41834) FIX: a serial number could be added twice to a stock transfer (#41614) FIX: a supplier invoice could not be removed from its category (#41335) FIX: a user with HRM data (assessments, job positions, skills) could be deleted (#41305) FIX: autoclean CSP if module paypal or stripe on FIX: Autoselect the product created with the + button of the line form (#41992) FIX: a warehouse could not be added to a category from the category (#41337) FIX: a warehouse could not be removed from its category (#41334) FIX: a workstation still used by a product, a BOM or a manufacturing order could be deleted (#41271) FIX: Beluga project PDF overlaps rows when a third party name wraps (#41110) FIX: Canceling an approved leave not yet debited at the end of the month refunded one day (#41394) FIX: cancelling a shipment failed when a line had a lot record with qty 0 (#41578) FIX: cancelling, deleting or reopening a shipment was refused once the dates of its lot were corrected (#41573) FIX: cancelling or deleting an MO line doubled a negative consumption or production (#41549) FIX: CI gate job is killed by timeout-minutes before its own wait budget (#42107) FIX: CI: test on $action without permission check in inventory.php and reception/dispatch.php (backport) (#41713) FIX: Clone of a proposal or an order loses the options of subtotal lines (#41374) FIX: Closing a fiscal period could record the opening entries in the period being closed (#41857) FIX: CodingPhpTest fails on the inventory page, so phpunit fails on every Pull Request FIX: CodingPhpTest fails on the reception dispatch page, so phpunit fails on every Pull Request FIX: contact projects empty row colspan (#41638) FIX: Contract list loses the third party filter (socid) when sorting or paginating (#42058) FIX: Contract: the "Messaging" tab of a contract linked to a project stopped with a fatal error (#41234) FIX: Converting a supplier credit note with lines of both signs into a discount credited too much (#42002) FIX: CSRF token missing on the "Classify abandoned" invoice button (#41379) FIX: CSRF token missing on the "Set to draft" leave request button (#41380) FIX: cyan proposal PDF, public note overlaps the sender and recipient frames when linked objects are shown (#42098) FIX: deleting a contact left its documents, its object links, its birthday alerts and the link of its user (#41266) FIX: deleting a free MO line to produce after production left its production in stock (#41620) FIX: Deleting a leave request left its extrafields row (#41388) FIX: deleting an ECM directory with its content left its subdirectories in the database (#41764) FIX: deleting an establishment did not delete it, and an establishment assigned to users can no longer be deleted (#41304) FIX: deleting an expense report with payments left orphan payment records (#41460) FIX: deleting a reception reversed stock for lines whose stock was never moved (#41581) FIX: deleting a user left his private bookmarks in database (#41289) FIX: deleting a variant attribute left the extrafields of the attribute and of its values (#41314) FIX: deleting a workstation left its links to user groups and resources in database (#41270) FIX: Delivery receipt numbering Saphir: use the delivery date, not the validation date (#41567) FIX: Diaspora and Reddit networks of the Social networks module could never be used (#41814) FIX: Dictionaries no longer checked their mandatory fields (#41710) FIX: Discount for all lines must not change deposit/credit note lines (#42024) FIX: doc of DolibarrApi::_checkAccessToResource() also accepts the full object (#41451) FIX: document of a donation was not indexed (#41880) FIX: dol_delete_dir_recursive() changes the mode of the target of a symlinkFix/delete dir symlink chmod (#41358) FIX: Dolibarr login column of the third party contacts list was never displayed (#41670) FIX: draft mailing recipient display and invalid selector loading (#41538) FIX: drag and drop of a file that is not an image broke the answer with PHP 8.5 (#41866) FIX: Duplicate recurring invoices: next date moved back when the server timezone is ahead of UTC (#41327) FIX: eat-by and sell-by dates of lots entered on the reception card were lost or swapped (#41551) FIX: Editing a reception or a shipment erased its author and its validator FIX: email collector indexed its saved attachments under a wrong file name (#41823) FIX: empty in SEPA direct debit file when the request forces a bank account without mandate date (#42020) FIX: error management on payment of donations FIX: expense report card accepted status changes its buttons never offer (#41459) FIX: expense report clone ignored the hierarchy check and kept the approver of the source (#41465) FIX: Expense report PDF standard: phone and fax were never on the same line FIX: expense report: users who could only read a colleague's report were able to modify it (#41464) FIX: expense report was never set paid when it was paid in several payments (#41466) FIX: extra fields declared for all entities (entity=0) missing from getEntity('extrafields') FIX: fatal error in top menu when $mysoc is not loaded (#41636) FIX: Fediverse box read the setup of another network or entity, and never used the token/login of the network (#41812) FIX: Fix #41541 SMTPs: stop sending when RCPT TO or DATA fails (#41618) FIX: Hide irrelevant multicurrency amounts in supplier price history (#41699) FIX: home page crashed (TypeError) when a social network of the Fediverse box could not be reached (#41811) FIX: inventory barcode scan added lines without lot that blocked or doubled the recording (#41654) FIX: inventory prefill took the stock of warehouses of other entities (#41655) FIX: Invoice back to draft silently skips stock restore when stock movement fails (#41277) FIX: Invoice created by mass action from orders loses its author (#41739) FIX: Invoice paid in its currency stays partially paid because of a one cent conversion gap (#41856) FIX: Keep empty proposal and product list filters neutral (#41656) FIX: lead status columns of the kanban view were not translated (#42091) FIX: Leave balance check blocked refusing a request and editing an approved one (#41387) FIX: Leave balance check counted a half-day request as full days (#41396) FIX: Leave card: any leave request could be set back to draft, even approved, without permission (#41386) FIX: Leave mass approval debited the balance twice when it is decreased at the end of the month (#41389) FIX: Leave monthly balance update ignored half days in the days taken (#41395) FIX: Leave monthly update raised an undefined array key country_id warning (#41397) FIX: Leave request: the Info tab did not show who validated and who approved it (#41565) FIX: Line breaks in a knowledge base article were lost on the detail page when FKEditor was disabled (#41727) FIX: Lines of a standalone reception can not be reordered (#41829) FIX: lines of a stock transfer could be changed after validation or belong to another transfer (#41613) FIX: lines of a validated reception could be changed or deleted from the dispatch pages (#41579) FIX: links refused by the CSRF protection at level 3 because they had no token (#41511) FIX: Load the author, the validator and the validation date in fetch() instead FIX: lot number typed on a new reception was lost when the form was shown again after an error (#41577) FIX: Mass action email send ignores sender defined by email template (#41240) FIX: mass action "send by email" ignored sender defined by email template (#41348) FIX: Mass email sending fails when thirdparty name contains a comma (#41806) FIX: Member status for member types without mandatory subscription (#41236) FIX: Migrated API tokens can not be found when API_IN_TOKEN_TABLE is on (#41804) FIX: MO consumption required a lot when the Lot/Serial module was disabled (#41622) FIX: MO production tab reopen and line edit actions did not check status or line (#41650) FIX: MO REST API recorded lot '0' and applied negative quantities with the wrong sign (#41651) FIX: negative consumption on an MO lost the lot and set an eat-by date (#41653) FIX: on shipment page, if the product description is empty, Dolibarr would show a blank rectangle. (#41242) FIX: outgoing stock movements of a lot were refused once its dates were corrected on the lot card (#41552) FIX: Partnership list: column End date of membership empty for a member without subscription (#41608) FIX: Partnership list: "Contribution never received" was never shown (#41566) FIX: PDF of an intervention regenerated on its card was not indexed (#41867) FIX: PDF of a salary was not indexed (#41881) FIX: PDF showed no payment terms when the term has no label for documents (#41607) FIX: Performance of widget "last customer invoices" on large databases (#41278) FIX: Per object access check of document.php and viewimage.php never run on 24.0 (#41668) FIX: phan refused the SQL of the HRM check done before deleting a user (#41456) FIX: phan warnings on 21.0 (untyped object in fichinter_create() and skill_card.php) (#41995) FIX: PHPDoc of hasRight() takes a module name, accessforbidden() never return FIX: PHPDoc of module_parts hooks: accept both the data form and the flat list (#42033) FIX: PHPDoc of preselected ids accepts int, *Common() notrigger accepts 0/1 FIX: PHPStan did not know $object in actions_comments.inc.php (#41572) FIX: phpstan: fk_user_author and fk_user_valid of Reception and Expedition can be null (#41861) FIX: phpunit testPaiementCreateInInvoiceCurrencyClosesInvoice fails on CI (#41887) FIX: PHP warnings in top menu when $mysoc or session keys are missing (#41637) FIX: Preserve the previous week month and year (#41986) FIX: Prof id pasted with its separator dots is truncated (SIREN, SIRET) (#41657) FIX: Project overview: list of stock movements linked to the project fails (#41398) FIX: Public export of interventions fails when the module Agenda is disabled (#41969) FIX: Public export of interventions fails with a SQL error when filtered on a project (#41956) FIX: Public export of interventions fails with a SQL error when filtered on the author (#41952) FIX: Public export of interventions ignores the filter logint (#41955) FIX: public lead form did not save the zip code of the new prospect (#42090) FIX: Reception: project and supplier order not shown on the card of a reception (#41294) FIX: recording an inventory added the full counted qty for a lot typed with another case (#41576) FIX: Remove delivery date edit panel styling (#41698) FIX: renaming a file in ECM with the name of another file of the directory overwrote it (#41762) FIX: reopening or setting back to draft a reception could remove its lots from stock twice or never (#41580) FIX: REST API: PUT /supplierproposals/{id} always ended in a fatal error (#41766) FIX: Restore all VAT types and sales-only selling-price selectors (#41355) FIX: RSS box showed an empty feed with no error when the URL did not return a feed (#41728) FIX: RssParser::parser() returned one item too many, and only 1 item with no limit (#41730) FIX: RssParser PHP warnings on optional feed elements and PHP 8.4/8.5 deprecations (#41729) FIX: Salary transfer request tab: project selector only listed projects without third party (#41767) FIX: Sales journal crashes when an invoice consumes a deposit (#42025) FIX: Sales journal: ignore ACCOUNTING_MANAGE_CUSTOMER_DEPOSIT_IN_INVOICE when FACTURE_DEPOSITS_ARE_JUST_PAYMENTS is set (#42194) FIX: Sales journal: with ACCOUNTING_MANAGE_CUSTOMER_DEPOSIT_IN_INVOICE, reverse only down payments (#42184) FIX: saving a product card with module lot disabled switched the product to no lot management (#41550) FIX: saving the card of a shared ECM file generated a new share key, the links already sent stopped working (#41763) FIX: Search filters lost on sort and pagination on the invoice list (#41777) FIX: Search filters lost on sort and pagination on the proposal list (#41775) FIX: search filter tool not refreshed when the field is cleared with its cross (#42011) FIX: select_all_categories() fatal count() when the category type is unknown (#41738) FIX: Set a email modele causes a display error on intervention card when send a email (#41400) FIX: shipment creation accepted the same serial number on two lines of the order (#41612) FIX: Show message when module not compatible FIX: signing a proposal removed the prospect tag of a prospect/customer third party (#42092) FIX: Situation invoices: no "Create next situation" button on a credit note (#41409) FIX: SMTPs protocol errors: long server replies, QUIT, refused AUTH PLAIN, bare LF in header (#41721) FIX: SMTPs sent only one of the attachments having the same file name (#41665) FIX: SMTPs used the main authentication method instead of the one of the send context (#41666) FIX: social networks setup page ignored the new URL, broke on rename and mixed the entities (#41819) FIX: stock transfers and mass stock movements used outdated lot dates (#41616) FIX: Stripe and PayPal setup pages crash with undefined showEyeForField() (#42044) FIX: Substitution __THIRDPARTY_COUNTRY_ID__ gave 1 instead of the country id (#41287) FIX: Subtotals: keep line options when a supplier invoice, supplier proposal or proposal is created from another document (#41371) FIX: supplier invoice list "late" option no longer filters unpaid invoices (#41982) FIX: Supplier proposal PDF zenith: no banner for titles and subtotals, header overlap (#41378) FIX: supplier recurring invoices and month substitution keys shifted when the server timezone is ahead of UTC (#41368) FIX: Tabs and PDF of a standalone reception crash when customer orders are off (#41828) FIX: the API could delete or update a product variant of another entity (#41312) FIX: the API could link objects to a category of another entity or of another type (#41339) FIX: the comparison of skills showed employees outside the hierarchy of the user (#41308) FIX: The credit transfer requests of a salary showed the direct debit bank account (#41606) FIX: the cron failure alert email gave the translation key of the job instead of its label (#41502) FIX: the designated approver of an expense report could not open it (#41507) FIX: The label typed in the clone dialog of a skill was ignored (#41894) FIX: the list of variant attributes could not show its second page (#41310) FIX: the modification date of a record without extrafields row was empty (#41302) FIX: the order of the variant attributes could be changed by a user allowed only to read them (#41316) FIX: The public holiday of Pentecost in France, Belgium and Austria is the monday (#41328) FIX: the section of the job applications was never shown in the automatic ECM (#41765) FIX: the state and the social networks of a contact were not copied to its linked user (#41265) FIX: the variants tab of a product could edit or delete the variant of another product (#41309) FIX: Ticket::create() rolls back the caller transaction when verify fails (#41815) FIX: Time spent list fails with a SQL error when tasks have extrafields (#41947) FIX: transfer from a lot row of the product stock tab ignored the source warehouse selected (#41615) FIX: Undefined array key "host" in CMailFile::check_server_port() (#41341) FIX: Undefined property $project_public in Task::fetchAllTimeSpent() (#41771) FIX: Update of a currency rate always fails with a SQL error (#41949) FIX: Update of a currency rate shows a success message when it fails FIX: updating a workstation outside of its edit form removed its user groups and resources (#41269) FIX: Warehouse info and job position tabs: fatal error for a user who can not edit the object (#41235) FIX: Warning on amount of membership type FIX: warnings when opening a bookmark that does not exist (#41274) FIX: Wrong alias shown for third parties in last modified proposals/orders on comm/index.php (#41383) ***** ChangeLog for 24.0.2 compared to 24.0.1 ***** FIX: #33502 FIX: #32312 FIX: #36232 : Drop reference to non-existent fk_user_done in events box (#40271) FIX: #36239 Fix the workstation cost in the manufacturing order cost (#36466) FIX: #36903 Backport to 20.0: API POST expensereports/{id}/payments always fails (#40711) FIX: #39680 Disable unavailable BookCal document generation (#39948) FIX: #40120 Tell the administrator how to recover a table that refuses any new field (#40121) FIX: #40149 Supplier invoice - Payment report is not accessible FIX: #40175 Email templates: restore the Private field removed from $tabfield[25] (#40176) FIX: #40274 FIX: #40277 FIX: #40317 Supplier invoice transferred into accountancy can no longer be deleted (#40370) FIX: #40325 Customer specific price propagation to subsidiaries was inconsistent between create and delete (#40326) FIX: #40383 BonPrelevement::create() fires swapped trigger names, amount unset (#40475) FIX: #40404 FIX: #40407 FIX: #40428 Events/Agenda view for Contacts/Addresses: UNION query column count mismatch (#40477) FIX: #40450 Various payment clone: apply the bank account chosen in the dialog (#40451) FIX: #40464 Ticket notification email template setting reset on save (#40465) FIX: #40630 Documents backup embeds all previous database dumps (#40631) FIX: #40635 Backup: do not offer compression formats blocked by dolibarr_main_restrict_os_commands (#40636) FIX: #40714 standalone shipment: show line extrafields (#40715) FIX: #40883 FIX: #40906 Load balances before scheduled invoice emails (#40929) FIX: #40907 emailcollector inline images dumped as base64 (php-imap getBoundary) (#41067) FIX: #40999 Accountancy - Switching from PCG14-DEV to PCG25-DEV loads no account (#41000) FIX: #41001 Draft receptions counted as received when validating a reception (#41002) FIX: #41147 FIX: #41223 FIX: ability for a non admin user with permission to set password to know FIX: Accountancy - Error "Data too long for column 'ref'" on manual transaction ref (#40710) FIX: activating or disabling prices by quantity on a price level replaced the price of the level by the default price (#41197) FIX: "Add time spent" link from project's element tab refused by CSRF protection (#40963) FIX: AdherentType::delete() committed without opening a transaction and left the translations and extrafields of the type (#41200) FIX: AI assistant fatal on get_product_details (#40463) FIX: Allow '/' and other chars in lot/serial numbers (stock correction + barcode scan) (#40661) FIX: Allow choosing supplier when creating purchase order from proposal (#40802) FIX: Amount base of the depreciation is never displayed, so the plan stays empty (#40295) FIX: Amount not visible on tooltips and pb of label of cheque FIX: An email collected on an object without thirdparty ignored the thirdparty of its project (#41109) FIX: An intervention created from a proposal or an order ignored the translated label of the products (#41183) FIX: An intervention generated from time spent lost the description of the project (#41185) FIX: An intervention validated through the API or on closing a ticket got a ref without the customer code (#41189) FIX: A paid social contribution can be deleted, leaving its bank line alone (#40769) FIX: A paid supplier invoice can be deleted through the API (#40773) FIX: A paid VAT declaration can be deleted, leaving its payment and bank line (#40771) FIX: A photo refused at upload on a member or a contact replaced the photo by a missing file, without any message (#41181) FIX: API BOM putLine must not accept a line of another BOM (#40526) FIX: API category link/unlink must check access to the target object (#40525) FIX: API contract and supplier invoice line endpoints must check the line belongs to the object (#40523) FIX: API createInvoiceFromContract must check access to the source contract (#40522) FIX: API DELETE /receptions/{id}/lines/{lineid} called a method that does not exist (#40527) FIX: API documents: list the files of a supplier invoice (#40759) FIX: API documents: supplier_invoice/supplier_order modulepart refused to non admin users (#40712) FIX: API intervention line endpoints must check the line belongs to the intervention (#40524) FIX: API POST expensereports/{id}/payments: bank line or nothing, report paid once settled (#40756) FIX: API POST expensereports/{id}/payments: no PHP warning when accountid is missing (#40768) FIX: API POST salaries/{id}/payments: bank line or nothing, on the salary of the URL (#40766) FIX: API usage counter never updated when API_IN_TOKEN_TABLE is on (#41154) FIX: A project with an end date before its start date showed an untranslated error key (#41192) FIX: a sell price computed from a margin or mark rate is rounded as a unit price, not as a total (#41209) FIX: Asset dispose()/reopen() PHP warning on null thirdparty with multilangs (#40727) FIX: Asset module document generation is entirely non-functional (#40663) FIX: a subscription created with Subscription::create() did not update the end date of the member (#41199) FIX: A supplier payment higher than the remainder to pay showed an untranslated warning key (#41204) FIX: Attached files lost from an asset when it is validated (#40431) FIX: Avoid 500 fatal error when generating a barcode image with an invalid value (#40429) FIX: Avoid PHP warning when a module declares an unknown permission family (#40422) FIX: bank: rollback in update_conciliation() when the statement number is refused (#40725) FIX: Birthday events not loading for the whole week in agenda week view (#40596) FIX: BonPrelevementTest corrupts global $mysoc's DB connection across the suite (#40518) FIX: box_lastlogin shows wrong "Last password change" date (1970) (#40134) FIX: Buying price of a line stored multiplied by 1000 when thousand separator is a dot (#40657) FIX: cast nullable key/table/label to string in natural_search() sellist subquery (#40157) FIX: Cast price2num() result to float for mass payment remain to pay FIX: Cast trim() args to string in Categorie class (PHP 8.1 deprecation) (#40458) FIX: Cast trim() args to string in ContratLigne::update() (PHP 8.1 deprecation) (#40462) FIX: Cast trim() args to string in FactureFournisseur::create() (PHP 8.1 deprecation) (#40455) FIX: Cast trim() args to string in Salary class (PHP 8.1 deprecation) (#40457) FIX: Cast trim() arg to string in CommandeFournisseur::addline() (PHP 8.1 deprecation) (#40460) FIX: Cast trim() arg to string in Reception::updatelinefree() (PHP 8.1 deprecation) (#40459) FIX: Check the user on every invoice reached by the customer payment page (#40396) FIX: CI FIX: Computed extrafields are evaluated against the wrong record (#40484) FIX: Contact par défaut du tiers non ajouté aux tickets #1909 (#40535) FIX: Contract: close the margin script block on line edit (#40654) FIX: Create shipment action missing on service-only orders with SHIPMENT_SUPPORTS_SERVICES (#40735) FIX: CSRF "Token not provided" error on "Classify abandoned" invoice button (backport to 24.0) (#40558) FIX: defineBuyPrice() ignored line quantity for supplier price ranges (#40632) FIX: deleting a product lot left its extrafields and its documents and fired no trigger (#41177) FIX: Deleting a Stripe card of a thirdparty always failed (#41092) FIX: deleting a user group left its extrafields in database (#41231) FIX: deleting a user group was allowed with the permission to modify instead of the permission to delete (#41230) FIX: Depreciation options of an asset cannot be saved from the interface (#40344) FIX: Document backup fails after a "Clean temporary files" purge (#40470) FIX: documents API cannot write bank files (requires non-existent banque->creer) (#40723) FIX: Donation CERFA receipt inserts a spurious "cents" word for any amount whose hundreds digit is 0 (#40602) FIX: donation payment card always refused and VAT payment card refused to restricted users (#41174) FIX: Do not generate the signed PDF when the online signature is refused (#41141) FIX: Draft lists on comm/index.php ignore the configured shortlist size (#40546) FIX: Drag and drop was broken FIX: drop always-true left operand of && (phpstan booleanAnd.leftAlwaysTrue) (#40156) FIX: Duplicate popup id makes both outstanding dialogs open at once (#40751) FIX: Dynamic property deprecation on SupplierInvoiceLine::$libelle (#40540) FIX: editing an admin resets its entity to 0 when multicompany is off (#41039) FIX: emailcollector hook context (#40485) FIX: Email collector PHP 8 warnings on missing Subject/to/message_id (#40613) FIX: encrypted key with non ascii char were not correctly decoed FIX: Event messages are lost on pages defining DISABLE_JQUERY_JNOTIFY (#40551) FIX: Expense report: tooltip of a line breaking several rules showed a literal \n (#41226) FIX: Export datasets missing sales-rep / hierarchy scoping (mass IDOR FIX: External ICS calendars with local time + TZID are never displayed (#40944) FIX: GeoIP country lookup fails when a City database is used as country datafile (#40180) FIX: getMultidirOutput() warned and returned a relative path for an entity with no declared directory (#40251) FIX: Guard the 'filtre' parameter of the supplier invoice list against a missing value (#40392) FIX: Hide payment fields for zero-price events (#40600) FIX: HTML entities shown in the popup title of thirdparty outstanding tiles (#40749) FIX: iCal export: attendees missing and "Undefined array key assignedUsers" warning (#40753) FIX: import_key of a product lot was quoted with double quotes in SQL (#41187) FIX: Install button must be Re-install or Upgrade FIX: Invoices generated from time spent lost the local taxes of the product (#41094) FIX: Kanban group by: drag and drop answers 403 after a new login (#40697) FIX: Kanban group by view: drag and drop saved nothing without the deprecated edit in place option FIX: Keep import icon visible in additional linked object blocks (#40671) FIX: Keep import icon visible in linked proposal block (#40667) FIX: Ldap::getAttributeValues() crash when ldap_search() fails (#40978) FIX: LDAP groups sync: existing groups not found on second run (#40980) FIX: Leaves auto-validated from a group leave request had no validator (#41093) FIX: Lost Contract and Project search filters on intervention list (#40748) FIX: Mailing card inline edits of title/from/replyto/errorsto/unsubscribe never saved (#40568) FIX: make_substition corrupting nature html/no html when trying to insert FIX: member setup pages showed a raw translation key when the save failed (#41218) FIX: Menu "Tools" and its BI entry always shown to external users (#40675) FIX: Messages into backup tool FIX: Missing access control on the salary documents (#40430) FIX: Missing access control on the supplier invoice payment page (#40394) FIX: Missing access control on the VAT payment page (#40420) FIX: Missing authorization in core/ajax/mailtemplate.php (IDOR - CWE-862) (#40403) FIX: Missing authorization in core/ajax/mailtemplate.php lets any authenticated user read arbitrary Website page content (IDOR) FIX: Missing ownership check on the salary payment page (#40447) FIX: MO (manufacturing order) REST API list endpoint ignores sales rep customer restriction (#40610) FIX: Mo::processBOM() ignores qty value for qty_frozen BOM lines (#40263) FIX: MRP REST API produceAndConsumeAll records produced goods at price 0 (#39942) FIX: Multiprice export drops products priced in a shared entity (#40270) FIX: New supplier proposal form never prefills the bank account field (#40607) FIX: Next date of recurring invoices shifted when the server timezone is ahead of UTC (#41210) FIX: Octopus invoice PDF model: misleading "Remain to pay" label FIX: Octopus invoice PDF model: VAT-by-rate table always showing 0% FIX: opensurvey public page accepted comments when comments are disabled (#41063) FIX: Opportunity probability set 100x too high on opportunity status change (#40620) FIX: Order PDF eratosthene/proforma: sender block drawn over the logo when MAIN_PDF_USE_ISO_LOCATION is enabled (#40185) FIX: packaging rounding of quantities saved wrong amounts on update and lost the sign (#41111) FIX: Partnerships REST API list endpoint ignores sales rep customer restriction (#40608) FIX: PaymentLoan::update() assigns trimmed note_private/note_public into note (#40461) FIX: PDF: keep translating a product description turned into HTML by the editor (#40405) FIX: Persist member civility when set through the civility_code property (#39992) FIX: Phan fails on any PR touching htdocs/core/triggers/ (#40967) FIX: PHP warning on undefined property when showing the currency rate in lists (#40209) FIX: Possible SSRF in Dolibarr external calendar import via DNS rebinding FIX: preg_match() called without a subject in make_substitutions() (#40398) FIX: Productbatch::findAllForProduct() returned the stock of the lots of other products with the same batch number (#41178) FIX: Product description not refilled into line textarea after a manual edit (#40755) FIX: product lot card and documents tab did not check the entity of the lot (#41180) FIX: product lot card: the lifetime field could not be edited and the edit pencils used another permission than the actions (#41176) FIX: product lots API listed the lots of all entities again and refused updates to restricted users (#41179) FIX: Product merge moves the attached files only when the merge fails (#40395) FIX: Prof id pasted with its separator spaces is truncated (SIREN, SIRET) (#39679) FIX: Project Beluga PDF lists no linked object (#41085) FIX: Project category AND/OR search operator ignored, and clobbers user category operator (#40567) FIX: Project documents: linked objects missing from Beluga PDF and ODT (#40408) FIX: Project extrafield edit link/save broken on Time spent tab (#40617) FIX: Propagate project contacts with task roles (#40588) FIX: Proposal list user filter no longer defaults to the current user (#40275) FIX: prorate situation invoice buy price in progress mode (INVOICE_USE_SITUATION = 2) (#40034) FIX: public agenda export and website wrapper showed the server path of a file (#41121) FIX: public agenda export could be served as text/html with any contenttype (#41112) FIX: public bookcal ajax answered when the module Bookcal is disabled (#41124) FIX: Public conference/booth vote page never defines $suffix it uses (#40606) FIX: public intervention export could be served as text/html and showed a server path (#41113) FIX: Public job application page never defines $entity/$suffix it uses (#40605) FIX: public job position page accepted applications when disabled and showed drafts (#41108) FIX: public member subscription form accepted a member type that it does not propose (#41219) FIX: Public Stripe checkout page breaks silently when Session::create() fails (#40603) FIX: Quadratic update_price when creating an invoice from an origin (#40280) FIX: Rang collision on contract line create/delete #1897 (#40219) FIX: Reactivating Bank, Supplier proposal or Lot/serial module never recreates their dedicated tables (#40638) FIX: Recruitment job position REST API list endpoint ignores sales rep customer restriction (#40609) FIX: refresh the buying price when cloning a proposal with "Update prices" (#40946) FIX: Reject invalid SEPA direct debit sequence types (#40572) FIX: Release checksum file lists files removed by the buildroot cleanup (#40649) FIX: reminder of expired subscription used the third party of the previous member for a member without third party (#41198) FIX: remove all extrafields filters on bank account list for remove filters action (#40323) FIX: Roll back failed free registration validation (#40599) FIX: Sales journal keeps only the last deposit when an invoice consumes several (#40375) FIX: Save resubmitted unpaid attendee details (#40598) FIX: Security: Authorization bypass in leave API update/create (IDOR) (#40314) FIX: Security: Authorization Bypass in Project/Task Comment Update/Delete (IDOR) - reported by soulaimane bouabid (#40284) FIX: security: restore restrictedArea() on payment_vat, donation payment and stocktransfer note pages (#40281) FIX: Setting TICKET_NOTIFICATION_EMAIL_TEMPLATE was saved but never used (#40961) FIX: Shipment: service line silently dropped when STOCK_DISALLOW_NEGATIVE_TRANSFER is set (#40496) FIX: SQL syntax when validating a conference (#40601) FIX: Stock at date: label the Movements column and show the record count FIX: stock transfer card and tabs did not check the entity nor the third party of the record (#41175) FIX: stock transfer PDF eagle, untranslated null weight/volume total (#40970) FIX: stock transfer PDF eagle, warehouse label overlaps next line (#40969) FIX: [stocktransfer] PDF models load a lang file that doesn't exist (#40972) FIX: subscriptions API and member subscription endpoints did not check the entity of the member (#41214) FIX: Subtotals - escape line description when rendered in templates (#39971) FIX: Subtotals: no 'Total incl. tax' printed on title and subtotal lines of PDF (#40641) FIX: Subtotals: supplier order and invoice PDFs print line values on title lines (#40694) FIX: Supplier invoices created from receptions lost local taxes, service dates and product type (#41104) FIX: Supplier invoices point-of-tax date (#40329) FIX: Supplier order is not classified billed when documents use a foreign currency (#40178) FIX: switch of birthday events not working in some cases in the agenda FIX: the ajax price lookup accepted a price by quantity of another product (#41221) FIX: The "Cancel" mass action on a non validated order showed an untranslated error key (#41203) FIX: The confirmation of the deletion of a reception had an untranslated title (#41205) FIX: The customer prices tab of a thirdparty lost its filters when changing page (#41161) FIX: the end date of a member was the end of its last started subscription instead of its latest end (#41217) FIX: The error branch of the member and contact photo upload was unreachable (#40087) FIX: The HRM comparison never showed the job of the users (#41102) FIX: the language of the member was ignored in the emails sent to the member (#41212) FIX: The linked objects block never showed the end date of a task (#41101) FIX: The margin rate alerts of a new line showed HTML entities (#41191) FIX: The order list showed an untranslated key when the stock is not enough for all orders (#41206) FIX: The partnership list never showed that a member subscription was not received (#41105) FIX: The Partnerships tab of a member listed the partnerships of all members (#41107) FIX: The Partnerships tab of a member showed an empty banner and login (#41106) FIX: The payment of a loan never preselected the bank account of the loan (#41098) FIX: The public payment page of a donation never showed the company name (#41099) FIX: The reception PDF squille never showed the supplier ref of the order (#41096) FIX: The reception PDF squille never showed the tracking link (#41095) FIX: the reminder email of an expired subscription ignored the language of the member (#41232) FIX: The replenishment always counted the draft supplier orders, whatever the checkbox (#41190) FIX: The "Send by email" mass action on a draft proposal or order showed an untranslated error key (#41202) FIX: The supplier ref column of the invoices of a credit transfer order was always empty (#41184) FIX: The thumbnails of an AVIF image were generated at the lowest quality (#41193) FIX: Third-party autocomplete broken by a LIMIT placed before ORDER BY (#40278) FIX: Ticket::update() overwrites timing with type/category/severity_code instead of trimming them (#40355) FIX: Town, Zip and State search filters of the contract list (#41052) FIX: Translate::load() keeps $forceloadifalreadynotfound in fallback calls (#40747) FIX: trim() on a null value when importing an empty cell from a xlsx file (#40391) FIX: Typo in incoterm location parameter (#40297) FIX: Undefined array key "imagebackground" in admin/ihm.php (#40160) FIX: Undefined array key warning on task extrafield search filters in project's task tab (#40616) FIX: Undefined array key warnings on advtargetemailing.php's filter form (#40513) FIX: Undefined property stdClass::$fk_user_assign on ticket assignment (#40691) FIX: Undefined variables $customer and $charge on each Stripe online payment (#41164) FIX: Undefined variable warnings on the public event booth/conference suggestion forms (#40604) FIX: Unit price incl. tax shows price excl. tax on option lines (#40511) FIX: Update AGENTS.md PR description limit and security convention (#40334) FIX: user creation ignores backtopage (#40493) FIX: users with the unalterable log read right get "access forbidden" on the file check pages (#40795) FIX: Warning on task edit form when the project has no third party (#40498) FIX: warnings on the pages of a direct debit or credit transfer order not found (#41125) FIX: with prices by quantity and by level, the price of the level of the customer was ignored when no quantity price is selected (#41196) FIX: Wrong page number on setPage() when a subtotals line starts below the break margin (#40543) FIX: zstd backup dump is written uncompressed despite the .zst extension (#40336) FIX: zstd compression always results in a false positive error message (#40315) FIX: type is forced by MEMBER_NEWFORM_FORCETYPE, the type posted is already ignored