Merge branch '3.4' of git@github.com:Dolibarr/dolibarr.git into 3.4

This commit is contained in:
Laurent Destailleur 2013-07-10 23:05:13 +02:00
commit 4c39bc9997
23 changed files with 1440 additions and 1436 deletions

View File

@ -56,6 +56,8 @@ For users:
- New: [ task #823 ] Shipping_validate email notification. - New: [ task #823 ] Shipping_validate email notification.
- New: [ task #900 ] Review code of ficheinter.class.php - New: [ task #900 ] Review code of ficheinter.class.php
- Fix: [Bug #958] LocalTax2 for Spain fails on Suppliers - Fix: [Bug #958] LocalTax2 for Spain fails on Suppliers
- Fix: [ bug #972 ] Auto completion contact field do not take account the min caract number before search
- Fix : [ bug #971 ] html.form.class.php select_contact with autocomplete do not exclude id from exclude array
For translators: For translators:
- Update language files. - Update language files.

1
README
View File

@ -132,7 +132,6 @@ This is features that Dolibarr does not support completely yet:
- No accountancy (only bank management). - No accountancy (only bank management).
- Dolibarr manage one currency at once (mono-currency). - Dolibarr manage one currency at once (mono-currency).
- Dolibarr manage one company/foundation (mono-company). If you want to manage several companies or foundations, you must install several time the software (on same server or not). Another solution is to extend Dolibarr with the addon Module MultiCompany that allows to manage several companies in one Dolibarr instance (one database but with a logical isolation of datas). - Dolibarr manage one company/foundation (mono-company). If you want to manage several companies or foundations, you must install several time the software (on same server or not). Another solution is to extend Dolibarr with the addon Module MultiCompany that allows to manage several companies in one Dolibarr instance (one database but with a logical isolation of datas).
- Does not support double VAT (Federal / provincial) for Canada.
- Dolibarr does not contains Payroll module. - Dolibarr does not contains Payroll module.
- Tasks on module project can't have dependencies between each other. - Tasks on module project can't have dependencies between each other.
- Dolibarr does not include any Webmail. - Dolibarr does not include any Webmail.

View File

@ -122,7 +122,6 @@ Voici un liste de fonctionnalites pas encore gérées par Dolibarr:
- Pas de compta analytique (uniquement gestion de trésorerie). - Pas de compta analytique (uniquement gestion de trésorerie).
- Dolibarr ne gère qu'une seule monnaie à la fois (mono-devise). - Dolibarr ne gère qu'une seule monnaie à la fois (mono-devise).
- Dolibarr ne gère en standard qu'une société/institution/association mère (mono-société). Pour en gérer plusieurs (comme vos filiales), il faut, soit faire plusieurs installations de Dolibarr, soit installer le module MultiCompany qui permet de gérer n société/institutions/associations dans une seule instance par une isolation logique des données. - Dolibarr ne gère en standard qu'une société/institution/association mère (mono-société). Pour en gérer plusieurs (comme vos filiales), il faut, soit faire plusieurs installations de Dolibarr, soit installer le module MultiCompany qui permet de gérer n société/institutions/associations dans une seule instance par une isolation logique des données.
- Ne gère pas la double tva (Fédérale / provinciale) du canada.
- Dolibarr ne contient pas de module de Gestion de la paie. - Dolibarr ne contient pas de module de Gestion de la paie.
- Les taches du module de gestion de projets n'ont pas de dépendance entre elle. - Les taches du module de gestion de projets n'ont pas de dépendance entre elle.
- Dolibarr ne contient pas de Webmail. - Dolibarr ne contient pas de Webmail.

View File

@ -17,9 +17,9 @@
; ----- Change this ----- ; ----- Change this -----
AppName=DoliWamp AppName=DoliWamp
; DoliWamp-x.x.x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x ; DoliWamp-x.x.x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x
AppVerName=DoliWamp-3.4.0-beta AppVerName=DoliWamp-3.4.0
; DoliWamp-x.x x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x ; DoliWamp-x.x x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x
OutputBaseFilename=DoliWamp-3.4.0-beta OutputBaseFilename=DoliWamp-3.4.0
; Define full path from wich all relative path are defined ; Define full path from wich all relative path are defined
; You must modify this to put here your dolibarr root directory ; You must modify this to put here your dolibarr root directory
;SourceDir=Z:\home\ldestailleur\git\dolibarrxxx ;SourceDir=Z:\home\ldestailleur\git\dolibarrxxx

View File

@ -10,7 +10,7 @@ use Cwd;
$PROJECT="dolibarr"; $PROJECT="dolibarr";
$MAJOR="3"; $MAJOR="3";
$MINOR="4"; $MINOR="4";
$BUILD="0-beta"; # Mettre x pour release, x-dev pour dev, x-beta pour beta, x-rc pour release candidate $BUILD="0"; # Mettre x pour release, x-dev pour dev, x-beta pour beta, x-rc pour release candidate
$RPMSUBVERSION="auto"; # auto use value found into BUILD $RPMSUBVERSION="auto"; # auto use value found into BUILD
@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","APS","EXEDOLIWAMP","SNAPSHOT"); # Possible packages @LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","APS","EXEDOLIWAMP","SNAPSHOT"); # Possible packages

View File

@ -9,13 +9,13 @@ beta version of Dolibarr, step by step.
- Check all files are commited. - Check all files are commited.
- Update version/info in /ChangeLog - Update version/info in /ChangeLog
- Update version number with x.x.x-y in htdocs/filefunc.inc.php - Update version number with x.y.z-w in htdocs/filefunc.inc.php
- Update version number with x.x.x-y in build/makepack-dolibarr.pl - Update version number with x.y.z-w in build/makepack-dolibarr.pl
- Update version number with x.x.x-y in build/debian/changelog - Update version number with x.y.z-w in build/debian/changelog
- Update version number with x.x.x-y in build/exe/doliwamp/doliwamp.iss - Update version number with x.y.z-w in build/exe/doliwamp/doliwamp.iss
- Update version number with x.x.x-y in build/rpm/*.spec - Update version number with x.y.z-w in build/rpm/*.spec
- Update version number with x.x.x in build/doxygen/dolibarr-doxygen.doxyfile - Update version number with x.y.z in build/doxygen/dolibarr-doxygen.doxyfile
- Update version number with x.x.x in build/perl/virtualmin/dolibarr.pl - Update version number with x.y.z in build/perl/virtualmin/dolibarr.pl
- Commit all changes. - Commit all changes.
- Add a Tag (x.y.betaz_YYYYMMDD) and push it: git push --tags - Add a Tag (x.y.betaz_YYYYMMDD) and push it: git push --tags
- Create a branch (x.y). - Create a branch (x.y).
@ -33,14 +33,14 @@ complete release of Dolibarr, step by step.
- Check all files are commited. - Check all files are commited.
- Update version/info in ChangeLog - Update version/info in ChangeLog
- Update version number with x.x.x in htdocs/filefunc.inc.php - Update version number with x.y.z in htdocs/filefunc.inc.php
- Update version number with x.x.x in build/makepack-dolibarr.pl - Update version number with x.y.z in build/makepack-dolibarr.pl
- Update version number with x.x.x in build/debian/changelog - Update version number with x.y.z in build/debian/changelog
- Update version number with x.x.x in build/exe/doliwamp/doliwamp.iss - Update version number with x.y.z in build/exe/doliwamp/doliwamp.iss
- Update version number with x.x.x in build/rpm/*.spec - Update version number with x.y.z in build/rpm/*.spec
- Update PAD files. - Update PAD files.
- Commit all changes. - Commit all changes.
- Add a Tag (DOLIBARR_x_y) - Add a Tag (x.y.z)
- Build Dolibarr and DoliWamp packages with makepack-dolibarr.pl - Build Dolibarr and DoliWamp packages with makepack-dolibarr.pl
- Check content of built packages. - Check content of built packages.

View File

@ -35,8 +35,8 @@
<Program_Info> <Program_Info>
<Program_Name>Dolibarr</Program_Name> <Program_Name>Dolibarr</Program_Name>
<Program_Version>3.4</Program_Version> <Program_Version>3.4</Program_Version>
<Program_Release_Month>05</Program_Release_Month> <Program_Release_Month>07</Program_Release_Month>
<Program_Release_Day>17</Program_Release_Day> <Program_Release_Day>07</Program_Release_Day>
<Program_Release_Year>2013</Program_Release_Year> <Program_Release_Year>2013</Program_Release_Year>
<Program_Cost_Dollars /> <Program_Cost_Dollars />
<Program_Cost_Other_Code /> <Program_Cost_Other_Code />

View File

@ -35,8 +35,8 @@
<Program_Info> <Program_Info>
<Program_Name>DoliWamp</Program_Name> <Program_Name>DoliWamp</Program_Name>
<Program_Version>3.4</Program_Version> <Program_Version>3.4</Program_Version>
<Program_Release_Month>05</Program_Release_Month> <Program_Release_Month>07</Program_Release_Month>
<Program_Release_Day>17</Program_Release_Day> <Program_Release_Day>07</Program_Release_Day>
<Program_Release_Year>2013</Program_Release_Year> <Program_Release_Year>2013</Program_Release_Year>
<Program_Cost_Dollars /> <Program_Cost_Dollars />
<Program_Cost_Other_Code /> <Program_Cost_Other_Code />

View File

@ -320,7 +320,7 @@ then
fi fi
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog %changelog
* Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.1.b * Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.3
- Initial version (#723326) - Initial version (#723326)

View File

@ -538,6 +538,7 @@ fi
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog %changelog
* Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.1.b * Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.3
- Initial version (#723326) - Initial version (#723326)

View File

@ -321,7 +321,7 @@ then
fi fi
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog %changelog
* Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.1.b * Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.3
- Initial version (#723326) - Initial version (#723326)

View File

@ -333,6 +333,7 @@ fi
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog %changelog
* Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.1.b * Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.3
- Initial version (#723326) - Initial version (#723326)

View File

@ -118,12 +118,12 @@ print '<br>';
print $langs->trans("NoteOnPathLocation").'<br>'; print $langs->trans("NoteOnPathLocation").'<br>';
$url1='http://www.maxmind.com/app/perl?rId=awstats'; $url1='http://www.maxmind.com/en/city?rId=awstats';
print $langs->trans("YouCanDownloadFreeDatFileTo",'<a href="'.$url1.'" target="_blank">'.$url1.'</a>'); print $langs->trans("YouCanDownloadFreeDatFileTo",'<a href="'.$url1.'" target="_blank">'.$url1.'</a>');
print '<br>'; print '<br>';
$url2='http://www.maxmind.com/app/perl?rId=awstats'; $url2='http://www.maxmind.com/en/city?rId=awstats';
print $langs->trans("YouCanDownloadAdvancedDatFileTo",'<a href="'.$url2.'" target="_blank">'.$url2.'</a>'); print $langs->trans("YouCanDownloadAdvancedDatFileTo",'<a href="'.$url2.'" target="_blank">'.$url2.'</a>');
if ($geoip) if ($geoip)

View File

@ -52,10 +52,10 @@ if ($action == 'update')
dolibarr_set_const($db, "MAIN_PDF_FORMAT", $_POST["MAIN_PDF_FORMAT"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_PDF_FORMAT", $_POST["MAIN_PDF_FORMAT"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_PROFID2_IN_ADDRESS", $_POST["MAIN_PROFID2_IN_ADDRESS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_PROFID1_IN_ADDRESS", $_POST["MAIN_PROFID1_IN_ADDRESS"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_PROFID2_IN_ADDRESS", $_POST["MAIN_PROFID2_IN_ADDRESS"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_PROFID3_IN_ADDRESS", $_POST["MAIN_PROFID3_IN_ADDRESS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_PROFID3_IN_ADDRESS", $_POST["MAIN_PROFID3_IN_ADDRESS"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_PROFID4_IN_ADDRESS", $_POST["MAIN_PROFID4_IN_ADDRESS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_PROFID4_IN_ADDRESS", $_POST["MAIN_PROFID4_IN_ADDRESS"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_PROFID4_IN_ADDRESS", $_POST["MAIN_PROFID4_IN_ADDRESS"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT", $_POST["MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT", $_POST["MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS", $_POST["MAIN_TVAINTRA_NOT_IN_ADDRESS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS", $_POST["MAIN_TVAINTRA_NOT_IN_ADDRESS"],'chaine',0,'',$conf->entity);

View File

@ -636,9 +636,9 @@ class Commande extends CommonOrder
$sql.= ", remise_absolue, remise_percent"; $sql.= ", remise_absolue, remise_percent";
$sql.= ", entity"; $sql.= ", entity";
$sql.= ")"; $sql.= ")";
$sql.= " VALUES ('(PROV)',".$this->socid.", ".$this->db->idate($now).", ".$user->id; $sql.= " VALUES ('(PROV)',".$this->socid.", '".$this->db->idate($now)."', ".$user->id;
$sql.= ", ".($this->fk_project?$this->fk_project:"null"); $sql.= ", ".($this->fk_project?$this->fk_project:"null");
$sql.= ", ".$this->db->idate($date); $sql.= ", '".$this->db->idate($date)."'";
$sql.= ", ".($this->source>=0 && $this->source != '' ?$this->source:'null'); $sql.= ", ".($this->source>=0 && $this->source != '' ?$this->source:'null');
$sql.= ", '".$this->db->escape($this->note_private)."'"; $sql.= ", '".$this->db->escape($this->note_private)."'";
$sql.= ", '".$this->db->escape($this->note_public)."'"; $sql.= ", '".$this->db->escape($this->note_public)."'";
@ -989,7 +989,7 @@ class Commande extends CommonOrder
$this->fetch($ret); $this->fetch($ret);
$this->valid($user); $this->valid($user);
} }
return 1; return $ret;
} }
else return -1; else return -1;
} }

View File

@ -892,7 +892,7 @@ class Form
if ($conf->use_javascript_ajax && $conf->global->CONTACT_USE_SEARCH_TO_SELECT && ! $forcecombo && ! $options_only) if ($conf->use_javascript_ajax && $conf->global->CONTACT_USE_SEARCH_TO_SELECT && ! $forcecombo && ! $options_only)
{ {
$out.= ajax_combobox($htmlname, $event); $out.= ajax_combobox($htmlname, $event, $conf->global->CONTACT_USE_SEARCH_TO_SELECT);
} }
if ($htmlname != 'none' || $options_only) $out.= '<select class="flat'.($moreclass?' '.$moreclass:'').'" id="'.$htmlname.'" name="'.$htmlname.'">'; if ($htmlname != 'none' || $options_only) $out.= '<select class="flat'.($moreclass?' '.$moreclass:'').'" id="'.$htmlname.'" name="'.$htmlname.'">';
@ -2517,6 +2517,7 @@ class Form
$.each(inputok, function(i, inputname) { $.each(inputok, function(i, inputname) {
var more = ""; var more = "";
if ($("#" + inputname).attr("type") == "checkbox") { more = ":checked"; } if ($("#" + inputname).attr("type") == "checkbox") { more = ":checked"; }
if ($("#" + inputname).attr("type") == "radio") { more = ":checked"; }
var inputvalue = $("#" + inputname + more).val(); var inputvalue = $("#" + inputname + more).val();
if (typeof inputvalue == "undefined") { inputvalue=""; } if (typeof inputvalue == "undefined") { inputvalue=""; }
options += "&" + inputname + "=" + inputvalue; options += "&" + inputname + "=" + inputvalue;

View File

@ -810,7 +810,7 @@ function confirmConstantAction(action, url, code, input, box, entity, yesButton,
minLength: this.options.minLengthToAutocomplete, minLength: this.options.minLengthToAutocomplete,
source: function( request, response ) { source: function( request, response ) {
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" ); var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
response( select.children( "option" ).map(function() { response( select.children( "option:enabled" ).map(function() {
var text = $( this ).text(); var text = $( this ).text();
if ( this.value && ( !request.term || matcher.test(text) ) ) if ( this.value && ( !request.term || matcher.test(text) ) )
return { return {

View File

@ -29,7 +29,7 @@
* \brief File that include conf.php file and commons lib like functions.lib.php * \brief File that include conf.php file and commons lib like functions.lib.php
*/ */
if (! defined('DOL_VERSION')) define('DOL_VERSION','3.4.0-beta'); if (! defined('DOL_VERSION')) define('DOL_VERSION','3.4.0');
if (! defined('EURO')) define('EURO',chr(128)); if (! defined('EURO')) define('EURO',chr(128));
// Define syslog constants // Define syslog constants

View File

@ -97,6 +97,7 @@ print "</table>\n";
$langs->load("commercial"); $langs->load("commercial");
$langs->load("bills"); $langs->load("bills");
$langs->load("orders"); $langs->load("orders");
$langs->load("contracts");
if ($user->societe_id == 0) if ($user->societe_id == 0)
{ {

View File

@ -211,8 +211,8 @@ INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (20
INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (2013, 201, '0', '0', 'VAT Rate 0', 1); INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (2013, 201, '0', '0', 'VAT Rate 0', 1);
-- SLOVENIA (id country=202) -- SLOVENIA (id country=202)
INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (2021, 202, '20', '0', 'VAT standard rate', 1); INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (2021, 202, '22', '0', 'VAT standard rate', 1);
INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (2022, 202,'8.5', '0', 'VAT reduced rate', 1); INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (2022, 202,'9.5', '0', 'VAT reduced rate', 1);
INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (2023, 202, '0', '0', 'VAT Rate 0', 1); INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (2023, 202, '0', '0', 'VAT Rate 0', 1);
-- SPAIN (id country=4) -- SPAIN (id country=4)

File diff suppressed because it is too large Load Diff

View File

@ -241,9 +241,9 @@ $sandboxpaypalurl='developer.paypal.com';
print '<div id="apidoc">'; print '<div id="apidoc">';
print 'Your API authentication information can be found with following steps. We recommend that you open a separate Web browser session when carrying out this procedure.<br> print 'Your API authentication information can be found with following steps. We recommend that you open a separate Web browser session when carrying out this procedure.<br>
1. Log in to your PayPal Premier or Business account (on real paypal <a href="https://'.$realpaypalurl.'" target="_blank">'.$realpaypalurl.'</a> (or sandbox <a href="https://'.$sandboxpaypalurl.'" target="_blank">'.$sandboxpaypalurl.'</a>).<br> 1. Log in to your PayPal account (on real paypal <a href="https://'.$realpaypalurl.'" target="_blank">'.$realpaypalurl.'</a> (or sandbox <a href="https://'.$sandboxpaypalurl.'" target="_blank">'.$sandboxpaypalurl.'</a>).<br>
2. Click the Profile subtab located under the My Account heading.<br> 2. Click the "Profile" or "Preferencies" subtab located under the My Account heading.<br>
3. Click the API Access link under the Account Information header.<br> 3. Click the link "API Access".<br>
4. Click the View API Certificate link in the right column.<br> 4. Click the View API Certificate link in the right column.<br>
5. Click the Request API signature radio button on the Request API Credentials page.<br> 5. Click the Request API signature radio button on the Request API Credentials page.<br>
6. Complete the Request API Credential Request form by clicking the agreement checkbox and clicking Submit.<br> 6. Complete the Request API Credential Request form by clicking the agreement checkbox and clicking Submit.<br>