FPSMS-frontend
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 

117 行
2.5 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. import { String } from "lodash";
  6. interface PickOrderItemInfo {
  7. name: string;
  8. type: string;
  9. }
  10. export interface PickOrderResult {
  11. id: number;
  12. code: string;
  13. consoCode?: string;
  14. targetDate: string;
  15. completeDate?: number[];
  16. type: string;
  17. status: string;
  18. releasedBy: string;
  19. items?: PickOrderItemInfo[] | null;
  20. pickOrderLine?: PickOrderLine[];
  21. }
  22. export interface PickOrderLine {
  23. id: number;
  24. itemId: number;
  25. itemCode: string;
  26. itemName: string;
  27. availableQty: number;
  28. requiredQty: number;
  29. uomCode: string;
  30. uomDesc: string;
  31. }
  32. export interface StockOutLine {
  33. id: number;
  34. itemId: number;
  35. itemName: string;
  36. itemNo: string;
  37. qty: number;
  38. stockOutId?: number;
  39. pickOrderLineId: number;
  40. lotNo?: string;
  41. inventoryLotLineId?: number;
  42. status: string;
  43. pickTime?: string;
  44. }
  45. export interface ConsoPickOrderResult {
  46. id: number;
  47. code: string;
  48. consoCode?: string;
  49. targetDate: number[];
  50. completeDate?: number[];
  51. type: string;
  52. status: string;
  53. releasedBy: string;
  54. items?: PickOrderItemInfo[] | null;
  55. }
  56. export interface FetchPickOrders extends Pageable {
  57. code: string | undefined;
  58. targetDateFrom: string | undefined;
  59. targetDateTo: string | undefined;
  60. type: string | undefined;
  61. status: string | undefined;
  62. itemName: string | undefined;
  63. }
  64. export type ByItemsSummary = {
  65. id: number;
  66. code: string;
  67. name: string;
  68. uomDesc: string;
  69. availableQty: number;
  70. requiredQty: number;
  71. };
  72. export interface PreReleasePickOrderSummary {
  73. consoCode: string;
  74. pickOrders: Omit<PickOrderResult, "items">[];
  75. items: ByItemsSummary[];
  76. }
  77. export interface PickOrderLineWithSuggestedLot {
  78. poStatus: string;
  79. id: number;
  80. itemName: string;
  81. qty: number;
  82. uom: string;
  83. status: string;
  84. warehouse: string;
  85. suggestedLotNo: string;
  86. }
  87. export const PreloadPickOrder = () => {
  88. fetchPickOrders({
  89. code: undefined,
  90. targetDateFrom: undefined,
  91. targetDateTo: undefined,
  92. type: undefined,
  93. status: undefined,
  94. itemName: undefined,
  95. });
  96. };
  97. export const fetchPickOrders = cache(async (queryParams: FetchPickOrders) => {
  98. const queryString = new URLSearchParams(
  99. queryParams as Record<string, any>,
  100. ).toString();
  101. return serverFetchJson<PickOrderResult[]>(
  102. `${BASE_API_URL}/pickOrder/list?${queryString}`,
  103. {
  104. next: {
  105. tags: ["pickOrders"],
  106. },
  107. },
  108. );
  109. });