Génération d'un reçu d'adhésion

Hello à tous,

Dans le cadre du déploiement de dokos au sein d’une association, j’ai le problème suivant.

:teacher:Cas d’usage
Je souhaite gérer les adhésions à l’asso en passant par un modèle d’abonnement annuel lié à un article “adhésion”.

:wrench:Implémentation
Etant donné qu’une facture n’est pas appropriée pour une adhésion (ii ne s’agit pas d’une vente à proprement parler), j’ai crée un format d’impression dédié afin de remplacer “Facture de vente” par “Reçu de cotisation”.
J’ai également besoin de créer un numéro de série dédié à mon reçu pour ne pas créer de coupure dans la numérotation “standard” de mes factures de vente. J’aimerais pour cela créer une règle de nommage afin d’automatiser l’attribution du bon numéro de série

:thinking:Problème
Quelles condition utiliser dans ma règle de nommage ? (sachant qu’il ne semble pas possible d’utiliser l’article)

Salut Antoine,

J’aurai tendance à dire que le reçu est la version imprimée de l’écriture de paiement, puisqu’il s’agit de la preuve que le particulier a réglé sa cotisation.

En ce qui concerne la facture, j’ai l’impression que le plus simple serait de conditionner le numéro de série au fait que la facture est liée à un abonnement ou non.
Malheureusement le document de règle de nommage n’a pas le filtre [“is”, “set”]

Par contre tu peux le faire via un script python associé à l’événement “Avant validation”:

Par exemple:

doc.naming_series = "RECU-####" if doc.subscription else "FACT-####"

Ca changera automatiquement le préfixe de série en fonction de ta condition.
Si tu préfères le faire sur la base des articles, tu peux utiliser:

If "article_de_reçu" in [item.item_code for item in doc.items]:
    doc.naming_series = "RECU-####"

Attention c’est plus dangereux avec les articles, parce que quelqu’un pourrait sélectionner le mauvais article dans une facture…

Bonne soirée !

Hello Charles-Henri,

Merci beaucoup pour ta réponse!

Oui c’est plus logique d’utiliser l’écriture de paiement en effet.

La raison principal qui me pousse à utiliser la facture est de pouvoir utiliser un modèle d’abonnement et proposer l’adhésion sur la boutique en ligne et/ou le portail. En y regardant de plus près, il semble possible de faire un abonnement sans générer de facture comme ci-dessous.

image

Je viens de faire un essai mais il ne semble pas y avoir de demande de paiement générée

Je pense que je vais passer par une facture en trouvant un nom plus approprié que “reçu” alors.

Encore merci en tout cas, le script va bien répondre a mon problème :).

Voici mon script un peu adapté pour changer le numéro de série d’une facture pour un abonnement spécifique (ici “Adhésion annuelle”).
Il se déclenche avant la validation des factures de vente.

J’ai rajouté une condition sur la plan d’abonnement pour éviter les problèmes avec d’autres abonnements.

if doc.subscription:
    plan = frappe.db.get_value('Subscription',doc.subscription,"subscription_plan")
    if plan=='Adhésion annuelle':
        doc.naming_series = "RECU-"