diff --git a/ChangeLog b/ChangeLog
index 03a86442e4e..95b1b7a37ef 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,7 +4,8 @@ English Dolibarr ChangeLog
For users:
- New: POS module allow to choose which warehouse use.
-- New: Support "Department/State" field on contact and members card.
+- New: Support "Department/State" field on company setup, contact
+ and members card.
- New: Can reopen a refused/canceled supplier order.
- New: Add Gant diagramm on project module.
- New: Add a new mode for automatic stock increase: Can be increased
diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php
index 073de5ebbbb..0b7094ab3a2 100644
--- a/htdocs/admin/company.php
+++ b/htdocs/admin/company.php
@@ -58,6 +58,7 @@ if ( (isset($_POST["action"]) && $_POST["action"] == 'update')
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_VILLE",$_POST["ville"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_CP",$_POST["cp"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_PAYS",$_POST["pays_id"],'chaine',0,'',$conf->entity);
+ dolibarr_set_const($db, "MAIN_INFO_SOCIETE_DEPARTEMENT",$_POST["departement_id"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_MONNAIE",$_POST["currency"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TEL",$_POST["tel"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FAX",$_POST["fax"],'chaine',0,'',$conf->entity);
@@ -267,6 +268,12 @@ if ((isset($_GET["action"]) && $_GET["action"] == 'edit')
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1);
print ''."\n";
+ $var=!$var;
+ print '
| '.$langs->trans("State").' | ';
+ $pays_code=getCountryLabel($conf->global->MAIN_INFO_SOCIETE_PAYS,2);
+ $formcompany->select_departement($conf->global->MAIN_INFO_SOCIETE_DEPARTEMENT,$pays_code,'departement_id');
+ print ' |
'."\n";
+
$var=!$var;
print '| '.$langs->trans("CompanyCurrency").' | ';
$form->select_currency($conf->global->MAIN_MONNAIE,"currency");
@@ -597,6 +604,25 @@ else
print getCountryLabel($conf->global->MAIN_INFO_SOCIETE_PAYS,1);
print ' |
';
+ $var=!$var;
+ print '| '.$langs->trans("State").' | ';
+ if ($conf->global->MAIN_INFO_SOCIETE_DEPARTEMENT)
+ {
+ $sql = "SELECT code_departement as code, nom as label from ".MAIN_DB_PREFIX."c_departements where rowid = '".$conf->global->MAIN_INFO_SOCIETE_DEPARTEMENT."'";
+ $resql=$db->query($sql);
+ if ($resql)
+ {
+ $obj = $db->fetch_object($resql);
+ }
+ else
+ {
+ dol_print_error($db);
+ }
+ $state=$obj->label;
+ print $state;
+ }
+ print ' |
';
+
$var=!$var;
print '| '.$langs->trans("CompanyCurrency").' | ';
print currency_name($conf->global->MAIN_MONNAIE,1);
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 33705295c36..d74b6bfa7f0 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -256,7 +256,7 @@ class Form
* \param selected Id ou Code pays ou Libelle pays pre-selectionne
* \param htmlname Nom de la liste deroulante
* \param htmloption Options html sur le select
- * \todo trier liste sur noms apres traduction plutot que avant
+ * \TODO trier liste sur noms apres traduction plutot que avant
*/
function select_pays($selected='',$htmlname='pays_id',$htmloption='')
{
diff --git a/htdocs/lib/company.lib.php b/htdocs/lib/company.lib.php
index a7f2c722cb7..7b22467f6e0 100644
--- a/htdocs/lib/company.lib.php
+++ b/htdocs/lib/company.lib.php
@@ -180,10 +180,10 @@ function societe_prepare_head2($objsoc)
/**
- * \brief Retourne le nom traduit ou code+nom d'un pays
- * \param id id du pays
- * \param withcode 1=affiche code + nom
- * \return string Nom traduit du pays
+ * \brief Retourne le nom traduit ou code+nom d'un pays depuis id
+ * \param id id of country
+ * \param withcode 0=Return label, 1=Return code + label, 2=Return code
+ * \return string String with country code or translated country name
*/
function getCountryLabel($id,$withcode=0)
{
@@ -199,8 +199,9 @@ function getCountryLabel($id,$withcode=0)
$obj = $db->fetch_object($resql);
if ($obj)
{
- $label=$obj->code && $langs->trans("Country".$obj->code)!="Country".$obj->code?$langs->trans("Country".$obj->code):($obj->libelle!='-'?$obj->libelle:'');
- if ($withcode) return $label==$obj->code?"$obj->code":"$obj->code - $label";
+ $label=($obj->code && $langs->trans("Country".$obj->code)!="Country".$obj->code)?$langs->trans("Country".$obj->code):($obj->libelle!='-'?$obj->libelle:'');
+ if ($withcode == 1) return $label=$obj->code?"$obj->code":"$obj->code - $label";
+ else if ($withcode == 2) return $label=$obj->code;
else return $label;
}
else
diff --git a/htdocs/master.inc.php b/htdocs/master.inc.php
index 59c25e2a37d..9d63d25d463 100644
--- a/htdocs/master.inc.php
+++ b/htdocs/master.inc.php
@@ -349,18 +349,20 @@ if (! defined('NOREQUIREDB') && ! defined('NOREQUIRESOC'))
$mysoc->zip=$conf->global->MAIN_INFO_SOCIETE_CP;
$mysoc->ville=$conf->global->MAIN_INFO_SOCIETE_VILLE; // TODO obsolete
$mysoc->town=$conf->global->MAIN_INFO_SOCIETE_VILLE;
+ $mysoc->departement_id=$conf->global->MAIN_INFO_SOCIETE_DEPARTEMENT;
$mysoc->note=$conf->global->MAIN_INFO_SOCIETE_NOTE;
- // Si dans MAIN_INFO_SOCIETE_PAYS on a un id de pays, on recupere code
+ // For backwar compatibility: Si dans MAIN_INFO_SOCIETE_PAYS on a un id de pays, on recupere code
if (is_numeric($conf->global->MAIN_INFO_SOCIETE_PAYS))
{
- $mysoc->pays_id=$conf->global->MAIN_INFO_SOCIETE_PAYS;
- $sql = "SELECT code, libelle as label from ".MAIN_DB_PREFIX."c_pays";
+ $sql = "SELECT rowid, code, libelle as label from ".MAIN_DB_PREFIX."c_pays";
$sql .= " WHERE rowid = ".$conf->global->MAIN_INFO_SOCIETE_PAYS;
$result=$db->query($sql);
if ($result)
{
$obj = $db->fetch_object();
+ $mysoc->pays_id=$conf->rowid;
$mysoc->pays_code=$obj->code;
+ $mysoc->pays=$obj->code?($langs->trans('Country'.$obj->code)!='Country'.$obj->code?$langs->trans('Country'.$obj->code):$obj->label):''; // deprecated
$mysoc->country=$obj->code?($langs->trans('Country'.$obj->code)!='Country'.$obj->code?$langs->trans('Country'.$obj->code):$obj->label):'';
}
else {
@@ -371,6 +373,7 @@ if (! defined('NOREQUIREDB') && ! defined('NOREQUIRESOC'))
else
{
$mysoc->pays_code=$conf->global->MAIN_INFO_SOCIETE_PAYS;
+ $mysoc->pays=$conf->global->MAIN_INFO_SOCIETE_PAYS?$langs->trans('Country'.$conf->global->MAIN_INFO_SOCIETE_PAYS):''; // deprecated
$mysoc->country=$conf->global->MAIN_INFO_SOCIETE_PAYS?$langs->trans('Country'.$conf->global->MAIN_INFO_SOCIETE_PAYS):'';
}
$mysoc->tel=$conf->global->MAIN_INFO_SOCIETE_TEL; // TODO obsolete
diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php
index 0b628971946..b4079837a09 100644
--- a/htdocs/societe/class/societe.class.php
+++ b/htdocs/societe/class/societe.class.php
@@ -54,9 +54,16 @@ class Societe extends CommonObject
var $adresse; // TODO obsolete
var $cp;
var $ville;
+
var $departement_id;
+ var $departement_code;
+ var $departement;
+
var $pays_id;
var $pays_code;
+ var $pays; // TODO obsolete
+ var $country;
+
var $tel;
var $fax;
var $email;
@@ -1466,8 +1473,7 @@ class Societe extends CommonObject
require_once DOL_DOCUMENT_ROOT . "/societe/class/companybankaccount.class.php";
$bac = new CompanyBankAccount($this->db);
- $bac->socid = $this->id;
- $bac->fetch($this->id);
+ $bac->fetch(0,$this->id);
if ($bac->code_banque || $bac->code_guichet || $bac->number || $bac->cle_rib)
{
|