[API REST] Dictionnaire "Countries" : Savoir si un pays est dans l'Union Européenne

Bonjour,

Je travaille sur l’interfaçage de Dolibarr avec un logiciel métier (fait maison). Pour cela j’ai besoin de savoir si un pays est en Union Européenne ou pas (par exemple pour choisir si j’applique une TVA au moment de la création de factures dans Dolibarr via l’API).

J’envoie donc le code Pays à l’API REST. Par exemple, pour la France, j’envoie « FR » :

/api/index.php/setup/dictionary/countries/byCode/FR

Réponse :

{
  "id": "1",
  "entity": null,
  "code": "FR",
  "label": "France",
  "active": "1",
  "code_iso": "FRA"
}

Je suis étonné car je n’ai pas le champ « Union Européenne (UE) » alors que je le vois bien par l’interface graphique dans les dictionnaire :

Cette information correspond au champ ecc de la table _c_country :

Comment faire pour ajouter ce champ au résultat de l’API (sans modifier le code source évidement, car cela serait cassé dès la première montée de version) ?

Pour information, je suis en 20.0.3

Merci d’avance pour votre aide ! :grin:

Cordialement,

Bonjour
Le plus simple c’est de rajouter ce champs directement dans l’api de dolibarr
ainsi cela profitera à tout le monde lors des prochaines version

Bonjour @defrance

Effectivement, ce serait le plus simple.

Cela sort un peu de mes compétences, mais ChatGPT m’a donné un petit coup de pouce :

Fichier htdocs/api/class/api_setup.class.php, dans la définition de fonction private function _fetchCcountry($id, $code = '', $iso = '', $lang = '') :

$country->eec = $country->eec;
est à ajouter ligne 655, juste avant :
$this->translateLabel($country, $lang, 'Country');

Et dans le fichier htdocs/core/class/ccountry.class.php, dans la définition de fonction public function fetch($id, $code = '', $code_iso = '') :

$sql .= " t.active";
est à remplacer, ligne 140, par :
$sql .= " t.active,";
$sql .= " t.eec";

et
$this->eec = $obj->eec;
est à ajouter, ligne 161, juste après
$this->active = $obj->active;

Ces changements fonctionnent bien ! :sunglasses:

Par contre, si quelqu’un du projet Dolibarr peut s’en occuper, je veux bien que le change soit soumis pour la 20.0.4 par quelqu’un qui a en a l’habitude…

Merci !

Cordialement,

L’info sera avec la v21.

Laurent tu es plus rapide que moi

@defrance @eldy

Merci beaucoup Laurent et Charlène !

et pour être exhaustif pour la prochaine fois :

1 « J'aime »

Salut Laurent,

V22 non comme c’est mergé dans develop ?