Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

68 linhas
1.8 KiB

  1. "use server";
  2. import { serverFetchJson } from "@/app/utils/fetchUtil";
  3. import { BASE_API_URL } from "@/config/api";
  4. import { Dayjs } from "dayjs";
  5. import { cache } from "react";
  6. export interface FinancialSummaryByClientResult {
  7. teamId:number;
  8. id:number;
  9. customerCode: string;
  10. customerName: string;
  11. projectNo: number;
  12. totalFee: number;
  13. totalBudget: number;
  14. cumulativeExpenditure: number;
  15. totalInvoiced: number;
  16. totalReceived: number;
  17. cashFlowStatus: string;
  18. cpi: number;
  19. totalUninvoiced: number;
  20. }
  21. export interface FinancialSummaryByProjectResult {
  22. teamId:number;
  23. id:number;
  24. projectCode: string;
  25. projectName: string;
  26. customerName: string;
  27. subsidiaryName: string;
  28. projectNo: number;
  29. totalFee: number;
  30. totalBudget: number;
  31. cumulativeExpenditure: number;
  32. totalInvoiced: number;
  33. totalReceived: number;
  34. cashFlowStatus: string;
  35. cpi: number;
  36. totalUninvoiced: number;
  37. }
  38. export const searchFinancialSummaryByClient = cache(async (teamId?: number) => {
  39. if (teamId === undefined) {
  40. return serverFetchJson<FinancialSummaryByClientResult[]>(
  41. `${BASE_API_URL}/dashboard/searchFinancialSummaryByClient`
  42. );
  43. } else {
  44. return serverFetchJson<FinancialSummaryByClientResult[]>(
  45. `${BASE_API_URL}/dashboard/searchFinancialSummaryByClient?teamId=${teamId}`
  46. );
  47. }
  48. });
  49. export const searchFinancialSummaryByProject = cache(async (teamId?: number, customerId?:number) => {
  50. if (teamId === undefined) {
  51. return serverFetchJson<FinancialSummaryByProjectResult[]>(
  52. `${BASE_API_URL}/dashboard/searchFinancialSummaryByProject`
  53. );
  54. } else {
  55. return serverFetchJson<FinancialSummaryByProjectResult[]>(
  56. `${BASE_API_URL}/dashboard/searchFinancialSummaryByProject?teamId=${teamId}&customerId=${customerId}`
  57. );
  58. }
  59. });