diff --git a/htdocs/adherents/adherent.class.php b/htdocs/adherents/adherent.class.php
index 420cb9a7a33..362bdb67e9b 100644
--- a/htdocs/adherents/adherent.class.php
+++ b/htdocs/adherents/adherent.class.php
@@ -257,9 +257,9 @@ class Adherent extends CommonObject
global $conf,$langs;
// Check parameters
- if ($conf->global->ADHERENT_MAIL_REQUIRED && ! isValidEMail($this->email))
+ if (! empty($conf->global->ADHERENT_MAIL_REQUIRED) && ! isValidEMail($this->email))
{
- $langs->load("companies");
+ $langs->load("errors");
$this->error = $langs->trans("ErrorBadEMail",$this->email);
return -1;
}
@@ -377,9 +377,10 @@ class Adherent extends CommonObject
dol_syslog("Adherent::update notrigger=".$notrigger.", nosyncuser=".$nosyncuser.", nosyncuserpass=".$nosyncuserpass.", email=".$this->email);
- // Verification parametres
- if ($conf->global->ADHERENT_MAIL_REQUIRED && ! isValidEMail($this->email))
+ // Check parameters
+ if (! empty($conf->global->ADHERENT_MAIL_REQUIRED) && ! isValidEMail($this->email))
{
+ $langs->load("errors");
$this->error = $langs->trans("ErrorBadEMail",$this->email);
return -1;
}
@@ -887,7 +888,7 @@ class Adherent extends CommonObject
function fetch_login($login)
{
global $conf;
-
+
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."adherent";
$sql.= " WHERE login='".$login."'";
$sql.= " AND entity = ".$conf->entity;
@@ -1070,7 +1071,7 @@ class Adherent extends CommonObject
return -1;
}
}
-
+
/**
* \brief Fonction qui recupere les donnees optionelles de l'adherent
@@ -1080,16 +1081,16 @@ class Adherent extends CommonObject
{
$options = new AdherentOptions($this->db);
$optionsArray = $options->fetch_name_optionals_label();
-
+
$tab=array();
-
+
$sql = "SELECT rowid";
-
+
foreach ($optionsArray as $name => $label)
{
$sql.= ", ".$name;
}
-
+
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_options";
$sql.= " WHERE fk_member=".$rowid;
@@ -1832,7 +1833,7 @@ class Adherent extends CommonObject
$sql.= " FROM ".MAIN_DB_PREFIX."adherent as a";
$sql.= " WHERE a.statut > 0";
$sql.= " AND a.entity = ".$conf->entity;
-
+
$resql=$this->db->query($sql);
if ($resql)
{
diff --git a/htdocs/adherents/fiche.php b/htdocs/adherents/fiche.php
index c610fac3261..fe75a94bf0e 100644
--- a/htdocs/adherents/fiche.php
+++ b/htdocs/adherents/fiche.php
@@ -375,7 +375,7 @@ if ($_POST["action"] == 'add' && $user->rights->adherent->creer)
$adh->user_id = $userid;
$adh->fk_soc = $socid;
$adh->public = $public;
-
+
foreach($_POST as $key => $value)
{
if (preg_match("/^options_/",$key))
@@ -410,14 +410,17 @@ if ($_POST["action"] == 'add' && $user->rights->adherent->creer)
}
if (empty($nom)) {
$error++;
+ $langs->load("errors");
$errmsg .= $langs->trans("ErrorFieldRequired",$langs->transnoentities("Lastname"))."
\n";
}
if ($morphy != 'mor' && (!isset($prenom) || $prenom=='')) {
$error++;
- $errmsg .= $langs->trans("ErrorFieldRequired",$langs->transnoentities("Firstname"))."
\n";
+ $langs->load("errors");
+ $errmsg .= $langs->trans("ErrorFieldRequired",$langs->transnoentities("Firstname"))."
\n";
}
if ($conf->global->ADHERENT_MAIL_REQUIRED && ! isValidEMail($email)) {
$error++;
+ $langs->load("errors");
$errmsg .= $langs->trans("ErrorBadEMail",$email)."
\n";
}
if (empty($pass)) {
diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php
index 4ca0a57c258..f28b8818638 100644
--- a/htdocs/adherents/type.php
+++ b/htdocs/adherents/type.php
@@ -33,61 +33,75 @@ $langs->load("members");
$rowid=isset($_GET["rowid"])?$_GET["rowid"]:$_POST["rowid"];
+if ($_REQUEST["button_removefilter"])
+{
+ $_GET["search_nom"]="";
+ $_REQUEST["search_nom"]="";
+ $_GET["search_prenom"]="";
+ $_REQUEST["search_prenom"]="";
+ $_GET["type"]="";
+ $_REQUEST["type"]="";
+ $_GET["search_email"]="";
+ $_REQUEST["search_email"]="";
+ $sall="";
+}
+
+
/*
-* Actions
-*/
+ * Actions
+ */
if ($user->rights->adherent->configurer && $_POST["action"] == 'add')
{
- if ($_POST["button"] != $langs->trans("Cancel"))
- {
- $adht = new AdherentType($db);
+ if ($_POST["button"] != $langs->trans("Cancel"))
+ {
+ $adht = new AdherentType($db);
- $adht->libelle = trim($_POST["libelle"]);
- $adht->cotisation = trim($_POST["cotisation"]);
- $adht->note = trim($_POST["comment"]);
- $adht->mail_valid = trim($_POST["mail_valid"]);
- $adht->vote = trim($_POST["vote"]);
+ $adht->libelle = trim($_POST["libelle"]);
+ $adht->cotisation = trim($_POST["cotisation"]);
+ $adht->note = trim($_POST["comment"]);
+ $adht->mail_valid = trim($_POST["mail_valid"]);
+ $adht->vote = trim($_POST["vote"]);
- if ($adht->libelle)
- {
- $id=$adht->create($user->id);
- if ($id > 0)
- {
- Header("Location: type.php");
- exit;
- }
+ if ($adht->libelle)
+ {
+ $id=$adht->create($user->id);
+ if ($id > 0)
+ {
+ Header("Location: type.php");
+ exit;
+ }
else
{
$mesg=$adht->error;
$_GET["action"] = 'create';
}
- }
- else
- {
- $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Label"));
+ }
+ else
+ {
+ $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Label"));
$_GET["action"] = 'create';
- }
- }
+ }
+ }
}
if ($user->rights->adherent->configurer && $_POST["action"] == 'update')
{
- if ($_POST["button"] != $langs->trans("Cancel"))
- {
- $adht = new AdherentType($db);
- $adht->id = $_POST["rowid"];
- $adht->libelle = trim($_POST["libelle"]);
- $adht->cotisation = trim($_POST["cotisation"]);
- $adht->note = trim($_POST["comment"]);
- $adht->mail_valid = trim($_POST["mail_valid"]);
- $adht->vote = trim($_POST["vote"]);
+ if ($_POST["button"] != $langs->trans("Cancel"))
+ {
+ $adht = new AdherentType($db);
+ $adht->id = $_POST["rowid"];
+ $adht->libelle = trim($_POST["libelle"]);
+ $adht->cotisation = trim($_POST["cotisation"]);
+ $adht->note = trim($_POST["comment"]);
+ $adht->mail_valid = trim($_POST["mail_valid"]);
+ $adht->vote = trim($_POST["vote"]);
- $adht->update($user->id);
+ $adht->update($user->id);
- Header("Location: type.php?rowid=".$_POST["rowid"]);
- exit;
- }
+ Header("Location: type.php?rowid=".$_POST["rowid"]);
+ exit;
+ }
}
if ($user->rights->adherent->configurer && $_GET["action"] == 'delete')
@@ -123,55 +137,55 @@ $form=new Form($db);
if (! $rowid && $_GET["action"] != 'create' && $_GET["action"] != 'edit')
{
- print_fiche_titre($langs->trans("MembersTypeSetup"));
+ print_fiche_titre($langs->trans("MembersTypeSetup"));
- $sql = "SELECT d.rowid, d.libelle, d.cotisation, d.vote";
- $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as d";
+ $sql = "SELECT d.rowid, d.libelle, d.cotisation, d.vote";
+ $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as d";
- $result = $db->query($sql);
- if ($result)
- {
- $num = $db->num_rows($result);
- $i = 0;
+ $result = $db->query($sql);
+ if ($result)
+ {
+ $num = $db->num_rows($result);
+ $i = 0;
- print '
';
+ print '';
- print '';
- print '| '.$langs->trans("Ref").' | ';
- print ''.$langs->trans("Label").' | ';
- print ''.$langs->trans("SubscriptionRequired").' | ';
- print ''.$langs->trans("VoteAllowed").' | ';
- print ' | ';
- print "
\n";
+ print '';
+ print '| '.$langs->trans("Ref").' | ';
+ print ''.$langs->trans("Label").' | ';
+ print ''.$langs->trans("SubscriptionRequired").' | ';
+ print ''.$langs->trans("VoteAllowed").' | ';
+ print ' | ';
+ print "
\n";
- $var=True;
- while ($i < $num)
- {
- $objp = $db->fetch_object($result);
- $var=!$var;
- print "";
- print '| '.img_object($langs->trans("ShowType"),'group').' '.$objp->rowid.' | ';
- print ''.$objp->libelle.' | ';
- print ''.yn($objp->cotisation).' | ';
- print ''.yn($objp->vote).' | ';
- print ''.img_edit().' | ';
- print "
";
- $i++;
- }
- print "
";
- }
- else
- {
- dol_print_error($db);
- }
+ $var=True;
+ while ($i < $num)
+ {
+ $objp = $db->fetch_object($result);
+ $var=!$var;
+ print "";
+ print '| '.img_object($langs->trans("ShowType"),'group').' '.$objp->rowid.' | ';
+ print ''.$objp->libelle.' | ';
+ print ''.yn($objp->cotisation).' | ';
+ print ''.yn($objp->vote).' | ';
+ print ''.img_edit().' | ';
+ print "
";
+ $i++;
+ }
+ print "
";
+ }
+ else
+ {
+ dol_print_error($db);
+ }
- /*
- * Barre d'actions
- *
- */
- print '';
+ /*
+ * Barre d'actions
+ *
+ */
+ print '
';
// New type
if ($user->rights->adherent->configurer)
@@ -179,14 +193,14 @@ if (! $rowid && $_GET["action"] != 'create' && $_GET["action"] != 'edit')
print "
".$langs->trans("NewType")."";
}
- print "
";
+ print "
";
}
/* ************************************************************************** */
/* */
-/* Cr�ation d'un type adherent */
+/* Creation d'un type adherent */
/* */
/* ************************************************************************** */
if ($_GET["action"] == 'create')
@@ -237,6 +251,7 @@ if ($_GET["action"] == 'create')
print "\n";
print "\n";
}
+
/* ************************************************************************** */
/* */
/* Edition de la fiche */
@@ -244,57 +259,57 @@ if ($_GET["action"] == 'create')
/* ************************************************************************** */
if ($rowid > 0)
{
- if ($_GET["action"] != 'edit')
- {
- $adht = new AdherentType($db);
- $adht->id = $rowid;
- $adht->fetch($rowid);
+ if ($_GET["action"] != 'edit')
+ {
+ $adht = new AdherentType($db);
+ $adht->id = $rowid;
+ $adht->fetch($rowid);
- $h=0;
+ $h=0;
- $head[$h][0] = $_SERVER["PHP_SELF"].'?rowid='.$adht->id;
- $head[$h][1] = $langs->trans("Card");
- $head[$h][2] = 'card';
- $h++;
+ $head[$h][0] = $_SERVER["PHP_SELF"].'?rowid='.$adht->id;
+ $head[$h][1] = $langs->trans("Card");
+ $head[$h][2] = 'card';
+ $h++;
- dol_fiche_head($head, 'card', $langs->trans("MemberType"), 0, 'group');
+ dol_fiche_head($head, 'card', $langs->trans("MemberType"), 0, 'group');
- print '';
+ print '';
- // Ref
+ // Ref
print '| '.$langs->trans("Ref").' | ';
print '';
print $form->showrefnav($adht,'rowid');
print ' |
';
- // Label
+ // Label
print '| '.$langs->trans("Label").' | '.$adht->libelle.' |
';
- print '| '.$langs->trans("SubscriptionRequired").' | ';
- print yn($adht->cotisation);
- print ' |
';
+ print '| '.$langs->trans("SubscriptionRequired").' | ';
+ print yn($adht->cotisation);
+ print ' |
';
- print '| '.$langs->trans("VoteAllowed").' | ';
- print yn($adht->vote);
- print ' |
';
+ print '| '.$langs->trans("VoteAllowed").' | ';
+ print yn($adht->vote);
+ print ' |
';
- print '| '.$langs->trans("Description").' | ';
- print nl2br($adht->note)." |
";
+ print '| '.$langs->trans("Description").' | ';
+ print nl2br($adht->note)." |
";
- print '| '.$langs->trans("WelcomeEMail").' | ';
- print nl2br($adht->mail_valid)." |
";
+ print '| '.$langs->trans("WelcomeEMail").' | ';
+ print nl2br($adht->mail_valid)." |
";
- print '
';
+ print '
';
- print '';
+ print '';
- /*
- * Barre d'actions
- *
- */
- print '';
+ /*
+ * Barre d'actions
+ *
+ */
+ print '
";
- }
-
- if ($_GET["action"] == 'edit')
- {
- $htmls = new Form($db);
-
- $adht = new AdherentType($db);
- $adht->id = $rowid;
- $adht->fetch($rowid);
+ print "
";
- $h=0;
+ // Show list of members (nearly same code than in page liste.php)
- $head[$h][0] = $_SERVER["PHP_SELF"].'?rowid='.$adht->id;
- $head[$h][1] = $langs->trans("Card");
- $head[$h][2] = 'card';
- $h++;
+ $membertypestatic=new AdherentType($db);
- dol_fiche_head($head, 'card', $langs->trans("MemberType"), 0, 'group');
+ $sql = "SELECT d.rowid, d.login, d.prenom, d.nom, d.societe, ";
+ $sql.= " ".$db->pdate("d.datefin")." as datefin,";
+ $sql.= " d.email, d.fk_adherent_type as type_id, d.morphy, d.statut,";
+ $sql.= " t.libelle as type, t.cotisation";
+ $sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t";
+ $sql.= " WHERE d.fk_adherent_type = t.rowid ";
+ $sql.= " AND d.entity = ".$conf->entity;
+ if ($sall)
+ {
+ $sql.=" AND (d.prenom like '%".$sall."%' OR d.nom like '%".$sall."%' OR d.societe like '%".$sall."%'";
+ $sql.=" OR d.email like '%".$sall."%' OR d.login like '%".$sall."%' OR d.adresse like '%".$sall."%'";
+ $sql.=" OR d.ville like '%".$sall."%' OR d.note like '%".$sall."%')";
+ }
+ //if ($_REQUEST["type"] > 0)
+ //{
+ //$sql.=" AND t.rowid=".$_REQUEST["type"];
+ $sql.=" AND t.rowid=".$adht->id;
+ //}
+ if (isset($_GET["statut"]))
+ {
+ $sql.=" AND d.statut in ($statut)"; // Peut valoir un nombre ou liste de nombre separes par virgules
+ }
+ if ( $_POST["action"] == 'search')
+ {
+ if (isset($_POST['search']) && $_POST['search'] != ''){
+ $sql.= " AND (d.prenom LIKE '%".$_POST['search']."%' OR d.nom LIKE '%".$_POST['search']."%')";
+ }
+ }
+ if ($_GET["search_nom"])
+ {
+ $sql.= " AND (d.prenom LIKE '%".$_GET["search_nom"]."%' OR d.nom LIKE '%".$_GET["search_nom"]."%')";
+ }
+ if ($_GET["search_login"])
+ {
+ $sql.= " AND d.login LIKE '%".$_GET["search_login"]."%'";
+ }
+ if ($_GET["search_email"])
+ {
+ $sql.= " AND (d.email LIKE '%".$_GET["search_email"]."%')";
+ }
+ if ($filter == 'uptodate')
+ {
+ $sql.=" AND datefin >= ".$db->idate(mktime());
+ }
+ if ($filter == 'outofdate')
+ {
+ $sql.=" AND datefin < ".$db->idate(mktime());
+ }
+ // Count total nb of records
+ $nbtotalofrecords = 0;
+ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
+ {
+ $resql = $db->query($sql);
+ if ($resql) $nbtotalofrecords = $db->num_rows($result);
+ else dol_print_error($db);
+ }
+ // Add order and limit
+ $sql.= " ".$db->order($sortfield,$sortorder);
+ $sql.= " ".$db->plimit($conf->liste_limit+1, $offset);
+
+ $resql = $db->query($sql);
+ if ($resql)
+ {
+ $num = $db->num_rows($resql);
+ $i = 0;
+
+ $titre=$langs->trans("MembersList");
+ if (isset($_GET["statut"]))
+ {
+ if ($statut == '-1,1') { $titre=$langs->trans("MembersListQualified"); }
+ if ($statut == '-1') { $titre=$langs->trans("MembersListToValid"); }
+ if ($statut == '1' && ! $filter) { $titre=$langs->trans("MembersListValid"); }
+ if ($statut == '1' && $filter=='uptodate') { $titre=$langs->trans("MembersListUpToDate"); }
+ if ($statut == '1' && $filter=='outofdate') { $titre=$langs->trans("MembersListNotUpToDate"); }
+ if ($statut == '0') { $titre=$langs->trans("MembersListResiliated"); }
+ }
+ elseif ($_POST["action"] == 'search') {
+ $titre=$langs->trans("MembersListQualified");
+ }
+
+ if ($_REQUEST["type"] > 0)
+ {
+ $membertype=new AdherentType($db);
+ $result=$membertype->fetch($_REQUEST["type"]);
+ $titre.=" (".$membertype->libelle.")";
+ }
+
+ $param="";
+ if (isset($_GET["statut"])) $param.="&statut=".$_GET["statut"];
+ if (isset($_GET["search_nom"])) $param.="&search_nom=".$_GET["search_nom"];
+ if (isset($_GET["search_login"])) $param.="&search_login=".$_GET["search_login"];
+ if (isset($_GET["search_email"])) $param.="&search_email=".$_GET["search_email"];
+ if (isset($_GET["filter"])) $param.="&filter=".$_GET["filter"];
+ print_barre_liste('',$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
+
+ if ($sall)
+ {
+ print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("EMail").", ".$langs->trans("Address")." ".$langs->trans("or")." ".$langs->trans("Town")."): ".$sall;
+ }
+
+ print '
';
+ print "";
+
+ print '';
+ print_liste_field_titre($langs->trans("Name")." / ".$langs->trans("Company"),"liste.php","d.nom",$param,"","",$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans("Login"),"liste.php","d.login",$param,"","",$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans("Person"),"liste.php","d.morphy",$param,"","",$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans("EMail"),"liste.php","d.email",$param,"","",$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans("Status"),"liste.php","d.statut,d.datefin",$param,"","",$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans("EndSubscription"),"liste.php","d.datefin",$param,"",'align="center"',$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans("Action"),"liste.php","",$param,"",'width="60" align="center"',$sortfield,$sortorder);
+ print "
\n";
+
+ // Lignes des champs de filtre
+ print '';
+
+ $var=True;
+ while ($i < $num && $i < $conf->liste_limit)
+ {
+ $objp = $db->fetch_object($resql);
+
+ $adh=new Adherent($db);
+
+ // Nom
+ $var=!$var;
+ print "";
+ if ($objp->societe != '')
+ {
+ print "| rowid\">".img_object($langs->trans("ShowMember"),"user").' '.$objp->prenom." ".dol_trunc($objp->nom,12)." / ".dol_trunc($objp->societe,12)." | \n";
+ }
+ else
+ {
+ print "rowid\">".img_object($langs->trans("ShowMember"),"user").' '.$objp->prenom." ".dol_trunc($objp->nom)." | \n";
+ }
+
+ // Login
+ print "".$objp->login." | \n";
+
+ // Type
+ /*print '';
+ $membertypestatic->id=$objp->type_id;
+ $membertypestatic->libelle=$objp->type;
+ print $membertypestatic->getNomUrl(1,12);
+ print ' | ';
+ */
+
+ // Moral/Physique
+ print "".$adh->getmorphylib($objp->morphy)." | \n";
+
+ // EMail
+ print "".dol_print_email($objp->email,0,0,1)." | \n";
+
+ // Statut
+ print '';
+ print $adh->LibStatut($objp->statut,$objp->cotisation,$objp->datefin,2);
+ print " | ";
+
+ // Date fin cotisation
+ if ($objp->datefin)
+ {
+ print '';
+ if ($objp->datefin < time() && $objp->statut > 0)
+ {
+ print dol_print_date($objp->datefin,'day')." ".img_warning($langs->trans("SubscriptionLate"));
+ }
+ else
+ {
+ print dol_print_date($objp->datefin,'day');
+ }
+ print ' | ';
+ }
+ else
+ {
+ print '';
+ if ($objp->cotisation == 'yes')
+ {
+ print $langs->trans("SubscriptionNotReceived");
+ if ($objp->statut > 0) print " ".img_warning();
+ }
+ else
+ {
+ print ' ';
+ }
+ print ' | ';
+ }
+
+ // Actions
+ print '';
+ if ($user->rights->adherent->creer)
+ {
+ print "rowid&action=edit&return=liste.php\">".img_edit()."";
+ }
+ print ' ';
+ if ($user->rights->adherent->supprimer)
+ {
+ print "rowid&action=resign&return=liste.php\">".img_picto($langs->trans("Resiliate"),'disable.png')."";
+ }
+ print " | ";
+
+ print "
\n";
+ $i++;
+ }
+
+ print "
\n";
+
+ if ($num > $conf->liste_limit)
+ {
+ print_barre_liste('',$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'');
+ }
+ }
+ else
+ {
+ dol_print_error($db);
+ }
+
+ }
+
+ if ($_GET["action"] == 'edit')
+ {
+ $htmls = new Form($db);
+
+ $adht = new AdherentType($db);
+ $adht->id = $rowid;
+ $adht->fetch($rowid);
- print '";
+ }
}
$db->close();
diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php
index 4f4833f30e7..9f7490d92eb 100644
--- a/htdocs/imports/import.php
+++ b/htdocs/imports/import.php
@@ -858,13 +858,15 @@ if ($step == 4 && $datatoimport)
// Info field
print '';
$filecolumn=$array_match_database_to_file[$code];
+ // Source field info
$htmltext =''.$langs->trans("FieldSource").' ';
if ($filecolumn > sizeof($fieldssource)) $htmltext.=$langs->trans("DataComeFromNoWhere").' ';
else
{
if (empty($objimport->array_import_convertvalue[0][$code])) // If source file does not need convertion
{
- $htmltext.=$langs->trans("DataComeFromFileFieldNb",$filecolumn).' ';
+ $filecolumntoshow=$filecolumn;
+ $htmltext.=$langs->trans("DataComeFromFileFieldNb",$filecolumntoshow).' ';
}
else
{
@@ -875,6 +877,7 @@ if ($step == 4 && $datatoimport)
$example=$objimport->array_import_examplevalues[0][$code];
if ($example) $htmltext.=' '.$langs->trans("SourceExample").': '.$example.' ';
$htmltext.=' ';
+ // Target field info
$htmltext.=''.$langs->trans("FieldTarget").' ';
if (empty($objimport->array_import_convertvalue[0][$code])) // If source file does not need convertion
{
diff --git a/htdocs/includes/menus/barre_top/eldy_backoffice.php b/htdocs/includes/menus/barre_top/eldy_backoffice.php
index e119e82fa79..e90633d2690 100644
--- a/htdocs/includes/menus/barre_top/eldy_backoffice.php
+++ b/htdocs/includes/menus/barre_top/eldy_backoffice.php
@@ -256,7 +256,7 @@ class MenuTop {
}
// Tools
- if ($conf->mailing->enabled || $conf->export->enabled || $conf->global->MAIN_MODULE_IMPORT || $conf->global->MAIN_MODULE_DOMAIN)
+ if ($conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled || $conf->global->MAIN_MODULE_DOMAIN)
{
$langs->load("other");
@@ -271,7 +271,7 @@ class MenuTop {
}
$idsel='id="mainmenu_tools" ';
- if ($user->rights->mailing->lire || $user->rights->bookmark->lire || $user->rights->export->lire)
+ if ($user->rights->mailing->lire || $user->rights->bookmark->lire || $user->rights->export->lire || $user->rights->import->run)
{
print ' | | '.$langs->trans('Phone').' | | ';
print ''.$langs->trans('Fax').' | |
';
- print '| '.$langs->trans('EMail').' | | ';
+ print '
| '.$langs->trans('EMail').($conf->global->SOCIETE_MAIL_REQUIRED?'*':'').' | | ';
print ''.$langs->trans('Web').' | |
';
print '| '.$langs->trans('Capital').' | '.$langs->trans("Currency".$conf->monnaie).' |
';
@@ -853,7 +860,7 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
print '| '.$langs->trans('Phone').' | | ';
print ''.$langs->trans('Fax').' | |
';
- print '| '.$langs->trans('EMail').' | | ';
+ print '
| '.$langs->trans('EMail').($conf->global->SOCIETE_MAIL_REQUIRED?'*':'').' | | ';
print ''.$langs->trans('Web').' | |
';
print '';
diff --git a/htdocs/societe.class.php b/htdocs/societe.class.php
index 723e0dfd816..f3789df8e37 100644
--- a/htdocs/societe.class.php
+++ b/htdocs/societe.class.php
@@ -150,6 +150,14 @@ class Societe extends CommonObject
dol_syslog("Societe::create ".$this->nom);
+ // Check parameters
+ if (! empty($conf->global->SOCIETE_MAIL_REQUIRED) && ! isValidEMail($this->email))
+ {
+ $langs->load("errors");
+ $this->error = $langs->trans("ErrorBadEMail",$this->email);
+ return -1;
+ }
+
$this->db->begin();
// For automatic creation during create action (not used by Dolibarr GUI, can be used by scripts)
@@ -368,6 +376,14 @@ class Societe extends CommonObject
$this->code_compta=trim($this->code_compta);
$this->code_compta_fournisseur=trim($this->code_compta_fournisseur);
+ // Check parameters
+ if (! empty($conf->global->SOCIETE_MAIL_REQUIRED) && ! isValidEMail($this->email))
+ {
+ $langs->load("errors");
+ $this->error = $langs->trans("ErrorBadEMail",$this->email);
+ return -1;
+ }
+
// Check name is required and codes are ok or unique.
// If error, this->errors[] is filled
$result = $this->verify();
diff --git a/htdocs/user.class.php b/htdocs/user.class.php
index c18eccbfd8a..1b1d3c13cae 100644
--- a/htdocs/user.class.php
+++ b/htdocs/user.class.php
@@ -699,6 +699,14 @@ class User extends CommonObject
dol_syslog("User::Create login=".$this->login.", user=".(is_object($user)?$user->id:''), LOG_DEBUG);
+ // Check parameters
+ if (! empty($conf->global->USER_MAIL_REQUIRED) && ! isValidEMail($this->email))
+ {
+ $langs->load("errors");
+ $this->error = $langs->trans("ErrorBadEMail",$this->email);
+ return -1;
+ }
+
$error=0;
$this->db->begin();
@@ -991,6 +999,14 @@ class User extends CommonObject
}
$this->admin = $this->admin?$this->admin:0;
+ // Check parameters
+ if (! empty($conf->global->USER_MAIL_REQUIRED) && ! isValidEMail($this->email))
+ {
+ $langs->load("errors");
+ $this->error = $langs->trans("ErrorBadEMail",$this->email);
+ return -1;
+ }
+
$this->db->begin();
// Mise a jour autres infos
diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php
index 2f7e2c81a08..686f939db32 100644
--- a/htdocs/user/fiche.php
+++ b/htdocs/user/fiche.php
@@ -167,7 +167,6 @@ if ($_POST["action"] == 'add' && $canadduser)
$db->begin();
$id = $edituser->create($user);
-
if ($id > 0)
{
if (isset($_POST['password']) && trim($_POST['password']))
@@ -184,7 +183,8 @@ if ($_POST["action"] == 'add' && $canadduser)
{
$langs->load("errors");
$db->rollback();
- $message=''.join('
',$edituser->errors).'
';
+ if (is_array($edituser->errors) && sizeof($edituser->errors)) $message=''.join('
',$langs->trans($edituser->errors)).'
';
+ else $message=''.$langs->trans($edituser->error).'
';
$action="create"; // Go back to create page
}
@@ -653,7 +653,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '
';
// EMail
- print '| '.$langs->trans("EMail").' | ';
+ print '
| '.$langs->trans("EMail").($conf->global->USER_MAIL_REQUIRED?'*':'').' | ';
print '';
if ($ldap_mail)
{
@@ -945,7 +945,7 @@ else
print ' | '.dol_print_phone($fuser->office_fax,'',0,0,1).' | ';
// EMail
- print '
| '.$langs->trans("EMail").' | ';
+ print '
| '.$langs->trans("EMail").($conf->global->USER_MAIL_REQUIRED?'*':'').' | ';
print ''.dol_print_email($fuser->email,0,0,1).' | ';
print "
\n";