From bea91647915535d5da0fb345b7fa750d173033e4 Mon Sep 17 00:00:00 2001 From: joshikannan Date: Mon, 22 Jan 2024 16:25:54 +0530 Subject: [PATCH] createCustomer updated --- src/pages/nearle/clients/createclient.js | 984 ++++++++++++----------- src/pages/nearle/orders/createorder1.js | 3 + 2 files changed, 502 insertions(+), 485 deletions(-) diff --git a/src/pages/nearle/clients/createclient.js b/src/pages/nearle/clients/createclient.js index c5002bc..ab51520 100644 --- a/src/pages/nearle/clients/createclient.js +++ b/src/pages/nearle/clients/createclient.js @@ -2,11 +2,7 @@ import { useEffect, useState } from 'react'; // material-ui import { useTheme } from '@mui/material/styles'; -import { - Box, Button, FormLabel, Grid, InputLabel, - MenuItem, - Select, Stack, TextField, Typography -} from '@mui/material'; +import { Box, Button, FormLabel, Grid, InputLabel, MenuItem, Select, Stack, TextField, Typography } from '@mui/material'; // third-party // import { PatternFormat } from 'react-number-format'; @@ -15,18 +11,18 @@ import { import Avatar from 'components/@extended/Avatar'; import MainCard from 'components/MainCard'; import { - // facebookColor, linkedInColor, twitterColor - ThemeMode + // facebookColor, linkedInColor, twitterColor + ThemeMode } from 'config'; import axios from 'axios'; // assets import { - // FacebookFilled, LinkedinFilled, TwitterSquareFilled, - CameraOutlined + // FacebookFilled, LinkedinFilled, TwitterSquareFilled, + CameraOutlined } from '@ant-design/icons'; -import { usePlacesWidget } from "react-google-autocomplete"; +import { usePlacesWidget } from 'react-google-autocomplete'; import Loader from 'components/Loader'; -import Geocode from "react-geocode"; +import Geocode from 'react-geocode'; import { enqueueSnackbar } from 'notistack'; import { useNavigate } from 'react-router'; // import { setLocationType } from 'react-geocode'; @@ -45,309 +41,295 @@ import { useNavigate } from 'react-router'; // }; const Createclient = () => { - const theme = useTheme(); - const [selectedImage, setSelectedImage] = useState(undefined); - const [avatar, setAvatar] = useState( - // avatarImage(`./default.png`) - ); - const [businessname, setBusinessname] = useState(''); - const [businessno, setBusinessno] = useState(''); - // const [role, setRole] = useState(''); - const [mobilenumber, setMobilenumber] = useState('') - const [emailaddress, setEmailaddress] = useState('') - const [city, setCity] = useState('') - const [zipcode, setZipcode] = useState(''); - const [address, setAddress] = useState(''); - const [state, setState] = useState(''); - const [suburb, setSuburb] = useState(''); - const [latlong, setLatlong] = useState({}); - const [profiledetails, setProfiledetails] = useState({}); - const [primarycontact, setPrimarycontact] = useState('') - const [firstname, setFirstname] = useState(''); - const [doorno, setDoorno] = useState(''); - const [landmark, setLandmark] = useState(''); - const [tenantinfo, setTenantinfo] = useState({}); + const theme = useTheme(); + const [selectedImage, setSelectedImage] = useState(undefined); + const [avatar, setAvatar] = useState(); + // avatarImage(`./default.png`) + const [businessname, setBusinessname] = useState(''); + const [businessno, setBusinessno] = useState(''); + // const [role, setRole] = useState(''); + const [mobilenumber, setMobilenumber] = useState(''); + const [emailaddress, setEmailaddress] = useState(''); + const [city, setCity] = useState(''); + const [zipcode, setZipcode] = useState(''); + const [address, setAddress] = useState(''); + const [state, setState] = useState(''); + const [suburb, setSuburb] = useState(''); + const [latlong, setLatlong] = useState({}); + const [profiledetails, setProfiledetails] = useState({}); + const [primarycontact, setPrimarycontact] = useState(''); + const [firstname, setFirstname] = useState(''); + const [doorno, setDoorno] = useState(''); + const [landmark, setLandmark] = useState(''); + const [tenantinfo, setTenantinfo] = useState({}); + const navigate = useNavigate(); + Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); + // Geocode.setApiKey('AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8'); - const navigate = useNavigate(); + const [loading, setLoading] = useState(false); - Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); - // Geocode.setApiKey('AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8'); - - - const [loading, setLoading] = useState(false) - - useEffect(() => { - // fetchprofiledetails(localStorage.getItem('appuserid')); - // fetchprofiledetails(181); - if (localStorage.getItem('tenantid')) { - fetchtenantinfo(localStorage.getItem('tenantid')) - } - }, []) - - useEffect(() => { - try { - Geocode.fromAddress(address).then( - (response) => { - if (response.status == 'OK') { - - - const { lat, lng } = response.results[0].geometry.location; - setLatlong({ - lat, lng - }) - console.log(response); - - - } - - }, (error) => { - console.log(error) - } - ); - - } catch (err) { - console.log(err) - - } - - }, [address]) - - const opentoast = (message) => { - - enqueueSnackbar(message, { - variant: 'error', anchorOrigin: { vertical: 'top', horizontal: 'right' }, - autoHideDuration: 2000 - }) - // console.log(alertmessage) + useEffect(() => { + // fetchprofiledetails(localStorage.getItem('appuserid')); + // fetchprofiledetails(181); + if (localStorage.getItem('tenantid')) { + fetchtenantinfo(localStorage.getItem('tenantid')); } + }, []); - const fetchprofiledetails = async (userid) => { - if (userid) { - setLoading(true) - try { - await axios.get(`${process.env.REACT_APP_URL2}/tenants/getclient?id=${userid}`) - .then((res) => { - console.log(res) - if (res.data.message === 'Successful') { - let res1 = res.data.details; - setProfiledetails(res1) - setBusinessname(res1.tenantname) - setBusinessno(res1.registrationno); - setMobilenumber(res1.contactno); - setPrimarycontact(res1.primarycontact) - setEmailaddress(res1.primaryemail); - setAddress(res1.address); - setCity(res1.city); - setZipcode(res1.postcode); - setState(res1.state); - setSuburb(res1.suburb); - setLatlong({ - lat: res1.latitude, - lng: res1.longitude - }) - } - setLoading(false) - }).catch((err) => { - console.log(err) - setLoading(false) - - }) - - } catch (err) { - console.log(err) - setLoading(false) - - } - } - } - - const fetchtenantinfo = async (tid) => { - setLoading(true) - await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tid}`) - .then((res) => { - console.log(res) - if (res.data.status) { - setTenantinfo(res.data.details); - } - setLoading(false) - }).catch((err) => { - console.log(err) - setLoading(false) - }) - } - - useEffect(() => { - if (selectedImage) { - setAvatar(URL.createObjectURL(selectedImage)); - } - }, [selectedImage]); - - - - 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 || '') - - // setAddress(place.formatted_address) - }, - // inputAutocompleteValue: "country", - options: { - // componentRestrictions: 'us', - // types: ["establishment"] - types: ['address' || 'geocode'] + useEffect(() => { + try { + Geocode.fromAddress(address).then( + (response) => { + if (response.status == 'OK') { + const { lat, lng } = response.results[0].geometry.location; + setLatlong({ + lat, + lng + }); + console.log(response); + } }, + (error) => { + console.log(error); + } + ); + } catch (err) { + console.log(err); + } + }, [address]); + + const opentoast = (message) => { + enqueueSnackbar(message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 }); + // console.log(alertmessage) + }; - - - const createprofile = async () => { - console.log('res', businessname, businessno, mobilenumber, emailaddress, address, city, zipcode) - - // if (!businessname) { - // opentoast('Fill Business name') - // } else if (!businessno) { - // opentoast('Fill Registration No') - // } - // else - if (!firstname) { - opentoast('Fill Full name') - } else if (!mobilenumber) { - opentoast('Fill Mobile Number') - } - // else if (!emailaddress) { - // opentoast('Fill emailaddress') - // } - else if (!address) { - opentoast('Fill Address') - } else if (!city) { - opentoast('Fill City') - } else if (!zipcode) { - opentoast('Fill post code') - } else if (!suburb) { - opentoast('Fill suburb') - } - // else if (!emailaddress) { - // opentoast('Fill emailaddress') - // } - else if (!latlong.lat || !latlong.lng) { - opentoast('Choose valid address') - } else { - let obj = { - "customerid": 0, - "configid": 1, - "firstname": firstname, - "applocationid": tenantinfo.applolcationid, - "profileimage": "", - "dialcode": "+91", - "contactno": mobilenumber, - "devicetype": "", - "deviceid": "", - "customertoken": "", - "address": address, - "suburb": suburb, - "city": city, - "state": state, - "postcode": zipcode, - "landmark": landmark, - "doorno": doorno, - "latitude": latlong.lat.toString(), - "longitude": latlong.lng.toString(), - "tenantid": parseInt(localStorage.getItem('tenantid')), - "email" : emailaddress, - "primaryaddress":1 + const fetchprofiledetails = async (userid) => { + if (userid) { + setLoading(true); + try { + await axios + .get(`${process.env.REACT_APP_URL2}/tenants/getclient?id=${userid}`) + .then((res) => { + console.log(res); + if (res.data.message === 'Successful') { + let res1 = res.data.details; + setProfiledetails(res1); + setBusinessname(res1.tenantname); + setBusinessno(res1.registrationno); + setMobilenumber(res1.contactno); + setPrimarycontact(res1.primarycontact); + setEmailaddress(res1.primaryemail); + setAddress(res1.address); + setCity(res1.city); + setZipcode(res1.postcode); + setState(res1.state); + setSuburb(res1.suburb); + setLatlong({ + lat: res1.latitude, + lng: res1.longitude + }); } - - console.log(obj) - - setLoading(true) - try { - await axios.post(`${process.env.REACT_APP_URL}/customers/create`, obj) - .then((res) => { - console.log(res) - if (res.data.status) { - - enqueueSnackbar(' Created Successfully ', { - variant: 'success', anchorOrigin: { vertical: 'top', horizontal: 'right' }, - autoHideDuration: 2000 - }) - navigate('/customers') - // setTimeout(()=>{ - // fetchprofiledetails(localStorage.getItem('appuserid')); - - // },2000) - } else if (res.data.message == "Customer Already available") { - enqueueSnackbar("Customer Already available", { - variant: 'error', anchorOrigin: { vertical: 'top', horizontal: 'right' }, - autoHideDuration: 2000 - }) - } - setLoading(false) - }).catch((err) => { - console.log(err) - - setLoading(false) - enqueueSnackbar(err.message, { - variant: 'error', anchorOrigin: { vertical: 'top', horizontal: 'right' }, - autoHideDuration: 2000 - }) - - }) - - } catch (err) { - console.log(err) - setLoading(false) - - } - } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } } + }; - // const [experience, setExperience] = useState('0'); + const fetchtenantinfo = async (tid) => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tid}`) + .then((res) => { + console.log('fetchtenantinfo', res.data.details); + if (res.data.status) { + setTenantinfo(res.data.details); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; - // const handleChange = (event) => { - // setExperience(event.target.value); - // }; - return <> - {(loading) && } + useEffect(() => { + if (selectedImage) { + setAvatar(URL.createObjectURL(selectedImage)); + } + }, [selectedImage]); - - - Create Customer - - - - - {/* + 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 || ''); + + // setAddress(place.formatted_address) + }, + // inputAutocompleteValue: "country", + options: { + // componentRestrictions: 'us', + // types: ["establishment"] + types: ['address' || 'geocode'] + } + }); + + const createprofile = async () => { + console.log('res', businessname, businessno, mobilenumber, emailaddress, address, city, zipcode); + + // if (!businessname) { + // opentoast('Fill Business name') + // } else if (!businessno) { + // opentoast('Fill Registration No') + // } + // else + if (!firstname) { + opentoast('Fill Full name'); + } else if (!mobilenumber) { + opentoast('Fill Mobile Number'); + } + // else if (!emailaddress) { + // opentoast('Fill emailaddress') + // } + else if (!address) { + opentoast('Fill Address'); + } else if (!city) { + opentoast('Fill City'); + } else if (!zipcode) { + opentoast('Fill post code'); + } else if (!suburb) { + opentoast('Fill suburb'); + } + // else if (!emailaddress) { + // opentoast('Fill emailaddress') + // } + else if (!latlong.lat || !latlong.lng) { + opentoast('Choose valid address'); + } else { + let obj = { + customerid: 0, + configid: 1, + firstname: firstname, + applocationid: tenantinfo.applolcationid, + profileimage: '', + dialcode: '+91', + contactno: mobilenumber, + devicetype: '', + deviceid: '', + customertoken: '', + address: address, + suburb: suburb, + city: city, + state: state, + postcode: zipcode, + landmark: landmark, + doorno: doorno, + latitude: latlong.lat.toString(), + longitude: latlong.lng.toString(), + tenantid: parseInt(localStorage.getItem('tenantid')), + email: emailaddress, + primaryaddress: 1 + }; + + console.log(obj); + + setLoading(true); + try { + await axios + .post(`${process.env.REACT_APP_URL}/customers/create`, obj) + .then((res) => { + console.log(res); + if (res.data.status) { + enqueueSnackbar(' Created Successfully ', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + navigate('/customers'); + // setTimeout(()=>{ + // fetchprofiledetails(localStorage.getItem('appuserid')); + + // },2000) + } else if (res.data.message == 'Customer Already available') { + enqueueSnackbar('Customer Already available', { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + + setLoading(false); + enqueueSnackbar(err.message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + } + }; + + // const [experience, setExperience] = useState('0'); + + // const handleChange = (event) => { + // setExperience(event.target.value); + // }; + return ( + <> + {loading && } + + + + Create Customer + + + + + {/* @@ -434,15 +416,17 @@ const Createclient = () => { */} - - - - - {/* + + + + {/* Business Name { /> */} - - - Name - setFirstname(e.target.value)} - value={firstname} - autoComplete='off' - - /> - - - {/* - */} - - - Phone Number - - - { }} - onChange={(e) => { - if (e.target.value.toString().length <= 10) { - setMobilenumber(e.target.value) - } - }} - value={mobilenumber} - autoComplete='off' - // disabled - sx={{ cursor: 'not-allowed' }} - /> - - - - - - Email Address - setEmailaddress(e.target.value)} - value={emailaddress} - autoComplete='off' - - /> - - - - - - - Address - setAddress(e.target.value)} - inputRef={materialRef} - /> - - - - - - Location - setSuburb(e.target.value)} - value={suburb} - autoComplete='off' - - /> - - - - - City - setCity(e.target.value)} - value={city} - autoComplete='off' - - /> - - - - - - State - setState(e.target.value)} - value={state} - autoComplete='off' - - /> - - - - - Post Code - setZipcode(e.target.value)} - value={zipcode} - autoComplete='off' - - /> - - - - - - Door No - setDoorno(e.target.value)} - value={doorno} - autoComplete='off' - - /> - - - - - Landmark - setLandmark(e.target.value)} - value={landmark} - autoComplete='off' - - /> - - - - - - - - - - + + Name + setFirstname(e.target.value)} + value={firstname} + autoComplete="off" + /> + + + {/* + */} + + + Phone Number + + + { }} + onChange={(e) => { + if (e.target.value.toString().length <= 10) { + setMobilenumber(e.target.value); + } + }} + value={mobilenumber} + autoComplete="off" + // disabled + sx={{ cursor: 'not-allowed' }} + /> + + + + + + Email Address + setEmailaddress(e.target.value)} + value={emailaddress} + autoComplete="off" + /> + - - - -} -export default Createclient; \ No newline at end of file + + + Address + setAddress(e.target.value)} + inputRef={materialRef} + /> + + + + + + Location + setSuburb(e.target.value)} + value={suburb} + autoComplete="off" + /> + + + + + City + setCity(e.target.value)} + value={city} + autoComplete="off" + /> + + + + + + State + setState(e.target.value)} + value={state} + autoComplete="off" + /> + + + + + Post Code + setZipcode(e.target.value)} + value={zipcode} + autoComplete="off" + /> + + + + + + Door No + setDoorno(e.target.value)} + value={doorno} + autoComplete="off" + /> + + + + + Landmark + setLandmark(e.target.value)} + value={landmark} + autoComplete="off" + /> + + + + + + + + + + + + + + ); +}; + +export default Createclient; diff --git a/src/pages/nearle/orders/createorder1.js b/src/pages/nearle/orders/createorder1.js index c7d1ac5..d364dbd 100644 --- a/src/pages/nearle/orders/createorder1.js +++ b/src/pages/nearle/orders/createorder1.js @@ -746,6 +746,9 @@ const Createorder1 = () => { console.log('fetchTenantPricing error', error); } }; + useEffect(() => { + fetchTenantPricing(); + }, []); useEffect(() => { console.log('startPoint', startPoint);