Valeur par défaut des tiers pas toujours appliqué à l'activation d'un module

Bonjour,

Pour ajouter un champs supplémentaire depuis mon module j’ai ce code dans mon descripteur :

        $result_supportparutionabonnement_tiers_ue_non_eu = $extrafields->addExtraField(
            'supportparutionabonnement_tiers_ue_non_eu',
            "LabelChampsExtraUENEUForTiers",
            'select',
            500,
            3,
            'thirdparty', // 'thirdparty' corresponds to tiers in Dolibarr
            0,
            0,
            'UE',
            array('options'=>array('UE' => $langs->trans("ChoixChampsExtraUENEUYesUE"), 'Non-UE' => $langs->trans("ChoixChampsExtraUENEUNoUE"))),
            1,
            '',
            1,
            0,
            '',
            '',
            'supportparutionabonnement@supportparutionabonnement',
            '$conf->supportparutionabonnement->enabled'
        );

Malheureusement, la valeur par défaut UE n’est pas toujours mise.

Quelqu’un aurait il une idée de pourquoi ?

Merci.

GL

Bonjour :slightly_smiling_face:
Rapidement dans la classe (sur la v19) je lis:

 $field_desc = array(
        'type'=>$typedb,
        'value'=>$lengthdb,
        'null'=>($required ? 'NOT NULL' : 'NULL'),
        'default' => $default_value
      );
 
      $result = $this->db->DDLAddField($this->db->prefix().$table, $attrname, $field_desc);
      if ($result > 0) {
        if ($unique) {
          $sql = "ALTER TABLE ".$this->db->prefix().$table." ADD UNIQUE INDEX uk_".$table."_".$attrname." (".$attrname.")";
          $resql = $this->db->query($sql, 1, 'dml');
        }
        return 1;

default_value n’est pas envoyé dans table ou j’ai loupé un truc ?

En fait la valeur par défaut est mise, mais pas toujours.

Dans le code, elle devrait être passé par $field_desc.

Merci.