|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import "server-only";
- import { Pageable, serverFetchJson } from "@/app/utils/fetchUtil";
- import { BASE_API_URL } from "@/config/api";
- import { cache } from "react";
- import { String } from "lodash";
-
- interface PickOrderItemInfo {
- name: string;
- type: string;
- }
-
- export interface PickOrderResult {
- id: number;
- code: string;
- consoCode?: string;
- targetDate: string;
- completeDate?: number[];
- type: string;
- status: string;
- releasedBy: string;
- items?: PickOrderItemInfo[] | null;
- pickOrderLine?: PickOrderLine[];
- }
-
- export interface PickOrderLine {
- id: number;
- itemId: number;
- itemCode: string;
- itemName: string;
- availableQty: number;
- requiredQty: number;
- uomCode: string;
- uomDesc: string;
- }
- export interface StockOutLine {
- id: number;
- itemId: number;
- itemName: string;
- itemNo: string;
- qty: number;
- stockOutId?: number;
- pickOrderLineId: number;
- lotNo?: string;
- inventoryLotLineId?: number;
- status: string;
- pickTime?: string;
- }
- export interface ConsoPickOrderResult {
- id: number;
- code: string;
- consoCode?: string;
- targetDate: number[];
- completeDate?: number[];
- type: string;
- status: string;
- releasedBy: string;
- items?: PickOrderItemInfo[] | null;
- }
-
- export interface FetchPickOrders extends Pageable {
- code: string | undefined;
- targetDateFrom: string | undefined;
- targetDateTo: string | undefined;
- type: string | undefined;
- status: string | undefined;
- itemName: string | undefined;
- }
- export type ByItemsSummary = {
- id: number;
- code: string;
- name: string;
- uomDesc: string;
- availableQty: number;
- requiredQty: number;
- };
- export interface PreReleasePickOrderSummary {
- consoCode: string;
- pickOrders: Omit<PickOrderResult, "items">[];
- items: ByItemsSummary[];
- }
-
- export interface PickOrderLineWithSuggestedLot {
- poStatus: string;
- id: number;
- itemName: string;
- qty: number;
- uom: string;
- status: string;
- warehouse: string;
- suggestedLotNo: string;
- }
-
- export const PreloadPickOrder = () => {
- fetchPickOrders({
- code: undefined,
- targetDateFrom: undefined,
- targetDateTo: undefined,
- type: undefined,
- status: undefined,
- itemName: undefined,
- });
- };
-
- export const fetchPickOrders = cache(async (queryParams: FetchPickOrders) => {
- const queryString = new URLSearchParams(
- queryParams as Record<string, any>,
- ).toString();
- return serverFetchJson<PickOrderResult[]>(
- `${BASE_API_URL}/pickOrder/list?${queryString}`,
- {
- next: {
- tags: ["pickOrders"],
- },
- },
- );
- });
|