diff --git a/src/views/Dashboard/DashboardBOD.js b/src/views/Dashboard/DashboardBOD.js
index b662d7c..5601b4f 100644
--- a/src/views/Dashboard/DashboardBOD.js
+++ b/src/views/Dashboard/DashboardBOD.js
@@ -61,6 +61,7 @@ const DashboardBOD = (props) => {
const [READY_TABLE_DETAIL_EXPENDITURE, SET_READY_TABLE_DETAIL_EXPENDITURE] = useState(false);
const [DATA_DETAIL_EXPENDITURE, SET_DATA_DETAIL_EXPENDITURE] = useState([]);
useEffect(() => {
+ actualProgressProject();
getCompanyCashFlow(); // expenditure
getCompanyExpenditureColor(); // expenditure Color
getCompanyFinancialHealthColor(); // financial health Color
@@ -111,6 +112,11 @@ const DashboardBOD = (props) => {
SET_PROJECT_EXPENDITURE_COLOR(result.data.data)
}
+ const actualProgressProject = async () => {
+ const URL = `${BASE_OSPRO}/api/project/actual-progress-project-command`;
+ const result = await axios.get(URL, HEADER).then(res => res).catch(err => err.response)
+ }
+
const getCompanyFinancialHealthColor = async () => {
const URL = `${BASE_OSPRO}/api/dashboard/get-detail-financial-health-color/${role_name}`
const result = await axios.get(URL, HEADER).then(res => res).catch(err => err.response)
@@ -437,20 +443,11 @@ const DashboardBOD = (props) => {
Total Project Expenditure from on-going project.
{PROJECT_EXPENDITURE ?
- <>
Detailed View
@@ -475,12 +472,7 @@ const DashboardBOD = (props) => {
y: {
ticks: {
autoSkip: false,
- stepSize: 2,
- // callback: function (value) {
- // if (value === 0 || value === null || value === undefined) {
- // return '';
- // }
- // }
+ stepSize: 2
}
}
},
@@ -501,38 +493,41 @@ const DashboardBOD = (props) => {
data={{
labels: [
`Target Pendapatan ${moment().format('YYYY')}`,
- 'Realisasi Pendapatan',
- 'Realisasi Cash In',
- 'Anggaran Biaya',
- 'Realisasi Anggaran Biaya',
- 'Laba'
+ 'Income Year',
+ 'Total Nilai Proyek',
+ // 'Anggaran Biaya',
+ // 'Realisasi Anggaran Biaya',
+ // 'Laba'
],
datasets: [
{
label: '',
data: [
- PROJECT_EXPENDITURE?.total_budget || 0,
- PROJECT_EXPENDITURE?.total_expenditure || 0,
- PROJECT_EXPENDITURE?.total_invoice ? Math.floor(PROJECT_EXPENDITURE.total_invoice) : 0,
- PROJECT_EXPENDITURE?.total_paid_invoice || 0,
- PROJECT_EXPENDITURE?.total_paid_invoice || 0,
- PROJECT_EXPENDITURE?.total_paid_invoice || 0
+ // PROJECT_EXPENDITURE?.total_budget || 0,
+ // PROJECT_EXPENDITURE?.total_expenditure || 0,
+ // PROJECT_EXPENDITURE?.total_invoice ? Math.floor(PROJECT_EXPENDITURE.total_invoice) : 0,
+ // PROJECT_EXPENDITURE?.total_paid_invoice || 0,
+ // PROJECT_EXPENDITURE?.total_paid_invoice || 0,
+ // PROJECT_EXPENDITURE?.total_paid_invoice || 0
+ 98000000000,
+ PROJECT_EXPENDITURE?.total_income_year || 0,
+ PROJECT_EXPENDITURE?.total_value_proyek || 0
],
borderColor: [
PROJECT_EXPENDITURE_COLOR?.total_budget || '#480ca8',
PROJECT_EXPENDITURE_COLOR?.total_expenditure || '#b5179e',
PROJECT_EXPENDITURE_COLOR?.total_invoice || '#a26a16',
- PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#4c4747',
- PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#e00000',
- PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#033a37'
+ // PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#4c4747',
+ // PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#e00000',
+ // PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#033a37'
],
backgroundColor: [
PROJECT_EXPENDITURE_COLOR?.total_budget || '#480ca8',
PROJECT_EXPENDITURE_COLOR?.total_expenditure || '#b5179e',
PROJECT_EXPENDITURE_COLOR?.total_invoice || '#a26a16',
- PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#4c4747',
- PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#e00000',
- PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#033a37'
+ // PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#4c4747',
+ // PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#e00000',
+ // PROJECT_EXPENDITURE_COLOR?.total_paid_invoice || '#033a37'
],
borderRadius: 5,
borderSkipped: false
diff --git a/src/views/Dashboard/DashboardProject.js b/src/views/Dashboard/DashboardProject.js
index 551d630..0abf34c 100644
--- a/src/views/Dashboard/DashboardProject.js
+++ b/src/views/Dashboard/DashboardProject.js
@@ -152,8 +152,7 @@ const DashboardProject = (props) => {
async function fetchData() {
await Promise.all([
getManpower(),
- getAssignedHR(),
- ...(assignedHr.length > 0 ? [getActualHR()] : []),
+ getAssignedHR()
]);
}
fetchData();
@@ -219,9 +218,13 @@ const DashboardProject = (props) => {
today.isBetween(moment(item.start_date), moment(item.end_date))
)
.map((item) => item.user_id);
- setAssignedHrCount(assignedList.length);
- setAssignedHr(assignedList);
+ const uniqueUserIds = new Set(assignedList);
+ setAssignedHrCount(uniqueUserIds.size);
+ if (assignedList.length > 0) {
+ getActualHR(assignedList)
+ }
} catch (error) {
+ console.error("Failed to get assigned HR:", error);
}
};
@@ -439,7 +442,7 @@ const DashboardProject = (props) => {
result.data.data[0].data?.percentageReal[
result.data.data[0].data?.percentageReal.length - 1
];
- setActualProgress(actualProgress);
+ setActualProgress(+(Math.round(actualProgress + "e+2") + "e-2"));
}
selisihProgress = planningProgress - actualProgress;
if (selisihProgress > 0 && selisihProgress <= 20) {
@@ -506,10 +509,10 @@ const DashboardProject = (props) => {
return;
}
if (result.status !== 200) {
- NotificationManager.error(
- `Get integration invoice failed, ${result.data.message}`,
- "Failed"
- );
+ // NotificationManager.error(
+ // `Get integration invoice failed, ${result.data.message}`,
+ // "Failed"
+ // );
setIsReadyIntegrationInvoice(true);
return;
} else if (result.status == 200 && result.data.data) {
diff --git a/src/views/SimproV2/CreatedProyek/DialogFormProyek.js b/src/views/SimproV2/CreatedProyek/DialogFormProyek.js
index e1f99d6..772dd85 100644
--- a/src/views/SimproV2/CreatedProyek/DialogFormProyek.js
+++ b/src/views/SimproV2/CreatedProyek/DialogFormProyek.js
@@ -765,7 +765,7 @@ const DialogFormProyek = ({
@@ -807,7 +807,7 @@ const DialogFormProyek = ({
{
return (
-
Indentitas Proyek
+
Identitas Proyek
@@ -494,7 +494,7 @@ const ViewProject = ({ idTask, openDialog, closeDialog, toggleDialog, projectCha
Nilai Kontrak
- {valueProyek ?? '-'}
+ {currency}. {formatThousand(budget)}
|
@@ -510,7 +510,7 @@ const ViewProject = ({ idTask, openDialog, closeDialog, toggleDialog, projectCha
Anggaran Biaya
- {currency}. {formatThousand(budget)}
+ {valueProyek ?? '-'}
|
diff --git a/src/views/SimproV2/CreatedProyek/index.js b/src/views/SimproV2/CreatedProyek/index.js
index 1700df2..3eeae26 100644
--- a/src/views/SimproV2/CreatedProyek/index.js
+++ b/src/views/SimproV2/CreatedProyek/index.js
@@ -378,6 +378,7 @@ const CreatedProyek = ({ params, ...props }) => {
"value_proyek",
"income_year",
"deleted_at",
+ "persentase_progress",
"deleted_by_id"
],
joins: [
@@ -1527,7 +1528,7 @@ const CreatedProyek = ({ params, ...props }) => {
- Indentitas Proyek
+ Identitas Proyek
handleOpenDokumen(text)}>
@@ -1759,6 +1760,11 @@ const CreatedProyek = ({ params, ...props }) => {
: `${formatThousand(text)}`;
},
},
+ {
+ title: "Total Progress (%)", dataIndex: "persentase_progress", key: "persentase_progress", render: (text, record) => {
+ return text ? +(Math.round(text + "e+2") + "e-2") + '%' : 0 + '%'
+ }
+ },
{
title: "Project Type",
dataIndex: "color_progress",