[API] récupérer le nom de la facture d'une commande

J’ai une commande C202400120
Dans Dokos, cette commande est bien liée à une facture F202400184

Quand je requête la commande, je n’arrive pas à trouver le nom de la facture ( F202400184 ), ce qui pousse mon script à essayer de créer une deuxième facture ce qui ne passe pas.

J’ai essayé avec une requête Dynamic Links sans succès, puis une requête basée sur Comment retrouver le client lié à une réservation
/api/resource/Sales Invoice?filters=[[« Sales Order », « name », « = », « C202400120 »]]
sans plus de succès

Je pense que quelque chose de trivial m’échappe… mais ca m’échappe !

Un conseil ?
Merci
Malaiac

Bonjour @Malaiac,

Les commandes clients sont référencées au niveau des lignes de facturation (une commande peut être facturée en plusieurs fois ou une facture peut regrouper plusieurs commandes).

La bonne requête est donc:

/api/resource/Sales Invoice?filters=[["Sales Invoice Item", "sales_order", "=", "C202400120"]]

Bonne soirée !

La requête :

/api/resource/Sales Invoice?filters=[["Sales Invoice Item", "sales_order", "=", "C202400120"]] 

renvoie hélas une réponse vide

DokosAPIResponse Object
(
    [status_code] => 0
    [success] => 
    [headers] => Array
        (
        )

    [data] => 
    [errors] => Array
        (
            [0] => Empty response
        )

    [content_type:protected] => 
)

Je ne sais pas trop ce qui pose problème, si ce n’est qu’aucune facture n’est associée avec cette commande…

Voici une requête sur Postman pour tester sur la démo, si ça peut aider:

Voici où se trouve la référence dans la ligne de facturation sur Dokos:

coté Dokos on a bien une commande et une facture :confused:

Dans ce cas je pense qu’il y a un problème avec la requête.

Je viens d’essayer sur le site concerné et ça fonctionne correctement:

Résolu en transformant les espaces et les doubles quotes

$action = sprintf( 'resource/%s?filters=[["%s","%s","=","%s"]]', $DocType, $ParentDocType, $parent_slug, $ParentDocID );
$action = str_replace(' ', '%20', $action );
$action = str_replace('"', '%22', $action );
1 Like