@@ -17,7 +17,7 @@ const ProjectFinancialSummary: React.FC = () => { | |||
return ( | |||
<I18nProvider namespaces={["dashboard"]}> | |||
<Typography variant="h4" marginInlineEnd={2}> | |||
Project Financial Summary | |||
Financial Summary | |||
</Typography> | |||
<ProjectFinancialSummaryComponents /> | |||
</I18nProvider> | |||
@@ -75,7 +75,9 @@ const CustomerDetail: React.FC<Props> = ({ | |||
const customer = await fetchCustomer(parseInt(id)) | |||
if (customer !== null && Object.keys(customer).length > 0) { | |||
console.log(customer) | |||
if (customer !== null && Object.keys(customer).length > 0 && !Object.values(customer.customer).every(x => x === null)) { | |||
const tempCustomerInput = { | |||
id: customer.customer.id, | |||
code: customer.customer.code ?? "", | |||
@@ -31,9 +31,9 @@ const DashboardPage: React.FC = () => { | |||
return ( | |||
<ThemeProvider theme={theme}> | |||
<Tabs value={tabIndex} onChange={handleTabChange} variant="scrollable"> | |||
<Tab label="Project Financial Summary" /> | |||
<Tab label="Financial Summary" /> | |||
<Tab label="Project Cash Flow" /> | |||
<Tab label="Project Progress by Client" /> | |||
<Tab label="Project Resource Consumption by Client" /> | |||
<Tab label="Project Resource Utilization" /> | |||
<Tab label="Staff Utilization" /> | |||
</Tabs> | |||
@@ -16,7 +16,7 @@ const DashboardTabButton: React.FC = () => { | |||
const renderContent = () => { | |||
switch (activeTab) { | |||
case "financialSummary": | |||
return <div>Project Financial Summary</div>; | |||
return <div>Financial Summary</div>; | |||
case "cashFlow": | |||
return <div>Project Cash Flow</div>; | |||
case "progressByClient": | |||
@@ -26,7 +26,7 @@ const DashboardTabButton: React.FC = () => { | |||
case "staffUtilization": | |||
return <div>Staff Utilization</div>; | |||
default: | |||
return <div>Project Financial Summary</div>; | |||
return <div>Financial Summary</div>; | |||
} | |||
}; | |||
const [tabIndex, setTabIndex] = useState(0); | |||
@@ -40,16 +40,16 @@ const DashboardTabButton: React.FC = () => { | |||
// <Grid item sm> | |||
// <div style={{marginLeft:20}}> | |||
// {activeTab !== 'financialSummary' ? | |||
// <button onClick={() => setActiveTab('financialSummary')}className="hover:bg-sky-100 hover:cursor-pointer rounded-lg bg-transparent border-slate-400 border-solid text-slate-400 ml-0.5 mt-0.5" style={{height:40,width:250,fontSize:18}}>Project Financial Summary</button> : | |||
// <button onClick={() => setActiveTab('financialSummary')}className="rounded-lg bg-sky-100 border-cyan-500 border-solid text-cyan-500 ml-0.5 mt-0.5" style={{height:40,width:250,fontSize:18}}>Project Financial Summary</button> | |||
// <button onClick={() => setActiveTab('financialSummary')}className="hover:bg-sky-100 hover:cursor-pointer rounded-lg bg-transparent border-slate-400 border-solid text-slate-400 ml-0.5 mt-0.5" style={{height:40,width:250,fontSize:18}}>Financial Summary</button> : | |||
// <button onClick={() => setActiveTab('financialSummary')}className="rounded-lg bg-sky-100 border-cyan-500 border-solid text-cyan-500 ml-0.5 mt-0.5" style={{height:40,width:250,fontSize:18}}>Financial Summary</button> | |||
// } | |||
// {activeTab !== 'cashFlow' ? | |||
// <button onClick={() => setActiveTab('cashFlow')} className="hover:bg-sky-100 hover:cursor-pointer rounded-lg bg-transparent border-slate-400 border-solid text-slate-400 ml-0.5 mt-0.5" style={{height:39,width:250,fontSize:18}}>Project Cash Flow</button> : | |||
// <button onClick={() => setActiveTab('cashFlow')} className="rounded-lg bg-sky-100 border-cyan-500 border-solid text-cyan-500 ml-0.5 mt-0.5" style={{height:39,width:250,fontSize:18}}>Project Cash Flow</button> | |||
// } | |||
// {activeTab !== 'progressByClient' ? | |||
// <button onClick={() => setActiveTab('progressByClient')} className="hover:bg-sky-100 hover:cursor-pointer rounded-lg bg-transparent border-slate-400 border-solid text-slate-400 ml-0.5 mt-0.5" style={{height:39,width:250,fontSize:18}}>Project Progress by Client</button> : | |||
// <button onClick={() => setActiveTab('progressByClient')} className="rounded-lg bg-sky-100 border-cyan-500 border-solid text-cyan-500 ml-0.5 mt-0.5" style={{height:39,width:250,fontSize:18}}>Project Progress by Client</button> | |||
// <button onClick={() => setActiveTab('progressByClient')} className="hover:bg-sky-100 hover:cursor-pointer rounded-lg bg-transparent border-slate-400 border-solid text-slate-400 ml-0.5 mt-0.5" style={{height:39,width:250,fontSize:18}}>Project Resource Consumption by Client</button> : | |||
// <button onClick={() => setActiveTab('progressByClient')} className="rounded-lg bg-sky-100 border-cyan-500 border-solid text-cyan-500 ml-0.5 mt-0.5" style={{height:39,width:250,fontSize:18}}>Project Resource Consumption by Client</button> | |||
// } | |||
// {activeTab !== 'resourceUtilization' ? | |||
// <button onClick={() => setActiveTab('resourceUtilization')} className="hover:bg-sky-100 hover:cursor-pointer rounded-lg bg-transparent border-slate-400 border-solid text-slate-400 ml-0.5 mt-0.5" style={{height:39,width:250,fontSize:18}}>Project Resource Utilization</button> : | |||
@@ -65,9 +65,9 @@ const DashboardTabButton: React.FC = () => { | |||
// </div> | |||
// </Grid> | |||
<Tabs value={tabIndex} onChange={handleTabChange} variant="scrollable"> | |||
<Tab label="Project Financial Summary" /> | |||
<Tab label="Financial Summary" /> | |||
<Tab label="Project Cash Flow" /> | |||
<Tab label="Project Progress by Client" /> | |||
<Tab label="Project Resource Consumption by Client" /> | |||
<Tab label="Project Resource Utilization" /> | |||
<Tab label="Staff Utilization" /> | |||
</Tabs> | |||
@@ -298,7 +298,7 @@ const ProgressByClient: React.FC = () => { | |||
const series: ApexAxisChartSeries | ApexNonAxisChartSeries = [ | |||
{ | |||
name: "Current Stage Completion Percentage", | |||
name: "Project Resource Consumption Percentage", | |||
data: [80, 55, 40, 65, 70], | |||
}, | |||
]; | |||
@@ -372,7 +372,7 @@ const ProgressByClient: React.FC = () => { | |||
}, | |||
}, | |||
title: { | |||
text: "Current Stage Completion Percentage", | |||
text: "Project Resource Consumption Percentage", | |||
align: "center", | |||
}, | |||
grid: { | |||
@@ -426,7 +426,7 @@ const ProgressByClient: React.FC = () => { | |||
<div style={{ display: "inline-block", width: "70%" }}> | |||
<Grid item xs={12} md={12} lg={12}> | |||
<Card> | |||
<CardHeader className="text-slate-500" title="Project Progress" /> | |||
<CardHeader className="text-slate-500" title="Project Resource Consumption" /> | |||
<div style={{ display: "inline-block", width: "99%" }}> | |||
<ReactApexChart | |||
options={options} | |||
@@ -47,7 +47,7 @@ const navigationItems: NavigationItem[] = [ | |||
children: [ | |||
{ | |||
icon: <SummarizeIcon />, | |||
label: "Project Financial Summary", | |||
label: "Financial Summary", | |||
path: "/dashboard/ProjectFinancialSummary", | |||
}, | |||
{ | |||
@@ -84,12 +84,12 @@ const navigationItems: NavigationItem[] = [ | |||
children: [ | |||
{ | |||
icon: <RequestQuote />, | |||
label: "ClaimApproval", | |||
label: "Claim Approval", | |||
path: "/staffReimbursement/ClaimApproval", | |||
}, | |||
{ | |||
icon: <RequestQuote />, | |||
label: "ClaimSummary", | |||
label: "Claim Summary", | |||
path: "/staffReimbursement/ClaimSummary", | |||
}, | |||
], | |||
@@ -333,7 +333,7 @@ const ProgressByClient: React.FC = () => { | |||
const series: ApexAxisChartSeries | ApexNonAxisChartSeries = [ | |||
{ | |||
name: "Current Stage Completion Percentage", | |||
name: "Project Resource Consumption Percentage", | |||
data: [80, 55, 40, 65, 70], | |||
}, | |||
]; | |||
@@ -426,7 +426,7 @@ const ProgressByClient: React.FC = () => { | |||
}, | |||
}, | |||
title: { | |||
text: "Current Stage Completion Percentage", | |||
text: "Project Resource Consumption Percentage", | |||
align: "center", | |||
}, | |||
grid: { | |||
@@ -503,7 +503,7 @@ const ProgressByClient: React.FC = () => { | |||
<div style={{ display: "inline-block", width: "70%" }}> | |||
<Grid item xs={12} md={12} lg={12}> | |||
<Card> | |||
<CardHeader className="text-slate-500" title="Project Progress" /> | |||
<CardHeader className="text-slate-500" title="Project Resource Consumption" /> | |||
<div style={{ display: "inline-block", width: "99%" }}> | |||
<ReactApexChart | |||
options={options} | |||
@@ -310,7 +310,7 @@ const ProgressByTeam: React.FC = () => { | |||
const series: ApexAxisChartSeries | ApexNonAxisChartSeries = [ | |||
{ | |||
name: "Current Stage Completion Percentage", | |||
name: "Project Resource Consumption Percentage", | |||
data: [80, 55, 40, 65, 70], | |||
}, | |||
]; | |||
@@ -403,7 +403,7 @@ const ProgressByTeam: React.FC = () => { | |||
}, | |||
}, | |||
title: { | |||
text: "Current Stage Completion Percentage", | |||
text: "Project Resource Consumption Percentage", | |||
align: "center", | |||
}, | |||
grid: { | |||
@@ -480,7 +480,7 @@ const ProgressByTeam: React.FC = () => { | |||
<div style={{ display: "inline-block", width: "70%" }}> | |||
<Grid item xs={12} md={12} lg={12}> | |||
<Card> | |||
<CardHeader className="text-slate-500" title="Project Progress" /> | |||
<CardHeader className="text-slate-500" title="Project Resource Consumption" /> | |||
<div style={{ display: "inline-block", width: "99%" }}> | |||
<ReactApexChart | |||
options={options} | |||
@@ -515,7 +515,7 @@ const ProjectCashFlow: React.FC = () => { | |||
className="text-sm font-medium ml-5 mt-2" | |||
style={{ color: "#898d8d" }} | |||
> | |||
Total A. Receivable | |||
Total Invoiced Amount | |||
</div> | |||
<div | |||
className="text-lg font-medium ml-5" | |||
@@ -528,7 +528,7 @@ const ProjectCashFlow: React.FC = () => { | |||
className="text-sm font-medium ml-5" | |||
style={{ color: "#898d8d" }} | |||
> | |||
Amount Received | |||
Total Received Amount | |||
</div> | |||
<div | |||
className="text-lg font-medium ml-5" | |||
@@ -541,7 +541,7 @@ const ProjectCashFlow: React.FC = () => { | |||
className="text-sm font-medium ml-5" | |||
style={{ color: "#898d8d" }} | |||
> | |||
Remaining Balance | |||
Accounts Receivable | |||
</div> | |||
<div | |||
className="text-lg font-medium ml-5 mb-2" | |||
@@ -577,7 +577,7 @@ const ProjectCashFlow: React.FC = () => { | |||
className="text-sm font-medium ml-5 mt-2" | |||
style={{ color: "#898d8d" }} | |||
> | |||
Budgeted Expenditure | |||
Total Budget | |||
</div> | |||
<div | |||
className="text-lg font-medium ml-5" | |||
@@ -590,7 +590,7 @@ const ProjectCashFlow: React.FC = () => { | |||
className="text-sm font-medium ml-5" | |||
style={{ color: "#898d8d" }} | |||
> | |||
Actual Expenditure | |||
Total Cumulative Expenditure | |||
</div> | |||
<div | |||
className="text-lg font-medium ml-5" | |||
@@ -603,7 +603,7 @@ const ProjectCashFlow: React.FC = () => { | |||
className="text-sm font-medium ml-5" | |||
style={{ color: "#898d8d" }} | |||
> | |||
Remaining Balance | |||
Accounts Receivable | |||
</div> | |||
<div | |||
className="text-lg font-medium ml-5 mb-2" | |||
@@ -75,8 +75,7 @@ const SubsidiaryDetail: React.FC<Props> = ({ | |||
const subsidiary = await fetchSubsidiary(parseInt(id)) | |||
if (subsidiary !== null && Object.keys(subsidiary).length > 0) { | |||
console.log(subsidiary) | |||
if (subsidiary !== null && Object.keys(subsidiary).length > 0 && !Object.values(subsidiary.subsidiary).every(x => x === null)) { | |||
const tempSubsidiaryInput = { | |||
id: subsidiary.subsidiary.id, | |||
code: subsidiary.subsidiary.code ?? "", | |||