Bonjour,
Pour un module sur lequel je travaille, j'ai besoin de créer une association
entre deux écritures existantes en ajoutant une ligne dans la table
acc_transactions_links
Or actuellement je n'y arrive pas directement ; la solution que je vois consiste
à supprimer l'une des deux écritures puis la recréer avec la liaison, mais cela
pose un problème si l'écriture que je supprime a été rapprochée ; autre
problème
si l'écriture appartient à un exercice déjà clôturé... et il y peut-être
d'autres problèmes que je ne vois pas...
Bref, y a-t-il une solution simple et directe ou bien est-il possible d'ajouter
la fonctionnalité ?
merci d'avance
Hello,
bonne remarque, il manquait cela à l'API, je viens de rajouter :
https://fossil.kd2.org/paheko/info/3659fa393e108123
Le 04/03/2024 à 22:31, BohwaZ/Paheko a écrit :
> Hello,
>
> bonne remarque, il manquait cela à l'API, je viens de rajouter :
> https://fossil.kd2.org/paheko/info/3659fa393e108123
Si je regarde le code, il me semble que ceci ne répond pas tout-à-fait à mon
besoin : en effet, si je comprends bien, la fonction accounting crée
systématiquement une nouvelle écriture (ligne 445) et c'est bien ce que j'ai
constaté en l'utilisant.
Mon besoin est simplement de lier deux écritures existantes, dont d'ajouter une
ligne dans la table acc_transactions_links sans modifier les écritures
existantes. Est-ce possible ?
Jean-Christophe Engel
> Mon besoin est simplement de lier deux écritures existantes, dont
> d'ajouter une ligne dans la table acc_transactions_links sans
> modifier les écritures existantes. Est-ce possible ?
Oui c'est exactement ce que fait la route
accounting/transaction/{ID_TRANSACTION}/transactions
comme indiqué dans mon message :)
Après pas mal d'essais, j'en viens à conclure qu'il manque un petit truc
dans le
code de API.php (voir fichier patch joint).
À moins que je me plante complètement... et que je sois passé à côté de quelque
chose
voici mon code : je veux associer les écritures 1350 et 1355 à l'écriture 1336
{{:assign immo_id=1336}}
{{:assign amort_id1=1350}}
{{:assign amort_id2=1355}}
{{:assign var="linked_transactions." value=$amort_id1}}
{{:assign var="linked_transactions." value=$amort_id2}}
{{:api
method="POST"
path="accounting/transaction/%s/transactions"|args:$immo_id
assign="result"
assign_code="result_code"
linked_transactions=$linked_transactions
}}
actuellement, la fonction accounting de API.php appelle (ligne 482)
updateLinkedTransactions ((array)($_POST['transactions'] ?? null))
et le paramètre est systématiquement à null
J'ai l'impression que dans mon cas, il faudrait faire l'appel
updateLinkedTransactions((array)$this->params['linked_transactions'])
J'ai appliqué le petit patch joint et ça fonctionne.. mais tu verras toi-même
s'il est correct
Jean-Christophe Engel
Le 16/03/2024 à 17:41, BohwaZ/Paheko a écrit :
>> Mon besoin est simplement de lier deux écritures existantes, dont
>> d'ajouter une ligne dans la table acc_transactions_links sans
>> modifier les écritures existantes. Est-ce possible ?
>
> Oui c'est exactement ce que fait la route
> accounting/transaction/{ID_TRANSACTION}/transactions
>
> comme indiqué dans mon message :)
>
Pour compléter : je ne comprends pas pourquoi updateLinkedTransactions supprime
les anciennes liaisons avant d'ajouter les nouvelles..
Jean-Christophe Engel
Non c'est toi qui n'a pas lu la doc ;)
### accounting/transaction/{ID_TRANSACTION}/transactions (POST)
Met à jour la liste des écritures liées à une écriture, en utilisant
les ID des écritures, passées dans un tableau nommé `transactions`.
```
curl -v "http://…/api/accounting/transaction/9337/transactions" -F
'transactions[]=2' ```
> Pour compléter : je ne comprends pas pourquoi
> updateLinkedTransactions supprime les anciennes liaisons avant
> d'ajouter les nouvelles..
Ben parce que sinon tu fait comment pour supprimer une liaison entre 2
écritures ?