Ajout de condition dans la création de facture

Bonjour,
Dans le cadre de réussir à créer une condition dans la création de ma facture, je me retrouve face à un problème.
Pendant la création d’une facture, on peut choisir le modèle de document pour la facture. Dans ce sens, j’aimerais créer une condition permettant au modèle de document d’être d’un type ou d’un autre type en fonction du pays du client.
J’ai donc vérifier plusieurs fichiers tels que card.php ainsi que invoice.lib.php mais je n’arrive pas à trouver l’endroit dans lequel « modèle de document » apparait.
Si quelqu’un aurait une solution à m’apporter…
Merci d’avance !

Bonjour
Je serai partie sur un seul document en mettant le tratement dans le document qui génère le pdf

Merci pour le conseil, j’ai donc essayé de faire comme tu m’as dit et je me retrouve avec un problème.
J’arrive à récupérer le pays de l’émetteur, mais je n’arrive pas à récupérer le pays du client. $this->emetteur->country_code == ‹ FR ›. Voici à quoi ressemble ma condition me permettant de récupérer le pays de l’émetteur et de le comparer.

Il me semble que l’info est sous $object->thirdparty->fk_pays

Bonjour j’ai testé différente méthode suite à cette info, cependant jamais ma condition n’a été true en utilisant ces conditions :

  • $object->thirdparty->fk_pays == ‹ GA › correspondant à la colonne ‹ code › de xx_c_country.
  • $object->thirdparty->fk_pays == ‹ GAB › correspondant à la colonne ‹ code_iso › de xx_c_country.
  • $object->thirdparty->fk_pays == ‹ Gabon › correspondant à la colonne ‹ label › de xx_c_country.

J’aimerais vérifer avec un var_dump ce que renvoie $object->thirdparty->fk_pays cependant mon var_dump ne renvoie rien et je sais que ce n’est pas forcément car $object->thirdparty->fk_pays est vide. Une idée de ce que je pourrais essayer ?

Bonjour,

fk_pays c’est la clé étrangère dans l’enregistrement (fk comme foreign key).

La liaison entre les tables se fait sur le rowid de la ligne.

Pour reprendre votre exemple avec le Gabon, le code doit donc être

$object->thirdparty->fk_pays == 16

Sachant que « fk_ » c’est très souvent le rowid d’une autre table

Exactement je m’étais posé aussi cette question et j’avais essayé avec le rowid je ne l’ai juste pas mentionné avant. J’ai quand même réessayé et toujours un problème.
Voici ma condition entière :
if ($object->thirdparty->fk_pays == 16) {
// Affichez l’image si la condition est vraie
$pdf->Image(DOL_DOCUMENT_ROOT.‹ /core/modules/facture/doc/signature-at.JPG ›, 140, 225, 55);
}


On voit pourtant bien que dans l’adresse, Gabon est le pays qui ressort. En connais-tu la raison ?

Sans la condition l’image s’affiche-t-elle ?

oui, ainsi qu’avec la condition $this->emetteur->country_code == « FR »

Peux-tu fournir ton code que je regarde plus en détail ?
Envoie le en MP

As-tu vérifier que l’ID du pays est le bon dans ta table country ?

oui

Condition à changer

if ($object->thirdparty->country == 'Gabon') {

Merci, c’est bon ça marche !