- Implemented StokOpnameEdit component for editing stock opname entries. - Created StokOpnameIndex component for listing and managing stock opnames. - Added StokOpnameCardRow and StokOpnameItemSubRow components for displaying stock opname details. - Introduced routes for stok opname CRUD operations and actions (submit, verify, reject, cancel). - Integrated UI components for better user interaction and data presentation.
35 lines
876 B
TypeScript
35 lines
876 B
TypeScript
import { createDraftStore } from '@/lib/draft-store';
|
|
|
|
export type StockType = 'good' | 'reject' | 'retail';
|
|
|
|
export type StokOpnameDraftData = {
|
|
selectedProductId: string;
|
|
physicalStocks: Record<string, Record<StockType, number>>;
|
|
notes: string;
|
|
};
|
|
|
|
export const stokOpnameDraftStore =
|
|
createDraftStore<StokOpnameDraftData>('stok-opname-draft');
|
|
|
|
export function saveStokOpnameDraft(
|
|
type: 'create' | 'edit',
|
|
data: StokOpnameDraftData,
|
|
userId?: number,
|
|
): boolean {
|
|
return stokOpnameDraftStore.save(type, data, userId);
|
|
}
|
|
|
|
export function loadStokOpnameDraft(
|
|
type: 'create' | 'edit',
|
|
userId?: number,
|
|
): StokOpnameDraftData | null {
|
|
return stokOpnameDraftStore.load(type, userId);
|
|
}
|
|
|
|
export function clearStokOpnameDraft(
|
|
type: 'create' | 'edit',
|
|
userId?: number,
|
|
): void {
|
|
stokOpnameDraftStore.clear(type, userId);
|
|
}
|