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
//!
//! - ✅ **Factories CIAL** : 38/38 implémentées
//! - ✅ **Application CIAL** : connexion, authentification et ouverture de base
//! - ✅ **Objets métier principaux** : articles, documents, familles, dépôts, paramètres
//! - ⚠️ **Outils exploratoires** : certains examples/benchmarks restent expérimentaux
//!
//! **Total : 38 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 métier
//! 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/ - 38 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 (9) - Avancées : Barèmes, Statistiques, Arrondis, agenda
//! └── 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 (9) - 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
pub use CialApplication;