Merge pull request 'Combo ShortCut add' (#152) from ComboShortcut into main
Reviewed-on: Pozomind/pozo-retail-app#152
This commit is contained in:
commit
cec89bc2e5
|
|
@ -3209,6 +3209,7 @@ const ComboEditQtyAndRate = (props) => {
|
|||
AddProductQuantity();
|
||||
}
|
||||
}}
|
||||
min={0}
|
||||
className="EditQTYcomboInput"
|
||||
placeholder="Enter Qty"
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -188,6 +188,26 @@ const ComboSalesBillTable = () => {
|
|||
}
|
||||
};
|
||||
|
||||
const [isAltPressed, setIsAltPressed] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
const handleKeyDown = (e) => {
|
||||
if (e.key === 'F2') setIsAltPressed(true);
|
||||
};
|
||||
|
||||
const handleKeyUp = (e) => {
|
||||
if (e.key === 'F2') setIsAltPressed(false);
|
||||
};
|
||||
|
||||
window.addEventListener('keydown', handleKeyDown);
|
||||
window.addEventListener('keyup', handleKeyUp);
|
||||
|
||||
return () => {
|
||||
window.removeEventListener('keydown', handleKeyDown);
|
||||
window.removeEventListener('keyup', handleKeyUp);
|
||||
};
|
||||
}, []);
|
||||
|
||||
// Outside click handler for quantity edit
|
||||
|
||||
useEffect(() => {
|
||||
|
|
@ -302,7 +322,6 @@ const ComboSalesBillTable = () => {
|
|||
event.preventDefault();
|
||||
handleShortcut('weightAmount');
|
||||
}
|
||||
|
||||
};
|
||||
window.addEventListener('keydown', handleKeyDown);
|
||||
|
||||
|
|
@ -2098,7 +2117,9 @@ const ComboSalesBillTable = () => {
|
|||
|
||||
const visibleCols =
|
||||
tableOptions?.filter((opt) =>
|
||||
['Item', 'Quantity', 'Rate', 'Total'].includes(opt.OptionName)
|
||||
['Item', 'Quantity', 'Rate', 'Total', 'Delete'].includes(
|
||||
opt.OptionName
|
||||
)
|
||||
) || [];
|
||||
|
||||
// Arrow Up/Down - Row navigation
|
||||
|
|
@ -2153,9 +2174,12 @@ const ComboSalesBillTable = () => {
|
|||
e.preventDefault();
|
||||
const row = combinedTableData[activeRowIndex];
|
||||
const col = visibleCols[activeColIndex];
|
||||
if (row && col && editField) {
|
||||
if (col.OptionName === 'Quantity') handleEditQuantityCombo(row);
|
||||
else if (col.OptionName === 'Rate') handleEditRateCombo(row);
|
||||
if (row && col) {
|
||||
if (col.OptionName === 'Quantity' && editField)
|
||||
handleEditQuantityCombo(row);
|
||||
else if (col.OptionName === 'Rate' && editField)
|
||||
handleEditRateCombo(row);
|
||||
else if (col.OptionName === 'Delete') removeFromCart(row);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -2216,6 +2240,12 @@ const ComboSalesBillTable = () => {
|
|||
|
||||
{/* Quantity */}
|
||||
{item.OptionName === 'Quantity' && (
|
||||
<Tooltip
|
||||
placement="top"
|
||||
trigger={[]}
|
||||
title="AlT + P"
|
||||
open={isAltPressed}
|
||||
>
|
||||
<th
|
||||
className="qtyTh"
|
||||
key={item.OptionId}
|
||||
|
|
@ -2229,6 +2259,7 @@ const ComboSalesBillTable = () => {
|
|||
<div>Qty</div>
|
||||
)}
|
||||
</th>
|
||||
</Tooltip>
|
||||
)}
|
||||
|
||||
{/* Rate */}
|
||||
|
|
@ -2407,7 +2438,7 @@ const ComboSalesBillTable = () => {
|
|||
const isActiveCell =
|
||||
activeRowIndex === index &&
|
||||
activeColIndex !== null &&
|
||||
['Item', 'Quantity', 'Rate', 'Total'].indexOf(
|
||||
['Item', 'Quantity', 'Rate', 'Total', 'Delete'].indexOf(
|
||||
item.OptionName
|
||||
) === activeColIndex;
|
||||
|
||||
|
|
@ -2440,7 +2471,14 @@ const ComboSalesBillTable = () => {
|
|||
{row?.Type !== 'OS' ? row.ProdName : row.ServiceName}
|
||||
{row?.BrandName ? ` ${row.BrandName}` : ''}
|
||||
{row?.Type !== 'C' && (
|
||||
<p className="Tbl3-Variant">
|
||||
<p
|
||||
// className="Tbl3-Variant"
|
||||
className={
|
||||
isActiveCell
|
||||
? 'Tbl3VariantActve'
|
||||
: 'Tbl3-Variant'
|
||||
}
|
||||
>
|
||||
{/* {row?.ProdVariantName} {row?.Size} {row?.UomName} */}
|
||||
(
|
||||
{!row?.ProdVariantName?.toLowerCase()?.includes(
|
||||
|
|
@ -2484,7 +2522,8 @@ const ComboSalesBillTable = () => {
|
|||
}}
|
||||
key={`qty-${index}`}
|
||||
tabIndex={0}
|
||||
className={`${EditQtyCombo && row?.localId === Index
|
||||
className={`${
|
||||
EditQtyCombo && row?.localId === Index
|
||||
? 'EditQTYcomboTD'
|
||||
: 'qtyTd'
|
||||
} ${isActiveCell ? 'active-cell' : ''}`}
|
||||
|
|
@ -2625,11 +2664,15 @@ const ComboSalesBillTable = () => {
|
|||
|
||||
{/* Delete */}
|
||||
{item.OptionName === 'Delete' && (
|
||||
<td key={`delete-${index}`} className="deleteTd">
|
||||
<td
|
||||
key={`delete-${index}`}
|
||||
className={`deleteTd ${isActiveCell ? 'active-cell' : ''}`}
|
||||
// className=""
|
||||
>
|
||||
<AiOutlineClose
|
||||
onClick={() => removeFromCart(row)}
|
||||
style={{
|
||||
color: '#FF4D4F',
|
||||
color: isActiveCell ? '#fff' : '#FF4D4F',
|
||||
cursor: 'pointer',
|
||||
textAlign: 'center',
|
||||
width: '100%',
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@
|
|||
}
|
||||
|
||||
tbody {
|
||||
>tr:last-child {
|
||||
> tr:last-child {
|
||||
// background-color: #e5d434 !important;
|
||||
background-color: #ffffff !important;
|
||||
background-color: #dde9ff !important;
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
}
|
||||
|
|
@ -207,7 +207,7 @@
|
|||
box-shadow: 0 0 5px rgba(255, 193, 7, 0.5);
|
||||
}
|
||||
|
||||
|
||||
:where(.css-dev-only-do-not-override-mncuj7).ant-select-dropdown .ant-select-item-option-active:not(.ant-select-item-option-disabled) {
|
||||
:where(.css-dev-only-do-not-override-mncuj7).ant-select-dropdown
|
||||
.ant-select-item-option-active:not(.ant-select-item-option-disabled) {
|
||||
background-color: rgba(116, 107, 107, 0.356);
|
||||
}
|
||||
|
|
@ -41,7 +41,7 @@ import UserRelieveManager from '../../Template/RealivingUser.jsx';
|
|||
import BSNavBarUserInfo from '../BSNavbar/BSNavBarUserInfo.jsx';
|
||||
import BSScanTemplate from '../UtillComponents/BSScanTemplate.jsx';
|
||||
import { RiFullscreenExitFill, RiFullscreenFill } from 'react-icons/ri';
|
||||
import { Tooltip } from 'antd';
|
||||
import { Popconfirm, Tooltip } from 'antd';
|
||||
import { FaCaretDown } from 'react-icons/fa';
|
||||
|
||||
const subDirectory = import.meta.env.ENV_BASE_URL;
|
||||
|
|
@ -253,11 +253,17 @@ const BSC1NavBar = (props) => {
|
|||
>
|
||||
<div className="BSC1NavBar-div1">
|
||||
<div className="BSC1NavBar-manu">
|
||||
<Popconfirm
|
||||
title="Are you sure you want to go to home?"
|
||||
onConfirm={handleHome}
|
||||
okText="Yes"
|
||||
cancelText="No"
|
||||
>
|
||||
<PozoHomeIcon
|
||||
style={{ color: '#1292EE', fontSize: '30px' }}
|
||||
className="BSC1NavBar-manu-icon"
|
||||
onClick={handleHome}
|
||||
/>
|
||||
</Popconfirm>{' '}
|
||||
<div
|
||||
className={`BSC1NavBar-manu-content ${menu ? 'BSC1NavBar-manu-menu' : ''}`}
|
||||
>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { FaWhatsapp, FaPrint, FaParking } from 'react-icons/fa';
|
|||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import moment from 'moment';
|
||||
import { Badge, Popover, Modal } from 'antd';
|
||||
import { Badge, Popover, Modal, Tooltip } from 'antd';
|
||||
import { AiOutlineClose, AiOutlineArrowRight } from 'react-icons/ai';
|
||||
import { GiBasket } from 'react-icons/gi';
|
||||
import {
|
||||
|
|
@ -573,6 +573,27 @@ const BSC1Payment = (props) => {
|
|||
),
|
||||
'11111111111111'
|
||||
);
|
||||
|
||||
const [isAltPressed, setIsAltPressed] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
const handleKeyDown = (e) => {
|
||||
if (e.key === 'F2') setIsAltPressed(true);
|
||||
};
|
||||
|
||||
const handleKeyUp = (e) => {
|
||||
if (e.key === 'F2') setIsAltPressed(false);
|
||||
};
|
||||
|
||||
window.addEventListener('keydown', handleKeyDown);
|
||||
window.addEventListener('keyup', handleKeyUp);
|
||||
|
||||
return () => {
|
||||
window.removeEventListener('keydown', handleKeyDown);
|
||||
window.removeEventListener('keyup', handleKeyUp);
|
||||
};
|
||||
}, []);
|
||||
|
||||
// Usage
|
||||
useEffect(() => {
|
||||
const setDefaultPaymentOption = async () => {
|
||||
|
|
@ -3551,12 +3572,19 @@ const BSC1Payment = (props) => {
|
|||
{BSComboNavbar?.[1]?.map((item) => (
|
||||
<>
|
||||
{item?.OptionName == 'QuickAdd' && (
|
||||
<Tooltip
|
||||
placement="top"
|
||||
trigger={[]}
|
||||
title="ALT + N"
|
||||
open={isAltPressed}
|
||||
>
|
||||
<TooltipWrapper title={'QuickAdd'} isMobile={isMobile}>
|
||||
<div
|
||||
className="BSC1Payment-div1-btns"
|
||||
onClick={setQuickOpen}
|
||||
style={{
|
||||
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
||||
pointerEvents:
|
||||
OrderType === 'Failed' ? 'none' : 'auto',
|
||||
}}
|
||||
>
|
||||
<PozoQuickAddIcon className="BSC1Payment-icon " />
|
||||
|
|
@ -3569,14 +3597,20 @@ const BSC1Payment = (props) => {
|
|||
}}
|
||||
>
|
||||
Quick Add
|
||||
{!isAltPressed && (
|
||||
<span
|
||||
style={{ fontSize: '9px', letterSpacing: '0.5px' }}
|
||||
style={{
|
||||
fontSize: '9px',
|
||||
letterSpacing: '0.5px',
|
||||
}}
|
||||
>
|
||||
(Alt + N)
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</TooltipWrapper>
|
||||
</Tooltip>
|
||||
)}
|
||||
{item?.OptionName == 'DineIn' &&
|
||||
DineInPreference?.SettingValue === 'Y' &&
|
||||
|
|
@ -3662,12 +3696,19 @@ const BSC1Payment = (props) => {
|
|||
</div>
|
||||
)}
|
||||
{item?.OptionName == 'ExtraCharge' && (
|
||||
<Tooltip
|
||||
placement="top"
|
||||
trigger={[]}
|
||||
title="Alt + A"
|
||||
open={isAltPressed}
|
||||
>
|
||||
<TooltipWrapper title={'Extra Charge'} isMobile={isMobile}>
|
||||
<div
|
||||
className="BSC1Payment-div1-btns"
|
||||
onClick={handleextraCharges}
|
||||
style={{
|
||||
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
||||
pointerEvents:
|
||||
OrderType === 'Failed' ? 'none' : 'auto',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
alignItems: 'center',
|
||||
|
|
@ -3680,19 +3721,31 @@ const BSC1Payment = (props) => {
|
|||
Extra Charge
|
||||
</div>
|
||||
|
||||
<div style={{ fontSize: '9px', letterSpacing: '0.5px' }}>
|
||||
{!isAltPressed && (
|
||||
<div
|
||||
style={{ fontSize: '9px', letterSpacing: '0.5px' }}
|
||||
>
|
||||
(Alt + A)
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</TooltipWrapper>
|
||||
</Tooltip>
|
||||
)}
|
||||
{item?.OptionName == 'RePrint' && (
|
||||
<Tooltip
|
||||
placement="top"
|
||||
trigger={[]}
|
||||
title="Alt + R"
|
||||
open={isAltPressed}
|
||||
>
|
||||
<TooltipWrapper title={'RePrint'} isMobile={isMobile}>
|
||||
<div
|
||||
className="BSC1Payment-div1-btns"
|
||||
onClick={handleReprint}
|
||||
style={{
|
||||
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
||||
pointerEvents:
|
||||
OrderType === 'Failed' ? 'none' : 'auto',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
alignItems: 'center',
|
||||
|
|
@ -3709,14 +3762,20 @@ const BSC1Payment = (props) => {
|
|||
>
|
||||
<PozoReprintIcon className="BSC1Payment-icon" />
|
||||
Re-Print
|
||||
{!isAltPressed && (
|
||||
<span
|
||||
style={{ fontSize: '9px', letterSpacing: '0.5px' }}
|
||||
style={{
|
||||
fontSize: '9px',
|
||||
letterSpacing: '0.5px',
|
||||
}}
|
||||
>
|
||||
(Alt + R)
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</TooltipWrapper>
|
||||
</Tooltip>
|
||||
)}
|
||||
</>
|
||||
))}
|
||||
|
|
@ -4209,6 +4268,12 @@ const BSC1Payment = (props) => {
|
|||
OrderType != 'Failed' &&
|
||||
CheckBookingStatus != 'Close' &&
|
||||
!addnewAccess && (
|
||||
<Tooltip
|
||||
placement="bottom"
|
||||
trigger={[]}
|
||||
title="ALT + W"
|
||||
open={isAltPressed}
|
||||
>
|
||||
<TooltipWrapper title={'Hold'} isMobile={isMobile}>
|
||||
{' '}
|
||||
<div
|
||||
|
|
@ -4235,6 +4300,7 @@ const BSC1Payment = (props) => {
|
|||
{/* <p className="payOptionDecition"> Hold</p> */}
|
||||
</div>
|
||||
</TooltipWrapper>
|
||||
</Tooltip>
|
||||
)
|
||||
: ''}
|
||||
|
||||
|
|
@ -4542,6 +4608,12 @@ const BSC1Payment = (props) => {
|
|||
{BSComboData?.BookingBilling?.[1]?.map((item) => (
|
||||
<>
|
||||
{item?.OptionName == 'AddCustomer' && !preOrderOpen && (
|
||||
<Tooltip
|
||||
placement="top"
|
||||
trigger={[]}
|
||||
title="ALT + Z"
|
||||
open={isAltPressed}
|
||||
>
|
||||
<div
|
||||
style={{ display: 'flex', gap: '0', alignItems: 'center' }}
|
||||
>
|
||||
|
|
@ -4560,7 +4632,9 @@ const BSC1Payment = (props) => {
|
|||
borderRadius: '0 6px 6px 0',
|
||||
cursor: Custdisable ? 'not-allowed' : 'pointer',
|
||||
color:
|
||||
selOption || GetCustId ? '#ffffffff' : '#ffffffff',
|
||||
selOption || GetCustId
|
||||
? '#ffffffff'
|
||||
: '#ffffffff',
|
||||
backgroundColor:
|
||||
selOption || GetCustId ? '#52c41a' : '#1292EE',
|
||||
}}
|
||||
|
|
@ -4568,11 +4642,18 @@ const BSC1Payment = (props) => {
|
|||
</div>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
</Tooltip>
|
||||
)}
|
||||
</>
|
||||
))}
|
||||
|
||||
<div className="comboTotalBillBTN">
|
||||
<Tooltip
|
||||
placement="left"
|
||||
trigger={[]}
|
||||
title="F4"
|
||||
open={isAltPressed}
|
||||
>
|
||||
<TooltipWrapper title="Create Bill (F4)" isMobile={isMobile}>
|
||||
<button
|
||||
className={
|
||||
|
|
@ -4598,10 +4679,12 @@ const BSC1Payment = (props) => {
|
|||
style={{ borderRadius: '6px 0 0 6px' }}
|
||||
>
|
||||
{!OrderStatus ? (
|
||||
salesBillEdit && currentOrderNetAmount < previousNetAmount ? (
|
||||
salesBillEdit &&
|
||||
currentOrderNetAmount < previousNetAmount ? (
|
||||
<div className="Table4-Order">
|
||||
Refund: ₹
|
||||
{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}
|
||||
{(previousNetAmount || 0) -
|
||||
(currentOrderNetAmount || 0)}
|
||||
</div>
|
||||
) : (
|
||||
<>
|
||||
|
|
@ -4637,6 +4720,7 @@ const BSC1Payment = (props) => {
|
|||
)}
|
||||
</button>
|
||||
</TooltipWrapper>
|
||||
</Tooltip>
|
||||
<Popover
|
||||
content={
|
||||
<>
|
||||
|
|
|
|||
|
|
@ -4761,7 +4761,7 @@ export default function BSC1Search(props) {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="Re-Print-table">
|
||||
<div className="StockVariantModal">
|
||||
<Tables columns={stockcolumns} data={stockdataSource} />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import { GlobalCompBranchData } from '../../../../Features/BrachLogin/BranchLogi
|
|||
import { userDataByUserId } from '../../../../Features/UserAccount/userData';
|
||||
import { useSelector } from 'react-redux';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import "../../../../Styles/BookingScreen/Components/BSNavbar/BSNavbar1.scss"
|
||||
const subDirectory = import.meta.env.ENV_BASE_URL;
|
||||
|
||||
const BSNavBarUserInfo = ({
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ import BSExpireProductsList from '../../Components/UtillComponents/BSExpireProdu
|
|||
import ComboSalesBillTable from '../../Components/BSBillingTables/ComboSalesBillTable/ComboSalesBillTable.jsx';
|
||||
import { GiBasket } from 'react-icons/gi';
|
||||
import { FaRegKeyboard } from 'react-icons/fa';
|
||||
import { CgSearchLoading } from "react-icons/cg";
|
||||
import { CgSearchLoading } from 'react-icons/cg';
|
||||
import { DefaultModal } from '../../../../Components/Modal/DefaultModal.jsx';
|
||||
import MultipleSearch from '../../Components/UtillComponents/MultipleSearch.jsx';
|
||||
import VerfiedProducts from '../../Components/BSNavbar/verfiedProduct/VerfiedProducts.jsx';
|
||||
|
|
@ -138,6 +138,26 @@ export default function BSCombo1() {
|
|||
const [ListOfInvoices, setListOfInvoices] = useState(false);
|
||||
const [ComboDropDown, setComboDropDown] = useState();
|
||||
|
||||
const [isAltPressed, setIsAltPressed] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
const handleKeyDown = (e) => {
|
||||
if (e.key === 'F2') setIsAltPressed(true);
|
||||
};
|
||||
|
||||
const handleKeyUp = (e) => {
|
||||
if (e.key === 'F2') setIsAltPressed(false);
|
||||
};
|
||||
|
||||
window.addEventListener('keydown', handleKeyDown);
|
||||
window.addEventListener('keyup', handleKeyUp);
|
||||
|
||||
return () => {
|
||||
window.removeEventListener('keydown', handleKeyDown);
|
||||
window.removeEventListener('keyup', handleKeyUp);
|
||||
};
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
fetchAmount();
|
||||
if (
|
||||
|
|
@ -149,7 +169,6 @@ export default function BSCombo1() {
|
|||
}
|
||||
}, [SessionData]);
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
Combodata();
|
||||
if (AppId && CompId && BranchId && UserId) {
|
||||
|
|
@ -185,7 +204,6 @@ export default function BSCombo1() {
|
|||
await dispatch(getSalesDetailData(data)).unwrap();
|
||||
};
|
||||
|
||||
|
||||
const openModalKiosk = () => {
|
||||
setKioskopen(true);
|
||||
};
|
||||
|
|
@ -284,7 +302,9 @@ export default function BSCombo1() {
|
|||
/>
|
||||
{UserType != 'Super Admin' &&
|
||||
UserType != 'Super Admin User' &&
|
||||
(AppExpDate?.RemainingDays <= 7 || AppExpDate === 'undefined' || AppExpDate?.PlanType?.toLowerCase() === 'extend') && (
|
||||
(AppExpDate?.RemainingDays <= 7 ||
|
||||
AppExpDate === 'undefined' ||
|
||||
AppExpDate?.PlanType?.toLowerCase() === 'extend') && (
|
||||
<PlanExpireNotification />
|
||||
)}
|
||||
|
||||
|
|
@ -295,18 +315,30 @@ export default function BSCombo1() {
|
|||
<div className="comboNavbarSubMain">
|
||||
{/* Multiple search */}
|
||||
<Tooltip title={'Multiple Search'}>
|
||||
<div className='MultiSearchIconDiv'>
|
||||
<div className="MultiSearchIconDiv">
|
||||
<CgSearchLoading onClick={() => setMultiple(true)} />
|
||||
</div>
|
||||
</Tooltip>
|
||||
|
||||
{Comboglobal === false && (
|
||||
<Tooltip
|
||||
placement="bottom"
|
||||
trigger={[]}
|
||||
title="SHIFT + S"
|
||||
open={isAltPressed}
|
||||
>
|
||||
<BSC1Search
|
||||
data={BSComboData?.BookingLayout[0]}
|
||||
OrderType={OrderType}
|
||||
/>
|
||||
</Tooltip>
|
||||
)}
|
||||
{Comboglobal === true && (
|
||||
<Tooltip
|
||||
placement="bottom"
|
||||
trigger={[]}
|
||||
title="SHIFT + S"
|
||||
open={isAltPressed}
|
||||
>
|
||||
<div style={{ padding: '4px' }} className="CombomainSearch">
|
||||
<div className="M">
|
||||
<div className="BSC1Search-div1">
|
||||
|
|
@ -314,6 +346,7 @@ export default function BSCombo1() {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Tooltip>
|
||||
)}
|
||||
|
||||
{/* <div className="Layout-bill-container" style={{ margin: '0' }}> */}
|
||||
|
|
@ -434,7 +467,10 @@ export default function BSCombo1() {
|
|||
)}
|
||||
{/* Verify Products */}
|
||||
{VerifyTheProducts && (
|
||||
<TooltipWrapper title={'Verfied Products'} isMobile={isMobile}>
|
||||
<TooltipWrapper
|
||||
title={'Verfied Products'}
|
||||
isMobile={isMobile}
|
||||
>
|
||||
<div>
|
||||
<VerfiedProducts />
|
||||
</div>
|
||||
|
|
@ -562,9 +598,7 @@ export default function BSCombo1() {
|
|||
destroyOnClose={true}
|
||||
children={
|
||||
<>
|
||||
<MultipleSearch
|
||||
close={setMultiple}
|
||||
/>
|
||||
<MultipleSearch close={setMultiple} />
|
||||
</>
|
||||
}
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
font-weight: 700;
|
||||
font-family: 'Poppins' !important;
|
||||
font-family: "Poppins" !important;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
height: 30px;
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
color: #000000;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
font-family: 'Poppins';
|
||||
font-family: "Poppins";
|
||||
}
|
||||
.Retail-PaymentCloseButtondiv {
|
||||
display: flex;
|
||||
|
|
@ -40,5 +40,38 @@
|
|||
.Retail-PaymentClose-Title {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
font-family: 'Gilroy' !important;
|
||||
font-family: "Gilroy" !important;
|
||||
}
|
||||
|
||||
.PaymentCloseButtondiv {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.PaymentCloseButton {
|
||||
font-size: 12px;
|
||||
border: none;
|
||||
padding: 2px 5px;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
font-weight: 400;
|
||||
font-family: "Poppins" !important;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
height: 30px;
|
||||
background-color: #f62121;
|
||||
color: #fff;
|
||||
width: 150px;
|
||||
}
|
||||
.PaymentClosingOverAll-sub {
|
||||
color: #000000;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
font-family: "Poppins";
|
||||
width: 250px;
|
||||
div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,7 +93,6 @@ const SalesCountComponent = React.memo(
|
|||
item.SettingValue === 'Y'
|
||||
);
|
||||
|
||||
|
||||
const [messageType, setMessageType] = useState(null);
|
||||
const [messageData, setMessageData] = useState(null);
|
||||
const [page, setpage] = useState(1);
|
||||
|
|
@ -122,6 +121,26 @@ const SalesCountComponent = React.memo(
|
|||
const startIndex = (currentPage - 1) * rowsPerPage;
|
||||
const currentData = bookings?.slice(startIndex, startIndex + rowsPerPage);
|
||||
|
||||
const [isAltPressed, setIsAltPressed] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
const handleKeyDown = (e) => {
|
||||
if (e.key === 'F2') setIsAltPressed(true);
|
||||
};
|
||||
|
||||
const handleKeyUp = (e) => {
|
||||
if (e.key === 'F2') setIsAltPressed(false);
|
||||
};
|
||||
|
||||
window.addEventListener('keydown', handleKeyDown);
|
||||
window.addEventListener('keyup', handleKeyUp);
|
||||
|
||||
return () => {
|
||||
window.removeEventListener('keydown', handleKeyDown);
|
||||
window.removeEventListener('keyup', handleKeyUp);
|
||||
};
|
||||
}, []);
|
||||
|
||||
console.log(dailySalesData, 'dailySalesDatadailySalesData', bookings);
|
||||
|
||||
function safeRound(amountStr) {
|
||||
|
|
@ -270,9 +289,7 @@ const SalesCountComponent = React.memo(
|
|||
key: 'RequestId',
|
||||
align: 'center',
|
||||
width: '70px',
|
||||
render: (text, record, index) => (
|
||||
record?.RequestId?.split('-')?.pop()
|
||||
),
|
||||
render: (text, record, index) => record?.RequestId?.split('-')?.pop(),
|
||||
},
|
||||
{
|
||||
title: 'Date & Time',
|
||||
|
|
@ -362,13 +379,14 @@ const SalesCountComponent = React.memo(
|
|||
className="sr-stock-recieve-button"
|
||||
title="Receive Stock"
|
||||
onClick={() => handleModalOpen(index)}
|
||||
> <span>Receive</span>
|
||||
>
|
||||
{' '}
|
||||
<span>Receive</span>
|
||||
<GoPackageDependencies size={18} />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
),
|
||||
}
|
||||
},
|
||||
];
|
||||
const handlePageChange = (current) => {
|
||||
setpage(current);
|
||||
|
|
@ -1096,9 +1114,17 @@ const SalesCountComponent = React.memo(
|
|||
{preferenceshortcutkey && (
|
||||
<div className="keyboardShortcut">
|
||||
<ShortcutKeyHelper />
|
||||
</div>)}
|
||||
</div>
|
||||
)}
|
||||
<AllSalesPageSettings />
|
||||
<Tooltip
|
||||
placement="bottom"
|
||||
trigger={[]}
|
||||
title="CTRL + E"
|
||||
open={isAltPressed}
|
||||
>
|
||||
<ProductPriceChange />
|
||||
</Tooltip>
|
||||
<ReceivedStocksModal
|
||||
open={isReceivedModelOpen}
|
||||
onClose={() => {
|
||||
|
|
|
|||
|
|
@ -42,3 +42,5 @@
|
|||
font-weight: 600;
|
||||
font-family: 'Gilroy' !important;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
.stock-adjustment-container {
|
||||
padding: 20px;
|
||||
// padding: 20px;
|
||||
// background-color: #fafafa;;
|
||||
border-radius: 10px;
|
||||
font-family: 'Poppins', sans-serif;
|
||||
font-family: "Poppins", sans-serif;
|
||||
color: #1f2d3d;
|
||||
width: 100%;
|
||||
height: 90%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
|
||||
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap");
|
||||
|
||||
.stock-adjustment-top-bar {
|
||||
display: flex;
|
||||
|
|
@ -216,9 +216,9 @@
|
|||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
position: fixed;
|
||||
right: 1rem;
|
||||
bottom: 1rem;
|
||||
|
||||
@media (max-width: 720px) {
|
||||
position: unset;
|
||||
|
|
@ -232,7 +232,7 @@
|
|||
.stock-adjustment-table-row {
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
||||
grid-auto-rows: minmax(44px, auto);
|
||||
grid-template-areas: 'sno product' 'current actual';
|
||||
grid-template-areas: "sno product" "current actual";
|
||||
}
|
||||
|
||||
.stock-adjustment-table-cell.stock-adjustment-sno {
|
||||
|
|
@ -252,13 +252,11 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.custom-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
border: 1px solid #909090;
|
||||
font-family: 'Poppins', sans-serif;
|
||||
font-family: "Poppins", sans-serif;
|
||||
|
||||
> thead {
|
||||
position: sticky;
|
||||
|
|
@ -298,7 +296,6 @@
|
|||
font-size: 12px !important;
|
||||
}
|
||||
|
||||
|
||||
.custom-table tbody tr td {
|
||||
text-align: left;
|
||||
|
||||
|
|
@ -307,7 +304,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
.custom-table tbody tr td[colspan='7'] {
|
||||
.custom-table tbody tr td[colspan="7"] {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
|
|
@ -351,8 +348,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.custom-table {
|
||||
Button:disabled,
|
||||
Button[disabled] {
|
||||
|
|
@ -362,8 +357,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.openingStock-ignoreProductBTN {
|
||||
width: max-content;
|
||||
white-space: nowrap;
|
||||
|
|
|
|||
|
|
@ -999,6 +999,10 @@
|
|||
.Tbl3-Variant {
|
||||
font-size: 10px;
|
||||
}
|
||||
.Tbl3VariantActve{
|
||||
color: #000;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.css-w9q2zk-Input2 {
|
||||
color: black !important;
|
||||
|
|
|
|||
|
|
@ -505,3 +505,39 @@
|
|||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.salesUserProfile {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
flex-direction: column;
|
||||
padding: 10px 1rem;
|
||||
font-family: "Poppins";
|
||||
|
||||
> div {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.BSNavBar1-Acc-menu-list {
|
||||
padding: 6px 10px;
|
||||
background-color: #ee0000;
|
||||
color: #fff;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
border-radius: 1000px;
|
||||
border: 1px solid #a1a1a1;
|
||||
background-position: center;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,9 +6,7 @@
|
|||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
/* padding: 0.5rem 22px 0 1.5rem; */
|
||||
gap: 0.5rem;
|
||||
/* padding-bottom: 8px; */
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 4px 8px;
|
||||
|
|
@ -49,9 +47,7 @@
|
|||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.BSC1Search-div1
|
||||
.ant-select:not(.ant-select-customize-input)
|
||||
.ant-select-selector {
|
||||
.BSC1Search-div1 .ant-select:not(.ant-select-customize-input) .ant-select-selector {
|
||||
border: none;
|
||||
height: 35px;
|
||||
}
|
||||
|
|
@ -75,17 +71,11 @@
|
|||
background-color: var(--ERROR_COLOR);
|
||||
border: none;
|
||||
font-size: 15px;
|
||||
font-family: 'Poppins', sans-serif;
|
||||
font-family: "Poppins", sans-serif;
|
||||
font-weight: 600;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
// .BSC1Search-button1:hover{
|
||||
// opacity: 0.5;
|
||||
// }
|
||||
// .BSC1Search-button1:focus{
|
||||
// background-color: var(--DEFAULT_SELECTED_COLOR);
|
||||
// }
|
||||
.BSC1Search-button2 {
|
||||
width: 100px;
|
||||
height: 57px;
|
||||
|
|
@ -93,7 +83,7 @@
|
|||
background-color: #dddddd;
|
||||
border: none;
|
||||
font-size: 15px;
|
||||
font-family: 'Poppins', sans-serif;
|
||||
font-family: "Poppins", sans-serif;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
opacity: 1;
|
||||
|
|
@ -146,3 +136,9 @@
|
|||
padding: 0.3rem;
|
||||
}
|
||||
}
|
||||
|
||||
.StockVariantModal {
|
||||
height: 40vh;
|
||||
overflow: auto;
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -485,9 +485,15 @@
|
|||
width: 32px;
|
||||
height: 32px;
|
||||
margin-right: unset !important;
|
||||
|
||||
outline: none !important;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
padding: 2px;
|
||||
cursor: pointer;
|
||||
img {
|
||||
filter: invert(1);
|
||||
width: 25px !important;
|
||||
height: 25px !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -638,6 +644,10 @@
|
|||
svg {
|
||||
color: #fff !important;
|
||||
}
|
||||
img {
|
||||
width: 20px !important;
|
||||
height: 20px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.RiVerifiedBadgeFill {
|
||||
|
|
@ -690,3 +700,24 @@
|
|||
font-size: 10px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.MultiSearchIconDiv3 {
|
||||
background-color: #ffffff;
|
||||
color: #1292ee !important;
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
width: 32px !important;
|
||||
height: 32px;
|
||||
padding: 4px;
|
||||
|
||||
svg {
|
||||
font-size: 22px;
|
||||
width: 32px !important;
|
||||
height: 32px;
|
||||
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -105,7 +105,8 @@
|
|||
width: 100%;
|
||||
text-align: end;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
font-weight: 500;
|
||||
font-family: "Poppins";
|
||||
padding: 0.5rem 0;
|
||||
}
|
||||
.Denomination-ul {
|
||||
|
|
|
|||
Loading…
Reference in New Issue