Projet

Général

Profil

Actions

Commandes #490

fermé

Enregistrement des contributions en comptabilité via script externe

Ajouté par Raphaël Hertzog il y a presque 12 ans. Mis à jour il y a plus de 11 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
Core
Version cible:
Début:
18/01/2013
Echéance:
% réalisé:

100%

Temps estimé:
Commanditaire:
Debian France

Description

Nous souhaitons automatiser toute la saisie comptable des renouvellements de cotisation et des donations. Pour cela, il faudrait que l'on puisse configurer galette afin qu'il appelle un script externe lors de la création des contributions et lui passe une structure de données (encodée en JSON) en entrée:

{
"type":"contribution",
"amount": 10,
"voucher": "/tmp/galette-XXXXXXX.pdf",
"category":
  {
  "id": 1,
  "name": "Cotisation annuelle" 
  },
"payment":
  {
  "type": "paypal",
  "fee": 0.56,
  "paypal_buyer_email": "adherent@example.com",
  "paypal_txn_id": "6EG67315JL589342H",
  ...
  }
}
Quelques détails:
  • "type": type d'écriture comptable remontée par galette. Vaut "contribution" uniquement à l'heure actuelle (cela permet d'étendre l'usage du script à d'autre cas dans le futur, type remboursement de frais)
  • "amount": le montant de la contribution (montant brut, i.e. avant les frais éventuels)
  • "category": des informations de classification de la contribution, concrètement on file toutes les infos sur le type de contribution (au moins "id" et "libellé")
  • "payment": des informations sur le paiement, la clé "type" est obligatoire
    et définit le moyen de paiement ("paypal", "check", "transfer", "cash", "other"). La clé "fee" devrait être standardisée pour contenir les frais de paiement qui ont été imputés sur le montant reçu. Dans le cas de paypal, on veut tous les paramètres retournés par paypal (préfixé par "paypal_" pour éviter les soucis).
  • "voucher" est l'emplacement (possiblement temporaire) d'un fichier (PDF) qui peut servir lieu de pièce justificative à l'écriture comptable (cf http://redmine.ulysses.fr/issues/394 pour la demande de modifier galette pour qu'il sache générer ces documents)

Il faut vérifier que le script se soit bien terminé. S'il renvoie un code d'erreur, il faut envoyer un mail aux administrateurs/trésorier avec la copie de la sortie standard et de la sortie d'erreur ainsi que tous les éléments nécessaires à la saisie comptable manuelle (sauf le justificatif, on doit pouvoir le regénérer facilement depuis galette de toute façon).


Demandes liées 1 (0 ouverte1 fermée)

Lié à Galette - Commandes #394: Possibilité d'éditer des factures.FerméJohan Cwiklinski22/10/2012

Actions

Mis à jour par Johan Cwiklinski il y a presque 12 ans

  • Projet changé de Plugins à Galette
  • Assigné à mis à Johan Cwiklinski
  • Tracker changé de Evolution à Commandes

Mis à jour par Johan Cwiklinski il y a presque 12 ans

  • Catégorie mis à Core
  • Version cible mis à 0.7.5
  • Commanditaire mis à Debian France

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

  • % réalisé changé de 0 à 100
  • Statut changé de Nouveau à Résolu

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

Récupérer le code de retour après exécution d'un script n'est pas chose aisée (je ne suis même pas certain que ce soit faisable actuellement).

Dans le normal, lorsque l'on clôt le processus qui exécute le script,on obtient la code de retour standard, et on peut se baser la dessus pour savoir si le script a échoué ou réussi. Dans la pratique, ce retour est plutôt hasardeux.

Plutôt que de pondre une usine à gaz impossible à maintenir, j'ai préféré une solution plus simple (et que le quidam pourra comprendre facilement), à savoir considérer que l'on envoie un courriel à l'administrateur si le script renvoie une sortie (à la mode cron en somme).

À noter : la révision f8f392c7 ne concerne que Galette, et ne comprend donc pas les informations relatives à Paypal. Je souhaite que le côté Galette soit validé avant de modifier le plugin, pour éviter des allers-retours inutiles et sources de bogues. Si tout se passe bien, l'ajout d'informations sur la contribution et le paiement sont déjà prévus, et n'ont qu'à être renseignés.

Mis à jour par Raphaël Hertzog il y a plus de 11 ans

Johan Cwiklinski a écrit :

Récupérer le code de retour après exécution d'un script n'est pas chose aisée (je ne suis même pas certain que ce soit faisable actuellement).

$pidstatus = proc_close(...);
$exitcode = pcntl_wexitstatus($pidstatus);

Mais bon c'est spécifique à Unix et il faut peut-être se passer de la deuxième commande pour Windows.

Plutôt que de pondre une usine à gaz impossible à maintenir, j'ai préféré une solution plus simple (et que le quidam pourra comprendre facilement), à savoir considérer que l'on envoie un courriel à l'administrateur si le script renvoie une sortie (à la mode cron en somme).

OK, ca me va aussi.

À noter : la révision f8f392c7 ne concerne que Galette, et ne comprend donc pas les informations relatives à Paypal. Je souhaite que le côté Galette soit validé avant de modifier le plugin, pour éviter des allers-retours inutiles et sources de bogues. Si tout se passe bien, l'ajout d'informations sur la contribution et le paiement sont déjà prévus, et n'ont qu'à être renseignés.

J'imagine que je dois déployer un galette de test donc pour valider cette partie. J'essaie de faire cela mercredi.

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

Raphaël Hertzog a écrit :

$pidstatus = proc_close(...);
$exitcode = pcntl_wexitstatus($pidstatus);

Mais bon c'est spécifique à Unix et il faut peut-être se passer de la deuxième commande pour Windows.

Le problème, c'est justement que le retour de proc_close est souvent incorrect :/

Plutôt que de pondre une usine à gaz impossible à maintenir, j'ai préféré une solution plus simple (et que le quidam pourra comprendre facilement), à savoir considérer que l'on envoie un courriel à l'administrateur si le script renvoie une sortie (à la mode cron en somme).

OK, ca me va aussi.

Col :)

À noter : la révision f8f392c7 ne concerne que Galette, et ne comprend donc pas les informations relatives à Paypal. Je souhaite que le côté Galette soit validé avant de modifier le plugin, pour éviter des allers-retours inutiles et sources de bogues. Si tout se passe bien, l'ajout d'informations sur la contribution et le paiement sont déjà prévus, et n'ont qu'à être renseignés.

J'imagine que je dois déployer un galette de test donc pour valider cette partie. J'essaie de faire cela mercredi.

Oui, tout à fait. Merci.

Mis à jour par Raphaël Hertzog il y a plus de 11 ans

Il faut rajouter une clé "member" décrivant l'adhérent sous la forme d'un nouveau tableau associatif avec les informations suivantes:
- name: le nom ou la raison sociale
- email: l'adresse email associée
- organization: booléen indiquant si c'est un personne morale (organization) ou pas
- organization_name: nom de l'organisation (présent uniquement si organization=True)
- status: le statut de l'adhérent (membre actif, membre bienfaiteur, etc.)
- country: le pays de l'adhérent (en compta le pays d'origine peut avoir un impact)

À noter que cette clé "member" peut être absente pour une contribution externe anonyme...

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

  • Statut changé de Résolu à Fermé
Actions

Formats disponibles : Atom PDF