Frappe Framework
Docstatus : statut du document
Le docstatus suit l’état d’une transaction dans Frappe : brouillon (0), soumis (1) ou annulé (2). Cette page explique ces états et la classe DocStatus côté serveur.
À quoi sert le docstatus
Frappe utilise la notion de statut de document (Docstatus) pour suivre l’état des transactions. Le docstatus prend toujours l’une des trois valeurs suivantes :
| État | Nom anglais | Valeur |
|---|---|---|
| Brouillon | Draft | 0 |
| Soumis | Submitted | 1 |
| Annulé | Cancelled | 2 |
Les documents qui ne sont pas soumissibles (not submittable) restent toujours à l’état « brouillon ». Les documents soumissibles (submittable) peuvent passer, de façon facultative, du brouillon à l’état « soumis », puis à l’état « annulé ».
Modification des documents soumis ou annulés
Un document à l’état soumis ou annulé ne peut plus être modifié, à une exception près : il est possible d’autoriser explicitement la modification de certains champs individuels, même lorsque le document est soumis.
La classe d’aide DocStatus côté serveur
Dans le code serveur, la classe d’aide DocStatus permet de manipuler ces états de façon lisible :
import frappe
from frappe.model.docstatus import DocStatus
draft_invoice_names = frappe.get_list(
"Sales Invoice",
filters={"docstatus": DocStatus.draft()},
pluck="name"
)
invoice_doc = frappe.get_doc("Sales Invoice", draft_invoice_names[0])
invoice_doc.docstatus == DocStatus.draft() # -> True
invoice_doc.docstatus.is_draft() # -> True
invoice_doc.docstatus.is_submitted() # -> False
invoice_doc.docstatus.is_cancelled() # -> False
invoice_doc.submit()
invoice_doc.docstatus == DocStatus.submitted() # -> True
invoice_doc.docstatus.is_draft() # -> False
invoice_doc.docstatus.is_submitted() # -> True
invoice_doc.docstatus.is_cancelled() # -> False
invoice_doc.cancel()
invoice_doc.docstatus == DocStatus.cancelled() # -> True
invoice_doc.docstatus.is_draft() # -> False
invoice_doc.docstatus.is_submitted() # -> False
invoice_doc.docstatus.is_cancelled() # -> TrueStockage en base de données
Le docstatus est stocké sous forme d’entier dans la table de chaque DocType de la base de données.
Pages liées
- Allow on Submit : autoriser la modification de champs après soumission.
- Contrôleurs : les méthodes
submitetcancelet leurs hooks.
