diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang
index a6eb669bbd1..84f61052d4f 100644
--- a/htdocs/langs/en_US/errors.lang
+++ b/htdocs/langs/en_US/errors.lang
@@ -3,4 +3,12 @@ ErrorDuplicateTrigger=A trigger file named '%s' is already loaded. Remove
ErrorFailToDeleteFile=Failed to remove file '%s'.
ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type.
ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only.
-ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different.
\ No newline at end of file
+ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different.
+ErrorBadThirdPartyName=Bad value for third party name
+ErrorBadCustomerCodeSyntax=Bad syntax for customer code
+ErrorCustomerCodeRequired=Customer code required
+ErrorCustomerCodeAlreadyUsed=Customer code already used
+ErrorPrefixRequired=Prefix required
+ErrorBadSupplierCodeSyntax=Bad syntax for supplier code
+ErrorSupplierCodeRequired=Supplier code required
+ErrorSupplierCodeAlreadyUsed=Supplier code already used
\ No newline at end of file
diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang
index 21fbc5b2d8c..b04452c3976 100644
--- a/htdocs/langs/fr_FR/errors.lang
+++ b/htdocs/langs/fr_FR/errors.lang
@@ -4,3 +4,11 @@ ErrorFailToDeleteFile=Echec de l'effacement du fichier '%s'.
ErrorThisContactIsAlreadyDefinedAsThisType=Ce contact est déjà défini comme contact pour ce type.
ErrorCashAccountAcceptsOnlyCashMoney=Ce compte bancaire est de type caisse et n'accepte que les mode de réglement de type espèce.
ErrorFromToAccountsMustDiffers=Le compte source et destination doivent etre différents.
+ErrorBadThirdPartyName=Nom de tiers incorrect
+ErrorBadCustomerCodeSyntax=La syntaxe du code client est incorrect
+ErrorCustomerCodeRequired=Code client obligatoire
+ErrorCustomerCodeAlreadyUsed=Code client deja utilise
+ErrorPrefixRequired=Prefix obligatoire
+ErrorBadSupplierCodeSyntax=La syntaxe du code fournisseur est incorrect
+ErrorSupplierCodeRequired=Code fournisseur obligatoire
+ErrorSupplierCodeAlreadyUsed=Code fournisseur deja utilise
diff --git a/htdocs/soc.php b/htdocs/soc.php
index 6ae0eea436f..09c2bf52d6b 100644
--- a/htdocs/soc.php
+++ b/htdocs/soc.php
@@ -161,7 +161,8 @@ if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"])
}
else
{
- $mesg=$soc->error;
+ $langs->load("errors");
+ $mesg=$langs->trans($soc->error);
$_GET["action"]='create';
}
}
@@ -324,10 +325,13 @@ if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] ||
print "
\n";
}
- if ($soc->error)
+ if (sizeof($soc->errors))
{
print '
';
- print nl2br($soc->error);
+ foreach($soc->errors as $message)
+ {
+ print $langs->trans($message)."
\n";
+ }
print '
';
}
diff --git a/htdocs/societe.class.php b/htdocs/societe.class.php
index a05b54e1ecf..1323211c5f8 100644
--- a/htdocs/societe.class.php
+++ b/htdocs/societe.class.php
@@ -21,7 +21,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
- * $Source$
*/
/**
@@ -39,7 +38,9 @@
class Societe
{
var $db;
-
+ var $error;
+ var $errors=array();
+
var $id;
var $nom;
var $nom_particulier;
@@ -95,12 +96,12 @@ class Societe
var $price_level;
- var $commercial_id; //Id du commercial affecté
+ var $commercial_id; //Id du commercial affecte
/**
* \brief Constructeur de la classe
- * \param DB handler accès base de données
+ * \param DB handler acc�s base de donn�es
* \param id id societe (0 par defaut)
*/
function Societe($DB, $id=0)
@@ -123,8 +124,8 @@ class Societe
}
/**
- * \brief Crée la societe en base
- * \param user Objet utilisateur qui demande la création
+ * \brief Cr�e la societe en base
+ * \param user Objet utilisateur qui demande la cr�ation
* \return int 0 si ok, < 0 si erreur
*/
@@ -132,7 +133,7 @@ class Societe
{
global $langs,$conf;
- // Nettoyage paramètres
+ // Nettoyage param�tres
$this->nom=trim($this->nom);
dolibarr_syslog("Societe::create ".$this->nom);
@@ -157,12 +158,12 @@ class Societe
$ret = $this->update($this->id,$user,0,1,1);
- // si un commercial crée un client il lui est affecté automatiquement
+ // si un commercial cr�e un client il lui est affect� automatiquement
if (!$user->rights->commercial->client->voir)
{
$this->add_commercial($user, $user->id);
}
- // Ajout du commercial affecté
+ // Ajout du commercial affect�
else if ($this->commercial_id != '' && $this->commercial_id != -1)
{
$this->add_commercial($user, $this->commercial_id);
@@ -222,62 +223,64 @@ class Societe
*/
function verify()
{
+ $this->errors=array();
+
$result = 0;
$this->nom=trim($this->nom);
if (! $this->nom)
{
- $this->error = "Le nom de la société ne peut être vide.\n";
+ $this->errors[] = 'ErrorBadThirdPartyName';
$result = -2;
}
if ($this->client && $this->codeclient_modifiable())
{
- // On ne vérifie le code client que si la société est un client / prospect et que le code est modifiable
- // Si il n'est pas modifiable il n'est pas mis à jour lors de l'update
+ // On ne verifie le code client que si la societe est un client / prospect et que le code est modifiable
+ // Si il n'est pas modifiable il n'est pas mis a jour lors de l'update
$rescode = $this->check_codeclient();
if ($rescode <> 0)
{
if ($rescode == -1)
{
- $this->error .= "La syntaxe du code client est incorrecte.\n";
+ $this->errors[] = 'ErrorBadCustomerCodeSyntax';
}
if ($rescode == -2)
{
- $this->error .= "Vous devez saisir un code client.\n";
+ $this->errors[] = 'ErrorCustomerCodeRequired';
}
if ($rescode == -3)
{
- $this->error .= "Ce code client est déjà utilisé.\n";
+ $this->errors[] = 'ErrorCustomerCodeAlreadyUsed';
}
if ($rescode == -4)
{
- $this->error .= "Vous devez renseigner le préfix pour générer le code client.\n";
+ $this->errors[] = 'ErrorPrefixRequired';
}
$result = -3;
}
}
if ($this->fournisseur && $this->codefournisseur_modifiable())
{
- // On ne vérifie le code fournisseur que si la société est un fournisseur et que le code est modifiable
- // Si il n'est pas modifiable il n'est pas mis à jour lors de l'update
+ // On ne verifie le code fournisseur que si la societe est un fournisseur et que le code est modifiable
+ // Si il n'est pas modifiable il n'est pas mis a jour lors de l'update
$rescode = $this->check_codefournisseur();
if ($rescode <> 0)
{
if ($rescode == -1)
{
- $this->error .= "La syntaxe du code fournisseur est incorrecte.\n";
+ $this->errors[] = 'ErrorBadSupplierCodeSyntax';
}
if ($rescode == -2)
{
- $this->error .= "Vous devez saisir un code fournisseur.\n";
+ $this->errors[] = 'ErrorSupplierCodeRequired';
}
if ($rescode == -3)
{
- $this->error .= "Ce code fournisseur est déjà utilisé.\n";
+ $this->errors[] = 'ErrorSupplierCodeAlreadyUsed';
}
if ($rescode == -5)
{
- $this->error .= "Vous devez renseigner le préfix pour générer le code fournisseur.\n";
+ $this->errors[] = 'ErrorprefixRequired';
}
$result = -3;
}
@@ -287,9 +290,9 @@ class Societe
}
/**
- * \brief Mise a jour des paramètres de la société
+ * \brief Mise a jour des param�tres de la soci�t�
* \param id id societe
- * \param user Utilisateur qui demande la mise à jour
+ * \param user Utilisateur qui demande la mise � jour
* \param call_trigger 0=non, 1=oui
* \param allowmodcodeclient Autorise modif code client
* \param allowmodcodefournisseur Autorise modif code fournisseur
@@ -301,7 +304,7 @@ class Societe
dolibarr_syslog("Societe::Update id=".$id." call_trigger=".$call_triger." allowmodcodeclient=".$allowmodcodeclient." allowmodcodefournisseur=".$allowmodcodefournisseur);
- // Nettoyage des paramètres
+ // Nettoyage des param�tres
$this->id=$id;
$this->capital=trim($this->capital);
$this->nom=trim($this->nom);
@@ -414,7 +417,7 @@ class Societe
if ($resql)
{
- //Si c'est un particulier on crée la fiche contact
+ //Si c'est un particulier on cr�e la fiche contact
if ($this->particulier == 1)
{
require_once (DOL_DOCUMENT_ROOT."/contact.class.php");
@@ -477,7 +480,7 @@ class Societe
/**
* \brief Charge depuis la base l'objet societe
- * \param socid Id de la société à charger en mémoire
+ * \param socid Id de la soci�t� � charger en m�moire
* \param user Objet de l'utilisateur
* \return int >0 si ok, <0 si ko
*/
@@ -680,8 +683,8 @@ class Societe
}
/**
- * \brief Suppression d'une societe de la base avec ses dépendances (contacts, rib...)
- * \param id id de la societe à supprimer
+ * \brief Suppression d'une societe de la base avec ses d�pendances (contacts, rib...)
+ * \param id id de la societe � supprimer
*/
function delete($id)
{
@@ -725,7 +728,7 @@ class Societe
}
else
{
- $this->error .= "Impossible de supprimer la société.\n";
+ $this->error .= "Impossible de supprimer la soci�t�.\n";
dolibarr_syslog("Societe::Delete erreur -3");
}
@@ -739,7 +742,7 @@ class Societe
$this->db->commit();
- // Suppression du répertoire document
+ // Suppression du r�pertoire document
$docdir = $conf->societe->dir_output . "/" . $id;
if (file_exists ($docdir))
{
@@ -759,8 +762,8 @@ class Societe
/**
- * \brief Retournes les factures impayées de la société
- * \return array tableau des id de factures impayées
+ * \brief Retournes les factures impay�es de la soci�t�
+ * \return array tableau des id de factures impay�es
*
*/
function factures_impayes()
@@ -792,7 +795,7 @@ class Societe
}
/**
- * \brief Attribut le prefix de la société en base
+ * \brief Attribut le prefix de la soci�t� en base
*
*/
function attribute_prefix()
@@ -843,10 +846,10 @@ class Societe
}
/**
- * \brief Génére le préfix de la société
- * \param nom nom de la société
- * \param taille taille du prefix à retourner
- * \param mot l'indice du mot à utiliser
+ * \brief G�n�re le pr�fix de la soci�t�
+ * \param nom nom de la soci�t�
+ * \param taille taille du prefix � retourner
+ * \param mot l'indice du mot � utiliser
*/
function genprefix($nom, $taille=4, $mot=0)
{
@@ -856,7 +859,7 @@ class Societe
if ($mot < count($tab))
{
$prefix = strtoupper(substr($tab[$mot],0,$taille));
- // On vérifie que ce prefix n'a pas déjà été pris ...
+ // On v�rifie que ce prefix n'a pas d�j� �t� pris ...
$sql = "SELECT count(*) as nb FROM ".MAIN_DB_PREFIX."societe WHERE prefix_comm = '$prefix'";
$resql=$this->db->query( $sql);
if ($resql)
@@ -877,7 +880,7 @@ class Societe
}
/**
- * \brief Définit la société comme un client
+ * \brief D�finit la soci�t� comme un client
*
*/
function set_as_client()
@@ -893,10 +896,10 @@ class Societe
}
/**
- * \brief Définit la société comme un client
+ * \brief D�finit la soci�t� comme un client
* \param remise Valeur en % de la remise
* \param note Note/Motif de modification de la remise
- * \param user Utilisateur qui définie la remise
+ * \param user Utilisateur qui d�finie la remise
* \return int <0 si ko, >0 si ok
*/
function set_remise_client($remise, $note, $user)
@@ -951,7 +954,7 @@ class Societe
}
/**
- * \brief Ajoute une remise fixe pour la société
+ * \brief Ajoute une remise fixe pour la soci�t�
* \param remise Montant de la remise
* \param user Utilisateur qui accorde la remise
* \param desc Motif de l'avoir
@@ -1002,8 +1005,8 @@ class Societe
}
/**
- * \brief Supprime un avoir (à condition que non affecté à une facture)
- * \param id Id de l'avoir à supprimer
+ * \brief Supprime un avoir (� condition que non affect� � une facture)
+ * \param id Id de l'avoir � supprimer
* \return int <0 si ko, id de l'avoir si ok
*/
function del_remise_except($id)
@@ -1158,8 +1161,8 @@ class Societe
/**
* \brief Renvoie le nom d'une societe a partir d'un id
- * \param id id de la société recherchée
- * \return string Nom de la société
+ * \param id id de la soci�t� recherch�e
+ * \return string Nom de la soci�t�
*/
function get_nom($id)
{
@@ -1185,7 +1188,7 @@ class Societe
/**
- * \brief Renvoie la liste des contacts emails existant pour la société
+ * \brief Renvoie la liste des contacts emails existant pour la soci�t�
* \return array tableau des contacts emails
*/
function thirdparty_and_contact_email_array()
@@ -1195,14 +1198,14 @@ class Societe
$contact_email = $this->contact_email_array();
if ($this->email)
{
- // TODO: Tester si email non deja présent dans tableau contact
+ // TODO: Tester si email non deja pr�sent dans tableau contact
$contact_email[-1]=$langs->trans("ThirdParty").': '.dolibarr_trunc($this->nom,16)." <".$this->email.">";;
}
return $contact_email;
}
/**
- * \brief Renvoie la liste des contacts emails existant pour la société
+ * \brief Renvoie la liste des contacts emails existant pour la soci�t�
* \return array tableau des contacts emails
*/
function contact_email_array()
@@ -1236,7 +1239,7 @@ class Societe
/**
- * \brief Renvoie la liste des contacts de cette société
+ * \brief Renvoie la liste des contacts de cette soci�t�
* \return array tableau des contacts
*/
function contact_array()
@@ -1299,7 +1302,7 @@ class Societe
/**
- * \brief Renvoie la liste des libellés traduits des types actifs de sociétés
+ * \brief Renvoie la liste des libell�s traduits des types actifs de soci�t�s
* \param mode 0=renvoi id+libelle, 1=renvoi code+libelle
* \return array tableau des typesl
*/
@@ -1441,7 +1444,7 @@ class Societe
}
/**
- * \brief Attribut un code client à partir du module de controle des codes.
+ * \brief Attribut un code client � partir du module de controle des codes.
* \return code_client Code client automatique
*/
function get_codeclient($objsoc=0,$type=0)
@@ -1461,7 +1464,7 @@ class Societe
}
/**
- * \brief Attribut un code fournisseur à partir du module de controle des codes.
+ * \brief Attribut un code fournisseur � partir du module de controle des codes.
* \return code_fournisseur Code fournisseur automatique
*/
function get_codefournisseur($objsoc=0,$type=1)
@@ -1539,7 +1542,7 @@ class Societe
/**
* \brief Verifie code client
- * \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilisé
+ * \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilis�
*/
function check_codeclient()
{
@@ -1564,7 +1567,7 @@ class Societe
/**
* \brief Verifie code fournisseur
- * \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilisé
+ * \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilis�
*/
function check_codefournisseur()
{
@@ -1589,8 +1592,8 @@ class Societe
/**
* \brief Renvoie un code compta, suivant le module de code compta.
- * Peut être identique à celui saisit ou généré automatiquement.
- * A ce jour seule la génération automatique est implémentée
+ * Peut �tre identique � celui saisit ou g�n�r� automatiquement.
+ * A ce jour seule la g�n�ration automatique est impl�ment�e
* \param type Type de tiers ('customer' ou 'supplier')
* \return string Code compta si ok, 0 si aucun, <0 si ko
*/
@@ -1624,8 +1627,8 @@ class Societe
}
/**
- * \brief Défini la société mère pour les filiales
- * \param id id compagnie mère à positionner
+ * \brief D�fini la soci�t� m�re pour les filiales
+ * \param id id compagnie m�re � positionner
* \return int <0 si ko, >0 si ok
*/
function set_parent($id)
@@ -1648,8 +1651,8 @@ class Societe
}
/**
- * \brief Supprime la société mère
- * \param id id compagnie mère à effacer
+ * \brief Supprime la soci�t� m�re
+ * \param id id compagnie m�re � effacer
* \return int <0 si ko, >0 si ok
*/
function remove_parent($id)
@@ -1724,7 +1727,7 @@ class Societe
}
/**
- * \brief Renvoi url de vérification d'un identifiant professionnal
+ * \brief Renvoi url de v�rification d'un identifiant professionnal
* \param idprof 1,2,3,4 (Exemple: 1=siren,2=siret,3=naf,4=rcs/rm)
* \param soc Objet societe
* \return string url ou chaine vide si aucune url connue
@@ -1742,8 +1745,8 @@ class Societe
}
/**
- * \brief Indique si la société a des projets
- * \return bool true si la société a des projets, false sinon
+ * \brief Indique si la soci�t� a des projets
+ * \return bool true si la soci�t� a des projets, false sinon
*/
function has_projects()
{
@@ -1824,12 +1827,12 @@ class Societe
}
/*
- * \brief Renvoi si pays appartient à CEE
+ * \brief Renvoi si pays appartient � CEE
* \param boolean true = pays dans CEE, false= pays hors CEE
*/
function isInEEC()
{
- // \todo liste code pays à compléter
+ // \todo liste code pays � compl�ter
$country_code_in_EEC=array('BE','FR','LU','GB','IT');
//print "dd".$this->pays_code;
return in_array($this->pays_code,$country_code_in_EEC);