Jump to content

format identification fiscale


Recommended Posts

Salut la communauté,

 

Je suis tout nouveau sur prestashop 1.6. Je suis en train d'installer ma eboutique à Madagascar et j'ai dois un peu adapter la config française.

 

J'ai bien compris comment changer certains champs comme SIRET et APE dans les traductions que j'ai remplacé par NIF et STAT. Lors d'une nouvelle inscription les champs s'affichent correctement pas de souci, mais quand je rentre le code NIF (ancien SIRET) d'une société j'ai une erreur probablement due au format du nombre différent de SIRET et idem pour mon STAT à la place de APE.

 

le NIF a ce format : 0000000000

le STAT a ce format : 00000 00 0000 0 00 000

 

J'ai fait pas mal de recherche mais je tourne en rond !! Si quelqu'un peut m'aider ça serait sympa ! 

 

Merci d'avance,

Olivier 

Link to comment
Share on other sites

Bonjour,

 

Vous allez être obligé de mettre un peu les mains dans le code pour faire cela.

 

Si vous avez un accès FTP et que ça vous parle, vous trouverez le fichier concerné dans "classes/Validate.php". Il y a dedans une fonction qui s'appelle isSiret qui détermine ce qu'est un numéro de SIRET ou non, pareil pour la fonction isApe.

 

Le mieux, pour éviter de toucher au code en soit-même est de créer une surchage du code, un override, vous trouverez les informations ici : http://doc.prestashop.com/display/PS16/Overriding+default+behaviors.

 

Dans le fichier override que vous allez créer, il va falloir redéfinir les 2 fonctions, pour le NIF c'est assez simple :

 

public static function isSiret($siret)
{
   // test if siret / NIF contains 10 letters
   if (Tools::strlen($siret) != 10) {
       return false;
   }
   return true;
}

Pour le STAT, c'est un peu plus complexe, commencez par tester ça et on verra pour la suite.

  • Like 1
Link to comment
Share on other sites

Bonjour Hubert,

 

Je te remercie de bien vouloir m'aider et de t'intéresser à mon sujet !

 

Oui j'ai un accès à mes fichiers pas de souci ! Oui j'ai trouvé "classes/Validate.php" et la fonction isSiret qui détermine ce qu'est un numéro de SIRET ou non, pareil pour la fonction isApe. 

 

J'ai regarder le lien pour les fichiers override et j'ai à peu près compris qu'il fallait que je créer ce fichier dans /override/classes. 

 

Maintenant je suis pas du tout développeur mais je sais faire un copier/coller de code dans un fichier avec vraiment quelques notions ! Du coup :

 

  • comment dois-je nommer mon nouveau fichier ?
  • je suppose que si je colle les lignes que tu m'as envoyé ça ne va pas suffire ? Peut-être dois-je ajouter les balises php ? 
  • une fois le fichier créer, je test pour vérifier si presta sur le front office accepte mon NIF ? 

 

Les espaces entre les chiffres ne sont pas très importants pour le STAT si c'est ça qui est compliqué, déjà c'est très bien si on vérifier le nombre de chiffre :) !

 

Je pourrais même dire que dans un premier temps on est pas obligé de vérifier le nombre de chiffre, l'essentiel est de pouvoir entrer un numéro d'identification pour le NIF et le STAT et pouvoir valider l'inscription !! (le client pourra toujours venir modifier ses numéros ou moi même) 

 

Je te remercie bien,

Olivier

Link to comment
Share on other sites

Le fichier doit s'appeler Validate.php, à placer dans : /override/classes

 

Le fichier doit être celui-ci :

<?php
/*
 * @override Validate.php file
 */
class Validate extends ValidateCore
{
   public static function isSiret($siret)
   {
      // test if siret / NIF contains 10 letters
      if (Tools::strlen($siret) != 10) {
         return false;
      }
      return true;
   }
}

Testez déjà ce bout de code pour le champ NIF voir si tout est ok.

Edited by Hubert E-connecteur (see edit history)
  • Like 1
Link to comment
Share on other sites

Je viens de tester et j'ai toujours "NIF invalide" quand j'essai de valider l'inscription.

 

Vu que j'ai pas mis le NIF obligatoire pour la création de compte, en mettant rien j'ai validé puis j'ai essayé de modifier 'mes info personnelles" mais pareil dès que j'entre les 10 chiffres de mon NIF il me marque "NIF invalide" ! 

Link to comment
Share on other sites

Bonne nouvelle ça fonctionne impect ce code Hubert !! Voilà pourquoi ça n'a pas marché dans un 1er temps :

 

Supprimez le fichier /www/cache/class_index.php. C’est un fichier qui liste les chemins de toutes les classes utilisées par Prestashop. Si le fichier n’est pas supprimé, la surcharge (override) de la classe ne fonctionnera pas.

 

 

Du coup je vais essayé de faire pareil avec Ape/STAT avec 17 chiffres et je reviens :) 

Edited by Orb Service (see edit history)
Link to comment
Share on other sites

Nikel avec ce code pour NIF et STAT 

<?php
/*
 * @override Validate.php file
 */
class Validate extends ValidateCore
{
   public static function isSiret($siret)
   {
      // test if siret / NIF contains 10 letters
      if (Tools::strlen($siret) != 10) {
         return false;
      }
      return true;
   }
   public static function isApe($ape)
   {
      // test if Ape / STAT contains 17 letters
      if (Tools::strlen($ape) != 17) {
         return false;
      }
      return true;
   }
}

Evidemment si je met les espaces dans le stat il ne valide pas ! Mais déjà c'est très bien :) Merci encore. Je marque le topic comme résolu !

Link to comment
Share on other sites

Content de le savoir !

 

Si vous voulez, vous pouvez rajouter un mask au champ APE (donc STAT).

 

Par exemple : https://igorescobar.github.io/jQuery-Mask-Plugin/

 

Vous pouvez ajouter le bout de code dans le fichier du thème : authentification.tpl, vers la fin du fichier :

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.10/jquery.mask.min.js"></script>
<script>
$(function() {
   $('#ape').mask('00000 00 0000 0 00 000');
});
</script>
Link to comment
Share on other sites

Merci pour l'info c'est vrai que sur l'exemple c'est pas mal du tout !

 

J'ai ajouter le code à la fin du fichier authentification.tpl après une dernière  balise {/strip} (le fichier dans themes/montheme/)

 

Mais j'ai eu une erreur 500 quand je suis entré dans mes informations personnels donc pour le moment j'ai remis mon bakup authentification ! Peut être je n'ai pas mis les lignes au bon endroit ?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...