Files
rekam_medis/components/dokter/selectedObat.js
2022-05-04 00:44:09 +08:00

127 lines
3.1 KiB
JavaScript

import {forwardRef} from 'react'
import { Divider } from "@mui/material"
import TextField from '@mui/material/TextField';
import Box from '@mui/material/Box';
// this is for number format
import NumberFormat from 'react-number-format';
const NumberFormatCustom = forwardRef(function NumberFormatCustom(props, ref) {
const { onChange, ...other } = props;
return (
<NumberFormat
{...other}
getInputRef={ref}
onValueChange={(values) => {
onChange({
target: {
name: props.name,
value: values.value,
},
});
}}
// thousandSeparator
isNumericString
// prefix="08"
/>
);
});
function RekamMedisSelectedObat(props) {
const url = process.env.HTTP_URL + "/api/dokter";
async function cek_obat(jumlah ,id){
try{
let urlnya= url + "/cek_obat?id="+id;
const response = await fetch(urlnya, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'allow-cors-origin': '*',
'crossDomain': true,
'Authorization': 'Basic ' + btoa(`${process.env.ADMIN_AUTH}:${process.env.ADMIN_PASSWORD}`)
},
})
const data = await response.json();
let jumlahnya = data.data.jumlah;
let hitung = jumlahnya - jumlah;
if(response.status == 200){
if(hitung >= 0){
return true;
}else{
props.errornya("Jumlah Obat Tidak Mencukupi");
return false;
}
}else{
return false;
}
}catch(error){
console.log(error);
return false;
}
}
if (props.obat.length == 0) {
return (
<div>
<Divider />
<div style={{ marginTop: 20 }}>
<p>Tidak ada obat yang dipilih</p>
</div>
</div>
)
} else {
let data = []
for (let i = 0; i < props.obat.length; i++) {
// push to data id = props.obat[i].split('-')[0] and jumlah = null
data.push({
id: props.obat[i].split('-')[0],
jumlah: null
})
}
let divider =<Divider key="hehe" />
let box = <Box sx={{ padding: "10px" }} key="haha"></Box>
let component = []
component.push(divider)
component.push(box)
for (let i = 0; i < props.obat.length; i++) {
component.push(
<div key={i}>
<TextField
id={props.obat[i].id_obat + "TextField"}
label={"Jumlah " + props.obat[i].split("-")[1]}
placeholder={"Masukkan Jumlah " + props.obat[i].split("-")[1]}
sx={{ width: "90%", boxShadow: 10 }}
onChange={(e) => {
data[i].jumlah = e.target.value
cek_obat(e.target.value, props.obat[i].split("-")[0])
props.datanya(data)
}}
InputProps={{
inputComponent: NumberFormatCustom,
inputProps: {
maxLength: 3,
minLength: 1,
}
}}
/>
<Box sx={{ padding: "10px" }}></Box>
</div>
)
}
return (
<>
{component}
</>
)
}
}
export default RekamMedisSelectedObat