"use server"; import { serverFetchJson } from "@/app/utils/fetchUtil"; import { BASE_API_URL } from "@/config/api"; import { Dayjs } from "dayjs"; import { cache } from "react"; export interface FinancialSummaryByClientResult { teamId:number; id:number; customerCode: string; customerName: string; projectNo: number; totalFee: number; totalBudget: number; cumulativeExpenditure: number; totalInvoiced: number; totalReceived: number; cashFlowStatus: string; cpi: number; totalUninvoiced: number; } export interface FinancialSummaryByProjectResult { teamId:number; id:number; projectCode: string; projectName: string; customerName: string; subsidiaryName: string; projectNo: number; totalFee: number; totalBudget: number; cumulativeExpenditure: number; totalInvoiced: number; totalReceived: number; cashFlowStatus: string; cpi: number; totalUninvoiced: number; } export const searchFinancialSummaryByClient = cache(async (teamId?: number) => { if (teamId === undefined) { return serverFetchJson( `${BASE_API_URL}/dashboard/searchFinancialSummaryByClient` ); } else { return serverFetchJson( `${BASE_API_URL}/dashboard/searchFinancialSummaryByClient?teamId=${teamId}` ); } }); export const searchFinancialSummaryByProject = cache(async (teamId?: number, customerId?:number) => { if (teamId === undefined) { return serverFetchJson( `${BASE_API_URL}/dashboard/searchFinancialSummaryByProject` ); } else { return serverFetchJson( `${BASE_API_URL}/dashboard/searchFinancialSummaryByProject?teamId=${teamId}&customerId=${customerId}` ); } });