objets_metier_rs 1.0.2

Bibliothèque Rust moderne et sûre pour l'API COM Objets Métier Sage 100c - Production Ready
//! Factories du module commercial (CIAL)
//!
//! Ce module contient les wrappers pour les 36 factories de l'API BSCIALApplication100c.
//! Les factories permettent de créer, lire, rechercher et gérer les entités commerciales.
//!
//! # Organisation
//!
//! Les factories sont organisées en 4 phases d'implémentation :
//!
//! ## Phase 1 - Factories Cœur (8 factories) ⚠️ EN DÉVELOPPEMENT
//!
//! - `FactoryArticle` - Gestion des articles et références produits
//! - `FactoryDocumentVente` - Documents de vente (devis, commandes, BL, factures)
//! - `FactoryDocumentAchat` - Documents d'achat (commandes, BL, factures fournisseurs)
//! - `FactoryDocumentStock` - Mouvements de stock (entrées, sorties, transferts, inventaires)
//! - `FactoryDocumentInterne` - Documents internes
//! - `FactoryDocument` - Accès générique multi-types aux documents
//! - `FactoryDepot` - Dépôts de stockage
//! - `FactoryFamille` - Familles d'articles
//!
//! ## Phase 2 - Factories Configuration Produits (5 factories) 📋 PLANIFIÉ
//!
//! - `FactoryGamme` - Gammes de produits
//! - `FactoryProduit` - Produits (nature de l'article)
//! - `FactoryUnite` - Unités de mesure
//! - `FactoryConditionnement` - Conditionnements d'articles
//! - `FactoryGlossaire` - Glossaire de termes commerciaux
//!
//! ## Phase 3 - Factories Paramètres (16 factories) 📋 PLANIFIÉ
//!
//! ### Catégories comptables
//! - `FactoryCategorieComptaVente` - Catégories pour liaison comptable des ventes
//! - `FactoryCategorieComptaAchat` - Catégories pour liaison comptable des achats
//! - `FactoryCategorieComptaStock` - Catégories pour liaison comptable des stocks
//! - `FactoryCategorieTarif` - Catégories tarifaires
//!
//! ### Paramètres de documents
//! - `FactoryParamDocVente` - Paramétrage des documents de vente
//! - `FactoryParamDocAchat` - Paramétrage des documents d'achat
//! - `FactoryParamDocStock` - Paramétrage des documents de stock
//! - `FactoryParamDocInterne` - Paramétrage des documents internes
//!
//! ### Souches de numérotation
//! - `FactorySoucheVente` - Souches de numérotation des documents de vente
//! - `FactorySoucheAchat` - Souches de numérotation des documents d'achat
//! - `FactorySoucheStock` - Souches de numérotation des documents de stock
//! - `FactorySoucheInterne` - Souches de numérotation des documents internes
//!
//! ### Autres paramètres
//! - `FactoryModele` - Modèles de documents
//! - `FactoryConditionLivraison` - Conditions et délais de livraison
//! - `FactoryExpedition` - Modes d'expédition
//! - `FactoryPeriodicite` - Périodicités pour abonnements/récurrences
//!
//! ## Phase 4 - Factories Avancées (7 factories) 📋 PLANIFIÉ
//!
//! ### Barèmes tarifaires
//! - `FactoryBaremeCommission` - Grilles de calcul des commissions
//! - `FactoryBaremeSolde` - Grilles de calcul des soldes/promotions
//! - `FactoryBaremeRabais` - Grilles de calcul des rabais/remises
//!
//! ### Statistiques et configuration
//! - `FactoryArticleStat` - Axes statistiques pour articles
//! - `FactoryArrondi` - Règles d'arrondi des prix/montants
//!
//! # Utilisation
//!
//! Les factories sont accessibles via l'objet `CialApplication` :
//!
//! ```no_run
//! use objets_metier_rs::wrappers::cial::CialApplication;
//!
//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
//! let cial = CialApplication::new("Objets100c.CIAL")?;
//! cial.set_name("D:\\Sage\\BIJOU.MAE")?;
//! let loggable = cial.loggable()?;
//! loggable.set_user_name("<Administrateur>")?;
//! loggable.set_user_pwd("")?;
//! cial.open()?;
//!
//! // Accès aux factories (Phase 1 en développement)
//! // let factory_article = cial.factory_article()?;
//! // let factory_depot = cial.factory_depot()?;
//!
//! cial.close()?;
//! # Ok(())
//! # }
//! ```

// ============================================================================
// PHASE 0 - Infrastructure ✅ COMPLÉTÉ
// ============================================================================
// Module structure en place, prêt pour l'implémentation des factories

// ============================================================================
// PHASE 1 - Factories Cœur ⚠️ EN COURS D'IMPLÉMENTATION
// ============================================================================
pub mod factory_article_wrapper;
pub mod factory_depot_wrapper;
pub mod factory_document_achat_wrapper;
pub mod factory_document_interne_wrapper;
pub mod factory_document_stock_wrapper;
pub mod factory_document_vente_wrapper;
pub mod factory_document_wrapper;
pub mod factory_famille_wrapper;

pub use factory_article_wrapper::FactoryArticle;
pub use factory_depot_wrapper::FactoryDepot;
pub use factory_document_achat_wrapper::FactoryDocumentAchat;
pub use factory_document_interne_wrapper::FactoryDocumentInterne;
pub use factory_document_stock_wrapper::FactoryDocumentStock;
pub use factory_document_vente_wrapper::FactoryDocumentVente;
pub use factory_document_wrapper::FactoryDocument;
pub use factory_famille_wrapper::FactoryFamille;

// ============================================================================
// PHASE 2 - Factories Configuration Produits ✅ COMPLÉTÉ
// ============================================================================
pub mod factory_conditionnement_wrapper;
pub mod factory_gamme_wrapper;
pub mod factory_glossaire_wrapper;
pub mod factory_produit_wrapper;
pub mod factory_unite_wrapper;

pub use factory_conditionnement_wrapper::FactoryConditionnement;
pub use factory_gamme_wrapper::FactoryGamme;
pub use factory_glossaire_wrapper::FactoryGlossaire;
pub use factory_produit_wrapper::FactoryProduit;
pub use factory_unite_wrapper::FactoryUnite;

// ============================================================================
// PHASE 3 - Factories Paramètres ✅ COMPLÉTÉ
// ============================================================================

// Groupe A - Catégories comptables
pub mod factory_categorie_compta_achat_wrapper;
pub mod factory_categorie_compta_stock_wrapper;
pub mod factory_categorie_compta_vente_wrapper;
pub mod factory_categorie_tarif_wrapper;

pub use factory_categorie_compta_achat_wrapper::FactoryCategorieComptaAchat;
pub use factory_categorie_compta_stock_wrapper::FactoryCategorieComptaStock;
pub use factory_categorie_compta_vente_wrapper::FactoryCategorieComptaVente;
pub use factory_categorie_tarif_wrapper::FactoryCategorieTarif;

// Groupe B - Paramètres de documents
pub mod factory_param_doc_achat_wrapper;
pub mod factory_param_doc_interne_wrapper;
pub mod factory_param_doc_stock_wrapper;
pub mod factory_param_doc_vente_wrapper;

pub use factory_param_doc_achat_wrapper::FactoryParamDocAchat;
pub use factory_param_doc_interne_wrapper::FactoryParamDocInterne;
pub use factory_param_doc_stock_wrapper::FactoryParamDocStock;
pub use factory_param_doc_vente_wrapper::FactoryParamDocVente;

// Groupe C - Souches de numérotation
pub mod factory_souche_achat_wrapper;
pub mod factory_souche_interne_wrapper;
pub mod factory_souche_stock_wrapper;
pub mod factory_souche_vente_wrapper;

pub use factory_souche_achat_wrapper::FactorySoucheAchat;
pub use factory_souche_interne_wrapper::FactorySoucheInterne;
pub use factory_souche_stock_wrapper::FactorySoucheStock;
pub use factory_souche_vente_wrapper::FactorySoucheVente;

// Groupe D - Autres paramètres
pub mod factory_condition_livraison_wrapper;
pub mod factory_expedition_wrapper;
pub mod factory_modele_wrapper;
pub mod factory_periodicite_wrapper;

pub use factory_condition_livraison_wrapper::FactoryConditionLivraison;
pub use factory_expedition_wrapper::FactoryExpedition;
pub use factory_modele_wrapper::FactoryModele;
pub use factory_periodicite_wrapper::FactoryPeriodicite;

// ============================================================================
// PHASE 4 - Factories Avancées ✅ COMPLÉTÉ
// ============================================================================

// Groupe A - Barèmes tarifaires
pub mod factory_bareme_commission_wrapper;
pub mod factory_bareme_rabais_wrapper;
pub mod factory_bareme_solde_wrapper;

pub use factory_bareme_commission_wrapper::FactoryBaremeCommission;
pub use factory_bareme_rabais_wrapper::FactoryBaremeRabais;
pub use factory_bareme_solde_wrapper::FactoryBaremeSolde;

// Groupe B - Statistiques et configuration
pub mod factory_arrondi_wrapper;
pub mod factory_article_stat_wrapper;

pub use factory_arrondi_wrapper::FactoryArrondi;
pub use factory_article_stat_wrapper::FactoryArticleStat;

// ============================================================================
// PHASE 4bis - Factories Complémentaires ✅ COMPLÉTÉ
// ============================================================================

// Groupe C - Gestion avancée
pub mod factory_agenda_wrapper;
pub mod factory_dossier_param_wrapper;
pub mod factory_dossier_wrapper;
pub mod factory_motif_devis_wrapper;

pub use factory_agenda_wrapper::FactoryAgenda;
pub use factory_dossier_param_wrapper::FactoryDossierParam;
pub use factory_dossier_wrapper::FactoryDossier;
pub use factory_motif_devis_wrapper::FactoryMotifDevis;