Browse Source

feat(project): add new field income yearly and value contract

pull/1/head
farhantock 4 months ago
parent
commit
978d8af20b
  1. 69
      src/views/SimproV2/CreatedProyek/DialogFormProyek.js
  2. 44
      src/views/SimproV2/CreatedProyek/index.js

69
src/views/SimproV2/CreatedProyek/DialogFormProyek.js

@ -6,7 +6,7 @@ import axios from "../../../const/interceptorApi";
import moment from "moment";
import { CKEditor } from '@ckeditor/ckeditor5-react';
import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
import {NotificationManager} from "react-notifications";
import { NotificationManager } from "react-notifications";
import "antd/dist/antd.css";
import { formatNumber } from "../../../const/CustomFunc";
import {
@ -50,6 +50,8 @@ const DialogFormProyek = ({
const [late, setLateConsequence] = useState("");
const [assumtion, setAssumtion] = useState("");
const [biaya, setBiaya] = useState("");
const [valueProyek, setValueProyek] = useState("");
const [incomeYearly, setIncomeYearly] = useState("");
const [typeProject, setTypeproject] = useState(null);
const [phaseProject, setPhaseProject] = useState(null);
const [divisiProject, setDivisiProject] = useState(null);
@ -67,10 +69,9 @@ const DialogFormProyek = ({
const [scompany_id, setCompanyId] = useState(null);
const [step, setStep] = useState(1);
const [currencyList, setCurrencyList] = useState(null);
const [currency, setCurrency] = useState(""); // merge of code | symbol | name
const [currencyCode, setCurrencyCode] = useState("");
const [currencySymbol, setCurrencySymbol] = useState("IDR|Rp|Indonesian rupiah");
const [currencyName, setCurrencyName] = useState("");
const [currencyCode, setCurrencyCode] = useState("IDR");
const [currencySymbol, setCurrencySymbol] = useState("Rp");
const [currencyName, setCurrencyName] = useState("Indonesian rupiah");
const [objectives, setObjectives] = useState("");
const [projectIsConsideredSuccessful, setProjectIsConsideredSuccessful] = useState("");
const [participants, setParticipants] = useState([]);
@ -104,6 +105,8 @@ const DialogFormProyek = ({
setLateConsequence(val.late_consequence ? val.late_consequence : "");
setAssumtion(val.assumtion ? val.assumtion : "");
setBiaya(val.rencana_biaya ? formatNumber(val.rencana_biaya) : "");
setValueProyek(val.value_proyek ? formatNumber(val.value_proyek) : "");
setIncomeYearly(val.income_year ? formatNumber(val.income_year) : "");
setTypeproject(val.type_proyek_id);
setPhaseProject(val.phase_id);
setDivisiProject(val.divisi_id);
@ -208,10 +211,9 @@ const DialogFormProyek = ({
setProjectStructureOrg(null);
setCompany("");
setCompanyId(null)
setCurrency("");
setCurrencyCode("");
setCurrencySymbol("IDR|Rp|Indonesian rupiah");
setCurrencyName("");
setCurrencyCode("IDR");
setCurrencySymbol("Rp");
setCurrencyName("Indonesian rupiah");
setObjectives("");
setImage("");
setProjectIsConsideredSuccessful("");
@ -278,7 +280,9 @@ const DialogFormProyek = ({
currency_symbol: currencySymbol,
currency_code: currencyCode,
currency_name: currencyName,
company_id: role_name !== "Super Admin" ? parseInt(company_id) : parseInt(scompany_id)
company_id: role_name !== "Super Admin" ? parseInt(company_id) : parseInt(scompany_id),
value_proyek: valueProyek,
income_year: incomeYearly
};
data.projectCharter = { checklist, issue, potentialRisks, participants, milestones, approval };
data.imageStructureOrg = organization ? organization : null;
@ -309,7 +313,9 @@ const DialogFormProyek = ({
currency_symbol: currencySymbol,
currency_code: currencyCode,
currency_name: currencyName,
company_id: role_name !== "Super Admin" ? parseInt(company_id) : parseInt(scompany_id)
company_id: role_name !== "Super Admin" ? parseInt(company_id) : parseInt(scompany_id),
value_proyek: valueProyek,
income_year: incomeYearly
};
data.projectCharter = { checklist, issue, potentialRisks, participants, milestones, approval };
data.imageStructureOrg = organization ? organization : null;
@ -381,6 +387,8 @@ const DialogFormProyek = ({
setCurrencyName(curr[2]);
};
console.log(currencyCode, currencySymbol, currencyName);
const handleDatePickerStart = (date, dateString) => {
setStartDate(date);
};
@ -806,7 +814,7 @@ const DialogFormProyek = ({
<Col md={6}>
<FormGroup>
<Label className="capitalize" style={{ fontWeight: "bold" }}>
Budget<span style={{ color: "red" }}>*</span>
Nilai Kontrak<span style={{ color: "red" }}>*</span>
</Label>
<Row>
<Col md={4}>
@ -824,13 +832,40 @@ const DialogFormProyek = ({
<Col md={8}>
<Input
type="text"
value={biaya}
onChange={(e) => setBiaya(formatNumber(e.target.value))}
value={valueProyek}
onChange={(e) => setValueProyek(formatNumber(e.target.value))}
/>
</Col>
</Row>
</FormGroup>
</Col>
<Col md={6}>
<FormGroup>
<Label className="capitalize" style={{ fontWeight: "bold" }}>
Target Pendapatan/Tahun<span style={{ color: "red" }}>*</span>
</Label>
<Input
type="text"
value={incomeYearly}
onChange={(e) => setIncomeYearly(formatNumber(e.target.value))}
/>
</FormGroup>
</Col>
<Col md={6}>
<FormGroup>
<Label className="capitalize" style={{ fontWeight: "bold" }}>
Anggaran Biaya<span style={{ color: "red" }}>*</span>
</Label>
<Input
type="text"
value={biaya}
onChange={(e) => setBiaya(formatNumber(e.target.value))}
/>
</FormGroup>
</Col>
<Col md={6}>
<FormGroup>
<Label className="capitalize" style={{ fontWeight: "bold" }}>Work Area</Label>
@ -844,7 +879,7 @@ const DialogFormProyek = ({
<Col md={6}>
<FormGroup>
<Label className="capitalize" style={{ fontWeight: "bold" }}>
Handled By Division<span style={{ color: "red" }}>*</span>
Handled By MP<span style={{ color: "red" }}>*</span>
</Label>
<Select
showSearch
@ -1241,7 +1276,7 @@ const DialogFormProyek = ({
</Row>
);
});
} else if (checklist.length < 1) {
} else if (checklist?.length == 0) {
return (
<div
style={{
@ -1546,7 +1581,7 @@ const DialogFormProyek = ({
return (
<>
<Modal size="lg" isOpen={openDialog} toggle={toggleDialog}>
<Modal scrollable={true} size="lg" isOpen={openDialog} toggle={toggleDialog}>
<ModalHeader className="capitalize" toggle={closeDialog}>
{step === 1
? idTask

44
src/views/SimproV2/CreatedProyek/index.js

@ -91,7 +91,7 @@ const url = "";
const format = "DD-MM-YYYY";
const CreatedProyek = ({ params, ...props }) => {
let role_id = 0, user_id = 0, isLogin = false, token = '', company_id = 0, all_project = null, role_name = '', hierarchy = [], user_name = '', configApp={};
let role_id = 0, user_id = 0, isLogin = false, token = '', company_id = 0, all_project = null, role_name = '', hierarchy = [], user_name = '', configApp = {};
if (props && props.role_id && props.user_id) {
role_id = props.role_id;
user_id = props.user_id;
@ -208,10 +208,10 @@ const CreatedProyek = ({ params, ...props }) => {
}, [openDialogProyek]);
useEffect(() => {
if(role_name === 'Super Admin') {
if (role_name === 'Super Admin') {
getDataProyekCompany();
}
},[])
}, [])
useEffect(() => {
if (parseInt(role_id) === 44) {
@ -245,7 +245,7 @@ const CreatedProyek = ({ params, ...props }) => {
"joins": [],
"orders": { "columns": ["id"], "ascending": false }
}
if(role_name !== 'Super Admin') {
if (role_name !== 'Super Admin') {
payload.columns.push(
{ "name": "company_id", "logic_operator": "=", "value": company_id, "operator": "AND" }
)
@ -266,7 +266,7 @@ const CreatedProyek = ({ params, ...props }) => {
"joins": [],
"orders": { "columns": ["id"], "ascending": false }
}
if(role_name !== 'Super Admin') {
if (role_name !== 'Super Admin') {
payload.columns.push(
{ "name": "company_id", "logic_operator": "=", "value": company_id, "operator": "AND" }
)
@ -287,7 +287,7 @@ const CreatedProyek = ({ params, ...props }) => {
"joins": [],
"orders": { "columns": ["id"], "ascending": false }
}
if(role_name !== 'Super Admin') {
if (role_name !== 'Super Admin') {
payload.columns.push(
{ "name": "company_id", "logic_operator": "=", "value": company_id, "operator": "AND" }
)
@ -310,7 +310,7 @@ const CreatedProyek = ({ params, ...props }) => {
"joins": [],
"orders": { "columns": ["id"], "ascending": false }
}
if(role_name !== 'Super Admin') {
if (role_name !== 'Super Admin') {
payload.columns.push(
{ "name": "company_id", "logic_operator": "=", "value": company_id, "operator": "AND" }
)
@ -414,9 +414,10 @@ const CreatedProyek = ({ params, ...props }) => {
"currency_symbol",
"mulai_proyek",
"akhir_proyek",
"value_proyek",
"income_year",
"company_id",
"deleted_at",
"value_proyek",
"deleted_by_id"
],
joins: [
@ -1489,7 +1490,7 @@ const CreatedProyek = ({ params, ...props }) => {
const handleExportPdf = async () => {
const doc = new jsPDF();
let headers = [
[role_name === 'Super Admin' ? "Company" : null, "Project Name", "Budget", "Project Type", "PM", "Time Project"],
[role_name === 'Super Admin' ? "Company" : null, "Project Name", "Nilai Kontrak", "Pendapatan Pertahun", "Anggaran Biaya", "Project Type", "PM", "Time Project"],
];
const payload = {
@ -1621,7 +1622,7 @@ const CreatedProyek = ({ params, ...props }) => {
<span className="menu-icon">
<i className="fa fa-eye"></i>
</span>
<span className="menu-text">Project Charter</span>
<span className="menu-text">Indentitas Proyek</span>
</div>
<div className="menu-list" onClick={() => handleOpenDokumen(text)}>
<span className="menu-icon">
@ -1697,7 +1698,7 @@ const CreatedProyek = ({ params, ...props }) => {
<>
{dataVersionGantt.slice(0, 8).map((res) => (
<Link to={{
pathname : `/projects/${res.id}/${text.id}/gantt`,
pathname: `/projects/${res.id}/${text.id}/gantt`,
state: {
isLogin,
token,
@ -1762,6 +1763,7 @@ const CreatedProyek = ({ params, ...props }) => {
title: "Action",
dataIndex: "",
key: "x",
width: 70,
render: (text, record) =>
parseInt(role_id) == 44 ? (
<>
@ -1831,13 +1833,25 @@ const CreatedProyek = ({ params, ...props }) => {
<span>{record.join_third_company_name}</span>
)
}] : []),
{ title: "Project Name", dataIndex: "nama", key: "nama" },
{ title: "Project Name", dataIndex: "nama", key: "nama", width: 200 },
{
title: "Nilai Kontrak",
dataIndex: "value_proyek",
title: "Pendapatan Pertahun", dataIndex: "income_year",
key: "income_year",
render: (text, record) => {
const incomeYear = text ?? '-';
return record.currency_symbol
? `${record.currency_symbol} ${formatThousand(incomeYear)}`
: `${formatThousand(incomeYear)}`;
},
},
{
title: "Nilai Kontrak", dataIndex: "value_proyek",
key: "value_proyek",
render: (text, record) => {
return "Rp " + (record.value_proyek == null ? 0 : record.value_proyek);
const valueProyek = text ?? '-';
return record.currency_symbol
? `${record.currency_symbol} ${formatThousand(valueProyek)}`
: `${formatThousand(valueProyek)}`;
},
},
{

Loading…
Cancel
Save