import * as React from 'react';
import { useEffect, useState, useRef, Fragment } from 'react';
import {
  FormControl,
  InputAdornment,
  Grid,
  Typography,
  Stack,
  Box,
  Button,
  TextField,
  Autocomplete,
  CardActions,
  Chip,
  Avatar,
  Divider,
  DialogTitle,
  DialogContent,
  Checkbox,
  DialogActions,
  CircularProgress,
  ButtonGroup,
  FormLabel,
  IconButton,
  Drawer,
  InputLabel,
  Select,
  MenuItem,
  Switch,
  CardHeader,
  Card,
  OutlinedInput
} from '@mui/material';
import CloseIcon from '@mui/icons-material/Close';
import { Empty } from 'antd';
import { FaPhoneAlt } from 'react-icons/fa';
import { GiDoorHandle } from 'react-icons/gi';
import { FaLandmarkDome } from 'react-icons/fa6';
import ClearIcon from '@mui/icons-material/Clear';
import { useNavigate } from 'react-router';
import { MdLocationCity } from 'react-icons/md';
import { TbMapPinCode } from 'react-icons/tb';
import { FaLocationDot } from 'react-icons/fa6';
import axios from 'axios';
import { useTheme } from '@mui/material/styles';
import Geocode from 'react-geocode';
import Loader from 'components/Loader';
import * as geolib from 'geolib';
import MainCard from 'components/MainCard';
import { FaUser } from 'react-icons/fa6';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import Dialog from '@mui/material/Dialog';
import dayjs from 'dayjs';
import { enqueueSnackbar } from 'notistack';
var utc = require('dayjs/plugin/utc');
dayjs.extend(utc);
import LocationOnIcon from '@mui/icons-material/LocationOn';
import parse from 'autosuggest-highlight/parse';
import { debounce } from '@mui/material/utils';
import CardContent from 'themes/overrides/CardContent';
import { PhoneAndroid } from '@mui/icons-material';
import { SearchOutlined, CloseOutlined } from '@ant-design/icons';
import PhoneInput from 'react-phone-number-input/input';
import MyLocationIcon from '@mui/icons-material/MyLocation';
import HighlightOffIcon from '@mui/icons-material/HighlightOff';

function loadScript(src, position, id) {
  if (!position) {
    return;
  }

  const script = document.createElement('script');
  script.setAttribute('async', '');
  script.setAttribute('id', id);
  script.src = src;
  position.appendChild(script);
}

const Createorder1 = () => {
  Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY);
  // ================================================= || GoogleMaps (Drawer) || =================================================
  const [value, setValue] = React.useState(null);
  const [value1, setValue1] = React.useState(null);
  const [inputValue, setInputValue] = React.useState('');
  const [inputValue1, setInputValue1] = React.useState('');
  const [inputValue2, setInputValue2] = React.useState('');
  const [inputValue3, setInputValue3] = React.useState('');
  const [options, setOptions] = React.useState([]);
  const [options1, setOptions1] = React.useState([]);
  const loaded = React.useRef(false);
  const loaded1 = React.useRef(false);
  const [mobilenumber, setMobilenumber] = useState('');
  const [emailaddress, setEmailaddress] = useState('');
  const [city, setCity] = useState('');
  const [city1, setCity1] = useState('');
  const [zipcode, setZipcode] = useState('');
  const [zipcode1, setZipcode1] = useState('');
  const [state, setState] = useState('');
  const [state1, setState1] = useState('');
  const [suburb, setSuburb] = useState('');
  const [suburb1, setSuburb1] = useState('');
  const [pickContactName, setPickContactName] = useState('');
  const [dropContactName, setDropContactName] = useState('');
  const [pickdoorno, setPickDoorno] = useState('');
  const [dropDoorno, setDropDoorno] = useState('');
  const [pickLandmark, setPickLandmark] = useState('');
  const [dropLandmark, setDropLandmark] = useState('');
  const [address, setAddress] = useState('');
  const [address1, setAddress1] = useState('');
  const [latlong, setLatlong] = useState({});
  const [latlong1, setLatlong1] = useState({});
  const autocompleteService = useRef(null);
  const [tenanatLocoId, setTenanatLocoId] = useState(localStorage.getItem('locationid'));
  const [isLocation, setIsLocation] = useState(false);
  const textFieldRef1 = useRef(null);
  const textFieldRef2 = useRef(null);

  const handleOkClick1 = () => {
    // Set focus back to the text field after clicking the "OK" chip
    if (textFieldRef1.current) {
      textFieldRef1.current.focus();
    }
  };

  const handleOkClick2 = () => {
    // Set focus back to the text field after clicking the "OK" chip
    if (textFieldRef2.current) {
      textFieldRef2.current.focus();
    }
  };

  const top100Films = [
    { label: 'The Shawshank Redemption', year: 1994 },
    { label: 'The Godfather', year: 1972 },
    { label: 'The Godfather: Part II', year: 1974 },
    { label: 'The Dark Knight', year: 2008 },
    { label: '12 Angry Men', year: 1957 }
  ];

  // // // ====================================================== || address (pick)|| ======================================================
  // useEffect(() => {
  //   if (address) {
  //     try {
  //       Geocode.fromAddress(address).then(
  //         (response) => {
  //           if (response.status == 'OK') {
  //             const { lat, lng } = response.results[0].geometry.location;
  //             console.log({ lat, lng });
  //             setLatlong({
  //               lat,
  //               lng
  //             });
  //             console.log(response);
  //             if (response.results[0].address_components) {
  //               let place = response.results[0];
  //               let cityA, zipcodeA, stateA, suburbA;
  //               for (let i = 0; i < place.address_components.length; i++) {
  //                 for (let j = 0; j < place.address_components[i].types.length; j++) {
  //                   switch (place.address_components[i].types[j]) {
  //                     case 'locality':
  //                       cityA = place.address_components[i].long_name;
  //                       break;
  //                     case 'administrative_area_level_1':
  //                       stateA = place.address_components[i].long_name;
  //                       break;
  //                     case 'postal_code':
  //                       zipcodeA = place.address_components[i].long_name;
  //                       break;
  //                     case 'sublocality':
  //                       suburbA = place.address_components[i].long_name;
  //                       break;
  //                   }
  //                 }
  //               }
  //               setCity(cityA || '');
  //               setState(stateA || '');
  //               setZipcode(zipcodeA || '');
  //               setSuburb(suburbA || '');
  //               console.log({ lat, lng, cityA, stateA, zipcodeA, suburbA });
  //               setPickCust({
  //                 ...pickCust
  //                 // city: cityA,
  //                 // state: stateA,
  //                 // postcode: zipcodeA,
  //                 // suburb: suburbA
  //                 // latitude: lat,
  //                 // longitude: lng
  //               });
  //               // setStartPoint({ latitude: lat, longitude: lng });
  //             }
  //           }
  //         },
  //         (error) => {
  //           console.log(error);
  //         }
  //       );
  //     } catch (err) {
  //       console.log(err);
  //     }
  //   }
  // }, [address]);
  // // // ====================================================== || address 1 (drop)|| ======================================================
  // useEffect(() => {
  //   if (address) {
  //     try {
  //       Geocode.fromAddress(address1).then(
  //         (response) => {
  //           if (response.status == 'OK') {
  //             const { lat, lng } = response.results[0].geometry.location;

  //             setLatlong1({
  //               lat,
  //               lng
  //             });
  //             console.log(response);
  //             if (response.results[0].address_components) {
  //               let place = response.results[0];
  //               let cityB, zipcodeB, stateB, suburbB;
  //               for (let i = 0; i < place.address_components.length; i++) {
  //                 for (let j = 0; j < place.address_components[i].types.length; j++) {
  //                   switch (place.address_components[i].types[j]) {
  //                     case 'locality':
  //                       cityB = place.address_components[i].long_name;
  //                       break;
  //                     case 'administrative_area_level_1':
  //                       stateB = place.address_components[i].long_name;
  //                       break;
  //                     case 'postal_code':
  //                       zipcodeB = place.address_components[i].long_name;
  //                       break;
  //                     case 'sublocality':
  //                       suburbB = place.address_components[i].long_name;
  //                       break;
  //                   }
  //                 }
  //               }
  //               setCity(cityB || '');
  //               setState(stateB || '');
  //               setZipcode(zipcodeB || '');
  //               setSuburb(suburbB || '');
  //               console.log({ lat, lng, cityB, stateB, zipcodeB, suburbB });
  //               setDropCust({
  //                 ...dropCust
  //                 // city: cityB,
  //                 // state: stateB,
  //                 // postcode: zipcodeB,
  //                 // suburb: suburbB
  //                 // latitude: lat,
  //                 // longitude: lng
  //               });
  //               // setEndPoint({ latitude: lat, longitude: lng });
  //             }
  //           }
  //         },
  //         (error) => {
  //           console.log(error);
  //         }
  //       );
  //     } catch (err) {
  //       console.log(err);
  //     }
  //   }
  // }, [address1]);

  if (typeof window !== 'undefined' && !loaded.current) {
    if (!document.querySelector('#google-maps')) {
      loadScript(
        `https://maps.googleapis.com/maps/api/js?key=${process.env.REACT_APP_GOOGLE_MAPS_API_KEY}&libraries=places&location=10.3656,77.9690&radius=50000&components=country:IN&strictbounds=true`,
        document.querySelector('head'),
        'google-maps'
      );
    }
    loaded.current = true;
  }

  // const fetch = React.useMemo(
  //   () =>
  //     debounce((request, callback) => {
  //       autocompleteService.current.getPlacePredictions(request, callback);
  //     }, 400),
  //   []
  // );
  // const fetch1 = React.useMemo(
  //   () =>
  //     debounce((request, callback) => {
  //       autocompleteService.current.getPlacePredictions(request, callback);
  //     }, 400),
  //   []
  // );

  // ====================================================== || options (pick)|| ======================================================

  // React.useEffect(() => {
  //   let active = true;
  //   if (!autocompleteService.current && window.google) {
  //     autocompleteService.current = new window.google.maps.places.AutocompleteService();
  //   }
  //   if (!autocompleteService.current) {
  //     return undefined;
  //   }
  //   if (inputValue === '') {
  //     setOptions(value ? [value] : []);
  //     return undefined;
  //   }
  //   fetch({ input: inputValue }, (results) => {
  //     if (active) {
  //       let newOptions = [];

  //       if (value) {
  //         newOptions = [value];
  //       }

  //       if (results) {
  //         newOptions = [...newOptions, ...results];
  //       }

  //       setOptions(newOptions);
  //     }
  //   });

  //   return () => {
  //     active = false;
  //   };
  // }, [value, inputValue, fetch]);

  // // ====================================================== || options1 (drop)|| ======================================================
  // React.useEffect(() => {
  //   let active = true;
  //   if (!autocompleteService.current && window.google) {
  //     autocompleteService.current = new window.google.maps.places.AutocompleteService();
  //   }
  //   if (!autocompleteService.current) {
  //     return undefined;
  //   }
  //   if (inputValue1 === '') {
  //     setOptions1(value1 ? [value1] : []);
  //     return undefined;
  //   }
  //   fetch1({ input: inputValue1 }, (results) => {
  //     if (active) {
  //       let newOptions = [];

  //       if (value1) {
  //         newOptions = [value1];
  //       }

  //       if (results) {
  //         newOptions = [...newOptions, ...results];
  //       }

  //       setOptions1(newOptions);
  //     }
  //   });

  //   return () => {
  //     active = false;
  //   };
  // }, [value1, inputValue1, fetch1]);

  const appId = localStorage.getItem('applocationid');
  const navigate = useNavigate();
  const [open, setOpen] = useState({});
  const [open1, setOpen1] = useState('');
  const [open2, setOpen2] = useState(false);
  const [open3, setOpen3] = useState(false);
  const [open4, setOpen4] = useState(false);
  const [shift, setShift] = useState(1);
  const [clientlist, setClientlist] = useState([]);
  const [clientdetail, setClientdetail] = useState([]);
  const [eventname, setEventname] = useState('');
  const [startdate, setStartdate] = useState(dayjs().format('MM-DD-YYYY'));
  const [enddate, setEnddate] = useState(dayjs().add(1, 'day').format('MM-DD-YYYY'));
  // const [starttime, setStatrttime] = useState(`${dayjs().format('MM-DD-YYYY')} 08:00:00`);
  const [starttime, setStatrttime] = useState();
  // const [endtime, setEndtime] = useState(`${dayjs().format('MM-DD-YYYY')} 20:00:00`);
  const [endtime, setEndtime] = useState();
  const [timeslotarr, setTimeslotarr] = useState([]);
  const [currentsno, setCurrentsno] = useState('');
  const [roleoptions, setRoleoptions] = useState([]);
  const theme = useTheme();
  const [otherinstructions, setOtherinstructions] = useState('');
  const [attireslist, setAttireslist] = useState([]);
  const [serviceaddonslist, setServiceaddonslist] = useState([]);
  const [orderaddonobj, setOrderaddonobj] = useState([]);
  const [stafflist, setStafflist] = useState([]);
  const [loading2, setLoading2] = useState(false);
  const [loading, setLoading] = useState(false);
  const [shiftarr, setShiftarr] = useState([]);
  const [shiftarr1, setShiftarr1] = useState([]);
  const [orderarr, setOrderarr] = useState([]);
  const [alertmessage, setAlertmessage] = useState('');
  const [tabstatus, setTabstatus] = useState('');
  const [tenantinfo, setTenantinfo] = useState({});
  const [searchword, setSearchword] = useState('');
  const [clientdetailarr, setClientdetailarr] = useState([]);
  const [clientdetailbusinessarr, setClientdetailbusinessarr] = useState([]);
  const [admintoken, setAdmintoken] = useState();
  const [tenantlocationlist, setTenantlocationlist] = useState([]);
  const [tenant, setTenant] = useState({});
  const [clientinfo, setClientinfo] = useState({});
  const [selectedtime, setSelectedtime] = useState('');
  const [tenantlist, setTenantlist] = useState([]);
  const [tenantid, setTenantid] = useState();
  const [tenantlocation, setTenantlocation] = useState('');
  const [pickupswitch, setPickupswitch] = useState(true);
  const [deliverytype, setDeliverytype] = useState('B');
  const [dropswitch, setDropswitch] = useState(false);
  const [startPoint, setStartPoint] = useState({ latitude: 0, longitude: 0 });
  const [endPoint, setEndPoint] = useState({ latitude: 0, longitude: 0 });
  const [showDistance, setShowDistance] = useState(false);
  const [distance, setDistance] = useState(0);
  const [basePrice, setBasePrice] = useState(0);
  const [pricePerKm, setPricePerKm] = useState(0);
  const [minKm, setMinKm] = useState(0);
  const [totalCharge, setTotalCharge] = useState(0);
  const [subCat, setSubCat] = useState([]);
  const [subCatName, setSubCatName] = useState('Select ');
  const [subCatId, setSubCatId] = useState();
  const [weight, setWeight] = useState('');
  const tid = localStorage.getItem('tenantid');
  const [selectedCatChip, setSelectedCatChip] = useState(null);
  const [isCustomerOpen, setIsCustomerOpen] = useState(false);
  const [searchCustList, setSearchCustList] = useState('');
  const [customerlist, setCustomerlist] = useState([]);
  const [pickCust, setPickCust] = useState({});
  const [dropCust, setDropCust] = useState({});
  const [pickordrop, setpickordrop] = useState(0); // 1 ->pick 2 -> drop
  const [addId1, setAddId1] = useState(0);
  const [addId2, setAddId2] = useState(0);
  const [tenantLocations, setTenantlocations] = useState([]);
  const [appLocaLat, setAppLocaLat] = useState();
  const [appLocaLng, setAppLocaLng] = useState();
  const [appLocaRadius, setAppLocaRadius] = useState();
  const [isSms, setIsSms] = useState(0);

  useEffect(() => {
    console.log(isSms);
  }, [isSms]);

  const handleChipClick = (chipLabel) => {
    setSelectedCatChip(chipLabel);
  };

  const chipStyle = (chipLabel) => ({
    cursor: 'pointer',
    backgroundColor: selectedCatChip === chipLabel ? theme.palette.primary.main : 'default',
    color: selectedCatChip === chipLabel ? '#fff' : '',
    '&:hover': {
      backgroundColor: selectedCatChip === chipLabel ? theme.palette.primary.main : theme.palette.primary.light,
      color: '#fff'
    }
  });

  const fetchTenantPricing = async () => {
    try {
      const pricingResponse = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantpricing/?tenantid=${tid}`);
      console.log('pricingResponse', pricingResponse.data.details);
      setBasePrice(pricingResponse.data.details.baseprice);
      setPricePerKm(pricingResponse.data.details.priceperkm);
      setMinKm(pricingResponse.data.details.minkm);
    } catch (error) {
      console.log('fetchTenantPricing error', error);
    }
  };
  useEffect(() => {
    fetchTenantPricing();
  }, []);

  useEffect(() => {
    console.log('startPoint', startPoint);
    console.log('endPoint', endPoint);
    if (startPoint.latitude != 0 && startPoint.longitude != 0 && endPoint.latitude != 0 && endPoint.longitude != 0) {
      getDistance();
    }
  }, [startPoint, endPoint]);

  const getDistance = () => {
    const dist = geolib.getPreciseDistance(startPoint, endPoint, 1);
    console.log(`Distance: ${dist} meters`);
    const distanceInKm = (dist / 1000).toFixed(2);
    const roundedDistance = Math.round(distanceInKm);
    console.log('roundedDistance', roundedDistance);
    setDistance(roundedDistance.toFixed(2));
    if (roundedDistance < minKm) {
      setTotalCharge(basePrice);
    } else {
      const total = (roundedDistance - minKm) * pricePerKm + basePrice;
      setTotalCharge(total);
    }
    setShowDistance(true);
    if (roundedDistance > appLocaRadius) {
      setShowDistance(true);
      setOpen4(true);
    }
  };

  useEffect(() => {
    if (timeslotarr[0]) {
      let arr = [];
      timeslotarr.map((val) => {
        if (dayjs().diff(dayjs(`${dayjs(startdate).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0) {
          arr.push(val);
        }
      });

      if (arr[0]) {
        setOrderarr([
          {
            sno: 1,
            address: '',
            customerid: '',
            deliverytime: dayjs(arr[0]) || '',
            deliverylocationid: '',
            clientname: '',
            contactno: '',
            latitude: '',
            longitude: ''
          }
        ]);
      }
    }
  }, [timeslotarr]);

  useEffect(() => {
    if (searchword) {
      let arr = clientdetail.filter((val) => {
        return (
          val.address.toLowerCase().includes(searchword.toLowerCase()) ||
          val.firstname.toLowerCase().includes(searchword.toLowerCase()) ||
          val.contactno.toLowerCase().includes(searchword.toLowerCase())
        );
      });
      console.log(arr);
      setClientdetailarr([...arr]);
    } else {
      setClientdetailarr([...clientdetail]);
    }
  }, [searchword]);

  // const { ref: materialRef } = usePlacesWidget({
  //   apiKey: process.env.REACT_APP_GOOGLE_MAPS_API_KEY,
  //   onPlaceSelected: (place) => {
  //     console.log(place);

  //     // setAddress(place.formatted_address)
  //     let city1, zipcode1, state1, suburb1;
  //     for (let i = 0; i < place.address_components.length; i++) {
  //       for (let j = 0; j < place.address_components[i].types.length; j++) {
  //         switch (place.address_components[i].types[j]) {
  //           case 'locality':
  //             city1 = place.address_components[i].long_name;
  //             break;
  //           case 'administrative_area_level_1':
  //             state1 = place.address_components[i].long_name;
  //             break;
  //           case 'postal_code':
  //             zipcode1 = place.address_components[i].long_name;
  //             break;
  //           case 'sublocality':
  //             suburb1 = place.address_components[i].long_name;
  //             break;
  //         }
  //       }
  //     }
  //     // setCity(city1 || '')
  //     // setState(state1 || '');
  //     // setZipcode(zipcode1 || '');
  //     // setSuburb(suburb1 || '')
  //   },

  //   options: {
  //     types: ['address' || 'geocode']
  //   }
  // });

  // ==================================================== || fetchtenantinfo || ====================================================
  const fetchtenantinfo = async () => {
    setLoading(true);
    console.log('tid', tid);

    await axios
      .get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tid}`)
      .then((res) => {
        console.log('fetchtenantinfo', res);
        if (res.data.status) {
          setTenant(res.data.details);
          setTenantid(res.data.details.tenantid);
          fetchAppAdminTokens();
          setSubCatId(res.data.details.subcategoryid);
        }
        setLoading(false);
      })
      .catch((err) => {
        console.log(err);
        setLoading(false);
      });
  };
  useEffect(() => {
    fetchtenantinfo();
  }, []);
  // ==================================================== || getsubcategories || ====================================================
  const getsubcategories = async () => {
    await axios
      .get(`${process.env.REACT_APP_URL}/utils/getsubcategories/?moduleid=6`)
      .then((res) => {
        console.log('subcateRes', res.data.details);
        if (res.data.status) {
          setSubCat(res.data.details);
        }
      })
      .catch((err) => {
        console.log(err);
      });
  };
  useEffect(() => {
    getsubcategories();
  }, []);

  // ==================================================== || fetchTiming || ====================================================
  const fetchTiming = async () => {
    setLoading(true);
    await axios
      .get(`${process.env.REACT_APP_URL}/utils/getapplocations/?applocationid=${appId}`)
      .then((res) => {
        console.log('fetchTiming', res);
        const { opentime, closetime, latitude, longitude, radius } = res.data.details[0];
        if (res.data.status) {
          setAppLocaLat(latitude);
          setAppLocaLng(longitude);
          setAppLocaRadius(radius);
          setStatrttime(`${dayjs().format('MM-DD-YYYY')} ${opentime}`);
          setEndtime(`${dayjs().format('MM-DD-YYYY')} ${closetime}`);
          console.log('starttime', `${dayjs().format('MM-DD-YYYY')} ${opentime}`);
          console.log('endtime', `${dayjs().format('MM-DD-YYYY')} ${closetime} `);
          let arr = [];
          for (
            let i = `${dayjs().format('MM-DD-YYYY')} ${opentime}`, j = 0;
            dayjs(`${dayjs().format('MM-DD-YYYY')} ${closetime} `).diff(i, 'm') >= 0;
            j++, i = dayjs(i).add(30, 'm')
          ) {
            arr.push(i);
          }
          console.log('setTimeslotarr', arr);
          setTimeslotarr(arr);
        }
        setLoading(false);
      })
      .catch((err) => {
        console.log(err);
        setLoading(false);
      });
  };
  useEffect(() => {
    fetchTiming();
  }, [starttime, endtime]);

  // =============================================== || fetchAppAdminTokens (via  appId) || ===============================================
  const fetchAppAdminTokens = async () => {
    setLoading(true);
    await axios
      .get(`${process.env.REACT_APP_URL}/utils/getapplocationconfig/?applocationid=${appId}`)
      .then((res) => {
        const userfcmtokemArray = res.data.details.applocationadmins.map((admin) => admin.userfcmtokem);
        console.log('fetchAppAdminTokens', res);
        console.log('userfcmtokemArray', userfcmtokemArray);
        if (res.data.status) {
          setAdmintoken(userfcmtokemArray);
        }
        setLoading(false);
      })
      .catch((err) => {
        console.log(err);
        setLoading(false);
      });
  };

  useEffect(() => {
    if (starttime && endtime) {
      fetchAppAdminTokens();
    }
  }, [starttime, endtime]);

  // =============================================== || opentoast || ===============================================

  const opentoast = (message, variant, time) => {
    enqueueSnackbar(message, {
      variant: variant,
      anchorOrigin: { vertical: 'top', horizontal: 'right' },
      autoHideDuration: time ? time : 1500
    });
    console.log(alertmessage);
  };

  function closeAddressModal() {
    setOpen2(false);
  }
  function closetimemodal() {
    setOpen3(false);
    setCurrentsno('');
  }

  // =============================================== || createsubmitobj1 (create orders) || ===============================================
  const createsubmitobj1 = async () => {
    let arr = [];
    let timecheck = false;
    let addresscheck = false;
    arr = [
      {
        orderheaderid: 0,
        tenantid: parseFloat(tid),
        locationid: clientinfo.tenantlocationid ? clientinfo.tenantlocationid : tenantinfo.tenantlocationid,
        moduleid: tenant.moduleid,
        configid: 7,
        orderid: '',
        customerid: tenantinfo.customerid,
        orderdate: dayjs().format('YYYY-MM-DD HH:mm:ss'),
        orderstatus: 'created',
        pending: '',
        processing: '',
        ready: '',
        delivered: '',
        cancellled: '',
        orderamount: totalCharge,
        taxamount: 0,
        ordercharges: 0,
        ordervalue: totalCharge,
        itemcount: 1,
        paymenttype: 64,
        paymentstatus: 0,
        deliverycharge: totalCharge,
        deliverytime: `${dayjs(startdate).format('YYYY-MM-DD')} ${dayjs(selectedtime.$d).format('HH:mm:ss')}`,
        deliverylocationid: clientinfo.deliverylocationid,
        deliveryaddress: clientinfo.address,
        deliverytype: deliverytype,
        pickupaddress: tenantinfo.address,
        pickuplat: startPoint.latitude.toString(),
        pickuplong: startPoint.longitude.toString(),
        ordernotes: otherinstructions,
        remarks: '',
        tenantuserid: parseInt(localStorage.getItem('userid')),
        categoryid: tenant.categoryid,
        subcategoryid: tenant.subcategoryid,
        partnerid: tenant.partnerid,
        deliverylat: endPoint.latitude.toString(),
        deliverylong: endPoint.longitude.toString(),
        applocationid: parseInt(localStorage.getItem('applocationid')),
        deliveryid: clientinfo.customerid,
        pickuplocationid: tenantinfo.deliverylocationid,
        kms: distance
      }
    ];

    if (!tid) {
      opentoast('Choose Client ', 'warning');
    } else if (!tenantinfo.address) {
      opentoast('Choose Pickup Location', 'warning');
    } else if (!clientinfo.address) {
      opentoast('Choose Drop Location', 'warning');
    } else if (!selectedtime) {
      opentoast('Choose Schedule Time', 'warning');
    } else {
      setLoading(true);

      await axios
        .post(`${process.env.REACT_APP_URL}/orders/createorders`, arr)
        .then((res) => {
          if (res.data.status) {
            enqueueSnackbar('Order Created Successfully', {
              variant: 'success',
              anchorOrigin: { vertical: 'top', horizontal: 'right' },
              autoHideDuration: 1000
            });
            if (admintoken) {
              // notifyadmin(admintoken);
              sendnotifications();
            }

            navigate('/orders');
          } else {
            opentoast(res.data.message, 'warning');
          }
          setLoading(false);
          console.log(res);
        })
        .catch((err) => {
          console.log(err);
          opentoast(err.data.message, 'warning');
          setLoading(false);
        });
    }
    console.log(arr);
  };

  const createsubmitobj2 = async () => {
    let arr = {};
    arr = {
      orders: {
        applocationid: tenant.applolcationid,
        cancellled: '',
        categoryid: +tenant.categoryid,
        configid: +localStorage.getItem('configid'),
        customerid: +pickCust.customerid || 0,
        deliveryaddress: dropCust.address || '',
        deliverycharge: +totalCharge.toFixed(2) || 0,
        deliverycity: dropCust.city || '',
        deliverycontactno: dropCust.contactno || '',
        deliverycustomer: dropCust.firstname || '',
        deliveryid: dropCust.customerid || 0,
        deliverylandmark: dropCust.landmark || '',
        deliverylat: dropCust.latitude.toString(),
        deliverylocation: dropCust.suburb || '',
        deliverylocationid: dropCust.deliverylocationid || 0,
        deliverylong: dropCust.longitude.toString(),
        deliverytime: `${dayjs(startdate).format('YYYY-MM-DD')} ${dayjs(selectedtime.$d).format('HH:mm:ss')}`,
        deliverytype: pickCust.customerid !== 0 || dropCust.customerid !== 0 ? 'B' : 'C',
        delivered: '',
        itemcount: 1,
        kms: distance || 0,
        locationid: +tenanatLocoId, //main or branch
        moduleid: +tenant.moduleid,
        orderamount: +totalCharge.toFixed(2) || 0,
        ordercharges: 0.0,
        orderdate: dayjs().format('YYYY-MM-DD HH:mm:ss'),
        orderheaderid: 0,
        orderid: '', //
        ordernotes: otherinstructions,
        orderstatus: 'created',
        ordervalue: +totalCharge.toFixed(2) || 0,
        partnerid: tenant.partnerid,
        paymentstatus: 1,
        paymenttype: 42,
        pending: '',
        pickupaddress: pickCust.address || '',
        pickupcity: pickCust.city || '',
        pickupcontactno: pickCust.contactno || '',
        pickupcustomer: pickCust.firstname || '',
        pickuplandmark: pickCust.landmark || '',
        pickuplat: pickCust.latitude.toString(),
        pickuplocation: pickCust.suburb || '',
        pickuplocationid: pickCust.deliverylocationid || 0,
        pickuplong: pickCust.longitude.toString(),
        pickupaddress: pickCust.address || '',
        processing: '',
        ready: '',
        remarks: '',
        smsdelivery: isSms,
        subcategoryid: +subCatId,
        taxamount: 0.0,
        tenantid: tenant.tenantid,
        tenantuserid: parseInt(localStorage.getItem('userid'))
      },

      pickup: {
        address: pickCust.address || '',
        applocationid: tenant.applolcationid,
        city: pickCust.city || '',
        configid: parseInt(localStorage.getItem('configid')),
        contactno: pickCust.contactno || '',
        customertoken: '',
        customerid: pickCust.customerid || 0,
        devicetype: '',
        deviceid: '',
        dialcode: '+91',
        doorno: pickCust.doorno || '',
        email: pickCust.email || '',
        firstname: pickCust.firstname || '',
        landmark: pickCust.landmark || '',
        latitude: pickCust.latitude.toString() || '',
        longitude: pickCust.longitude.toString() || '',
        locationid: pickCust.deliverylocationid || 0,
        postcode: pickCust.postcode || '',
        primaryaddress: 1,
        profileimage: '',
        state: pickCust.state || '',
        suburb: pickCust.suburb || '',
        tenantid: tenant.tenantid
      },

      drop: {
        address: dropCust.address || '',
        applocationid: tenant.applolcationid,
        city: dropCust.city || '',
        configid: parseInt(localStorage.getItem('configid')),
        contactno: dropCust.contactno || '',
        customertoken: '',
        customerid: dropCust.customerid || 0,
        devicetype: '',
        deviceid: '',
        dialcode: '+91',
        doorno: dropCust.doorno || '',
        email: dropCust.email || '',
        firstname: dropCust.firstname || '',
        landmark: dropCust.landmark || '',
        latitude: dropCust.latitude.toString(),
        longitude: dropCust.longitude.toString(),
        locationid: dropCust.deliverylocationid || 0,
        postcode: dropCust.postcode || '',
        primaryaddress: 1,
        profileimage: '',
        state: dropCust.state || '',
        suburb: dropCust.suburb || '',
        tenantid: tenant.tenantid
      }
    };
    console.log('createsubmitobj2', arr);
    if (!pickCust.firstname) {
      opentoast('Enter Pickup Contact Name  ', 'warning');
    } else if (!pickCust.contactno) {
      opentoast('Enter Pickup Contact Number ', 'warning');
    } else if (!pickCust.suburb) {
      opentoast('Enter Pickup  Location ', 'warning');
    } else if (!pickCust.city) {
      opentoast('Enter Pickup City ', 'warning');
    } else if (!pickCust.postcode) {
      opentoast('Enter Pickup Postcode ', 'warning');
    } else if (!pickCust.landmark) {
      opentoast('Enter Pickup Landmark ', 'warning');
    } else if (!dropCust.firstname) {
      opentoast('Enter Drop Contact Name ', 'warning');
    } else if (!dropCust.contactno) {
      opentoast('Enter Drop Contact Number', 'warning');
    } else if (!dropCust.suburb) {
      opentoast('Enter Drop Suburb ', 'warning');
    } else if (!dropCust.city) {
      opentoast('Enter Drop City ', 'warning');
    } else if (!dropCust.postcode) {
      opentoast('Enter Drop postcode ', 'warning');
    } else if (!dropCust.landmark) {
      opentoast('Enter Drop Landmark ', 'warning');
    } else if (!selectedtime) {
      opentoast('Choose deliverytime ', 'warning');
    } else if (!setSubCatId) {
      opentoast('Choose SubCategory ', 'warning');
    } else {
      try {
        const createRes = await axios.post(`${process.env.REACT_APP_URL2}/orders/createorder`, arr);
        // const createRes = await axios.post(`${process.env.REACT_APP_URL}/orders/createorder`, arr);
        if (createRes.data.status) {
          console.log('createRes', createRes);
          enqueueSnackbar('Order Created Successfully', {
            variant: 'success',
            anchorOrigin: { vertical: 'top', horizontal: 'right' },
            autoHideDuration: 1000
          });
          if (admintoken) {
            // notifyadmin(admintoken);
            sendnotifications();
          }

          navigate('/orders');
        } else {
          opentoast(res.data.message, 'warning');
        }
        setLoading(false);
        console.log(res);
      } catch (error) {
        console.log('createResErr', error);
      }
    }
  };

  useEffect(() => {
    console.log('shiftarr');
    console.log(shiftarr);
  }, [shiftarr]);

  const clicked1 = (e) => {
    setShift(e);
  };

  const dialogopen = (i, result) => {
    console.log(i, result);
    setOpen({ shiftsno: result.sno, sno: i.sno });
  };
  const dialogclose = () => {
    setOpen('');
  };
  // ========================================================= || clientdetails || =========================================================
  const clientdetails = async () => {
    setLoading2(true);
    try {
      let url =
        searchCustList == ''
          ? // ? `${process.env.REACT_APP_URL}/customers/getbytid/?tenantid=${tid}&pageno=1&pagesize=1`
            `${process.env.REACT_APP_URL}/customers/gettenantcustomers/?tenantid=${tid}&pageno=1&pagesize=20`
          : `${process.env.REACT_APP_URL}/customers/search/?tenantid=${tid}&keyword=${searchCustList}`;

      await axios
        .get(url)
        .then((res) => {
          console.log('clientdetails', res.data.details);
          if (res.data.status) {
            setClientdetail(res.data.details);
            setCustomerlist(res.data.details);
            let arr = [];
            res.data.details.map((val) => {
              arr.push({
                label: `${val.firstname} | ${val.contactno}`,
                ...val
              });
            });
            setClientdetailarr(arr);
          }
          setLoading2(false);
        })
        .catch((err) => {
          console.log(err);
          setLoading2(false);
          opentoast('server error', 'warning');
        });
    } catch (err) {
      console.log(err);
      setLoading2(false);
    }
  };
  useEffect(() => {
    console.log('clientdetails, by search');
    clientdetails();
    // clientdetailsbusiness();
  }, [searchCustList.length > 3, searchCustList == '']);
  // ========================================================= || clientdetailsbusiness || =========================================================
  const clientdetailsbusiness = async () => {
    setLoading2(true);
    try {
      await axios
        .get(`${process.env.REACT_APP_URL}/customers/getbytid/?tenantid=${tid}&locationid=1`)
        .then((res) => {
          console.log('clientdetailsbusiness', res.data.details);
          if (res.data.status) {
            setClientdetail(res.data.details);
            // if (!searchword) {
            //     setClientdetailarr(res.data.details)
            // }
            let arr = [];
            res.data.details.map((val) => {
              arr.push({
                label: `${val.firstname} | ${val.contactno}`,
                ...val
              });
            });
            setClientdetailbusinessarr(arr);
          }
          setLoading2(false);
        })
        .catch((err) => {
          console.log(err);
          setLoading2(false);
          opentoast('server error', 'warning');
        });
    } catch (err) {
      console.log(err);
      setLoading2(false);
    }
  };

  // ================================================== ||  sendnotifications || ==================================================
  const sendnotifications = async () => {
    setLoading(true);
    await axios
      .post(`${process.env.REACT_APP_URL}/utils/sendnotifications`, {
        priority: 'high',
        registration_ids: admintoken,
        data: {
          accessid: process.env.REACT_APP_RIDER_ACCESS_ID
        },
        notification: {
          title: 'Nearle Merchant',
          body: 'An Order has been placed successfully,kindly process the same',
          sound: 'ring'
        }
      })
      .then((res) => {
        console.log(res);
        if (res.data.message == 'Success') {
          enqueueSnackbar('Notification sent Successfully', {
            variant: 'success',
            anchorOrigin: { vertical: 'top', horizontal: 'right' },
            autoHideDuration: 1000
          });
        }
        setLoading(false);
      })
      .catch((err) => {
        console.log(err);
        enqueueSnackbar(err.message, {
          variant: 'error',
          anchorOrigin: { vertical: 'top', horizontal: 'right' },
          autoHideDuration: 1000
        });
        setLoading(false);
      });
  };
  // ============================================= || Google Maps Autocomplete(pick) || =============================================
  useEffect(() => {
    // Initialize Google Maps Autocomplete
    if (inputValue2) {
      const autocompleteInput = document.getElementById('addressAuto1');
      const autocomplete = new window.google.maps.places.Autocomplete(autocompleteInput, {
        // types: ['(cities)'], // You can adjust the types parameter based on your requirements
        strictBounds: true,
        bounds: new window.google.maps.Circle({
          // center: new window.google.maps.LatLng(11.0050707, 76.9509083),
          // radius: 100000
          center: new window.google.maps.LatLng(appLocaLat, appLocaLng),
          radius: appLocaRadius * 1000
        }).getBounds()
      });
      let arr = [];
      // Event listener for autocomplete place changed
      autocomplete.addListener('place_changed', () => {
        const place = autocomplete.getPlace();
        setInputValue2(`${place.name}, ${place.formatted_address}`);
        console.log('new place', place); // Do something with the selected place
        console.log(' pick (new place) lat lng', { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() }); // Do something with the selected place
        // to trigger getDistance
        setStartPoint({ latitude: place.geometry.location.lat(), longitude: place.geometry.location.lng() });
        setValue(place);
        setAddress(`${place.name} ${place.formatted_address}`);
        setPickCust({ ...pickCust, address: `${place.name} ${place.formatted_address}` });
        const address = {
          address: `${place.name} ${place.formatted_address}`,
          street_number: '',
          route: '',
          locality: '',
          sublocality_level_1: '',
          administrative_area_level_3: '',
          administrative_area_level_1: '',
          country: '',
          postal_code: ''
        };
        place.address_components.forEach((component) => {
          component.types.forEach((type) => {
            switch (type) {
              case 'street_number':
                address.street_number = component.long_name;
                break;
              case 'route':
                address.route = component.long_name;
                break;
              case 'locality':
                address.locality = component.long_name;
                break;
              case 'sublocality_level_1':
                address.sublocality_level_1 = component.long_name;
                break;
              case 'administrative_area_level_3':
                address.administrative_area_level_3 = component.long_name;
                break;
              case 'administrative_area_level_1':
                address.administrative_area_level_1 = component.long_name;
                break;
              case 'country':
                address.country = component.long_name;
                break;
              case 'postal_code':
                address.postal_code = component.long_name;
                break;
              // Add more cases as needed for other types
            }
          });
        });

        // Use address object as per your requirements
        setPickCust({
          ...pickCust,
          address: address.address,
          doorno: `${address.street_number} ${address.route}`,
          suburb: address.sublocality_level_1,
          city: address.locality,
          postcode: address.postal_code,
          latitude: place.geometry.location.lat(),
          longitude: place.geometry.location.lng()
        });
        console.log('Pick Address:', address);
      });
    }
  }, [inputValue2]);
  // ============================================= || Google Maps Autocomplete(Drop) || =============================================

  useEffect(() => {
    if (inputValue3) {
      // Initialize Google Maps Autocomplete
      const autocompleteInput = document.getElementById('addressAuto2');
      const autocomplete = new window.google.maps.places.Autocomplete(autocompleteInput, {
        // types: ['(cities)'], // You can adjust the types parameter based on your requirements
        strictBounds: true,
        bounds: new window.google.maps.Circle({
          // center: new window.google.maps.LatLng(11.0050707, 76.9509083),
          center: new window.google.maps.LatLng(appLocaLat, appLocaLng),
          radius: appLocaRadius * 1000 //km to m
          // radius: 100000 //km to m
        }).getBounds()
      });
      let arr = [];
      // Event listener for autocomplete place changed
      autocomplete.addListener('place_changed', () => {
        const place = autocomplete.getPlace();
        setInputValue3(`${place.name}, ${place.formatted_address}`);
        console.log('new place', place); // Do something with the selected place
        console.log('drop (new place) lat lng', { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() }); // Do something with the selected place
        setEndPoint({ latitude: place.geometry.location.lat(), longitude: place.geometry.location.lng() });
        setValue1(place);
        setAddress1(`${place.name} ${place.formatted_address}`);
        setDropCust({ ...dropCust, address: `${place.name} ${place.formatted_address}` });
        const address = {
          address: `${place.name} ${place.formatted_address}`,
          street_number: '',
          route: '',
          locality: '',
          sublocality_level_1: '',
          administrative_area_level_3: '',
          administrative_area_level_1: '',
          country: '',
          postal_code: ''
        };
        place.address_components.forEach((component) => {
          component.types.forEach((type) => {
            switch (type) {
              case 'street_number':
                address.street_number = component.long_name;
                break;
              case 'route':
                address.route = component.long_name;
                break;
              case 'locality':
                address.locality = component.long_name;
                break;
              case 'sublocality_level_1':
                address.sublocality_level_1 = component.long_name;
                break;
              case 'administrative_area_level_3':
                address.administrative_area_level_3 = component.long_name;
                break;
              case 'administrative_area_level_1':
                address.administrative_area_level_1 = component.long_name;
                break;
              case 'country':
                address.country = component.long_name;
                break;
              case 'postal_code':
                address.postal_code = component.long_name;
                break;
              // Add more cases as needed for other types
            }
          });
        });

        // Use address object as per your requirements
        setDropCust({
          ...dropCust,
          address: address.address,
          doorno: `${address.street_number} ${address.route}`,
          suburb: address.sublocality_level_1,
          city: address.locality,
          postcode: address.postal_code,
          latitude: place.geometry.location.lat(),
          longitude: place.geometry.location.lng()
        });
        console.log('Drop Address:', address);
      });
    }
  }, [inputValue3]);

  // ============================================= || gettenantlocations (branches) || =============================================
  const gettenantlocations = async () => {
    try {
      const res = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantlocations/?tenantid=${tid}`);
      console.log('gettenantlocations', res.data.details);
      setTenantlocations(res.data.details);
      if (res.data.details.length == 1) {
        setIsLocation(true);
        setTenanatLocoId(res.data.details[0].locationid);
      }
    } catch (err) {
      console.log('gettenantlocations', err);
    }
  };
  useEffect(() => {
    gettenantlocations();
  }, []);

  return (
    <>
      {loading && <Loader />}

      <Grid container rowSpacing={4.5} columnSpacing={2.75}>
        <CardActions
          sx={{
            position: 'sticky',
            top: '60px',
            bgcolor: theme.palette.background.default,
            zIndex: 1000,
            width: '100%'
          }}
        >
          <Grid item xs={12}>
            <Stack
              // direction={{ md: 'row', xs: 'column' }}
              direction={{ md: 'row' }}
              sx={{ p: 1, ml: 1, mt: 1 }}
              justifyContent="space-between"
              alignItems="center"
              width="100%"
            >
              <Typography variant="h3">Create Order</Typography>
              {tenantLocations.length == 1 ? (
                <TextField
                  variant="outlined"
                  label={'Business Location'}
                  value={tenantLocations[0].locationname}
                  focused
                  sx={{ width: 300 }}
                  InputProps={{
                    style: { color: theme.palette.primary.main },
                    startAdornment: (
                      <InputAdornment position="start">
                        <MyLocationIcon color="primary" />
                      </InputAdornment>
                    )
                  }}
                />
              ) : (
                <Autocomplete
                  disablePortal
                  id="combo-box-demo"
                  options={tenantLocations || []}
                  getOptionLabel={(option) => `${option.locationname} (${option.locationsuburb})` || ''}
                  sx={{ width: 300 }}
                  renderInput={(params) => <TextField {...params} label="Select Business Locations" />}
                  onChange={(event, value, reason) => {
                    if (value) {
                      console.log('locationid', value.locationid);
                      setTenanatLocoId(value.locationid);
                      setIsLocation(true);
                    }
                    if (reason == 'clear') {
                      setIsLocation(false);
                    }
                  }}
                />
              )}
            </Stack>
          </Grid>
        </CardActions>

        <Grid item xs={12} sx={{ mt: -4 }}>
          <Box sx={{ overflow: 'auto', border: 1, borderColor: 'grey.200', borderRadius: 2, backgroundColor: '#fff', p: 3 }}>
            <Grid container spacing={1}>
              <Grid item xs={12}>
                <Grid container spacing={2} sx={{ height: '100%' }}>
                  {/* ================================================= || Pickup || ================================================= */}
                  <Grid item xs={12} sm={6}>
                    <MainCard sx={{ height: '100%' }}>
                      <Grid container spacing={2}>
                        <Grid item xs={12}>
                          <Stack direction={'row'} justifyContent={'space-between'}>
                            <Typography variant="h5" sx={{ mb: 0 }}>
                              Pickup Details
                            </Typography>
                            <Stack direction={'row'} spacing={1} alignItems={'center'}>
                              {/* <Typography>Customer</Typography>
                              <Switch
                                size="small"
                                checked={pickupswitch}
                                onChange={(e, val) => {
                                  if (val) {
                                    setPickupswitch(true);
                                    setDeliverytype('B');
                                    setTenantinfo({});
                                  } else {
                                    setPickupswitch(false);
                                    setTenantinfo({});
                                    setDeliverytype('C');
                                  }
                                }}
                              />
                              <Typography>Business</Typography> */}
                              <Button
                                variant="outlined"
                                sx={{
                                  '&:hover': {
                                    bgcolor: theme.palette.primary.main,
                                    color: 'white'
                                  }
                                }}
                                onClick={() => {
                                  if (!isLocation) {
                                    opentoast('Select Business Location', 'warning');
                                  } else {
                                    setIsCustomerOpen(true);
                                    setpickordrop(1);
                                    setPickCust({});
                                    setAddId1(1);
                                    setInputValue2('');
                                    setSearchCustList('');
                                  }
                                }}
                              >
                                Saved Locations
                              </Button>
                            </Stack>
                          </Stack>
                          {/* new1 */}
                          {/* <Autocomplete
                            disabled={!isLocation}
                            fullWidth
                            disablePortal
                            id="combo-box-demo"
                            // options={customerlist}
                            options={clientdetailarr}
                            getOptionLabel={(option) => `${option.firstname} (${option.contactno})`}
                            sx={{ mt: 2, mb: 1 }}
                            renderInput={(params) => (
                              <TextField
                                {...params}
                                label="Search"
                                onChange={(e) => {
                                  setSearchCustList(e.target.value);
                                }}
                                InputProps={{
                                  ...params.InputProps,
                                  inputProps: {
                                    ...params.inputProps,
                                    maxLength: 10
                                  }
                                }}
                              />
                            )}
                            onChange={(e, val, reason) => {
                              if (val) {
                                console.log('pickcustNew', val);
                                setStartPoint({ latitude: val.latitude, longitude: val.longitude });
                                setPickCust(val);
                                setAddId1(1);
                                setSearchCustList('');
                              }
                              if (reason == 'clear') {
                                setSearchCustList('');
                              }
                            }}
                            noOptionsText={
                              /^[0-9]{10}$/.test(searchCustList) ? (
                                <Stack sx={{ width: '100%', display: 'flex', alignItems: 'end', justifyContent: 'end' }}>
                                  <Chip
                                    label={'OK'}
                                    sx={{
                                      width: 50,
                                      cursor: 'pointer',
                                      '&:hover': { background: theme.palette.primary.main, color: 'white' }
                                    }}
                                    onClick={() => {
                                      setPickCust({ ...pickCust, contactno: searchCustList });
                                      handleOkClick1();
                                      setSearchCustList('');
                                    }}
                                  />
                                </Stack>
                              ) : null
                            }
                          /> */}
                        </Grid>

                        <Grid item xs={12} sx={{}}>
                          <Grid container spacing={4}>
                            {/* ====================================== ||Contact Number(pick) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                type="number"
                                InputProps={{
                                  inputProps: {
                                    maxLength: 10
                                  },
                                  startAdornment: (
                                    <IconButton>
                                      <FaPhoneAlt />
                                    </IconButton>
                                  )
                                }}
                                variant="outlined"
                                label="Contact Number"
                                value={pickCust.contactno}
                                onChange={(e) => {
                                  if (e.target.value.length <= 10) {
                                    setPickCust({ ...pickCust, contactno: e.target.value });
                                  }
                                }}
                              />
                            </Grid>
                            {/* ====================================== ||Contact Name (pick) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                inputRef={textFieldRef1}
                                disabled={!isLocation}
                                fullWidth
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <FaUser />
                                    </IconButton>
                                  )
                                }}
                                variant="outlined"
                                label="Contact Name"
                                value={pickCust.firstname}
                                onChange={(e) => {
                                  setPickCust({ ...pickCust, firstname: e.target.value });
                                }}
                              />
                            </Grid>

                            {/* ====================================== || Address (pick) || ====================================== */}

                            <Grid item xs={12}>
                              <Stack spacing={1.25} sx={{ mt: 0 }}>
                                {addId1 == 0 ? (
                                  <div>
                                    <TextField
                                      variant="outlined"
                                      label="Address"
                                      disabled={!isLocation}
                                      id="addressAuto1"
                                      fullWidth
                                      value={inputValue2}
                                      onChange={(e) => setInputValue2(e.target.value)}
                                      InputProps={{
                                        endAdornment: (
                                          <IconButton
                                            onClick={() => {
                                              setInputValue2('');
                                              setPickCust({
                                                ...pickCust,
                                                doorno: '',
                                                suburb: '',
                                                city: '',
                                                postcode: '',
                                                landmark: ''
                                              });
                                              setShowDistance(false);
                                              setStartPoint({ latitude: 0, longitude: 0 });
                                            }}
                                            size="small"
                                          >
                                            <CloseIcon />
                                          </IconButton>
                                        )
                                      }}
                                    />
                                  </div>
                                ) : (
                                  <TextField
                                    InputProps={{
                                      endAdornment: (
                                        <IconButton
                                          onClick={() => {
                                            setAddId1(0);
                                            setPickCust({
                                              ...pickCust,
                                              // firstname: '',
                                              // contactno: '',
                                              doorno: '',
                                              suburb: '',
                                              city: '',
                                              postcode: '',
                                              landmark: ''
                                            });
                                            setShowDistance(false);
                                            setStartPoint({ latitude: 0, longitude: 0 });
                                          }}
                                        >
                                          <ClearIcon />
                                        </IconButton>
                                      )
                                    }}
                                    variant="outlined"
                                    placeholder="Select"
                                    value={pickCust.address}
                                    onChange={(e) => {
                                      setPickCust({ ...pickCust, address: e.target.value });
                                      if (e.target.value == '') {
                                        setAddId1(0);
                                        setShowDistance(false);
                                        setStartPoint({ latitude: 0, longitude: 0 });
                                      }
                                    }}
                                  />
                                )}
                              </Stack>
                            </Grid>

                            {/* ====================================== ||Door No (pick) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <GiDoorHandle />
                                    </IconButton>
                                  )
                                }}
                                variant="outlined"
                                label="Door No / Street"
                                value={pickCust.doorno}
                                onChange={(e) => {
                                  setPickCust({ ...pickCust, doorno: e.target.value });
                                }}
                              />
                            </Grid>
                            {/* ====================================== || Suburb (pick) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <FaLocationDot />
                                    </IconButton>
                                  )
                                }}
                                variant="outlined"
                                label="Location"
                                value={pickCust.suburb}
                                onChange={(e) => {
                                  setPickCust({ ...pickCust, suburb: e.target.value });
                                }}
                              />
                            </Grid>
                            {/* ====================================== || City (pick) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <MdLocationCity />
                                    </IconButton>
                                  )
                                }}
                                variant="outlined"
                                label="City"
                                value={pickCust.city}
                                onChange={(e) => {
                                  setPickCust({ ...pickCust, city: e.target.value });
                                }}
                              />
                            </Grid>
                            {/* ====================================== || postcode (pick) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <TbMapPinCode />
                                    </IconButton>
                                  )
                                }}
                                variant="outlined"
                                label="Postcode"
                                value={pickCust.postcode}
                                onChange={(e) => {
                                  setPickCust({ ...pickCust, postcode: e.target.value });
                                }}
                              />
                            </Grid>
                            {/* ====================================== || Landmark (pick) || ====================================== */}
                            <Grid item xs={12}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <FaLandmarkDome />
                                    </IconButton>
                                  )
                                }}
                                variant="outlined"
                                label="Landmark"
                                value={pickCust.landmark}
                                onChange={(e) => {
                                  setPickCust({ ...pickCust, landmark: e.target.value });
                                }}
                              />
                            </Grid>
                          </Grid>
                        </Grid>
                        {/* <Stack
                          sx={{ width: '100%', display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'end', mt: 2 }}
                        >
                          <Button
                            variant="outlined"
                            sx={{
                              width: 130,
                              '&:hover': {
                                bgcolor: theme.palette.primary.main,
                                color: 'white'
                              }
                            }}
                            onClick={() => {
                              console.log('pickCust', pickCust);
                              console.log('dropCust', dropCust);
                            }}
                          >
                            Save for Later
                          </Button>
                        </Stack> */}
                      </Grid>
                    </MainCard>
                  </Grid>
                  {/* ================================================= || Drop || ================================================= */}
                  <Grid item xs={12} sm={6}>
                    <MainCard sx={{ height: '100%' }}>
                      <Grid container spacing={2} sx={{ height: '100%' }}>
                        <Grid item xs={12} sx={{ height: '100%' }}>
                          <Stack direction={'row'} justifyContent={'space-between'}>
                            <Typography variant="h5" sx={{ mb: 2 }}>
                              Drop Details
                            </Typography>
                            <Stack direction={'row'} alignItems={'center'}>
                              {/* <Typography>Customer</Typography> */}
                              {/* <Switch
                                checked={dropswitch}
                                onChange={(e, val) => {
                                  if (val) {
                                    setDropswitch(true);
                                    setClientinfo({});
                                  } else {
                                    setDropswitch(false);
                                    setClientinfo({});
                                  }
                                }}
                                size="small"
                              />
                              <Typography>Business</Typography> */}
                              <Button
                                variant="outlined"
                                sx={{
                                  '&:hover': {
                                    bgcolor: theme.palette.primary.main,
                                    color: 'white'
                                  }
                                }}
                                onClick={() => {
                                  if (!isLocation) {
                                    opentoast('Select Business Location', 'warning');
                                  } else {
                                    setIsCustomerOpen(true);
                                    setpickordrop(2);
                                    setAddId2(1);
                                    setInputValue3('');
                                    setSearchCustList('');
                                  }
                                }}
                              >
                                Saved Locations
                              </Button>
                            </Stack>
                          </Stack>
                          {/* new2 */}
                          {/* <Autocomplete
                            disabled={!isLocation}
                            fullWidth
                            disablePortal
                            id="combo-box-demo"
                            // options={customerlist}
                            options={clientdetailarr}
                            getOptionLabel={(option) => `${option.firstname} (${option.contactno})`}
                            sx={{ mt: 0, mb: 1 }}
                            renderInput={(params) => (
                              <TextField
                                {...params}
                                label="Search"
                                onChange={(e) => {
                                  setSearchCustList(e.target.value);
                                }}
                                InputProps={{
                                  ...params.InputProps,
                                  inputProps: {
                                    ...params.inputProps,
                                    maxLength: 10
                                  }
                                }}
                              />
                            )}
                            onChange={(e, val, reason) => {
                              if (val) {
                                if (pickCust.customerid === val.customerid) {
                                  opentoast('Select Another Customer', 'error');
                                  setSearchCustList('');
                                } else {
                                  console.log('DropClient', val);
                                  setDropCust(val);
                                  setEndPoint({ latitude: val.latitude, longitude: val.longitude });
                                  setAddId2(1);
                                }
                              }
                              if (reason == 'clear') {
                                setSearchCustList('');
                              }
                            }}
                            noOptionsText={
                              /^[0-9]{10}$/.test(searchCustList) ? (
                                <Stack sx={{ width: '100%', display: 'flex', alignItems: 'end', justifyContent: 'end' }}>
                                  <Chip
                                    label={'OK'}
                                    sx={{
                                      width: 50,
                                      cursor: 'pointer',
                                      '&:hover': { background: theme.palette.primary.main, color: 'white' }
                                    }}
                                    onClick={() => {
                                      setDropCust({ ...dropCust, contactno: searchCustList });
                                      handleOkClick2();
                                      setSearchCustList('');
                                    }}
                                  />
                                </Stack>
                              ) : null
                            }
                          /> */}
                        </Grid>

                        <Grid item xs={12}>
                          <Grid container spacing={4}>
                            {/* ====================================== ||Contact Number (drop) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                type="number"
                                variant="outlined"
                                label="Contact Number"
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <FaPhoneAlt />
                                    </IconButton>
                                  )
                                }}
                                value={dropCust.contactno}
                                onChange={(e) => {
                                  if (e.target.value.length <= 10) {
                                    setDropCust({ ...dropCust, contactno: e.target.value });
                                  }
                                }}
                              />
                            </Grid>
                            {/* ====================================== ||Contact Name (drop) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                inputRef={textFieldRef2}
                                disabled={!isLocation}
                                fullWidth
                                variant="outlined"
                                label="Contact Name"
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <FaUser />
                                    </IconButton>
                                  )
                                }}
                                value={dropCust.firstname}
                                onChange={(e) => {
                                  setDropCust({ ...dropCust, firstname: e.target.value });
                                }}
                              />
                            </Grid>

                            <Grid item xs={12}>
                              <Stack spacing={1.25} sx={{ mt: 0 }}>
                                {addId2 == 0 ? (
                                  <div>
                                    <TextField
                                      id="addressAuto2"
                                      disabled={!isLocation}
                                      label="Address"
                                      fullWidth
                                      value={inputValue3}
                                      onChange={(e) => setInputValue3(e.target.value)}
                                      InputProps={{
                                        endAdornment: (
                                          <IconButton
                                            onClick={() => {
                                              setInputValue3('');
                                              setDropCust({
                                                ...dropCust,
                                                doorno: '',
                                                suburb: '',
                                                city: '',
                                                postcode: '',
                                                landmark: ''
                                              });
                                              setShowDistance(false);
                                              setEndPoint({ latitude: 0, longitude: 0 });
                                            }}
                                            size="small"
                                          >
                                            <CloseIcon />
                                          </IconButton>
                                        )
                                      }}
                                    />
                                  </div>
                                ) : (
                                  <TextField
                                    disabled={!isLocation}
                                    InputProps={{
                                      endAdornment: (
                                        <IconButton
                                          onClick={() => {
                                            setAddId2(0);
                                            setDropCust({
                                              ...dropCust,
                                              firstname: '',
                                              contactno: '',
                                              doorno: '',
                                              suburb: '',
                                              city: '',
                                              postcode: '',
                                              landmark: ''
                                            });
                                            setShowDistance(false);
                                            setEndPoint({ latitude: 0, longitude: 0 });
                                          }}
                                        >
                                          <ClearIcon />
                                        </IconButton>
                                      )
                                    }}
                                    variant="outlined"
                                    placeholder="Select"
                                    value={dropCust.address}
                                    onChange={(e) => {
                                      setPickCust({ ...dropCust, address: e.target.value });
                                      if (e.target.value == '') {
                                        setAddId2(0);
                                        setShowDistance(false);
                                        setEndPoint({ latitude: 0, longitude: 0 });
                                      }
                                    }}
                                  />
                                )}
                              </Stack>
                            </Grid>

                            {/* ====================================== ||Door No (drop) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                variant="outlined"
                                label="Door No / Street"
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <GiDoorHandle />
                                    </IconButton>
                                  )
                                }}
                                value={dropCust.doorno}
                                onChange={(e) => {
                                  setDropCust({ ...dropCust, doorno: e.target.value });
                                }}
                              />
                            </Grid>
                            {/* ====================================== ||Suburb (drop) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                variant="outlined"
                                label="Location"
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <FaLocationDot />
                                    </IconButton>
                                  )
                                }}
                                value={dropCust.suburb}
                                onChange={(e) => {
                                  setDropCust({ ...dropCust, suburb: e.target.value });
                                }}
                              />
                            </Grid>
                            {/* ====================================== ||City (drop) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                variant="outlined"
                                label="City"
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <MdLocationCity />
                                    </IconButton>
                                  )
                                }}
                                value={dropCust.city}
                                onChange={(e) => {
                                  setDropCust({ ...dropCust, city: e.target.value });
                                }}
                              />
                            </Grid>

                            {/* ====================================== ||Postcode (drop) || ====================================== */}
                            <Grid item xs={6}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                variant="outlined"
                                label="Postcode"
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <TbMapPinCode />
                                    </IconButton>
                                  )
                                }}
                                value={dropCust.postcode}
                                onChange={(e) => {
                                  setDropCust({ ...dropCust, postcode: e.target.value });
                                }}
                              />
                            </Grid>
                            {/* ====================================== ||Landmark (drop) || ====================================== */}
                            <Grid item xs={12}>
                              <TextField
                                disabled={!isLocation}
                                fullWidth
                                variant="outlined"
                                label="Landmark"
                                InputProps={{
                                  startAdornment: (
                                    <IconButton>
                                      <FaLandmarkDome />
                                    </IconButton>
                                  )
                                }}
                                value={dropCust.landmark}
                                onChange={(e) => {
                                  setDropCust({ ...dropCust, landmark: e.target.value });
                                }}
                              />
                            </Grid>
                          </Grid>
                        </Grid>
                        {/* <Stack
                          sx={{ width: '100%', display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'end', mt: 2 }}
                        >
                          <Button
                            variant="outlined"
                            sx={{
                              width: 130,
                              '&:hover': {
                                bgcolor: theme.palette.primary.main,
                                color: 'white'
                              }
                            }}
                          >
                            Save for Later
                          </Button>
                        </Stack> */}
                      </Grid>
                    </MainCard>
                  </Grid>
                  {/* ================================================= || Time || ================================================= */}
                  <Grid item xs={12} sm={6}>
                    <MainCard sx={{ mt: 2 }}>
                      <Grid container>
                        <Grid item xs={12}>
                          <Typography variant="h5">Date</Typography>
                          <LocalizationProvider dateAdapter={AdapterDayjs} sx={{}}>
                            <DatePicker
                              format="DD-MM-YYYY"
                              onChange={(e) => {
                                let dateres11 = dayjs().diff(dayjs(`${dayjs(e).format('YYYY-MM-DD')}`), 'd');
                                console.log('dateres11');
                                console.log(dateres11);
                                setSelectedtime('');
                                if (dateres11 <= 0) {
                                  console.log('startdate', e);
                                  setStartdate(e);
                                  setEnddate(e);

                                  let arr = [];
                                  timeslotarr.map((val) => {
                                    if (
                                      dayjs().diff(dayjs(`${dayjs(e).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0
                                    ) {
                                      arr.push(val);
                                    }
                                  });
                                  if (arr[0]) {
                                    setOrderarr([
                                      {
                                        sno: 1,
                                        address: '',
                                        customerid: '',
                                        deliverytime: dayjs(arr[0]) || '',
                                        deliverylocationid: '',
                                        clientname: '',
                                        contactno: '',
                                        latitude: '',
                                        longitude: ''
                                      }
                                    ]);
                                  } else {
                                    setOrderarr([]);
                                  }
                                } else {
                                  setAlertmessage('choose Upcoming Date');
                                  opentoast('choose Upcoming Date', 'warning');
                                  setStartdate(NaN);
                                }
                              }}
                              value={dayjs(startdate)}
                              sx={{ width: '100%', mt: 2 }}
                              disablePast
                            />
                          </LocalizationProvider>
                          <Typography variant="h5" sx={{ my: 2 }}>
                            Time
                          </Typography>
                          <MainCard
                            sx={{
                              mt: 1,
                              height: { md: '150px' },

                              overflowY: 'scroll',
                              scrollbarWidth: 'thin', // Hide scrollbar in Firefox
                              '&::-webkit-scrollbar': {
                                width: '3px' // Customize the width of the scrollbar
                              },
                              '&::-webkit-scrollbar-thumb': {
                                backgroundColor: '#65387A', // Customize the scrollbar thumb color
                                borderRadius: '6px' // Round the scrollbar thumb
                              }
                            }}
                          >
                            <Grid container spacing={2}>
                              {timeslotarr.map((val, index) => {
                                if (
                                  dayjs().diff(dayjs(`${dayjs(startdate).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0
                                ) {
                                  return (
                                    <Fragment key={index}>
                                      <Grid item>
                                        <Chip
                                          key={index}
                                          sx={{ cursor: 'pointer' }}
                                          color={dayjs(selectedtime).format('HH:mm') == dayjs(val).format('HH:mm') ? 'primary' : 'default'}
                                          label={dayjs(val).format('hh:mm A')}
                                          onClick={() => {
                                            if (distance > appLocaRadius) {
                                              setOpen4(true);
                                            } else if (showDistance) {
                                              console.log('selectedtime', val);
                                              setSelectedtime(val);
                                            } else {
                                              opentoast('Select Pickup and Drop', 'error');
                                            }
                                          }}
                                        />
                                      </Grid>
                                    </Fragment>
                                  );
                                }
                              })}
                            </Grid>
                          </MainCard>
                        </Grid>
                      </Grid>
                    </MainCard>
                  </Grid>
                  <Grid item xs={12} sm={6} sx={{}}>
                    <MainCard sx={{ mt: 2, height: 330 }}>
                      {showDistance && (
                        <Stack sx={{ display: 'flex', flexDirection: 'row', justifyContent: 'space-between', mb: 3 }}>
                          <Stack spacing={1.5}>
                            <Typography variant="h5">Distance</Typography>

                            <Chip label={`Distance: ${distance} km`} size="medium" variant="contained" color="primary" />
                          </Stack>
                          <Stack spacing={1.5}>
                            <Typography variant="h5">Charges</Typography>
                            <Chip label={`Charge: ₹${totalCharge.toFixed(2)}`} size="medium" variant="contained" color="primary" />
                          </Stack>
                        </Stack>
                      )}
                      <Stack direction={'row'} justifyContent={'space-between'}>
                        <Typography variant="h5">SMS Delivery</Typography>
                        <Switch
                          checked={isSms === 1}
                          onChange={(e) => {
                            setIsSms(e.target.checked ? 1 : 0);
                          }}
                        />
                      </Stack>
                      <Typography variant="h5">Category</Typography>
                      <Autocomplete
                        disablePortal
                        id="combo-box-demo"
                        options={subCat}
                        getOptionLabel={(option) => `${option.subcategoryname}` || ''}
                        sx={{ my: 2, zIndex: '100' }}
                        fullWidth
                        renderInput={(params) => <TextField {...params} label={subCatName == '' ? tenant.subcategoryname : subCatName} />}
                        onChange={(event, value, reason) => {
                          if (value) {
                            console.log(value);
                            setSubCatName(value.subcategoryname);
                            setSubCatId(value.subcategoryid);
                          }
                        }}
                      />
                      <Typography variant="h5">Weight</Typography>
                      <Stack direction={'row'} justifyContent={'space-evenly'} sx={{ border: '1px solid #eee', my: 2, py: 2 }}>
                        <Chip
                          variant="contained"
                          color="default"
                          label="1-10kgs"
                          sx={chipStyle('1-10kgs')}
                          onClick={() => {
                            handleChipClick('1-10kgs');
                            setWeight('1-10kgs');
                          }}
                        />
                        <Chip
                          variant="contained"
                          color="default"
                          label="11-20kgs"
                          sx={chipStyle('11-20kgs')}
                          onClick={() => {
                            handleChipClick('11-20kgs');
                            setWeight('11-20kgs');
                          }}
                        />
                        <Chip
                          variant="contained"
                          color="default"
                          label="21-30kgs"
                          sx={chipStyle('21-30kgs')}
                          onClick={() => {
                            handleChipClick('21-30kgs');
                            setWeight('21-30kgs');
                          }}
                        />
                      </Stack>
                    </MainCard>
                  </Grid>
                </Grid>
              </Grid>
            </Grid>
            {/* ================================================= || Notes || ================================================= */}
            <MainCard sx={{ mt: 2 }}>
              <Grid container>
                <Grid item xs={12}>
                  <TextField
                    focused
                    variant="outlined"
                    id="outlined-multiline-static"
                    sx={{ width: '100%', height: '100%', mb: 2 }}
                    multiline
                    rows={1}
                    label="Notes"
                    placeholder="Notes"
                    value={otherinstructions}
                    onChange={(e) => setOtherinstructions(e.target.value)}
                  />

                  {/* </Grid> */}
                </Grid>
                <Stack direction="row" justifyContent={'end'} sx={{ mt: 2, width: '100%' }}>
                  <Button
                    disabled={!showDistance}
                    variant="contained"
                    sx={{
                      '&:hover': {
                        bgcolor: 'white',
                        color: theme.palette.primary.main,
                        border: `1px solid ${theme.palette.primary.main}`
                      }
                    }}
                    onClick={() => {
                      setLoading(true);
                      createsubmitobj2();
                      setTimeout(() => {
                        setLoading(false);
                      }, 1000);
                    }}
                  >
                    Create
                  </Button>
                </Stack>
              </Grid>
            </MainCard>
          </Box>
        </Grid>

        {/* <Dialog
          open={open3}
          onClose={closetimemodal}
          sx={{ '& .MuiDialog-paper': { p: 0 }, '& .MuiBackdrop-root': { opacity: '0.5 !important' } }}
        >
          <DialogTitle>
            <Stack direction="row" justifyContent="space-between" alignItems="center">
              <Typography variant="h5">Select Time</Typography>
            </Stack>
          </DialogTitle>
          <Divider />
          <DialogContent sx={{ p: 2.5 }}>
            <Grid container spacing={2}>
              {timeslotarr.map((val) => {
                if (
                  dayjs().diff(dayjs(`${dayjs(startdate).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0
                  // && currentsno
                ) {
                  return (
                    <>
                      <Grid item>
                        <Chip
                          sx={{ cursor: 'pointer' }}
                          label={dayjs(val).format('hh:mm A')}
                          onClick={() => {
                            setSelectedtime(dayjs(val).format('hh:mm A'));
                          }}
                        />
                      </Grid>
                    </>
                  );
                }
              })}
            </Grid>
          </DialogContent>
          <Divider />
          <DialogActions sx={{ p: 2.5, minWidth: '300px' }}>
            <Button
              variant="contained"
              color="error"
              onClick={() => {
                closetimemodal();
              }}
            >
              Cancel
            </Button>
            <Button onClick={closetimemodal} color="primary" variant="contained">
              OK
            </Button>
          </DialogActions>
        </Dialog> */}

        {/* ============================================= || saved address Dialog || ============================================= */}
        <Dialog
          open={isCustomerOpen}
          onClose={() => {
            setIsCustomerOpen(false);
          }}
          fullWidth
          sx={{ minWidth: 'lg' }}
        >
          <DialogTitle sx={{ bgcolor: theme.palette.primary.main, color: 'white' }}>
            <Stack>
              <Typography variant="h4"> {`Select Location (${pickordrop === 1 ? 'Pickup' : 'Drop'})`}</Typography>
              <FormControl
                sx={{
                  width: '100%',
                  mt: 1
                }}
              >
                <Stack spacing={2} sx={{ py: 0.2 }}>
                  <OutlinedInput
                    fullWidth
                    id="input-search-header"
                    placeholder="Search"
                    value={searchCustList}
                    onChange={(e) => setSearchCustList(e.target.value)}
                    // onChange={handleSearch}
                    sx={{
                      '& .MuiOutlinedInput-input': {
                        p: '10.5px 0px 12px'
                      },
                      bgcolor: 'white'
                    }}
                    startAdornment={
                      <InputAdornment position="start">
                        <SearchOutlined style={{ fontSize: 'small' }} />
                      </InputAdornment>
                    }
                    endAdornment={
                      <IconButton
                        sx={{ visibility: searchCustList ? 'visible' : 'hidden' }}
                        onClick={() => {
                          setSearchCustList('');
                        }}
                      >
                        <ClearIcon />
                      </IconButton>
                    }
                    autoComplete="off"
                  />
                </Stack>
              </FormControl>
            </Stack>
          </DialogTitle>
          <Divider />
          <DialogContent sx={{ p: 2.5 }}>
            {customerlist.length == 0 ? (
              <Stack spacing={2} direction={'row'} alignItems={'center'} justifyContent={'center'} sx={{ minHeight: 600, maxHeight: 600 }}>
                <Empty />
              </Stack>
            ) : (
              <Stack spacing={2} sx={{ minHeight: 600, maxHeight: 600 }}>
                {customerlist &&
                  customerlist.map((address, index) => (
                    <Button
                      onClick={() => {
                        setIsCustomerOpen(false);
                        if (pickordrop === 1) {
                          console.log('PickupClient', address);

                          setStartPoint({ latitude: address.latitude, longitude: address.longitude });
                          setPickCust(address);
                        } else {
                          console.log('DropClient', address);
                          setDropCust(address);
                          setEndPoint({ latitude: address.latitude, longitude: address.longitude });
                        }
                      }}
                      disabled={pickCust.customerid === address.customerid}
                      key={index}
                      sx={{
                        width: '100%',
                        border: '1px solid',
                        borderColor: 'grey.200',
                        borderRadius: 1,
                        p: 1.25,
                        // bgcolor: pickCust.customerid === address.customerid ? theme.palette.primary.main : null,
                        // color: pickCust.customerid === address.customerid ? 'white' : null,
                        '&:hover': {
                          // bgcolor: pickCust.customerid === address.customerid ? theme.palette.primary.main : theme.palette.primary.lighter,
                          // color: pickCust.customerid === address.customerid ? 'white' : null
                        }
                      }}
                    >
                      <div style={{ width: '100%' }}>
                        <Typography variant="subtitle1" sx={{ textAlign: 'left' }}>
                          {`${address.firstname} (${address.contactno})`}
                        </Typography>

                        <Typography variant="body2" color="secondary" sx={{ textAlign: 'left' }}>
                          {address.address}
                        </Typography>
                      </div>
                    </Button>
                  ))}
              </Stack>
            )}
          </DialogContent>
          <Divider />
          <DialogActions sx={{ p: 2.5 }}>
            <Button
              color="error"
              variant="outlined"
              sx={{
                '&:hover': {
                  bgcolor: 'red',
                  color: 'white'
                }
              }}
              onClick={() => {
                setIsCustomerOpen(false);
              }}
            >
              Cancel
            </Button>
            {/* <Button
              onClick={() => {
                setIsCustomerOpen(false);
              }}
              color="primary"
              variant="contained"
            >
              ok
            </Button> */}
          </DialogActions>
        </Dialog>

        <Dialog
          // anchor={'right'}
          open={open4}
          onClose={() => {
            setOpen4(false);
          }}
        >
          <DialogTitle sx={{ textAlign: 'center' }}>
            <HighlightOffIcon sx={{ fontSize: 60, color: theme.palette.error.main }} />
            <Typography variant="h3" sx={{ color: theme.palette.error.main }}>
              Error
            </Typography>
          </DialogTitle>
          <DialogContent>
            <Typography variant="h4" color={'secondary'}>
              Service not available at this location
            </Typography>
          </DialogContent>
          <DialogActions
            sx={{
              bgcolor: theme.palette.error.main,
              display: 'flex',
              alignItems: 'center',
              justifyContent: 'center',
              fontSize: 20,
              color: 'white',
              cursor: 'pointer'
            }}
            onClick={() => {
              setOpen4(false);
            }}
          >
            Close
          </DialogActions>
        </Dialog>
      </Grid>
    </>
  );
};

export default Createorder1;
