Code source de henrri_connect.models.document_line

"""
Modèles document pour l'API Henrri Connect.

Attributs:
- DocumentType: Représente un type de document dans l'API Henrri Connect.
- DocumentLabelElement: Représente un élément d'étiquette de document dans l'API Henrri Connect.
- DocumentLabel: Représente une étiquette de document dans l'API Henrri Connect.
- DocumentLineType: Représente un type de ligne de document dans l'API Henrri Connect.
- DocumentLine: Représente une ligne de document dans l'API Henrri Connect.
- DocumentLineMoveQueryParameters: Représente les paramètres de requête pour déplacer une ligne
de document dans l'API Henrri Connect.
"""

from __future__ import annotations

from .base import CamelModel, DocumentLineKind, Link, SortOrder
from .items import Item


[docs] class DocumentLineType(CamelModel): """ Représente un type de ligne de document dans l'API Henrri Connect. Attributs: - id: Identifiant unique du type de ligne de document. - label: Libellé du type de ligne de document. - type: Type de ligne de document. """ id: int | None = None label: str | None = None type: str = DocumentLineKind.NONE
[docs] class DocumentLine(CamelModel): """ Représente une ligne de document dans l'API Henrri Connect. ``type_id`` peut être récupéré par un GET sur ``/documentlinetypes`` ou avec ``henrry_connect.<client>.document_line_types.list_document_line_types`` Attributs: - id: Identifiant unique de la ligne de document. - document_id: Identifiant du document auquel appartient la ligne. - reference: Référence de la ligne de document. - description: Description de la ligne de document. - selling_price_without_tax: Prix de vente sans taxe de la ligne de document. - purchasing_price_without_tax: Prix d'achat sans taxe de la ligne de document. - vat_percent: Pourcentage de TVA appliqué à la ligne de document. - quantity: Quantité de l'article dans la ligne de document. - is_tax_included: Indique si les prix incluent la taxe. - total_without_tax: Total sans taxe pour la ligne de document. - total_with_tax: Total avec taxe pour la ligne de document. - are_elements_of_group_shown: Indique si les éléments du groupe sont affichés. - line_number: Numéro de la ligne dans le document. - is_a_group: Indique si la ligne est un groupe d'articles. - does_group_own_different_vat: Indique si le groupe a une TVA différente pour ses éléments. - is_member_of_a_group: Indique si la ligne est membre d'un groupe d'articles. - is_adjustment_of_group: Indique si la ligne est un ajustement d'un groupe d'articles. - type_id: Identifiant du type de ligne de document. - type: Type de ligne de document (si applicable). - group_id: Identifiant du groupe d'articles auquel appartient la ligne (si applicable). - item_id: Identifiant de l'article associé à la ligne (si applicable). - item: Article associé à la ligne (si applicable). - links: Liste de liens associés à la ligne de document (si applicable). """ id: int | None = None document_id: int | None = None reference: str | None = None description: str | None = None selling_price_without_tax: float | None = None purchasing_price_without_tax: float = 0.0 vat_percent: float | None = None quantity: float = 0.0 is_tax_included: bool = False total_without_tax: float | None = None total_with_tax: float | None = None are_elements_of_group_shown: bool = False line_number: int | None = None is_a_group: bool = False does_group_own_different_vat: bool = False is_member_of_a_group: bool = False is_adjustment_of_group: bool = False type_id: int type: DocumentLineType | None = None group_id: int | None = None item_id: int | None = None item: Item | None = None links: list[Link] | None = None
[docs] class DecorativeDocumentLine(DocumentLine): """ Représente une ligne de document decoratif dans l'API Henrri Connect. Attributs: - type_id: Identifiant du type de ligne de document. """ type_id: int = 0 document_id: int| None = None reference: str | None = None description: str | None = None selling_price_without_tax: float | None = None purchasing_price_without_tax: float = 0.0 vat_percent: float | None = None quantity: float = 1.0 is_tax_included: bool = False total_without_tax: float | None = None total_with_tax: float | None = None are_elements_of_group_shown: bool = False line_number: int | None = None is_a_group: bool = False does_group_own_different_vat: bool = False is_member_of_a_group: bool = False is_adjustment_of_group: bool = False type_id: int type: DocumentLineType | None = None group_id: int | None = None item_id: int | None = None item: Item | None = None links: list[Link] | None = None
[docs] def horizontal_line(self) -> "DocumentLine": """ Créer une ligne horizontale dans le document. Returns: DocumentLine: La ligne horizontale crée. """ self.type_id = 13 return self
[docs] def empty_line(self) -> "DocumentLine": """ Créer une ligne vide dans le document. Returns: DocumentLine: La ligne vide crée. """ self.type_id = 11 return self
[docs] def subtotal_line(self) -> "DocumentLine": """ Créer une ligne de sous-total dans le document. Returns: DocumentLine: La ligne de sous-total crée. """ self.type_id = 5 return self
[docs] def total_line(self) -> "DocumentLine": """ Créer une ligne de total dans le document. Returns: DocumentLine: La ligne de total crée. """ self.type_id = 4 return self
[docs] def textual_line(self, text: str) -> "DocumentLine": """ Créer une ligne de texte dans le document. Returns: DocumentLine: La ligne de texte crée. """ self.type_id = 12 self.description = text return self
[docs] class DocumentLineMoveQueryParameters(CamelModel): """ Représente les paramètres de requête pour déplacer une ligne de document dans l'API Henrri Connect. Attributs: - to: Identifiant de la ligne de document vers laquelle déplacer la ligne. """ to: int
[docs] class DocumentLineListQueryParameters(CamelModel): """ Représente les paramètres de requête pour obtenir une liste de lignes de document dans l'API Henrri Connect. Attributs: - document_id: Identifiant du document auquel appartient la ligne. """ page: int = 1 limit: int = 50 search: str | None = None sort_by: str | None = None sort_order: SortOrder | None = None minId: int from_date: str to_date: str