diff --git a/ChangeLog b/ChangeLog index 03a86442e4eb166616cbc8e9084aef12eccd03b3..95b1b7a37ef07c22cb3acf1af2ec83ac08b515c7 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 073de5ebbbbe502b6f6ac9ff4f74d748bae384b9..0b7094ab3a26d9b4cbfe294cb7ba165cb190c1f3 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 '</td></tr>'."\n"; + $var=!$var; + print '<tr '.$bc[$var].'><td>'.$langs->trans("State").'</td><td>'; + $pays_code=getCountryLabel($conf->global->MAIN_INFO_SOCIETE_PAYS,2); + $formcompany->select_departement($conf->global->MAIN_INFO_SOCIETE_DEPARTEMENT,$pays_code,'departement_id'); + print '</td></tr>'."\n"; + $var=!$var; print '<tr '.$bc[$var].'><td>'.$langs->trans("CompanyCurrency").'</td><td>'; $form->select_currency($conf->global->MAIN_MONNAIE,"currency"); @@ -597,6 +604,25 @@ else print getCountryLabel($conf->global->MAIN_INFO_SOCIETE_PAYS,1); print '</td></tr>'; + $var=!$var; + print '<tr '.$bc[$var].'><td>'.$langs->trans("State").'</td><td>'; + 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 '</td></tr>'; + $var=!$var; print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("CompanyCurrency").'</td><td>'; 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 33705295c36e3dad2deae7cca0d8f343659345ee..d74b6bfa7f01aae6bba9ecd716fb7a15c7fbe27a 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 a7f2c722cb7f451a549ca1bad0a659794905c769..7b22467f6e03f42d3253a9634c5a0fddb46e3fea 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 59c25e2a37dfbf7b7b1c977308371b3c6382ca01..9d63d25d46353decdd62a6097e6f992c7521b465 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 0b6289719463499ca5f0a8368d9046a90e950f0a..b4079837a09a94455e5023801188bb1c3f893b34 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) {