Lien commande Client avec facture fournisseur

Bonjour tout le monde,

je cherche à lier une commande client avec une facture founisseur via l’API REST.
J’ai fait qqs tests via le swagger :

{
    "linkedObjectsIds": {
      "commande": "21"
    }
}


ça ne marche pas.

Quand je le fais manuellement puis fais un GET invoices/id, j’obtiens :

  "linkedObjectsIds": {
    "commande": {
      "54": "21"
    }
  },

J’ai donc 2 questions :

  • quel est le numéro qui s’intercale dans le json (« 54 » dans l’exemple ci-dessus)
  • Qu’est-ce qui manque dans mon code pour que ça le fasse ?

Note : je sais que certains modules le font, mais j’ai besoin de pouvoir le faire de mon côté pour l’intégrer dans des worflows N8N

Bonjour,

si vous regardez dans la table "llx_"elements_elements de dolibarr pou ces objets vous avez quoi ?

regarder également le code de fetchObjectLink de CommonObject cela vous donnera des indices

Bonjour FHenry, et merci pour cette réponse !

Effectivement, c’est bien la table qui gère les liens. J’ai fait un :

 INSERT INTO `llx_element_element` (`rowid`, `fk_source`, `sourcetype`, `fk_target`, `targettype`) VALUES ('51', '21', 'commande', '5', 'invoice_supplier');

et j’ai bien eu la liaison entre la commande client et la facture fournisseur.

Note : le « 51 » est en fait l’index incrémentiel.

Avant de mettre en « résolu », 2 questions :

  • y a-t-il un risque à faire un insert directement en Base de données pendant que Dolibarr est utilisé ?
  • existe-t-il un moyen de faire ça via l’API REST ?

Bonjour,

Non pas de risque à faire l’insert en BDD, mais le plus sure est de passer par les méthodes de classes.

Je ne sais pas si le point d’entré API pour la methode add_object_linked de CommonObject existe. Sinon vous pouvez proposer via une PR son ajout ou le créer via un module Dolibarr

un super merci pour tes réponses !