Roadmap and Release 3.5.0

Detailed Changelog: 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
 * ChangeLog for 3.5 compared to 3.4.* *****

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 ' ' 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.