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);