diff --git a/.travis.yml b/.travis.yml
index 548a8c5338024c2ad322c5c483723c21e4e77f93..57781d47e44cbc631fcb540ec88765f99e49b706 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -53,12 +53,14 @@ before_script:
  - sh -c "if [ '$PHPV' = '5.3' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
  - sh -c "if [ '$PHPV' = '5.4' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
  - cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
+ - echo Mysql version
+ - mysql --version
  - echo Init database
  - sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS myapp_test;' -U postgres; fi"
  - sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'CREATE DATABASE myapp_test;' -U postgres; fi"
  - sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'DROP DATABASE IF EXISTS myapp_test;'; fi"
  - sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'CREATE DATABASE IF NOT EXISTS myapp_test;'; fi"
- - sh -c "if [ '$DB' = 'mysql' ]; then mysql -D myapp_test < $(pwd)/dev/initdata/mysqldump_dolibarr_3.4.0.sql; fi"
+ - sh -c "if [ '$DB' = 'mysql' ]; then mysql -D myapp_test < $(pwd)/dev/initdata/mysqldump_dolibarr_3.5.0.sql; fi"
  - echo Create config file htdocs/conf/conf.php
  - echo '<?php ' > htdocs/conf/conf.php
  - sh -c "if [ '$DB' = 'pgsql' ]; then echo '$'dolibarr_main_db_type=\'pgsql\'';' >> htdocs/conf/conf.php; fi"
@@ -88,12 +90,12 @@ before_script:
 script: 
  - cd htdocs/install
  - date
- - php upgrade.php 3.4.0 3.5.0 > upgrade.log
- - php upgrade2.php 3.4.0 3.5.0 > upgrade2.log
+# - php upgrade.php 3.4.0 3.5.0 > upgrade.log
+# - php upgrade2.php 3.4.0 3.5.0 > upgrade2.log
  - php upgrade.php 3.5.0 3.6.0 >> upgrade.log
  - php upgrade2.php 3.5.0 3.6.0 >> upgrade2.log
  - php upgrade.php 3.6.0 3.7.0 >> upgrade.log
-# - cat upgrade.log
+# - cat upgrade360370.log
  - php upgrade2.php 3.6.0 3.7.0 >> upgrade2.log
 # - cat upgrade2.log
  - cd ../..
diff --git a/COPYRIGHT b/COPYRIGHT
index c0d8389369c1b0a97b92fb5d910dd48bc7f8237c..fd54e10f354dc235a7fcc8c0f3c625e7bcdd1364 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -9,41 +9,41 @@ More information: http://www.gnu.org/licenses/gpl-3.0.txt
 
 Dolibarr uses some external libraries released under different licenses. This is compatibility summary:
 
-Component             Version       License                     GPL Compatible  Usage
+Component              Version       License                     GPL Compatible  Usage
 -------------------------------------------------------------------------------------
 PHP libraries:
-AdoDb-Date            0.32          Modified BSD License        Yes             Date convertion (not into rpm package)
-CKEditor              4.3.3         LGPL-2.1+                   Yes             Editor WYSIWYG
-FPDI                  1.4.2         Apache Software License 2.0 Yes             PDF templates management
-FPDF_TPL              1.2           Apache Software License 2.0 Yes             PDF templates management
-GeoIP                 1.4           LGPL-2.1+                   Yes             Sample code to make geoip convert (not into deb package)
-NuSoap                0.9.5         LGPL 2.1+                   Yes             Library to develop SOAP Web services (not into rpm and deb package)
-odtPHP                1.0.1         GPL-2+  b                   Yes             Library to build/edit ODT files
-PHPExcel              1.7.8         LGPL-2.1+                   Yes             Read/Write XLS files, read ODS files
-PHPPrintIPP           1.3           GPL-2+                      Yes             Library to send print IPP requests
-TCPDF                 6.0.093       LGPL-3+                     Yes             PDF generation
+AdoDb-Date             0.32          Modified BSD License        Yes             Date convertion (not into rpm package)
+CKEditor               4.3.3         LGPL-2.1+                   Yes             Editor WYSIWYG
+FPDI                   1.4.2         Apache Software License 2.0 Yes             PDF templates management
+FPDF_TPL               1.2           Apache Software License 2.0 Yes             PDF templates management
+GeoIP                  1.4           LGPL-2.1+                   Yes             Sample code to make geoip convert (not into deb package)
+NuSoap                 0.9.5         LGPL 2.1+                   Yes             Library to develop SOAP Web services (not into rpm and deb package)
+odtPHP                 1.0.1         GPL-2+  b                   Yes             Library to build/edit ODT files
+PHPExcel               1.7.8         LGPL-2.1+                   Yes             Read/Write XLS files, read ODS files
+PHPPrintIPP            1.3           GPL-2+                      Yes             Library to send print IPP requests
+TCPDF                  6.0.093       LGPL-3+                     Yes             PDF generation
 
 JS libraries:
-jQuery                1.8.2         MIT License                 Yes             JS library
-jQuery UI             1.9.1         GPL and MIT License         Yes             JS library plugin UI
-jQuery UI Multiselect ?             GPL and MIT License         Yes             JS library plugin for sexier multiselect
-jQuery blockUI        2.43          GPL and MIT License         Yes             JS library plugin blockUI (to use ajax popups)
-jQuery Colorpicker    1.1           MIT License                 Yes             JS library for color picker for a defined list of colors
-jQuery DataTables     1.9.4         BSD                         Yes             JS library for tables output
-jQuery FileUpload     5.0.3         GPL and MIT License         Yes             JS library to upload files
-jQuery Flot           0.7           MIT License                 Yes             JS library to build graph
-jQuery JCrop          0.9.8         GPL and MIT License         Yes             JS library plugin Crop (to crop images)
-jQuery Jeditable      1.7.1         GPL and MIT License         Yes             JS library plugin jeditable (to edit in place)
-jQuery jNotify        1.1.00        Apache Software License 2.0 Yes             JS library plugin jNotify (to use ajax popups)
-jQuery jPicker        1.1.6         GPL and MIT License         Yes             JS library for color picker with not defined list of colors
-jQuery jqueryFileTree 1.0.1         GPL and MIT License         Yes             JS library for color picker with not defined list of colors
-jQuery jquerytreeview 1.4.1         MIT License                 Yes             JS library for color picker with not defined list of colors
-jQuery Layout         1.3.0rc30.74  GPL and MIT License         Yes             JS library plugin Layout (RC-29.15)
-jQuery Mobile         1.3.0         GPL and MIT License         Yes             JS library for smartphone (not used)
-jQuery TableDnD       0.6           GPL and MIT License         Yes             JS library plugin TableDnD (to reorder table rows)
-jQuery Timepicker     1.1.0         GPL and MIT License         Yes             JS library Timepicker addon for Datepicker
-jQuery Tiptip         1.3           GPL and MIT License         Yes             JS library for tooltips
-jsGantt               1.2           BSD License                 Yes             JS library (to build Gantt reports)
+jQuery                 1.8.2         MIT License                 Yes             JS library
+jQuery UI              1.9.1         GPL and MIT License         Yes             JS library plugin UI
+jQuery multiple-select 1.1.0        MIT License                 Yes             JS library plugin for sexier multiselect
+jQuery blockUI         2.43          GPL and MIT License         Yes             JS library plugin blockUI (to use ajax popups)
+jQuery Colorpicker     1.1           MIT License                 Yes             JS library for color picker for a defined list of colors
+jQuery DataTables      1.9.4         BSD                         Yes             JS library for tables output
+jQuery FileUpload      5.0.3         GPL and MIT License         Yes             JS library to upload files
+jQuery Flot            0.7           MIT License                 Yes             JS library to build graph
+jQuery JCrop           0.9.8         GPL and MIT License         Yes             JS library plugin Crop (to crop images)
+jQuery Jeditable       1.7.1         GPL and MIT License         Yes             JS library plugin jeditable (to edit in place)
+jQuery jNotify         1.1.00        Apache Software License 2.0 Yes             JS library plugin jNotify (to use ajax popups)
+jQuery jPicker         1.1.6         GPL and MIT License         Yes             JS library for color picker with not defined list of colors
+jQuery jqueryFileTree  1.0.1         GPL and MIT License         Yes             JS library for color picker with not defined list of colors
+jQuery jquerytreeview  1.4.1         MIT License                 Yes             JS library for color picker with not defined list of colors
+jQuery Layout          1.3.0rc30.74  GPL and MIT License         Yes             JS library plugin Layout (RC-29.15)
+jQuery Mobile          1.3.0         GPL and MIT License         Yes             JS library for smartphone (not used)
+jQuery TableDnD        0.6           GPL and MIT License         Yes             JS library plugin TableDnD (to reorder table rows)
+jQuery Timepicker      1.1.0         GPL and MIT License         Yes             JS library Timepicker addon for Datepicker
+jQuery Tiptip          1.3           GPL and MIT License         Yes             JS library for tooltips
+jsGantt                1.2           BSD License                 Yes             JS library (to build Gantt reports)
 
 For licenses compatibility informations:
 http://www.fsf.org/licensing/licenses/index_html
diff --git a/ChangeLog b/ChangeLog
index c5aeb5874b39e26858b487598aadb93c4e48c9a3..9f1ae0857a26e41838cd6a159bc9e61bf1ea5c9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -99,6 +99,7 @@ For users:
 - Fix: [ bug #1506, #1507 ] ECM trigger error problem
 - Fix: [ bug #1469 ] Triggers CONTACT_MODIFY and CONTACT_DELETE duplicates error message
 - Fix: [ bug #1537 ] Difference between societe.nom and adherent.societe.
+- Fix: [ bug #1535 ] Supplier invoice Extrafields are not shown
 
 For users, new experimental module (need to set feature level of instance to experimental to see them):
 - New: Module Accounting Expert to manage accountancy
@@ -163,18 +164,20 @@ Dolibarr better:
 
 
 ***** ChangeLog for 3.6.2 compared to 3.6.1 *****
-- Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice
-- Fix: bug 1588 : relative discount
+- Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice.
+- Fix: bug 1588 : relative discount.
 - Fix: label of input method not tranlated.
 - Fix: box of customer and propsects were not correctly disabled.
-- Fix: right and error management #1961
-- Fix: Fix Error when trying to clone an Order #1943
 - Fix: [ bug #1618 ] PHP Error thrown when saving a barcode
+- Fix: Civility & birthdate wasn't save into adherent module.
+- Fix: webservice Thirdparty parameter lastname for invidual creation is now lastname and not ref
+- Fix: Chars - is no more allowed into value for code for extra fields.
+( Fix: [ bug #1622 ] Requesting holiday than spans across two years cause high CPU usage by Apache
 
 ***** ChangeLog for 3.6.1 compared to 3.6.* *****
 For users:
 - Fix: Can upload files on services.
-- Fix: sql errors on updat fichinter.
+- Fix: sql errors on update fichinter.
 - Fix: debian script syntax error.
 - Fix: error "menu param is not inside list" into pos module.
 - Fix: Salary payments are not reflected on the reporting sheets.
@@ -310,6 +313,9 @@ removed. You must now use the 6 parameters way. See file modMyModule.class.php f
 - Remove add_photo_web() that is ot used anymore by core code.
 
 
+***** ChangeLog for 3.5.6 compared to 3.5.5 *****
+Fix: Avoid missing class error for fetch_thirdparty method #1973
+
 ***** ChangeLog for 3.5.5 compared to 3.5.4 *****
 Fix: Holiday module was broken. Initializaion of amount of holidays failed.
 Fix: [ bug #1523 ] suite bug #1334 : filtre et ordre de tri conjoints ne s'appliquent pas.
diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl
index 2a4af64f5fe8e8b8c775722400cdc54e719cb747..370c04591a99cb1482bba5946bd421af2119c7bf 100755
--- a/build/makepack-dolibarr.pl
+++ b/build/makepack-dolibarr.pl
@@ -446,6 +446,7 @@ if ($nboftargetok) {
 		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/public/test`;
 		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/teclib*`;
 		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/oblyon*`;
+		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/eldy/*.new`;
 		$ret=`rm -fr $BUILDROOT/$PROJECT/test`;
 		$ret=`rm -fr $BUILDROOT/$PROJECT/Thumbs.db $BUILDROOT/$PROJECT/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/*/Thumbs.db`;
 		$ret=`rm -f  $BUILDROOT/$PROJECT/.cvsignore $BUILDROOT/$PROJECT/*/.cvsignore $BUILDROOT/$PROJECT/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/*/.cvsignore`;
diff --git a/dev/codesniffer/ruleset.xml b/dev/codesniffer/ruleset.xml
index 72590c157416c0787b6e9901593a5b4487099f91..7e3057a6675460d1b02843b8532f9a2085a38570 100755
--- a/dev/codesniffer/ruleset.xml
+++ b/dev/codesniffer/ruleset.xml
@@ -108,7 +108,7 @@
     <rule ref="Generic.Metrics.CyclomaticComplexity">
         <properties>
             <property name="complexity" value="80" />
-            <property name="absoluteComplexity" value="200" />
+            <property name="absoluteComplexity" value="250" />
         </properties>
     </rule>
     <rule ref="Generic.Metrics.NestingLevel">
diff --git a/dev/skeletons/skeleton_class.class.php b/dev/skeletons/skeleton_class.class.php
index 781bbc1f77cb0265c564f4faa9e0f47be3afdd65..f623debc581b3d3bc1cdc88d2146827b892f7ed3 100644
--- a/dev/skeletons/skeleton_class.class.php
+++ b/dev/skeletons/skeleton_class.class.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2007-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2014	   Juanjo Menent		<jmenent@2byte.es>
  * Copyright (C) ---Put here your own copyright and developer email---
  *
  * This program is free software; you can redistribute it and/or modify
@@ -79,7 +80,7 @@ class Skeleton_Class extends CommonObject
 		// Put here code to add control on parameters values
 
         // Insert request
-		$sql = "INSERT INTO ".MAIN_DB_PREFIX."mytable(";
+		$sql = "INSERT INTO ".MAIN_DB_PREFIX.$this->table_element."(";
 		$sql.= " field1,";
 		$sql.= " field2";
 		//...
@@ -91,13 +92,13 @@ class Skeleton_Class extends CommonObject
 
 		$this->db->begin();
 
-	   	dol_syslog(get_class($this)."::create", LOG_DEBUG);
+	   	dol_syslog(__METHOD__, LOG_DEBUG);
         $resql=$this->db->query($sql);
     	if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
 
 		if (! $error)
         {
-            $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."mytable");
+            $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX.$this->table_element);
 
 			if (! $notrigger)
 			{
@@ -116,7 +117,7 @@ class Skeleton_Class extends CommonObject
 		{
 			foreach($this->errors as $errmsg)
 			{
-	            dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
+	            dol_syslog(__METHOD__." ".$errmsg, LOG_ERR);
 	            $this->error.=($this->error?', '.$errmsg:$errmsg);
 			}
 			$this->db->rollback();
@@ -145,7 +146,7 @@ class Skeleton_Class extends CommonObject
 		$sql.= " t.field1,";
 		$sql.= " t.field2";
 		//...
-        $sql.= " FROM ".MAIN_DB_PREFIX."mytable as t";
+        $sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element." as t";
         if ($ref) $sql.= " WHERE t.ref = '".$ref."'";
         else $sql.= " WHERE t.rowid = ".$id;
 
@@ -195,7 +196,7 @@ class Skeleton_Class extends CommonObject
 		// Put here code to add a control on parameters values
 
         // Update request
-        $sql = "UPDATE ".MAIN_DB_PREFIX."mytable SET";
+        $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET";
         $sql.= " field1=".(isset($this->field1)?"'".$this->db->escape($this->field1)."'":"null").",";
         $sql.= " field2=".(isset($this->field2)?"'".$this->db->escape($this->field2)."'":"null")."";
 		//...
@@ -203,7 +204,7 @@ class Skeleton_Class extends CommonObject
 
 		$this->db->begin();
 
-		dol_syslog(get_class($this)."::update");
+		dol_syslog(__METHOD__);
         $resql = $this->db->query($sql);
     	if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
 
@@ -226,7 +227,7 @@ class Skeleton_Class extends CommonObject
 		{
 			foreach($this->errors as $errmsg)
 			{
-	            dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
+	            dol_syslog(__METHOD__." ".$errmsg, LOG_ERR);
 	            $this->error.=($this->error?', '.$errmsg:$errmsg);
 			}
 			$this->db->rollback();
@@ -270,10 +271,10 @@ class Skeleton_Class extends CommonObject
 
 		if (! $error)
 		{
-    		$sql = "DELETE FROM ".MAIN_DB_PREFIX."mytable";
+    		$sql = "DELETE FROM ".MAIN_DB_PREFIX.$this->table_element;
     		$sql.= " WHERE rowid=".$this->id;
 
-    		dol_syslog(get_class($this)."::delete");
+    		dol_syslog(__METHOD__);
     		$resql = $this->db->query($sql);
         	if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
 		}
@@ -283,7 +284,7 @@ class Skeleton_Class extends CommonObject
 		{
 			foreach($this->errors as $errmsg)
 			{
-	            dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
+	            dol_syslog(__METHOD__." ".$errmsg, LOG_ERR);
 	            $this->error.=($this->error?', '.$errmsg:$errmsg);
 			}
 			$this->db->rollback();
diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php
index 60ff4b125c3252e160b0d7a2470175ff24aef35e..36739254d06efc39e572d82979222892bb0f8a44 100644
--- a/htdocs/accountancy/admin/account.php
+++ b/htdocs/accountancy/admin/account.php
@@ -37,6 +37,11 @@ $mesg = '';
 $action = GETPOST('action');
 $id = GETPOST('id', 'int');
 $rowid = GETPOST('rowid', 'int');
+$search_account = GETPOST("search_account");
+$search_label = GETPOST("search_label");
+$search_accountparent = GETPOST("search_accountparent");
+$search_pcgtype = GETPOST("search_pcgtype");
+$search_pcgsubtype = GETPOST("search_pcgsubtype");
 
 // Security check
 if (!$user->admin)
@@ -83,6 +88,15 @@ if ($action == 'disable') {
 	}
 }
 
+if (GETPOST("button_removefilter"))
+{
+	$search_account="";
+    $search_label="";
+	$search_accountparent="";
+	$search_pcgtype="";
+	$search_pcgsubtype="";
+}
+
 /*
  * View
  *
@@ -96,20 +110,20 @@ $sql .= " FROM " . MAIN_DB_PREFIX . "accountingaccount as aa, " . MAIN_DB_PREFIX
 $sql .= " WHERE aa.fk_pcg_version = asy.pcg_version";
 $sql .= " AND asy.rowid = " . $pcgver;
 
-if (strlen(trim($_GET["search_account"]))) {
-	$sql .= " AND aa.account_number like '%" . $_GET["search_account"] . "%'";
+if (strlen(trim($search_account))) {
+	$sql .= " AND aa.account_number like '%" . $search_account . "%'";
 }
-if (strlen(trim($_GET["search_label"]))) {
-	$sql .= " AND aa.label like '%" . $_GET["search_label"] . "%'";
+if (strlen(trim($search_label))) {
+	$sql .= " AND aa.label like '%" . $search_label . "%'";
 }
-if (strlen(trim($_GET["search_accountparent"]))) {
-	$sql .= " AND aa.account_parent like '%" . $_GET["search_accountparent"] . "%'";
+if (strlen(trim($search_accountparent))) {
+	$sql .= " AND aa.account_parent like '%" . $search_accountparent . "%'";
 }
-if (strlen(trim($_GET["search_pcgtype"]))) {
-	$sql .= " AND aa.pcg_type like '%" . $_GET["search_pcgtype"] . "%'";
+if (strlen(trim($search_pcgtype))) {
+	$sql .= " AND aa.pcg_type like '%" . $search_pcgtype . "%'";
 }
-if (strlen(trim($_GET["search_pcgsubtype"]))) {
-	$sql .= " AND aa.pcg_subtype like '%" . $_GET["search_pcgsubtype"] . "%'";
+if (strlen(trim($search_pcgsubtype))) {
+	$sql .= " AND aa.pcg_subtype like '%" . $search_pcgsubtype . "%'";
 }
 
 $sql .= $db->order($sortfield, $sortorder);
@@ -141,18 +155,20 @@ if ($result) {
 	print_liste_field_titre($langs->trans("Pcgtype"), $_SERVER["PHP_SELF"], "aa.pcg_type", "", $param, "", $sortfield, $sortorder);
 	print_liste_field_titre($langs->trans("Pcgsubtype"), $_SERVER["PHP_SELF"], "aa.pcg_subtype", "", $param, "", $sortfield, $sortorder);
 	print_liste_field_titre($langs->trans("Active"), $_SERVER["PHP_SELF"], "aa.active", "", $param, "", $sortfield, $sortorder);
-	print_liste_field_titre("&nbsp;");
+	print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder);
 	print '</tr>';
 	
 	print '<tr class="liste_titre">';
-	print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_account" value="' . GETPOST("search_account") . '"></td>';
-	print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_label" value="' . GETPOST("search_label") . '"></td>';
-	print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_accountparent" value="' . GETPOST("search_accountparent") . '"></td>';
-	print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_pcgtype" value="' . GETPOST("search_pcgtype") . '"></td>';
-	print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_pcgsubtype" value="' . GETPOST("search_pcgsubtype") . '"></td>';
+	print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_account" value="' . $search_account . '"></td>';
+	print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_label" value="' . $search_label . '"></td>';
+	print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_accountparent" value="' . $search_accountparent . '"></td>';
+	print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_pcgtype" value="' . $search_pcgtype . '"></td>';
+	print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_pcgsubtype" value="' . $search_pcgsubtype . '"></td>';
 	print '<td class="liste_titre">&nbsp;</td>';
-	print '<td class="liste_titre" align="right">';
-	print '<input type="image" class="liste_titre" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/search.png" name="button_search" value="' . dol_escape_htmltag($langs->trans("Search")) . '" title="' . dol_escape_htmltag($langs->trans("Search")) . '">';
+	print '<td align="right" colspan="2" class="liste_titre">';
+	print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '&nbsp;';
+	print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" name="button_removefilter" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
 	print '</td>';
 	print '</tr>';
 	
@@ -180,11 +196,13 @@ if ($result) {
 		}
 		print '</td>';
 		
-		print '<td>';
+		// Action
+		print '<td align="center">';
 		if ($user->admin) {
 			print '<a href="./card.php?action=update&id=' . $obj->rowid . '">';
 			print img_edit();
-			print '</a>&nbsp;';
+			print '</a>';
+			print '&nbsp;';
 			print '<a href="./card.php?action=delete&id=' . $obj->rowid . '">';
 			print img_delete();
 			print '</a>';
diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php
index 9ebdea5fefc9eaaceb3cf83c32c130e574b7ecd0..ad6ca01b6ca8deffb9666fe078e24ae8e58bb6ab 100644
--- a/htdocs/accountancy/admin/card.php
+++ b/htdocs/accountancy/admin/card.php
@@ -181,11 +181,6 @@ else if ($id)
 		
 		if ($action == 'update')
 		{
-			// WYSIWYG Editor
-			$htmlacc = new FormVentilation($db);
-			
-			require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
-			
 			$soc = new Societe($db);
 			if ($object->socid) {
 				$soc->fetch($object->socid);
diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php
index 9e109c7feeb11988106460ffbc5b3d3ff9c5073b..608c62cf1d08a5980d815cafcfad1bb9a5f3202f 100644
--- a/htdocs/accountancy/bookkeeping/card.php
+++ b/htdocs/accountancy/bookkeeping/card.php
@@ -35,8 +35,6 @@ $langs->load("accounting");
 $id = GETPOST('id', 'int');
 if ($user->societe_id > 0)
 	accessforbidden();
-if (! $user->rights->accounting->access)
-	accessforbidden();
 
 $action = GETPOST('action');
 $piece_num = GETPOST("piece_num");
@@ -238,7 +236,9 @@ if ($action == 'create') {
 	print '<input type="submit" class="butAction" value="' . $langs->trans("Save") . '">';
 	
 	print '</form>';
-} else {
+} 
+else
+{
 	$book = new BookKeeping($db);
 	$result = $book->fetch_per_mvt($piece_num);
 	if ($result < 0) {
@@ -309,14 +309,12 @@ if ($action == 'create') {
 						print '<td><input type="text" size="6" name="credit" value="' . price($line->credit) . '"/></td>';
 						print '<td>' . $line->montant . '</td>';
 						print '<td>' . $line->sens . '</td>';
-						
 						print '<td>';
-						if ($user->rights->accounting->access) {
-							print '<input type="submit" class="button" value="' . $langs->trans("Update") . '">';
-						}
+						print '<input type="submit" class="button" value="' . $langs->trans("Update") . '">';
 						print '</form>';
 						print '</td>';
-					} else {
+					}
+					else {
 						print '<td>' . $line->numero_compte . '</td>';
 						print '<td>' . $line->code_tiers . '</td>';
 						print '<td>' . $line->label_compte . '</td>';
@@ -324,16 +322,15 @@ if ($action == 'create') {
 						print '<td>' . $line->credit . '</td>';
 						print '<td>' . $line->montant . '</td>';
 						print '<td>' . $line->sens . '</td>';
-						
+							
 						print '<td>';
-						if ($user->rights->accouting->access) {
-							print '<a href="./card.php?action=update&id=' . $line->id . '&piece_num=' . $line->piece_num . '">';
-							print img_edit();
-							print '</a>&nbsp;';
-							print '<a href="./card.php?action=delete&id=' . $line->id . '&piece_num=' . $line->piece_num . '">';
-							print img_delete();
-							print '</a>';
-						}
+						print '<a href="./card.php?action=update&id=' . $line->id . '&piece_num=' . $line->piece_num . '">';
+						print img_edit();
+						print '</a>&nbsp;';
+						print '<a href="./card.php?action=delete&id=' . $line->id . '&piece_num=' . $line->piece_num . '">';
+						print img_delete();
+						print '</a>';
+						
 						print '</td>';
 					}
 					print "</tr>\n";
@@ -342,7 +339,7 @@ if ($action == 'create') {
 				if ($action == "" || $action == 'add') {
 					$var = ! $var;
 					print "<tr $bc[$var]>";
-					
+						
 					print '<form action="' . $_SERVER["PHP_SELF"] . '?piece_num=' . $book->piece_num . '" method="post">';
 					print '<input type="hidden" name="action" value="add">' . "\n";
 					print '<input type="hidden" name="doc_date" value="' . $book->doc_date . '">' . "\n";
@@ -359,14 +356,13 @@ if ($action == 'create') {
 					print '<td></td>';
 					print '<td></td>';
 					print '<td><input type="submit" class="button" value="' . $langs->trans("Save") . '"></td>';
-					
 					print '</tr>';
 				}
-				
 				print "</table>";
 			}
 		}
-	} else {
+	}
+	else {
 		print_fiche_titre($langs->trans("NoRecords"));
 	}
 }
diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php
index b0e5096699b7a117b890249dd2d4472d50e01e29..21da5bacbb9b3c77226a0dfface62340561cd3d0 100644
--- a/htdocs/accountancy/bookkeeping/list.php
+++ b/htdocs/accountancy/bookkeeping/list.php
@@ -36,6 +36,11 @@ $page = GETPOST("page");
 $sortorder = GETPOST("sortorder");
 $sortfield = GETPOST("sortfield");
 $action = GETPOST('action', 'alpha');
+$search_doc_type = GETPOST("search_doc_type");
+$search_doc_ref = GETPOST("search_doc_ref");
+$search_account = GETPOST("search_account");
+$search_thirdparty = GETPOST("search_thirdparty");
+$search_journal = GETPOST("search_journal");
 
 if ($sortorder == "")
 	$sortorder = "ASC";
@@ -46,6 +51,15 @@ $offset = $conf->liste_limit * $page;
 
 $formventilation = new FormVentilation($db);
 
+if (GETPOST("button_removefilter"))
+{
+	$search_doc_type="";
+    $search_doc_ref="";
+	$search_account="";
+	$search_thirdparty="";
+	$search_journal="";
+}
+
 /*
  * Action
  */
@@ -100,25 +114,25 @@ else {
 	$sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, bk.code_tiers, bk.numero_compte , bk.label_compte, bk.debit , bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num ";
 	$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk";
 	
-	if (dol_strlen(trim(GETPOST("search_doc_type")))) {
+	if (dol_strlen(trim($search_doc_type))) {
 		
-		$sql .= " WHERE bk.doc_type LIKE '%" . GETPOST("search_doc_type") . "%'";
+		$sql .= " WHERE bk.doc_type LIKE '%" . $search_doc_type . "%'";
 		
-		if (dol_strlen(trim(GETPOST("search_doc_ref")))) {
-			$sql .= " AND bk.doc_ref LIKE '%" . GETPOST("search_doc_ref") . "%'";
+		if (dol_strlen(trim($search_doc_ref))) {
+			$sql .= " AND bk.doc_ref LIKE '%" . $search_doc_ref . "%'";
 		}
 	}
-	if (dol_strlen(trim(GETPOST("search_doc_ref")))) {
-		$sql .= " WHERE bk.doc_ref LIKE '%" . GETPOST("search_doc_ref") . "%'";
+	if (dol_strlen(trim($search_doc_ref))) {
+		$sql .= " WHERE bk.doc_ref LIKE '%" . $search_doc_ref . "%'";
 	}
-	if (dol_strlen(trim(GETPOST("search_compte")))) {
-		$sql .= " WHERE bk.numero_compte LIKE '%" . GETPOST("search_compte") . "%'";
+	if (dol_strlen(trim($search_account))) {
+		$sql .= " WHERE bk.numero_compte LIKE '%" . $search_account . "%'";
 	}
-	if (dol_strlen(trim(GETPOST("search_tiers")))) {
-		$sql .= " WHERE bk.code_tiers LIKE '%" . GETPOST("search_tiers") . "%'";
+	if (dol_strlen(trim($search_thirdparty))) {
+		$sql .= " WHERE bk.code_tiers LIKE '%" . $search_thirdparty . "%'";
 	}
-	if (dol_strlen(trim(GETPOST("search_journal")))) {
-		$sql .= " WHERE bk.code_journal LIKE '%" . GETPOST("search_journal") . "%'";
+	if (dol_strlen(trim($search_journal))) {
+		$sql .= " WHERE bk.code_journal LIKE '%" . $search_journal . "%'";
 	}
 	
 	$sql .= " ORDER BY $sortfield $sortorder " . $db->plimit($conf->liste_limit + 1, $offset);
@@ -149,7 +163,7 @@ else {
 		print '<input type="submit" class="button" style="float: right;" value="Export CSV" />';
 		print '</form>';
 		
-		print "<table class=\"noborder\" width=\"100%\">";
+		print '<table class="noborder" width="100%">';
 		print '<tr class="liste_titre">';
 		print_liste_field_titre($langs->trans("Doctype"), $_SERVER['PHP_SELF'], "bk.doc_type", "", "", "", $sortfield, $sortorder);
 		print_liste_field_titre($langs->trans("Docdate"), $_SERVER['PHP_SELF'], "bk.doc_date", "", "", "", $sortfield, $sortorder);
@@ -157,29 +171,31 @@ else {
 		print_liste_field_titre($langs->trans("Numerocompte"), $_SERVER['PHP_SELF'], "bk.numero_compte", "", "", "", $sortfield, $sortorder);
 		print_liste_field_titre($langs->trans("Code_tiers"), $_SERVER['PHP_SELF'], "bk.code_tiers", "", "", "", $sortfield, $sortorder);
 		print_liste_field_titre($langs->trans("Labelcompte"), $_SERVER['PHP_SELF'], "bk_label_compte", "", "", "", $sortfield, $sortorder);
-		print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "bk.debit", "", "", "", $sortfield, $sortorder);
-		print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "bk.credit", "", "", "", $sortfield, $sortorder);
-		print_liste_field_titre($langs->trans("Amount"), $_SERVER['PHP_SELF'], "bk.montant", "", "", "", $sortfield, $sortorder);
-		print_liste_field_titre($langs->trans("Sens"), $_SERVER['PHP_SELF'], "bk.sens", "", "", "", $sortfield, $sortorder);
+		print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "bk.debit", "", "", 'align="center"', $sortfield, $sortorder);
+		print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "bk.credit", "", "", 'align="center"', $sortfield, $sortorder);
+		print_liste_field_titre($langs->trans("Amount"), $_SERVER['PHP_SELF'], "bk.montant", "", "", 'align="center"', $sortfield, $sortorder);
+		print_liste_field_titre($langs->trans("Sens"), $_SERVER['PHP_SELF'], "bk.sens", "", "", 'align="center"', $sortfield, $sortorder);
 		print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "bk.code_journal", "", "", "", $sortfield, $sortorder);
-		print_liste_field_titre("&nbsp;");
+		print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder);
 		print "</tr>\n";
 		
 		print '<tr class="liste_titre">';
 		print '<form action="'.$_SERVER["PHP_SELF"].'" method="GET">';
-		print '<td><input type="text" name="search_doc_type" value="' . $_GET["search_doc_type"] . '"></td>';
+		print '<td><input type="text" name="search_doc_type" size="8" value="' . $search_doc_type . '"></td>';
 		print '<td>&nbsp;</td>';
-		print '<td><input type="text" name="search_doc_ref" value="' . $_GET["search_doc_ref"] . '"></td>';
-		print '<td><input type="text" name="search_compte" value="' . $_GET["search_compte"] . '"></td>';
-		print '<td><input type="text" name="search_tiers" value="' . $_GET["search_tiers"] . '"></td>';
+		print '<td><input type="text" name="search_doc_ref" size="8" value="' . $search_doc_ref . '"></td>';
+		print '<td><input type="text" name="search_account" size="8" value="' . $search_account . '"></td>';
+		print '<td><input type="text" name="search_thirdparty" size="8" value="' . $search_thirdparty . '"></td>';
 		print '<td>&nbsp;</td>';
 		print '<td>&nbsp;</td>';
 		print '<td>&nbsp;</td>';
 		print '<td>&nbsp;</td>';
 		print '<td>&nbsp;</td>';
-		print '<td><input type="text" name="search_journal" size="3" value="' . $_GET["search_journal"] . '"></td>';
-		print '<td align="right">';
-		print '<input type="image" class="liste_titre" name="button_search" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/search.png" value="' . dol_escape_htmltag($langs->trans("Search")) . '" title="' . dol_escape_htmltag($langs->trans("Search")) . '">';
+		print '<td><input type="text" name="search_journal" size="3" value="' . $search_journal . '"></td>';
+		print '<td align="right" colspan="2" class="liste_titre">';
+		print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+		print '&nbsp;';
+		print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" name="button_removefilter" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
 		print '</td>';
 		print '</form>';
 		print '</tr>';
@@ -201,9 +217,9 @@ else {
 			print '<td align="right">' . price($obj->debit) . '</td>';
 			print '<td align="right">' . price($obj->credit) . '</td>';
 			print '<td align="right">' . price($obj->montant) . '</td>';
-			print '<td>' . $obj->sens . '</td>';
+			print '<td align="center">' . $obj->sens . '</td>';
 			print '<td>' . $obj->code_journal . '</td>';
-			print '<td><a href="./card.php?piece_num=' . $obj->piece_num . '">' . img_edit() . '</a></td>';
+			print '<td align="center"><a href="./card.php?piece_num=' . $obj->piece_num . '">' . img_edit() . '</a></td>';
 			print "</tr>\n";
 			$i ++;
 		}
diff --git a/htdocs/accountancy/customer/card.php b/htdocs/accountancy/customer/card.php
index 91a0eb5df8b93b0d19bafb4c2a43b60dc087aa39..28d3d0c1f7958485ef13888bb5c2bdb58bf48c5a 100644
--- a/htdocs/accountancy/customer/card.php
+++ b/htdocs/accountancy/customer/card.php
@@ -40,14 +40,12 @@ $id = GETPOST('id');
 // Security check
 if ($user->societe_id > 0)
 	accessforbidden();
-if (! $user->rights->accounting->access)
-	accessforbidden();
 	
 /*
  * Actions
  */
 
-if ($action == 'ventil' && $user->rights->accounting->access) 
+if ($action == 'ventil' && $user->rights->accounting->ventilation->dispatch) 
 {
 	if (! GETPOST('cancel', 'alpha'))
 	{
@@ -109,7 +107,7 @@ if (! empty($id)) {
 			print '<input type="hidden" name="action" value="ventil">';
 			
 			$linkback='<a href="'.DOL_URL_ROOT.'/accountancy/customer/lines.php">'.$langs->trans("Back").'</a>';
-			print_fiche_titre($langs->trans('AccountingVentilationCustomer'),$linkback,'setup');
+			print_fiche_titre($langs->trans('CustomersVentilation'),$linkback,'setup');
 			
 			print '<table class="border" width="100%">';
 			
diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php
index 9ae070c25e02e1be3a94d1fc6dfa2245b064db32..cb40b7b361b0daceb5547c3a4487711783805f74 100644
--- a/htdocs/accountancy/customer/index.php
+++ b/htdocs/accountancy/customer/index.php
@@ -93,8 +93,8 @@ if ($action == 'validatehistory') {
  */
 llxHeader('', $langs->trans("CustomersVentilation"));
 
-$textprevyear = "<a href=\"index.php?year=" . ($year_current - 1) . "\">" . img_previous() . "</a>";
-$textnextyear = " <a href=\"index.php?year=" . ($year_current + 1) . "\">" . img_next() . "</a>";
+$textprevyear = '<a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($year_current - 1) . '">' . img_previous() . '</a>';
+$textnextyear = ' <a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($year_current + 1) . '">' . img_next() . '</a>';
 
 print_fiche_titre($langs->trans("CustomersVentilation") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear);
 
@@ -197,7 +197,7 @@ print "</table>\n";
 
 print "<br>\n";
 print '<table class="noborder" width="100%">';
-print '<tr class="liste_titre"><td width="400" align="left">' . $langs->trans("TotalVente") . '</td>';
+print '<tr class="liste_titre"><td width="400" align="left">' . $langs->trans("Total") . '</td>';
 print '<td width="60" align="center">' . $langs->trans("JanuaryMin") . '</td>';
 print '<td width="60" align="center">' . $langs->trans("FebruaryMin") . '</td>';
 print '<td width="60" align="center">' . $langs->trans("MarchMin") . '</td>';
@@ -212,7 +212,7 @@ print '<td width="60" align="center">' . $langs->trans("NovemberMin") . '</td>';
 print '<td width="60" align="center">' . $langs->trans("DecemberMin") . '</td>';
 print '<td width="60" align="center"><b>' . $langs->trans("Total") . '</b></td></tr>';
 
-$sql = "SELECT '" . $langs->trans("Vide") . "' AS 'Total',";
+$sql = "SELECT '" . $langs->trans("TotalVente") . "' AS 'Total',";
 $sql .= "  ROUND(SUM(IF(MONTH(f.datef)=1,fd.total_ht,0)),2) AS 'Janvier',";
 $sql .= "  ROUND(SUM(IF(MONTH(f.datef)=2,fd.total_ht,0)),2) AS 'Fevrier',";
 $sql .= "  ROUND(SUM(IF(MONTH(f.datef)=3,fd.total_ht,0)),2) AS 'Mars',";
diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index dcd8fca4d41078a13b494b2d8b631c1973917464..1f9b054912174d9ba86bfe0422688079031b119f 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -68,8 +68,6 @@ $action = GETPOST('action');
 // Security check
 if ($user->societe_id > 0)
 	accessforbidden();
-if (! $user->rights->accounting->access)
-	accessforbidden();
 
 /*
  * View
diff --git a/htdocs/accountancy/journal/cashjournal.php b/htdocs/accountancy/journal/cashjournal.php
index 8af84a9ed58a87ad3efc39d92b232cadf6cca54c..fb5a15a513c7b58d50e4c8fc1f78c4e686c3f5aa 100644
--- a/htdocs/accountancy/journal/cashjournal.php
+++ b/htdocs/accountancy/journal/cashjournal.php
@@ -62,8 +62,6 @@ $date_endyear = GETPOST('date_endyear');
 // Security check
 if ($user->societe_id > 0)
 	accessforbidden();
-if (! $user->rights->accounting->access)
-	accessforbidden();
 
 $action = GETPOST('action');
 
diff --git a/htdocs/accountancy/journal/index.php b/htdocs/accountancy/journal/index.php
index 272d76fa20f648c5a8d36fb7656c687efda7e7f3..36286ce265e0c8f35cbebd20f101e4d5481b0fde 100644
--- a/htdocs/accountancy/journal/index.php
+++ b/htdocs/accountancy/journal/index.php
@@ -36,8 +36,6 @@ $langs->load("accountancy");
 // Security check
 if ($user->societe_id > 0)
 	accessforbidden();
-if (! $user->rights->accounting->access)
-	accessforbidden();
 
 llxHeader('', 'Journaux', '');
 
diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php
index 789aa1111af8aed2097c1963e95d5abf2b40284e..97d52124c0175cf78a476bb9bf41064707b115c6 100644
--- a/htdocs/accountancy/journal/purchasesjournal.php
+++ b/htdocs/accountancy/journal/purchasesjournal.php
@@ -55,8 +55,6 @@ $date_endyear = GETPOST('date_endyear');
 // Security check
 if ($user->societe_id > 0)
 	accessforbidden();
-if (! $user->rights->accounting->access)
-	accessforbidden();
 
 $action = GETPOST('action');
 
diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php
index a7c0266998f131b4487da5d069b76070a27b3223..5bb1f989a92987c57f86542a494b4f629def9f46 100644
--- a/htdocs/accountancy/journal/sellsjournal.php
+++ b/htdocs/accountancy/journal/sellsjournal.php
@@ -56,8 +56,6 @@ $date_endyear = GETPOST('date_endyear');
 // Security check
 if ($user->societe_id > 0)
 	accessforbidden();
-if (! $user->rights->accounting->access)
-	accessforbidden();
 
 $action = GETPOST('action');
 
diff --git a/htdocs/accountancy/supplier/card.php b/htdocs/accountancy/supplier/card.php
index b0078839b55a1b8e767e5d7b455bac995e818be5..45c8de9b16557a0b3554f01b38d2f830df7845ac 100644
--- a/htdocs/accountancy/supplier/card.php
+++ b/htdocs/accountancy/supplier/card.php
@@ -46,10 +46,9 @@ $codeventil = GETPOST('codeventil');
 // Security check
 if ($user->societe_id > 0)
 	accessforbidden();
-if (! $user->rights->accounting->ventilation->dispatch)
-	accessforbidden();
 
-if ($action == 'ventil' && $user->rights->accounting->access) {
+if ($action == 'ventil' && $user->rights->accounting->ventilation->dispatch)
+{
 	$sql = " UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det";
 	$sql .= " SET fk_code_ventilation = " . $codeventil;
 	$sql .= " WHERE rowid = " . $id;
@@ -103,7 +102,7 @@ if ($_GET["id"]) {
 			print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
 			print '<input type="hidden" name="action" value="ventil">';
 			
-			print_fiche_titre($langs->trans("Ventilation"));
+			print_fiche_titre($langs->trans("SuppliersVentilation"));
 			
 			print '<table class="border" width="100%" cellspacing="0" cellpadding="4">';
 			
diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php
index 7d633c575f14137e83b608b3afc779b14306a0ff..edebcfd9d46674a6a42b66bbb8a8e283d8729bdc 100644
--- a/htdocs/accountancy/supplier/index.php
+++ b/htdocs/accountancy/supplier/index.php
@@ -92,10 +92,10 @@ if ($action == 'validatehistory') {
 
 llxHeader('', $langs->trans("SuppliersVentilation"));
 
-$textprevyear = "<a href=\"index.php?year=" . ($year_current - 1) . "\">" . img_previous() . "</a>";
-$textnextyear = " <a href=\"index.php?year=" . ($year_current + 1) . "\">" . img_next() . "</a>";
+$textprevyear = '<a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($year_current - 1) . '">' . img_previous() . '</a>';
+$textnextyear = ' <a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($year_current + 1) . '">' . img_next() . '</a>';
 
-print_fiche_titre($langs->trans("AccountingVentilationSupplier") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear);
+print_fiche_titre($langs->trans("SuppliersVentilation") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear);
 
 print '<b>' . $langs->trans("DescVentilSupplier") . '</b>';
 print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?action=validatehistory">' . $langs->trans("ValidateHistory") . '</a></div>';
diff --git a/htdocs/adherents/admin/adherent_type_extrafields.php b/htdocs/adherents/admin/adherent_type_extrafields.php
index b2f839e3c3cf220a61685bc0d22002a181285d18..627d96acf179f6334eb7e090114824962b9efb5c 100644
--- a/htdocs/adherents/admin/adherent_type_extrafields.php
+++ b/htdocs/adherents/admin/adherent_type_extrafields.php
@@ -7,7 +7,7 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -17,6 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * or see http://www.gnu.org/
  */
 
 /**
diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php
index ca7706989e01383b2cfee8369825c259d335ce7e..102f45496c6f18200163014fc7e1b73677fff9e5 100644
--- a/htdocs/adherents/card.php
+++ b/htdocs/adherents/card.php
@@ -723,7 +723,7 @@ else
 	{
 		/* ************************************************************************** */
 		/*                                                                            */
-		/* Fiche creation                                                             */
+		/* Creation card                                                             */
 		/*                                                                            */
 		/* ************************************************************************** */
 		$object->canvas=$canvas;
diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php
index a057e7cba936fca59fc1be97815c0a6b01b63204..cdbfabf45768a92c952b92fdd592816a703f2339 100644
--- a/htdocs/adherents/class/adherent.class.php
+++ b/htdocs/adherents/class/adherent.class.php
@@ -5,6 +5,7 @@
  * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
  * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
  * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@capnetworks.com>
+ * Copyright (C) 2014		Alexandre Spangaro		<alexandre.spangaro@gmail.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -124,7 +125,7 @@ class Adherent extends CommonObject
 
 
     /**
-     *  Fonction envoyant un email a l'adherent avec le texte fourni en parametre.
+     *  Function sending an email has the adherent with the text supplied in parameter.
      *
      *  @param	string	$text				Content of message (not html entities encoded)
      *  @param	string	$subject			Subject of message
@@ -247,9 +248,9 @@ class Adherent extends CommonObject
 
 
     /**
-     *	Renvoie le libelle traduit de la nature d'un adherent (physique ou morale)
+     *	Return translated label by the nature of a adherent (physical or moral)
      *
-     *	@param	string		$morphy		Nature physique ou morale de l'adherent
+     *	@param	string		$morphy		Nature of the adherent (physical or moral)
      *	@return	string					Label
      */
     function getmorphylib($morphy='')
diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php
index 43ccef1e9544422cb2f2a2c5b21406e38ddffa17..adb590ffcd2725e1a97bef908dd38731e097e0a1 100644
--- a/htdocs/admin/security.php
+++ b/htdocs/admin/security.php
@@ -165,6 +165,16 @@ else if ($action == 'disable_MAIN_SECURITY_DISABLEFORGETPASSLINK')
 	exit;
 }
 
+if ($action == 'maj_pattern')
+{
+	dolibarr_set_const($db, "USER_PASSWORD_PATTERN", GETPOST("pattern"),'chaine',0,'',$conf->entity);
+	header("Location: security.php");
+	exit;
+}
+
+
+
+
 
 
 
@@ -265,6 +275,113 @@ foreach ($arrayhandler as $key => $module)
 print '</table>';
 print '</form>';
 
+//if($conf->global->MAIN_SECURITY_DISABLEFORGETPASSLINK == 1)
+// Patter for Password Perso
+if ($conf->global->USER_PASSWORD_GENERATED == "Perso"){
+$var=!$var;
+
+	$tabConf = explode(";",$conf->global->USER_PASSWORD_PATTERN);
+	/*$this->length2 = $tabConf[0];
+	$this->NbMaj = $tabConf[1];
+	$this->NbNum = $tabConf[2];
+	$this->NbSpe = $tabConf[3];
+	$this->NbRepeat = $tabConf[4];
+	$this->WithoutAmbi = $tabConf[5];
+	*/
+	print '<table class="noborder" width="100%">';
+	print '<tr class="liste_titre">';
+	print '<td colspan="3"> '.$langs->trans("PasswordPatternDesc").'</td>';
+	print '</tr>';
+
+	$var=!$var;
+	print "<tr ".$bc[$var].">";
+	print '<td>' . $langs->trans("MinLength")."</td>";
+	print '<td colspan="2"><input type="number" value="'.$tabConf[0].'" id="minlenght" min="1"></td>';
+	print '</tr>';
+
+	$var=!$var;
+	print "<tr ".$bc[$var].">";
+	print '<td>' . $langs->trans("NbMajMin")."</td>";
+	print '<td colspan="2"><input type="number" value="'.$tabConf[1].'" id="NbMajMin" min="0"></td>';
+	print '</tr>';
+
+	$var=!$var;
+	print "<tr ".$bc[$var].">";
+	print '<td>' . $langs->trans("NbNumMin")."</td>";
+	print '<td colspan="2"><input type="number" value="'.$tabConf[2].'" id="NbNumMin" min="0"></td>';
+	print '</tr>';
+
+	$var=!$var;
+	print "<tr ".$bc[$var].">";
+	print '<td>' . $langs->trans("NbSpeMin")."</td>";
+	print '<td colspan="2"><input type="number" value="'.$tabConf[3].'" id="NbSpeMin" min="0"></td>';
+	print '</tr>';
+
+	$var=!$var;
+	print "<tr ".$bc[$var].">";
+	print '<td>' . $langs->trans("NbIteConsecutive")."</td>";
+	print '<td colspan="2"><input type="number" value="'.$tabConf[4].'" id="NbIteConsecutive" min="0"></td>';
+	print '</tr>';
+
+	$var=!$var;
+	print "<tr ".$bc[$var].">";
+	print '<td>' . $langs->trans("NoAmbiCaracAutoGeneration")."</td>";
+	print '<td colspan="2"><input type="checkbox" id="NoAmbiCaracAutoGeneration" '.($tabConf[5] ? "checked" : "").' min="0"> <span id="textcheckbox">'.($tabConf[5] ? $langs->trans("Activated") : $langs->trans("Disabled")).'</span></td>';
+	print '</tr>';
+
+	$var=!$var;
+	print "<tr ".$bc[$var].">";
+	print '<td colspan="2"></td><td width="103" align="center"><a id="linkChangePattern">'.$langs->trans("Save").'</a></td>';
+	print '</tr>';
+	print '</table>';
+
+	print '<script type="text/javascript">';
+	print '	function getStringArg(){';
+	print '		var pattern = "";';
+	print '		pattern += $("#minlenght").val() + ";";';
+	print '		pattern += $("#NbMajMin").val() + ";";';
+	print '		pattern += $("#NbNumMin").val() + ";";';
+	print '		pattern += $("#NbSpeMin").val() + ";";';
+	print '		pattern += $("#NbIteConsecutive").val() + ";";';
+	print '		pattern += $("#NoAmbiCaracAutoGeneration")[0].checked ? "1" : "0";';
+	print '		return pattern;';
+	print '	}';
+
+	print '	function valuePossible(){';
+	print '		var length = parseInt($("#minlenght").val());';
+	print '		var length_mini = parseInt($("#NbMajMin").val()) + parseInt($("#NbNumMin").val()) + parseInt($("#NbSpeMin").val());';
+	print '		return length >= length_mini;';
+	print '	}';
+
+	print '	function generatelink(){';
+	print '		return "security.php?action=maj_pattern&pattern="+getStringArg();';
+	print '	}';
+
+	print '	function valuePatternChange(){';
+	print '		var lang_save = "'.$langs->trans("Save").'";';
+	print '		var lang_error = "'.$langs->trans("Error").'";';
+	print '		var lang_Disabled = "'.$langs->trans("Disabled").'";';
+	print '		var lang_Activated = "'.$langs->trans("Activated").'";';
+	print '		$("#textcheckbox").html($("#NoAmbiCaracAutoGeneration")[0].checked ? unescape(lang_Activated) : unescape(lang_Disabled));';
+	print '		if(valuePossible()){';
+	print '			$("#linkChangePattern").attr("href",generatelink()).text(lang_save);';
+	print '		}';
+	print '		else{';
+	print '			$("#linkChangePattern").attr("href", null).text(lang_error);';
+	print '		}';
+	print '	}';
+
+	print '	$("#minlenght").change(function(){valuePatternChange();});';
+	print '	$("#NbMajMin").change(function(){valuePatternChange();});';
+	print '	$("#NbNumMin").change(function(){valuePatternChange();});';
+	print '	$("#NbSpeMin").change(function(){valuePatternChange();});';
+	print '	$("#NbIteConsecutive").change(function(){valuePatternChange();});';
+	print '	$("#NoAmbiCaracAutoGeneration").change(function(){valuePatternChange();});';
+
+	print '</script>';
+}
+
+
 // Cryptage mot de passe
 print '<br>';
 $var=true;
diff --git a/htdocs/comm/action/document.php b/htdocs/comm/action/document.php
index 9bb3af6dcbdced5412cb002a7240f6a93a1440d1..82d88089684b273fe8dd4d003f3b9b97a90606ee 100644
--- a/htdocs/comm/action/document.php
+++ b/htdocs/comm/action/document.php
@@ -277,20 +277,14 @@ if ($object->id > 0)
 	print '<tr><td width="30%" nowrap>'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
 	print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.$totalsize.' '.$langs->trans("bytes").'</td></tr>';
 
-		print '</table>';
+	print '</table>';
 
-	print '</div>';
+	dol_fiche_end();
 
-	$modulepart = 'actions';
-	$permission = $user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create;
-	$param = '&id=' . $object->id;
-	include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
 
 
 	if ($action != 'edit')
 	{
-		print "<br>";
-
 		// Link to agenda views
 		print '<div id="agendaviewbutton">';
 		print '<form name="listactionsfiltermonth" action="'.DOL_URL_ROOT.'/comm/action/index.php" method="POST" style="float: left; padding-right: 10px;">';
@@ -330,13 +324,23 @@ if ($object->id > 0)
 		print img_picto($langs->trans("ViewCal"),'object_calendarperuser','class="hideonsmartphone"').' <input type="submit" style="min-width: 120px" class="button" name="viewperuser" value="'.$langs->trans("ViewPerUser").'">';
 		print '</form>'."\n";
 		print '</div>';
+
+		print '<div style="clear: both"></div>';
+		print "<br><br>";
 	}
+
+
+	$modulepart = 'actions';
+	$permission = $user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create;
+	$param = '&id=' . $object->id;
+	include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
 }
 else
 {
 	print $langs->trans("ErrorUnknown");
 }
 
-$db->close();
 
 llxFooter();
+
+$db->close();
diff --git a/htdocs/comm/action/listactions.php b/htdocs/comm/action/listactions.php
index c330540cb031cad7bacab43e1bfaade51cbcc232..53243d0c165cdca47ac97db54d78b07737170818 100644
--- a/htdocs/comm/action/listactions.php
+++ b/htdocs/comm/action/listactions.php
@@ -99,6 +99,13 @@ if (! $user->rights->agenda->allactions->read || $filter=='mine')	// If no permi
 	$filterd=$user->id;
 }
 
+// Purge search criteria
+if (GETPOST("button_removefilter"))
+{
+    $datestart='';
+    $dateend='';
+}
+
 // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
 $hookmanager->initHooks(array('agendalist'));
 
@@ -278,8 +285,7 @@ if ($resql)
 	//print '<td class="liste_titre"></td>';
 	print '<td class="liste_titre"></td>';
 	print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-    //print '&nbsp; ';
-    //print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
     print '</td>';
 	print "</tr>\n";
 
diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php
index da34983779a3bd6a53057b38b16e2121df9eae94..b6c3054f3a8b2e3f2aced749786000ce11154c5c 100644
--- a/htdocs/comm/action/peruser.php
+++ b/htdocs/comm/action/peruser.php
@@ -1008,8 +1008,9 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, &
 			if ($output[0]['color']) $color2 = $output[0]['color'];
 		}
 		else if (count($cases2[$h]) > 1) $color2='222222';
-		$ids1=join(',',array_keys($cases1[$h]));
-		$ids2=join(',',array_keys($cases2[$h]));
+		$ids1='';$ids2='';
+		if (count($cases1[$h]) && array_keys($cases1[$h])) $ids1=join(',',array_keys($cases1[$h]));
+		if (count($cases2[$h]) && array_keys($cases2[$h])) $ids2=join(',',array_keys($cases2[$h]));
 		//var_dump($cases1[$h]);
 		print '<table class="nobordernopadding" width="100%">';
 		print '<tr><td '.($color1?'style="background: #'.$color1.';"':'').'class="'.($style1?$style1.' ':'').'onclickopenref'.($title1?' cursorpointer':'').'" ref="ref_'.$username->id.'_'.sprintf("%04d",$year).'_'.sprintf("%02d",$month).'_'.sprintf("%02d",$day).'_'.sprintf("%02d",$h).'_00_'.($ids1?$ids1:'none').'"'.($title1?' title="'.$title1.'"':'').'>';
diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php
index fcdda5eaaa170ed1d69c987282f641caa2296b6b..3eeef6916eb21cb6adf2c5697d73d0691234759a 100644
--- a/htdocs/comm/propal.php
+++ b/htdocs/comm/propal.php
@@ -553,146 +553,19 @@ else if ($action == 'setstatut' && $user->rights->propal->cloturer && ! GETPOST(
 	}
 }
 
-// Add file in email form
-if (GETPOST('addfile')) {
-	require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
-
-	// Set tmp user directory TODO Use a dedicated directory for temp mails files
-	$vardir = $conf->user->dir_output . "/" . $user->id;
-	$upload_dir_tmp = $vardir . '/temp';
-
-	dol_add_file_process($upload_dir_tmp, 0, 0);
-	$action = 'presend';
-}
-
-// Remove file in email form
-if (GETPOST('removedfile')) {
-	require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
-
-	// Set tmp user directory
-	$vardir = $conf->user->dir_output . "/" . $user->id;
-	$upload_dir_tmp = $vardir . '/temp';
-
-	// TODO Delete only files that was uploaded from email form
-	dol_remove_file_process($_POST['removedfile'], 0);
-	$action = 'presend';
-}
 
 /*
  * Send mail
  */
-if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! GETPOST('cancel')) {
-	$langs->load('mails');
-
-	if ($object->id > 0) {
-		if ($_POST['sendto']) {
-			// Le destinataire a ete fourni via le champ libre
-			$sendto = $_POST['sendto'];
-			$sendtoid = 0;
-		} elseif ($_POST['receiver'] != '-1') {
-			// Recipient was provided from combo list
-			if ($_POST['receiver'] == 'thirdparty') 			// Id of third party
-			{
-				$sendto = $object->thirdparty->email;
-				$sendtoid = 0;
-			} else 			// Id du contact
-			{
-				$sendto = $object->thirdparty->contact_get_property($_POST['receiver'], 'email');
-				$sendtoid = $_POST['receiver'];
-			}
-		}
 
-		if (dol_strlen($sendto)) {
-			$langs->load("commercial");
+// Actions to send emails
+$actiontypecode='AC_PROP';
+$trigger_name='PROPAL_SENTBYMAIL';
+$paramname='id';
+$mode='emailfromproposal';
+include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
 
-			$from = $_POST['fromname'] . ' <' . $_POST['frommail'] . '>';
-			$replyto = $_POST['replytoname'] . ' <' . $_POST['replytomail'] . '>';
-			$message = $_POST['message'];
-			$sendtocc = $_POST['sendtocc'];
-			$sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO);
-			$deliveryreceipt = $_POST['deliveryreceipt'];
 
-			if (dol_strlen($_POST['subject']))
-				$subject = $_POST['subject'];
-			else
-				$subject = $langs->transnoentities('Propal') . ' ' . $object->ref;
-			$actiontypecode = 'AC_PROP';
-			$actionmsg = $langs->transnoentities('MailSentBy') . ' ' . $from . ' ' . $langs->transnoentities('To') . ' ' . $sendto;
-			if ($message) {
-				if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
-				$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
-				$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
-				$actionmsg = dol_concatdesc($actionmsg, $message);
-			}
-			$actionmsg2 = $langs->transnoentities('Action' . $actiontypecode);
-
-			// Create form object
-			include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
-			$formmail = new FormMail($db);
-
-			$attachedfiles = $formmail->get_attached_files();
-			$filepath = $attachedfiles ['paths'];
-			$filename = $attachedfiles ['names'];
-			$mimetype = $attachedfiles ['mimes'];
-
-			// Envoi de la propal
-			require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php';
-			$mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, $sendtobcc, $deliveryreceipt, - 1);
-			if ($mailfile->error) {
-				setEventMessage($mailfile->error, 'errors');
-			} else {
-				$result = $mailfile->sendfile();
-				if ($result) {
-					// Initialisation donnees
-					$object->sendtoid = $sendtoid;
-					$object->actiontypecode = $actiontypecode;
-					$object->actionmsg = $actionmsg;
-					$object->actionmsg2 = $actionmsg2;
-					$object->fk_element = $object->id;
-					$object->elementtype = $object->element;
-
-					// Appel des triggers
-					include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
-					$interface = new Interfaces($db);
-					$result = $interface->run_triggers('PROPAL_SENTBYMAIL', $object, $user, $langs, $conf);
-					if ($result < 0) {
-						$error++;
-						$object->errors = $interface->errors;
-					}
-					// Fin appel triggers
-
-					if (! $error) {
-						// Redirect here
-						// This avoid sending mail twice if going out and then back to page
-						$mesg = $langs->trans('MailSuccessfulySent', $mailfile->getValidAddress($from, 2), $mailfile->getValidAddress($sendto, 2));
-						setEventMessage($mesg);
-						header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
-						exit();
-					} else {
-						dol_print_error($db);
-					}
-				} else {
-					$langs->load("other");
-					if ($mailfile->error) {
-						$mesg .= $langs->trans('ErrorFailedToSendMail', $from, $sendto);
-						$mesg .= '<br>' . $mailfile->error;
-					} else {
-						$mesg .= 'No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS';
-					}
-					setEventMessage($mesg, 'errors');
-				}
-			}
-		} else {
-			$langs->load("other");
-			setEventMessage($langs->trans('ErrorMailRecipientIsEmpty') . '!', 'errors');
-			dol_syslog($langs->trans('ErrorMailRecipientIsEmpty'));
-		}
-	} else {
-		$langs->load("other");
-		setEventMessage($langs->trans('ErrorFailedToReadEntity', $langs->trans("Proposal")), 'errors');
-		dol_syslog($langs->trans('ErrorFailedToReadEntity', $langs->trans("Proposal")));
-	}
-}
 
 // Go back to draft
 if ($action == 'modif' && $user->rights->propal->creer)
diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php
index 6522a592097946c2a8445cddabe905e2583c503d..96d633bd83496689d5a7bf989ecb79568bf9de2c 100644
--- a/htdocs/comm/propal/list.php
+++ b/htdocs/comm/propal/list.php
@@ -322,7 +322,9 @@ if ($result)
 	print '<td class="liste_titre" align="right">';
 	$formpropal->selectProposalStatus($viewstatut,1);
 	print '</td>';
-	print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<td class="liste_titre" align="right">';
+	print '<input type="image" value="button_search" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" value="button_removefilter" class="liste_titre" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
 	print '</td>';
 	print "</tr>\n";
 
diff --git a/htdocs/comm/prospect/list.php b/htdocs/comm/prospect/list.php
index 94286ee4c53e8b3612434bbaf3525e53d808bf74..113618ffae893fae54a44b04fedbc0a149926f46 100644
--- a/htdocs/comm/prospect/list.php
+++ b/htdocs/comm/prospect/list.php
@@ -48,7 +48,6 @@ $search_state       = GETPOST("search_state");
 $search_datec       = GETPOST("search_datec");
 $search_categ       = GETPOST("search_categ",'int');
 $search_status		= GETPOST("search_status",'int');
-if ($search_status=='') $search_status=1; // always display activ customer first
 $catid              = GETPOST("catid",'int');
 
 $sortfield = GETPOST("sortfield",'alpha');
@@ -154,6 +153,21 @@ $sts = array(-1,0,1,2,3);
 // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
 $hookmanager->initHooks(array('prospectlist'));
 
+// Do we click on purge search criteria ?
+if (GETPOST("button_removefilter_x"))
+{
+    $socname="";
+	$stcomm="";
+	$search_nom="";
+	$search_zipcode="";
+	$search_town="";
+	$search_state="";
+	$search_datec="";
+	$search_categ="";
+	$search_status="";
+}
+
+if ($search_status=='') $search_status=1; // always display active customer first
 
 /*
  * Actions
@@ -361,7 +375,7 @@ if ($resql)
  	// Print these two select
  	print $langs->trans("From").' <select class="flat" name="search_level_from">'.$options_from.'</select>';
  	print ' ';
- 	print $langs->trans("To").' <select class="flat" name="search_level_to">'.$options_to.'</select>';
+ 	print $langs->trans("to").' <select class="flat" name="search_level_to">'.$options_to.'</select>';
 
     print '</td>';
 
@@ -378,9 +392,9 @@ if ($resql)
     print '</td>';
 
     // Print the search button
-    print '<td class="liste_titre" align="right">';
-	print '<input class="liste_titre" name="button_search" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-	print '</td>';
+    print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+    print "</td></tr>\n";
 
 	$parameters=array();
 	$formconfirm=$hookmanager->executeHooks('printFieldListOption',$parameters);    // Note that $action and $object may have been modified by hook
diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php
index 792da64a9232dde5bac3b49f37e33784df4ea64e..4bf1eceb6dc8c0e96cdf19c123a88c38ca876ce4 100644
--- a/htdocs/commande/card.php
+++ b/htdocs/commande/card.php
@@ -1151,162 +1151,18 @@ else if ($action == 'update_extras') {
 		$action = 'edit_extras';
 }
 
-/*
- * Add file in email form
- */
-if (GETPOST('addfile')) {
-	require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
-
-	// Set tmp user directory TODO Use a dedicated directory for temp mails files
-	$vardir = $conf->user->dir_output . "/" . $user->id;
-	$upload_dir_tmp = $vardir . '/temp';
-
-	dol_add_file_process($upload_dir_tmp, 0, 0);
-	$action = 'presend';
-}
-
-/*
- * Remove file in email form
- */
-if (GETPOST('removedfile')) {
-	require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
-
-	// Set tmp user directory
-	$vardir = $conf->user->dir_output . "/" . $user->id;
-	$upload_dir_tmp = $vardir . '/temp';
-
-	// TODO Delete only files that was uploaded from email form
-	dol_remove_file_process(GETPOST('removedfile'), 0);
-	$action = 'presend';
-}
-
 /*
  * Send mail
  */
-if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! GETPOST('cancel')) {
-	$langs->load('mails');
-
-	if ($object->id > 0) {
-		// $ref = dol_sanitizeFileName($object->ref);
-		// $file = $conf->commande->dir_output . '/' . $ref . '/' . $ref . '.pdf';
-
-		// if (is_readable($file))
-		// {
-		if (GETPOST('sendto')) {
-			// Le destinataire a ete fourni via le champ libre
-			$sendto = GETPOST('sendto');
-			$sendtoid = 0;
-		} elseif (GETPOST('receiver') != '-1') {
-			// Recipient was provided from combo list
-			if (GETPOST('receiver') == 'thirdparty') 			// Id of third party
-			{
-				$sendto = $object->thirdparty->email;
-				$sendtoid = 0;
-			} else 			// Id du contact
-			{
-				$sendto = $object->thirdparty->contact_get_property(GETPOST('receiver'), 'email');
-				$sendtoid = GETPOST('receiver');
-			}
-		}
-
-		if (dol_strlen($sendto)) {
-			$langs->load("commercial");
-
-			$from = GETPOST('fromname') . ' <' . GETPOST('frommail') . '>';
-			$replyto = GETPOST('replytoname') . ' <' . GETPOST('replytomail') . '>';
-			$message = GETPOST('message');
-			$sendtocc = GETPOST('sendtocc');
-			$sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO);
-			$deliveryreceipt = GETPOST('deliveryreceipt');
-
-			if ($action == 'send') {
-				if (dol_strlen(GETPOST('subject')))
-					$subject = GETPOST('subject');
-				else
-					$subject = $langs->transnoentities('Order') . ' ' . $object->ref;
-				$actiontypecode = 'AC_COM';
-				$actionmsg = $langs->transnoentities('MailSentBy') . ' ' . $from . ' ' . $langs->transnoentities('To') . ' ' . $sendto;
-				if ($message) {
-					if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
-					$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
-					$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
-					$actionmsg = dol_concatdesc($actionmsg, $message);
-				}
-				$actionmsg2 = $langs->transnoentities('Action' . $actiontypecode);
-			}
-
-			// Create form object
-			include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
-			$formmail = new FormMail($db);
 
-			$attachedfiles = $formmail->get_attached_files();
-			$filepath = $attachedfiles ['paths'];
-			$filename = $attachedfiles ['names'];
-			$mimetype = $attachedfiles ['mimes'];
+// Actions to send emails
+$actiontypecode='AC_COM';
+$trigger_name='ORDER_SENTBYMAIL';
+$paramname='id';
+$mode='emailfromorder';
+include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
 
-			// Send mail
-			require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php';
-			$mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, $sendtobcc, $deliveryreceipt, - 1);
-			if ($mailfile->error) {
-				setEventMessage($mailfile->error, 'errors');
-			} else {
-				$result = $mailfile->sendfile();
-				if ($result) {
-					//Must not contain quotes
-					$mesg = $langs->trans('MailSuccessfulySent', $mailfile->getValidAddress($from, 2), $mailfile->getValidAddress($sendto, 2));
-					setEventMessage($mesg);
-
-					$error = 0;
-
-					// Initialisation donnees
-					$object->sendtoid = $sendtoid;
-					$object->actiontypecode = $actiontypecode;
-					$object->actionmsg = $actionmsg;
-					$object->actionmsg2 = $actionmsg2;
-					$object->fk_element = $object->id;
-					$object->elementtype = $object->element;
-
-					// Appel des triggers
-					include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
-					$interface = new Interfaces($db);
-					$result = $interface->run_triggers('ORDER_SENTBYMAIL', $object, $user, $langs, $conf);
-					if ($result < 0) {
-						$error ++;
-						$this->errors = $interface->errors;
-					}
-					// Fin appel triggers
-
-					if ($error) {
-						dol_print_error($db);
-					} else {
-						// Redirect here
-						// This avoid sending mail twice if going out and then back to page
-						header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
-						exit();
-					}
-				} else {
-					$langs->load("other");
-					if ($mailfile->error) {
-						$mesg .= $langs->trans('ErrorFailedToSendMail', $from, $sendto);
-						$mesg .= '<br>' . $mailfile->error;
-					} else {
-						$mesg .= 'No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS';
-					}
 
-					setEventMessage($mesg, 'errors');
-				}
-			}
-		} else {
-			$langs->load("other");
-			setEventMessage($langs->trans('ErrorMailRecipientIsEmpty') . '!', 'errors');
-			dol_syslog($langs->trans('ErrorMailRecipientIsEmpty'));
-		}
-	} else {
-		$langs->load("other");
-		setEventMessage($langs->trans('ErrorFailedToReadEntity', $langs->trans("Order")), 'errors');
-		dol_syslog($langs->trans('ErrorFailedToReadEntity', $langs->trans("Order")));
-	}
-}
 
 if (! $error && ! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->commande->creer) {
 	if ($action == 'addcontact') {
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index 84f8e455d11e79fb02d91239cc074d9da0159b57..ea17d895b9582b5418b3cb6dad14ecf70a9e2434 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -43,9 +43,9 @@ $orderyear=GETPOST("orderyear","int");
 $ordermonth=GETPOST("ordermonth","int");
 $deliveryyear=GETPOST("deliveryyear","int");
 $deliverymonth=GETPOST("deliverymonth","int");
-$sref=GETPOST('sref','alpha');
-$sref_client=GETPOST('sref_client','alpha');
-$snom=GETPOST('snom','alpha');
+$search_ref=GETPOST('search_ref','alpha');
+$search_ref_customer=GETPOST('search_ref_customer','alpha');
+$search_company=GETPOST('search_company','alpha');
 $sall=GETPOST('sall');
 $socid=GETPOST('socid','int');
 $search_user=GETPOST('search_user','int');
@@ -69,35 +69,31 @@ $limit = $conf->liste_limit;
 
 $viewstatut=GETPOST('viewstatut');
 
-
-// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
-$hookmanager->initHooks(array('orderlist'));
-
-/*
- * Actions
- */
-
-$parameters=array('socid'=>$socid);
-$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hook
-if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
-
-// Do we click on purge search criteria ?
-if (GETPOST("button_removefilter_x"))
+// Purge search criteria
+if (GETPOST("button_removefilter"))
 {
     $search_categ='';
     $search_user='';
     $search_sale='';
     $search_ref='';
-    $search_refcustomer='';
-    $search_societe='';
-    $search_montant_ht='';
+    $search_ref_customer='';
+    $search_company='';
     $orderyear='';
     $ordermonth='';
     $deliverymonth='';
     $deliveryyear='';
 }
 
+// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
+$hookmanager->initHooks(array('orderlist'));
 
+/*
+ * Actions
+ */
+
+$parameters=array('socid'=>$socid);
+$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hook
+if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
 
 /*
  * View
@@ -128,8 +124,8 @@ $sql.= ' WHERE c.fk_soc = s.rowid';
 $sql.= ' AND c.entity = '.$conf->entity;
 if ($socid)	$sql.= ' AND s.rowid = '.$socid;
 if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
-if ($sref) {
-	$sql .= natural_search('c.ref', $sref);
+if ($search_ref) {
+	$sql .= natural_search('c.ref', $search_ref);
 }
 if ($sall)
 {
@@ -188,13 +184,13 @@ else if ($deliveryyear > 0)
 {
     $sql.= " AND c.date_livraison BETWEEN '".$db->idate(dol_get_first_day($deliveryyear,1,false))."' AND '".$db->idate(dol_get_last_day($deliveryyear,12,false))."'";
 }
-if (!empty($snom))
+if (!empty($search_company))
 {
-	$sql .= natural_search('s.nom', $snom);
+	$sql .= natural_search('s.nom', $search_company);
 }
-if (!empty($sref_client))
+if (!empty($search_ref_customer))
 {
-	$sql.= ' AND c.ref_client LIKE \'%'.$db->escape($sref_client).'%\'';
+	$sql.= ' AND c.ref_client LIKE \'%'.$db->escape($search_ref_customer).'%\'';
 }
 if ($search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale;
 if ($search_user > 0)
@@ -246,15 +242,15 @@ if ($resql)
 	$title.=' - '.$langs->trans('StatusOrderValidated').', '.(empty($conf->expedition->enabled)?'':$langs->trans("StatusOrderSent").', ').$langs->trans('StatusOrderToBill');
 
 	$param='&socid='.$socid.'&viewstatut='.$viewstatut;
-	if ($ordermonth)      $param.='&ordermonth='.$ordermonth;
-	if ($orderyear)       $param.='&orderyear='.$orderyear;
-	if ($deliverymonth)   $param.='&deliverymonth='.$deliverymonth;
-	if ($deliveryyear)    $param.='&deliveryyear='.$deliveryyear;
-	if ($sref)            $param.='&sref='.$sref;
-	if ($snom)            $param.='&snom='.$snom;
-	if ($sref_client)     $param.='&sref_client='.$sref_client;
-	if ($search_user > 0) $param.='&search_user='.$search_user;
-	if ($search_sale > 0) $param.='&search_sale='.$search_sale;
+	if ($ordermonth)      		$param.='&ordermonth='.$ordermonth;
+	if ($orderyear)       		$param.='&orderyear='.$orderyear;
+	if ($deliverymonth)   		$param.='&deliverymonth='.$deliverymonth;
+	if ($deliveryyear)    		$param.='&deliveryyear='.$deliveryyear;
+	if ($search_ref)      		$param.='&search_ref='.$search_ref;
+	if ($search_company)  		$param.='&search_company='.$search_company;
+	if ($search_ref_customer)	$param.='&search_ref_customer='.$search_ref_customer;
+	if ($search_user > 0) 		$param.='&search_user='.$search_user;
+	if ($search_sale > 0) 		$param.='&search_sale='.$search_sale;
 
 	$num = $db->num_rows($resql);
 	print_barre_liste($title, $page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
@@ -294,33 +290,35 @@ if ($resql)
 	print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'c.ref','',$param,'width="25%"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('RefCustomerOrder'),$_SERVER["PHP_SELF"],'c.ref_client','',$param,'',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('Company'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans('OrderDate'),$_SERVER["PHP_SELF"],'c.date_commande','',$param, 'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans('DeliveryDate'),$_SERVER["PHP_SELF"],'c.date_livraison','',$param, 'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans('OrderDate'),$_SERVER["PHP_SELF"],'c.date_commande','',$param, 'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans('DeliveryDate'),$_SERVER["PHP_SELF"],'c.date_livraison','',$param, 'align="center"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('AmountHT'),$_SERVER["PHP_SELF"],'c.total_ht','',$param, 'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('Status'),$_SERVER["PHP_SELF"],'c.fk_statut','',$param,'align="right"',$sortfield,$sortorder);
 	print '</tr>';
+	
 	print '<tr class="liste_titre">';
 	print '<td class="liste_titre">';
-	print '<input class="flat" size="6" type="text" name="sref" value="'.$sref.'">';
+	print '<input class="flat" size="6" type="text" name="search_ref" value="'.$search_ref.'">';
 	print '</td>';
 	print '<td class="liste_titre" align="left">';
-	print '<input class="flat" type="text" size="6" name="sref_client" value="'.$sref_client.'">';
+	print '<input class="flat" type="text" size="6" name="search_ref_customer" value="'.$search_ref_customer.'">';
 	print '</td>';
 	print '<td class="liste_titre" align="left">';
-	print '<input class="flat" type="text" name="snom" value="'.$snom.'">';
+	print '<input class="flat" type="text" name="search_company" value="'.$search_company.'">';
 	print '</td>';
-	print '<td class="liste_titre">';
+	print '<td class="liste_titre" align="center">';
     if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="orderday" value="'.$orderday.'">';
     print '<input class="flat" type="text" size="1" maxlength="2" name="ordermonth" value="'.$ordermonth.'">';
     $formother->select_year($orderyear?$orderyear:-1,'orderyear',1, 20, 5);
-	print '</td><td class="liste_titre">';
+	print '</td><td class="liste_titre" align="center">';
     if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="deliveryday" value="'.$deliveryday.'">';
     print '<input class="flat" type="text" size="1" maxlength="2" name="deliverymonth" value="'.$deliverymonth.'">';
     $formother->select_year($deliveryyear?$deliveryyear:-1,'deliveryyear',1, 20, 5);
-	print '</td><td class="liste_titre">&nbsp;';
-	print '</td><td align="right" class="liste_titre">';
-	print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'"  value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-	print '</td></tr>';
+	print '</td>';
+	print '<td class="liste_titre">&nbsp;</td>';
+	print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+	print "</td></tr>\n";
 
 	$var=true;
 	$total=0;
@@ -443,12 +441,12 @@ if ($resql)
 		print '</td>';
 
 		// Order date
-		print '<td align="right">';
+		print '<td align="center">';
 		print dol_print_date($db->jdate($objp->date_commande), 'day');
 		print '</td>';
 
 		// Delivery date
-		print '<td align="right">';
+		print '<td align="center">';
 		print dol_print_date($db->jdate($objp->date_livraison), 'day');
 		print '</td>';
 
diff --git a/htdocs/compta/bank/search.php b/htdocs/compta/bank/search.php
index 25b7d91a3ffa80a83629c29b0cb35f4d14f9228c..1e8196481e6ddc1b4e0a11e26c19b4335c09d322 100644
--- a/htdocs/compta/bank/search.php
+++ b/htdocs/compta/bank/search.php
@@ -35,6 +35,7 @@ require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php';
 $langs->load("banks");
 $langs->load("categories");
 $langs->load("companies");
+$langs->load("margins");
 
 // Security check
 if ($user->societe_id) $socid=$user->societe_id;
@@ -72,6 +73,15 @@ $limit = $conf->liste_limit;
 if (! $sortorder) $sortorder='DESC';
 if (! $sortfield) $sortfield='b.dateo';
 
+if (GETPOST("button_removefilter"))
+{
+	$description="";
+	$type="";
+	$debit="";
+	$credit="";
+	$account="";
+	$bid="";
+}
 
 /*
  * View
@@ -198,7 +208,7 @@ if ($resql)
     print '<td class="liste_titre">&nbsp;</td>';
     print '<td class="liste_titre">&nbsp;</td>';
     print '<td class="liste_titre" align="center">';
-    $form->select_types_paiements(empty($_REQUEST["type"])?'':$_REQUEST["type"], 'type', '', 2, 0, 1, 8);
+    $form->select_types_paiements(empty($type)?'':$type, 'type', '', 2, 0, 1, 8);
     print '</td>';
     print '<td class="liste_titre"><input type="text" class="flat" name="req_nb" value="'.GETPOST("req_nb").'" size="2"></td>';
     print '<td class="liste_titre">';
@@ -214,9 +224,9 @@ if ($resql)
 	print '<td class="liste_titre" align="right">';
 	print '<input type="hidden" name="action" value="search">';
 	if (! empty($_REQUEST['bid'])) print '<input type="hidden" name="bid" value="'.$_REQUEST["bid"].'">';
-	print '<input type="image" class="liste_titre" name="submit" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-	print '</td>';
-	print '</tr>';
+	print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+	print "</td></tr>\n";
 
 	// Loop on each record
 	$total_debit=0;
diff --git a/htdocs/compta/deplacement/list.php b/htdocs/compta/deplacement/list.php
index bb2c50b42bf704ef8661045a81828e6d69d33558..42a6713c1ce56d58e739931c563e57e64e32ab48 100644
--- a/htdocs/compta/deplacement/list.php
+++ b/htdocs/compta/deplacement/list.php
@@ -27,6 +27,8 @@
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php';
 require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
 
 $langs->load("companies");
 $langs->load("users");
@@ -37,6 +39,10 @@ $socid = GETPOST('socid','int');
 if ($user->societe_id) $socid=$user->societe_id;
 $result = restrictedArea($user, 'deplacement','','');
 
+$search_ref=GETPOST('search_ref','int');
+$search_name=GETPOST('search_name','alpha');
+$search_company=GETPOST('search_company','alpha');
+// $search_amount=GETPOST('search_amount','alpha');
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 $page = GETPOST("page",'int');
@@ -48,13 +54,24 @@ if (! $sortorder) $sortorder="DESC";
 if (! $sortfield) $sortfield="d.dated";
 $limit = $conf->liste_limit;
 
-$search_ref=GETPOST('search_ref','alpha');
+$year=GETPOST("year");
+$month=GETPOST("month");
 
+if (GETPOST("button_removefilter"))
+{
+	$search_ref="";
+	$search_name="";
+	$search_company="";
+	// $search_amount="";
+	$year="";
+	$month="";
+}
 
 /*
  * View
  */
 
+$formother = new FormOther($db);
 $tripandexpense_static=new Deplacement($db);
 $userstatic = new User($db);
 
@@ -76,10 +93,31 @@ $sql.= " AND d.entity = ".$conf->entity;
 if (empty($user->rights->deplacement->readall) && empty($user->rights->deplacement->lire_tous)) $sql.=' AND d.fk_user IN ('.join(',',$childids).')';
 if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND sc.fk_user = " .$user->id;
 if ($socid) $sql.= " AND s.rowid = ".$socid;
-if (trim($search_ref) != '')
+
+if ($search_ref)		$sql.=" AND d.rowid=".$search_ref;
+if ($search_name)
+{
+    $sql .= natural_search('u.lastname', $search_name);
+}
+if ($search_company)
+{
+    $sql .= natural_search('s.nom', $search_company);
+}
+// if ($search_amount)		$sql.=" AND d.km='".$db->escape(price2num(trim($search_amount)))."'";
+if ($month > 0)
+{
+    if ($year > 0 && empty($day))
+    $sql.= " AND d.dated BETWEEN '".$db->idate(dol_get_first_day($year,$month,false))."' AND '".$db->idate(dol_get_last_day($year,$month,false))."'";
+    else if ($year > 0 && ! empty($day))
+    $sql.= " AND d.dated BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month, $day, $year))."' AND '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year))."'";
+    else
+    $sql.= " AND date_format(d.dated, '%m') = '".$month."'";
+}
+else if ($year > 0)
 {
-    $sql.= ' AND d.rowid LIKE \'%'.$db->escape(trim($search_ref)) . '%\'';
+	$sql.= " AND d.dated BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
 }
+
 $sql.= $db->order($sortfield,$sortorder);
 $sql.= $db->plimit($limit + 1, $offset);
 
@@ -97,7 +135,7 @@ if ($resql)
     print "<tr class=\"liste_titre\">";
     print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"d.rowid","","&socid=$socid",'',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"d.type","","&socid=$socid",'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"d.dated","","&socid=$socid",'',$sortfield,$sortorder);
+    print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"d.dated","","&socid=$socid",'align="center"',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans("Person"),$_SERVER["PHP_SELF"],"u.lastname","","&socid=$socid",'',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","&socid=$socid",'',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans("FeesKilometersOrAmout"),$_SERVER["PHP_SELF"],"d.km","","&socid=$socid",'align="right"',$sortfield,$sortorder);
@@ -107,24 +145,27 @@ if ($resql)
     // Filters lines
     print '<tr class="liste_titre">';
     print '<td class="liste_titre">';
-    print '<input class="flat" size="10" type="text" name="search_ref" value="'.$search_ref.'">';
+    print '<input class="flat" size="4" type="text" name="search_ref" value="'.$search_ref.'">';
     print '</td>';
     print '<td class="liste_titre">';
-    //print '<input class="flat" size="10" type="text" name="search_company" value="'.$search_company.'">';
+    print '&nbsp;';
     print '</td>';
-    print '<td class="liste_titre">';
-    //print '<input class="flat" size="10" type="text" name="search_name" value="'.$search_name.'">';
+    print '<td class="liste_titre" align="center">';
+    if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="'.$day.'">';
+    print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
+    $formother->select_year($year?$year:-1,'year',1, 20, 5);
     print '</td>';
-    print '<td class="liste_titre" align="left">';
-    print '&nbsp;';
+    print '<td class="liste_titre">';
+    print '<input class="flat" size="10" type="text" name="search_name" value="'.$search_name.'">';
     print '</td>';
-    print '<td class="liste_titre" align="right">';
-    print '&nbsp;';
+    print '<td class="liste_titre">';
+    print '<input class="flat" size="10" type="text" name="search_company" value="'.$search_company.'">';
     print '</td>';
     print '<td class="liste_titre" align="right">';
-    print '&nbsp;';
+    // print '<input class="flat" size="10" type="text" name="search_amount" value="'.$search_amount.'">';
     print '</td>';
     print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
     print "</td></tr>\n";
 
     $var=true;
@@ -142,9 +183,9 @@ if ($resql)
         // Type
         print '<td>'.$langs->trans($obj->type).'</td>';
         // Date
-        print '<td>'.dol_print_date($db->jdate($obj->dd),'day').'</td>';
+        print '<td align="center">'.dol_print_date($db->jdate($obj->dd),'day').'</td>';
         // User
-        print '<td align="left">';
+        print '<td>';
         $userstatic->id = $obj->rowid;
         $userstatic->lastname = $obj->lastname;
         $userstatic->firstname = $obj->firstname;
diff --git a/htdocs/compta/dons/list.php b/htdocs/compta/dons/list.php
index badc71c96e2fd04680755152dcefe50f329348bd..174b5357bb218717dcee7a3134a615e507d8c64e 100644
--- a/htdocs/compta/dons/list.php
+++ b/htdocs/compta/dons/list.php
@@ -43,12 +43,20 @@ if (! $sortfield) $sortfield="d.datedon";
 $limit = $conf->liste_limit;
 
 $statut=isset($_GET["statut"])?$_GET["statut"]:"-1";
-$search_ref=GETPOST('search_ref');
-$search_company=GETPOST('search_company');
-$search_name=GETPOST('search_name');
+$search_ref=GETPOST('search_ref','alpha');
+$search_company=GETPOST('search_company','alpha');
+$search_name=GETPOST('search_name','alpha');
+$search_amount = GETPOST('search_amount','alpha');
 
 if (!$user->rights->don->lire) accessforbidden();
 
+if (GETPOST("button_removefilter"))
+{
+	$search_ref="";
+	$search_company="";
+	$search_name="";
+	$search_amount="";
+}
 
 /*
  * View
@@ -82,6 +90,8 @@ if (trim($search_name) != '')
 {
     $sql .= natural_search(array('d.lastname', 'd.firstname'), $search_name);
 }
+if ($search_amount) $sql.=" AND d.amount='".$db->escape(price2num(trim($search_amount)))."'";
+
 $sql.= $db->order($sortfield,$sortorder);
 $sql.= $db->plimit($limit+1, $offset);
 
@@ -141,11 +151,10 @@ if ($resql)
         print '&nbsp;';
         print '</td>';
     }
-    print '<td class="liste_titre" align="right">';
-    print '&nbsp;';
-    print '</td>';
+    print '<td class="liste_titre" align="right"><input name="search_amount" class="flat" type="text" size="8" value="'.$search_amount.'"></td>';
     print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-    print "</td></tr>\n";
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+	print "</td></tr>\n";
 
 	$var=True;
 	while ($i < min($num,$limit))
diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index 2ba425f5a90cafacfdca02a6492d83638f80e513..9d003ae0aa7e7f9c88d05d9573b23d5b0e28dda9 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -1550,178 +1550,24 @@ if (GETPOST('linkedOrder')) {
 	$result = $object->add_object_linked('commande', GETPOST('linkedOrder'));
 }
 
-/*
- * Add file in email form
- */
-if (GETPOST('addfile')) {
-	require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
-
-	// Set tmp user directory
-	$vardir = $conf->user->dir_output . "/" . $user->id;
-	$upload_dir_tmp = $vardir . '/temp';
-
-	dol_add_file_process($upload_dir_tmp, 0, 0);
-	$action = 'presend';
-}
-
-/*
- * Remove file in email form
- */
-if (! empty($_POST['removedfile'])) {
-	require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
-
-	// Set tmp user directory
-	$vardir = $conf->user->dir_output . "/" . $user->id;
-	$upload_dir_tmp = $vardir . '/temp';
-
-	// TODO Delete only files that was uploaded from email form
-	dol_remove_file_process($_POST['removedfile'], 0);
-	$action = 'presend';
-}
 
 /*
  * Send mail
  */
-if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_POST['cancel']) {
-	$langs->load('mails');
-
-	$actiontypecode = '';
-	$subject = '';
-	$actionmsg = '';
-	$actionmsg2 = '';
-
-	$result = $object->fetch($id);
-	$result = $object->fetch_thirdparty();
-
-	if ($result > 0) {
-		// $ref = dol_sanitizeFileName($object->ref);
-		// $file = $conf->facture->dir_output . '/' . $ref . '/' . $ref . '.pdf';
-
-		// if (is_readable($file))
-		// {
-		if ($_POST['sendto']) {
-			// Le destinataire a ete fourni via le champ libre
-			$sendto = $_POST['sendto'];
-			$sendtoid = 0;
-		} elseif ($_POST['receiver'] != '-1') {
-			// Recipient was provided from combo list
-			if ($_POST['receiver'] == 'thirdparty') 			// Id of third party
-			{
-				$sendto = $object->thirdparty->email;
-				$sendtoid = 0;
-			} else 			// Id du contact
-			{
-				$sendto = $object->thirdparty->contact_get_property($_POST['receiver'], 'email');
-				$sendtoid = $_POST['receiver'];
-			}
-		}
-		
-		if (dol_strlen($sendto)) 
-		{
-			$langs->load("commercial");
-
-			$from = $_POST['fromname'] . ' <' . $_POST['frommail'] . '>';
-			$replyto = $_POST['replytoname'] . ' <' . $_POST['replytomail'] . '>';
-			$message = $_POST['message'];
-			$sendtocc = $_POST['sendtocc'];
-			$sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO);
-			$deliveryreceipt = $_POST['deliveryreceipt'];
 
-			if ($action == 'send' || $action == 'relance') 
-			{
-				if (dol_strlen($_POST['subject']))
-					$subject = $_POST['subject'];
-				else
-					$subject = $langs->transnoentities('Bill') . ' ' . $object->ref;
-				$actiontypecode = 'AC_FAC';
-				$actionmsg = $langs->transnoentities('MailSentBy') . ' ' . $from . ' ' . $langs->transnoentities('To') . ' ' . $sendto;
-				if ($message) {
-					if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
-					$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
-					$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
-					$actionmsg = dol_concatdesc($actionmsg, $message);
-				}
-				// $actionmsg2=$langs->transnoentities('Action'.$actiontypecode);
-			}
-
-			// Create form object
-			include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
-			$formmail = new FormMail($db);
-
-			$attachedfiles = $formmail->get_attached_files();
-			$filepath = $attachedfiles['paths'];
-			$filename = $attachedfiles['names'];
-			$mimetype = $attachedfiles['mimes'];
-
-			// Send mail
-			require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php';
-			$mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, $sendtobcc, $deliveryreceipt, - 1);
-			if ($mailfile->error) {
-				setEventMessage($mailfile->error, 'errors');
-			} else {
-				$result = $mailfile->sendfile();
-				if ($result) {
-					$error = 0;
-
-					// Initialisation donnees
-					$object->sendtoid = $sendtoid;
-					$object->actiontypecode = $actiontypecode;
-					$object->actionmsg = $actionmsg; // Long text
-					$object->actionmsg2 = $actionmsg2; // Short text
-					$object->fk_element = $object->id;
-					$object->elementtype = $object->element;
-
-					// Appel des triggers
-					include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
-					$interface = new Interfaces($db);
-					$result = $interface->run_triggers('BILL_SENTBYMAIL', $object, $user, $langs, $conf);
-					if ($result < 0) {
-						$error++;
-						$object->errors = $interface->errors;
-					}
-					// Fin appel triggers
-
-					if ($error) {
-						dol_print_error($db);
-					} else {
-						// Redirect here
-						// This avoid sending mail twice if going out and then back to page
-						$mesg = $langs->trans('MailSuccessfulySent', $mailfile->getValidAddress($from, 2), $mailfile->getValidAddress($sendto, 2));
-						setEventMessage($mesg);
-						header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id);
-						exit();
-					}
-				} else {
-					$langs->load("other");
+// Actions to send emails
+if (empty($id)) $id=$facid;
+$actiontypecode='AC_FAC';
+$trigger_name='BILL_SENTBYMAIL';
+$paramname='id';
+$mode='emailfrominvoice';
+include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
 
-					if ($mailfile->error) {
-						$mesg .= $langs->trans('ErrorFailedToSendMail', $from, $sendto);
-						$mesg .= '<br>' . $mailfile->error;
-					} else {
-						$mesg .= 'No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS';
-					}
-
-					setEventMessage($mesg, 'errors');
-				}
-			}
-		} else {
-			$langs->load("other");
-			setEventMessage($langs->trans('ErrorMailRecipientIsEmpty') . '!', 'errors');
-			dol_syslog($langs->trans('ErrorMailRecipientIsEmpty'));
-		}
-	} else {
-		$langs->load("other");
-		setEventMessage($langs->trans('ErrorFailedToReadEntity', $langs->trans("Invoice")), 'errors');
-		dol_syslog('Impossible de lire les donnees de la facture. Le fichier facture n\'a peut-etre pas ete genere.');
-	}
-
-	$action = 'presend';
-}
 
 /*
  * Generate document
  */
-else if ($action == 'builddoc') // En get ou en post
+if ($action == 'builddoc') // En get ou en post
 {
 	$object->fetch($id);
 	$object->fetch_thirdparty();
diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php
index 55ef0a5ef80115211eb8bd3f725e9d98afb90dab..1fd4d2c80fcbd6dbf3e252fe537918eb1305f9d0 100644
--- a/htdocs/compta/facture/fiche-rec.php
+++ b/htdocs/compta/facture/fiche-rec.php
@@ -31,6 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
 require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
 
 $langs->load('bills');
+$langs->load('compta');
 
 // Security check
 $id=(GETPOST('facid','int')?GETPOST('facid','int'):GETPOST('id','int'));
diff --git a/htdocs/compta/paiement/cheque/index.php b/htdocs/compta/paiement/cheque/index.php
index 27f2cf3e2e7a47c0747c39711e9ee4940550718e..277822593336beabb527bd6205f8ae9cc1511312 100644
--- a/htdocs/compta/paiement/cheque/index.php
+++ b/htdocs/compta/paiement/cheque/index.php
@@ -90,6 +90,7 @@ else
 //print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
 print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
 
+$max=10;
 
 $sql = "SELECT bc.rowid, bc.date_bordereau as db, bc.amount, bc.number as ref";
 $sql.= ", bc.statut, bc.nbcheque";
@@ -98,8 +99,8 @@ $sql.= " FROM ".MAIN_DB_PREFIX."bordereau_cheque as bc";
 $sql.= ", ".MAIN_DB_PREFIX."bank_account as ba";
 $sql.= " WHERE ba.rowid = bc.fk_bank_account";
 $sql.= " AND bc.entity = ".$conf->entity;
-$sql.= " ORDER BY bc.rowid";
-$sql.= " DESC LIMIT 10";
+$sql.= " ORDER BY bc.date_bordereau DESC, rowid DESC";
+$sql.= $db->plimit($max);
 
 $resql = $db->query($sql);
 
@@ -107,7 +108,7 @@ if ($resql)
 {
 	print '<table class="noborder" width="100%">';
 	print '<tr class="liste_titre">';
-	print '<td>'.$langs->trans("CheckReceiptShort").'</td>';
+	print '<td>'.$langs->trans("LastCheckReceiptShort",$max).'</td>';
 	print '<td>'.$langs->trans("Date")."</td>";
 	print '<td>'.$langs->trans("Account").'</td>';
 	print '<td align="right">'.$langs->trans("NbOfCheques").'</td>';
diff --git a/htdocs/compta/paiement/cheque/list.php b/htdocs/compta/paiement/cheque/list.php
index 1699656acb13084cb4d7e06893e34c96ce824285..47a6ee8ba74c6b6d5fb025dda11440d450a684a7 100644
--- a/htdocs/compta/paiement/cheque/list.php
+++ b/htdocs/compta/paiement/cheque/list.php
@@ -38,6 +38,9 @@ $langs->load("bills");
 if ($user->societe_id) $socid=$user->societe_id;
 $result = restrictedArea($user, 'banque', '','');
 
+$search_ref = GETPOST('search_ref','int');
+$search_account = GETPOST('search_account','int');
+$search_amount = GETPOST('search_amount','alpha');
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 $page = GETPOST("page",'int');
@@ -57,6 +60,16 @@ $formother = new FormOther($db);
 $checkdepositstatic=new RemiseCheque($db);
 $accountstatic=new Account($db);
 
+// If click on purge search criteria ?
+if (GETPOST("button_removefilter_x"))
+{
+    $search_ref='';
+    $search_amount='';
+    $search_account='';
+    $year='';
+    $month='';
+}
+
 /*
  * View
  */
@@ -72,9 +85,9 @@ $sql.= " WHERE bc.fk_bank_account = ba.rowid";
 $sql.= " AND bc.entity = ".$conf->entity;
 
 // Search criteria
-if (GETPOST("search_ref"))			$sql.=" AND bc.number=".GETPOST("search_ref",'int');
-if (GETPOST("search_account") > 0)	$sql.=" AND bc.fk_bank_account=".GETPOST("search_account",'int');
-if (GETPOST("search_amount"))		$sql.=" AND bc.amount=".price2num(GETPOST("search_amount"));
+if ($search_ref)			$sql.=" AND bc.number=".$search_ref;
+if ($search_account > 0)	$sql.=" AND bc.fk_bank_account=".$search_account;
+if ($search_amount)			$sql.=" AND bc.amount='".$db->escape(price2num(trim($search_amount)))."'";
 if ($month > 0)
 {
     if ($year > 0 && empty($day))
@@ -103,7 +116,7 @@ if ($resql)
 
 	print_barre_liste($langs->trans("MenuChequeDeposits"), $page, $_SERVER["PHP_SELF"], $params, $sortfield, $sortorder, '', $num);
 
-	print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">';
+	print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
 	print '<table class="liste" width="100%">';
 	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"bc.number","",$params,"",$sortfield,$sortorder);
@@ -117,7 +130,7 @@ if ($resql)
 	// Lignes des champs de filtre
 	print '<tr class="liste_titre">';
 	print '<td class="liste_titre" align="left">';
-	print '<input class="fat" type="text" size="4" name="search_ref" value="'.GETPOST('search_ref').'">';
+	print '<input class="flat" type="text" size="4" name="search_ref" value="'.$search_ref.'">';
     print '</td>';
 	print '<td class="liste_titre" align="center">';
     if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="'.$day.'">';
@@ -125,16 +138,15 @@ if ($resql)
     $formother->select_year($year?$year:-1,'year',1, 20, 5);
     print '</td>';
     print '<td>';
-    $form->select_comptes($_REQUEST["search_account"],'search_account',0,'',1);
+    $form->select_comptes($search_account,'search_account',0,'',1);
     print '</td>';
 	print '<td class="liste_titre">&nbsp;</td>';
 	print '<td class="liste_titre" align="right">';
-	print '<input class="fat" type="text" size="6" name="search_amount" value="'.GETPOST('search_amount').'">';
+	print '<input class="flat" type="text" size="6" name="search_amount" value="'.$search_amount.'">';
 	print '</td>';
-	print '<td class="liste_titre" align="right">';
-	print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-	print '</td>';
-	print "</tr>\n";
+	print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+    print "</td></tr>\n";
 
 	$var=true;
 	while ($i < min($num,$limit))
diff --git a/htdocs/compta/paiement/list.php b/htdocs/compta/paiement/list.php
index da1f2bd28331d1deef6fbe7f09ab09a7dc3e8b52..65615b9bbf36c7338724c369aebd067bbeef9d84 100644
--- a/htdocs/compta/paiement/list.php
+++ b/htdocs/compta/paiement/list.php
@@ -42,6 +42,11 @@ $paymentstatic=new Paiement($db);
 $accountstatic=new Account($db);
 $companystatic=new Societe($db);
 
+$search_ref=GETPOST("search_ref","int");
+$search_account=GETPOST("search_account","int");
+$search_paymenttype=GETPOST("search_paymenttype");
+$search_amount=GETPOST("search_amount");
+$search_company=GETPOST("search_company");
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 $page = GETPOST("page",'int');
@@ -53,8 +58,14 @@ $limit = $conf->liste_limit;
 if (! $sortorder) $sortorder="DESC";
 if (! $sortfield) $sortfield="p.rowid";
 
-
-
+if (GETPOST("button_removefilter"))
+{
+	$search_ref="";
+	$search_account="";
+	$search_amount="";
+    $search_paymenttype="";
+	$search_company="";
+}
 
 /*
  * 	View
@@ -110,11 +121,11 @@ else
         else  $sql.= " AND f.fk_user_author = ".$userid;
     }
     // Search criteria
-    if (GETPOST("search_ref"))         		$sql .=" AND p.rowid=".GETPOST("search_ref",'int');
-    if (GETPOST("search_account") > 0)      $sql .=" AND b.fk_account=".GETPOST("search_account",'int');
-    if (GETPOST("search_paymenttype") != "")  $sql .=" AND c.code='".GETPOST("search_paymenttype")."'";
-    if (GETPOST("search_amount"))      		$sql .=" AND p.amount=".price2num(GETPOST("search_amount"));
-    if (GETPOST("search_company"))     		$sql .= natural_search('s.nom', GETPOST('search_company'));
+    if ($search_ref)         		$sql .=" AND p.rowid=".$search_ref;
+    if ($search_account > 0)      	$sql .=" AND b.fk_account=".$search_account;
+    if ($search_paymenttype != "")  $sql .=" AND c.code='".$search_paymenttype."'";
+    if ($search_amount)      		$sql .=" AND p.amount='".price2num($search_amount)."'";
+    if ($search_company)     		$sql .= natural_search('s.nom', $search_company);
 }
 $sql.= $db->order($sortfield,$sortorder);
 $sql.= $db->plimit($limit+1, $offset);
@@ -129,9 +140,9 @@ if ($resql)
 
     $paramlist='';
     $paramlist.=(GETPOST("orphelins")?"&orphelins=1":"");
-    $paramlist.=($_REQUEST["search_ref"]?"&search_ref=".$_REQUEST["search_ref"]:"");
-    $paramlist.=($_REQUEST["search_company"]?"&search_company=".$_REQUEST["search_company"]:"");
-    $paramlist.=($_REQUEST["search_amount"]?"&search_amount=".$_REQUEST["search_amount"]:"");
+    $paramlist.=($search_ref?"&search_ref=".$search_ref:"");
+    $paramlist.=($search_company?"&search_company=".$search_company:"");
+    $paramlist.=($search_amount?"&search_amount=".$search_amount:"");
 
     print_barre_liste($langs->trans("ReceivedCustomersPayments"), $page, $_SERVER["PHP_SELF"],$paramlist,$sortfield,$sortorder,'',$num);
 
@@ -149,26 +160,29 @@ if ($resql)
     {
         print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.statut","",$paramlist,'align="right"',$sortfield,$sortorder);
     }
-    print "</tr>\n";
+    print '<td class="liste_titre">&nbsp;</td>';
+	print "</tr>\n";
 
     // Lines for filters fields
     print '<tr class="liste_titre">';
     print '<td align="left">';
-    print '<input class="fat" type="text" size="4" name="search_ref" value="'.$_REQUEST["search_ref"].'">';
+    print '<input class="flat" type="text" size="4" name="search_ref" value="'.$search_ref.'">';
     print '</td>';
     print '<td>&nbsp;</td>';
     print '<td align="left">';
-    print '<input class="fat" type="text" size="6" name="search_company" value="'.$_REQUEST["search_company"].'">';
+    print '<input class="flat" type="text" size="6" name="search_company" value="'.$search_company.'">';
     print '</td>';
     print '<td>';
-    $form->select_types_paiements($_REQUEST["search_paymenttype"],'search_paymenttype','',2,1,1);
+    $form->select_types_paiements($search_paymenttype,'search_paymenttype','',2,1,1);
     print '</td>';
     print '<td>';
-    $form->select_comptes($_REQUEST["search_account"],'search_account',0,'',1);
+    $form->select_comptes($search_account,'search_account',0,'',1);
     print '</td>';
     print '<td align="right">';
-    print '<input class="fat" type="text" size="4" name="search_amount" value="'.$_REQUEST["search_amount"].'">';
+    print '<input class="flat" type="text" size="4" name="search_amount" value="'.$search_amount.'">';
+	print '</td><td align="right">';
     print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
     print '</td>';
     if (! empty($conf->global->BILL_ADD_PAYMENT_VALIDATION))
     {
@@ -223,7 +237,8 @@ if ($resql)
             if ($objp->statut == 0) print '</a>';
             print '</td>';
         }
-
+		
+		print '<td>&nbsp;</td>';
         print '</tr>';
 
         $i++;
diff --git a/htdocs/compta/prelevement/bon.php b/htdocs/compta/prelevement/bon.php
deleted file mode 100644
index 20d60c3a55b48353e7dc4f409c5d7109faa0d3c8..0000000000000000000000000000000000000000
--- a/htdocs/compta/prelevement/bon.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-/* Copyright (C) 2005 	   Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2005 	   Laurent Destailleur  <eldy@users.sourceforge.net>
- * Copyright (C) 2010-2012 Juanjo Menent 	    <jmenent@2byte.es>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- *      \file       htdocs/compta/prelevement/bon.php
- *      \ingroup    prelevement
- *      \brief      Fiche apercu du bon de prelevement
- */
-
-require('../../main.inc.php');
-require_once DOL_DOCUMENT_ROOT.'/core/lib/prelevement.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
-require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
-
-$langs->load("banks");
-$langs->load("categories");
-$langs->load("bills");
-$langs->load("categories");
-
-// Security check
-$socid=0;
-$id = GETPOST('id','int');
-$ref = GETPOST('ref','alpha');
-if ($user->societe_id) $socid=$user->societe_id;
-$result = restrictedArea($user, 'prelevement', $id);
-
-
-llxHeader('','Bon de prelevement');
-
-$form = new Form($db);
-
-if ($id > 0 || ! empty($ref))
-{
-	$object = new BonPrelevement($db,"");
-
-	if ($object->fetch($id) == 0)
-    {
-		$head = prelevement_prepare_head($object);
-		dol_fiche_head($head, 'preview', 'Prelevement : '. $object->ref);
-
-		print '<table class="border" width="100%">';
-
-		print '<tr><td width="20%">'.$langs->trans("Ref").'</td><td>'.$object->ref.'</td></tr>';
-		print '<tr><td width="20%">'.$langs->trans("Amount").'</td><td>'.price($object->amount).'</td></tr>';
-		print '<tr><td width="20%">'.$langs->trans("File").'</td><td>';
-
-		$relativepath = 'bon/'.$object->ref;
-
-		print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?type=text/plain&amp;modulepart=prelevement&amp;file='.urlencode($relativepath).'">'.$object->ref.'</a>';
-
-		print '</td></tr>';
-		print '</table><br>';
-
-		$fileimage = $conf->prelevement->dir_output.'/receipts/'.$object->ref.'.ps.png.0';
-		$fileps = $conf->prelevement->dir_output.'/receipts/'.$object->ref.'.ps';
-
-		// Conversion du PDF en image png si fichier png non existant
-		if (!file_exists($fileimage))
-        {
-			if (class_exists("Imagick"))
-			{
-				$ret = dol_convert_file($file,'png',$fileimage);
-				if ($ret < 0) $error++;
-			}
-			else
-			{
-				$langs->load("errors");
-				print '<font class="error">'.$langs->trans("ErrorNoImagickReadimage").'</font>';
-			}
-		}
-
-		if (file_exists($fileimage))
-		{
-			print '<img src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=prelevement&file='.urlencode(basename($fileimage)).'">';
-
-		}
-
-		dol_fiche_end();
-	}
-	else
-	{
-		dol_print_error($db);
-    }
-}
-
-llxFooter();
diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php
index 87bab387344a4511706bee01bb5f516e016795cd..66a1c81e8e988d0a8753c56d57d6077bbdaa301b 100644
--- a/htdocs/compta/prelevement/class/bonprelevement.class.php
+++ b/htdocs/compta/prelevement/class/bonprelevement.class.php
@@ -821,7 +821,9 @@ class BonPrelevement extends CommonObject
                         {
                         	$bac = new CompanyBankAccount($this->db);
                         	$bac->fetch(0,$soc->id);
+
                             if ($bac->verif() >= 1)
+                            //if (true)
                             {
                                 $factures_prev[$i] = $fac;
                                 /* second tableau necessaire pour BonPrelevement */
@@ -1226,26 +1228,24 @@ class BonPrelevement extends CommonObject
      *	@return		int			0 if OK, <0 if KO
      */
     //TODO: Optimize code to read lines in a single function
-    function Generate()
+    function generate()
     {
         global $conf,$langs,$mysoc;
 
         $result = 0;
 
-        dol_syslog(get_class($this)."::Generate build file ".$this->filename);
+        dol_syslog(get_class($this)."::generate build file ".$this->filename);
 
         $this->file = fopen($this->filename,"w");
 
         $found=0;
 
         // Build file for European countries
-        if (! $mysoc->isInEEC())
+        if ($mysoc->isInEEC())
         {
         	$found++;
 
 			/**
-			 * SECTION CREATION FICHIER SEPA
-			 * SECTION CREATION FICHIER SEPA
 			 * SECTION CREATION FICHIER SEPA
 			 */
 			// SEPA Initialisation
@@ -1308,8 +1308,6 @@ class BonPrelevement extends CommonObject
 			}
 
 			/**
-			 * SECTION CREATION FICHIER SEPA
-			 * SECTION CREATION FICHIER SEPA
 			 * SECTION CREATION FICHIER SEPA
 			 */
 			// SEPA File Header
@@ -1401,11 +1399,14 @@ class BonPrelevement extends CommonObject
                 }
             }
             else
-            {
+			{
                 $result = -2;
             }
+
             $langs->load('withdrawals');
-            fputs($this->file, $langs->trans('WithdrawalFileNotCapable'));
+
+            // TODO Add here code to generate a generic file
+            fputs($this->file, $langs->trans('WithdrawalFileNotCapable', $mysoc->country_code));
         }
 
         fclose($this->file);
diff --git a/htdocs/compta/prelevement/class/rejetprelevement.class.php b/htdocs/compta/prelevement/class/rejetprelevement.class.php
index 27ae87ca3b4319ee78c3fada6f1ebd3e6fad42a2..d0b467f294ba287b3b85c9bf75f1b3b8b49e7ce7 100644
--- a/htdocs/compta/prelevement/class/rejetprelevement.class.php
+++ b/htdocs/compta/prelevement/class/rejetprelevement.class.php
@@ -173,7 +173,8 @@ class RejetPrelevement
 			}
 			//Tag invoice as unpaid
 			dol_syslog("RejetPrelevement::Create set_unpaid fac ".$fac->ref);
-			$fac->set_unpaid($fac->id, $user);
+
+			$fac->set_unpaid($user);
 
 			//TODO: Must be managed by notifications module
 			// Send email to sender of the standing order request
@@ -194,7 +195,7 @@ class RejetPrelevement
 	}
 
 	/**
-	 *  Envoi mail
+	 *  Send email to all users that has asked the withdraw request
 	 *
 	 * 	@param	Facture		$fac			Invoice object
 	 * 	@return	void
diff --git a/htdocs/compta/prelevement/demandes.php b/htdocs/compta/prelevement/demandes.php
index c99744f7430ac3a6a215039e62c77bd7ed4d5e1c..364e073676bd355c9012d4bcf26b9133e742d336 100644
--- a/htdocs/compta/prelevement/demandes.php
+++ b/htdocs/compta/prelevement/demandes.php
@@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
 
 $langs->load("banks");
 $langs->load("categories");
-$langs->load("widthdrawals");
+$langs->load("withdrawals");
 $langs->load("companies");
 
 // Security check
diff --git a/htdocs/compta/prelevement/factures.php b/htdocs/compta/prelevement/factures.php
index bf3e428cd0e5ad5478f0e530bd37461ff84375bf..d11fefbb6cb932deb84adb77c8a23da8ded89472 100644
--- a/htdocs/compta/prelevement/factures.php
+++ b/htdocs/compta/prelevement/factures.php
@@ -213,6 +213,7 @@ else
 	dol_print_error($db);
 }
 
-$db->close();
 
 llxFooter();
+
+$db->close();
diff --git a/htdocs/compta/prelevement/ligne.php b/htdocs/compta/prelevement/ligne.php
index b3f9acb35709cffa2b8a0065197fa59e99d27a28..f16179796451881c88579c79218c387b2bab5c01 100644
--- a/htdocs/compta/prelevement/ligne.php
+++ b/htdocs/compta/prelevement/ligne.php
@@ -105,10 +105,13 @@ if ($action == 'confirm_rejet')
 	}
 }
 
+
 /*
  * View
  */
 
+$invoicestatic=new Facture($db);
+
 llxHeader('',$langs->trans("StandingOrder"));
 
 $h = 0;
@@ -134,9 +137,7 @@ if ($id)
 		print '<a href="card.php?id='.$lipre->bon_rowid.'">'.$lipre->bon_ref.'</a></td></tr>';
 		print '<tr><td width="20%">'.$langs->trans("Date").'</td><td>'.dol_print_date($bon->datec,'day').'</td></tr>';
 		print '<tr><td width="20%">'.$langs->trans("Amount").'</td><td>'.price($lipre->amount).'</td></tr>';
-		print '<tr><td width="20%">'.$langs->trans("Status").'</td><td>';
-
-		print $lipre->LibStatut($lipre->statut,1).'</td></tr>';
+		print '<tr><td width="20%">'.$langs->trans("Status").'</td><td>'.$lipre->LibStatut($lipre->statut,1).'</td></tr>';
 
 		if ($lipre->statut == 3)
 		{
@@ -215,7 +216,7 @@ if ($id)
 		print '</table><br>';
 
 		//Confirm Button
-		print '<center><input type="submit" class="valid" value='.$langs->trans("Confirm").'><center>';
+		print '<center><input type="submit" class="button" value='.$langs->trans("Confirm").'><center>';
 		print '</form>';
 	}
 
@@ -229,13 +230,20 @@ if ($id)
 
 	if ($action == '')
 	{
-		if ($bon->statut == 2 && $lipre->statut == 2 && $user->rights->prelevement->bons->credit)
+		if ($bon->statut == 2 && $lipre->statut == 2)
 		{
-	  		print "<a class=\"butAction\" href=\"ligne.php?action=rejet&amp;id=$lipre->id\">".$langs->trans("StandingOrderReject")."</a>";
+			if ($user->rights->prelevement->bons->credit)
+			{
+	  			print "<a class=\"butAction\" href=\"ligne.php?action=rejet&amp;id=$lipre->id\">".$langs->trans("StandingOrderReject")."</a>";
+			}
+			else
+			{
+				print "<a class=\"butActionRefused\" href=\"#\" title=\"".$langs->trans("NotAllowed")."\">".$langs->trans("StandingOrderReject")."</a>";
+			}
 		}
 		else
 		{
-			print "<a class=\"butActionRefused\" href=\"#\">".$langs->trans("StandingOrderReject")."</a>";
+			print "<a class=\"butActionRefused\" href=\"#\" title=\"".$langs->trans("NotPossibleForThisStatusOfWithdrawReceiptORLine")."\">".$langs->trans("StandingOrderReject")."</a>";
 		}
 	}
 
@@ -256,7 +264,7 @@ if ($id)
 	 * Liste des factures
 	 */
 	$sql = "SELECT pf.rowid";
-	$sql.= " ,f.rowid as facid, f.facnumber as ref, f.total_ttc";
+	$sql.= " ,f.rowid as facid, f.facnumber as ref, f.total_ttc, f.paye, f.fk_statut";
 	$sql.= " , s.rowid as socid, s.nom as name";
 	$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
 	$sql.= " , ".MAIN_DB_PREFIX."prelevement_lignes as pl";
@@ -287,7 +295,7 @@ if ($id)
 		print"\n<!-- debut table -->\n";
 		print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">';
 		print '<tr class="liste_titre">';
-		print '<td>'.$langs->trans("Invoice").'</td><td>'.$langs->trans("ThirdParty").'</td><td align="right">'.$langs->trans("Amount").'</td>';
+		print '<td>'.$langs->trans("Invoice").'</td><td>'.$langs->trans("ThirdParty").'</td><td align="right">'.$langs->trans("Amount").'</td><td align="right">'.$langs->trans("Status").'</td>';
 		print '</tr>';
 
 		$var=True;
@@ -312,6 +320,11 @@ if ($id)
 
 			print '<td align="right">'.price($obj->total_ttc)."</td>\n";
 
+			print '<td align="right">';
+			$invoicestatic->fetch($obj->facid);
+			print $invoicestatic->getLibStatut(5);
+			print "</td>\n";
+
 			print "</tr>\n";
 
 			$i++;
diff --git a/htdocs/compta/prelevement/list.php b/htdocs/compta/prelevement/list.php
index 10fb995c0236b9c9d5ac79f6f796ffd63813b6d4..0a68aa686aec4fb303e5a4cbdcca8e0ffa1410a7 100644
--- a/htdocs/compta/prelevement/list.php
+++ b/htdocs/compta/prelevement/list.php
@@ -42,10 +42,10 @@ $result = restrictedArea($user, 'prelevement','','','bons');
 $page = GETPOST('page','int');
 $sortorder = ((GETPOST('sortorder','alpha')=="")) ? "DESC" : GETPOST('sortorder','alpha');
 $sortfield = ((GETPOST('sortfield','alpha')=="")) ? "p.datec" : GETPOST('sortfield','alpha');
-$search_line = GETPOST('search_ligne','alpha');
+$search_line = GETPOST('search_line','alpha');
 $search_bon = GETPOST('search_bon','alpha');
 $search_code = GETPOST('search_code','alpha');
-$search_societe = GETPOST('search_societe','alpha');
+$search_company = GETPOST('search_company','alpha');
 $statut = GETPOST('statut','int');
 
 $bon=new BonPrelevement($db,"");
@@ -53,7 +53,14 @@ $ligne=new LignePrelevement($db,$user);
 
 $offset = $conf->liste_limit * $page ;
 
-
+if (GETPOST("button_removefilter"))
+{
+	$search_line="";
+	$search_bon="";
+	$search_code="";
+    $search_company="";
+	$statut="";
+}
 
 /*
  *  View
@@ -88,9 +95,9 @@ if ($search_code)
 {
     $sql.= " AND s.code_client LIKE '%".$db->escape($search_code)."%'";
 }
-if ($search_societe)
+if ($search_company)
 {
-    $sql .= " AND s.nom LIKE '%".$db->escape($search_societe)."%'";
+    $sql .= " AND s.nom LIKE '%".$db->escape($search_company)."%'";
 }
 $sql.=$db->order($sortfield,$sortorder);
 $sql.=$db->plimit($conf->liste_limit+1, $offset);
@@ -122,15 +129,17 @@ if ($result)
 
     print '<form action="list.php" method="GET">';
     print '<tr class="liste_titre">';
-    print '<td class="liste_titre"><input type="text" class="flat" name="search_ligne" value="'. dol_escape_htmltag($search_line).'" size="6"></td>';
+    print '<td class="liste_titre"><input type="text" class="flat" name="search_line" value="'. dol_escape_htmltag($search_line).'" size="6"></td>';
     print '<td class="liste_titre"><input type="text" class="flat" name="search_bon" value="'. dol_escape_htmltag($search_bon).'" size="8"></td>';
     print '<td>&nbsp;</td>';
-    print '<td class="liste_titre"><input type="text" class="flat" name="search_societe" value="'. dol_escape_htmltag($search_societe).'" size="12"></td>';
+    print '<td class="liste_titre"><input type="text" class="flat" name="search_company" value="'. dol_escape_htmltag($search_company).'" size="12"></td>';
     print '<td class="liste_titre" align="center"><input type="text" class="flat" name="search_code" value="'. dol_escape_htmltag($search_code).'" size="8"></td>';
     print '<td class="liste_titre">&nbsp;</td>';
     print '<td class="liste_titre">&nbsp;</td>';
-    print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'"></td>';
-    print '</tr>';
+    print '<td class="liste_titre" align="right">';
+	print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+	print '</td>';
     print '</form>';
 
     $var=True;
diff --git a/htdocs/compta/resultat/index.php b/htdocs/compta/resultat/index.php
index 1fecc0e1c2889f530a3cd33c0826ee3cf9480a6a..b586241c11ece86fd053ffc7eb8a35e3252d6d41 100644
--- a/htdocs/compta/resultat/index.php
+++ b/htdocs/compta/resultat/index.php
@@ -560,7 +560,7 @@ print '<tr class="liste_titre"><td class="liste_titre">&nbsp;</td>';
 
 for ($annee = $year_start ; $annee <= $year_end ; $annee++)
 {
-	print '<td align="center" colspan="2">';
+	print '<td align="center" colspan="2" class="borderrightlight">';
 	print '<a href="clientfourn.php?year='.$annee.'">';
 	print $annee;
 	if ($conf->global->SOCIETE_FISCAL_MONTH_START > 1) print '-'.($annee+1);
@@ -571,7 +571,7 @@ print '<tr class="liste_titre"><td class="liste_titre">'.$langs->trans("Month").
 for ($annee = $year_start ; $annee <= $year_end ; $annee++)
 {
 	print '<td align="right">'.$langs->trans("Outcome").'</td>';
-	print '<td align="right">'.$langs->trans("Income").'</td>';
+	print '<td align="right" class="borderrightlight">'.$langs->trans("Income").'</td>';
 }
 print '</tr>';
 
@@ -601,7 +601,7 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++)
 		}
 		print "</td>";
 
-		print '<td align="right">&nbsp;';
+		print '<td align="right" class="borderrightlight">&nbsp;';
 		//if (isset($encaiss_ttc[$case]) && $encaiss_ttc[$case] != 0)
 		if (isset($encaiss_ttc[$case]))
 		{
@@ -623,7 +623,7 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++)
 {
 	$nbcols+=2;
 	print '<td align="right">'.(isset($totsorties[$annee])?price(price2num($totsorties[$annee],'MT')):'&nbsp;').'</td>';
-	print '<td align="right">'.(isset($totentrees[$annee])?price(price2num($totentrees[$annee],'MT')):'&nbsp;').'</td>';
+	print '<td align="right" style="border-right: 1px solid #DDD">'.(isset($totentrees[$annee])?price(price2num($totentrees[$annee],'MT')):'&nbsp;').'</td>';
 }
 print "</tr>\n";
 
@@ -637,7 +637,7 @@ $var=!$var;
 print '<tr class="liste_total"><td>'.$langs->trans("Profit").'</td>';
 for ($annee = $year_start ; $annee <= $year_end ; $annee++)
 {
-	print '<td align="right" colspan="2"> ';
+	print '<td align="right" colspan="2" class="borderrightlight"> ';
 	if (isset($totentrees[$annee]) || isset($totsorties[$annee]))
 	{
 		$in=(isset($totentrees[$annee])?price2num($totentrees[$annee], 'MT'):0);
diff --git a/htdocs/compta/salaries/index.php b/htdocs/compta/salaries/index.php
index b2fc3e1b4a3aec617b738cab7739957932c4cb84..17c3efdbfaa0dc1080ede50fe6b3e2fe1dbb245f 100644
--- a/htdocs/compta/salaries/index.php
+++ b/htdocs/compta/salaries/index.php
@@ -33,6 +33,9 @@ $socid = GETPOST("socid","int");
 if ($user->societe_id) $socid=$user->societe_id;
 $result = restrictedArea($user, 'salaries', '', '', '');
 
+$search_ref = GETPOST('search_ref','int');
+$search_label = GETPOST('search_label','alpha');
+$search_amount = GETPOST('search_amount','alpha');
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 $page = GETPOST("page",'int');
@@ -61,6 +64,14 @@ else
 	$typeid=$_REQUEST['typeid'];
 }
 
+if (GETPOST("button_removefilter"))
+{
+	$search_ref="";
+	$search_label="";
+	$search_amount="";
+    $typeid="";
+}
+
 /*
  * View
  */
@@ -78,8 +89,11 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pst ON s.fk_typepayment = pst
 $sql.= " ".MAIN_DB_PREFIX."user as u";
 $sql.= " WHERE u.rowid = s.fk_user";
 $sql.= " AND s.entity = ".$conf->entity;
-if (GETPOST("search_label")) $sql.=" AND s.label LIKE '%".$db->escape(GETPOST("search_label"))."%'";
-if (GETPOST("search_amount")) $sql.=" AND s.amount = ".price2num(GETPOST("search_amount"));
+
+// Search criteria
+if ($search_ref)	$sql.=" AND s.rowid=".$search_ref;
+if ($search_label) 	$sql.=" AND s.label LIKE '%".$db->escape($search_label)."%'";
+if ($search_amount) $sql.=" AND s.amount='".$db->escape(price2num(trim($search_amount)))."'";
 if ($filtre) {
     $filtre=str_replace(":","=",$filtre);
     $sql .= " AND ".$filtre;
@@ -118,19 +132,23 @@ if ($result)
     print "</tr>\n";
 
 	print '<tr class="liste_titre">';
+	// Ref
+	print '<td class="liste_titre" align="left">';
+	print '<input class="flat" type="text" size="3" name="search_ref" value="'.$search_ref.'">';
+	print '</td>';
 	print '<td class="liste_titre">&nbsp;</td>';
-	print '<td class="liste_titre">&nbsp;</td>';
-	print '<td class="liste_titre"><input type="text" class="flat" size="14" name="search_label" value="'.GETPOST("search_label").'"></td>';
+	// Label
+	print '<td class="liste_titre"><input type="text" class="flat" size="14" name="search_label" value="'.$search_label.'"></td>';
 	print '<td class="liste_titre">&nbsp;</td>';
 	// Type
 	print '<td class="liste_titre" align="left">';
 	$form->select_types_paiements($typeid,'typeid','',0,0,1,16);
 	print '</td>';
-	print '<td class="liste_titre" align="right"><input name="search_amount" class="flat" type="text" size="8" value="'.GETPOST("search_amount").'"></td>';
-	print '<td class="liste_titre" align="right">';
-	print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-	print '</td>';
-	print "</tr>\n";
+	// Amount
+	print '<td class="liste_titre" align="right"><input name="search_amount" class="flat" type="text" size="8" value="'.$search_amount.'"></td>';
+	print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+	print "</td></tr>\n";
 
     while ($i < min($num,$limit))
     {
diff --git a/htdocs/compta/sociales/index.php b/htdocs/compta/sociales/index.php
index 022aaf14ff00d551850898aba649471fb3d61eef..db4bef2abe6ec76c8836cbc5100c4bfb445d383f 100644
--- a/htdocs/compta/sociales/index.php
+++ b/htdocs/compta/sociales/index.php
@@ -36,6 +36,9 @@ $socid = isset($_GET["socid"])?$_GET["socid"]:'';
 if ($user->societe_id) $socid=$user->societe_id;
 $result = restrictedArea($user, 'tax', '', '', 'charges');
 
+$search_ref = GETPOST('search_ref','int');
+$search_label = GETPOST('search_label','alpha');
+$search_amount = GETPOST('search_amount','alpha');
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 $page = GETPOST("page",'int');
@@ -65,6 +68,15 @@ else
 	$typeid=$_REQUEST['typeid'];
 }
 
+if (GETPOST("button_removefilter"))
+{
+	$search_ref="";
+	$search_label="";
+	$search_amount="";
+    $typeid="";
+	$year="";
+	$month="";
+}
 
 /*
  *	View
@@ -85,7 +97,11 @@ $sql.= " ".MAIN_DB_PREFIX."chargesociales as cs";
 $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiementcharge as pc ON pc.fk_charge = cs.rowid";
 $sql.= " WHERE cs.fk_type = c.id";
 $sql.= " AND cs.entity = ".$conf->entity;
-if (GETPOST("search_label")) $sql.=" AND cs.libelle LIKE '%".$db->escape(GETPOST("search_label"))."%'";
+
+// Search criteria
+if ($search_ref)	$sql.=" AND cs.rowid=".$search_ref;
+if ($search_label) 	$sql.=" AND cs.libelle LIKE '%".$db->escape($search_label)."%'";
+if ($search_amount) $sql.=" AND cs.amount='".$db->escape(price2num(trim($search_amount)))."'";
 if ($year > 0)
 {
     $sql .= " AND (";
@@ -139,10 +155,8 @@ if ($resql)
 	{
 
 		print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
-
-		print "<table class=\"noborder\" width=\"100%\">";
-
-		print "<tr class=\"liste_titre\">";
+		print '<table class="liste" width="100%">';
+		print '<tr class="liste_titre">';
 		print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"id","",$param,"",$sortfield,$sortorder);
 		print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"cs.libelle","",$param,'align="left"',$sortfield,$sortorder);
 		print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
@@ -153,20 +167,26 @@ if ($resql)
 		print "</tr>\n";
 
 		print '<tr class="liste_titre">';
-		print '<td class="liste_titre">&nbsp;</td>';
-		print '<td class="liste_titre"><input type="text" class="flat" size="8" name="search_label" value="'.GETPOST("search_label").'"></td>';
+		// Ref
+		print '<td class="liste_titre" align="left">';
+		print '<input class="flat" type="text" size="3" name="search_ref" value="'.$search_ref.'">';
+		print '</td>';
+		// Label
+		print '<td class="liste_titre"><input type="text" class="flat" size="8" name="search_label" value="'.$search_label.'"></td>';
 		// Type
 		print '<td class="liste_titre" align="left">';
 	    $formsocialcontrib->select_type_socialcontrib($typeid,'typeid',1,16,0);
 	    print '</td>';
 		// Period end date
 		print '<td class="liste_titre">&nbsp;</td>';
-	    print '<td class="liste_titre">&nbsp;</td>';
-		print '<td class="liste_titre">&nbsp;</td>';
+	    // Amount
 		print '<td class="liste_titre" align="right">';
-		print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+		print '<input class="flat" type="text" size="6" name="search_amount" value="'.$search_amount.'">';
 		print '</td>';
-		print "</tr>\n";
+		print '<td class="liste_titre">&nbsp;</td>';
+		print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+		print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+		print "</td></tr>\n";
 
 		while ($i < min($num,$limit))
 		{
diff --git a/htdocs/compta/stats/index.php b/htdocs/compta/stats/index.php
index 69fdeff849c6bbca10a18dda9f32d4e6863f4909..b3fb130e185da9130cbb8c931cf2dff1596b4b19 100644
--- a/htdocs/compta/stats/index.php
+++ b/htdocs/compta/stats/index.php
@@ -184,7 +184,7 @@ print '<tr class="liste_titre"><td>&nbsp;</td>';
 for ($annee = $year_start ; $annee <= $year_end ; $annee++)
 {
 	if ($modecompta == 'CREANCES-DETTES') print '<td align="center" width="10%" colspan="3">';
-	else print '<td align="center" width="10%" colspan="2">';
+	else print '<td align="center" width="10%" colspan="2" class="borderrightlight">';
 	print '<a href="casoc.php?year='.$annee.'">';
 	print $annee;
     if ($conf->global->SOCIETE_FISCAL_MONTH_START > 1) print '-'.($annee+1);
@@ -198,7 +198,7 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++)
 {
 	if ($modecompta == 'CREANCES-DETTES') print '<td align="right">'.$langs->trans("AmountHT").'</td>';
 	print '<td align="right">'.$langs->trans("AmountTTC").'</td>';
-	print '<td align="right">'.$langs->trans("Delta").'</td>';
+	print '<td align="right" class="borderrightlight">'.$langs->trans("Delta").'</td>';
 	if ($annee != $year_end) print '<td width="15">&nbsp;</td>';
 }
 print '</tr>';
@@ -244,7 +244,7 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++)
 			}
 			print "</td>";
 		}
-		
+
 		// Valeur CA du mois
 		print '<td align="right">';
 		if ($cum[$case])
@@ -266,29 +266,29 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++)
 			{
 				$percent=(round(($cum[$case]-$cum[$caseprev])/$cum[$caseprev],4)*100);
 				//print "X $cum[$case] - $cum[$caseprev] - $cum[$caseprev] - $percent X";
-				print '<td align="right">'.($percent>=0?"+$percent":"$percent").'%</td>';
+				print '<td align="right" class="borderrightlight">'.($percent>=0?"+$percent":"$percent").'%</td>';
 			}
 			if ($cum[$caseprev] && ! $cum[$case])
 			{
-				print '<td align="right">-100%</td>';
+				print '<td align="right" class="borderrightlight">-100%</td>';
 			}
 			if (! $cum[$caseprev] && $cum[$case])
 			{
 				//print '<td align="right">+Inf%</td>';
-				print '<td align="right">-</td>';
+				print '<td align="right" class="borderrightlight">-</td>';
 			}
 			if (isset($cum[$caseprev]) && ! $cum[$caseprev] && ! $cum[$case])
 			{
-				print '<td align="right">+0%</td>';
+				print '<td align="right" class="borderrightlight">+0%</td>';
 			}
 			if (! isset($cum[$caseprev]) && ! $cum[$case])
 			{
-				print '<td align="right">-</td>';
+				print '<td align="right" class="borderrightlight">-</td>';
 			}
 		}
 		else
 		{
-			print '<td align="right">';
+			print '<td align="right" class="borderrightlight">';
 			if ($minyearmonth <= $case && $case <= $maxyearmonth) { print '-'; }
 			else { print '&nbsp;'; }
 			print '</td>';
@@ -382,7 +382,7 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++)
 			print '<td>&nbsp;</td>';
 		}
 	}
-	
+
 	// Montant total
 	if ($total[$annee] || ($annee >= $minyear && $annee <= max($nowyear,$maxyear)))
 	{
@@ -398,24 +398,24 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++)
 	{
 		if ($total[$annee-1] && $total[$annee]) {
 			$percent=(round(($total[$annee]-$total[$annee-1])/$total[$annee-1],4)*100);
-			print '<td align="right" class="nowrap">'.($percent>=0?"+$percent":"$percent").'%</td>';
+			print '<td align="right" class="nowrap borderrightlight">'.($percent>=0?"+$percent":"$percent").'%</td>';
 		}
 		if ($total[$annee-1] && ! $total[$annee])
 		{
-			print '<td align="right">-100%</td>';
+			print '<td align="right" class="borderrightlight">-100%</td>';
 		}
 		if (! $total[$annee-1] && $total[$annee])
 		{
-			print '<td align="right">+Inf%</td>';
+			print '<td align="right" class="borderrightlight">+Inf%</td>';
 		}
 		if (! $total[$annee-1] && ! $total[$annee])
 		{
-			print '<td align="right">+0%</td>';
+			print '<td align="right" class="borderrightlight">+0%</td>';
 		}
 	}
 	else
 	{
-		print '<td align="right">';
+		print '<td align="right" class="borderrightlight">';
 		if ($total[$annee] || ($minyear <= $annee && $annee <= max($nowyear,$maxyear))) { print '-'; }
 		else { print '&nbsp;'; }
 		print '</td>';
diff --git a/htdocs/compta/tva/reglement.php b/htdocs/compta/tva/reglement.php
index 9bb4337782efdca9ad3733ad7bff86781d83a43a..8babbd58f7d08eb7740975a4301015fb2a80c408 100644
--- a/htdocs/compta/tva/reglement.php
+++ b/htdocs/compta/tva/reglement.php
@@ -35,6 +35,9 @@ $socid = isset($_GET["socid"])?$_GET["socid"]:'';
 if ($user->societe_id) $socid=$user->societe_id;
 $result = restrictedArea($user, 'tax', '', '', 'charges');
 
+$search_ref = GETPOST('search_ref','int');
+$search_label = GETPOST('search_label','alpha');
+$search_amount = GETPOST('search_amount','alpha');
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 $page = GETPOST("page",'int');
@@ -63,6 +66,14 @@ else
 	$typeid=$_REQUEST['typeid'];
 }
 
+if (GETPOST("button_removefilter"))
+{
+	$search_ref="";
+	$search_label="";
+	$search_amount="";
+    $typeid="";
+}
+
 /*
  * View
  */
@@ -76,8 +87,9 @@ $sql = "SELECT t.rowid, t.amount, t.label, t.datev as dm, t.fk_typepayment as ty
 $sql.= " FROM ".MAIN_DB_PREFIX."tva as t";
 $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pst ON t.fk_typepayment = pst.id";
 $sql.= " WHERE t.entity = ".$conf->entity;
-if (GETPOST("search_label")) $sql.=" AND t.label LIKE '%".$db->escape(GETPOST("search_label"))."%'";
-if (GETPOST("search_amount")) $sql.=" AND t.amount = ".price2num(GETPOST("search_amount"));
+if ($search_ref)	$sql.=" AND t.rowid=".$search_ref;
+if ($search_label) 	$sql.=" AND t.label LIKE '%".$db->escape($search_label)."%'";
+if ($search_amount) $sql.=" AND t.amount='".$db->escape(price2num(trim($search_amount)))."'";
 if ($filtre) {
     $filtre=str_replace(":","=",$filtre);
     $sql .= " AND ".$filtre;
@@ -106,27 +118,26 @@ if ($result)
 
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
-		print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"t.rowid","",$param,"",$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"t.label","",$param,'align="left"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"dm","",$param,'align="left"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"t.amount","",$param,'align="right"',$sortfield,$sortorder);
-		print_liste_field_titre("");
+	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"t.rowid","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"t.label","",$param,'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"dm","",$param,'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"t.amount","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("");
 	print "</tr>\n";
 	
 	print '<tr class="liste_titre">';
-	print '<td class="liste_titre">&nbsp;</td>';
-	print '<td class="liste_titre"><input type="text" class="flat" size="14" name="search_label" value="'.GETPOST("search_label").'"></td>';
+	print '<td class="liste_titre"><input type="text" class="flat" size="4" name="search_ref" value="'.$search_ref.'"></td>';
+	print '<td class="liste_titre"><input type="text" class="flat" size="10" name="search_label" value="'.$search_label.'"></td>';
 	print '<td class="liste_titre">&nbsp;</td>';
 	// Type
 	print '<td class="liste_titre" align="left">';
 	$form->select_types_paiements($typeid,'typeid','',0,0,1,16);
 	print '</td>';
-	print '<td class="liste_titre" align="right"><input name="search_amount" class="flat" type="text" size="8" value="'.GETPOST("search_amount").'"></td>';
-	print '<td class="liste_titre" align="right">';
-	print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-	print '</td>';
-	print "</tr>\n";
+	print '<td class="liste_titre" align="right"><input name="search_amount" class="flat" type="text" size="8" value="'.$search_amount.'"></td>';
+	print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+	print "</td></tr>\n";
     
 	while ($i < min($num,$limit))
     {
diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php
index c65e9601e53b943e2b0595af804fadccbe9ce571..2e28328085a3df7b355b33612579dce375548e55 100644
--- a/htdocs/contact/list.php
+++ b/htdocs/contact/list.php
@@ -357,7 +357,6 @@ if ($result)
     print '</td>';
     print '<td class="liste_titre" align="right">';
     print '<input type="image" value="button_search" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-    print '&nbsp; ';
     print '<input type="image" value="button_removefilter" class="liste_titre" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
     print '</td>';
     print '</tr>';
diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php
index dcc1b83e6d89ad750eb314f7e67490f21bf12d37..cf57e97933b70e81085bfc2bce513c94d65047f1 100644
--- a/htdocs/contrat/list.php
+++ b/htdocs/contrat/list.php
@@ -40,11 +40,11 @@ if ($page == -1) { $page = 0 ; }
 $limit = $conf->liste_limit;
 $offset = $limit * $page ;
 
-$search_nom=GETPOST('search_nom');
+$search_name=GETPOST('search_name');
 $search_contract=GETPOST('search_contract');
 $search_ref_supplier=GETPOST('search_ref_supplier','alpha');
 $sall=GETPOST('sall');
-$statut=GETPOST('statut')?GETPOST('statut'):1;
+$search_status=GETPOST('search_status');
 $socid=GETPOST('socid');
 
 if (! $sortfield) $sortfield="c.rowid";
@@ -58,6 +58,17 @@ $result = restrictedArea($user, 'contrat', $id);
 $staticcontrat=new Contrat($db);
 $staticcontratligne=new ContratLigne($db);
 
+if (GETPOST("button_removefilter"))
+{
+	$search_name="";
+	$search_contract="";
+	$search_ref_supplier="";
+	$sall="";
+	$search_status="";
+}
+
+if ($search_status == '') $search_status=1;
+
 
 /*
  * View
@@ -84,8 +95,8 @@ $sql.= " WHERE c.fk_soc = s.rowid ";
 $sql.= " AND c.entity = ".$conf->entity;
 if ($socid) $sql.= " AND s.rowid = ".$socid;
 if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
-if ($search_nom) {
-    $sql .= natural_search('s.nom', $search_nom);
+if ($search_name) {
+    $sql .= natural_search('s.nom', $search_name);
 }
 if ($search_contract) {
     $sql .= natural_search(array('c.rowid', 'c.ref'), $search_contract);
@@ -106,13 +117,13 @@ if ($resql)
     $num = $db->num_rows($resql);
     $i = 0;
 
-    print_barre_liste($langs->trans("ListOfContracts"), $page, $_SERVER["PHP_SELF"], '&search_contract='.$search_contract.'&search_nom='.$search_nom, $sortfield, $sortorder,'',$num);
+    print_barre_liste($langs->trans("ListOfContracts"), $page, $_SERVER["PHP_SELF"], '&search_contract='.$search_contract.'&search_name='.$search_name, $sortfield, $sortorder,'',$num);
 
     print '<table class="liste" width="100%">';
 
     print '<tr class="liste_titre">';
     $param='&amp;search_contract='.$search_contract;
-    $param.='&amp;search_nom='.$search_nom;
+    $param.='&amp;search_name='.$search_name;
     $param.='&amp;search_ref_supplier='.$search_ref_supplier;
     print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid","","$param",'',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans("RefCustomer"), $_SERVER["PHP_SELF"], "c.ref_supplier","","$param",'',$sortfield,$sortorder);
@@ -136,13 +147,13 @@ if ($resql)
     print '<input type="text" class="flat" size="7" name="search_ref_supplier value="'.$search_ref_supplier.'">';
     print '</td>';
     print '<td class="liste_titre">';
-    print '<input type="text" class="flat" size="24" name="search_nom" value="'.$search_nom.'">';
+    print '<input type="text" class="flat" size="24" name="search_name" value="'.$search_name.'">';
     print '</td>';
     print '<td class="liste_titre">&nbsp;</td>';
     //print '<td class="liste_titre">&nbsp;</td>';
-    print '<td colspan="4" class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-    print "</td>";
-    print "</tr>\n";
+    print '<td colspan="4" class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+    print "</td></tr>\n";
     print '</form>';
 
     $var=true;
diff --git a/htdocs/contrat/services.php b/htdocs/contrat/services.php
index 77fc01554305ed000fd75eb0f55a9e28464abfdd..b0fb4ed5edb14da311dffffc85086f0f93d43187 100644
--- a/htdocs/contrat/services.php
+++ b/htdocs/contrat/services.php
@@ -44,7 +44,7 @@ if (! $sortfield) $sortfield="c.rowid";
 if (! $sortorder) $sortorder="ASC";
 
 $filter=GETPOST("filter");
-$search_nom=GETPOST("search_nom");
+$search_name=GETPOST("search_name");
 $search_contract=GETPOST("search_contract");
 $search_service=GETPOST("search_service");
 $statut=GETPOST('statut')?GETPOST('statut'):1;
@@ -69,6 +69,21 @@ $staticcontrat=new Contrat($db);
 $staticcontratligne=new ContratLigne($db);
 $companystatic=new Societe($db);
 
+if (GETPOST("button_removefilter"))
+{
+	$search_name="";
+	$search_contract="";
+	$search_service="";
+	$op1month="";
+	$op1day="";
+	$op1year="";
+	$filter_op1="";
+	$op2month="";
+	$op2day="";
+	$op2year="";
+	$filter_op2="";
+}
+
 /*
  * View
  */
@@ -101,7 +116,7 @@ if ($mode == "0") $sql.= " AND cd.statut = 0";
 if ($mode == "4") $sql.= " AND cd.statut = 4";
 if ($mode == "5") $sql.= " AND cd.statut = 5";
 if ($filter == "expired") $sql.= " AND cd.date_fin_validite < '".$db->idate($now)."'";
-if ($search_nom)      $sql.= " AND s.nom LIKE '%".$db->escape($search_nom)."%'";
+if ($search_name)     $sql.= " AND s.nom LIKE '%".$db->escape($search_name)."%'";
 if ($search_contract) $sql.= " AND c.rowid = '".$db->escape($search_contract)."'";
 if ($search_service)  $sql.= " AND (p.ref LIKE '%".$db->escape($search_service)."%' OR p.description LIKE '%".$db->escape($search_service)."%' OR cd.description LIKE '%".$db->escape($search_service)."%')";
 if ($socid > 0)       $sql.= " AND s.rowid = ".$socid;
@@ -122,7 +137,7 @@ if ($resql)
 
 	$param='';
 	if ($search_contract) $param.='&amp;search_contract='.urlencode($search_contract);
-	if ($search_nom)      $param.='&amp;search_nom='.urlencode($search_nom);
+	if ($search_name)      $param.='&amp;search_name='.urlencode($search_name);
 	if ($search_service)  $param.='&amp;search_service='.urlencode($search_service);
 	if ($mode)            $param.='&amp;mode='.$mode;
 	if ($filter)          $param.='&amp;filter='.$filter;
@@ -168,7 +183,7 @@ if ($resql)
 	print '</td>';
 	// Third party
 	print '<td class="liste_titre">';
-	print '<input type="text" class="flat" size="24" name="search_nom" value="'.dol_escape_htmltag($search_nom).'">';
+	print '<input type="text" class="flat" size="24" name="search_name" value="'.dol_escape_htmltag($search_name).'">';
 	print '</td>';
 	print '<td class="liste_titre" align="center">';
 	$arrayofoperators=array('<'=>'<','>'=>'>');
@@ -184,9 +199,9 @@ if ($resql)
 	$filter_date2=dol_mktime(0,0,0,$op2month,$op2day,$op2year);
 	print $form->select_date($filter_date2,'op2',0,0,1);
 	print '</td>';
-	print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-	print "</td>";
-	print "</tr>\n";
+    print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+    print "</td></tr>\n";
 	print '</form>';
 
 	$contractstatic=new Contrat($db);
diff --git a/htdocs/core/actions_sendmails.inc.php b/htdocs/core/actions_sendmails.inc.php
index 625376ace5847d7e38bf43ac8ae0081ed8dd10c9..51744775d9f6f6ceaad1791ea514a44d400cf5e6 100644
--- a/htdocs/core/actions_sendmails.inc.php
+++ b/htdocs/core/actions_sendmails.inc.php
@@ -87,10 +87,10 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
 
 	if ($result > 0)
 	{
-		if ($_POST['sendto'])
+		if (trim($_POST['sendto']))
 		{
 			// Recipient is provided into free text
-			$sendto = $_POST['sendto'];
+			$sendto = trim($_POST['sendto']);
 			$sendtoid = 0;
 		}
 		elseif ($_POST['receiver'] != '-1')
@@ -107,6 +107,22 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
 				$sendtoid = $_POST['receiver'];
 			}
 		}
+		if (trim($_POST['sendtocc']))
+		{
+			$sendtocc = trim($_POST['sendtocc']);
+		}
+		elseif ($_POST['receivercc'] != '-1')
+		{
+			// Recipient was provided from combo list
+			if ($_POST['receivercc'] == 'thirdparty')	// Id of third party
+			{
+				$sendtocc = $thirdparty->email;
+			}
+			else	// Id du contact
+			{
+				$sendtocc = $thirdparty->contact_get_property($_POST['receivercc'],'email');
+			}
+		}
 
 		if (dol_strlen($sendto))
 		{
@@ -115,8 +131,8 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
 			$from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>';
 			$replyto = $_POST['replytoname']. ' <' . $_POST['replytomail'].'>';
 			$message = $_POST['message'];
-			$sendtocc = $_POST['sendtocc'];
-			$sendtobcc='';
+			$sendtocc = $sendtocc;
+			$sendtobcc= GETPOST('sendtoccc');
 			if ($mode == 'emailfromproposal') $sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO);
 			if ($mode == 'emailfromorder')    $sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO);
 			if ($mode == 'emailfrominvoice')  $sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO);
@@ -172,7 +188,7 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
 					// Appel des triggers
 					include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
 					$interface=new Interfaces($db);
-					$result=$interface->run_triggers('COMPANY_SENTBYMAIL',$object,$user,$langs,$conf);
+					$result=$interface->run_triggers($trigger_name,$object,$user,$langs,$conf);
 					if ($result < 0) {
 						$error++; $this->errors=$interface->errors;
 					}
diff --git a/htdocs/core/antispamimage.php b/htdocs/core/antispamimage.php
index c3bc217e1002ae7dbd3d4e3b0502700108abf0a6..a16844dd715b82a7953490cff16b46a11574288e 100644
--- a/htdocs/core/antispamimage.php
+++ b/htdocs/core/antispamimage.php
@@ -51,8 +51,6 @@ for($i = 0; $i < $length; $i++)
 $sessionkey='dol_antispam_value';
 $_SESSION[$sessionkey]=$string;
 
-header("Content-type: image/png");
-
 $img = imagecreate(80,32);
 if (empty($img))
 {
@@ -60,6 +58,8 @@ if (empty($img))
     exit;
 }
 
+header("Content-type: image/png");
+
 $background_color = imagecolorallocate($img, 250, 250, 250);
 $ecriture_color = imagecolorallocate($img, 0, 0, 0);
 imagestring($img, 4, 24, 8, $string, $ecriture_color);
diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index ad9149d48b004dc57deba3b7a51040e7b28c3676..e85d3dbed7176b9f0c9c3441f936a48a8bef39cb 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -609,6 +609,8 @@ abstract class CommonObject
 
         if (empty($this->socid) && empty($this->fk_soc) && empty($this->fk_thirdparty)) return 0;
 
+	    require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
+
         $thirdparty = new Societe($this->db);
         $result=$thirdparty->fetch(isset($this->socid)?$this->socid:(isset($this->fk_soc)?$this->fk_soc:$this->fk_thirdparty));
         $this->client = $thirdparty;  // deprecated
@@ -1823,7 +1825,7 @@ abstract class CommonObject
 
         if (empty($sourceid) && empty($targetid))
         {
-        	dol_print_error('','Bad usage of function. No parameter defined and no id defined');
+        	dol_syslog('Bad usage of function. No source nor target id defined (nor as parameter nor as object id)', LOG_ERROR);
         	return -1;
         }
 
@@ -2523,14 +2525,14 @@ abstract class CommonObject
 		if (! empty($conf->margin->enabled) && empty($user->societe_id))
 		{
 			if ($conf->global->MARGIN_TYPE == "1")
-				print '<td align="right" width="80">'.$langs->trans('BuyingPrice').'</td>';
+				print '<td align="right" class="margininfos" width="80">'.$langs->trans('BuyingPrice').'</td>';
 			else
-				print '<td align="right" width="80">'.$langs->trans('CostPrice').'</td>';
+				print '<td align="right" class="margininfos" width="80">'.$langs->trans('CostPrice').'</td>';
 
 			if (! empty($conf->global->DISPLAY_MARGIN_RATES) && $user->rights->margins->liretous)
-				print '<td align="right" width="50">'.$langs->trans('MarginRate').'</td>';
+				print '<td align="right" class="margininfos" width="50">'.$langs->trans('MarginRate').'</td>';
 			if (! empty($conf->global->DISPLAY_MARK_RATES) && $user->rights->margins->liretous)
-				print '<td align="right" width="50">'.$langs->trans('MarkRate').'</td>';
+				print '<td align="right" class="margininfos" width="50">'.$langs->trans('MarkRate').'</td>';
 		}
 
 		// Total HT
@@ -3010,11 +3012,16 @@ abstract class CommonObject
 
 		$marginInfo = $this->getMarginInfos($force_price);
 
-		if (! empty($conf->global->MARGININFO_HIDE_SHOW))
-		{
-			print "<img onclick=\"$('.margininfos').toggle();\" src='".img_picto($langs->trans("Hide")."/".$langs->trans("Show"),'object_margin.png','','',1)."'>";
-			if ($conf->global->MARGININFO_HIDE_SHOW == 2) print '<script>$(document).ready(function() {$(".margininfos").hide();});</script>';	// hide by default
-		}
+		print $langs->trans('ShowMarginInfos').' : ';
+        $hidemargininfos = $_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW'];
+    	print '<span id="showMarginInfos" class="linkobject '.(!empty($hidemargininfos)?'':'hideobject').'">'.img_picto($langs->trans("Disabled"),'switch_off').'</span>';
+    	print '<span id="hideMarginInfos" class="linkobject '.(!empty($hidemargininfos)?'hideobject':'').'">'.img_picto($langs->trans("Enabled"),'switch_on').'</span>';
+
+        print '<script>$(document).ready(function() {
+            $("span#showMarginInfos").click(function() { $.getScript( "'.dol_buildpath('/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js', 1).'", function( data, textStatus, jqxhr ) { $.cookie("DOLUSER_MARGININFO_HIDE_SHOW", 0); $(".margininfos").show(); $("span#showMarginInfos").addClass("hideobject"); $("span#hideMarginInfos").removeClass("hideobject");})});
+            $("span#hideMarginInfos").click(function() { $.getScript( "'.dol_buildpath('/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js', 1).'", function( data, textStatus, jqxhr ) { $.cookie("DOLUSER_MARGININFO_HIDE_SHOW", 1); $(".margininfos").hide(); $("span#hideMarginInfos").addClass("hideobject"); $("span#showMarginInfos").removeClass("hideobject");})});
+        });</script>';
+        if (!empty($hidemargininfos)) print '<script>$(document).ready(function() {$(".margininfos").hide();});</script>';
 
 		print '<table class="nobordernopadding margintable" width="100%">';
 		print '<tr class="liste_titre">';
diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php
index db24d257aeefb7c4029f23fea1cd7c8112519f60..94898ec54529c910a2d76f1e043b8f4df704d126 100644
--- a/htdocs/core/class/extrafields.class.php
+++ b/htdocs/core/class/extrafields.class.php
@@ -157,7 +157,7 @@ class ExtraFields
 	{
 		$table=$elementtype.'_extrafields';
 
-		if (! empty($attrname) && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname) && ! is_numeric($attrname))
+		if (! empty($attrname) && preg_match("/^\w[a-zA-Z0-9_]*$/",$attrname) && ! is_numeric($attrname))
 		{
 			if ($type=='boolean') {
 				$typedb='int';
@@ -752,15 +752,17 @@ class ExtraFields
 					if (strpos($InfoFieldList[4], 'extra')!==false)
 					{
 						$sql.= ' as main, '.MAIN_DB_PREFIX .$InfoFieldList[0].'_extrafields as extra';
-						$sqlwhere.= ' AND extra.fk_object=main.'.$InfoFieldList[2]. ' AND '.$InfoFieldList[4];
+						$sqlwhere.= ' WHERE extra.fk_object=main.'.$InfoFieldList[2]. ' AND '.$InfoFieldList[4];
 					}
 					else
 					{
-						$sqlwhere.= ' AND '.$InfoFieldList[4];
+						$sqlwhere.= ' WHERE '.$InfoFieldList[4];
 					}
+				}else {
+					$sqlwhere.= ' WHERE 1';
 				}
 				if (in_array($InfoFieldList[0],array('tablewithentity'))) $sqlwhere.= ' AND entity = '.$conf->entity;	// Some tables may have field, some other not. For the moment we disable it.
-				$sql.=preg_replace('/^ AND /','',$sqlwhere);
+				//$sql.=preg_replace('/^ AND /','',$sqlwhere);
 				//print $sql;
 
 				dol_syslog(get_class($this).'::showInputField type=sellist', LOG_DEBUG);
@@ -988,7 +990,10 @@ class ExtraFields
 				{
 					foreach ($fields_label as $field_toshow)
 					{
-						$translabel=$langs->trans($obj->$field_toshow);
+						$translabel='';
+						if (!empty($obj->$field_toshow)) {
+							$translabel=$langs->trans($obj->$field_toshow);
+						}
 						if ($translabel!=$field_toshow) {
 							$value.=dol_trunc($translabel,18).' ';
 						}else {
@@ -998,7 +1003,10 @@ class ExtraFields
 				}
 				else
 				{
-					$translabel=$langs->trans($obj->$InfoFieldList[1]);
+					$translabel='';
+					if (!empty($obj->$InfoFieldList[1])) {
+						$translabel=$langs->trans($obj->$InfoFieldList[1]);
+					}
 					if ($translabel!=$obj->$InfoFieldList[1]) {
 						$value=dol_trunc($translabel,18);
 					}else {
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index eb7b3d8af4f4d3c4cb8c31e14b52b73f2d288d90..03defa19129e0f1b79990723b0c20a29656d1ff7 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -1835,11 +1835,12 @@ class Form
      *	@param  string	$filterkey      Filtre des produits
      *  @param  int		$statut         -1=Return all products, 0=Products not on sell, 1=Products on sell
      *  @param  int		$outputmode     0=HTML select string, 1=Array
+     *  @param  int     $limit          Limit of line number
      *  @return array           		Array of keys for json
      */
-    function select_produits_fournisseurs_list($socid,$selected='',$htmlname='productid',$filtertype='',$filtre='',$filterkey='',$statut=-1,$outputmode=0)
+    function select_produits_fournisseurs_list($socid,$selected='',$htmlname='productid',$filtertype='',$filtre='',$filterkey='',$statut=-1,$outputmode=0,$limit=100)
     {
-        global $langs,$conf;
+        global $langs,$conf,$db;
 
         $out='';
         $outarray=array();
@@ -1877,6 +1878,7 @@ class Form
         	$sql.=')';
         }
         $sql.= " ORDER BY pfp.ref_fourn DESC, pfp.quantity ASC";
+        $sql.= $db->plimit($limit);
 
         // Build output string
 
@@ -4032,9 +4034,10 @@ class Form
      *	@param  int		$translate		Translate and encode value
      * 	@param	int		$maxlen			Length maximum for labels
      * 	@param	int		$disabled		Html select box is disabled
-     *  @param	int		$sort			'ASC' or 'DESC' =Sort on label, '' or 'NONE'=Do not sort
+     *  @param	int		$sort			'ASC' or 'DESC' = Sort on label, '' or 'NONE' = Do not sort
      *  @param	string	$morecss		Add more class to css styles
      * 	@return	string					HTML select string.
+     *  @see multiselectarray
      */
     static function selectarray($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $moreparam='', $translate=0, $maxlen=0, $disabled=0, $sort='', $morecss='')
     {
@@ -4092,54 +4095,65 @@ class Form
      *
      *	@param	string	$htmlname		Name of select
      *	@param	array	$array			Array with key+value
-     *	@param	array	$selected		Preselected keys
+     *	@param	array	$selected		Array with key+value preselected
      *	@param	int		$key_in_label   1 pour afficher la key dans la valeur "[key] value"
      *	@param	int		$value_as_key   1 to use value as key
      *	@param  string	$option         Valeur de l'option en fonction du type choisi
      *	@param  int		$translate		Translate and encode value
+     *  @param	int		$width			Force width of select box. May be used only when using jquery couch.
      *	@return	string					HTML multiselect string
+     *  @see selectarray
      */
-    function multiselectarray($htmlname, $array, $selected=array(), $key_in_label=0, $value_as_key=0, $option='', $translate=0)
+    static function multiselectarray($htmlname, $array, $selected=array(), $key_in_label=0, $value_as_key=0, $option='', $translate=0, $width=0)
     {
     	global $conf, $langs;
 
-    	$out = '<select id="'.$htmlname.'" class="multiselect" multiple="multiple" name="'.$htmlname.'[]"'.$option.'>'."\n";
+    	// Add code for jquery to use multiselect
+    	// Note: Plugin "multiselect" is no more provided by Dolibarr. You must include it and load it into your module to use it.
+    	if ((! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && ($conf->global->MAIN_USE_JQUERY_MULTISELECT == 'multiselect'))
+    		|| (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT')))
+    	{
+	    	print '<!-- JS CODE FOR multiselect -->
+				<script type="text/javascript">
+				$(document).ready(function () {
+					$.extend($.ui.multiselect.locale, {
+						addAll:\''.$langs->transnoentities("AddAll").'\',
+						removeAll:\''.$langs->transnoentities("RemoveAll").'\',
+						itemsCount:\''.$langs->transnoentities("ItemsCount").'\'
+					});
+					$(function(){
+						$("#'.$htmlname.'").multiselect({
+							searchable: false,
+							width: '.($width?$width:300).',
+							height: 120
+						});
+					});
+				});
+				</script>';
+    	}
+
+        // Add code for jquery to use multiple-select
+    	// Note: Plugin "multiselect" is no more provided by Dolibarr. You must include it and load it into your module to use it.
+    	if ((! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && ($conf->global->MAIN_USE_JQUERY_MULTISELECT == 'multiple-select'))
+    		|| (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT')))
+    	{
+	    	print '<!-- JS CODE FOR multiple-select -->
+			<script src="'.DOL_URL_ROOT.'/includes/jquery/plugins/multiple-select/jquery.multiple.select.js"></script>
+	    	<script type="text/javascript">
+				$(document).ready(function () {
+        			$(\'#'.$htmlname.'\').multipleSelect();
+        		});
+			</script>';
+    	}
+
+    	// Try also magic suggest
+
+    	$out = '<select id="'.$htmlname.'" class="multiselect" multiple="multiple" name="'.$htmlname.'[]"'.$option.($width?' style="width: '.$width.'px"':'').'>'."\n";
     	if (is_array($array) && ! empty($array))
     	{
     		if ($value_as_key) $array=array_combine($array, $array);
 
-    		if (! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && is_array($selected) && ! empty($selected))
-    		{
-    			foreach ($selected as $selected_value)
-    			{
-    				foreach($array as $key => $value)
-    				{
-    					if ($selected_value == $key)
-    					{
-    						$value=$array[$selected_value];
-    						$out.= '<option value="'.$key.'" selected="selected">';
-    						$newval = ($translate ? $langs->trans(ucfirst($value)) : $value);
-    						$newval = ($key_in_label ? $key.' - '.$newval : $newval);
-    						$out.= dol_htmlentitiesbr($newval);
-    						$out.= '</option>'."\n";
-    						unset($array[$key]);
-    					}
-    				}
-    			}
-
-    			if (! empty($array))
-    			{
-    				foreach ($array as $key => $value)
-    				{
-    					$out.= '<option value="'.$key.'">';
-    					$newval = ($translate ? $langs->trans(ucfirst($value)) : $value);
-    					$newval = ($key_in_label ? $key.' - '.$newval : $newval);
-    					$out.= dol_htmlentitiesbr($newval);
-    					$out.= '</option>'."\n";
-    				}
-    			}
-    		}
-    		else
+    		if (! empty($array))
     		{
     			foreach ($array as $key => $value)
     			{
@@ -4150,7 +4164,7 @@ class Form
     				}
     				$out.= '>';
 
-    				$newval = ($translate ? $langs->trans(ucfirst($value)) : $value);
+    				$newval = ($translate ? $langs->trans($value) : $value);
     				$newval = ($key_in_label ? $key.' - '.$newval : $newval);
     				$out.= dol_htmlentitiesbr($newval);
     				$out.= '</option>'."\n";
diff --git a/htdocs/core/class/html.formcron.class.php b/htdocs/core/class/html.formcron.class.php
index bce8d9f041e7e1c9f06203cafaf2417fd83eba18..4de88a7bfc9feb4b1e9111713366cc6aafdedbb6 100644
--- a/htdocs/core/class/html.formcron.class.php
+++ b/htdocs/core/class/html.formcron.class.php
@@ -4,7 +4,7 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -14,6 +14,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * or see http://www.gnu.org/
  */
 
 /**
diff --git a/htdocs/core/class/notify.class.php b/htdocs/core/class/notify.class.php
index 26506360e668a8f739c21df649a518adb060d001..db88671f7ff3bdc665e9286fc37b94254d6739a4 100644
--- a/htdocs/core/class/notify.class.php
+++ b/htdocs/core/class/notify.class.php
@@ -1,6 +1,7 @@
 <?php
 /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2014	   Juanjo Menent		<jmenent@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -173,7 +174,7 @@ class Notify
 
 		// Check notification per third party
 		$sql = "SELECT s.nom, c.email, c.rowid as cid, c.lastname, c.firstname, c.default_lang,";
-		$sql.= " a.rowid as adid, a.label, a.code, n.rowid";
+		$sql.= " a.rowid as adid, a.label, a.code, n.rowid, n.type";
         $sql.= " FROM ".MAIN_DB_PREFIX."socpeople as c,";
         $sql.= " ".MAIN_DB_PREFIX."c_action_trigger as a,";
         $sql.= " ".MAIN_DB_PREFIX."notify_def as n,";
@@ -292,8 +293,8 @@ class Notify
 
 	                    if ($mailfile->sendfile())
 	                    {
-	                        $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, objet_type, objet_id, email)";
-	                        $sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", ".$obj->cid.", '".$object_type."', ".$object->id.", '".$this->db->escape($obj->email)."')";
+	                        $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, type, objet_type, objet_id, email)";
+	                        $sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", ".$obj->cid.", '".$obj->type."', '".$object_type."', ".$object->id.", '".$this->db->escape($obj->email)."')";
 	                        if (! $this->db->query($sql))
 	                        {
 	                            dol_print_error($this->db);
@@ -421,8 +422,8 @@ class Notify
 
 				if ($mailfile->sendfile())
 				{
-					$sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, objet_type, objet_id, email)";
-					$sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", null, '".$object_type."', ".$object->id.", '".$this->db->escape($conf->global->$param)."')";
+					$sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, type, objet_type, objet_id, email)";
+					$sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", null, '".$obj->type."', '".$object_type."', ".$object->id.", '".$this->db->escape($conf->global->$param)."')";
 					if (! $this->db->query($sql))
 					{
 						dol_print_error($this->db);
diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php
index 6b24d5356dffc54783fad10d360b87a7e104b5ba..563c749ae9273107fd702f248d535efdfd8a49e0 100644
--- a/htdocs/core/class/translate.class.php
+++ b/htdocs/core/class/translate.class.php
@@ -33,7 +33,6 @@ class Translate
 
 	var $defaultlang;					// Current language for current user
 	var $direction = 'ltr';				// Left to right or Right to left
-	var $charset_inputfile=array();	// To store charset encoding used for language
 	var $charset_output='UTF-8';		// Codage used by "trans" method outputs
 
 	var $tab_translate=array();		// Array of all translations key=>value
diff --git a/htdocs/core/js/lib_head.js b/htdocs/core/js/lib_head.js
index 40b1473698ef693e46aadf6ee59479d2992243ed..962e4c39f47a2a2b3e53e6ebc3cfb0cd84f0f973 100644
--- a/htdocs/core/js/lib_head.js
+++ b/htdocs/core/js/lib_head.js
@@ -631,7 +631,7 @@ function hideMessage(fieldId,message) {
 
 
 /*
- * TODO Used by admin page only ? 
+ * Used by button to set on/off 
  */
 function setConstant(url, code, input, entity, strict) {
 	$.get( url, {
@@ -689,7 +689,7 @@ function setConstant(url, code, input, entity, strict) {
 }
 
 /*
- * TODO Used by admin page only ? 
+ * Used by button to set on/off  
  */
 function delConstant(url, code, input, entity, strict) {
 	$.get( url, {
@@ -743,7 +743,7 @@ function delConstant(url, code, input, entity, strict) {
 }
 
 /*
- * TODO Used by admin page only ? 
+ * Used by button to set on/off  
  */
 function confirmConstantAction(action, url, code, input, box, entity, yesButton, noButton, strict) {
 	var boxConfirm = box;
diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php
index 709911faaecfac599bad19d3427912be7efd8241..f21d7d2ff028f372e840301c8d4ac8d92f5c69d2 100644
--- a/htdocs/core/lib/ajax.lib.php
+++ b/htdocs/core/lib/ajax.lib.php
@@ -173,6 +173,7 @@ function ajax_autocompleter($selected, $htmlname, $url, $urloption='', $minLengt
     						}
     						$("#search_'.$htmlname.'").trigger("change");	// To tell that input text field was modified
     					}
+    					,delay: 500
 					}).data( "autocomplete" )._renderItem = function( ul, item ) {
 						return $( "<li></li>" )
 						.data( "item.autocomplete", item )
diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php
index 2d5bf7ab0cd40be9e2012f937d62db627aee84f4..4b9401498d7ff987bc1d01daf00c73687c9bc2c7 100644
--- a/htdocs/core/lib/date.lib.php
+++ b/htdocs/core/lib/date.lib.php
@@ -766,7 +766,7 @@ function num_between_day($timestampStart, $timestampEnd, $lastday=0)
  *	@param     	int			$inhour             0: return number of days, 1: return number of hours
  *	@param		int			$lastday            We include last day, 0: no, 1:yes
  *  @param		int			$halfday			Tag to define half day when holiday start and end
- *  @param      string		$countrycode        Country code (company country code if not defined)
+ *  @param      string		$country_code       Country code (company country code if not defined)
  *	@return    	int								Number of days or hours
  */
 function num_open_day($timestampStart, $timestampEnd, $inhour=0, $lastday=0, $halfday=0, $country_code='')
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index a94a77f145451e7b6d1823102c3c0612e1980f45..09c38435c0a1771b844523cbaa1b7cbd418e499c 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -44,14 +44,31 @@ include_once DOL_DOCUMENT_ROOT .'/core/lib/json.lib.php';
  * @param	string 	$class		Class name
  * @param 	string 	$member		Name of property
  * @return 	mixed				Return value of static property
- * @deprecated PHP 5.3 is now the minimum requirement, this is no longer necessary
  */
 function getStaticMember($class, $member)
 {
-	if (isset($class::$member)) {
-		return $class::$member;
-	}
+	// This part is deprecated. Uncomment if for php 5.2.*, and comment next isset class::member
+	/*if (version_compare(phpversion(), '5.3.0', '<'))
+	{
+		if (is_object($class)) $class = get_class($class);
+		$classObj = new ReflectionClass($class);
+		$result = null;
 
+		$found=0;
+		foreach($classObj->getStaticProperties() as $prop => $value)
+		{
+			if ($prop == $member)
+			{
+				$result = $value;
+				$found++;
+				break;
+			}
+		}
+
+		if ($found) return $result;
+	}*/
+
+	if (isset($class::$member)) return $class::$member;
 	dol_print_error('','Try to get a static member "'.$member.'" in class "'.$class.'" that does not exists or is not static.');
 	return null;
 }
@@ -2862,7 +2879,7 @@ function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerou
 
 		$listofcurrenciesbefore=array('USD');
 		if (in_array($currency_code,$listofcurrenciesbefore)) $cursymbolbefore.=$outlangs->getCurrencySymbol($currency_code);
-		else 
+		else
 		{
 			$tmpcur=$outlangs->getCurrencySymbol($currency_code);
 			$cursymbolafter.=($tmpcur == $currency_code ? ' '.$tmpcur : $tmpcur);
diff --git a/htdocs/core/lib/invoice2.lib.php b/htdocs/core/lib/invoice2.lib.php
index ccc115b5b1d327066a9f7451e6d4e90770c7a17f..866cf004ca64a3840d0a4d696986d1b7953aa239 100644
--- a/htdocs/core/lib/invoice2.lib.php
+++ b/htdocs/core/lib/invoice2.lib.php
@@ -2,19 +2,20 @@
 /*
  * Copyright (C) 2009-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
 *
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * or see http://www.gnu.org/
+ */
 
 /**
  *      \file       htdocs/core/lib/invoice2.lib.php
diff --git a/htdocs/core/lib/prelevement.lib.php b/htdocs/core/lib/prelevement.lib.php
index 257f13558ee261f55b2ea5994e374144b5389fec..53f54d66f70f04d84d047509ae223ee657ff40c2 100644
--- a/htdocs/core/lib/prelevement.lib.php
+++ b/htdocs/core/lib/prelevement.lib.php
@@ -44,14 +44,6 @@ function prelevement_prepare_head($object)
 	$head[$h][2] = 'prelevement';
 	$h++;
 
-	if (! empty($conf->global->MAIN_USE_PREVIEW_TABS))
-	{
-		$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/bon.php?id='.$object->id;
-		$head[$h][1] = $langs->trans("Preview");
-		$head[$h][2] = 'preview';
-		$h++;
-	}
-
 	$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/lignes.php?id='.$object->id;
 	$head[$h][1] = $langs->trans("Lines");
 	$head[$h][2] = 'lines';
diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php
index 1d6e12b135725fd07696e5324ac1327f75d824fd..db8f216fd6069d0239a591cf419c5bf08f8a4e86 100644
--- a/htdocs/core/menus/standard/eldy.lib.php
+++ b/htdocs/core/menus/standard/eldy.lib.php
@@ -770,15 +770,18 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
 				if (! empty($conf->facture->enabled)) $newmenu->add("/commande/list.php?leftmenu=orders&amp;viewstatut=-3", $langs->trans("MenuOrdersToBill2"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders');
 				//                  if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire);
 			}
-			
+
 			// Supplier Orders
 			if (! empty($conf->fournisseur->enabled))
 			{
-				$langs->load("supplier");
-				$newmenu->add("/fourn/commande/list.php?leftmenu=orders&amp;search_status=5", $langs->trans("MenuOrdersSupplierToBill"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders');
-				//                  if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire);
+				if (! empty($conf->global->SUPPLIER_MENU_ORDER_RECEIVED_INTO_INVOICE))
+				{
+					$langs->load("supplier");
+					$newmenu->add("/fourn/commande/list.php?leftmenu=orders&amp;search_status=5", $langs->trans("MenuOrdersSupplierToBill"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders');
+					//                  if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire);
+				}
 			}
-			
+
 
 			// Donations
 			if (! empty($conf->don->enabled))
@@ -952,7 +955,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
 			if (! empty($conf->accounting->enabled))
 			{
 				$newmenu->add("/accountancy/admin/fiscalyear.php?mainmenu=accountancy", $langs->trans("Fiscalyear"),0,$user->rights->accounting->fiscalyear, '', $mainmenu, 'fiscalyear');
-				$newmenu->add("/accountancy/admin/account.php?mainmenu=home", $langs->trans("Chartofaccounts"),0,$user->rights->accounting->fiscalyear, '', $mainmenu, 'fiscalyear');
+				$newmenu->add("/accountancy/admin/account.php?mainmenu=accountancy", $langs->trans("Chartofaccounts"),0,$user->rights->accounting->chartofaccount, '', $mainmenu, 'chartofaccount');
 			}
 		}
 
diff --git a/htdocs/core/modules/action/rapport.pdf.php b/htdocs/core/modules/action/rapport.pdf.php
index 38996c7e6f0b3bba451e7c322c3ed34e306fe7d3..464a01120ecdef4b135d91c62f860dc384467f9d 100644
--- a/htdocs/core/modules/action/rapport.pdf.php
+++ b/htdocs/core/modules/action/rapport.pdf.php
@@ -210,6 +210,7 @@ class CommActionRapport
 		$sql.= " WHERE c.id=a.fk_action AND a.fk_user_author = u.rowid";
 		$sql.= " AND a.datep BETWEEN '".$this->db->idate(dol_get_first_day($this->year,$this->month,false))."'";
 		$sql.= " AND '".$this->db->idate(dol_get_last_day($this->year,$this->month,false))."'";
+		$sql.= " AND a.entity = ".$conf->entity;
 		$sql.= " ORDER BY a.datep DESC";
 
 		$eventstatic=new ActionComm($this->db);
diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php
index 9a544b1ece044a1417f1b21edc16acde0726fc67..e074bfe82f12ed1ce640d6007431c358501abfbc 100644
--- a/htdocs/core/modules/modAccounting.class.php
+++ b/htdocs/core/modules/modAccounting.class.php
@@ -229,6 +229,14 @@ class modAccounting extends DolibarrModules
 		$this->rights[$r][4] = 'fiscalyear';
 		$this->rights[$r][5] = '';
 		$r++;
+		
+		$this->rights[$r][0] = 50440;
+		$this->rights[$r][1] = 'Manage chart of accounts';
+		$this->rights[$r][2] = 'r';
+		$this->rights[$r][3] = 1;
+		$this->rights[$r][4] = 'chartofaccount';
+		$this->rights[$r][5] = '';
+		$r++;
 
 		// Main menu entries
 		$this->menus = array();
diff --git a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php
new file mode 100644
index 0000000000000000000000000000000000000000..7440a357ea8f669330120a2d48e691552140c1a6
--- /dev/null
+++ b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php
@@ -0,0 +1,219 @@
+<?php
+/* Copyright (C) 2006-2011 Laurent Destailleur <eldy@users.sourceforge.net>
+ * Copyright (C) 2014 Teddy Andreotti <125155@supinfo.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * or see http://www.gnu.org/
+ */
+
+/**
+ *      \file       htdocs/core/modules/security/generate/modGeneratePassPerso.class.php
+ *      \ingroup    core
+ *      \brief      File to manage no password generation.
+ */
+
+require_once DOL_DOCUMENT_ROOT .'/core/modules/security/generate/modules_genpassword.php';
+
+
+/**
+ *	    \class      modGeneratePassPerso
+ *		\brief      Class to generate a password according to personal rules
+ */
+class modGeneratePassPerso extends ModeleGenPassword
+{
+	var $id;
+	var $length;
+	var $length2; // didn't overright display
+	var $NbMaj;
+	var $NbNum;
+	var $NbSpe;
+	var $NbRepeat;
+	var $WithoutAmbi;
+
+	var $db;
+	var $conf;
+	var $lang;
+	var $user;
+
+	var $Maj;
+	var $Min;
+	var $Nb;
+	var $Spe;
+	var $Ambi;
+	var $All;
+
+	/**
+	 *	Constructor
+	 *
+	 *  @param		DoliDB		$db			Database handler
+	 *	@param		Conf		$conf		Handler de conf
+	 *	@param		Translate	$langs		Handler de langue
+	 *	@param		User		$user		Handler du user connecte
+	 */
+	function __construct($db, $conf, $langs, $user)
+	{
+		$this->id = "Perso";
+		$this->length = $langs->trans("SetupPerso");
+
+		$this->db=$db;
+		$this->conf=$conf;
+		$this->langs=$langs;
+		$this->user=$user;
+
+		if(empty($conf->global->USER_PASSWORD_PATTERN)){
+			// default value (8carac, 1maj, 1digit, 1spe,  3 repeat, no ambi at auto generation.
+			dolibarr_set_const($db, "USER_PASSWORD_PATTERN", '8;1;1;1;3;1','chaine',0,'',$conf->entity);
+		}
+
+		$this->Maj = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+		$this->Min = strtolower($this->Maj);
+		$this->Nb = "0123456789";
+		$this->Spe = "!@#$%&*()_-+={}[]\\|:;'/";
+		$this->Ambi = array("1","I","l","|","O","0");
+
+		$tabConf = explode(";",$conf->global->USER_PASSWORD_PATTERN);
+		$this->length2 = $tabConf[0];
+		$this->NbMaj = $tabConf[1];
+		$this->NbNum = $tabConf[2];
+		$this->NbSpe = $tabConf[3];
+		$this->NbRepeat = $tabConf[4];
+		$this->WithoutAmbi = $tabConf[5];
+
+		if ($this->WithoutAmbi)
+		{
+			$this->Maj = str_replace($this->Ambi,"",$this->Maj);
+			$this->Min = str_replace($this->Ambi,"",$this->Min);
+			$this->Nb  = str_replace($this->Ambi,"",$this->Nb);
+			$this->Spe = str_replace($this->Ambi,"",$this->Spe);
+		}
+
+		$this->All = str_shuffle($this->Maj. $this->Min. $this->Nb. $this->Spe);
+		//$this->All = $this->Maj. $this->Min. $this->Nb. $this->Spe;
+		//$this->All =  $this->Spe;
+
+	}
+
+	/**
+	 *		Return description of module
+	 *
+	 *      @return     string      Description of text
+	 */
+	function getDescription()
+	{
+		global $langs;
+		return $langs->trans("PasswordGenerationPerso");
+	}
+
+	/**
+	 * 		Return an example of password generated by this module
+	 *
+	 *      @return     string      Example of password
+	 */
+	function getExample()
+	{
+		return $this->getNewGeneratedPassword();
+	}
+
+	/**
+	 * 		Build new password
+	 *
+	 *      @return     string      Return a new generated password
+	 */
+	function getNewGeneratedPassword()
+	{
+		$pass = "";
+		for($i=0; $i<$this->NbMaj; $i++){ // Y
+			$pass .= $this->Maj[rand(0,strlen($this->Maj) - 1)];
+		}
+
+		for($i=0; $i<$this->NbNum; $i++){ // X
+			$pass .= $this->Nb[rand(0,strlen($this->Nb) - 1)];
+		}
+
+		for($i=0; $i<$this->NbSpe; $i++){ // @
+			$pass .= $this->Spe[rand(0,strlen($this->Spe) - 1)];
+		}
+
+		for($i=strlen($pass);$i<$this->length2; $i++){ // y
+			$pass .= $this->All[rand(0,strlen($this->All) -1)];
+		}
+
+		$pass = str_shuffle($pass);
+
+		if ($this->validatePassword($pass))
+		{
+			return $pass;
+		}
+
+		return $this->getNewGeneratedPassword();
+	}
+
+	/**
+	 * 		Validate a password
+	 *
+	 *		@param		string	$password	Password to check
+	 *      @return     int					0 if KO, >0 if OK
+	 */
+	function validatePassword($password)
+	{
+		$password_a = str_split($password);
+		$maj = str_split($this->Maj);
+		$num = str_split($this->Nb);
+		$spe = str_split($this->Spe);
+
+		if(count(array_intersect($password_a, $maj)) < $this->NbMaj){
+			return 0;
+		}
+
+		if(count(array_intersect($password_a, $num)) < $this->NbNum){
+			return 0;
+		}
+
+		if(count(array_intersect($password_a, $spe)) < $this->NbSpe){
+			return 0;
+		}
+
+		if(!$this->consecutiveInterationSameCharacter($password)){
+			return 0;
+		}
+
+		return 1;
+	}
+
+	/**
+	 * 		consecutive iterations of the same character
+	 *
+	 *		@param		string	$password	Password to check
+	 *      @return     int					0 if KO, >0 if OK
+	 */
+	function consecutiveInterationSameCharacter($password){
+		$last = "";
+		$count = 0;
+		$char = str_split($password);
+		foreach($char as $c){
+			if($c != $last){
+				$last = $c;
+				$count = 0;
+			}else{
+				$count++;
+			}
+
+			if($count >= $this->NbRepeat) {
+				return 0;
+			}
+		}
+		return 1;
+	}
+}
+
diff --git a/htdocs/core/tpl/admin_extrafields_add.tpl.php b/htdocs/core/tpl/admin_extrafields_add.tpl.php
index bdced5118679e473c81237b606f64c29164d92be..56cca5af04fb6671098acb4f2afbb47f89118c92 100644
--- a/htdocs/core/tpl/admin_extrafields_add.tpl.php
+++ b/htdocs/core/tpl/admin_extrafields_add.tpl.php
@@ -87,8 +87,8 @@
 </td>
 <td>
 <table class="nobordernopadding">
-<tr><td width="30%">
-	<textarea name="param" id="param"><?php echo GETPOST('param'); ?></textarea>
+<tr><td>
+	<textarea name="param" id="param" cols="80" rwos="<?php echo ROWS_4 ?>"><?php echo GETPOST('param'); ?></textarea>
 </td><td id="helpselect"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpselect"),1,0)?></td>
 <td id="helpsellist"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpsellist"),1,0)?></td></tr>
 </table>
diff --git a/htdocs/core/tpl/admin_extrafields_edit.tpl.php b/htdocs/core/tpl/admin_extrafields_edit.tpl.php
index dcf1af56ed1661479a3dfd1d007093d06880061a..493634c84a5d7da505c165f62cbdf6e0aec0fde8 100644
--- a/htdocs/core/tpl/admin_extrafields_edit.tpl.php
+++ b/htdocs/core/tpl/admin_extrafields_edit.tpl.php
@@ -98,8 +98,8 @@ if(($type == 'select') || ($type == 'sellist') || ($type == 'checkbox') ||(($typ
 </td>
 <td>
 <table class="nobordernopadding">
-<tr><td width="30%">
-	<textarea name="param" id="param"><?php echo $param_chain; ?></textarea>
+<tr><td>
+	<textarea name="param" id="param" cols="80" rows="<?php echo ROWS_4 ?>"><?php echo $param_chain; ?></textarea>
 </td><td><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelp".$type),1,0)?></td></tr>
 </table>
 </td>
diff --git a/htdocs/core/tpl/extrafields_view.tpl.php b/htdocs/core/tpl/extrafields_view.tpl.php
index d344ef5eb8270ab0339f1b2e14b4913adb6b4c41..ad2fa068757b96f3f85e3096ed508734daaf4f42 100644
--- a/htdocs/core/tpl/extrafields_view.tpl.php
+++ b/htdocs/core/tpl/extrafields_view.tpl.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2014	Maxime Kohlhaas		<support@atm-consulting.fr>
+ * Copyright (C) 2014	Juanjo Menent		<jmenent@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -13,7 +14,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * 
+ *
  * Need to have following variables defined:
  * $object (invoice, order, ...)
  * $conf
@@ -48,18 +49,30 @@ if (empty($reshook) && ! empty($extrafields->attribute_label))
 			print '<table width="100%" class="nobordernopadding"><tr><td';
 			if (! empty($extrafields->attribute_required [$key])) print ' class="fieldrequired"';
 			print '>' . $label . '</td>';
-			if (($object->statut == 0 || $extrafields->attribute_alwayseditable[$key]) && $user->rights->{$object->element}->creer && ($action != 'edit_extras' || GETPOST('attribute') != $key))
+
+			//TODO Improve element and rights detection
+			//var_dump($user->rights);
+			$permok=false;
+			$keyforperm=$object->element;
+			if ($object->element == 'fichinter') $keyforperm='ficheinter';
+			if (isset($user->rights->$keyforperm)) $permok=$user->rights->$keyforperm->creer||$user->rights->$keyforperm->create||$user->rights->$keyforperm->write;
+			if ($object->element=='order_supplier') $permok=$user->rights->fournisseur->commande->creer;
+			if ($object->element=='invoice_supplier') $permok=$user->rights->fournisseur->facture->creer;
+
+			if (($object->statut == 0 || $extrafields->attribute_alwayseditable[$key])
+				&& $permok && ($action != 'edit_extras' || GETPOST('attribute') != $key))
 				print '<td align="right"><a href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=edit_extras&attribute=' . $key . '">' . img_edit().'</a></td>';
-			
+
 			print '</tr></table>';
 			print '<td colspan="5">';
-			
+
 			// Convert date into timestamp format
 			if (in_array($extrafields->attribute_type [$key], array('date','datetime'))) {
 				$value = isset($_POST ["options_" . $key]) ? dol_mktime($_POST ["options_" . $key . "hour"], $_POST ["options_" . $key . "min"], 0, $_POST ["options_" . $key . "month"], $_POST ["options_" . $key . "day"], $_POST ["options_" . $key . "year"]) : $db->jdate($object->array_options ['options_' . $key]);
 			}
 
-			if ($action == 'edit_extras' && $user->rights->{$object->element}->creer && GETPOST('attribute') == $key)
+			//TODO Improve element and rights detection
+			if ($action == 'edit_extras' && $permok && GETPOST('attribute') == $key)
 			{
 				print '<form enctype="multipart/form-data" action="' . $_SERVER["PHP_SELF"] . '" method="post" name="formextra">';
 				print '<input type="hidden" name="action" value="update_extras">';
diff --git a/htdocs/core/tpl/login.tpl.php b/htdocs/core/tpl/login.tpl.php
index c4f9ff2b2062f7f8f5aa3dedad063a7342a171cf..23d8dd4f3265c904defa2bdfc9e84b64908f85d1 100644
--- a/htdocs/core/tpl/login.tpl.php
+++ b/htdocs/core/tpl/login.tpl.php
@@ -83,13 +83,17 @@ $(document).ready(function () {
 <tr>
 <td valign="middle" class="loginfield"><strong><label for="username"><?php echo $langs->trans('Login'); ?></label></strong></td>
 <td valign="middle" class="nowrap">
-<input type="text" id="username" name="username" class="flat" size="15" maxlength="40" value="<?php echo dol_escape_htmltag($login); ?>" tabindex="1" autofocus="autofocus" />
+<span class="span-icon-user">
+<input type="text" id="username" name="username" class="flat input-icon-user" size="15" maxlength="40" value="<?php echo dol_escape_htmltag($login); ?>" tabindex="1" autofocus="autofocus" />
+</span>
 </td>
 </tr>
 <!-- Password -->
 <tr><td valign="middle" class="loginfield nowrap"><strong><label for="password"><?php echo $langs->trans('Password'); ?></label></strong></td>
 <td valign="middle" class="nowrap">
-<input id="password" name="password" class="flat" type="password" size="15" maxlength="30" value="<?php echo dol_escape_htmltag($password); ?>" tabindex="2" autocomplete="off" />
+<span class="span-icon-password">
+<input id="password" name="password" class="flat input-icon-password" type="password" size="15" maxlength="30" value="<?php echo dol_escape_htmltag($password); ?>" tabindex="2" autocomplete="off" />
+</span>
 </td></tr>
 <?php
 if (! empty($hookmanager->resArray['options'])) {
@@ -111,7 +115,11 @@ if (! empty($hookmanager->resArray['options'])) {
 	<td valign="top" class="nowrap none" align="left">
 
 	<table class="login_table_securitycode" style="width: 100px;"><tr>
-	<td><input id="securitycode" class="flat" type="text" size="6" maxlength="5" name="code" tabindex="4" /></td>
+	<td>
+	<span class="span-icon-security">
+	<input id="securitycode" class="flat input-icon-security" type="text" size="6" maxlength="5" name="code" tabindex="4" />
+	</span>
+	</td>
 	<td><img src="<?php echo DOL_URL_ROOT ?>/core/antispamimage.php" border="0" width="80" height="32" id="img_securitycode" /></td>
 	<td><a href="<?php echo $php_self; ?>"><?php echo $captcha_refresh; ?></a></td>
 	</tr></table>
diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
index 6af092c7e92107a75cb2df64b3287073f6c60479..86ef648bf947965b932cd17854578f050ccec390 100644
--- a/htdocs/core/tpl/objectline_create.tpl.php
+++ b/htdocs/core/tpl/objectline_create.tpl.php
@@ -61,7 +61,7 @@ if (in_array($object->element,array('propal','facture','invoice','commande','ord
 	if (! empty($usemargins))
 	{
 		?>
-		<td align="right">
+		<td align="right" class="margininfos">
 		<?php
 		echo '<label for="buying_price">';
 		if ($conf->global->MARGIN_TYPE == "1")
@@ -72,8 +72,8 @@ if (in_array($object->element,array('propal','facture','invoice','commande','ord
 		?>
 		</td>
 		<?php
-		if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARGIN_RATES)) echo '<td align="right"><span class="np_marginRate">'.$langs->trans('MarginRate').'</span></td>';
-		if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARK_RATES)) 	echo '<td align="right"><span class="np_markRate">'.$langs->trans('MarkRate').'</span></td>';
+		if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARGIN_RATES)) echo '<td align="right" class="margininfos"><span class="np_marginRate">'.$langs->trans('MarginRate').'</span></td>';
+		if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARK_RATES)) 	echo '<td align="right" class="margininfos"><span class="np_markRate">'.$langs->trans('MarkRate').'</span></td>';
 	}
 	?>
 	<td colspan="<?php echo $colspan; ?>">&nbsp;</td>
@@ -217,7 +217,7 @@ else {
 	if (! empty($usemargins))
 	{
 		?>
-		<td align="right">
+		<td align="right" class="margininfos">
 			<!-- For predef product -->
 			<?php if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) { ?>
 			<select id="fournprice_predef" name="fournprice_predef" class="flat" style="display: none;"></select>
@@ -232,12 +232,12 @@ else {
 		{
 			if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 			{
-				echo '<td align="right" class="nowrap"><input type="text" size="2" id="np_marginRate" name="np_marginRate" value="'.(isset($_POST["np_marginRate"])?$_POST["np_marginRate"]:'').'"><span class="np_marginRate hideonsmartphone">%</span></td>';
+				echo '<td align="right" class="nowrap margininfos"><input type="text" size="2" id="np_marginRate" name="np_marginRate" value="'.(isset($_POST["np_marginRate"])?$_POST["np_marginRate"]:'').'"><span class="np_marginRate hideonsmartphone">%</span></td>';
 				$coldisplay++;
 			}
 			if (! empty($conf->global->DISPLAY_MARK_RATES))
 			{
-				echo '<td align="right" class="nowrap"><input type="text" size="2" id="np_markRate" name="np_markRate" value="'.(isset($_POST["np_markRate"])?$_POST["np_markRate"]:'').'"><span class="np_markRate hideonsmartphone">%</span></td>';
+				echo '<td align="right" class="nowrap margininfos"><input type="text" size="2" id="np_markRate" name="np_markRate" value="'.(isset($_POST["np_markRate"])?$_POST["np_markRate"]:'').'"><span class="np_markRate hideonsmartphone">%</span></td>';
 				$coldisplay++;
 			}
 		}
diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php
index 68a19c0bb735e6287aa3f01a19b399e515380448..fbe2870a6a4adbfc90f7bd55abb488a0d79e8d6e 100644
--- a/htdocs/core/tpl/objectline_edit.tpl.php
+++ b/htdocs/core/tpl/objectline_edit.tpl.php
@@ -125,7 +125,7 @@ $coldisplay=-1; // We remove first td
 	if (! empty($usemargins))
 	{
 	?>
-		<td align="right"><?php $coldisplay++; ?>
+		<td align="right" class="margininfos"><?php $coldisplay++; ?>
 			<!-- For predef product -->
 			<?php if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) { ?>
 			<select id="fournprice_predef" name="fournprice_predef" class="flat" style="display: none;"></select>
@@ -139,9 +139,9 @@ $coldisplay=-1; // We remove first td
 				    $margin_rate = (isset($_POST["np_marginRate"])?$_POST["np_marginRate"]:(($line->pa_ht == 0)?'':price($line->marge_tx)));
 				    // if credit note, dont allow to modify margin
 					if ($line->subprice < 0)
-						echo '<td align="right" class="nowrap">'.$margin_rate.'<span class="hideonsmartphone">%</span></td>';
+						echo '<td align="right" class="nowrap margininfos">'.$margin_rate.'<span class="hideonsmartphone">%</span></td>';
 					else
-						echo '<td align="right" class="nowrap"><input type="text" size="2" name="np_marginRate" value="'.$margin_rate.'"><span class="hideonsmartphone">%</span></td>';
+						echo '<td align="right" class="nowrap margininfos"><input type="text" size="2" name="np_marginRate" value="'.$margin_rate.'"><span class="hideonsmartphone">%</span></td>';
 					$coldisplay++;
 				  }
 				elseif (! empty($conf->global->DISPLAY_MARK_RATES))
@@ -149,9 +149,9 @@ $coldisplay=-1; // We remove first td
 				    $mark_rate = (isset($_POST["np_markRate"])?$_POST["np_markRate"]:price($line->marque_tx));
 				    // if credit note, dont allow to modify margin
 					if ($line->subprice < 0)
-						echo '<td align="right" class="nowrap">'.$mark_rate.'<span class="hideonsmartphone">%</span></td>';
+						echo '<td align="right" class="nowrap margininfos">'.$mark_rate.'<span class="hideonsmartphone">%</span></td>';
 					else
-						echo '<td align="right" class="nowrap"><input type="text" size="2" name="np_markRate" value="'.$mark_rate.'"><span class="hideonsmartphone">%</span></td>';
+						echo '<td align="right" class="nowrap margininfos"><input type="text" size="2" name="np_markRate" value="'.$mark_rate.'"><span class="hideonsmartphone">%</span></td>';
 					$coldisplay++;
 				  }
 			  }
diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php
index 777732aa192a2b2a954cfc34c3934cc0239b1f39..1c8bb07f56056eb3fb2790b1c2ad15c4f3a21a2d 100644
--- a/htdocs/core/tpl/objectline_view.tpl.php
+++ b/htdocs/core/tpl/objectline_view.tpl.php
@@ -141,13 +141,13 @@ if (empty($inputalsopricewithtax)) $inputalsopricewithtax=0;
   if (! empty($conf->margin->enabled) && empty($user->societe_id)) {
 	$rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT);
   ?>
-  	<td align="right" class="nowrap"><?php $coldisplay++; ?><div class="margininfos"><?php echo price($line->pa_ht); ?></div></td>
+  	<td align="right" class="nowrap margininfos"><?php $coldisplay++; ?><?php echo price($line->pa_ht); ?></td>
   	<?php if (! empty($conf->global->DISPLAY_MARGIN_RATES) && $user->rights->margins->liretous) {?>
-  	  <td align="right" class="nowrap"><?php $coldisplay++; ?><?php echo (($line->pa_ht == 0)?'n/a':price($line->marge_tx, null, null, null, null, $rounding).'%'); ?></td>
+  	  <td align="right" class="nowrap margininfos"><?php $coldisplay++; ?><?php echo (($line->pa_ht == 0)?'n/a':price($line->marge_tx, null, null, null, null, $rounding).'%'); ?></td>
   	<?php
   }
   if (! empty($conf->global->DISPLAY_MARK_RATES) && $user->rights->margins->liretous) {?>
-  	  <td align="right" class="nowrap"><?php $coldisplay++; ?><?php echo price($line->marque_tx, null, null, null, null, $rounding).'%'; ?></td>
+  	  <td align="right" class="nowrap margininfos"><?php $coldisplay++; ?><?php echo price($line->marque_tx, null, null, null, null, $rounding).'%'; ?></td>
   <?php } } ?>
 
 	<?php if ($line->special_code == 3)	{ ?>
diff --git a/htdocs/core/tpl/passwordforgotten.tpl.php b/htdocs/core/tpl/passwordforgotten.tpl.php
index 61c0bbe6cfc5b0703b5f90176074c624707198d3..af27aff944b401ad47a761483e30ed0dfe6cd018 100644
--- a/htdocs/core/tpl/passwordforgotten.tpl.php
+++ b/htdocs/core/tpl/passwordforgotten.tpl.php
@@ -69,7 +69,9 @@ $(document).ready(function () {
 <tr>
 <td valign="bottom" class="loginfield nowrap"><strong><label for="username"><?php echo $langs->trans('Login'); ?></label></strong></td>
 <td valign="bottom" class="nowrap">
-<input type="text" <?php echo $disabled; ?> id="username" name="username" class="flat" size="15" maxlength="40" value="<?php echo dol_escape_htmltag($login); ?>" tabindex="1" />
+<span class="span-icon-user">
+<input type="text" <?php echo $disabled; ?> id="username" name="username" class="flat input-icon-user" size="15" maxlength="40" value="<?php echo dol_escape_htmltag($login); ?>" tabindex="1" />
+</span>
 </td>
 </tr>
 
@@ -91,7 +93,11 @@ if (! empty($hookmanager->resArray['options'])) {
 	<td valign="top" class="nowrap none" align="left">
 
 	<table class="login_table_securitycode" style="width: 100px;"><tr>
-	<td><input id="securitycode" class="flat" type="text" size="6" maxlength="5" name="code" tabindex="4" /></td>
+	<td>
+	<span class="span-icon-security">
+	<input id="securitycode" class="flat input-icon-security" type="text" size="6" maxlength="5" name="code" tabindex="4" />
+	</span>
+	</td>
 	<td><img src="<?php echo DOL_URL_ROOT ?>/core/antispamimage.php" border="0" width="80" height="32" id="img_securitycode" /></td>
 	<td><a href="<?php echo $php_self; ?>"><?php echo $captcha_refresh; ?></a></td>
 	</tr></table>
diff --git a/htdocs/fichinter/admin/fichinter_extrafields.php b/htdocs/fichinter/admin/fichinter_extrafields.php
index cab0886f5ffaf107606ef60a868d3859a84511eb..8cb95a30f633d302f2c9c5c0988b4ca7e806c568 100644
--- a/htdocs/fichinter/admin/fichinter_extrafields.php
+++ b/htdocs/fichinter/admin/fichinter_extrafields.php
@@ -92,6 +92,7 @@ print '<td>'.$langs->trans("Type").'</td>';
 print '<td align="right">'.$langs->trans("Size").'</td>';
 print '<td align="center">'.$langs->trans("Unique").'</td>';
 print '<td align="center">'.$langs->trans("Required").'</td>';
+print '<td align="center">'.$langs->trans("AlwaysEditable").'</td>';
 print '<td width="80">&nbsp;</td>';
 print "</tr>\n";
 
@@ -107,6 +108,7 @@ foreach($extrafields->attribute_type as $key => $value)
     print '<td align="right">'.$extrafields->attribute_size[$key]."</td>\n";
     print '<td align="center">'.yn($extrafields->attribute_unique[$key])."</td>\n";
     print '<td align="center">'.yn($extrafields->attribute_required[$key])."</td>\n";
+    print '<td align="center">'.yn($extrafields->attribute_alwayseditable[$key])."</td>\n";	 // TODO This must be generalised into all page to admin extrafield. Mutualize code here is easy and will save a lot of code
     print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=edit&attrname='.$key.'">'.img_edit().'</a>';
     print "&nbsp; <a href=\"".$_SERVER["PHP_SELF"]."?action=delete&attrname=$key\">".img_delete()."</a></td>\n";
     print "</tr>";
diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php
index 4bea6c46850a4de2630b807d9f16a7f7ad5d2b6b..524feec13df54984b281adc61c9a2d6156ff8077 100644
--- a/htdocs/fichinter/list.php
+++ b/htdocs/fichinter/list.php
@@ -62,6 +62,13 @@ $search_desc=GETPOST('search_desc','alpha');
 $search_status=GETPOST('search_status');
 $sall=GETPOST('sall');
 
+if (GETPOST("button_removefilter"))
+{
+	$search_ref="";
+	$search_company="";
+	$search_desc="";
+	$search_status="";
+}
 
 /*
  *	View
@@ -131,6 +138,7 @@ if ($result)
 		print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],"fd.duree","",$urlparam,'align="right"',$sortfield,$sortorder);
 	}
 	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.fk_statut","",$urlparam,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre('',$_SERVER["PHP_SELF"], '');
 	print "</tr>\n";
 
 	print '<tr class="liste_titre">';
@@ -151,9 +159,10 @@ if ($result)
 	print '<td class="liste_titre" align="right">';
 	$liststatus=$interventionstatic->statuts_short;
 	print $form->selectarray('search_status', $liststatus, GETPOST('search_status'), 1, 0, 0, '', 1);
-	print '<input class="liste_titre" align="right" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
 	print '</td>';
-	print "</tr>\n";
+	print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+    print "</td></tr>\n";
 
 	$companystatic=new Societe($db);
 
@@ -184,7 +193,8 @@ if ($result)
 			print '<td align="right">'.convertSecondToTime($objp->duree).'</td>';
 		}
 		print '<td align="right">'.$interventionstatic->LibStatut($objp->fk_statut,5).'</td>';
-
+		
+		print '<td>&nbsp;</td>';
 		print "</tr>\n";
 
 		$total += $objp->duree;
@@ -194,10 +204,10 @@ if ($result)
 	if (empty($conf->global->FICHINTER_DISABLE_DETAILS))
 	{
 		print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total").'</td>';
-		print '<td align="right" class="nowrap liste_total">'.convertSecondToTime($total).'</td><td>&nbsp;</td>';
+		print '<td align="right" class="nowrap liste_total">'.convertSecondToTime($total).'</td><td>&nbsp;</td><td>&nbsp;</td>';
 		print '</tr>';
 	}
-
+	
 	print '</table>';
 	print "</form>\n";
 	$db->free($result);
diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php
index bd786cfdf4cbcac61181d8f6e6df9e4c8527936d..db4212308deb94e5df11f4c7460e0cc09cf7d603 100644
--- a/htdocs/fourn/class/fournisseur.facture.class.php
+++ b/htdocs/fourn/class/fournisseur.facture.class.php
@@ -146,7 +146,7 @@ class FactureFournisseur extends CommonInvoice
      */
     function create($user)
     {
-        global $langs,$conf;
+        global $langs,$conf,$hookmanager;
 
 		$error=0;
         $now=dol_now();
@@ -255,6 +255,23 @@ class FactureFournisseur extends CommonInvoice
             $result=$this->update_price();
             if ($result > 0)
             {
+				// Actions on extra fields (by external module or standard code)
+				// FIXME le hook fait double emploi avec le trigger !!
+				$hookmanager->initHooks(array('supplierinvoicedao'));
+				$parameters=array('socid'=>$this->id);
+				$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
+				if (empty($reshook))
+				{
+	            	if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
+					{
+						$result=$this->insertExtraFields();
+						if ($result < 0)
+						{
+							$error++;
+						}
+					}
+				}
+				else if ($reshook < 0) $error++;
                 // Call trigger
                 $result=$this->call_trigger('BILL_SUPPLIER_CREATE',$user);
                 if ($result < 0) $error++;
diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php
index 58abe4578313113d6e614f3863accc726987eae0..ab0fd08d3f0b3c7f53a4db8193b0a6e568ea127a 100644
--- a/htdocs/fourn/commande/list.php
+++ b/htdocs/fourn/commande/list.php
@@ -39,12 +39,11 @@ $langs->load("sendings");
 
 $search_ref=GETPOST('search_ref');
 $search_refsupp=GETPOST('search_refsupp');
-$search_nom=GETPOST('search_nom');
+$search_company=GETPOST('search_company');
 $search_user=GETPOST('search_user');
 $search_ttc=GETPOST('search_ttc');
 $sall=GETPOST('search_all');
 $search_status=GETPOST('search_status','int');
-if ($search_status == '') $search_status=-1;
 
 $page  = GETPOST('page','int');
 $socid = GETPOST('socid','int');
@@ -58,6 +57,18 @@ $orderid = GETPOST('orderid');
 if ($user->societe_id) $socid=$user->societe_id;
 $result = restrictedArea($user, 'fournisseur', $orderid, '', 'commande');
 
+// Purge search criteria
+if (GETPOST("button_removefilter"))
+{
+    $search_ref='';
+    $search_refsupp='';
+    $search_company='';
+	$search_user='';
+	$search_ttc='';
+	$search_status='';
+}
+
+if ($search_status == '') $search_status=-1;
 
 /*
  *	View
@@ -102,9 +113,9 @@ if ($search_ref)
 {
 	$sql .= natural_search('cf.ref', $search_ref);
 }
-if ($search_nom)
+if ($search_company)
 {
-	$sql .= natural_search('s.nom', $search_nom);
+	$sql .= natural_search('s.nom', $search_company);
 }
 if ($search_user)
 {
@@ -154,13 +165,14 @@ if ($resql)
 	$i = 0;
 
 	$param="";
-	if ($search_ref)	$param.="&search_ref=".$search_ref;
-	if ($search_nom)	$param.="&search_nom=".$search_nom;
-	if ($search_user)	$param.="&search_user=".$search_user;
-	if ($search_ttc)	$param.="&search_ttc=".$search_ttc;
-	if ($search_refsupp) $param.="&search_refsupp=".$search_refsupp;
-	if ($socid)			$param.="&socid=".$socid;
-	if ($search_status >= 0)  $param.="&search_status=".$search_status;
+	if ($search_ref)			$param.="&search_ref=".$search_ref;
+	if ($search_company)		$param.="&search_company=".$search_company;
+	if ($search_user)			$param.="&search_user=".$search_user;
+	if ($search_ttc)			$param.="&search_ttc=".$search_ttc;
+	if ($search_refsupp) 		$param.="&search_refsupp=".$search_refsupp;
+	if ($socid)					$param.="&socid=".$socid;
+	if ($search_status >= 0)  	$param.="&search_status=".$search_status;
+	
 	print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords);
 	print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
 	print '<table class="noborder" width="100%">';
@@ -180,7 +192,7 @@ if ($resql)
 
 	print '<td class="liste_titre"><input type="text" class="flat" name="search_ref" value="'.$search_ref.'"></td>';
 	print '<td class="liste_titre"><input type="text" class="flat" name="search_refsupp" value="'.$search_refsupp.'"></td>';
-	print '<td class="liste_titre"><input type="text" class="flat" name="search_nom" value="'.$search_nom.'"></td>';
+	print '<td class="liste_titre"><input type="text" class="flat" name="search_company" value="'.$search_company.'"></td>';
 	print '<td class="liste_titre"><input type="text" class="flat" name="search_user" value="'.$search_user.'"></td>';
 	print '<td class="liste_titre"><input type="text" class="flat" name="search_ttc" value="'.$search_ttc.'"></td>';
 	print '<td class="liste_titre">&nbsp;</td>';
@@ -188,10 +200,9 @@ if ($resql)
 	print '<td class="liste_titre" align="right">';
 	$formorder->selectSupplierOrderStatus($search_status,1,'search_status');
 	print '</td>';
-	print '<td class="liste_titre" align="right">';
-	print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-	print '</td>';
-	print '</tr>';
+	print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+	print "</td></tr>\n";
 
 	$var=true;
 
diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php
index b88fd582400780d8e1da95795732b5be83645eb4..38a0f79a6ea3588973d01e9527c4f29a1be10f23 100644
--- a/htdocs/fourn/facture/card.php
+++ b/htdocs/fourn/facture/card.php
@@ -300,10 +300,16 @@ elseif ($action == 'add' && $user->rights->fournisseur->facture->creer)
         $_GET['socid']=$_POST['socid'];
         $error++;
     }
-
+    
+    // Fill array 'array_options' with data from add form
+    
     if (! $error)
     {
         $db->begin();
+        
+        $extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
+		$ret = $extrafields->setOptionalsFromPost($extralabels, $object);
+		if ($ret < 0) $error ++;
 
         $tmpproject = GETPOST('projectid', 'int');
 
@@ -1077,7 +1083,7 @@ elseif ($action == 'update_extras')
 	{
 		// Actions on extra fields (by external module or standard code)
 		// FIXME le hook fait double emploi avec le trigger !!
-		$hookmanager->initHooks(array('supplierorderdao'));
+		$hookmanager->initHooks(array('supplierinvoicedao'));
 		$parameters=array('id'=>$object->id);
 
 		$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
@@ -1179,6 +1185,9 @@ llxHeader('','','');
 // Mode creation
 if ($action == 'create')
 {
+	$facturestatic = new FactureFournisseur($db);
+	$extralabels = $extrafields->fetch_name_optionals_label($facturestatic->table_element);
+	
     print_fiche_titre($langs->trans('NewBill'));
 
     dol_htmloutput_events();
@@ -1419,6 +1428,11 @@ if ($action == 'create')
     print '</td>';
     // print '<td><textarea name="note" wrap="soft" cols="60" rows="'.ROWS_5.'"></textarea></td>';
     print '</tr>';
+    
+	if (empty($reshook) && ! empty($extrafields->attribute_label))
+	{
+		print $object->showOptionals($extrafields, 'edit');
+	}
 
     if (is_object($objectsrc))
     {
@@ -1530,6 +1544,9 @@ else
         $societe = new Fournisseur($db);
         $result=$societe->fetch($object->socid);
         if ($result < 0) dol_print_error($db);
+        
+        // fetch optionals attributes and labels
+		$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
 
         /*
          *	View card
diff --git a/htdocs/fourn/facture/impayees.php b/htdocs/fourn/facture/impayees.php
index a80cb00f2d33d071dedeb3a12656afb79e8f6e34..3253a79fcd85abfdfa960d76706c2dc8fc3e38a8 100644
--- a/htdocs/fourn/facture/impayees.php
+++ b/htdocs/fourn/facture/impayees.php
@@ -47,36 +47,14 @@ if ($user->societe_id > 0)
 	$socid = $user->societe_id;
 }
 
-
-/*
- * View
- */
-
-$now=dol_now();
-
-llxHeader('',$langs->trans("BillsSuppliersUnpaid"));
-
-$title=$langs->trans("BillsSuppliersUnpaid");
-
-$facturestatic=new FactureFournisseur($db);
-$companystatic=new Societe($db);
-
-
-/***************************************************************************
-*                                                                         *
-*                      Mode Liste                                         *
-*                                                                         *
-***************************************************************************/
-
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 
 $search_ref = GETPOST('search_ref','alpha');
 $search_ref_supplier = GETPOST('search_ref_supplier','alpha');
-$search_societe = GETPOST('search_societe','alpha');
-$search_montant_ht = GETPOST('search_montant_ht','int');
-$search_montant_ttc = GETPOST('search_montant_ttc','int');
-
+$search_company = GETPOST('search_company','alpha');
+$search_amount_no_tax = GETPOST('search_amount_no_tax','alpha');
+$search_amount_all_tax = GETPOST('search_amount_all_tax','alpha');
 
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
@@ -86,6 +64,28 @@ $pagenext = $page + 1;
 if (! $sortfield) $sortfield="f.date_lim_reglement";
 if (! $sortorder) $sortorder="ASC";
 
+if (GETPOST("button_removefilter"))
+{
+	$search_ref="";
+	$search_ref_supplier="";
+	$search_company="";
+	$search_amount_no_tax="";
+	$search_amount_all_tax="";
+}
+
+/*
+ * View
+ */
+
+$now=dol_now();
+
+llxHeader('',$langs->trans("BillsSuppliersUnpaid"));
+
+$title=$langs->trans("BillsSuppliersUnpaid");
+
+$facturestatic=new FactureFournisseur($db);
+$companystatic=new Societe($db);
+
 if ($user->rights->fournisseur->facture->lire)
 {
 	$sql = "SELECT s.rowid as socid, s.nom as name,";
@@ -124,19 +124,19 @@ if ($user->rights->fournisseur->facture->lire)
 		$sql .= " AND f.ref_supplier LIKE '%".$search_ref_supplier."%'";
 	}
 
-	if ($search_societe)
+	if ($search_company)
 	{
-		$sql .= " AND s.nom LIKE '%".$search_societe."%'";
+		$sql .= " AND s.nom LIKE '%".$search_company."%'";
 	}
 
-	if ($search_montant_ht)
+	if ($search_amount_no_tax)
 	{
-		$sql .= " AND f.total_ht = '".$search_montant_ht."'";
+		$sql .= " AND f.total_ht = '".$search_amount_no_tax."'";
 	}
 
-	if ($search_montant_ttc)
+	if ($search_amount_all_tax)
 	{
-		$sql .= " AND f.total_ttc = '".$search_montant_ttc."'";
+		$sql .= " AND f.total_ttc = '".$search_amount_all_tax."'";
 	}
 
 	if (dol_strlen(GETPOST('sf_re')) > 0)
@@ -165,9 +165,9 @@ if ($user->rights->fournisseur->facture->lire)
 
 		if ($search_ref)         	$param.='&amp;search_ref='.urlencode($search_ref);
 		if ($search_ref_supplier)	$param.='&amp;search_ref_supplier='.urlencode($search_ref_supplier);
-		if ($search_societe)     	$param.='&amp;search_societe='.urlencode($search_societe);
-		if ($search_montant_ht)  	$param.='&amp;search_montant_ht='.urlencode($search_montant_ht);
-		if ($search_montant_ttc) 	$param.='&amp;search_montant_ttc='.urlencode($search_montant_ttc);
+		if ($search_company)     	$param.='&amp;search_company='.urlencode($search_company);
+		if ($search_amount_no_tax)	$param.='&amp;search_amount_no_tax='.urlencode($search_amount_no_tax);
+		if ($search_amount_all_tax) $param.='&amp;search_amount_all_tax='.urlencode($search_amount_all_tax);
 
 		$param.=($option?"&option=".$option:"");
 		if (! empty($late)) $param.='&late='.urlencode($late);
@@ -209,15 +209,15 @@ if ($user->rights->fournisseur->facture->lire)
 		print '<td class="liste_titre">&nbsp;</td>';
 		print '<td class="liste_titre">&nbsp;</td>';
 		print '<td class="liste_titre" align="left">';
-		print '<input class="flat" type="text" size="6" name="search_societe" value="'.$search_societe.'">';
+		print '<input class="flat" type="text" size="6" name="search_company" value="'.$search_company.'">';
 		print '</td><td class="liste_titre" align="right">';
-		print '<input class="flat" type="text" size="8" name="search_montant_ht" value="'.$search_montant_ht.'">';
+		print '<input class="flat" type="text" size="8" name="search_amount_no_tax" value="'.$search_amount_no_tax.'">';
 		print '</td><td class="liste_titre" align="right">';
-		print '<input class="flat" type="text" size="8" name="search_montant_ttc" value="'.$search_montant_ttc.'">';
+		print '<input class="flat" type="text" size="8" name="search_amount_all_tax" value="'.$search_amount_all_tax.'">';
 		print '</td><td class="liste_titre" colspan="2" align="right">';
 		print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-		print '</td>';
-		print "</tr>\n";
+		print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+		print "</td></tr>\n";
 
 		if ($num > 0)
 		{
diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php
index 9439fc534bd352a7f719dfd81581d77e9bd629d9..616e9690e8af6475f89ac45776bc4807e932b190 100644
--- a/htdocs/fourn/facture/list.php
+++ b/htdocs/fourn/facture/list.php
@@ -64,9 +64,26 @@ $pagenext = $page + 1;
 if (! $sortorder) $sortorder="DESC";
 if (! $sortfield) $sortfield="fac.datef,fac.rowid";
 
-$month    = GETPOST('month','int');
-$year     = GETPOST('year','int');
-
+$search_ref = GETPOST("search_ref","int");
+$search_ref_supplier = GETPOST("search_ref_supplier","alpha");
+$search_label = GETPOST("search_label","alpha");
+$search_company = GETPOST("search_company","alpha");
+$search_amount_no_tax = GETPOST("search_amount_no_tax","alpha");
+$search_amount_all_tax = GETPOST("search_amount_all_tax","alpha");
+$month = GETPOST("month","int");
+$year = GETPOST("year","int");
+
+if (GETPOST("button_removefilter"))
+{
+	$search_ref="";
+	$search_ref_supplier="";
+	$search_label="";
+	$search_company="";
+	$search_amount_no_tax="";
+	$search_amount_all_tax="";
+	$year="";
+	$month="";
+}
 
 /*
  * Actions
@@ -93,9 +110,6 @@ if ($mode == 'search')
 	}
 }
 
-
-
-
 /*
  * View
  */
@@ -132,14 +146,14 @@ if (GETPOST('filtre') && GETPOST('filtre') != -1)		// GETPOST('filtre') may be a
 	}
 }
 
-if (GETPOST("search_ref"))
+if ($search_ref)
 {
-	if (is_numeric(GETPOST("search_ref"))) $sql .= natural_search(array('fac.rowid', 'fac.ref'), GETPOST('search_ref'));// For backward compatibility
-	else $sql .= natural_search('fac.ref', GETPOST("search_ref"));
+	if (is_numeric($search_ref)) $sql .= natural_search(array('fac.rowid', 'fac.ref'), $search_ref);// For backward compatibility
+	else $sql .= natural_search('fac.ref', $search_ref);
 }
-if (GETPOST("search_ref_supplier"))
+if (search_ref_supplier)
 {
-	$sql .= natural_search('fac.ref_supplier', GETPOST('search_ref_supplier'));
+	$sql .= natural_search('fac.ref_supplier', $search_ref_supplier);
 }
 if ($month > 0)
 {
@@ -152,24 +166,24 @@ else if ($year > 0)
 {
 	$sql.= " AND fac.datef BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
 }
-if (GETPOST("search_libelle"))
+if ($search_label)
 {
-    $sql .= natural_search('fac.libelle', GETPOST('search_libelle'));
+    $sql .= natural_search('fac.libelle', $search_label);
 }
 
-if (GETPOST("search_societe"))
+if ($search_company)
 {
-    $sql .= natural_search('s.nom', GETPOST('search_societe'));
+    $sql .= natural_search('s.nom', $search_company);
 }
 
-if (GETPOST("search_montant_ht"))
+if ($search_amount_no_tax)
 {
-	$sql .= " AND fac.total_ht = '".$db->escape(price2num(GETPOST("search_montant_ht")))."'";
+	$sql .= " AND fac.total_ht = '".$db->escape(price2num($search_amount_no_tax))."'";
 }
 
-if (GETPOST("search_montant_ttc"))
+if ($search_amount_all_tax)
 {
-	$sql .= " AND fac.total_ttc = '".$db->escape(price2num(GETPOST("search_montant_ttc")))."'";
+	$sql .= " AND fac.total_ttc = '".$db->escape(price2num($search_amount_all_tax))."'";
 }
 
 $nbtotalofrecords = 0;
@@ -195,14 +209,14 @@ if ($resql)
 	}
 
 	$param='&socid='.$socid;
-	if ($month) $param.='&month='.urlencode($month);
-	if ($year)  $param.='&year=' .urlencode($year);
-	if (GETPOST("search_ref"))          $param.='&search_ref='.urlencode(GETPOST("search_ref"));
-	if (GETPOST("search_ref_supplier")) $param.='&search_ref_supplier'.urlencode(GETPOST("search_ref_supplier"));
-	if (GETPOST("search_libelle"))      $param.='&search_libelle='.urlencode(GETPOST("search_libelle"));
-	if (GETPOST("search_societe"))      $param.='&search_societe='.urlencode(GETPOST("search_societe"));
-	if (GETPOST("search_montant_ht"))   $param.='&search_montant_ht='.urlencode(GETPOST("search_montant_ht"));
-	if (GETPOST("search_montant_ttc"))  $param.='&search_montant_ttc='.urlencode(GETPOST("search_montant_ttc"));
+	if ($month) 				$param.='&month='.urlencode($month);
+	if ($year)  				$param.='&year=' .urlencode($year);
+	if ($search_ref)          	$param.='&search_ref='.urlencode($search_ref);
+	if ($search_ref_supplier) 	$param.='&search_ref_supplier'.urlencode($search_ref_supplier);
+	if ($search_label)      	$param.='&search_label='.urlencode($search_label);
+	if ($search_company)      	$param.='&search_company='.urlencode($search_company);
+	if ($search_amount_no_tax)	$param.='&search_amount_no_tax='.urlencode($search_amount_no_tax);
+	if ($search_amount_all_tax)	$param.='&search_amount_all_tax='.urlencode($search_amount_all_tax);
 	if (GETPOST("filtre") && GETPOST('filtre') != -1) $param.='&filtre='.urlencode(GETPOST("filtre"));
 
 	print_barre_liste($langs->trans("BillsSuppliers").($socid?" $soc->name.":""),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
@@ -218,17 +232,18 @@ if ($resql)
 	if (! empty($conf->global->PROJECT_SHOW_REF_INTO_LISTS)) print_liste_field_titre($langs->trans("Project"),$_SERVER["PHP_SELF"],"p.ref","",$param,'',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"fac.total_ht","",$param,'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("AmountTTC"),$_SERVER["PHP_SELF"],"fac.total_ttc","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"fk_statut,paye","",$param,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"fk_statut,paye","",$param,'align="right"',$sortfield,$sortorder);
+	print '<td class="liste_titre">&nbsp;</td>';
 	print "</tr>\n";
 
 	// Lignes des champs de filtre
 
 	print '<tr class="liste_titre">';
 	print '<td class="liste_titre" align="left">';
-	print '<input class="flat" size="6" type="text" name="search_ref" value="'.GETPOST("search_ref").'">';
+	print '<input class="flat" size="6" type="text" name="search_ref" value="'.$search_ref.'">';
 	print '</td>';
 	print '<td class="liste_titre" align="left">';
-	print '<input class="flat" size="6" type="text" name="search_ref_supplier" value="'.GETPOST("search_ref_supplier").'">';
+	print '<input class="flat" size="6" type="text" name="search_ref_supplier" value="'.$search_ref_supplier.'">';
 	print '</td>';
 	print '<td class="liste_titre" colspan="1" align="center">';
 	print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
@@ -239,10 +254,10 @@ if ($resql)
 	print '</td>';
 	print '<td class="liste_titre">&nbsp;</td>';
 	print '<td class="liste_titre" align="left">';
-	print '<input class="flat" size="16" type="text" name="search_libelle" value="'.GETPOST("search_libelle").'">';
+	print '<input class="flat" size="16" type="text" name="search_label" value="'.$search_label.'">';
 	print '</td>';
 	print '<td class="liste_titre" align="left">';
-	print '<input class="flat" type="text" size="8" name="search_societe" value="'.GETPOST("search_societe").'">';
+	print '<input class="flat" type="text" size="8" name="search_company" value="'.$search_company.'">';
 	print '</td>';
 	if (! empty($conf->global->PROJECT_SHOW_REF_INTO_LISTS))
 	{
@@ -250,13 +265,15 @@ if ($resql)
 		print '</td>';
 	}
 	print '<td class="liste_titre" align="right">';
-	print '<input class="flat" type="text" size="8" name="search_montant_ht" value="'.GETPOST("search_montant_ht").'">';
+	print '<input class="flat" type="text" size="8" name="search_amount_no_tax" value="'.$search_amount_no_tax.'">';
+	print '</td><td class="liste_titre" align="right">';
+	print '<input class="flat" type="text" size="8" name="search_amount_all_tax" value="'.$search_amount_all_tax.'">';
 	print '</td><td class="liste_titre" align="right">';
-	print '<input class="flat" type="text" size="8" name="search_montant_ttc" value="'.GETPOST("search_montant_ttc").'">';
-	print '</td><td class="liste_titre" align="center">';
 	$liststatus=array('paye:0'=>$langs->trans("Unpayed"), 'paye:1'=>$langs->trans("Payed"));
 	print $form->selectarray('filtre', $liststatus, GETPOST('filtre'), 1);
-	print '<input type="image" class="liste_titre" align="right" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '</td><td class="liste_titre" align="right">';
+	print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
 	print '</td>';
 	print "</tr>\n";
 
@@ -312,6 +329,8 @@ if ($resql)
 		//print $facturestatic->LibStatut($obj->paye,$obj->fk_statut,5,$objp->am);
 		print $facturestatic->LibStatut($obj->paye,$obj->fk_statut,5);
 		print '</td>';
+		
+		print '<td align="center">&nbsp;</td>';
 
 		print "</tr>\n";
 		$i++;
@@ -325,6 +344,7 @@ if ($resql)
 			print '<td class="liste_total" align="right">'.price($total).'</td>';
 			print '<td class="liste_total" align="right">'.price($total_ttc).'</td>';
 			print '<td class="liste_total" align="center">&nbsp;</td>';
+			print '<td class="liste_total" align="center">&nbsp;</td>';
 			print "</tr>\n";
 		}
 	}
diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php
index 831749b19043f89986bd3b3970c6674120959fca..f467e9235efee52472b9df6633ca4709123c13b0 100644
--- a/htdocs/fourn/facture/paiement.php
+++ b/htdocs/fourn/facture/paiement.php
@@ -458,6 +458,15 @@ if (empty($action))
     $search_paymenttype=GETPOST('search_paymenttype');
     $search_amount=GETPOST('search_amount');
     $search_company=GETPOST('search_company');
+	
+	if (GETPOST("button_removefilter"))
+	{
+		$search_ref="";
+		$search_account="";
+		$search_paymenttype="";
+		$search_amount="";
+		$search_company="";
+	}
 
     $sql = 'SELECT p.rowid as pid, p.datep as dp, p.amount as pamount, p.num_paiement,';
     $sql.= ' s.rowid as socid, s.nom as name,';
@@ -494,7 +503,7 @@ if (empty($action))
     }
     if (! empty($search_amount))
     {
-        $sql .= " AND p.amount=".price2num($search_amount);
+        $sql .= " AND p.amount='".price2num($search_amount)."'";
     }
     if (! empty($search_company))
     {
@@ -515,7 +524,7 @@ if (empty($action))
         $paramlist='';
         $paramlist.=(! empty($search_ref)?"&search_ref=".$search_ref:"");
         $paramlist.=(! empty($search_company)?"&search_company=".$search_company:"");
-        $paramlist.=(! empty($search_amount)?"&search_amount=".$search_amount:"");
+        $paramlist.=(! empty($search_amount)?"&search_amount='".$search_amount:"");
 
         print_barre_liste($langs->trans('SupplierPayments'), $page, $_SERVER["PHP_SELF"],$paramlist,$sortfield,$sortorder,'',$num);
 
@@ -529,16 +538,17 @@ if (empty($action))
         print_liste_field_titre($langs->trans('Account'),$_SERVER["PHP_SELF"],'ba.label','',$paramlist,'',$sortfield,$sortorder);
         print_liste_field_titre($langs->trans('Amount'),$_SERVER["PHP_SELF"],'f.amount','',$paramlist,'align="right"',$sortfield,$sortorder);
         //print_liste_field_titre($langs->trans('Invoice'),$_SERVER["PHP_SELF"],'ref_supplier','',$paramlist,'',$sortfield,$sortorder);
-        print "</tr>\n";
+        print '<td class="liste_titre">&nbsp;</td>';
+		print "</tr>\n";
 
         // Lines for filters fields
         print '<tr class="liste_titre">';
         print '<td align="left">';
-        print '<input class="fat" type="text" size="4" name="search_ref" value="'.$search_ref.'">';
+        print '<input class="flat" type="text" size="4" name="search_ref" value="'.$search_ref.'">';
         print '</td>';
         print '<td>&nbsp;</td>';
         print '<td align="left">';
-        print '<input class="fat" type="text" size="6" name="search_company" value="'.$search_company.'">';
+        print '<input class="flat" type="text" size="6" name="search_company" value="'.$search_company.'">';
         print '</td>';
         print '<td>';
         $form->select_types_paiements($search_paymenttype,'search_paymenttype','',2,1,1);
@@ -547,9 +557,11 @@ if (empty($action))
         $form->select_comptes($search_account,'search_account',0,'',1);
         print '</td>';
         print '<td align="right">';
-        print '<input class="fat" type="text" size="4" name="search_amount" value="'.$search_amount.'">';
-        print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" alt="'.$langs->trans("Search").'">';
-        print '</td>';
+        print '<input class="flat" type="text" size="4" name="search_amount" value="'.$search_amount.'">';
+        print '</td><td align="right">';
+		print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+        print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+		print '</td>';
         print "</tr>\n";
 
         while ($i < min($num,$limit))
@@ -584,7 +596,8 @@ if (empty($action))
             print '<td class="nowrap">';
             print $invoicesupplierstatic->getNomUrl(1);
             print '</td>';*/
-
+			
+			print '<td>&nbsp;</td>';
             print '</tr>';
             $i++;
         }
diff --git a/htdocs/fourn/list.php b/htdocs/fourn/list.php
index d3f7e55c19976e1723970ceb87cc2fb0b9144e8e..296415c1aee5acc621ed9a35f48686fb878b90ac 100644
--- a/htdocs/fourn/list.php
+++ b/htdocs/fourn/list.php
@@ -32,15 +32,15 @@ $langs->load("suppliers");
 $langs->load("orders");
 $langs->load("companies");
 
-$socname                   = GETPOST("socname");
-$search_nom                = GETPOST("search_nom");
-$search_zipcode            = GETPOST("search_zipcode");
-$search_town               = GETPOST("search_town");
-$search_code_fournisseur   = GETPOST("search_code_fournisseur");
-$search_compta_fournisseur = GETPOST("search_compta_fournisseur");
-$search_datec              = GETPOST("search_datec");
-$search_categ              = GETPOST('search_categ','int');
-$catid                     = GETPOST("catid",'int');
+$socname					= GETPOST("socname");
+$search_name				= GETPOST("search_name");
+$search_zipcode				= GETPOST("search_zipcode");
+$search_town				= GETPOST("search_town");
+$search_supplier_code		= GETPOST("search_supplier_code");
+$search_supplier_accounting = GETPOST("search_supplier_accounting");
+$search_datec				= GETPOST("search_datec");
+$search_categ				= GETPOST('search_categ','int');
+$catid						= GETPOST("catid",'int');
 
 // Security check
 $socid = GETPOST('socid','int');
@@ -60,6 +60,19 @@ if (! $sortfield) $sortfield="nom";
 // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
 $hookmanager->initHooks(array('supplierlist'));
 
+if (GETPOST("button_removefilter_x"))
+{
+	$socname="";
+	$search_name="";
+	$search_zipcode="";
+	$search_town="";
+	$search_supplier_code="";
+	$search_supplier_accounting="";
+	$search_datec="";
+	$search_categ="";
+	$catid="";
+}
+
 /*
  * 	Actions
  */
@@ -95,15 +108,15 @@ if ($socname) {
 	$sortfield = "s.nom";
 	$sortorder = "ASC";
 }
-if ($search_nom) {
-	$sql .= natural_search('s.nom', $search_nom);
+if ($search_name) {
+	$sql .= natural_search('s.nom', $search_name);
 }
 if ($search_zipcode) $sql .= " AND s.zip LIKE '".$db->escape($search_zipcode)."%'";
 if ($search_town) {
 	$sql .= natural_search('s.town', $search_town);
 }
-if ($search_code_fournisseur)   $sql .= " AND s.code_fournisseur LIKE '%".$db->escape($search_code_fournisseur)."%'";
-if ($search_compta_fournisseur) $sql .= " AND s.code_compta_fournisseur LIKE '%".$db->escape($search_compta_fournisseur)."%'";
+if ($search_supplier_code)   $sql .= " AND s.code_fournisseur LIKE '%".$db->escape($search_supplier_code)."%'";
+if ($search_supplier_accounting) $sql .= " AND s.code_compta_fournisseur LIKE '%".$db->escape($search_supplier_accounting)."%'";
 if ($search_datec)   $sql .= " AND s.datec LIKE '%".$db->escape($search_datec)."%'";
 if ($catid > 0)          $sql.= " AND cf.fk_categorie = ".$catid;
 if ($catid == -2)        $sql.= " AND cf.fk_categorie IS NULL";
@@ -126,7 +139,7 @@ if ($resql)
 	$num = $db->num_rows($resql);
 	$i = 0;
 
-	$param = "&amp;search_nom=".$search_nom."&amp;search_code_fournisseur=".$search_code_fournisseur."&amp;search_zipcode=".$search_zipcode."&amp;search_town=".$search_town;
+	$param = "&amp;search_name=".$search_name."&amp;search_supplier_code=".$search_supplier_code."&amp;search_zipcode=".$search_zipcode."&amp;search_town=".$search_town;
  	if ($search_categ != '') $param.='&amp;search_categ='.$search_categ;
 
 	print_barre_liste($langs->trans("ListOfSuppliers"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords);
@@ -166,26 +179,28 @@ if ($resql)
 
 	print '<tr class="liste_titre">';
 
-	print '<td class="liste_titre"><input type="text" class="flat" name="search_nom" value="'.$search_nom.'"></td>';
+	print '<td class="liste_titre"><input type="text" size="10" class="flat" name="search_name" value="'.$search_name.'"></td>';
 
-	print '<td class="liste_titre"><input type="text" class="flat" name="search_zipcode" value="'.$search_zipcode.'"></td>';
+	print '<td class="liste_titre"><input type="text" size="10" class="flat" name="search_zipcode" value="'.$search_zipcode.'"></td>';
 
-	print '<td class="liste_titre"><input type="text" class="flat" name="search_town" value="'.$search_town.'"></td>';
+	print '<td class="liste_titre"><input type="text" size="10" class="flat" name="search_town" value="'.$search_town.'"></td>';
 
 	print '<td align="left" class="liste_titre">';
-	print '<input class="flat" type="text" size="10" name="search_code_fournisseur" value="'.$search_code_fournisseur.'">';
+	print '<input class="flat" type="text" size="10" name="search_supplier_code" value="'.$search_supplier_code.'">';
 	print '</td>';
 
 	print '<td align="left" class="liste_titre">';
-	print '<input class="flat" type="text" size="10" name="search_compta_fournisseur" value="'.$search_compta_fournisseur.'">';
+	print '<input class="flat" type="text" size="10" name="search_supplier_accounting" value="'.$search_supplier_accounting.'">';
 	print '</td>';
 
 	print '<td align="right" class="liste_titre">';
 	print '<input class="flat" type="text" size="10" name="search_datec" value="'.$search_datec.'">';
 	print '</td>';
 
-	print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'"></td>';
-
+	print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+    print "</td></tr>\n";
+	
 	$parameters=array();
 	$formconfirm=$hookmanager->executeHooks('printFieldListOption',$parameters);    // Note that $action and $object may have been modified by hook
 
diff --git a/htdocs/holiday/index.php b/htdocs/holiday/index.php
index 04a96a7001df9b8c893d25c11bd21c7a731ae391..e988e6407111d667632e24bac8e12effb286d2be 100644
--- a/htdocs/holiday/index.php
+++ b/htdocs/holiday/index.php
@@ -64,6 +64,19 @@ $search_employe  = GETPOST('search_employe');
 $search_valideur = GETPOST('search_valideur');
 $search_statut   = GETPOST('select_statut');
 
+if (GETPOST("button_removefilter"))
+{
+	$search_ref="";
+	$month_create="";
+	$year_create="";
+    $month_start="";
+	$year_start="";
+	$month_end="";
+	$year_end="";
+	$search_employe="";
+	$search_valideur="";
+	$search_statut="";
+}
 
 /*
  * Actions
@@ -71,8 +84,6 @@ $search_statut   = GETPOST('select_statut');
 
 // None
 
-
-
 /*
  * View
  */
@@ -257,7 +268,7 @@ print_liste_field_titre($langs->trans("Employe"),$_SERVER["PHP_SELF"],"cp.fk_use
 print_liste_field_titre($langs->trans("ValidatorCP"),$_SERVER["PHP_SELF"],"cp.fk_validator","",'','',$sortfield,$sortorder);
 print_liste_field_titre($langs->trans("DateDebCP"),$_SERVER["PHP_SELF"],"cp.date_debut","",'','align="center"',$sortfield,$sortorder);
 print_liste_field_titre($langs->trans("DateFinCP"),$_SERVER["PHP_SELF"],"cp.date_fin","",'','align="center"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],'','','','align="right"',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],'','','','align="center"',$sortfield,$sortorder);
 print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"cp.statut","",'','align="center"',$sortfield,$sortorder);
 print '<td></td>';
 print "</tr>\n";
@@ -323,7 +334,8 @@ print '</td>';
 
 // ACTION
 print '<td align="right">';
-print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" alt="'.$langs->trans('Search').'">';
+print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
 print '</td>';
 
 print "</tr>\n";
diff --git a/htdocs/includes/jquery/plugins/multiple-select/LICENSE b/htdocs/includes/jquery/plugins/multiple-select/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..c3ebd2b52488fff10d65fb4ab4d93b1d95665bda
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/multiple-select/LICENSE
@@ -0,0 +1,21 @@
+(The MIT License)
+
+Copyright (c) 2012-2014 Zhixin Wen <wenzhixin2010@gmail.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/multiple-select/README.md b/htdocs/includes/jquery/plugins/multiple-select/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..81b82ba74c0feb6e16a7d12d1974946e6f7e3f7b
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/multiple-select/README.md
@@ -0,0 +1,96 @@
+# Multiple Select
+
+Multiple select is a jQuery plugin to select multiple elements with checkboxes :).
+
+To get started checkout examples and documentation at http://wenzhixin.net.cn/p/multiple-select
+
+## Contributors
+
+Multiple select is due to the excellent work of the following contributors:
+
+<table>
+<tbody>
+<tr><th align="left">文翼</th><td><a href="https://github.com/wenzhixin">GitHub/wenzhixin</a></td></tr>
+<tr><th align="left">Gaurav Jassal</th><td><a href="https://github.com/creativeaura">GitHub/creativeaura</a></td><</tr>
+<tr><th align="left">guli</th><td><a href="https://github.com/guli">GitHub/guli</a></td></tr>
+<tr><th align="left">jwheadon</th><td><a href="https://github.com/jwheadon">GitHub/jwheadon</a></td></tr>
+<tr><th align="left">yx</th><td><a href="https://github.com/qqfish">GitHub/qqfish</a></td></tr>
+<tr><th align="left">Tobias Macey</th><td><a href="https://github.com/blarghmatey">GitHub/blarghmatey</a></td></tr>
+<tr><th align="left">Jona Goldman</th><td><a href="https://github.com/jonagoldman">GitHub/jonagoldman</a></td></tr>
+<tr><th align="left">Alex Jeffrey</th><td><a href="https://github.com/ajeffrey">GitHub/ajeffrey</a></td></tr>
+</tbody>
+</table>
+
+## Changelog
+
+### 1.1.0
+
+* Fix #63: Add ```keepOpen``` option.
+* Fix #62: Fix ```isOpen``` and ```filter``` options are both true bug.
+* Fix #57: Fire onCheckAll event when literally select.
+* Add data attributes for support.
+* Fix #55: Add ```name``` option.
+
+### 1.0.9
+
+* Fix #42: Add ```styler``` option to custom item style.
+* Fix firefox click bug.
+* Add ```allSelected```, ```minumimCountSelected``` and ```countSelected``` options.
+* Fix #35: Add ```onFocus``` and ```onBlur``` events.
+* Fix #25: Add ```focus``` and ```blur``` methods.
+* Fix #31: Trigger the onCheckAll & onUncheckAll events when use filter to select all.
+
+### 1.0.8
+
+* Update the license to The MIT License.
+* Fix #47: Add ```No matches found``` message when there are no results found.
+* Fix #43: Add ```position``` option.
+
+### 1.0.7
+
+* Fix #44: The filters not working bugs.
+
+### 1.0.6
+
+* Fix #21: Add ```single``` option.
+* Add ```override``` option.
+* Add ```container``` option.
+* Fix #29: Update the optgroups select text.
+* Fix #30: Image is not shown in Firefox 25.0.1.
+* Fix #22: fix group filter problem.
+
+### 1.0.5
+
+* Update the button text witdh.
+* Add keyboard support.
+
+### 1.0.4
+
+* Fix #12: Add ```width``` option.
+* Fix #11: Add callback events.
+* Add ```maxHeight``` option.
+
+### 1.0.3
+
+* Fix #4: Add ```filter``` option.
+* Support mobile devices.
+* Fix #6: Add ```refresh``` method.
+
+### 1.0.2
+
+* Fix #7: Add ```selected``` and ```disabled``` options.
+* Fix #5: Add ```checkAll``` and ```uncheckAll``` methods.
+
+### 1.0.1
+
+* Fix #3: Add optgroups support.
+* Add ```placeholder``` option.
+* Fix #2: use prop method instead of attr.
+
+### 1.0.0
+
+* Initial release
+
+## LICENSE
+
+[The MIT License](https://github.com/wenzhixin/multiple-select/blob/master/LICENSE)
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/multiple-select/jquery.multiple.select.js b/htdocs/includes/jquery/plugins/multiple-select/jquery.multiple.select.js
new file mode 100644
index 0000000000000000000000000000000000000000..32e6635bbaaab239991f7d0fd4caba89e673647e
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/multiple-select/jquery.multiple.select.js
@@ -0,0 +1,466 @@
+/**
+ * @author zhixin wen <wenzhixin2010@gmail.com>
+ * @version 1.1.0
+ * 
+ * http://wenzhixin.net.cn/p/multiple-select/
+ */
+
+(function($) {
+
+    'use strict';
+
+    function MultipleSelect($el, options) {
+        var that = this,
+            name = $el.attr('name') || options.name || '',
+            elWidth = $el.width();
+
+        this.$el = $el.hide();
+        this.options = options;
+
+        this.$parent = $('<div class="ms-parent"></div>');
+        this.$choice = $('<button type="button" class="ms-choice"><span class="placeholder">' +
+            options.placeholder + '</span><div></div></button>');
+        this.$drop = $('<div class="ms-drop ' + options.position + '"></div>');
+        this.$el.after(this.$parent);
+        this.$parent.append(this.$choice);
+        this.$parent.append(this.$drop);
+
+        if (this.$el.prop('disabled')) {
+            this.$choice.addClass('disabled');
+        }
+        this.$choice.css('width', elWidth + 'px');
+        this.$drop.css({
+            width: (options.width || elWidth) + 'px'
+        });
+
+        if (!this.options.keepOpen) {
+            $('body').click(function(e) {
+                if ($(e.target)[0] === that.$choice[0] ||
+                    $(e.target).parents('.ms-choice')[0] === that.$choice[0]) {
+                    return;
+                }
+                if (($(e.target)[0] === that.$drop[0] ||
+                    $(e.target).parents('.ms-drop')[0] !== that.$drop[0]) &&
+                    that.options.isOpen) {
+                    that.close();
+                }
+            });
+        }
+
+        this.selectAllName = 'name="selectAll' + name + '"';
+        this.selectGroupName = 'name="selectGroup' + name + '"';
+        this.selectItemName = 'name="selectItem' + name + '"';
+    }
+
+    MultipleSelect.prototype = {
+        constructor : MultipleSelect,
+
+        init: function() {
+            var that = this,
+                html = [];
+            if (this.options.filter) {
+                html.push(
+                    '<div class="ms-search">',
+                        '<input type="text" autocomplete="off" autocorrect="off" autocapitilize="off" spellcheck="false">',
+                    '</div>'
+                );
+            }
+            html.push('<ul>');
+            if (this.options.selectAll && !this.options.single) {
+                html.push(
+                    '<li>',
+                        '<label>',
+                            '<input type="checkbox" ' + this.selectAllName + ' /> ',
+                            '[' + this.options.selectAllText + ']',
+                        '</label>',
+                    '</li>'
+                );
+            }
+            $.each(this.$el.children(), function(i, elm) {
+                html.push(that.optionToHtml(i, elm));
+            });
+            html.push('<li class="ms-no-results">No matches found</li>');
+            html.push('</ul>');
+            this.$drop.html(html.join(''));
+            this.$drop.find('ul').css('max-height', this.options.maxHeight + 'px');
+            this.$drop.find('.multiple').css('width', this.options.multipleWidth + 'px');
+
+            this.$searchInput = this.$drop.find('.ms-search input');
+            this.$selectAll = this.$drop.find('input[' + this.selectAllName + ']');
+            this.$selectGroups = this.$drop.find('input[' + this.selectGroupName + ']');
+            this.$selectItems = this.$drop.find('input[' + this.selectItemName + ']:enabled');
+            this.$disableItems = this.$drop.find('input[' + this.selectItemName + ']:disabled');
+            this.$noResults = this.$drop.find('.ms-no-results');
+            this.events();
+            this.update();
+
+            if (this.options.isOpen) {
+                this.open();
+            }
+        },
+
+        optionToHtml: function(i, elm, group, groupDisabled) {
+            var that = this,
+                $elm = $(elm),
+                html = [],
+                multiple = this.options.multiple,
+                disabled,
+                type = this.options.single ? 'radio' : 'checkbox';
+
+            if ($elm.is('option')) {
+                var value = $elm.val(),
+                    text = $elm.text(),
+                    selected = $elm.prop('selected'),
+                    style = this.options.styler(value) ? ' style="' + this.options.styler(value) + '"' : '';
+
+                disabled = groupDisabled || $elm.prop('disabled');
+                html.push(
+                    '<li' + (multiple ? ' class="multiple"' : '') + style + '>',
+                        '<label' + (disabled ? ' class="disabled"' : '') + '>',
+                            '<input type="' + type + '" ' + this.selectItemName + ' value="' + value + '"' +
+                                (selected ? ' checked="checked"' : '') +
+                                (disabled ? ' disabled="disabled"' : '') +
+                                (group ? ' data-group="' + group + '"' : '') +
+                                '/> ',
+                            text,
+                        '</label>',
+                    '</li>'
+                );
+            } else if (!group && $elm.is('optgroup')) {
+                var _group = 'group_' + i,
+                    label = $elm.attr('label');
+
+                disabled = $elm.prop('disabled');
+                html.push(
+                    '<li class="group">',
+                        '<label class="optgroup' + (disabled ? ' disabled' : '') + '" data-group="' + _group + '">',
+                            '<input type="checkbox" ' + this.selectGroupName +
+                                (disabled ? ' disabled="disabled"' : '') + ' /> ',
+                            label,
+                        '</label>',
+                    '</li>');
+                $.each($elm.children(), function(i, elm) {
+                    html.push(that.optionToHtml(i, elm, _group, disabled));
+                });
+            }
+            return html.join('');
+        },
+
+        events: function() {
+            var that = this;
+            this.$choice.off('click').on('click', function(e) {
+                e.preventDefault();
+                that[that.options.isOpen ? 'close' : 'open']();
+            })
+                .off('focus').on('focus', this.options.onFocus)
+                .off('blur').on('blur', this.options.onBlur);
+
+            this.$parent.off('keydown').on('keydown', function(e) {
+                switch (e.which) {
+                    case 27: // esc key
+                        that.close();
+                        that.$choice.focus();
+                        break;
+                }
+            });
+            this.$searchInput.off('keyup').on('keyup', function() {
+                that.filter();
+            });
+            this.$selectAll.off('click').on('click', function() {
+                var checked = $(this).prop('checked'),
+                    $items = that.$selectItems.filter(':visible');
+                if ($items.length === that.$selectItems.length) {
+                    that[checked ? 'checkAll' : 'uncheckAll']();
+                } else { // when the filter option is true
+                    that.$selectGroups.prop('checked', checked);
+                    $items.prop('checked', checked);
+                    that.options[checked ? 'onCheckAll' : 'onUncheckAll']();
+                    that.update();
+                }
+            });
+            this.$selectGroups.off('click').on('click', function() {
+                var group = $(this).parent().attr('data-group'),
+                    $items = that.$selectItems.filter(':visible'),
+                    $children = $items.filter('[data-group="' + group + '"]'),
+                    checked = $children.length !== $children.filter(':checked').length;
+                $children.prop('checked', checked);
+                that.updateSelectAll();
+                that.update();
+                that.options.onOptgroupClick({
+                    label: $(this).parent().text(),
+                    checked: checked,
+                    children: $children.get()
+                });
+            });
+            this.$selectItems.off('click').on('click', function() {
+                that.updateSelectAll();
+                that.update();
+                that.updateOptGroupSelect();
+                that.options.onClick({
+                    label: $(this).parent().text(),
+                    value: $(this).val(),
+                    checked: $(this).prop('checked')
+                });
+            });
+        },
+
+        open: function() {
+            if (this.$choice.hasClass('disabled')) {
+                return;
+            }
+            this.options.isOpen = true;
+            this.$choice.find('>div').addClass('open');
+            this.$drop.show();
+            if (this.options.container) {
+                var offset = this.$drop.offset();
+                this.$drop.appendTo($(this.options.container));
+                this.$drop.offset({ top: offset.top, left: offset.left });
+            }
+            if (this.options.filter) {
+                this.$searchInput.val('');
+                this.filter();
+            }
+            this.options.onOpen();
+        },
+
+        close: function() {
+            this.options.isOpen = false;
+            this.$choice.find('>div').removeClass('open');
+            this.$drop.hide();
+            if (this.options.container) {
+                this.$parent.append(this.$drop);
+                this.$drop.css({
+                    'top': 'auto',
+                    'left': 'auto'
+                })
+            }
+            this.options.onClose();
+        },
+
+        update: function() {
+            var selects = this.getSelects('text'),
+                $span = this.$choice.find('>span');
+            if (selects.length === this.$selectItems.length + this.$disableItems.length && this.options.allSelected) {
+                $span.removeClass('placeholder').html(this.options.allSelected);
+            } else if (selects.length > this.options.minumimCountSelected && this.options.countSelected) {
+                $span.removeClass('placeholder').html(this.options.countSelected
+                    .replace('#', selects.length)
+                    .replace('%', this.$selectItems.length + this.$disableItems.length));
+            } else if (selects.length) {
+                $span.removeClass('placeholder').html(selects.join(', '));
+            } else {
+                $span.addClass('placeholder').html(this.options.placeholder);
+            }
+            // set selects to select
+            this.$el.val(this.getSelects());
+        },
+
+        updateSelectAll: function() {
+            var $items = this.$selectItems.filter(':visible');
+            this.$selectAll.prop('checked', $items.length &&
+                $items.length === $items.filter(':checked').length);
+            if (this.$selectAll.prop('checked')) {
+                this.options.onCheckAll();
+            }
+        },
+
+        updateOptGroupSelect: function() {
+            var $items = this.$selectItems.filter(':visible');
+            $.each(this.$selectGroups, function(i, val) {
+                var group = $(val).parent().attr('data-group'),
+                    $children = $items.filter('[data-group="' + group + '"]');
+                $(val).prop('checked', $children.length &&
+                    $children.length === $children.filter(':checked').length);
+            });
+        },
+
+        //value or text, default: 'value'
+        getSelects: function(type) {
+            var that = this,
+                texts = [],
+                values = [];
+            this.$drop.find('input[' + this.selectItemName + ']:checked').each(function() {
+                texts.push($(this).parent().text());
+                values.push($(this).val());
+            });
+
+            if (type === 'text' && this.$selectGroups.length) {
+                texts = [];
+                this.$selectGroups.each(function() {
+                    var html = [],
+                        text = $.trim($(this).parent().text()),
+                        group = $(this).parent().data('group'),
+                        $children = that.$drop.find('[' + that.selectItemName + '][data-group="' + group + '"]'),
+                        $selected = $children.filter(':checked');
+
+                    if ($selected.length === 0) {
+                        return;
+                    }
+
+                    html.push('[');
+                    html.push(text);
+                    if ($children.length > $selected.length) {
+                        var list = [];
+                        $selected.each(function() {
+                            list.push($(this).parent().text());
+                        });
+                        html.push(': ' + list.join(', '));
+                    }
+                    html.push(']');
+                    texts.push(html.join(''));
+                });
+            }
+            return type === 'text' ? texts : values;
+        },
+
+        setSelects: function(values) {
+            var that = this;
+            this.$selectItems.prop('checked', false);
+            $.each(values, function(i, value) {
+                that.$selectItems.filter('[value="' + value + '"]').prop('checked', true);
+            });
+            this.$selectAll.prop('checked', this.$selectItems.length ===
+                this.$selectItems.filter(':checked').length);
+            this.update();
+        },
+
+        enable: function() {
+            this.$choice.removeClass('disabled');
+        },
+
+        disable: function() {
+            this.$choice.addClass('disabled');
+        },
+
+        checkAll: function() {
+            this.$selectItems.prop('checked', true);
+            this.$selectGroups.prop('checked', true);
+            this.$selectAll.prop('checked', true);
+            this.update();
+            this.options.onCheckAll();
+        },
+
+        uncheckAll: function() {
+            this.$selectItems.prop('checked', false);
+            this.$selectGroups.prop('checked', false);
+            this.$selectAll.prop('checked', false);
+            this.update();
+            this.options.onUncheckAll();
+        },
+
+        focus: function() {
+            this.$choice.focus();
+            this.options.onFocus();
+        },
+
+        blur: function() {
+            this.$choice.blur();
+            this.options.onBlur();
+        },
+
+        refresh: function() {
+            this.init();
+        },
+
+        filter: function() {
+            var that = this,
+                text = $.trim(this.$searchInput.val()).toLowerCase();
+            if (text.length === 0) {
+                this.$selectItems.parent().show();
+                this.$disableItems.parent().show();
+                this.$selectGroups.parent().show();
+            } else {
+                this.$selectItems.each(function() {
+                    var $parent = $(this).parent();
+                    $parent[$parent.text().toLowerCase().indexOf(text) < 0 ? 'hide' : 'show']();
+                });
+                this.$disableItems.parent().hide();
+                this.$selectGroups.each(function() {
+                    var $parent = $(this).parent();
+                    var group = $parent.attr('data-group'),
+                        $items = that.$selectItems.filter(':visible');
+                    $parent[$items.filter('[data-group="' + group + '"]').length === 0 ? 'hide' : 'show']();
+                });
+
+                //Check if no matches found
+                if (this.$selectItems.filter(':visible').length) {
+                    this.$selectAll.parent().show();
+                    this.$noResults.hide();
+                } else {
+                    this.$selectAll.parent().hide();
+                    this.$noResults.show();
+                }
+            }
+            this.updateOptGroupSelect();
+            this.updateSelectAll();
+        }
+    };
+
+    $.fn.multipleSelect = function() {
+        var option = arguments[0],
+            args = arguments,
+
+            value,
+            allowedMethods = [
+                'getSelects', 'setSelects',
+                'enable', 'disable',
+                'checkAll', 'uncheckAll',
+                'focus', 'blur',
+                'refresh'
+            ];
+
+        this.each(function() {
+            var $this = $(this),
+                data = $this.data('multipleSelect'),
+                options = $.extend({}, $.fn.multipleSelect.defaults,
+                    $this.data(), typeof option === 'object' && option);
+
+            if (!data) {
+                data = new MultipleSelect($this, options);
+                $this.data('multipleSelect', data);
+            }
+
+            if (typeof option === 'string') {
+                if ($.inArray(option, allowedMethods) < 0) {
+                    throw "Unknown method: " + option;
+                }
+                value = data[option](args[1]);
+            } else {
+                data.init();
+            }
+        });
+
+        return value ? value : this;
+    };
+
+    $.fn.multipleSelect.defaults = {
+        name: '',
+        isOpen: false,
+        placeholder: '',
+        selectAll: true,
+        selectAllText: 'Select all',
+        allSelected: 'All selected',
+        minumimCountSelected: 3,
+        countSelected: '# of % selected',
+        multiple: false,
+        multipleWidth: 80,
+        single: false,
+        filter: false,
+        width: undefined,
+        maxHeight: 250,
+        container: null,
+        position: 'bottom',
+        keepOpen: false,
+
+        styler: function() {return false;},
+
+        onOpen: function() {return false;},
+        onClose: function() {return false;},
+        onCheckAll: function() {return false;},
+        onUncheckAll: function() {return false;},
+        onFocus: function() {return false;},
+        onBlur: function() {return false;},
+        onOptgroupClick: function() {return false;},
+        onClick: function() {return false;}
+    };
+})(jQuery);
diff --git a/htdocs/includes/jquery/plugins/multiple-select/multiple-select.css b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.css
new file mode 100644
index 0000000000000000000000000000000000000000..d824e0c7a2b0d9a796d4390c51eab945ed089d06
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.css
@@ -0,0 +1,183 @@
+/**
+ * @author zhixin wen <wenzhixin2010@gmail.com>
+ */
+
+.ms-parent {
+    display: inline-block;
+    position: relative;
+    vertical-align: middle;
+}
+
+.ms-choice {
+    display: block;
+    height: 26px;
+    padding: 0;
+    overflow: hidden;
+    cursor: pointer;
+    border: 1px solid #aaa;
+    text-align: left;
+    white-space: nowrap;
+    line-height: 26px;
+    color: #444;
+    text-decoration: none;
+    -webkit-border-radius: 4px;
+    -moz-border-radius: 4px;
+    border-radius: 4px;
+    background-color: #fff;
+}
+
+.ms-choice.disabled {
+    background-color: #f4f4f4;
+    background-image: none;
+    border: 1px solid #ddd;
+    cursor: default;
+}
+
+.ms-choice > span {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 20px;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: block;
+    padding-left: 8px;
+}
+
+.ms-choice > span.placeholder {
+    color: #999;
+}
+
+.ms-choice > div {
+    position: absolute;
+    top: 0;
+    right: 0;
+    width: 20px;
+    height: 25px;
+    background: url('multiple-select.png') right top no-repeat;
+}
+
+.ms-choice > div.open {
+    background: url('multiple-select.png') left top no-repeat;
+}
+
+.ms-drop {
+    overflow: hidden;
+    display: none;
+    margin-top: -1px;
+    padding: 0;
+    position: absolute;
+    z-index: 1000;
+    background: #fff;
+    color: #000;
+    border: 1px solid #aaa;
+    -webkit-border-radius: 4px;
+    -moz-border-radius: 4px;
+    border-radius: 4px;
+}
+
+.ms-drop.bottom {
+    top: 100%;
+    -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
+    -moz-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
+    box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
+}
+
+.ms-drop.top {
+    bottom: 100%;
+    -webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
+    -moz-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
+    box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
+}
+
+.ms-search {
+    display: inline-block;
+    margin: 0;
+    min-height: 26px;
+    padding: 4px;
+    position: relative;
+    white-space: nowrap;
+    width: 100%;
+    z-index: 10000;
+}
+
+.ms-search input {
+    width: 100%;
+    height: auto !important;
+    min-height: 24px;
+    padding: 0 20px 0 5px;
+    margin: 0;
+    outline: 0;
+    font-family: sans-serif;
+    font-size: 1em;
+    border: 1px solid #aaa;
+    -webkit-border-radius: 0;
+    -moz-border-radius: 0;
+    border-radius: 0;
+    -webkit-box-shadow: none;
+    -moz-box-shadow: none;
+    box-shadow: none;
+    background: #fff url('multiple-select.png') no-repeat 100% -22px;
+    background: url('multiple-select.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
+    background: url('multiple-select.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+    background: url('multiple-select.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+    background: url('multiple-select.png') no-repeat 100% -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
+    background: url('multiple-select.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
+    background: url('multiple-select.png') no-repeat 100% -22px, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
+}
+
+.ms-search, .ms-search input {
+    -webkit-box-sizing: border-box;
+    -khtml-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    -ms-box-sizing: border-box;
+    box-sizing: border-box;
+}
+
+.ms-drop ul {
+    overflow: auto;
+    margin: 0;
+    padding: 5px 8px;
+}
+
+.ms-drop ul > li {
+    list-style: none;
+    display: list-item;
+    background-image: none;
+    position: static;
+}
+
+.ms-drop ul > li .disabled {
+    opacity: .35;
+    filter: Alpha(Opacity=35);
+}
+
+.ms-drop ul > li.multiple {
+    display: block;
+    float: left;
+}
+
+.ms-drop ul > li.group {
+    clear: both;
+}
+
+.ms-drop ul > li.multiple label {
+    width: 100%;
+    display: block;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.ms-drop ul > li label.optgroup {
+    font-weight: bold;
+}
+
+.ms-drop input[type="checkbox"] {
+    vertical-align: middle;
+}
+
+.ms-drop .ms-no-results {
+    display: none;
+}
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/multiple-select/multiple-select.jquery.json b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.jquery.json
new file mode 100644
index 0000000000000000000000000000000000000000..dd636fda7e0beddf36303b2f3c7d9c4c3b5ce4a0
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.jquery.json
@@ -0,0 +1,28 @@
+{
+    "name": "multiple-select",
+    "version": "1.1.0",
+    "title": "Multiple Select",
+    "description": "Multiple select is a jQuery plugin to select multiple elements with checkboxes :).",
+    "author": {
+        "name": "zhixin wen",
+        "email": "wenzhixin2010@gmail.com",
+        "url": "http://wenzhixin.net.cn/"
+    },
+    "licenses": [
+        {
+            "type": "MIT License",
+            "url": "http://opensource.org/licenses/MIT"
+        }
+    ],
+    "dependencies": {
+        "jquery": ">=1.7"
+    },
+    "keywords": ["multiple.select", "select.list", "multiple.choose", "checkbox"],
+    "homepage": "http://wenzhixin.net.cn/p/multiple-select/",
+    "demo": "http://wenzhixin.net.cn/p/multiple-select/#examples",
+    "bugs": {
+        "url": "https://github.com/wenzhixin/multiple-select/issues"
+    },
+    "docs": "http://wenzhixin.net.cn/p/multiple-select/#documentation",
+    "download": "https://github.com/wenzhixin/multiple-select/archive/master.zip"
+}
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/multiple-select/multiple-select.png b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a7ba608ea846d4873f84e00455ee2d1bbe4d13a
Binary files /dev/null and b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.png differ
diff --git a/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt b/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt
deleted file mode 100644
index 1076f8b4b2b4994d46d9037c1564fb8760cdf222..0000000000000000000000000000000000000000
--- a/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2009 Michael Aufreiter, http://www.quasipartikel.at
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/multiselect/css/ui.multiselect.css b/htdocs/includes/jquery/plugins/multiselect/css/ui.multiselect.css
deleted file mode 100644
index 7d3a44801d24ded885996c6b267178641b1e48e7..0000000000000000000000000000000000000000
--- a/htdocs/includes/jquery/plugins/multiselect/css/ui.multiselect.css
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Multiselect
-----------------------------------*/
-
-.ui-multiselect { border: solid 1px; font-size: 0.8em; }
-.ui-multiselect ul { -moz-user-select: none; }
-.ui-multiselect li { margin: 0; padding: 0; cursor: default; line-height: 20px; height: 20px; font-size: 11px; list-style: none; padding-right: 18px; overflow: hidden; }
-.ui-multiselect li a { color: #999; text-decoration: none; padding: 0; display: block; float: left; cursor: pointer;}
-.ui-multiselect li.ui-draggable-dragging { padding-left: 10px; }
-
-.ui-multiselect div.selected { position: relative; padding: 0; margin: 0; border: 0; float:left; }
-.ui-multiselect ul.selected { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; position: relative; width: 100%; }
-
-.ui-multiselect div.available { position: relative; padding: 0; margin: 0; border: 0; float:left; }
-.ui-multiselect ul.available { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; width: 100%; }
-.ui-multiselect ul.available li { padding-left: 10px; }
-
-.ui-multiselect div.right-column { border-left: 1px solid; }
-
-.ui-multiselect .ui-state-default { border: none; margin-bottom: 1px; position: relative; padding-left: 20px;}
-.ui-multiselect .ui-state-hover { border: none; }
-.ui-multiselect .ui-widget-header {border: none; font-size: 11px; margin-bottom: 1px;}
-
-.ui-multiselect .add-all { float: right; padding: 7px;}
-.ui-multiselect .remove-all { float: right; padding: 7px;}
-.ui-multiselect .search { float: left; padding: 4px;}
-.ui-multiselect .count { float: left; padding: 7px;}
-
-.ui-multiselect li span.ui-icon-arrowthick-2-n-s { position: absolute; left: 2px; }
-.ui-multiselect li a.action { position: absolute; right: 2px; top: 2px; }
-
-.ui-multiselect input.search { height: 14px; padding: 1px; opacity: 0.5; margin: 4px; width: 100px; }
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/multiselect/js/ui.multiselect.js b/htdocs/includes/jquery/plugins/multiselect/js/ui.multiselect.js
deleted file mode 100644
index eb4578fc78227d382d396f9d8b09cda1a64e60a4..0000000000000000000000000000000000000000
--- a/htdocs/includes/jquery/plugins/multiselect/js/ui.multiselect.js
+++ /dev/null
@@ -1,480 +0,0 @@
-/*
- * jQuery UI Multiselect
- *
- * Authors:
- *  Michael Aufreiter (quasipartikel.at)
- *  Yanick Rochon (yanick.rochon[at]gmail[dot]com)
- *
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://www.quasipartikel.at/multiselect/
- *
- *
- * Depends:
- *	ui.core.js
- *	ui.sortable.js
- *
- * Optional:
- * localization (http://plugins.jquery.com/project/localisation)
- * scrollTo (http://plugins.jquery.com/project/ScrollTo)
- *
- * Todo:
- *  Make batch actions faster
- *  Implement dynamic insertion through remote calls
- */
-
-
-(function($) {
-
-$.widget("ui.multiselect", {
-  options: {
-		sortable: true,
-		dragToAdd: true,
-		searchable: true,
-		doubleClickable: true,
-		animated: 'fast',
-		show: 'slideDown',
-		hide: 'slideUp',
-		dividerLocation: 0.6,
-		selectedContainerOnLeft: true,
-		width: null,
-		height: null,
-		nodeComparator: function(node1,node2) {
-			var text1 = node1.text(),
-			    text2 = node2.text();
-			return text1 == text2 ? 0 : (text1 < text2 ? -1 : 1);
-		},
-		includeRemoveAll: true,
-		includeAddAll: true,
-		pressEnterKeyToAddAll: false
-	},
-	_create: function() {
-		this.element.hide();
-		this.id = this.element.attr("id");
-		this.container = $('<div class="ui-multiselect ui-helper-clearfix ui-widget"></div>').insertAfter(this.element);
-		this.count = 0; // number of currently selected options
-		this.selectedContainer = $('<div class="selected"></div>');
-		if (this.options.selectedContainerOnLeft) {
-			this.selectedContainer.appendTo(this.container);
-			this.availableContainer = $('<div class="available"></div>').appendTo(this.container);
-			this.availableContainer.addClass('right-column');
-		}
-		else
-		{
-			this.availableContainer = $('<div class="available"></div>').appendTo(this.container);
-			this.selectedContainer.appendTo(this.container);
-			this.selectedContainer.addClass('right-column');
-		}
-		this.selectedActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><span class="count">0 '+$.ui.multiselect.locale.itemsCount+'</span>'+(this.options.includeRemoveAll?'<a href="#" class="remove-all">'+$.ui.multiselect.locale.removeAll+'</a>':'<span class="remove-all">&nbsp;</span>')+'</div>').appendTo(this.selectedContainer);
-		this.availableActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><input type="text" class="search empty ui-widget-content ui-corner-all"/>'+(this.options.includeAddAll?'<a href="#" class="add-all">'+$.ui.multiselect.locale.addAll+'</a>':'<span class="add-all">&nbsp;</span>')+'</div>').appendTo(this.availableContainer);
-		this.selectedList = $('<ul class="selected connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer);
-		this.availableList = $('<ul class="available connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer);
-
-		var that = this;
-
-		var width = this.options.width;
-		if (!width) {
-			width = this.element.width();
-		}
-		var height = this.options.height;
-		if (!height) {
-			height = this.element.height();
-		}
-
-		// set dimensions
-		this.container.width(width-2);
-		if (this.options.selectedContainerOnLeft) {
-			this.selectedContainer.width(Math.floor(width*this.options.dividerLocation)-1);
-			this.availableContainer.width(Math.floor(width*(1-this.options.dividerLocation))-2);
-		}
-		else
-		{
-			this.selectedContainer.width(Math.floor(width*this.options.dividerLocation)-2);
-			this.availableContainer.width(Math.floor(width*(1-this.options.dividerLocation))-1);
-		}
-
-		// fix list height to match <option> depending on their individual header's heights
-		this.selectedList.height(Math.max(height-this.selectedActions.height(),1));
-		this.availableList.height(Math.max(height-this.availableActions.height(),1));
-
-		if ( !this.options.animated ) {
-			this.options.show = 'show';
-			this.options.hide = 'hide';
-		}
-
-		// init lists
-		this._populateLists(this.element.find('option'));
-
-		// make selection sortable
-		if (this.options.sortable) {
-			this.selectedList.sortable({
-				placeholder: 'ui-state-highlight',
-				axis: 'y',
-				update: function(event, ui) {
-					// apply the new sort order to the original selectbox
-					that.selectedList.find('li').each(function() {
-						if ($(this).data('optionLink'))
-							$(this).data('optionLink').remove().appendTo(that.element);
-					});
-				},
-				beforeStop: function (event, ui) {
-					// This lets us recognize which item was just added to
-					// the list in receive, per the workaround for not being
-					// able to reference the new element.
-					ui.item.addClass('dropped');
-				},
-				receive: function(event, ui) {
-					ui.item.data('optionLink').attr('selected', true);
-					// increment count
-					that.count += 1;
-					that._updateCount();
-					// workaround, because there's no way to reference
-					// the new element, see http://dev.jqueryui.com/ticket/4303
-					that.selectedList.children('.dropped').each(function() {
-						$(this).removeClass('dropped');
-						$(this).data('optionLink', ui.item.data('optionLink'));
-						$(this).data('idx', ui.item.data('idx'));
-						that._applyItemState($(this), true);
-					});
-
-					// workaround according to http://dev.jqueryui.com/ticket/4088
-					setTimeout(function() { ui.item.remove(); }, 1);
-				},
-				stop: function (event, ui) { that.element.change(); }
-			});
-		}
-
-		// set up livesearch
-		if (this.options.searchable) {
-			this._registerSearchEvents(this.availableContainer.find('input.search'));
-		} else {
-			$('.search').hide();
-		}
-
-		// batch actions
-		this.container.find(".remove-all").click(function() {
-			that._populateLists(that.element.find('option').removeAttr('selected'));
-			that.element.trigger('change');
-			return false;
-		});
-
-		this.container.find(".add-all").click(function() {
-			var options = that.element.find('option').not(":selected");
-			if (that.availableList.children('li:hidden').length > 1) {
-				that.availableList.children('li').each(function(i) {
-					if ($(this).is(":visible")) $(options[i-1]).attr('selected', 'selected');
-				});
-			} else {
-				options.attr('selected', 'selected');
-			}
-			that._populateLists(that.element.find('option'));
-			that.element.trigger('change');
-			if (that.options.pressEnterKeyToAddAll) {
-                    //clear input after add all
-                    $('input.search').val("");
-                }
-			
-			return false;
-		});
-	},
-	destroy: function() {
-		this.element.show();
-		this.container.remove();
-
-		$.Widget.prototype.destroy.apply(this, arguments);
-	},
-	addOption: function(option) {
-		// Append the option
-		option = $(option);
-		var select = this.element;
-		select.append(option);
-
-		var item = this._getOptionNode(option).appendTo(option.attr('selected') ? this.selectedList : this.availableList).show();
-
-		if (option.attr('selected')) {
-			this.count += 1;
-		}
-		this._applyItemState(item, option.attr('selected'));
-		item.data('idx', this.count);
-
-		// update count
-		this._updateCount();
-		this._filter.apply(this.availableContainer.find('input.search'), [this.availableList]);
-	},
-    // Redisplay the lists of selected/available options.
-    // Call this after you've selected/unselected some options programmatically.
-    // GRIPE This is O(n) where n is the length of the list - seems like
-    // there must be a smarter way of doing this, but I have not been able
-    // to come up with one. I see no way to detect programmatic setting of
-    // the option's selected property, and without that, it seems like we
-    // can't have a general-case listener that does its thing every time an
-    // option is selected.
-    refresh: function() {
-		// Redisplay our lists.
-		this._populateLists(this.element.find('option'));
-    },
-	_populateLists: function(options) {
-		this.selectedList.children('.ui-element').remove();
-		this.availableList.children('.ui-element').remove();
-		this.count = 0;
-
-		var that = this;
-		var groups = $(this.element).find("optgroup").map(function(i) {
-			return that._getOptionGroup($(this));
-		});
-		groups.appendTo(this.selectedList.add(this.availableList));
-		
-		var items = $(options.map(function(i) {
-		  var item = that._getOptionNode(this).appendTo(that._getOptionList(this)).show();
-
-			if (this.selected) that.count += 1;
-			that._applyItemState(item, this.selected);
-			item.data('idx', i);
-			return item[0];
-    }));
-
-		// update count
-		this._updateCount();
-		that._filter.apply(this.availableContainer.find('input.search'), [that.availableList]);
-  },
-	_getOptionList: function(option) {
-		var selected = option.selected;
-		option = $(option);
-		var $list = selected ? this.selectedList : this.availableList;
-		var $group = option.closest("optgroup");
-		if ($group.length === 0) {
-			return $list;
-		} else {
-			var $groupList = $list.find("ul[title='" + $group.attr("label") + "']");
-			if ($groupList.length === 0) {
-				$groupList = $("<ul class='ui-state-default ui-element available' title='" + $group.attr("label") + "'>" + $group.attr("label") + "</ul>").appendTo($list);
-			}
-			$groupList.show();
-			return $groupList;
-		}
-	},
-	_getOptionGroup : function(optgroup) {
-		var groupNode = $("<ul class='ui-state-default ui-element available' title='" + optgroup.attr("label") + "'>" + optgroup.attr("label") + "</ul>").hide();
-		return groupNode[0];
-	},
-	_updateCount: function() {
-		this.selectedContainer.find('span.count').text(this.count+" "+$.ui.multiselect.locale.itemsCount);
-	},
-	_getOptionNode: function(option) {
-		option = $(option);
-		var node = $('<li class="ui-state-default ui-element" title="'+option.text()+'"><span class="ui-icon"/>'+option.text()+'<a href="#" class="action"><span class="ui-corner-all ui-icon"/></a></li>').hide();
-		node.data('optionLink', option);
-		return node;
-	},
-	// clones an item with associated data
-	// didn't find a smarter away around this
-	_cloneWithData: function(clonee) {
-		var clone = clonee.clone(false,false);
-		clone.data('optionLink', clonee.data('optionLink'));
-		clone.data('idx', clonee.data('idx'));
-		return clone;
-	},
-	_setSelected: function(item, selected) {
-		var temp = item.data('optionLink').attr('selected', selected);
-		var parent = temp.parent();
-		temp.detach().appendTo(parent);
-		this.element.trigger('change');
-
-		if (selected) {
-			var selectedItem = this._cloneWithData(item);
-			item[this.options.hide](this.options.animated, function() { 
-				if (item.siblings().length === 0) {
-					item.closest("ul[title]").hide();
-				}
-				$(this).remove(); 
-			});
-			// get group to add it to...
-			var $list = this._getOptionList(selectedItem.data("optionLink")[0]);
-			selectedItem.appendTo($list).hide()[this.options.show](this.options.animated);
-
-			this._applyItemState(selectedItem, true);
-			return selectedItem;
-		} else {
-
-			// look for successor based on initial option index
-			var items = this.availableList.find('li'), comparator = this.options.nodeComparator;
-			var succ = null, i = item.data('idx'), direction = comparator(item, $(items[i]));
-
-			// TODO: test needed for dynamic list populating
-			if ( direction ) {
-				while (i>=0 && i<items.length) {
-					direction > 0 ? i++ : i--;
-					if ( direction != comparator(item, $(items[i])) ) {
-						// going up, go back one item down, otherwise leave as is
-						succ = items[direction > 0 ? i : i+1];
-						var group1 = item.closest("ul[title]"),
-							group2 = $(succ).closest("ul[title]");
-						if (group1.length !== 0 && group2.length !== 0) {
-							if (group1.attr("title") !== group2.attr("title")) {
-								succ = null;
-							}
-						}
-						break;
-					}
-				}
-			} else {
-				succ = items[i];
-			}
-
-			var availableItem = this._cloneWithData(item);
-			var $list = this._getOptionList(availableItem.data("optionLink")[0]);
-			succ ? availableItem.insertBefore($(succ)) : availableItem.appendTo($list);
-			item[this.options.hide](this.options.animated, function() { 
-				if (item.siblings().length === 0) {
-					item.closest("ul[title]").hide();
-				}
-				$(this).remove(); 
-			});
-			availableItem.hide()[this.options.show](this.options.animated);
-
-			this._applyItemState(availableItem, false);
-			return availableItem;
-		}
-	},
-	_applyItemState: function(item, selected) {
-		if (selected) {
-			if (this.options.sortable)
-				item.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon');
-			else
-				item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
-			item.find('a.action span').addClass('ui-icon-minus').removeClass('ui-icon-plus');
-			this._registerRemoveEvents(item.find('a.action'));
-
-		} else {
-			item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
-			item.find('a.action span').addClass('ui-icon-plus').removeClass('ui-icon-minus');
-			this._registerAddEvents(item.find('a.action'));
-		}
-
-		this._registerDoubleClickEvents(item);
-		this._registerHoverEvents(item);
-	},
-	// taken from John Resig's liveUpdate script
-	_filter: function(list) {
-		var input = $(this);
-		var rows = list.find('li'),
-			cache = rows.map(function(){
-
-				return $(this).text().toLowerCase();
-			});
-
-		var term = $.trim(input.val().toLowerCase()), scores = [];
-
-		if (!term) {
-			rows.show();
-		} else {
-			rows.hide();
-
-			cache.each(function(i) {
-				if (this.indexOf(term)>-1) { scores.push(i); }
-			});
-
-			$.each(scores, function() {
-				$(rows[this]).show();
-			});
-		}
-	},
-	_registerDoubleClickEvents: function(elements) {
-		if (!this.options.doubleClickable) return;
-		elements.dblclick(function() {
-			elements.find('a.action').click();
-		});
-	},
-	_registerHoverEvents: function(elements) {
-		elements.removeClass('ui-state-hover');
-		elements.mouseover(function() {
-			$(this).addClass('ui-state-hover');
-		});
-		elements.mouseout(function() {
-			$(this).removeClass('ui-state-hover');
-		});
-	},
-	_registerAddEvents: function(elements) {
-		var that = this;
-		elements.click(function() {
-			var item = that._setSelected($(this).parent(), true);
-			that.count += 1;
-			that._updateCount();
-
-			// Prevent extra clicks from triggering bogus add events, if a user
-			// tries clicking during the removal process.
-			$(this).unbind('click');
-
-			return false;
-		});
-
-		// make draggable
-		if (this.options.sortable && this.options.dragToAdd) {
-  		elements.each(function() {
-  			$(this).parent().draggable({
-  	      connectToSortable: that.selectedList,
-  				helper: function() {
-  					var selectedItem = that._cloneWithData($(this)).width($(this).width() - 50);
-  					selectedItem.width($(this).width());
-  					return selectedItem;
-  				},
-  				appendTo: that.container,
-  				containment: that.container,
-  				revert: 'invalid'
-  	    });
-  		});
-		}
-	},
-	_registerRemoveEvents: function(elements) {
-		var that = this;
-		elements.click(function() {
-			that._setSelected($(this).parent(), false);
-			that.count -= 1;
-			that._updateCount();
-
-			// Prevent extra clicks from triggering bogus remove events, if a
-			// user tries clicking during the removal process.
-			$(this).unbind('click');
-
-			return false;
-		});
- 	},
-	_registerSearchEvents: function(input) {
-		var that = this;
-
-		input.focus(function() {
-			$(this).addClass('ui-state-active');
-		})
-		.blur(function() {
-			$(this).removeClass('ui-state-active');
-		})
-		.keypress(function(e) {
-			if (e.keyCode == 13) {
-				if (that.options.pressEnterKeyToAddAll) {
-		            //on Enter, if a filter is present add all, then clear the input
-		            var str = $('input.search').val();
-		            if (str !== undefined && str !== null && str !== "") {
-		                $('a.add-all').click();
-		                $('input.search').val("");
-		            }
-		        }
-				return false;
-			}
-		})
-		.keyup(function() {
-			that._filter.apply(this, [that.availableList]);
-		});
-	}
-});
-
-$.extend($.ui.multiselect, {
-	locale: {
-		addAll:'Add all',
-		removeAll:'Remove all',
-		itemsCount:'items selected'
-	}
-});
-
-
-})(jQuery);
diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php
index 225466ca453cbc03ee14244edbc3f505fad905fe..d4b79af8013028bfa20beaa625d58d1b41e6666b 100644
--- a/htdocs/includes/odtphp/odf.php
+++ b/htdocs/includes/odtphp/odf.php
@@ -610,6 +610,21 @@ IMG;
 			closedir($handle);
 		}
 	}
+
+	/**
+	 * return the value present on odt in [valuename][/valuename]
+	 * @param string $value name balise in the template
+	 * @return string the value inside the balise
+	 *
+	 */
+	public function getvalue($valuename)
+	{
+		$searchreg="/\\[".$valuename."\\](.*)\\[\\/".$valuename."\\]/";
+		preg_match($searchreg, $this->contentXml, $matches); 
+		$this->contentXml = preg_replace($searchreg, "", $this->contentXml);
+		return  $matches[1];
+	}
+
 }
 
 ?>
diff --git a/htdocs/install/mssql/functions/functions.sql b/htdocs/install/mssql/functions/functions.sql
index 93766a224064a3dc68cab3dc0878f1477af69f1d..1c2c76996dc312cc2440a2329d46530adb815d7c 100644
Binary files a/htdocs/install/mssql/functions/functions.sql and b/htdocs/install/mssql/functions/functions.sql differ
diff --git a/htdocs/install/mysql/migration/3.5.0-3.6.0.sql b/htdocs/install/mysql/migration/3.5.0-3.6.0.sql
old mode 100644
new mode 100755
diff --git a/htdocs/install/mysql/migration/3.6.0-3.7.0.sql b/htdocs/install/mysql/migration/3.6.0-3.7.0.sql
old mode 100644
new mode 100755
index 4c31bef80557e0e0d99631eaa95821cf5e41091b..e8c77100bf9153b164c8cc43b2d855724150f952
--- a/htdocs/install/mysql/migration/3.6.0-3.7.0.sql
+++ b/htdocs/install/mysql/migration/3.6.0-3.7.0.sql
@@ -28,6 +28,7 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value
 insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2);
 
 ALTER TABLE llx_notify ADD COLUMN fk_soc integer NULL after fk_action;
+ALTER TABLE llx_notify ADD COLUMN type varchar(16) DEFAULT 'email' after fk_soc;
 
 ALTER TABLE llx_bank_account ADD COLUMN fk_user_author integer;
 
@@ -55,7 +56,7 @@ ALTER TABLE llx_user ADD COLUMN fk_user_creat integer AFTER tms;
 ALTER TABLE llx_user ADD COLUMN fk_user_modif integer AFTER fk_user_creat;
 
 -- Add module accounting Expert
-ALTER TABLE llx_bookkeeping RENAME TO llx_accounting_bookkeeping; -- To update old user of module Accounting Expert
+--ALTER TABLE llx_bookkeeping RENAME TO llx_accounting_bookkeeping; -- To update old user of module Accounting Expert -> Line should be added into file sql/x.y.z-a.b.c.sql of module. 
 
 
 CREATE TABLE llx_accounting_bookkeeping
@@ -181,7 +182,9 @@ ALTER TABLE llx_product MODIFY COLUMN fk_barcode_type INTEGER NULL DEFAULT NULL;
 UPDATE llx_product SET fk_barcode_type = NULL WHERE fk_barcode_type = 0;
 ALTER TABLE llx_product ADD INDEX idx_product_fk_barcode_type (fk_barcode_type);
 UPDATE llx_product SET fk_barcode_type = NULL WHERE fk_barcode_type NOT IN (SELECT rowid from llx_c_barcode_type);
-ALTER TABLE llx_product ADD CONSTRAINT fk_product_barcode_type FOREIGN KEY (fk_barcode_type) REFERENCES  llx_c_barcode_type (rowid);
+
+-- This request make mysql drop (mysql bug):
+ALTER TABLE llx_product ADD CONSTRAINT fk_product_barcode_type FOREIGN KEY (fk_barcode_type) REFERENCES llx_c_barcode_type(rowid);
 
 
 -- Added missing relations of llx_product_price
diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql
old mode 100644
new mode 100755
index 57a8944034393ec2a8da21ed38154b59cfca2be8..4083ba2f7b90c56a3f1bebb741a6d21ce746c84d
--- a/htdocs/install/mysql/migration/repair.sql
+++ b/htdocs/install/mysql/migration/repair.sql
@@ -187,3 +187,20 @@ UPDATE llx_projet_task_time set task_datehour = task_date where task_datehour IS
 -- update llx_facturedet set total_tva = total_ttc - total_ht where total_vat = 0;
 -- update llx_facture set total = round(total_ttc / 1.2, 5) where total_ht = total_ttc;
 -- update llx_facture set tva = total_ttc - total where tva = 0;
+
+-- To insert elements into a category
+-- Search idcategory: select rowid from llx_categorie where type=0 and ref like '%xxx%'
+-- Select all products to include: select * from llx_product where ref like '%xxx%'
+-- If ok, insert: insert into llx_categorie_product(fk_categorie, fk_product) select idcategory, rowid from llx_product where ref like '%xxx%'
+-- List of product with a category xxx: select distinct cp.fk_product from llx_categorie_product as cp, llx_categorie as c where cp.fk_categorie = c.rowid and c.label like 'xxx-%' order by fk_product;
+-- List of product into 2 categories xxx: select cp.fk_product, count(cp.fk_product) as nb from llx_categorie_product as cp, llx_categorie as c where cp.fk_categorie = c.rowid and c.label like 'xxx-%' group by fk_product having nb > 1;
+-- List of product with no category xxx yet: select rowid, ref from llx_product where rowid not in (select distinct cp.fk_product from llx_categorie_product as cp, llx_categorie as c where cp.fk_categorie = c.rowid and c.label like 'xxx-%' order by fk_product);
+
+-- Replace xxx with your IP Address 
+-- bind-address        = xxx.xxx.xxx.xxx
+-- CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
+-- CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
+-- GRANT ALL ON *.* TO 'myuser'@'localhost';
+-- GRANT ALL ON *.* TO 'myuser'@'%';
+-- flush privileges;
+
diff --git a/htdocs/install/mysql/tables/llx_notify.sql b/htdocs/install/mysql/tables/llx_notify.sql
index 21a7b833dec3e320b1af3be1c90867531fd6b690..1dcfe6af8e616b86f85780ca021e8e3e8ece05e5 100644
--- a/htdocs/install/mysql/tables/llx_notify.sql
+++ b/htdocs/install/mysql/tables/llx_notify.sql
@@ -1,6 +1,7 @@
 -- ===================================================================
 -- Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
 -- Copyright (C) 2009 Laurent Destailleur  <eldy@users.sourceforge.net>
+-- Copyright (C) 2014 Juanjo Menent		   <jmenent@2byte.es>
 --
 -- This program is free software; you can redistribute it and/or modify
 -- it under the terms of the GNU General Public License as published by
@@ -26,6 +27,7 @@ create table llx_notify
   fk_soc          integer NULL,
   fk_contact      integer NULL,
   fk_user         integer NULL,
+  type            varchar(16) DEFAULT 'email',
   objet_type      varchar(24) NOT NULL,
   objet_id        integer NOT NULL,
   email           varchar(255)
diff --git a/htdocs/install/mysql/tables/llx_societe.sql b/htdocs/install/mysql/tables/llx_societe.sql
index 7822ed57a09f61af57c74d2c1a3d1888094e16b6..e28cf0622243205b071eb54a087dd58316bb71ae 100644
--- a/htdocs/install/mysql/tables/llx_societe.sql
+++ b/htdocs/install/mysql/tables/llx_societe.sql
@@ -3,6 +3,7 @@
 -- Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
 -- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
 -- Copyright (C) 2010      Juanjo Menent        <dolibarr@2byte.es>
+-- Copyright (C) 2014      Teddy Andreotti      <125155@supinfo.com>
 --
 -- This program is free software; you can redistribute it and/or modify
 -- it under the terms of the GNU General Public License as published by
@@ -91,7 +92,7 @@ create table llx_societe
   default_lang             varchar(6),									-- default language
   logo                     varchar(255),
   canvas				   varchar(32),			                        -- type of canvas if used (null by default)
-  import_key               varchar(14)                          		-- import key
+  import_key               varchar(14),                          		-- import key
   webservices_url          varchar(255),                            -- supplier webservice url
-  webservices_key          varchar(128),                            -- supplier webservice key
+  webservices_key          varchar(128)                            -- supplier webservice key
 )ENGINE=innodb;
diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php
old mode 100644
new mode 100755
index d89596e25e613daa2db265f3c1660f4bc497b7c5..396c9f96b013b39a8835b2ac5f4093360cf11da0
--- a/htdocs/install/upgrade.php
+++ b/htdocs/install/upgrade.php
@@ -50,6 +50,7 @@ error_reporting(0);
 @set_time_limit(120);
 error_reporting($err);
 
+
 $setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):'auto';
 $langs->setDefaultLang($setuplang);
 $versionfrom=GETPOST("versionfrom",'',3)?GETPOST("versionfrom",'',3):(empty($argv[1])?'':$argv[1]);
@@ -74,6 +75,22 @@ if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initial
  * View
  */
 
+if (! $versionfrom && ! $versionto)
+{
+	print 'Error: Parameter versionfrom or versionto missing.'."\n";
+	print 'Upgrade must be ran from cmmand line with parameters or called from page install/index.php (like a first install) instead of page install/upgrade.php'."\n";
+	// Test if batch mode
+	$sapi_type = php_sapi_name();
+	$script_file = basename(__FILE__);
+	$path=dirname(__FILE__).'/';
+	if (substr($sapi_type, 0, 3) == 'cli') 
+	{
+		print 'Syntax from command line: '.$script_file." x.y.z a.b.c\n";
+	}
+	exit;
+}
+
+
 pHeader('',"upgrade2",GETPOST('action'),'versionfrom='.$versionfrom.'&versionto='.$versionto);
 
 $actiondone=0;
@@ -85,12 +102,6 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action')))
 
     print '<h3>'.$langs->trans("DatabaseMigration").'</h3>';
 
-    if (! $versionfrom && ! $versionto)
-    {
-        print '<div class="error">Parameter versionfrom or versionto missing. Upgrade is launched from page install/index.php (like a first install) instead of install/upgrade.php</div>';
-        exit;
-    }
-
     print '<table cellspacing="0" cellpadding="1" border="0" width="100%">';
     $error=0;
 
diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php
old mode 100644
new mode 100755
index 0bf76c7d729fd3ba745cbd5650a07c2f4017ae7a..3a02a78f9e8fef7ef1156bb95428460e13e24f6c
--- a/htdocs/install/upgrade2.php
+++ b/htdocs/install/upgrade2.php
@@ -83,6 +83,21 @@ if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initial
  * View
  */
 
+if (! $versionfrom && ! $versionto)
+{
+	print 'Error: Parameter versionfrom or versionto missing.'."\n";
+	print 'Upgrade must be ran from cmmand line with parameters or called from page install/index.php (like a first install) instead of page install/upgrade.php'."\n";
+	// Test if batch mode
+	$sapi_type = php_sapi_name();
+	$script_file = basename(__FILE__);
+	$path=dirname(__FILE__).'/';
+	if (substr($sapi_type, 0, 3) == 'cli')
+	{
+		print 'Syntax from command line: '.$script_file." x.y.z a.b.c\n";
+	}
+	exit;
+}
+
 pHeader('','etape5',GETPOST("action")?GETPOST("action"):'upgrade','versionfrom='.$versionfrom.'&versionto='.$versionto);
 
 
diff --git a/htdocs/langs/ar_SA/install.lang b/htdocs/langs/ar_SA/install.lang
index 66d8331e72ff3f4658f2326a8ddfb32ec9460049..b1a63938f4479b32fd2a77a91c736e816c8195ac 100644
--- a/htdocs/langs/ar_SA/install.lang
+++ b/htdocs/langs/ar_SA/install.lang
@@ -25,14 +25,14 @@ ErrorGoBackAndCorrectParameters=العودة إلى الوراء وتصحيح ا
 ErrorWrongValueForParameter=قد تكون لديكم مطبوعة خاطئة قيمة معلمة '٪ ق.
 ErrorFailedToCreateDatabase=فشل إنشاء قاعدة بيانات '٪ ق.
 ErrorFailedToConnectToDatabase=فشل في الاتصال بقاعدة البيانات '٪ ق.
-ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
+ErrorDatabaseVersionTooLow=إصدار قاعدة البيانات  (s%) قديمة جدا. مطلوب نسخة s% أو أعلى
 ErrorPHPVersionTooLow=PHP نسخة قديمة جدا. النسخة ٪ ق هو مطلوب.
 WarningPHPVersionTooLow=PHP نسخة قديمة جدا. ومن المتوقع %s نسخة أو أكثر. وينبغي أن تسمح هذه النسخة تثبيت ولكن لم يتم اعتماد.
 ErrorConnectedButDatabaseNotFound=خادم الصدد الى قاعدة البيانات ولكن النجاح في '٪ ق' لم يتم العثور عليه.
 ErrorDatabaseAlreadyExists=قاعدة البيانات '٪ ق' موجود بالفعل.
 IfDatabaseNotExistsGoBackAndUncheckCreate=إذا كان لا وجود قاعدة بيانات ، والتأكد من العودة الخيار "إنشاء قاعدة بيانات".
 IfDatabaseExistsGoBackAndCheckCreate=إذا كانت قاعدة البيانات موجود بالفعل ، من العودة وإلغاء "إنشاء قاعدة بيانات" الخيار.
-WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
+WarningBrowserTooOld=نسخة قديمة جدا من المتصفح. ننصحك جيدا بترقية متصفحك إلى نسخة حديثة عن فايرفوكس، كروم أو أوبرا
 PHPVersion=PHP الإصدار
 YouCanContinue=يمكنك الاستمرار...
 PleaseBePatient=يرجى التحلي بالصبر...
@@ -154,7 +154,7 @@ MigrationShippingDelivery2=ترقية تخزين الشحن 2
 MigrationFinished=الانتهاء من الهجرة
 LastStepDesc=<strong>الخطوة الأخيرة</strong> : تعريف المستخدم وكلمة السر هنا كنت تخطط لاستخدامها للاتصال البرمجيات. لا تفقد هذا كما هو حساب لإدارة جميع الآخرين.
 ActivateModule=تفعيل وحدة %s
-ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
+ShowEditTechnicalParameters=انقر هنا لعرض/تحرير المعلمات المتقدمة (وضع الخبراء)
 
 #########
 # upgrade
@@ -205,7 +205,7 @@ MigrationProjectUserResp=بيانات fk_user_resp مجال الهجرة من ll
 MigrationProjectTaskTime=تحديث الوقت الذي يقضيه في ثوان
 MigrationActioncommElement=تحديث البيانات على الإجراءات
 MigrationPaymentMode=بيانات الهجرة لطريقة الدفع
-MigrationCategorieAssociation=Migration of categories
+MigrationCategorieAssociation=تحديث الفئات
 
-ShowNotAvailableOptions=Show not available options
-HideNotAvailableOptions=Hide not available options
+ShowNotAvailableOptions=عرض خيارات غير متوفرة
+HideNotAvailableOptions=إخفاء خيارات غير متوفرة
diff --git a/htdocs/langs/ar_SA/projects.lang b/htdocs/langs/ar_SA/projects.lang
index 954c1f371f653496439d14ff98bdccbc2f55d2db..34c6bea737f7f0f7665fc71811287106456d7167 100644
--- a/htdocs/langs/ar_SA/projects.lang
+++ b/htdocs/langs/ar_SA/projects.lang
@@ -14,7 +14,7 @@ TasksDesc=هذا الرأي يعرض جميع المشاريع والمهام (
 Myprojects=بلدي المشاريع
 ProjectsArea=مشاريع المنطقة
 NewProject=مشروع جديد
-AddProject=يضيف المشروع
+AddProject=إنشاء مشروع
 DeleteAProject=حذف مشروع
 DeleteATask=حذف مهمة
 ConfirmDeleteAProject=هل أنت متأكد من أنك تريد حذف هذا المشروع؟
@@ -45,7 +45,7 @@ TaskDateStart=Task start date
 TaskDateEnd=Task end date
 TaskDescription=Task description
 NewTask=مهمة جديدة
-AddTask=إضافة مهمة
+AddTask=خلق مهمة
 AddDuration=تضاف المدة
 Activity=النشاط
 Activities=المهام والأنشطة
@@ -85,18 +85,18 @@ ActionsOnProject=الإجراءات على المشروع
 YouAreNotContactOfProject=كنت لا اتصال لهذا المشروع الخاص
 DeleteATimeSpent=قضى الوقت حذف
 ConfirmDeleteATimeSpent=هل أنت متأكد أنك تريد حذف هذا الوقت الذي يقضيه؟
-DoNotShowMyTasksOnly=See also tasks not assigned to me
-ShowMyTasksOnly=View only tasks assigned to me
+DoNotShowMyTasksOnly=انظر أيضا المهام  الغير موكلة الي
+ShowMyTasksOnly=عرض فقط المهام الموكلة الي
 TaskRessourceLinks=ملتقيات
 ProjectsDedicatedToThisThirdParty=مشاريع مخصصة لهذا الطرف الثالث
 NoTasks=أية مهام لهذا المشروع
 LinkedToAnotherCompany=ربط طرف ثالث آخر
-TaskIsNotAffectedToYou=Task not assigned to you
+TaskIsNotAffectedToYou=مهمة غيرموكلة اليك
 ErrorTimeSpentIsEmpty=الوقت الذي يقضيه فارغة
 ThisWillAlsoRemoveTasks=وهذا العمل أيضا حذف كافة مهام المشروع <b>(%s</b> المهام في الوقت الحاضر) وجميع المدخلات من الوقت الذي تستغرقه.
 IfNeedToUseOhterObjectKeepEmpty=إذا كانت بعض الكائنات (فاتورة، والنظام، ...)، الذين ينتمون إلى طرف ثالث آخر، يجب أن تكون مرتبطة بمشروع لإنشاء، والحفاظ على هذا فارغة لديها مشروع كونها متعددة الأطراف الثالثة.
-CloneProject=Clone project
-CloneTasks=Clone tasks
+CloneProject=استنساخ المشروع
+CloneTasks=استنساخ المهام
 CloneContacts=Clone contacts
 CloneNotes=Clone notes
 CloneProjectFiles=Clone project joined files
diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang
index 152274fc4ec4f8125ccd9d0953ab5a2d702ff0a7..770cb6d25bf6056ebb1b2de15d2806d62db53b6e 100644
--- a/htdocs/langs/en_US/compta.lang
+++ b/htdocs/langs/en_US/compta.lang
@@ -108,6 +108,7 @@ ErrorWrongAccountancyCodeForCompany=Bad customer accountancy code for %s
 SuppliersProductsSellSalesTurnover=The generated turnover by the sales of supplier's products.  
 CheckReceipt=Check deposit
 CheckReceiptShort=Check deposit
+LastCheckReceiptShort=Last %s check receipts
 NewCheckReceipt=New discount
 NewCheckDeposit=New check deposit
 NewCheckDepositOn=Create receipt for deposit on account: %s
diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
index a18522be5f8daf5003e5e12fee03c08c04dadd4a..cbc4deb40d7e0acc23283f63b64cd60a43fe5f59 100644
--- a/htdocs/langs/en_US/main.lang
+++ b/htdocs/langs/en_US/main.lang
@@ -367,6 +367,7 @@ ActionsOnCompany=Events about this third party
 ActionsOnMember=Events about this member
 NActions=%s events
 NActionsLate=%s late
+RequestAlreadyDone=Request already recorded
 Filter=Filter
 RemoveFilter=Remove filter
 ChartGenerated=Chart generated
diff --git a/htdocs/langs/en_US/margins.lang b/htdocs/langs/en_US/margins.lang
index 38b6482a4f3abf341537ff7a1322a4f9d3cdcc43..0cf9bc3441082bcc5dba627f2e391a9286ccd6d7 100644
--- a/htdocs/langs/en_US/margins.lang
+++ b/htdocs/langs/en_US/margins.lang
@@ -41,3 +41,4 @@ AgentContactType=Commercial agent contact type
 AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per sale representative
 rateMustBeNumeric=Rate must be a numeric value
 markRateShouldBeLesserThan100=Mark rate should be lower than 100
+ShowMarginInfos=Show margin infos
\ No newline at end of file
diff --git a/htdocs/langs/en_US/resource.lang b/htdocs/langs/en_US/resource.lang
index fbc55081185016d1b96d2a297f26d28953c3b828..e0a767cc58adaede1dbc5c7ec0983fb83872006f 100755
--- a/htdocs/langs/en_US/resource.lang
+++ b/htdocs/langs/en_US/resource.lang
@@ -32,4 +32,6 @@ ResourceLinkedWithSuccess=Resource linked with success
 TitleResourceCard=Resource card
 ConfirmDeleteResource=Confirm to delete this resource
 RessourceSuccessfullyDeleted=Resource successfully deleted
-DictionaryResourceType=Type of resources
\ No newline at end of file
+DictionaryResourceType=Type of resources
+
+SelectResource=Select resource
diff --git a/htdocs/langs/en_US/sendings.lang b/htdocs/langs/en_US/sendings.lang
index 2ae43f3976607147c1e8fc3a41898f572cee9868..f6111bac6841189e50c3c7fb9028962b56e3997e 100644
--- a/htdocs/langs/en_US/sendings.lang
+++ b/htdocs/langs/en_US/sendings.lang
@@ -61,6 +61,8 @@ ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is do
 RelatedShippings=Related shippings
 ShipmentLine=Shipment line
 CarrierList=List of transporters
+SendingRunning=Product from customer order already sent
+SuppliersReceiptRunning=Product from supplier order already received
 
 # Sending methods
 SendingMethodCATCH=Catch by customer
diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang
index dccee9d0c8eb7068ff487dadf2cc403b796ff1b0..35cfa23d9e2d7ab038ffcfa49664af822e0ddad9 100644
--- a/htdocs/langs/en_US/withdrawals.lang
+++ b/htdocs/langs/en_US/withdrawals.lang
@@ -16,6 +16,7 @@ WithdrawedBills=Withdrawn invoices
 WithdrawalsLines=Withdrawal lines
 RequestStandingOrderToTreat=Request for standing orders to process
 RequestStandingOrderTreated=Request for standing orders processed
+NotPossibleForThisStatusOfWithdrawReceiptORLine=Not yet possible. Withdraw status must be set to 'credited' before declaring reject on specific lines.
 CustomersStandingOrders=Customer standing orders
 CustomerStandingOrder=Customer standing order
 NbOfInvoiceToWithdraw=Nb. of invoice with withdraw request
@@ -76,7 +77,7 @@ WithBankUsingRIB=For bank accounts using RIB
 WithBankUsingBANBIC=For bank accounts using IBAN/BIC/SWIFT
 BankToReceiveWithdraw=Bank account to receive withdraws
 CreditDate=Credit on
-WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country
+WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported)
 ShowWithdraw=Show Withdraw
 IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one withdrawal payment not yet processed, it won't be set as paid to allow prior withdrawal management.
 DoStandingOrdersBeforePayments=This tab allows you to request a standing order. Once it is complete, you can type the payment to close the invoice.
diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang
index 8dfcbfc080f23504e1cf5d5e3cc32ce896773129..79935d143caab6e887ef3784b8bc89c3b08b0f80 100644
--- a/htdocs/langs/es_ES/admin.lang
+++ b/htdocs/langs/es_ES/admin.lang
@@ -484,7 +484,7 @@ Module500Desc=Gestión de los gastos especiales como impuestos, gastos sociales,
 Module510Name=Salarios
 Module510Desc=Gestión de salarios y pagos
 Module600Name=Notificaciones
-Module600Desc=Envío de notificaciones (por correo electrónico) sobre los eventos de trabajo Dolibarr
+Module600Desc=Envío de notificaciones por e-mail en algunos eventos de negocio de Dolibarr a contactos de terceros (configurado en cada tercero)
 Module700Name=Donaciones
 Module700Desc=Gestión de donaciones
 Module1200Name=Mantis
@@ -514,16 +514,16 @@ Module5000Name=Multi-empresa
 Module5000Desc=Permite gestionar varias empresas
 Module6000Name=Flujo de trabajo
 Module6000Desc=Gestión del flujo de trabajo
-Module20000Name=Días libres
-Module20000Desc=Gestión de los días libres de los empleados
+Module20000Name=Gestión de días libres retribuidos
+Module20000Desc=Gestión de los días libres retribuidos de los empleados
 Module39000Name=Lotes de productos
 Module39000Desc=Gestión de lotes y fechas de caducidad y venta de los productos
 Module50000Name=PayBox
 Module50000Desc=Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paybox
 Module50100Name=TPV
 Module50100Desc=Terminal Punto de Venta para la venta en mostrador
-Module50200Name= Paypal
-Module50200Desc= Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paypal
+Module50200Name=Paypal
+Module50200Desc=Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paypal
 Module50400Name=Contabilidad (avanzada)
 Module50400Desc=Gestión contable (doble partida)
 Module54000Name=PrintIPP
@@ -611,10 +611,11 @@ Permission162=Crear/modificar contratos de servicio
 Permission163=Activar los servicios de un contrato
 Permission164=Desactivar los servicios de un contrato
 Permission165=Eliminar contratos
-Permission171=Leer los desplazamientos
-Permission172=Crear/modificar los desplazamientos
-Permission173=Eliminar desplazamientos
-Permission178=Exportar desplazamientos
+Permission171=Leer honorarios (propios y de sus subordinados)
+Permission172=Crear/modificar honorarios
+Permission173=Eliminar honorarios
+Permission174=Leer todos los honorarios
+Permission178=Exportar honorarios
 Permission180=Consultar proveedores
 Permission181=Consultar pedidos a proveedores
 Permission182=Crear/modificar pedidos a proveedores
@@ -1074,7 +1075,7 @@ ModuleCompanyCodeAquarium=Devuelve un código contable compuesto de<br>%s seguid
 ModuleCompanyCodePanicum=Devuelve un código contable vacío.
 ModuleCompanyCodeDigitaria=Devuelve un código contable compuesto siguiendo el código de tercero. El código está formado por carácter ' C ' en primera posición seguido de los 5 primeros caracteres del código tercero.
 UseNotifications=Usar notificaciones
-NotificationsDesc=La función de las notificaciones permite enviar automáticamente un correo electrónico para un determinado evento Dolibarr en las empresas configuradas para ello
+NotificationsDesc=La función de las notificaciones permite enviar automáticamente un e-mail para algunos eventos de Dolibarr. Los destinatarios de las notificaciones pueden definirse:<br>* por contactos de terceros (clientes o proveedores), un tercero a la vez.<br>* o configurando un destinatario global en la configuración del módulo.
 ModelModules=Modelos de documentos
 DocumentModelOdt=Generación desde los documentos OpenDocument (Archivo .ODT OpenOffice, KOffice, TextEdit,...)
 WatermarkOnDraft=Marca de agua en los documentos borrador
@@ -1146,6 +1147,7 @@ HideTreadedOrders=Ocultar del listado los pedidos tratados o cancelados
 ValidOrderAfterPropalClosed=Validar el pedido después del cierre del presupuesto, permite no pasar por el pedido provisional
 FreeLegalTextOnOrders=Texto libre en pedidos
 WatermarkOnDraftOrders=Marca de agua en pedidos borrador (en caso de estar vacío)
+ShippableOrderIconInList=Añadir un icono en el listado de pedidos que indica si el pedido es enviable
 ##### Clicktodial #####
 ClickToDialSetup=Configuración del módulo Click To Dial
 ClickToDialUrlDesc=URL de llamada haciendo click en el icono teléfono. <br>La URL completa de llamada será: URL?login=...&password=...&caller=...&called=telellamada
@@ -1384,7 +1386,8 @@ MailingEMailError=E-Mail de respuesta (Errors-to) para las respuestas acerca de
 ##### Notification #####
 NotificationSetup=Configuración del módulo notificaciones
 NotificationEMailFrom=E-Mail emisor (From) de los correos enviados a través de notificaciones
-ListOfAvailableNotifications=Listado de notificaciones disponibles (depende de los módulos activados)
+ListOfAvailableNotifications=Listado de eventos que se pueden configurar para notificar para cada tercero (entrar a la ficha del tercero para configurar) o configurando un e-mail fijo (El listado depende de los módulos activados)
+FixedEmailTarget=Destinatario fijo
 ##### Sendings #####
 SendingsSetup=Configuración del módulo Expediciones
 SendingsReceiptModel=Modelo de notas de entrega
@@ -1437,7 +1440,7 @@ DetailEnabled=Condición de mostrar o no
 DetailRight=Condición de visualización completa o restringida
 DetailLangs=Archivo .lang para la traducción del título
 DetailUser=Interno / Externo / Todos
-Target=Objetivo
+Target=Destinatario
 DetailTarget=Comportamiento del enlace (_blank para abrir una nueva ventana)
 DetailLevel=Nivel (-1:menú superior, 0:principal, >0 menú y submenú)
 ModifMenu=Modificación del menú
@@ -1535,6 +1538,7 @@ DeleteFiscalYear=Eliminar año fiscal
 ConfirmDeleteFiscalYear=¿Está seguro de querer eliminar este año fiscal?
 Opened=Abierto
 Closed=Cerrado
+AlwaysEditable=Puede editarse siempre
 
 Format=Formatear 
 TypePaymentDesc=0:Pago cliente,1:Pago proveedor,2:Tanto pago de cliente como de proveedor
diff --git a/htdocs/langs/es_ES/agenda.lang b/htdocs/langs/es_ES/agenda.lang
index 839bbbdceba44e32ab8831ccb59ffcec89f8c1d8..c357756f95ac823b73128b35afb5640aefdfb2ec 100644
--- a/htdocs/langs/es_ES/agenda.lang
+++ b/htdocs/langs/es_ES/agenda.lang
@@ -7,10 +7,10 @@ Agendas=Agendas
 Calendar=Calendario
 Calendars=Calendarios
 LocalAgenda=Calendario interno
-ActionsOwnedBy=Evento asignado a
+ActionsOwnedBy=Acontecimiento asignado a
 AffectedTo=Asignada a
 DoneBy=Realizado por
-Event=Evento
+Event=Acontecimiento
 Events=Eventos
 EventsNb=Número de eventos
 MyEvents=Mis eventos
@@ -23,12 +23,12 @@ MenuToDoActions=Eventos incompletos
 MenuDoneActions=Eventos terminados
 MenuToDoMyActions=Mis eventos incompletos
 MenuDoneMyActions=Mis eventos terminados
-ListOfEvents=Listado de eventos (calendario interno)
+ListOfEvents=lista de acontecimientos (calendario interno)
 ActionsAskedBy=Eventos registrados por
 ActionsToDoBy=Eventos asignados a
 ActionsDoneBy=Eventos realizados por
-ActionsForUser=Eventos del usuario
-ActionsForUsersGroup=Eventos de todos los usuarios del grupo
+ActionsForUser=Acontecimientos del usuario
+ActionsForUsersGroup=Acontecimientos de todos los usuarios del grupo
 AllMyActions= Todos mis eventos/tareas
 AllActions= Todos los eventos/tareas
 ViewList=Vista listado
@@ -72,7 +72,7 @@ AgendaUrlOptions1=Puede también añadir estos parámetros al filtro de salida:
 AgendaUrlOptions2=<b>login=%s</b> para restringir inserciones a acciones creadas , que afecten o realizadas por el usuario <b>%s</b>.
 AgendaUrlOptions3=<b>logina=%s</b> para restringir inserciones a acciones creadas por el usuario <b>%s</b>.
 AgendaUrlOptions4=<b>logint=%s</b> para restringir inserciones a acciones que afecten al usuario <b>%s</b>.
-AgendaUrlOptions5=<b>logind=%s</b> para restringir inserciones a acciones realizadas por el usuario <b>%s</b>.
+AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> para restringir inserciones a acciones asociadas al proyecto <b>PROJECT_ID</b>.
 AgendaShowBirthdayEvents=Mostrar cumpleaños de los contactos
 AgendaHideBirthdayEvents=Ocultar cumpleaños de los contactos
 Busy=Ocupado
@@ -89,5 +89,5 @@ ExtSiteUrlAgenda=Url de acceso al archivo .ical
 ExtSiteNoLabel=Sin descripción
 WorkingTimeRange=Rango temporal
 WorkingDaysRange=Rango diario
-AddEvent=Añadir evento
+AddEvent=Crear evento
 MyAvailability=Mi disponibilidad
diff --git a/htdocs/langs/es_ES/bills.lang b/htdocs/langs/es_ES/bills.lang
index f9d7f316b041261623068106e3c0ae47453606d4..e5f939a753f2b64ee6c2c6026daa622c46fa09de 100644
--- a/htdocs/langs/es_ES/bills.lang
+++ b/htdocs/langs/es_ES/bills.lang
@@ -28,8 +28,8 @@ InvoiceAvoir=Abono
 InvoiceAvoirAsk=Abono para corregir la factura
 InvoiceAvoirDesc=El <b>abono</b> es una factura negativa destinada a compensar un importe de factura que difiere del importe realmente pagado (por haber pagado de más o por devolución de productos, por ejemplo).
 invoiceAvoirWithLines=Crear abono con las líneas de la factura original
-invoiceAvoirWithPaymentRestAmount=Crear abono con el importe pendiente de la factura origen
-invoiceAvoirLineWithPaymentRestAmount=Abono del importe pendiente de la factura
+invoiceAvoirWithPaymentRestAmount=Crear abono con el resto a cobrar de la factura origen
+invoiceAvoirLineWithPaymentRestAmount=Abono del resto por cobrar
 ReplaceInvoice=Rectificar la factura %s
 ReplacementInvoice=Rectificación factura
 ReplacedByInvoice=Rectificada por la factura %s
@@ -156,9 +156,9 @@ ConfirmCancelBill=¿Está seguro de querer anular la factura <b>%s</b> ?
 ConfirmCancelBillQuestion=¿Por qué razón quiere abandonar la factura?
 ConfirmClassifyPaidPartially=¿Está seguro de querer clasificar la factura <b>%s</b> como pagada?
 ConfirmClassifyPaidPartiallyQuestion=Esta factura no ha sido totalmente pagada. ¿Por qué quiere clasificarla como pagada?
-ConfirmClassifyPaidPartiallyReasonAvoir=El resto a pagar <b>(%s %s)</b> se ha regularizado (ya que artículo se ha devuelto, olvidado entregar, descuento no definido...)  mediante un abono
-ConfirmClassifyPaidPartiallyReasonDiscountNoVat=El resto a pagar <b>(%s %s)</b> es un descuento acordado después de la factura. Acepto perder el IVA de este descuento
-ConfirmClassifyPaidPartiallyReasonDiscountVat=El resto a pagar<b>(%s %s)</b> es un descuento
+ConfirmClassifyPaidPartiallyReasonAvoir=El resto a pagar <b>(%s %s)</b> es un descuento otorgado por pronto pago. Regularizaré el IVA con un abono.
+ConfirmClassifyPaidPartiallyReasonDiscountNoVat=El resto a pagar <b>(%s %s)</b> es un descuento otorgado por pronto pago. Acepto perder el IVA en este descuento.
+ConfirmClassifyPaidPartiallyReasonDiscountVat=El resto a pagar <b>(%s %s)</b> es un descuento otorgado por pronto pago. Recuperaré el IVA sin usar un abono.
 ConfirmClassifyPaidPartiallyReasonBadCustomer=Cliente moroso
 ConfirmClassifyPaidPartiallyReasonProductReturned=Productos devueltos en parte
 ConfirmClassifyPaidPartiallyReasonOther=Por otra razón
@@ -191,9 +191,9 @@ AlreadyPaid=Ya pagado
 AlreadyPaidBack=Ya reembolsado
 AlreadyPaidNoCreditNotesNoDeposits=Ya pagado (excluidos los abonos y anticipos)
 Abandoned=Abandonada
-RemainderToPay=Queda por pagar
-RemainderToTake=Queda por cobrar
-RemainderToPayBack=Queda por reembolsar
+RemainderToPay=Resta por pagar
+RemainderToTake=Resta por cobrar
+RemainderToPayBack=Resta por reembolsar
 Rest=Pendiente
 AmountExpected=Importe reclamado
 ExcessReceived=Recibido en exceso
@@ -225,13 +225,13 @@ NonPercuRecuperable=No percibido recuperable
 SetConditions=Definir condiciones de pago
 SetMode=Definir modo de pago
 Billed=Facturado
-RepeatableInvoice=Factura recurrente
-RepeatableInvoices=Facturas recurrentes
-Repeatable=Recurrente
-Repeatables=Recurrentes
-ChangeIntoRepeatableInvoice=Convertir en recurrente
-CreateRepeatableInvoice=Crear factura recurrente
-CreateFromRepeatableInvoice=Crear desde factura recurrente
+RepeatableInvoice=Plantilla de factura
+RepeatableInvoices=Plantilla de facturas
+Repeatable=Plantilla
+Repeatables=Plantillas
+ChangeIntoRepeatableInvoice=Convertir en plantilla
+CreateRepeatableInvoice=Crear plantilla de factura
+CreateFromRepeatableInvoice=Crear desde plantilla de factura
 CustomersInvoicesAndInvoiceLines=Facturas a clientes y líneas de facturas
 CustomersInvoicesAndPayments=Facturas a clientes y pagos
 ExportDataset_invoice_1=Facturas a clientes y líneas de factura
diff --git a/htdocs/langs/es_ES/boxes.lang b/htdocs/langs/es_ES/boxes.lang
index 5038f1381139b5f9bbda4edd9aa02113aa134063..56353b2006e94bb62bdacfabe81ca0b021265b07 100644
--- a/htdocs/langs/es_ES/boxes.lang
+++ b/htdocs/langs/es_ES/boxes.lang
@@ -12,6 +12,7 @@ BoxLastProspects=Últimos clientes potenciales modificados
 BoxLastCustomers=Últimos clientes modificados
 BoxLastSuppliers=Últimos proveedores modificados
 BoxLastCustomerOrders=Últimos pedidos
+BoxLastValidatedCustomerOrders=Últimos pedidos de clientes validados
 BoxLastBooks=Últimos books
 BoxLastActions=Últimos eventos
 BoxLastContracts=Últimos contratos
@@ -27,26 +28,29 @@ BoxTitleNbOfCustomers=Número de clientes
 BoxTitleLastRssInfos=Las %s últimas infos de %s
 BoxTitleLastProducts=Los %s últimos productos/servicios registrados
 BoxTitleProductsAlertStock=Productos en alerta de stock
-BoxTitleLastCustomerOrders=Los %s últimos pedidos de clientes modificados
+BoxTitleLastCustomerOrders=Últimos %s pedidos de clientes
+BoxTitleLastModifiedCustomerOrders=Últimos %s pedidos de clientes modificados
 BoxTitleLastSuppliers=Los %s últimos proveedores registrados
 BoxTitleLastCustomers=Los %s últimos clientes registrados
 BoxTitleLastModifiedSuppliers=Los %s últimos proveedores modificados
 BoxTitleLastModifiedCustomers=Los %s últimos clientes modificados
-BoxTitleLastCustomersOrProspects=Los %s últimos clientes o clientes potenciales registrados
-BoxTitleLastPropals=Los %s últimos presupuestos registrados
+BoxTitleLastCustomersOrProspects=Últimos %s clientes o clientes potenciales
+BoxTitleLastPropals=Últimos %s presupuestos
+BoxTitleLastModifiedPropals=Últimos %s presupuestos modificados
 BoxTitleLastCustomerBills=Las %s últimas facturas a clientes modificadas
+BoxTitleLastModifiedCustomerBills=Últimas %s facturas a clientes modificadas
 BoxTitleLastSupplierBills=Las %s últimas facturas de proveedores modificadas
-BoxTitleLastProspects=Los %s últimos clientes potenciales registrados
+BoxTitleLastModifiedSupplierBills=Últimas %s facturas de proveedores modificadas
 BoxTitleLastModifiedProspects=Los %s últimos clientes potenciales modificados
 BoxTitleLastProductsInContract=Los %s últimos productos/servicios contratados
-BoxTitleLastModifiedMembers=Los %s últimos miembros modificados
+BoxTitleLastModifiedMembers=Últimos %s miembros 
 BoxTitleLastFicheInter=Las %s últimas intervenciones modificadas
-BoxTitleOldestUnpaidCustomerBills=Las %s facturas más antiguas a clientes pendientes de cobro
-BoxTitleOldestUnpaidSupplierBills=Las %s facturas más antiguas de proveedores pendientes de pago
+BoxTitleOldestUnpaidCustomerBills=%s facturas a clientes más antiguras pendientes de cobro
+BoxTitleOldestUnpaidSupplierBills=%s facturas de proveedores más antiguas pendientes de pago
 BoxTitleCurrentAccounts=Balances de cuentas abiertas
 BoxTitleSalesTurnover=Volumen de ventas realizado
-BoxTitleTotalUnpaidCustomerBills=Pendiente de clientes
-BoxTitleTotalUnpaidSuppliersBills=Pendiente a proveedores
+BoxTitleTotalUnpaidCustomerBills=Facturas a clientes pendientes de cobro
+BoxTitleTotalUnpaidSuppliersBills=Facturas de proveedores pendientes de pago
 BoxTitleLastModifiedContacts=Los %s últimos contactos/direcciones modificadas
 BoxMyLastBookmarks=Mis %s últimos marcadores
 BoxOldestExpiredServices=Servicios antiguos expirados
@@ -76,7 +80,8 @@ NoContractedProducts=Sin productos/servicios contratados
 NoRecordedContracts=Sin contratos registrados
 NoRecordedInterventions=Sin intervenciones guardadas
 BoxLatestSupplierOrders=Últimos pedidos a proveedores
-BoxTitleLatestSupplierOrders=Los %s últimos pedidos a proveedores
+BoxTitleLatestSupplierOrders=Últimos %s pedidos a proveedores
+BoxTitleLatestModifiedSupplierOrders=Últimos %s pedidos a proveedores modificados
 NoSupplierOrder=Sin pedidos a proveedores
 BoxCustomersInvoicesPerMonth=Facturas a clientes por mes
 BoxSuppliersInvoicesPerMonth=Facturas de proveedores por mes
diff --git a/htdocs/langs/es_ES/companies.lang b/htdocs/langs/es_ES/companies.lang
index 9fa3e27be1869cee8768bfa7adc44e29c9add45b..f86ea312ac31cf4607284d83f2e9ec4f79d9afcd 100644
--- a/htdocs/langs/es_ES/companies.lang
+++ b/htdocs/langs/es_ES/companies.lang
@@ -379,7 +379,7 @@ DeliveryAddressLabel=Etiqueta de envío
 DeleteDeliveryAddress=Eliminar una dirección de envío
 ConfirmDeleteDeliveryAddress=¿Está seguro de querer eliminar esta dirección de envío?
 NewDeliveryAddress=Nueva dirección de envío
-AddDeliveryAddress=Añadir la dirección
+AddDeliveryAddress=Crear dirección
 AddAddress=Crear dirección
 NoOtherDeliveryAddress=No hay direcciones alternativas definidas
 SupplierCategory=Categoría de proveedor
diff --git a/htdocs/langs/es_ES/deliveries.lang b/htdocs/langs/es_ES/deliveries.lang
index 4cfe6c9006562e875371212dc395c5aca0c108e0..6dbcd26544c8793d96cc6d187f6c074b98791e89 100644
--- a/htdocs/langs/es_ES/deliveries.lang
+++ b/htdocs/langs/es_ES/deliveries.lang
@@ -24,3 +24,5 @@ Deliverer=Destinatario :
 Sender=Origen
 Recipient=Destinatario
 ErrorStockIsNotEnough=No hay suficiente stock
+Shippable=Enviable
+NonShippable=No enviable
diff --git a/htdocs/langs/es_ES/donations.lang b/htdocs/langs/es_ES/donations.lang
index 31c89f7720939a236a9984c4d3ca8126d6c7d07a..064e6587789ea8289fbd9cd5656cadbf8400eb41 100644
--- a/htdocs/langs/es_ES/donations.lang
+++ b/htdocs/langs/es_ES/donations.lang
@@ -4,7 +4,7 @@ Donations=Donaciones
 DonationRef=Ref. donación
 Donor=Donante
 Donors=Donantes
-AddDonation=Añadir donación
+AddDonation=Crear una donación
 NewDonation=Nueva donación
 ShowDonation=Mostrar donación
 DonationPromise=Promesa de donación
diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang
index bccee64bcfc8a6da2462bbc76f31ba3ae2c5d6c2..7ac24f97c463df97f96ad20f627638da3da426a7 100644
--- a/htdocs/langs/es_ES/errors.lang
+++ b/htdocs/langs/es_ES/errors.lang
@@ -37,7 +37,7 @@ ErrorSupplierCodeRequired=Código proveedor obligatorio
 ErrorSupplierCodeAlreadyUsed=Código de proveedor ya utilizado
 ErrorBadParameters=Parámetros incorrectos
 ErrorBadValueForParameter=Valor '%s' incorrecto para el parámetro '%s'
-ErrorBadImageFormat=La imagen no tiene un formato reconocido
+ErrorBadImageFormat=El archivo de imagen es de un formato no soportado (Su PHP no soporta las funciones de conversión de este formato de imagen)
 ErrorBadDateFormat=El valor '%s' tiene un formato de fecha no reconocido
 ErrorWrongDate=¡La fecha no es correcta!
 ErrorFailedToWriteInDir=Imposible escribir en el directorio %s
@@ -114,6 +114,7 @@ ErrorLoginDoesNotExists=La cuenta de usuario de <b>%s</b> no se ha encontrado.
 ErrorLoginHasNoEmail=Este usuario no tiene e-mail. Imposible continuar.
 ErrorBadValueForCode=Valor incorrecto para el código. Vuelva a intentar con un nuevo valor...
 ErrorBothFieldCantBeNegative=Los campos %s y %s no pueden ser negativos
+ErrorQtyForCustomerInvoiceCantBeNegative=Las cantidades en las líneas de facturas a clientes no pueden ser negativas
 ErrorWebServerUserHasNotPermission=La cuenta de ejecución del servidor web <b>%s</b> no dispone de los permisos para esto
 ErrorNoActivatedBarcode=No hay activado ningún tipo de código de barras
 ErrUnzipFails=No se ha podido descomprimir el archivo %s con ZipArchive
diff --git a/htdocs/langs/es_ES/holiday.lang b/htdocs/langs/es_ES/holiday.lang
index 60e8fc0327f99640686ddb67b96e96547383cecf..99c55188b5a5836c0fa08c113104521c621e48ef 100644
--- a/htdocs/langs/es_ES/holiday.lang
+++ b/htdocs/langs/es_ES/holiday.lang
@@ -1,13 +1,13 @@
 # Dolibarr language file - Source file is en_US - holiday
 HRM=RRHH
-Holidays=Vacaciones
-CPTitreMenu=Vacaciones
+Holidays=Días libres
+CPTitreMenu=Días libres
 MenuReportMonth=Estado mensual
-MenuAddCP=Realizar una petición de vacaciones
-NotActiveModCP=Debe activar el módulo Vacaciones para ver esta página
-NotConfigModCP=Debe configurar el módulo Vacaciones para ver esta página. Para configurarlo, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;">haga clic aquí</a>.
-NoCPforUser=No tiene peticiones de vacaciones.
-AddCP=Realizar una petición de vacaciones
+MenuAddCP=Realizar una petición de días libres
+NotActiveModCP=Debe activar el módulo Días libres retribuidos para ver esta página
+NotConfigModCP=Debe configurar el módulo Días libres retribuidos para ver esta página. Para configurarlo, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;">haga clic aquí</a>.
+NoCPforUser=No tiene peticiones de días libres.
+AddCP=Realizar una petición de días libres
 Employe=Empleado
 DateDebCP=Fecha inicio
 DateFinCP=Fecha fin
@@ -18,24 +18,24 @@ ApprovedCP=Aprobada
 CancelCP=Anulada
 RefuseCP=Rechazada
 ValidatorCP=Validador
-ListeCP=Listado de vacaciones
+ListeCP=Listado de días libres
 ReviewedByCP=Será revisada por
 DescCP=Descripción
-SendRequestCP=Enviar la petición de vacaciones
-DelayToRequestCP=Las peticiones de vacaciones deben realizarse al menos <b>%s días</b> antes.
-MenuConfCP=Definir las vacaciones
-UpdateAllCP=Actualizar las vacaciones
-SoldeCPUser=Su saldo de vacaciones es de <b>%s días</b>.
+SendRequestCP=Enviar la petición de días libres
+DelayToRequestCP=Las peticiones de días libres deben realizarse al menos <b>%s días</b> antes.
+MenuConfCP=Definir los días libres
+UpdateAllCP=Actualizar los días libres
+SoldeCPUser=Su saldo de días libres es de <b>%s días</b>.
 ErrorEndDateCP=Debe indicar una fecha de fin superior a la fecha de inicio.
 ErrorSQLCreateCP=Se ha producido un error de SQL durante la creación :
-ErrorIDFicheCP=Se produjo un error, esta solicitud de vacaciones no existe.
+ErrorIDFicheCP=Se produjo un error, esta solicitud de días libres no existe.
 ReturnCP=Volver a la página anterior
-ErrorUserViewCP=No está autorizado a leer esta petición de vacaciones.
-InfosCP=Información de la petición de vacaciones
+ErrorUserViewCP=No está autorizado a leer esta petición de días libres.
+InfosCP=Información de la petición de días libres
 InfosWorkflowCP=Información del workflow
 RequestByCP=Pedido por
-TitreRequestCP=Ficha vacaciones
-NbUseDaysCP=Número de días de vacaciones consumidos
+TitreRequestCP=Ficha días libres
+NbUseDaysCP=Número de días libres consumidos
 EditCP=Modificar
 DeleteCP=Eliminar
 ActionValidCP=Validar
@@ -43,26 +43,26 @@ ActionRefuseCP=Rechazar
 ActionCancelCP=Anular
 StatutCP=Estado
 SendToValidationCP=Enviar validación
-TitleDeleteCP=Eliminar la petición de vacaciones
-ConfirmDeleteCP=¿Está seguro de querer eliminar esta petición de vacaciones?
-ErrorCantDeleteCP=Error, no tiene permisos para eliminar esta petición de vacaciones.
-CantCreateCP=No tiene permisos para realizar peticiones de vacaciones.
-InvalidValidatorCP=Debe indicar un validador para su petición de vacaciones.
+TitleDeleteCP=Eliminar la petición de días libres
+ConfirmDeleteCP=¿Está seguro de querer eliminar esta petición de días libres?
+ErrorCantDeleteCP=Error, no tiene permisos para eliminar esta petición de días libres.
+CantCreateCP=No tiene permisos para realizar peticiones de días libres.
+InvalidValidatorCP=Debe indicar un validador para su petición de días libres.
 UpdateButtonCP=Actualizar
-CantUpdate=No puede actualizar esta petición de vacaciones.
+CantUpdate=No puede actualizar esta petición de días libres.
 NoDateDebut=Debe indicar una fecha de inicio.
 NoDateFin=Debe indicar una fecha de fin.
-ErrorDureeCP=Su petición de vacaciones no contiene ningún día hábil.
-TitleValidCP=Validar la petición de vacaciones
-ConfirmValidCP=¿Está seguro de querer validar esta petición de vacaciones?
+ErrorDureeCP=Su petición de días libres no contiene ningún día hábil.
+TitleValidCP=Aprobar la petición de días libres
+ConfirmValidCP=¿Está seguro de querer validar esta petición de días libres?
 DateValidCP=Fecha de validación
-TitleToValidCP=Enviar la petición de vacaciones
-ConfirmToValidCP=¿Está seguro de querer enviar la petición de vacaciones?
-TitleRefuseCP=Rechazar la petición de vacaciones
-ConfirmRefuseCP=¿Está seguro de querer rechazar la petición de vacaciones?
+TitleToValidCP=Enviar la petición de días libres
+ConfirmToValidCP=¿Está seguro de querer enviar la petición de días libres?
+TitleRefuseCP=Rechazar la petición de días libres
+ConfirmRefuseCP=¿Está seguro de querer rechazar la petición de días libres?
 NoMotifRefuseCP=Debe seleccionar un motivo para rechazar esta petición.
-TitleCancelCP=Anular la petición de vacaciones
-ConfirmCancelCP=¿Está seguro de querer anular la petición de vacaciones?
+TitleCancelCP=Cancelar la petición de días libres
+ConfirmCancelCP=¿Está seguro de querer anular la petición de días libres?
 DetailRefusCP=Motivo del rechazo
 DateRefusCP=Fecha del rechazo
 DateCancelCP=Fecha de la anulación
@@ -72,42 +72,42 @@ MotifCP=Motivo
 UserCP=Usuario
 ErrorAddEventToUserCP=Se ha producido un error en la asignación del permiso excepcional.
 AddEventToUserOkCP=Se ha añadido el permiso excepcional.
-MenuLogCP=Ver los logs de vacaciones
-LogCP=Logs de actualizaciones de vacaciones
+MenuLogCP=Ver el historial de días libres
+LogCP=Historial de actualizaciones de días libres
 ActionByCP=Realizado por
 UserUpdateCP=Para el usuario
 PrevSoldeCP=Saldo anterior
 NewSoldeCP=Nuevo saldo
-alreadyCPexist=Ya se ha efectuado una petición de vacaciones para este periodo.
+alreadyCPexist=Ya se ha efectuado una petición de días libres para este periodo.
 UserName=Nombre Apellidos
 Employee=Empleado
 FirstDayOfHoliday=Primer día libre
 LastDayOfHoliday=Último día libre
 HolidaysMonthlyUpdate=Actualización mensual
 ManualUpdate=Actualización manual
-HolidaysCancelation=Anulación vacaciones
+HolidaysCancelation=Anulación días libres
 
 ## Configuration du Module ##
-ConfCP=Configuración del módulo Vacaciones
+ConfCP=Configuración del módulo de días libres retribuidos
 DescOptionCP=Descripción de la opción
 ValueOptionCP=Valor
-GroupToValidateCP=Grupo con posibilidad de aprobar las vacaciones
+GroupToValidateCP=Grupo con posibilidad de aprobar los días libres
 ConfirmConfigCP=Validar la configuración
-LastUpdateCP=Última actualización automática de vacaciones
+LastUpdateCP=Última actualización automática de días libres
 UpdateConfCPOK=Actualización efectuada correctamente.
 ErrorUpdateConfCP=Se ha producido un error durante la actualización, vuélvalo a intentar.
-AddCPforUsers=Añada los saldos de vacaciones de los usuarios <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">haciendo clic aquí</a>.
-DelayForSubmitCP=Antelación mínima para solicitar vacaciones
+AddCPforUsers=Añada los saldos de días libres de los usuarios <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">haciendo clic aquí</a>.
+DelayForSubmitCP=Fecha límite para realizar peticiones de días libres
 AlertapprobatortorDelayCP=Advertir al validador si la petición no corresponde a la fecha límite
 AlertValidatorDelayCP=Advertir al usuario validador si la petición no respeta el límite previsto
-AlertValidorSoldeCP=Advertir al usuario validador si el usuario pide vacaciones superiores a su saldo
-nbUserCP=Número de usuarios tomados en cuenta en el módulo vacaciones
-nbHolidayDeductedCP=Número de días retribuídos a deducir por día de vacaciones
-nbHolidayEveryMonthCP=Número de días de vacaciones añadidos por mes
-Module27130Name= Gestion de las vacaciones
+AlertValidorSoldeCP=Advertir al usuario validador si el usuario pide días libres superiores a su saldo
+nbUserCP=Número de usuarios tomados en cuenta en el módulo días libres retribuidos
+nbHolidayDeductedCP=Número de días retribuídos a deducir por día líbre
+nbHolidayEveryMonthCP=Número de días libres añadidos por mes
+Module27130Name= Gestión de los días libres
 Module27130Desc= Gestión de días libres
-TitleOptionMainCP=Ajustes principales de vacaciones
-TitleOptionEventCP=Ajustes de vacaciones enlazados a eventos
+TitleOptionMainCP=Ajustes principales de días libres
+TitleOptionEventCP=Ajustes de días libres enlazados a eventos
 ValidEventCP=Validar
 UpdateEventCP=Actualizar los eventos
 CreateEventCP=Crear
@@ -125,25 +125,25 @@ TitleUpdateEventCP=Modificar o eliminar un permiso excepcional
 DeleteEventOptionCP=Eliminar
 UpdateEventOptionCP=Actualizar
 ErrorMailNotSend=Se ha producido un error en el envío del e-mail :
-NoCPforMonth=Sin vacaciones este mes.
+NoCPforMonth=Sin días libres este mes.
 nbJours=Número de días
-TitleAdminCP=Configuración de las vacaciones
+TitleAdminCP=Configuración de los días libres retribuidos
 #Messages
 Hello=Hola
-HolidaysToValidate=Días retribuidos a validar
-HolidaysToValidateBody=A continuación encontrará una solicitud de días retribuidos para validar
-HolidaysToValidateDelay=Esta solicitud de días retribuidos tendrá lugar en un plazo de menos de %s días.
-HolidaysToValidateAlertSolde=El usuario que ha realizado la solicitud de días retribuidos no dispone de suficientes días disponibles.
-HolidaysValidated=Días retribuidos validados
-HolidaysValidatedBody=Su solicitud de días retribuidos desde el %s al %s ha sido validada.
-HolidaysRefused=Días retribuidos denegados
-HolidaysRefusedBody=Su solicitud de días retribuidos desde el %s al %s ha sido denegada por el siguiente motivo :
-HolidaysCanceled=Días retribuidos cancelados
-HolidaysCanceledBody=Su solicitud de días retribuidos desde el %s al %s ha sido cancelada.
-Permission20000=Leer sus propios días retribuidos
-Permission20001=Crear/modificar sus días retribuidos
-Permission20002=Crear/modificar días retribuidos para todos
-Permission20003=Eliminar peticiones de días retribuidos
-Permission20004=Configurar días retribuidos de usuarios
-Permission20005=Consultar el historial de modificaciones de permisos retribuídos
-Permission20006=Leer informe mensual de días retribuidos
+HolidaysToValidate=Días libres retribuidos a validar
+HolidaysToValidateBody=A continuación encontrará una solicitud de días libres retribuidos para validar
+HolidaysToValidateDelay=Esta solicitud de días libres retribuidos tendrá lugar en un plazo de menos de %s días.
+HolidaysToValidateAlertSolde=El usuario que ha realizado la solicitud de días libres retribuidos no dispone de suficientes días disponibles.
+HolidaysValidated=Días libres retribuidos validados
+HolidaysValidatedBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido validada.
+HolidaysRefused=Días libres retribuidos denegados
+HolidaysRefusedBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido denegada por el siguiente motivo :
+HolidaysCanceled=Días libres retribuidos cancelados
+HolidaysCanceledBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido cancelada.
+Permission20000=Leer sus propios días libres retribuidos
+Permission20001=Crear/modificar sus días libres retribuidos
+Permission20002=Crear/modificar días libres retribuidos para todos
+Permission20003=Eliminar peticiones de días libres retribuidos
+Permission20004=Configurar días libres retribuidos de usuarios
+Permission20005=Consultar el historial de modificaciones de días libres retribuídos
+Permission20006=Leer informe mensual de días libres retribuidos
diff --git a/htdocs/langs/es_ES/interventions.lang b/htdocs/langs/es_ES/interventions.lang
index 4f838816de27a902c09801bdbae4e306373f03e1..f973ac56e78e668c65b3287d2c69706caf04c344 100644
--- a/htdocs/langs/es_ES/interventions.lang
+++ b/htdocs/langs/es_ES/interventions.lang
@@ -30,6 +30,7 @@ StatusInterInvoiced=Facturado
 RelatedInterventions=Intervenciones adjuntas
 ShowIntervention=Mostrar intervención
 SendInterventionRef=Envío de la intervención %s
+SendInterventionByMail=Enviar intervención por e-mail
 ##### Types de contacts #####
 TypeContact_fichinter_internal_INTERREPFOLL=Responsable seguimiento de la intervención
 TypeContact_fichinter_internal_INTERVENING=Interventor
diff --git a/htdocs/langs/es_ES/mails.lang b/htdocs/langs/es_ES/mails.lang
index 9c2dd9f8d4e7225029466abe177eb0824531c4e7..531f4ce42d5457d941f7062d731abd00ec88d953 100644
--- a/htdocs/langs/es_ES/mails.lang
+++ b/htdocs/langs/es_ES/mails.lang
@@ -133,6 +133,6 @@ Notifications=Notificaciones
 NoNotificationsWillBeSent=Ninguna notificación por e-mail está prevista para este evento y empresa
 ANotificationsWillBeSent=1 notificación va a ser enviada por e-mail
 SomeNotificationsWillBeSent=%s notificaciones van a ser enviadas por e-mail
-AddNewNotification=Activar una nueva solicitud de notificación
-ListOfActiveNotifications=Lista de las solicitudes de notificaciones activas
-ListOfNotificationsDone=Lista de notificaciones de e-mails enviadas
+AddNewNotification=Activar un nuevo destinatario de notificaciones
+ListOfActiveNotifications=Listado de todos los destinatarios de notificaciones
+ListOfNotificationsDone=Listado de notificaciones enviadas
diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang
index a9f20e07d72861e5cbeb30a17caff7abfbed09d0..862ed1a9495640f9432c7e119fd092ee4b3ecd91 100644
--- a/htdocs/langs/es_ES/main.lang
+++ b/htdocs/langs/es_ES/main.lang
@@ -58,12 +58,12 @@ ErrorCantLoadUserFromDolibarrDatabase=Imposible encontrar el usuario <b>%s</b> e
 ErrorNoVATRateDefinedForSellerCountry=Error, ningún tipo de IVA definido para el país '%s'.
 ErrorNoSocialContributionForSellerCountry=Error, ningún tipo de carga social definida para el país '%s'.
 ErrorFailedToSaveFile=Error, el registro del archivo falló.
-ErrorOnlyPngJpgSupported=Error, solamente se soportan los formatos de imagen jpg y png.
-ErrorImageFormatNotSupported=Su PHP no soporta las funciones de conversión de este formato de imagen.
 SetDate=Fijar fecha
 SelectDate=Seleccione una fecha
 SeeAlso=Ver también %s
 BackgroundColorByDefault=Color de fondo
+FileNotUploaded=No se ha subido el archivo
+FileUploaded=El archivo se ha subido correctamente
 FileWasNotUploaded=Un archivo ha sido seleccionado para adjuntarlo, pero aún no se ha subido. Haga clic en "Adjuntar este archivo" para ello.
 NbOfEntries=Nº de entradas
 GoToWikiHelpPage=Consultar la ayuda (puede requerir acceso a Internet)
@@ -341,6 +341,7 @@ FullList=Listado completo
 Statistics=Estadísticas
 OtherStatistics=Otras estadísticas
 Status=Estado
+Favorite=Favorito
 ShortInfo=Info.
 Ref=Ref.
 RefSupplier=Ref. proveedor
diff --git a/htdocs/langs/es_ES/margins.lang b/htdocs/langs/es_ES/margins.lang
index 23b8e9acd904d69297a325135896a64c325bf94c..f1c356ab87190bc01a9438145f5291ca20030255 100644
--- a/htdocs/langs/es_ES/margins.lang
+++ b/htdocs/langs/es_ES/margins.lang
@@ -38,4 +38,6 @@ BuyingCost=Costos
 UnitCharges=Carga unitaria
 Charges=Cargas
 AgentContactType=Tipo de contacto comisionado
-AgentContactTypeDetails=Indica el tipo de contacto enlazado a las facturas que serán asociados a los agentes comerciales
+AgentContactTypeDetails=Indique qué tipo de contacto (enlazado a las facturas) será el utilizado para el informe de márgenes de agentes comerciales
+rateMustBeNumeric=El margen  debe ser un valor numérico
+markRateShouldBeLesserThan100=El margen tiene que ser menor que 100
diff --git a/htdocs/langs/es_ES/members.lang b/htdocs/langs/es_ES/members.lang
index ebccec6be148158c5e6b5b92d682c800502be57a..dd1989dbb48bee73a63ec85636d6fa3fd3f086b7 100644
--- a/htdocs/langs/es_ES/members.lang
+++ b/htdocs/langs/es_ES/members.lang
@@ -85,7 +85,7 @@ SubscriptionLateShort=En retraso
 SubscriptionNotReceivedShort=No recibida
 ListOfSubscriptions=Listado de afiliaciones
 SendCardByMail=Enviar ficha por e-mail
-AddMember=Añadir miembro
+AddMember=Crear miembro
 NoTypeDefinedGoToSetup=Ningún tipo de miembro definido. Vaya a Configuración -> Tipos de miembros
 NewMemberType=Nuevo tipo de miembro
 WelcomeEMail=E-mail
@@ -125,7 +125,7 @@ Date=Fecha
 DateAndTime=Fecha y hora
 PublicMemberCard=Ficha pública miembro
 MemberNotOrNoMoreExpectedToSubscribe=No sometida a cotización
-AddSubscription=Añadir afiliación
+AddSubscription=Crear afiliación
 ShowSubscription=Mostrar afiliación
 MemberModifiedInDolibarr=Miembro modificado en Dolibarr
 SendAnEMailToMember=Enviar e-mail de información al miembro (E-mail: <b>%s</b>)
diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang
index 107c47e0cf8cf5a2fdf482bf8790a0dad3caadde..9de70d01f95edaaeeca195c4c2c216eeda637082 100644
--- a/htdocs/langs/es_ES/other.lang
+++ b/htdocs/langs/es_ES/other.lang
@@ -1,7 +1,6 @@
 # Dolibarr language file - Source file is en_US - other
 SecurityCode=Código seguridad
 Calendar=Calendario
-AddTrip=Crear honorario
 Tools=Utilidades
 ToolsDesc=Esta área está dedicada al reagrupamiento de diversas utilidades no disponibles en las otras entradas de menú.<br><br>La lista de estas utilidades es accesible mediante el menú de al lado.
 Birthday=Aniversario
@@ -48,6 +47,7 @@ Notify_PROJECT_CREATE=Creación de proyecto
 Notify_TASK_CREATE=Tarea creada
 Notify_TASK_MODIFY=Tarea modificada
 Notify_TASK_DELETE=Tarea eliminada
+SeeModuleSetup=Consulte la configuración del módulo
 NbOfAttachedFiles=Número archivos/documentos adjuntos
 TotalSizeOfAttachedFiles=Tamaño total de los archivos/documentos adjuntos
 MaxSize=Tamaño máximo
diff --git a/htdocs/langs/es_ES/products.lang b/htdocs/langs/es_ES/products.lang
index c07cb7c7485ca543b7fd0228fd5e770e6a8b0010..1a4726afcc20365219df6a21effa3f8ac244fb82 100644
--- a/htdocs/langs/es_ES/products.lang
+++ b/htdocs/langs/es_ES/products.lang
@@ -117,12 +117,12 @@ ServiceLimitedDuration=Si el servicio es de duración limitada :
 MultiPricesAbility=Varios niveles de precio por producto/servicio
 MultiPricesNumPrices=Nº de precios
 MultiPriceLevelsName=Categoría de precios
-AssociatedProductsAbility=Activar productos compuestos
-AssociatedProducts=Productos compuestos
+AssociatedProductsAbility=Activar la funcionalidad de productos compuestos
+AssociatedProducts=Producto compuesto
 AssociatedProductsNumber=Nº de productos que componen este producto
 ParentProductsNumber=Nº de productos que este producto compone
-IfZeroItIsNotAVirtualProduct=Si 0, este producto no es un producto virtual
-IfZeroItIsNotUsedByVirtualProduct=Si 0, este producto no está siendo utilizado por ningún producto virtual
+IfZeroItIsNotAVirtualProduct=Si 0, este producto no es un producto compuesto
+IfZeroItIsNotUsedByVirtualProduct=Si 0, este producto no puede ser usado por ningún producto compuesto
 EditAssociate=Componer
 Translation=Traducción
 KeywordFilter=Filtro por clave
@@ -179,7 +179,7 @@ CloneProduct=Clonar producto/servicio
 ConfirmCloneProduct=¿Está seguro de querer clonar el producto o servicio <b>%s</b>?
 CloneContentProduct=Clonar solamente la información general del producto/servicio
 ClonePricesProduct=Clonar la información general y los precios
-CloneCompositionProduct=Clonar producto/servicio virtual
+CloneCompositionProduct=Clonar productos/servicios compuestos
 ProductIsUsed=Este producto es utilizado
 NewRefForClone=Ref. del nuevo producto/servicio
 CustomerPrices=Precios clientes
diff --git a/htdocs/langs/es_ES/projects.lang b/htdocs/langs/es_ES/projects.lang
index 6a1cf66ddd0be8d5db0baee06aefe183ff1af14e..da5a65ceb968ad98816bb3e8a6bf7360c55a72a8 100644
--- a/htdocs/langs/es_ES/projects.lang
+++ b/htdocs/langs/es_ES/projects.lang
@@ -45,7 +45,7 @@ TaskDateStart=Fecha inicio
 TaskDateEnd=Fecha finalización
 TaskDescription=Descripción tarea
 NewTask=Nueva tarea
-AddTask=Añadir tarea
+AddTask=Crear tarea
 AddDuration=Indicar duración
 Activity=Actividad
 Activities=Tareas/actividades
diff --git a/htdocs/langs/es_ES/propal.lang b/htdocs/langs/es_ES/propal.lang
index b90258f504997175a0a90e4ac9dff75c499f0fd5..2dc1897235906be2aab54d19d1ceabd518c730e1 100644
--- a/htdocs/langs/es_ES/propal.lang
+++ b/htdocs/langs/es_ES/propal.lang
@@ -55,8 +55,6 @@ NoOpenedPropals=Sin presupuestos abiertos
 NoOtherOpenedPropals=Ningún otro presupuesto abierto
 RefProposal=Ref. presupuesto
 SendPropalByMail=Enviar presupuesto por e-mail
-FileNotUploaded=No se ha subido el archivo
-FileUploaded=El archivo se ha subido correctamente
 AssociatedDocuments=Documentos asociados al presupuesto:
 ErrorCantOpenDir=Imposible abrir el directorio
 DatePropal=Fecha presupuesto
@@ -83,7 +81,7 @@ ProposalsAndProposalsLines=Presupuestos a clientes y líneas de presupuestos
 ProposalLine=Línea de presupuesto
 AvailabilityPeriod=Tiempo de entrega
 SetAvailability=Definir el tiempo de entrega
-AfterOrder=despues del pedido
+AfterOrder=desde la firma
 ##### Availability #####
 AvailabilityTypeAV_NOW=Inmediata
 AvailabilityTypeAV_1W=1 semana
diff --git a/htdocs/langs/es_ES/suppliers.lang b/htdocs/langs/es_ES/suppliers.lang
index 1998f61ac0cbbbfae982ef1e88a829347993b7b6..06079f228741c62188f13d4ef75c2b583f06239c 100644
--- a/htdocs/langs/es_ES/suppliers.lang
+++ b/htdocs/langs/es_ES/suppliers.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - suppliers
 Suppliers=Proveedores
 Supplier=Proveedor
-AddSupplier=Añadir proveedor
+AddSupplier=Crear un proveedor
 SupplierRemoved=Proveedor eliminado
 SuppliersInvoice=Factura proveedor
 NewSupplier=Nuevo proveedor
diff --git a/htdocs/langs/es_ES/users.lang b/htdocs/langs/es_ES/users.lang
index 65b6d8ed0a07cff626b469ddd0efdaffc8dd4065..e27f8b111e5d4fc79f4d1506b551f7eb7f8f3ed1 100644
--- a/htdocs/langs/es_ES/users.lang
+++ b/htdocs/langs/es_ES/users.lang
@@ -120,3 +120,4 @@ UseTypeFieldToChange=Modificar el campo Tipo para cambiar
 OpenIDURL=Dirección OpenID
 LoginUsingOpenID=Usar OpenID para iniciar sesión
 WeeklyHours=Horas semanales
+ColorUser=Color para el usuario
diff --git a/htdocs/langs/es_ES/withdrawals.lang b/htdocs/langs/es_ES/withdrawals.lang
index 6e12cbccf4771a2452039a73dc593d2ea699f50c..5c241d7655335a55796bdc6f865d9be8da910f22 100644
--- a/htdocs/langs/es_ES/withdrawals.lang
+++ b/htdocs/langs/es_ES/withdrawals.lang
@@ -14,8 +14,8 @@ WithdrawalReceiptShort=Orden
 LastWithdrawalReceipts=Las %s últimas órdenes de domiciliación
 WithdrawedBills=Facturas domiciliadas
 WithdrawalsLines=Lineas de domiciliación
-RequestStandingOrderToTreat=Pedidos de domiciliaciones a tratar
-RequestStandingOrderTreated=Pedidos de domiciliaciones procesados
+RequestStandingOrderToTreat=Peticiones de domiciliaciones a procesar
+RequestStandingOrderTreated=Peticiones de domiciliaciones procesadas
 CustomersStandingOrders=Domiciliaciones de clientes
 CustomerStandingOrder=Domiciliación cliente
 NbOfInvoiceToWithdraw=Nº de facturas pendientes de domiciliación
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 28edf08867b26e9b87db49af02dbdc4c613c33f7..c3bf53a2f1699a6b09bd2b25bba6b84a4f8bfe37 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -484,7 +484,7 @@ Module500Desc=Gestion des dépenses spéciales comme les taxes, charges sociales
 Module510Name=Salaires
 Module510Desc=Gestion des paiements des salaires des employés
 Module600Name=Notifications
-Module600Desc=Envoi de notifications (par email) aux contacts de tiers sur certains événements métiers
+Module600Desc=Envoi de notifications Email sur certains événements métiers Dolibarr, aux contacts de tiers (configuration réalisé sur chaque tiers)
 Module700Name=Dons
 Module700Desc=Gestion des dons
 Module1200Name=Mantis
@@ -514,7 +514,7 @@ Module5000Name=Multi-société
 Module5000Desc=Permet de gérer plusieurs sociétés
 Module6000Name=Workflow
 Module6000Desc=Gérer le Workflow
-Module20000Name=Congés
+Module20000Name=Gestion de la demande de congès
 Module20000Desc=Déclaration et suivi des congès des employés
 Module39000Name=Lot
 Module39000Desc=Gestion de numéro de lot ou date de péremption pour les produits
@@ -522,8 +522,8 @@ Module50000Name=PayBox
 Module50000Desc=Module permettant d'offrir en ligne une page de paiement par carte de crédit avec PayBox
 Module50100Name=Point de vente
 Module50100Desc=Caisse enregistreuse de point de vente
-Module50200Name= Paypal
-Module50200Desc= Module permettant d'offrir en ligne une page de paiement par carte de crédit avec Paypal
+Module50200Name=Paypal
+Module50200Desc=Module permettant d'offrir en ligne une page de paiement par carte de crédit avec Paypal
 Module50400Name=Comptabilité (avancée)
 Module50400Desc=Gestion de la comptabilité (doubles parties)
 Module54000Name=PrintIPP
@@ -611,10 +611,11 @@ Permission162=Créer/modifier les contrats de services
 Permission163=Activer les services d'un contrat
 Permission164=Désactiver les services d'un contrat
 Permission165=Supprimer les contrats
-Permission171=Consulter les déplacements
-Permission172=Créer/modifier les déplacements
-Permission173=Supprimer les déplacements
-Permission178=Exporter les déplacements
+Permission171=Lire les notes de frais (Les vôtres et les utilisateurs autorisés)
+Permission172=Créer/modifier les notes de frais / déplacements
+Permission173=Supprimer les notes de frais / déplacements
+Permission174=Lire toutes les notes de frais
+Permission178=Exporter les notes de frais / déplacements
 Permission180=Consulter les fournisseurs
 Permission181=Consulter les commandes fournisseurs
 Permission182=Créer/modifier les commandes fournisseurs
@@ -1074,7 +1075,7 @@ ModuleCompanyCodeAquarium=Renvoie un code comptable composé de :<br>%s suivi du
 ModuleCompanyCodePanicum=Renvoie un code comptable vide.
 ModuleCompanyCodeDigitaria=Renvoie un code comptable composé suivant le code tiers. Le code est composé du caractère 'C' en première position suivi des 5 premiers caractères du code tiers.
 UseNotifications=Utiliser les notifications
-NotificationsDesc=La fonction des notifications par emails permet d'envoyer automatiquement un email, pour certains événements Dolibarr, aux tiers (sociétés clients, prospects ou fournisseurs) configurés pour. Le choix des notifications et contacts destinataires se fait tiers par tiers.
+NotificationsDesc=La fonction des notifications par emails permet d'envoyer automatiquement un email, lors de certains événements Dolibarr. La cible des notifications peut être défini:<br>* par contacts de tiers (clients, prospects ou fournisseurs), tiers par tiers.<br>* ou en positionnant un email en paramètre global sur la page de configuration du module notification.
 ModelModules=Modèle de documents
 DocumentModelOdt=Génération depuis des modèles OpenDocument (Fichier .ODT ou .ODS OpenOffice, KOffice, TextEdit…)
 WatermarkOnDraft=Filigrane sur les documents brouillons
@@ -1146,6 +1147,7 @@ HideTreadedOrders=Cacher les commandes traitées ou annulées de la liste
 ValidOrderAfterPropalClosed=Valider la commande après la clôture de la proposition commerciale, permet de ne pas passer par la commande provisoire
 FreeLegalTextOnOrders=Mention complémentaire sur les commandes
 WatermarkOnDraftOrders=Filigrane sur les brouillons de commandes (aucun si vide)
+ShippableOrderIconInList=Ajouter un icône dans la liste des commandes qui indique si la commande est expédiable.  
 ##### Clicktodial #####
 ClickToDialSetup=Configuration du module Click To Dial
 ClickToDialUrlDesc=URL appelée lors d'un clic sur le pictogramme téléphone. Dans l'URL, vous pouvez utiliser les balises<br><b>__PHONETO__</b> qui sera remplacée par le téléphone de l'appelé<br><b>__PHONEFROM__</b> qui sera remplacée par le téléphone de l'appelant (le votre, défini sur votre fiche utilisateur)<br><b>__LOGIN__</b> qui sera remplacée par votre identifiant clicktodial (défini sur votre fiche utilisateur)<br><b>__PASS__</b> qui sera remplacée par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
@@ -1382,9 +1384,10 @@ MailingSetup=Configuration du module Emailing
 MailingEMailFrom=Email émetteur (From) des emails envoyés par Emailing
 MailingEMailError=Email retour (Errors-to) pour les réponses lors des envois par Emailing en erreur
 ##### Notification #####
-NotificationSetup=Configuration du module Notification
+NotificationSetup=Configuration du module Notification EMail
 NotificationEMailFrom=Email émetteur (From) des mails envoyés lors des notifications
-ListOfAvailableNotifications=Liste des notifications disponibles (cette liste dépend des modules actifs)
+ListOfAvailableNotifications=Liste des événements sur lesquels vous pouvez configurer une notification, pour chaque tiers (aller dans la fiche tiers pour cela) ou en réglant un email fixe (Liste dépendant de modules activés)
+FixedEmailTarget=EMail fixe cible destinataires
 ##### Sendings #####
 SendingsSetup=Configuration du module Expédition/Livraison
 SendingsReceiptModel=Modèles de bordereau d'expédition
@@ -1535,6 +1538,7 @@ DeleteFiscalYear=Effacer année fiscale
 ConfirmDeleteFiscalYear=Êtes-vous sûr de vouloir supprimer cette année fiscale ?
 Opened=Ouverte
 Closed=Clôturé
+AlwaysEditable=Peut toujours être édité
 
 Format=Format
 TypePaymentDesc=0:Type de paiement client, 1:Type de paiement fournisseur, 2:Paiement de type client et fournisseur
diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang
index 2e765e5e76570f7abf1ce42997b48d37d9299cf1..71ea27767b830438b3b5bf05ebd0ea06d6006749 100644
--- a/htdocs/langs/fr_FR/agenda.lang
+++ b/htdocs/langs/fr_FR/agenda.lang
@@ -70,10 +70,9 @@ DateActionStart= Date de début
 DateActionEnd= Date de fin
 AgendaUrlOptions1=Vous pouvez aussi ajouter les paramètres suivants pour filtrer les réponses :
 AgendaUrlOptions2=<b>login=%s</b> pour limiter l'export aux actions créées, affectées ou réalisées par l'utilisateur <b>%s</b>.
-AgendaUrlOptions3=<b>logina=%s</b> pour limiter l'export aux actions créées par l'utilisateur <b>%s</b>.
+AgendaUrlOptions3=<b>logina=%s</b> pour limiter l'export aux actions dont l'utilisateur <b>%s</b> est propriétaire.
 AgendaUrlOptions4=<b>logint=%s</b> pour limiter l'export aux actions affectées à l'utilisateur <b>%s</b>.
-AgendaUrlOptions5=<b>logind=%s</b> pour limiter l'export aux actions réalisées par l'utilisateur <b>%s</b>.
-AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> pour limiter l'export aux actions associées au projet dont l'identifiant est <b>PROJECT_ID</b>.
+AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> pour restreindre aux écévements associés au projet <b>PROJECT_ID</b>.
 AgendaShowBirthdayEvents=Afficher l'anniversaire des contacts
 AgendaHideBirthdayEvents=Cacher l'anniversaire des contacts
 Busy=Occupé
@@ -90,5 +89,5 @@ ExtSiteUrlAgenda=URL d'accès au fichier ical
 ExtSiteNoLabel=Aucune description
 WorkingTimeRange=Plage d'heures travaillées
 WorkingDaysRange=Plage de jours travaillés
-AddEvent=Créer événement
+AddEvent=Créer un événement
 MyAvailability=Ma disponibilité
diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang
index 44cc5cab6565d7e73db63be535846c8b2bdd881e..d45a9a3b0251df03fab49c7f9797199a444e0f4d 100644
--- a/htdocs/langs/fr_FR/bills.lang
+++ b/htdocs/langs/fr_FR/bills.lang
@@ -29,7 +29,7 @@ InvoiceAvoirAsk=Facture avoir pour correction de la facture
 InvoiceAvoirDesc=La <b>facture d'avoir</b> est une facture négative destinée à compenser un montant de facture qui diffère du montant réellement versé (suite à un trop versé par le client par erreur ou un manque non versé par le client suite à un retour produit par exemple).
 invoiceAvoirWithLines=Créer l'avoir avec les même lignes que la factures dont il est issu
 invoiceAvoirWithPaymentRestAmount=Créer l'avoir avec le montant restant à payer de la facture dont il est issu.
-invoiceAvoirLineWithPaymentRestAmount=Avoir du montant du reste à payer des factures dues.
+invoiceAvoirLineWithPaymentRestAmount=Avoir sur le reste à payer
 ReplaceInvoice=Remplace la facture %s
 ReplacementInvoice=Remplacement facture
 ReplacedByInvoice=Remplacée par la facture %s
@@ -87,7 +87,7 @@ ClassifyCanceled=Classer 'Abandonnée'
 ClassifyClosed=Classer 'Fermée'
 ClassifyUnBilled=Classer 'Non facturée'
 CreateBill=Créer Facture
-AddBill=Créer facture ou avoir
+AddBill=Créer une facture ou un avoir
 AddToDraftInvoices=Ajouter à facture brouillon
 DeleteBill=Supprimer facture
 SearchACustomerInvoice=Rechercher une facture client
@@ -156,7 +156,7 @@ ConfirmCancelBill=Êtes-vous sûr de vouloir annuler la facture <b>%s</b> ?
 ConfirmCancelBillQuestion=Pour quelle raison voulez-vous classer la facture abandonnée ?
 ConfirmClassifyPaidPartially=Êtes-vous sûr de vouloir classer la facture <b>%s</b> comme payée ?
 ConfirmClassifyPaidPartiallyQuestion=Cette facture n'a pas été payée à hauteur du montant initial. Pour quelle raison voulez-vous la classer malgré tout ?
-ConfirmClassifyPaidPartiallyReasonAvoir=Le reste à payer <b>(%s %s)</b> est un trop facturé (car article retourné, oubli, escompte non défini...) régularisé par un avoir
+ConfirmClassifyPaidPartiallyReasonAvoir=Le reste à payer <b>(%s %s)</b> est un trop facturé (car article retourné, oubli, escompte réalisé...), régularisé par un avoir
 ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Le reste à payer <b>(%s %s)</b> est un escompte accordé après facture. J'accepte de perdre la TVA sur cet escompte
 ConfirmClassifyPaidPartiallyReasonDiscountVat=Le reste à payer <b>(%s %s)</b> est un escompte
 ConfirmClassifyPaidPartiallyReasonBadCustomer=Mauvais payeur
@@ -191,9 +191,9 @@ AlreadyPaid=Déjà réglé
 AlreadyPaidBack=Déjà remboursé
 AlreadyPaidNoCreditNotesNoDeposits=Déjà réglé (hors avoirs et acomptes)
 Abandoned=Abandonné
-RemainderToPay=Reste à payer
-RemainderToTake=Reste à encaisser
-RemainderToPayBack=Reste à rembourser
+RemainderToPay=Restant impayé
+RemainderToTake=Montant restant à percevoir
+RemainderToPayBack=Montant à rembourser
 Rest=Créance
 AmountExpected=Montant réclamé
 ExcessReceived=Trop perçu
@@ -225,13 +225,13 @@ NonPercuRecuperable=Non perçue réc.
 SetConditions=Définir conditions de règlement
 SetMode=Définir mode de règlement
 Billed=Facturé
-RepeatableInvoice=Facture prédéfinie
-RepeatableInvoices=Factures prédéfinies
-Repeatable=Prédéfinie
-Repeatables=Prédéfinies
-ChangeIntoRepeatableInvoice=Convertir en prédéfinie
-CreateRepeatableInvoice=Créer facture prédéfinie
-CreateFromRepeatableInvoice=Créer depuis facture prédéfinie
+RepeatableInvoice=Facture modèle
+RepeatableInvoices=Factures modèles
+Repeatable=Modèle
+Repeatables=Modèles
+ChangeIntoRepeatableInvoice=Convertir en facture modèle
+CreateRepeatableInvoice=Créer facture modèle
+CreateFromRepeatableInvoice=Créer depuis facture modèle
 CustomersInvoicesAndInvoiceLines=Factures clients et lignes de factures
 CustomersInvoicesAndPayments=Factures clients et règlements
 ExportDataset_invoice_1=Factures clients et lignes de facture
diff --git a/htdocs/langs/fr_FR/commercial.lang b/htdocs/langs/fr_FR/commercial.lang
index 15851bcc37b08c78b6ffe177d7196b3550474a2a..d3125a8edd6f99a93320a9d5d928ac5f1cd31a01 100644
--- a/htdocs/langs/fr_FR/commercial.lang
+++ b/htdocs/langs/fr_FR/commercial.lang
@@ -9,8 +9,8 @@ Prospect=Prospect
 Prospects=Prospects
 DeleteAction=Effacer un événement/tâche
 NewAction=Nouvel événement
-AddAction=Créer événement
-AddAnAction=Créer un événement
+AddAction=Créer un événement / une tâche
+AddAnAction=Créer un événement / une tâche
 AddActionRendezVous=Créer un rendez-vous
 Rendez-Vous=Rendez-vous
 ConfirmDeleteAction=Êtes-vous sûr de vouloir effacer cet événement ?
@@ -44,8 +44,8 @@ DoneActions=Liste des événements réalisés
 DoneActionsFor=Liste des événements réalisés pour %s
 ToDoActions=Liste des événements incomplets
 ToDoActionsFor=Liste des événements incomplets pour %s
-SendPropalRef=Envoi proposition commerciale %s
-SendOrderRef=Envoi commande %s
+SendPropalRef=Envoi de la proposition commerciale %s
+SendOrderRef=Envoi de la commande %s
 StatusNotApplicable=Non applicable
 StatusActionToDo=À faire
 StatusActionDone=Réalisé
@@ -62,7 +62,7 @@ LastProspectContactDone=Prospects contactés
 DateActionPlanned=Date réalisation prévue
 DateActionDone=Date réalisation effective
 ActionAskedBy=Action enregistrée par
-ActionAffectedTo=Action affectée à
+ActionAffectedTo=Propriétaire de l'événement
 ActionDoneBy=Action faite par
 ActionUserAsk=Enregistré par
 ErrorStatusCantBeZeroIfStarted=Si le champ '<b>Date début réalisation réelle</b>' est renseigné alors l'action est commencée voire finie, aussi le champ 'État' ne peut être 0%%.
diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang
index bcfe356e10a74becc6fccc081d4ce07d8716739f..af76117f2132014412804ee85a2bffbdebe5dd3d 100644
--- a/htdocs/langs/fr_FR/companies.lang
+++ b/htdocs/langs/fr_FR/companies.lang
@@ -379,7 +379,7 @@ DeliveryAddressLabel=Libellé de l'adresse
 DeleteDeliveryAddress=Supprimer une adresse de livraison
 ConfirmDeleteDeliveryAddress=Êtes-vous sûr de vouloir supprimer cette adresse de livraison ?
 NewDeliveryAddress=Nouvelle adresse de livraison
-AddDeliveryAddress=Ajouter l'adresse
+AddDeliveryAddress=Créer adresse
 AddAddress=Créer adresse
 NoOtherDeliveryAddress=Pas d'adresse alternative définie
 SupplierCategory=Catégorie du fournisseur
diff --git a/htdocs/langs/fr_FR/deliveries.lang b/htdocs/langs/fr_FR/deliveries.lang
index 4f61426e83cdee643150ed38ece838e687685f97..02dd54275f6ebc0e7ca010c355a71947b7096f6d 100644
--- a/htdocs/langs/fr_FR/deliveries.lang
+++ b/htdocs/langs/fr_FR/deliveries.lang
@@ -24,3 +24,5 @@ Deliverer=Livreur(s) :
 Sender=Expéditeur
 Recipient=Destinataire
 ErrorStockIsNotEnough=Le stock est insuffisant
+Shippable=Expédiable
+NonShippable=Non Expédiable
diff --git a/htdocs/langs/fr_FR/donations.lang b/htdocs/langs/fr_FR/donations.lang
index c1601b1bb2719cc282a87d3f2a1f88a6bb4ef732..e4348ab6ffaa11785b19909a7eca1bdab814f002 100644
--- a/htdocs/langs/fr_FR/donations.lang
+++ b/htdocs/langs/fr_FR/donations.lang
@@ -4,7 +4,7 @@ Donations=Dons
 DonationRef=Réf. donation
 Donor=Donateur
 Donors=Donateurs
-AddDonation=Ajouter don
+AddDonation=Créer un don
 NewDonation=Nouveau don
 ShowDonation=Montrer don
 DonationPromise=Promesse de don
diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang
index eaa79b0fc00c39c78bdbf95fbb1aebbd8ef1ff85..0ccafc3843cdec9c5e875b91029efed2503d515e 100644
--- a/htdocs/langs/fr_FR/errors.lang
+++ b/htdocs/langs/fr_FR/errors.lang
@@ -37,7 +37,7 @@ ErrorSupplierCodeRequired=Code fournisseur obligatoire
 ErrorSupplierCodeAlreadyUsed=Code fournisseur déjà utilisé
 ErrorBadParameters=Paramètres incorrects
 ErrorBadValueForParameter=Valeur '%s' incorrecte pour le paramètre '%s'
-ErrorBadImageFormat=L'image n'a pas un format reconnu
+ErrorBadImageFormat=Cet image a un format non supporté (Votre PHP ne supporte pas les fonctions de conversion de ce format d'image).
 ErrorBadDateFormat=La valeur '%s' a un format de date non reconnu
 ErrorWrongDate=La date est incorrecte
 ErrorFailedToWriteInDir=Impossible d'écrire dans le répertoire %s
@@ -114,6 +114,7 @@ ErrorLoginDoesNotExists=Le compte utilisateur de login <b>%s</b> n'a pu être tr
 ErrorLoginHasNoEmail=Cet utilisateur n'a pas d'email. Impossible de continuer.
 ErrorBadValueForCode=Mauvaise valeur saisie pour le code. Réessayez avec une nouvelle valeur...
 ErrorBothFieldCantBeNegative=Les champs %s et %s ne peuvent être tous deux négatifs
+ErrorQtyForCustomerInvoiceCantBeNegative=La quantité d'une ligne ne peut pas être négative dans les factures clients 
 ErrorWebServerUserHasNotPermission=Le compte d'exécution du serveur web <b>%s</b> n'a pas les permissions pour cela
 ErrorNoActivatedBarcode=Aucun type de code-barres activé
 ErrUnzipFails=Impossible de décompresser le fichier %s avec ZipArchive
diff --git a/htdocs/langs/fr_FR/holiday.lang b/htdocs/langs/fr_FR/holiday.lang
index f391c3bffa0b240cd1055c470890a1cc620394ea..43e43277b3e1b27343365f9d3f3466bc2f9eafec 100644
--- a/htdocs/langs/fr_FR/holiday.lang
+++ b/htdocs/langs/fr_FR/holiday.lang
@@ -53,15 +53,15 @@ CantUpdate=Vous ne pouvez pas mettre à jour cette demande de congés.
 NoDateDebut=Vous devez choisir une date de début.
 NoDateFin=Vous devez choisir une date de fin.
 ErrorDureeCP=Votre demande de congés payés ne contient aucun jour ouvré.
-TitleValidCP=Valider la demande de Congés Payés
+TitleValidCP=Approuver la demande de congès
 ConfirmValidCP=Êtes-vous sûr de vouloir approuver la demande de congés ?
 DateValidCP=Date d'approbation
 TitleToValidCP=Send leave request
 ConfirmToValidCP=Êtes-vous sûr de vouloir valider la demande de congés ?
-TitleRefuseCP=Refuser la demande de Congés Payés
+TitleRefuseCP=Refuser la demande de congès
 ConfirmRefuseCP=Êtes-vous sûr de vouloir valider la demande de congés ?
 NoMotifRefuseCP=Vous devez choisir un motif pour refuser cette demande.
-TitleCancelCP=Annuler la demande de Congés Payés
+TitleCancelCP=Annuler la demande de dongès
 ConfirmCancelCP=Êtes-vous sûr de vouloir annuler la demande de congés ?
 DetailRefusCP=Motif du refus
 DateRefusCP=Date du refus
@@ -78,7 +78,7 @@ ActionByCP=Réalisée par
 UserUpdateCP=Pour l'utilisateur
 PrevSoldeCP=Précédent Solde
 NewSoldeCP=Nouveau Solde
-alreadyCPexist=Une demande de congés à déjà été effectuée sur cette période.
+alreadyCPexist=Une demande de congés a déjà été faite sur cette période.
 UserName=Nom Prénom
 Employee=Salarié
 FirstDayOfHoliday=Premier jour de congès
@@ -88,25 +88,25 @@ ManualUpdate=Mise à jour manuelle
 HolidaysCancelation=Annulation de la demande de congès
 
 ## Configuration du Module ##
-ConfCP=Configuration du module Congés
+ConfCP=Configuration du module congès
 DescOptionCP=Description de l'option
 ValueOptionCP=Valeur
 GroupToValidateCP=Groupe ayant la possibilité d'approuver les congés
 ConfirmConfigCP=Valider la configuration
-LastUpdateCP=Notification automatique
+LastUpdateCP=Dernière mise à jour automatique de l'allocation des congès
 UpdateConfCPOK=Mise à jour effectuée avec succès.
 ErrorUpdateConfCP=Une erreur à eu lieu durant la mise à jour, merci de réessayer.
 AddCPforUsers=Veuillez ajouter le solde des congés des utilisateurs en <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">cliquant ici</a>.
-DelayForSubmitCP=Délai pour faire une demande de congés  avant ceux-ci
+DelayForSubmitCP=Délai pour faire des demandes de congés
 AlertapprobatortorDelayCP=Prévenir le validateur si la demande de congés ne correspond pas à la date limite
 AlertValidatorDelayCP=Prévenir le valideur si la demande de congés ne respecte pas le délai prévu
 AlertValidorSoldeCP=Prévenir le valideur si l'utilisateur demande des congés dépassant son solde
 nbUserCP=Nombre d'utilisateur pris en charge dans le module congés
 nbHolidayDeductedCP=Nombre de congés payés à déduire par jour de congé pris
-nbHolidayEveryMonthCP=Nombre de congés payés ajoutés chaque mois
+nbHolidayEveryMonthCP=Nombre de congés ajoutés chaque mois
 Module27130Name= Gestion des demandes de congès
 Module27130Desc= Ce module permet de gérer les demandes, approbations de congès.
-TitleOptionMainCP=Réglages principaux des demande de congès
+TitleOptionMainCP=Réglages principaux des demandes de congès
 TitleOptionEventCP=Réglages des congés liés à des évènements
 ValidEventCP=Valider
 UpdateEventCP=Mettre à jour les évènements
diff --git a/htdocs/langs/fr_FR/interventions.lang b/htdocs/langs/fr_FR/interventions.lang
index d9a9b0f856e78639c47028e7f6d4bc34b27ad34f..aa0db5b2355de7e9c88b532e42467b03996c64ce 100644
--- a/htdocs/langs/fr_FR/interventions.lang
+++ b/htdocs/langs/fr_FR/interventions.lang
@@ -30,6 +30,7 @@ StatusInterInvoiced=Facturée
 RelatedInterventions=Interventions rattachées
 ShowIntervention=Afficher intervention
 SendInterventionRef=Envoi de la fiche intervention %s
+SendInterventionByMail=Envoyer l'intervention par email
 ##### Types de contacts #####
 TypeContact_fichinter_internal_INTERREPFOLL=Responsable suivi de l'intervention
 TypeContact_fichinter_internal_INTERVENING=Intervenant
diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang
index 9bc53fc6293ec6afbe926193e720c742d4cf4f8c..425a4504a6efa657cb98ef5c3fc7888b44a7360f 100644
--- a/htdocs/langs/fr_FR/mails.lang
+++ b/htdocs/langs/fr_FR/mails.lang
@@ -133,6 +133,6 @@ Notifications=Notifications
 NoNotificationsWillBeSent=Aucune notification par email n'est prévue pour cet événement et société
 ANotificationsWillBeSent=1 notification va être envoyée par email
 SomeNotificationsWillBeSent=%s notifications vont être envoyées par email
-AddNewNotification=Activer une nouvelle demande de notification email
-ListOfActiveNotifications=Liste des demandes de notifications emails actives
+AddNewNotification=Activer une nouvelle cible de notification email
+ListOfActiveNotifications=Liste des cibles de notifications emails actives
 ListOfNotificationsDone=Liste des notifications emails envoyées
diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang
index 4bfd1addf7e266358c68971d291070a00d1f6f6b..c665de8ffeca9879b04b788a7c139e2dc56f622e 100644
--- a/htdocs/langs/fr_FR/main.lang
+++ b/htdocs/langs/fr_FR/main.lang
@@ -58,12 +58,12 @@ ErrorCantLoadUserFromDolibarrDatabase=Impossible de trouver l'utilisateur <b>%s<
 ErrorNoVATRateDefinedForSellerCountry=Erreur, aucun taux tva défini pour le pays '%s'.
 ErrorNoSocialContributionForSellerCountry=Erreur, aucun type de charges défini pour le pays '%s'.
 ErrorFailedToSaveFile=Erreur, l'enregistrement du fichier a échoué.
-ErrorOnlyPngJpgSupported=Erreur, seuls les formats images .jpg et .png sont supportés.
-ErrorImageFormatNotSupported=Votre PHP ne supporte pas les fonctions de conversion de ce format d'image.
 SetDate=Définir date
 SelectDate=Sélectionnez une date
 SeeAlso=Voir aussi %s
 BackgroundColorByDefault=Couleur de fond
+FileNotUploaded=Le fichier n'a pas été téléchargé
+FileUploaded=Le fichier a été transféré avec succès
 FileWasNotUploaded=Un fichier a été sélectionné pour attachement mais n'a pas encore été uploadé. Cliquez sur "Joindre ce fichier" pour cela.
 NbOfEntries=Nb d'entrées
 GoToWikiHelpPage=Consulter l'aide (nécessite un accès internet)
@@ -266,6 +266,7 @@ Afternoon=Après-midi
 Quadri=Trimestre
 MonthOfDay=Mois du jour
 HourShort=H
+MinuteShort=mn
 Rate=Taux
 UseLocalTax=Inclure taxe
 Bytes=Octets
@@ -340,6 +341,7 @@ FullList=Liste complète
 Statistics=Statistiques
 OtherStatistics=Autres statistiques
 Status=État
+Favorite=Favori
 ShortInfo=Infos
 Ref=Réf.
 RefSupplier=Réf. fournisseur
@@ -679,7 +681,7 @@ ViewPrivateNote=Voir les notes
 XMoreLines=%s ligne(s) cachées
 PublicUrl=URL publique
 AddBox=Ajouter boite
-
+SelectElementAndClickRefresh=Sélectionnez un élément et cliquez sur Rafraichir
 # Week day
 Monday=Lundi
 Tuesday=Mardi
diff --git a/htdocs/langs/fr_FR/margins.lang b/htdocs/langs/fr_FR/margins.lang
index dabd381ab1af4c5ab81e5becaba8a4e384fcc095..6244b0b14ae2dab89e2819fbd266b5da5c44dfcc 100644
--- a/htdocs/langs/fr_FR/margins.lang
+++ b/htdocs/langs/fr_FR/margins.lang
@@ -10,24 +10,18 @@ MarkRate=Taux de marque
 DisplayMarginRates=Afficher les taux de marge
 DisplayMarkRates=Afficher les taux de marque
 InputPrice=Saisir un prix
-
 margin=Gestion des marges
 margesSetup=Paramétrage de la gestion des marges
-
 MarginDetails=Détails des marges réalisées
-
 ProductMargins=Marges par produit
 CustomerMargins=Marges par client
 SalesRepresentativeMargins=Marges commerciaux
-
 ProductService=Produit ou Service
 AllProducts=Tous les produits et services
 ChooseProduct/Service=Choisissez le produit ou le service
-
 StartDate=Date de début
 EndDate=Date de fin
 Launch=Démarrer
-
 ForceBuyingPriceIfNull=Forcer le prix d'achat si non renseigné
 ForceBuyingPriceIfNullDetails=Si "ON", la ligne sera prise en compte avec une marge nulle (on forcera le prix d'achat avec le prix de vente) , sinon ("OFF") la marge sera égale au prix de vente pour cette ligne (prix d'achat à zéro).
 MARGIN_METHODE_FOR_DISCOUNT=Méthode de gestion des remises globales
@@ -35,16 +29,15 @@ UseDiscountAsProduct=Comme un produit
 UseDiscountAsService=Comme un service
 UseDiscountOnTotal=Sur le total
 MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Définit si une remise globale est prise en compte comme un produit, comme un service ou uniquement sur le total lors du calcul des marges.
-
 MARGIN_TYPE=Type de marge gérée
 MargeBrute=Marge brute
 MargeNette=Marge nette
 MARGIN_TYPE_DETAILS=Marge brute : Prix de vente HT - Prix d'achat HT<br/>Marge nette : Prix de vente HT - Coût de revient
-
 CostPrice=Prix de revient
 BuyingCost=Coût de revient
 UnitCharges=Charge unitaire
 Charges=Charges
-
 AgentContactType=Type de contact agent commercial
-AgentContactTypeDetails=Permet de définir le type de contact associé aux factures qui sera utilisé pour le rapport de marges par agent commercial
+AgentContactTypeDetails=Définissez quel type de contact (lié aux factures) sera utiliser pour le reporting des marges par commercial
+rateMustBeNumeric=Le taux doit être une valeure numérique
+markRateShouldBeLesserThan100=Le taux de marque doit être inférieur à 100
diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang
index 608af130b481faed529dd94a7ab63e0a81258599..3404ee5d3cba232263baefa55ca2f45b626649a9 100644
--- a/htdocs/langs/fr_FR/members.lang
+++ b/htdocs/langs/fr_FR/members.lang
@@ -85,7 +85,7 @@ SubscriptionLateShort=En retard
 SubscriptionNotReceivedShort=Non reçue
 ListOfSubscriptions=Liste des cotisations
 SendCardByMail=Envoyer fiche par mail
-AddMember=Ajouter adhérent
+AddMember=Créer adhérent
 NoTypeDefinedGoToSetup=Aucun type d'adhérent défini. Allez dans le menu "Types d'adhérents"
 NewMemberType=Nouveau type de membre
 WelcomeEMail=Email d'accueil
@@ -125,7 +125,7 @@ Date=Date
 DateAndTime=Date et heure
 PublicMemberCard=Fiche adhérent publique
 MemberNotOrNoMoreExpectedToSubscribe=Non soumis ou plus soumis à cotisation
-AddSubscription=Ajouter adhésion/cotisation
+AddSubscription=Créer cotisation
 ShowSubscription=Afficher adhésion
 MemberModifiedInDolibarr=Adhérent modifié dans Dolibarr
 SendAnEMailToMember=Envoyer email d'information à l'adhérent
diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang
index f5a83e574a62b34b5379335b8d85079ce3efd8a8..2156b451102d7fb8700115152bc54ac8740cfa82 100644
--- a/htdocs/langs/fr_FR/other.lang
+++ b/htdocs/langs/fr_FR/other.lang
@@ -1,7 +1,6 @@
 # Dolibarr language file - Source file is en_US - other
 SecurityCode=Code de sécurité
 Calendar=Calendrier
-AddTrip=Créer note de frais
 Tools=Outils
 ToolsDesc=Cet espace est dédié au regroupement d'outils divers non disponibles dans les autres entrées du menu.<br><br>La liste de ces outils est accessible par le menu sur le côté.
 Birthday=Anniversaire
@@ -48,6 +47,7 @@ Notify_PROJECT_CREATE=Création de projet
 Notify_TASK_CREATE=Tâche créée
 Notify_TASK_MODIFY=Tâche modifiée
 Notify_TASK_DELETE=Tâche supprimée
+SeeModuleSetup=Voir la configuration du module
 NbOfAttachedFiles=Nombre de fichiers/documents liés
 TotalSizeOfAttachedFiles=Taille totale fichiers/documents liés
 MaxSize=Taille maximum
@@ -80,6 +80,16 @@ ModifiedBy=Modifié par %s
 ValidatedBy=Validé par %s
 CanceledBy=Annulé par %s
 ClosedBy=Clôturé par %s
+CreatedById=Id utilisateur créateur
+ModifiedById=Id utilisateur du dernier changement
+ValidatedById=ID utilisateur qui a validé
+CanceledById=Id utilisateur qui a annulé
+ClosedById=Id utilisateur qui a fermé
+CreatedByLogin=Login utilisateur créateur
+ModifiedByLogin=Login utilisateur du dernier changement
+ValidatedByLogin=Login utilisateur qui a validé
+CanceledByLogin=Login utilisateur qui a annulé
+ClosedByLogin=Login utilisateur qui a fermé
 FileWasRemoved=Le fichier %s a été supprimé
 DirWasRemoved=Le répertoire %s a été supprimé
 FeatureNotYetAvailableShort=Disponible dans une prochaine version
diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang
index df04e0b689aa173f70facc76abcfe81020f1992b..58dcbb0844e3f56a85a7a4dc63a6401fb779982c 100644
--- a/htdocs/langs/fr_FR/products.lang
+++ b/htdocs/langs/fr_FR/products.lang
@@ -117,12 +117,12 @@ ServiceLimitedDuration=Si produit de type service à durée limitée :
 MultiPricesAbility=Plusieurs niveaux de prix par produit/service
 MultiPricesNumPrices=Nombre de prix
 MultiPriceLevelsName=Catégorie de prix
-AssociatedProductsAbility=Prise en charge des produits virtuels
-AssociatedProducts=Produit virtuel
-AssociatedProductsNumber=Nbre de sous-produits constituant ce produit virtuel
-ParentProductsNumber=Nbre de produits virtuels parent
-IfZeroItIsNotAVirtualProduct=Si 0, ce produit n'est pas un produit virtuel
-IfZeroItIsNotUsedByVirtualProduct=Si 0, ce produit n'est pas utilisé par un produit virtuel
+AssociatedProductsAbility=Prise en charge des produits virtuels/packs
+AssociatedProducts=Produit virtual/package
+AssociatedProductsNumber=Nbre de sous-produits constituant ce produit virtuel/package
+ParentProductsNumber=Nbre de produits virtuels/packages parent
+IfZeroItIsNotAVirtualProduct=Si 0, ce produit n'est pas un produit virtuel/package
+IfZeroItIsNotUsedByVirtualProduct=Si 0, ce produit n'est pas utilisé par un produit virtuel/package
 EditAssociate=Composer comme produit virtuel
 Translation=Traduction
 KeywordFilter=Filtre par mot-clé
@@ -132,7 +132,7 @@ AddDel=Ajouter/Retirer
 Quantity=Quantité
 NoMatchFound=Aucun résultat n'a été trouvé
 ProductAssociationList=Liste des produits/services composant ce produit virtuel: Le nombre entre parenthèse est la quantité affectée dans cette composition.
-ProductParentList=Liste des produits/services virtuels avec ce produit comme composante
+ProductParentList=Liste des produits/services virtuels/packages avec ce produit comme composante
 ErrorAssociationIsFatherOfThis=L'un des produits sélectionnés est parent du produit en cours
 DeleteProduct=Supprimer un produit/service
 ConfirmDeleteProduct=Êtes-vous sûr de vouloir supprimer ce produit/service ?
@@ -179,7 +179,7 @@ CloneProduct=Cloner produit/service
 ConfirmCloneProduct=Êtes-vous sûr de vouloir cloner le produit ou service <b>%s</b> ?
 CloneContentProduct=Cloner les informations générales du produit/service
 ClonePricesProduct=Cloner les informations générales et les prix
-CloneCompositionProduct=Cloner les produits/services virtuels
+CloneCompositionProduct=Cloner les produits/services composant ce produit
 ProductIsUsed=Ce produit est utilisé
 NewRefForClone=Réf. du nouveau produit/service
 CustomerPrices=Prix clients
diff --git a/htdocs/langs/fr_FR/propal.lang b/htdocs/langs/fr_FR/propal.lang
index 598a7a8fcfcdae0dbaf28c0a8f034156d19ec75b..e8a475282027ac9c81cfd3145cba9b49b60317f4 100644
--- a/htdocs/langs/fr_FR/propal.lang
+++ b/htdocs/langs/fr_FR/propal.lang
@@ -16,7 +16,7 @@ Prospect=Prospect
 ProspectList=Liste des prospects
 DeleteProp=Supprimer proposition
 ValidateProp=Valider proposition
-AddProp=Créer proposition
+AddProp=Créer une proposition
 ConfirmDeleteProp=Êtes-vous sûr de vouloir effacer cette proposition commerciale ?
 ConfirmValidateProp=Êtes-vous sûr de vouloir valider cette proposition commerciale sous la référence <b>%s</b> ?
 LastPropals=Les %s dernières propales
@@ -55,8 +55,6 @@ NoOpenedPropals=Pas de proposition ouverte
 NoOtherOpenedPropals=Pas d'autre proposition brouillon
 RefProposal=Réf. proposition commerciale
 SendPropalByMail=Envoyer proposition commerciale par email
-FileNotUploaded=Le fichier n'a pas été envoyé
-FileUploaded=Le fichier a été envoyé correctement
 AssociatedDocuments=Documents associés à la proposition :
 ErrorCantOpenDir=Impossible d'ouvrir le répertoire
 DatePropal=Date de proposition
diff --git a/htdocs/langs/fr_FR/resource.lang b/htdocs/langs/fr_FR/resource.lang
index e4c8a6ade874b620dc2be4451e005ceb2e89ce0a..5059d628092327031428e7562579572337c067a6 100755
--- a/htdocs/langs/fr_FR/resource.lang
+++ b/htdocs/langs/fr_FR/resource.lang
@@ -32,4 +32,6 @@ ResourceLinkedWithSuccess=Ressource liée avec succès
 TitleResourceCard=Fiche ressource
 ConfirmDeleteResource=Confirmer la suppression de cette ressource?
 RessourceSuccessfullyDeleted=Ressource effacée avec succès
-DictionaryResourceType=Type de ressources
\ No newline at end of file
+DictionaryResourceType=Type de ressources
+
+SelectResource=Sélectionner la ressource
diff --git a/htdocs/langs/fr_FR/sendings.lang b/htdocs/langs/fr_FR/sendings.lang
index 47b359318e41339aaf992bf0d16f1621750eb87b..3f839ba9416c66f9b78ac98d600560dc5c8e5724 100644
--- a/htdocs/langs/fr_FR/sendings.lang
+++ b/htdocs/langs/fr_FR/sendings.lang
@@ -61,6 +61,8 @@ ShipmentCreationIsDoneFromOrder=Pour le moment, la création d'une nouvelle exp
 RelatedShippings=Expédition(s) associée(s)
 ShipmentLine=Ligne d'expédition
 CarrierList=Liste des transporteurs
+SendingRunning=Produits de commandes clients déjà expédiés
+SuppliersReceiptRunning=Produits de commandes fournisseurs déjà réceptionnés
 
 # Sending methods
 SendingMethodCATCH=Enlèvement par le client
diff --git a/htdocs/langs/fr_FR/suppliers.lang b/htdocs/langs/fr_FR/suppliers.lang
index 8f7304b676a7e9424515676c0e27101c13d6e389..dab237aeb2d3b4856d02740bf3f1c6bf03d96266 100644
--- a/htdocs/langs/fr_FR/suppliers.lang
+++ b/htdocs/langs/fr_FR/suppliers.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - suppliers
 Suppliers=Fournisseurs
 Supplier=Fournisseur
-AddSupplier=Ajouter un fournisseur
+AddSupplier=Créer un fournisseur
 SupplierRemoved=Fournisseur supprimé
 SuppliersInvoice=Facture fournisseur
 NewSupplier=Nouveau fournisseur
diff --git a/htdocs/langs/fr_FR/users.lang b/htdocs/langs/fr_FR/users.lang
index 447f5b661f86cedbcf3fd12be854863e59529824..a41a33da48dba06731219c8de15a255481df5b6d 100644
--- a/htdocs/langs/fr_FR/users.lang
+++ b/htdocs/langs/fr_FR/users.lang
@@ -120,3 +120,4 @@ UseTypeFieldToChange=Modifier le champ Type pour changer
 OpenIDURL=URL OpenID
 LoginUsingOpenID=Se connecter par OpenID
 WeeklyHours=Heures de travail hebdomadaires
+ColorUser=Couleur de l'utilisateur
diff --git a/htdocs/langs/id_ID/link.lang b/htdocs/langs/id_ID/link.lang
index 8b1efb75ef372daf24c660017c22d0cda43189b8..c3ac00b7f99ed07a395dc1ff73bf859e6de7d2d7 100644
--- a/htdocs/langs/id_ID/link.lang
+++ b/htdocs/langs/id_ID/link.lang
@@ -1,8 +1,8 @@
-LinkANewFile=Link a new file/document
-LinkedFiles=Linked files and documents
-NoLinkFound=No registered links
-LinkComplete=The file has been linked successfully
-ErrorFileNotLinked=The file could not be linked
-LinkRemoved=The link %s has been removed
-ErrorFailedToDeleteLink= Failed to remove link '<b>%s</b>'
-ErrorFailedToUpdateLink= Failed to update link '<b>%s</b>'
+LinkANewFile=Tautan untuk berkas/dokumen baru
+LinkedFiles=Tautan berkas dan dokumen
+NoLinkFound=Link tidak terdaftar
+LinkComplete=Berkas telah berhasil ditautkan
+ErrorFileNotLinked=Berkas tidak dapat ditautkan
+LinkRemoved=Tautan %s telah dihapus
+ErrorFailedToDeleteLink= gagal untuk menghapus tautan '<b>%s</b>'
+ErrorFailedToUpdateLink= Gagal untuk memperbaharui tautan '<b>%s</b>'
diff --git a/htdocs/langs/id_ID/salaries.lang b/htdocs/langs/id_ID/salaries.lang
index edca71a18298c2a2c2f4f3d92ce10dd130ab2335..666632bf28e8b4ce4572c9f7a67fd7d516103b9a 100644
--- a/htdocs/langs/id_ID/salaries.lang
+++ b/htdocs/langs/id_ID/salaries.lang
@@ -1,8 +1,12 @@
 # Dolibarr language file - Source file is en_US - users
-Salary=Salary
-Salaries=Salaries
-Employee=Employee
-NewSalaryPayment=New salary payment
-SalaryPayment=Salary payment
-SalariesPayments=Salaries payments
-ShowSalaryPayment=Show salary payment
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Kode Akuntansi untuk pembayaran gaji
+SALARIES_ACCOUNTING_ACCOUNT_CHARGE=kode akuntansi untuk pembiayaan keuangan
+Salary=Gaji
+Salaries=Gaji
+Employee=karyawan
+NewSalaryPayment=Pembayaran Gaji Baru
+SalaryPayment=Pembayaran Gaji
+SalariesPayments=Pembayaran Gaji
+ShowSalaryPayment=Menampilkan Pembayaran Gaji
+THM=rata - rata per jam
+TJM=rata - rata per hari
diff --git a/htdocs/langs/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang
index 8cab9d2b651d75b0721d76fda619e2034e4509b4..83602dd0bab7acf9263a125dc11a3fe5f52e3818 100644
--- a/htdocs/langs/sv_SE/accountancy.lang
+++ b/htdocs/langs/sv_SE/accountancy.lang
@@ -1,158 +1,158 @@
 # Dolibarr language file - en_US - Accounting Expert
 CHARSET=UTF-8
 
-Accounting=Accounting
-Globalparameters=Global parameters
-Chartofaccounts=Chart of accounts
-Fiscalyear=Fiscal years
-Menuaccount=Accounting accounts
-Menuthirdpartyaccount=Thirdparty accounts
-MenuTools=Tools
-
-ConfigAccountingExpert=Configuration of the module accounting expert
-Journaux=Journals
-JournalFinancial=Financial journals
-Exports=Exports
-Modelcsv=Model of export
-Selectmodelcsv=Select a model of export
-Modelcsv_normal=Classic export
-Modelcsv_CEGID=Export towards CEGID Expert
-BackToChartofaccounts=Return chart of accounts
-Back=Return
-
-Definechartofaccounts=Define a chart of accounts
-Selectchartofaccounts=Select a chart of accounts
-Validate=Validate
-Addanaccount=Add an accounting account
-AccountAccounting=Accounting account
+Accounting=Redovisning
+Globalparameters=Globala parametrar
+Chartofaccounts=Kontoplan
+Fiscalyear=Räkenskapsår
+Menuaccount=Redovisnings konton
+Menuthirdpartyaccount=Tredjeparts konton
+MenuTools=Verktyg
+
+ConfigAccountingExpert=Konfiguration av modulen redovisningsexpert
+Journaux=Journaler
+JournalFinancial=Finansiella journaler
+Exports=Export
+Modelcsv=Modell av export
+Selectmodelcsv=Välj en modell av export
+Modelcsv_normal=Klassisk export
+Modelcsv_CEGID=Export mot CEGID Expert
+BackToChartofaccounts=Avkastning kontoplan
+Back=Avkastning
+
+Definechartofaccounts=Definiera en kontoplan
+Selectchartofaccounts=Välj en kontoplan
+Validate=Validera
+Addanaccount=Lägg till ett redovisningskonto
+AccountAccounting=Redovisningskonto
 Ventilation=Ventilation
-ToDispatch=To dispatch
-Dispatched=Dispatched
-
-CustomersVentilation=Ventilation customers
-SuppliersVentilation=Ventilation suppliers
-TradeMargin=Trade margin
-Reports=Reports
-ByCustomerInvoice=By invoices customers
-ByMonth=By Month
-NewAccount=New accounting account
-Update=Update
-List=List
-Create=Create
-UpdateAccount=Modification of an accounting account
-UpdateMvts=Modification of a movement
-WriteBookKeeping=Record accounts in general ledger
-Bookkeeping=General ledger
-AccountBalanceByMonth=Account balance by month
-
-AccountingVentilation=Accounting ventilation
-AccountingVentilationSupplier=Accounting ventilation supplier
-AccountingVentilationCustomer=Accounting ventilation customer
-Line=Line
-
-CAHTF=Total purchase supplier HT
-InvoiceLines=Lines of invoice to be ventilated
-InvoiceLinesDone=Ventilated lines of invoice
-IntoAccount=In the accounting account
-
-Ventilate=Ventilate
-VentilationAuto=Automatic ventilation
-
-Processing=Processing
-EndProcessing=The end of processing
-AnyLineVentilate=Any lines to ventilate
-SelectedLines=Selected lines
-Lineofinvoice=Line of invoice
-VentilatedinAccount=Ventilated successfully in the accounting account
-NotVentilatedinAccount=Not ventilated in the accounting account
+ToDispatch=Avsändandet
+Dispatched=Levereras
+
+CustomersVentilation=Ventilationskunder
+SuppliersVentilation=Ventilations leverantörer
+TradeMargin=Handelsmarginal
+Reports=Rapporter
+ByCustomerInvoice=Enligt faktura kunder
+ByMonth=Enligt månad
+NewAccount=Nytt redovisningskonto
+Update=Uppdatera
+List=Lista
+Create=Skapa
+UpdateAccount=Ändring av ett redovisningskonto
+UpdateMvts=Ändring av en rörelse
+WriteBookKeeping=Record konton i huvudboken
+Bookkeeping=Huvudbok
+AccountBalanceByMonth=Saldo per månad
+
+AccountingVentilation=Redovisning ventilation
+AccountingVentilationSupplier=Redovisning ventilations leverantör
+AccountingVentilationCustomer=Redovisning ventilations kund
+Line=Linje
+
+CAHTF=Totala köpesleverantörs HT
+InvoiceLines=Linjer av faktura som ska ventileras
+InvoiceLinesDone=Ventilerade linjer faktura
+IntoAccount=I bokföringskonto
+
+Ventilate=Ventilera
+VentilationAuto=Automatisk ventilation
+
+Processing=Bearbetning
+EndProcessing=I slutet av behandlingen
+AnyLineVentilate=Några rader för att ventilera
+SelectedLines=Valda linjer
+Lineofinvoice=Line of faktura
+VentilatedinAccount=Ventilerade framgångsrikt i redovisningskonto
+NotVentilatedinAccount=Inte ventilerad i redovisningskonto
 
 ACCOUNTING_SEPARATORCSV=Separator CSV
 
-ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to be ventilated shown by page (maximum recommended : 50)
-ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the pages of ventilation "Has to ventilate" by the most recent elements
-ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the pages of ventilation "Ventilated" by the most recent elements
+ACCOUNTING_LIMIT_LIST_VENTILATION=Antal element som skall ventil visas av sidan (max rekommenderad: 50)
+ACCOUNTING_LIST_SORT_VENTILATION_TODO=Börja sorteringen av sidorna i ventilations "Måste ventilera" av de senaste delarna
+ACCOUNTING_LIST_SORT_VENTILATION_DONE=Börja sorteringen av sidorna i ventilation "Ventilerade" av de senaste delarna
 
-AccountLength=Length of the accounting accounts shown in Dolibarr
-AccountLengthDesc=Function allowing to feign a length of accounting account by replacing spaces by the zero figure. This function touches only the display, it does not modify the accounting accounts registered in Dolibarr. For the export, this function is necessary to be compatible with certain software.
-ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounts
-ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounts
+AccountLength=Längd på redovisningen redovisning i Dolibarr
+AccountLengthDesc=Funktion som gör det möjligt att låtsas en längd av bokföringskonto genom att ersätta mellanslag med noll siffra. Den här funktionen berör endast displayen, det ändrar inte redovisningskonton registrerade i Dolibarr. För export, är nödvändigt denna funktion för att vara kompatibel med viss programvara.
+ACCOUNTING_LENGTH_GACCOUNT=Längd på de allmänna räkenskaperna
+ACCOUNTING_LENGTH_AACCOUNT=Längd av tredjepartskonton
 
-ACCOUNTING_SELL_JOURNAL=Sell journal
-ACCOUNTING_PURCHASE_JOURNAL=Purchase journal
-ACCOUNTING_BANK_JOURNAL=Bank journal
+ACCOUNTING_SELL_JOURNAL=Sell ​​tidskrift
+ACCOUNTING_PURCHASE_JOURNAL=Bara tidskrift
+ACCOUNTING_BANK_JOURNAL=Bank tidskrift
 ACCOUNTING_CASH_JOURNAL=Cash journal
-ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal
-ACCOUNTING_SOCIAL_JOURNAL=Social journal
-
-ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account of transfer
-ACCOUNTING_ACCOUNT_SUSPENSE=Account of wait
-
-ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (if not defined in the product sheet)
-ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (if not defined in the product sheet)
-ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (if not defined in the service sheet)
-ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (if not defined in the service sheet)
-
-Doctype=Type of document
-Docdate=Date
-Docref=Reference
-Numerocompte=Account
-Code_tiers=Thirdparty
-Labelcompte=Label account
+ACCOUNTING_MISCELLANEOUS_JOURNAL=Diverse tidskrift
+ACCOUNTING_SOCIAL_JOURNAL=Social tidskrift
+
+ACCOUNTING_ACCOUNT_TRANSFER_CASH=Redogörelse för överföring
+ACCOUNTING_ACCOUNT_SUSPENSE=Redogörelse för vänta
+
+ACCOUNTING_PRODUCT_BUY_ACCOUNT=Redovisning kontot som standard för köpta produkter (om den inte anges i produktbladet)
+ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Redovisning kontot som standard för de sålda produkterna (om den inte anges i produktbladet)
+ACCOUNTING_SERVICE_BUY_ACCOUNT=Redovisning konto som standard för de köpte tjänster (om den inte anges i servicebladet)
+ACCOUNTING_SERVICE_SOLD_ACCOUNT=Redovisning kontot som standard för sålda tjänster (om den inte anges i servicebladet)
+
+Doctype=Typ av dokument
+Docdate=Datum
+Docref=Referens
+Numerocompte=Konto
+Code_tiers=Tredjeparts
+Labelcompte=Etikett konto
 Debit=Debit
-Credit=Credit
-Amount=Amount
+Credit=Kredit
+Amount=Belopp
 Sens=Sens
 Codejournal=Journal
 
-DelBookKeeping=Delete the records of the general ledger
+DelBookKeeping=Ta bort posterna i huvudboken
 
-SellsJournal=Sells journal
-PurchasesJournal=Purchases journal
-DescSellsJournal=Sells journal
-DescPurchasesJournal=Purchases journal
-BankJournal=Bank journal
-DescBankJournal=Bank journal including all the types of payments other than cash
+SellsJournal=Försäljnings journal
+PurchasesJournal=Inköp tidskrift
+DescSellsJournal=Sells tidskrift
+DescPurchasesJournal=Inköp tidskrift
+BankJournal=Bank tidskrift
+DescBankJournal=Bank journal inklusive alla typer av annat än pengar betalningar
 CashJournal=Cash journal
-DescCashJournal=Cash journal including the type of payment cash
+DescCashJournal=Cash journal inklusive typ av betalning kontant
 
-CashPayment=Cash Payment
+CashPayment=Kontantbetalning
 
-SupplierInvoicePayment=Payment of invoice supplier
-CustomerInvoicePayment=Payment of invoice customer
+SupplierInvoicePayment=Betalning av leverantörsfaktura
+CustomerInvoicePayment=Betalning av faktura kund
 
-ThirdPartyAccount=Thirdparty account
+ThirdPartyAccount=Tredjeparts konto
 
-NewAccountingMvt=New movement
-NumMvts=Number of movement
-ListeMvts=List of the movement
-ErrorDebitCredit=Debit and Credit cannot have a value at the same time
+NewAccountingMvt=Ny rörelse
+NumMvts=Antal rörelse
+ListeMvts=Lista över rörelsen
+ErrorDebitCredit=Debit och kredit kan inte ha ett värde på samma gång
 
-ReportThirdParty=List thirdparty account
-DescThirdPartyReport=Consult here the list of the thirdparty customers and the suppliers and their accounting accounts
+ReportThirdParty=Listan tredjeparts konto
+DescThirdPartyReport=Konsul här listan över de tredjeparts kunder och leverantörer och deras bokföringskonton
 
-ListAccounts=List of the accounting accounts
+ListAccounts=Förteckning över redovisningskonton
 
-Pcgversion=Version of the plan
-Pcgtype=Class of account
-Pcgsubtype=Under class of account
-Accountparent=Root of the account
-Active=Statement
+Pcgversion=Version av planen
+Pcgtype=Klass konto
+Pcgsubtype=Under klass konto
+Accountparent=Roten till kontot
+Active=Uttalande
 
-NewFiscalYear=New fiscal year
+NewFiscalYear=Nytt räkenskapsår
 
-DescVentilCustomer=Consult here the annual accounting ventilation of your invoices customers
-TotalVente=Total turnover HT
-TotalMarge=Total sales margin
-DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their accounting account
-DescVentilTodoCustomer=Ventilate your lines of customer invoice with an accounting account
-ChangeAccount=Change the accounting account for lines selected by the account:
+DescVentilCustomer=Rådgör här den årliga redovisningen ventilation av dina fakturor kunder
+TotalVente=Total omsättning HT
+TotalMarge=Total försäljning marginal
+DescVentilDoneCustomer=Konsul här listan med linjerna av fakturor kunder och deras bokföringskonto
+DescVentilTodoCustomer=Ventilera dina rader av kundfaktura med en redovisningskonto
+ChangeAccount=Ändra bokföringskonto för linjer som valts ut av kontot:
 Vide=-
-DescVentilSupplier=Consult here the annual accounting ventilation of your invoices suppliers
-DescVentilTodoSupplier=Ventilate your lines of invoice supplier with an accounting account
-DescVentilDoneSupplier=Consult here the list of the lines of invoices supplier and their accounting account
+DescVentilSupplier=Rådgör här den årliga redovisningen ventilation av dina fakturor leverantörer
+DescVentilTodoSupplier=Ventilera dina rader av leverantörsfaktura med en redovisningskonto
+DescVentilDoneSupplier=Konsul här listan med linjerna av fakturor leverantör och deras bokföringskonto
 
-ValidateHistory=Validate Automatically
+ValidateHistory=Validera Automatiskt
 
-ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
+ErrorAccountancyCodeIsAlreadyUse=Fel, du kan inte ta bort denna redovisningskonto eftersom den används
 
-FicheVentilation=Ventilation card
+FicheVentilation=Ventilation kort
diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang
index bab67d2c1ad75c4f1cc70cb804d408879557168c..b67c53cc77eb6889dae550e6b2b3039c1b1eaa72 100644
--- a/htdocs/langs/sv_SE/admin.lang
+++ b/htdocs/langs/sv_SE/admin.lang
@@ -43,19 +43,19 @@ SecuritySetup=Säkerhet setup
 ErrorModuleRequirePHPVersion=Fel, kräver denna modul PHP version %s eller högre
 ErrorModuleRequireDolibarrVersion=Fel, kräver denna modul Dolibarr version %s eller högre
 ErrorDecimalLargerThanAreForbidden=Fel, en precision högre än <b>%s</b> stöds inte.
-DictionarySetup=Dictionary setup
-Dictionary=Dictionaries
-Chartofaccounts=Chart of accounts
-Fiscalyear=Fiscal years
+DictionarySetup=Lexikon inställnings
+Dictionary=Ordböcker
+Chartofaccounts=Kontoplan
+Fiscalyear=Räkenskapsår
 ErrorReservedTypeSystemSystemAuto=Värdena "system" och "systemauto" för typ är reserverade. Du kan använda "user" som värde för att lägga till en egen post.
 ErrorCodeCantContainZero=Kod får inte innehålla värdet 0
-DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
+DisableJavascript=Inaktivera JavaScript och Ajax-funktioner (rekommenderas för blinda personer eller textbaserade webbläsare)
 ConfirmAjax=Använd Ajax bekräftelse popups
-UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
-UseSearchToSelectCompany=Use autocompletion fields to choose third parties instead of using a list box.
+UseSearchToSelectCompanyTooltip=Även om du har ett stort antal tredje parter (> 100 000), kan du öka hastigheten genom att sätta konstant COMPANY_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen.
+UseSearchToSelectCompany=Använd automatisk komplettering fält för att välja tredje man istället för att använda en listruta.
 ActivityStateToSelectCompany= Lägg till ett filter alternativ för att visa / dölja thirdparties som för närvarande är i aktivitet eller har upphört att
-UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
-UseSearchToSelectContact=Use autocompletion fields to choose contact (instead of using a list box).
+UseSearchToSelectContactTooltip=Även om du har ett stort antal tredje parter (> 100 000), kan du öka hastigheten genom att sätta konstant CONTACT_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen.
+UseSearchToSelectContact=Använd automatisk komplettering fält för att välja kontakt (istället för att använda en listruta).
 SearchFilter=Sök filter alternativ
 NumberOfKeyToSearch=NBR tecken för att utlösa Sök: %s
 ViewFullDateActions=Visa fullständig datum åtgärder i tredje blad
@@ -67,8 +67,8 @@ ShowPreview=Visa förhandsgranskning
 PreviewNotAvailable=Förhandsgranska inte tillgänglig
 ThemeCurrentlyActive=Tema för tillfället
 CurrentTimeZone=PHP server tidszon
-MySQLTimeZone=TimeZone MySql (database)
-TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
+MySQLTimeZone=Timezone MySql (databas)
+TZHasNoEffect=Datum lagras och returneras av databasserver som om de hålls som LAGTS sträng. Den tidszon har effekt endast vid användning UNIX_TIMESTAMP funktion (som inte bör användas av Dolibarr, så databas TZ ska ha någon effekt, även om det ändras efter uppgifterna angavs).
 Space=Space
 Table=Tabell
 Fields=Fält
@@ -77,8 +77,8 @@ Mask=Mask
 NextValue=Nästa värde
 NextValueForInvoices=Nästa värde (fakturor)
 NextValueForCreditNotes=Nästa värde (kreditnotor)
-NextValueForDeposit=Next value (deposit)
-NextValueForReplacements=Next value (replacements)
+NextValueForDeposit=Nästa värde (deposition)
+NextValueForReplacements=Nästa värde (ersättare)
 MustBeLowerThanPHPLimit=Obs: Din PHP gränser varje filuppladdning storlek till <b>%s</b> %s, oavsett denna parameter värde är
 NoMaxSizeByPHPLimit=Obs: Ingen gräns som anges i din PHP konfiguration
 MaxSizeForUploadedFiles=Maximala storleken för uppladdade filer (0 att förkasta varje uppladdning)
@@ -107,8 +107,8 @@ OtherSetup=Andra setup
 CurrentValueSeparatorDecimal=Decimaltecken
 CurrentValueSeparatorThousand=Tusentalsavgränsare
 Destination=Destination
-IdModule=Module ID
-IdPermissions=Permissions ID
+IdModule=Modul ID
+IdPermissions=Behörighet ID
 Modules=Moduler
 ModulesCommon=Huvudmoduler
 ModulesOther=Andra moduler
@@ -120,7 +120,7 @@ LanguageBrowserParameter=Parameter %s
 LocalisationDolibarrParameters=Lokalisering parametrar
 ClientTZ=Kund tidzon (användare)
 ClientHour=Kund tid (användare)
-OSTZ=Server OS Time Zone
+OSTZ=Server OS tidszon
 PHPTZ=Tidszon PHP server
 PHPServerOffsetWithGreenwich=PHP server offset bredd Greenwich (sekunder)
 ClientOffsetWithGreenwich=Klient / Browser offset bredd Greenwich (sekunder)
@@ -129,7 +129,7 @@ CurrentHour=PHP server timme
 CompanyTZ=Tidszon företag (huvudföretag)
 CompanyHour=Hour företag (huvudföretag)
 CurrentSessionTimeOut=Aktuell session timeout
-YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris"
+YouCanEditPHPTZ=För att ställa in en annan PHP tidszon (inget krav), kan du försöka lägga till en fil .htacces med en rad som denna "setenv TZ Europe / Paris"
 OSEnv=OS Miljö
 Box=Låda
 Boxes=Lådor
@@ -219,7 +219,7 @@ AutomaticIfJavascriptDisabled=Automatisk om Javascript är avstängt
 AvailableOnlyIfJavascriptNotDisabled=Endast tillgängligt om JavaScript är inte oduglig
 AvailableOnlyIfJavascriptAndAjaxNotDisabled=Endast tillgängligt om JavaScript är inte oduglig
 Required=Obligatorisk
-UsedOnlyWithTypeOption=Used by some agenda option only
+UsedOnlyWithTypeOption=Används av en viss agenda alternativet
 Security=Säkerhet
 Passwords=Lösenord
 DoNotStoreClearPassword=Har ingen butik tydlig lösenord i databasen, men endast lagra krypterade värde (Aktiverad rekommenderas)
@@ -238,7 +238,7 @@ OfficialWebSiteFr=Officiella franska hemsida
 OfficialWiki=Dolibarr Wiki
 OfficialDemo=Dolibarr online demo
 OfficialMarketPlace=Officiella marknadsplats för externa moduler / addons
-OfficialWebHostingService=Referenced web hosting services (Cloud hosting)
+OfficialWebHostingService=Refererade webbhotell (Cloud hosting)
 ReferencedPreferredPartners=Preferred Partners
 OtherResources=Autres ressources
 ForDocumentationSeeWiki=För användarens eller utvecklarens dokumentation (Doc, FAQs ...), <br> ta en titt på Dolibarr Wiki: <br> <a href="%s" target="_blank"><b>%s</b></a>
@@ -260,9 +260,9 @@ MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPs Host (Ej definierad i
 MAIN_MAIL_EMAIL_FROM=Avsändare e-post för automatisk e-post (som standard i php.ini: <b>%s)</b>
 MAIN_MAIL_ERRORS_TO=Avsändarens e-postadress används för fel returer e-post skickas
 MAIN_MAIL_AUTOCOPY_TO= Skicka systematiskt en dold kol-kopia av alla skickade email till
-MAIN_MAIL_AUTOCOPY_PROPOSAL_TO= Send systematically a hidden carbon-copy of proposals sent by email to
-MAIN_MAIL_AUTOCOPY_ORDER_TO= Send systematically a hidden carbon-copy of orders sent by email to
-MAIN_MAIL_AUTOCOPY_INVOICE_TO= Send systematically a hidden carbon-copy of invoice sent by emails to
+MAIN_MAIL_AUTOCOPY_PROPOSAL_TO= Skicka systematiskt en dold kol-kopia av förslag skickas med e-post till
+MAIN_MAIL_AUTOCOPY_ORDER_TO= Skicka systematiskt en dold kol-kopia av order skickas med e-post till
+MAIN_MAIL_AUTOCOPY_INVOICE_TO= Skicka systematiskt en dold kol-kopia på faktura skickas med e-post till
 MAIN_DISABLE_ALL_MAILS=Inaktivera alla e-postmeddelanden sendings (på försök eller demos)
 MAIN_MAIL_SENDMODE=Metod för att skicka e-post
 MAIN_MAIL_SMTPS_ID=SMTP-ID om autentisering krävs
@@ -296,13 +296,13 @@ UnpackPackageInDolibarrRoot=Packa upp paketet fil till Dolibarr s katalog <b>%s<
 SetupIsReadyForUse=Installera är klar och Dolibarr är klar att användas med den nya komponenten.
 NotExistsDirect=Den alternativa rotkatalogen är inte definierad.<br>
 InfDirAlt=Sedab version 3 är det möjligt att definiera en alternativ rotkatalog. Detta medger en gemensam plats att lagra plugin och anpassade mallar.<br>Skapa en katalog i Dolibarrs rot (t.ex. custom).<br>
-InfDirExample=<br>Then declare it in the file conf.php<br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>*These lines are commented with "#", to uncomment only remove the character.
+InfDirExample=<br> Sedan förklara den i filen conf.php <br> $ Dolibarr_main_url_root_alt = 'http: // myserver / anpassad " <br> $ Dolibarr_main_document_root_alt = '/ sökväg / till / Dolibarr / htdocs / anpassad " <br> * Dessa linjer kommen med "#", för att kommentera bort bara ta bort tecknet.
 YouCanSubmitFile=Välj modul:
 CurrentVersion=Dolibarr nuvarande version
 CallUpdatePage=Gå till sidan som uppdaterar databasen struktur och data: %s.
 LastStableVersion=Senaste stabila version
 GenericMaskCodes=Du kan ange någon numrering mask. I denna mask skulle följande taggar användas: <br> <b>(000000)</b> motsvarar ett antal som kommer att ökas på varje %s. Ange så många nollor som den önskade längden på disken. Räknaren kommer att fyllas ut med nollor från vänster för att få så många nollor som masken. <br> <b>(000000 000)</b> samma som tidigare men en kompensation som motsvarar det antal till höger om tecknet + tillämpas med början den första %s. <br> <b>(000000 @ x)</b> samma som tidigare, men räknaren återställs till noll när månaden x uppnås (x mellan 1 och 12). Om detta alternativ används och x är 2 eller högre, då sekvensen (yy) (mm) eller (ÅÅÅÅ) (mm) krävs också. <br> <b>(Dd)</b> dag (01 till 31). <br> <b>(Mm)</b> månad (01 till 12). <br> <b>(Yy), (ÅÅÅÅ) eller (y)</b> år under 2, 4 eller ett nummer. <br>
-GenericMaskCodes2=<b>{cccc}</b> the client code on n characters<br><b>{cccc000}</b> the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.<br><b>{tttt}</b> The code of thirdparty type on n characters (see dictionary-thirdparty types).<br>
+GenericMaskCodes2=<b>{Cccc}</b> klientkoden på n tecken <br> <b>{Cccc000}</b> klientkoden på n tecken följs av en räknare dedikerad för kunden. Denna räknare tillägnad kund återställs vid samma tidpunkt än den globala räknare. <br> <b>{Tttt}</b> Koden för tredjeparts typ på n tecken (se ordlistan-tredjeparts typer). <br>
 GenericMaskCodes3=Alla andra tecken i masken förblir intakt. <br> Blanksteg är inte tillåtna. <br>
 GenericMaskCodes4a=<u>Exempel på 99. %s den tredje part TheCompany gjort 2007/01/31:</u> <br>
 GenericMaskCodes4b=<u>Exempel på tredje part som har skapats på 2007/03/01:</u> <br>
@@ -314,7 +314,7 @@ ServerNotAvailableOnIPOrPort=Servern är inte tillgänglig på adress <b>%s</b>
 DoTestServerAvailability=Test serveranslutning
 DoTestSend=Testa att skicka
 DoTestSendHTML=Testa att skicka HTML
-ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask.
+ErrorCantUseRazIfNoYearInMask=Fel, kan inte använda alternativet @ för att återställa räknaren varje år om sekvens {åå} eller {yyyy} inte är i mask.
 ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Fel, kan inte använda alternativet @ om sekvensen (yy) (mm) eller (ÅÅÅÅ) (mm) inte är i mask.
 UMask=Umask parameter för nya filer på Unix / Linux / BSD-filsystemet.
 UMaskExplanation=Denna parameter gör att du kan definiera behörigheter som standard på filer skapade av Dolibarr på servern (under upp till exempel). <br> Det måste vara det oktala värdet (till exempel 0666 innebär läsa och skriva för alla). <br> Denna parameter är meningslöst på en Windows server.
@@ -362,7 +362,7 @@ GetSecuredUrl=Få beräknat URL
 ButtonHideUnauthorized=Visa ej knappar för åtgärder för vilka behörighet saknas istället för att visa knapparna inaktiverade
 OldVATRates=Gammal momssats
 NewVATRates=Ny momssats
-PriceBaseTypeToChange=Modify on prices with base reference value defined on
+PriceBaseTypeToChange=Ändra om priser med bas referensvärde som definieras på
 MassConvert=Starta masskonvertering
 String=String
 TextLong=Lång text
@@ -379,29 +379,29 @@ ExtrafieldSelectList = Välj från tabell
 ExtrafieldSeparator=Avskiljare
 ExtrafieldCheckBox=Kryssruta
 ExtrafieldRadio=Radioknapp
-ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
-ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
-ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
-ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
+ExtrafieldParamHelpselect=Parametrar listan måste vara som nyckel, värde <br><br> till exempel: <br> 1, value1 <br> 2, värde2 <br> 3, value3 <br> ... <br><br> För att få en lista beroende på en annan: <br> 1, value1 | parent_list_code: parent_key <br> 2, värde2 | parent_list_code: parent_key
+ExtrafieldParamHelpcheckbox=Parametrar listan måste vara som nyckel, värde <br><br> till exempel: <br> 1, value1 <br> 2, värde2 <br> 3, value3 <br> ...
+ExtrafieldParamHelpradio=Parametrar listan måste vara som nyckel, värde <br><br> till exempel: <br> 1, value1 <br> 2, värde2 <br> 3, value3 <br> ...
+ExtrafieldParamHelpsellist=Parametrar lista kommer från en tabell <br> Syntax: tabellnamn: label_field: id_field :: filtrering <br> Exempel: c_typent: libelle: id :: filter <br><br> Filtret kan vara ett enkelt test (t.ex. aktiv = 1) för att visa endast aktiv värde <br> Om du vill filtrera på extrafields använder syntaxt extra.fieldcode = ... (där fältkoden är koden för Mig &) <br><br> För att få en lista beroende på en annan: <br> c_typent: libelle: id: parent_list_code | parent_column: filter
 LibraryToBuildPDF=Katalog som används för att skapa PDF
-WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
-LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax)
+WarningUsingFPDF=Varning: Din <b>conf.php</b> innehåller direktiv <b>dolibarr_pdf_force_fpdf = 1.</b> Detta innebär att du använder fpdf bibliotek för att generera PDF-filer. Detta bibliotek är gammalt och inte stöder en mängd funktioner (Unicode, bild öppenhet, kyrilliska, arabiska och asiatiska språk, ...), så att du kan uppleva fel under PDF generation. <br> För att lösa detta och ha ett fullt stöd för PDF-generering, ladda ner <a href="http://www.tcpdf.org/" target="_blank">TCPDF bibliotek</a> , sedan kommentera eller ta bort linjen <b>$ dolibarr_pdf_force_fpdf = 1,</b> och lägg istället <b>$ dolibarr_lib_TCPDF_PATH = 'path_to_TCPDF_dir'</b>
+LocalTaxDesc=Vissa länder tillämpar 2 eller 3 skatter på varje fakturarad. Om så är fallet, välj typ för andra och tredje skatte- och dess hastighet. Möjlig typ är: <br> 1: lokal skatt tillämpas på produkter och tjänster utan moms (moms inte tillämpas på lokal skatt) <br> 2: lokal skatt tillämpas på produkter och tjänster innan moms (moms beräknas på beloppet + localtax) <br> 3: lokal skatt tillämpas på produkter utan moms (moms inte tillämpas på lokal skatt) <br> 4: lokal skatt tillämpas på produkter innan moms (moms beräknas på beloppet + localtax) <br> 5: lokal skatt tillämpas på tjänster utan moms (moms inte tillämpas på lokal skatt) <br> 6: lokal skatt tillämpas på tjänster innan moms (moms beräknas på beloppet + localtax)
 SMS=SMS
 LinkToTestClickToDial=Skriv in ett telefonnummer att ringa upp för att visa en länk för att prova ClickToDial url för användare <strong>%s</strong>
 RefreshPhoneLink=Uppdatera länk
 LinkToTest=Väljbar länk genererad för användare <strong>%s</strong> (klicka på tfn-nummer för att prova)
 KeepEmptyToUseDefault=Lämna tom för standardvärde
 DefaultLink=Standardlänk
-ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
-ExternalModule=External module - Installed into directory %s
-BarcodeInitForThirdparties=Mass barcode init for thirdparties
-BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
-CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> records on <strong>%s</strong> %s without barcode defined.
-InitEmptyBarCode=Init value for next %s empty records
+ValueOverwrittenByUserSetup=Varning, kan detta värde skrivas över av användarspecifik installation (varje användare kan ställa in sin egen clicktodial url)
+ExternalModule=Extern modul - Installerad i katalogen %s
+BarcodeInitForThirdparties=Mäss streckkod init för thirdparties
+BarcodeInitForProductsOrServices=Mass streckkod init eller återställning efter produkter eller tjänster
+CurrentlyNWithoutBarCode=För närvarande har <strong>du% s</strong> skivor <strong>på% s%</strong> s utan streckkod definieras.
+InitEmptyBarCode=Init värde för nästa% s tomma poster
 EraseAllCurrentBarCode=Radera alla nuvarande streckkoder
 ConfirmEraseAllCurrentBarCode=Vill du radera alla nuvarande streckkoder?
 AllBarcodeReset=Alla värden för streckkod har raderats
-NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
+NoBarcodeNumberingTemplateDefined=Ingen numrering streckkod mall aktiverat i streckkodsmodul setup.
 NoRecordWithoutBarcodeDefined=Ingen post utan angivet värde för streckkod.
 
 # Modules
@@ -480,11 +480,11 @@ Module400Desc=Projektets ledning innanför andra moduler
 Module410Name=WebCalendar
 Module410Desc=WebCalendar integration
 Module500Name=Speciella utgifter (skatt, sociala avgifter, utdelningar)
-Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
+Module500Desc=Förvaltning av särskilda kostnader som skatter, sociala avgifter, utdelningar och löner
 Module510Name=Löner
-Module510Desc=Management of employees salaries and payments
+Module510Desc=Förvaltning av de anställdas löner och betalningar
 Module600Name=Anmälningar
-Module600Desc=Skicka meddelanden via e-post på några Dolibarr affärshändelser till annans kontakter
+Module600Desc=Skicka e-postmeddelanden på vissa Dolibarr affärshändelser till kontakter tredjeparts (inställnings definieras på varje tredjeparts)
 Module700Name=Donationer
 Module700Desc=Donation ledning
 Module1200Name=Mantis
@@ -505,37 +505,37 @@ Module2600Name=WebServices
 Module2600Desc=Aktivera Dolibarr webbtjänster server
 Module2700Name=Gravatar
 Module2700Desc=Använder online Gravatar tjänst (www.gravatar.com) för att visa foto av användare / medlemmar (hittade med sin e-post). Behöver en internet
-Module2800Desc=FTP Client
+Module2800Desc=FTP-klient
 Module2900Name=GeoIPMaxmind
 Module2900Desc=GeoIP Maxmind omvandlingar kapacitet
 Module3100Name=Skype
-Module3100Desc=Add a Skype button into card of adherents / third parties / contacts
+Module3100Desc=Lägga till en Skype-knapp i kort anhängare / tredje man / kontakter
 Module5000Name=Multi-bolag
 Module5000Desc=Gör att du kan hantera flera företag
 Module6000Name=Workflow
 Module6000Desc=Workflow management
-Module20000Name=Ledighet
-Module20000Desc=Deklarera och följ anställdas ledighet
-Module39000Name=Product batch
-Module39000Desc=Batch number, eat-by and sell-by date management on products
+Module20000Name=Lämna Framställningar förvaltning
+Module20000Desc=Deklarera och följ de anställda lämnar förfrågningar
+Module39000Name=Produktsats
+Module39000Desc=Batchnummer, äter-by och bäst före-datum hantering av produkter
 Module50000Name=Paybox
 Module50000Desc=Modul för att erbjuda en online-betalning sidan genom kreditkort med Paybox
 Module50100Name=Point of sales
 Module50100Desc=Point of sales modul
-Module50200Name= Paypal
-Module50200Desc= Modul för att erbjuda en online-betalning sidan med kreditkort med Paypal
-Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double parties)
+Module50200Name=Paypal
+Module50200Desc=Modul för att erbjuda en online-betalning sidan med kreditkort med Paypal
+Module50400Name=Redovisning (avancerad)
+Module50400Desc=Bokföring och redovisning (dubbla parter)
 Module54000Name=PrintIPP
-Module54000Desc=Print via Cups IPP Printer.
-Module55000Name=Open Poll
-Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...)
-Module59000Name=Margins
-Module59000Desc=Module to manage margins
-Module60000Name=Commissions
-Module60000Desc=Module to manage commissions
-Module150010Name=Batch number, eat-by date and sell-by date
-Module150010Desc=batch number, eat-by date and sell-by date management for product
+Module54000Desc=Skriv ut via Cups IPP-skrivare.
+Module55000Name=Öppen Poll
+Module55000Desc=Modul för att göra online omröstningar (som Doodle, öar Rdvz, ...)
+Module59000Name=Marginaler
+Module59000Desc=Modul för att hantera marginaler
+Module60000Name=Provision
+Module60000Desc=Modul för att hantera uppdrag
+Module150010Name=Batchnummer, äter före-datum och bäst före-datum
+Module150010Desc=batchnummer, äter före-datum och bäst före-datum hantering för produkt
 Permission11=Läs fakturor
 Permission12=Skapa / ändra fakturor
 Permission13=Unvalidate fakturor
@@ -584,7 +584,7 @@ Permission95=Läs rapporter
 Permission101=Läs sendings
 Permission102=Skapa / ändra sendings
 Permission104=Validate sendings
-Permission106=Export sendings
+Permission106=Exportsend
 Permission109=Ta bort sendings
 Permission111=Läs finansiella räkenskaper
 Permission112=Skapa / ändra / radera och jämför transaktioner
@@ -611,10 +611,11 @@ Permission162=Skapa / ändra avtal
 Permission163=Aktivera en tjänst av ett kontrakt
 Permission164=Inaktivera en tjänst av ett kontrakt
 Permission165=Radera kontrakt
-Permission171=Läs resor
-Permission172=Skapa / modifiera resor
-Permission173=Ta bort resor
-Permission178=Export resor
+Permission171=Läs resor och utgifter (eget och hans underordnade)
+Permission172=Skapa / ändra resor och kostnader
+Permission173=Ta bort resor och kostnader
+Permission174=Läsa alla resor och kostnader
+Permission178=Export resor och kostnader
 Permission180=Läs leverantörer
 Permission181=Läs leverantör order
 Permission182=Skapa / ändra leverantör order
@@ -641,9 +642,9 @@ Permission221=Läs emailings
 Permission222=Skapa / ändra emailings (ämne, mottagare ...)
 Permission223=Validera emailings (medger sändning)
 Permission229=Ta bort emailings
-Permission237=View recipients and info
-Permission238=Manually send mailings
-Permission239=Delete mailings after validation or sent
+Permission237=Visa mottagare och info
+Permission238=Skicka försändelserna manuellt
+Permission239=Radera utskick efter validering eller skickas
 Permission241=Läs kategorier
 Permission242=Skapa / ändra kategorier
 Permission243=Ta bort kategorier
@@ -688,10 +689,10 @@ Permission401=Läs rabatter
 Permission402=Skapa / ändra rabatter
 Permission403=Validate rabatter
 Permission404=Ta bort rabatter
-Permission510=Read Salaries
-Permission512=Create/modify salaries
-Permission514=Delete salaries
-Permission517=Export salaries
+Permission510=Läs Löner
+Permission512=Skapa / ändra löner
+Permission514=Radera löner
+Permission517=Export löner
 Permission531=Läs tjänster
 Permission532=Skapa / modifiera tjänster
 Permission534=Ta bort tjänster
@@ -725,7 +726,7 @@ Permission1233=Validate leverantörsfakturor
 Permission1234=Ta bort leverantörsfakturor
 Permission1235=Skicka leverantörsfakturor via e-post
 Permission1236=Export leverantörsfakturor, attribut och betalningar
-Permission1237=Export supplier orders and their details
+Permission1237=Export leverantörsorder och tillhörande information
 Permission1251=Kör massiv import av externa data till databasen (data last)
 Permission1321=Export kundfakturor, attribut och betalningar
 Permission1421=Export kundorder och attribut
@@ -743,44 +744,44 @@ Permission2501=Läsa dokument
 Permission2502=Skicka eller ta bort dokument
 Permission2503=Lämna eller ta bort dokument
 Permission2515=Setup dokument kataloger
-Permission2801=Use FTP client in read mode (browse and download only)
-Permission2802=Use FTP client in write mode (delete or upload files)
-Permission50101=Use Point of sales
+Permission2801=Använd FTP-klient i läsläge (bläddra och ladda endast)
+Permission2802=Använd FTP-klient i skrivläge (radera eller ladda upp filer)
+Permission50101=Användning Försäljningsställen
 Permission50201=Läs transaktioner
 Permission50202=Importera transaktioner
 Permission54001=Print
-Permission55001=Read polls
-Permission55002=Create/modify polls
-Permission59001=Read commercial margins
-Permission59002=Define commercial margins
-DictionaryCompanyType=Thirdparties type
-DictionaryCompanyJuridicalType=Juridical kinds of thirdparties
-DictionaryProspectLevel=Prospect potential level
-DictionaryCanton=State/Cantons
-DictionaryRegion=Regions
-DictionaryCountry=Countries
-DictionaryCurrency=Currencies
-DictionaryCivility=Civility title
-DictionaryActions=Type of agenda events
-DictionarySocialContributions=Social contributions types
-DictionaryVAT=VAT Rates or Sales Tax Rates
-DictionaryRevenueStamp=Amount of revenue stamps
-DictionaryPaymentConditions=Payment terms
-DictionaryPaymentModes=Payment modes
-DictionaryTypeContact=Contact/Address types
-DictionaryEcotaxe=Ecotax (WEEE)
-DictionaryPaperFormat=Paper formats
-DictionaryFees=Type of fees
-DictionarySendingMethods=Shipping methods
-DictionaryStaff=Staff
-DictionaryAvailability=Delivery delay
-DictionaryOrderMethods=Ordering methods
+Permission55001=Läs omröstningar
+Permission55002=Skapa / ändra omröstningar
+Permission59001=Läs kommersiella marginaler
+Permission59002=Definiera kommersiella marginaler
+DictionaryCompanyType=Thirdparties typ
+DictionaryCompanyJuridicalType=Juridiska sorters thirdparties
+DictionaryProspectLevel=Prospect potentiella nivå
+DictionaryCanton=Statliga / kantoner
+DictionaryRegion=Regioner
+DictionaryCountry=Länder
+DictionaryCurrency=Valutor
+DictionaryCivility=Civility titel
+DictionaryActions=Typ av dagordningen händelser
+DictionarySocialContributions=Sociala avgifter typer
+DictionaryVAT=Moms Priser och Sales Tax Rates
+DictionaryRevenueStamp=Mängd skattestämpel
+DictionaryPaymentConditions=Betalningsvillkor
+DictionaryPaymentModes=Betalningssätten
+DictionaryTypeContact=Kontakt / adresstyper
+DictionaryEcotaxe=Miljöskatt (WEEE)
+DictionaryPaperFormat=Pappersformat
+DictionaryFees=Typ av avgifter
+DictionarySendingMethods=Fraktmetoder
+DictionaryStaff=Personal
+DictionaryAvailability=Leveransförsening
+DictionaryOrderMethods=Beställningsmetoder
 DictionarySource=Ursprung av affärsförslag / beställning
-DictionaryAccountancyplan=Chart of accounts
-DictionaryAccountancysystem=Models for chart of accounts
+DictionaryAccountancyplan=Kontoplan
+DictionaryAccountancysystem=Modeller för kontoplan
 SetupSaved=Setup sparas
 BackToModuleList=Tillbaka till moduler lista
-BackToDictionaryList=Back to dictionaries list
+BackToDictionaryList=Tillbaka till ordböcker listan
 VATReceivedOnly=Särskilda räntesats inte
 VATManagement=Moms Management
 VATIsUsedDesc=Den momssats som standard när du skapar framtidsutsikter, fakturor, order etc följa aktiva standard regeln: <br> Om säljaren är föremål för mervärdesskatt, då moms som standard = 0. Slut på regeln. <br> Om (den som säljer land = köparlandet), sedan den mervärdesskatt som standard = mervärdesskatt av produkten vid försäljning landet. Slut på regeln. <br> Om säljaren och köparen i Europeiska gemenskapen och varor transporttjänster (bil, fartyg, flygplan), standard moms = 0 (Den mervärdesskatt som skall betalas av köparen vid customoffice av sitt land och inte på säljaren). Slut på regeln. <br> Om säljaren och köparen i Europeiska gemenskapen och köparen är inte ett företag, sedan den mervärdesskatt som standard = moms på produkt som säljs. Slut på regeln. <br> Om säljaren och köparen i Europeiska gemenskapen och köparen är ett företag, då moms som standard = 0. Slut på regeln. <br> Else föreslagna standard moms = 0. Slut på regeln.
@@ -788,19 +789,19 @@ VATIsNotUsedDesc=Som standard föreslås moms 0 som kan användas för de fall s
 VATIsUsedExampleFR=I Frankrike betyder det företag eller organisationer som har en verklig skattesystemet (förenklad verkliga eller normal verklig). Ett system där mervärdesskatt ska deklareras.
 VATIsNotUsedExampleFR=I Frankrike betyder det föreningar som inte är moms deklarerats eller företag, organisationer eller fria yrken som har valt mikroföretag skattesystemet (mervärdesskatt i franchise) och betalade en franchise moms utan momsdeklaration. Detta val kommer att visa referens &quot;Ej tillämpligt mervärdesskatt - konst-293B av CGI&quot; på fakturorna.
 ##### Local Taxes #####
-LTRate=Rate
-LocalTax1IsUsed=Use second tax
-LocalTax1IsNotUsed=Do not use second tax
-LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
-LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
-LocalTax1Management=Second type of tax
+LTRate=Betyg
+LocalTax1IsUsed=Använda andra skatte
+LocalTax1IsNotUsed=Använd inte andra skatte
+LocalTax1IsUsedDesc=Använd en annan typ av skatt (exklusive moms)
+LocalTax1IsNotUsedDesc=Använd inte andra typer av skatt (exklusive moms)
+LocalTax1Management=Andra typen av skatt
 LocalTax1IsUsedExample=
 LocalTax1IsNotUsedExample=
-LocalTax2IsUsed=Use third tax
-LocalTax2IsNotUsed=Do not use third tax
-LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
-LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
-LocalTax2Management=Third type of tax
+LocalTax2IsUsed=Använd tredje skatt
+LocalTax2IsNotUsed=Använd inte tredje skatt
+LocalTax2IsUsedDesc=Använd en tredje typ av skatt (exklusive moms)
+LocalTax2IsNotUsedDesc=Använd inte andra typer av skatt (exklusive moms)
+LocalTax2Management=Tredje typen av skatt
 LocalTax2IsUsedExample=
 LocalTax2IsNotUsedExample=
 LocalTax1ManagementES= RE Förvaltning
@@ -813,13 +814,13 @@ LocalTax2IsUsedDescES= RE räntesats som standard när du skapar framtidsutsikte
 LocalTax2IsNotUsedDescES= Som standard föreslås IRPF är 0. Slut på regeln.
 LocalTax2IsUsedExampleES= I Spanien, frilansare och oberoende yrkesutövare som tillhandahåller tjänster och företag som har valt skattesystemet i moduler.
 LocalTax2IsNotUsedExampleES= I Spanien de bussines inte omfattas av skattesystemet i moduler.
-CalcLocaltax=Reports
-CalcLocaltax1ES=Sales - Purchases
-CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
-CalcLocaltax2ES=Purchases
-CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases
-CalcLocaltax3ES=Sales
-CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
+CalcLocaltax=Rapporter
+CalcLocaltax1ES=Försäljning - Inköp
+CalcLocaltax1Desc=Lokala skatter rapporter beräknas med skillnaden mellan localtaxes försäljning och localtaxes inköp
+CalcLocaltax2ES=Inköp
+CalcLocaltax2Desc=Lokala skatter rapporter är summan av localtaxes inköp
+CalcLocaltax3ES=Försäljning
+CalcLocaltax3Desc=Lokala skatter rapporter är summan av localtaxes försäljning
 LabelUsedByDefault=Etikett som används som standard om ingen översättning kan hittas för kod
 LabelOnDocuments=Etikett på dokument
 NbOfDays=Nb dagar
@@ -844,7 +845,7 @@ PhpConf=Conf
 PhpWebLink=Webb-php länk
 Pear=Päron
 PearPackages=Päron paket
-Browser=Browser
+Browser=Webbläsare
 Server=Server
 Database=Databas
 DatabaseServer=Databas värd
@@ -871,7 +872,7 @@ MenuCompanySetup=Företag / stiftelsen
 MenuNewUser=Ny användare
 MenuTopManager=Toppmenyn chef
 MenuLeftManager=Vänstermenyn chef
-MenuManager=Menu manager
+MenuManager=Menyhanteraren
 MenuSmartphoneManager=Smartphone menyhanteraren
 DefaultMenuTopManager=Toppmenyn chef
 DefaultMenuLeftManager=Vänstermenyn chef
@@ -930,14 +931,14 @@ SetupDescription5=Andra menyalternativ hantera valfria parametrar.
 EventsSetup=Setup för händelser stockar
 LogEvents=Säkerhetsgranskning evenemang
 Audit=Revision
-InfoDolibarr=Infos Dolibarr
-InfoBrowser=Infos Browser
-InfoOS=Infos OS
-InfoWebServer=Infos web server
-InfoDatabase=Infos database
-InfoPHP=Infos PHP
-InfoPerf=Infos performances
-BrowserName=Browser name
+InfoDolibarr=Information Dolibarr
+InfoBrowser=Information Browser
+InfoOS=Information om OS
+InfoWebServer=Information om webbserver
+InfoDatabase=Information om databasen
+InfoPHP=Information om PHP
+InfoPerf=Information om uppträdanden
+BrowserName=Browser namn
 BrowserOS=Browser OS
 ListEvents=Revision evenemang
 ListOfSecurityEvents=Förteckning över Dolibarr säkerhetshändelser
@@ -959,7 +960,7 @@ TriggerDisabledAsModuleDisabled=Triggers i denna fil är funktionshindrade modul
 TriggerAlwaysActive=Triggers i denna fil är alltid aktiva, oavsett är det aktiverade Dolibarr moduler.
 TriggerActiveAsModuleActive=Triggers i denna fil är verksamma som modul <b>%s</b> är aktiverat.
 GeneratedPasswordDesc=Ange här vilken regel du vill använda för att generera nytt lösenord om du begära att få automatiskt genererat lösenord
-DictionaryDesc=Define here all reference datas. You can complete predefined value with yours.
+DictionaryDesc=Här definierar du alla referens datas. Du kan komplettera fördefinierat värde med din.
 ConstDesc=Denna sida kan du redigera alla andra parametrar som inte fanns i tidigare sidor. De är reserverade parametrar för avancerade utvecklare eller troubleshouting.
 OnceSetupFinishedCreateUsers=Varning, du är en Dolibarr administratör. Administratör användare används för att ställa in Dolibarr. För en vanlig användning av Dolibarr, rekommenderas att använda en icke administratör skapas från Användare & Grupper menyn.
 MiscellaneousDesc=Ange här alla andra parametrar som rör säkerhet.
@@ -981,7 +982,7 @@ BackupDesc2=* Spara innehållet i de dokument katalog <b>(%s)</b> som innehålle
 BackupDesc3=* Spara innehållet i din databas till en soptipp fil. för detta kan du använda följande assistent.
 BackupDescX=Arkiverade katalogen bör förvaras på ett säkert ställe.
 BackupDescY=Den genererade dumpfilen bör förvaras på ett säkert ställe.
-BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
+BackupPHPWarning=Backup kan inte guaranted med denna metod. Föredrar tidigare ett
 RestoreDesc=Om du vill återställa en Dolibarr säkerhetskopia måste du:
 RestoreDesc2=* Återställ arkivfil (zip-fil till exempel) av handlingar katalog att extrahera träd av filer i dokument katalog med en ny Dolibarr anläggning eller i den här aktuella dokument directoy <b>(%s).</b>
 RestoreDesc3=* Återställ data från en säkerhetskopia dumpfil in i databasen av den nya Dolibarr installationen eller i databasen för den aktuella installationen. Varning när återställningen är klar måste du använda ett användarnamn / lösenord, som fanns när säkerhetskopian gjordes, att ansluta igen. Om du vill återställa en backup databas i den nuvarande installationen kan du följa denna assistent.
@@ -995,9 +996,9 @@ YourPHPDoesNotHaveSSLSupport=SSL-funktioner inte är tillgängliga i din PHP
 DownloadMoreSkins=Mer skinn att ladda ner
 SimpleNumRefModelDesc=Returnera referensnummer format %syymm-nnnn där YY är år, mm månaden och nnnn är en sekvens utan hål och utan återställning
 ShowProfIdInAddress=Visa branschorganisationer id med adresser på dokument
-ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
+ShowVATIntaInAddress=Dölj moms Intra num med adresser på dokument
 TranslationUncomplete=Partiell översättning
-SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="http://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>.
+SomeTranslationAreUncomplete=Vissa språk kan vara delvis översatt eller maj innehåller fel. Om du upptäcker några, kan du fixa språkfiler som registrerar till <a href="http://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a> .
 MenuUseLayout=Gör vertikal meny hidable (tillval Javascript måste inte inaktiveras)
 MAIN_DISABLE_METEO=Inaktivera meteo vy
 TestLoginToAPI=Testa logga in API
@@ -1010,18 +1011,18 @@ MAIN_PROXY_USER=Logga in för att använda proxyservern
 MAIN_PROXY_PASS=Lösenord för att använda proxyservern
 DefineHereComplementaryAttributes=Här definierar du alla atributes inte redan finns tillgänglig som standard, och att du vill bli stöd för %s.
 ExtraFields=Komplementära egenskaper
-ExtraFieldsLines=Complementary attributes (lines)
-ExtraFieldsThirdParties=Complementary attributes (thirdparty)
-ExtraFieldsContacts=Complementary attributes (contact/address)
-ExtraFieldsMember=Complementary attributes (member)
-ExtraFieldsMemberType=Complementary attributes (member type)
-ExtraFieldsCustomerOrders=Complementary attributes (orders)
-ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
-ExtraFieldsSupplierOrders=Complementary attributes (orders)
-ExtraFieldsSupplierInvoices=Complementary attributes (invoices)
-ExtraFieldsProject=Complementary attributes (projects)
-ExtraFieldsProjectTask=Complementary attributes (tasks)
-ExtraFieldHasWrongValue=Attribute %s has a wrong value.
+ExtraFieldsLines=Kompletterande attribut (rader)
+ExtraFieldsThirdParties=Kompletterande attribut (tredjeparts)
+ExtraFieldsContacts=Kompletterande attribut (kontaktperson / adress)
+ExtraFieldsMember=Kompletterande attribut (medlem)
+ExtraFieldsMemberType=Kompletterande attribut (ledamot typ)
+ExtraFieldsCustomerOrders=Kompletterande attribut (beslut)
+ExtraFieldsCustomerInvoices=Kompletterande attribut (fakturor)
+ExtraFieldsSupplierOrders=Kompletterande attribut (beslut)
+ExtraFieldsSupplierInvoices=Kompletterande attribut (fakturor)
+ExtraFieldsProject=Kompletterande attribut (projekt)
+ExtraFieldsProjectTask=Kompletterande attribut (arbetsuppgifter)
+ExtraFieldHasWrongValue=Attribut% s har ett felaktigt värde.
 AlphaNumOnlyCharsAndNoSpace=endast alfanumeriska tecken utan mellanslag
 AlphaNumOnlyLowerCharsAndNoSpace=endast gemena alfanumeriska tecken utan mellanslag
 SendingMailSetup=Inställning av sändningarna via e-post
@@ -1030,30 +1031,30 @@ PathToDocuments=Sökväg till handlingar
 PathDirectory=Directory
 SendmailOptionMayHurtBuggedMTA=Funktion för att skicka e-post med hjälp av metoden &quot;PHP mail direkt&quot; kommer att generera ett e-postmeddelande som kanske inte korrekt tolkas av vissa som får e-postservrar. Resultatet är att vissa post inte kan läsas av människor som tillhandahålls av thoose avlyssnat plattformar. Det är fallet för vissa Internetleverantörer (Ex: Orange i Frankrike). Detta är inte ett problem till Dolibarr heller i PHP, men på inkommande e-post server. Du kan dock lägga möjlighet MAIN_FIX_FOR_BUGGED_MTA till 1 i Setup - andra att ändra Dolibarr att undvika detta. Du kan dock uppleva problem med andra servrar som strikt respektera SMTP standard. Den andra lösningen (Rekomenderad) är att använda metoden &quot;SMTP socket bibliotek&quot; som inte har några nackdelar.
 TranslationSetup=Konfigurera översättning
-TranslationDesc=Choice of language visible on screen can be modified:<br>* Globally from menu <strong>Home - Setup - Display</strong><br>* For user only from tab <strong>User display</strong> of user card (click on login on top of screen).
-TotalNumberOfActivatedModules=Total number of activated feature modules: <b>%s</b>
+TranslationDesc=Val av språk visas på skärmen kan ändras: <br> * Globalt från menyn <strong>Hem - Inställningar - Display</strong> <br> * För användaren endast från fliken <strong>Användar visning</strong> av användarkort (klicka på inloggning på toppen av skärmen).
+TotalNumberOfActivatedModules=Totalt antal aktiverade <b>funktionsmoduler:% s</b>
 YouMustEnableOneModule=Minst 1 modul måste aktiveras
 ClassNotFoundIntoPathWarning=Klass %s inte funnen i PHP-sökvägen
 YesInSummer=Ja, under sommaren
-OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users):
-SuhosinSessionEncrypt=Session storage encrypted by Suhosin
-ConditionIsCurrently=Condition is currently %s
-TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
-YouUseBestDriver=You use driver %s that is best driver available currently.
-YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
-NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
-SearchOptim=Search optimization
-YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
-BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
-BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
-XDebugInstalled=XDebug is loaded.
-XCacheInstalled=XCache is loaded.
-AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink
-FieldEdition=Edition of field %s
-FixTZ=TimeZone fix
-FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
-GetBarCode=Get barcode
-EmptyNumRefModelDesc=The code is free. This code can be modified at any time.
+OnlyFollowingModulesAreOpenedToExternalUsers=Obs, endast följande moduler öppnas för externa användare (oavsett är tillstånd från sådana användare):
+SuhosinSessionEncrypt=Session lagring krypteras av Suhosin
+ConditionIsCurrently=Condition är för närvarande% s
+TestNotPossibleWithCurrentBrowsers=Automatisk identifiering inte är möjlig
+YouUseBestDriver=Du använder drivrutinen %s som är bäst drivrutin tillgänglig för tillfället.
+YouDoNotUseBestDriver=Du använder enhet %s men förar %s rekommenderas.
+NbOfProductIsLowerThanNoPb=Du har bara %s produkter / tjänster i databasen. Detta innebär inte behövs någon särskild optimering.
+SearchOptim=Sökoptimering
+YouHaveXProductUseSearchOptim=Du har %s produkter i databasen. Du bör lägga den ständiga PRODUCT_DONOTSEARCH_ANYWHERE till 1 till Home-Setup-Övrigt begränsar du sökningen till början av strängar som gör möjligt för databasen att använda index och du bör få ett omedelbart svar.
+BrowserIsOK=Du använder webbläsaren %s. Denna webbläsare är ok för säkerhet och prestanda.
+BrowserIsKO=Du använder webbläsaren %s. Denna webbläsare är känt för att vara ett dåligt val för säkerhet, prestanda och tillförlitlighet. Vi rekommendera att du använder Firefox, Chrome, Opera eller Safari.
+XDebugInstalled=Xdebug är laddad.
+XCacheInstalled=Xcache är laddad.
+AddRefInList=Display kund / leverantörs ref i listan (välj lista eller kombinationsrutan) och de flesta av hyperlänk
+FieldEdition=Edition av fält %s
+FixTZ=Timezone fix
+FillThisOnlyIfRequired=Exempel: +2 (fyll endast om tidszon offset problem är erfarna)
+GetBarCode=Få streckkod
+EmptyNumRefModelDesc=Koden är fri. Koden kan ändras när som helst.
 ##### Module password generation
 PasswordGenerationStandard=Återgå ett lösenord som genererats enligt interna Dolibarr algoritm: 8 tecken som innehåller delade siffror och tecken med gemener.
 PasswordGenerationNone=Tyder inte på någon genererade lösenord. Lösenord måste skriva in manuellt.
@@ -1074,11 +1075,11 @@ ModuleCompanyCodeAquarium=Avkastningen en bokföring kod byggd med %s följt av
 ModuleCompanyCodePanicum=Avkastningen en tom bokföring kod.
 ModuleCompanyCodeDigitaria=Bokföring kod beror på tredje part kod. Koden består av tecknet &quot;C&quot; i den första positionen och därefter det första fem bokstäver av tredje part koden.
 UseNotifications=Använd anmälningar
-NotificationsDesc=E-post meddelanden funktionen kan du tyst skicka automatiska e-post, för vissa Dolibarr evenemang, till tredje man (kunder eller leverantörer) som är konfigurerade för. Val av aktiva anmälan och mål kontakter görs en tredje part i taget.
+NotificationsDesc=E-post meddelanden funktionen kan du tyst skicka automatiska e-post, för vissa Dolibarr händelser. Mål av anmälningar kan definieras: <br> * Per tredje parter kontakter (kunder eller leverantörer), en tredje part vid tidpunkten. <br> * Eller genom att sätta ett globalt mål e-postadress på modulens inställningssida.
 ModelModules=Dokument mallar
-DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
+DocumentModelOdt=Generera dokument från OpenDocuments mallar (.odt eller .ods filer för Openoffice, KOffice, Textedit, ...)
 WatermarkOnDraft=Vattenstämpel utkast
-JSOnPaimentBill=Activate feature to autofill payment lines on payment form
+JSOnPaimentBill=Aktivera funktionen för att fylla automatiskt betalningslinjer på inbetalningskort
 CompanyIdProfChecker=Professionell Id unik
 MustBeUnique=Måste vara unikt?
 MustBeMandatory=Obligatoriskt att skapa tredje part?
@@ -1096,7 +1097,7 @@ WebCalServer=Server-hosting kalender databas
 WebCalDatabaseName=Databas namn
 WebCalUser=Användaren tillgång till databasen
 WebCalSetupSaved=WebCalendar setup sparats.
-WebCalTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
+WebCalTestOk=Anslutning till servern "% s" på databasen "% s" med användare "% s framgångsrika.
 WebCalTestKo1=Anslutning till servern &quot;%s&quot; lyckas, men databas %s &quot;kunde inte nås.
 WebCalTestKo2=Anslutning till servern &quot;%s&quot; med användare &quot;%s&quot; misslyckades.
 WebCalErrorConnectOkButWrongDatabase=Anslutning lyckats men databasen inte ser ut att vara en WebCalendar databas.
@@ -1142,10 +1143,11 @@ WatermarkOnDraftProposal=Vattenstämpel på utkast till affärsförslag (ingen o
 OrdersSetup=Beställ ledning setup
 OrdersNumberingModules=Beställningar numrering moduler
 OrdersModelModule=Beställ dokument modeller
-HideTreadedOrders=Hide the treated or cancelled orders in the list
+HideTreadedOrders=Dölja de behandlade eller annullerade order i listan
 ValidOrderAfterPropalClosed=Att godkänna beställningen efter förslaget närmare, gör det möjligt att inte steg av den provisoriska ordning
 FreeLegalTextOnOrders=Fri text på order
 WatermarkOnDraftOrders=Vattenstämpel på utkast till beställningar (ingen om tom)
+ShippableOrderIconInList=Lägg en ikon i Order lista som anger om beställningen är shippable
 ##### Clicktodial #####
 ClickToDialSetup=Klicka för att Dial modul setup
 ClickToDialUrlDesc=Url anropas när ett klick på telefon picto görs. I URL kan du använda taggar <br> <b>__PHONETO__</b> Som kommer att ersättas med telefonnumret för personen att ringa <br> <b>__PHONEFROM__</b> Som ska ersättas med telefonnummer att ringa person (er) <br> <b>__LOGIN__</b> Som ska ersättas med clicktodial inloggning (definierad på ditt användarnamn kort) <br> <b>__PASS__</b> Som ska ersättas med ditt clicktodial lösenord (definierad på ditt användarnamn kort).
@@ -1160,9 +1162,9 @@ WatermarkOnDraftInterventionCards=Vattenstämpel på åtgärdskort dokument (ing
 ##### Contracts #####
 ContractsSetup=Kontrakt modul konfiguration
 ContractsNumberingModules=Kontrakt numrering moduler
-TemplatePDFContracts=Contracts documents models
-FreeLegalTextOnContracts=Free text on contracts
-WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty)
+TemplatePDFContracts=Contract documents modeller
+FreeLegalTextOnContracts=Fritext om avtal
+WatermarkOnDraftContractCards=Vattenstämpel på kontraktsförslag (inget om de är tomma)
 ##### Members #####
 MembersSetup=Medlemmar modul setup
 MemberMainOptions=Huvudalternativ
@@ -1231,15 +1233,15 @@ LDAPTestSynchroContact=Test kontakts synkronisering
 LDAPTestSynchroUser=Test användarens synkronisering
 LDAPTestSynchroGroup=Test gruppens synkronisering
 LDAPTestSynchroMember=Test medlemmens synkronisering
-LDAPTestSearch= Test a LDAP search
+LDAPTestSearch= Testa en LDAP-sökning
 LDAPSynchroOK=Synkronisering test framgångsrika
 LDAPSynchroKO=Misslyckades synkronisering test
 LDAPSynchroKOMayBePermissions=Misslyckades synkronisering test. Kontrollera att connexion att servern är korrekt konfigurerad och tillåter LDAP udpates
 LDAPTCPConnectOK=TCP ansluta till LDAP-servern framgångsrika (Server = %s, Port = %s)
 LDAPTCPConnectKO=TCP ansluta till LDAP-servern misslyckades (Server = %s, Port = %s)
-LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
+LDAPBindOK=Anslut / Authentificate till LDAP-servern framgångsrik (Server =%s, Port =%s, Admin =%s, Lösenord = %s)
 LDAPBindKO=Anslut / Authentificate till LDAP-servern misslyckades (Server = %s, Port = %s, Admin = %s, Lösenord = %s)
-LDAPUnbindSuccessfull=Disconnect successful
+LDAPUnbindSuccessfull=Koppla framgångsrik
 LDAPUnbindFailed=Koppla misslyckades
 LDAPConnectToDNSuccessfull=Anslutning au DN (%s) ri ¿½ ussie
 LDAPConnectToDNFailed=Anslutning au DN (%s) ï ¿½ chouï ¿½ e
@@ -1295,8 +1297,8 @@ LDAPFieldSid=SID
 LDAPFieldSidExample=Exempel: objectsid
 LDAPFieldEndLastSubscription=Datum för teckning slut
 LDAPFieldTitle=Post / Funktion
-LDAPFieldTitleExample=Example: title
-LDAPParametersAreStillHardCoded=LDAP parameters are still hardcoded (in contact class)
+LDAPFieldTitleExample=Exempel: titel
+LDAPParametersAreStillHardCoded=LDAP parametrar fortfarande hårdkodad (i kontakt klass)
 LDAPSetupNotComplete=LDAP setup komplett inte (gå på andra flikar)
 LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Ingen administratör eller lösenord anges. LDAP tillgång kommer att bli anonym och i skrivskyddat läge.
 LDAPDescContact=På denna sida kan du ange LDAP-attribut namn i LDAP träd för varje data finns på Dolibarr kontakter.
@@ -1305,24 +1307,24 @@ LDAPDescGroups=På denna sida kan du ange LDAP-attribut namn i LDAP träd för v
 LDAPDescMembers=På denna sida kan du ange LDAP-attribut namn i LDAP träd för varje data finns på Dolibarr medlemmar modul.
 LDAPDescValues=Exempel på värden är avsedda för <b>OpenLDAP</b> med följande laddade scheman: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Om du använder thoose värderingar och OpenLDAP, ändra LDAP-fil <b>slapd.conf</b> config att ha alla thoose scheman laddad.
 ForANonAnonymousAccess=För en bestyrkt tillbehör (för en skrivåtkomst till exempel)
-PerfDolibarr=Performance setup/optimizing report
-YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
-NotInstalled=Not installed, so your server is not slow down by this.
-ApplicativeCache=Applicative cache
-MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
-MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
-MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
-OPCodeCache=OPCode cache
-NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
-HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
-FilesOfTypeCached=Files of type %s are cached by HTTP server
-FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
-FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
-FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
-CacheByServer=Cache by server
-CacheByClient=Cache by browser
-CompressionOfResources=Compression of HTTP responses
-TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
+PerfDolibarr=Prestanda inställningar / optimering rapport
+YouMayFindPerfAdviceHere=Du kommer att hitta på den här sidan vissa kontroller eller råd relaterade till prestanda.
+NotInstalled=Inte installerat, så din server inte sakta ner av detta.
+ApplicativeCache=Applikativ cache
+MemcachedNotAvailable=Ingen applikativ cache hittades. Du kan förbättra prestanda genom att installera en cache-server Memcached och en modul kunna använda denna cache-server. <br> Mer information här <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a> . <br> Observera att en hel del webbhotell leverantör inte lämnar sådana cache-server.
+MemcachedModuleAvailableButNotSetup=Modul memcached för applikativ cache hittades men installationen av modulen är inte fullständig.
+MemcachedAvailableAndSetup=Modul memcached tillägnad använda memcached server är aktiverad.
+OPCodeCache=OPCODE cache
+NoOPCodeCacheFound=Ingen opkod cache hittades. Får du använda en annan opcode cache än xcache eller eAccelerator (bra), kanske du inte har opkod cache (mycket dåligt).
+HTTPCacheStaticResources=HTTP-cache för statiska resurser (css, img, javascript)
+FilesOfTypeCached=Filer av typen %s cachelagras av HTTP-server
+FilesOfTypeNotCached=Filer av typen %s är inte cachas av HTTP-server
+FilesOfTypeCompressed=Filer av typen %s komprimeras med HTTP-server
+FilesOfTypeNotCompressed=Filer av typen %s är inte komprimerade av HTTP-server
+CacheByServer=Cache med server
+CacheByClient=Cache med browser
+CompressionOfResources=Komprimering av HTTP-svar
+TestNotPossibleWithCurrentBrowsers=Automatisk identifiering inte är möjlig
 ##### Products #####
 ProductSetup=Produkter modul setup
 ServiceSetup=Tjänster modul konfiguration
@@ -1332,13 +1334,13 @@ ConfirmDeleteProductLineAbility=Bekräftelse vid borttagning produktserier i for
 ModifyProductDescAbility=Anpassning av produktbeskrivning i former
 ViewProductDescInFormAbility=Visualisering av produktbeskrivning i formulären (i övrigt enligt popup tooltip)
 ViewProductDescInThirdpartyLanguageAbility=Visualisering av produktbeskrivningar på tredjeparts språket
-UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
-UseSearchToSelectProduct=Use a search form to choose a product (rather than a drop-down list).
+UseSearchToSelectProductTooltip=Även om du har ett stort antal produkter (> 100 000), kan du öka hastigheten genom att sätta konstant PRODUCT_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen.
+UseSearchToSelectProduct=Använd ett sökformuläret för att välja en produkt (i stället för en listruta).
 UseEcoTaxeAbility=Stöd Eco-Taxe (WEEE)
 SetDefaultBarcodeTypeProducts=Standard streckkod som ska användas för produkter
 SetDefaultBarcodeTypeThirdParties=Standard streckkod som ska användas för tredje part
-ProductCodeChecker= Module for product code generation and checking (product or service)
-ProductOtherConf= Product / Service configuration
+ProductCodeChecker= Modul för produkt kodgenerering och kontroll (produkt eller tjänst)
+ProductOtherConf= Produkt / tjänst konfiguration
 ##### Syslog #####
 SyslogSetup=Syslog-modul setup
 SyslogOutput=Logga utgång
@@ -1349,7 +1351,7 @@ SyslogSimpleFile=Arkiv
 SyslogFilename=Filnamn och sökväg
 YouCanUseDOL_DATA_ROOT=Du kan använda DOL_DATA_ROOT / dolibarr.log för en loggfil i Dolibarr &quot;dokument&quot; katalogen. Du kan ställa in en annan väg för att lagra den här filen.
 ErrorUnknownSyslogConstant=Konstant %s är inte en känd syslog konstant
-OnlyWindowsLOG_USER=Windows only supports LOG_USER
+OnlyWindowsLOG_USER=Endast Windows stöder LOG_USER
 ##### Donations #####
 DonationsSetup=Donation modul setup
 DonationsReceiptModel=Mall för donation kvitto
@@ -1368,23 +1370,24 @@ BarcodeDescISBN=Barcode av typ ISBN
 BarcodeDescC39=Streckkod av typen C39
 BarcodeDescC128=Barcode av typ C128
 GenbarcodeLocation=Bar kodgenerering kommandoradsverktyg (som används av phpbarcode motor för vissa typer streckkod)
-BarcodeInternalEngine=Internal engine
-BarCodeNumberManager=Manager to auto define barcode numbers
+BarcodeInternalEngine=Intern motor
+BarCodeNumberManager=Manager för att automatiskt definiera streckkodsnummer
 ##### Prelevements #####
 WithdrawalsSetup=Återkallelse modul setup
 ##### ExternalRSS #####
 ExternalRSSSetup=Externa RSS import setup
 NewRSS=Nytt RSS-flöde
 RSSUrl=RSS URL
-RSSUrlExample=An interesting RSS feed
+RSSUrlExample=En intressant RSS-flöde
 ##### Mailing #####
 MailingSetup=E-post modul setup
 MailingEMailFrom=Avsändare Epost (från) för e-post skickas via e-post modul
 MailingEMailError=Retur-e (fel-till) för e-post med fel
 ##### Notification #####
-NotificationSetup=Anmälan bu e-modul setup
+NotificationSetup=EMail modul anmälan inställnings
 NotificationEMailFrom=Avsändare Epost (från) för e-post som skickas till anmälningar
-ListOfAvailableNotifications=Lista över tillgängliga anmälningar (Denna listan beror på aktiverade moduler)
+ListOfAvailableNotifications=Förteckning över händelser som du kan ställa in en anmälan om, för varje tredjeparts (gå in tredjeparts kort att installera) eller genom att ange en fast e-post (Lista beror på aktiverade moduler)
+FixedEmailTarget=Fast e målet
 ##### Sendings #####
 SendingsSetup=Sända modul setup
 SendingsReceiptModel=Att skicka kvitto modell
@@ -1404,8 +1407,8 @@ FCKeditorForCompany=WYSIWYG skapande / upplaga av Companie beskrivning och noter
 FCKeditorForProduct=WYSIWYG skapande / upplaga av produkter / tjänster: s beskrivning och anteckning
 FCKeditorForProductDetails=WYSIWYG skapande / utgåva av produkter detaljer linjer för alla enheter (förslag, order, fakturor, etc. ..). <font class="warning">Varning: Använd detta alternativ för det här fallet är allvarligt inte rekommenderat eftersom det kan skapa problem med specialtecken och sida formationen för att bygga PDF filer.</font>
 FCKeditorForMailing= WYSIWYG skapande / utgåva av försändelser
-FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
-FCKeditorForMail=WYSIWIG creation/edition for all mail (except Outils->eMailing)
+FCKeditorForUserSignature=WYSIWYG skapande / upplaga av signatur
+FCKeditorForMail=WYSIWYG skapande / utgåva för alla mail (utom Outils-> mejla)
 ##### OSCommerce 1 #####
 OSCommerceErrorConnectOkButWrongDatabase=Anslutning lyckats men databasen ser inte ut att vara en OSCommerce databas (Key %s som inte finns i tabellen %s).
 OSCommerceTestOk=Anslutning till servern &quot;%s&quot; på databas %s &quot;med användare&quot; %s framgångsrika.
@@ -1448,11 +1451,11 @@ ConfirmDeleteLine=Är du säker på att du vill ta bort denna linje?
 ##### Tax #####
 TaxSetup=Skatter, sociala avgifter och utdelningar modul setup
 OptionVatMode=Mervärdesskatt
-OptionVATDefault=Cash basis
-OptionVATDebitOption=Accrual basis
+OptionVATDefault=Kontantmetoden
+OptionVATDebitOption=Periodiseringsprincipen
 OptionVatDefaultDesc=Mervärdesskatt skall betalas: <br> - Om leverans / betalning för varor <br> - Bestämmelser om betalningar för tjänster
 OptionVatDebitOptionDesc=Mervärdesskatt skall betalas: <br> - Om leverans / betalning för varor <br> - På fakturan (debet) för tjänster
-SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
+SummaryOfVatExigibilityUsedByDefault=Tid för moms exigibility standard enligt vald alternativ:
 OnDelivery=Vid leverans
 OnPayment=Mot betalning
 OnInvoice=På faktura
@@ -1463,16 +1466,16 @@ Sell=Sälj
 InvoiceDateUsed=Fakturadatum används
 YourCompanyDoesNotUseVAT=Ditt företag har definierats att inte använda moms (Hem - Setup - Företaget / Foundation), så det finns ingen mervärdesskatt alternativ för installationen.
 AccountancyCode=Bokföring kod
-AccountancyCodeSell=Sale account. code
-AccountancyCodeBuy=Purchase account. code
+AccountancyCodeSell=Försäljning konto. kod
+AccountancyCodeBuy=Köpa konto. kod
 ##### Agenda #####
 AgendaSetup=Åtgärder och dagordning modul setup
 PasswordTogetVCalExport=Viktiga att tillåta export länk
 PastDelayVCalExport=Inte exporterar fall äldre än
-AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events)
-AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
-AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
-AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
+AGENDA_USE_EVENT_TYPE=Använd händelser typer (hanteras i inställningsmenyn -> ordlista -> Typ av dagordningen händelser)
+AGENDA_DEFAULT_FILTER_TYPE=Ställs in automatiskt denna typ av händelse till sökfilter av dagordning view
+AGENDA_DEFAULT_FILTER_STATUS=Ställs in automatiskt denna status för evenemang till sökfilter av dagordning view
+AGENDA_DEFAULT_VIEW=Vilken flik vill du öppna som standard vid val av meny Agenda
 ##### ClickToDial #####
 ClickToDialDesc=Denna modul gör det möjligt att lägga till en ikon efter telefonnummer. Ett klick på denna ikon för att kalla en server med en viss webbadress du anger nedan. Detta kan användas för att ringa ett system call center från Dolibarr som kan ringa upp telefonnumret på en SIP-system till exempel.
 ##### Point Of Sales (CashDesk) #####
@@ -1506,10 +1509,10 @@ MultiCompanySetup=Multi-bolag modul setup
 SuppliersSetup=Leverantör modul setup
 SuppliersCommandModel=Fullständig mall av leverantör för (logo. ..)
 SuppliersInvoiceModel=Komplett mall leverantörsfaktura (logo. ..)
-SuppliersInvoiceNumberingModel=Supplier invoices numbering models
+SuppliersInvoiceNumberingModel=Leverantörsfakturor numrerings modeller
 ##### GeoIPMaxmind #####
 GeoIPMaxmindSetup=GeoIP Maxmind modul setup
-PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.<br>Examples:<br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat
+PathToGeoIPMaxmindCountryDataFile=Sökväg till fil innehåller MaxMind ip till land översättning. <br> Exempel: <br> /usr/local/share/GeoIP/GeoIP.dat <br> /usr/share/GeoIP/GeoIP.dat
 NoteOnPathLocation=Observera att ditt ip till land datafil måste vara inne i en katalog din PHP kan läsa (Kolla din PHP open_basedir inställningar och behörigheter filsystem).
 YouCanDownloadFreeDatFileTo=Du kan ladda ner en <b>gratis demoversion</b> av Maxmind GeoIP landet filen på %s.
 YouCanDownloadAdvancedDatFileTo=Du kan också ladda ner en mer <b>komplett version, med uppdateringar av</b> de Maxmind GeoIP landet filen på %s.
@@ -1518,23 +1521,24 @@ TestGeoIPResult=Test av en omvandling IP -> land
 ProjectsNumberingModules=Projekt numrering modul
 ProjectsSetup=Projekt modul setup
 ProjectsModelModule=S rapport dokument modell
-TasksNumberingModules=Tasks numbering module
-TaskModelModule=Tasks reports document model
+TasksNumberingModules=Uppgifter nummermodulen
+TaskModelModule=Uppgifter rapporter dokumentmodell
 ##### ECM (GED) #####
 ECMSetup = GED Setup
-ECMAutoTree = Automatic tree folder and document
+ECMAutoTree = Automatisk träd mapp och dokument
 ##### Fiscal Year #####
-FiscalYears=Fiscal years
-FiscalYear=Fiscal year
-FiscalYearCard=Fiscal year card
-NewFiscalYear=New fiscal year
-EditFiscalYear=Edit fiscal year
-OpenFiscalYear=Open fiscal year
-CloseFiscalYear=Close fiscal year
-DeleteFiscalYear=Delete fiscal year
-ConfirmDeleteFiscalYear=Are you sure to delete this fiscal year ?
-Opened=Opened
-Closed=Closed
+FiscalYears=Räkenskapsår
+FiscalYear=Räkenskapsåret
+FiscalYearCard=Räkenskapsår kort
+NewFiscalYear=Nytt räkenskapsår
+EditFiscalYear=Redigera räkenskapsår
+OpenFiscalYear=Öppet räkenskapsår
+CloseFiscalYear=Close räkenskapsår
+DeleteFiscalYear=Radera räkenskapsår
+ConfirmDeleteFiscalYear=Är du säker på att du vill ta bort detta verksamhetsår?
+Opened=Öppnad
+Closed=Stängt
+AlwaysEditable=Kan alltid redigeras
 
 Format=Format
-TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type
+TypePaymentDesc=0: Kundbetalning typ, 1: Leverantörsbetalnings typ, 2: Både kunder och leverantörer betalnings typ
diff --git a/htdocs/langs/sv_SE/agenda.lang b/htdocs/langs/sv_SE/agenda.lang
index 131080c5c8f6aff1bc85a74f3fd2763c77686cb6..0051929cd9d47b5d12284b065fa79878abd2638b 100644
--- a/htdocs/langs/sv_SE/agenda.lang
+++ b/htdocs/langs/sv_SE/agenda.lang
@@ -1,18 +1,18 @@
 # Dolibarr language file - Source file is en_US - agenda
-IdAgenda=ID event
+IdAgenda=ID händelse
 Actions=Åtgärder
 ActionsArea=Åtgärder område (händelser och uppgifter)
 Agenda=Agenda
 Agendas=Dagordningar
 Calendar=Kalender
 Calendars=Kalendrar
-LocalAgenda=Internal calendar
-ActionsOwnedBy=Event owned by
+LocalAgenda=Intern kalender
+ActionsOwnedBy=Händelse som ägs av
 AffectedTo=Påverkas i
 DoneBy=Utfärdat av
-Event=Event
+Event=Händelse
 Events=Evenemang
-EventsNb=Number of events
+EventsNb=Antal händelser
 MyEvents=Mina aktiviteter
 OtherEvents=Övriga händelser
 ListOfActions=Lista över evenemang
@@ -23,12 +23,12 @@ MenuToDoActions=Alla ofullständiga handlingar
 MenuDoneActions=Alla avslutade åtgärder
 MenuToDoMyActions=Min ofullständiga handlingar
 MenuDoneMyActions=Min avslutas åtgärder
-ListOfEvents=List of events (internal calendar)
+ListOfEvents=Förteckning över händelser (intern kalender)
 ActionsAskedBy=Åtgärder som registrerats av
 ActionsToDoBy=Åtgärder påverkas
 ActionsDoneBy=Åtgärder som utförs av
-ActionsForUser=Events for user
-ActionsForUsersGroup=Events for all users of group
+ActionsForUser=Händelser för användaren
+ActionsForUsersGroup=Händelser för alla användare av grupp
 AllMyActions= Alla mina handlingar och uppgifter
 AllActions= Alla åtgärder / uppgifter
 ViewList=Visa lista
@@ -45,10 +45,10 @@ ActionsEvents= Händelser som Dolibarr kommer att skapa en talan i agenda automa
 PropalValidatedInDolibarr= Förslag %s validerade
 InvoiceValidatedInDolibarr= Faktura %s validerade
 InvoiceBackToDraftInDolibarr=Faktura %s gå tillbaka till förslaget status
-InvoiceDeleteDolibarr=Invoice %s deleted
+InvoiceDeleteDolibarr=Faktura %s raderas
 OrderValidatedInDolibarr= Beställ %s validerade
 OrderApprovedInDolibarr=Ordningens %s godkänd
-OrderRefusedInDolibarr=Order %s refused
+OrderRefusedInDolibarr=Order %s vägrade
 OrderBackToDraftInDolibarr=Beställ %s gå tillbaka till förslaget status
 OrderCanceledInDolibarr=Beställ %s avbryts
 InterventionValidatedInDolibarr=Intervention %s validerade
@@ -58,9 +58,9 @@ InvoiceSentByEMail=Kundfaktura %s via e-post
 SupplierOrderSentByEMail=Leverantör beställa %s via e-post
 SupplierInvoiceSentByEMail=Leverantörsfaktura %s via e-post
 ShippingSentByEMail=Frakt %s via e-post
-ShippingValidated= Shipping %s validated
+ShippingValidated= Frakt %s validerade
 InterventionSentByEMail=Intervention %s via e-post
-InterventionClassifiedBilled=Intervention %s classified as Billed
+InterventionClassifiedBilled=Intervention %s sekretessbelagda som fakturerad
 NewCompanyToDolibarr= Tredje part har skapats
 DateActionPlannedStart= Planerat startdatum
 DateActionPlannedEnd= Planerat slutdatum
@@ -70,24 +70,24 @@ DateActionStart= Startdatum
 DateActionEnd= Slutdatum
 AgendaUrlOptions1=Du kan också lägga till följande parametrar för att filtrera utgång:
 AgendaUrlOptions2=<b>login = %s</b> att begränsa produktionen till åtgärder inrättade av, påverkas eller göras av användaren <b>%s.</b>
-AgendaUrlOptions3=<b>logina = %s</b> att begränsa produktionen till åtgärder som skapats av användaren <b>%s.</b>
+AgendaUrlOptions3=<b>Logina =%s</b> ​​att begränsa produktionen till åtgärder som ägs av en användare<b>%s.</b>
 AgendaUrlOptions4=<b>logint = %s</b> att begränsa produktionen till handlande påverkade användarnas <b>%s.</b>
-AgendaUrlOptions5=<b>logind = %s</b> att begränsa produktionen till åtgärder som utförts av användaren <b>%s.</b>
+AgendaUrlOptionsProject=<b>projekt = PROJECT_ID</b> att begränsa produktionen till åtgärder i samband med projektet <b>PROJECT_ID.</b>
 AgendaShowBirthdayEvents=Visa födelsedag kontakter
 AgendaHideBirthdayEvents=Dölj födelsedag kontakter
-Busy=Busy
-ExportDataset_event1=List of agenda events
-DefaultWorkingDays=Default working days range in week (Example: 1-5, 1-6)
-DefaultWorkingHours=Default working hours in day (Example: 9-18)
+Busy=Upptagen
+ExportDataset_event1=Lista över dagordningen händelser
+DefaultWorkingDays=Standard arbetsdagar varierar i veckan (exempel: 1-5, 1-6)
+DefaultWorkingHours=Standard arbetstiden i dag (exempel: 9-18)
 # External Sites ical
 ExportCal=Export kalender
 ExtSites=Importera externa kalendrar
-ExtSitesEnableThisTool=Show external calendars (defined into global setup) into agenda. Does not affect external calendars defined by users.
+ExtSitesEnableThisTool=Visa externa kalendrar (definierade i globala inställningar) i dagordningen. Påverkar inte externa kalendrar definierat av användare.
 ExtSitesNbOfAgenda=Antal kalendrar
 AgendaExtNb=Kalender nb %s
 ExtSiteUrlAgenda=URL att komma åt. Ical-fil
 ExtSiteNoLabel=Ingen beskrivning
-WorkingTimeRange=Working time range
-WorkingDaysRange=Working days range
-AddEvent=Add event
-MyAvailability=My availability
+WorkingTimeRange=Arbetstid intervall
+WorkingDaysRange=Arbetsdagar sträcker
+AddEvent=Skapa event
+MyAvailability=Min tillgänglighet
diff --git a/htdocs/langs/sv_SE/banks.lang b/htdocs/langs/sv_SE/banks.lang
index e738ac615a3a7f4803e859e58227eac772a00c7c..34167669685b323b7e9cd5a02eab30023acbfced 100644
--- a/htdocs/langs/sv_SE/banks.lang
+++ b/htdocs/langs/sv_SE/banks.lang
@@ -19,8 +19,8 @@ SavingAccount=Sparkonto
 SavingAccounts=Sparkonton
 ErrorBankLabelAlreadyExists=Finansiell balans etikett finns redan
 BankBalance=Balans
-BankBalanceBefore=Balance before
-BankBalanceAfter=Balance after
+BankBalanceBefore=Balans innan
+BankBalanceAfter=Balans efter
 BalanceMinimalAllowed=Minsta tillåtna balans
 BalanceMinimalDesired=Lägsta önskvärd balans
 InitialBankBalance=Initial jämvikt
@@ -28,7 +28,7 @@ EndBankBalance=Avsluta balans
 CurrentBalance=Aktuellt saldo
 FutureBalance=Framtida balans
 ShowAllTimeBalance=Visa balans från start
-AllTime=From start
+AllTime=Från början
 Reconciliation=Avstämning
 RIB=Bankkontonummer
 IBAN=IBAN-nummer
@@ -105,7 +105,7 @@ ConciliatedBy=Förenas med
 DateConciliating=Reconcile datum
 BankLineConciliated=Transaktion förenas
 CustomerInvoicePayment=Kundbetalning
-CustomerInvoicePaymentBack=Customer payment back
+CustomerInvoicePaymentBack=Kund betalning tillbaka
 SupplierInvoicePayment=Leverantör betalning
 WithdrawalPayment=Tillbakadragande betalning
 SocialContributionPayment=Sociala avgifter betalas
@@ -133,14 +133,14 @@ CashBudget=Cash budget
 PlannedTransactions=Planerade transaktioner
 Graph=Grafiken
 ExportDataset_banque_1=Bank transaktioner och kontoutdrag
-ExportDataset_banque_2=Deposit slip
+ExportDataset_banque_2=Insättningsblankett
 TransactionOnTheOtherAccount=Transaktionen på det andra kontot
 TransactionWithOtherAccount=Kontoöverföring
 PaymentNumberUpdateSucceeded=Betalning nummer uppdaterats
 PaymentNumberUpdateFailed=Betalningsnummer kunde inte uppdateras
 PaymentDateUpdateSucceeded=Betalningsdag uppdatera framgångsrikt
 PaymentDateUpdateFailed=Betalningsdagen kunde inte uppdateras
-Transactions=Transactions
+Transactions=Transaktioner
 BankTransactionLine=Bank transaktion
 AllAccounts=Alla bank / Likvida medel
 BackToAccount=Tillbaka till konto
@@ -149,12 +149,12 @@ FutureTransaction=Transaktioner i Futur. Inget sätt att blidka.
 SelectChequeTransactionAndGenerate=Välj / Filtret kontrollerar att inkludera i kontrollen insättning kvittot och klicka på &quot;Skapa&quot;.
 InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value (such as, YYYYMM)
 EventualyAddCategory=Eventually, specify a category in which to classify the records
-ToConciliate=To conciliate?
+ToConciliate=För att förena?
 ThenCheckLinesAndConciliate=Then, check the lines present in the bank statement and click
-BankDashboard=Bank accounts summary
-DefaultRIB=Default BAN
-AllRIB=All BAN
-LabelRIB=BAN Label
-NoBANRecord=No BAN record
-DeleteARib=Delete BAN record
-ConfirmDeleteRib=Are you sure you want to delete this BAN record ?
+BankDashboard=Bankkonton sammandrag
+DefaultRIB=Standard BAN
+AllRIB=Alla BAN
+LabelRIB=BAN etikett
+NoBANRecord=Inget BAN rad
+DeleteARib=Radera BAN rad
+ConfirmDeleteRib=Är du säker på att du vill ta bort denna BAN rad?
diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang
index 92d9bde0b0292e848d739a1f4f5b95314a3ce903..b90a2d0faa20f20320a125e93cbf9aeaacdfa2d9 100644
--- a/htdocs/langs/sv_SE/bills.lang
+++ b/htdocs/langs/sv_SE/bills.lang
@@ -23,13 +23,13 @@ InvoiceProFormaAsk=Proforma faktura
 InvoiceProFormaDesc=<b>Proforma faktura</b> är en bild av en sann faktura men har ingen bokföring värde.
 InvoiceReplacement=Ersättning faktura
 InvoiceReplacementAsk=Ersättning faktura för faktura
-InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
+InvoiceReplacementDesc=<b> Ersättning faktura </b> används för att avbryta och byta helt en faktura utan betalningar.<br><br>Anmärkning: Endast fakturor utan betalningar kan bytas ut. Om fakturan du ersätter är ännu inte avslutat, kommer den automatiskt att stängas av "övergivna".
 InvoiceAvoir=Kreditnota
 InvoiceAvoirAsk=Kreditnota att korrigera fakturan
 InvoiceAvoirDesc=Den <b>kreditnota</b> är en negativ faktura används för att lösa det faktum att en faktura har ett värde som skiljer än beloppet verkligen betalat (eftersom kunden betalat för mycket av misstag, eller kommer inte betalas helt sedan han återvände vissa produkter till exempel).
 invoiceAvoirWithLines=Skapa kreditnota med innehållet i originalfakturan 
-invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake
-invoiceAvoirLineWithPaymentRestAmount=Credit Note amount of invoice payment's lake
+invoiceAvoirWithPaymentRestAmount=Skapa kreditnota med återstående obetald faktura ursprung
+invoiceAvoirLineWithPaymentRestAmount=Kredit notering för återstående obetalda beloppet
 ReplaceInvoice=Byt faktura %s
 ReplacementInvoice=Ersättning faktura
 ReplacedByInvoice=Ersatt av faktura %s
@@ -73,21 +73,21 @@ PaymentsReports=Betalningar rapporter
 PaymentsAlreadyDone=Betalningar redan gjort
 PaymentsBackAlreadyDone=Återbetalningar är utförda tidigare
 PaymentRule=Betalningsregel
-PaymentMode=Betalning typ
+PaymentMode=Betalningssätt
 PaymentConditions=Betalningsvillkor
 PaymentConditionsShort=Betalningsvillkor
 PaymentAmount=Betalningsbelopp
 ValidatePayment=Bekräfta betalning
 PaymentHigherThanReminderToPay=Betalning högre än påminnelse att betala
 HelpPaymentHigherThanReminderToPay=Uppmärksamheten är för betalning är en eller flera räkningar högre än resten att betala. <br> Redigera din post, bekräfta något annat och tänka på att skapa en kreditnota det felaktigt erhållna beloppet för varje överskjutande fakturor.
-HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm.
-ClassifyPaid=Klassificera &quot;Betalda&quot;
-ClassifyPaidPartially=Klassificera &quot;Betalda delvis&quot;
-ClassifyCanceled=Klassificera &quot;svikna&quot;
-ClassifyClosed=Klassificera &quot;sluten&quot;
-ClassifyUnBilled=Classify 'Unbilled'
+HelpPaymentHigherThanReminderToPaySupplier=Obs, betalningsbeloppet av en eller flera räkningar är högre än återstående belopp att betala. <br> Redigera din post, annars bekräfta.
+ClassifyPaid=Klassificera "betalda"
+ClassifyPaidPartially=Klassificera "betalda delvis"
+ClassifyCanceled=Klassificera "övergivna"
+ClassifyClosed=Klassificera "avsluten"
+ClassifyUnBilled=Klassificera 'ofakturerade'
 CreateBill=Skapa faktura
-AddBill=Lägg till faktura eller kreditnota
+AddBill=Skapa faktura eller en kredit nota
 AddToDraftInvoices=Lägg till faktura-utkast
 DeleteBill=Ta bort faktura
 SearchACustomerInvoice=Sök efter en kundfaktura
@@ -99,7 +99,7 @@ DoPaymentBack=Gör betalning tillbaka
 ConvertToReduc=Konvertera till framtida rabatt
 EnterPaymentReceivedFromCustomer=Skriv in avgifter från kunderna
 EnterPaymentDueToCustomer=Gör betalning till kunden
-DisabledBecauseRemainderToPayIsZero=Funktionshindrade eftersom resten att betala är noll
+DisabledBecauseRemainderToPayIsZero=Inaktiverad pga återstående obetalt är noll
 Amount=Belopp
 PriceBase=Prisbasbelopp
 BillStatus=Faktura status
@@ -156,9 +156,9 @@ ConfirmCancelBill=Är du säker på att du vill avbryta faktura <b>%s?</b>
 ConfirmCancelBillQuestion=Varför vill du att klassificera denna faktura &quot;svikna&quot;?
 ConfirmClassifyPaidPartially=Är du säker på att du vill ändra faktura <b>%s</b> till status betalas?
 ConfirmClassifyPaidPartiallyQuestion=Denna faktura inte har betalats helt. Vad finns skäl för dig att stänga denna faktura?
-ConfirmClassifyPaidPartiallyReasonAvoir=Återstår att betala <b>(%s %s)</b> är en rabatt som beviljats på grund av betalningen gjordes före sikt. Jag reglera moms med en kreditnota.
-ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Återstår att betala <b>(%s %s)</b> är en rabatt som beviljats på grund av betalningen gjordes före sikt. Jag accepterar att förlora mervärdesskatten på denna rabatt.
-ConfirmClassifyPaidPartiallyReasonDiscountVat=Återstår att betala <b>(%s %s)</b> är en rabatt som beviljats på grund av betalningen gjordes före sikt. Jag återfå mervärdesskatten på denna rabatt utan en kreditnota.
+ConfirmClassifyPaidPartiallyReasonAvoir=Återstående obetalt <b>(%s %s)</ b> är en rabatt som beviljats ​​eftersom betalningen gjordes före villkoren. Jag reglerar momsen med en kreditnota.
+ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Återstående obetalt <b>(%s %s)</ b> är en rabatt som beviljats ​​eftersom betalningen gjordes före villkoren. Jag godkänner förlust av momsen på denna rabatt.
+ConfirmClassifyPaidPartiallyReasonDiscountVat=Återstående obetalt <b>(%s %s)</ b> är en rabatt som beviljats ​​eftersom betalningen gjordes före villkoren. Jag återskapar momsen på denna rabatt med en kreditnota.
 ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad kund
 ConfirmClassifyPaidPartiallyReasonProductReturned=Produkter som returneras delvis
 ConfirmClassifyPaidPartiallyReasonOther=Belopp övergivna av annan orsak
@@ -173,7 +173,7 @@ ConfirmClassifyAbandonReasonOtherDesc=Detta val kommer att användas i alla andr
 ConfirmCustomerPayment=Har du bekräfta denna betalning ingång för <b>%s</b> %s?
 ConfirmSupplierPayment=Bekräftar du denna betalning för <b>%s</b> %s?
 ConfirmValidatePayment=Är du säker på att du vill godkänna denna betalning? Inga ändringar kan göras efter det att betalning är godkänd.
-ValidateBill=Validate faktura
+ValidateBill=Validera faktura
 UnvalidateBill=Unvalidate faktura
 NumberOfBills=Nb av fakturor
 NumberOfBillsByMonth=Nb av fakturor per månad
@@ -191,29 +191,29 @@ AlreadyPaid=Redan betalats ut
 AlreadyPaidBack=Redan återbetald
 AlreadyPaidNoCreditNotesNoDeposits=Redan betalats (utan kreditnotor och inlåning)
 Abandoned=Övergiven
-RemainderToPay=Återstår att betala
-RemainderToTake=Återstår att ta
-RemainderToPayBack=Påminnelse om återbetalning
+RemainderToPay=Återstående obetalt
+RemainderToTake=Återstående belopp att ta
+RemainderToPayBack=Återstående belopp att återbetala
 Rest=Avvaktande
 AmountExpected=Yrkade beloppet
 ExcessReceived=Överskott fått
 EscompteOffered=Rabatterna (betalning innan terminen)
-SendBillRef=Submission of invoice %s
-SendReminderBillRef=Submission of invoice %s (reminder)
+SendBillRef=Inlämning av faktura %s
+SendReminderBillRef=Inlämning av faktura %s (påminnelse)
 StandingOrders=Stående order
 StandingOrder=Stående order
 NoDraftBills=Inget förslag fakturor
 NoOtherDraftBills=Inga andra förslag fakturor
 NoDraftInvoices=Inget faktura-utkast
 RefBill=Faktura ref
-ToBill=Till Bill
+ToBill=Fakturamottagare
 RemainderToBill=Återstår att räkningen
 SendBillByMail=Skicka faktura via e-post
 SendReminderBillByMail=Skicka påminnelse via e-post
 RelatedCommercialProposals=Relaterade kommersiella förslag
 MenuToValid=Till giltiga
 DateMaxPayment=Betalning innan
-DateEcheance=Förfallodagen gräns
+DateEcheance=Förfallodag
 DateInvoice=Fakturadatum
 NoInvoice=Ingen faktura
 ClassifyBill=Klassificera faktura
@@ -225,18 +225,18 @@ NonPercuRecuperable=Icke återvinningsbara
 SetConditions=Ställ betalningsvillkor
 SetMode=Ställ betalningssätt
 Billed=Fakturerade
-RepeatableInvoice=Fördefinierade faktura
-RepeatableInvoices=Fördefinierade fakturor
-Repeatable=Fördefinierade
-Repeatables=Fördefinierade
-ChangeIntoRepeatableInvoice=Konvertera till fördefinierade
-CreateRepeatableInvoice=Skapa fördefinierade faktura
-CreateFromRepeatableInvoice=Skapa från fördefinierade faktura
+RepeatableInvoice=Fakturamall
+RepeatableInvoices=Fakturamallar
+Repeatable=Mall
+Repeatables=Mallar
+ChangeIntoRepeatableInvoice=Konvertera till fakturamall
+CreateRepeatableInvoice=Skapa fakturamall
+CreateFromRepeatableInvoice=Skapa från fakturamall
 CustomersInvoicesAndInvoiceLines=Kundfakturor och fakturornas linjer
 CustomersInvoicesAndPayments=Kund fakturor och betalningar
 ExportDataset_invoice_1=Kundfakturor listan och fakturornas linjer
 ExportDataset_invoice_2=Kund fakturor och betalningar
-ProformaBill=Proforma Bill:
+ProformaBill=Proforma faktura:
 Reduction=Minskning
 ReductionShort=Minskningar.
 Reductions=Minskningar
@@ -263,12 +263,12 @@ AbsoluteDiscountUse=Denna typ av krediter kan användas på fakturan innan valid
 CreditNoteDepositUse=Fakturan ska valideras för att använda denna kung av tillgodohavanden
 NewGlobalDiscount=Ny fix rabatt
 NewRelativeDiscount=Nya relativa rabatt
-NoteReason=Not / Reason
-ReasonDiscount=Reason
+NoteReason=Not/orsak
+ReasonDiscount=Orsak
 DiscountOfferedBy=Beviljats av
 DiscountStillRemaining=Rabatt återstår fortfarande
 DiscountAlreadyCounted=Rabatt räknas redan
-BillAddress=Bill adress
+BillAddress=Faktureringsadress
 HelpEscompte=Denna rabatt är en rabatt som kund eftersom betalningen gjordes före sikt.
 HelpAbandonBadCustomer=Detta belopp har övergivits (kund sägs vara en dålig kund) och anses som en exceptionell lös.
 HelpAbandonOther=Detta belopp har övergivits eftersom det var ett misstag (fel kund eller faktura ersättas av en annan till exempel)
@@ -287,8 +287,8 @@ InvoiceNotChecked=Faktura vald
 CloneInvoice=Klon faktura
 ConfirmCloneInvoice=Är du säker på att du vill klona denna faktura <b>%s?</b>
 DisabledBecauseReplacedInvoice=Åtgärd funktionshindrade eftersom faktura har ersatts
-DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
-NbOfPayments=Nb av utbetalningar
+DescTaxAndDividendsArea=Detta område ger en sammanfattning av alla betalningar för särskilda utgifter. Endast poster med betalning under fasta året ingår här.
+NbOfPayments=Antal utbetalningar
 SplitDiscount=Split rabatt i två
 ConfirmSplitDiscount=Är du säker på att du vill dela denna rabatt <b>%s</b> %s i två lägre rabatter?
 TypeAmountOfEachNewDiscount=Ingång belopp för var och en av två delar:
@@ -296,8 +296,8 @@ TotalOfTwoDiscountMustEqualsOriginal=Totalt för två nya rabatt måste vara lik
 ConfirmRemoveDiscount=Är du säker på att du vill ta bort denna rabatt?
 RelatedBill=Relaterade faktura
 RelatedBills=Relaterade fakturor
-LatestRelatedBill=Latest related invoice
-WarningBillExist=Warning, one or more invoice already exist
+LatestRelatedBill=Senast relaterad faktura
+WarningBillExist=Varning, en eller flera fakturor finns redan
 
 # PaymentConditions
 PaymentConditionShortRECEP=Omedelbar
@@ -333,14 +333,14 @@ PaymentTypeTIP=TIPS
 PaymentTypeShortTIP=TIPS
 PaymentTypeVAD=På rad betalning
 PaymentTypeShortVAD=På rad betalning
-PaymentTypeTRA=Bill betalning
-PaymentTypeShortTRA=Bill
+PaymentTypeTRA=Faktura betalning
+PaymentTypeShortTRA=Faktura
 BankDetails=Bankuppgifter
 BankCode=Bankkod
 DeskCode=Reception kod
 BankAccountNumber=Kontonummer
 BankAccountNumberKey=Nyckel
-Residence=Domiciliation
+Residence=Säte
 IBANNumber=IBAN-nummer
 IBAN=IBAN
 BIC=BIC / SWIFT
@@ -351,7 +351,7 @@ ChequeNumber=Kontrollera nr
 ChequeOrTransferNumber=Kontrollera / Transfer nr
 ChequeMaker=Kontrollera sändare
 ChequeBank=Bank av Check
-NetToBePaid=Net som skall betalas
+NetToBePaid=Netto som skall betalas
 PhoneNumber=Tel
 FullPhoneNumber=Telefon
 TeleFax=Fax
@@ -384,7 +384,7 @@ UsBillingContactAsIncoiveRecipientIfExist=Använda kundens faktureringsadress ad
 ShowUnpaidAll=Visa alla obetalda fakturor
 ShowUnpaidLateOnly=Visa sent obetald faktura endast
 PaymentInvoiceRef=Betalning faktura %s
-ValidateInvoice=Validate faktura
+ValidateInvoice=Validera faktura
 Cash=Kontanter
 Reported=Försenad
 DisabledBecausePayments=Inte möjlig eftersom det inte finns några betalningar
@@ -397,12 +397,12 @@ AllCompletelyPayedInvoiceWillBeClosed=Alla fakturor utan återstår att betala k
 ToMakePayment=Betala
 ToMakePaymentBack=Återbetala
 ListOfYourUnpaidInvoices=Lista över obetalda fakturor
-NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
-RevenueStamp=Revenue stamp
-YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of thirdparty
+NoteListOfYourUnpaidInvoices=OBS: Denna lista innehåller bara fakturor för tredje parti som du är kopplade till som en försäljning representant.
+RevenueStamp=Intäkt stämpel
+YouMustCreateInvoiceFromThird=Det här alternativet är endast tillgängligt när du skapar faktura från fliken "kund" hos tredje parts
 PDFCrabeDescription=Faktura modell Crabe. En fullständig faktura modell (Stöd moms alternativet, rabatter, betalningar villkor, logotyp, etc. ..)
-TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
-MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for credit notes and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
+TerreNumRefModelDesc1=Återger nummer med formatet %syymm-nnnn för standardfakturor och %syymm-NNNN för kreditnotor där yy är året, mm månaden och nnnn är en sekvens med ingen paus och ingen återgång till 0
+MarsNumRefModelDesc1=Återger nummer med formatet %syymm-nnnn för standardfakturor, %syymm-nnnn för kreditnotor där åå är år, är mm %syymm-nnnn för ersättningsfakturor, %syymm-nnnn för kreditnotor och månad och nnnn är en sekvens utan sönder och ingen återgång till 0
 TerreNumRefModelError=Ett lagförslag som börjar med $ syymm finns redan och är inte förenligt med denna modell för sekvens. Ta bort den eller byta namn på den för att aktivera denna modul.
 ##### Types de contacts #####
 TypeContact_facture_internal_SALESREPFOLL=Representanten uppföljning kundfaktura
diff --git a/htdocs/langs/sv_SE/boxes.lang b/htdocs/langs/sv_SE/boxes.lang
index 6f03c265227d60921e313f3435a0ba324de2e40b..3c949332eb6e0fe1f8a822e8fc2587943dd12f30 100644
--- a/htdocs/langs/sv_SE/boxes.lang
+++ b/htdocs/langs/sv_SE/boxes.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - boxes
 BoxLastRssInfos=RSS-information
 BoxLastProducts=Senaste %s produkter / tjänster
-# BoxProductsAlertStock=Products in stock alert
+BoxProductsAlertStock=Produkter i lager alert
 BoxLastProductsInContract=Senaste %s avtalade produkter / tjänster
 BoxLastSupplierBills=Senaste leverantörens fakturor
 BoxLastCustomerBills=Senaste kundens fakturor
@@ -12,13 +12,14 @@ BoxLastProspects=Senast uppdaterad framtidsutsikter
 BoxLastCustomers=Senast uppdaterad kunder
 BoxLastSuppliers=Senast uppdaterad leverantörer
 BoxLastCustomerOrders=Senaste kundorder
+BoxLastValidatedCustomerOrders=Senast validerade kundorder
 BoxLastBooks=Senast böcker
 BoxLastActions=Senaste åtgärder
 BoxLastContracts=Senaste kontrakt
 BoxLastContacts=Senaste kontakter / adresser
 BoxLastMembers=Sista medlemmar
-# BoxFicheInter=Last interventions
-# BoxCurrentAccounts=Opened accounts balance
+BoxFicheInter=Sista interventioner
+BoxCurrentAccounts=Öppnade balans konton
 BoxSalesTurnover=Omsättningen
 BoxTotalUnpaidCustomerBills=Totalt obetalda kundens fakturor
 BoxTotalUnpaidSuppliersBills=Totalt obetalda leverantörs fakturor
@@ -26,27 +27,30 @@ BoxTitleLastBooks=Senaste %s inspelade böcker
 BoxTitleNbOfCustomers=Nombre de klient
 BoxTitleLastRssInfos=Senaste %s nyheter från %s
 BoxTitleLastProducts=Senast %s modifierade produkter / tjänster
-# BoxTitleProductsAlertStock=Products in stock alert
-BoxTitleLastCustomerOrders=Senast %s uppdaterad kundorder
+BoxTitleProductsAlertStock=Produkter i lager alert
+BoxTitleLastCustomerOrders=Senaste %s kundorder
+BoxTitleLastModifiedCustomerOrders=Senaste %s modifierade kundorder
 BoxTitleLastSuppliers=Senaste %s registreras leverantörer
 BoxTitleLastCustomers=Senaste %s registreras kunder
 BoxTitleLastModifiedSuppliers=Senast %s uppdaterad leverantörer
 BoxTitleLastModifiedCustomers=Senast %s uppdaterad kunder
-BoxTitleLastCustomersOrProspects=Senast %s modifierade eller tilltänkta kunder
-BoxTitleLastPropals=Senaste %s registreras förslag
+BoxTitleLastCustomersOrProspects=Senaste %s kunder eller framtidsutsikter
+BoxTitleLastPropals=Senaste %s förslag
+BoxTitleLastModifiedPropals=Senaste %s ändrade förslag
 BoxTitleLastCustomerBills=Senaste %s kundens fakturor
+BoxTitleLastModifiedCustomerBills=Senaste %s modifierade kundfakturor
 BoxTitleLastSupplierBills=Senaste %s leverantörens fakturor
-BoxTitleLastProspects=Senaste %s registreras framtidsutsikter
+BoxTitleLastModifiedSupplierBills=Senaste %s modifierade leverantörsfakturor
 BoxTitleLastModifiedProspects=Senast %s uppdaterad framtidsutsikter
 BoxTitleLastProductsInContract=Senaste %s produkter / tjänster i ett avtal
-BoxTitleLastModifiedMembers=Sista %s modifierade medlemmar
-# BoxTitleLastFicheInter=Last %s modified intervention
-BoxTitleOldestUnpaidCustomerBills=Äldsta %s obetalda kundens fakturor
-BoxTitleOldestUnpaidSupplierBills=Äldsta %s obetalda leverantörs fakturor
-# BoxTitleCurrentAccounts=Opened account's balances
+BoxTitleLastModifiedMembers=Senaste %s medlemmar
+BoxTitleLastFicheInter=Senaste %s modifierade ingripande
+BoxTitleOldestUnpaidCustomerBills=Äldsta %s obetalda kundfakturor
+BoxTitleOldestUnpaidSupplierBills=Äldsta %s obetalda leverantörsfakturor
+BoxTitleCurrentAccounts=Öppnade kontots saldon
 BoxTitleSalesTurnover=Omsättningen
-BoxTitleTotalUnpaidCustomerBills=Obetalda kundens fakturor
-BoxTitleTotalUnpaidSuppliersBills=Obetalda leverantörs fakturor
+BoxTitleTotalUnpaidCustomerBills=Obetalda kundfakturor
+BoxTitleTotalUnpaidSuppliersBills=Obetalda leverantörsfakturor
 BoxTitleLastModifiedContacts=Senaste %s modifierade kontakter / adresser
 BoxMyLastBookmarks=Min sista %s bokmärken
 BoxOldestExpiredServices=Äldsta aktiva passerat tjänster
@@ -55,7 +59,7 @@ BoxTitleLastActionsToDo=Senaste %s åtgärder för att göra
 BoxTitleLastContracts=Senaste %s kontrakt
 BoxTitleLastModifiedDonations=Sista %s modifierad donationer
 BoxTitleLastModifiedExpenses=Sista %s modifierad kostnader
-# BoxGlobalActivity=Global activity (invoices, proposals, orders)
+BoxGlobalActivity=Global aktivitet (fakturor, förslag, order)
 FailedToRefreshDataInfoNotUpToDate=Misslyckades med att uppdatera RSS-flöde. Senaste framgångsrika uppdatera datum: %s
 LastRefreshDate=Senaste uppdateringen datum
 NoRecordedBookmarks=Inga bokmärken definieras. Klicka <a href="%s">här</a> för att lägga till bokmärken.
@@ -74,18 +78,19 @@ NoRecordedProducts=Inga registrerade produkter / tjänster
 NoRecordedProspects=Inga registrerade framtidsutsikter
 NoContractedProducts=Inga produkter / tjänster avtalade
 NoRecordedContracts=Inga registrerade kontrakt
-# NoRecordedInterventions=No recorded interventions
-# BoxLatestSupplierOrders=Latest supplier orders
-# BoxTitleLatestSupplierOrders=%s latest supplier orders
-# NoSupplierOrder=No recorded supplier order
-# BoxCustomersInvoicesPerMonth=Customer invoices per month
-# BoxSuppliersInvoicesPerMonth=Supplier invoices per month
-# BoxCustomersOrdersPerMonth=Customer orders per month
-# BoxSuppliersOrdersPerMonth=Supplier orders per month
-# BoxProposalsPerMonth=Proposals per month
-# NoTooLowStockProducts=No product under the low stock limit
-# BoxProductDistribution=Products/Services distribution
-# BoxProductDistributionFor=Distribution of %s for %s
+NoRecordedInterventions=Inga inspelade interventioner
+BoxLatestSupplierOrders=Senaste leverantörs order
+BoxTitleLatestSupplierOrders=Senaste %s leverantörsorder
+BoxTitleLatestModifiedSupplierOrders=Senaste %s modifierade leverantörs order
+NoSupplierOrder=Inga inspelade leverantör ordning
+BoxCustomersInvoicesPerMonth=Kund fakturor per månad
+BoxSuppliersInvoicesPerMonth=Leverantörs fakturor per månad
+BoxCustomersOrdersPerMonth=Kundorder per månad
+BoxSuppliersOrdersPerMonth=Leverantörs order per månad
+BoxProposalsPerMonth=Förslag per månad
+NoTooLowStockProducts=Ingen produkt under den låga aktiegränsen
+BoxProductDistribution=Produkter / tjänster fördelning
+BoxProductDistributionFor=Fördelning av %s för %s
 ForCustomersInvoices=Kundens fakturor
-# ForCustomersOrders=Customers orders
+ForCustomersOrders=Kund beställningar
 ForProposals=Förslag
diff --git a/htdocs/langs/sv_SE/cashdesk.lang b/htdocs/langs/sv_SE/cashdesk.lang
index 9dc083d5e4421246b5266223e8dab71df827f801..b423702c634b55343169ac58f49d6c613bdc739f 100644
--- a/htdocs/langs/sv_SE/cashdesk.lang
+++ b/htdocs/langs/sv_SE/cashdesk.lang
@@ -12,7 +12,7 @@ CashDeskProducts=Produkter
 CashDeskStock=Lager
 CashDeskOn=på
 CashDeskThirdParty=Tredje part
-# CashdeskDashboard=Point of sale access
+CashdeskDashboard=Försäljningsställe
 ShoppingCart=Kundvagn
 NewSell=Nya säljer
 BackOffice=Back office
@@ -36,5 +36,5 @@ BankToPay=KONTO
 ShowCompany=Visar företaget
 ShowStock=Visar lagret
 DeleteArticle=Klicka här för att ta bort den här artikeln
-# FilterRefOrLabelOrBC=Search (Ref/Label)
-# UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
+FilterRefOrLabelOrBC=Sök (Ref / etikett)
+UserNeedPermissionToEditStockToUsePos=Du ber att minska lager på faktura skapelse, så användare som använder POS behöver ha behörighet att redigera lager.
diff --git a/htdocs/langs/sv_SE/categories.lang b/htdocs/langs/sv_SE/categories.lang
index 34f80e7f951161a12b2cddb3adeb3f04a0f5df25..42ef6bd5d47c15726740a4cb843bcf5c5a830399 100644
--- a/htdocs/langs/sv_SE/categories.lang
+++ b/htdocs/langs/sv_SE/categories.lang
@@ -111,4 +111,4 @@ ExtraFieldsCategories=Extra attibut
 CategoriesSetup=Kategorier, inställningar
 CategorieRecursiv=Länka automatiskt med förälderkategori
 CategorieRecursivHelp=Om aktiverad kommer produkten även länkas till förälderkategori när den läggs i en underkategori
-AddProductServiceIntoCategory=Add the following product/service
+AddProductServiceIntoCategory=Lägg till följande produkt / tjänst
diff --git a/htdocs/langs/sv_SE/commercial.lang b/htdocs/langs/sv_SE/commercial.lang
index db67958f331202fa90f52ab5c657730300eb2b0f..4e4fd7f51aa22d645870f4ac49f66bd5765f302b 100644
--- a/htdocs/langs/sv_SE/commercial.lang
+++ b/htdocs/langs/sv_SE/commercial.lang
@@ -9,9 +9,9 @@ Prospect=Prospect
 Prospects=Framtidsutsikter
 DeleteAction=Ta bort en handling / uppgift
 NewAction=Ny åtgärd / uppgift
-AddAction=Lägg till åtgärd / uppgift
-AddAnAction=Lägg till en handling / uppgift
-AddActionRendezVous=Lägg till en Rendezvous uppgift
+AddAction=Skapa händelse / uppgift
+AddAnAction=Skapa en händelse / uppgift
+AddActionRendezVous=Skapa en Rendez-vous händelse
 Rendez-Vous=Rendezvous
 ConfirmDeleteAction=Är du säker på att du vill ta bort denna uppgift?
 CardAction=Action-kort
@@ -44,8 +44,8 @@ DoneActions=Genomförda åtgärder
 DoneActionsFor=Genomförda åtgärder för %s
 ToDoActions=Ofullständig åtgärder
 ToDoActionsFor=Ofullständiga åtgärder för %s
-SendPropalRef=Skicka kommersiella förslag %s
-SendOrderRef=Skicka beställningen %s
+SendPropalRef=Inlämning av kommersiella förslag %s
+SendOrderRef=Inlämning av ordning %s
 StatusNotApplicable=Ej tillämpligt
 StatusActionToDo=För att göra
 StatusActionDone=Komplett
@@ -62,7 +62,7 @@ LastProspectContactDone=Kontakta gjort
 DateActionPlanned=Datum planerade åtgärder för
 DateActionDone=Datum insatser görs
 ActionAskedBy=Åtgärd bad
-ActionAffectedTo=Åtgärd påverkas
+ActionAffectedTo=Händelse som ägs av
 ActionDoneBy=Åtgärder som utförs av
 ActionUserAsk=Registrerats av
 ErrorStatusCantBeZeroIfStarted=Om fältet <b>&quot;Datum gjort&quot;</b> är fylld, är arbetet igång (eller färdiga), så fältet <b>&quot;Status&quot;</b> kan inte 0%%.
@@ -71,7 +71,7 @@ ActionAC_FAX=Skicka fax
 ActionAC_PROP=Skicka förslag via e-post
 ActionAC_EMAIL=Skicka e-post
 ActionAC_RDV=Möten
-ActionAC_INT=Intervention on site
+ActionAC_INT=Intervention på plats
 ActionAC_FAC=Skicka kundfaktura med post
 ActionAC_REL=Skicka kundfaktura via post (påminnelse)
 ActionAC_CLO=Stäng
diff --git a/htdocs/langs/sv_SE/companies.lang b/htdocs/langs/sv_SE/companies.lang
index 54df1904f2676d3d00f495f9079c223d484664e3..1e640e1b80e08092b046df761074bc26894ee7b4 100644
--- a/htdocs/langs/sv_SE/companies.lang
+++ b/htdocs/langs/sv_SE/companies.lang
@@ -91,9 +91,9 @@ LocalTax2IsUsedES= IRPF används
 LocalTax2IsNotUsedES= IRPF används inte
 LocalTax1ES=RE
 LocalTax2ES=IRPF
-TypeLocaltax1ES=RE Type
-TypeLocaltax2ES=IRPF Type
-TypeES=Type
+TypeLocaltax1ES=RE Typ
+TypeLocaltax2ES=IRPF Typ
+TypeES=Typ
 ThirdPartyEMail=%s
 WrongCustomerCode=Kundkod ogiltig
 WrongSupplierCode=Leverantörkod ogiltig
@@ -259,8 +259,8 @@ AvailableGlobalDiscounts=Absoluta rabatter
 DiscountNone=Ingen
 Supplier=Leverantör
 CompanyList=Företagslista
-AddContact=Lägg till kontakt
-AddContactAddress=Lägg till kontakt / adress
+AddContact=Skapa kontakt
+AddContactAddress=Skapa kontakt / adress
 EditContact=Redigera kontakt / adress
 EditContactAddress=Redigera kontakt / adress
 Contact=Kontakt
@@ -268,8 +268,8 @@ ContactsAddresses=Kontakt / Adresser
 NoContactDefinedForThirdParty=Ingen kontakt inlagd för denna tredje part
 NoContactDefined=Ingen kontakt inlagd
 DefaultContact=Standard kontakt / adress
-AddCompany=Lägg till företag
-AddThirdParty=Lägg till tredje part
+AddCompany=Skapa företag
+AddThirdParty=Skapa tredje part
 DeleteACompany=Ta bort ett företag
 PersonalInformations=Personuppgifter
 AccountancyCode=Bokföring kod
@@ -379,8 +379,8 @@ DeliveryAddressLabel=Leverans adresskortet
 DeleteDeliveryAddress=Ta bort en leveransadress
 ConfirmDeleteDeliveryAddress=Är du säker på att du vill ta bort denna leveransadress?
 NewDeliveryAddress=Ny leveransadress
-AddDeliveryAddress=Lägg till adress
-AddAddress=Lägg till adress
+AddDeliveryAddress=Skapa adress
+AddAddress=Skapa adress
 NoOtherDeliveryAddress=Ingen alternativ leveransadress definierad
 SupplierCategory=Leverantör kategori
 JuridicalStatus200=Oberoende
@@ -397,18 +397,18 @@ YouMustCreateContactFirst=Du måste först skapa e-postkontakter för tredje par
 ListSuppliersShort=Lista över leverantörer
 ListProspectsShort=Lista över möjliga kunder
 ListCustomersShort=Lista över kunder
-ThirdPartiesArea=Third parties and contact area
+ThirdPartiesArea=Tredje part och kontaktyta
 LastModifiedThirdParties=Senaste %s modifierade tredje part
 UniqueThirdParties=Totalt unika tredje part
 InActivity=Öppet
 ActivityCeased=Stängt
 ActivityStateFilter=Sysselsättningsstatus
-ProductsIntoElements=List of products into %s
+ProductsIntoElements=Lista produkter till %s
 CurrentOutstandingBill=Obetalda fakturor
 OutstandingBill=Max för obetald faktura
 OutstandingBillReached=Upnått tak för obetalda fakturor
 MonkeyNumRefModelDesc=Ger nummer med format %syymm-nnnn för kundnummer och %syymm-nnnn för leverantörnummer där YY är år, mm månad och nnnn är en sekvens utan avbrott och utan återgång till 0.
 LeopardNumRefModelDesc=Kund / leverantör-nummer är ledig. Denna kod kan ändras när som helst.
 ManagingDirectors=Företagledares namn (vd, direktör, ordförande ...)
-SearchThirdparty=Search thirdparty
-SearchContact=Search contact
+SearchThirdparty=Sök tredjeparts
+SearchContact=Sök kontakt
diff --git a/htdocs/langs/sv_SE/contracts.lang b/htdocs/langs/sv_SE/contracts.lang
index 98e98e079c66c1319d3b370a491d6b9187871713..9329c9a9701d6c9e7a01fc6a0721c9797ca01976 100644
--- a/htdocs/langs/sv_SE/contracts.lang
+++ b/htdocs/langs/sv_SE/contracts.lang
@@ -27,7 +27,7 @@ MenuRunningServices=Löpande tjänster
 MenuExpiredServices=Utlöpta tjänster
 MenuClosedServices=Stängda tjänster
 NewContract=Nytt kontrakt
-AddContract=Lägg till kontrakt
+AddContract=Skapa kontrakt
 SearchAContract=Sök ett kontrakt
 DeleteAContract=Ta bort ett kontrakt
 CloseAContract=Stäng ett kontrakt
@@ -89,8 +89,8 @@ ListOfServicesToExpireWithDuration=Förteckning över tjänster som löper ut in
 ListOfServicesToExpireWithDurationNeg=Förteckning över tjänster som löpt ut sedan mer än %s dagar
 ListOfServicesToExpire=Förteckning över tjänster som löper ut
 NoteListOfYourExpiredServices=Denna förteckning omfattar endast tjänster från avtal med tredje part i förhållande till vilka du är säljare.
-StandardContractsTemplate=Standard contracts template
-ContactNameAndSignature=For %s, name and signature:
+StandardContractsTemplate=Standardkontrakt mall
+ContactNameAndSignature=För %s, namn och underskrift:
 
 ##### Types de contacts #####
 TypeContact_contrat_internal_SALESREPSIGN=Säljare som tecknar avtal
diff --git a/htdocs/langs/sv_SE/cron.lang b/htdocs/langs/sv_SE/cron.lang
index 518d8c5695f5208f07c46d8dd17a176c09c28855..0857c69559756cdb4efbe506c82e91ae688ef75e 100644
--- a/htdocs/langs/sv_SE/cron.lang
+++ b/htdocs/langs/sv_SE/cron.lang
@@ -1,42 +1,40 @@
 # Dolibarr language file - Source file is en_US - cron
-#
 # About page
 About = Om
 CronAbout = Om Cron
-CronAboutPage = Cron about page
-
+CronAboutPage = Cron om sidan
 # Right
-Permission23101 = Read Scheduled task
-Permission23102 = Create/update Scheduled task
-Permission23103 = Delete Scheduled task
-Permission23104 = Execute Scheduled task
+Permission23101 = Läs schedulerad uppgift
+Permission23102 = Skapa / uppdatera Schemalagd aktivitet
+Permission23103 = Ta bort schemalagd aktivitet
+Permission23104 = Kör schemalagd aktivitet
 # Admin
-CronSetup= Scheduled job management setup
-URLToLaunchCronJobs=URL to check and launch cron jobs if required
-OrToLaunchASpecificJob=Or to check and launch a specific job
-KeyForCronAccess=Security key for URL to launch cron jobs
+CronSetup= Planerad jobbhantering installation
+URLToLaunchCronJobs=URL för att kontrollera och starta cron-jobb om det behövs
+OrToLaunchASpecificJob=Eller för att kontrollera och starta ett specifikt arbete
+KeyForCronAccess=Säkerhetsnyckel för URL för att lansera cron-jobb
 FileToLaunchCronJobs=Kommandorad för att starta cron jobb
-CronExplainHowToRunUnix=On Unix environment you should use crontab to run Command line each minutes
-CronExplainHowToRunWin=On Microsoft(tm) Windows environement you can use Scheduled task tools to run Command line each minutes
+CronExplainHowToRunUnix=På Unix-miljö bör du använda crontab för att köra kommandoraden varje minuter
+CronExplainHowToRunWin=På Microsoft (tm) Windows environement kan du använda schemalagd aktivitet verktyg för att köra kommandoraden varje minuter
 # Menu
-CronJobs=Scheduled jobs
-CronListActive= List of active jobs
-CronListInactive= List of disabled jobs
-CronListActive= List of active jobs
+CronJobs=Schemalagda jobb
+CronListActive= Lista över aktiva jobb
+CronListInactive= Lista över handikappade jobb
+CronListActive= Lista över aktiva jobb
 # Page list
 CronDateLastRun=Senaste körning
-CronLastOutput=Last run output
-CronLastResult=Last result code
-CronListOfCronJobs=List of scheduled jobs
+CronLastOutput=Sista loppet utgång
+CronLastResult=Senaste resultat code
+CronListOfCronJobs=Lista över schemalagda jobb
 CronCommand=Kommando
-CronList=Jobs list
-CronDelete= Delete cron jobs
-CronConfirmDelete= Are you sure you want to delete this cron job ?
-CronExecute=Launch job
-CronConfirmExecute= Are you sure to execute this job now
-CronInfo= Jobs allow to execute task that have been planned
-CronWaitingJobs=Wainting jobs
-CronTask=Job
+CronList=Listan Jobb
+CronDelete= Radera cron-jobb
+CronConfirmDelete= Är du säker på att du vill ta bort denna cron-jobb?
+CronExecute=Starta jobb
+CronConfirmExecute= Är du säker på att utföra detta jobb nu
+CronInfo= Jobb möjligt att utföra uppgiften som har planerats
+CronWaitingJobs=Wainting jobb
+CronTask=Jobb
 CronNone= Ingen
 CronDtStart=Startdatum
 CronDtEnd=Slutdatum
@@ -46,44 +44,44 @@ CronFrequency=Frekvens
 CronClass=Klass
 CronMethod=Metod
 CronModule=Modul
-CronAction=Action
+CronAction=Åtgärd
 CronStatus=Status
 CronStatusActive=Aktiverat
 CronStatusInactive=Funktionshindrade
-CronNoJobs=No jobs registered
+CronNoJobs=Inga jobb registrerade
 CronPriority=Prioritet
 CronLabel=Beskrivning
-CronNbRun=Nb. launch
+CronNbRun=Nb. lanseringen
 CronEach=Varje
-JobFinished=Job launched and finished
+JobFinished=Job lanserad och klar
 #Page card
-CronAdd= Add jobs
-CronHourStart= Start Hour and date of task
-CronEvery= And execute task each
-CronObject= Instance/Object to create
+CronAdd= Lägg till jobb
+CronHourStart= Start Hour och datum för uppgiften
+CronEvery= Och köra uppgiften varje
+CronObject= Instans / Object för att skapa
 CronArgs=Parametrar
-CronSaveSucess=Save succesfully
+CronSaveSucess=Spara framgångsrikt
 CronNote=Kommentar
-CronFieldMandatory=Fields %s is mandatory
-CronErrEndDateStartDt=End date cannot be before start date
+CronFieldMandatory=Fält %s är obligatoriskt
+CronErrEndDateStartDt=Slutdatum kan inte vara före startdatum
 CronStatusActiveBtn=Aktivera
 CronStatusInactiveBtn=Inaktivera
-CronTaskInactive=This job is disabled
-CronDtLastResult=Last result date
+CronTaskInactive=Det här jobbet är avaktiverat
+CronDtLastResult=Senaste resultatet datum
 CronId=Id
 CronClassFile=Klasser (filename.class.php)
-CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module). <BR> For exemple to fetch method of Dolibarr Product object /htdocs/<u>product</u>/class/product.class.php, the value of module is <i>product</i>
-CronClassFileHelp=The file name to load. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/<u>product.class.php</u>, the value of class file name is <i>product.class.php</i>
-CronObjectHelp=The object name to load. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is <i>Product</i>
-CronMethodHelp=The object method to launch. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is  is <i>fecth</i>
-CronArgsHelp=The method arguments. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be <i>0, ProductRef</i>
-CronCommandHelp=The system command line to execute.
+CronModuleHelp=Namn på Dolibarr modul katalog (även arbeta med extern Dolibarr modul). <BR> För exemple att hämta metod för Dolibarr Produkt objektet / htdocs / <u>produkt</u> /class/product.class.php, värdet av modulen är <i>produkten</i>
+CronClassFileHelp=Filnamnet för att ladda. <BR> För exemple att hämta metod för Dolibarr Produkt objektet / htdocs / produkt / klass / <u>product.class.php,</u> är värdet av klass filnamn <i>product.class.php</i>
+CronObjectHelp=Det objektnamn som ska läsas in. <BR> För exemple att hämta metod för Dolibarr Produktobjekt /htdocs/product/class/product.class.php, är värdet av klass filnamn <i>Produkt</i>
+CronMethodHelp=Objektet metod för att starta. <BR> För exemple att hämta metod för Dolibarr Produktobjekt /htdocs/product/class/product.class.php, värdet av metoden är är <i>fecth</i>
+CronArgsHelp=Metoden argument. <BR> Till exemple att hämta förfarande för Dolibarr Produkt objekt /htdocs/product/class/product.class.php kan värdet av paramters vara <i>0, ProductRef</i>
+CronCommandHelp=Systemet kommandoraden som ska köras.
 # Info
 CronInfoPage=Information
 # Common
-CronType=Task type
-CronType_method=Call method of a Dolibarr Class
-CronType_command=Shell command
+CronType=Task typ
+CronType_method=Call metod för en Dolibarr klass
+CronType_command=Skalkommando
 CronMenu=Cron
-CronCannotLoadClass=Cannot load class %s or object %s
-UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Modules tools - Job list" to see and edit scheduled jobs.
+CronCannotLoadClass=Det går inte att läsa in klassen% s eller objekt% s
+UseMenuModuleToolsToAddCronJobs=Gå in på menyn "Home - Moduler verktyg - Job list" för att se och redigera schemalagda jobb.
diff --git a/htdocs/langs/sv_SE/deliveries.lang b/htdocs/langs/sv_SE/deliveries.lang
index 393ba2ebbcca1a5863a59dd5ad10ae0ed57ecedd..315f3668602d59ff1d23121c2d4f234bf9b800b3 100644
--- a/htdocs/langs/sv_SE/deliveries.lang
+++ b/htdocs/langs/sv_SE/deliveries.lang
@@ -24,3 +24,5 @@ Deliverer=Utlämnad av:
 Sender=Avsändare
 Recipient=Mottagare
 ErrorStockIsNotEnough=Det finns inte tillräckligt i lager
+Shippable=Sändbara
+NonShippable=Inte sändbara
diff --git a/htdocs/langs/sv_SE/dict.lang b/htdocs/langs/sv_SE/dict.lang
index c69b273c44a35e1e4a531f6286e6d09f1036606e..1c6f314ac0fadbef704476625e117498d734947d 100644
--- a/htdocs/langs/sv_SE/dict.lang
+++ b/htdocs/langs/sv_SE/dict.lang
@@ -6,7 +6,7 @@ CountryES=Spanien
 CountryDE=Tyskland
 CountryCH=Schweiz
 CountryGB=STORBRITANNIEN
-# CountryUK=United Kingdom
+CountryUK=United Kingdom
 CountryIE=Irland
 CountryCN=Kina
 CountryTN=Tunisien
@@ -252,8 +252,7 @@ CivilityMME=Mrs
 CivilityMR=Mr
 CivilityMLE=Ms
 CivilityMTRE=Master
-# CivilityDR=Doctor
-
+CivilityDR=Doktor
 ##### Currencies #####
 Currencyeuros=Euro
 CurrencyAUD=AU dollar
@@ -290,10 +289,10 @@ CurrencyXOF=FCFA BCEAO
 CurrencySingXOF=CFA Franc BCEAO
 CurrencyXPF=Fiskeripolitiken franc
 CurrencySingXPF=CFP-franc
-
-# CurrencyCentSingEUR=cent
-# CurrencyThousandthSingTND=thousandth
-
+CurrencyCentSingEUR=cent
+CurrencyCentINR=paisa
+CurrencyCentSingINR=paise
+CurrencyThousandthSingTND=tusendel
 #### Input reasons #####
 DemandReasonTypeSRC_INTE=Internet
 DemandReasonTypeSRC_CAMP_MAIL=Post kampanj
@@ -302,28 +301,27 @@ DemandReasonTypeSRC_CAMP_PHO=Telefonen kampanj
 DemandReasonTypeSRC_CAMP_FAX=Fax kampanjen
 DemandReasonTypeSRC_COMM=Kommersiella kontakt
 DemandReasonTypeSRC_SHOP=Handla kontakt
-# DemandReasonTypeSRC_WOM=Word of mouth
-# DemandReasonTypeSRC_PARTNER=Partner
-# DemandReasonTypeSRC_EMPLOYEE=Employee
-# DemandReasonTypeSRC_SPONSORING=Sponsorship
-
+DemandReasonTypeSRC_WOM=Word of mouth
+DemandReasonTypeSRC_PARTNER=Partner
+DemandReasonTypeSRC_EMPLOYEE=Anställd
+DemandReasonTypeSRC_SPONSORING=Sponsor
 #### Paper formats ####
-# PaperFormatEU4A0=Format 4A0
-# PaperFormatEU2A0=Format 2A0
-# PaperFormatEUA0=Format A0
-# PaperFormatEUA1=Format A1
-# PaperFormatEUA2=Format A2
-# PaperFormatEUA3=Format A3
-# PaperFormatEUA4=Format A4
-# PaperFormatEUA5=Format A5
-# PaperFormatEUA6=Format A6
-# PaperFormatUSLETTER=Format Letter US
-# PaperFormatUSLEGAL=Format Legal US
-# PaperFormatUSEXECUTIVE=Format Executive US
-# PaperFormatUSLEDGER=Format Ledger/Tabloid
-# PaperFormatCAP1=Format P1 Canada
-# PaperFormatCAP2=Format P2 Canada
-# PaperFormatCAP3=Format P3 Canada
-# PaperFormatCAP4=Format P4 Canada
-# PaperFormatCAP5=Format P5 Canada
-# PaperFormatCAP6=Format P6 Canada
+PaperFormatEU4A0=Format 4A0
+PaperFormatEU2A0=Format 2A0
+PaperFormatEUA0=Format A0
+PaperFormatEUA1=Format A1
+PaperFormatEUA2=Format A2
+PaperFormatEUA3=Format A3
+PaperFormatEUA4=Format A4
+PaperFormatEUA5=Format A5
+PaperFormatEUA6=A6-format
+PaperFormatUSLETTER=Format Letter US
+PaperFormatUSLEGAL=Format Legal US
+PaperFormatUSEXECUTIVE=Format Executive US
+PaperFormatUSLEDGER=Formatet Ledger / Tabloid
+PaperFormatCAP1=Format P1 Kanada
+PaperFormatCAP2=Format P2 Kanada
+PaperFormatCAP3=Format P3 Kanada
+PaperFormatCAP4=Format P4 Kanada
+PaperFormatCAP5=Format P5 Kanada
+PaperFormatCAP6=Format P6 Kanada
diff --git a/htdocs/langs/sv_SE/donations.lang b/htdocs/langs/sv_SE/donations.lang
index dbce6c624028a0007b13a94da66250c4511d62d1..de829e62d03a3d0f6f01990c47ef8397f671a762 100644
--- a/htdocs/langs/sv_SE/donations.lang
+++ b/htdocs/langs/sv_SE/donations.lang
@@ -4,9 +4,9 @@ Donations=Donationer
 DonationRef=Donation ref.
 Donor=Givare
 Donors=Givare
-AddDonation=Lägg till en donation
+AddDonation=Skapa en donation
 NewDonation=Ny donation
-ShowDonation=Show donation
+ShowDonation=Visa donation
 DonationPromise=Gift löfte
 PromisesNotValid=Inte validerade löften
 PromisesValid=Validerad löften
@@ -22,12 +22,12 @@ DonationStatusPromiseNotValidatedShort=Förslag
 DonationStatusPromiseValidatedShort=Validerad
 DonationStatusPaidShort=Mottagna
 ValidPromess=Validate löfte
-DonationReceipt=Donation receipt
+DonationReceipt=Donation kvitto
 BuildDonationReceipt=Bygg kvitto
 DonationsModels=Dokument modeller för donation kvitton
 LastModifiedDonations=Sista %s modifierad donationer
 SearchADonation=Sök en donation
-DonationRecipient=Donation recipient
-ThankYou=Thank You
-IConfirmDonationReception=The recipient declare reception, as a donation, of the following amount
-MinimumAmount=Minimum amount is  %s
+DonationRecipient=Donation mottagaren
+ThankYou=Tack
+IConfirmDonationReception=Mottagaren förklarar mottagning, som en donation, av följande belopp
+MinimumAmount=Minsta belopp är% s
diff --git a/htdocs/langs/sv_SE/ecm.lang b/htdocs/langs/sv_SE/ecm.lang
index 5b61533edd0589bd5a6ec0b4253927c4f1561f57..7010cddbf8da63104cf838bda150811782c2053e 100644
--- a/htdocs/langs/sv_SE/ecm.lang
+++ b/htdocs/langs/sv_SE/ecm.lang
@@ -23,10 +23,10 @@ ECMNewDocument=Nytt dokument
 ECMCreationDate=Datum för skapande
 ECMNbOfFilesInDir=Antalet filer i katalogen
 ECMNbOfSubDir=Antal underkataloger
-# ECMNbOfFilesInSubDir=Number of files in sub-directories
+ECMNbOfFilesInSubDir=Antalet filer i underkataloger
 ECMCreationUser=Creator
-# ECMArea=EDM area
-# ECMAreaDesc=The EDM (Electronic Document Management) area allows you to save, share and search quickly all kind of documents in Dolibarr.
+ECMArea=EDM område
+ECMAreaDesc=EDM (Electronic Document Management) området kan du spara, dela och snabbt söka alla typer av dokument i Dolibarr.
 ECMAreaDesc2=* Automatisk kataloger fylls automatiskt när man lägger till dokument från kort av ett element. <br> * Manuell kataloger kan användas för att spara dokument inte är knutna till ett visst element.
 ECMSectionWasRemoved=Nummer <b>%s</b> har tagits bort.
 ECMDocumentsSection=Dokument om katalogen
@@ -35,14 +35,14 @@ ECMSearchByEntity=Sök på objektet
 ECMSectionOfDocuments=Register över handlingar
 ECMTypeManual=Manuell
 ECMTypeAuto=Automatisk
-# ECMDocsBySocialContributions=Documents linked to social contributions
+ECMDocsBySocialContributions=Handlingar som är kopplade till sociala avgifter
 ECMDocsByThirdParties=Dokument med koppling till tredje part
 ECMDocsByProposals=Dokument med koppling till förslagen
 ECMDocsByOrders=Dokument med koppling till kunderna order
 ECMDocsByContracts=Handlingar som är kopplade till kontrakt
 ECMDocsByInvoices=Dokument med koppling till kunderna fakturor
 ECMDocsByProducts=Dokument med koppling till produkter
-# ECMDocsByProjects=Documents linked to projects
+ECMDocsByProjects=Handlingar som är kopplade till projekt
 ECMNoDirectoryYet=Ingen katalog skapas
 ShowECMSection=Visa katalog
 DeleteSection=Ta bort katalog
@@ -51,5 +51,5 @@ ECMDirectoryForFiles=Relativ katalog för filer
 CannotRemoveDirectoryContainsFiles=Flyttat inte möjligt eftersom det innehåller några filer
 ECMFileManager=Filhanteraren
 ECMSelectASection=Välj en katalog på vänster träd ...
-# DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Refresh" button first to synchronize disk and database to get content of this directory.
+DirNotSynchronizedSyncFirst=Denna katalog verkar skapas eller ändras utanför ECM-modulen. Du måste klicka på "Uppdatera" knappen först att synkronisera disk och databas för att få innehållet i den här katalogen.
 
diff --git a/htdocs/langs/sv_SE/errors.lang b/htdocs/langs/sv_SE/errors.lang
index bac137d98a17912af84b217c0c59c6f2860ed932..230f6f748892a7981d32b41a46e383358edc860b 100644
--- a/htdocs/langs/sv_SE/errors.lang
+++ b/htdocs/langs/sv_SE/errors.lang
@@ -1,11 +1,11 @@
 # Dolibarr language file - Source file is en_US - errors
 
 # No errors
-NoErrorCommitIsDone=No error, we commit
+NoErrorCommitIsDone=Inget fel
 # Errors
 Error=Fel
 Errors=Fel
-ErrorButCommitIsDone=Errors found but we validate despite this
+ErrorButCommitIsDone=Fel hittades men vi validera trots detta
 ErrorBadEMail=EMail %s är fel
 ErrorBadUrl=Url %s är fel
 ErrorLoginAlreadyExists=Logga %s finns redan.
@@ -23,23 +23,23 @@ ErrorThisContactIsAlreadyDefinedAsThisType=Denna kontakt redan har definierats s
 ErrorCashAccountAcceptsOnlyCashMoney=Detta bankkonto är en kontant-konto, så det tar emot betalningar av typ kontanter endast.
 ErrorFromToAccountsMustDiffers=Källa och mål bankkonton måste vara olika.
 ErrorBadThirdPartyName=Felaktigt värde för tredje part namn
-ErrorProdIdIsMandatory=The %s is mandatory
+ErrorProdIdIsMandatory=%s är obligatoriskt
 ErrorBadCustomerCodeSyntax=Dålig syntax för kundkod
-ErrorBadBarCodeSyntax=Bad syntax for bar code
+ErrorBadBarCodeSyntax=Dålig syntax för streckkod
 ErrorCustomerCodeRequired=Kunden som erfordras
-ErrorBarCodeRequired=Bar code required
+ErrorBarCodeRequired=Streckkod krävs
 ErrorCustomerCodeAlreadyUsed=Kund-kod som används redan
-ErrorBarCodeAlreadyUsed=Bar code already used
+ErrorBarCodeAlreadyUsed=Streckkod som redan används
 ErrorPrefixRequired=Prefix krävs
 ErrorUrlNotValid=Webbplatsen adressen är felaktig
 ErrorBadSupplierCodeSyntax=Bad syntax för leverantör kod
 ErrorSupplierCodeRequired=Leverantör som erfordras
 ErrorSupplierCodeAlreadyUsed=Leverantör kod som används redan
-ErrorBadParameters=Bad parametrar
+ErrorBadParameters=Dåliga parametrar
 ErrorBadValueForParameter=Fel värde &quot;%s&quot; för parameter oriktiga &quot;%s kallad konventionen
-ErrorBadImageFormat=Bildfil har inte ett format som stöds
+ErrorBadImageFormat=Bildfilen har inte ett format som stöds (Din PHP stöder inte funktioner för att konvertera bilder av det här formatet)
 ErrorBadDateFormat=Värde &quot;%s&quot; har fel datumformat
-ErrorWrongDate=Date is not correct!
+ErrorWrongDate=Datum är inte korrekt!
 ErrorFailedToWriteInDir=Misslyckades med att skriva i katalogen %s
 ErrorFoundBadEmailInFile=Hittade felaktig e-syntax för %s rader i filen (t.ex. linje %s med email = %s)
 ErrorUserCannotBeDelete=Användaren kan inte tas bort. Får den hör samman på Dolibarr enheter.
@@ -60,21 +60,21 @@ ErrorUploadBlockedByAddon=Ladda upp blockeras av en PHP / Apache plugin.
 ErrorFileSizeTooLarge=Filen är för stor.
 ErrorSizeTooLongForIntType=Storlek för lång för int typ (%s siffror max)
 ErrorSizeTooLongForVarcharType=Storlek för lång för sträng typ (%s tecken max)
-ErrorNoValueForSelectType=Please fill value for select list
-ErrorNoValueForCheckBoxType=Please fill value for checkbox list
-ErrorNoValueForRadioType=Please fill value for radio list
-ErrorBadFormatValueList=The list value cannot have more than one come : <u>%s</u>, but need at least one: llave,valores
+ErrorNoValueForSelectType=Vänligen fyll i värde för utvald lista
+ErrorNoValueForCheckBoxType=Vänligen fyll i värde för krysslista
+ErrorNoValueForRadioType=Vänligen fyll i värde för radiolista
+ErrorBadFormatValueList=Listans värd kan inte ha mer än ett komma: <u>%s</u>,  men behöver åtminstone en: Llave, valores
 ErrorFieldCanNotContainSpecialCharacters=Fält <b>%s</b> inte innehåller specialtecken.
-ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contains special characters, nor upper case characters.
+ErrorFieldCanNotContainSpecialNorUpperCharacters=Fältet <b>%s</b> får inte innehåller specialtecken eller versaler.
 ErrorNoAccountancyModuleLoaded=Ingen bokföring modul aktiverad
-ErrorExportDuplicateProfil=This profile name already exists for this export set.
+ErrorExportDuplicateProfil=Detta profilnamn finns redan för denna export.
 ErrorLDAPSetupNotComplete=Dolibarr-LDAP matchning inte är fullständig.
 ErrorLDAPMakeManualTest=A. LDIF filen har genererats i katalogen %s. Försök att läsa in den manuellt från kommandoraden för att få mer information om fel.
 ErrorCantSaveADoneUserWithZeroPercentage=Kan inte spara en åtgärd med &quot;inte Statut startade&quot; om fältet &quot;görs av&quot; är också fylld.
 ErrorRefAlreadyExists=Ref används för att skapa finns redan.
 ErrorPleaseTypeBankTransactionReportName=Skriv namn bank kvitto där transaktionen rapporteras (Format ÅÅÅÅMM eller ÅÅÅÅMMDD)
 ErrorRecordHasChildren=Misslyckades med att radera poster eftersom det har några barns.
-ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
+ErrorRecordIsUsedCantDelete=Kan inte ta bort posten. Den används redan eller ingå i annat föremål.
 ErrorModuleRequireJavascript=Javascript måste inte avaktiveras att ha denna funktion fungerar. Aktivera / inaktivera Javascript, gå till menyn Hem-> Inställningar-> Display.
 ErrorPasswordsMustMatch=Båda skrivit lösenord måste matcha varandra
 ErrorContactEMail=Ett tekniskt fel uppstod. Vänligen kontakta administratören att följa <b>e-%s</b> en ge <b>%s</b> felkod i ditt meddelande, eller ännu bättre genom att lägga till en skärm kopia av denna sida.
@@ -114,32 +114,33 @@ ErrorLoginDoesNotExists=Användaren med inloggning <b>%s</b> kunde inte hittas.
 ErrorLoginHasNoEmail=Denna användare har inga e-postadress. Process avbruten.
 ErrorBadValueForCode=Dåligt värde typer för kod. Försök igen med ett nytt värde ...
 ErrorBothFieldCantBeNegative=Fält %s och %s kan inte vara både negativt
+ErrorQtyForCustomerInvoiceCantBeNegative=Kvantitet för linje i kundfakturor kan inte vara negativt
 ErrorWebServerUserHasNotPermission=Användarkonto <b>%s</b> användas för att exekvera webbserver har ingen behörighet för den
 ErrorNoActivatedBarcode=Ingen streckkod typ aktiveras
-ErrUnzipFails=Failed to unzip %s with ZipArchive
-ErrNoZipEngine=No engine to unzip %s file in this PHP
-ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package
-ErrorFileRequired=It takes a package Dolibarr file
-ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal
-ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base
-ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base
-ErrorNewValueCantMatchOldValue=New value can't be equal to old one
-ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process.
-ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check Mysql server is running (in most cases, you can launch it from command line with 'sudo /etc/init.d/mysql start').
-ErrorFailedToAddContact=Failed to add contact
-ErrorDateMustBeBeforeToday=The date can not be greater than today
-ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode.
-ErrorPHPNeedModule=Error, your PHP must have module <b>%s</b> installed to use this feature.
-ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s
-ErrorWarehouseMustDiffers=Source and target warehouses must differs
-ErrorBadFormat=Bad format!
-ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any thirdparty. Link member to an existing third party or create a new thirdparty before creating subscription with invoice.
-ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
-ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank transaction that was conciliated
-ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
+ErrUnzipFails=Det gick inte att packa upp %s med ZipArchive
+ErrNoZipEngine=Ingen motor att packa upp %s fil i denna PHP
+ErrorFileMustBeADolibarrPackage=Filen %s måste vara ett Dolibarr zip-paket
+ErrorFileRequired=Det tar ett paket Dolibarr fil
+ErrorPhpCurlNotInstalled=PHP CURL är inte installerat, detta är viktigt för att prata med Paypal
+ErrorFailedToAddToMailmanList=Det gick inte att lägga till post %s till Mailman listan %s eller SPIP bas
+ErrorFailedToRemoveToMailmanList=Det gick inte att ta bort posten %s till Mailman listan %s eller SPIP bas
+ErrorNewValueCantMatchOldValue=Nytt värde kan inte vara lika med gamla
+ErrorFailedToValidatePasswordReset=Det gick inte att REINIT lösenord. Kan vara reinit var redan gjort (den här länken kan bara användas en gång). Om inte, försök att starta om reinit processen.
+ErrorToConnectToMysqlCheckInstance=Anslut till databasen misslyckas. Kolla Mysql servern är igång (i de flesta fall kan du starta det från kommandoraden med "sudo /etc/init.d/mysql start").
+ErrorFailedToAddContact=Det gick inte att lägga till kontakt
+ErrorDateMustBeBeforeToday=Datumet kan inte vara större än i dag
+ErrorPaymentModeDefinedToWithoutSetup=Ett betalningsläge var inställt för att skriva %s, men installationen av modulens faktura fördes inte att definiera informationen som ska visas för den här betalningsläget.
+ErrorPHPNeedModule=Fel, din PHP måste ha modul <b>%s</b> installerad för att använda den här funktionen.
+ErrorOpenIDSetupNotComplete=Du inställning för Dolibarr konfigurationsfil möjliggör OpenID autentisering, men webbadressen OpenID tjänsten definieras inte i ständig %s
+ErrorWarehouseMustDiffers=Källa och mål lager måste skiljer
+ErrorBadFormat=Dåligt format!
+ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Fel, denna medlem ännu kopplad till någon tredjeparts. Länka medlem i en befintlig tredje part eller skapa en ny tredjeparts innan du skapar abonnemang med faktura.
+ErrorThereIsSomeDeliveries=Fel, det finns några leveranser kopplade till denna sändning. Radering vägrade.
+ErrorCantDeletePaymentReconciliated=Kan inte ta bort en betalning som hade genererat en banktransaktion som conciliated
+ErrorCantDeletePaymentSharedWithPayedInvoice=Kan inte ta bort en betalning som delas av minst en faktura med status betalt
 
 # Warnings
-WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
+WarningMandatorySetupNotComplete=Obligatoriska inställningsparametrarna har ännu inte definierat
 WarningSafeModeOnCheckExecDir=Varning, PHP alternativ <b>safe_mode</b> är på så kommando måste stoppas in i en katalog som deklarerats av php parameter <b>safe_mode_exec_dir.</b>
 WarningAllowUrlFopenMustBeOn=Parameter <b>allow_url_fopenär</b> måste vara <b>aktiverat</b> i filer <b>php.ini</b> för att ha den här modulen att fungera. Du måste ändra denna fil manuellt.
 WarningBuildScriptNotRunned=Script <b>%s</b> ännu inte sprang för att bygga grafik eller det inte finns några data att visa.
@@ -148,12 +149,12 @@ WarningPassIsEmpty=Varning, är databasen lösenord tom. Detta är ett säkerhet
 WarningConfFileMustBeReadOnly=Varning, konfigurationsfilen <b>(htdocs / conf / conf.php)</b> kan din skrivas över av den webbserver. Detta är ett allvarligt säkerhetshål. Ändra behörigheter på fil för att vara i skrivskyddat läge för operativsystem som användare som används av webbservern. Om du använder Windows och FAT format för din disk, måste du veta att det här filsystemet inte är möjligt att lägga till behörigheter för filen, så kan inte vara helt säker.
 WarningsOnXLines=Varningar om <b>%s</b> källrader
 WarningNoDocumentModelActivated=Ingen modell för handling generation, har aktiverats. En modell kommer att valde som standard tills du kontrollera din modul konfiguration.
-WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
+WarningLockFileDoesNotExists=Varning, när installationen är klar måste du inaktivera installera / migrera verktyg genom att lägga till en fil <b>install.lock</b> i <b>katalogen %s.</b> Saknas denna fil så är det ett säkerhetshål.
 WarningUntilDirRemoved=Alla säkerhetsvarningar (synlig av admin-användare) förblir aktiv så länge sårbarheten är närvarande (eller att konstant MAIN_REMOVE_INSTALL_WARNING läggs i Start-> Other Setup).
-WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
-WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
-WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
-WarningNotRelevant=Irrelevant operation for this dataset
-WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers.
-WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s.
-WarningTooManyDataPleaseUseMoreFilters=Too many data. Please use more filters
+WarningCloseAlways=Varning, är stängning göras även om beloppet varierar mellan källa och mål element. Aktivera den här funktionen med försiktighet.
+WarningUsingThisBoxSlowDown=Varning, använder denna ruta bromsa allvarligt alla sidor som visar lådan.
+WarningClickToDialUserSetupNotComplete=Inställning av ClickToDial informationen för ditt användarkonto är inte fullständiga (se fliken ClickToDial på din användarkortet).
+WarningNotRelevant=Irrelevant operation för denna datamängd
+WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature inaktiveras när display inställning är optimerad för blinda personer eller textbaserade webbläsare.
+WarningPaymentDateLowerThanInvoiceDate=Betalningsdag (%s) är tidigare än fakturadatum (%s) för faktura %s.
+WarningTooManyDataPleaseUseMoreFilters=För många uppgifter. Använd flera filter
diff --git a/htdocs/langs/sv_SE/externalsite.lang b/htdocs/langs/sv_SE/externalsite.lang
index 005efed679664663925ab1e7a197d90c9dbcf3e6..9c74706c846789eef2f4b51e62b804034896ed8f 100644
--- a/htdocs/langs/sv_SE/externalsite.lang
+++ b/htdocs/langs/sv_SE/externalsite.lang
@@ -1,4 +1,4 @@
 # Dolibarr language file - Source file is en_US - externalsite
 ExternalSiteSetup=Setup länk till extern webbplats
 ExternalSiteURL=Extern webbplats URL
-# ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly.
+ExternalSiteModuleNotComplete=Modul ExternalSite var inte korrekt konfigurerad.
diff --git a/htdocs/langs/sv_SE/ftp.lang b/htdocs/langs/sv_SE/ftp.lang
index 6699a7be8ef64f8c62e71ff57bc5ba9cc5a16142..17a8cfaf43601594ff8e964b72da02678be2e057 100644
--- a/htdocs/langs/sv_SE/ftp.lang
+++ b/htdocs/langs/sv_SE/ftp.lang
@@ -9,4 +9,4 @@ FailedToConnectToFTPServer=Misslyckades att ansluta till FTP-server (%s server p
 FailedToConnectToFTPServerWithCredentials=Det gick inte att logga in på FTP-servern med definierade login / lösenord
 FTPFailedToRemoveFile=Misslyckades med att ta bort fil <b>%s.</b>
 FTPFailedToRemoveDir=Misslyckades med att ta bort katalogen <b>%s</b> (Kontrollera behörigheter och att katalogen är tom).
-# FTPPassiveMode=Passive mode
+FTPPassiveMode=Passivt läge
diff --git a/htdocs/langs/sv_SE/help.lang b/htdocs/langs/sv_SE/help.lang
index 0c590f1337eed396b7f42d42a90d7142f5e1688c..be926acaa146e7be6103dc52091cef6b7591b28e 100644
--- a/htdocs/langs/sv_SE/help.lang
+++ b/htdocs/langs/sv_SE/help.lang
@@ -24,5 +24,5 @@ BackToHelpCenter=Annars, här klickar du gå <a href="%s">tillbaka för att hjä
 LinkToGoldMember=Du kan ringa en av de tränare förvalda genom Dolibarr för ditt språk (%s) genom att klicka på hans Widget (status och högsta pris uppdateras automatiskt):
 PossibleLanguages=Språk som stöds
 MakeADonation=Hjälp Dolibarr projekt, göra en donation
-# SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
-# SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
+SubscribeToFoundation=Hjälp Dolibarr projektet, prenumerera på stiftelsen
+SeeOfficalSupport=För officiell Dolibarr support på ditt språk: <br><b><a href="%s" target="_blank">%s</a></b>
diff --git a/htdocs/langs/sv_SE/holiday.lang b/htdocs/langs/sv_SE/holiday.lang
index fb2f003cfcbc5ef4a47962931d6aee1f409b577d..b28cbbb5fbbd8b30eb8d0aee9d42c0eb649b5937 100644
--- a/htdocs/langs/sv_SE/holiday.lang
+++ b/htdocs/langs/sv_SE/holiday.lang
@@ -1,149 +1,149 @@
 # Dolibarr language file - Source file is en_US - holiday
 HRM=HRM
-Holidays=Leaves
-CPTitreMenu=Leaves
-MenuReportMonth=Monthly statement
-MenuAddCP=Make a leave request
-NotActiveModCP=You must enable the module Leaves to view this page.
-NotConfigModCP=You must configure the module Leaves to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
-NoCPforUser=You don't have any available day.
-AddCP=Make a leave request
-Employe=Employee
+Holidays=Löv
+CPTitreMenu=Löv
+MenuReportMonth=Månatlig rapport
+MenuAddCP=Gör en förfrågan ledighet
+NotActiveModCP=Du måste aktivera modulen Löv att se denna sida.
+NotConfigModCP=Du måste konfigurera modulen Lämnar för att se den här sidan. För att göra detta, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;">klicka här</a> </ a> <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;">.</a>
+NoCPforUser=Du har inte någon tillgänglig dag.
+AddCP=Gör en förfrågan ledighet
+Employe=Anställd
 DateDebCP=Startdatum
 DateFinCP=Slutdatum
 DateCreateCP=Datum för skapande
 DraftCP=Utkast
-ToReviewCP=Awaiting approval
+ToReviewCP=Väntar på godkännande
 ApprovedCP=Godkänd
 CancelCP=Annullerad
 RefuseCP=Refused
 ValidatorCP=Approbator
-ListeCP=List of leaves
-ReviewedByCP=Will be reviewed by
+ListeCP=Lista över blad
+ReviewedByCP=Kommer att granskas av
 DescCP=Beskrivning
-SendRequestCP=Create leave request
-DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
-MenuConfCP=Edit balance of leaves
-UpdateAllCP=Update the leaves
-SoldeCPUser=Leaves balance is <b>%s</b> days.
-ErrorEndDateCP=You must select an end date greater than the start date.
-ErrorSQLCreateCP=An SQL error occurred during the creation:
-ErrorIDFicheCP=An error has occurred, the leave request does not exist.
-ReturnCP=Return to previous page
-ErrorUserViewCP=You are not authorized to read this leave request.
-InfosCP=Information of the leave request
+SendRequestCP=Skapa permission begäran
+DelayToRequestCP=Lämna begäran måste göras <b>minst %s dag (ar) </b> före dem.
+MenuConfCP=Redigera balans blad
+UpdateAllCP=Uppdatera bladen
+SoldeCPUser=Lämnar balans <b>är %s</b> dagar.
+ErrorEndDateCP=Du måste välja ett slutdatum senare än startdatum.
+ErrorSQLCreateCP=Ett SQL-fel uppstod under skapandet:
+ErrorIDFicheCP=Ett fel har uppstått, inte existerar begäran ledighet.
+ReturnCP=Tillbaka till föregående sida
+ErrorUserViewCP=Du har inte behörighet att läsa denna ledighet begäran.
+InfosCP=Information om begäran ledigheten
 InfosWorkflowCP=Information Workflow
-RequestByCP=Requested by
-TitreRequestCP=Leave request
-NbUseDaysCP=Number of days of vacation consumed
+RequestByCP=Begäran från
+TitreRequestCP=Lämna begäran
+NbUseDaysCP=Antal dagars semester konsumeras
 EditCP=Redigera
 DeleteCP=Ta bort
 ActionValidCP=Validate
-ActionRefuseCP=Refuse
+ActionRefuseCP=Vägra
 ActionCancelCP=Avbryt
 StatutCP=Status
-SendToValidationCP=Send to validation
-TitleDeleteCP=Delete the leave request
-ConfirmDeleteCP=Confirm the deletion of this leave request?
-ErrorCantDeleteCP=Error you don't have the right to delete this leave request.
-CantCreateCP=You don't have the right to make leave requests.
-InvalidValidatorCP=You must choose an approbator to your leave request.
+SendToValidationCP=Skicka till validering
+TitleDeleteCP=Radera begäran ledighet
+ConfirmDeleteCP=Bekräfta raderingen av denna ledighet förfrågan?
+ErrorCantDeleteCP=Fel att du inte har rätt att ta bort denna ledighet begäran.
+CantCreateCP=Du har inte rätt att göra ledighet förfrågningar.
+InvalidValidatorCP=Du måste välja en approbator till din ledighet förfrågan.
 UpdateButtonCP=Uppdatera
-CantUpdate=You cannot update this leave request.
-NoDateDebut=You must select a start date.
-NoDateFin=You must select an end date.
-ErrorDureeCP=Your request for holidays does not contain working day.
-TitleValidCP=Approve the request holidays
-ConfirmValidCP=Are you sure you want to approve the leave request?
-DateValidCP=Date approved
-TitleToValidCP=Send leave request
-ConfirmToValidCP=Are you sure you want to send the leave request?
-TitleRefuseCP=Refuse the request holidays
-ConfirmRefuseCP=Are you sure you want to refuse the leave request?
-NoMotifRefuseCP=You must choose a reason for refusing the request.
-TitleCancelCP=Cancel the request holidays
-ConfirmCancelCP=Are you sure you want to cancel the leave request?
-DetailRefusCP=Reason for refusal
-DateRefusCP=Date of refusal
-DateCancelCP=Date of cancellation
-DefineEventUserCP=Assign an exceptional leave for a user
-addEventToUserCP=Assign leave
+CantUpdate=Du kan inte uppdatera denna ledighet begäran.
+NoDateDebut=Du måste välja ett startdatum.
+NoDateFin=Du måste välja ett slutdatum.
+ErrorDureeCP=Din ledighet framställningen inte innehåller arbetsdag.
+TitleValidCP=Godkänna begäran ledighet
+ConfirmValidCP=Är du säker på att du vill godkänna begäran ledighet?
+DateValidCP=Datum godkänd
+TitleToValidCP=Skicka permission begäran
+ConfirmToValidCP=Är du säker på att du vill skicka en begäran ledighet?
+TitleRefuseCP=Avslå begäran ledighet
+ConfirmRefuseCP=Är du säker på att du vill avslå begäran ledighet?
+NoMotifRefuseCP=Du måste välja ett skäl för att vägra begäran.
+TitleCancelCP=Avbryta begäran ledighet
+ConfirmCancelCP=Är du säker på att du vill avbryta din semester?
+DetailRefusCP=Orsak till avslag
+DateRefusCP=Datum för avslag
+DateCancelCP=Datum för annullering
+DefineEventUserCP=Tilldela en exceptionell ledighet för en användare
+addEventToUserCP=Tilldela ledighet
 MotifCP=Reason
 UserCP=Användare
-ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
-AddEventToUserOkCP=The addition of the exceptional leave has been completed.
-MenuLogCP=View logs of leave requests
-LogCP=Log of updates of available vacation days
-ActionByCP=Performed by
-UserUpdateCP=For the user
-PrevSoldeCP=Previous Balance
+ErrorAddEventToUserCP=Ett fel uppstod när den exceptionella ledighet.
+AddEventToUserOkCP=Tillägget av den exceptionella ledigheten har slutförts.
+MenuLogCP=Visa loggar för ledighet förfrågningar
+LogCP=Log av uppdateringar av tillgängliga semesterdagar
+ActionByCP=Framförd av
+UserUpdateCP=För användaren
+PrevSoldeCP=Föregående Balance
 NewSoldeCP=New Balance
-alreadyCPexist=A request for holidays has already been done on this period.
+alreadyCPexist=En begäran ledigheten har redan gjorts på denna period.
 UserName=Namn
-Employee=Employee
-FirstDayOfHoliday=First day of vacation
-LastDayOfHoliday=Last day of vacation
-HolidaysMonthlyUpdate=Monthly update
-ManualUpdate=Manual update
-HolidaysCancelation=Leave request cancelation
+Employee=Anställd
+FirstDayOfHoliday=Första dagen på semestern
+LastDayOfHoliday=Sista dagen på semestern
+HolidaysMonthlyUpdate=Månads uppdatering
+ManualUpdate=Manuell uppdatering
+HolidaysCancelation=Lämna begäran Spärr
 
 ## Configuration du Module ##
-ConfCP=Configuration of holidays module
-DescOptionCP=Description of the option
+ConfCP=Konfiguration av ledighet begäran modul
+DescOptionCP=Beskrivning av alternativ
 ValueOptionCP=Värde
-GroupToValidateCP=Group with the ability to approve vacation
-ConfirmConfigCP=Validate the configuration
-LastUpdateCP=Last automatic update of vacation
-UpdateConfCPOK=Updated successfully.
-ErrorUpdateConfCP=An error occurred during the update, please try again.
-AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
-DelayForSubmitCP=Deadline to apply for holidays
-AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
-AlertValidatorDelayCP=Préevent the approbator if the leave request exceed delay
-AlertValidorSoldeCP=Prevent the approbator if the leave request exceed the balance
-nbUserCP=Number of users supported in the module Leaves
-nbHolidayDeductedCP=Number of holidays to be deducted per day of vacation taken
-nbHolidayEveryMonthCP=Number of vacation days added every month
-Module27130Name= Management of leave requests
-Module27130Desc= Management of leave requests
-TitleOptionMainCP=Main settings of Leave request
-TitleOptionEventCP=Settings of leave requets for events
+GroupToValidateCP=Grupp med möjlighet att godkänna ledighet förfrågningar
+ConfirmConfigCP=Bekräfta konfigurationen
+LastUpdateCP=Senast automatisk uppdatering av löv fördelning
+UpdateConfCPOK=Uppdaterats.
+ErrorUpdateConfCP=Ett fel uppstod under uppdateringen, vänligen försök igen.
+AddCPforUsers=Vänligen lägg till balansen i bladen fördelning av användare genom <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">att klicka här</a> .
+DelayForSubmitCP=Sista dag för att göra en ledighet förfrågningar
+AlertapprobatortorDelayCP=Förhindra approbator om begäran ledigheten inte matchar den tidsfrist
+AlertValidatorDelayCP=Préevent den approbator om begäran ledigheten överskrider fördröjning
+AlertValidorSoldeCP=Förhindra approbator om begäran ledigheten överstiga balansen
+nbUserCP=Antal användare stöds i modul Löv
+nbHolidayDeductedCP=Antal semesterdagar som skall dras av per dag semester tas
+nbHolidayEveryMonthCP=Antal semesterdagar till varje månad
+Module27130Name= Hantering av ledighet förfrågningar
+Module27130Desc= Hantering av ledighet förfrågningar
+TitleOptionMainCP=Huvudinställningar ledighet begäran
+TitleOptionEventCP=Inställningar av ledighets begäran därom för evenemang
 ValidEventCP=Validate
-UpdateEventCP=Update events
+UpdateEventCP=Uppdateringshändelser
 CreateEventCP=Skapa
-NameEventCP=Event name
-OkCreateEventCP=The addition of the event went well.
-ErrorCreateEventCP=Error creating the event.
-UpdateEventOkCP=The update of the event went well.
-ErrorUpdateEventCP=Error while updating the event.
-DeleteEventCP=Delete Event
-DeleteEventOkCP=The event has been deleted.
-ErrorDeleteEventCP=Error while deleting the event.
-TitleDeleteEventCP=Delete a exceptional leave
-TitleCreateEventCP=Create a exceptional leave
-TitleUpdateEventCP=Edit or delete a exceptional leave
+NameEventCP=Händelsenamn
+OkCreateEventCP=Tillsatsen av händelsen gick bra.
+ErrorCreateEventCP=Fel skapa händelsen.
+UpdateEventOkCP=Uppdateringen av händelsen gick bra.
+ErrorUpdateEventCP=Fel vid uppdatering av händelsen.
+DeleteEventCP=Radera Händelse
+DeleteEventOkCP=Händelsen har tagits bort.
+ErrorDeleteEventCP=Fel vid borttagning av händelsen.
+TitleDeleteEventCP=Radera ett särskilt tillstånd
+TitleCreateEventCP=Skapa ett särskilt tillstånd
+TitleUpdateEventCP=Redigera eller ta bort ett särskilt tillstånd
 DeleteEventOptionCP=Ta bort
 UpdateEventOptionCP=Uppdatera
-ErrorMailNotSend=An error occurred while sending email:
-NoCPforMonth=No leave this month.
-nbJours=Number days
-TitleAdminCP=Configuration of Leaves
+ErrorMailNotSend=Ett fel uppstod när du skickar e-post:
+NoCPforMonth=Ingen lämnar denna månad.
+nbJours=Antal dagar
+TitleAdminCP=Konfiguration av Leaves
 #Messages
-Hello=Hello
-HolidaysToValidate=Validate leave requests
-HolidaysToValidateBody=Below is a leave request to validate
-HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
-HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
-HolidaysValidated=Validated leave requests
-HolidaysValidatedBody=Your leave request for %s to %s has been validated.
-HolidaysRefused=Request denied
-HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason :
-HolidaysCanceled=Canceled leaved request
-HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
-Permission20000=Read you own leave requests
-Permission20001=Create/modify your leave requests
-Permission20002=Create/modify leave requests for everybody
-Permission20003=Delete leave requests
-Permission20004=Setup users available vacation days
-Permission20005=Review log of modified leave requests
-Permission20006=Read leaves monthly report
+Hello=Hallå
+HolidaysToValidate=Validera ledighets förfrågningar
+HolidaysToValidateBody=Nedan finns en ledighet begäran om att validera
+HolidaysToValidateDelay=Denna ledighet begäran kommer att ske inom en period på mindre än %s dagar.
+HolidaysToValidateAlertSolde=Användaren som gjort detta lämnar de krävs inte har tillräckligt med tillgängliga dagar.
+HolidaysValidated=Validerade ledighets förfrågningar
+HolidaysValidatedBody=Din ledighets begäran om %s till %s har validerats.
+HolidaysRefused=Begäran nekades
+HolidaysRefusedBody=Din ledighet begäran om %s till %s har nekats av följande skäl:
+HolidaysCanceled=Annulleras leaved begäran
+HolidaysCanceledBody=Din ledighet begäran om %s till %s har avbrutits.
+Permission20000=Läs du äger ledighet förfrågningar
+Permission20001=Skapa / ändra dina ledighet förfrågningar
+Permission20002=Skapa / ändra ledighetsansökningar för alla
+Permission20003=Radera ledighets förfrågningar
+Permission20004=Setup användare tillgängliga semesterdagar
+Permission20005=Omdöme logg över modifierade ledighets förfrågningar
+Permission20006=Läs lämnar månadsrapport
diff --git a/htdocs/langs/sv_SE/languages.lang b/htdocs/langs/sv_SE/languages.lang
index 40613aa97b2443342bfe1495ca04505129f77853..1c0bdd80aa2d6de3c98230c0aca1f7ca447c0c51 100644
--- a/htdocs/langs/sv_SE/languages.lang
+++ b/htdocs/langs/sv_SE/languages.lang
@@ -10,7 +10,7 @@ Language_da_DA=Danska
 Language_da_DK=Danskt
 Language_de_DE=Tyska
 Language_de_AT=Tyska (Österrike)
-Language_de_CH=German (Switzerland)
+Language_de_CH=Tyska (Schweiz)
 Language_el_GR=Grekiska
 Language_en_AU=Engelska (Australien)
 Language_en_GB=Engelska (Storbritannien)
@@ -20,7 +20,7 @@ Language_en_SA=Engelska (Saudiarabien)
 Language_en_US=Engelska (USA)
 Language_en_ZA=Engelska (Sydafrika)
 Language_es_ES=Spanska
-Language_es_DO=Spanish (Dominican Republic)
+Language_es_DO=Spanska (Dominikanska republiken)
 Language_es_AR=Spanska (Argentina)
 Language_es_CL=Spanska (Chile)
 Language_es_HN=Spanska (Honduras)
@@ -40,7 +40,7 @@ Language_fr_NC=Franska (Nya Kaledonien)
 Language_he_IL=Hebreiska
 Language_hr_HR=Kroatiska
 Language_hu_HU=Ungerska
-Language_id_ID=Indonesian
+Language_id_ID=Indonesiska
 Language_is_IS=Isländska
 Language_it_IT=Italienska
 Language_ja_JP=Japanska
diff --git a/htdocs/langs/sv_SE/link.lang b/htdocs/langs/sv_SE/link.lang
index 8b1efb75ef372daf24c660017c22d0cda43189b8..8601aba8abf99a574ec63ff382c87cd1a9268708 100644
--- a/htdocs/langs/sv_SE/link.lang
+++ b/htdocs/langs/sv_SE/link.lang
@@ -1,8 +1,8 @@
-LinkANewFile=Link a new file/document
-LinkedFiles=Linked files and documents
-NoLinkFound=No registered links
-LinkComplete=The file has been linked successfully
-ErrorFileNotLinked=The file could not be linked
-LinkRemoved=The link %s has been removed
-ErrorFailedToDeleteLink= Failed to remove link '<b>%s</b>'
-ErrorFailedToUpdateLink= Failed to update link '<b>%s</b>'
+LinkANewFile=Länka en ny fil / dokument
+LinkedFiles=Länkade filer och dokument
+NoLinkFound=Inga registrerade länkar
+LinkComplete=Filen har kopplats framgångsrikt
+ErrorFileNotLinked=Filen kunde inte kopplas
+LinkRemoved=Länken %s har tagits bort
+ErrorFailedToDeleteLink= Det gick inte att ta bort länk '<b>%s</b>'
+ErrorFailedToUpdateLink= Det gick inte att uppdatera länken '<b>%s</b>'
diff --git a/htdocs/langs/sv_SE/mailmanspip.lang b/htdocs/langs/sv_SE/mailmanspip.lang
index 4df2bf08bdec544402c982fa574935c5d9dd6eb4..1568d28175bc11751f7d9fa4d328f44568f14bc9 100644
--- a/htdocs/langs/sv_SE/mailmanspip.lang
+++ b/htdocs/langs/sv_SE/mailmanspip.lang
@@ -1,27 +1,27 @@
 # Dolibarr language file - Source file is en_US - mailmanspip
-# MailmanSpipSetup=Mailman and SPIP module Setup
-# MailmanTitle=Mailman mailing list system
-# TestSubscribe=To test subscription to Mailman lists
-# TestUnSubscribe=To test unsubscribe from Mailman lists
-# MailmanCreationSuccess=Subscription test was executed succesfully
-# MailmanDeletionSuccess=Unsubscription test was executed succesfully
-# SynchroMailManEnabled=A Mailman update will be performed
-# SynchroSpipEnabled=A Spip update will be performed
-# DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password
-# DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions
-# DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions
-# DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma)
-# SPIPTitle=SPIP Content Management System
-# DescADHERENT_SPIP_SERVEUR=SPIP Server
-# DescADHERENT_SPIP_DB=SPIP database name
-# DescADHERENT_SPIP_USER=SPIP database login
-# DescADHERENT_SPIP_PASS=SPIP database password
-# AddIntoSpip=Add into SPIP
-# AddIntoSpipConfirmation=Are you sure you want to add this member into SPIP?
-# AddIntoSpipError=Failed to add the user in SPIP
-# DeleteIntoSpip=Remove from SPIP
-# DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP?
-# DeleteIntoSpipError=Failed to suppress the user from SPIP
-# SPIPConnectionFailed=Failed to connect to SPIP
-# SuccessToAddToMailmanList=Add of %s to mailman list %s or SPIP database done
-# SuccessToRemoveToMailmanList=Removal of %s from mailman list %s or SPIP database done
+MailmanSpipSetup=Brevbärare och SPIP modul Setup
+MailmanTitle=Mailman sändlista systemet
+TestSubscribe=För att testa prenumeration på Mailman listor
+TestUnSubscribe=För att testa unsubscribe från Mailman listor
+MailmanCreationSuccess=Prenumerations testet utfördes framgångsrikt
+MailmanDeletionSuccess=Avbeställning testet utfördes framgångsrikt
+SynchroMailManEnabled=En Mailman uppdatering kommer att utföras
+SynchroSpipEnabled=En SPIP uppdatering kommer att utföras
+DescADHERENT_MAILMAN_ADMINPW=Mailman administratörslösenord
+DescADHERENT_MAILMAN_URL=URL för Mailman prenumerationer
+DescADHERENT_MAILMAN_UNSUB_URL=URL för Mailman unsubscriptions
+DescADHERENT_MAILMAN_LISTS=List (ar) för automatisk inskription av nya medlemmar (separerade med ett kommatecken)
+SPIPTitle=SPIP Content Management System
+DescADHERENT_SPIP_SERVEUR=SPIP Server
+DescADHERENT_SPIP_DB=SPIP databasnamn
+DescADHERENT_SPIP_USER=SPIP databas inloggning
+DescADHERENT_SPIP_PASS=SPIP databas lösenord
+AddIntoSpip=Lägg till SPIP
+AddIntoSpipConfirmation=Är du säker på att du vill lägga till denna medlem i SPIP?
+AddIntoSpipError=Det gick inte att lägga till användaren i SPIP
+DeleteIntoSpip=Ta bort från SPIP
+DeleteIntoSpipConfirmation=Är du säker på att du vill ta bort den här medlemmen från SPIP?
+DeleteIntoSpipError=Det gick inte att undertrycka användaren från SPIP
+SPIPConnectionFailed=Det gick inte att ansluta till SPIP
+SuccessToAddToMailmanList=Lägg till %s till mailman listan %s eller SPIP databas gjort
+SuccessToRemoveToMailmanList=Borttagning av %s från mailman listan %s eller SPIP databas gjort
diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang
index 15fde81699e7862bf44f744089e77978537c02f4..968cc1fc3d869ca200bc66dd03b6e87cad1d3e6e 100644
--- a/htdocs/langs/sv_SE/main.lang
+++ b/htdocs/langs/sv_SE/main.lang
@@ -58,12 +58,12 @@ ErrorCantLoadUserFromDolibarrDatabase=Det gick inte att hitta användare <b>%s</
 ErrorNoVATRateDefinedForSellerCountry=Fel, ingen moms har definierats för landet '%s'.
 ErrorNoSocialContributionForSellerCountry=Fel, inga sociala avgifter har definierats för land '%s'.
 ErrorFailedToSaveFile=Fel, kunde inte spara filen.
-ErrorOnlyPngJpgSupported=Fel, endast .png och .jpg-bild-fil stöds.
-ErrorImageFormatNotSupported=Din PHP stöder inte funktioner för att konvertera bilder av detta format.
 SetDate=Ställ in datum
 SelectDate=Välj datum
 SeeAlso=Se även %s
 BackgroundColorByDefault=Standard bakgrundsfärg
+FileNotUploaded=Filen har inte laddats upp
+FileUploaded=Filen har laddats upp
 FileWasNotUploaded=En fil är vald att bifogas, men har ännu inte laddats upp. Klicka på 'Bifoga fil' för detta.
 NbOfEntries=Antal värden
 GoToWikiHelpPage=Läs online hjälp (kräver tillgång till Internet)
@@ -206,7 +206,7 @@ Limit=Gräns
 Limits=Gränser
 DevelopmentTeam=Development Team
 Logout=Logga ut
-NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode <b>%s</b>
+NoLogoutProcessWithAuthMode=Ingen applikativ koppling funktionen med autentisering läge <b>%s</b>
 Connection=Anslutning
 Setup=Setup
 Alert=Alert
@@ -266,6 +266,7 @@ Afternoon=Eftermiddag
 Quadri=Quadri
 MonthOfDay=Dagens månad
 HourShort=H
+MinuteShort=mn
 Rate=Sats
 UseLocalTax=Inkludera skatt
 Bytes=Bytes
@@ -314,7 +315,7 @@ Total=Summa
 SubTotal=Delsumma
 TotalHTShort=Summa (netto)
 TotalTTCShort=Summa (inkl. moms)
-TotalHT=Total (netto efter skatt)
+TotalHT=Totalt (netto)
 TotalHTforthispage=Summa (exkl. skatt) för denna sida
 TotalTTC=Summa (inkl. moms)
 TotalTTCToYourCredit=Summa kredit (inkl. moms)
@@ -340,6 +341,7 @@ FullList=Fullständig lista
 Statistics=Statistik
 OtherStatistics=Övrig statistik
 Status=Status
+Favorite=Favorit
 ShortInfo=Info
 Ref=Ref.
 RefSupplier=Ref. leverantör
@@ -356,7 +358,7 @@ ActionNotApplicable=Ej tillämpligt
 ActionRunningNotStarted=Inte påbörjats
 ActionRunningShort=Började
 ActionDoneShort=Färdiga
-ActionUncomplete=Uncomplete
+ActionUncomplete=Icke klar
 CompanyFoundation=Företag / stiftelse
 ContactsForCompany=Kontakter till denna tredje part
 ContactsAddressesForCompany=Kontakter / adresser för denna tredje part
@@ -508,7 +510,7 @@ NbOfCustomers=Antal kunder
 NbOfLines=Antal rader
 NbOfObjects=Antal objekt
 NbOfReferers=Antal hänvisningsadresserna
-Referers=Refering objects
+Referers=Hänvisnings objekt
 TotalQuantity=Total kvantitet
 DateFromTo=Från %s till %s
 DateFrom=Från %s
@@ -541,7 +543,7 @@ Undo=Ångra
 Redo=Gör om
 ExpandAll=Expandera alla
 UndoExpandAll=Ångra expandera
-Reason=Reason
+Reason=Orsak
 FeatureNotYetSupported=Funktionen inte stöds ännu
 CloseWindow=Stäng fönster
 Question=Fråga
@@ -552,16 +554,16 @@ MailSentBy=E-post skickas med
 TextUsedInTheMessageBody=E-organ
 SendAcknowledgementByMail=Skicka Ack. via e-post
 NoEMail=Ingen e-post
-NoMobilePhone=No mobile phone
+NoMobilePhone=Ingen mobiltelefon
 Owner=Ägare
-DetectedVersion=Upptäckta version
+DetectedVersion=Upptäckt version
 FollowingConstantsWillBeSubstituted=Följande konstanter kommer att ersätta med motsvarande värde.
 Refresh=Uppdatera
 BackToList=Tillbaka till listan
 GoBack=Gå tillbaka
 CanBeModifiedIfOk=Kan ändras om det är giltigt
 CanBeModifiedIfKo=Kan ändras om inte giltigt
-RecordModifiedSuccessfully=Record ändrades korrekt
+RecordModifiedSuccessfully=Post ändrades korrekt
 RecordsModified=%s poster ändrade
 AutomaticCode=Automatisk kod
 NotManaged=Inte lyckats
@@ -578,7 +580,7 @@ TotalWoman=Totalt
 TotalMan=Totalt
 NeverReceived=Aldrig fick
 Canceled=Annullerad
-YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary
+YouCanChangeValuesForThisListFromDictionarySetup=Du kan ändra värden för denna lista från menyinställning - ordbok
 Color=Färg
 Documents=Länkade filer
 DocumentsNb=Länkade filer (%s)
@@ -593,7 +595,7 @@ ThisLimitIsDefinedInSetup=Dolibarr gräns (meny hem-setup-säkerhet): %s Kb, PHP
 NoFileFound=Inga dokument har sparats i denhär katalogen
 CurrentUserLanguage=Nuvarande språk
 CurrentTheme=Nuvarande tema
-CurrentMenuManager=Current menu manager
+CurrentMenuManager=Nuvarande menyhanterare
 DisabledModules=Avaktiverade moduler
 For=För
 ForCustomer=För kund
@@ -607,13 +609,13 @@ Notes=Anteckningar
 AddNewLine=Lägg till ny rad
 AddFile=Lägg till fil
 ListOfFiles=Förteckning över tillgängliga filer
-FreeZone=Free entry
-FreeLineOfType=Free entry of type
+FreeZone=Fritt inlägg
+FreeLineOfType=Fritt inlägg typ
 CloneMainAttributes=Klona objekt med dess viktigaste attribut
 PDFMerge=PDF-dokument
 Merge=Sammanfoga
 PrintContentArea=Visa sidan för att skriva ut huvudinnehållet
-MenuManager=Menu manager
+MenuManager=Menyhanteraren
 NoMenu=Ingen undermeny
 WarningYouAreInMaintenanceMode=Varning, du är i en underhållsmode, så bara login <b>%s</b> får använda tillämpningen för tillfället.
 CoreErrorTitle=Systemfel
@@ -645,6 +647,7 @@ OptionalFieldsSetup=Extra attribut inställning
 URLPhoto=URL foto / logo
 SetLinkToThirdParty=Länk till en annan tredje part
 CreateDraft=Skapa utkast
+SetToDraft=Tillbaka till utkast
 ClickToEdit=Klicka för att redigera
 ObjectDeleted=Objekt %s raderad
 ByCountry=Per land
@@ -663,7 +666,7 @@ ModulesSystemTools=Modulverktyg
 Test=Test
 Element=Element
 NoPhotoYet=Inga bilder tillgängliga
-HomeDashboard=Home summary
+HomeDashboard=Hem översikt
 Deductible=Avdragsgill
 from=från
 toward=mot
@@ -672,13 +675,13 @@ HelpCopyToClipboard=Använd Ctrl+C för att kopiera till klippbordet
 SaveUploadedFileWithMask=Spara filen på servern med namnet "<strong>%s</strong>" (annars "%s")
 OriginFileName=Ursprungligt filnamn
 SetDemandReason=Ställ in källa
-SetBankAccount=Define Bank Account
-AccountCurrency=Account Currency
+SetBankAccount=Definiera bankkonto
+AccountCurrency=Konto valuta
 ViewPrivateNote=Se noter
 XMoreLines=%s rader osynliga
 PublicUrl=Offentlig webbadress
-AddBox=Add box
-
+AddBox=Lägg till låda
+SelectElementAndClickRefresh=Välj ett element och klicka på uppdatera
 # Week day
 Monday=Måndag
 Tuesday=Tisdag
diff --git a/htdocs/langs/sv_SE/members.lang b/htdocs/langs/sv_SE/members.lang
index 63e23311d96412264bf1de59f52d0fea4a2e07db..6110d5aa422abeadadb3ad3d4501c0d820e6eb37 100644
--- a/htdocs/langs/sv_SE/members.lang
+++ b/htdocs/langs/sv_SE/members.lang
@@ -85,7 +85,7 @@ SubscriptionLateShort=Sent
 SubscriptionNotReceivedShort=Aldrig fått
 ListOfSubscriptions=Förteckning över abonnemang
 SendCardByMail=Sänd kort via e-post
-AddMember=Lägg till medlem
+AddMember=Skapa medlem
 NoTypeDefinedGoToSetup=Ingen medlem definierade typer. Gå till Setup - Medlemmar typer
 NewMemberType=Ny medlemstyp
 WelcomeEMail=Välkomst e-post
@@ -125,7 +125,7 @@ Date=Datum
 DateAndTime=Datum och tid
 PublicMemberCard=Medlem offentlig kort
 MemberNotOrNoMoreExpectedToSubscribe=Medlem som inte eller inte mer förväntas prenumerera
-AddSubscription=Lägg till prenumeration
+AddSubscription=Skapa prenumeration
 ShowSubscription=Visa prenumeration
 MemberModifiedInDolibarr=Medlem ändrad i Dolibarr
 SendAnEMailToMember=Skicka informations-e-post till medlem
diff --git a/htdocs/langs/sv_SE/opensurvey.lang b/htdocs/langs/sv_SE/opensurvey.lang
index ea04e5fd922d8af52b8fb265dadd40c7f9256166..c5403b5cff729e155fa49443099d35cde18e5934 100644
--- a/htdocs/langs/sv_SE/opensurvey.lang
+++ b/htdocs/langs/sv_SE/opensurvey.lang
@@ -1,66 +1,66 @@
 # Dolibarr language file - Source file is en_US - opensurvey
-# Survey=Poll
-# Surveys=Polls
-# OrganizeYourMeetingEasily=Organize your meetings and polls easily. First select type of poll...
-# NewSurvey=New poll
-# NoSurveysInDatabase=%s poll(s) into database.
-# OpenSurveyArea=Polls area
-# AddACommentForPoll=You can add a comment into poll...
-# AddComment=Add comment
-# CreatePoll=Create poll
-# PollTitle=Poll title
-# ToReceiveEMailForEachVote=Receive an email for each vote
-# TypeDate=Type date
-# TypeClassic=Type standard
-# OpenSurveyStep2=Select your dates amoung the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it
-# RemoveAllDays=Remove all days
-# CopyHoursOfFirstDay=Copy hours of first day
-# RemoveAllHours=Remove all hours
-# SelectedDays=Selected days
-# TheBestChoice=The best choice currently is
-# TheBestChoices=The best choices currently are
-# with=with
-# OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.
-# CommentsOfVoters=Comments of voters
-# ConfirmRemovalOfPoll=Are you sure you want to remove this poll (and all votes)
-# RemovePoll=Remove poll
-# UrlForSurvey=URL to communicate to get a direct access to poll
-# PollOnChoice=You are creating a poll to make a multi-choice for a poll. First enter all possible choices for your poll:
-# CreateSurveyDate=Create a date poll
-# CreateSurveyStandard=Create a standard poll
-# CheckBox=Simple checkbox
-# YesNoList=List (empty/yes/no)
-# PourContreList=List (empty/for/against)
-# AddNewColumn=Add new column
-# TitleChoice=Choice label
-# ExportSpreadsheet=Export result spreadsheet
+Survey=Enkät
+Surveys=Enkäter
+OrganizeYourMeetingEasily=Organisera dina möten och enkäter lätt. Först välj typ av enkät ...
+NewSurvey=Ny enkät
+NoSurveysInDatabase=%s enkät (er) i databasen.
+OpenSurveyArea=Enkät område
+AddACommentForPoll=You can add a comment into poll...
+AddComment=Lägg till kommentar
+CreatePoll=Skapa enkät
+PollTitle=Enkät titel
+ToReceiveEMailForEachVote=Receive an email for each vote
+TypeDate=Typ Datum
+TypeClassic=Typ standard
+OpenSurveyStep2=Select your dates amoung the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it
+RemoveAllDays=Ta bort alla dagar
+CopyHoursOfFirstDay=Kopiera timmar av första dagen
+RemoveAllHours=Remove all hours
+SelectedDays=Selected days
+TheBestChoice=The best choice currently is
+TheBestChoices=The best choices currently are
+with=med
+OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.
+CommentsOfVoters=Comments of voters
+ConfirmRemovalOfPoll=Are you sure you want to remove this poll (and all votes)
+RemovePoll=Radera enkäten
+UrlForSurvey=URL to communicate to get a direct access to poll
+PollOnChoice=You are creating a poll to make a multi-choice for a poll. First enter all possible choices for your poll:
+CreateSurveyDate=Skapa en datum enkät
+CreateSurveyStandard=Skapa en vanlig enkät
+CheckBox=Enkel checkbox
+YesNoList=List (tom/ja/nej)
+PourContreList=Lista (tom/för/emot)
+AddNewColumn=Lägg till ny kolumn
+TitleChoice=Val av etikett
+ExportSpreadsheet=Export result spreadsheet
 ExpireDate=Begränsa datum
-# NbOfSurveys=Number of polls
-# NbOfVoters=Nb of voters
-# SurveyResults=Results
-# PollAdminDesc=You are allowed to change all vote lines of this poll with button "Edit". You can, as well, remove a column or a line with %s. You can also add a new column with %s.
-# 5MoreChoices=5 more choices
-# Abstention=Abstention
-# Against=Against
-# YouAreInivitedToVote=You are invited to vote for this poll
-# VoteNameAlreadyExists=This name was already used for this poll
-# ErrorPollDoesNotExists=Error, poll <strong>%s</strong> does not exists.
-# OpenSurveyNothingToSetup=There is no specific setup to do.
-# PollWillExpire=Your poll will expire automatically <strong>%s</strong> days after the last date of your poll.
-# AddADate=Add a date
-# AddStartHour=Add start hour
-# AddEndHour=Add end hour
-# votes=vote(s)
-# NoCommentYet=No comments have been posted for this poll yet
-# CanEditVotes=Can change vote of others
-# CanComment=Voters can comment in the poll
-# CanSeeOthersVote=Voters can see other people's vote
-# SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format :<br>- empty,<br>- "8h", "8H" or "8:00" to give a meeting's start hour,<br>- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,<br>- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes.
-# BackToCurrentMonth=Back to current month
-# ErrorOpenSurveyFillFirstSection=You haven't filled the first section of the poll creation
-# ErrorOpenSurveyOneChoice=Enter at least one choice
-# ErrorOpenSurveyDateFormat=Date must have the format YYYY-MM-DD
-# ErrorInsertingComment=There was an error while inserting your comment
-# MoreChoices=Enter more choices for the voters
-# SurveyExpiredInfo=The voting time of this poll has expired.
-# EmailSomeoneVoted=%s has filled a line.\nYou can find your poll at the link: \n%s
+NbOfSurveys=Antal enkäter
+NbOfVoters=Antal av väljarna
+SurveyResults=Resultat
+PollAdminDesc=You are allowed to change all vote lines of this poll with button "Edit". You can, as well, remove a column or a line with %s. You can also add a new column with %s.
+5MoreChoices=5 more choices
+Abstention=Abstention
+Against=Mot
+YouAreInivitedToVote=You are invited to vote for this poll
+VoteNameAlreadyExists=This name was already used for this poll
+ErrorPollDoesNotExists=Error, poll <strong>%s</strong> does not exists.
+OpenSurveyNothingToSetup=Det finns ingen specifik inställning att göra.
+PollWillExpire=Your poll will expire automatically <strong>%s</strong> days after the last date of your poll.
+AddADate=Lägg till ett datum
+AddStartHour=Lägg till start tid
+AddEndHour=Lägg till slut tid
+votes=röst (er)
+NoCommentYet=No comments have been posted for this poll yet
+CanEditVotes=Can change vote of others
+CanComment=Voters can comment in the poll
+CanSeeOthersVote=Voters can see other people's vote
+SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format :<br>- empty,<br>- "8h", "8H" or "8:00" to give a meeting's start hour,<br>- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,<br>- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes.
+BackToCurrentMonth=Back to current month
+ErrorOpenSurveyFillFirstSection=You haven't filled the first section of the poll creation
+ErrorOpenSurveyOneChoice=Ange minst ett val
+ErrorOpenSurveyDateFormat=Datum måste ha formatet ÅÅÅÅ-MM-DD
+ErrorInsertingComment=Det uppstod ett fel när du skapa din kommentar
+MoreChoices=Enter more choices for the voters
+SurveyExpiredInfo=The voting time of this poll has expired.
+EmailSomeoneVoted=%s has filled a line.\nYou can find your poll at the link: \n%s
diff --git a/htdocs/langs/sv_SE/orders.lang b/htdocs/langs/sv_SE/orders.lang
index 6ea791fb21238e5ccb1f1f0e96a4c1f67c9a0410..892578e5a6c3acff7adaccbdfc6ce70722c34af0 100644
--- a/htdocs/langs/sv_SE/orders.lang
+++ b/htdocs/langs/sv_SE/orders.lang
@@ -2,7 +2,7 @@
 OrdersArea=Kunder order område
 SuppliersOrdersArea=Leverantörer order område
 OrderCard=Beställ kort
-# OrderId=Order Id
+OrderId=Order Id
 Order=Beställ
 Orders=Beställningar
 OrderLine=Orderrad
@@ -28,7 +28,7 @@ StatusOrderCanceledShort=Annullerad
 StatusOrderDraftShort=Förslag
 StatusOrderValidatedShort=Validerad
 StatusOrderSentShort=I processen
-# StatusOrderSent=Shipment in process
+StatusOrderSent=Sändning pågår
 StatusOrderOnProcessShort=Den process
 StatusOrderProcessedShort=Bearbetade
 StatusOrderToBillShort=Till Bill
@@ -53,9 +53,9 @@ ShippingExist=En sändning föreligger
 DraftOrWaitingApproved=Förslag eller godkänts ännu ej beställas
 DraftOrWaitingShipped=Förslag eller godkännas ännu inte sändas
 MenuOrdersToBill=Order till faktura
-# MenuOrdersToBill2=Orders to bill
+MenuOrdersToBill2=Order till faktura
 SearchOrder=Sök ordning
-# SearchACustomerOrder=Search a customer order
+SearchACustomerOrder=Sök en kundorder
 ShipProduct=Ship produkt
 Discount=Rabatt
 CreateOrder=Skapa ordning
@@ -65,14 +65,14 @@ ValidateOrder=Verifiera att
 UnvalidateOrder=Unvalidate För
 DeleteOrder=Radera ordning
 CancelOrder=Avbryt för
-AddOrder=Lägg ordning
+AddOrder=Skapa order
 AddToMyOrders=Lägg till i mitt order
 AddToOtherOrders=Lägg till övriga beställningar
-# AddToDraftOrders=Add to draft order
+AddToDraftOrders=Lägg till förlags order
 ShowOrder=Visa att
 NoOpenedOrders=Ingen öppnade order
 NoOtherOpenedOrders=Ingen annan öppnas order
-# NoDraftOrders=No draft orders
+NoDraftOrders=Inga förslag till beslut
 OtherOrders=Övriga beställningar
 LastOrders=Senaste %s order
 LastModifiedOrders=Senast %s uppdaterad order
@@ -82,7 +82,7 @@ NbOfOrders=Antal order
 OrdersStatistics=Beställ statistik
 OrdersStatisticsSuppliers=Leverantören för statistik
 NumberOfOrdersByMonth=Antal beställningar per månad
-# AmountOfOrdersByMonthHT=Amount of orders by month (net of tax)
+AmountOfOrdersByMonthHT=Mängd order per månad (netto efter skatt)
 ListOfOrders=Lista över beställningar
 CloseOrder=Stäng ordning
 ConfirmCloseOrder=Är du säker på att du vill stänga denna beställning? När en order är stängd, kan den bara faktureras.
@@ -93,7 +93,7 @@ ConfirmUnvalidateOrder=Är du säker på att du vill återställa ordningen <b>%
 ConfirmCancelOrder=Är du säker på att du vill avbryta denna order?
 ConfirmMakeOrder=Är du säker på att du vill bekräfta att du gjort detta beställning på <b>%s?</b>
 GenerateBill=Skapa faktura
-# ClassifyShipped=Classify delivered
+ClassifyShipped=Klassificera levereras
 ClassifyBilled=Klassificera &quot;Fakturerade&quot;
 ComptaCard=Bokföring kort
 DraftOrders=Förslag till beslut
@@ -101,7 +101,6 @@ RelatedOrders=Relaterade order
 OnProcessOrders=I processen order
 RefOrder=Ref. För
 RefCustomerOrder=Ref. kundorder
-CustomerOrder=Kundorder
 RefCustomerOrderShort=Ref. cust. För
 SendOrderByMail=Skicka beställningen per post
 ActionsOnOrder=Åtgärder för att
@@ -131,9 +130,7 @@ Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Konstant COMMANDE_SUPPLIER_ADDON inte d
 Error_COMMANDE_ADDON_NotDefined=Konstant COMMANDE_ADDON inte definierat
 Error_FailedToLoad_COMMANDE_SUPPLIER_ADDON_File=Kunde inte ladda modulen fil %s
 Error_FailedToLoad_COMMANDE_ADDON_File=Kunde inte ladda modulen fil %s
-# Error_OrderNotChecked=No orders to invoice selected
-
-
+Error_OrderNotChecked=Inga order att fakturera valda
 # Sources
 OrderSource0=Kommersiella förslag
 OrderSource1=Internet
@@ -144,25 +141,23 @@ OrderSource5=Kommersiella
 OrderSource6=Store
 QtyOrdered=Antal beställda
 AddDeliveryCostLine=Lägg till en line-kostnad som visar vikten av beslutet
-
 # Documents models
 PDFEinsteinDescription=En fullständig för-modellen (logo. ..)
 PDFEdisonDescription=En enkel ordning modell
-# PDFProformaDescription=A complete proforma invoice (logo…)
+PDFProformaDescription=En fullständig proforma faktura (logo ...)
 # Orders modes
 OrderByMail=Post
 OrderByFax=Faxa
 OrderByEMail=EMail
 OrderByWWW=Nätet
 OrderByPhone=Telefonen
-
-# CreateInvoiceForThisCustomer=Bill orders
-# NoOrdersToInvoice=No orders billable
-# CloseProcessedOrdersAutomatically=Classify "Processed" all selected orders.
-# MenuOrdersToBill2=Orders to bill
-# OrderCreation=Order creation
-# Ordered=Ordered
-# OrderCreated=Your orders have been created
-# OrderFail=An error happened during your orders creation
-# CreateOrders=Create orders
-# ToBillSeveralOrderSelectCustomer=To create an invoice for several orders, click first onto customer, then choose "%s".
+CreateInvoiceForThisCustomer=Faktura order
+NoOrdersToInvoice=Inga order fakturerbar
+CloseProcessedOrdersAutomatically=Klassificera "bearbetade" alla valda order.
+MenuOrdersToBill2=Order till faktura
+OrderCreation=Order skapning
+Ordered=Beställt
+OrderCreated=Din order har skapats
+OrderFail=Ett fel inträffade under din order skapande
+CreateOrders=Skapa order
+ToBillSeveralOrderSelectCustomer=För att skapa en faktura för flera ordrar, klicka först på kunden och välj sedan "%s".
diff --git a/htdocs/langs/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang
index fe9d174153f1e90a3af190f6532d367bd9f3a3ac..5b39504e9352f4233a0eec8a6699809f4687ddc8 100644
--- a/htdocs/langs/sv_SE/other.lang
+++ b/htdocs/langs/sv_SE/other.lang
@@ -1,7 +1,6 @@
 # Dolibarr language file - Source file is en_US - other
 SecurityCode=Säkerhetskod
 Calendar=Kalender
-AddTrip=Lägg resa
 Tools=Verktyg
 ToolsDesc=Detta område är avsedd för gruppen diverse verktyg som inte finns i andra menyposter. <br><br> Dessa verktyg kan nås från menyn på sidan.
 Birthday=Födelsedag
@@ -10,21 +9,21 @@ DateToBirth=Datum för födelse
 BirthdayAlertOn= födelsedag alert aktiva
 BirthdayAlertOff= födelsedag alert inaktiv
 Notify_FICHINTER_VALIDATE=Intervention validerade
-Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
+Notify_FICHINTER_SENTBYMAIL=Ingripande skickas per post
 Notify_BILL_VALIDATE=Kundfaktura validerade
-Notify_BILL_UNVALIDATE=Customer invoice unvalidated
+Notify_BILL_UNVALIDATE=Kundfakturan Fraktpris saknas
 Notify_ORDER_SUPPLIER_APPROVE=Leverantör för godkänd
 Notify_ORDER_SUPPLIER_REFUSE=Leverantör för vägrat
 Notify_ORDER_VALIDATE=Kundorder validerade
 Notify_PROPAL_VALIDATE=Kunden förslag validerade
-Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
-Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
+Notify_PROPAL_CLOSE_SIGNED=Kunden propal stängd tecknat
+Notify_PROPAL_CLOSE_REFUSED=Kunden propal stängd vägrade
 Notify_WITHDRAW_TRANSMIT=Överföring tillbakadragande
 Notify_WITHDRAW_CREDIT=Credit tillbakadragande
 Notify_WITHDRAW_EMIT=Isue tillbakadragande
 Notify_ORDER_SENTBYMAIL=Kundorder skickas per post
 Notify_COMPANY_CREATE=Tredje part som skapats
-Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
+Notify_COMPANY_SENTBYMAIL=Post som skickas från tredjepartskort
 Notify_PROPAL_SENTBYMAIL=Kommersiell förslag skickas per post
 Notify_BILL_PAYED=Kundfaktura betalade
 Notify_BILL_CANCEL=Kundfaktura avbryts
@@ -34,20 +33,21 @@ Notify_ORDER_SUPPLIER_SENTBYMAIL=Leverantör beställning skickas per post
 Notify_BILL_SUPPLIER_VALIDATE=Leverantörsfaktura validerade
 Notify_BILL_SUPPLIER_PAYED=Leverantörsfaktura betalas
 Notify_BILL_SUPPLIER_SENTBYMAIL=Leverantör faktura skickas per post
-Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
+Notify_BILL_SUPPLIER_CANCELED=Leverantör faktura annulleras
 Notify_CONTRACT_VALIDATE=Kontrakt validerade
 Notify_FICHEINTER_VALIDATE=Intervention validerade
 Notify_SHIPPING_VALIDATE=Frakt validerade
 Notify_SHIPPING_SENTBYMAIL=Leverans skickas per post
 Notify_MEMBER_VALIDATE=Medlem validerade
-Notify_MEMBER_MODIFY=Member modified
+Notify_MEMBER_MODIFY=Medlem modifierad
 Notify_MEMBER_SUBSCRIPTION=Medlem tecknat
 Notify_MEMBER_RESILIATE=Medlem resiliated
 Notify_MEMBER_DELETE=Elementet bort
-Notify_PROJECT_CREATE=Project creation
-Notify_TASK_CREATE=Task created
-Notify_TASK_MODIFY=Task modified
-Notify_TASK_DELETE=Task deleted
+Notify_PROJECT_CREATE=Projekt skapande
+Notify_TASK_CREATE=Task skapade
+Notify_TASK_MODIFY=Task modifierad
+Notify_TASK_DELETE=Uppgift utgår
+SeeModuleSetup=Se modul inställnings
 NbOfAttachedFiles=Antal bifogade filer / dokument
 TotalSizeOfAttachedFiles=Total storlek på bifogade filer / dokument
 MaxSize=Maximal storlek
@@ -57,15 +57,15 @@ Miscellaneous=Diverse
 NbOfActiveNotifications=Antal anmälningar
 PredefinedMailTest=Detta är en test post. \\ NDet två linjerna är åtskilda av en vagnretur.
 PredefinedMailTestHtml=Detta är en <b>test</b> post (ordet Provningen skall i fetstil). <br> De två linjerna är åtskilda av en vagnretur.
-PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
-PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice  __FACREF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
-PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
-PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
-PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
-PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
-PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
-PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
-PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__
+PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ Här hittar du fakturan __FACREF__ __PERSONALIZED__Sincerely __SIGNATURE__
+PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ Vi vill varna er att fakturan __FACREF__ tycks inte betalt. Så detta är fakturan i bilagan igen, som en påminnelse. __PERSONALIZED__Sincerely __SIGNATURE__
+PredefinedMailContentSendProposal=__CONTACTCIVNAME__ Här hittar du det kommersiella förslaget __PROPREF__ __PERSONALIZED__Sincerely __SIGNATURE__
+PredefinedMailContentSendOrder=__CONTACTCIVNAME__ Här hittar ordern __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__
+PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ Här hittar du vår ordning __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__
+PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ Här hittar du fakturan __FACREF__ __PERSONALIZED__Sincerely __SIGNATURE__
+PredefinedMailContentSendShipping=__CONTACTCIVNAME__ Här hittar sjöfarten __SHIPPINGREF__ __PERSONALIZED__Sincerely __SIGNATURE__
+PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ Här hittar interventionen __FICHINTERREF__ __PERSONALIZED__Sincerely __SIGNATURE__
+PredefinedMailContentThirdparty=__CONTACTCIVNAME__ __PERSONALIZED__ __SIGNATURE__
 DemoDesc=Dolibarr är en kompakt ERP / CRM består av flera funktionella moduler. En demo som inkluderar alla moduler inte betyder något som detta inträffar aldrig. Så, flera demo profiler finns tillgängliga.
 ChooseYourDemoProfil=Välj demo profil som matchar din aktivitet ...
 DemoFundation=Hantera medlemmar av en stiftelse
@@ -80,6 +80,16 @@ ModifiedBy=Uppdaterad av %s
 ValidatedBy=Bekräftad av %s
 CanceledBy=Annullerats av %s
 ClosedBy=Stängt av %s
+CreatedById=Användarkod som skapade
+ModifiedById=Användarkod som gjorde förra förändring
+ValidatedById=Användarkod som validerats
+CanceledById=Användar-ID som annulleras
+ClosedById=Användar-ID som stängd
+CreatedByLogin=Användarinloggning som skapade
+ModifiedByLogin=Användarinloggning som gjorde förra förändring
+ValidatedByLogin=Användarinloggning som validerats
+CanceledByLogin=Användarinloggning som annullerats
+ClosedByLogin=Användarinloggning som stängde
 FileWasRemoved=Arkiv %s togs bort
 DirWasRemoved=Nummer %s togs bort
 FeatureNotYetAvailableShort=Finns i en kommande version
@@ -133,7 +143,7 @@ SizeUnitcm=cm
 SizeUnitmm=mm
 SizeUnitinch=tum
 SizeUnitfoot=fot
-SizeUnitpoint=point
+SizeUnitpoint=poäng
 BugTracker=Bug tracker
 SendNewPasswordDesc=Denna blankett kan du begära ett nytt lösenord. Det kommer att skickas till din e-postadress. <br> Förändring kommer att ha verkan först efter att klicka på bekräftelse länk inne i den här e-postmeddelandet. <br> Kontrollera dina program e läsare.
 BackToLoginPage=Tillbaka till inloggningssidan
@@ -147,12 +157,12 @@ StatsByNumberOfEntities=Statistik på antalet nationella enheter
 NumberOfProposals=Antal förslag om senaste 12 månaderna
 NumberOfCustomerOrders=Antal kundorder på senaste 12 månaderna
 NumberOfCustomerInvoices=Antal kundfakturor den senaste 12 månaderna
-NumberOfSupplierOrders=Number of supplier orders on last 12 month
+NumberOfSupplierOrders=Antal leverantörsorder på senaste 12 månaderna
 NumberOfSupplierInvoices=Antal leverantörsfakturor på senaste 12 månaderna
 NumberOfUnitsProposals=Antal enheter på förslag om senaste 12 månaderna
 NumberOfUnitsCustomerOrders=Antal enheter på kundens order på senaste 12 månaderna
 NumberOfUnitsCustomerInvoices=Antal enheter på kundernas fakturor senaste 12 månaderna
-NumberOfUnitsSupplierOrders=Number of units on supplier orders on last 12 month
+NumberOfUnitsSupplierOrders=Antal enheter på leverantörsorder på senaste 12 månaderna
 NumberOfUnitsSupplierInvoices=Antal enheter på leverantörsfakturor på senaste 12 månaderna
 EMailTextInterventionValidated=Interventionen %s har validerats.
 EMailTextInvoiceValidated=Fakturan %s har validerats.
@@ -162,7 +172,7 @@ EMailTextOrderApproved=Ordern %s har godkänts.
 EMailTextOrderApprovedBy=Ordern %s har godkänts av %s.
 EMailTextOrderRefused=Ordern %s har avslagits.
 EMailTextOrderRefusedBy=Ordern %s har avslagits %s.
-EMailTextExpeditionValidated=The shipping %s has been validated.
+EMailTextExpeditionValidated=Leveransen %s har validerats.
 ImportedWithSet=Import dataunderlaget
 DolibarrNotification=Automatisk anmälan
 ResizeDesc=Ange nya <b>bredd</b> eller ny höjd. Förhållandet kommer att hållas under storleksändring ...
@@ -184,12 +194,12 @@ StartUpload=Starta upp
 CancelUpload=Avbryt upp
 FileIsTooBig=Filer är för stor
 PleaseBePatient=Ha tålamod ...
-RequestToResetPasswordReceived=A request to change your Dolibarr password has been received
-NewKeyIs=This is your new keys to login
-NewKeyWillBe=Your new key to login to software will be
-ClickHereToGoTo=Click here to go to %s
-YouMustClickToChange=You must however first click on the following link to validate this password change
-ForgetIfNothing=If you didn't request this change, just forget this email. Your credentials are kept safe.
+RequestToResetPasswordReceived=En begäran om att ändra Dolibarr lösenord har mottagits
+NewKeyIs=Det här är din nya nycklar för att logga in
+NewKeyWillBe=Din nya knappen för att logga in på programvaran kommer att vara
+ClickHereToGoTo=Klicka här för att gå till %s
+YouMustClickToChange=Du måste dock först klicka på följande länk för att bekräfta detta lösenord förändring
+ForgetIfNothing=Om du inte har begärt denna förändring, bara glömma detta mail. Dina referenser förvaras säkert.
 
 ##### Calendar common #####
 AddCalendarEntry=Lägg till post i kalendern %s
@@ -211,7 +221,7 @@ MemberResiliatedInDolibarr=Medlem %s resiliated i Dolibarr
 MemberDeletedInDolibarr=Medlem %s bort från Dolibarr
 MemberSubscriptionAddedInDolibarr=Teckning av medlem %s till i Dolibarr
 ShipmentValidatedInDolibarr=Transport %s validerats i Dolibarr
-ShipmentDeletedInDolibarr=Shipment %s deleted from Dolibarr
+ShipmentDeletedInDolibarr=Leverans %s har raderats från Dolibarr
 ##### Export #####
 Export=Exportera
 ExportsArea=Export område
diff --git a/htdocs/langs/sv_SE/paypal.lang b/htdocs/langs/sv_SE/paypal.lang
index a4d576e7f5a2c87e7568dbf804b19190c87f3f42..d9b9f5962b73026dd031da4aa5597703ffbe82f9 100644
--- a/htdocs/langs/sv_SE/paypal.lang
+++ b/htdocs/langs/sv_SE/paypal.lang
@@ -10,16 +10,16 @@ PAYPAL_API_PASSWORD=API-lösenord
 PAYPAL_API_SIGNATURE=API signatur
 PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Erbjuder betalning &quot;integrerad&quot; (Kreditkort + Paypal) eller &quot;Paypal&quot; endast
 PaypalModeIntegral=Integral
-PaypalModeOnlyPaypal=PayPal only
+PaypalModeOnlyPaypal=PayPal endast
 PAYPAL_CSS_URL=Optionnal Url av CSS-formatmall om betalning sidan
 ThisIsTransactionId=Detta är id transaktion: <b>%s</b>
 PAYPAL_ADD_PAYMENT_URL=Lägg till URL Paypal betalning när du skickar ett dokument per post
 PAYPAL_IPN_MAIL_ADDRESS=E-postadress att omedelbart anmälan av betalning (IPN)
-PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n
+PredefinedMailContentLink=Du kan klicka på den säkra länken nedan för att göra din betalning (PayPal), om det inte redan är gjort.\n\n %s\n\n
 YouAreCurrentlyInSandboxMode=Du är för närvarande i &quot;sandlåda&quot;-läget
-NewPaypalPaymentReceived=New Paypal payment received
-NewPaypalPaymentFailed=New Paypal payment tried but failed
-PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not)
-ReturnURLAfterPayment=Return URL after payment
-ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed
-PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed
+NewPaypalPaymentReceived=Nya Paypal mottagen betalning
+NewPaypalPaymentFailed=Nya Paypal betalning försökt men misslyckats
+PAYPAL_PAYONLINE_SENDEMAIL=EMail att varna efter en betalning (framgång eller ej)
+ReturnURLAfterPayment=Återgå URL efter betalning
+ValidationOfPaypalPaymentFailed=Validering av Paypal betalning misslyckades
+PaypalConfirmPaymentPageWasCalledButFailed=Betalning bekräftelsesidan för Paypal kallades av Paypal utan bekräftelse misslyckades
diff --git a/htdocs/langs/sv_SE/propal.lang b/htdocs/langs/sv_SE/propal.lang
index 1dcf8a037fdc3c2a6fee2ce3f0f8781e6fffb15f..c4a0da04ecb6b6553d9f18e6dfbf277c31d67e34 100644
--- a/htdocs/langs/sv_SE/propal.lang
+++ b/htdocs/langs/sv_SE/propal.lang
@@ -16,7 +16,7 @@ Prospect=Prospect
 ProspectList=Prospect lista
 DeleteProp=Ta bort kommersiella förslag
 ValidateProp=Validate kommersiella förslag
-AddProp=Lägg till förslaget
+AddProp=Skapa förslag
 ConfirmDeleteProp=Är du säker på att du vill ta bort denna kommersiella förslag?
 ConfirmValidateProp=Är du säker på att du vill validera denna kommersiella förslag?
 LastPropals=Senaste %s förslag
@@ -55,8 +55,6 @@ NoOpenedPropals=Ingen öppnade kommersiella förslag
 NoOtherOpenedPropals=Ingen annan öppnas kommersiella förslag
 RefProposal=Kommersiella förslag ref
 SendPropalByMail=Skicka kommersiella förslag per post
-FileNotUploaded=Filen var inte upp
-FileUploaded=Filen har lagts upp
 AssociatedDocuments=Handlingar i samband med förslaget:
 ErrorCantOpenDir=Kan inte öppna katalog
 DatePropal=Datum för förslag
diff --git a/htdocs/langs/sv_SE/salaries.lang b/htdocs/langs/sv_SE/salaries.lang
index edca71a18298c2a2c2f4f3d92ce10dd130ab2335..f2fc8c20068e58645ffb0a3d673a31768fd3d98a 100644
--- a/htdocs/langs/sv_SE/salaries.lang
+++ b/htdocs/langs/sv_SE/salaries.lang
@@ -1,8 +1,12 @@
 # Dolibarr language file - Source file is en_US - users
-Salary=Salary
-Salaries=Salaries
-Employee=Employee
-NewSalaryPayment=New salary payment
-SalaryPayment=Salary payment
-SalariesPayments=Salaries payments
-ShowSalaryPayment=Show salary payment
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Bokförings kod för löne utbetalningar
+SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Bokförings kod för finansiell kostnad
+Salary=Lön
+Salaries=Löner
+Employee=Anställd
+NewSalaryPayment=Ny löneutbetalning
+SalaryPayment=Lönebetalning
+SalariesPayments=Löneutbetalningar
+ShowSalaryPayment=Visa löneutbetalning
+THM=Genomsnitt timpris
+TJM=Genomsnittlig dagligt pris
diff --git a/htdocs/langs/sv_SE/sendings.lang b/htdocs/langs/sv_SE/sendings.lang
index 5c81077a14ec1490682746c0c4600493b1a22f64..fdb12324479f2b0d65b978c5353a8c0b321f609d 100644
--- a/htdocs/langs/sv_SE/sendings.lang
+++ b/htdocs/langs/sv_SE/sendings.lang
@@ -13,7 +13,7 @@ LastSendings=Senaste %s transporter
 SearchASending=Sök efter transport
 StatisticsOfSendings=Statistik för transporter
 NbOfSendings=Antal transporter
-NumberOfShipmentsByMonth=Number of shipments by month
+NumberOfShipmentsByMonth=Antal leveranser per månad
 SendingCard=Frakt-kort
 NewSending=Ny leverans
 CreateASending=Skapa en sändning
@@ -50,17 +50,17 @@ Enlevement=Fått av kunden
 DocumentModelSimple=Enkel förlagan
 DocumentModelMerou=Merou A5-modellen
 WarningNoQtyLeftToSend=Varning, att inga produkter väntar sändas.
-StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known).
+StatsOnShipmentsOnlyValidated=Statistik utförda på försändelser endast valideras. Datum som används är datum för godkännandet av leveransen (planerat leveransdatum är inte alltid känt).
 DateDeliveryPlanned=Hyvlat leveransdatum
 DateReceived=Datum leverans fick
 SendShippingByEMail=Skicka leverans via e-post
-SendShippingRef=Submission of shipment %s
+SendShippingRef=Inlämning av leveransen %s
 ActionsOnShipping=Evenemang på leverans
 LinkToTrackYourPackage=Länk till spåra ditt paket
 ShipmentCreationIsDoneFromOrder=För närvarande är skapandet av en ny leverans sker från ordern kortet.
-RelatedShippings=Related shippings
-ShipmentLine=Shipment line
-CarrierList=List of transporters
+RelatedShippings=Relaterade sändningar
+ShipmentLine=Transport linje
+CarrierList=Lista över transportörer
 
 # Sending methods
 SendingMethodCATCH=Fångst av kunden
@@ -70,9 +70,9 @@ SendingMethodCOLSUI=Colissimo
 DocumentModelSirocco=Enkel handling modell för leverans kvitton
 DocumentModelTyphon=Mer komplett dokument modell för leverans intäkter (logo. ..)
 Error_EXPEDITION_ADDON_NUMBER_NotDefined=Konstant EXPEDITION_ADDON_NUMBER definieras inte
-SumOfProductVolumes=Sum of product volumes
-SumOfProductWeights=Sum of product weights
+SumOfProductVolumes=Summan av produktvolymer
+SumOfProductWeights=Summan av produktvikter
 
 # warehouse details
-DetailWarehouseNumber= Warehouse details
-DetailWarehouseFormat= W:%s (Qty : %d)
+DetailWarehouseNumber= Lagerinformation
+DetailWarehouseFormat= W:%s (Antal : %d)
diff --git a/htdocs/langs/sv_SE/stocks.lang b/htdocs/langs/sv_SE/stocks.lang
index 481efd59b1b688bf50979f86905c4ba821412adb..92b0bda1f1bfeb60a78b71255917741bdf6e4ce0 100644
--- a/htdocs/langs/sv_SE/stocks.lang
+++ b/htdocs/langs/sv_SE/stocks.lang
@@ -62,8 +62,8 @@ OrderStatusNotReadyToDispatch=Beställningen har ännu inte / inte längre statu
 StockDiffPhysicTeoric=Orsak till skillnad mellan verklig och beräknad lagerställning
 NoPredefinedProductToDispatch=Inga fördefinierade produkter för det här objektet. Så ingen sändning till lager krävs.
 DispatchVerb=Sändning
-StockLimitShort=Limit for alert
-StockLimit=Stock limit for alert
+StockLimitShort=Gräns ​​för varning
+StockLimit=Stock gräns för larm
 PhysicalStock=Fysisk lager
 RealStock=Real Stock
 VirtualStock=Virtuellt lager
@@ -99,7 +99,7 @@ UseVirtualStockByDefault=Use virtual stock by default, instead of physical stock
 UseVirtualStock=Använd virtuellt lager
 UsePhysicalStock=Use physical stock
 CurentSelectionMode=Curent selection mode
-CurentlyUsingVirtualStock=Virtual stock
+CurentlyUsingVirtualStock=Virtuell lager
 CurentlyUsingPhysicalStock=Physical stock
 RuleForStockReplenishment=Regel för påfyllning av lager
 SelectProductWithNotNullQty=Välj minst en produkt med antal skilt från noll samt leverantör
@@ -112,7 +112,7 @@ ReplenishmentOrdersDesc=Detta är en lista över alla öppna leverantörsorder
 Replenishments=Påfyllningar
 NbOfProductBeforePeriod=Antal av produkt %s i lager före vald period (< %s)
 NbOfProductAfterPeriod=Antal av produkt %s i lager efter vald period (> %s)
-MassMovement=Mass movement
+MassMovement=Massrörelse
 MassStockMovement=Mass stock movement
 SelectProductInAndOutWareHouse=Välj produkt, antal, ursprungslager och mållager och klicka "%s". När det är gjort för alla lageröverföringar klicka på "%s".
 RecordMovement=Spela in överföring
diff --git a/htdocs/langs/sv_SE/users.lang b/htdocs/langs/sv_SE/users.lang
index da62d760f12e15d8873445030fc3f1fcdd6ccca3..bab31f4892162773c6959c86b30347e27bd815c7 100644
--- a/htdocs/langs/sv_SE/users.lang
+++ b/htdocs/langs/sv_SE/users.lang
@@ -1,5 +1,5 @@
 # Dolibarr language file - Source file is en_US - users
-HRMArea=HRM area
+HRMArea=HRM område
 UserCard=Användarkort
 ContactCard=Kontaktkort
 GroupCard=Grupp kort
@@ -87,7 +87,7 @@ MyInformations=Mina uppgifter
 ExportDataset_user_1=Dolibarr-användarnas behov och egenskaper
 DomainUser=Domän användare %s
 Reactivate=Återaktivera
-CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card.
+CreateInternalUserDesc=Detta formulär tillåter dig att skapa en användare internt på ditt företag / stiftelse. För att skapa en extern användare (kund, leverantör, ...) använder du knappen "Skapa Dolibarr användare" från tredje parts kontaktkort.
 InternalExternalDesc=En <b>intern</b> användare är en användare som är en del av ert företag / stiftelse. <br> En <b>extern</b> användare är en kund, leverantör eller annan. <br><br> I båda fallen definierar behörigheter rättigheter Dolibarr, även externa användare kan ha en annan meny manager än interna användare (Se startsida - Setup - Display)
 PermissionInheritedFromAGroup=Tillstånd beviljas, eftersom ärvt från en av en användares grupp.
 Inherited=Ärvda
@@ -114,8 +114,10 @@ YourRole=Din roller
 YourQuotaOfUsersIsReached=Din kvot på aktiva användare är nådd!
 NbOfUsers=Nb av användare
 DontDowngradeSuperAdmin=Endast en SuperAdmin kan nedgradera en SuperAdmin
-HierarchicalResponsible=Hierarkiskt ansvarig
+HierarchicalResponsible=Handledare
 HierarchicView=Hierarkisk vy
 UseTypeFieldToChange=Använd fält Typ för att ändra
 OpenIDURL=OpenID URL
 LoginUsingOpenID=Logga in med OpenID
+WeeklyHours=Vecko timmar
+ColorUser=Färg på användaren
diff --git a/htdocs/langs/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang
index fbbd8502a48fca39cb4684d6b00940616c78fb80..c6d4a63456064fb95a8ddb987b4b4092791f6abe 100644
--- a/htdocs/langs/tr_TR/accountancy.lang
+++ b/htdocs/langs/tr_TR/accountancy.lang
@@ -25,12 +25,12 @@ Selectchartofaccounts=Hesap planı seç
 Validate=Doğrula
 Addanaccount=Muhasebe hesabı ekle
 AccountAccounting=Muhasebe hesabı
-Ventilation=Ventilation
+Ventilation=Analiz
 ToDispatch=Gönderilecek
 Dispatched=Gönderilmiş
 
-CustomersVentilation=Ventilation customers
-SuppliersVentilation=Ventilation suppliers
+CustomersVentilation=Müşteri analizi
+SuppliersVentilation=Tedarikçi analizi
 TradeMargin=Ticaret marjı
 Reports=Raporlar
 ByCustomerInvoice=Müşteri faturalarına göre
@@ -45,52 +45,52 @@ WriteBookKeeping=Büyük defter hesap kayıtları
 Bookkeeping=Büyük Defter
 AccountBalanceByMonth=Aylık hesap bakiyesi
 
-AccountingVentilation=Accounting ventilation
-AccountingVentilationSupplier=Accounting ventilation supplier
-AccountingVentilationCustomer=Accounting ventilation customer
+AccountingVentilation=Analiz muhasebesi
+AccountingVentilationSupplier=Teadrikçi hesabı analizi
+AccountingVentilationCustomer=Müşteri hesabı analizi
 Line=Satır
 
-CAHTF=Total purchase supplier HT
-InvoiceLines=Lines of invoice to be ventilated
-InvoiceLinesDone=Ventilated lines of invoice
+CAHTF=Tedarikçi HT toplam sipariş
+InvoiceLines=Analiz edilecek fatura kalemleri
+InvoiceLinesDone=Analiz edilen fatura kalemleri
 IntoAccount=Muhasebe hesabında
 
-Ventilate=Ventilate
-VentilationAuto=Automatic ventilation
+Ventilate=Analiz
+VentilationAuto=Otomatik analiz
 
 Processing=İşleme
 EndProcessing=İşleme sonu
-AnyLineVentilate=Any lines to ventilate
+AnyLineVentilate=Analiz edilecek herhangi bir kalem
 SelectedLines=Seçilen satırlar
 Lineofinvoice=Fatura satırı
-VentilatedinAccount=Ventilated successfully in the accounting account
-NotVentilatedinAccount=Not ventilated in the accounting account
+VentilatedinAccount=Muhasebe hesabında başarıyla analiz edildi
+NotVentilatedinAccount=Muhasebe hesabında analiz edilmedi.
 
-ACCOUNTING_SEPARATORCSV=Separator CSV
+ACCOUNTING_SEPARATORCSV=CSV Ayırıcı
 
-ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to be ventilated shown by page (maximum recommended : 50)
-ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the pages of ventilation "Has to ventilate" by the most recent elements
-ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the pages of ventilation "Ventilated" by the most recent elements
+ACCOUNTING_LIMIT_LIST_VENTILATION=Bir sayfada gösterilecek analiz edilen öğe sayısı (önerilen ençok:50)
+ACCOUNTING_LIST_SORT_VENTILATION_TODO="Analizlenecek" analiz sayfalarının sıralamasını son öğelerden başlat
+ACCOUNTING_LIST_SORT_VENTILATION_DONE="Analizlenen" analiz sayfalarının sıralamasını son öğelerden başlat
 
 AccountLength=Dolibarr'da gösterilen muhasebe hesapları uzunluğu
-AccountLengthDesc=Function allowing to feign a length of accounting account by replacing spaces by the zero figure. This function touches only the display, it does not modify the accounting accounts registered in Dolibarr. For the export, this function is necessary to be compatible with certain software.
-ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounts
-ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounts
+AccountLengthDesc=Boşlukların sıfır figürü ile değiştirilmesiyle muhasebe hesap uzunluğunun uydurulmasını sağlayan işlevdir. Bu işlev yalnızca görüntüyü değiştirir, Dolibarr'da kayıtlı muhasebe hesaplarını değiştirmez. Dışaaktarma için bu fonksiyonun belirli yazılımla uyumlu olması gerekir.
+ACCOUNTING_LENGTH_GACCOUNT=Genel hesapların uzunluğu
+ACCOUNTING_LENGTH_AACCOUNT=Üçüncü parti hesaplarının uzunluğu
 
-ACCOUNTING_SELL_JOURNAL=Sell journal
-ACCOUNTING_PURCHASE_JOURNAL=Purchase journal
-ACCOUNTING_BANK_JOURNAL=Bank journal
-ACCOUNTING_CASH_JOURNAL=Cash journal
-ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal
-ACCOUNTING_SOCIAL_JOURNAL=Social journal
+ACCOUNTING_SELL_JOURNAL=Satış günlüğü
+ACCOUNTING_PURCHASE_JOURNAL=Satınalma günlüğü
+ACCOUNTING_BANK_JOURNAL=Banka günlüğü
+ACCOUNTING_CASH_JOURNAL=Kasa günlüğü
+ACCOUNTING_MISCELLANEOUS_JOURNAL=Çeşitli günlük
+ACCOUNTING_SOCIAL_JOURNAL=Sosyal günlük
 
-ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account of transfer
-ACCOUNTING_ACCOUNT_SUSPENSE=Account of wait
+ACCOUNTING_ACCOUNT_TRANSFER_CASH=Transfer hesabı
+ACCOUNTING_ACCOUNT_SUSPENSE=Bekleme hesabı
 
-ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (if not defined in the product sheet)
-ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (if not defined in the product sheet)
-ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (if not defined in the service sheet)
-ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (if not defined in the service sheet)
+ACCOUNTING_PRODUCT_BUY_ACCOUNT=Satınalınan ürünler için varsayılan muhasebe hesabı (ürün kartlarında tanımlanmışsa)
+ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Satılan ürünler için varsayılan muhasebe hesabı (ürün kartlarında tanımlanmışsa)
+ACCOUNTING_SERVICE_BUY_ACCOUNT=Satınalınan hizmetler için varsayılan muhasebe hesabı (ürün kartlarında tanımlanmışsa)
+ACCOUNTING_SERVICE_SOLD_ACCOUNT=Satılan hizmetler için varsayılan muhasebe kodu (hizmet sayfasında tanımlanmamışsa)
 
 Doctype=Belge türü
 Docdate=Tarih
@@ -128,7 +128,7 @@ ListeMvts=Hareket listesi
 ErrorDebitCredit=Borç ve Alacak aynı anda bir değere sahip olamaz
 
 ReportThirdParty=Üçüncü parti hesabını listele
-DescThirdPartyReport=Consult here the list of the thirdparty customers and the suppliers and their accounting accounts
+DescThirdPartyReport=Burada üçüncü parti müşterileri ve tedarikçileri ile onların muhasebe hesaplarının listesine bakın
 
 ListAccounts=Muhasebe hesapları listesi
 
@@ -140,15 +140,15 @@ Active=Hesap özeti
 
 NewFiscalYear=Yeni mali yıl
 
-DescVentilCustomer=Consult here the annual accounting ventilation of your invoices customers
+DescVentilCustomer=Burada müşteri faturalarınızın yıllık hesap analizine bakın
 TotalVente=Toplam ciro HT
 TotalMarge=Toplam satışlar oranı
-DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their accounting account
-DescVentilTodoCustomer=Ventilate your lines of customer invoice with an accounting account
-ChangeAccount=Change the accounting account for lines selected by the account:
+DescVentilDoneCustomer=Burada müşteri faturaları satırlarına ve onların muhasebe hesaplarının listesine bakın.
+DescVentilTodoCustomer=Bir muhasebe hesabıyla müşteri faturanızın kalemlerini analiz edin
+ChangeAccount=Muhasebe hesabını, hesap tarafından seçilen satırlar için değiştirin:
 Vide=-
-DescVentilSupplier=Consult here the annual accounting ventilation of your invoices suppliers
-DescVentilTodoSupplier=Ventilate your lines of invoice supplier with an accounting account
+DescVentilSupplier=Burada tedarikçi faturalarınızın yıllık hesap analizine bakın
+DescVentilTodoSupplier=Bir muhasebe hesabıyla tedarikçi faturanızın kalemlerini analiz edin
 DescVentilDoneSupplier=Burada tedarikçi faturaları ve muhasebe hesapları satırları listesine başvurun
 
 ValidateHistory=Otomatikman doğrula
diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang
index 1cb78579d3338726abbf483fb52197e980a84451..d1ee8c4ac6e37177ca03ce8552ca39840dd36bae 100644
--- a/htdocs/langs/tr_TR/admin.lang
+++ b/htdocs/langs/tr_TR/admin.lang
@@ -3,13 +3,13 @@ Foundation=Dernek
 Version=Sürüm
 VersionProgram=Program sürümü
 VersionLastInstall=İlk kurulan sürüm
-VersionLastUpgrade=Yükseltilen son sürüm
+VersionLastUpgrade=Son yükseltilen sürüm
 VersionExperimental=Deneysel
 VersionDevelopment=Geliştirme
 VersionUnknown=Bilinmeyen
 VersionRecommanded=Önerilen
-SessionId=Oturum ID
-SessionSaveHandler=Oturum kayıt işlemcisi
+SessionId=Oturum Kimliği
+SessionSaveHandler=Oturum kayıt yürütücüsü
 SessionSavePath=Oturum kayıt konumu
 PurgeSessions=Oturum Temizleme
 ConfirmPurgeSessions=Gerçekten tüm oturumları temizlemek istiyor musunuz? Bu (kendiniz hariç), tüm kullanıcıların bağlantılarını kesecektir.
@@ -51,10 +51,10 @@ ErrorReservedTypeSystemSystemAuto='system' ve 'systemauto' değerleri tür için
 ErrorCodeCantContainZero=Kod 0 değeri içeremez
 DisableJavascript=Javascript ve Ajax fonksiyonlarını engelle (Görme engelli kişiler ve metin tarayıcılar için önerilir)
 ConfirmAjax=Açılır Ajax onay pencereleri kullanın
-UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
+UseSearchToSelectCompanyTooltip=Ayrıca çok fazla sayıda üçüncü partiniz varsa (>100 000), Kurulum->Diğer den COMPANY_DONOTSEARCH_ANYWHERE değişmezini 1 e ayarlayarak hızı arttırabilirsiniz. Sonra arama dizenin başlamasıyla sınırlı olacaktır.
 UseSearchToSelectCompany=Üçüncü parti seçimi için liste kutusu kullanmak yerine oto tamamlamalı alan kullanın
 ActivityStateToSelectCompany= Halen faaliyette olan olan ya da durdurulmuş olan üçüncü partilerin görünmesi/gizlenmesi için bir süzgeç seçeneği ekleyin
-UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
+UseSearchToSelectContactTooltip=Ayrıca çok fazla sayıda üçüncü partiniz varsa (>100 000), Kurulum->Diğer den CONTACT_DONOTSEARCH_ANYWHERE değişmezini 1 e ayarlayarak hızı arttırabilirsiniz. Sonra arama dizenin başlamasıyla sınırlı olacaktır.
 UseSearchToSelectContact=Kişi seçimi için oto tamamlamalı alan kullanın (liste kutusu kullanmak yerine).
 SearchFilter=Arama süzgeçi seçenekleri
 NumberOfKeyToSearch=Aramayı başlatacak karakter sayısı: %s
@@ -68,7 +68,7 @@ PreviewNotAvailable=Önizleme yok
 ThemeCurrentlyActive=Geçerli etkin tema
 CurrentTimeZone=PHP Saat Dilimi (sunucu)
 MySQLTimeZone=ZamanDilimi MySql (veritabanı)
-TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
+TZHasNoEffect=Tarihler, sanki gönderilen dizeler olarak tutulmuş gibi veritabanı sunucusu tarafından saklanır ve çağrılır. Zaman dilimi yalnızca UNIX_TIMESTAMP işlevi kullanılırken etkilenir (bu Dolibarr tarafından kullanılmamalıdır, böylece ZD veritabanının hiçbir etkisi olmaz, veri girildikten sonra değiştirilse bile)
 Space=Boşluk
 Table=Tablo
 Fields=Alanlar
@@ -76,7 +76,7 @@ Index=Dizin
 Mask=Maske
 NextValue=Sonraki değer
 NextValueForInvoices=Sonraki değer (faturalar)
-NextValueForCreditNotes=Sonraki değer (alacak dekontları)
+NextValueForCreditNotes=Sonraki değer (iade faturaları)
 NextValueForDeposit=Sonraki değer (yatırılan)
 NextValueForReplacements=Sonraki değer (yenileme)
 MustBeLowerThanPHPLimit=Not: PHP niz yüklenen her dosyanın boyutunu, parametrelerin değeri ne olursa olsun <b>%s</b> %s ile sınırlandırır
@@ -92,8 +92,8 @@ ComptaSetup=Muhasebe modülü ayarları
 UserSetup=Kullanıcı yönetimi ayarları
 MenuSetup=Menü yönetimi ayarları
 MenuLimits=Sınırlar ve doğruluk
-MenuIdParent=Ana menü ID
-DetailMenuIdParent=Ana menü ID (bir üst menü için boş)
+MenuIdParent=Ana menü Kimliği
+DetailMenuIdParent=Ana menü Kimliği (bir üst menü için boş)
 DetailPosition=Menü konumunu tanımlamak için sıra numarası
 PersonalizedMenusNotSupported=Kişiselleştirilmiş menüler desteklenmiyor
 AllMenus=Tümü
@@ -107,8 +107,8 @@ OtherSetup=Diğer ayarlar
 CurrentValueSeparatorDecimal=Ondalık ayırıcı
 CurrentValueSeparatorThousand=Binlik ayırıcı
 Destination=Hedef
-IdModule=Modül ID
-IdPermissions=İzin ID
+IdModule=Modül Kimliği
+IdPermissions=İzin Kimliği
 Modules=Modüller
 ModulesCommon=Ana modüller
 ModulesOther=Diğer modüller
@@ -219,7 +219,7 @@ AutomaticIfJavascriptDisabled=JavaScript devre dışı ise otomatiktir
 AvailableOnlyIfJavascriptNotDisabled=Yalnızca JavaScript devre dışı değilse vardır
 AvailableOnlyIfJavascriptAndAjaxNotDisabled=Yalnızca JavaScript ve Ajax devre dışı değilse vardır
 Required=Gerekli
-UsedOnlyWithTypeOption=Used by some agenda option only
+UsedOnlyWithTypeOption=Bazı gündem seçeneği tarafından kullanılan
 Security=Güvenlik
 Passwords=Parolalar
 DoNotStoreClearPassword=Parolaları veritabanında saklamayın silin, yalnızca şifreli değerleri saklayın (Etkinleştirme önerilir)
@@ -382,7 +382,7 @@ ExtrafieldRadio=Onay düğmesi
 ExtrafieldParamHelpselect=Parametre listesi anahtar.değer gibi olmalı, örneğin <br><br> : <br>1,değer1<br>2,değer2<br>3,değer3<br>...<br><br>Başka bir listeye bağlı bir liste elde etmek için :<br>1,değer1|parent_list_code:parent_key<br>2,değer2|parent_list_code:parent_key
 ExtrafieldParamHelpcheckbox=Parametre listesi anahtar.değer gibi olmalı, örneğin <br><br> : <br>1,değer1<br>2,değer2<br>3,değer3<br>...
 ExtrafieldParamHelpradio=Parametre listesi anahtar.değer gibi olmalı, örneğin <br><br> : <br>1,değer1<br>2,değer2<br>3,değer3<br>...
-ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
+ExtrafieldParamHelpsellist=Parametre listesi bir tablodan gelir<br>Sözdizimi : table_name:label_field:id_field::filter<br>Örnek: c_typent:libelle:id::filter<br><br>Süzgeç yalnızca etkin değeri (eg active=1) basit bir test olabilir <br> daha çok alanda süzecekseniz bu söz dizimini kullanın extra.fieldcode=... (burada kod ek alanın kodudur)<br><br>Başkasına dayalı listeyi almak için :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
 LibraryToBuildPDF=PDF oluşturmada kullanılan kütüphane
 WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
 LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax)
@@ -422,7 +422,7 @@ Module23Desc= Enerji tüketimlerinin izlenmesi
 Module25Name=Müşteri Siparişleri
 Module25Desc=Müşteri siparişleri yönetimi
 Module30Name=Faturalar
-Module30Desc=Müşteri faturaları ve alacak dekontları yönetimi. Tedarikçi fatura yönetimi
+Module30Desc=Müşteri faturaları ve iade faturaları yönetimi. Tedarikçi fatura yönetimi
 Module40Name=Tedarikçiler
 Module40Desc=Tedarikçi yönetimi ve satın alma (siparişler ve faturalar)
 Module42Name=Kütükler
@@ -484,7 +484,7 @@ Module500Desc=Vergiler, sosyal katkı payları, temettüler ve maaşlar gibi öz
 Module510Name=Ücretler
 Module510Desc=Çalışanların maaş ve ödeme yönetimi
 Module600Name=Duyurlar
-Module600Desc=Dolibarr iş etkinleri için üçüncü partilerin ilgililerine eposta ile duyurular gönderin
+Module600Desc=Üçüncü parti kişilerine bazı Dolibarr iş etkinlikleriyle ilgili Eposta bildirimleri gönderin (her üçüncü parti için ayarlar tanımlanmıştır)
 Module700Name=Bağışlar
 Module700Desc=Bağış yönetimi
 Module1200Name=Mantis
@@ -514,16 +514,16 @@ Module5000Name=Çoklu-firma
 Module5000Desc=Birden çok firmayı yönetmenizi sağlar
 Module6000Name=İş akışı
 Module6000Desc=İş akışı yönetimi
-Module20000Name=Tatiller
-Module20000Desc=Çalışanların tatillerini bildir ve izle
+Module20000Name=İzin İstekleri yönetimi
+Module20000Desc=Çalışanların izin isteklerini bildirin ve izleyin
 Module39000Name=Ürün kümesi
 Module39000Desc=Parti numarası, ürünlerin yenme ve satış tarihi yönetiminde
 Module50000Name=PayBox
 Module50000Desc=PayBox modülü ile kredi kartı ile çevrimiçi ödeme sayfası sunmak için
 Module50100Name=Satış Noktaları
 Module50100Desc=Satış Noktası modülü
-Module50200Name= Paypal
-Module50200Desc= Kredi kartı ya da Paypal ile ödeme sağlayan çevrimiçi ödeme sayfası modülü
+Module50200Name=Paypal
+Module50200Desc=Kredi kartı ya da Paypal ile ödeme sağlayan çevrimiçi ödeme sayfası modülü
 Module50400Name=Muhasebe (gelişmiş)
 Module50400Desc=Muhasebe yönetimi (çift taraf)
 Module54000Name=IPP Yazdır
@@ -597,9 +597,9 @@ Permission121=Kullanıcıya bağlı üçüncü partileri oku
 Permission122=Kullanıcıya bağlı üçüncü parti oluştur/değiştir
 Permission125=Kullanıcıya bağlı üçüncü partileri sil
 Permission126=Üçüncü partileri dışaaktar
-Permission141=Proje oku (benim ilişkide olmadığım Özel olanları da)
+Permission141=Proje oku (benim ilişkide olmadığım özel olanları da)
 Permission142=Proje oluştur/değiştir (benim ilişkide olmadığım Özel olanları da)
-Permission144=Proje sil (benim ilişkide olmadığım Özel olanları da)
+Permission144=Proje sil (benim ilişkide olmadığım özel olanları da)
 Permission146=Sağlayıcıları oku
 Permission147=İstatistikleri oku
 Permission151=Ödeme talimatlarını oku
@@ -611,10 +611,11 @@ Permission162=Sözleşme oluştur/değiştir
 Permission163=Bir sözleşme hizmetini etkinleştir
 Permission164=Bir sözleşme hizmetini engelle
 Permission165=Sözleşme sil
-Permission171=Gezi oluştur/değiştir
-Permission172=Gezi sil
-Permission173=Gezi sil
-Permission178=Gezi dışaaktar
+Permission171=Seyahat ve giderleri okuyun (kendi ve astlarının)
+Permission172=Gezi ve gider oluştur/değiştir
+Permission173=Gezi ve gider sil
+Permission174=Bütün gezi ve giderleri oku
+Permission178=Gezi ve gider dışaaktar
 Permission180=Tedarikçi oku
 Permission181=Tedarikçi siparişi oku
 Permission182=Tedarikçi siparişi oluştur/değiştir
@@ -1074,7 +1075,7 @@ ModuleCompanyCodeAquarium=%s tarafından oluşturulan bir muhasebe kodunu getir:
 ModuleCompanyCodePanicum=Boş bir muhasebe kodu girin.
 ModuleCompanyCodeDigitaria=Muhasebe kodu üçüncü parti koduna bağlıdır. Kod üçüncü parti kodunun ilk 5 karakterini izleyen birinci konumda "C" karakterinden oluşmaktadır.
 UseNotifications=Bildirimleri kullanın
-NotificationsDesc=E-posta bildirimleri özelliği, sessiz şekilde otomatik posta göndermenizi sağlar, bazı Dolibarr olayları için üçüncü şahıslara yapılandırılmıştır (müşteriler ya da tedarikçiler). Etkin bildirim ve hedef kişileri seçimi aynı anda bir üçüncü parti için yapılır.
+NotificationsDesc=Eposta bildirimleri özelliği bazı Dolibarr etkinlikleri ile ilgili sessizce otomatik posta göndermenizi sağlar. Bildirim hedefleri bu şekilde tanımlanır:<br>* üçüncü parti kişileri başına (müşteri ya da tedarikçi), her seferinde bir üçüncü parti.<br>*
 ModelModules=Belge şablonları
 DocumentModelOdt=OpenDocuments şablonlarından belgeler oluşturun (OpenOffice, KOffice, TextEdit .ODT veya .ODS dosyaları)
 WatermarkOnDraft=Taslak belge üzerinde filigran
@@ -1111,12 +1112,12 @@ WebCalCheckWebcalSetup=Webcal modülü kurulumu doğru olmayabilir.
 ##### Invoices #####
 BillsSetup=Faturalar modülünün kurulumu
 BillsDate=Fatura tarihi
-BillsNumberingModule=Fatura ve alacak dekontları numaralandırma modülü
+BillsNumberingModule=Fatura ve iade faturaları numaralandırma modülü
 BillsPDFModules=Fatura belgesi modelleri
-CreditNoteSetup=Alacak dekontları modülü kurulumu
-CreditNotePDFModules=Alacak dekontları belge modelleri
-CreditNote=Alacak dekontu
-CreditNotes=Alacak dekontları
+CreditNoteSetup=İade faturaları modülü kurulumu
+CreditNotePDFModules=İade faturaları belge modelleri
+CreditNote=İade faturası
+CreditNotes=İade faturaları
 ForceInvoiceDate=Fatura tarihini fatura doğrulama tarihine zorla
 DisableRepeatable=Tekrarlanabilir faturaları engelle
 SuggestedPaymentModesIfNotDefinedInInvoice=Varsayılan olarak faturada tanımlanmamışsa önerilen ödeme biçimi
@@ -1146,6 +1147,7 @@ HideTreadedOrders=İşlem görmüş ya da iptal edilmiş siprişleri listede giz
 ValidOrderAfterPropalClosed=Teklifin kapatılmasından sonra siparişi doğrulamak için geçici teklifin izlenmemesini sağlar
 FreeLegalTextOnOrders=Siparişte serbest metin
 WatermarkOnDraftOrders=Taslak siparişlerde filigran (boşsa yoktur)
+ShippableOrderIconInList=Sipariş listesine sevk edilebilir olup olmadığını belirten bir simge koyun
 ##### Clicktodial #####
 ClickToDialSetup=TıklaAra modülü kurulumu
 ClickToDialUrlDesc=Telefon resmi üzerine tıklandığında Url aranır. URL’de aranan kişinin telefon numarası ile değişecek <br><b>__PHONETO__</b> etiketini kullanabilirsiniz
@@ -1310,8 +1312,8 @@ YouMayFindPerfAdviceHere=Bu sayfada bazı denetimler veya performans ile ilgili
 NotInstalled=Yüklü değil, yani sunucu bundan dolayı yavaş değil.
 ApplicativeCache=\t\nUygulamalı önbellek
 MemcachedNotAvailable=Uygulanabilir önbellek bulunamadı. Performansı Memcached önbellek sunucusu ve bu önbellek sunucusunu kullanabilecek bir modül kurarak arttırabilirsiniz.<br>Daha fazla bilgiyi buradan <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>bulabilirsiniz. Bu tür önbellek sunucusunu çok fazla web barındırıcısının sağlamadığını unutmayın.
-MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
-MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
+MemcachedModuleAvailableButNotSetup=Uygulamalı önbellek için memcached modülü bulundu ama modülün kurulumu tamamlanmamış.
+MemcachedAvailableAndSetup=Memcached modülü etkinleştirilmiş memcached sunucusunu kullanmak içindir.
 OPCodeCache=OPCode önbelleği
 NoOPCodeCacheFound=OPCode önbelleği bulunamadı. Belki XCache den başka bir OPCode önbelleği kullanabilirsiniz veya eAccelerator (iyi), belki de OPCode önbelleğiniz yoktur (çok kötü).
 HTTPCacheStaticResources=Statik kaynaklar (css, img, javascript) için HTTP önbelleği
@@ -1332,7 +1334,7 @@ ConfirmDeleteProductLineAbility=Formlardan ürün satırı silerken onaylama
 ModifyProductDescAbility=Formlarda ürün tanımlamalarının kişiselleştirilmesi
 ViewProductDescInFormAbility=Formlarda ürün tanımlarının görselleştirilmesi (aksi durumda açılır araç ipucu olarak)
 ViewProductDescInThirdpartyLanguageAbility=Ürün açıklamalarının üçüncü partilerin dilinde gösterilmesi
-UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
+UseSearchToSelectProductTooltip=Ayrıca çok fazla sayıda ürününüz varsa (>100 000), Kurulum->Diğer den PRODUCT_DONOTSEARCH_ANYWHERE değişmezini 1 e ayarlayarak hızı arttırabilirsiniz. Sonra arama dizenin başlamasıyla sınırlı olacaktır.
 UseSearchToSelectProduct=Bir ürün seçmek için arama formu kullanın (liste kutusu yerine).
 UseEcoTaxeAbility=Eko-Vergi Desteği (WEEE)
 SetDefaultBarcodeTypeProducts=Ürünler için kullanılacak varsayılan barkod türü
@@ -1382,9 +1384,10 @@ MailingSetup=E-postalama modülü kurulumu
 MailingEMailFrom=EPostalama modülü tarafından gönderilen e-postalar için gönderici e-posta (gönderen)
 MailingEMailError=Hatalı e-postalar için iade e-postası (Hatalar-kime)
 ##### Notification #####
-NotificationSetup=Bildiri e-posta modülü kurulumu
+NotificationSetup=Eposta bildirimi modülü ayarları
 NotificationEMailFrom=Bildirimler için gönderilen e-postalar için gönderici e-posta (gönderen)
-ListOfAvailableNotifications=Mevcut bildirimlerin listesi (Bu liste etkin modüllere bağlıdır)
+ListOfAvailableNotifications=Her üçüncü parti için (ayarlar için üçüncü parti kartına git) bildirim ayarlayacağınız etkinlikler listesi veya sabit bir eposta ayarlama yoluyla (liste etkin modüllere bağlıdır) 
+FixedEmailTarget=Sabit eposta hedefi
 ##### Sendings #####
 SendingsSetup=Gönderme modülü kurulumu
 SendingsReceiptModel=Makbuz gönderme modeli
@@ -1425,7 +1428,7 @@ Menu=Menü seçimi
 MenuHandler=Menü işleyicisi
 MenuModule=Kaynak modül
 HideUnauthorizedMenu= Yetkisiz menüleri gizle (gri)
-DetailId=ID menüsü
+DetailId=Kimlik menüsü
 DetailMenuHandler=Yeni menü göstermek için menü işleyicisi
 DetailMenuModule=Eğer menü girişi bir modülden geliyorsa modül adı
 DetailType=Menü türü (üst ya da sol)
@@ -1535,6 +1538,7 @@ DeleteFiscalYear=Mali yıl sil
 ConfirmDeleteFiscalYear=Bu mali yılın silmek istediğinizden emin misiniz?
 Opened=Açık
 Closed=Kapalı
+AlwaysEditable=Her zaman düzenlenebilir
 
 Format=Biçim
 TypePaymentDesc=0:Müşteri ödeme türü, 1:Tedarikçi ödeme türü, 2:Hem müşteri hem de tedarikçi ödeme türü
diff --git a/htdocs/langs/tr_TR/agenda.lang b/htdocs/langs/tr_TR/agenda.lang
index 324560637a77c3f64abb82835f24441125a09600..93514fcc24211f78de388263a92a4e7bf66f26ac 100644
--- a/htdocs/langs/tr_TR/agenda.lang
+++ b/htdocs/langs/tr_TR/agenda.lang
@@ -1,5 +1,5 @@
 # Dolibarr language file - Source file is en_US - agenda
-IdAgenda=Kimlik etkinliği
+IdAgenda=Etkinlik kimliği
 Actions=Eylemler
 ActionsArea=Eylem alanı (Olaylar ve görevler)
 Agenda=Gündem
@@ -7,7 +7,7 @@ Agendas=Gündemler
 Calendar=Takvim
 Calendars=Takvimler
 LocalAgenda=İç takvim
-ActionsOwnedBy=Event owned by
+ActionsOwnedBy=Etkinlik sahibi
 AffectedTo=Etkilenen
 DoneBy=Yapan
 Event=Etkinlik
@@ -70,9 +70,9 @@ DateActionStart= Başlama tarihi
 DateActionEnd= Bitiş tarihi
 AgendaUrlOptions1=Süzgeç çıktısına ayrıca aşağıdaki parametreleri ekleyebilirsiniz:
 AgendaUrlOptions2=Eylem çıktılarını eylem, oluşturan, eylemden etkilenen ya da eylemi yapan kullanıcı <b>login=%s</b> sınırlayacak kullanıcı <b>%s</b>.
-AgendaUrlOptions3=Çıktıyı kullanıcı <b>%s</b> tarafından oluşturulan etkinliklerle sınırlamak için<b>logina=%s</b>.
+AgendaUrlOptions3=<b>kullanıcı=%s</b>,  bir <b>%s</b> kullanıcısına ait eylemlerin çıkışlarını sınırlamak içindir.
 AgendaUrlOptions4=Çıktıyı kullanıcı <b>%s</b> tarafından etkilenen etkinliklerle sınırlamak için<b>logint=%s</b>.
-AgendaUrlOptions5=Çıktıyı kullanıcı<b>%s</b> tarafından yapılan etkinliklerle sınırlamak için<b>logind=%s</b>.
+AgendaUrlOptionsProject=<b>proje=PROJECT_ID</b>, bu <b>PROJECT_ID</b> projesi ile ilişkilendirilmiş eylemlerin çıkışını çıkışını sınırlamak içindir.
 AgendaShowBirthdayEvents=Kişilerin doğum günlerini göster
 AgendaHideBirthdayEvents=Kişilerin doğum günlerini gizle
 Busy=Meşgul
@@ -89,5 +89,5 @@ ExtSiteUrlAgenda=.ical dosyasına erişmek için URL
 ExtSiteNoLabel=Tanımlama yok
 WorkingTimeRange=Çalışma saati aralığı
 WorkingDaysRange=Çalışma günleri aralığı
-AddEvent=Add event
-MyAvailability=My availability
+AddEvent=Etkinlik oluştur
+MyAvailability=Uygunluğum
diff --git a/htdocs/langs/tr_TR/banks.lang b/htdocs/langs/tr_TR/banks.lang
index f9fd9894a2dc95a695b221a78b220fdd969370a6..03f1d2e99b75312e3fee9c2f950f3261d3d43cbd 100644
--- a/htdocs/langs/tr_TR/banks.lang
+++ b/htdocs/langs/tr_TR/banks.lang
@@ -9,15 +9,15 @@ FinancialAccounts=Hesaplar
 BankAccount=Banka hesabı
 BankAccounts=Banka hesapları
 AccountRef=Ticari hesap ref
-AccountLabel=Ticari hesap etiketi
+AccountLabel=Ticari hesap adı
 CashAccount=Kasa hesabı
 CashAccounts=Kasa hesapları
 MainAccount=Ana hesap
 CurrentAccount=Cari hesap
 CurrentAccounts=Cari hesaplar
-SavingAccount=Tasarruf hesabı
-SavingAccounts=Tasarruf hesapları
-ErrorBankLabelAlreadyExists=Ticari hesap etiketi zaten var
+SavingAccount=Mevduat hesabı
+SavingAccounts=Mevduat hesapları
+ErrorBankLabelAlreadyExists=Ticari hesap adı zaten var
 BankBalance=Bakiye
 BankBalanceBefore=Önceki bakiye
 BankBalanceAfter=Sonraki bakiye
@@ -54,15 +54,15 @@ NewBankAccount=Yeni banka hesabı
 NewFinancialAccount=Yeni ticari hesap
 MenuNewFinancialAccount=Yeni ticari hesap
 NewCurrentAccount=Yeni cari hesap
-NewSavingAccount=Yeni tasarruf hesabı
+NewSavingAccount=Yeni mevduat hesabı
 NewCashAccount=Yeni kasa hesabı
 EditFinancialAccount=Hesap düzenle
 AccountSetup=Ticari hesap ayarları
 SearchBankMovement=Banka hareketi ara
 Debts=Borçlar
-LabelBankCashAccount=Banka veya kasa etiketi
+LabelBankCashAccount=Banka veya kasa adı
 AccountType=Hesap türü
-BankType0=Tasarruf hesabı
+BankType0=Mevduat hesabı
 BankType1=Cari ya da kredi kartı hesabı
 BankType2=Kasa hesabı
 IfBankAccount=Banka hesabıysa
@@ -131,7 +131,7 @@ ThisWillAlsoDeleteBankRecord=Bu oluşturulan banka işlemlerini de silecektir.
 BankMovements=Hareketler
 CashBudget=Nakit bütçesi
 PlannedTransactions=Planlanan işlemler
-Graph=Grafik
+Graph=Grafikler
 ExportDataset_banque_1=Banka işlemleri ve hesap özeti
 ExportDataset_banque_2=Banka cüzdanı
 TransactionOnTheOtherAccount=Diğer hesaptaki işlemler
diff --git a/htdocs/langs/tr_TR/bills.lang b/htdocs/langs/tr_TR/bills.lang
index 27493dd1327b3955e20f3c8c535927ed33698fa4..47682da9ab25d3270916c895ce762dc31a100475 100644
--- a/htdocs/langs/tr_TR/bills.lang
+++ b/htdocs/langs/tr_TR/bills.lang
@@ -24,12 +24,12 @@ InvoiceProFormaDesc=<b>Proforma fatura</b> gerçek faturanın bir görüntüsüd
 InvoiceReplacement=Fatura değiştirme
 InvoiceReplacementAsk=Fatura değiştirme yapılacak fatura
 InvoiceReplacementDesc=<b>Fatura değiştirme</b> henüz tahsilat yapılmamış bir faturanın iptal edilmesi ve tamamen değiştirilmesi için kullanılır.<br><br>Not: Yalnızca ödeme yapılmamış faturalar değiştirilebilir. Değiştirdiğiniz fatura eğer henüz kapataılmamışsa, kullanılmamak üzere otomatik olarak kapatılacaktır.
-InvoiceAvoir=Alacak dekontu
-InvoiceAvoirAsk=Fatura düzeltmek için alacak dekontu
-InvoiceAvoirDesc=<b>Alacak Dekontu</b>bir eksi fatura olup fatura tutarının gerçekte ödenen tutardan farklı olması durumunda kullanılır (çünkü müşteri yanlışlıkla fazla ödeme yapmıştır, ya da tamamını ödemeyecektir, örneğin bazı malları iade ettiğinden).
-invoiceAvoirWithLines=İlk faturadan alınan kalemlerle Alacak Dekontu oluştur
-invoiceAvoirWithPaymentRestAmount=Orijinal faturaya alınan ödeme tutarı ile Alacak Dekontu oluştur
-invoiceAvoirLineWithPaymentRestAmount=Faturaya alınan ödeme tutarında Alacak Dekontu
+InvoiceAvoir=İade faturası
+InvoiceAvoirAsk=İade faturası fatura düzeltmek için kullanılır
+InvoiceAvoirDesc=<b>İade Faturası</b>bir eksi fatura olup fatura tutarının gerçekte ödenen tutardan farklı olması durumunda kullanılır (çünkü müşteri yanlışlıkla fazla ödeme yapmıştır, ya da tamamını ödemeyecektir, örneğin bazı malları iade ettiğinden).
+invoiceAvoirWithLines=İlk faturadan alınan kalemlerle İade Faturası oluştur
+invoiceAvoirWithPaymentRestAmount=İlk faturanın ödenmemiş bakiyeli İade Faturası
+invoiceAvoirLineWithPaymentRestAmount=Ödenmemiş kalan tutar için İade Faturası
 ReplaceInvoice=%s Faturasını değiştir
 ReplacementInvoice=Fatura değiştirme
 ReplacedByInvoice=Değiştirilen fatura %s
@@ -62,7 +62,7 @@ PaidBack=Geri ödenen
 DatePayment=Ödeme tarihi
 DeletePayment=Ödeme sil
 ConfirmDeletePayment=Bu ödemeyi silmek istediğinizden emin misiniz?
-ConfirmConvertToReduc=Bu alacak dekontunu ya da nakit avans faturasını mutlak bir indirime dönüştürmek istiyor musunuz? <br>Bu tutar diğer indirimlerin arasına kaydedilecek olup bu müşteri için mevcut ya da ileride kesilecek faturada indirim olarak kullanılabilecektir.
+ConfirmConvertToReduc=Bu iade faturasını ya da nakit avans faturasını mutlak bir indirime dönüştürmek istiyor musunuz? <br>Bu tutar diğer indirimlerin arasına kaydedilecek olup bu müşteri için mevcut ya da ileride kesilecek faturada indirim olarak kullanılabilecektir.
 SupplierPayments=Tedarikçi ödemeleri
 ReceivedPayments=Alınan ödemeler
 ReceivedCustomersPayments=Müşterilerden alınan ödemeler
@@ -81,13 +81,13 @@ ValidatePayment=Ödeme doğrula
 PaymentHigherThanReminderToPay=Ödeme hatırlatmasından daha yüksek ödeme
 HelpPaymentHigherThanReminderToPay=Dikkat, bir ya da daha çok faturanın ödeme tutarı ödenecek bakiyeden yüksektir.<br>Girişinizi düzeltin, aksi durumda her fazla ödenen fatura için bir iade faturası oluşturmayı onaylayın ve düşünün.
 HelpPaymentHigherThanReminderToPaySupplier=Dikkat, bir ya da daha çok faturanın ödeme tutarı ödenecek bakiyeden yüksektir.<br>Girişinizi düzeltin, aksi durumda onaylayın.
-ClassifyPaid=‘Ödendi’ olarak sınıflandır
-ClassifyPaidPartially=‘Kısmen ödendi’ olarak sınıflandır
+ClassifyPaid=Sınıflandırma ‘Ödendi’
+ClassifyPaidPartially=Sınıflandırma ‘Kısmen ödendi’
 ClassifyCanceled=’Terkedildi’ olarak sınıflandır
 ClassifyClosed=‘Kapalı’ olarak sınıflandır
 ClassifyUnBilled=Sınıflandırma 'Faturalanmadı'
 CreateBill=Fatura oluştur
-AddBill=Fatura ya da alacak dekontu ekle
+AddBill=Fatura ya da iade faturası oluştur
 AddToDraftInvoices=Taslak fatura ekle
 DeleteBill=Fatura sil
 SearchACustomerInvoice=Müşteri faturası ara
@@ -99,13 +99,13 @@ DoPaymentBack=Geri ödeme yap
 ConvertToReduc=Gelecekteki indirime dönüştür
 EnterPaymentReceivedFromCustomer=Müşteriden alınan ödeme girin
 EnterPaymentDueToCustomer=Müşteri nedeniyle ödeme yap
-DisabledBecauseRemainderToPayIsZero=Engelli Çünkü geri kalan ödeme sıfırdır
+DisabledBecauseRemainderToPayIsZero=Ödenmemiş kalan sıfır olduğundan devre dışı
 Amount=Tutar
 PriceBase=Temel fiyat
 BillStatus=Fatura durumu
 BillStatusDraft=Taslak (doğrulanma gerektirir)
-BillStatusPaid=Ödenmiş
-BillStatusPaidBackOrConverted=Ödenmiş ya da indirime dönüştürülen
+BillStatusPaid=Ödendi
+BillStatusPaidBackOrConverted=Ödenmiş ya da indirime dönüştürülmüş
 BillStatusConverted=Ödenmiş (son fatura için hazır)
 BillStatusCanceled=Terkedilmiş
 BillStatusValidated=Doğrulanmış (ödenmesi gerekir)
@@ -156,9 +156,9 @@ ConfirmCancelBill=<b>%s</b> Faturasını iptal etmek istediğinizden emin misini
 ConfirmCancelBillQuestion=Neden bu faturayı ‘terkedilmiş’ olarak sınıflandırmak istiyorsunuz?
 ConfirmClassifyPaidPartially=<b>%s</b> Faturasının durumunu ödenmiş olarak değiştirmek istediğinizden emin misiniz?
 ConfirmClassifyPaidPartiallyQuestion=Bu fatura tamamen ödenmemiş. Bu faturayı kapatmak için nedenler nelerdir?
-ConfirmClassifyPaidPartiallyReasonAvoir=Ödeme vadesinden önce yapıldığı için kalan bakiye <b>(%s %s)</b> indirim olarak verildi. Bir iade faturası ile KDV’yi ayarladım.
-ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Ödeme vadesinden önce yapıldığı için kalan bakiye <b>(%s %s)</b> indirim olarak verildi. Bu indirimle KDV’yi kaybetmeyi kabul ettim.
-ConfirmClassifyPaidPartiallyReasonDiscountVat=Ödeme vadesinden önce yapıldığı için kalan bakiye <b>(%s %s)</b> indirim olarak verildi. Bu indirimdeki KDV’yi bir iade faturası olmadan kurtardım.
+ConfirmClassifyPaidPartiallyReasonAvoir=Kalan bakiye <b>(%s %s)</b> ödeme vadesinden önce yapıldığından dolayı verilmiş bir indirimdr. KDV bir iade faturasıyla ayarIanır.
+ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Kalan ödenmemiş tutar <b>(%s %s)</b> ödeme vadesinden önce ödendiğinden bir indirim olarak verilmiştir. Burada KDV sini kaybetmeyi kabul ediyorum.
+ConfirmClassifyPaidPartiallyReasonDiscountVat=Kalan bakiye <b>(%s %s)</b> ödeme vadesinden önce yapıldığından dolayı verilmiş bir indirimdr. KDV bir iade faturasıyla düzeltilir.
 ConfirmClassifyPaidPartiallyReasonBadCustomer=Kötü müşteri
 ConfirmClassifyPaidPartiallyReasonProductReturned=Ürünler kısmen iade edildi
 ConfirmClassifyPaidPartiallyReasonOther=Diğer bir nedenle terkedilen tutar
@@ -183,17 +183,17 @@ ShowSocialContribution=Sosyal katkı payını göster
 ShowBill=Fatura göster
 ShowInvoice=Fatura göster
 ShowInvoiceReplace=Değiştirilen faturayı göster
-ShowInvoiceAvoir=Alacak dekontu göster
+ShowInvoiceAvoir=İade faturası göster
 ShowInvoiceDeposit=Nakit avans faturası göster
 ShowPayment=Ödeme göster
 File=Dosya
 AlreadyPaid=Zaten ödenmiş
 AlreadyPaidBack=Zaten geri ödenmiş
-AlreadyPaidNoCreditNotesNoDeposits=Zaten ödenmiş (alacak dekontu ve nakit avans faturası olmadan)
+AlreadyPaidNoCreditNotesNoDeposits=Zaten ödenmiş (iade faturası ve nakit avans faturası olmadan)
 Abandoned=Terkedilen
-RemainderToPay=Kalan ödeme
-RemainderToTake=Kalan alacak
-RemainderToPayBack=Kalan geri ödeme
+RemainderToPay=Ödenmemiş kalan
+RemainderToTake=Alınacak kalan tutar
+RemainderToPayBack=Geri ödenecek kalan tutar
 Rest=Bekleyen
 AmountExpected=İstenen tutar
 ExcessReceived=Fazla alınan
@@ -225,13 +225,13 @@ NonPercuRecuperable=Kurtarılamaz
 SetConditions=Ödeme koşullarını ayarla
 SetMode=Ödeme biçimini ayarla
 Billed=Faturalanmış
-RepeatableInvoice=Ön tanımlı fatura
-RepeatableInvoices=Ön tanımlı faturalar
-Repeatable=Ön tanımlı
-Repeatables=Ön tanımlı
-ChangeIntoRepeatableInvoice=Ön tanımlıya dönüştür
-CreateRepeatableInvoice=Ön tanımlı fatura oluştur
-CreateFromRepeatableInvoice=Ön tanımlı faturadan oluştur
+RepeatableInvoice=Fatura şablonu
+RepeatableInvoices=Fatura şablonları
+Repeatable=Şablon
+Repeatables=Şablonlar
+ChangeIntoRepeatableInvoice=Fatura şablonuna dönüştür
+CreateRepeatableInvoice=Fatura şablonu oluştur
+CreateFromRepeatableInvoice=Fatura şablonundan oluştur
 CustomersInvoicesAndInvoiceLines=Müşteri faturaları ve fatura satırları
 CustomersInvoicesAndPayments=Müşteri faturaları ve ödemeleri
 ExportDataset_invoice_1=Müşteri faturaları listesi ve fatura satırları
@@ -248,13 +248,13 @@ AddRelativeDiscount=Göreceli indirim oluştur
 EditRelativeDiscount=Göreceli indirim düzenle
 AddGlobalDiscount=Mutlak indirim ekle
 EditGlobalDiscounts=Mutlak indirim düzenle
-AddCreditNote=Alacak Dekontu oluştur
+AddCreditNote=İade faturası oluştur
 ShowDiscount=İndirim göster
 ShowReduc=Kesinti göster
 RelativeDiscount=Göreceli indirim
 GlobalDiscount=Genel indirim
-CreditNote=Alacak dekontu
-CreditNotes=Alacak dekontları
+CreditNote=İade faturası
+CreditNotes=İade faturaları
 Deposit=Nakit avans
 Deposits=Nakit avanslar
 DiscountFromCreditNote=İade faturası %s ten indirim
@@ -379,7 +379,7 @@ ChequesReceipts=Çek makbuzları
 ChequesArea=Çek hesabı alanı
 ChequeDeposits=Çek hesapları
 Cheques=Çekler
-CreditNoteConvertedIntoDiscount=Bu alacak dekontu ya da nakit avans faturası %s durumuna dönüştürüldü
+CreditNoteConvertedIntoDiscount=Bu iade faturası ya da nakit avans faturası %s durumuna dönüştürüldü
 UsBillingContactAsIncoiveRecipientIfExist=Fatura alıcısı olarak üçüncü parti adresi yerine müşteri faturası kişi adresini kullan
 ShowUnpaidAll=Tüm ödenmemiş faturaları göster
 ShowUnpaidLateOnly=Ödenmemiş bütün faturaları göster
@@ -392,7 +392,7 @@ CantRemovePaymentWithOneInvoicePaid=En az bir fatura ödenmiş olarak sınıflan
 ExpectedToPay=Beklenen ödeme
 PayedByThisPayment=Bu ödeme ile ödenmiş
 ClosePaidInvoicesAutomatically=Tamamı ödenmiş bütün standart ve değiştirilmiş faturaları "Ödendi" olarak sınıflandır.
-ClosePaidCreditNotesAutomatically=Tamamı ödenmiş alacak dekontlarını "Ödendi" olarak sınıflandır.
+ClosePaidCreditNotesAutomatically=Tamamı ödenmiş iade faturalarını "Ödendi" olarak sınıflandır.
 AllCompletelyPayedInvoiceWillBeClosed=Bakiyesi kalmayan bütün faturalar otomatikmen kapatılarak "Ödendi" durumuna getirilecektir.
 ToMakePayment=Öde
 ToMakePaymentBack=Geri öde
@@ -401,8 +401,8 @@ NoteListOfYourUnpaidInvoices=Not: Bu liste, satış temsilcisi olarak bağlı ol
 RevenueStamp=Bandrol
 YouMustCreateInvoiceFromThird=Bu seçenek, yalnızca fatura oluştururken, üçüncü parti *müşteri* sekmesinde belirir
 PDFCrabeDescription=Fatura PDF şablonu Crabe. Tam fatura şablonu  (Önerilen şablon)
-TerreNumRefModelDesc1=Standart faturalar için numarayı  %syymm-nnnn biçiminde ve alacak dekontları için %syymm-nnnn biçiminde göster, yy yıl, mm ay ve nnnn boşluksuz ve 0 olmayan bir dizidir.
-MarsNumRefModelDesc1=Belge numarasını, standart faturalar için %syymm-nnnn, değiştirilen faturalar için %syymm-nnnn, alacak dekontları için %syymm-nnnn ve nakit avans faturaları için %syymm-nnnn biçiminde verir. Burada yy yıl, mm ay ve nnnn boşluksuz ve 0 olmayan bir dizidir
+TerreNumRefModelDesc1=Standart faturalar için numarayı  %syymm-nnnn biçiminde ve iade faturaları için %syymm-nnnn biçiminde göster, yy yıl, mm ay ve nnnn boşluksuz ve 0 olmayan bir dizidir.
+MarsNumRefModelDesc1=Belge numarasını, standart faturalar için %syymm-nnnn, değiştirilen faturalar için %syymm-nnnn, iade faturaları için %syymm-nnnn ve nakit avans faturaları için %syymm-nnnn biçiminde verir. Burada yy yıl, mm ay ve nnnn boşluksuz ve 0 olmayan bir dizidir
 TerreNumRefModelError=$syymm ile başlayan bir fatura hali hazırda vardır ve bu sıra dizisi için uygun değildir. Bu modülü etkinleştirmek için onu kaldırın ya da adını değiştirin.
 ##### Types de contacts #####
 TypeContact_facture_internal_SALESREPFOLL=Müşteri fatura izleme temsilci
diff --git a/htdocs/langs/tr_TR/boxes.lang b/htdocs/langs/tr_TR/boxes.lang
index 7a402a41cb9134d25b09ae7d94d878950df219b4..5d88bf29ebc7b61276dd96606e6585c46e765d5a 100644
--- a/htdocs/langs/tr_TR/boxes.lang
+++ b/htdocs/langs/tr_TR/boxes.lang
@@ -8,10 +8,11 @@ BoxLastCustomerBills=Son müşteri faturaları
 BoxOldestUnpaidCustomerBills=En eski ödenmemiş müşteri faturaları
 BoxOldestUnpaidSupplierBills=En eski ödenmemiş tedarikçi faturaları
 BoxLastProposals=Son teklifler
-BoxLastProspects=Son adaylar
+BoxLastProspects=Son değiştirilen adaylar
 BoxLastCustomers=Son değiştirilen müşteriler
 BoxLastSuppliers=Son değiştirilen tedarikçiler
 BoxLastCustomerOrders=Son müşteri siparişleri
+BoxLastValidatedCustomerOrders=Doğrulanan son müşteri siparişleri
 BoxLastBooks=Son kayıtlar
 BoxLastActions=Son eylemler
 BoxLastContracts=Son sözleşmeler
@@ -27,19 +28,22 @@ BoxTitleNbOfCustomers=Müşteri sayısı
 BoxTitleLastRssInfos=%s ten en son %s haberler
 BoxTitleLastProducts=Son değiştirilen % s ürün/hizmet
 BoxTitleProductsAlertStock=Stok uyarısındaki ürünler
-BoxTitleLastCustomerOrders=Son değiştirilen %s müşteri siparişi
+BoxTitleLastCustomerOrders=Son %s müşteri siparişi
+BoxTitleLastModifiedCustomerOrders=Değiştirilen son %s müşteri faturası
 BoxTitleLastSuppliers=Son kaydedilen %s tedarikçi
 BoxTitleLastCustomers=Son kaydedilen %s müşteri
 BoxTitleLastModifiedSuppliers=Son değiştirilen %s tedarikçi
 BoxTitleLastModifiedCustomers=Son değiştirilen %s müşteri
-BoxTitleLastCustomersOrProspects=Son değiştirilen %s müşteri veya aday
-BoxTitleLastPropals=Son kaydedilen %s teklif
+BoxTitleLastCustomersOrProspects=Son %s müşteri veya aday
+BoxTitleLastPropals=Son %s teklif
+BoxTitleLastModifiedPropals=Değiştirilen son %s teklif
 BoxTitleLastCustomerBills=Son %s müşteri faturası
+BoxTitleLastModifiedCustomerBills=Değiştirilen son %s müşteri faturası
 BoxTitleLastSupplierBills=Son kaydedilen %s tedarikçi faturası
-BoxTitleLastProspects=Son kaydedilen %s aday
+BoxTitleLastModifiedSupplierBills=Değiştirilen son %s tedarikçi faturası
 BoxTitleLastModifiedProspects=Son değiştirilen %s aday
 BoxTitleLastProductsInContract=Bir sözleşmedeki son  %s ürün/hizmet
-BoxTitleLastModifiedMembers=Son değiştirilen %s üye
+BoxTitleLastModifiedMembers=Son %s üye
 BoxTitleLastFicheInter=Değiştirilen son %s müdahale
 BoxTitleOldestUnpaidCustomerBills=En eski ödenmemiş %s müşteri faturası
 BoxTitleOldestUnpaidSupplierBills=En eski ödenmemiş %s tedarikçi faturası
@@ -50,7 +54,7 @@ BoxTitleTotalUnpaidSuppliersBills=Ödenmemiş tedarikçi faturaları
 BoxTitleLastModifiedContacts=Son değiştirilen %s kişi/adres
 BoxMyLastBookmarks=En son %s yerimim
 BoxOldestExpiredServices=Süresi dolmuş en eski etkin hizmetler
-BoxLastExpiredServices=Etkinlik hizmet süresi dolmuş enson %s eski kişi
+BoxLastExpiredServices=Etkinlik hizmet süresi dolmuş son %s en eski kişi
 BoxTitleLastActionsToDo=Son yapılan %s eylem
 BoxTitleLastContracts=Son %s sözleşme
 BoxTitleLastModifiedDonations=Son değiştirilen %s bağış
@@ -77,8 +81,9 @@ NoRecordedContracts=Kayıtlı sözleşme yok
 NoRecordedInterventions=Kayıtlı müdahale yok
 BoxLatestSupplierOrders=Son tedarikçi siparişleri
 BoxTitleLatestSupplierOrders=Son %s tedarikçi siparişi
+BoxTitleLatestModifiedSupplierOrders=Değiştirilen son %s tedarikçi siparişi
 NoSupplierOrder=Kayıtlı tedarikçi siparişi yok
-BoxCustomersInvoicesPerMonth=Aylık müşteri siparişleri
+BoxCustomersInvoicesPerMonth=Aylık müşteri faturaları
 BoxSuppliersInvoicesPerMonth=Aylık tedarikçi faturaları
 BoxCustomersOrdersPerMonth=Aylık müşteri siparişleri
 BoxSuppliersOrdersPerMonth=Aylık tedarikçi siparişleri
diff --git a/htdocs/langs/tr_TR/categories.lang b/htdocs/langs/tr_TR/categories.lang
index d005baae3abcea6eebd098d46298d73eeaa34436..1a4a2cce4e5c4000d6f38117ff9c15a7747a5faf 100644
--- a/htdocs/langs/tr_TR/categories.lang
+++ b/htdocs/langs/tr_TR/categories.lang
@@ -93,7 +93,7 @@ InternalCategory=İç kategori
 CategoryContents=Kategori içeriği
 CategId=Kategori kimliği
 CatSupList=Tedarikçi kategorileri listesi
-CatCusList=Müşteri/aday kategorileri listesi
+CatCusList=Müşteri/beklenti kategorileri listesi
 CatProdList=Ürün kategorileri Listesi
 CatMemberList=Üye kategorileri Listesi
 CatContactList=Kişi kategorileri ve kişi listesi
@@ -111,4 +111,4 @@ ExtraFieldsCategories=Tamamlayıcı öznitelikler
 CategoriesSetup=Kategori ayarları
 CategorieRecursiv=Ana kategoriyle otomatik bağlantılı
 CategorieRecursivHelp=Etkinse, ürün bir alt kategoriye eklenirken aynı zamanda ana kategoriye de eklenecektir
-AddProductServiceIntoCategory=Add the following product/service
+AddProductServiceIntoCategory=Aşağıdaki ürünü/hizmeti ekle
diff --git a/htdocs/langs/tr_TR/commercial.lang b/htdocs/langs/tr_TR/commercial.lang
index d17d38c2055eb7e559ada039af11aef8be7372f0..dc040a6d77cf298bce3cfd688fc329bb5957adc7 100644
--- a/htdocs/langs/tr_TR/commercial.lang
+++ b/htdocs/langs/tr_TR/commercial.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - commercial
-Commercial=Ticari
-CommercialArea=Ticari alan
-CommercialCard=Ticari kart
+Commercial=Ticaret
+CommercialArea=Ticaret alanı
+CommercialCard=Ticaret kartı
 CustomerArea=Müşteriler alanı
 Customer=Müşteri
 Customers=Müşteriler
@@ -9,9 +9,9 @@ Prospect=Aday
 Prospects=Adaylar
 DeleteAction=Bir etkinlik/görev sil
 NewAction=Yeni etkinlik/görev
-AddAction=Etkinlik/görev ekle
-AddAnAction=Bir etkinlik/görev ekle
-AddActionRendezVous=Bir randevu etkinliği ekle
+AddAction=Etkinlik/görev oluştur
+AddAnAction=Bir etkinlik/görev oluştur
+AddActionRendezVous=Randevu etkinliği oluştur
 Rendez-Vous=Rendevu
 ConfirmDeleteAction=Bu etkinliği/görevi silmek istediğinizden emin misiniz?
 CardAction=Etkinlik kartı
@@ -37,7 +37,7 @@ ListOfProspects=Aday listesi
 ListOfCustomers=Müşteri listesi
 LastDoneTasks=Tamamlanan son %s görev
 LastRecordedTasks=Son kaydedilen görevler
-LastActionsToDo=Tamamlanan son %s en eski işlem
+LastActionsToDo=Tamamlanmamış son %s en eski işlem
 DoneAndToDoActionsFor=%s için tamamlanan ve yapılacak etkinlikler
 DoneAndToDoActions=Tamamlanan ve yapılacak görevler
 DoneActions=Tamamlanan etkinlikler
@@ -93,4 +93,4 @@ NoData=Veri yok
 StatusProsp=Aday durumu
 DraftPropals=Taslak teklifler
 SearchPropal=Bir teklif ara
-CommercialDashboard=Ticari özet
+CommercialDashboard=Ticaret özeti
diff --git a/htdocs/langs/tr_TR/companies.lang b/htdocs/langs/tr_TR/companies.lang
index 122d6dae41b938713c9f3716bd9a2b1dd312d0e7..7fffe687d627f0f0d3e80156d605213cd71b2f0e 100644
--- a/htdocs/langs/tr_TR/companies.lang
+++ b/htdocs/langs/tr_TR/companies.lang
@@ -76,7 +76,7 @@ PhoneMobile=Mobil
 No_Email=Toplu e-posta gönderme
 Fax=Faks
 Zip=Posta Kodu
-Town=ilçesi
+Town=İlçesi
 Web=Web
 Poste= Durumu
 DefaultLang=Varsayılan dili
@@ -140,7 +140,7 @@ ProfId4BR=CPF
 ProfId1CH=--
 ProfId2CH=--
 ProfId3CH=Prof No 1 (Federal no)
-ProfId4CH=Prof No 2 (Ticari kayıt numarası)
+ProfId4CH=Prof No 2 (Ticaret Kayıt numarası)
 ProfId5CH=-
 ProfId6CH=-
 ProfId1CL=Prof Id 1 (RUT)
@@ -211,7 +211,7 @@ ProfId5NL=-
 ProfId6NL=-
 ProfId1PT=Prof No 1 (NIPC)
 ProfId2PT=Prof No 2 (Sosyal güvenlik numarası)
-ProfId3PT=Prof No 3 (Ticari kayıt numarası)
+ProfId3PT=Prof No 3 (Ticaret Kayıt numarası)
 ProfId4PT=Prof No 4 (Conservatory)
 ProfId5PT=-
 ProfId6PT=-
@@ -250,7 +250,7 @@ CustomerAbsoluteDiscountShort=Mutlak indirim
 CompanyHasRelativeDiscount=Bu müşterinin varsayılan bir <b>%s%%</b> indirimi var
 CompanyHasNoRelativeDiscount=Bu müşterinin varsayılan hiçbir göreceli indirimi yok
 CompanyHasAbsoluteDiscount=Bu müşterinin <b>%s</b> %s için halen indirim alacağı ya da birikimi var
-CompanyHasCreditNote=Bu müşterinin hala <b>%s</b> %s için alacak dekontu var
+CompanyHasCreditNote=Bu müşterinin hala <b>%s</b> %s için iade faturaları var
 CompanyHasNoAbsoluteDiscount=Bu müşterinin hiçbir indirim alacağı yoktur
 CustomerAbsoluteDiscountAllUsers=Mutlak indirimler (tüm kullanıcılar tarafından verilen)
 CustomerAbsoluteDiscountMy=Mutlak indirimler (kendiniz tarafından verilen)
@@ -259,8 +259,8 @@ AvailableGlobalDiscounts=Varolan mutlak indirimler
 DiscountNone=Hiçbiri
 Supplier=Tedarikçi
 CompanyList=Firmaların listesi
-AddContact=Kişi ekle
-AddContactAddress=Kişi/adres ekle
+AddContact=Kişi oluştur
+AddContactAddress=Kişi/adres oluştur
 EditContact=Kişi düzenle
 EditContactAddress=Kişi/adres düzenle
 Contact=Kişi
@@ -268,8 +268,8 @@ ContactsAddresses=Kişiler/adresler
 NoContactDefinedForThirdParty=Bu üçüncü parti için tanımlı kişi yok
 NoContactDefined=Bu üçüncü parti için kişi tanımlanmamış
 DefaultContact=Varsayılan kişi
-AddCompany=Firma ekle
-AddThirdParty=Üçüncü parti ekle
+AddCompany=Firma oluştur
+AddThirdParty=Üçüncü parti oluştur
 DeleteACompany=Firma sil
 PersonalInformations=Kişisel bilgiler
 AccountancyCode=Muhasebe kodu
@@ -288,7 +288,7 @@ ProspectToContact=İletişime geçilecek aday
 CompanyDeleted="%s" Firması veritabanından silindi.
 ListOfContacts=Kişi/adres listesi
 ListOfContactsAddresses=Kişiler/adresler listesi
-ListOfProspectsContacts=Aday yetkilileri listesi
+ListOfProspectsContacts=Aday ilgilileri listesi
 ListOfCustomersContacts=Müşteri yetkilileri listesi
 ListOfSuppliersContacts=Tedarikçi yetkilileri listesi
 ListOfCompanies=Firmalar listesi
@@ -379,8 +379,8 @@ DeliveryAddressLabel=Teslimat adresi etiketi
 DeleteDeliveryAddress=Bir teslimat adresi sil
 ConfirmDeleteDeliveryAddress=Bu teslimat adresini silmek istediğinizden emin misiniz?
 NewDeliveryAddress=Yeni teslimat adresi
-AddDeliveryAddress=Adres ekle
-AddAddress=Adres ekle
+AddDeliveryAddress=Adres oluştur
+AddAddress=Adres oluştur
 NoOtherDeliveryAddress=Alternatif teslimat adresi tanımlanmamış
 SupplierCategory=Tedarikçi kategorisi
 JuridicalStatus200=Bağımsız
@@ -397,7 +397,7 @@ YouMustCreateContactFirst=Eposta bildirimleri ekleyebilmek için üçüncü part
 ListSuppliersShort=Tedarikçi listesi
 ListProspectsShort=Aday Listesi
 ListCustomersShort=Müşteri listesi
-ThirdPartiesArea=Third parties and contact area
+ThirdPartiesArea=Üçüncü partiler kişi alanı
 LastModifiedThirdParties=Değiştirilen son %s üçüncü parti
 UniqueThirdParties=Toplam eşsiz üçüncü parti
 InActivity=Açık
@@ -410,5 +410,5 @@ OutstandingBillReached=En yüksek ödenmemiş fatura tutarına ulaşıldı
 MonkeyNumRefModelDesc=Sayı biçimini müşteri için %syymm-nnn, tedarikçi için %syymm-nnn gösterir, yy yıl, mm ay ve nnnn ise 0 olmayan bir dizidir
 LeopardNumRefModelDesc=Müşteri/tedarikçi kodu serbesttir. Bu kod herhangi bir zamanda değiştirilebilir.
 ManagingDirectors=Yönetici(lerin) adı (CEO, müdür, başkan...)
-SearchThirdparty=Search thirdparty
-SearchContact=Search contact
+SearchThirdparty=Üçüncü parti ara
+SearchContact=Kişi ara
diff --git a/htdocs/langs/tr_TR/compta.lang b/htdocs/langs/tr_TR/compta.lang
index 73b7714bd7d946c8bdc9a4ad34cfa8598f6465fd..7101f169e35f12ec8df0a2554a080315d1dac875 100644
--- a/htdocs/langs/tr_TR/compta.lang
+++ b/htdocs/langs/tr_TR/compta.lang
@@ -42,15 +42,15 @@ VATReceived=KDV alınan
 VATToCollect=KDV satınalımlar
 VATSummary=KDV bakiyesi
 LT2SummaryES=IRPF bakiyesi
-LT1SummaryES=RE Balance
+LT1SummaryES=RE Bakiye
 VATPaid=KDV ödenmiş
 SalaryPaid=Ödenen ücret
 LT2PaidES=IRPF ödenmiş
-LT1PaidES=RE Paid
+LT1PaidES=RE Ödenen
 LT2CustomerES=IRPF satışlar
 LT2SupplierES=IRPF satınalımlar
-LT1CustomerES=RE sales
-LT1SupplierES=RE purchases
+LT1CustomerES=RE satışlar
+LT1SupplierES=RE satınalmalar
 VATCollected=KDV alınan
 ToPay=Ödenecek
 ToGet=Geri alınacak
@@ -83,11 +83,11 @@ DateStartPeriod=Başlangıç dönemi tarihi
 DateEndPeriod=Bitiş dönemi tarihi
 NewVATPayment=Yeni KDV ödemesi
 newLT2PaymentES=Yeni IRPF ödemesi
-newLT1PaymentES=New RE payment
+newLT1PaymentES=Yeni RE ödemesi
 LT2PaymentES=IRPF Ödemesi
 LT2PaymentsES=IRPF Ödemeleri
-LT1PaymentES=RE Payment
-LT1PaymentsES=RE Payments
+LT1PaymentES=RE Ödeme
+LT1PaymentsES=RE Ödemesi
 VATPayment=KDV Ödemesi
 VATPayments=KDV Ödemeleri
 SocialContributionsPayments=Sosyal katkı payı ödemeleri
@@ -121,14 +121,14 @@ ConfirmDeleteSocialContribution=Bu sosyal katkı payını silmek istediğinizden
 ExportDataset_tax_1=Sosyal katkı payları ve ödemeleri
 CalcModeVATDebt=Mod <b>%sKDV, taahhüt hesabı%s için</b>.
 CalcModeVATEngagement=Mod <b>%sKDV, gelirler-giderler%s için</b>.
-CalcModeDebt=Mod <b>%sAlacaklar-Borçlar, taahhüt hesabı%s için</b>.
-CalcModeEngagement=Mod <b>%sAlacaklar-Borçlar, kasa hesabı%s için</b>.
+CalcModeDebt=Mod <b>%sAlacaklar-Borçlar%s</b>, <b>Taahhüt hesabı içindir</b>.
+CalcModeEngagement=Mod <b>%sAlacaklar-Borçlar%s</b>, <b>kasa hesabı içindir</b>.
 CalcModeLT1= Müşteri faturaları için mod <b>%sRE tedrikçi faturaları için mod %s</b>
-CalcModeLT1Debt=Mode <b>%sRE on customer invoices%s</b>
-CalcModeLT1Rec= Mode <b>%sRE on suppliers invoices%s</b>
-CalcModeLT2= Mode <b>%sIRPF on customer invoices - suppliers invoices%s</b>
-CalcModeLT2Debt=Mode <b>%sIRPF on customer invoices%s</b>
-CalcModeLT2Rec= Mode <b>%sIRPF on suppliers invoices%s</b>
+CalcModeLT1Debt=Biçim durumu<b>%sRE, bu müşteri faturası için%s</b>
+CalcModeLT1Rec= Biçim durumu<b>%sRE, bu tedarikçi faturası için%s</b>
+CalcModeLT2= Biçim durumu<b>%sIRPF, bu müşteri faturası - tedarikçi faturası için%s</b>
+CalcModeLT2Debt=Biçim durumu<b>%sIRPF, bu müşteri faturası için%s</b>
+CalcModeLT2Rec= Biçim durumu<b>%sIRPF, bu tedarikçi faturası için%s</b>
 AnnualSummaryDueDebtMode=Gelir ve gider bilançosu, yıllık özet
 AnnualSummaryInputOutputMode=Gelir ve gider bilançosu, yıllık özet
 AnnualByCompaniesDueDebtMode=Gelir ve gider bilançosu, üçüncü şahıslara göre ayrıntılı, <b>%sAlacaklar-Borçlar%s</b> söz konusu <b>Taahhüt hesabı</b> modu.
@@ -143,15 +143,15 @@ RulesCAIn=- Müşterilerden alınan tüm geçerli fatura ödemelerini içerir.<b
 DepositsAreNotIncluded=- Teminat faturalarını içermez
 DepositsAreIncluded=- Teminat faturalarını içerir
 LT2ReportByCustomersInInputOutputModeES=Üçüncü parti IRPF Raporu
-LT1ReportByCustomersInInputOutputModeES=Report by third party RE
+LT1ReportByCustomersInInputOutputModeES=RE Üçüncü partiye göre rapor
 VATReportByCustomersInInputOutputMode=Müşteriye göre alınan ve ödenen KDV raporu
 VATReportByCustomersInDueDebtMode=Müşteriye göre alınan ve ödenen KDV raporu
 VATReportByQuartersInInputOutputMode=Orana göre alınan ve ödenen KDV raporu
-LT1ReportByQuartersInInputOutputMode=Report by RE rate
-LT2ReportByQuartersInInputOutputMode=Report by IRPF rate
+LT1ReportByQuartersInInputOutputMode=RE orana göre rapor
+LT2ReportByQuartersInInputOutputMode=IRPF orana göre rapor
 VATReportByQuartersInDueDebtMode=Orana göre alınan ve ödenen KDV raporu
-LT1ReportByQuartersInDueDebtMode=Report by RE rate
-LT2ReportByQuartersInDueDebtMode=Report by IRPF rate
+LT1ReportByQuartersInDueDebtMode=RE Orana göre rapor
+LT2ReportByQuartersInDueDebtMode=IRPF Orana göre rapor
 SeeVATReportInInputOutputMode=Standart bir hesaplama için <b>%sKDV kapsamı%s</b> raporuna bak
 SeeVATReportInDueDebtMode=Akış seçenekli bir hesaplama için <b>%sKDV akışı%s</b> raporuna bak
 RulesVATInServices=- Hizmetler için, rapor ödeme tarihine dayalı olarak gerçekte alınan ya da verilen KDV düzenlemelerini içerir.
@@ -187,7 +187,7 @@ AccountancyDashboard=Muhasebe özeti
 ByProductsAndServices=Ürün ve hizmete göre
 RefExt=Dış ref
 ToCreateAPredefinedInvoice=Ön tanımlı bir fatura oluşturmak için, standart bir fatura oluşturun, sonra onu doğrulamadan "Ön tanımlı faturaya dönüştür" düğmesine tıklayın.
-LinkedOrder=Link to order
+LinkedOrder=Siparişe bağlantıla
 ReCalculate=Yeniden hesapla
 Mode1=Yöntem 1
 Mode2=Yöntem 2
@@ -196,14 +196,14 @@ CalculationRuleDescSupplier=tedarikçiye göre, aynı hesaplama kuralını kulla
 TurnoverPerProductInCommitmentAccountingNotRelevant=Ürüne göre ciro raporu, <b>nakit muhasebesi</b>modu için uygun değildir. Bu rapor yalnızca, <b>tahakkuk muhasebesi</b> modu için uygundur (muhasebe modülü ayarlarına bakın).
 CalculationMode=Hesaplama modu
 AccountancyJournal=Muhasebe kodu günlüğü
-ACCOUNTING_PRODUCT_BUY_ACCOUNT=Default accountancy code to buy products
-ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Default accountancy code to sell products
-ACCOUNTING_SERVICE_BUY_ACCOUNT=Default accountancy code to buy services
-ACCOUNTING_SERVICE_SOLD_ACCOUNT=Default accountancy code to sell services
-ACCOUNTING_VAT_ACCOUNT=Default accountancy code for collecting VAT
-ACCOUNTING_VAT_BUY_ACCOUNT=Default accountancy code for paying VAT
-ACCOUNTING_ACCOUNT_CUSTOMER=Accountancy code by default for customer thirdparties
-ACCOUNTING_ACCOUNT_SUPPLIER=Accountancy code by default for supplier thirdparties
-CloneTax=Clone a social contribution
-ConfirmCloneTax=Confirm the clone of a social contribution
-CloneTaxForNextMonth=Clone it for next month
+ACCOUNTING_PRODUCT_BUY_ACCOUNT=Ürün alımı için varsayılan muhasebe kodu
+ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Ürün satışı için varsayılan muhasebe kodu
+ACCOUNTING_SERVICE_BUY_ACCOUNT=Hizmet alımı için varsayılan muhasebe kodu
+ACCOUNTING_SERVICE_SOLD_ACCOUNT=Hizmet satışı için varsayılan muhasebe kodu
+ACCOUNTING_VAT_ACCOUNT=Alınan KDV için varsayılan muhasebe kodu
+ACCOUNTING_VAT_BUY_ACCOUNT=Ödenen KDV için varsayılan muhasebe kodu
+ACCOUNTING_ACCOUNT_CUSTOMER=Müşteri üçüncü partiler için varsayılan muhasebe kodu
+ACCOUNTING_ACCOUNT_SUPPLIER=Tedarikçi üçüncü partiler için varsayılan muhasebe kodu
+CloneTax=Bir sosyal katkı payı kopyala
+ConfirmCloneTax=Bir sosyal katkı payı kopyalanmasını onayla
+CloneTaxForNextMonth=Sonraki aya kopyala
diff --git a/htdocs/langs/tr_TR/contracts.lang b/htdocs/langs/tr_TR/contracts.lang
index 068824b8b544c8499819ec62b8742627e0871e55..fcc10813061918d796679eeadd43860ad539aff6 100644
--- a/htdocs/langs/tr_TR/contracts.lang
+++ b/htdocs/langs/tr_TR/contracts.lang
@@ -27,7 +27,7 @@ MenuRunningServices=Yürürlükte olan hizmetler
 MenuExpiredServices=Süresi dolmuş hizmetler
 MenuClosedServices=Kapalı hizmetler
 NewContract=Yeni sözleşme
-AddContract=Sözleşme ekle
+AddContract=Sözleşme oluştur
 SearchAContract=Bir sözleşme ara
 DeleteAContract=Bir sözleşme sil
 CloseAContract=Bir sözleşme kapat
diff --git a/htdocs/langs/tr_TR/cron.lang b/htdocs/langs/tr_TR/cron.lang
index 34400a5094a28bb337cfd58513e9ec7995f7e2d8..0a6fe0bcc538c34519e7944a496db25323cd2c0f 100644
--- a/htdocs/langs/tr_TR/cron.lang
+++ b/htdocs/langs/tr_TR/cron.lang
@@ -1,10 +1,8 @@
 # Dolibarr language file - Source file is en_US - cron
-#
 # About page
 About = Hakkında
 CronAbout = Cron hakkında
 CronAboutPage = Cron hakkında sayfası
-
 # Right
 Permission23101 = Planlı görev oku
 Permission23102 = Planlı görev oluştur/güncelle
@@ -70,7 +68,7 @@ CronStatusActiveBtn=Etkin
 CronStatusInactiveBtn=Engelle
 CronTaskInactive=Bu iş devre dışı
 CronDtLastResult=Son sonuç tarihi
-CronId=Id
+CronId=Kimlik
 CronClassFile=Sınıflar (dosyaadı.sınıf.php)
 CronModuleHelp=Dolibarr modül dizini adı (aynı zamanda dış Dolibarr modülü ile de çalışır). <BR> Örneğin; Dolibarr Ürün nesnesi alım yöntemi /htdocs/<u>product</u>/class/product.class.php, modül değeri <i>product</i>
 CronClassFileHelp=Yüklenecek dosya adı. <BR> Örneğin; Dolibarr Ürün nesnesi alım yöntemi /htdocs/product/class/<u>product.class.php</u>, sınıf dosya adı değeri <i>product.class.php</i>
diff --git a/htdocs/langs/tr_TR/dict.lang b/htdocs/langs/tr_TR/dict.lang
index 5ed9a0a2d67ff4d674552c7c5d3e2ff5e4730d58..f88670ba0b98e4b80b4f454ab0f0f1eb82156d56 100644
--- a/htdocs/langs/tr_TR/dict.lang
+++ b/htdocs/langs/tr_TR/dict.lang
@@ -318,7 +318,7 @@ PaperFormatEUA6=Biçim A6
 PaperFormatUSLETTER=Mektup Biçimi US
 PaperFormatUSLEGAL=Yasal Biçim US
 PaperFormatUSEXECUTIVE=İş Biçimi US
-PaperFormatUSLEDGER=Defter/Tablet
+PaperFormatUSLEDGER=Defter/Tablet Biçimi
 PaperFormatCAP1=Biçim P1 Kanada
 PaperFormatCAP2=Biçim P2 Kanada
 PaperFormatCAP3=Biçim P3 Kanada
diff --git a/htdocs/langs/tr_TR/donations.lang b/htdocs/langs/tr_TR/donations.lang
index 4af09da18a33a18130db6171136a3a9eb4b46d62..0740b8dcd07f73d475bc4c3b6e1742f260ceb934 100644
--- a/htdocs/langs/tr_TR/donations.lang
+++ b/htdocs/langs/tr_TR/donations.lang
@@ -4,7 +4,7 @@ Donations=Bağışlar
 DonationRef=Bağış ref.
 Donor=Bağışçı
 Donors=Bağışçılar
-AddDonation=Bir bağış ekle
+AddDonation=Bir bağış oluştur
 NewDonation=Yeni bağış
 ShowDonation=Bağış göster
 DonationPromise=Hibe sözü
@@ -30,4 +30,4 @@ SearchADonation=Bağış ara
 DonationRecipient=Bağış alıcısı
 ThankYou=Teşekkürler
 IConfirmDonationReception=Alıcı, bağış olarak aşağıdaki tutarı aldığını belirtir
-MinimumAmount=Minimum amount is  %s
+MinimumAmount=Enaz miktar %s
diff --git a/htdocs/langs/tr_TR/errors.lang b/htdocs/langs/tr_TR/errors.lang
index 871e366a1b041771b93d7a2e7e32332febe7c917..0111fb8633ec4f17f9874a9a750e3e8441e07cda 100644
--- a/htdocs/langs/tr_TR/errors.lang
+++ b/htdocs/langs/tr_TR/errors.lang
@@ -37,7 +37,7 @@ ErrorSupplierCodeRequired=Tedarikçi kodu gereklidir
 ErrorSupplierCodeAlreadyUsed=Tedarikçi kodu zaten kullanılmaktadır
 ErrorBadParameters=Hatalı parametreler
 ErrorBadValueForParameter=Hatalı '%s' parametresi için yanlış '%s' değeri
-ErrorBadImageFormat=Görüntü dosyası desteklenen bir biçimde değil.
+ErrorBadImageFormat=Resim dosyası desteklenen biçimde değil (PHP niz bu biçimdeki resimlerin dönüştürülme işlevini desteklemez)
 ErrorBadDateFormat=%s değeri yanlış tarih biçiminde
 ErrorWrongDate=Tarih doğru değil!
 ErrorFailedToWriteInDir=%s dizinine yazılamadı
@@ -114,6 +114,7 @@ ErrorLoginDoesNotExists=<b>%s</b> girişli kullanıcı bulunamadı.
 ErrorLoginHasNoEmail=Bu kullanıcının e-posta adresi yoktur. İşlem iptal edildi.
 ErrorBadValueForCode=Güvenlik kodu için hatalı değer. Yeni değer ile tekrar deneyin...
 ErrorBothFieldCantBeNegative=%s ve %s alanlarının ikisi birden eksi olamaz
+ErrorQtyForCustomerInvoiceCantBeNegative=Müşteri faturasındaki kalem miktarı eksi olamaz
 ErrorWebServerUserHasNotPermission=Web sunucusunu çalıştırmak için kullanılan <b>%s</b> kullanıcı hesabnın bunun için izni yok
 ErrorNoActivatedBarcode=Etkinleştirilmiş barkod türü yok
 ErrUnzipFails=% ZipArchive ile sıkıştırılamıyor
@@ -155,5 +156,5 @@ WarningUsingThisBoxSlowDown=Uyarı, bu kutuyu kullanmak kutuyu gösteren tüm sa
 WarningClickToDialUserSetupNotComplete=Kullanıcınızın ClickToDial bilgileri ayarı tamamlanmamış (kullanıcı kartınızdaki ClickToDial tabına bakın)
 WarningNotRelevant=Bu veri kümesi için alakasız işlem
 WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Bu özellik, ekran görme engelliler için ya da metin tarayıcılar için ayarlandığında devre dışı kalır.
-WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s.
-WarningTooManyDataPleaseUseMoreFilters=Too many data. Please use more filters
+WarningPaymentDateLowerThanInvoiceDate=Ödeme tarihi (%s) fatura tarihinden (%s) daha önce, bu fatura için %s.
+WarningTooManyDataPleaseUseMoreFilters=Çok fazla veri. Lütfen daha çok süzgeç kullanın
diff --git a/htdocs/langs/tr_TR/exports.lang b/htdocs/langs/tr_TR/exports.lang
index e6c8d770ad0a9327c0b942311115c1477372e986..c4baa85d1b9441d3c2a6d6fc718cfe84155c6317 100644
--- a/htdocs/langs/tr_TR/exports.lang
+++ b/htdocs/langs/tr_TR/exports.lang
@@ -47,7 +47,7 @@ Sheet=Sayfa
 NoImportableData=İçeaktarılacak veri yok (veri içeaktarmaya izin veren tanımlara sahip bir modül yok)
 FileSuccessfullyBuilt=Dışaaktarma dosyası oluşturuldu
 SQLUsedForExport=Dışaaktarılacakı dosyayı oluşturmak için kullanılan SQL sorgusu
-LineId=Satır No
+LineId=Satır no
 LineDescription=Satır açıklaması
 LineUnitPrice=Satırın birim fiyat
 LineVATRate=Satırın KDV oranı
@@ -109,7 +109,7 @@ DataCodeIDSourceIsInsertedInto=Koddan bulunan üst satır kodu , şu alana eklen
 SourceRequired=Veri değeri zorunludur
 SourceExample=Olası veri değeri örneği
 ExampleAnyRefFoundIntoElement=<b>%s</b> bileşeni için bulunan ilgi
-ExampleAnyCodeOrIdFoundIntoDictionary=<b>%s</b> sözlüğünde bulunan herhangi bir kod (veya id)
+ExampleAnyCodeOrIdFoundIntoDictionary=<b>%s</b> sözlüğünde bulunan herhangi bir kod (veya kimlik)
 CSVFormatDesc=<b>Virgülle Ayrılmış Değer</b> dosya biçimi (.csv).<br>Alanların birbirinden ayıraç ile ayrıldığı bir metin dosyası biçimi [ %s ]. Bir alan içeriğinde ayıraç bulunursa, yuvarlatma karakteri ile alan yuvarlanır [ %s ]. Yuvarlatma karakterinden çıkmak için Escape karakteri kullanılır [%s].
 Excel95FormatDesc=<b>Excel</b> dosya biçimi (.xls)<br>Doğal Excel 95 biçimi (BIFF5).
 Excel2007FormatDesc=<b>Excel</b> dosya biçimi (.xlsx)<br>Doğal Excel 2007 biçimi (ÇalışmasayfasıML).
diff --git a/htdocs/langs/tr_TR/help.lang b/htdocs/langs/tr_TR/help.lang
index 63ddb6a853c69940eebedfbd39bde5b4e1190406..abce4eafbfb10336b167eb4005984c26fd9e4a96 100644
--- a/htdocs/langs/tr_TR/help.lang
+++ b/htdocs/langs/tr_TR/help.lang
@@ -10,7 +10,7 @@ DolibarrHelpCenter=Dolibarr yardım ve destek merkezi
 ToGoBackToDolibarr=Aksi takdirde Dolibarr’ı kullanmak için<a href="%s">burayı tıklayın</a>
 TypeOfSupport=Destek Kaynağı
 TypeSupportCommunauty=Genel (ücretsiz)
-TypeSupportCommercial=Ticari
+TypeSupportCommercial=Ticaret
 TypeOfHelp=Tür
 NeedHelpCenter=Yardım veya desteğe mi gereksiniminiz var?
 Efficiency=Verim
diff --git a/htdocs/langs/tr_TR/holiday.lang b/htdocs/langs/tr_TR/holiday.lang
index dd4331c8e6c0f9e6ba8b66417a14cec81593d4c9..0d918690ab68b328678164bb1cd46318fdfd69a5 100644
--- a/htdocs/langs/tr_TR/holiday.lang
+++ b/htdocs/langs/tr_TR/holiday.lang
@@ -1,13 +1,13 @@
 # Dolibarr language file - Source file is en_US - holiday
 HRM=IK
-Holidays=Leaves
-CPTitreMenu=Leaves
+Holidays=İzinler
+CPTitreMenu=İzinler
 MenuReportMonth=Aylık özet
-MenuAddCP=Make a leave request
-NotActiveModCP=You must enable the module Leaves to view this page.
-NotConfigModCP=You must configure the module Leaves to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
-NoCPforUser=You don't have any available day.
-AddCP=Make a leave request
+MenuAddCP=Bir izin isteği yap
+NotActiveModCP=Bu sayfayı görmek için İzinler modülünü etkinleştirmelisiniz
+NotConfigModCP=Bu sayfayı görmeniz için İzinler modülünü yapılandırmalısınız. Bunu yapmak için <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> bağlantısına tıklayın </ a>.
+NoCPforUser=Hiç uygun gününüz yok.
+AddCP=Bir izin isteği yap
 Employe=Çalışan
 DateDebCP=Başlama tarihi
 DateFinCP=Bitiş tarihi
@@ -18,24 +18,24 @@ ApprovedCP=Onaylandı
 CancelCP=İptal edildi
 RefuseCP=Reddedildi
 ValidatorCP=Onaylayan
-ListeCP=List of leaves
+ListeCP=İzinler listesi
 ReviewedByCP=İnceleyen
 DescCP=Açıklama
-SendRequestCP=Create leave request
-DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
-MenuConfCP=Edit balance of leaves
-UpdateAllCP=Update the leaves
-SoldeCPUser=Leaves balance is <b>%s</b> days.
+SendRequestCP=İzin isteği oluştur
+DelayToRequestCP=İzin istekleri enaz <b>%s gün</b> önce yapolmalıdır.
+MenuConfCP=İzin bakiyelerini düzenle
+UpdateAllCP=İzinleri güncelle
+SoldeCPUser=İzin bakiyesi <b>%s</b> gündür.
 ErrorEndDateCP=Başlama tarihinden büyük bir bitiş tarihi seçmelisiniz.
 ErrorSQLCreateCP=Oluşturma sırasında bir SQL hatası oluştu:
-ErrorIDFicheCP=An error has occurred, the leave request does not exist.
+ErrorIDFicheCP=Bir hata oluştu, izin isteği yok.
 ReturnCP=Önceki sayfaya dön
-ErrorUserViewCP=You are not authorized to read this leave request.
-InfosCP=Information of the leave request
+ErrorUserViewCP=İzin isteklerini okumak için yetkiniz yok.
+InfosCP=İzin isteği bilgisi
 InfosWorkflowCP=Bilgi işakışı
 RequestByCP=İsteyen
-TitreRequestCP=Leave request
-NbUseDaysCP=Number of days of vacation consumed
+TitreRequestCP=İzin isteği
+NbUseDaysCP=Tüketilen tatil gün sayısı
 EditCP=Düzenle
 DeleteCP=Sil
 ActionValidCP=Doğrula
@@ -43,26 +43,26 @@ ActionRefuseCP=Reddet
 ActionCancelCP=İptal
 StatutCP=Durumu
 SendToValidationCP=Doğrulamaya gönder
-TitleDeleteCP=Delete the leave request
-ConfirmDeleteCP=Confirm the deletion of this leave request?
-ErrorCantDeleteCP=Error you don't have the right to delete this leave request.
-CantCreateCP=You don't have the right to make leave requests.
-InvalidValidatorCP=You must choose an approbator to your leave request.
+TitleDeleteCP=İzin isteği sil
+ConfirmDeleteCP=Bu izin isteğinin silinmesini onaylıyor musunuz?
+ErrorCantDeleteCP=Hata, bu izin isteğini silmek için yetkiniz yok.
+CantCreateCP=İzin isteği yapmak için yetkiniz yok.
+InvalidValidatorCP=İzin isteğiniz için bir onaylayıcı seçmelisiniz.
 UpdateButtonCP=Güncelle
-CantUpdate=You cannot update this leave request.
+CantUpdate=Bu izin isteğini güncelleyemezsiniz.
 NoDateDebut=Bir başlama tarihi seçmelisiniz.
 NoDateFin=Bir bitiş tarihi seçmelisiniz.
-ErrorDureeCP=Tatil isteğiniz çalışma günlerini kapsamıyor.
-TitleValidCP=Tatil isteğini onayla
-ConfirmValidCP=Are you sure you want to approve the leave request?
+ErrorDureeCP=İzin isteğiniz çalışma günü içermiyor.
+TitleValidCP=Izin isteğini onayla
+ConfirmValidCP=Izin isteğini onaylamak istediğinizden emin misiniz?
 DateValidCP=Tarih onaylandı
-TitleToValidCP=Send leave request
-ConfirmToValidCP=Are you sure you want to send the leave request?
-TitleRefuseCP=Tatil isteğini reddet
-ConfirmRefuseCP=Are you sure you want to refuse the leave request?
+TitleToValidCP=İzin isteği gönder
+ConfirmToValidCP=Izin isteğini göndermek istediğinizden emin misiniz?
+TitleRefuseCP=İzin isteğini reddet
+ConfirmRefuseCP=Izin isteğini reddetmek istediğinizden emin misiniz?
 NoMotifRefuseCP=İsteği reddetmek için bir neden seçmelisiniz.
-TitleCancelCP=Tatil isteğini iptal et
-ConfirmCancelCP=Are you sure you want to cancel the leave request?
+TitleCancelCP=İzin isteğini iptal et
+ConfirmCancelCP=Izin isteğini iptal etmek istediğinizden emin misiniz?
 DetailRefusCP=Ret nedeni
 DateRefusCP=Ret tarihi
 DateCancelCP=İptal tarihi
@@ -72,42 +72,42 @@ MotifCP=Neden
 UserCP=Kullanıcı
 ErrorAddEventToUserCP=Özel izin eklenirken hata oluştu.
 AddEventToUserOkCP=Özel izin eklenmesi tamamlanmıştır.
-MenuLogCP=View logs of leave requests
-LogCP=Log of updates of available vacation days
+MenuLogCP=İzin isteği kayıtlarına bak
+LogCP=Uygun tatil günlerinin güncellenme kayıtı
 ActionByCP=Uygulayan
 UserUpdateCP=Kullanıcı için
 PrevSoldeCP=Önceki Bakiye
 NewSoldeCP=Yeni Bakiye
-alreadyCPexist=Bu dönem için bir tatil isteği zaten yapılmış.
+alreadyCPexist=Bu dönem için bir izin isteği zaten yapılmış.
 UserName=Adı
 Employee=Çalışan
-FirstDayOfHoliday=First day of vacation
-LastDayOfHoliday=Last day of vacation
+FirstDayOfHoliday=Tatilin birinci günü
+LastDayOfHoliday=Tatilin son günü
 HolidaysMonthlyUpdate=Aylık güncelleme
 ManualUpdate=Elle güncelleme
-HolidaysCancelation=Leave request cancelation
+HolidaysCancelation=İzin isteği iptali
 
 ## Configuration du Module ##
-ConfCP=Tatil modülünün yapılandırılması
+ConfCP=İzin isteği modülünün yapılandırılması
 DescOptionCP=Seçeneğin tanımı
 ValueOptionCP=Değer
-GroupToValidateCP=Group with the ability to approve vacation
+GroupToValidateCP=İzin isteklerini olabilirliğine göre gruplandır
 ConfirmConfigCP=Yapılandırmayı onayla
-LastUpdateCP=Last automatic update of vacation
+LastUpdateCP=İzin tahsislerini otomatik güncelle
 UpdateConfCPOK=Güncelleme başarılı
 ErrorUpdateConfCP=Güncelleme sırasında bir hata oluştu, lütfen yeniden deneyin.
-AddCPforUsers=Kullanıcıların tatil bakiyelerini eklemek için lütfen <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">buraya tıklayın</a>.
-DelayForSubmitCP=Tatil için son başvuru tarihi
-AlertapprobatortorDelayCP=Eğer tatil istekleri son tarihle eşleşmezse onaylayanı uyar
-AlertValidatorDelayCP=Préevent the approbator if the leave request exceed delay
-AlertValidorSoldeCP=Prevent the approbator if the leave request exceed the balance
-nbUserCP=Number of users supported in the module Leaves
-nbHolidayDeductedCP=Number of holidays to be deducted per day of vacation taken
-nbHolidayEveryMonthCP=Number of vacation days added every month
-Module27130Name= Management of leave requests
-Module27130Desc= Management of leave requests
-TitleOptionMainCP=Main settings of Leave request
-TitleOptionEventCP=Settings of leave requets for events
+AddCPforUsers=Kullanıcıların izin tahsisleri bakiyelerini  <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">yoluyla eklemek için buraya tıklayın</a>.
+DelayForSubmitCP=İzin isteği yapmak için son tarih
+AlertapprobatortorDelayCP=İzin isteği son tarihe uymuyorsa onaylamayı engelle
+AlertValidatorDelayCP=İzin isteği süreyi geçiyorsa onaylamayı engelle
+AlertValidorSoldeCP=İzin isteği izin bakiyesini aşıyorsa onaylamayı engelle
+nbUserCP=İzinler modülünün desteklediği kullanıcı sayısı
+nbHolidayDeductedCP=Alınan izinden düşülecek izin günü sayısı
+nbHolidayEveryMonthCP=Her ay eklenen izin günü sayısı
+Module27130Name= İzin istekleri yönetimi
+Module27130Desc= İzin istekleri yönetimi
+TitleOptionMainCP=İzin istekleri ana ayarları
+TitleOptionEventCP=Etkiinlikler için izin istekleri ayarları
 ValidEventCP=Doğrula
 UpdateEventCP=Etkinlikleri güncelle
 CreateEventCP=Oluştur
@@ -127,23 +127,23 @@ UpdateEventOptionCP=Güncelle
 ErrorMailNotSend=Eposta gönderilirken bir hata oluştu:
 NoCPforMonth=Bu ay hiç izin yok.
 nbJours=Gün sayısı
-TitleAdminCP=Configuration of Leaves
+TitleAdminCP=İzinlerin Yapılandırılması
 #Messages
 Hello=Merhaba
-HolidaysToValidate=Validate leave requests
-HolidaysToValidateBody=Below is a leave request to validate
-HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
-HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
-HolidaysValidated=Validated leave requests
-HolidaysValidatedBody=Your leave request for %s to %s has been validated.
-HolidaysRefused=Request denied
-HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason :
-HolidaysCanceled=Canceled leaved request
-HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
-Permission20000=Read you own leave requests
-Permission20001=Create/modify your leave requests
-Permission20002=Create/modify leave requests for everybody
-Permission20003=Delete leave requests
-Permission20004=Setup users available vacation days
-Permission20005=Review log of modified leave requests
-Permission20006=Read leaves monthly report
+HolidaysToValidate=İzin isteği doğrula
+HolidaysToValidateBody=Doğrulanacak izin isteği aşağıdadır
+HolidaysToValidateDelay=Bu izin isteği %s günden kısa bir sürede gerçekleşecektir.
+HolidaysToValidateAlertSolde=Bu izin isteğini yapan kullanıcının yeterli uygun günü yok.
+HolidaysValidated=Doğrulanmış izin istekleri
+HolidaysValidatedBody=İzin isteğiniz %s - %s arası doğrulanmıştır.
+HolidaysRefused=İstek reddedildi
+HolidaysRefusedBody=%s - %s arası izin isteğiniz aşağıdaki nedenden dolayı reddedilmiştir:
+HolidaysCanceled=İptal edilen izin istekleri
+HolidaysCanceledBody=%s - %s arası izin isteğiniz iptal edilmiştir.
+Permission20000=Kendi izin isteklerini oku
+Permission20001=İzin isteklerinizi oluşturun/düzenleyin
+Permission20002=Herkes için izin isteği oluştur/düzenle
+Permission20003=İzin isteği sil
+Permission20004=Kullanıcıların uygun tatil günlerini ayarla
+Permission20005=Değiştirilmiş izin izin istekleri kayıtlarını incele
+Permission20006=Aylık izin raporu oku
diff --git a/htdocs/langs/tr_TR/mails.lang b/htdocs/langs/tr_TR/mails.lang
index 9e71844c4a454aa87090dd6968635449082bb578..a6086f765c219373a1361e4383afc99c0dc56dbf 100644
--- a/htdocs/langs/tr_TR/mails.lang
+++ b/htdocs/langs/tr_TR/mails.lang
@@ -32,7 +32,7 @@ CreateMailing=Eposta oluştur
 MailingDesc=Bu sayfa bir gruBa Eposta göndermenizi sağlar.
 MailingResult=Eposta sonuçlarını gönderiyor
 TestMailing=Eposta testi
-ValidMailing=Geçerli Eposta
+ValidMailing=Geçerli eposta
 ApproveMailing=Eposta onayla
 MailingStatusDraft=Taslak
 MailingStatusValidated=Doğrulanmış
@@ -49,7 +49,7 @@ Unsuscribe=Aboneliği kaldır
 MailingStatusNotContact=Bir daha görüşme
 ErrorMailRecipientIsEmpty=Eposta alıcısı boş
 WarningNoEMailsAdded=Alıcının listesine ekli yeni Eposta yok.
-ConfirmValidMailing=Bu Epostayı doğrulamak istediğinizden emin misiniz?
+ConfirmValidMailing=Bu epostayı doğrulamak istediğinizden emin misiniz?
 ConfirmResetMailing=Uyarı, Bu <b>%s</b> Epostasını yeniden başlatarak, bu Epostanın toplu gönderiminin başka bir zaman yapılmasını sağlarsınız. Bunu yapmak istediğinizden emin misiniz?
 ConfirmDeleteMailing=Bu Epostayı silmek istediğinizden emin misiniz?
 NbOfRecipients=Alıcı sayısı
@@ -107,7 +107,7 @@ MailingArea=Eposta alanı
 LastMailings=Son %s eposta
 TargetsStatistics=Hedef istatistikleri
 NbOfCompaniesContacts=Şirketlerin eşsiz kişileri
-MailNoChangePossible=Doğrulanmış Epostaların alıcıları değiştirilemez
+MailNoChangePossible=Doğrulanmış epostaların alıcıları değiştirilemez
 SearchAMailing=Eposta ara
 SendMailing=E-posta gönder
 SendMail=E-posta gönder
@@ -133,6 +133,6 @@ Notifications=Bildirimler
 NoNotificationsWillBeSent=Bu eylem ve firma için hiçbir Eposta bildirimi planlanmamış
 ANotificationsWillBeSent=Eposta ile 1 bildirim gönderilecektir
 SomeNotificationsWillBeSent=Epostayala %s bildirim gönderilecektir
-AddNewNotification=Yeni bir e-posta bildirimi isteği etkinleştir
-ListOfActiveNotifications=Tüm etkin Eposta bildirimi istekleri
+AddNewNotification=Yeni bir eposta bildirim hedefi etkinleştir
+ListOfActiveNotifications=Bütün etkin eposta bildirim hedeflerini listele
 ListOfNotificationsDone=Gönderilen tüm e-posta bildirimleri listesi
diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang
index 622075d57f988e29537fe13ac5e1d7821ff3dbd8..87b19cf7d91c8064dc1d0d7c2b252c586cbb4dbe 100644
--- a/htdocs/langs/tr_TR/main.lang
+++ b/htdocs/langs/tr_TR/main.lang
@@ -7,7 +7,7 @@ DIRECTION=ltr
 FONTFORPDF=DejaVuSans
 FONTSIZEFORPDF=8
 SeparatorDecimal=,
-SeparatorThousand=None
+SeparatorThousand=,
 FormatDateShort=%d/%m/%Y
 FormatDateShortInput=%d/%m/%Y
 FormatDateShortJava=dd/MM/yyyy
@@ -58,12 +58,12 @@ ErrorCantLoadUserFromDolibarrDatabase=Dolibarr veritabanında kullanıcı <b>%s<
 ErrorNoVATRateDefinedForSellerCountry=Hata, ülke '%s' için herhangi bir KDV oranı tanımlanmamış.
 ErrorNoSocialContributionForSellerCountry=Hata, ülke %s için herhangi bir sosyal güvenlik primi türü tanımlanmış.
 ErrorFailedToSaveFile=Hata, dosya kaydedilemedi.
-ErrorOnlyPngJpgSupported=Hata yalnızca .Png ve .jpg görüntü dosya formatları desteklenmektedir.
-ErrorImageFormatNotSupported=PHP bu biçimdeki görüntüleri dönüştürecek işlevleri desteklemez.
 SetDate=Ayar tarihi
 SelectDate=Bir tarih seç
 SeeAlso=See also %s
 BackgroundColorByDefault=Varsayılan arkaplan rengi
+FileNotUploaded=Dosya yüklenmemiş
+FileUploaded=Dosya yüklemesi başarılı
 FileWasNotUploaded=Bu ekleme için bir dosya seçildi ama henüz gönderilmedi. Bunun için “Dosya ekle” ye tıklayın.
 NbOfEntries=Kayıt sayısı
 GoToWikiHelpPage=Çevrimiçi yardım oku (Internet erişimi gerekir)
@@ -266,6 +266,7 @@ Afternoon=Öğleden sonra
 Quadri=Çeyrek
 MonthOfDay=Ayın günü
 HourShort=H
+MinuteShort=ay
 Rate=Oran
 UseLocalTax=Vergi dahil
 Bytes=Bayt
@@ -340,6 +341,7 @@ FullList=Tüm liste
 Statistics=İstatistikler
 OtherStatistics=Diğer istatistikler
 Status=Durum
+Favorite=Sık kullanılan
 ShortInfo=Bilgi.
 Ref=Ref.
 RefSupplier=Ref. tedarikçi
@@ -490,7 +492,7 @@ ReportDescription=Açıklama
 Report=Rapor
 Keyword=Anahtar kelime
 Legend=Gösterge
-FillTownFromZip=İli Posta Kodundan (zip) al
+FillTownFromZip=İli Posta Kodundan çıkart
 Fill=Doldur
 Reset=Sıfırla
 ShowLog=Günlüğü göster
@@ -676,10 +678,10 @@ SetDemandReason=Kaynağı ayarlayın
 SetBankAccount=Banka Hesabı Tanımla
 AccountCurrency=Hesap Para Birimi
 ViewPrivateNote=Notları izle
-XMoreLines=%s gizli satır(lar)
+XMoreLines=%s gizli satır
 PublicUrl=Genel URL
 AddBox=Kutu ekle
-
+SelectElementAndClickRefresh=Bir öğe seçin ve Yenile'ye tıkla
 # Week day
 Monday=Pazartesi
 Tuesday=Salı
diff --git a/htdocs/langs/tr_TR/margins.lang b/htdocs/langs/tr_TR/margins.lang
index 05b423db433e54bddc759c405e6959ee14d1f8d9..f8b7865faf400dc8518602c0ec31b33be559d5ac 100644
--- a/htdocs/langs/tr_TR/margins.lang
+++ b/htdocs/langs/tr_TR/margins.lang
@@ -38,4 +38,6 @@ BuyingCost=Maliyet fiyatı
 UnitCharges=Birim masrafları
 Charges=Masraflar
 AgentContactType=Ticari temsilci ilgili tipi
-AgentContactTypeDetails=Ticari temsilciler tarafından oran raporları ile ilişkilendirilecek kişi türünü (faturalarla bağlantılı) tanımlayın
+AgentContactTypeDetails=Satış temsilcisine göre oran raporu için kullanılacak kişi türünü (faturala bağlantılı) tanımla
+rateMustBeNumeric=Oran sayısal bir değer olmalı
+markRateShouldBeLesserThan100=İşaretli oran 100 den daha düşük olmalı
diff --git a/htdocs/langs/tr_TR/orders.lang b/htdocs/langs/tr_TR/orders.lang
index 2085c26d3d15243dd0ae11937ca1842e66f804c1..5e2770ce8e74e3b91937444c93d46773756c9019 100644
--- a/htdocs/langs/tr_TR/orders.lang
+++ b/htdocs/langs/tr_TR/orders.lang
@@ -65,7 +65,7 @@ ValidateOrder=Doğrulamak amacıyla
 UnvalidateOrder=Siparişten doğrulamayı kaldır
 DeleteOrder=Sipariş sil
 CancelOrder=Siparişi iptal et
-AddOrder=Sipariş ekle
+AddOrder=Sipariş oluştur
 AddToMyOrders=Siparişlerime ekle
 AddToOtherOrders=Diğer siparişlere ekle
 AddToDraftOrders=Taslak siparişe ekle
@@ -137,7 +137,7 @@ OrderSource1=Internet
 OrderSource2=Posta kampanyası
 OrderSource3=Telefon kampanyası
 OrderSource4=Faks kampanyası
-OrderSource5=Ticari
+OrderSource5=Ticaret
 OrderSource6=Mağaza
 QtyOrdered=Sipariş miktarı
 AddDeliveryCostLine=Siparişin ağırlığını belirten bir teslimat satırı ekleyin
diff --git a/htdocs/langs/tr_TR/products.lang b/htdocs/langs/tr_TR/products.lang
index a16fca7fd9e01692234e1b2f80eb94d30e904987..23c2de284d357635621edfa6b9afab85d2eb3c65 100644
--- a/htdocs/langs/tr_TR/products.lang
+++ b/htdocs/langs/tr_TR/products.lang
@@ -14,9 +14,9 @@ NewService=Yeni hizmet
 ProductCode=Ürün kodu
 ServiceCode=Hizmet kodu
 ProductVatMassChange=Toplu KDV değiştir
-ProductVatMassChangeDesc=This page can be used to modify a VAT rate defined on products or services from a value to another. Warning, this change is done on all database.
+ProductVatMassChangeDesc=Bu sayfa, ürünler ve hizmetler için tanımlanmış KDV oranının bir değerden başka bir değere değiştirilmesi için kullanılır. Uyarı, bu değişiklik tüm veritabanına uygulanır.
 MassBarcodeInit=Toplu barkod başlatma
-MassBarcodeInitDesc=This page can be used to initialize a barcode on objects that does not have barcode defined. Check before that setup of module barcode is complete.
+MassBarcodeInitDesc=Bu sayfa, barkod tanımlanmamış nesneler üzerinde barkod başlatmak için kullanılabilir. Önce barkod modülü kurulumunun tamamlandığını denetleyin.
 ProductAccountancyBuyCode=Muhasebe kodu (alış)
 ProductAccountancySellCode=Muhasebe kodu (satış)
 ProductOrService=Ürün veya Hizmet
@@ -102,7 +102,7 @@ AddPhoto=Fotoğraf ekle
 ListOfStockMovements=Stok hareketleri listesi
 BuyingPrice=Alış Fiyat
 SupplierCard=Tedarikçi kartı
-CommercialCard=Ticari Kart
+CommercialCard=Ticaret Kartı
 AllWays=Stokta ürün bulmak için yol
 NoCat=Ürününüz herhangi bir kategoride değil
 PrimaryWay=Birincil yol
@@ -117,12 +117,12 @@ ServiceLimitedDuration=Eğer ürün sınırlı süreli bir hizmetse:
 MultiPricesAbility=Ürünler/hizmetler için çok seviyeli fiyat
 MultiPricesNumPrices=Fiyat sayısı
 MultiPriceLevelsName=Fiyat kategorileri
-AssociatedProductsAbility=Yan ürünleri etkinleştir
-AssociatedProducts=Yan ürünler
-AssociatedProductsNumber=Bu ürünü oluşturan ürün sayısı
-ParentProductsNumber=Ana ürün numarası
-IfZeroItIsNotAVirtualProduct=0 ise, bu ürün bir sanal ürün değildir
-IfZeroItIsNotUsedByVirtualProduct=0 ise, bu ürün hiçbir sanal ürün tarafından kullanılmıyor
+AssociatedProductsAbility=Sanal paket özelliğini etkinleştir
+AssociatedProducts=Paket ürün
+AssociatedProductsNumber=Bu sanal paket ürünü oluşturan ürün sayısı
+ParentProductsNumber=Ana paket ürünü sayısı
+IfZeroItIsNotAVirtualProduct=Eğer 0 ise, bu ürün bir sanal paket ürünü değildir
+IfZeroItIsNotUsedByVirtualProduct=Eğer 0 ise, bu ürün her hangi bir sanal paket ürünü tarafından kullanılmaz
 EditAssociate=Ilişkilendir
 Translation=Çeviri
 KeywordFilter=Anahtar kelime süzgeçi
@@ -132,7 +132,7 @@ AddDel=Ekle/Sil
 Quantity=Miktar
 NoMatchFound=Eşleşme bulunamadı
 ProductAssociationList=İlgili ürün/hizmet listesi: ürün/hizmet adı (miktar etkilenir)
-ProductParentList=Bu ürünün bir bileşen olan ürünle/hizmetle ilgili liste
+ProductParentList=Bu ürünü bir bileşen olarak kullanan ürünlerin/hizmetlerin listesi
 ErrorAssociationIsFatherOfThis=Seçilen üründen biri güncel ürünün üstü konumundadır
 DeleteProduct=Bir ürün/hizmet sil
 ConfirmDeleteProduct=Bu ürünü/hizmeti silmek istediğinizden emin misiniz?
@@ -179,7 +179,7 @@ CloneProduct=Ürün veya hizmet klonla
 ConfirmCloneProduct=Ürün veya hizmet klonlamak istediğinizden emin misiniz <b>%s</b> ?
 CloneContentProduct=Ürünün/hizmet bütün temel bilgilerini klonla
 ClonePricesProduct=Ana bilgileri ve fiyatları klonla
-CloneCompositionProduct=Sanal ürün/hizmet kopyala
+CloneCompositionProduct=Paket ürünü/hizmeti kopyala
 ProductIsUsed=Bu ürün kullanılır.
 NewRefForClone=Yeni ürün/hizmet ref.
 CustomerPrices=Müşteri fiyatları
@@ -233,7 +233,7 @@ DefinitionOfBarCodeForProductNotComplete=Barkod türü tanımı ve değeri %s ü
 DefinitionOfBarCodeForThirdpartyNotComplete=Barkod türü tanımı ve değeri %s ürünü için tamamlanmamıştır.
 BarCodeDataForProduct=%s Ürünü için barkod bilgisi :
 BarCodeDataForThirdparty=%s Üçüncü parti için barkod bilgisi :
-ResetBarcodeForAllRecords=Define barcode value for all records (this will also reset barcode value already defined with new values)
+ResetBarcodeForAllRecords=Bütün kayıtlar için barkod değeri tanımla (bu işlem halihazırda yeni değerler tanımlanmış barkod değerlerini sıfırlayacaktır)
 PriceByCustomer=Müşteri fiyatı
 PriceCatalogue=Ürün/Servis için birim fiyat
 PricingRule=Fiyatlandırma yetkileri
diff --git a/htdocs/langs/tr_TR/projects.lang b/htdocs/langs/tr_TR/projects.lang
index c945635a36af71495ef40441fbb99f73d10fdeda..09343d289687d240a019d329723175ff7e0f903f 100644
--- a/htdocs/langs/tr_TR/projects.lang
+++ b/htdocs/langs/tr_TR/projects.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - projects
 RefProject=Referans Proje
-ProjectId=Proje Id
+ProjectId=Proje Kimliği
 Project=Proje
 Projects=Projeler
 SharedProject=Herkes
@@ -14,7 +14,7 @@ TasksDesc=Bu görünüm tüm projeleri ve görevleri içerir (size verilen kulla
 Myprojects=Projelerim
 ProjectsArea=Projeler alanı
 NewProject=Yeni proje
-AddProject=Proje ekle
+AddProject=Proje oluştur
 DeleteAProject=Bir proje sil
 DeleteATask=Bir görev sil
 ConfirmDeleteAProject=Bu projeyi silmek istediğinizden emin misiniz?
@@ -45,7 +45,7 @@ TaskDateStart=Görev başlama tarihi
 TaskDateEnd=Görev bitiş tarihi
 TaskDescription=Görev açıklaması
 NewTask=Yeni görev
-AddTask=Görev ekle
+AddTask=Görev oluştur
 AddDuration=Süre ekle
 Activity=Etkinlik
 Activities=Görevler/etkinlikler
@@ -85,13 +85,13 @@ ActionsOnProject=Proje etkinlikleri
 YouAreNotContactOfProject=Bu özel projenin bir ilgilisi değilsiniz
 DeleteATimeSpent=Harcana süre sil
 ConfirmDeleteATimeSpent=Bu harcanan süreyi silmek istediğinizden emin misiniz?
-DoNotShowMyTasksOnly=See also tasks not assigned to me
-ShowMyTasksOnly=View only tasks assigned to me
+DoNotShowMyTasksOnly=Bana atanmamış görevleri de göster
+ShowMyTasksOnly=Yalnızca bana atanmış görevleri göster
 TaskRessourceLinks=Kaynaklar
 ProjectsDedicatedToThisThirdParty=Bu üçüncü parti atanmış projeler
 NoTasks=Bu proje için hiçbir görev yok
 LinkedToAnotherCompany=Diğer üçüncü partiye bağlantılı
-TaskIsNotAffectedToYou=Task not assigned to you
+TaskIsNotAffectedToYou=Sana atanmamış görevler
 ErrorTimeSpentIsEmpty=Harcanan süre boş
 ThisWillAlsoRemoveTasks=Bu eylem aynı zamanda projenin tüm görevlerini (şu andaki <b>%s</b> görevleri) ve tüm harcanan süre girişlernii siler .
 IfNeedToUseOhterObjectKeepEmpty=Eğer bazı nesneler başka bir üçüncü partiye aitse  (fatura, sipariş, ...), oluşturulması  için bu projeye bağlanmalıdır, projenin birden çok üçüncü partiye bağlı olması için bunu boş bırakın.
@@ -120,7 +120,7 @@ TypeContact_project_task_internal_TASKCONTRIBUTOR=Katılımcı
 TypeContact_project_task_external_TASKCONTRIBUTOR=Katılımcı
 SelectElement=Öğe seç
 AddElement=Öğeye bağlan
-UnlinkElement=Unlink element
+UnlinkElement=Öğenin bağlantısını kaldır
 # Documents models
 DocumentModelBaleine=Eksiksiz bir proje rapor modeli (logo. ..)
 PlannedWorkload = Planlı işyükü
@@ -129,4 +129,4 @@ ProjectReferers=Yönlendirme nesneleri
 SearchAProject=Bir proje ara
 ProjectMustBeValidatedFirst=Projeler önce doğrulanmalıdır
 ProjectDraft=Taslak projeler
-FirstAddRessourceToAllocateTime=Associate a ressource to allocate time
+FirstAddRessourceToAllocateTime=Zaman ayırmak için bir kaynak ilişkilendirin
diff --git a/htdocs/langs/tr_TR/sendings.lang b/htdocs/langs/tr_TR/sendings.lang
index 3d84e62205f575882641a91641eda44b22326731..3419729b7c3cb2b33a0c50496e3dfba0bc3a9f93 100644
--- a/htdocs/langs/tr_TR/sendings.lang
+++ b/htdocs/langs/tr_TR/sendings.lang
@@ -74,5 +74,5 @@ SumOfProductVolumes=Ürün hacimleri toplamı
 SumOfProductWeights=Ürün ağırlıkları toplamı
 
 # warehouse details
-DetailWarehouseNumber= Warehouse details
-DetailWarehouseFormat= W:%s (Qty : %d)
+DetailWarehouseNumber= Depo ayrıntıları
+DetailWarehouseFormat= Ağ:%s (Mik : %d)
diff --git a/htdocs/langs/tr_TR/stocks.lang b/htdocs/langs/tr_TR/stocks.lang
index 74cba2a10c67e5133366e25f4226b34121748eec..967a8a811fb4a9154d2fb57133b923694f728c96 100644
--- a/htdocs/langs/tr_TR/stocks.lang
+++ b/htdocs/langs/tr_TR/stocks.lang
@@ -51,10 +51,10 @@ QtyDispatched=Sevkedilen miktar
 OrderDispatch=Stok sevkiyatı
 RuleForStockManagementDecrease=Stok azaltma yönetimi kuralı
 RuleForStockManagementIncrease=Stok arttırma yönetimi kuralı
-DeStockOnBill=Müşteri faturalarının/alacak dekontlarının doğrulanması üzerine gerçek stokları azalt
+DeStockOnBill=Müşteri faturalarının/iade faturalarının doğrulanması üzerine gerçek stokları azalt
 DeStockOnValidateOrder=Müşteri siparişlerinin doğrulanması üzerine gerçek stokları azalt
 DeStockOnShipment=Sevkiyat doğrulaması üzerine gerçek stokları azalt
-ReStockOnBill=Müşteri faturalarının/alacak dekontlarının doğrulanması üzerine gerçek stokları arttır
+ReStockOnBill=Müşteri faturalarının/iade faturalarının doğrulanması üzerine gerçek stokları arttır
 ReStockOnValidateOrder=Tedarikçi siparişlerinin onanması üzerine gerçek stokları arttır
 ReStockOnDispatchOrder=Tedarikçi siparişi aldıktan sonra, elle yapılan sevk üzerine gerçek stokları artırın
 ReStockOnDeleteInvoice=Fatura silinirse gerçek stokları arttır
diff --git a/htdocs/langs/tr_TR/suppliers.lang b/htdocs/langs/tr_TR/suppliers.lang
index 56480109c70cab075dd75bed8fe7c3f2d74a7749..0b89e0a28d611cebf4e656f91be6275086b1380e 100644
--- a/htdocs/langs/tr_TR/suppliers.lang
+++ b/htdocs/langs/tr_TR/suppliers.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - suppliers
 Suppliers=Tedarikçiler
 Supplier=Tedarikçi
-AddSupplier=Bir tedarikçi ekle
+AddSupplier=Bir tedarikçi oluştur
 SupplierRemoved=Tedarikçi kaldırıldı
 SuppliersInvoice=Tedarikçi faturası
 NewSupplier=Yeni tedarikçi
@@ -40,5 +40,5 @@ AddSupplierInvoice=Tedarikçi faturası oluştur
 ListOfSupplierProductForSupplier=Tedarikçi <b>%s</b> için ürün ve fiyat listesi
 NoneOrBatchFileNeverRan=Hiçbiri veya toplu <b>%s</b> yürütülmedi
 SentToSuppliers=Tedarikçilere gönderilen
-ListOfSupplierOrders=List of supplier orders
-MenuOrdersSupplierToBill=Supplier orders to invoice
+ListOfSupplierOrders=Tedarikçi siparişleri listesi
+MenuOrdersSupplierToBill=Faturalanacak tedarikçi siparişleri
diff --git a/htdocs/langs/tr_TR/users.lang b/htdocs/langs/tr_TR/users.lang
index 50ee7de07b3ce713383d5961e33abd5badf8953f..84c9b09f57afd0689f8bd346b4f1c7c6ffe09b30 100644
--- a/htdocs/langs/tr_TR/users.lang
+++ b/htdocs/langs/tr_TR/users.lang
@@ -93,7 +93,7 @@ PermissionInheritedFromAGroup=İzin hak tanındı çünkü bir kullanıcının g
 Inherited=İntikal eden
 UserWillBeInternalUser=Oluşturulacak kullanıcı bir iç kullanıcı olacaktır (çünkü belirli bir üçüncü parti ile bağlantılı değildir)
 UserWillBeExternalUser=Oluşturulacak kullanıcı bir dış kullanıcı olacaktır (çünkü belirli bir üçüncü parti ile bağlantılıdır)
-IdPhoneCaller=Kimlik telefonu arayıcı
+IdPhoneCaller=Telefon açanın kimliği
 UserLogged=Kullanıcı %s bağlı
 UserLogoff=Kullanıcı %s çıkış yaptı
 NewUserCreated=Kullanıcı %s oluşturuldu
@@ -120,3 +120,4 @@ UseTypeFieldToChange=Değiştirmek için Alan türünü kullan
 OpenIDURL=OpenID URL
 LoginUsingOpenID=Giriş için OpenID kullan
 WeeklyHours=Haftalık saatler
+ColorUser=Kullanıcı rengi
diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php
index fa6b503caa7a69a3d1e76c11e5f01e032030cbb0..6698866869e3c156d8f8bd10c54e62d99a637b2c 100644
--- a/htdocs/main.inc.php
+++ b/htdocs/main.inc.php
@@ -1015,10 +1015,14 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
                 //print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/datatables/extras/ColVis/css/ColVisAlt.css'.($ext?'?'.$ext:'').'" />'."\n";
                 print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/datatables/extras/TableTools/css/TableTools.css'.($ext?'?'.$ext:'').'" />'."\n";
             }
-            if (! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) || (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT')))     // jQuery multiselect
+            if ((! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && $conf->global->MAIN_USE_JQUERY_MULTISELECT == 'multiselect') || (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT') == 'multiselect'))     // jQuery multiselect
             {
             	print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/multiselect/css/ui.multiselect.css'.($ext?'?'.$ext:'').'" />'."\n";
             }
+            if ((! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && $conf->global->MAIN_USE_JQUERY_MULTISELECT == 'multiple-select') || (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT') == 'multiple-select'))     // jQuery multiple-select
+            {
+            	print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/multiple-select/multiple-select.css'.($ext?'?'.$ext:'').'" />'."\n";
+            }
             // jQuery Timepicker
             if (! empty($conf->global->MAIN_USE_JQUERY_TIMEPICKER) || defined('REQUIRE_JQUERY_TIMEPICKER'))
             {
@@ -1178,11 +1182,6 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
                 print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/datatables/extras/ColVis/js/ColVis.min.js'.($ext?'?'.$ext:'').'"></script>'."\n";
                 print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/datatables/extras/TableTools/js/TableTools.min.js'.($ext?'?'.$ext:'').'"></script>'."\n";
             }
-            // jQuery Multiselect
-            if (! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) || (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT')))
-            {
-            	print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/multiselect/js/ui.multiselect.js'.($ext?'?'.$ext:'').'"></script>'."\n";
-            }
             // jQuery Timepicker
             if (! empty($conf->global->MAIN_USE_JQUERY_TIMEPICKER) || defined('REQUIRE_JQUERY_TIMEPICKER'))
             {
diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php
index 226a3501652cc16fe7642bcb3b329468eabdb29f..98b5d155ba77c3c11af1678522eb5ba78cee4b61 100644
--- a/htdocs/product/class/product.class.php
+++ b/htdocs/product/class/product.class.php
@@ -3032,42 +3032,56 @@ class Product extends CommonObject
 	 *
 	 *    @return     int             < 0 if KO, > 0 if OK
 	 */
-	function load_virtual_stock()
-	{
-		global $conf;
-
-		if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT))
-		{
-			$stock_commande_client=$stock_commande_fournisseur=0;
-			$stock_sending_client=$stock_reception_fournisseur=0;
+    function load_virtual_stock()
+    {
+        global $conf;
 
-			if (! empty($conf->commande->enabled))
-			{
-				$result=$this->load_stats_commande(0,'1,2');
-				if ($result < 0) dol_print_error($db,$this->error);
-				$stock_commande_client=$this->stats_commande['qty'];
-			}
-			if (! empty($conf->expedition->enabled))
-			{
-				$result=$this->load_stats_sending(0,'1,2');
-				if ($result < 0) dol_print_error($db,$this->error);
-				$stock_sending_client=$this->stats_expedition['qty'];
-			}
-			if (! empty($conf->fournisseur->enabled))
-			{
-				$result=$this->load_stats_commande_fournisseur(0,'3');
-				if ($result < 0) dol_print_error($db,$this->error);
-				$stock_commande_fournisseur=$this->stats_commande_fournisseur['qty'];
+        $stock_commande_client=0;
+        $stock_commande_fournisseur=0;
+        $stock_sending_client=0;
+        $stock_reception_fournisseur=0;
 
-				$result=$this->load_stats_reception(0,'3');
-				if ($result < 0) dol_print_error($db,$this->error);
-				$stock_reception_fournisseur=$this->stats_reception['qty'];
-			}
+        if (! empty($conf->commande->enabled)) {
+            $result=$this->load_stats_commande(0,'1,2');
+            if ($result < 0) dol_print_error($db,$this->error);
+            $stock_commande_client=$this->stats_commande['qty'];
+        }
+        if (! empty($conf->expedition->enabled)) {
+            $result=$this->load_stats_sending(0,'1,2');
+            if ($result < 0) dol_print_error($db,$this->error);
+            $stock_sending_client=$this->stats_expedition['qty'];
+        }
+        if (! empty($conf->fournisseur->enabled)) {
+            $result=$this->load_stats_commande_fournisseur(0,'3,4');
+            if ($result < 0) dol_print_error($db,$this->error);
+            $stock_commande_fournisseur=$this->stats_commande_fournisseur['qty'];
+
+            $result=$this->load_stats_reception(0,'4');
+            if ($result < 0) dol_print_error($db,$this->error);
+            $stock_reception_fournisseur=$this->stats_reception['qty'];
+        }
 
-			$this->stock_theorique=$this->stock_reel-($stock_commande_client-$stock_sending_client)+($stock_commande_fournisseur-$stock_reception_fournisseur);
-			//echo $this->stock_theorique.' = '.$this->stock_reel.' - ('.$stock_commande_client.' - '.$stock_sending_client.') + ('.$stock_commande_fournisseur.' - '.$stock_reception_fournisseur.')';
-		}
-	}
+        // Stock decrease mode
+        if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)) {
+            $this->stock_theorique=$this->stock_reel-$stock_commande_client+$stock_sending_client;
+        }
+        if (! empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER)) {
+            $this->stock_theorique=$this->stock_reel;
+        }
+        if (! empty($conf->global->STOCK_CALCULATE_ON_BILL)) {
+            $this->stock_theorique=$this->stock_reel-$stock_commande_client;
+        }
+        // Stock Increase mode
+        if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)) {
+            $this->stock_theorique+=$stock_commande_fournisseur-$stock_reception_fournisseur;
+        }
+        if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER)) {
+            $this->stock_theorique-=$stock_reception_fournisseur;
+        }
+        if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)) {
+            $this->stock_theorique+=$stock_commande_fournisseur-$stock_reception_fournisseur;
+        }
+    }
 
 	/**
 	 *  Move an uploaded file described into $file array into target directory $sdir.
diff --git a/htdocs/product/list.php b/htdocs/product/list.php
index 55b9beb259c7d3006677ac2482f824e12c6f6464..ebf8b77f72287ac8a4f07ab4d40a5dbaa8042dd6 100644
--- a/htdocs/product/list.php
+++ b/htdocs/product/list.php
@@ -510,7 +510,7 @@ else
                 $product_static->status_buy = $objp->tobuy;
                 $product_static->status     = $objp->tosell;
                 // Status (to sell)
-                print '<td align="right" nowrap="nowrap">';
+                print '<td align="center" nowrap="nowrap">';
                 if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer) {
                     print ajax_object_onoff($product_static, 'status', 'tosell', 'ProductStatusOnSell', 'ProductStatusNotOnSell');
                 } else {
@@ -519,7 +519,7 @@ else
                 print '</td>';
 
                 // Status (to buy)
-                print '<td align="right" nowrap="nowrap">';
+                print '<td align="center" nowrap="nowrap">';
                 if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer) {
                     print ajax_object_onoff($product_static, 'status_buy', 'tobuy', 'ProductStatusOnBuy', 'ProductStatusNotOnBuy');
                 } else {
diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php
index 50b46c7003f4d7273f7cce4d895193530e85e105..06e089c52098e8db031847718fe57c3ab3fad89d 100644
--- a/htdocs/product/stock/mouvement.php
+++ b/htdocs/product/stock/mouvement.php
@@ -461,7 +461,6 @@ if ($resql)
     print '</td>';
     print '<td class="liste_titre" align="right">';
     print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-    print '&nbsp; ';
     print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" name="button_removefilter" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
     print '</td>';
     print "</tr>\n";
diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php
index 7885553095ee110bcbd4f8219fd115fdae18ffa9..22dc080d6e24bb4754e566533bc81e3782c76b1d 100644
--- a/htdocs/product/stock/product.php
+++ b/htdocs/product/stock/product.php
@@ -39,6 +39,7 @@ $langs->load("products");
 $langs->load("orders");
 $langs->load("bills");
 $langs->load("stocks");
+$langs->load("sendings");
 if (! empty($conf->productbatch->enabled)) $langs->load("productbatch");
 
 
@@ -331,58 +332,62 @@ if ($id > 0 || $ref)
 		print '</td>';
 		print '</tr>';
 
-		// Calculating a theorical value
-
-		// If stock if stock increment is done on real sending
-		if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT))
-		{
-			// Stock theorique
-			print '<tr><td>'.$langs->trans("VirtualStock").'</td>';
-			print "<td>".$product->stock_theorique;
-			if ($product->stock_theorique < $product->seuil_stock_alerte)
-			{
-				print ' '.img_warning($langs->trans("StockLowerThanLimit"));
-			}
-			print '</td>';
-			print '</tr>';
+        // Calculating a theorical value
+        print '<tr><td>'.$langs->trans("VirtualStock").'</td>';
+        print "<td>".$product->stock_theorique;
+        if ($product->stock_theorique < $product->seuil_stock_alerte) {
+            print ' '.img_warning($langs->trans("StockLowerThanLimit"));
+        }
+        print '</td>';
+        print '</tr>';
 
-			print '<tr><td>';
-			if ($product->stock_theorique != $product->stock_reel) print $langs->trans("StockDiffPhysicTeoric");
-			else print $langs->trans("RunningOrders");
-			print '</td>';
-			print '<td>';
+        print '<tr><td>';
+        $text_stock_options = (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)?$langs->trans("DeStockOnShipment").'<br>':'');
+        $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER)?$langs->trans("DeStockOnValidateOrder").'<br>':'');
+        $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_BILL)?$langs->trans("DeStockOnBill").'<br>':'');
+        $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)?$langs->trans("ReStockOnBill").'<br>':'');
+        $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER)?$langs->trans("ReStockOnValidateOrder").'<br>':'');
+        $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)?$langs->trans("ReStockOnDispatchOrder").'<br>':'');
+        print $form->textwithtooltip($langs->trans("StockDiffPhysicTeoric"),$text_stock_options,2,1,img_picto('', 'info'),'',0);;
+        print '</td>';
+        print '<td>';
 
-			$found=0;
+        $found=0;
 
-			// Nbre de commande clients en cours
-			if (! empty($conf->commande->enabled))
-			{
-				if ($found) print '<br>'; else $found=1;
-				print $langs->trans("CustomersOrdersRunning").': '.($product->stats_commande['qty']-$product->stats_sendings['qty']);
-				$result=$product->load_stats_commande(0,'0');
-				if ($result < 0) dol_print_error($db,$product->error);
-				print ' ('.$langs->trans("Draft").': '.$product->stats_commande['qty'].')';
-				//print '<br>';
-				//print $langs->trans("CustomersSendingRunning").': '.$stock_sending_client;
-			}
+        // Number of customer orders running
+        if (! empty($conf->commande->enabled))
+        {
+            if ($found) print '<br>'; else $found=1;
+            print $langs->trans("CustomersOrdersRunning").': '.$product->stats_commande['qty'];
+            $result=$product->load_stats_commande(0,'0');
+            if ($result < 0) dol_print_error($db,$product->error);
+            print ' ('.$langs->trans("Draft").': '.$product->stats_commande['qty'].')';
+        }
 
-			// Nbre de commande fournisseurs en cours
-			if (! empty($conf->fournisseur->enabled))
-			{
-				if ($found) print '<br>'; else $found=1;
-				print $langs->trans("SuppliersOrdersRunning").': '.($product->stats_commande_fournisseur['qty']-$product->stats_reception['qty']);
-				$result=$product->load_stats_commande_fournisseur(0,'0,1,2');
-				if ($result < 0) dol_print_error($db,$product->error);
-				print ' ('.$langs->trans("DraftOrWaitingApproved").': '.$product->stats_commande_fournisseur['qty'].')';
-			}
-			print '</td></tr>';
-		}
+        // Number of product from customer order already sent (partial shipping)
+        if (! empty($conf->expedition->enabled)) {
+            if ($found) print '<br>'; else $found=1;
+            $result=$product->load_stats_sending(0,'2');
+            print $langs->trans("SendingRunning").': '.$product->stats_expedition['qty'];
+        }
 
-		// If stock if stock increment is done on
-		// TODO Add information when stock increment is done on other option
+        // Number of supplier order running
+        if (! empty($conf->fournisseur->enabled)) {
+            if ($found) print '<br>'; else $found=1;
+            $result=$product->load_stats_commande_fournisseur(0,'3,4');
+            print $langs->trans("SuppliersOrdersRunning").': '.$product->stats_commande_fournisseur['qty'];
+            $result=$product->load_stats_commande_fournisseur(0,'0,1,2');
+            if ($result < 0) dol_print_error($db,$product->error);
+            print ' ('.$langs->trans("DraftOrWaitingApproved").': '.$product->stats_commande_fournisseur['qty'].')';
+        }
 
-		// TODO Add also information on possible decrease stock accroding to stock decrease option
+	    // Number of product from supplier order already received (partial receipt)
+        if (! empty($conf->fournisseur->enabled)) {
+            if ($found) print '<br>'; else $found=1;
+            print $langs->trans("SuppliersReceiptRunning").': '.$product->stats_reception['qty'];
+        }
 
+        print '</td></tr>';
 
 		// Last movement
 		$sql = "SELECT max(m.datem) as datem";
diff --git a/htdocs/projet/class/task.class.php b/htdocs/projet/class/task.class.php
index 7730abb77cc79830ca6cb79159f5bf963f48b80b..e3e6373962b0122c1e8f4049e5c65a2ab9c2a49c 100644
--- a/htdocs/projet/class/task.class.php
+++ b/htdocs/projet/class/task.class.php
@@ -770,7 +770,7 @@ class Task extends CommonObject
         if ($this->db->query($sql) )
         {
             $tasktime_id = $this->db->last_insert_id(MAIN_DB_PREFIX."projet_task_time");
-            $ret = $tasktme_id;
+            $ret = $tasktime_id;
 
             if (! $notrigger)
             {
@@ -801,10 +801,7 @@ class Task extends CommonObject
                 $this->db->rollback();
                 $ret = -2;
             }
-        }
-
-		if ($ret >= 0)
-        {
+        
             $sql = "UPDATE ".MAIN_DB_PREFIX."projet_task_time";
             $sql.= " SET thm = (SELECT thm FROM ".MAIN_DB_PREFIX."user WHERE rowid = ".$this->timespent_fk_user.")";
             $sql.= " WHERE rowid = ".$tasktime_id;
diff --git a/htdocs/resource/class/html.formresource.class.php b/htdocs/resource/class/html.formresource.class.php
index 241d440cc0f64b4a0955c890bde7f8216ae0231c..ca01963e30bb3a3a9b53ed279b06475d934a9153 100644
--- a/htdocs/resource/class/html.formresource.class.php
+++ b/htdocs/resource/class/html.formresource.class.php
@@ -1,19 +1,20 @@
 <?php
 /* Copyright (C) - 2013	Jean-François FERRY	<jfefe@aternatik.fr>
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * or see http://www.gnu.org/
+ */
 
 /**
  *       \file       place/class/html.place.class.php
diff --git a/htdocs/resource/class/resource.class.php b/htdocs/resource/class/resource.class.php
index e947b4e7ed9d63e58a73bdc848fc7c4a8db6329e..19768f569e39f56309be20bbff766b07cea82cfb 100644
--- a/htdocs/resource/class/resource.class.php
+++ b/htdocs/resource/class/resource.class.php
@@ -23,8 +23,8 @@
  */
 
 // Put here all includes required by your class file
-require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php");
-
+require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php";
+require_once DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php";
 
 /**
  *	DAO Resource object
@@ -329,7 +329,7 @@ class Resource extends CommonObject
     function delete($rowid, $notrigger=0)
     {
         global $user,$langs,$conf;
-    
+
         $error=0;
 
         if (! $notrigger)
@@ -339,10 +339,10 @@ class Resource extends CommonObject
             if ($result < 0) return -1;
             // End call triggers
         }
-        
+
         $sql = "DELETE FROM ".MAIN_DB_PREFIX."resource";
         $sql.= " WHERE rowid =".$rowid;
-    
+
         dol_syslog(get_class($this)."::delete", LOG_DEBUG);
         if ($this->db->query($sql))
         {
@@ -364,7 +364,7 @@ class Resource extends CommonObject
             return -1;
         }
     }
-    
+
     /**
      *	Load resource objects into $this->lines
      *
@@ -500,9 +500,9 @@ class Resource extends CommonObject
    					$line->fk_user_create	=	$obj->fk_user_create;
 
 					if($obj->resource_id && $obj->resource_type)
-						$line->objresource = $this->fetchObjectByElement($obj->resource_id,$obj->resource_type);
+						$line->objresource = fetchObjectByElement($obj->resource_id,$obj->resource_type);
 					if($obj->element_id && $obj->element_type)
-						$line->objelement = $this->fetchObjectByElement($obj->element_id,$obj->element_type);
+						$line->objelement = fetchObjectByElement($obj->element_id,$obj->element_type);
         			$this->lines[$i] = $line;
 
    					$i++;
@@ -584,7 +584,7 @@ class Resource extends CommonObject
     				$line->mandatory		=	$obj->mandatory;
     				$line->fk_user_create	=	$obj->fk_user_create;
 
-    				$this->lines[$i] = $this->fetchObjectByElement($obj->resource_id,$obj->resource_type);
+    				$this->lines[$i] = fetchObjectByElement($obj->resource_id,$obj->resource_type);
 
     				$i++;
     			}
@@ -732,7 +732,7 @@ class Resource extends CommonObject
 			{
                 // Call trigger
                 $result=$this->call_trigger('RESOURCE_MODIFY',$user);
-                if ($result < 0) $error++;          
+                if ($result < 0) $error++;
                 // End call triggers
 	    	}
 		}
@@ -802,7 +802,7 @@ class Resource extends CommonObject
     	$i=0;
     	foreach($resources as $nb => $resource)
     	{
-    		$this->lines[$i] = $this->fetchObjectByElement($resource['resource_id'],$resource['resource_type']);
+    		$this->lines[$i] = fetchObjectByElement($resource['resource_id'],$resource['resource_type']);
     		$i++;
     	}
     	return $i;
diff --git a/htdocs/societe/notify/card.php b/htdocs/societe/notify/card.php
index 542a2066e93220b2cabe7add1bd73f09bc7b5b9b..1845669dcfc8406ab11cae0a00e3eb395c20b674 100644
--- a/htdocs/societe/notify/card.php
+++ b/htdocs/societe/notify/card.php
@@ -1,7 +1,7 @@
 <?php
 /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
- * Copyright (C) 2010-2012 Juanjo Menent		<jmenent@2byte.es>
+ * Copyright (C) 2010-2014 Juanjo Menent		<jmenent@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -376,7 +376,7 @@ if ($result > 0)
     print '</tr>';
 
     // List
-    $sql = "SELECT n.rowid, n.daten, n.email, n.objet_type, n.objet_id as object_id, n.type,";
+    $sql = "SELECT n.rowid, n.daten, n.email, n.objet_type as object_type, n.objet_id as object_id, n.type,";
     $sql.= " c.rowid as id, c.lastname, c.firstname, c.email as contactemail,";
     $sql.= " a.code, a.label";
     $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,";
diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php
index d9c5e70283cd797178c7de1b0d049c10c43cffc2..0a5a9303d902e34398228b3c35a91c8f517034ae 100644
--- a/htdocs/societe/soc.php
+++ b/htdocs/societe/soc.php
@@ -520,6 +520,7 @@ if (empty($reshook))
     // Actions to send emails
     $id=$socid;
     $actiontypecode='AC_OTH_AUTO';
+    $trigger_name='COMPANY_SENTBYMAIL';
     $paramname='socid';
     $mode='emailfromthirdparty';
     include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
diff --git a/htdocs/theme/.gitignore b/htdocs/theme/.gitignore
index fab0672d5988916e19863d86e9b0fc259e3e853f..bad6db7e4d2ec7810d07d4ec9ad58e973967f103 100644
--- a/htdocs/theme/.gitignore
+++ b/htdocs/theme/.gitignore
@@ -1 +1,2 @@
 /bootstrap
+/oblyon
diff --git a/htdocs/theme/eldy/.gitignore b/htdocs/theme/eldy/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..134509791a9099d23e62b6554e6f388f5f4aca91
--- /dev/null
+++ b/htdocs/theme/eldy/.gitignore
@@ -0,0 +1 @@
+/*.new
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index 0f5644dc4061170aba822c41d7bd0a5678a0e573..5a3696f338ff8d1efc34cbb494074f78c9e00c1c 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -424,6 +424,10 @@ th .button {
 	border-radius: 10px;
 }
 
+.borderrightlight
+{
+	border-right: 1px solid #DDD;
+}
 
 /* ============================================================================== */
 /* Styles to hide objects                                                         */
@@ -862,7 +866,7 @@ form#login {
 	max-width: 540px;
 
 	background-color: #FFFFFF;
-	
+
 	-moz-box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(60,60,60,0.15);
 	-webkit-box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(60,60,60,0.15);
 	box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(60,60,60,0.15);
@@ -872,7 +876,7 @@ form#login {
 
 	border-radius: 8px;
 	border:solid 1px rgba(80,80,80,.4);
-	
+
 	border-top:solid 1px f8f8f8;
 	/*
 	background-color: #f8f8f8;
@@ -893,6 +897,13 @@ div#login_left, div#login_right {
 table.login_table tr td table.none tr td {
 	padding: 2px;
 }
+table.login_table_securitycode {
+	border-spacing: 0px;
+}
+table.login_table_securitycode tr td {
+	padding-left: 0px;
+	padding-right: 4px;
+}
 #securitycode {
 	min-width: 60px;
 }
diff --git a/htdocs/user/card.php b/htdocs/user/card.php
index 4760f73f85540adb360dd8b94f41d7ac75d3ab10..9c2290cc6292d9b568a8e2ff073ee6be8c4a6ae7 100644
--- a/htdocs/user/card.php
+++ b/htdocs/user/card.php
@@ -36,7 +36,8 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
-if (! empty($conf->agenda->enabled))require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
+//if (! empty($conf->agenda->enabled))require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
 if (! empty($conf->ldap->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/ldap.class.php';
 if (! empty($conf->adherent->enabled)) require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
 if (! empty($conf->multicompany->enabled)) dol_include_once('/multicompany/class/actions_multicompany.class.php');
diff --git a/htdocs/webservices/server_thirdparty.php b/htdocs/webservices/server_thirdparty.php
index 2d104eb96a1f01d78aeb61e1233f5fd3fb8b9586..696723f7247196a0e946c638b3f786836f83d6af 100644
--- a/htdocs/webservices/server_thirdparty.php
+++ b/htdocs/webservices/server_thirdparty.php
@@ -460,7 +460,7 @@ function createThirdParty($authentication,$thirdparty)
         $result=$newobject->create($fuser);
         if ($newobject->particulier && $result > 0) {
             $newobject->firstname = $thirdparty['firstname'];
-            $newobject->name_bis = $thirdparty['ref'];
+            $newobject->name_bis = $thirdparty['lastname'];
             $result = $newobject->create_individual($fuser);
         }
         if ($result <= 0)