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

feat(production): Batch bei Produktionsstart automatisch erstellen (#73)

- BatchNumber in allen ProductionOrder-Endpoints via BatchRepository auflösen
- BatchCreationFailed Error-Variante statt generischem ValidationFailure
- bestBeforeDate-Berechnung als Recipe.calculateBestBeforeDate() in die Domain verschoben
This commit is contained in:
Sebastian Frick 2026-02-26 09:13:51 +01:00
parent 26adf21162
commit 600d0f9f06
20 changed files with 356 additions and 397 deletions

View file

@ -115,7 +115,6 @@ export type {
ReserveStockRequest,
StockMovementDTO,
RecordStockMovementRequest,
StartProductionOrderRequest,
CountryDTO,
} from '@effigenix/types';

View file

@ -1,7 +1,7 @@
/** Production Orders resource Production BC. */
import type { AxiosInstance } from 'axios';
import type { ProductionOrderDTO, CreateProductionOrderRequest, StartProductionOrderRequest, RescheduleProductionOrderRequest } from '@effigenix/types';
import type { ProductionOrderDTO, CreateProductionOrderRequest, RescheduleProductionOrderRequest } from '@effigenix/types';
export type Priority = 'LOW' | 'NORMAL' | 'HIGH' | 'URGENT';
@ -28,7 +28,7 @@ export interface ProductionOrderFilter {
dateTo?: string;
}
export type { ProductionOrderDTO, CreateProductionOrderRequest, StartProductionOrderRequest, RescheduleProductionOrderRequest };
export type { ProductionOrderDTO, CreateProductionOrderRequest, RescheduleProductionOrderRequest };
const BASE = '/api/production/production-orders';
@ -58,8 +58,8 @@ export function createProductionOrdersResource(client: AxiosInstance) {
return res.data;
},
async start(id: string, request: StartProductionOrderRequest): Promise<ProductionOrderDTO> {
const res = await client.post<ProductionOrderDTO>(`${BASE}/${id}/start`, request);
async start(id: string): Promise<ProductionOrderDTO> {
const res = await client.post<ProductionOrderDTO>(`${BASE}/${id}/start`);
return res.data;
},

View file

@ -1702,6 +1702,7 @@ export interface components {
recipeId?: string;
status?: string;
batchId?: string;
batchNumber?: string;
plannedQuantity?: string;
plannedQuantityUnit?: string;
/** Format: date */
@ -1714,9 +1715,6 @@ export interface components {
/** Format: date-time */
updatedAt?: string;
};
StartProductionOrderRequest: {
batchId: string;
};
RescheduleProductionOrderRequest: {
/** Format: date */
newPlannedDate: string;
@ -3118,11 +3116,7 @@ export interface operations {
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["StartProductionOrderRequest"];
};
};
requestBody?: never;
responses: {
/** @description OK */
200: {

View file

@ -30,6 +30,5 @@ export type CancelBatchRequest = components['schemas']['CancelBatchRequest'];
// Production Order types
export type ProductionOrderDTO = components['schemas']['ProductionOrderResponse'];
export type CreateProductionOrderRequest = components['schemas']['CreateProductionOrderRequest'];
export type StartProductionOrderRequest = components['schemas']['StartProductionOrderRequest'];
export type RescheduleProductionOrderRequest = components['schemas']['RescheduleProductionOrderRequest'];
export type CancelProductionOrderRequest = components['schemas']['CancelProductionOrderRequest'];