name of enrichisment function refactored

This commit is contained in:
fanilo 2026-01-05 17:48:31 +01:00
parent 57103d406d
commit 69114ba0c3
3 changed files with 88 additions and 104 deletions

View file

@ -5,30 +5,29 @@ from typing import Dict, List, Optional
import threading import threading
import time import time
import logging import logging
from config import settings
import pyodbc import pyodbc
from contextlib import contextmanager from contextlib import contextmanager
import pywintypes import pywintypes
from utils.articles.articles_data_sql import ( from utils.articles.articles_data_sql import (
_enrichir_stock_emplacements, enrichir_stock_emplacements,
_enrichir_gammes_articles, enrichir_gammes_articles,
_enrichir_tarifs_clients, enrichir_tarifs_clients,
_enrichir_nomenclature, enrichir_nomenclature,
_enrichir_compta_articles, enrichir_compta_articles,
_enrichir_fournisseurs_multiples, enrichir_fournisseurs_multiples,
_enrichir_depots_details, enrichir_depots_details,
_enrichir_emplacements_details, enrichir_emplacements_details,
_enrichir_gammes_enumeres, enrichir_gammes_enumeres,
_enrichir_references_enumerees, enrichir_references_enumerees,
_enrichir_medias_articles, enrichir_medias_articles,
_enrichir_prix_gammes, enrichir_prix_gammes,
_enrichir_conditionnements, enrichir_conditionnements,
_mapper_article_depuis_row, _mapper_article_depuis_row,
_enrichir_stocks_articles, enrichir_stocks_articles,
_enrichir_fournisseurs_articles, enrichir_fournisseurs_articles,
_enrichir_familles_articles, enrichir_familles_articles,
_enrichir_tva_articles, enrichir_tva_articles,
) )
from utils.tiers.clients.clients_data import ( from utils.tiers.clients.clients_data import (
@ -45,7 +44,6 @@ from utils.functions.functions import (
_safe_int, _safe_int,
_clean_str, _clean_str,
_try_set_attribute, _try_set_attribute,
normaliser_date,
_get_type_libelle, _get_type_libelle,
) )
@ -56,24 +54,17 @@ from utils.functions.items_to_dict import (
) )
from utils.functions.sage_utilities import ( from utils.functions.sage_utilities import (
_verifier_devis_non_transforme,
peut_etre_transforme, peut_etre_transforme,
lire_erreurs_sage, lire_erreurs_sage,
) )
from utils.documents.documents_data_sql import ( from utils.documents.documents_data_sql import (
_afficher_etat_document,
_compter_lignes_document,
_rechercher_devis_par_numero, _rechercher_devis_par_numero,
_lire_document_sql, _lire_document_sql,
_lister_documents_avec_lignes_sql, _lister_documents_avec_lignes_sql,
) )
from utils.documents.devis.devis_extraction import _extraire_infos_devis from utils.documents.devis.devis_check import _rechercher_devis_dans_liste
from utils.documents.devis.devis_check import (
_recuperer_numero_devis,
_rechercher_devis_dans_liste,
)
from utils.tiers.contacts.contacts import ( from utils.tiers.contacts.contacts import (
_get_contacts, _get_contacts,
@ -83,14 +74,7 @@ from utils.tiers.contacts.contacts import (
from utils import ( from utils import (
valider_donnees_creation, valider_donnees_creation,
mapper_champ_api_vers_sage,
CHAMPS_STOCK_INITIAL,
CHAMPS_ASSIGNABLES_CREATION,
CHAMPS_ASSIGNABLES_MODIFICATION,
CHAMPS_OBJETS_SPECIAUX,
valider_champ,
valider_donnees_modification, valider_donnees_modification,
obtenir_champs_assignables,
) )
from schemas.documents.doc_config import TypeDocumentVente from schemas.documents.doc_config import TypeDocumentVente
@ -943,24 +927,24 @@ class SageConnector:
article_data = _mapper_article_depuis_row(row_data, colonnes_config) article_data = _mapper_article_depuis_row(row_data, colonnes_config)
articles.append(article_data) articles.append(article_data)
articles = _enrichir_stocks_articles(articles, cursor) articles = enrichir_stocks_articles(articles, cursor)
articles = _enrichir_familles_articles(articles, cursor) articles = enrichir_familles_articles(articles, cursor)
articles = _enrichir_fournisseurs_articles(articles, cursor) articles = enrichir_fournisseurs_articles(articles, cursor)
articles = _enrichir_tva_articles(articles, cursor) articles = enrichir_tva_articles(articles, cursor)
articles = _enrichir_stock_emplacements(articles, cursor) articles = enrichir_stock_emplacements(articles, cursor)
articles = _enrichir_gammes_articles(articles, cursor) articles = enrichir_gammes_articles(articles, cursor)
articles = _enrichir_tarifs_clients(articles, cursor) articles = enrichir_tarifs_clients(articles, cursor)
articles = _enrichir_nomenclature(articles, cursor) articles = enrichir_nomenclature(articles, cursor)
articles = _enrichir_compta_articles(articles, cursor) articles = enrichir_compta_articles(articles, cursor)
articles = _enrichir_fournisseurs_multiples(articles, cursor) articles = enrichir_fournisseurs_multiples(articles, cursor)
articles = _enrichir_depots_details(articles, cursor) articles = enrichir_depots_details(articles, cursor)
articles = _enrichir_emplacements_details(articles, cursor) articles = enrichir_emplacements_details(articles, cursor)
articles = _enrichir_gammes_enumeres(articles, cursor) articles = enrichir_gammes_enumeres(articles, cursor)
articles = _enrichir_references_enumerees(articles, cursor) articles = enrichir_references_enumerees(articles, cursor)
articles = _enrichir_medias_articles(articles, cursor) articles = enrichir_medias_articles(articles, cursor)
articles = _enrichir_prix_gammes(articles, cursor) articles = enrichir_prix_gammes(articles, cursor)
articles = _enrichir_conditionnements(articles, cursor) articles = enrichir_conditionnements(articles, cursor)
return articles return articles
@ -1110,23 +1094,23 @@ class SageConnector:
article article
] # Liste d'un seul article pour les fonctions d'enrichissement ] # Liste d'un seul article pour les fonctions d'enrichissement
articles = _enrichir_stocks_articles(articles, cursor) articles = enrichir_stocks_articles(articles, cursor)
articles = _enrichir_familles_articles(articles, cursor) articles = enrichir_familles_articles(articles, cursor)
articles = _enrichir_fournisseurs_articles(articles, cursor) articles = enrichir_fournisseurs_articles(articles, cursor)
articles = _enrichir_tva_articles(articles, cursor) articles = enrichir_tva_articles(articles, cursor)
articles = _enrichir_stock_emplacements(articles, cursor) articles = enrichir_stock_emplacements(articles, cursor)
articles = _enrichir_gammes_articles(articles, cursor) articles = enrichir_gammes_articles(articles, cursor)
articles = _enrichir_tarifs_clients(articles, cursor) articles = enrichir_tarifs_clients(articles, cursor)
articles = _enrichir_nomenclature(articles, cursor) articles = enrichir_nomenclature(articles, cursor)
articles = _enrichir_compta_articles(articles, cursor) articles = enrichir_compta_articles(articles, cursor)
articles = _enrichir_fournisseurs_multiples(articles, cursor) articles = enrichir_fournisseurs_multiples(articles, cursor)
articles = _enrichir_depots_details(articles, cursor) articles = enrichir_depots_details(articles, cursor)
articles = _enrichir_emplacements_details(articles, cursor) articles = enrichir_emplacements_details(articles, cursor)
articles = _enrichir_gammes_enumeres(articles, cursor) articles = enrichir_gammes_enumeres(articles, cursor)
articles = _enrichir_references_enumerees(articles, cursor) articles = enrichir_references_enumerees(articles, cursor)
articles = _enrichir_medias_articles(articles, cursor) articles = enrichir_medias_articles(articles, cursor)
articles = _enrichir_prix_gammes(articles, cursor) articles = enrichir_prix_gammes(articles, cursor)
articles = _enrichir_conditionnements(articles, cursor) articles = enrichir_conditionnements(articles, cursor)
logger.info(f"✓ Article {reference} lu avec tous les enrichissements") logger.info(f"✓ Article {reference} lu avec tous les enrichissements")
return articles[0] return articles[0]

View file

@ -13,7 +13,7 @@ from utils import (
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def _enrichir_stock_emplacements(articles: List[Dict], cursor) -> List[Dict]: def enrichir_stock_emplacements(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement stock emplacements...") logger.info(" → Enrichissement stock emplacements...")
@ -76,7 +76,7 @@ def _enrichir_stock_emplacements(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_gammes_articles(articles: List[Dict], cursor) -> List[Dict]: def enrichir_gammes_articles(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement gammes articles...") logger.info(" → Enrichissement gammes articles...")
@ -135,7 +135,7 @@ def _enrichir_gammes_articles(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_tarifs_clients(articles: List[Dict], cursor) -> List[Dict]: def enrichir_tarifs_clients(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement tarifs clients...") logger.info(" → Enrichissement tarifs clients...")
@ -226,7 +226,7 @@ def _enrichir_tarifs_clients(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_nomenclature(articles: List[Dict], cursor) -> List[Dict]: def enrichir_nomenclature(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement nomenclature...") logger.info(" → Enrichissement nomenclature...")
@ -307,7 +307,7 @@ def _enrichir_nomenclature(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_compta_articles(articles: List[Dict], cursor) -> List[Dict]: def enrichir_compta_articles(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement comptabilité articles...") logger.info(" → Enrichissement comptabilité articles...")
@ -396,7 +396,7 @@ def _enrichir_compta_articles(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_fournisseurs_multiples(articles: List[Dict], cursor) -> List[Dict]: def enrichir_fournisseurs_multiples(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement fournisseurs multiples...") logger.info(" → Enrichissement fournisseurs multiples...")
@ -493,7 +493,7 @@ def _enrichir_fournisseurs_multiples(articles: List[Dict], cursor) -> List[Dict]
return articles return articles
def _enrichir_depots_details(articles: List[Dict], cursor) -> List[Dict]: def enrichir_depots_details(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement détails dépôts...") logger.info(" → Enrichissement détails dépôts...")
@ -564,7 +564,7 @@ def _enrichir_depots_details(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_emplacements_details(articles: List[Dict], cursor) -> List[Dict]: def enrichir_emplacements_details(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement détails emplacements...") logger.info(" → Enrichissement détails emplacements...")
@ -617,7 +617,7 @@ def _enrichir_emplacements_details(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_gammes_enumeres(articles: List[Dict], cursor) -> List[Dict]: def enrichir_gammes_enumeres(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement énumérés gammes...") logger.info(" → Enrichissement énumérés gammes...")
@ -683,7 +683,7 @@ def _enrichir_gammes_enumeres(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_references_enumerees(articles: List[Dict], cursor) -> List[Dict]: def enrichir_references_enumerees(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement références énumérées...") logger.info(" → Enrichissement références énumérées...")
@ -752,7 +752,7 @@ def _enrichir_references_enumerees(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_medias_articles(articles: List[Dict], cursor) -> List[Dict]: def enrichir_medias_articles(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement médias articles...") logger.info(" → Enrichissement médias articles...")
@ -815,7 +815,7 @@ def _enrichir_medias_articles(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_prix_gammes(articles: List[Dict], cursor) -> List[Dict]: def enrichir_prix_gammes(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement prix par gammes...") logger.info(" → Enrichissement prix par gammes...")
@ -876,7 +876,7 @@ def _enrichir_prix_gammes(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_conditionnements(articles: List[Dict], cursor) -> List[Dict]: def enrichir_conditionnements(articles: List[Dict], cursor) -> List[Dict]:
try: try:
logger.info(" → Enrichissement conditionnements...") logger.info(" → Enrichissement conditionnements...")
@ -1140,7 +1140,7 @@ def _mapper_article_depuis_row(row_data: Dict, colonnes_config: Dict) -> Dict:
return article return article
def _enrichir_stocks_articles(articles: List[Dict], cursor) -> List[Dict]: def enrichir_stocks_articles(articles: List[Dict], cursor) -> List[Dict]:
"""Enrichit les articles avec les données de stock depuis F_ARTSTOCK""" """Enrichit les articles avec les données de stock depuis F_ARTSTOCK"""
try: try:
logger.info(f" → Enrichissement stocks pour {len(articles)} articles...") logger.info(f" → Enrichissement stocks pour {len(articles)} articles...")
@ -1196,7 +1196,7 @@ def _enrichir_stocks_articles(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_fournisseurs_articles(articles: List[Dict], cursor) -> List[Dict]: def enrichir_fournisseurs_articles(articles: List[Dict], cursor) -> List[Dict]:
"""Enrichit les articles avec le nom du fournisseur principal""" """Enrichit les articles avec le nom du fournisseur principal"""
try: try:
logger.info(" → Enrichissement fournisseurs...") logger.info(" → Enrichissement fournisseurs...")
@ -1278,7 +1278,7 @@ def _enrichir_fournisseurs_articles(articles: List[Dict], cursor) -> List[Dict]:
return articles return articles
def _enrichir_familles_articles(articles: List[Dict], cursor) -> List[Dict]: def enrichir_familles_articles(articles: List[Dict], cursor) -> List[Dict]:
"""Enrichit les articles avec les informations de famille depuis F_FAMILLE""" """Enrichit les articles avec les informations de famille depuis F_FAMILLE"""
try: try:
logger.info(f" → Enrichissement familles pour {len(articles)} articles...") logger.info(f" → Enrichissement familles pour {len(articles)} articles...")
@ -1435,7 +1435,7 @@ def _init_champs_famille_vides(article: Dict):
article["famille_pays"] = None article["famille_pays"] = None
def _enrichir_tva_articles(articles: List[Dict], cursor) -> List[Dict]: def enrichir_tva_articles(articles: List[Dict], cursor) -> List[Dict]:
"""Enrichit les articles avec le taux de TVA""" """Enrichit les articles avec le taux de TVA"""
try: try:
logger.info(" → Enrichissement TVA...") logger.info(" → Enrichissement TVA...")
@ -1504,24 +1504,24 @@ def _cast_article(persist_obj):
__all__ = [ __all__ = [
"_enrichir_stock_emplacements", "enrichir_stock_emplacements",
"_enrichir_gammes_articles", "enrichir_gammes_articles",
"_enrichir_tarifs_clients", "enrichir_tarifs_clients",
"_enrichir_nomenclature", "enrichir_nomenclature",
"_enrichir_compta_articles", "enrichir_compta_articles",
"_enrichir_fournisseurs_multiples", "enrichir_fournisseurs_multiples",
"_enrichir_depots_details", "enrichir_depots_details",
"_enrichir_emplacements_details", "enrichir_emplacements_details",
"_enrichir_gammes_enumeres", "enrichir_gammes_enumeres",
"_enrichir_references_enumerees", "enrichir_references_enumerees",
"_enrichir_medias_articles", "enrichir_medias_articles",
"_enrichir_prix_gammes", "enrichir_prix_gammes",
"_enrichir_conditionnements", "enrichir_conditionnements",
"_mapper_article_depuis_row", "_mapper_article_depuis_row",
"_enrichir_stocks_articles", "enrichir_stocks_articles",
"_enrichir_fournisseurs_articles", "enrichir_fournisseurs_articles",
"_enrichir_familles_articles", "enrichir_familles_articles",
"_init_champs_famille_vides", "_init_champs_famille_vides",
"_enrichir_tva_articles", "enrichir_tva_articles",
"_cast_article", "_cast_article",
] ]

View file

@ -546,7 +546,7 @@ def modifier_document_vente(
# 🔥 CONFIGURATION SPÉCIFIQUE FACTURE # 🔥 CONFIGURATION SPÉCIFIQUE FACTURE
if type_document == TypeDocumentVente.FACTURE: if type_document == TypeDocumentVente.FACTURE:
self._configurer_facture(doc) _configurer_facture(self, doc)
doc.Write() doc.Write()
logger.info(" ✓ Modifications appliquées") logger.info(" ✓ Modifications appliquées")
@ -572,7 +572,7 @@ def modifier_document_vente(
# 🔥 CONFIGURATION SPÉCIFIQUE FACTURE (avant lignes) # 🔥 CONFIGURATION SPÉCIFIQUE FACTURE (avant lignes)
if type_document == TypeDocumentVente.FACTURE: if type_document == TypeDocumentVente.FACTURE:
self._configurer_facture(doc) _configurer_facture(doc)
nouvelles_lignes = doc_data["lignes"] nouvelles_lignes = doc_data["lignes"]
nb_nouvelles = len(nouvelles_lignes) nb_nouvelles = len(nouvelles_lignes)