1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 12:09:35 +01:00

feat(tui): Bestandsbewegungen und Produktionsaufträge anbinden

- StockMovement: API-Client, Hook, List/Detail/Record-Screens mit Typ-Filter
- ProductionOrder: list/getById/start im API-Client, List/Detail-Screens mit Freigabe- und Start-Aktion
- Inventar-Menü um Bestandsbewegungen erweitert
- Produktionsmenü zeigt jetzt Auftragsliste statt direkt Create
- OpenAPI-Typen regeneriert (StockMovementResponse, StartProductionOrderRequest, batchId in ProductionOrderResponse)
This commit is contained in:
Sebastian Frick 2026-02-25 12:36:42 +01:00
parent 0474b5fa93
commit 7d721f9ef0
18 changed files with 1279 additions and 9 deletions

View file

@ -1,7 +1,7 @@
/** Production Orders resource Production BC. */
import type { AxiosInstance } from 'axios';
import type { ProductionOrderDTO, CreateProductionOrderRequest } from '@effigenix/types';
import type { ProductionOrderDTO, CreateProductionOrderRequest, StartProductionOrderRequest } from '@effigenix/types';
export type Priority = 'LOW' | 'NORMAL' | 'HIGH' | 'URGENT';
@ -12,12 +12,32 @@ export const PRIORITY_LABELS: Record<Priority, string> = {
URGENT: 'Dringend',
};
export type { ProductionOrderDTO, CreateProductionOrderRequest };
export type ProductionOrderStatus = 'CREATED' | 'RELEASED' | 'IN_PRODUCTION' | 'COMPLETED' | 'CANCELLED';
export const PRODUCTION_ORDER_STATUS_LABELS: Record<ProductionOrderStatus, string> = {
CREATED: 'Erstellt',
RELEASED: 'Freigegeben',
IN_PRODUCTION: 'In Produktion',
COMPLETED: 'Abgeschlossen',
CANCELLED: 'Storniert',
};
export type { ProductionOrderDTO, CreateProductionOrderRequest, StartProductionOrderRequest };
const BASE = '/api/production/production-orders';
export function createProductionOrdersResource(client: AxiosInstance) {
return {
async list(): Promise<ProductionOrderDTO[]> {
const res = await client.get<ProductionOrderDTO[]>(BASE);
return res.data;
},
async getById(id: string): Promise<ProductionOrderDTO> {
const res = await client.get<ProductionOrderDTO>(`${BASE}/${id}`);
return res.data;
},
async create(request: CreateProductionOrderRequest): Promise<ProductionOrderDTO> {
const res = await client.post<ProductionOrderDTO>(BASE, request);
return res.data;
@ -27,6 +47,11 @@ export function createProductionOrdersResource(client: AxiosInstance) {
const res = await client.post<ProductionOrderDTO>(`${BASE}/${id}/release`);
return res.data;
},
async start(id: string, request: StartProductionOrderRequest): Promise<ProductionOrderDTO> {
const res = await client.post<ProductionOrderDTO>(`${BASE}/${id}/start`, request);
return res.data;
},
};
}