import { DeleteFilled } from "@ant-design/icons";
import { useSplitTreatments } from "@splitsoftware/splitio-react";
import { Button, DatePicker, Form, Input, InputNumber, Radio, Select, Space, Switch } from "antd";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";
import DatePickerRanges from "../../utils/DatePickerRanges";
import InstanceRenderManager from "../../utils/instanceRenderMgr";
import FeatureWrapper, { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component";
import CurrencyInput from "../form-items-formatted/currency-form-item.component";
import FormItemEmail from "../form-items-formatted/email-form-item.component";
import PhoneFormItem, { PhoneItemFormatterValidation } from "../form-items-formatted/phone-form-item.component";
import FormListMoveArrows from "../form-list-move-arrows/form-list-move-arrows.component";
import LayoutFormRow from "../layout-form-row/layout-form-row.component";
const timeZonesList = Intl.supportedValuesOf("timeZone");
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop
});
const mapDispatchToProps = () => ({
//setUserLanguage: language => dispatch(setUserLanguage(language))
});
export default connect(mapStateToProps, mapDispatchToProps)(ShopInfoGeneral);
export function ShopInfoGeneral({ form, bodyshop }) {
const { t } = useTranslation();
const {
treatments: { ClosingPeriod, ADPPayroll }
} = useSplitTreatments({
attributes: {},
names: ["ClosingPeriod", "ADPPayroll"],
splitKey: bodyshop?.imexshopid
});
return (
PhoneItemFormatterValidation(getFieldValue, "phone")]}
>
{[
...(HasFeatureAccess({ featureName: "export", bodyshop })
? [
,
InstanceRenderManager({
imex: (
{() => (
)}
)
}),
,
2
3
,
{() => {
return (
{t("bodyshop.labels.2tiername")}
{t("bodyshop.labels.2tiersource")}
);
}}
,
,
]
: []),
,
,
InstanceRenderManager({
imex: (
)
}),
,
...(HasFeatureAccess({ featureName: "bills", bodyshop })
? [
InstanceRenderManager({
imex: (
)
}),
,
]
: []),
,
,
...(HasFeatureAccess({ featureName: "export", bodyshop })
? [
{ReceivableCustomFieldSelect}
,
{ReceivableCustomFieldSelect}
,
{ReceivableCustomFieldSelect}
,
{
return {
required: getFieldValue("enforce_class"),
//message: t("general.validation.required"),
type: "array"
};
}
]}
>
,
,
...(ClosingPeriod.treatment === "on"
? [
]
: []),
...(ADPPayroll.treatment === "on"
? [
]
: []),
...(ADPPayroll.treatment === "on"
? [
]
: [])
]
: []),
]}
null}>
{[
,
,
,
,
,
,
({
validator(rule, value) {
if (!value && !getFieldValue(["md_hour_split", "paint"])) {
return Promise.resolve();
}
if (value + getFieldValue(["md_hour_split", "paint"]) === 1) {
return Promise.resolve();
}
return Promise.reject(t("bodyshop.validation.larsplit"));
}
})
]}
>
,
({
validator(rule, value) {
if (!value && !getFieldValue(["md_hour_split", "paint"])) {
return Promise.resolve();
}
if (value + getFieldValue(["md_hour_split", "prep"]) === 1) {
return Promise.resolve();
}
return Promise.reject(t("bodyshop.validation.larsplit"));
}
})
]}
>
,
,
,
,
,
,
,
,
...(HasFeatureAccess({ featureName: "timetickets", bodyshop })
? [
,
,
]
: []),
,
,
,
,
,
,
]}
{(fields, { add, remove, move }) => {
return (
{fields.map((field, index) => (
{
remove(field.name);
}}
/>
))}
);
}}
{(fields, { add, remove, move }) => {
return (
{fields.map((field, index) => (
{
remove(field.name);
}}
/>
))}
);
}}
{(fields, { add, remove, move }) => {
return (
{fields.map((field, index) => (
{
remove(field.name);
}}
/>
))}
);
}}
{(fields, { add, remove, move }) => {
return (
{fields.map((field, index) => (
PhoneItemFormatterValidation(getFieldValue, [field.name, "est_ph"])
]}
>
{
remove(field.name);
}}
/>
))}
);
}}
{(fields, { add, remove, move }) => {
return (
{fields.map((field, index) => (
PhoneItemFormatterValidation(getFieldValue, [field.name, "ins_ph"])
]}
>
{
remove(field.name);
}}
/>
))}
);
}}
null}>
{(fields, { add, remove, move }) => {
return (
{fields.map((field, index) => (
{
remove(field.name);
}}
/>
))}
);
}}
{(fields, { add, remove, move }) => {
return (
{fields.map((field, index) => (
{
remove(field.name);
}}
/>
))}
);
}}
{(fields, { add, remove, move }) => {
return (
{fields.map((field, index) => (
{
remove(field.name);
}}
/>
))}
);
}}
);
}
const ReceivableCustomFieldSelect = (
);