API REST Proposition commerciale vers facture

Bonjour,

Je cherche à utiliser la REST API afin de créer une facture depuis une proposition commerciale

Je sais que c’est possible depuis une commande avec la route suivante: /invoices/createfromorder/{orderid}.

Cependant (ou alors je me trompe) je ne vois pas de route qui permet la création d’une facture depuis une proposition commerciale.

Est-ce une fonctionnalité non développé pour le moment ?
Est-ce que la REST API propose une route pour ça que je ne vois pas ?

Merci d’avance pour votre temps et vos réponses :happy:

PS: En ajoutant dans le fichier ./compta/facture/class/api_invoices.class.php la route, cela fonctionne:

[code]
/**
* Create an invoice using an existing propal.
*
*
* @param int $propalid Id of the propal
*
* @url POST /createfrompropal/{propalid}
*
* @return int
* @throws 400
* @throws 401
* @throws 404
* @throws 405
*/
function createInvoiceFromPropal($propalid) {

    require_once DOL_DOCUMENT_ROOT . '/comm/propal/class/propal.class.php';

    if(! DolibarrApiAccess::$user->rights->propal->lire) {
            throw new RestException(401);
    }
    if(! DolibarrApiAccess::$user->rights->facture->creer) {
            throw new RestException(401);
    }
    if(empty($propalid)) {
            throw new RestException(400, 'Propal ID is mandatory');
    }

    $propal = new Propal($this->db);
    $result = $propal->fetch($propalid);
    if( ! $result ) {
            throw new RestException(404, 'Propal not found');
    }

    $result = $this->invoice->createFromOrder($propal, DolibarrApiAccess::$user);
    if( $result < 0) {
            throw new RestException(405, $this->invoice->error);
    }
    $this->invoice->fetchObjectLinked();
    return $this->_cleanObjectDatas($this->invoice);
}[/code]

Bonjour,

Je réponds un peu tard :laugh:

Donc, pour répondre, non il n’y a pas de endpoint direct pour créer une facture à partir d’une propale.
Par contre, il est possible de créer une commande à partir de la propale et de créer une facture à partir de la commande.

  • POST /orders/createfromproposal/{proposalid} puis
  • POST /invoices/createfromorder/{orderid}

Après, la façon dont tu as procédé est plus rapide et je pense que tu devrais proposer l’ajout via une Pull Request sur Github pour que tout le monde en bénéficie d’autant plus que depuis l’interface graphique d’une fiche propale, il est possible de créer directement une facture (ça serait donc logique que ça soit également possible via l’API sans avoir à créer une commande entre deux) :wink:

1 « J'aime »

Merci de la réponse.

C’était ma logique de procéder qui n’était pas correcte.

En passant par l’ordre logique: ¨Proposition commercial -> Commande -> Facture tout est OK.

En pratique tous les jours, je passe des propositions commerciales en factures directement. Ça reste aussi un ordre logique.

Des connaissances font le même procéder, Propositions commerciales en facture.

Je vais tenter de faire une PR sur GitHub pour ajouter la route dans la Rest API, ça peut être utile.