Commit 601b72ac authored by rifkaki's avatar rifkaki

Merge branch 'master' of http://103.44.149.204/d.arizona/tia-dev into rifka

parents 0d1f7686 db7865a6
...@@ -64,6 +64,7 @@ export default class OperatingIndicatorMR extends Component { ...@@ -64,6 +64,7 @@ export default class OperatingIndicatorMR extends Component {
emptyData: false, emptyData: false,
templateNull: true, templateNull: true,
judulColumn: null, judulColumn: null,
saveDraft: true,
get_for: 'view' get_for: 'view'
} }
this.fileHandler = this.fileHandler.bind(this); this.fileHandler = this.fileHandler.bind(this);
...@@ -185,13 +186,24 @@ export default class OperatingIndicatorMR extends Component { ...@@ -185,13 +186,24 @@ export default class OperatingIndicatorMR extends Component {
} }
// console.log(payload); // console.log(payload);
api.create().getHierarkiMontlyReportOI(payload).then(response => { api.create().getHierarkiMontlyReportOI(payload).then(response => {
// console.log(response); console.log(response);
let dataTable = [] let dataTable = []
let err = false
if (response.data) { if (response.data) {
let res = response.data.data let res = response.data.data
// console.log(res);
const handlePushChild = (item) => { const handlePushChild = (item) => {
let indexIDzz = dataTable.findIndex((val) => val[1] === item.id) let indexIDzz = dataTable.findIndex((val) => val[1] === item.id)
if (item.type_report_id === 3) {
if (item.monthly_report.mtd_vs_mb === "" && (Number(item.monthly_report.percent_act_vs_mb) < this.state.minValue || Number(item.monthly_report.percent_act_vs_mb) > this.state.maxValue)) {
err = true
}
if (item.monthly_report.mtd_vs_rb === "" && (Number(item.monthly_report.percent_act_vs_rb) < this.state.minValue || Number(item.monthly_report.percent_act_vs_rb) > this.state.maxValue)) {
console.log('msk 2');
err = true
}
}
if (indexIDzz === -1) { if (indexIDzz === -1) {
dataTable.push([ dataTable.push([
item.type_report_id, item.type_report_id,
...@@ -223,6 +235,16 @@ export default class OperatingIndicatorMR extends Component { ...@@ -223,6 +235,16 @@ export default class OperatingIndicatorMR extends Component {
} }
} }
res.map((item, index) => { res.map((item, index) => {
if (item.type_report_id === 3) {
if (item.monthly_report.mtd_vs_mb === "" && (Number(item.monthly_report.percent_act_vs_mb) < this.state.minValue || Number(item.monthly_report.percent_act_vs_mb) > this.state.maxValue)) {
err = true
}
if (item.monthly_report.mtd_vs_rb === "" && (Number(item.monthly_report.percent_act_vs_rb) < this.state.minValue || Number(item.monthly_report.percent_act_vs_rb) > this.state.maxValue)) {
console.log('msk 2');
err = true
}
}
dataTable.push([ dataTable.push([
item.type_report_id, item.type_report_id,
item.id, item.id,
...@@ -251,13 +273,16 @@ export default class OperatingIndicatorMR extends Component { ...@@ -251,13 +273,16 @@ export default class OperatingIndicatorMR extends Component {
} }
} }
}) })
this.setState({ dataTable, loading: false }, () => { if (err === true) {
this.setState({ bebas: true })
}
this.setState({ dataTable, loading: false, buttonError: true, saveDraft: true }, () => {
if (this.state.dataTable.length == 0) { if (this.state.dataTable.length == 0) {
this.setState({ emptyData: true }) this.setState({ emptyData: true })
} }
}) })
} }
// console.log(dataTable); console.log(dataTable);
}) })
} }
...@@ -460,6 +485,15 @@ export default class OperatingIndicatorMR extends Component { ...@@ -460,6 +485,15 @@ export default class OperatingIndicatorMR extends Component {
let data = [] let data = []
let err = false let err = false
this.state.dataTable.map((i, index) => { this.state.dataTable.map((i, index) => {
if (i[0] === 3) {
if (i[15] === "" && (Number(i[12]) < this.state.minValue || Number(i[12]) > this.state.maxValue)) {
console.log('msk 1');
err = true
} else if (i[16] === "" && (Number(i[14]) < this.state.minValue || Number(i[14]) > this.state.maxValue)) {
console.log('msk 2');
err = true
}
}
data.push({ data.push({
"item_report_id": i[1], "item_report_id": i[1],
"uom": i[6], "uom": i[6],
...@@ -475,16 +509,6 @@ export default class OperatingIndicatorMR extends Component { ...@@ -475,16 +509,6 @@ export default class OperatingIndicatorMR extends Component {
"mtd_vs_rb": i[16] "mtd_vs_rb": i[16]
}) })
}) })
// console.log(JSON.stringify(data));
data.map(i => {
if (i.mtd_vs_mb === "" && (Number(i.percent_act_vs_mb) < this.state.minValue || Number(i.percent_act_vs_mb) > this.state.maxValue)) {
console.log('msk 1');
err = true
} else if (i.mtd_vs_rb === "" && (Number(i.percent_act_vs_rb) < this.state.minValue || Number(i.percent_act_vs_rb) > this.state.maxValue)) {
console.log('msk 2');
err = true
}
})
// console.log(JSON.stringify(data)) // console.log(JSON.stringify(data))
let payload = { let payload = {
...@@ -1177,6 +1201,7 @@ export default class OperatingIndicatorMR extends Component { ...@@ -1177,6 +1201,7 @@ export default class OperatingIndicatorMR extends Component {
style={{ fontSize: 12, textAlign: 'right', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }} style={{ fontSize: 12, textAlign: 'right', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }}
type="text" type="text"
placeholder="" placeholder=""
suffix={'%'}
disabled={true} disabled={true}
value={Number(tableMeta.rowData[12]).toFixed(1)} value={Number(tableMeta.rowData[12]).toFixed(1)}
/> />
...@@ -1250,6 +1275,7 @@ export default class OperatingIndicatorMR extends Component { ...@@ -1250,6 +1275,7 @@ export default class OperatingIndicatorMR extends Component {
style={{ fontSize: 12, textAlign: 'right', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }} style={{ fontSize: 12, textAlign: 'right', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }}
type="text" type="text"
placeholder="" placeholder=""
suffix={'%'}
disabled={true} disabled={true}
value={Number(tableMeta.rowData[14]).toFixed(1)} value={Number(tableMeta.rowData[14]).toFixed(1)}
/> />
...@@ -1330,108 +1356,163 @@ export default class OperatingIndicatorMR extends Component { ...@@ -1330,108 +1356,163 @@ export default class OperatingIndicatorMR extends Component {
<div> <div>
<div className="grid grid-2x content-center"> <div className="grid grid-2x content-center">
<div className="col-1"> <div className="col-1">
<div style={{ textAlign: 'right', width: 90 }}> <div style={{ textAlign: 'left', width: 90 }}>
{tableMeta.rowData[0] === 4 || tableMeta.rowData[0] === 1 ? null : <div style={{ flex: 1 }}>
this.state.get_for == 'view' ? tableMeta.rowData[15] : {tableMeta.rowData[0] === 3 ?
<FormControlLabel this.state.get_for == 'view' ?
style={{ margin: 0 }} <Input
// value={value} disableUnderline={true}
control={ style={{ fontSize: 12, textAlign: 'left', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }}
tableMeta.rowData[15] === "" && (Number(tableMeta.rowData[12]) < this.state.minValue || Number(tableMeta.rowData[12]) > this.state.maxValue) ? type="text"
<LightTooltipError title={"MTD Explanation vs Prev Month is Reqiured"} arrow> placeholder=""
multiline={true}
disabled={true}
defaultValue={tableMeta.rowData[15]}
inputProps={{
style: {
color: Number(tableMeta.rowData[12]) < this.state.minValue || Number(tableMeta.rowData[12]) > this.state.maxValue ? "#5198ea" : '#5198ea',
textAlign: 'left'
}
}}
onBlur={(event) => {
handleText(event.target.value, tableMeta, 0)
}}
/>
:
<FormControlLabel
style={{ margin: 0 }}
// value={tableMeta.rowData[15]}
control={
tableMeta.rowData[15] === "" && (Number(tableMeta.rowData[12]) < this.state.minValue || Number(tableMeta.rowData[12]) > this.state.maxValue) ?
<LightTooltipError title={"MTD Explanation vs MB is Reqiured"} arrow>
<Input
disableUnderline={true}
style={{ color: "#5198ea", fontSize: 12, textAlign: 'left', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent', minHeight: 30 , padding: 0 }}
type="text"
placeholder=""
multiline={true}
disabled={this.props.isApprover? true : (this.state.get_for == 'view'? true : false)}
// value={tableMeta.rowData[15]}
defaultValue={tableMeta.rowData[15]}
inputProps={{
style: {
color: "#5198ea",
textAlign: 'left',
backgroundColor: '#ffac99',
minHeight: 30,
padding: 0
}
}}
onBlur={(event) => {
handleText(event.target.value, tableMeta, 0)
}}
/>
</LightTooltipError>
:
<Input <Input
disableUnderline={true} disableUnderline={true}
style={{ fontSize: 12, textAlign: 'right', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }} style={{ fontSize: 12, textAlign: 'left', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }}
type="text" type="text"
placeholder="" placeholder=""
// disabled={false} multiline={true}
disabled={this.state.get_for == 'view'} disabled={this.props.isApprover? true : (this.state.get_for == 'view'? true : false)}
defaultValue={tableMeta.rowData[15]} defaultValue={tableMeta.rowData[15]}
inputProps={{ inputProps={{
style: { style: {
color: this.state.get_for == 'view'? "black" : "#5198ea", color: Number(tableMeta.rowData[12]) < this.state.minValue || Number(tableMeta.rowData[12]) > this.state.maxValue ? "#5198ea" : '#5198ea',
textAlign: 'right', textAlign: 'left'
backgroundColor: '#ffac99'
} }
}} }}
onBlur={(event) => { onBlur={(event) => {
handleText(event.target.value, tableMeta, 0) handleText(event.target.value, tableMeta, 0)
}} }}
/> />
</LightTooltipError> }
: />
<Input :
disableUnderline={true} null
style={{ fontSize: 12, textAlign: 'right', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }} }
type="text" </div>
placeholder=""
disabled={this.state.get_for == 'view'}
defaultValue={tableMeta.rowData[15]}
inputProps={{
style: {
color: Number(tableMeta.rowData[12]) < this.state.minValue || Number(tableMeta.rowData[12]) > this.state.maxValue ? "#5198ea" : '#5198ea',
textAlign: 'right'
}
}}
onBlur={(event) => {
handleText(event.target.value, tableMeta, 0)
}}
/>
}
/>
}
</div> </div>
</div> </div>
<div className="col-2"> <div className="col-2">
<div style={{ textAlign: 'right', width: 90 }}> <div style={{ textAlign: 'left', width: 90 }}>
{tableMeta.rowData[0] === 4 || tableMeta.rowData[0] === 1 ? null : <div style={{ flex: 1 }}>
this.state.get_for == 'view' ? tableMeta.rowData[16] : {tableMeta.rowData[0] === 3 ?
<FormControlLabel this.state.get_for == 'view' ?
style={{ margin: 0 }} <Input
// value={value} disableUnderline={true}
control={ style={{ fontSize: 12, textAlign: 'left', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }}
tableMeta.rowData[16] === "" && (Number(tableMeta.rowData[14]) < this.state.minValue || Number(tableMeta.rowData[14]) > this.state.maxValue) ? type="text"
<LightTooltipError title={"MTD Explanation vs Prev Month is Reqiured"} arrow> placeholder=""
multiline={true}
disabled={true}
defaultValue={tableMeta.rowData[16]}
inputProps={{
style: {
color: Number(tableMeta.rowData[14]) < this.state.minValue || Number(tableMeta.rowData[14]) > this.state.maxValue ? "#5198ea" : '#5198ea',
textAlign: 'left'
}
}}
onBlur={(event) => {
handleText(event.target.value, tableMeta, 0)
}}
/>
:
<FormControlLabel
style={{ margin: 0 }}
// value={tableMeta.rowData[16]}
control={
tableMeta.rowData[16] === "" && (Number(tableMeta.rowData[14]) < this.state.minValue || Number(tableMeta.rowData[14]) > this.state.maxValue) ?
<LightTooltipError title={"MTD Explanation vs RB is Reqiured"} arrow>
<Input
disableUnderline={true}
style={{ color: "#5198ea", fontSize: 12, textAlign: 'left', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent', minHeight: 30 , padding: 0 }}
type="text"
placeholder=""
multiline={true}
disabled={this.props.isApprover? true : (this.state.get_for == 'view'? true : false)}
// value={tableMeta.rowData[16]}
defaultValue={tableMeta.rowData[16]}
inputProps={{
style: {
color: "#5198ea",
textAlign: 'left',
backgroundColor: '#ffac99',
minHeight: 30,
padding: 0
}
}}
onBlur={(event) => {
handleText(event.target.value, tableMeta, 0)
}}
/>
</LightTooltipError>
:
<Input <Input
disableUnderline={true} disableUnderline={true}
style={{ fontSize: 12, textAlign: 'right', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }} style={{ fontSize: 12, textAlign: 'left', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }}
type="text" type="text"
placeholder="" placeholder=""
disabled={this.state.get_for == 'view'} multiline={true}
disabled={this.props.isApprover? true : (this.state.get_for == 'view'? true : false)}
defaultValue={tableMeta.rowData[16]} defaultValue={tableMeta.rowData[16]}
inputProps={{ inputProps={{
style: { style: {
color: this.state.get_for == 'view'? "black" : "#5198ea", color: Number(tableMeta.rowData[14]) < this.state.minValue || Number(tableMeta.rowData[14]) > this.state.maxValue ? "#5198ea" : '#5198ea',
textAlign: 'right', textAlign: 'left'
backgroundColor: '#ffac99'
} }
}} }}
onBlur={(event) => { onBlur={(event) => {
handleText(event.target.value, tableMeta, 1) handleText(event.target.value, tableMeta, 0)
}} }}
/> />
</LightTooltipError> }
: />
<Input :
disableUnderline={true} null
style={{ fontSize: 12, textAlign: 'right', borderColor: 'transparent', margin: 0, width: 96, backgroundColor: 'transparent' }} }
type="text" </div>
placeholder=""
defaultValue={tableMeta.rowData[16]}
disabled={this.state.get_for == 'view'}
inputProps={{
style: {
color: Number(tableMeta.rowData[14]) < this.state.minValue || Number(tableMeta.rowData[14]) > this.state.maxValue ? "#5198ea" : '#5198ea',
textAlign: 'right'
}
}}
onBlur={(event) => {
handleText(event.target.value, tableMeta, 1)
}}
/>
}
/>
}
</div> </div>
</div> </div>
</div> </div>
...@@ -1599,7 +1680,7 @@ export default class OperatingIndicatorMR extends Component { ...@@ -1599,7 +1680,7 @@ export default class OperatingIndicatorMR extends Component {
this.setState({ loading: true, editable: false }, () => { this.setState({ loading: true, editable: false }, () => {
setTimeout(() => { setTimeout(() => {
this.handleValidate() this.handleValidate()
this.setState({ loading: false, buttonError: false }) // this.setState({ loading: false, buttonError: false })
}, 100); }, 100);
}) })
} }
...@@ -1621,7 +1702,7 @@ export default class OperatingIndicatorMR extends Component { ...@@ -1621,7 +1702,7 @@ export default class OperatingIndicatorMR extends Component {
marginRight: 20 marginRight: 20
}} }}
onClick={() => onClick={() =>
this.state.editable === true ? this.state.saveDraft === true ?
this.setState({ alert: true, messageAlert: 'Data Incomplete !', tipeAlert: 'error' }) this.setState({ alert: true, messageAlert: 'Data Incomplete !', tipeAlert: 'error' })
: :
this.setState({ loading: true }, () => { this.setState({ loading: true }, () => {
...@@ -1631,13 +1712,7 @@ export default class OperatingIndicatorMR extends Component { ...@@ -1631,13 +1712,7 @@ export default class OperatingIndicatorMR extends Component {
})} })}
> >
<div style={{ backgroundColor: '#354960', width: 105, height: 25, borderRadius: 3, justifyContent: 'center', display: 'flex', alignItems: 'center' }}> <div style={{ backgroundColor: '#354960', width: 105, height: 25, borderRadius: 3, justifyContent: 'center', display: 'flex', alignItems: 'center' }}>
{this.state.editable === true? <Typography style={{ fontSize: '11px', color: '#fff', textAlign: 'center' }}>Save as Draft</Typography>
<LightTooltip title={"Data Incomplete"} arrow>
<Typography style={{ fontSize: '11px', color: '#fff', textAlign: 'center' }}>Save as Draft</Typography>
</LightTooltip>
:
<Typography style={{ fontSize: '11px', color: '#fff', textAlign: 'center' }}>Save as Draft</Typography>
}
</div> </div>
</button>} </button>}
{this.state.get_for == 'edit' && <button {this.state.get_for == 'edit' && <button
...@@ -1661,13 +1736,7 @@ export default class OperatingIndicatorMR extends Component { ...@@ -1661,13 +1736,7 @@ export default class OperatingIndicatorMR extends Component {
}} }}
> >
<div style={{ backgroundColor: '#354960', width: 105, height: 25, borderRadius: 3, justifyContent: 'center', display: 'flex', alignItems: 'center' }}> <div style={{ backgroundColor: '#354960', width: 105, height: 25, borderRadius: 3, justifyContent: 'center', display: 'flex', alignItems: 'center' }}>
{this.state.editable === true ? <Typography style={{ fontSize: '11px', color: '#fff', textAlign: 'center' }}>Save & Complete</Typography>
<LightTooltip title={"Data Incomplete"} arrow>
<Typography style={{ fontSize: '11px', color: '#fff', textAlign: 'center' }}>Save & Complete</Typography>
</LightTooltip>
:
<Typography style={{ fontSize: '11px', color: '#fff', textAlign: 'center' }}>Save & Complete</Typography>
}
</div> </div>
</button>} </button>}
</div>} </div>}
...@@ -1737,7 +1806,8 @@ export default class OperatingIndicatorMR extends Component { ...@@ -1737,7 +1806,8 @@ export default class OperatingIndicatorMR extends Component {
onClick={() => onClick={() =>
this.setState({ loading: true, editable: false }, () => { this.setState({ loading: true, editable: false }, () => {
setTimeout(() => { setTimeout(() => {
this.setState({ loading: false, buttonError: false }) this.handleValidate()
// this.setState({ loading: false, buttonError: false })
}, 100); }, 100);
}) })
} }
......
...@@ -111,6 +111,7 @@ export default class OperatingIndicator extends Component { ...@@ -111,6 +111,7 @@ export default class OperatingIndicator extends Component {
"periode": this.state.periode.periode, "periode": this.state.periode.periode,
"report_type": "operating indicator", "report_type": "operating indicator",
} }
console.log(payload);
api.create().getAllOperatingInd(payload).then(response => { api.create().getAllOperatingInd(payload).then(response => {
console.log(response); console.log(response);
if (response.data) { if (response.data) {
...@@ -312,6 +313,18 @@ export default class OperatingIndicator extends Component { ...@@ -312,6 +313,18 @@ export default class OperatingIndicator extends Component {
}) })
} else if (String(item[1]).toLocaleLowerCase().includes("monthly report")) { } else if (String(item[1]).toLocaleLowerCase().includes("monthly report")) {
console.log(item); console.log(item);
let month = String(item[1]).toLocaleLowerCase().includes('jan') ? 1 :
String(item[1]).toLocaleLowerCase().includes('feb') ? 2 :
String(item[1]).toLocaleLowerCase().includes('mar') ? 3 :
String(item[1]).toLocaleLowerCase().includes('apr') ? 4 :
String(item[1]).toLocaleLowerCase().includes('may') ? 5 :
String(item[1]).toLocaleLowerCase().includes('jun') ? 6 :
String(item[1]).toLocaleLowerCase().includes('jul') ? 7 :
String(item[1]).toLocaleLowerCase().includes('aug') ? 8 :
String(item[1]).toLocaleLowerCase().includes('sep') ? 9 :
String(item[1]).toLocaleLowerCase().includes('oct') ? 10 :
String(item[1]).toLocaleLowerCase().includes('nov') ? 11 :
String(item[1]).toLocaleLowerCase().includes('dec') ? 12 : null
this.setState({ this.setState({
statusDetail: String(item[2]).toLocaleLowerCase(), statusDetail: String(item[2]).toLocaleLowerCase(),
dataDetail: { ...this.state.dataReport[index], periode: this.state.periode.periode, operatingIndID: this.state.operatingIndID, company: this.state.company }, dataDetail: { ...this.state.dataReport[index], periode: this.state.periode.periode, operatingIndID: this.state.operatingIndID, company: this.state.company },
...@@ -319,7 +332,7 @@ export default class OperatingIndicator extends Component { ...@@ -319,7 +332,7 @@ export default class OperatingIndicator extends Component {
visibleDetailOpt: false, visibleDetailOpt: false,
visibleDetailMonthly: true, visibleDetailMonthly: true,
visibleDetailRolling: false, visibleDetailRolling: false,
months: id === 22 ? 1 : 23 ? 2 : 24 ? 3 : 25 ? 4 : 27 ? 5 : 28 ? 6 : 29 ? 7 : 31 ? 8 : 32 ? 9 : 33 ? 10 : 35 ? 11 : 36 ? 12 : 0 months: month
}) })
......
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