Files
mrp/client/src/modules/inventory/config.ts

91 lines
2.8 KiB
TypeScript
Raw Normal View History

2026-03-14 21:10:35 -05:00
import {
inventoryItemStatuses,
inventoryItemTypes,
inventoryUnitsOfMeasure,
type InventoryBomLineInput,
type InventoryItemInput,
2026-03-14 21:23:22 -05:00
type WarehouseInput,
type WarehouseLocationInput,
2026-03-14 21:10:35 -05:00
type InventoryItemStatus,
type InventoryItemType,
type InventoryUnitOfMeasure,
} from "@mrp/shared/dist/inventory/types.js";
export const emptyInventoryBomLineInput: InventoryBomLineInput = {
componentItemId: "",
quantity: 1,
unitOfMeasure: "EA",
notes: "",
position: 10,
};
export const emptyInventoryItemInput: InventoryItemInput = {
sku: "",
name: "",
description: "",
type: "PURCHASED",
status: "ACTIVE",
unitOfMeasure: "EA",
isSellable: true,
isPurchasable: true,
defaultCost: null,
notes: "",
bomLines: [],
};
2026-03-14 21:23:22 -05:00
export const emptyWarehouseLocationInput: WarehouseLocationInput = {
code: "",
name: "",
notes: "",
};
export const emptyWarehouseInput: WarehouseInput = {
code: "",
name: "",
notes: "",
locations: [],
};
2026-03-14 21:10:35 -05:00
export const inventoryTypeOptions: Array<{ value: InventoryItemType; label: string }> = [
{ value: "PURCHASED", label: "Purchased" },
{ value: "MANUFACTURED", label: "Manufactured" },
{ value: "ASSEMBLY", label: "Assembly" },
{ value: "SERVICE", label: "Service" },
];
export const inventoryStatusOptions: Array<{ value: InventoryItemStatus; label: string }> = [
{ value: "DRAFT", label: "Draft" },
{ value: "ACTIVE", label: "Active" },
{ value: "OBSOLETE", label: "Obsolete" },
];
export const inventoryStatusFilters: Array<{ value: "ALL" | InventoryItemStatus; label: string }> = [
{ value: "ALL", label: "All statuses" },
...inventoryStatusOptions,
];
export const inventoryTypeFilters: Array<{ value: "ALL" | InventoryItemType; label: string }> = [
{ value: "ALL", label: "All item types" },
...inventoryTypeOptions,
];
export const inventoryUnitOptions: Array<{ value: InventoryUnitOfMeasure; label: string }> = inventoryUnitsOfMeasure.map((unit) => ({
value: unit,
label: unit,
}));
export const inventoryStatusPalette: Record<InventoryItemStatus, string> = {
DRAFT: "border border-sky-400/30 bg-sky-500/12 text-sky-700 dark:text-sky-300",
ACTIVE: "border border-emerald-400/30 bg-emerald-500/12 text-emerald-700 dark:text-emerald-300",
OBSOLETE: "border border-rose-400/30 bg-rose-500/12 text-rose-700 dark:text-rose-300",
};
export const inventoryTypePalette: Record<InventoryItemType, string> = {
PURCHASED: "border border-slate-400/30 bg-slate-500/12 text-slate-700 dark:text-slate-300",
MANUFACTURED: "border border-amber-400/30 bg-amber-500/12 text-amber-700 dark:text-amber-300",
ASSEMBLY: "border border-brand/30 bg-brand/10 text-brand",
SERVICE: "border border-violet-400/30 bg-violet-500/12 text-violet-700 dark:text-violet-300",
};
export { inventoryItemStatuses, inventoryItemTypes, inventoryUnitsOfMeasure };