import { WarningFilled } from "@ant-design/icons"; import { useApolloClient } from "@apollo/client"; import { Button, Form, Input, InputNumber, PageHeader, Space } from "antd"; import moment from "moment"; 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 FormDatePicker from "../form-date-picker/form-date-picker.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"; 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 && moment(nextservicedate).endOf("day").isSameOrBefore(moment()); if (dueForService) return ( {t("contracts.labels.cardueforservice")} {nextservicedate} ); return <>; }}
p.registrationexpires !== c.registrationexpires } > {() => { const expires = form.getFieldValue("registrationexpires"); const dateover = expires && moment(expires).endOf("day").isBefore(moment()); if (dateover) return ( {t("contracts.labels.dateinpast")} ); return <>; }}
p.insuranceexpires !== c.insuranceexpires} > {() => { const expires = form.getFieldValue("insuranceexpires"); const dateover = expires && moment(expires).endOf("day").isBefore(moment()); if (dateover) return ( {t("contracts.labels.dateinpast")} ); return <>; }}
); }