Android_Retail/src/Pages/BookingScreen/Components/UtillComponents/BSNavBarEst.jsx

157 lines
5.0 KiB
React
Raw Normal View History

2026-01-27 18:27:29 +05:30
import { useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import PozoEstimateIcon from '../UtillComponents/Pozo retail icons/PozoEstimateIcon.jsx';
import { UpOutlined } from '@ant-design/icons';
import {
GlobalOrderCardDetails,
GlobalEstimateBooking,
changeEstimateBooking,
changeSelProdWiseEst,
ChangeOverAllDiscSales,
ChangeOverAllDiscEstimate,
2026-02-20 11:26:58 +05:30
GlobalSalesBillEdit,
2026-01-27 18:27:29 +05:30
} from '../../../../Features/BookingScreen/BookingData/BookingData';
import BSEstimateModal from '../BookingFunctionality/BSEstModal';
import { GlobalpreOrderOpen } from '../../../../Features/BookingScreen/PreOrder/PreOrder.js';
import TooltipWrapper from '../../../../Components/Tooltip/Tooltip';
import { isMobile } from 'react-device-detect';
import { Popover } from 'antd';
import PozoSalesIcon from './Pozo retail icons/PozoSalesIcon.jsx';
import PozoCombinationIcon from './Pozo retail icons/PozoCombinationIcon.jsx';
2026-02-12 18:15:06 +05:30
import '../../../../Styles/BookingScreen/Template/BSLayout7/BSC1Payment.scss';
2026-01-27 18:27:29 +05:30
const BSNavBarEstimate = () => {
const dispatch = useDispatch();
const OrderCardDetails = useSelector(GlobalOrderCardDetails);
const preOrderOpen = useSelector(GlobalpreOrderOpen);
const EstBooking = useSelector(GlobalEstimateBooking);
const [EstModalOpen, setEstModalOpen] = useState(false);
2026-02-20 11:26:58 +05:30
const salesBillEdit = useSelector(GlobalSalesBillEdit);
2026-01-27 18:27:29 +05:30
const [PopOpen, setPopOpen] = useState(false);
const ChangeEstMethod = () => {
if (!preOrderOpen) {
if (OrderCardDetails.length > 0) {
setEstModalOpen(true);
}
}
};
const EstHandleCancel = () => {
setEstModalOpen(false);
};
const EnableOptions = () => {
2026-02-20 11:26:58 +05:30
if (!salesBillEdit) {
setPopOpen(!PopOpen);
}
2026-01-27 18:27:29 +05:30
};
const ChangeEstimateOption = (data) => {
dispatch(changeEstimateBooking(data));
dispatch(ChangeOverAllDiscSales(0));
dispatch(ChangeOverAllDiscEstimate(0));
setPopOpen(false);
};
const handlePopoverVisible = (visible) => {
2026-02-20 11:26:58 +05:30
if (!salesBillEdit) {
setPopOpen(visible);
}
2026-01-27 18:27:29 +05:30
};
return (
<div className="BSBilling7-icon-flex">
{/* <BiSolidOffer className='BSBillingNav-icon'/> */}
<TooltipWrapper
title={
EstBooking === 'OvrAllEst'
? 'Estimate'
: EstBooking === 'ParEst'
? 'Sales & Estimate'
: 'Sales'
}
isMobile={isMobile}
>
<div className="EstimateButton">
2026-01-27 18:27:29 +05:30
<div>
{EstBooking === 'Sales' && <PozoSalesIcon />}
{EstBooking === 'OvrAllEst' && <PozoEstimateIcon />}
{EstBooking === 'ParEst' && (
<PozoCombinationIcon onClick={() => ChangeEstMethod()} />
)}
</div>
<div>
<Popover
title="SET AS DEFAULT"
open={PopOpen}
onVisibleChange={handlePopoverVisible}
content={
<div className="EstPopupContent">
<div
className="EstOption"
onClick={() => {
ChangeEstimateOption('Sales');
}}
>
{' '}
<PozoSalesIcon
className={
EstBooking === 'Sales'
? 'selectedBookingType'
: 'otherBookingType'
}
/>{' '}
Sales
</div>
<div
className="EstOption"
onClick={() => {
ChangeEstimateOption('OvrAllEst');
}}
>
<PozoEstimateIcon
className={
EstBooking === 'OvrAllEst'
? 'selectedBookingType'
: 'otherBookingType'
}
/>{' '}
Estimate
</div>
<div
className="EstOption"
onClick={() => {
ChangeEstimateOption('ParEst');
}}
>
<PozoCombinationIcon
className={
EstBooking === 'ParEst'
? 'selectedBookingType'
: 'otherBookingType'
}
/>
Sales & Estimate
</div>
</div>
}
trigger="click"
>
<button className="Estoptbtn">
{' '}
<UpOutlined onClick={EnableOptions} />{' '}
</button>
</Popover>
</div>
</div>
</TooltipWrapper>
<div>
{EstModalOpen && (
<BSEstimateModal
EstModalOpen={EstModalOpen}
EstHandleCancel={() => EstHandleCancel()}
/>
)}
</div>
</div>
);
};
export default BSNavBarEstimate;