dolibarr The first beta version of future #Dolibarr #ERP and #CRM 3.5.0 is now available.

You can find it into the download area of dolibarr.org portal (subdirectory Beta and prereleases). Please try it and report all found bugs on dolibarr.org forum or onto Doliforge bug tracker.

The branch was also created into GitHub. We are a little bit late for starting this beta (this is a remind of Dolibarr roadmap) but we should be ready for planned date of release. Reason is that stability and bug rate of this beta was never so good when starting a beta. Our Integration Continue new platform (@travis-ci) help us for this, but cleaning and mutualizing code was the main reason.

Note of the Dolibarr foundation president:
Version 3.5 will be a very good enhancement and a big step for Dolibarr project. It comes with long awaiting features. Also, even if a dedicated branch was created for 3.5, please do not work on new feature. Dolibarr project need testers and above all need people that push patch and fixes (we already have tons of new features, to add for 3.6, but we can't. We must keep balance between new features and stability and for the moment we are missing developers to help to find and fix bugs. So if you want to help us efficiently, do not push new feature into develop branch, but instead test this beta and push bug fixes into 3.5 branch.

This is full changes of this version compared to 3.4.0:

***** ChangeLog for 3.5 compared to 3.4.* *****
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: [ task #926 ] Add extrafield feature on order lines.
- New: [ task #927 ] Add extrafield feature on Proposal lines.
- New: [ task #928 ] Add extrafield feature on invoice lines.
- 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 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: 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). 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 'td' 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