Dolibarr 17.0.0
20 March 2023
Dolibarr version 17.0.0 is now available (major release).
Upgrading to Dolibarr 17.0.0
Dolibarr 17.0.0 can be upgraded to (or installed) using any of Installatron's products. Use Installatron's optional Automatic Update feature to automatically apply Dolibarr updates as new versions are released, or use Installatron's Clone feature to duplicate an existing Dolibarr install to test the 17.0.0 upgrade prior to applying it live. Get started managing your Dolibarr installations with Installatron
What's New in Dolibarr 17.0.0
For users
- Minimal PHP version is now PHP 7.0 instead of PHP 5.6
- #21780 Add pid field to Cronjob class and store PID on job execution
- #20650 can move the checkbox column on left (experimental option MAIN_CHECKBOX_LEFT_COLUMN)
- #21000 Added columns 'alias_name' on project, supplier invoice, supplier order, supplier proposals and task list
- #21395 Added option for dark theme mode in display - color and theme
- #21397 added option to auto define barcode numbers for third-parties in barcode module setup
- #21399
- #21442 Enhancement of module builder init
- #21654 add bank account number used on invoices for debit
- #22048 Added notes to productlot module
- #22298 Bank - Add salaries & vat in the tab of planned entries of a bank account
- #22328
- #22424
- #22500 member module set up made easier
- #22527 projects and thirdparties can be viewed as conversation ("Message" view), like events/agenda.
- #22546 can now set user supervisors using mass action in htdocs/user
- #22594 can chose if VAT ID is unique or not for third parties
- #22622 all partnerships displayed on tab partnership of a thirdparty and member
- #22676 massaction for updating product prices
- #22735 Massaction to assign users on projects
- #4482 adding js to hide/show advanced option on the export data page
- Accountancy - Add a graphic option to enable lettering function - FPC21
- Accountancy - Add a way to clean some words when you generate thirdparty accounting account
- Accountancy - Added an option during export to export or not the lettering FPC21
- Accountancy - Manage supplier deposit with specific account
- Accountancy - Model Digitaria - Add a way to clean some words when you generate thirdparty accounting account FPC22
- Add a button "Test collect" in email collector
- Add a constant to disallow modification of the product reference.
- Add a method doAutoRenewContracts that can be used as a cron task.
- Add " as enclosure by default for CSV export. Keep removing CR/LF.
- add attached file in presend email form of thirdparty card
- Add a way to enter LICENSE file content in property of website
- Add badge in admin extrafields setup
- add constant PROPAL_BYPASS_VALIDATED_STATUS
- Add date event (!= date project) and location on event organization
- Add employment anniversary in birthday box
- Add extrafield type "IP" to store IP addresses
- Add fail2ban rules examples to limit access to /public pages
- Add filter "Product subject to lot/Serial" in stock per lot/serial
- Add hidden option MAIN_EMAIL_SUPPORT_ACK to restore Email ack checkbox (feature abandonned by mailers)
- Add IMAP port setting on email collector module
- Adding JAPAN Chart-of-Account and regions/departments
- Adding NIF verification for Algeria
- Add link to create an element from the category page
- add margin infos to takepos invoice lines
- Add max size send for "backup and link to mail" option
- Add method httponly_accessforbidden()
- Add more advices into the Setup security page
- Add new global variable for keeping the previous signature information on proposal (case of reopening a proposal)
- Add objectLink on shipment
- Add option --force on CLI cron_run_jobs.php
- Add option "Show price on the generated documents for receptions"
- Add performance index (name for company and contact) and llx_bank_url(url_id)
- Add picto property on sub-module for password generation
- add redirect on action confirm addconsumedline and addproduceline
- Add a new advanced permission "read price"
- Add substitution key __SENDEREMAIL_SIGNATURE__
- Add the referrer-policy to "same-origin" by default on all public pages.
- Add the SMTP header References on ticket email created by email
- Add the thirdparty column to the time list (projet/tasks/time.php)
- Add trigger to record the event of sending an email from a project #20912
- Allow download link option in module configuration (propal,invoice,supplier proposal, order)
- Bulk action to remove a category in list/search website pages
- Can copy/paste images into emails sent.
- Can edit label of an emailing even once sent
- Can edit property css, cssview, csslist on extrafields
- Can enter the unit price including the vat when adding new product lines on invoices, orders, proposals, ...
- Can invoice task time per different services
- Can join several files by default on email form
- Can send an email on scheduled job error
- Can set a commercial discount by entering amount including VAT
- Can set a monthly frequency (or multiple) in cron tasks.
- Can set start and end dates and comment on button "Activate all services"
- Can sort on preselected best supplier price
- Can use products categories to make inventory
- Change filter type on tickets list into a multiselect combo
- conf TIMESPENT_ALWAYS_UPDATE_THM, when it's on we always check current thm of user to update it in task time line
- constant PROPAL_NEW_AS_SIGNED
- show date delivery planned on orders linked to company and product
- Default doc template of contracts is not mandatory
- Default values in extrafields are no more limited to 255 char.
- display currency in takepos menu
- Enable online signature for interventions
- extrafield price with currency
- filter on reception dates (from / to) in cheque paiement card
- Members: default_lang for members
- Members: Table of membership types
- Members: add free membership amounts at the membership type level
- TakePOS: Header Scroll in TakePOS
- TakePOS: add price to product box in TakePOS
- TakePOS: add setup parameters, can setup terminal name
- TakePOS: support of Stripe Terminal with TakePOS
- TakePOS: Receipt preview in TakePOS setup
- TakePOS: different product list on smartphone
- Website: can delete a whole website if disabled
- Website: can remove a website template
- Website: can set header "Strict-Transport-Security" in web sites.
- Website: can switch status of website and page from the website toolbar
- Website: Templates of websites are now directories and not zip into core repo
- Website: add 4 other templates in website module
- Website: Add counters for public access of pages on a website
- If we select another view list mode, we keep it
- Init module bookcal
- Encrypt all sensitive constants in llx_const using dolEncrypt/dolDecrypt
- Invoice - Add french mention on pdf when vat debit option is on
- invoice export : add accounting affectation
- label on products categories filter
- The link "add to bookmark" is always on top in the bookmark popup
- MAIN_SEARCH_CATEGORY_PRODUCT_ON_LISTS const to show category customer filter
- Make module WebservicesClient deprecated. Use module WebHook instead.
- manage no email with thirdparties (better for GDPR)
- Manage Position (Rank) on Contract Lines
- Manage VAT on all lines on purchases cycle
- Page to show virtual stock at a future date
- On a bank reconciled line, we can modify the bank receipt
- On a form to send an email, we show all emails of all contacts of object
- Option PRODUCTBATCH_SHOW_WAREHOUSE_ON_SHIPMENT showing wh on PDF
- Option PRODUIT_DESC_IN_FORM accept (desktop only or +smartphone)
- Page for mass stock transfer can be used with no source stock
- parent company column and filter in invoice and order list
- Add "Show Sales rep" option for PDF
- Picto for shared link is clickable
- possibility to select scopes with checkbox for Oauth tokens
- private and public note on user, thirdparty and contact list
- product categories filter on inventory list
- Product supplier price: autofill default supplier VAT
- Project - author field become an available column on lists
- Reception - Add a from/to on search on date field
- Start a simple support of recurrent events on agenda
- Resize parent company column in order list
- Saved token of OAUTH module are now encrypted into llx_oauth_token
- Save one click to select on delivery ack, on emails.
- scheduled job to send unpaid invoice reminder can now use the cc and bcc from email template
- set thirdparty type with company modify trigger
- Show also scheduled task never finished in scheduled task widget
- show badge with number of extrafields in setup
- show category tree in sellist and chkbxlst for common object
- Show picto and color into combo for selection of tags
- show product label on inventory
- show sell-by and eat-by dates only if not empty
- show SellBy/EatBy dates for each batch product in shipment card
- Can skip accept/refuse steps for proposals (option PROPAL_SKIP_ACCEPT_REFUSE)
- experimental SMTP using PhpImap allowing OAuth2 authentication (need to add option MAIN_IMAP_USE_PHPIMAP)
- can substitue project title in mail template
- Supplier order list - Add column private and public note
- The purge of files can purge only if older than a number of seconds
- Update ActionComm type_code on email message ticket
- VAT - Admin - Add information on deadline day for submission of VAT declaration
- expand/collapse permissions on user permission page
- Show delivery mode on PDF for proposals
- Add the target to select attendees of event for emailings
- Can set background style with MAIN_LOGIN_BACKGROUND_STYLE
- Modules: Experimental module Asset
For developers or integrators
- ModuleBuilder can generate code for a class from an existing SQL table
- #22370 Modulebuilder supports 'alwayseditable' (like extrafields)
- #20912 Add trigger to record the event of sending an email from a project
- #21750 Added "Get lines and Post lines from BOM" at the REST Service
- Removed completely the need for the library adodbtime
- hook on agenda pages
- hook to complete payment in TakePOS
- hook "changeHelpURL" to modify target of the help button
- hook formConfirm on action comm card
- hook to modify supplier product html select
- Add new hook for show virtual stock details on product stock card
- Add new hooks for actioncomm
- conf->global->SYSLOG_FILE_ONEPERSESSION accept a string
- translation for contact type API, setup/ticket API, shipping method API
- All ajax pages have now a header build with top_httphead()
- support multilang in Civilities API
- Add API for the partnership module
- Add "Get lines and Post lines from BOM" in the API
- Replace property fk_categories_product with categories_product in inventory class
- Rewrite of SQL request. Removed the join on category table (for filter on category), replaced with a EXISTS/NOT
- Add oldcopy to Ticket so triggers intercepting TICKET_MODIFY have access to old values of the updated properties
- #19680 Add option PRODUCT_ALLOW_EXTERNAL_DOWNLOAD to automatically have uploaded files shared publicly by a link
- Add option FICHINTER_ALLOW_EXTERNAL_DOWNLOAD
WARNING - Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
- Minimal PHP version is now PHP 7.0 instead of PHP 5.6
- The signature of method getNomUrl() of class ProductFournisseur has been modified to match the signature of method Product->getNomUrl()
- Trigger ORDER_SUPPLIER_DISPATCH is removed, use ORDER_SUPPLIER_RECEIVE and/or LINEORDER_SUPPLIER_DISPATCH instead.
- All functions fetch_all() have been set to deprecated for naming consitency, use fetchAll() instead.
- Code standardization: '$user->rights->propale' is now '$user->rights->propal' everywhere.
- Deprecated method set_billed() on shipment and reception class has been removed. Use setBilled() instead.
- Tables llx_prelevement_facture and llx_prelevement_facture_demande have been renamed into llx_prelevement and llx_prelevement_demande.
- Rename MAIN_LIST_ALLOW_NOTES into MAIN_LIST_HIDE_NOTES and rename MAIN_LIST_ALLOW_PRIVATE_NOTES into MAIN_LIST_HIDE_PRIVATE_NOTES
- Rename the substitution for "project label" instead of "project title" in substitution variables
- You must use "$objectoffield" to manipulate the current object inside the formulare of computed custom extrafields instead of $obj/$object.
- Making a global search is sending the parameter using always the name search_all (instead of sometimes sall and search_all)
- The property $url_last_version must be public if defined into module descriptor files;