import { useEffect, useState } from 'react'; import { Form,Popover, Input, Button, AutoComplete, Tooltip } from 'antd'; import { useDispatch, useSelector } from "react-redux"; import { FaParking } from "react-icons/fa"; import { GlobalOrderCardDetails, GlobalOtherServiceTicketClaim, GlobalSummeryTotalAmount, changeOtherServiceTicketClaim, getOtherServiceTicket } from "../../../../Features/BookingScreen/BookingData/BookingData"; import TooltipWrapper from '../../../../Components/Tooltip/Tooltip'; import { isMobile } from 'react-device-detect'; import FloatLabel from '../../../../Components/Forms/FloatLabel'; import { BsUpcScan } from 'react-icons/bs'; import { StoredSessionData } from '../../../../Features/ThemeChange/ThemeChange'; import { consolidateDuplicates } from './BSNavBarOffer/BSNavBarOffer_ReausableFunctions'; import { Messages } from '../../../../Components/Notifications/Messages'; const BSOtherServiceClaim = () => { const dispatch = useDispatch(); const SessionData = useSelector(StoredSessionData); const OrderCardDetail = useSelector(GlobalOrderCardDetails); const OtherServiceTicketClaim = useSelector(GlobalOtherServiceTicketClaim); const BillAmount =useSelector(GlobalSummeryTotalAmount) console.log("OtherServiceTicketClaim", BillAmount,OtherServiceTicketClaim); const CompId = SessionData?.CompId; const BranchId = SessionData?.BranchId; const AppId = SessionData?.AppId; const UserId = SessionData?.UserId; const UserType = SessionData?.UserType; const [visible, setVisible] = useState(false); console.log("visible", visible); const [searchText, setSearchText] = useState(null); const [selectedOthersService, setSelectedOthersService] = useState(''); const [selectedTicketId,setselectedTicketId]=useState(null) const [scanner, setScanner] = useState(false); const [messageType, setMessageType] = useState(null); const [messageData, setMessageData] = useState(null); const [error,seterror] = useState(null); const [Parkingdata, setParkingdata] = useState([]); const [totalParkingAmount, setTotalParkingAmount] = useState(0); console.log(totalParkingAmount,Parkingdata, 'Parkingdata') useEffect(() => { seterror(null); }, []); useEffect(() => { if (OtherServiceTicketClaim?.ParkingClaimed === false) { setParkingdata([]); setTotalParkingAmount(0); setSelectedOthersService(''); } } , [OtherServiceTicketClaim]); const handleOk = (type) => { if (type === "Add") { if(totalParkingAmount > 0) { if(BillAmount > totalParkingAmount){ dispatch(changeOtherServiceTicketClaim({ TicketId: selectedTicketId , TotalAmt: totalParkingAmount, ParkingClaimed: true, ServiceCategory: Parkingdata ? Parkingdata?.[0]?.ServiceCategory : '', })); } else{ setMessageType("error"); setMessageData("Other Service Ticket Claim amount cannot be greater than total amount"); dispatch(changeOtherServiceTicketClaim({ TotalAmt: 0, ParkingClaimed: false, TicketId: null, ServiceCategory: null, })); } } else{ dispatch(changeOtherServiceTicketClaim({ TotalAmt: 0, ParkingClaimed: false, TicketId: null, ServiceCategory: null, })); } }else{ dispatch(changeOtherServiceTicketClaim({ TotalAmt: 0, ParkingClaimed: false, OthersType: 'Remove', TicketId: null, ServiceCategory: null, })); setParkingdata([]); setTotalParkingAmount(0); setSelectedOthersService(''); } setVisible(false); seterror(null) }; const handleCancel = () => { setVisible(false); seterror(null) }; const handleScanSearch = () => { if (scanner === false) { setMessageType("success"); setMessageData("Search by QrCode/BarCode Enabled") } else { setMessageType("success"); setMessageData("Search by QrCode/BarCode Disabled") } setScanner(prev => !prev) } const handleOtherServiceSearch = async (value) => { setSelectedOthersService(value); let data if(value?.length >= 3){ if (scanner) { data = { TicketId: `${value}`, AppId: AppId, CompId: CompId, BranchId: BranchId }; } else { data = { TicketId: `${value}`, AppId: AppId, CompId: CompId, BranchId: BranchId }; } if( value && value.length > 0) { let otherdata = await dispatch(getOtherServiceTicket(data)).unwrap(); if (otherdata?.data?.statusCode === 1) { console.log(otherdata?.data?.data, 'otherdata'); setselectedTicketId(otherdata?.data?.data?.[0]?.ServiceTicketId) let Parkingthere = otherdata?.data?.data?.[0]?.ServiceDetails?.filter((item) => item?.ServiceCategoryName === 'Parking'); if (Parkingthere?.length > 0) { console.log(Parkingthere, 'Parkingthere'); const totalParkingAmount = Parkingthere?.reduce((sum, item) => sum + (item.TotalAmt || 0), 0); setParkingdata(Parkingthere); setTotalParkingAmount(totalParkingAmount); seterror(null); }else{ seterror("No Data Found"); setParkingdata([]); setTotalParkingAmount(0); } }else{ seterror("No Data Found"); setParkingdata([]); setTotalParkingAmount(0); } }else{ seterror(null); setParkingdata([]); setTotalParkingAmount(0); } } } const content = (
{ if (scanner && e.key === "Enter") { e.preventDefault(); } }} onKeyPress={(e) => { // Allow only numeric input and max 4 digits if (!/[0-9]/.test(e.key)) { e.preventDefault(); seterror("Please enter only numeric value"); } else if (selectedOthersService?.length >= 4) { e.preventDefault(); seterror("Only 4 digits allowed"); } else { seterror(null); } }} disabled={OtherServiceTicketClaim?.ParkingClaimed === true? true : false} >
{Parkingdata && <>{Parkingdata?.[0]?.ServiceCategoryName}
{ Parkingdata.length > 0 && ( <> {Parkingdata.map((item, idx) => (
: ₹{item.TotalAmt}
{item.ServiceName}
{item.VehicleNumber ? (
VehicleNumber:{item.VehicleNumber}
) :""}
))}
Total Amount: ₹{totalParkingAmount}
)}
}
{error && {error}}
{OtherServiceTicketClaim?.ParkingClaimed == false ? ( ) : ( )}
); return (<> setVisible(visible)} > 0 ? "rgb(18, 146, 238)" : "#888 "} style={{ fontSize: 24, cursor: 'pointer' }} onClick={() => { setVisible(!visible); }} /> ); }; export default BSOtherServiceClaim;