objets_metier_rs 1.0.2

Bibliothèque Rust moderne et sûre pour l'API COM Objets Métier Sage 100c - Production Ready
//! Module Commercial (CIAL) pour Sage 100c
//!
//! Ce module fournit un accès typé et sécurisé à l'API BSCIALApplication100c
//! pour la gestion commerciale Sage 100c.
//!
//! # Fonctionnalités
//!
//! - **Gestion des articles** : Articles, références, tarifs, stocks
//! - **Documents commerciaux** : Vente, achat, stock, documents internes
//! - **Gestion des stocks** : Dépôts, mouvements, inventaires
//! - **Configuration** : Familles, gammes, unités, conditionnements
//! - **Tarification** : Catégories tarifaires, barèmes, remises
//! - **Paramétrage** : Souches, paramètres documents, catégories comptables
//!
//! # État d'implémentation (v0.4.0)
//!
//! - ✅ **Phase 0 - Infrastructure** : Structure modulaire en place
//! - ⚠️ **Phase 1 - Factories Cœur** : 8 factories à implémenter
//! - 📋 **Phase 2 - Configuration Produits** : 5 factories planifiées
//! - 📋 **Phase 3 - Paramètres** : 16 factories planifiées
//! - 📋 **Phase 4 - Avancées** : 7 factories planifiées
//!
//! **Total : 36 factories commerciales**
//!
//! # Utilisation
//!
//! ```no_run
//! use objets_metier_rs::wrappers::cial::CialApplication;
//!
//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
//! // Créer et ouvrir l'application commerciale
//! let cial = CialApplication::new("Objets100c.CIAL")?;
//! cial.set_name("D:\\Sage\\Bases\\BIJOU.MAE")?;
//!
//! // Authentification
//! let loggable = cial.loggable()?;
//! loggable.set_user_name("<Administrateur>")?;
//! loggable.set_user_pwd("")?;
//!
//! // Ouvrir la base
//! cial.open()?;
//!
//! // Travailler avec les factories (Phase 1 en développement)
//! // let factory_article = cial.factory_article()?;
//! // let articles = factory_article.list()?;
//!
//! // Fermer la base
//! cial.close()?;
//! # Ok(())
//! # }
//! ```
//!
//! # Architecture
//!
//! ```text
//! cial/
//! ├── cial_application_wrapper.rs   - Application principale BSCIALApplication100c
//! ├── factories/                     - 36 factories pour créer/lire les entités
//! │   ├── Phase 1 (8) - Cœur        : Articles, Documents, Dépôts, Familles
//! │   ├── Phase 2 (5) - Config      : Gammes, Produits, Unités, Conditionnements
//! │   ├── Phase 3 (16) - Paramètres : Catégories, Souches, Paramètres docs
//! │   └── Phase 4 (7) - Avancées    : Barèmes, Statistiques, Arrondis
//! └── objects/                       - Objets métier commerciaux
//!     ├── Phase 1 (8)  - Article, Document*, Depot, Famille
//!     ├── Phase 2 (5)  - Gamme, Produit, Unite, etc.
//!     ├── Phase 3 (16) - Paramètres et catégories
//!     └── Phase 4 (7)  - Barèmes et configuration avancée
//! ```
//!
//! # Compatibilité CPTA/CIAL
//!
//! Le module CIAL réutilise les objets du module CPTA (Comptabilité) :
//! - `Tiers` - Utilisé dans les documents commerciaux
//! - `Compte` - Liaison comptable des articles/documents
//! - `Journal` - Journaux pour les documents
//!
//! Le système de cache est unifié entre CPTA et CIAL.

pub mod cial_application_wrapper;
pub mod factories;
pub mod objects;

#[cfg(test)]
mod tests;

pub use cial_application_wrapper::CialApplication;