Roadmap and Release 22.0.0

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search

Version: 22.0 (List of other versions on page Category:RoadMap)
Release date: 30/07/2025
Main focus (What developers has mainly worked on, but not only, so for full list of changes see the detailed ChangeLog):
Reducing duplication of code for category management, Recurring events, AI features, Kanban by group


Detailed Changelog:

For users:
----------
NEW: Module WebPortal is moved as stable
NEW: Subtotal module (#33502) - development
NEW: shipment kits with dispatcher v2 (#33750)
NEW: ticket : display files linked to actioncomm (#32325)
NEW: Support of monthly or weekly recurring events
NEW: AI feature to autofill extrafields
NEW: Introduce the view "Kanban Grouped By" opportunity status in projects
NEW: #32706 - Treasury accountancy (#33701)
NEW: #33506 Add a constant to apply a ratio to resize images in ODT templates (#33543)
NEW: Accountancy - Add centralized account (SQL & migration part) (#33384) (#33577)
NEW: Accountancy - Add filter on chart of accounts (#33656)
NEW: Accountancy - Centralized account are highlighted (#33648)
NEW: Accountancy - Define fiscal year by default
NEW: Accountancy - Show subledger account in thirdparty
NEW: Add a delay to be sure that any Stripe action from webhooks are executed after interactive actions
NEW: Add also start date fill buttons for salary clone
NEW: Add a test mode for AI setup
NEW: Add DateMaxPayment option on selectDate (#33601)
NEW: Add/enhance the popup for preview of icons
NEW: Add field usenewcurrencyrate
NEW: Add globale MAIN_DISABLE_PDF_AUTO_DOWNLOAD_AFTER_CONVERT_FROM_ODT to disable the auto download after auto convert odt to pdf (#33511)
NEW: add home box mrp (#33549)
NEW: Add invoice tags
NEW: Add ip into table of website accounts
NEW: Add knowledgebase info on box_dolibarr_state_board.php (#33960)
NEW: Add link to create shipment on picto
NEW: Add link to picto help page on module builder
NEW: Add management of date begin/end and discount for a customer price (Code + SQL)
NEW: add new permissions to read supplier prices (#33598)
NEW: Add option MAIN_ALLOW_DOUBLE_COLON_IN_DOL_EVAL
NEW: Add option MAIN_MAIL_EMAIL_FROM_PASSWORDRESET
NEW: Add options on intervention clone popup to clone or not contact and notes
NEW: Add options PDF_XXX_SHOW_PRICE_INCL_TAX into PDF setup
NEW: add option to not prefill qty line at shipment creation
NEW: Add page list for categories.
NEW: Add parameters for the hook selectProductsListWhere (#33718)
NEW: add phone_mobile to export of thirdparty (#33893)
NEW: Add public page for donation module (#33978)
NEW: add setasnumber for forms (#33845)
NEW: Add Shared links on links in attachments (#33459)
NEW: Add tags / category on supplier invoice (#33490)
NEW: Add the possibility to merge PDF from the product list (#33723)
NEW: allow stock management by product (#32326)
NEW: attendee status "Showed up" - to ensure that only one attendee gets in on a ticket (#33987)
NEW: auto-detect country from code in creation	(follow-up)
NEW: autofix mysqldump command for backup when path is wrong
NEW: Better presentation of list of user approver.
NEW: Can define a different PDF for concatenation for proposal, order and invoices
NEW: Can filter on field "Refuse emailing" in list of thirdparties.
NEW: Can filter on public/private notes in list sale orders thirdparties
NEW: Can filter on string with spaces if search criteria is inside quote.
NEW: Can force the tooltip before the text on column title.
NEW: Can link member subscription/contribution with proposal, order and invoice (#33647)
NEW: Can set a specific permission on an extrafields
NEW: cash control: add hidden setting to show total including taxed in detail by vat rate
NEW: Closing task
NEW: CONSTANT: ORDER_TYPE_CONTACT_DEFAULT
NEW: const PREVIEW_PICTO_ON_LEFT_OF_NAME for icon to preview documents (#33519)
NEW: Dictionary - Manage countries of SEPA Area
NEW: Dolibarr#22848 Add order tags
NEW: Filter on date creation/date modification in invoice list
NEW: fix #33456 (#33458)
NEW: force Extrafields values when constants THIRDPARTY_PROPAGATE_EXTRAFIELDS_TO_(ORDER|INVOICE) are set (#33954)
NEW: input reason for customer invoice (#33599)
NEW: Invoice - Add constant to prevent modification of an invoice (#33455)
NEW: Loan - Add total on each payment to see the global amount off the reimbursement
NEW: login page: button to toggle the visibility of the password (#33698)
NEW: Look and feel - Checkboxes and radio buttons are larger
NEW: Allow user to define the number of email sent by batch directly from mailing config page (#32750)
NEW: Mass action delete on donation list
NEW: Merge surface and volume in one line on product card.
NEW: Module external website is deprecated. Replaced with menu editor.
NEW: Move right from advance to normal for thirdparty information payment page (#33885)d
NEW: delays conf for supplier proposals (#33800)
NEW: new option in invoice setup to limit options of deposit invoice (#33468)
NEW: No auto open keyboard on smartphone when opening list of columns
NEW: On list, see complete ref customer/supplier with constant MAIN_SHOW_GLOBAL_REF_CUSTOMER_SUPPLIER (#33373)
NEW: Option MAIN_RESTRICTHTML_ONLY_VALID_HTML and MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY are on by default
NEW: Option MAIN_SECURITY_MAXFILESIZE_DOWNLOADED become official
NEW: Order - Add drag & drop file (#33848)
NEW: reopen for interventions API (#33982)
NEW: Rounding unit price - line discount before applying quantity - option MAIN_APPLY_DISCOUNT_ON_UNIT_PRICE_THEN_ROUND_BEFORE_MULTIPLICATION_BY_QTY (#33690)
NEW: shipment with product in cache
NEW: shipment with warehouse in cache
NEW: Show code of stripe hooks supported in setup page
NEW: Show country flag in list of chart of account
NEW: Show IP of previous connection and date of last password change in the "Connection" widget.
NEW: Some trans keys to prepare a new website template (#33886)
NEW: SUBMIT_FOR_ALL_MARK_RESPAWN (#32101)
NEW: Supplier orders - Add tags/categories (#33386)
NEW: takepos cash control: add vat taxless total
NEW: The closing reason of invoice appear on tooltip of invoice status
NEW: The link "In accountancy" is now clickable to reach bookkeeping
NEW: The public media browser is now a stable feature
NEW: The signature is on the good page even if another module add pages
NEW: Toggle Display of Supplier Invoices and Credit Notes on Payment Page (#33856)
NEW: Try to set the tooltip as ajax call by default.
NEW: Update of currency supports also apilayer (not only currencylayer)
NEW: use specific landing page to home menu entry
NEW: Use the packaging feature to round the quantities to some given multiples for the sale
NEW: Use the PhpZipProxy handler to generate ODT files (avoid corrupted ODT with recent version of Libre Office).
NEW: vcard (vcf) download for third party (#31957)
NEW: Web pages of websites are protected by the WAF
NEW: Add constant to show stock in products combo
NEW: Can edit the module_source and pos_source field.
NEW: Accountancy - Add actions on entries (Cloning, assigning, returning)
NEW: Add conf PDF_HIDE_LINKED_OBJECT_IN_PUBLIC_NOTE to hide linked object in public note of pdf.
NEW: Add MULTICURRENCY_SHOW_ALSO_MAIN_CURRENCY_ON_PDF for legal requirement that need both currencies on PDF
NEW: Add note public and private on order export
NEW: Finish dev for API_ENABLE_COUNT_CALLS (count of API use is visible on user API key field)

For developers:
----------
NEW: Add an API endpoint to get properties of a single line of an order (#34045)
NEW: add const to not include default CSS in top_htmlhead with DISABLE_CSS_DEFAULT_THEME
NEW: add const to not include default lib_head.js in top_htmlhead with DISABLE_LIB_HEAD_JS
NEW: add const to not include JQuery UI in top_htmlhead DISABLE_JQUERY_UI
NEW: add create category project link via api (#34016)
NEW: add creditnotelist var in fetch
NEW: add hook 'addMoreInformationsBlock'
NEW: Add hook on API call (#33501)
NEW: add hooks to modify select_produits_fournisseurs_list sql query
NEW: Adding API endpoints for event attendee handling (#33932)
NEW: Add internal contact of proposal, order and invoice on api call (#34009)
NEW: Add option to create simple shipment of non origin. SQL part (#34071)
NEW: add settodraft to the supplier invoice API (#34064)
NEW: Can set isMandatory property in generic setup framework
NEW: endpoints DELETE event atteendee by ID or REF (#33986)
NEW: endpoints GET event attendee by ID or REF (#33984)
NEW: endpoints PUT (update) event atteendee by ID or REF (#33985)
NEW: hidden conf for api contrat putLine endpoint to only return the line (#33809)
NEW: introduce method dolSetCookie
NEW: Invoice - Document - Add hook on action
NEW: Pagination data for intervention APi
NEW: Add experimental Website Template for Association
NEW: expense report API deny

WARNING:
--------

The following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
* The use of GETPOST function is not allowed inside extrafields conditions or any strings that contains dynamic code evaluated with dol_eval().
* The deprecated variable $trigger_name (duplicate of variable $triggersendname) has been removed. You must use $triggersendname everywhere now.
* The behavior of constant STOCK_ALLOW_NEGATIVE_TRANSFER has been reversed. It has been renamed into STOCK_DISALLOW_NEGATIVE_TRANSFER.
* Method Categoie->getObjectsInCateg() is deprecated. Try by using instead: getListForItem() or containing().
* Global variables $bctag, $conffiletoshowshort, $type2label has been removed.
* Deprecatedproperty ->fk_departement that was replaced by ->state_id has been completely removed.
* If you setup the API to update multicurrency rate from internet, you may need to re-enter your API key (so API key will be crypted in database).
* The signature of API get for intervention has been modified to match other get api on other objects.
* The directory /build has been moved into /dev/build.
* The API to create a website account /idthirdparty/accounts/site is now POST (instead of PUT) and to update is PUT (instead of PATCH).
* Debug v22 - Invert option TICKET_DO_NOT_INCLUDE_LINK_TO_CUSTOMER (that add link to backoffice interface link when it should remain private)
into TICKET_INCLUDE_LINK_TO_PUBLIC_INTERFACE_IN_MESSAGE. It also avoid often emails marked as SPAM due to suspicious link.
* The property ->price_ht of an object line that was a duplicate of ->subprice has been standardized. Use ->subprice everywhere now.