Project

General

Profile

Development #45670

faire qu'une régie distance puisse utiliser une source "fiches" de wcs

Added by Thomas Noël 4 days ago. Updated 4 days ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
01 Aug 2020
Due date:
% Done:

0%

Patch proposed:
No
Planning:
No

Description

Soit un modèle de fiche dans w.c.s. qui corresponde à des factures :
  • id: identifiant (référence technique)
  • created: date de création
  • pay_limit_date: date limite de paiement (date+heure)
  • display_id: réference à afficher
  • total_amount: montant total
  • amout : montant
  • amount_paid : montant payé
  • subject
  • has_pdf (ou champ pdf)
  • online_payment : payable en ligne
  • payment_date : date du paiement (date+heure)
  • no_online_payment_reason : raison qui interdit le paiement en ligne
  • reference_id

Des champs seraient optionnels, cf RemoteItems et build_remote_item.

On pourrait faire en sorte que lingo puisse utiliser ces fiches comme source pour une régie distante.

Il faudrait :
  • définir la structure de base attendue pour une fiche, et adapter build_remote_item en fonction
  • prévoir un workflow de base pour ce genre de fiche, principalement avec des trigger "pay" (et peut-être "cancel" ou autre)
  • à côté de webservice_url, permettre qu'une régie définisse des URLs spécifiques pour :
    • invoices_url : la liste des facture (actuellement self.webservice_url + '/invoices/') => list wcs avec full=on
    • invoice_url : récupérer une facture selon son id (actuellement self.webservice_url + '/invoice/%s/' % invoice_id) => recherche d'une fiche avec ?filter-xxx=id
    • récupérer le PDF d'une facture => adhoc
    • pay_url : POST quand on paye une facture (actuellement self.webservice_url + '/invoice/%s/pay/' % invoice_id) => sera un trigger wcs
    • pending_url : liste des user ayant une facture à payer (pour notification)

History

#1 Updated by Thomas Noël 4 days ago

Je vois plusieurs façons de faire le code :
  • soit ajouter un d'un flag "wcs_carddef" à côté de webservice_url, qui indique que la régie doit utiliser les webservices des fiches de wcs
    • ou bien autoriser une URL de la forme « carddef:slug-de-la-carddef » et bascule en mode "wcs_carddef"
  • soit magiquement voir que l'URL est de type wcs/api/cards et dans ce cas basculer en mode "wcs_carddef"
  • soit permettre de configurer toutes les URLs comme j'ai proposé dans la description (c'est lourd et à documenter obligatoirement)

La première solution me semble la plus claire au niveau du code, et de la compréhension lors de la config par l'admin fonctionnel. Pas de magie.

Also available in: Atom PDF