1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 17:19:56 +01:00

feat(cli): Stammdaten-TUI mit Master Data API-Anbindung

- Neue Screens: Kategorien, Lieferanten, Artikel, Kunden (jeweils
  Liste, Detail, Anlegen + Detailaktionen wie Bewertung, Zertifikate,
  Verkaufseinheiten, Lieferadressen, Präferenzen)
- API-Client: Resources für alle 4 Stammdaten-Aggregate implementiert
  (categories, suppliers, articles, customers) mit Mapping von
  verschachtelten Domain-VOs auf flache DTOs
- Lieferant, Artikel, Kategorie: echte HTTP-Calls gegen Backend
  (/api/suppliers, /api/articles, /api/categories, /api/customers)
- 204-No-Content-Endpoints (removeSalesUnit, removeSupplier,
  removeCertificate, removeDeliveryAddress, removeFrameContract)
  lösen Re-Fetch des Aggregats aus
- MasterdataMenu, Navigation-Erweiterung, App.tsx-Routing
This commit is contained in:
Sebastian Frick 2026-02-18 13:35:20 +01:00
parent 797f435a49
commit d27dbaa843
30 changed files with 3882 additions and 1 deletions

View file

@ -12,6 +12,25 @@ import { UserDetailScreen } from './components/users/UserDetailScreen.js';
import { ChangePasswordScreen } from './components/users/ChangePasswordScreen.js';
import { RoleListScreen } from './components/roles/RoleListScreen.js';
import { RoleDetailScreen } from './components/roles/RoleDetailScreen.js';
// Stammdaten
import { MasterdataMenu } from './components/masterdata/MasterdataMenu.js';
import { CategoryListScreen } from './components/masterdata/categories/CategoryListScreen.js';
import { CategoryDetailScreen } from './components/masterdata/categories/CategoryDetailScreen.js';
import { CategoryCreateScreen } from './components/masterdata/categories/CategoryCreateScreen.js';
import { SupplierListScreen } from './components/masterdata/suppliers/SupplierListScreen.js';
import { SupplierDetailScreen } from './components/masterdata/suppliers/SupplierDetailScreen.js';
import { SupplierCreateScreen } from './components/masterdata/suppliers/SupplierCreateScreen.js';
import { RateSupplierScreen } from './components/masterdata/suppliers/RateSupplierScreen.js';
import { AddCertificateScreen } from './components/masterdata/suppliers/AddCertificateScreen.js';
import { ArticleListScreen } from './components/masterdata/articles/ArticleListScreen.js';
import { ArticleDetailScreen } from './components/masterdata/articles/ArticleDetailScreen.js';
import { ArticleCreateScreen } from './components/masterdata/articles/ArticleCreateScreen.js';
import { AddSalesUnitScreen } from './components/masterdata/articles/AddSalesUnitScreen.js';
import { CustomerListScreen } from './components/masterdata/customers/CustomerListScreen.js';
import { CustomerDetailScreen } from './components/masterdata/customers/CustomerDetailScreen.js';
import { CustomerCreateScreen } from './components/masterdata/customers/CustomerCreateScreen.js';
import { AddDeliveryAddressScreen } from './components/masterdata/customers/AddDeliveryAddressScreen.js';
import { SetPreferencesScreen } from './components/masterdata/customers/SetPreferencesScreen.js';
function ScreenRouter() {
const { isAuthenticated, loading } = useAuth();
@ -49,6 +68,25 @@ function ScreenRouter() {
{current === 'change-password' && <ChangePasswordScreen />}
{current === 'role-list' && <RoleListScreen />}
{current === 'role-detail' && <RoleDetailScreen />}
{/* Stammdaten */}
{current === 'masterdata-menu' && <MasterdataMenu />}
{current === 'category-list' && <CategoryListScreen />}
{current === 'category-detail' && <CategoryDetailScreen />}
{current === 'category-create' && <CategoryCreateScreen />}
{current === 'supplier-list' && <SupplierListScreen />}
{current === 'supplier-detail' && <SupplierDetailScreen />}
{current === 'supplier-create' && <SupplierCreateScreen />}
{current === 'supplier-rate' && <RateSupplierScreen />}
{current === 'supplier-add-certificate' && <AddCertificateScreen />}
{current === 'article-list' && <ArticleListScreen />}
{current === 'article-detail' && <ArticleDetailScreen />}
{current === 'article-create' && <ArticleCreateScreen />}
{current === 'article-add-sales-unit' && <AddSalesUnitScreen />}
{current === 'customer-list' && <CustomerListScreen />}
{current === 'customer-detail' && <CustomerDetailScreen />}
{current === 'customer-create' && <CustomerCreateScreen />}
{current === 'customer-add-delivery-address' && <AddDeliveryAddressScreen />}
{current === 'customer-set-preferences' && <SetPreferencesScreen />}
</MainLayout>
);
}