import { WarningFilled } from "@ant-design/icons"; import { useApolloClient } from "@apollo/client"; import { Button, Form, Input, InputNumber, Space } from "antd"; import { PageHeader } from "@ant-design/pro-layout"; import dayjs from "../../utils/day"; import React from "react"; import { useTranslation } from "react-i18next"; import { CHECK_CC_FLEET_NUMBER } from "../../graphql/courtesy-car.queries"; import { DateFormatter } from "../../utils/DateFormatter"; import CourtesyCarFuelSlider from "../courtesy-car-fuel-select/courtesy-car-fuel-select.component"; import CourtesyCarReadiness from "../courtesy-car-readiness-select/courtesy-car-readiness-select.component"; import CourtesyCarStatus from "../courtesy-car-status-select/courtesy-car-status-select.component"; import FormFieldsChanged from "../form-fields-changed-alert/form-fields-changed-alert.component"; import CurrencyInput from "../form-items-formatted/currency-form-item.component"; import LayoutFormRow from "../layout-form-row/layout-form-row.component"; import DateTimePicker from "../form-date-time-picker/form-date-time-picker.component.jsx"; export default function CourtesyCarCreateFormComponent({ form, saveLoading, newCC }) { const { t } = useTranslation(); const client = useApolloClient(); return (
form.submit()}> {t("general.actions.save")} } /> {newCC ? null : } ({ async validator(rule, value) { if (value) { const response = await client.query({ query: CHECK_CC_FLEET_NUMBER, variables: { name: value } }); if (response.data.courtesycars_aggregate.aggregate.count === 0) { return Promise.resolve(); } else if ( response.data.courtesycars_aggregate.nodes.length === 1 && response.data.courtesycars_aggregate.nodes[0].id === form.getFieldValue("id") ) { return Promise.resolve(); } return Promise.reject(t("courtesycars.labels.uniquefleet")); } else { return Promise.resolve(); } } }) ]} >
p.mileage !== c.mileage || p.nextservicekm !== c.nextservicekm}> {() => { const nextservicekm = form.getFieldValue("nextservicekm"); const mileageOver = nextservicekm ? nextservicekm <= form.getFieldValue("mileage") : false; if (mileageOver) return ( {t("contracts.labels.cardueforservice")} {`${nextservicekm} km`} ); return <>; }}
p.nextservicedate !== c.nextservicedate}> {() => { const nextservicedate = form.getFieldValue("nextservicedate"); const dueForService = nextservicedate && dayjs(nextservicedate).endOf("day").isSameOrBefore(dayjs()); if (dueForService) return ( {t("contracts.labels.cardueforservice")} {nextservicedate} ); return <>; }}
p.registrationexpires !== c.registrationexpires}> {() => { const expires = form.getFieldValue("registrationexpires"); const dateover = expires && dayjs(expires).endOf("day").isBefore(dayjs()); if (dateover) return ( {t("contracts.labels.dateinpast")} ); return <>; }}
p.insuranceexpires !== c.insuranceexpires}> {() => { const expires = form.getFieldValue("insuranceexpires"); const dateover = expires && dayjs(expires).endOf("day").isBefore(dayjs()); if (dateover) return ( {t("contracts.labels.dateinpast")} ); return <>; }}
); }