// material-ui
import {
Button,
CardContent,
Grid, TextField,
Autocomplete,
Typography
} from '@mui/material';
import MainCard from "components/MainCard";
import { useForm } from "react-hook-form";
import * as React from "react";
import * as ComboData from "utils/ComboData";
import * as DateUtils from "utils/DateUtils";
import * as FormatUtils from "utils/FormatUtils";
import { FormattedMessage, useIntl } from "react-intl";
import { PNSPS_BUTTON_THEME } from "../../../themes/buttonConst";
import { ThemeProvider } from "@emotion/react";
import { makeStyles } from '@mui/styles';
// ==============================|| DASHBOARD - DEFAULT ||============================== //
const useStyles = makeStyles(() => ({
root: {
position: "relative"
},
display: {
position: "absolute",
top: 2,
left: 12,
bottom: 2,
background: "white",
pointerEvents: "none",
right: 50,
display: "flex",
alignItems: "center"
},
}));
const SearchDemandNoteForm = ({ applySearch, searchCriteria, issueComboData
}) => {
const intl = useIntl();
const { locale } = intl;
const [type, setType] = React.useState([]);
const [issueSelected, setIssueSelected] = React.useState({ key: 0, i18nLabel: 'all', labelCht: '全部', label: 'All', type: 'all' });
const [issueCombo, setIssueCombo] = React.useState([]);
const [selectedStatus, setSelectedStatus] = React.useState(ComboData.denmandNoteStatus_Public[0]);
const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom);
const [maxDate, setMaxDate] = React.useState(searchCriteria.dateTo);
const [fromDateValue, setFromDateValue] = React.useState("dd / mm / yyyy");
const [toDateValue, setToDateValue] = React.useState("dd / mm / yyyy");
React.useEffect(() => {
setFromDateValue(minDate);
}, [minDate]);
React.useEffect(() => {
setToDateValue(maxDate);
}, [maxDate]);
function FormDateInputComponent({ inputRef, ...props }) {
const classes = useStyles();
return (
<>
{DateUtils.dateStr(fromDateValue) == "Invalid Date" ?
fromDateValue
:
DateUtils.dateStr(fromDateValue)}
>
);
}
function ToDateInputComponent({ inputRef, ...props }) {
const classes = useStyles();
return (
<>
{DateUtils.dateStr(toDateValue) == "Invalid Date" ?
toDateValue
:
DateUtils.dateStr(toDateValue)}
>
);
}
const { reset, register, handleSubmit } = useForm()
const onSubmit = (data) => {
let typeArray = [];
let sentDateFrom = "";
let sentDateTo = "";
for (let i = 0; i < type.length; i++) {
typeArray.push(type[i].label);
}
if (fromDateValue != "dd / mm / yyyy" && toDateValue != "dd / mm / yyyy") {
sentDateFrom = DateUtils.dateValue(fromDateValue)
sentDateTo = DateUtils.dateValue(toDateValue)
}
const temp = {
appNo: data.appNo,
issueId: issueSelected?.id,
dnNo: data.dnNo,
sentDateFrom: sentDateFrom,
sentDateTo: sentDateTo,
status: (selectedStatus?.type && selectedStatus?.type != 'all') ? selectedStatus?.type : "",
};
// console.log(temp)
applySearch(temp);
};
React.useEffect(() => {
if (issueComboData && issueComboData.length > 0) {
setIssueCombo(issueComboData);
}
}, [issueComboData]);
function resetForm() {
setType([]);
// setStatus({ key: 0, label: 'All', type: 'all' });
// setOrgSelected({});
setMinDate(DateUtils.dateValue(new Date().setDate(new Date().getDate()-14)))
setMaxDate(DateUtils.dateValue(new Date()))
setIssueSelected({});
reset();
}
function getIssueLabel(data) {
let issueYear = data.issueYear
let volume = data.volume;
let issueNo = data.issueNo;
let issueDate = data.issueDate;
if (locale === 'zh-HK') {
return issueYear
+ " 第" + volume + "卷,"
+ " 第" + issueNo + "期,"
+ " " + DateUtils.dateFormat(issueDate, "YYYY年MM月DD日")
+ " (" + DateUtils.getWeekdayStr_ZH(issueDate) + ")";
} else if (locale === 'zh-CN') {
return issueYear
+ " 第" + volume + "卷,"
+ " 第" + issueNo + "期,"
+ " " + DateUtils.dateFormat(issueDate, "YYYY年MM月DD日")
+ " (" + DateUtils.getWeekdayStr_CN(issueDate) + ")";
}
return issueYear
+ " Vol. " + FormatUtils.zeroPad(volume, 3)
+ ", No. " + FormatUtils.zeroPad(issueNo, 2)
+ ", " + DateUtils.dateFormat(issueDate, "D MMM YYYY (ddd)");
}
return (
);
};
export default SearchDemandNoteForm;