From 5db8f592097e66efe307d95b29d58e295e964f5c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 8 Jan 2010 17:33:30 +0000 Subject: [PATCH] New: Add list of members in a member type card New: Can make email for third party or users required --- htdocs/adherents/adherent.class.php | 23 +- htdocs/adherents/fiche.php | 7 +- htdocs/adherents/type.php | 567 +++++++++++++----- htdocs/imports/import.php | 5 +- .../menus/barre_top/eldy_backoffice.php | 4 +- .../menus/barre_top/eldy_frontoffice.php | 4 +- htdocs/langs/en_US/companies.lang | 2 - htdocs/langs/en_US/errors.lang | 4 +- htdocs/langs/fr_FR/companies.lang | 2 - htdocs/langs/fr_FR/errors.lang | 4 +- htdocs/langs/fr_FR/other.lang | 2 +- htdocs/lib/functions.lib.php | 6 +- htdocs/public/paybox/newpayment.php | 1 + htdocs/soc.php | 11 +- htdocs/societe.class.php | 16 + htdocs/user.class.php | 16 + htdocs/user/fiche.php | 8 +- 17 files changed, 500 insertions(+), 182 deletions(-) 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 ''; - print ''; - print ''; - print ''; - print ''; - print "\n"; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print "\n"; - $var=True; - while ($i < $num) - { - $objp = $db->fetch_object($result); - $var=!$var; - print ""; - print ''; - print ''; - print ''; - print ''; - print ''; - print ""; - $i++; - } - print "
'.$langs->trans("Ref").''.$langs->trans("Label").''.$langs->trans("SubscriptionRequired").''.$langs->trans("VoteAllowed").' 
'.$langs->trans("Ref").''.$langs->trans("Label").''.$langs->trans("SubscriptionRequired").''.$langs->trans("VoteAllowed").' 
'.img_object($langs->trans("ShowType"),'group').' '.$objp->rowid.''.$objp->libelle.''.yn($objp->cotisation).''.yn($objp->vote).''.img_edit().'
"; - } - 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 ''; print ''; - // Label + // Label print ''; - print ''; + print ''; - print ''; + print ''; - print '"; + print '"; - print '"; + print '"; - print '
'.$langs->trans("Ref").''; print $form->showrefnav($adht,'rowid'); print '
'.$langs->trans("Label").''.$adht->libelle.'
'.$langs->trans("SubscriptionRequired").''; - print yn($adht->cotisation); - print '
'.$langs->trans("SubscriptionRequired").''; + print yn($adht->cotisation); + print '
'.$langs->trans("VoteAllowed").''; - print yn($adht->vote); - print '
'.$langs->trans("VoteAllowed").''; + print yn($adht->vote); + print '
'.$langs->trans("Description").''; - print nl2br($adht->note)."
'.$langs->trans("Description").''; + print nl2br($adht->note)."
'.$langs->trans("WelcomeEMail").''; - print nl2br($adht->mail_valid)."
'.$langs->trans("WelcomeEMail").''; + print nl2br($adht->mail_valid)."
'; + print ''; - print ''; + print ''; - /* - * Barre d'actions - * - */ - print '
'; + /* + * Barre d'actions + * + */ + print '
'; // Edit if ($user->rights->adherent->configurer) @@ -303,7 +318,7 @@ if ($rowid > 0) } // Add - print "id."\">".$langs->trans("AddMember").""; + print "id."\">".$langs->trans("AddMember").""; // Delete if ($user->rights->adherent->configurer) @@ -311,50 +326,302 @@ if ($rowid > 0) print "id."\">".$langs->trans("DeleteType").""; } - 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 ''; + print ''; + + print ''; + + print ''; + + print ''; + + // Type + /*print ''; + */ + + print ''; + + print ''; + + print ''; + + print ''; + + print "\n"; + 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 "\n"; + } + else + { + print "\n"; + } + + // Login + print "\n"; + + // Type + /*print ''; + */ + + // Moral/Physique + print "\n"; + + // EMail + print "\n"; + + // Statut + print '"; + + // Date fin cotisation + if ($objp->datefin) + { + print ''; + } + else + { + print ''; + } + + // Actions + print '"; + + print "\n"; + $i++; + } + + print "
'; + print ''; + print ''; + $listetype=$membertypestatic->liste_array(); + $form->select_array("type", $listetype, $_REQUEST["type"], 1, 0, 0, 0, '', 0, 12); + print ' '; + print ' '; + print ''; + print '  '; + print '
rowid\">".img_object($langs->trans("ShowMember"),"user").' '.$objp->prenom." ".dol_trunc($objp->nom,12)." / ".dol_trunc($objp->societe,12)."rowid\">".img_object($langs->trans("ShowMember"),"user").' '.$objp->prenom." ".dol_trunc($objp->nom)."".$objp->login."'; + $membertypestatic->id=$objp->type_id; + $membertypestatic->libelle=$objp->type; + print $membertypestatic->getNomUrl(1,12); + print '".$adh->getmorphylib($objp->morphy)."".dol_print_email($objp->email,0,0,1)."'; + print $adh->LibStatut($objp->statut,$objp->cotisation,$objp->datefin,2); + 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 ''; + if ($objp->cotisation == 'yes') + { + print $langs->trans("SubscriptionNotReceived"); + if ($objp->statut > 0) print " ".img_warning(); + } + else + { + print ' '; + } + 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 "
\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 '
'; - print ''; - print ''; - print ''; - print ''; + $h=0; - print ''; + $head[$h][0] = $_SERVER["PHP_SELF"].'?rowid='.$adht->id; + $head[$h][1] = $langs->trans("Card"); + $head[$h][2] = 'card'; + $h++; - print ''; + dol_fiche_head($head, 'card', $langs->trans("MemberType"), 0, 'group'); - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print '
'.$langs->trans("Ref").''.$adht->id.'
'.$langs->trans("Label").'
'.$langs->trans("SubscriptionRequired").''; - print $htmls->selectyesno("cotisation",$adht->cotisation,1); - print '
'.$langs->trans("VoteAllowed").''; - print $htmls->selectyesno("vote",$adht->vote,1); - print '
'; - print '"; + print ''; - print ''; + + print ''; + + print ''; + + print '"; + + print '"; + print ""; - print ''; + print ''; - print '
'.$langs->trans("Description").''; - print "
'.$langs->trans("Ref").''.$adht->id.'
'.$langs->trans("WelcomeEMail").''; + print '
'.$langs->trans("Label").'
'.$langs->trans("SubscriptionRequired").''; + print $htmls->selectyesno("cotisation",$adht->cotisation,1); + print '
'.$langs->trans("VoteAllowed").''; + print $htmls->selectyesno("vote",$adht->vote,1); + print '
'.$langs->trans("Description").''; + print "
'.$langs->trans("WelcomeEMail").''; if ($conf->fckeditor->enabled) { require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php"); @@ -367,14 +634,14 @@ if ($rowid > 0) print dol_htmlentitiesbr_decode($adht->mail_valid); print ''; } - print "
   '; - print '
   '; + print '
'; - print "
"; - } + print ''; + 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 ''; print 'atarget?" target=$this->atarget":"").'>'.$langs->trans("Tools").''; diff --git a/htdocs/includes/menus/barre_top/eldy_frontoffice.php b/htdocs/includes/menus/barre_top/eldy_frontoffice.php index f8b8d620e02..cbfee7652f0 100644 --- a/htdocs/includes/menus/barre_top/eldy_frontoffice.php +++ b/htdocs/includes/menus/barre_top/eldy_frontoffice.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 ''; print 'atarget?" target=$this->atarget":"").'>'.$langs->trans("Tools").''; diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index c9e8ea9d322..aade072071a 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -1,7 +1,5 @@ # Dolibarr language file - en_US - companies CHARSET=UTF-8 -ErrorBadEMail=EMail %s is wrong -ErrorBadUrl=Url %s is wrong ErrorCompanyNameAlreadyExists=Company name %s already exists. Choose another one. ErrorPrefixAlreadyExists=Prefix %s already exists. Choose another one. ErrorSetACountryFirst=Set the country first diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 433c8d9ffb3..44a2670af13 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -1,8 +1,10 @@ # Dolibarr language file - en_US - errors CHARSET=UTF-8 +MenuManager=Menu manager Error=Error Errors=Errors -MenuManager=Menu manager +ErrorBadEMail=EMail %s is wrong +ErrorBadUrl=Url %s is wrong ErrorLoginAlreadyExists=Login %s already exists. ErrorGroupAlreadyExists=Group %s already exists. ErrorRecordNotFound=Record not found. diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index 874be4eb20c..3c93b2e5e68 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -1,7 +1,5 @@ # Dolibarr language file - fr_FR - companies CHARSET=UTF-8 -ErrorBadEMail=e-mail %s invalide -ErrorBadUrl=Url %s invalide ErrorCompanyNameAlreadyExists=Le nom de société %s existe déjà. Veuillez en choisir un autre. ErrorPrefixAlreadyExists=Le préfixe %s existe déjà. Veuillez en choisir un autre. ErrorSetACountryFirst=Définissez d'abord le pays diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang index a0699bd4cb0..c830d5d7304 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -1,8 +1,10 @@ # Dolibarr language file - fr_FR - errors CHARSET=UTF-8 +MenuManager=Gestionnaire de menu Error=Erreur Errors=Erreurs -MenuManager=Gestionnaire de menu +ErrorBadEMail=e-mail %s invalide +ErrorBadUrl=Url %s invalide ErrorLoginAlreadyExists=Le login %s existe déjà. ErrorGroupAlreadyExists=Le groupe %s existe déjà. ErrorRecordNotFound=Enregistrement non trouvé. diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index ef78223c8f7..83577441b1c 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -109,7 +109,7 @@ EMailTextOrderApproved=Commande %s approuvée EMailTextOrderApprovedBy=Commande %s approuvée par %s EMailTextOrderRefused=Commande %s réfusée EMailTextOrderRefusedBy=Commande %s réfusée par %s -ImportedWithSet=Lot d'importation +ImportedWithSet=Lot d'importation (Import key) DolibarrNotification=Notification automatique ##### Bookmark ##### diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php index 40b3265ba30..c7ab9fa1adc 100644 --- a/htdocs/lib/functions.lib.php +++ b/htdocs/lib/functions.lib.php @@ -774,7 +774,11 @@ function dol_print_email($email,$cid=0,$socid=0,$addlink=0,$max=64,$showinvalid= $newemail.='">'; $newemail.=dol_trunc($email,$max); $newemail.=''; - if ($showinvalid && ! isValidEmail($email)) $newemail.=img_warning($langs->trans("ErrorBadEMail",$email)); + if ($showinvalid && ! isValidEmail($email)) + { + $langs->load("errors"); + $newemail.=img_warning($langs->trans("ErrorBadEMail",$email)); + } if (($cid || $socid) && $conf->agenda->enabled && $user->rights->agenda->myactions->create) { diff --git a/htdocs/public/paybox/newpayment.php b/htdocs/public/paybox/newpayment.php index 2269b9c5fb4..b2944148c53 100644 --- a/htdocs/public/paybox/newpayment.php +++ b/htdocs/public/paybox/newpayment.php @@ -66,6 +66,7 @@ $langs->load("paybox"); $langs->load("dict"); $langs->load("bills"); $langs->load("companies"); +$langs->load("errors"); // Input are: // type ('invoice','order','contractline'), diff --git a/htdocs/soc.php b/htdocs/soc.php index 77f43a7b048..77a82226a12 100644 --- a/htdocs/soc.php +++ b/htdocs/soc.php @@ -135,18 +135,21 @@ if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"]) if (! empty($soc->email) && ! isValidEMail($soc->email)) { $error = 1; + $langs->load("errors"); $soc->error = $langs->trans("ErrorBadEMail",$soc->email); $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; } if (! empty($soc->url) && ! isValidUrl($soc->url)) { $error = 1; + $langs->load("errors"); $soc->error = $langs->trans("ErrorBadUrl",$soc->url); $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; } if ($soc->fournisseur && ! $conf->fournisseur->enabled) { $error = 1; + $langs->load("errors"); $soc->error = $langs->trans("ErrorSupplierModuleNotEnabled"); $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; } @@ -184,6 +187,10 @@ if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"]) $result=$contact->create($user); } } + else + { + $mesg=$soc->error; + } if ($result >= 0) { @@ -504,7 +511,7 @@ $_GET["action"] == 'create' || $_POST["action"] == 'create') 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";