diff --git a/ChangeLog b/ChangeLog index 38a1ca70d40..b3ef7d205e2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,9 @@ English Dolibarr ChangeLog ***** ChangeLog for 3.3 compared to 3.2.3 ***** For users: +- New: Add holiday module, to declare and follow holidays of your employees. +- New: Add margin management module. +- New: Add new theme Amarok. - New: [ task #289 ] Can reorder tasks. - New: Add field "signature" into user card. If filled, text is added at end of predefined email texts. If option MAIN_MAIL_DO_NOT_USE_SIGN is on, this @@ -69,13 +72,10 @@ For users: - New: [ task #608 ] Can clone a supplier order with prices updates - New: [ task #559 ] Can define a discount % regarding quantity in supplier prices and price by quantity in customer prices - New: [ task #527 ] After cloning a suplier invoice, go onto invoice ref into edit mode -- New: Add new theme Amarok. -New experimental modules: -- New: Add margin management module. +New experimental module: - New: Add commissions management module. - - Fix: [ bug #499 ] Supplier order input method not translated - Fix: No images into product description lines as PDF generation does not work with this. - Fix: Errors weren't being shown in customer's & supplier's orders diff --git a/build/exe/doliwamp/doliwamp.iss b/build/exe/doliwamp/doliwamp.iss index c9e8535529a..1dd37f24700 100644 --- a/build/exe/doliwamp/doliwamp.iss +++ b/build/exe/doliwamp/doliwamp.iss @@ -22,8 +22,9 @@ AppVerName=DoliWamp-3.3.0-beta OutputBaseFilename=DoliWamp-3.3.0-beta ; Define full path from wich all relative path are defined ; You must modify this to put here your dolibarr root directory -;SourceDir=C:\Documents and Settings\ldestail\git\dolibarr_old -SourceDir=Z:\home\ldestail\git\dolibarr +;SourceDir=C:\Documents and Settings\ldestailleur\git\dolibarr_old +;SourceDir=Z:\home\ldestailleur\git\dolibarr_veryold +SourceDir=..\..\.. ; ----- End of change ;OutputManifestFile=build\doliwampbuild.log AppId=doliwamp @@ -102,14 +103,14 @@ Source: "build\exe\doliwamp\UsedPort.exe"; DestDir: "{app}\"; Flags: ignoreversi ; Put here path of Wampserver applications ; Value OK: apache 2.2.6, php 5.2.5 (5.2.11, 5.3.0 and 5.3.1 fails if php_exif, php_pgsql, php_zip is on), mysql 5.0.45 or 5.1.36 ; Value OK: apache 2.2.11, php 5.3.0 (if no php_exif, php_pgsql, php_zip), mysql 5.0.45 or 5.1.36 -Source: "C:\Program Files\Wamp\apps\phpmyadmin3.2.0.1\*.*"; DestDir: "{app}\apps\phpmyadmin3.2.0.1"; Flags: ignoreversion recursesubdirs; Excludes: "config.inc.php,wampserver.conf,*.log,*_log" +Source: "C:\Program Files\Wamp\apps\phpmyadmin3.2.0.1\*.*"; DestDir: "{app}\apps\phpmyadmin3.2.0.1"; Flags: ignoreversion recursesubdirs; Excludes: "config.inc.php,wampserver.conf,*.log,*_log,darkblue_orange" Source: "C:\Program Files\Wamp\bin\apache\apache2.2.11\*.*"; DestDir: "{app}\bin\apache\apache2.2.11"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log" Source: "C:\Program Files\Wamp\bin\php\php5.3.0\*.*"; DestDir: "{app}\bin\php\php5.3.0"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log" Source: "C:\Program Files\Wamp\bin\mysql\mysql5.0.45\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe" ; Mysql data files (does not overwrite if exists) Source: "build\exe\doliwamp\mysql\*.*"; DestDir: "{app}\bin\mysql\data\mysql"; Flags: onlyifdoesntexist ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" ; Dolibarr -Source: "htdocs\*.*"; DestDir: "{app}\www\dolibarr\htdocs"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,custom\*,custom2\*,PHPExcel\Shared\PDF\*,PHPExcel\Shared\PCLZip\*,*\conf.php,*\conf.php.mysql,*\conf.php.old,*\conf.php.postgres,*\install.forced.php" +Source: "htdocs\*.*"; DestDir: "{app}\www\dolibarr\htdocs"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,custom\*,custom2\*,documents\*,includes\savant\*,includes\phpmailer\*,jquery\plugins\template\*,PHPExcel\Shared\PDF\*,PHPExcel\Shared\PCLZip\*,tcpdf\fonts\dejavu-fonts-ttf-2.33\*,tcpdf\fonts\freefont-20100919\*,tcpdf\fonts\utils\*,*\conf.php,*\conf.php.mysql,*\conf.php.old,*\conf.php.postgres,*\conf.php.sav,*\install.forced.php" Source: "dev\*.*"; DestDir: "{app}\www\dolibarr\dev"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,dbmodel\*,fpdf\*,initdata\*,iso-normes\*,licence\*,phpcheckstyle\*,phpunit\*,samples\*,test\*,uml\*,xdebug\*" Source: "doc\*.*"; DestDir: "{app}\www\dolibarr\doc"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,wiki\*,plaquette\*,dev\*,images\dolibarr_screenshot2.png,images\dolibarr_screenshot3.png,images\dolibarr_screenshot4.png,images\dolibarr_screenshot5.png,images\dolibarr_screenshot6.png,images\dolibarr_screenshot7.png,images\dolibarr_screenshot8.png,images\dolibarr_screenshot9.png,images\dolibarr_screenshot10.png,images\dolibarr_screenshot11.png,images\dolibarr_screenshot12.png" Source: "scripts\*.*"; DestDir: "{app}\www\dolibarr\scripts"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,product\materiel.net.php,product\import-product.php" diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl index 2ef0117609c..09e4c1b56aa 100755 --- a/build/makepack-dolibarr.pl +++ b/build/makepack-dolibarr.pl @@ -45,7 +45,7 @@ if (-d "/usr/src/RPM") { $RPMDIR="/usr/src/RPM"; } # mandrake use vars qw/ $REVISION $VERSION /; -$VERSION="3.2"; +$VERSION="3.3"; diff --git a/htdocs/conf/conf.php.example b/htdocs/conf/conf.php.example index 98cb5e96dc3..fdc28d2c1fc 100644 --- a/htdocs/conf/conf.php.example +++ b/htdocs/conf/conf.php.example @@ -199,10 +199,11 @@ $dolibarr_main_authentication='dolibarr'; // dolibarr_main_force_https // This parameter allows to force the HTTPS mode. // 0 = No forced redirect -// 1 = Force redirect to https until SCRIPT_URI start with https -// 2 = Force redirect to https until SERVER["HTTPS"] is 'on' +// 1 = Force redirect to https, until SCRIPT_URI start with https into response +// 2 = Force redirect to https, until SERVER["HTTPS"] is 'on' into response // Warning: If you enable this parameter, your web server must be configured -// to respond URL with https protocol. +// to respond URL with https protocol. Try different values (1,2) if you +// experience problems. // Default value: 0 // Possible values: 0, 1 or 2 // Examples: @@ -263,6 +264,17 @@ $dolibarr_main_db_prefix=''; // Examples: // $dolibarr_strict_mode=0; +// dolibarr_pdf_force_fpdf +// Set this to 1 to use the libray FPDF instead of TCPDF. FPDF is not embedded with Dolibarr, +// so you also have to uncomment line $dolibarr_lib_FPDF_PATH to provide path to FPDF library. +// Warning: FPDF does not support all features supported by TCPDF used by default. So using +// this library instead of TCPF will break some features like transparent logo, cyrillic, arab, +// and asiatic languages, total number of pages, ... +// Default value: 0 +// Examples: +// $dolibarr_pdf_force_fpdf=1; + + //################################# // Path to external libraries/fonts @@ -270,13 +282,14 @@ $dolibarr_main_db_prefix=''; // Value to overwrite path to use shared libraries instead of embedded one //$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; +//$dolibarr_lib_TCPDF_PATH='/usr/share/php/tcpdf'; //$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; +//$dolibarr_lib_FPDF_PATH='/usr/share/php/fpdf'; //$dolibarr_lib_GEOIP_PATH=''; //$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; //$dolibarr_lib_PHPEXCEL_PATH=''; //$dolibarr_lib_ODTPHP_PATH=''; //$dolibarr_lib_ODTPHP_PATHTOPCLZIP="/usr/share/php/libphp-pclzip"; -//$dolibarr_lib_TCPDF_PATH=''; // Value to overwrite path to use shared javascript instead of embedded one //$dolibarr_js_CKEDITOR='/javascript/ckeditor'; //$dolibarr_js_JQUERY='/javascript/jquery'; @@ -292,6 +305,7 @@ $dolibarr_main_db_prefix=''; //############################## // multicompany_transverse_mode +// Prerequisite: Need external module "multicompany" // Pyramidal (0): The rights and groups are managed in each entity, // users belong to the entity for their rights. // Transversal (1): The groups can belong only to the master entity diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index 991a296eefc..538599c72db 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -722,18 +722,13 @@ class pdf_einstein extends ModelePDFCommandes //Local tax 1 before VAT if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') { - foreach( $this->localtax1 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '1': - case '3': - case '5': - case '7': - continue 2; - break; - } + foreach( $this->localtax1 as $localtax_type => $localtax_rate ) + { + // TODO: Place into a function to control showing by country or study better option + if (in_array((string) $localtax_type, array('1','3','5','7')) && $mysoc->country_code != 'ES') continue; foreach( $localtax_rate as $tvakey => $tvaval ) { - if ($tvakey>0) // On affiche pas taux 0 + if ($tvakey!=0) // On affiche pas taux 0 { //$this->atleastoneratenotnull++; @@ -756,21 +751,16 @@ class pdf_einstein extends ModelePDFCommandes } } } - //Local tax 2 before VAT + //Local tax 2 before VAT if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') { - foreach( $this->localtax2 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '1': - case '3': - case '5': - case '7': - continue 2; - break; - } + foreach( $this->localtax2 as $localtax_type => $localtax_rate ) + { + // TODO: Place into a function to control showing by country or study better option + if (in_array((string) $localtax_type, array('1','3','5','7')) && $mysoc->country_code != 'ES') continue; foreach( $localtax_rate as $tvakey => $tvaval ) { - if ($tvakey>0) // On affiche pas taux 0 + if ($tvakey!=0) // On affiche pas taux 0 { //$this->atleastoneratenotnull++; @@ -824,14 +814,10 @@ class pdf_einstein extends ModelePDFCommandes //Local tax 1 after VAT if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') { - foreach( $this->localtax1 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '2': - case '4': - case '6': - continue 2; - break; - } + foreach( $this->localtax1 as $localtax_type => $localtax_rate ) + { + if (in_array((string) $localtax_type, array('2','4','6'))) continue; + foreach( $localtax_rate as $tvakey => $tvaval ) { if ($tvakey>0) // On affiche pas taux 0 @@ -865,17 +851,13 @@ class pdf_einstein extends ModelePDFCommandes } } } - //Local tax 2 after VAT + //Local tax 2 after VAT if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') { - foreach( $this->localtax2 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '2': - case '4': - case '6': - continue 2; - break; - } + foreach( $this->localtax2 as $localtax_type => $localtax_rate ) + { + if (in_array((string) $localtax_type, array('2','4','6'))) continue; + foreach( $localtax_rate as $tvakey => $tvaval ) { if ($tvakey>0) // On affiche pas taux 0 diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index e5c2ae7cf5d..4d4a42d4579 100755 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -852,18 +852,14 @@ class pdf_crabe extends ModelePDFFactures //Local tax 1 before VAT if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') { - foreach( $this->localtax1 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '1': - case '3': - case '5': - case '7': - continue 2; - break; - } + foreach( $this->localtax1 as $localtax_type => $localtax_rate ) + { + // TODO: Place into a function to control showing by country or study better option + if (in_array((string) $localtax_type, array('1','3','5','7')) && $mysoc->country_code != 'ES') continue; + foreach( $localtax_rate as $tvakey => $tvaval ) { - if ($tvakey>0) // On affiche pas taux 0 + if ($tvakey!=0) // On affiche pas taux 0 { //$this->atleastoneratenotnull++; @@ -885,22 +881,18 @@ class pdf_crabe extends ModelePDFFactures } } } - } - //Local tax 2 before VAT + } + //Local tax 2 before VAT if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') { - foreach( $this->localtax2 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '1': - case '3': - case '5': - case '7': - continue 2; - break; - } + foreach( $this->localtax2 as $localtax_type => $localtax_rate ) + { + // TODO: Place into a function to control showing by country or study better option + if (in_array((string) $localtax_type, array('1','3','5','7')) && $mysoc->country_code != 'ES') continue; + foreach( $localtax_rate as $tvakey => $tvaval ) { - if ($tvakey>0) // On affiche pas taux 0 + if ($tvakey!=0) // On affiche pas taux 0 { //$this->atleastoneratenotnull++; @@ -954,14 +946,10 @@ class pdf_crabe extends ModelePDFFactures //Local tax 1 after VAT if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') { - foreach( $this->localtax1 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '2': - case '4': - case '6': - continue 2; - break; - } + foreach( $this->localtax1 as $localtax_type => $localtax_rate ) + { + if (in_array((string) $localtax_type, array('2','4','6'))) continue; + foreach( $localtax_rate as $tvakey => $tvaval ) { if ($tvakey>0) // On affiche pas taux 0 @@ -995,17 +983,13 @@ class pdf_crabe extends ModelePDFFactures } } } - //Local tax 2 after VAT + //Local tax 2 after VAT if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') { - foreach( $this->localtax2 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '2': - case '4': - case '6': - continue 2; - break; - } + foreach( $this->localtax2 as $localtax_type => $localtax_rate ) + { + if (in_array((string) $localtax_type, array('2','4','6'))) continue; + foreach( $localtax_rate as $tvakey => $tvaval ) { // retrieve global local tax diff --git a/htdocs/core/modules/modCategorie.class.php b/htdocs/core/modules/modCategorie.class.php index 823a0facfb5..dbf7b5b5920 100644 --- a/htdocs/core/modules/modCategorie.class.php +++ b/htdocs/core/modules/modCategorie.class.php @@ -1,6 +1,6 @@ - * Copyright (C) 2005-2010 Laurent Destailleur + * Copyright (C) 2005-2012 Laurent Destailleur * Copyright (C) 2012 Juanjo Menent * * This program is free software; you can redistribute it and/or modify @@ -178,14 +178,19 @@ class modCategorie extends DolibarrModules $this->import_fields_array[$r]=array('ca.label'=>"Label*",'ca.type'=>"Type*",'ca.description'=>"Description"); $this->import_regex_array[$r]=array('ca.type'=>'^[0|1|2|3]'); - $this->import_examplevalues_array[$r]=array('ca.label'=>"Supplier Category",'ca.type'=>"1",'ca.description'=>"Imported category"); + $typeexample=""; + if ($conf->product->enabled) { $typeexample.=($typeexample?"/":"")."0=Product"; } + if ($conf->fournisseur->enabled) { $typeexample.=($typeexample?"/":"")."1=Supplier"; } + if ($conf->societe->enabled) { $typeexample.=($typeexample?"/":"")."2=Customer-Prospect"; } + if ($conf->adherent->enabled) { $typeexample.=($typeexample?"/":"")."3=Member"; } + $this->import_examplevalues_array[$r]=array('ca.label'=>"Supplier Category",'ca.type'=>$typeexample,'ca.description'=>"Imported category"); if (! empty($conf->product->enabled)) { //Products $r++; $this->import_code[$r]=$this->rights_class.'_'.$r; - $this->import_label[$r]="CatProdList"; // Translation key + $this->import_label[$r]="CatProdLinks"; // Translation key $this->import_icon[$r]=$this->picto; $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_tables_array[$r]=array('cp'=>MAIN_DB_PREFIX.'categorie_product'); @@ -204,7 +209,7 @@ class modCategorie extends DolibarrModules //Customers $r++; $this->import_code[$r]=$this->rights_class.'_'.$r; - $this->import_label[$r]="CatCusList"; // Translation key + $this->import_label[$r]="CatCusLinks"; // Translation key $this->import_icon[$r]=$this->picto; $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_tables_array[$r]=array('cs'=>MAIN_DB_PREFIX.'categorie_societe'); @@ -223,7 +228,7 @@ class modCategorie extends DolibarrModules // Suppliers $r++; $this->import_code[$r]=$this->rights_class.'_'.$r; - $this->import_label[$r]="CatSupList"; // Translation key + $this->import_label[$r]="CatSupLinks"; // Translation key $this->import_icon[$r]=$this->picto; $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_tables_array[$r]=array('cs'=>MAIN_DB_PREFIX.'categorie_fournisseur'); diff --git a/htdocs/core/modules/modECM.class.php b/htdocs/core/modules/modECM.class.php index dbd796985d9..a89f2a40213 100644 --- a/htdocs/core/modules/modECM.class.php +++ b/htdocs/core/modules/modECM.class.php @@ -170,6 +170,7 @@ class modECM extends DolibarrModules 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both $r++; + /* $this->menu[$r]=array('fk_menu'=>'r=1', 'type'=>'left', 'titre'=>'Search', @@ -181,7 +182,8 @@ class modECM extends DolibarrModules 'enabled'=>'$user->rights->ecm->read', 'target'=>'', 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both - $r++; + + $r++;*/ } diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index a9277c90dd7..3a99182f47f 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -755,18 +755,14 @@ class pdf_azur extends ModelePDFPropales //Local tax 1 before VAT if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') { - foreach( $this->localtax1 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '1': - case '3': - case '5': - case '7': - continue 2; - break; - } + foreach( $this->localtax1 as $localtax_type => $localtax_rate ) + { + // TODO: Place into a function to control showing by country or study better option + if (in_array((string) $localtax_type, array('1','3','5','7')) && $mysoc->country_code != 'ES') continue; + foreach( $localtax_rate as $tvakey => $tvaval ) { - if ($tvakey>0) // On affiche pas taux 0 + if ($tvakey!=0) // On affiche pas taux 0 { //$this->atleastoneratenotnull++; @@ -788,22 +784,18 @@ class pdf_azur extends ModelePDFPropales } } } - } - //Local tax 2 before VAT + } + //Local tax 2 before VAT if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') { - foreach( $this->localtax2 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '1': - case '3': - case '5': - case '7': - continue 2; - break; - } + foreach( $this->localtax2 as $localtax_type => $localtax_rate ) + { + // TODO: Place into a function to control showing by country or study better option + if (in_array((string) $localtax_type, array('1','3','5','7')) && $mysoc->country_code != 'ES') continue; + foreach( $localtax_rate as $tvakey => $tvaval ) { - if ($tvakey>0) // On affiche pas taux 0 + if ($tvakey!=0) // On affiche pas taux 0 { //$this->atleastoneratenotnull++; @@ -857,14 +849,10 @@ class pdf_azur extends ModelePDFPropales //Local tax 1 after VAT if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') { - foreach( $this->localtax1 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '2': - case '4': - case '6': - continue 2; - break; - } + foreach( $this->localtax1 as $localtax_type => $localtax_rate ) + { + if (in_array((string) $localtax_type, array('2','4','6'))) continue; + foreach( $localtax_rate as $tvakey => $tvaval ) { if ($tvakey>0) // On affiche pas taux 0 @@ -898,17 +886,13 @@ class pdf_azur extends ModelePDFPropales } } } - //Local tax 2 after VAT + //Local tax 2 after VAT if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') { - foreach( $this->localtax2 as $localtax_type => $localtax_rate ) { - switch ($localtax_type) { - case '2': - case '4': - case '6': - continue 2; - break; - } + foreach( $this->localtax2 as $localtax_type => $localtax_rate ) + { + if (in_array((string) $localtax_type, array('2','4','6'))) continue; + foreach( $localtax_rate as $tvakey => $tvaval ) { if ($tvakey>0) // On affiche pas taux 0 diff --git a/htdocs/fichinter/fiche.php b/htdocs/fichinter/fiche.php index 1f27c594908..1c8eb84b40f 100644 --- a/htdocs/fichinter/fiche.php +++ b/htdocs/fichinter/fiche.php @@ -653,7 +653,7 @@ if ($action == 'send' && ! GETPOST('cancel','alpha') && (empty($conf->global->MA } else // Id du contact { - $sendto = $object->client->contact_get_email(GETPOST('receiver','alpha')); + $sendto = $object->client->contact_get_property(GETPOST('receiver'),'email'); $sendtoid = GETPOST('receiver','alpha'); } } diff --git a/htdocs/install/mysql/tables/llx_categorie.sql b/htdocs/install/mysql/tables/llx_categorie.sql index 215f147b7ff..0b6faec14aa 100644 --- a/htdocs/install/mysql/tables/llx_categorie.sql +++ b/htdocs/install/mysql/tables/llx_categorie.sql @@ -24,7 +24,7 @@ create table llx_categorie entity integer DEFAULT 1 NOT NULL, -- multi company id fk_parent integer DEFAULT 0 NOT NULL, label varchar(255) NOT NULL, -- category name - type tinyint DEFAULT 1 NOT NULL, -- category type (product, supplier, customer) + type tinyint DEFAULT 1 NOT NULL, -- category type (product, supplier, customer, member) description text, -- description of the category fk_soc integer DEFAULT NULL, -- attribution of the category has a company (for product only) visible tinyint DEFAULT 1 NOT NULL, -- determine if the products are visible or not diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index c572e1f69bd..b144352fcf2 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -257,7 +257,7 @@ ModuleFamilyHr=Recursos Humans ModuleFamilyProjects=Projectes/Treball cooperatiu ModuleFamilyOther=Altre ModuleFamilyTechnic=Mòduls eines o Sistema -ModuleFamilyExperimental=Mòduls experimentals (no utilitzar en producció) +ModuleFamilyExperimental=Mòduls experimentals ModuleFamilyFinancial=Mòduls financers (Comptabilitat/tresoreria) ModuleFamilyECM=Gestió Electrònica de Documents (GED) MenuHandlers=Gestors de menú diff --git a/htdocs/langs/en_US/categories.lang b/htdocs/langs/en_US/categories.lang index 1b7109b2a44..60267629de5 100644 --- a/htdocs/langs/en_US/categories.lang +++ b/htdocs/langs/en_US/categories.lang @@ -91,4 +91,8 @@ CategId=Category id CatSupList=List of supplier categories CatCusList=List of customer/prospect categories CatProdList=List of products categories -CatMemberList=List of members categories \ No newline at end of file +CatMemberList=List of members categories +CatSupLinks=Links between suppliers and categories +CatCusLinks=Links between customers/prospects and categories +CatProdLinks=Links between products/services and categories +CatMemberLinks=Links between members and categories \ No newline at end of file diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 0066f1db7c8..2c0cc6c36e1 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -257,7 +257,7 @@ ModuleFamilyHr=Recursos Humanos ModuleFamilyProjects=Proyectos/Trabajo cooperativo ModuleFamilyOther=Otro ModuleFamilyTechnic=Módulos herramientas o Sistema -ModuleFamilyExperimental=Módulos experimentales (no utilizar en producción) +ModuleFamilyExperimental=Módulos experimentales ModuleFamilyFinancial=Módulos financieros (Contabilidad/tesorería) ModuleFamilyECM=Gestión Electrónica de Documentos (GED) MenuHandlers=Gestores menú diff --git a/htdocs/langs/fr_FR/categories.lang b/htdocs/langs/fr_FR/categories.lang index 828354477bf..f0d0b515e80 100644 --- a/htdocs/langs/fr_FR/categories.lang +++ b/htdocs/langs/fr_FR/categories.lang @@ -91,4 +91,8 @@ CategId=Id catégorie CatSupList=Liste des catégories fournisseurs CatCusList=Liste des catégories clients/prospects CatProdList=Liste des catégories produits -CatMemberList=Liste des catégories adhérents \ No newline at end of file +CatMemberList=Liste des catégories adhérents +CatSupLinks=Liens entre les fournisseurs et les catégories +CatCusLinks=Liens entre les clients/prospects et les catégories +CatProdLinks=Liens entre les produits/services et les catégories +CatMemberLinks=Links entre les adhérents et les catégories \ No newline at end of file diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index 5d0665f7404..78a92d28d73 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -202,7 +202,7 @@ ModuleFamilyHr=Recursos Humanos ModuleFamilyProjects=Projetos/Trabalho cooperativo ModuleFamilyOther=Outro ModuleFamilyTechnic=Módulos ferramentas do sistema -ModuleFamilyExperimental=Módulos testes (não utilizar em produção) +ModuleFamilyExperimental=Módulos testes ModuleFamilyFinancial=Módulos financeiros (Contabilidade/Tesouraria) ModuleFamilyECM=ECM MenuHandlers=Configuradores menu diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang index 26e530e5f05..c9a0c81d20e 100644 --- a/htdocs/langs/pt_PT/admin.lang +++ b/htdocs/langs/pt_PT/admin.lang @@ -652,7 +652,7 @@ ModuleDisabledSoNoEvent = Módulo deficientes evento nunca criado ModuleFamilyBase = Sistema ModuleFamilyCrm = Gestão cliente (CRM) ModuleFamilyECM = ECM -ModuleFamilyExperimental = Módulos testes (não utilizar em produção) +ModuleFamilyExperimental = Módulos testes ModuleFamilyFinancial = Módulos financeiros (Contabilidade/Tesouraria) ModuleFamilyHr = Recursos Humanos ModuleFamilyOther = Outro diff --git a/htdocs/projet/jsgantt_language.js.php b/htdocs/projet/jsgantt_language.js.php index 0ce99e4f2c1..2108869d181 100644 --- a/htdocs/projet/jsgantt_language.js.php +++ b/htdocs/projet/jsgantt_language.js.php @@ -48,7 +48,7 @@ i18n["sDay"]= "transnoentities("Day") ?>"; i18n["sDays"]= "transnoentities("Days") ?>"; i18n["sWeek"] = "transnoentities("Week") ?>"; i18n["sMonth"] = "transnoentities("Month") ?>"; -i18n["sQuarter"] = "transnoentities("Quarter") ?>"; +i18n["sQuarter"] = "transnoentities("Quadri") ?>"; i18n["View"] = "transnoentities("View") ?>"; i18n["Resource"] = "transnoentities("Resources") ?>"; i18n["Duration"] = "transnoentities("Duration") ?>"; diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index 3bb4e558e05..398f5f3c180 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -1848,7 +1848,7 @@ div.titre { font-weight: bold; color: rgb(); text-decoration: none; - text-shadow: 1px 1px 2px #CFCFCF; + text-shadow: 1px 1px 2px #FFFFfF; } #dolpaymenttable { width: 600px; font-size: 13px; }