Commit bc667aa9 authored by herman's avatar herman

Merge branch 'master' into 'herman'

Master

See merge request !894
parents 5039a503 dad1df1c
// contents of .env // contents of .env
REACT_APP_URL_MAIN_BE=https://tia.eksad.com/tia-reporting-dev REACT_APP_URL_MAIN_BE=https://tia.eksad.com/tia-reporting-dev
REACT_APP_URL_MAIN_FE=/tia-web-dev REACT_APP_URL_MAIN_FE=/tia-web-dev
\ No newline at end of file
"cpy_file_build_windows" : "robocopy E:\tia-web\src\tia-dev\src E:\tia-web\src /e",
"cpy_sya_bundar": "public, build, package, packaglock, src to src"
\ No newline at end of file
...@@ -6,10 +6,15 @@ ...@@ -6,10 +6,15 @@
"dependencies": { "dependencies": {
"@date-io/date-fns": "^1.3.13", "@date-io/date-fns": "^1.3.13",
"@date-io/moment": "^2.8.0", "@date-io/moment": "^2.8.0",
"@devexpress/dx-react-chart": "^2.7.3",
"@devexpress/dx-react-chart-material-ui": "^2.7.3",
"@devexpress/dx-react-core": "^2.7.3",
"@material-ui/core": "^4.11.0", "@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1", "@material-ui/icons": "^4.9.1",
"@material-ui/lab": "^4.0.0-alpha.56", "@material-ui/lab": "^4.0.0-alpha.56",
"@material-ui/pickers": "^3.2.10", "@material-ui/pickers": "^3.2.10",
"@nivo/bar": "^0.67.0",
"@nivo/core": "^0.67.0",
"@testing-library/jest-dom": "^4.2.4", "@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.5.0", "@testing-library/react": "^9.5.0",
"@testing-library/user-event": "^7.2.1", "@testing-library/user-event": "^7.2.1",
......
...@@ -24,7 +24,7 @@ const create = (type = "") => { ...@@ -24,7 +24,7 @@ const create = (type = "") => {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
}, },
// 60 second timeout... // 60 second timeout...
timeout: 60000 timeout: 180000
}) })
break; break;
case 'UPLOAD': case 'UPLOAD':
...@@ -38,7 +38,7 @@ const create = (type = "") => { ...@@ -38,7 +38,7 @@ const create = (type = "") => {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
}, },
// 40 second timeout... // 40 second timeout...
timeout: 100000 timeout: 180000
}) })
break; break;
default: default:
...@@ -176,6 +176,7 @@ const create = (type = "") => { ...@@ -176,6 +176,7 @@ const create = (type = "") => {
const getDetailParameter = (id) => api.get(`setting/get_setting_by_id/${id}`) const getDetailParameter = (id) => api.get(`setting/get_setting_by_id/${id}`)
const getAllGroup = () => api.get('/setting_group/get_all_setting_group') const getAllGroup = () => api.get('/setting_group/get_all_setting_group')
const getParameterByGroup = (groupID) => api.get(`/setting_type/get_all_setting_type_by_group/${groupID}`) const getParameterByGroup = (groupID) => api.get(`/setting_type/get_all_setting_type_by_group/${groupID}`)
const getParameterByGroupName = (groupName) => api.post(`/setting/get_all_setting_by_group_name`, groupName)
const createParameter = (body) => api.post('setting/create_setting', body) const createParameter = (body) => api.post('setting/create_setting', body)
const updateParameter = (body) => api.post('setting/update_setting', body) const updateParameter = (body) => api.post('setting/update_setting', body)
const checkUploadParameter = (body) => api.post('setting/check_import', body) const checkUploadParameter = (body) => api.post('setting/check_import', body)
...@@ -254,6 +255,7 @@ const create = (type = "") => { ...@@ -254,6 +255,7 @@ const create = (type = "") => {
// Monthly // Monthly
const getMonthlyReport = (body) => api.post('transaction/monthly_report/get_all_report', body) const getMonthlyReport = (body) => api.post('transaction/monthly_report/get_all_report', body)
const getMonthlyOI = (body) => api.post('transaction/monthly_report_oi/get_operating_indicator_id', body)
const getMonthlyReportID = (body) => api.post('transaction/monthly_report/get_monthly_report_id', body) const getMonthlyReportID = (body) => api.post('transaction/monthly_report/get_monthly_report_id', body)
const getHierarkiMontlyReportBS = (body) => api.post('transaction/monthly_report_bs/get_report_hierarki', body) const getHierarkiMontlyReportBS = (body) => api.post('transaction/monthly_report_bs/get_report_hierarki', body)
const getHierarkiMontlyReportOI = (body) => api.post('transaction/monthly_report_oi/get_report_hierarki', body) const getHierarkiMontlyReportOI = (body) => api.post('transaction/monthly_report_oi/get_report_hierarki', body)
...@@ -530,7 +532,9 @@ const create = (type = "") => { ...@@ -530,7 +532,9 @@ const create = (type = "") => {
getPerBSiMontlyReportLOCF, getPerBSiMontlyReportLOCF,
checkUploadMonthlyReportLOCF, checkUploadMonthlyReportLOCF,
uploadMonthlyReportLOCF, uploadMonthlyReportLOCF,
validateSubmitReportOI validateSubmitReportOI,
getMonthlyOI,
getParameterByGroupName
} }
} }
......
...@@ -69,7 +69,8 @@ export default class BudgetTahunan extends Component { ...@@ -69,7 +69,8 @@ export default class BudgetTahunan extends Component {
btnApprove: false, btnApprove: false,
isAdmin: false, isAdmin: false,
btncreate: false, btncreate: false,
loadview: false loadview: false,
permissionhandle: false
} }
this.myRef = React.createRef() this.myRef = React.createRef()
this.fileHandler = this.fileHandler.bind(this); this.fileHandler = this.fileHandler.bind(this);
...@@ -166,10 +167,12 @@ export default class BudgetTahunan extends Component { ...@@ -166,10 +167,12 @@ export default class BudgetTahunan extends Component {
if (response.data.status === "success") { if (response.data.status === "success") {
// // console.log(response); // // console.log(response);
if (response.data.data.is_approver === true) { if (response.data.data.is_approver === true) {
this.setState({ isApprover: true, checkApprover: true }, () => this.setState({ isApprover: true, permissionhandle: true, checkApprover: true }, () =>
this.getPeriode()) {
this.getPeriode()
})
} else { } else {
this.setState({ isApprover: false, checkApprover: false }, () => this.setState({ isApprover: false, permissionhandle: false, checkApprover: false }, () =>
this.getDetailUser()) this.getDetailUser())
} }
} else { } else {
...@@ -489,7 +492,7 @@ export default class BudgetTahunan extends Component { ...@@ -489,7 +492,7 @@ export default class BudgetTahunan extends Component {
let payload = { let payload = {
"company_id": this.state.company.company_id, "company_id": this.state.company.company_id,
"periode": this.state.periode.periode, "periode": this.state.periode.periode,
"is_approver": this.state.isApprover "is_approver": this.state.permissionhandle? this.state.permissionhandle : this.state.isApprover
} }
api.create().getSubmission(payload).then(response => { api.create().getSubmission(payload).then(response => {
console.log(response) console.log(response)
...@@ -504,11 +507,13 @@ export default class BudgetTahunan extends Component { ...@@ -504,11 +507,13 @@ export default class BudgetTahunan extends Component {
btnApprove: response.data.data.is_submit, btnApprove: response.data.data.is_submit,
// loading: false // loading: false
}, () => { }, () => {
// // console.log(this.state.lastStatus); // console.log(response.data.data.is_submit);
// console.log(this.state.btnApprove)
this.historyApproval() this.historyApproval()
this.getLatestPeriodSubmit() this.getLatestPeriodSubmit()
api.create().checkApprover().then(response => { api.create().checkApprover().then(response => {
// // console.log(response); // console.log(this.state.btncreate);
// console.log(this.state.btnedit)
if (this.state.btncreate === true && this.state.btnedit === true) { if (this.state.btncreate === true && this.state.btnedit === true) {
this.setState({ isApprover: false }, () => { this.setState({ isApprover: false }, () => {
if (response.data.data.is_approver === true) { if (response.data.data.is_approver === true) {
...@@ -580,6 +585,7 @@ export default class BudgetTahunan extends Component { ...@@ -580,6 +585,7 @@ export default class BudgetTahunan extends Component {
} }
let payload = { let payload = {
"company_id": this.state.company.company_id, "company_id": this.state.company.company_id,
"periode": this.state.periode.periode,
"min_periode": moment(this.state.minDateRevision).format('YYYY-MM-DD'), "min_periode": moment(this.state.minDateRevision).format('YYYY-MM-DD'),
"max_periode": moment(this.state.maxDateRevision).format('YYYY-MM-DD') "max_periode": moment(this.state.maxDateRevision).format('YYYY-MM-DD')
} }
...@@ -739,18 +745,25 @@ export default class BudgetTahunan extends Component { ...@@ -739,18 +745,25 @@ export default class BudgetTahunan extends Component {
}) })
// // console.log(JSON.stringify(data)); // // console.log(JSON.stringify(data));
api.create('UPLOAD').createSubmitReport(data).then(response => { api.create('UPLOAD').createSubmitReport(data).then(response => {
// // console.log(response);
if (response.data) { if (response.data) {
if (response.data.status === "success") { if (response.ok) {
this.getSubmission() if (response.data.status === 'success') {
this.getSubmission()
} else {
this.setState({ loading: false }, () => {
this.getSubmission()
document.body.style.overflow = 'unset';
})
}
} else { } else {
this.setState({ loading: false }, () => { this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error', loading: false}, () => {
this.getSubmission() this.getSubmission()
document.body.style.overflow = 'unset'; document.body.style.overflow = 'unset';
}) })
} }
} else { } else {
this.setState({ loading: false }, () => { this.setState({ alert: true, messageAlert: 'Error saving data. Please try again', tipeAlert: 'error', loading: false }, () => {
this.getSubmission() this.getSubmission()
document.body.style.overflow = 'unset'; document.body.style.overflow = 'unset';
}) })
......
...@@ -442,7 +442,7 @@ export default class BalanceSheet extends Component { ...@@ -442,7 +442,7 @@ export default class BalanceSheet extends Component {
}) })
} }
} else { } else {
this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error', loading: false }) this.setState({ alert: true, messageAlert: 'Error saving data. Please try again', tipeAlert: 'error', loading: false })
} }
}) })
} }
......
...@@ -183,7 +183,7 @@ export default class CashFlow extends Component { ...@@ -183,7 +183,7 @@ export default class CashFlow extends Component {
// } else { // } else {
api.create().getDetailReportCF(payload).then(response => { api.create().getDetailReportCF(payload).then(response => {
let dataTable = [] let dataTable = []
// console.log(response) console.log(response)
if (response.data) { if (response.data) {
if (response.ok) { if (response.ok) {
if (response.data.status == 'success') { if (response.data.status == 'success') {
...@@ -278,7 +278,7 @@ export default class CashFlow extends Component { ...@@ -278,7 +278,7 @@ export default class CashFlow extends Component {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error', loading: false }) this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error', loading: false })
} }
} else { } else {
this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error', loading: false }) this.setState({ alert: true, messageAlert: 'Connection Timeout, please check your Connection', tipeAlert: 'error', loading: false })
} }
}) })
// } // }
......
...@@ -195,7 +195,7 @@ export default class FixedAssetsMovement extends Component { ...@@ -195,7 +195,7 @@ export default class FixedAssetsMovement extends Component {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error', loading: false}) this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error', loading: false})
} }
} else { } else {
this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error', loading: false }) this.setState({ alert: true, messageAlert: 'Connection Timeout, please check your Connection', tipeAlert: 'error', loading: false })
} }
}) })
} }
...@@ -447,7 +447,7 @@ export default class FixedAssetsMovement extends Component { ...@@ -447,7 +447,7 @@ export default class FixedAssetsMovement extends Component {
} else { } else {
// this.setState({ loading: false }) // this.setState({ loading: false })
// alert(response.problem) // alert(response.problem)
this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error', loading: false }) this.setState({ alert: true, messageAlert: 'Error saving data. Please try again', tipeAlert: 'error', loading: false })
} }
}) })
} }
......
...@@ -205,7 +205,7 @@ export default class ProfitLoss extends Component { ...@@ -205,7 +205,7 @@ export default class ProfitLoss extends Component {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error', loading: false }) this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error', loading: false })
} }
} else { } else {
this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error', loading: false }) this.setState({ alert: true, messageAlert: 'Connection Timeout, please check your Connection', tipeAlert: 'error', loading: false })
} }
}) })
...@@ -447,7 +447,7 @@ export default class ProfitLoss extends Component { ...@@ -447,7 +447,7 @@ export default class ProfitLoss extends Component {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error', loading: false }) this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error', loading: false })
} }
} else { } else {
this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error', loading: false }) this.setState({ alert: true, messageAlert: 'Error saving data. Please try again', tipeAlert: 'error', loading: false })
} }
}) })
} }
......
...@@ -230,7 +230,7 @@ export default class TaxPlanning extends Component { ...@@ -230,7 +230,7 @@ export default class TaxPlanning extends Component {
}) })
} }
} else { } else {
this.setState({ dataTable, loading: false, buttonError: true, editable: true }) this.setState({ dataTable, loading: false, buttonError: true, editable: true, alert: true, messageAlert: 'Connection Timeout, please check your Connection', tipeAlert: 'error'})
} }
}) })
} }
...@@ -632,7 +632,7 @@ export default class TaxPlanning extends Component { ...@@ -632,7 +632,7 @@ export default class TaxPlanning extends Component {
// alert(response.data.status) // alert(response.data.status)
} }
} else { } else {
this.setState({ loading: false, alert: true, messageAlert: response.problem, tipeAlert: 'error' }) this.setState({ loading: false, alert: true, messageAlert: 'Error saving data. Please try again', tipeAlert: 'error' })
} }
}) })
} }
......
...@@ -123,7 +123,7 @@ export default class getAllDocument extends Component { ...@@ -123,7 +123,7 @@ export default class getAllDocument extends Component {
openPopUp = async (index, val, type) =>{ openPopUp = async (index, val, type) =>{
if (type === 'download') { if (type === 'download') {
let res = await fetch( let res = await fetch(
`${process.env.REACT_APP_URL_MAIN_BE}/public/document/download_document?documentName=`+this.state.docPath[val]+"&&fileType="+index[5] `${process.env.REACT_APP_URL_MAIN_BE}/public/document/download_document?documentName=`+this.state.docPath[val]+"&&fileType="+index[6]
) )
res = await res.blob() res = await res.blob()
// console.log(res) // console.log(res)
......
...@@ -302,6 +302,7 @@ export default class CreateManagementDoc extends Component { ...@@ -302,6 +302,7 @@ export default class CreateManagementDoc extends Component {
}) })
} }
} }
this.props.handleLoading(0)
} }
deleteFile(e) { deleteFile(e) {
......
...@@ -217,6 +217,11 @@ export default function MiniDrawer() { ...@@ -217,6 +217,11 @@ export default function MiniDrawer() {
label: 'CAT Dashboard', label: 'CAT Dashboard',
path: 'dashboard-cat', path: 'dashboard-cat',
}, },
{
img: 'beranda',
label: 'Financial Dashboard',
path: 'dashboard-financial',
},
{ {
img: 'beranda', img: 'beranda',
label: 'Summary of Triputra Group', label: 'Summary of Triputra Group',
......
This diff is collapsed.
This diff is collapsed.
...@@ -841,12 +841,12 @@ export default class DBTP extends Component { ...@@ -841,12 +841,12 @@ export default class DBTP extends Component {
{/* {this.state.visibleTP === true ? */} {/* {this.state.visibleTP === true ? */}
<Paper style={{ paddingTop: 10, paddingBottom: 20 }}> <Paper style={{ paddingTop: 10, paddingBottom: 20 }}>
<div style={{ borderBottom: 'solid 1px #c4c4c4' }} > <div style={{ borderBottom: 'solid 1px #c4c4c4' }} >
<Typography style={{ fontSize: '12px', color: '#4b4b4b', margin: 10 }}>Historical</Typography> <Typography style={{ fontSize: '12px', color: '#4b4b4b', margin: 10 }}>Sub Holding Report</Typography>
</div> </div>
<div style={{ padding: 20 }}> <div style={{ padding: 20 }}>
<div style={{ display: 'flex', justifyContent: 'space-between' }}> <div style={{ display: 'flex', justifyContent: 'space-between' }}>
<div> <div>
<Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>Historical</Typography> <Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>Tax Planning - Monthly (Database)</Typography>
<Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>Period : 2021 </Typography> <Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>Period : 2021 </Typography>
<Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>in IDR mn</Typography> <Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>in IDR mn</Typography>
</div> </div>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -117,6 +117,23 @@ export default class CashFlowMR extends Component { ...@@ -117,6 +117,23 @@ export default class CashFlowMR extends Component {
}) })
} }
async downloadAllData() {
let url = `${process.env.REACT_APP_URL_MAIN_BE}/public/transaction/monthly_report_cf/export_monthly_report?monthly_report_id=${this.props.monthlyReportId}&&report_id=${this.props.report_id}&&company_id=${this.props.company.company_id}&&year=${this.props.periode}&&revision=${this.props.revision}&&months=${this.props.month.month_id}`
console.log(url);
let res = await fetch(
`${process.env.REACT_APP_URL_MAIN_BE}/public/transaction/monthly_report_cf/export_monthly_report?monthly_report_id=${this.props.monthlyReportId === null ? "" : this.props.monthlyReportId}&&report_id=${this.props.report_id}&&company_id=${this.props.company.company_id}&&year=${this.props.periode}&&revision=${this.props.revision}&&months=${this.props.month.month_id}`
)
res = await res.blob()
this.setState({ loading: false })
if (res.size > 0) {
let url = window.URL.createObjectURL(res);
let a = document.createElement('a');
a.href = url;
a.download = 'Monthly Report Cash Flow.xlsx';
a.click();
}
}
render() { render() {
let dataTable2 = this.state.dataTable let dataTable2 = this.state.dataTable
...@@ -410,7 +427,7 @@ export default class CashFlowMR extends Component { ...@@ -410,7 +427,7 @@ export default class CashFlowMR extends Component {
<div style={{ display: 'flex', justifyContent: 'space-between' }}> <div style={{ display: 'flex', justifyContent: 'space-between' }}>
<div> <div>
<Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>{this.props.company.company_name}</Typography> <Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>{this.props.company.company_name}</Typography>
<Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>Period : {this.props.periode} (rev.{this.props.revision})</Typography> <Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>Period : {String(this.props.month.month_value).toLocaleUpperCase()} {this.props.periode} (rev.{this.props.revision})</Typography>
<Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>in IDR mn</Typography> <Typography style={{ fontSize: '11px', color: '#4b4b4b' }}>in IDR mn</Typography>
</div> </div>
<div style={{ width: '50%' }}> <div style={{ width: '50%' }}>
...@@ -426,7 +443,7 @@ export default class CashFlowMR extends Component { ...@@ -426,7 +443,7 @@ export default class CashFlowMR extends Component {
onClick={() => onClick={() =>
this.setState({ loading: true }, () => { this.setState({ loading: true }, () => {
setTimeout(() => { setTimeout(() => {
// this.downloadAllData() this.downloadAllData()
}, 100); }, 100);
})} })}
> >
...@@ -452,7 +469,7 @@ export default class CashFlowMR extends Component { ...@@ -452,7 +469,7 @@ export default class CashFlowMR extends Component {
{/* {this.props.isApprover === true || this.state.dataTable.length == 0 ? null : {/* {this.props.isApprover === true || this.state.dataTable.length == 0 ? null :
(this.props.lastStatus === 'SUBMIT' || this.props.lastStatus === 'REVISION') && this.props.prevRevision === false && (this.props.status === 'revision' || this.props.status === 'not-yet' || this.props.status === 'draft' || this.props.status === 'submitted') ? */} (this.props.lastStatus === 'SUBMIT' || this.props.lastStatus === 'REVISION') && this.props.prevRevision === false && (this.props.status === 'revision' || this.props.status === 'not-yet' || this.props.status === 'draft' || this.props.status === 'submitted') ? */}
<div className="grid grid-2x" style={{ marginTop: 20 }}> <div className="grid grid-2x" style={{ marginTop: 20 }}>
<div className="col-1"> <div className="col-1" style={{ paddingLeft: 0 }}>
<button <button
type="button" type="button"
onClick={() => this.setState({ loading: true }, () => { onClick={() => this.setState({ loading: true }, () => {
......
This diff is collapsed.
...@@ -26,7 +26,6 @@ export default class SummaryOfTriputra extends Component { ...@@ -26,7 +26,6 @@ export default class SummaryOfTriputra extends Component {
{ value: 2, label: 'YTD Report' }, { value: 2, label: 'YTD Report' },
{ value: 3, label: 'CPSM Report' }, { value: 3, label: 'CPSM Report' },
{ value: 4, label: 'Historical' }, { value: 4, label: 'Historical' },
{ value: 5, label: 'Dashboard Financial' },
], ],
report: null, report: null,
loading: false, loading: false,
...@@ -233,6 +232,7 @@ export default class SummaryOfTriputra extends Component { ...@@ -233,6 +232,7 @@ export default class SummaryOfTriputra extends Component {
if (this.state.report.value === 1) { if (this.state.report.value === 1) {
api.create().getDetailReportMB(payload).then(response => { api.create().getDetailReportMB(payload).then(response => {
// console.log(response); // console.log(response);
// console.log(payload)
let dataTable = [] let dataTable = []
if (response.data) { if (response.data) {
let res = response.data.data let res = response.data.data
......
...@@ -10,6 +10,7 @@ import UnitBisnis from '../container/MasterData/UnitBisnis' ...@@ -10,6 +10,7 @@ import UnitBisnis from '../container/MasterData/UnitBisnis'
import Parameter from '../container/MasterData/Parameter/Parameter' import Parameter from '../container/MasterData/Parameter/Parameter'
import ReportItems from '../container/MasterData/ReportItems' import ReportItems from '../container/MasterData/ReportItems'
import DashboardCAT from '../container/Laporan/DashboardCAT' import DashboardCAT from '../container/Laporan/DashboardCAT'
import DashboardFinancial from '../container/Laporan/DashboardFinancial'
import BudgetTahunan from '../container/BudgetTahunan'; import BudgetTahunan from '../container/BudgetTahunan';
import RollingOutlook from '../container/RollingOutlook'; import RollingOutlook from '../container/RollingOutlook';
import OperatingIndicator from '../container/OprIndicator/OperatingIndicator' import OperatingIndicator from '../container/OprIndicator/OperatingIndicator'
...@@ -96,6 +97,10 @@ const routes = [ ...@@ -96,6 +97,10 @@ const routes = [
path: "/home/summary-of-triputra", path: "/home/summary-of-triputra",
main: SummaryTriputra main: SummaryTriputra
}, },
{
path: "/home/dashboard-financial",
main: DashboardFinancial
},
{ {
path: "*", path: "*",
main: screen404 main: screen404
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment