Files
ERP_Distribution/distribution_fe/lib/api/stock.ts
T

49 lines
1.3 KiB
TypeScript

import { api } from '@/lib/api'
import type {
PaginatedResponse,
StockBalanceResponse,
StockMovementResponse,
LocationType,
MovementType,
} from '@/types/api'
import type { PageParams } from './master'
export interface StockBalanceParams extends PageParams {
locationId?: string
locationType?: LocationType
itemId?: string
}
export interface StockMovementParams extends PageParams {
itemId?: string
locationId?: string
type?: MovementType
from?: string
to?: string
}
export interface AdjustmentBody {
itemId: string
locationId: string
locationType: LocationType
quantity: number
reasonCode: string
// TEMPORARY: required while auth doesn't resolve a logged-in user server-side — see testbug.md #28.
adjustedByUserId: string
}
export const stock = {
balances: (params?: StockBalanceParams) =>
api.get<PaginatedResponse<StockBalanceResponse>>('/stock/balances', { params }).then(r => r.data),
movements: (params?: StockMovementParams) =>
api.get<PaginatedResponse<StockMovementResponse>>('/stock/movements', { params }).then(r => r.data),
adjust: (body: AdjustmentBody) =>
api.post('/stock/adjustment', body).then(r => r.data),
updateMovementReason: (id: string, reasonCode: string) =>
api.patch(`/stock/movements/${id}/reason`, { reasonCode }).then(r => r.data),
}