1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//! 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 use CialApplication;