FPSMS-frontend
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 

96 Zeilen
2.3 KiB

  1. import "server-only";
  2. import { Pageable, serverFetchJson } from "@/app/utils/fetchUtil";
  3. import { BASE_API_URL } from "@/config/api";
  4. import { cache } from "react";
  5. interface PickOrderItemInfo {
  6. name: string,
  7. type: string,
  8. }
  9. export interface PickOrderResult{
  10. id: number,
  11. code: string,
  12. consoCode?: string,
  13. targetDate: number[],
  14. completeDate?: number[],
  15. type: string,
  16. status: string,
  17. releasedBy: string,
  18. items?: PickOrderItemInfo[] | null,
  19. pickOrderLine?: PickOrderLine[]
  20. }
  21. export interface PickOrderLine {
  22. id: number,
  23. itemId: number,
  24. itemCode: string,
  25. itemName: string,
  26. availableQty: number,
  27. requiredQty: number,
  28. uomCode: string,
  29. uomDesc: string
  30. }
  31. export interface ConsoPickOrderResult{
  32. id: number,
  33. code: string,
  34. consoCode?: string,
  35. targetDate: number[],
  36. completeDate?: number[],
  37. type: string,
  38. status: string,
  39. releasedBy: string,
  40. items?: PickOrderItemInfo[] | null,
  41. }
  42. export interface FetchPickOrders extends Pageable {
  43. code: string | undefined
  44. targetDateFrom: string | undefined
  45. targetDateTo: string | undefined
  46. type: string | undefined
  47. status: string | undefined
  48. itemName: string | undefined
  49. }
  50. export type ByItemsSummary = {
  51. id: number,
  52. code: string,
  53. name: string,
  54. uomDesc: string,
  55. availableQty: number,
  56. requiredQty: number,
  57. }
  58. export interface PreReleasePickOrderSummary {
  59. consoCode: string
  60. pickOrders: Omit<PickOrderResult, "items">[]
  61. items: ByItemsSummary[]
  62. }
  63. export interface PickOrderLineWithSuggestedLot {
  64. id: number,
  65. itemName: string,
  66. qty: number,
  67. uom: string
  68. status: string
  69. warehouse: string
  70. suggestedLotNo: string
  71. }
  72. export const PreloadPickOrder = () => {
  73. fetchPickOrders({
  74. code: undefined,
  75. targetDateFrom: undefined,
  76. targetDateTo: undefined,
  77. type: undefined,
  78. status: undefined,
  79. itemName: undefined,
  80. })
  81. }
  82. export const fetchPickOrders = cache(async (queryParams: FetchPickOrders) => {
  83. const queryString = new URLSearchParams(queryParams as Record<string, any>).toString();
  84. return serverFetchJson<PickOrderResult[]>(`${BASE_API_URL}/pickOrder/list?${queryString}`, {
  85. next: {
  86. tags: ["pickOrders"]
  87. }
  88. })
  89. })