import * as React from "react"; import Grid from "@mui/material/Grid"; import { useState, useEffect, useMemo } from "react"; import Paper from "@mui/material/Paper"; import { TFunction } from "i18next"; import { useTranslation } from "react-i18next"; import { Card, CardHeader } from "@mui/material"; import CustomSearchForm from "../CustomSearchForm/CustomSearchForm"; import CustomDatagrid from "../CustomDatagrid/CustomDatagrid"; import ReactApexChart from "react-apexcharts"; import { ApexOptions } from "apexcharts"; import { GridColDef, GridRowSelectionModel } from "@mui/x-data-grid"; import ReportProblemIcon from "@mui/icons-material/ReportProblem"; import dynamic from "next/dynamic"; import "../../app/global.css"; import { AnyARecord, AnyCnameRecord } from "dns"; import SearchBox, { Criterion } from "../SearchBox"; import ProgressByClientSearch from "@/components/ProgressByClientSearch"; import { Suspense } from "react"; interface Props { Title: string; TotalActiveProjectNumber: number; TotalFees: number; TotalBudget: number; TotalCumulative: number; TotalInvoicedAmount: number; TotalUnInvoicedAmount: number; TotalReceivedAmount: number; CashFlowStatus: string; CostPerformanceIndex: number; ClickedIndex: number; ProjectedCPI: number; ProjectedCashFlowStatus: string; Index: number; } const dataBaseStyle:any = { color: "#6b87cf", textAlign: "right" } const dataNegativeStyle:any = { color: "#f896aa", textAlign: "right" } const dataPositiveStyle:any = { color: "#71d19e", textAlign: "right" } const ProjectFinancialCard: React.FC = ({ Title, TotalActiveProjectNumber, TotalFees, TotalBudget, TotalCumulative, TotalInvoicedAmount, TotalUnInvoicedAmount, TotalReceivedAmount, CashFlowStatus, CostPerformanceIndex, ClickedIndex, ProjectedCPI, ProjectedCashFlowStatus, Index, }) => { const [SearchCriteria, setSearchCriteria] = React.useState({}); const { t } = useTranslation("dashboard"); const borderColor = CashFlowStatus === "Negative" ? "border-red-300 border-solid" : "border-green-200 border-solid"; const selectedBackgroundColor = ClickedIndex === Index ? "rgb(235 235 235)" : "rgb(255 255 255)"; return (
{Title}

{t("Total Active Project")}
{TotalActiveProjectNumber.toLocaleString()}

{t("Total Fees")}
{TotalFees.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}

{t("Total Budget")}
{TotalBudget.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}

{t("Total Cumulative Expenditure")}
{TotalCumulative.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}

{t("Total Invoiced Amount")}
{TotalInvoicedAmount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}

{t("Total Un-Invoiced Amount")}
{TotalUnInvoicedAmount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}

{t("Total Received Amount")}
{TotalReceivedAmount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}

{t("Cash Flow Status")}
<>
{t(CashFlowStatus)}

{t("Cost Performance Index") + " (CPI)"}
{ ( <>
{CostPerformanceIndex}

)}
{t("Projected Cash Flow Status")}
<>
{t(ProjectedCashFlowStatus)}

{t("Projected Cost Performance Index") + " (CPI)"}
<>
{ProjectedCPI}
); }; export default ProjectFinancialCard;