Aplicatie de gestiune stoc si facturare care integreaza:
- Windows Forms (UI principal)
- Excel Interop (rapoarte cu grafice)
- Word Interop (facturi profesionale)
- Word VSTO Add-In (ribbon custom + evenimente)
- SQLite (baza de date centralizata)
StocApp.sln
├── StocApp.Core/ ← Library comun (modele + DB + helpers)
│ ├── Models/
│ │ ├── Produs.cs
│ │ ├── Client.cs
│ │ └── Factura.cs
│ ├── Data/
│ │ └── DatabaseHelper.cs ← SQLite CRUD complet
│ └── Helpers/
│ ├── ExcelHelper.cs ← Generare raport Excel cu grafic
│ └── WordHelper.cs ← Generare factura Word formatata
│
├── StocApp.WinForms/ ← Aplicatia principala
│ ├── Program.cs
│ └── Forms/
│ ├── MainForm.cs ← Fereastra principala (4 tab-uri)
│ ├── ProdusForm.cs ← Dialog adaugare/modificare produs
│ └── ClientForm.cs ← Dialog adaugare client
│
└── StocApp.WordAddin/ ← VSTO Word Add-In
├── ThisAddIn.cs ← Startup + 4 evenimente
└── StocAppRibbon.cs ← Ribbon
Baza de date SQLite se creeaza automat la prima rulare in:
%AppData%\StocApp\stoc.db
Contine date demo pre-populate (8 produse, 3 clienti).
| Fisier | Functionalitate |
|---|---|
ExcelHelper.cs |
Application excelApp = new Application() - porneste Excel headless |
ExcelHelper.cs |
Creeaza 3 foi: Inventar, Rezumat Categorii, Alerte Stoc |
ExcelHelper.cs |
chart.SetSourceData() - grafic coloana pe categorii |
ExcelHelper.cs |
Formatare celule: culori, bold, NumberFormat #,##0.00 |
ExcelHelper.cs |
Conditionare automata: stoc < 10 → fundal rosu |
WordHelper.cs |
wordApp.Documents.Add() - creeaza document nou |
WordHelper.cs |
doc.Tables.Add() - tabele pentru parti + produse + sumar |
WordHelper.cs |
Formatare: culori, bold, aliniere, dimensiuni coloane |
WordHelper.cs |
Footer cu data generarii si numar factura |
WordHelper.cs |
PageSetup - margini pagina configurate |
| Fisier | Eveniment / Functionalitate |
|---|---|
ThisAddIn.cs |
Application.DocumentBeforeSave - valideaza factura inainte de salvare, poate anula salvarea (Cancel = true) |
ThisAddIn.cs |
Application.DocumentOpen - detecteaza facturi StocApp la deschidere |
ThisAddIn.cs |
Application.DocumentChange - logheaza schimbarea documentului activ |
ThisAddIn.cs |
Application.DocumentBeforeClose - verifica modificari nesalvate |
StockAppRibbon.cs |
Ribbon VSTO (Visual Designer) - tab custom „StocApp” |
StockAppRibbon.cs |
4 butoane: Lista Produse, Rezumat, Valideaza Factura, Marcheaza Factura |
ThisAddIn.cs |
MarcheazaDocumentCaFactura() - proprietati custom StocApp_Tip, StocApp_NrFactura |
| Aspect | Implementare |
|---|---|
| BD unica | Toti cei 3 clienti (WinForms, Excel, Word) folosesc acelasistoc.db |
| WinForms → BD | CRUD complet: adaugare/modificare/stergere produse si clienti |
| WinForms → Excel | Buton "Genereaza Raport" → citeste din BD → creeaza Excel |
| WinForms → Word | Buton "Genereaza Factura" → salveaza factura in BD → creeaza Word |
| Word AddIn → BD | Ribbon "Lista Produse" → citeste din BD → insereaza in document curent |
| Tranzactii | SaveFactura() foloseste SQLite transaction: salveaza factura + scade stocul atomic |
Fluxul complet:
- Adaugi produse → Tab Stoc →
ProdusForm→DatabaseHelper.AddProdus() - Adaugi clienti → Tab Clienti →
ClientForm→DatabaseHelper.AddClient() - Creezi factura → Tab Facturare → selectezi client + produse →
SaveFactura()scade automat stocul - Generezi Word →
WordHelper.GenereazaFactura()→ factura profesionala cu TVA, scadenta, semnaturi - Generezi Excel →
ExcelHelper.GenereazaRaportStoc()→ 3 foi + grafic - In Word → Add-In activ → Ribbon StocApp → butoane + validare automata la salvare