Portable skladový software pro restauraci. Windows 11 / .NET 8 / WPF / SQLite / MVVM.
Aplikace je plně přenosná: stačí zkopírovat složku s
.exena jiný počítač s .NET 8 Desktop Runtime. Databázesklad.dbse vytvoří automaticky vedle spustitelného souboru.
Gastrox/
├── Gastrox.sln
├── Database/
│ └── init.sql # CREATE TABLE skript (vytvoří se při prvním spuštění)
├── Gastrox/
│ ├── Gastrox.csproj
│ ├── App.xaml / App.xaml.cs
│ ├── MainWindow.xaml / .cs # boční menu + ContentControl
│ ├── Models/
│ │ ├── SkladovaKarta.cs
│ │ ├── Prijemka.cs (+ PrijemkaRadek)
│ │ └── Vydejka.cs (+ enums TypVydeje, Stredisko)
│ ├── ViewModels/
│ │ ├── ViewModelBase.cs
│ │ ├── PrijemkaViewModel.cs # logika hlavičky + součtů
│ │ └── PrijemkaRadekViewModel.cs # ★ JÁDRO: live přepočet balení → evid. jednotky
│ ├── Views/
│ │ └── PrijemkaView.xaml # ★ XAML s automatickým přepočtem
│ ├── Services/
│ │ └── DatabaseService.cs # init DB + uložení příjemky v transakci
│ └── Commands/
│ └── RelayCommand.cs
├── SPECIFIKACE.md
└── .gitignore
| Balíček | Verze | K čemu |
|---|---|---|
Microsoft.Data.Sqlite |
8.0.8 | SQLite klient bez nutnosti instalace serveru |
QuestPDF |
2024.7.3 | Generování PDF reportů (Community licence) |
CommunityToolkit.Mvvm |
8.3.2 | (volitelně) ObservableObject, RelayCommand |
MaterialDesignThemes |
5.1.0 | Fluent / Material UI styl pro Windows 11 vzhled |
- Windows 10/11
- Visual Studio 2022 Community (verze ≥ 17.8) — zdarma na https://visualstudio.microsoft.com/cs/vs/community/
- Při instalaci VS zaškrtnout workload „.NET desktop development" (obsahuje WPF i .NET 8 SDK)
- V Průzkumníku otevři složku
Gastroxa dvojklikem spusťGastrox.sln. - VS automaticky obnoví NuGet balíčky (
Microsoft.Data.Sqlite,QuestPDF, …).- Pokud ne: pravým tlačítkem na Solution → Restore NuGet Packages.
- Nahoře nastav
Debug | Any CPU. - Build → Build Solution (
Ctrl+Shift+B). - Spustit lze přes F5 (debug) nebo
Ctrl+F5(bez debugu).
- Aplikace si vedle
Gastrox.exeautomaticky založí souborsklad.db(SQLite). - Init skript běží z
Database/init.sql, který je nastavený jakoCopyToOutputDirectory=PreserveNewest.
V terminálu (PowerShell) ve složce Gastrox/Gastrox:
dotnet publish -c Release -r win-x64 --self-contained false `
-p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=trueVýstup najdeš v Gastrox\bin\Release\net8.0-windows\win-x64\publish\.
Stačí zkopírovat celou složku publish na cílový stroj — DB se vytvoří při prvním spuštění.
Pokud nechceš závislost na .NET runtime na cílovém PC, použij
--self-contained true.
Jádro je ve dvou souborech:
ViewModels/PrijemkaRadekViewModel.cs— držíPocetBalenia propojené read-only vlastnostiMnozstviEvidencni,ZobrazeniPrepoctu,CelkemBezDPH. Při změněPocetBalenineboVybraneZbozise přesOnPropertyChangedautomaticky aktualizují všechny závislé hodnoty.Views/PrijemkaView.xaml— sloupec „Přepočet" vDataGridje svázaný sZobrazeniPrepoctua používáUpdateSourceTrigger=PropertyChanged→ uživatel vidí výsledek přímo při psaní.
Příklad:
Vyberu „Jack Daniels" (koef. 0,7)
Zadám počet balení: 5
→ Sloupec Přepočet okamžitě zobrazí: "5 × 0,7 l = 3,5 l"
Při uložení (UlozitCommand → DatabaseService.SavePrijemka) běží vše v jedné SQLite transakci:
- INSERT do
Prijemka - INSERT všech řádků do
PrijemkaRadek - UPDATE
Aktualni_Stav_Evidencnina kartě (přičte se přírůstek) - INSERT do
PohybSkladu(auditní stopa)