dilicom_parser.models package

Submodules

dilicom_parser.models.connector module

Module des modèles de données pour la gestion des fichiers distants sur le serveur SFTP de Dilicom.

class dilicom_parser.models.connector.RemoteFile(filename, filepath, size, modified_time)

Bases : object

Classe représentant un fichier distant sur le serveur SFTP de Dilicom.

filename

Le nom du fichier.

Type:

str

filepath

Le chemin complet du fichier sur le serveur SFTP.

Type:

str

size

La taille du fichier en octets, ou None si non disponible.

Type:

int | None

modified_time

La date et l’heure de la dernière modification du fichier, ou None si non disponible.

Type:

datetime | None

filename: str
filepath: str
modified_time: datetime | None
size: int | None

dilicom_parser.models.distributor module

Module de définition des structures de données pour les fichiers distributeurs reçus de Dilicom.

class dilicom_parser.models.distributor.DistributorData(debut_fichier, ref_edi, date_edi, lines, fin_fichier)

Bases : object

Structure de données complète pour les fichiers de type distributeur, regroupant les blocs 1, 2 et 3.

date_edi: int
debut_fichier: str
fin_fichier: str
lines: list[DistributorLineData]
ref_edi: str
class dilicom_parser.models.distributor.DistributorDataBloc1(ref, mvt, gln, rs1, rs2, numero_voie, adresse_l1, adresse_l2, adresse_l3, code_postal, ville, pays, rejet_postal, num_tel, num_fax, email, website, siren_or_siret, num_tva_intracom, gln_repreneur, rs_repreneur, fonction, adherent_prisme)

Bases : object

Structure de données pour les fichiers de type “distributeur. Attributs: - ref: Numéro de la ligne - mvt: Type de mouvement

  • 00: Extraction complète

  • 01: Extraction des distributeurs qui peuvent faire l’objet de commandes via DILICOM

  • 03 = Création

  • 04 = Modification complète

  • 05 = Modification du bloc 1

  • 06 = Modification du bloc 2

  • 07 = Modification du bloc 3

  • 08 = Suppression

  • gln: Code GLN du distributeur

  • rs1: Raison sociale 1

  • rs2: Raison sociale 2 (optionnel)

  • numero_voie: Numéro de voie (optionnel)

  • adresse_l1: Adresse ligne 1 (optionnel)

  • adresse_l2: Adresse ligne 2 (optionnel)

  • adresse_l3: Adresse ligne 3 (optionnel)

  • code_postal: Code postal (optionnel)

  • ville: Ville

  • pays: Pays

  • rejet_postal: Rejet postal (optionnel)

  • num_tel: Numéro de téléphone (optionnel)

  • num_fax: Numéro de fax (optionnel)

  • email: Adresse email (optionnel)

  • website: Site web (optionnel)

  • siren_or_siret: Numéro SIREN ou SIRET (optionnel)

  • num_tva_intracom: Numéro de TVA intracommunautaire (optionnel)

  • gln_repreneur: Code GLN du repreneur (optionnel)

  • rs_repreneur: Raison sociale du repreneur (optionnel)

  • fonction: Fonction du contact
    • 01 = Distributeur

    • 02 = Grossiste/Comptoir/GIE

  • adherent_prisme: Indicateur d’adhésion au PRISME
    • 0 = Non adhérent

    • 1 = Adhérent

adherent_prisme: int
adresse_l1: str | None
adresse_l2: str | None
adresse_l3: str | None
code_postal: str | None
email: str | None
fonction: str
gln: str
gln_repreneur: str | None
mvt: str
num_fax: str | None
num_tel: str | None
num_tva_intracom: str | None
numero_voie: str | None
pays: str
ref: str
rejet_postal: str | None
rs1: str
rs2: str | None
rs_repreneur: str | None
siren_or_siret: str | None
ville: str
website: str | None
class dilicom_parser.models.distributor.DistributorDataBloc2(integration_commande, place_commande, heure_limite, jours_collecte, format_commandes, type_connection, avis_expedition)

Bases : object

Structure de données pour les fichiers de type distributeur, bloc 2, connexion au serveur Dilicom. Attributs: - integration_commande: Intégration des commandes

  • 01 = Automatique

  • 02 = Manuelle

  • 03 = Semi-automatique

  • 00 ou 04 = Non précisé

  • place_commande: Place de commande
    • 00 = Non précisé

    • 01 = prioritaire

    • 02 = non-prioritaire

  • heure_limite:
    • HHMM: Heure limite de prise en compte des commandes pour le jour même

  • jours_collecte: Jours de collecte des commandes
    • LMMJVSD, O si non et 1 si oui

  • format_commandes: Format des commandes
    • 01 = Imprimable

    • 02 = EDI (Codifié et intégrable)

  • type_connection: Type de connexion
    • 01 = Fax/Mail/Téléchargement

    • 02 = EDI (Codifié et intégrable)

  • avis_expedition: Génération des avis d’expédition
    • 01 = Pré-facturation/Stock théorique

    • 02 = Post-facturation/Fermeture du camion

avis_expedition: str | None
format_commandes: str | None
heure_limite: str | None
integration_commande: str
jours_collecte: str | None
place_commande: str
type_connection: str | None
class dilicom_parser.models.distributor.DistributorDataBloc3(fiche_produit, propo_commandes, commande, reponse_commandes, avis_exp_v1, avis_exp_v2, journal_mvt, reclamation, retour_dde_autorisation, retour_accord_fournisseur, retour_avis, facture_electronique, demat_facture_fiscale, centralisation_paiements)

Bases : object

Structure de données pour les fichiers de type distributeur, bloc 3, informations complémentaires.

  • 0 = Non

  • 1 = Oui

Attributs: - fiche_produit - propo_commandes - commande - reponse_commandes - avis_exp_v1 - avis_exp_v2 - journal_mvt - reclamation - retour_dde_autorisation - retour_accord_fournisseur - retour_avis - facture_electronique - demat_facture_fiscale - centralisation_paiements

avis_exp_v1: int | None
avis_exp_v2: int | None
centralisation_paiements: int | None
commande: int | None
demat_facture_fiscale: int | None
facture_electronique: int | None
fiche_produit: int | None
journal_mvt: int | None
propo_commandes: int | None
reclamation: int | None
reponse_commandes: int | None
retour_accord_fournisseur: int | None
retour_avis: int | None
retour_dde_autorisation: int | None
class dilicom_parser.models.distributor.DistributorLineData(bloc1, bloc2, bloc3, fin_ligne)

Bases : object

Structure de données pour une ligne de fichier de type distributeur, regroupant les blocs 1, 2 et 3.

bloc1: DistributorDataBloc1
bloc2: DistributorDataBloc2
bloc3: DistributorDataBloc3
fin_ligne: str
class dilicom_parser.models.distributor.FileDistri(header, footer, data)

Bases : object

Structure de données pour représenter un fichier de type distributeur reçu de Dilicom. Attributs: - header: Liste de chaînes représentant les champs d’en-tête du fichier. - footer: Chaîne représentant le champ de pied de page du fichier. - data: DataFrame contenant les données du fichier, avec les champs organisés en colonnes.

data: DataFrame
footer: str
header: list[str]

dilicom_parser.models.service module

Module de définition des structures de données pour les messages de service Dilicom. Couvre les formats GENCOD (CNUT 05003) et EANCOM (APERAK D96A).

class dilicom_parser.models.service.EancomErreur(code_erreur, code_identification='ZZZ', libelle_erreur=None)

Bases : object

Segments ERC + FTX pour les erreurs.

code_erreur: str
code_identification: str = 'ZZZ'
libelle_erreur: str | None = None
class dilicom_parser.models.service.EancomInterchange(syntaxe_id, syntaxe_version, gln_emetteur, gln_destinataire, date_preparation, heure_preparation, reference_interchange, messages=<factory>, nombre_messages=None)

Bases : object

Un interchange EANCOM complet (UNB…UNZ) contenant N messages.

date_preparation: str
gln_destinataire: str
gln_emetteur: str
heure_preparation: str
messages: list[EancomServiceMessage]
nombre_messages: str | None = None
reference_interchange: str
syntaxe_id: str
syntaxe_version: str
class dilicom_parser.models.service.EancomNAD(fonction, gln, code_identifiant='9')

Bases : object

Partie identifiée (NAD segment).

code_identifiant: str = '9'
fonction: str
gln: str
class dilicom_parser.models.service.EancomServiceMessage(syntaxe_id, syntaxe_version, gln_emetteur, gln_destinataire, date_preparation, heure_preparation, reference_interchange, reference_message, type_message, version, revision, agence, version_gs1, identification_document, type_acquittement, date_creation, format_date_creation, reference_acquittee, date_traitement=None, format_date_traitement=None, date_lecture=None, format_date_lecture=None, parties=<factory>, erreur=None, nombre_segments=None)

Bases : object

Message de service au format EANCOM D96A (APERAK).

agence: str
date_creation: str
date_lecture: str | None = None
date_preparation: str
date_traitement: str | None = None
erreur: EancomErreur | None = None
format_date_creation: str
format_date_lecture: str | None = None
format_date_traitement: str | None = None
gln_destinataire: str
gln_emetteur: str
heure_preparation: str
identification_document: str
property is_ale: bool

ALE si type AB et date de lecture présente.

property is_ate: bool

ATE si type AB sans date de lecture.

property is_erreur: bool

Erreur si type RE.

nombre_segments: str | None = None
parties: list[EancomNAD]
reference_acquittee: str
reference_interchange: str
reference_message: str
revision: str
syntaxe_id: str
syntaxe_version: str
type_acquittement: str
type_message: str
version: str
version_gs1: str
class dilicom_parser.models.service.GencodCommentaireAleAte(gln_emetteur_origine, cnut_message_origine, reference_cnut, numero_envoi, date_envoi, gln_destinataire, date_traitement, heure_traitement, date_lecture=None, heure_lecture=None)

Bases : object

Commentaires (CNUR 177) pour ATE/ALE - identifiant 904.

cnut_message_origine: str
date_envoi: str
date_lecture: str | None = None
date_traitement: str
gln_destinataire: str
gln_emetteur_origine: str
heure_lecture: str | None = None
heure_traitement: str
numero_envoi: str
reference_cnut: str
class dilicom_parser.models.service.GencodCommentaireErreur(gln_emetteur_origine, cnut_message_origine, reference_cnut, numero_envoi, date_envoi, gln_destinataire, code_erreur, numero_ligne_erreur=None, position_erreur=None, zone_erreur=None, libelle_erreur=None)

Bases : object

Commentaires (CNUR 177) pour ANE (905) / AST (906).

cnut_message_origine: str
code_erreur: str
date_envoi: str
gln_destinataire: str
gln_emetteur_origine: str
libelle_erreur: str | None = None
numero_envoi: str
numero_ligne_erreur: str | None = None
position_erreur: str | None = None
reference_cnut: str
zone_erreur: str | None = None
class dilicom_parser.models.service.GencodServiceMessage(cnut, gln_destinataire, gln_emetteur, date_emission, identificateur_reseau, type_message, commentaires=<factory>, nombre_rubriques=None)

Bases : object

Message de service au format GENCOD (CNUT 05003).

cnut: str
commentaires: list[GencodCommentaireAleAte | GencodCommentaireErreur]
date_emission: str
gln_destinataire: str
gln_emetteur: str
identificateur_reseau: str
property is_ale: bool

ALE si type 912 et date de lecture présente dans au moins un commentaire.

property is_ate: bool

ATE si type 912 sans date de lecture.

property is_erreur: bool

ANE (913) ou AST (914).

nombre_rubriques: str | None = None
type_message: str
class dilicom_parser.models.service.OrigineMessageType(*values)

Bases : Enum

Type du message d’origine.

AVIS_EXPEDITION = '024'
COMMANDE = '023'
JOURNAL_MOUVEMENTS = '152'
class dilicom_parser.models.service.ServiceMessageType(*values)

Bases : Enum

Type de message de service Dilicom.

ALE = '912'
ANE = '913'
AST = '914'
ATE = '912'

Module contents

Modules de modèles de données pour le parser Dilicom.

Ce module regroupe les classes de modèles de données utilisées pour représenter les différentes entités et structures de données rencontrées lors du parsing des fichiers Dilicom, tels que les messages de service, les données de distributeurs, etc.