dolibarrThe first stable version of branch 3.5 of Dolibarr ERP & CRM is available.

This version 3.5.0 is a major release with a lot of new features for both users and developers. You can find it on www.dolibarr.org into the download area of dolibarr.org portal (subdirectory Stable versions).

This is full changes of this version compared to 3.4.0:

For users:
- New: Add hidden option BANK_DISABLE_DIRECT_INPUT.
- New: More options to select status of users into select user list.
- New: [ task #862 ] Add ODT on shipments.
- New: [ task #149 ] Add # of notes and attachments in tabs.
- New: Can edit customer ref at any time.
- New: [ task #877 ] Reorganize menus.
- New: [ task #858 ] Holiday module: note on manual holiday assignation.
- New: [ task #892 ] Add hidden option in thirdparty customer/supplier module to hide non active
  companies in select_company method.
- New: [ task #531 ] Add a workload field on tasks.
- New: Add graph of bank account input/output into input-output report page.
- New: Add script export-bank-receipts.php
- New: Add option "filter=bank" onto script rebuild_merge_pdf.php to merge PDF that
  has one payment on a specific bank account.*
- New: [ task #901 ] Add Extrafield on Fiche Inter.
- New: Show process id in all command line scripts.
- New: Module mailman can subscribe/unsubscribe to ML according to categories or type of member.
- New: Add object_hour and object_date_rfc as substitution tag for open document generation.
- New: Add options to send an email when paypal or paybox payment is done.
- New: Clone product/service composition.
- New: Add option ADHERENT_LOGIN_NOT_REQUIRED.
- New: Add a cron module to define scheduled jobs.
- New: Add new graphical boxes (customer and supplier invoices and orders per month).
- New: [ task #286 ] Enhance rounding function of prices to allow round of sum instead of sum of rounding.
- New: Can add an event automatically when a project is create. 
- New: Add option MAIN_GENERATE_DOCUMENT_WITH_PICTURE.
- New: Add option excludethirdparties and onlythirdparties into merge pdf scripts.
- New: [ task #925 ] Add ODT document generation for Tasks in project module.
- New: [ task #924 ] Add numbering rule on task.
- New: [ task #165 ] Add import/export of multiprices.
- New: Add Maghreb regions and departments.
- New: A more responsive design for statistic box of home page.
- New: [ task #1005 ] Adapting to Spanish legislation bill numbering
- New: [ task #1011 ] Now supplier order and invoice deal with payment terms and mode.
- New: [ task #1014 ] Add option to recursively add parent category.
- New: [ task #1016 ] Can define a specific numbering for deposits.
- New: [ task #918 ] Stock replenishment.
- New : Add pdf link into supplier invoice list and supplier order list.
- New : Genrate auto the PDF for supplier invoice.
- New : Add category into filter webservice thirdparty method getListOfThirdParties.
- New : Allow to define margin or mark rate during quoting, ordering, invoicing.
- New : User permissions on margin module.
- New : Add ref supplier into muscadet model/
- New : Add ability to copy contact address to clipboard.
- New: Can use tag {mm} before {yy} even when there is a reset into numbering masks.
- New: [ task #1060 ] Register fields localtax(1|2)_type into details tables.
- New: [ task #923 ] Localtax support for ODT templates. 
- New: [ task #90 ] Barcode search.
- New: Add hidden option MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS.
- New: Can send an email from thirdparty card.
- New: Can cancel holidays that were previously validated.
- New: Can choose contact on event (action com) creation, and filtered by thirdparty.
- New: Add hidden option MAIN_FORCE_DEFAULT_STATE_ID.
- New: Add page to make mass stock movement.
- New: Add field oustanding limit into thirdparty properties.
- New: Can enter a vat payment of zero.
- New: Add path to installed dir of external modules + Name and web of module provider.
- New: Add option to use a specific mask for uploaded filename.
- New: Can attach external links to objects as we can attach files.
- Qual: Implement same rule for return value of all command line scripts (0 when success, <>0 if error).
- Fix: [ bug #992 ] Proforma invoices don't have a separated numeric count.
- Fix: [ bug #1022 ] correct margin calculation for credit notes.
- Fix: Better management of using ajax for upload form (to solve problem when enabling
ajax jquery multifile upload in some cases). - Fix: Lost stats filters into year selection. - Fix: Some config data are shared between suppliers orders and suppliers invoices New experimental module: - New: [ task #157 ] Add a Skype button (adherents / third parties / contacts) For translators: - Qual: Normalized sort order of all languages files with English reference files. - New: Add language code files for South Africa, France new Caledonia, Vietnam. - New: Translate string for email to change password. For developers: - New: DolGraph can build graph with three lines. - New: DolGraph accept a parameter to cache data of graph getNbByMonthWithPrevYear. - New: Can enable tuning info with option MAIN_SHOW_TUNING_INFO. - New: Show version of client lib used by mysql drivers. - New: Add function to get content of an url (using all dolibarr setup like timeout, proxies...) - New: Upgrade lib of TCPDF to 6.0 - New: Upgrade jquery flot library to 0.8.1 - New: Add property "hidden" into module descriptors to allow to hide a module according to some dynamic conditions. - New: Add option MAIN_MOTD_SETUPPAGE to add a content onto setup page. Also content for MAIN_MOTD_SETUPPAGE, MAIN_MOTD_SETUPPAGE, MAIN_HOME now accept "|langfile" into translation key to use a specific language file. - New: Make some changes to allow usage of several alternative $dolibarr_main_url_root variables. - Qual: All nowrap properties are now using CSS class nowrap. - Qual: Move hard coded code of module mailmanspip into trigger. - New: Into POST forms, if you can add a parameter DOL_AUTOSET_COOKIE with a value that is list name, separated by a coma, of other POST parameters, Dolibarr will automatically save this parameters into user cookies. - New: Add hook addHomeSetup. - New: Add trigger CATEGORY_LINK and CATEGORY_UNLINK. - New: A trigger can return an array of error strings instead of one error string. - New: Add method to use a dictionary as a combo box. - New: Add update method for web service product. - Fix also several bugs with old code. WARNING: Following change may create regression for some external modules, but was necessary to
make Dolibarr better: 1) We started to clean hooks code. If your hook want to modify value of $actions, it's role of your hook to modify it. Dolibarr hook code will no more decide this for your module. If your action class for hook was returning a string or an array, instead your module must set $actionclassinstance->results (to return array) or $actionclassinstance->resprints (to return string) to return same thing. The return value must be replaced by a "return 0"; Goal is to fix old compatibility code that does not match hook specifications: http://wiki.dolibarr.org/index.php/Hooks_system 2) If you implemented hook printTopRightMenu, check that output does not include '' tags any more. All content added must be tagged by a '<div>' with css class="login_block_elem" 3) Some methods object->addline used a first parameter that was object->id, some not. Of course this was not a good practice, since object->id is already known, there is no need to provide id as parameter. All methods addline in this case were modified to remove this parameter. 4) Method ->classer_facturee() is deprecated. It must be replace with ->classifyBilled(). 5) Property ->tel on objects is now ->phone 6) Trigger LINEPROPAL_MODIFY is renamed into LINEPROPAL_UPDATE and Trigger CONTRACT_LINE_DELETE rnamed into LINECONTRACT_DELETE to match naming rules.