Merge pull request 'Web to Mobile Design' (#261) from PushMainVM into main
Reviewed-on: Pozomind/pozo-retail-app#261
This commit is contained in:
commit
08336219e0
|
|
@ -20,7 +20,6 @@ const IndividualBooking = lazy(
|
|||
const commonSubDir = import.meta.env.ENV_COMMON_BASE_URL;
|
||||
const subDirectory = import.meta.env.ENV_BASE_URL;
|
||||
import '../ownLib/my-ui-lib.css';
|
||||
import CardSkeleton from './Components/Skeleton/CardSkeleton.jsx';
|
||||
import CustomerMenuPage from './Pages/Reports/MenuQRCode/CustomerMenuPage.jsx';
|
||||
import WeightScaleApp from './Pages/BookingScreen/WeightscaleApp.jsx';
|
||||
import useSubscriptionManager from './useSubscriptionManager.js';
|
||||
|
|
@ -192,7 +191,7 @@ const AppRoutes = () => {
|
|||
// mohan
|
||||
useEffect(() => {
|
||||
if (isMobile || isIOS) {
|
||||
console.log("📱 Mobile/iOS device → skipping DevTools detection");
|
||||
console.log('📱 Mobile/iOS device → skipping DevTools detection');
|
||||
return;
|
||||
}
|
||||
const checkDevTools = setInterval(() => {
|
||||
|
|
@ -200,8 +199,7 @@ const AppRoutes = () => {
|
|||
setDevToolsOpen(true);
|
||||
document.body.innerHTML =
|
||||
"<h1 style='color: red; text-align: center;'>Close Inspect to continue using the application.</h1>";
|
||||
}
|
||||
else if (!devtools.isOpen && devToolsOpen) {
|
||||
} else if (!devtools.isOpen && devToolsOpen) {
|
||||
setDevToolsOpen(false);
|
||||
|
||||
setTimeout(() => {
|
||||
|
|
@ -240,7 +238,7 @@ const AppRoutes = () => {
|
|||
);
|
||||
}
|
||||
return (
|
||||
<Suspense fallback={<CardSkeleton />}>
|
||||
<Suspense fallback={null}>
|
||||
<Routes>
|
||||
<Route
|
||||
path={`${subDirectory}selfBooking/:SelfBookingId`}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
scrollbar-width: none;
|
||||
|
||||
@media (max-width: 500px) {
|
||||
overflow: scroll;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
&.pozo-menu-vertical {
|
||||
|
|
@ -38,18 +38,18 @@
|
|||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 7px 8px;
|
||||
padding: 6px 8px;
|
||||
cursor: pointer;
|
||||
transition:
|
||||
background 0.2s,
|
||||
color 0.2s;
|
||||
border-radius: 8px;
|
||||
border-radius: 6px;
|
||||
margin: 1px 3px;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
color: #ffffff;
|
||||
position: relative;
|
||||
min-height: 36px;
|
||||
min-height: 34px;
|
||||
font-family: "Poppins", sans-serif !important;
|
||||
|
||||
&:hover:not(.selected):not(.active-path) {
|
||||
|
|
@ -183,8 +183,8 @@
|
|||
max-width: 300px;
|
||||
max-height: 54vh;
|
||||
overflow-y: auto;
|
||||
animation: dropdownFadeIn 0.2s ease;
|
||||
scrollbar-width: thin;
|
||||
animation: dropdownFadeIn 0.2s ease;
|
||||
z-index: 1050 !important;
|
||||
|
||||
// Ensure no transform interference
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import React, { useState, useEffect, lazy, Suspense } from 'react';
|
||||
import React, { useState, useEffect, lazy } from 'react';
|
||||
import { useSelector } from 'react-redux';
|
||||
import { Button, Popover } from 'antd';
|
||||
import { AiOutlineClose } from 'react-icons/ai';
|
||||
|
|
@ -16,7 +16,6 @@ import { isMobile } from 'react-device-detect';
|
|||
import { getTemplateData } from '../../../../../Features/ThemeChange/ThemeChange.js';
|
||||
import PozoCartIcon from '../../../../../Pages/BookingScreen/Components/UtillComponents/PozoCartIcon.jsx';
|
||||
import TooltipWrapper from '../../../../../Components/Tooltip/Tooltip';
|
||||
import BillingTableSkeleton from '../../../../../Components/Skeleton/BillingTableSkeleton.jsx';
|
||||
// jsx File
|
||||
const BSBillingTable1 = lazy(
|
||||
() => import('../BSBillingTable1/BSBillingTable1.jsx')
|
||||
|
|
@ -129,7 +128,6 @@ export default function BSBTOverall1() {
|
|||
}, [width]);
|
||||
|
||||
return (
|
||||
<Suspense fallback={<BillingTableSkeleton />}>
|
||||
<>
|
||||
<div
|
||||
className={
|
||||
|
|
@ -208,18 +206,14 @@ export default function BSBTOverall1() {
|
|||
>
|
||||
<BSCustomerSelect />
|
||||
|
||||
<TooltipWrapper
|
||||
title={'Add Customer'}
|
||||
isMobile={isMobile}
|
||||
>
|
||||
<TooltipWrapper title={'Add Customer'} isMobile={isMobile}>
|
||||
{' '}
|
||||
<PozoAddCustomerIcon
|
||||
className="BSBillingNav-icon-table-icon"
|
||||
onClick={handleAddCustomer}
|
||||
style={{
|
||||
fontSize: '25px',
|
||||
color:
|
||||
selOption || GetCustId ? '#52c41a' : '#1292EE',
|
||||
color: selOption || GetCustId ? '#52c41a' : '#1292EE',
|
||||
cursor: Custdisable ? 'not-allowed' : 'pointer',
|
||||
}}
|
||||
/>
|
||||
|
|
@ -255,6 +249,5 @@ export default function BSBTOverall1() {
|
|||
</div>
|
||||
</div>
|
||||
</>
|
||||
</Suspense>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import React, { useState, useEffect, lazy, Suspense } from 'react';
|
||||
import React, { useState, useEffect, lazy } from 'react';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { Popconfirm, Tooltip } from 'antd';
|
||||
import { AiOutlineClose, AiFillDelete } from 'react-icons/ai';
|
||||
|
|
@ -83,7 +83,6 @@ const CustomerPriceHistory = lazy(
|
|||
() => import('../../UtillComponents/CustomerPriceHistory.jsx')
|
||||
); // Scss File
|
||||
import '../../../../../Styles/BookingScreen/Components/BSBillingTables/BSBillingTable1/BSBillingTable1.scss';
|
||||
import BillingTableSkeleton from '../../../../../Components/Skeleton/BillingTableSkeleton.jsx';
|
||||
|
||||
const BSBillingTable1 = () => {
|
||||
const { removeExtraCharge } = useUtilsComponent();
|
||||
|
|
@ -2034,7 +2033,6 @@ const BSBillingTable1 = () => {
|
|||
};
|
||||
|
||||
return (
|
||||
<Suspense fallback={<BillingTableSkeleton />}>
|
||||
<>
|
||||
<div className="BillingTable1-Structure" style={{ overflow: 'auto' }}>
|
||||
<div className="BillingTable1-table-div">
|
||||
|
|
@ -2259,7 +2257,8 @@ const BSBillingTable1 = () => {
|
|||
{OldtableDataTakeAway?.map((item, index) => (
|
||||
<tr
|
||||
key={index}
|
||||
className={`${item?.SalesId && OrderType !== 'Hold'
|
||||
className={`${
|
||||
item?.SalesId && OrderType !== 'Hold'
|
||||
? 'Billing-Table1-row-disabled'
|
||||
: 'Billing-Table1-row'
|
||||
}
|
||||
|
|
@ -2275,8 +2274,7 @@ const BSBillingTable1 = () => {
|
|||
: triggerAnimation &&
|
||||
index === 0 &&
|
||||
!item?.SalesId &&
|
||||
tableDataTakeAway?.length >=
|
||||
PreviousdataLength
|
||||
tableDataTakeAway?.length >= PreviousdataLength
|
||||
? 'wheat'
|
||||
: triggerAnimation &&
|
||||
index === 0 &&
|
||||
|
|
@ -2292,17 +2290,13 @@ const BSBillingTable1 = () => {
|
|||
? 'rgb(243, 248, 213)'
|
||||
: GlobEstBooking === 'ParEst' &&
|
||||
GlobProdwisedata?.includes(
|
||||
item?.InwardDtlId +
|
||||
' ' +
|
||||
item?.BookingTypeName
|
||||
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
||||
)
|
||||
? '#b2d1f7'
|
||||
: index % 2 === 0
|
||||
? 'white'
|
||||
: SelectedBillColor?.['OverallBackgroundColor']
|
||||
? SelectedBillColor?.[
|
||||
'OverallBackgroundColor'
|
||||
]
|
||||
? SelectedBillColor?.['OverallBackgroundColor']
|
||||
: '#d6d6d6',
|
||||
animation:
|
||||
BillOrderPre === 'Y' && !BookingTypeBoth
|
||||
|
|
@ -2354,9 +2348,9 @@ const BSBillingTable1 = () => {
|
|||
textAlign: 'left',
|
||||
}}
|
||||
onClick={() =>
|
||||
|
||||
(item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 || imeiModal)
|
||||
item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 ||
|
||||
imeiModal
|
||||
? handleImeiDetails(item)
|
||||
: editField && handleEditQuantity(item)
|
||||
}
|
||||
|
|
@ -2398,8 +2392,7 @@ const BSBillingTable1 = () => {
|
|||
>
|
||||
{item.ProdDetail?.map((prod, index) => (
|
||||
<p key={index}>
|
||||
{prod.ProdName} - {prod.Size}{' '}
|
||||
{prod.UomName}
|
||||
{prod.ProdName} - {prod.Size} {prod.UomName}
|
||||
</p>
|
||||
))}
|
||||
</div>
|
||||
|
|
@ -2456,12 +2449,16 @@ const BSBillingTable1 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -2555,7 +2552,8 @@ const BSBillingTable1 = () => {
|
|||
{OldtableDataDinein?.map((item, index) => (
|
||||
<tr
|
||||
key={OldtableDataTakeAway?.length + index}
|
||||
className={`${item?.SalesId
|
||||
className={`${
|
||||
item?.SalesId
|
||||
? 'Billing-Table1-row-disabled'
|
||||
: 'Billing-Table1-row'
|
||||
}
|
||||
|
|
@ -2576,8 +2574,7 @@ const BSBillingTable1 = () => {
|
|||
? 'wheat'
|
||||
: BookingType !== 'Dine In' &&
|
||||
triggerAnimation &&
|
||||
OldtableDataTakeAway?.length + index ===
|
||||
0 &&
|
||||
OldtableDataTakeAway?.length + index === 0 &&
|
||||
tableDataDinein?.length >=
|
||||
PreviousdataLength &&
|
||||
!HoldOrderDtl &&
|
||||
|
|
@ -2689,8 +2686,7 @@ const BSBillingTable1 = () => {
|
|||
>
|
||||
{item.ProdDetail?.map((prod, index) => (
|
||||
<p key={index}>
|
||||
{prod.ProdName} - {prod.Size}{' '}
|
||||
{prod.UomName}
|
||||
{prod.ProdName} - {prod.Size} {prod.UomName}
|
||||
</p>
|
||||
))}
|
||||
</div>
|
||||
|
|
@ -2747,12 +2743,16 @@ const BSBillingTable1 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -2851,7 +2851,8 @@ const BSBillingTable1 = () => {
|
|||
OldtableDataTakeAway?.length +
|
||||
index
|
||||
}
|
||||
className={`${BookingType === 'Dine In' && item?.SalesId
|
||||
className={`${
|
||||
BookingType === 'Dine In' && item?.SalesId
|
||||
? 'Billing-Table1-row-disabled'
|
||||
: 'Billing-Table1-row'
|
||||
}
|
||||
|
|
@ -2871,8 +2872,7 @@ const BSBillingTable1 = () => {
|
|||
index ===
|
||||
0 &&
|
||||
!item?.SalesId &&
|
||||
tableDataTakeAway?.length >=
|
||||
PreviousdataLength
|
||||
tableDataTakeAway?.length >= PreviousdataLength
|
||||
? 'wheat'
|
||||
: BookingType !== 'Dine In' &&
|
||||
triggerAnimation &&
|
||||
|
|
@ -2912,9 +2912,7 @@ const BSBillingTable1 = () => {
|
|||
? 'rgb(243, 248, 213)'
|
||||
: GlobEstBooking === 'ParEst' &&
|
||||
GlobProdwisedata?.includes(
|
||||
item?.InwardDtlId +
|
||||
' ' +
|
||||
item?.BookingTypeName
|
||||
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
||||
)
|
||||
? '#b2d1f7'
|
||||
: (OldtableDataDinein?.length +
|
||||
|
|
@ -2924,9 +2922,7 @@ const BSBillingTable1 = () => {
|
|||
0
|
||||
? 'white'
|
||||
: SelectedBillColor?.['OverallBackgroundColor']
|
||||
? SelectedBillColor?.[
|
||||
'OverallBackgroundColor'
|
||||
]
|
||||
? SelectedBillColor?.['OverallBackgroundColor']
|
||||
: '#d6d6d6',
|
||||
animation:
|
||||
BillOrderPre === 'Y' && !BookingTypeBoth
|
||||
|
|
@ -2984,9 +2980,9 @@ const BSBillingTable1 = () => {
|
|||
textAlign: 'left',
|
||||
}}
|
||||
onClick={() =>
|
||||
|
||||
(item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 || imeiModal)
|
||||
item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 ||
|
||||
imeiModal
|
||||
? handleImeiDetails(item)
|
||||
: editField && handleEditQuantity(item)
|
||||
}
|
||||
|
|
@ -3034,8 +3030,7 @@ const BSBillingTable1 = () => {
|
|||
>
|
||||
{item.ProdDetail?.map((prod, index) => (
|
||||
<p key={index}>
|
||||
{prod.ProdName} - {prod.Size}{' '}
|
||||
{prod.UomName}
|
||||
{prod.ProdName} - {prod.Size} {prod.UomName}
|
||||
</p>
|
||||
))}
|
||||
</div>
|
||||
|
|
@ -3092,12 +3087,16 @@ const BSBillingTable1 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -3197,7 +3196,8 @@ const BSBillingTable1 = () => {
|
|||
tableDataTakeAway?.length +
|
||||
index
|
||||
}
|
||||
className={`${BookingType === 'Dine In' && item?.SalesId
|
||||
className={`${
|
||||
BookingType === 'Dine In' && item?.SalesId
|
||||
? 'Billing-Table1-row-disabled'
|
||||
: 'Billing-Table1-row'
|
||||
}
|
||||
|
|
@ -3243,9 +3243,7 @@ const BSBillingTable1 = () => {
|
|||
? 'rgb(243, 248, 213)'
|
||||
: GlobEstBooking === 'ParEst' &&
|
||||
GlobProdwisedata?.includes(
|
||||
item?.InwardDtlId +
|
||||
' ' +
|
||||
item?.BookingTypeName
|
||||
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
||||
)
|
||||
? '#b2d1f7'
|
||||
: (OldtableDataTakeAway?.length +
|
||||
|
|
@ -3256,9 +3254,7 @@ const BSBillingTable1 = () => {
|
|||
0
|
||||
? 'white'
|
||||
: SelectedBillColor?.['OverallBackgroundColor']
|
||||
? SelectedBillColor?.[
|
||||
'OverallBackgroundColor'
|
||||
]
|
||||
? SelectedBillColor?.['OverallBackgroundColor']
|
||||
: '#d6d6d6',
|
||||
animation:
|
||||
BillOrderPre === 'Y' && !BookingTypeBoth
|
||||
|
|
@ -3360,8 +3356,7 @@ const BSBillingTable1 = () => {
|
|||
>
|
||||
{item.ProdDetail?.map((prod, index) => (
|
||||
<p key={index}>
|
||||
{prod.ProdName} - {prod.Size}{' '}
|
||||
{prod.UomName}
|
||||
{prod.ProdName} - {prod.Size} {prod.UomName}
|
||||
</p>
|
||||
))}
|
||||
</div>
|
||||
|
|
@ -3415,16 +3410,19 @@ const BSBillingTable1 = () => {
|
|||
}
|
||||
}}
|
||||
>
|
||||
|
||||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -3541,7 +3539,6 @@ const BSBillingTable1 = () => {
|
|||
</div>
|
||||
</div>
|
||||
</>
|
||||
</Suspense>
|
||||
);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,4 @@
|
|||
import React, {
|
||||
useCallback,
|
||||
useEffect,
|
||||
useState,
|
||||
useRef,
|
||||
lazy,
|
||||
Suspense,
|
||||
} from 'react';
|
||||
import React, { useCallback, useEffect, useState, useRef, lazy } from 'react';
|
||||
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import moment from 'moment';
|
||||
|
|
@ -220,7 +213,6 @@ const OtherServicePrintStyle1 = lazy(
|
|||
import('../../../PrintTemplates/ThermalPrinter/OtherServicePrintStyle1.jsx')
|
||||
);
|
||||
import OtherServiceMobilePrint from '../../BookingFunctionality/OtherServiceMobilePrint.jsx';
|
||||
import BillingTableSkeleton from '../../../../../Components/Skeleton/BillingTableSkeleton.jsx';
|
||||
const BSOtherServiceClaim = lazy(
|
||||
() => import('../../UtillComponents/BSOtherServiceClaim.jsx')
|
||||
);
|
||||
|
|
@ -722,7 +714,6 @@ const BSBillingTable2 = () => {
|
|||
Discount,
|
||||
]);
|
||||
useEffect(() => {
|
||||
|
||||
const fetchPrinterMapping = async () => {
|
||||
try {
|
||||
if (UserType !== 'Super Admin' && isMobile && MobileA4Print) {
|
||||
|
|
@ -733,19 +724,20 @@ const BSBillingTable2 = () => {
|
|||
UserId: UserId,
|
||||
};
|
||||
// && isMobile && MobileA4Print
|
||||
const response = await dispatch(getPrinterMappingDetails(data)).unwrap();
|
||||
const response = await dispatch(
|
||||
getPrinterMappingDetails(data)
|
||||
).unwrap();
|
||||
if (response?.data?.statusCode === 0) {
|
||||
handlePrintMappingClick()
|
||||
handlePrintMappingClick();
|
||||
}
|
||||
console.log(response, "printer mapping response");
|
||||
console.log(response, 'printer mapping response');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error fetching printer mapping:", error);
|
||||
console.error('Error fetching printer mapping:', error);
|
||||
}
|
||||
};
|
||||
|
||||
fetchPrinterMapping();
|
||||
|
||||
}, []);
|
||||
const handlePrintMappingClick = () => {
|
||||
// setReprint1(true)
|
||||
|
|
@ -753,7 +745,10 @@ const BSBillingTable2 = () => {
|
|||
};
|
||||
useEffect(() => {
|
||||
if (CompId && BranchId && AppId) {
|
||||
if (holdCheckedSalesSetup || NavBarOptions?.some((e) => e?.OptionName == 'Hold')) {
|
||||
if (
|
||||
holdCheckedSalesSetup ||
|
||||
NavBarOptions?.some((e) => e?.OptionName == 'Hold')
|
||||
) {
|
||||
getHolddata();
|
||||
}
|
||||
|
||||
|
|
@ -1947,7 +1942,10 @@ const BSBillingTable2 = () => {
|
|||
setCurrentOrderNetAmount(0);
|
||||
setPreviousNetAmount(0);
|
||||
|
||||
if (holdCheckedSalesSetup || NavBarOptions?.some((e) => e?.OptionName == 'Hold')) {
|
||||
if (
|
||||
holdCheckedSalesSetup ||
|
||||
NavBarOptions?.some((e) => e?.OptionName == 'Hold')
|
||||
) {
|
||||
getHolddata();
|
||||
}
|
||||
if (defaultBookingType === 'Both') {
|
||||
|
|
@ -2151,7 +2149,7 @@ const BSBillingTable2 = () => {
|
|||
PackageDtl: a.PackageDtl,
|
||||
...(a?.DiscountValue && { DiscountValue: a.DiscountValue }),
|
||||
...(a?.DiscountType && { DiscountType: a.DiscountType }),
|
||||
...(a?.DiscountAmt && { DiscountAmt: a.DiscountAmt })
|
||||
...(a?.DiscountAmt && { DiscountAmt: a.DiscountAmt }),
|
||||
}));
|
||||
const NotSlectedTypeFind = temporderdetail?.find(
|
||||
(a) => a?.BookingType != SelectedBookingType
|
||||
|
|
@ -3681,7 +3679,6 @@ const BSBillingTable2 = () => {
|
|||
);
|
||||
};
|
||||
return (
|
||||
<Suspense fallback={<BillingTableSkeleton />}>
|
||||
<div
|
||||
className={
|
||||
templateData?.BookingLayout?.[0] === 'Layout6'
|
||||
|
|
@ -4047,10 +4044,7 @@ const BSBillingTable2 = () => {
|
|||
payment.ModeId,
|
||||
payment.ModeName
|
||||
)
|
||||
: handlePaymentMode(
|
||||
payment.ModeId,
|
||||
payment.ModeName
|
||||
)
|
||||
: handlePaymentMode(payment.ModeId, payment.ModeName)
|
||||
}
|
||||
>
|
||||
<div
|
||||
|
|
@ -4199,8 +4193,10 @@ const BSBillingTable2 = () => {
|
|||
)}
|
||||
|
||||
{/* Customer Orders */}
|
||||
{(SelCustId && tableOptions?.filter((item) => item.OptionName === 'PreviousBillFetch')
|
||||
.length === 1) && (
|
||||
{SelCustId &&
|
||||
tableOptions?.filter(
|
||||
(item) => item.OptionName === 'PreviousBillFetch'
|
||||
).length === 1 && (
|
||||
<Tooltip title="Customer Orders" isMobile={isMobile}>
|
||||
{' '}
|
||||
<div
|
||||
|
|
@ -4240,10 +4236,7 @@ const BSBillingTable2 = () => {
|
|||
.map((filteredItem) => (
|
||||
<React.Fragment key={filteredItem.TemplateOptionsId}>
|
||||
{!OtherServicesglobal && (
|
||||
<TooltipWrapper
|
||||
title="Unpaid Bills"
|
||||
isMobile={isMobile}
|
||||
>
|
||||
<TooltipWrapper title="Unpaid Bills" isMobile={isMobile}>
|
||||
{' '}
|
||||
<PozoUnpaidIcon
|
||||
className="BSBillingNav-icon-table-icon"
|
||||
|
|
@ -4381,8 +4374,7 @@ const BSBillingTable2 = () => {
|
|||
OrderCardDetail?.length > 0 &&
|
||||
paybtnselected &&
|
||||
CheckBookingStatus != 'Close'
|
||||
? salesBillEdit &&
|
||||
currentOrderNetAmount < previousNetAmount
|
||||
? salesBillEdit && currentOrderNetAmount < previousNetAmount
|
||||
? 'billing-btn'
|
||||
: 'billing-btn'
|
||||
: 'billing-btn-deactive'
|
||||
|
|
@ -4407,9 +4399,7 @@ const BSBillingTable2 = () => {
|
|||
) : (
|
||||
<>
|
||||
<div className="billing-in-style">
|
||||
<h1 style={{ fontFamily: FontFamily['head'] }}>
|
||||
Total
|
||||
</h1>
|
||||
<h1 style={{ fontFamily: FontFamily['head'] }}>Total</h1>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
|
@ -4614,8 +4604,8 @@ const BSBillingTable2 = () => {
|
|||
<div>
|
||||
You have already selected a table. If you click 'OK,' the
|
||||
table selection will be removed, and the unpaid flow will
|
||||
continue. If you click 'Cancel,' the dine-in flow will
|
||||
proceed as selected.
|
||||
continue. If you click 'Cancel,' the dine-in flow will proceed
|
||||
as selected.
|
||||
</div>
|
||||
</>
|
||||
}
|
||||
|
|
@ -4733,9 +4723,7 @@ const BSBillingTable2 = () => {
|
|||
)
|
||||
}
|
||||
CreatedDate={OtherServicesPrintDetails?.CreatedDate}
|
||||
PaymentStatus={
|
||||
OtherServicesPrintDetails?.[0]?.PaymentOrderDtl
|
||||
}
|
||||
PaymentStatus={OtherServicesPrintDetails?.[0]?.PaymentOrderDtl}
|
||||
Preference={SettingDataSelector}
|
||||
printDatas={printDatas}
|
||||
/>
|
||||
|
|
@ -4846,9 +4834,7 @@ const BSBillingTable2 = () => {
|
|||
color: '#fff',
|
||||
border: 'none',
|
||||
borderRadius: 4,
|
||||
cursor: hasVehicleInputErrors()
|
||||
? 'not-allowed'
|
||||
: 'pointer',
|
||||
cursor: hasVehicleInputErrors() ? 'not-allowed' : 'pointer',
|
||||
}}
|
||||
>
|
||||
Submit
|
||||
|
|
@ -4914,7 +4900,6 @@ const BSBillingTable2 = () => {
|
|||
)}
|
||||
</div>
|
||||
</div>
|
||||
</Suspense>
|
||||
);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import React, {
|
|||
useState,
|
||||
useRef,
|
||||
lazy,
|
||||
Suspense,
|
||||
} from 'react';
|
||||
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
|
|
@ -214,7 +213,6 @@ import CardPopover from '../StandardTable/Utils/CardPopover.jsx';
|
|||
import UpiPopover from '../StandardTable/Utils/UpiPopOver.jsx';
|
||||
import MobileMultiPdfPrintTrigger from '../../UtillComponents/MobileMultiPdfPrintTrigger.jsx';
|
||||
import { useDateStore } from '../../../../../Features/BookingScreen/BookingData/DateStore.js';
|
||||
import BillingTableSkeleton from '../../../../../Components/Skeleton/BillingTableSkeleton.jsx';
|
||||
import CustomerMobileNumberModal from '../../BookingFunctionality/CustomerOTP.jsx';
|
||||
const PaymentGatewayEmbedded = lazy(
|
||||
() => import('../../UtillComponents/PaymentGatewayEmbedded.jsx')
|
||||
|
|
@ -3632,7 +3630,6 @@ const BSBillingTable3Pay = () => {
|
|||
);
|
||||
};
|
||||
return (
|
||||
<Suspense fallback={<BillingTableSkeleton />}>
|
||||
<>
|
||||
<div className="BSBilling3PayMaster">
|
||||
{screenwidth <= 768 && (
|
||||
|
|
@ -4970,7 +4967,6 @@ const BSBillingTable3Pay = () => {
|
|||
/>
|
||||
)}
|
||||
</>
|
||||
</Suspense>
|
||||
);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import React, { lazy, useEffect, useState, Suspense } from 'react';
|
||||
import React, { lazy, useEffect, useState } from 'react';
|
||||
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
|
||||
import { isMobile } from 'react-device-detect';
|
||||
import { AiFillDelete, AiOutlineClose } from 'react-icons/ai';
|
||||
|
|
@ -83,7 +83,6 @@ import {
|
|||
import { ApplicationPreferences } from '../../../../../Features/BrachLogin/BranchLogin.js';
|
||||
import { useDateStore } from '../../../../../Features/BookingScreen/BookingData/DateStore.js';
|
||||
import { useUtilsComponent } from '../../../../../Services/utils.js';
|
||||
import BillingTableSkeleton from '../../../../../Components/Skeleton/BillingTableSkeleton.jsx';
|
||||
const CustomerPriceHistory = lazy(
|
||||
() => import('../../UtillComponents/CustomerPriceHistory.jsx')
|
||||
);
|
||||
|
|
@ -1626,7 +1625,6 @@ const BSBillingTable4 = () => {
|
|||
BuyInwardDtlId: null,
|
||||
Offer: item?.Offer,
|
||||
OrderRate: item?.OrderRate,
|
||||
|
||||
});
|
||||
} else {
|
||||
const isCheck = GlobalOfferAppliedProductsData?.find(
|
||||
|
|
@ -2192,7 +2190,6 @@ const BSBillingTable4 = () => {
|
|||
};
|
||||
|
||||
return (
|
||||
<Suspense fallback={<BillingTableSkeleton />}>
|
||||
<div
|
||||
className={
|
||||
isMobile ? 'BSBilling4-tablediv-mobile' : 'BSBilling4-tablediv'
|
||||
|
|
@ -2407,7 +2404,8 @@ const BSBillingTable4 = () => {
|
|||
{OldtableDataTakeAway?.map((item, index) => (
|
||||
<tr
|
||||
key={index}
|
||||
className={`${item?.SalesId && OrderType !== 'Hold'
|
||||
className={`${
|
||||
item?.SalesId && OrderType !== 'Hold'
|
||||
? 'BSBill-Table3-content-Disabled'
|
||||
: 'BSBill-Table3-content'
|
||||
}
|
||||
|
|
@ -2428,8 +2426,7 @@ const BSBillingTable4 = () => {
|
|||
: BookingType !== 'Dine In' &&
|
||||
triggerAnimation &&
|
||||
index === 0 &&
|
||||
tableDataTakeAway?.length >=
|
||||
PreviousdataLength &&
|
||||
tableDataTakeAway?.length >= PreviousdataLength &&
|
||||
!HoldOrderDtl &&
|
||||
!UnpaidData
|
||||
? 'wheat'
|
||||
|
|
@ -2491,15 +2488,15 @@ const BSBillingTable4 = () => {
|
|||
className="Table4-items for-combo"
|
||||
style={{ fontFamily: 'Poppins' }}
|
||||
onClick={() =>
|
||||
(item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 || imeiModal)
|
||||
item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 ||
|
||||
imeiModal
|
||||
? handleImeiDetails(item)
|
||||
: editField && handleEditQuantity(item)
|
||||
}
|
||||
>
|
||||
{item.ProdName}
|
||||
{' '}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -2596,12 +2593,16 @@ const BSBillingTable4 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -2681,7 +2682,8 @@ const BSBillingTable4 = () => {
|
|||
{OldtableDataDinein?.map((item, index) => (
|
||||
<tr
|
||||
key={OldtableDataTakeAway?.length + index}
|
||||
className={`${item?.SalesId
|
||||
className={`${
|
||||
item?.SalesId
|
||||
? 'BSBill-Table3-content-Disabled'
|
||||
: 'BSBill-Table3-content'
|
||||
}
|
||||
|
|
@ -2769,8 +2771,7 @@ const BSBillingTable4 = () => {
|
|||
}}
|
||||
>
|
||||
{item.ProdName}
|
||||
{' '}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -2867,12 +2868,16 @@ const BSBillingTable4 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -2956,7 +2961,8 @@ const BSBillingTable4 = () => {
|
|||
OldtableDataTakeAway?.length +
|
||||
index
|
||||
}
|
||||
className={`${BookingType === 'Dine In' && item?.SalesId
|
||||
className={`${
|
||||
BookingType === 'Dine In' && item?.SalesId
|
||||
? 'BSBill-Table3-content-Disabled'
|
||||
: 'BSBill-Table3-content'
|
||||
}
|
||||
|
|
@ -2983,8 +2989,7 @@ const BSBillingTable4 = () => {
|
|||
OldtableDataTakeAway?.length +
|
||||
index ===
|
||||
0 &&
|
||||
tableDataTakeAway?.length >=
|
||||
PreviousdataLength &&
|
||||
tableDataTakeAway?.length >= PreviousdataLength &&
|
||||
!HoldOrderDtl &&
|
||||
!UnpaidData
|
||||
? 'wheat'
|
||||
|
|
@ -2995,9 +3000,7 @@ const BSBillingTable4 = () => {
|
|||
0
|
||||
? 'white'
|
||||
: SelectedBillColor?.['OverallBackgroundColor']
|
||||
? SelectedBillColor?.[
|
||||
'OverallBackgroundColor'
|
||||
]
|
||||
? SelectedBillColor?.['OverallBackgroundColor']
|
||||
: '#d6d6d6'
|
||||
: (OldtableDataDinein?.length +
|
||||
OldtableDataTakeAway?.length +
|
||||
|
|
@ -3075,17 +3078,15 @@ const BSBillingTable4 = () => {
|
|||
className="Table4-items for-combo"
|
||||
style={{ fontFamily: 'Poppins' }}
|
||||
onClick={() =>
|
||||
(item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 || imeiModal)
|
||||
item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 ||
|
||||
imeiModal
|
||||
? handleImeiDetails(item)
|
||||
: editField && handleEditQuantity(item, index)
|
||||
}
|
||||
>
|
||||
{item?.Type !== 'OS'
|
||||
? item.ProdName
|
||||
: item.ServiceName}
|
||||
{' '}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type !== 'OS' ? item.ProdName : item.ServiceName}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -3191,12 +3192,16 @@ const BSBillingTable4 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -3281,7 +3286,8 @@ const BSBillingTable4 = () => {
|
|||
OldtableDataTakeAway?.length +
|
||||
index
|
||||
}
|
||||
className={`${item?.SalesId && OrderType !== 'Hold'
|
||||
className={`${
|
||||
item?.SalesId && OrderType !== 'Hold'
|
||||
? 'BSBill-Table3-content-Disabled'
|
||||
: 'BSBill-Table3-content'
|
||||
}
|
||||
|
|
@ -3395,8 +3401,7 @@ const BSBillingTable4 = () => {
|
|||
}}
|
||||
>
|
||||
{item.ProdName}
|
||||
{' '}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -3493,12 +3498,16 @@ const BSBillingTable4 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -3598,7 +3607,6 @@ const BSBillingTable4 = () => {
|
|||
/>
|
||||
)}
|
||||
</div>
|
||||
</Suspense>
|
||||
);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import React, { useEffect, useState, useRef, lazy, Suspense } from 'react';
|
||||
import React, { useEffect, useState, useRef, lazy } from 'react';
|
||||
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
|
||||
import moment from 'moment';
|
||||
import { Popover, Badge, Modal, Tooltip } from 'antd';
|
||||
|
|
@ -197,7 +197,6 @@ import {
|
|||
import CardPopover from '../StandardTable/Utils/CardPopover.jsx';
|
||||
import UpiPopover from '../StandardTable/Utils/UpiPopOver.jsx';
|
||||
import { useDateStore } from '../../../../../Features/BookingScreen/BookingData/DateStore.js';
|
||||
import BillingTableSkeleton from '../../../../../Components/Skeleton/BillingTableSkeleton.jsx';
|
||||
import OtherServiceMobilePrint from '../../BookingFunctionality/OtherServiceMobilePrint.jsx';
|
||||
// Jsx Files
|
||||
const OtherServicePrintStyle1 = lazy(
|
||||
|
|
@ -565,7 +564,6 @@ const BSBillingTable5 = () => {
|
|||
}
|
||||
}, [OrderCardDetail]);
|
||||
useEffect(() => {
|
||||
|
||||
const fetchPrinterMapping = async () => {
|
||||
try {
|
||||
if (UserType !== 'Super Admin' && isMobile && MobileA4Print) {
|
||||
|
|
@ -576,19 +574,20 @@ const BSBillingTable5 = () => {
|
|||
UserId: UserId,
|
||||
};
|
||||
// && isMobile && MobileA4Print
|
||||
const response = await dispatch(getPrinterMappingDetails(data)).unwrap();
|
||||
const response = await dispatch(
|
||||
getPrinterMappingDetails(data)
|
||||
).unwrap();
|
||||
if (response?.data?.statusCode === 0) {
|
||||
handlePrintMappingClick()
|
||||
handlePrintMappingClick();
|
||||
}
|
||||
console.log(response, "printer mapping response");
|
||||
console.log(response, 'printer mapping response');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error fetching printer mapping:", error);
|
||||
console.error('Error fetching printer mapping:', error);
|
||||
}
|
||||
};
|
||||
|
||||
fetchPrinterMapping();
|
||||
|
||||
}, []);
|
||||
const handlePrintMappingClick = () => {
|
||||
// setReprint1(true)
|
||||
|
|
@ -777,7 +776,10 @@ const BSBillingTable5 = () => {
|
|||
|
||||
useEffect(() => {
|
||||
if (CompId && BranchId && AppId) {
|
||||
if (holdCheckedSalesSetup || NavBarOptions?.some((e) => e?.OptionName == 'Hold')) {
|
||||
if (
|
||||
holdCheckedSalesSetup ||
|
||||
NavBarOptions?.some((e) => e?.OptionName == 'Hold')
|
||||
) {
|
||||
getHolddata();
|
||||
}
|
||||
getCustomerData();
|
||||
|
|
@ -1963,7 +1965,10 @@ const BSBillingTable5 = () => {
|
|||
setUpinotSelected(false);
|
||||
setCurrentOrderNetAmount(0);
|
||||
setPreviousNetAmount(0);
|
||||
if (holdCheckedSalesSetup || NavBarOptions?.some((e) => e?.OptionName == 'Hold')) {
|
||||
if (
|
||||
holdCheckedSalesSetup ||
|
||||
NavBarOptions?.some((e) => e?.OptionName == 'Hold')
|
||||
) {
|
||||
getHolddata();
|
||||
}
|
||||
if (defaultBookingType === 'Both') {
|
||||
|
|
@ -2168,7 +2173,7 @@ const BSBillingTable5 = () => {
|
|||
SetCount: a.SetCount,
|
||||
...(a?.DiscountValue && { DiscountValue: a.DiscountValue }),
|
||||
...(a?.DiscountType && { DiscountType: a.DiscountType }),
|
||||
...(a?.DiscountAmt && { DiscountAmt: a.DiscountAmt })
|
||||
...(a?.DiscountAmt && { DiscountAmt: a.DiscountAmt }),
|
||||
}));
|
||||
const NotSlectedTypeFind = temporderdetail?.find(
|
||||
(a) => a?.BookingType != SelectedBookingType
|
||||
|
|
@ -3628,7 +3633,6 @@ const BSBillingTable5 = () => {
|
|||
};
|
||||
return (
|
||||
<>
|
||||
<Suspense fallback={<BillingTableSkeleton />}>
|
||||
<div
|
||||
className={
|
||||
templateData?.BookingLayout?.[0] === 'Layout6'
|
||||
|
|
@ -3749,10 +3753,7 @@ const BSBillingTable5 = () => {
|
|||
<div className="BSBillingTable-billtable">
|
||||
<div className="BSBillingTable5-payOpt">
|
||||
<div className="payrow1">
|
||||
<Messages
|
||||
messageType={messageType}
|
||||
messageData={messageData}
|
||||
/>
|
||||
<Messages messageType={messageType} messageData={messageData} />
|
||||
</div>
|
||||
|
||||
<div className="payrow2">
|
||||
|
|
@ -3792,8 +3793,7 @@ const BSBillingTable5 = () => {
|
|||
(UpinotSelected || CardoptionnotSelected)
|
||||
? 'Btn-payment-mode-notupisel'
|
||||
: paybtnselected === payment.ModeId &&
|
||||
(!UpinotSelected ||
|
||||
!CardoptionnotSelected)
|
||||
(!UpinotSelected || !CardoptionnotSelected)
|
||||
? 'Btn-payment-mode'
|
||||
: 'Btn-payment-mode-sel'
|
||||
}
|
||||
|
|
@ -3824,8 +3824,7 @@ const BSBillingTable5 = () => {
|
|||
}}
|
||||
>
|
||||
{payment.ModeName}
|
||||
{payment?.ModeName?.toLowerCase() ===
|
||||
'card' && (
|
||||
{payment?.ModeName?.toLowerCase() === 'card' && (
|
||||
<CardPopover
|
||||
CardPayOption={CardPayOption}
|
||||
SelectedCardOption={SelectedCardOption}
|
||||
|
|
@ -3874,8 +3873,7 @@ const BSBillingTable5 = () => {
|
|||
(UpinotSelected || CardoptionnotSelected)
|
||||
? 'Btn-payment-mode-notupisel'
|
||||
: refundPaySelected === payment.ConfigId &&
|
||||
(!UpinotSelected ||
|
||||
!CardoptionnotSelected)
|
||||
(!UpinotSelected || !CardoptionnotSelected)
|
||||
? 'Btn-payment-mode'
|
||||
: 'Btn-payment-mode-sel'
|
||||
}
|
||||
|
|
@ -4041,10 +4039,7 @@ const BSBillingTable5 = () => {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
style={{ justifyContent: 'center' }}
|
||||
className="CustomerAddSrch"
|
||||
>
|
||||
<div style={{ justifyContent: 'center' }} className="CustomerAddSrch">
|
||||
<div style={{ height: '2.1rem' }}>
|
||||
{tableOptions
|
||||
.filter((item) => item.OptionName === 'AddCustomer')
|
||||
|
|
@ -4185,8 +4180,10 @@ const BSBillingTable5 = () => {
|
|||
''
|
||||
)}
|
||||
{/* Customer Orders */}
|
||||
{(SelCustId && tableOptions?.filter((item) => item.OptionName === 'PreviousBillFetch')
|
||||
.length === 1) && (
|
||||
{SelCustId &&
|
||||
tableOptions?.filter(
|
||||
(item) => item.OptionName === 'PreviousBillFetch'
|
||||
).length === 1 && (
|
||||
<Tooltip title="Customer Orders" isMobile={isMobile}>
|
||||
{' '}
|
||||
<div
|
||||
|
|
@ -4399,12 +4396,10 @@ const BSBillingTable5 = () => {
|
|||
}
|
||||
>
|
||||
{!OrderStatus ? (
|
||||
salesBillEdit &&
|
||||
currentOrderNetAmount < previousNetAmount ? (
|
||||
salesBillEdit && currentOrderNetAmount < previousNetAmount ? (
|
||||
<div>
|
||||
Refund: ₹
|
||||
{(previousNetAmount || 0) -
|
||||
(currentOrderNetAmount || 0)}
|
||||
{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}
|
||||
</div>
|
||||
) : (
|
||||
<>
|
||||
|
|
@ -4518,8 +4513,7 @@ const BSBillingTable5 = () => {
|
|||
}
|
||||
/>
|
||||
{PrintOrderDetails?.length > 0 &&
|
||||
PrintOrderDetails?.[0]?.OrderDetails?.map(
|
||||
(orderDetail, index) => (
|
||||
PrintOrderDetails?.[0]?.OrderDetails?.map((orderDetail, index) => (
|
||||
<div style={{ display: 'none' }}>
|
||||
<PaymentPdfBooking
|
||||
index={index}
|
||||
|
|
@ -4538,13 +4532,11 @@ const BSBillingTable5 = () => {
|
|||
printDatas={printDatas}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
)}
|
||||
))}
|
||||
{PrintOrderDetails?.length > 0 &&
|
||||
(TokenOnly?.SettingValue === 'Y' ||
|
||||
IndividualToken?.SettingValue === 'Y') &&
|
||||
PrintOrderDetails?.[0]?.OrderDetails?.map(
|
||||
(orderDetail, index) => (
|
||||
PrintOrderDetails?.[0]?.OrderDetails?.map((orderDetail, index) => (
|
||||
<div style={{ display: 'none' }}>
|
||||
<TokensinglePrint
|
||||
index={index}
|
||||
|
|
@ -4561,8 +4553,7 @@ const BSBillingTable5 = () => {
|
|||
PaymentStatus={PrintOrderDetails?.[0]?.PaymentOrderDtl}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
)}
|
||||
))}
|
||||
{CreditCustomer && (
|
||||
<div style={{ display: 'none' }}>
|
||||
<BsBillingCreditCustomer
|
||||
|
|
@ -4606,8 +4597,8 @@ const BSBillingTable5 = () => {
|
|||
<div>
|
||||
You have already selected a table. If you click 'OK,' the
|
||||
table selection will be removed, and the unpaid flow will
|
||||
continue. If you click 'Cancel,' the dine-in flow will
|
||||
proceed as selected.
|
||||
continue. If you click 'Cancel,' the dine-in flow will proceed
|
||||
as selected.
|
||||
</div>
|
||||
</>
|
||||
}
|
||||
|
|
@ -4709,9 +4700,7 @@ const BSBillingTable5 = () => {
|
|||
)
|
||||
}
|
||||
CreatedDate={OtherServicesPrintDetails?.CreatedDate}
|
||||
PaymentStatus={
|
||||
OtherServicesPrintDetails?.[0]?.PaymentOrderDtl
|
||||
}
|
||||
PaymentStatus={OtherServicesPrintDetails?.[0]?.PaymentOrderDtl}
|
||||
Preference={SettingDataSelector}
|
||||
printDatas={printDatas}
|
||||
/>
|
||||
|
|
@ -4821,9 +4810,7 @@ const BSBillingTable5 = () => {
|
|||
color: '#fff',
|
||||
border: 'none',
|
||||
borderRadius: 4,
|
||||
cursor: hasVehicleInputErrors()
|
||||
? 'not-allowed'
|
||||
: 'pointer',
|
||||
cursor: hasVehicleInputErrors() ? 'not-allowed' : 'pointer',
|
||||
}}
|
||||
>
|
||||
Submit
|
||||
|
|
@ -4905,7 +4892,6 @@ const BSBillingTable5 = () => {
|
|||
/>
|
||||
)}
|
||||
</div>
|
||||
</Suspense>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import React, { Suspense, useEffect, useState, lazy } from 'react';
|
||||
import React, { useEffect, useState, lazy } from 'react';
|
||||
import { useSelector, useDispatch } from 'react-redux';
|
||||
import { Popconfirm, Tooltip } from 'antd';
|
||||
import '../../../../../Styles/BookingScreen/Components/BSBillingTables/BSBillingTable6/BSBillingTable6.scss';
|
||||
|
|
@ -75,7 +75,6 @@ import {
|
|||
import { getCustomerDisplayWindow } from '../../../../../Features/customerDisplayWindow/customerDisplayWindow.js';
|
||||
import { useApplyOfferto_CardDetail } from '../../UtillComponents/BSNavBarOffer/BSNavBarOffer_CustomHooks.jsx';
|
||||
import { useUtilsComponent } from '../../../../../Services/utils.js';
|
||||
import BillingTableSkeleton from '../../../../../Components/Skeleton/BillingTableSkeleton.jsx';
|
||||
const BSEditTotalAmt = lazy(
|
||||
() => import('../BSEditTotalAmount/BSEditTotalAmt.jsx')
|
||||
);
|
||||
|
|
@ -2004,7 +2003,6 @@ const BSBillingTable6 = () => {
|
|||
};
|
||||
|
||||
return (
|
||||
<Suspense fallback={<BillingTableSkeleton />}>
|
||||
<div
|
||||
className={
|
||||
true
|
||||
|
|
@ -2247,8 +2245,7 @@ const BSBillingTable6 = () => {
|
|||
? 'wheat'
|
||||
: triggerAnimation &&
|
||||
index === 0 &&
|
||||
tableDataTakeAway?.length >=
|
||||
PreviousdataLength &&
|
||||
tableDataTakeAway?.length >= PreviousdataLength &&
|
||||
!HoldOrderDtl &&
|
||||
!UnpaidData
|
||||
? 'wheat'
|
||||
|
|
@ -2311,15 +2308,15 @@ const BSBillingTable6 = () => {
|
|||
className="BillingTable6-table-td for-combo"
|
||||
style={{ fontFamily: 'Poppins', textAlign: 'left' }}
|
||||
onClick={() =>
|
||||
(item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 || imeiModal)
|
||||
item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 ||
|
||||
imeiModal
|
||||
? handleImeiDetails(item)
|
||||
: editField && handleEditQuantity(item)
|
||||
}
|
||||
>
|
||||
{item.ProdName}
|
||||
{' '}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -2402,12 +2399,16 @@ const BSBillingTable6 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -2573,8 +2574,7 @@ const BSBillingTable6 = () => {
|
|||
}}
|
||||
>
|
||||
{item.ProdName}
|
||||
{' '}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -2657,12 +2657,16 @@ const BSBillingTable6 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -2771,8 +2775,7 @@ const BSBillingTable6 = () => {
|
|||
OldtableDataTakeAway?.length +
|
||||
index ===
|
||||
0 &&
|
||||
tableDataTakeAway?.length >=
|
||||
PreviousdataLength &&
|
||||
tableDataTakeAway?.length >= PreviousdataLength &&
|
||||
!HoldOrderDtl &&
|
||||
!UnpaidData
|
||||
? 'wheat'
|
||||
|
|
@ -2783,9 +2786,7 @@ const BSBillingTable6 = () => {
|
|||
0
|
||||
? 'white'
|
||||
: SelectedBillColor?.['OverallBackgroundColor']
|
||||
? SelectedBillColor?.[
|
||||
'OverallBackgroundColor'
|
||||
]
|
||||
? SelectedBillColor?.['OverallBackgroundColor']
|
||||
: '#d6d6d6'
|
||||
: (OldtableDataDinein?.length +
|
||||
OldtableDataTakeAway?.length +
|
||||
|
|
@ -2862,15 +2863,15 @@ const BSBillingTable6 = () => {
|
|||
className="BillingTable6-table-td for-combo"
|
||||
style={{ fontFamily: 'Poppins', textAlign: 'left' }}
|
||||
onClick={() =>
|
||||
(item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 || imeiModal)
|
||||
item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 ||
|
||||
imeiModal
|
||||
? handleImeiDetails(item)
|
||||
: editField && handleEditQuantity(item)
|
||||
}
|
||||
>
|
||||
{item.ProdName}
|
||||
{' '}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -2958,12 +2959,16 @@ const BSBillingTable6 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -3158,8 +3163,7 @@ const BSBillingTable6 = () => {
|
|||
}}
|
||||
>
|
||||
{item.ProdName}
|
||||
{' '}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -3239,16 +3243,19 @@ const BSBillingTable6 = () => {
|
|||
}
|
||||
}}
|
||||
>
|
||||
|
||||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -3345,7 +3352,6 @@ const BSBillingTable6 = () => {
|
|||
/>
|
||||
)}
|
||||
</div>
|
||||
</Suspense>
|
||||
);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -94,7 +94,6 @@ import {
|
|||
GlobalOverAllDiscSales,
|
||||
ChangeOverAllDiscSales,
|
||||
ChangeOverAllDiscEstimate,
|
||||
|
||||
GlobalBranchFinancialStatus,
|
||||
changeSummeryComboOfferAmount,
|
||||
ChangeComboCarddata,
|
||||
|
|
@ -176,7 +175,7 @@ import PozoSplitPaymentIcon from '../../UtillComponents/Pozo retail icons/PozoSp
|
|||
import PozoCartIcon from '../../../../../Pages/BookingScreen/Components/UtillComponents/PozoCartIcon.jsx';
|
||||
import {
|
||||
Global_OrderOfferDetail,
|
||||
Global_OverallOfferAmount
|
||||
Global_OverallOfferAmount,
|
||||
} from '../../../../../Features/Offer/Offer.js';
|
||||
import { useApplyOfferto_CardDetail } from '../../UtillComponents/BSNavBarOffer/BSNavBarOffer_CustomHooks.jsx';
|
||||
import TooltipWrapper from '../../../../../Components/Tooltip/Tooltip';
|
||||
|
|
@ -234,13 +233,15 @@ const BSBilling7Payment = () => {
|
|||
const navigate = useNavigate();
|
||||
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||
const previousOrderPayment = useSelector(GlobalPreviousOrderPayment);
|
||||
const previousOrderOfferDetails = useSelector(GlobalPreviousOrderOfferDetails);
|
||||
const previousOrderOfferDetails = useSelector(
|
||||
GlobalPreviousOrderOfferDetails
|
||||
);
|
||||
const AllPaymentOptions = useSelector(GlobalpaymentOptionData);
|
||||
const Discount = useSelector(GlobalOverAllOfferAmt);
|
||||
const screenwidth = useSelector(GlobalScreenSize);
|
||||
const defaultBookingType = useSelector(GlobalDefaultBookingType);
|
||||
const printerTemplateStyle = useSelector(SelectedPrintTemplate);
|
||||
const AllBookingType = useSelector(GlobalAllBookingType)
|
||||
const AllBookingType = useSelector(GlobalAllBookingType);
|
||||
const FontFamily = useSelector(GlobalSelectedFont);
|
||||
const OrderCardDetail = useSelector(GlobalOrderCardDetails);
|
||||
const GetCustId = useSelector(GlobalCustId);
|
||||
|
|
@ -342,7 +343,8 @@ const BSBilling7Payment = () => {
|
|||
const [previousNetAmount, setPreviousNetAmount] = useState(0);
|
||||
const [addcustomer, setAddCustomer] = useState(false);
|
||||
const [PrintOrderDetails, setPrintOrderDetails] = useState([]);
|
||||
const [customerPreviesOrders, setCustomerPreviesOrders] = useState(false); const OverAllSales = useSelector(GlobalOverAllDiscSales);
|
||||
const [customerPreviesOrders, setCustomerPreviesOrders] = useState(false);
|
||||
const OverAllSales = useSelector(GlobalOverAllDiscSales);
|
||||
const OverAllEstimate = useSelector(GlobalOverAllDiscEstimate);
|
||||
//Total calculation
|
||||
const TotalItems = OrderCardDetail?.length;
|
||||
|
|
@ -361,7 +363,12 @@ const BSBilling7Payment = () => {
|
|||
|
||||
return acc + Math.round(Number(item?.OrderQty || 0));
|
||||
}, 0);
|
||||
console.log(salesBillEdit, currentOrderNetAmount, previousNetAmount, "previousNetAmount")
|
||||
console.log(
|
||||
salesBillEdit,
|
||||
currentOrderNetAmount,
|
||||
previousNetAmount,
|
||||
'previousNetAmount'
|
||||
);
|
||||
const [UpiOption, setUpiOption] = useState('');
|
||||
const [BusinessPayOption, setBusinessPayoption] = useState([]);
|
||||
const [paymentSucess, setPaymentSuccess] = useState(false);
|
||||
|
|
@ -507,7 +514,6 @@ const BSBilling7Payment = () => {
|
|||
}, [salesBillEdit]);
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
if (salesBillEdit) {
|
||||
if (SelCustId) {
|
||||
setRefundPayBtns(AllPaymentOptions);
|
||||
|
|
@ -522,9 +528,7 @@ const BSBilling7Payment = () => {
|
|||
setRefundPayBtns(withoutCustomer);
|
||||
}
|
||||
}
|
||||
|
||||
}, [AllPaymentOptions, SelCustId, salesBillEdit])
|
||||
|
||||
}, [AllPaymentOptions, SelCustId, salesBillEdit]);
|
||||
|
||||
// Usage
|
||||
useEffect(() => {
|
||||
|
|
@ -626,14 +630,21 @@ const BSBilling7Payment = () => {
|
|||
|
||||
const filteredPayments =
|
||||
previousOrderPayment?.filter(
|
||||
p => p?.LastOrderTran === 'Y' && p?.AfterAdjustment != null && p?.AfterAdjustment !== '' && p?.AfterAdjustment
|
||||
(p) =>
|
||||
p?.LastOrderTran === 'Y' &&
|
||||
p?.AfterAdjustment != null &&
|
||||
p?.AfterAdjustment !== '' &&
|
||||
p?.AfterAdjustment
|
||||
) || [];
|
||||
|
||||
const paymentsToUse =
|
||||
filteredPayments.length > 0 ? filteredPayments : previousOrderPayment || [];
|
||||
filteredPayments.length > 0
|
||||
? filteredPayments
|
||||
: previousOrderPayment || [];
|
||||
|
||||
const totalPreviouspayment = paymentsToUse?.reduce(
|
||||
(acc, payment) => acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||
(acc, payment) =>
|
||||
acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||
0
|
||||
);
|
||||
|
||||
|
|
@ -642,8 +653,7 @@ const BSBilling7Payment = () => {
|
|||
0
|
||||
);
|
||||
|
||||
const previousNetAmount =
|
||||
(totalPreviouspayment) || 0;
|
||||
const previousNetAmount = totalPreviouspayment || 0;
|
||||
|
||||
let withdiscTotal =
|
||||
Total -
|
||||
|
|
@ -655,13 +665,34 @@ const BSBilling7Payment = () => {
|
|||
withdiscTotal >= 0
|
||||
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
||||
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
||||
)
|
||||
console.log(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount, "totalPreviouspayment")
|
||||
);
|
||||
console.log(
|
||||
salesBillEdit
|
||||
? currentOrderNetAmount > previousNetAmount
|
||||
? currentOrderNetAmount - previousNetAmount
|
||||
: 0
|
||||
: currentOrderNetAmount,
|
||||
'totalPreviouspayment'
|
||||
);
|
||||
|
||||
setTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount);
|
||||
setTotalAmount(
|
||||
salesBillEdit
|
||||
? currentOrderNetAmount > previousNetAmount
|
||||
? currentOrderNetAmount - previousNetAmount
|
||||
: 0
|
||||
: currentOrderNetAmount
|
||||
);
|
||||
setCurrentOrderNetAmount(currentOrderNetAmount);
|
||||
setPreviousNetAmount(previousNetAmount);
|
||||
dispatch(changeSummeryTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount));
|
||||
dispatch(
|
||||
changeSummeryTotalAmount(
|
||||
salesBillEdit
|
||||
? currentOrderNetAmount > previousNetAmount
|
||||
? currentOrderNetAmount - previousNetAmount
|
||||
: 0
|
||||
: currentOrderNetAmount
|
||||
)
|
||||
);
|
||||
|
||||
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
||||
|
||||
|
|
@ -684,7 +715,6 @@ const BSBilling7Payment = () => {
|
|||
Discount,
|
||||
]);
|
||||
useEffect(() => {
|
||||
|
||||
const fetchPrinterMapping = async () => {
|
||||
try {
|
||||
if (UserType !== 'Super Admin' && isMobile && MobileA4Print) {
|
||||
|
|
@ -695,19 +725,20 @@ const BSBilling7Payment = () => {
|
|||
UserId: UserId,
|
||||
};
|
||||
// && isMobile && MobileA4Print
|
||||
const response = await dispatch(getPrinterMappingDetails(data)).unwrap();
|
||||
const response = await dispatch(
|
||||
getPrinterMappingDetails(data)
|
||||
).unwrap();
|
||||
if (response?.data?.statusCode === 0) {
|
||||
handlePrintMappingClick()
|
||||
handlePrintMappingClick();
|
||||
}
|
||||
console.log(response, "printer mapping response");
|
||||
console.log(response, 'printer mapping response');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error fetching printer mapping:", error);
|
||||
console.error('Error fetching printer mapping:', error);
|
||||
}
|
||||
};
|
||||
|
||||
fetchPrinterMapping();
|
||||
|
||||
}, []);
|
||||
const handlePrintMappingClick = () => {
|
||||
// setReprint1(true)
|
||||
|
|
@ -834,7 +865,6 @@ const BSBilling7Payment = () => {
|
|||
: parseInt(value || 0);
|
||||
};
|
||||
const getCustomerData = async () => {
|
||||
|
||||
await dispatch(
|
||||
getAddCustomerDetails({
|
||||
CompId: CompId,
|
||||
|
|
@ -904,8 +934,9 @@ const BSBilling7Payment = () => {
|
|||
async (orderDetail, index) => {
|
||||
await printDiv(`${selectedStyle}-${index}`, style); // Use unique IDs for each print
|
||||
if (orderDetail?.BookingTypeName !== 'Dine In') {
|
||||
const groupedTokens = orderDetail?.productDetails?.filter(data => data?.EditTokenAvailable !== 'N')?.reduce(
|
||||
(acc, item, idx) => {
|
||||
const groupedTokens = orderDetail?.productDetails
|
||||
?.filter((data) => data?.EditTokenAvailable !== 'N')
|
||||
?.reduce((acc, item, idx) => {
|
||||
if (item.TokenAvailable === 'Y') {
|
||||
if (!item.CounterName) {
|
||||
// If CounterName is null or empty
|
||||
|
|
@ -918,9 +949,7 @@ const BSBilling7Payment = () => {
|
|||
}
|
||||
}
|
||||
return acc;
|
||||
},
|
||||
{}
|
||||
);
|
||||
}, {});
|
||||
|
||||
// Iterate over grouped tokens and print them
|
||||
const tokensToPrint = Object.entries(groupedTokens).map(
|
||||
|
|
@ -984,7 +1013,11 @@ const BSBilling7Payment = () => {
|
|||
const handleButtonClick = () => {
|
||||
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
||||
UpiPayment();
|
||||
} else if (salesBillEdit && currentOrderNetAmount < previousNetAmount && !refundPaySelected) {
|
||||
} else if (
|
||||
salesBillEdit &&
|
||||
currentOrderNetAmount < previousNetAmount &&
|
||||
!refundPaySelected
|
||||
) {
|
||||
setMessageType('warning');
|
||||
setMessageData('Please Select Refund Payment Method');
|
||||
return;
|
||||
|
|
@ -1649,9 +1682,7 @@ const BSBilling7Payment = () => {
|
|||
let configdata = AllBookingType;
|
||||
let checkName = BookingTypeBoth ? 'DineIn,TakeAway' : BookingType;
|
||||
|
||||
let filterconfigdata = configdata?.find(
|
||||
(a) => a?.ConfigName === checkName
|
||||
);
|
||||
let filterconfigdata = configdata?.find((a) => a?.ConfigName === checkName);
|
||||
setSelectedBookingType(filterconfigdata?.ConfigId);
|
||||
};
|
||||
const gettodaydate = () => {
|
||||
|
|
@ -1725,7 +1756,7 @@ const BSBilling7Payment = () => {
|
|||
const handleRefundPaymentMode = (id, name) => {
|
||||
setRefundPaySelected(id);
|
||||
setRefundPaySelectedName(name);
|
||||
}
|
||||
};
|
||||
|
||||
const addUpiOption = async (id, name, UPIId) => {
|
||||
await dispatch(changeUpiIDprint(UPIId));
|
||||
|
|
@ -2141,7 +2172,7 @@ const BSBilling7Payment = () => {
|
|||
SetCount: a.SetCount,
|
||||
...(a?.DiscountValue && { DiscountValue: a.DiscountValue }),
|
||||
...(a?.DiscountType && { DiscountType: a.DiscountType }),
|
||||
...(a?.DiscountAmt && { DiscountAmt: a.DiscountAmt })
|
||||
...(a?.DiscountAmt && { DiscountAmt: a.DiscountAmt }),
|
||||
}));
|
||||
const NotSlectedTypeFind = temporderdetail?.find(
|
||||
(a) => a?.BookingType != SelectedBookingType
|
||||
|
|
@ -2240,8 +2271,10 @@ const BSBilling7Payment = () => {
|
|||
SalesPaymentType: 'normal',
|
||||
PaymentDetail: [
|
||||
{
|
||||
PaymentType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? refundPaySelected :
|
||||
Paybtnnameselected?.toLowerCase() === 'upi'
|
||||
PaymentType:
|
||||
salesBillEdit && currentOrderNetAmount < previousNetAmount
|
||||
? refundPaySelected
|
||||
: Paybtnnameselected?.toLowerCase() === 'upi'
|
||||
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
||||
? PaymentDeviceUPI?.[0]?.ModeId
|
||||
: SelectedUPIPayOption?.toLowerCase() === 'pg'
|
||||
|
|
@ -2254,15 +2287,25 @@ const BSBilling7Payment = () => {
|
|||
: paybtnselected
|
||||
? paybtnselected
|
||||
: null,
|
||||
Amount: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? previousNetAmount - currentOrderNetAmount : Math.round(TotalAmount),
|
||||
MerchantId: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||
Amount:
|
||||
salesBillEdit && currentOrderNetAmount < previousNetAmount
|
||||
? previousNetAmount - currentOrderNetAmount
|
||||
: Math.round(TotalAmount),
|
||||
MerchantId:
|
||||
salesBillEdit && currentOrderNetAmount < previousNetAmount
|
||||
? null
|
||||
: Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||
SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||
?.MerchantId
|
||||
: null,
|
||||
PaymentOptionType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) && (refundPaySelectedName?.toLowerCase() === 'cash' || refundPaySelectedName?.toLowerCase() === 'credit') ? 'PC' :
|
||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||
PaymentOptionType:
|
||||
salesBillEdit &&
|
||||
currentOrderNetAmount < previousNetAmount &&
|
||||
(refundPaySelectedName?.toLowerCase() === 'cash' ||
|
||||
refundPaySelectedName?.toLowerCase() === 'credit')
|
||||
? 'PC'
|
||||
: Paybtnnameselected?.toLowerCase() === 'cash'
|
||||
? 'PC'
|
||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||
? 'PC'
|
||||
|
|
@ -2275,16 +2318,21 @@ const BSBilling7Payment = () => {
|
|||
? 'BU'
|
||||
: SelectedUPIPayOption
|
||||
: null,
|
||||
ModeOfPayment: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||
ModeOfPayment:
|
||||
salesBillEdit && currentOrderNetAmount < previousNetAmount
|
||||
? null
|
||||
: SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
||||
?.UPIDetailId
|
||||
: SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||
?.MerchantUPIId
|
||||
? BusinessPayOption?.find(
|
||||
(busupi) => busupi?.ModeId === UpiId
|
||||
)?.MerchantUPIId
|
||||
: null,
|
||||
AccountDtl: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? [] :
|
||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||
AccountDtl:
|
||||
salesBillEdit && currentOrderNetAmount < previousNetAmount
|
||||
? []
|
||||
: Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||
(upipay) => upipay?.UPIId === UpiId
|
||||
|
|
@ -2300,8 +2348,10 @@ const BSBilling7Payment = () => {
|
|||
SelectedCardOption?.toLowerCase() === 'pg')
|
||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||
: [],
|
||||
PaymentStatus: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? 'S' :
|
||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||
PaymentStatus:
|
||||
salesBillEdit && currentOrderNetAmount < previousNetAmount
|
||||
? 'S'
|
||||
: Paybtnnameselected?.toLowerCase() === 'cash'
|
||||
? 'S'
|
||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||
? 'S'
|
||||
|
|
@ -2309,9 +2359,18 @@ const BSBilling7Payment = () => {
|
|||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||
? 'S'
|
||||
: 'P',
|
||||
Debit: (salesBillEdit && currentOrderNetAmount < previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(previousNetAmount - currentOrderNetAmount) : 0,
|
||||
Credit: salesBillEdit ? (currentOrderNetAmount > previousNetAmount && Paybtnnameselected?.toLowerCase() === 'credit') ? Math.round(TotalAmount) : 0 :
|
||||
Debit:
|
||||
salesBillEdit &&
|
||||
currentOrderNetAmount < previousNetAmount &&
|
||||
refundPaySelectedName?.toLowerCase() === 'credit'
|
||||
? Math.round(previousNetAmount - currentOrderNetAmount)
|
||||
: 0,
|
||||
Credit: salesBillEdit
|
||||
? currentOrderNetAmount > previousNetAmount &&
|
||||
Paybtnnameselected?.toLowerCase() === 'credit'
|
||||
? Math.round(TotalAmount)
|
||||
: 0
|
||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||
? Math.round(TotalAmount)
|
||||
: 0,
|
||||
},
|
||||
|
|
@ -3509,21 +3568,24 @@ const BSBilling7Payment = () => {
|
|||
<div className="BSBilling4-price-full bsbilltable7">
|
||||
<div className="BSBilling4-price-content">
|
||||
{screenwidth <= 768 && (
|
||||
<div className="RowforResposiveBill7">
|
||||
<div
|
||||
className={`BSBillingTable1-summeryTable ${responsiveBill ? 'open' : 'closed'}`}
|
||||
style={{
|
||||
width: '100%',
|
||||
transition: 'max-height 0.3s ease-in-out',
|
||||
overflow: 'scroll',
|
||||
overflow: 'auto',
|
||||
height: 'max-content',
|
||||
maxHeight: responsiveBill ? '180px' : '0px',
|
||||
scrollbarWidth: 'thin',
|
||||
}}
|
||||
>
|
||||
{Array.isArray(OrderCardDetail) && OrderCardDetail?.length >= 1 && (
|
||||
{Array.isArray(OrderCardDetail) &&
|
||||
OrderCardDetail?.length >= 1 && (
|
||||
<BSBillingTable7 optionNames={tableOptions} />
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
{screenwidth <= 768 && (
|
||||
|
||||
<div
|
||||
style={{
|
||||
display: 'flex',
|
||||
|
|
@ -3532,7 +3594,8 @@ const BSBilling7Payment = () => {
|
|||
width: '100%',
|
||||
}}
|
||||
>
|
||||
{Array.isArray(OrderCardDetail) && OrderCardDetail?.length >= 1 && (
|
||||
{Array.isArray(OrderCardDetail) &&
|
||||
OrderCardDetail?.length >= 1 && (
|
||||
<div
|
||||
onClick={handleResponsiveBill}
|
||||
className="Btn-responsiveBill"
|
||||
|
|
@ -3566,17 +3629,13 @@ const BSBilling7Payment = () => {
|
|||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
{/* {Array.isArray(OrderCardDetail) && OrderCardDetail?.length >= 1 && (
|
||||
<span className="Table3-Price-div-table">
|
||||
{" "}
|
||||
<BSBillingTable7 optionNames={tableOptions} />
|
||||
</span>
|
||||
)} */}
|
||||
<div className="RowResposiveBill7">
|
||||
<div className="Table7-price-icon-container">
|
||||
<Messages messageType={messageType} messageData={messageData} />
|
||||
<div className="CustomerAddSrch">
|
||||
<div style={{ height: '2.1rem' }}>
|
||||
<div>
|
||||
{tableOptions
|
||||
?.filter((item) => item.OptionName === 'AddCustomer')
|
||||
?.map((filteredItem) => (
|
||||
|
|
@ -3611,7 +3670,7 @@ const BSBilling7Payment = () => {
|
|||
))}
|
||||
</div>
|
||||
</div>
|
||||
<div className="BS3hold-sum">
|
||||
<div className="BS7hold-sum">
|
||||
{(addcustomer || hold) && (
|
||||
<FeaturesFunctionalities
|
||||
handleAddCustomerCancel={handleAddCustomerCancel}
|
||||
|
|
@ -3671,8 +3730,10 @@ const BSBilling7Payment = () => {
|
|||
)}
|
||||
|
||||
{/* Customer Orders */}
|
||||
{(SelCustId && tableOptions?.filter((item) => item.OptionName === 'PreviousBillFetch')
|
||||
.length === 1) && (
|
||||
{SelCustId &&
|
||||
tableOptions?.filter(
|
||||
(item) => item.OptionName === 'PreviousBillFetch'
|
||||
).length === 1 && (
|
||||
<Tooltip title="Customer Orders" isMobile={isMobile}>
|
||||
{' '}
|
||||
<div
|
||||
|
|
@ -3894,7 +3955,10 @@ const BSBilling7Payment = () => {
|
|||
paybtns?.length > 0 &&
|
||||
!addnewAccess &&
|
||||
!OtherServicesglobal && (
|
||||
<TooltipWrapper title={'Recall'} isMobile={isMobile}>
|
||||
<TooltipWrapper
|
||||
title={'Recall'}
|
||||
isMobile={isMobile}
|
||||
>
|
||||
{' '}
|
||||
<Badge
|
||||
count={Holddata?.length}
|
||||
|
|
@ -3954,7 +4018,8 @@ const BSBilling7Payment = () => {
|
|||
: 1,
|
||||
}}
|
||||
>
|
||||
{paybtns?.length > 0 && (currentOrderNetAmount >= previousNetAmount) ? (
|
||||
{paybtns?.length > 0 &&
|
||||
currentOrderNetAmount >= previousNetAmount ? (
|
||||
paybtns?.map((payment) => (
|
||||
<div className="Table3-cash">
|
||||
<button
|
||||
|
|
@ -3980,7 +4045,10 @@ const BSBilling7Payment = () => {
|
|||
payment.ModeId,
|
||||
payment.ModeName
|
||||
)
|
||||
: handlePaymentMode(payment.ModeId, payment.ModeName)
|
||||
: handlePaymentMode(
|
||||
payment.ModeId,
|
||||
payment.ModeName
|
||||
)
|
||||
}
|
||||
>
|
||||
{/* {UpiOption === "" && payment?.ModeName?.toLowerCase() === "upi" && <p> UPI</p>} */}
|
||||
|
|
@ -4031,7 +4099,9 @@ const BSBilling7Payment = () => {
|
|||
</button>
|
||||
</div>
|
||||
))
|
||||
) : (currentOrderNetAmount < previousNetAmount && salesBillEdit && refundPayBtns.length > 0) ? (
|
||||
) : currentOrderNetAmount < previousNetAmount &&
|
||||
salesBillEdit &&
|
||||
refundPayBtns.length > 0 ? (
|
||||
refundPayBtns.map((payment) => (
|
||||
<div className="Table3-cash">
|
||||
<button
|
||||
|
|
@ -4051,7 +4121,12 @@ const BSBilling7Payment = () => {
|
|||
? 'blink-animation 0.5s infinite alternate'
|
||||
: 'none',
|
||||
}}
|
||||
onClick={() => handleRefundPaymentMode(payment?.ConfigId, payment?.ConfigName)}
|
||||
onClick={() =>
|
||||
handleRefundPaymentMode(
|
||||
payment?.ConfigId,
|
||||
payment?.ConfigName
|
||||
)
|
||||
}
|
||||
>
|
||||
{/* {UpiOption === "" && payment?.ModeName?.toLowerCase() === "upi" && <p> UPI</p>} */}
|
||||
|
||||
|
|
@ -4135,10 +4210,6 @@ const BSBilling7Payment = () => {
|
|||
)}
|
||||
</div>
|
||||
|
||||
{/* {(selectCustomerDisplay === true || paymentModeDisplay === true) && (
|
||||
<div className="BSBilling4-vertical-line"></div>
|
||||
)} */}
|
||||
|
||||
<div
|
||||
className={
|
||||
selectCustomerDisplay === true || paymentModeDisplay === true
|
||||
|
|
@ -4253,8 +4324,6 @@ const BSBilling7Payment = () => {
|
|||
/>
|
||||
</Popover>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div className="Table4-finalprice">
|
||||
|
|
@ -4268,8 +4337,10 @@ const BSBilling7Payment = () => {
|
|||
OrderCardDetail?.length > 0 &&
|
||||
paybtnselected &&
|
||||
CheckBookingStatus != 'Close'
|
||||
? !OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ?
|
||||
'Table4-Btn-final-price'
|
||||
? !OrderStatus
|
||||
? salesBillEdit &&
|
||||
currentOrderNetAmount < previousNetAmount
|
||||
? 'Table4-Btn-final-price'
|
||||
: 'Table4-Btn-final-price'
|
||||
: 'Table4-Btn-final-price Order'
|
||||
: 'Table4-Btn-final-price-disabled'
|
||||
|
|
@ -4283,7 +4354,15 @@ const BSBilling7Payment = () => {
|
|||
handleButtonClick
|
||||
}
|
||||
>
|
||||
{!OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ? <p className="Table4-Order">Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</p> : (
|
||||
{!OrderStatus ? (
|
||||
salesBillEdit &&
|
||||
currentOrderNetAmount < previousNetAmount ? (
|
||||
<p className="Table4-Order">
|
||||
Refund: ₹
|
||||
{(previousNetAmount || 0) -
|
||||
(currentOrderNetAmount || 0)}
|
||||
</p>
|
||||
) : (
|
||||
<>
|
||||
<div className="Table4-fullrate">
|
||||
<div
|
||||
|
|
@ -4310,7 +4389,10 @@ const BSBilling7Payment = () => {
|
|||
OrderType === 'Failed'
|
||||
? FailedTotalAmt
|
||||
: credit && overAllBal >= 0
|
||||
? Math.max(0, TotalAmount - overAllBal)
|
||||
? Math.max(
|
||||
0,
|
||||
TotalAmount - overAllBal
|
||||
)
|
||||
: TotalAmount
|
||||
)}
|
||||
/>
|
||||
|
|
@ -4322,6 +4404,7 @@ const BSBilling7Payment = () => {
|
|||
</div>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
) : (
|
||||
<div className="Table4-Order">ORDER</div>
|
||||
)}
|
||||
|
|
@ -4390,6 +4473,7 @@ const BSBilling7Payment = () => {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<DefaultModal
|
||||
open={UpiOpen}
|
||||
title="UPI PAYMENT"
|
||||
|
|
@ -4616,10 +4700,17 @@ const BSBilling7Payment = () => {
|
|||
SplitPaymentModal={Splitpayment}
|
||||
handlesplitpaymentclose={handlesplitpaymentclose}
|
||||
TotalNetAmount={
|
||||
OrderType === 'Failed' ? FailedTotalAmt : Math.round(OrderCardDetail?.reduce((acc, data) => data?.TotalAmt + acc, 0) -
|
||||
OrderType === 'Failed'
|
||||
? FailedTotalAmt
|
||||
: Math.round(
|
||||
OrderCardDetail?.reduce(
|
||||
(acc, data) => data?.TotalAmt + acc,
|
||||
0
|
||||
) -
|
||||
((OverAllSales > 0 ? OverAllSales : 0) +
|
||||
(OverAllEstimate > 0 ? OverAllEstimate : 0) +
|
||||
(Discount > 0 ? Discount : 0)))
|
||||
(Discount > 0 ? Discount : 0))
|
||||
)
|
||||
}
|
||||
failedOrderData={failedOrderData}
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import React, { lazy, Suspense, useEffect, useState } from 'react';
|
||||
import React, { lazy, useEffect, useState } from 'react';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import '../../../../../Styles/BookingScreen/Components/BSBillingTables/BSBillingTable7/BSBillingTable7.scss';
|
||||
import {
|
||||
|
|
@ -71,7 +71,6 @@ const CustomerPriceHistory = lazy(
|
|||
() => import('../../UtillComponents/CustomerPriceHistory.jsx')
|
||||
);
|
||||
import { useUtilsComponent } from '../../../../../Services/utils.js';
|
||||
import BillingTableSkeleton from '../../../../../Components/Skeleton/BillingTableSkeleton.jsx';
|
||||
|
||||
const BSBillingTable7 = () => {
|
||||
const { removeExtraCharge } = useUtilsComponent();
|
||||
|
|
@ -1912,7 +1911,6 @@ const BSBillingTable7 = () => {
|
|||
};
|
||||
|
||||
return (
|
||||
<Suspense fallback={<BillingTableSkeleton />}>
|
||||
<>
|
||||
<div
|
||||
style={{
|
||||
|
|
@ -2195,7 +2193,8 @@ const BSBillingTable7 = () => {
|
|||
}
|
||||
// onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""}
|
||||
|
||||
className={`${item?.SalesId && OrderType !== 'Hold'
|
||||
className={`${
|
||||
item?.SalesId && OrderType !== 'Hold'
|
||||
? 'BSBill-Table7-content-disabled'
|
||||
: 'BSBill-Table7-content'
|
||||
}
|
||||
|
|
@ -2251,10 +2250,7 @@ const BSBillingTable7 = () => {
|
|||
'variant'
|
||||
) && <span>{item?.ProdVariantName} </span>}
|
||||
{item?.Size}
|
||||
{item?.SinglePc == 'Y'
|
||||
? 'PCS'
|
||||
: item?.UomName}
|
||||
)
|
||||
{item?.SinglePc == 'Y' ? 'PCS' : item?.UomName})
|
||||
</p>
|
||||
{item?.OfferMessage &&
|
||||
!Array.isArray(item.OfferMessage) && (
|
||||
|
|
@ -2317,12 +2313,16 @@ const BSBillingTable7 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -2383,8 +2383,7 @@ const BSBillingTable7 = () => {
|
|||
: BookingType !== 'Dine In' &&
|
||||
triggerAnimation &&
|
||||
OldtableDataTakeAway?.length + index === 0 &&
|
||||
tableDataDinein?.length >=
|
||||
PreviousdataLength &&
|
||||
tableDataDinein?.length >= PreviousdataLength &&
|
||||
!HoldOrderDtl &&
|
||||
!UnpaidData
|
||||
? 'wheat'
|
||||
|
|
@ -2424,7 +2423,8 @@ const BSBillingTable7 = () => {
|
|||
}
|
||||
// onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""}
|
||||
|
||||
className={`${item?.SalesId
|
||||
className={`${
|
||||
item?.SalesId
|
||||
? 'BSBill-Table7-content-disabled'
|
||||
: 'BSBill-Table7-content'
|
||||
}
|
||||
|
|
@ -2476,10 +2476,7 @@ const BSBillingTable7 = () => {
|
|||
'variant'
|
||||
) && <span>{item?.ProdVariantName} </span>}
|
||||
{item?.Size}
|
||||
{item?.SinglePc == 'Y'
|
||||
? 'PCS'
|
||||
: item?.UomName}
|
||||
)
|
||||
{item?.SinglePc == 'Y' ? 'PCS' : item?.UomName})
|
||||
</p>
|
||||
{item?.OfferMessage &&
|
||||
!Array.isArray(item.OfferMessage) && (
|
||||
|
|
@ -2542,12 +2539,16 @@ const BSBillingTable7 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -2625,9 +2626,7 @@ const BSBillingTable7 = () => {
|
|||
2 ===
|
||||
0
|
||||
? 'white'
|
||||
: SelectedBillColor?.[
|
||||
'OverallBackgroundColor'
|
||||
]
|
||||
: SelectedBillColor?.['OverallBackgroundColor']
|
||||
? SelectedBillColor?.[
|
||||
'OverallBackgroundColor'
|
||||
]
|
||||
|
|
@ -2692,7 +2691,8 @@ const BSBillingTable7 = () => {
|
|||
}
|
||||
// onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""}
|
||||
|
||||
className={`${BookingType === 'Dine In' && item?.SalesId
|
||||
className={`${
|
||||
BookingType === 'Dine In' && item?.SalesId
|
||||
? 'BSBill-Table7-content-disabled'
|
||||
: 'BSBill-Table7-content'
|
||||
}
|
||||
|
|
@ -2735,7 +2735,8 @@ const BSBillingTable7 = () => {
|
|||
}}
|
||||
onClick={() =>
|
||||
(item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 || imeiModal) &&
|
||||
item.ProductIdentifierDtls?.length > 0 ||
|
||||
imeiModal) &&
|
||||
handleImeiDetails(item)
|
||||
}
|
||||
>
|
||||
|
|
@ -2754,9 +2755,7 @@ const BSBillingTable7 = () => {
|
|||
<>
|
||||
{!item?.ProdVariantName?.toLowerCase()?.includes(
|
||||
'variant'
|
||||
) && (
|
||||
<span>{item?.ProdVariantName} </span>
|
||||
)}
|
||||
) && <span>{item?.ProdVariantName} </span>}
|
||||
{item?.Size}
|
||||
{item?.SinglePc == 'Y'
|
||||
? 'PCS'
|
||||
|
|
@ -2825,12 +2824,16 @@ const BSBillingTable7 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -2901,8 +2904,7 @@ const BSBillingTable7 = () => {
|
|||
tableDataTakeAway?.length +
|
||||
index ===
|
||||
0 &&
|
||||
tableDataDinein?.length >=
|
||||
PreviousdataLength &&
|
||||
tableDataDinein?.length >= PreviousdataLength &&
|
||||
!HoldOrderDtl &&
|
||||
!UnpaidData
|
||||
? 'wheat'
|
||||
|
|
@ -2959,7 +2961,8 @@ const BSBillingTable7 = () => {
|
|||
}
|
||||
// onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""}
|
||||
|
||||
className={`${BookingType === 'Dine In' && item?.SalesId
|
||||
className={`${
|
||||
BookingType === 'Dine In' && item?.SalesId
|
||||
? 'BSBill-Table7-content-disabled'
|
||||
: 'BSBill-Table7-content'
|
||||
}
|
||||
|
|
@ -3015,10 +3018,7 @@ const BSBillingTable7 = () => {
|
|||
'variant'
|
||||
) && <span>{item?.ProdVariantName} </span>}
|
||||
{item?.Size}
|
||||
{item?.SinglePc == 'Y'
|
||||
? 'PCS'
|
||||
: item?.UomName}
|
||||
)
|
||||
{item?.SinglePc == 'Y' ? 'PCS' : item?.UomName})
|
||||
</p>
|
||||
{item?.OfferMessage &&
|
||||
!Array.isArray(item.OfferMessage) && (
|
||||
|
|
@ -3081,12 +3081,16 @@ const BSBillingTable7 = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -3161,7 +3165,6 @@ const BSBillingTable7 = () => {
|
|||
/>
|
||||
)}
|
||||
</>
|
||||
</Suspense>
|
||||
);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { useEffect, useState, lazy, Suspense } from 'react';
|
||||
import { useEffect, useState, lazy } from 'react';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { Popconfirm, Tooltip } from 'antd';
|
||||
import WebFont from 'webfontloader';
|
||||
|
|
@ -93,7 +93,6 @@ import {
|
|||
import { ApplicationPreferences } from '../../../../../Features/BrachLogin/BranchLogin.js';
|
||||
import { useDateStore } from '../../../../../Features/BookingScreen/BookingData/DateStore.js';
|
||||
import { useUtilsComponent } from '../../../../../Services/utils.js';
|
||||
import BillingTableSkeleton from '../../../../../Components/Skeleton/BillingTableSkeleton.jsx';
|
||||
|
||||
const StandardTable = () => {
|
||||
const { removeExtraCharge } = useUtilsComponent();
|
||||
|
|
@ -1244,7 +1243,7 @@ const StandardTable = () => {
|
|||
InwardDtlId: isPaidproduct?.InwardDtlId,
|
||||
BuyInwardDtlId: null,
|
||||
Offer: 0,
|
||||
localid: isPaidproduct?.localid
|
||||
localid: isPaidproduct?.localid,
|
||||
});
|
||||
} else if (isPaidproduct?.OrderQty > item?.OrderQty) {
|
||||
// Just Decrease Paid Qty
|
||||
|
|
@ -1418,7 +1417,7 @@ const StandardTable = () => {
|
|||
InwardDtlId: item?.InwardDtlId,
|
||||
BuyInwardDtlId: null,
|
||||
Offer: item?.Offer,
|
||||
localid: item?.localid
|
||||
localid: item?.localid,
|
||||
});
|
||||
await ChangeFreeprodlistFn({
|
||||
OverAllFreeQty: isCheckFreeProduct?.OverAllFreeQty,
|
||||
|
|
@ -1498,7 +1497,7 @@ const StandardTable = () => {
|
|||
InwardDtlId: item?.InwardDtlId,
|
||||
BuyInwardDtlId: null,
|
||||
Offer: item?.Offer,
|
||||
localid: item?.localid
|
||||
localid: item?.localid,
|
||||
});
|
||||
await ChangeFreeprodlistFn({
|
||||
OverAllFreeQty: isCheckFreeProduct?.OverAllFreeQty,
|
||||
|
|
@ -2123,7 +2122,6 @@ const StandardTable = () => {
|
|||
const isAndroid = /Android/i.test(navigator.userAgent);
|
||||
|
||||
return (
|
||||
<Suspense fallback={<BillingTableSkeleton />}>
|
||||
<div
|
||||
className="standardTableMain"
|
||||
style={{ height: isMobile ? '86%' : '100%' }}
|
||||
|
|
@ -2395,7 +2393,8 @@ const StandardTable = () => {
|
|||
{OldtableDataTakeAway?.map((item, index) => (
|
||||
<tr
|
||||
key={index}
|
||||
className={`${item?.SalesId && OrderType !== 'Hold'
|
||||
className={`${
|
||||
item?.SalesId && OrderType !== 'Hold'
|
||||
? 'booking-billing-table-row-disabled'
|
||||
: 'booking-billing-table-row'
|
||||
}`}
|
||||
|
|
@ -2410,8 +2409,7 @@ const StandardTable = () => {
|
|||
: triggerAnimation &&
|
||||
index === 0 &&
|
||||
!item?.SalesId &&
|
||||
tableDataTakeAway?.length >=
|
||||
PreviousdataLength
|
||||
tableDataTakeAway?.length >= PreviousdataLength
|
||||
? 'wheat'
|
||||
: triggerAnimation &&
|
||||
index === 0 &&
|
||||
|
|
@ -2427,17 +2425,13 @@ const StandardTable = () => {
|
|||
? 'rgb(243, 248, 213)'
|
||||
: GlobEstBooking === 'ParEst' &&
|
||||
GlobProdwisedata?.includes(
|
||||
item?.InwardDtlId +
|
||||
' ' +
|
||||
item?.BookingTypeName
|
||||
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
||||
)
|
||||
? '#b2d1f7'
|
||||
: index % 2 === 0
|
||||
? 'white'
|
||||
: SelectedBillColor?.['OverallBackgroundColor']
|
||||
? SelectedBillColor?.[
|
||||
'OverallBackgroundColor'
|
||||
]
|
||||
? SelectedBillColor?.['OverallBackgroundColor']
|
||||
: '#d6d6d6',
|
||||
animation:
|
||||
BillOrderPre === 'Y' && !BookingTypeBoth
|
||||
|
|
@ -2502,9 +2496,7 @@ const StandardTable = () => {
|
|||
>
|
||||
{item?.ProdName}
|
||||
{' '}
|
||||
{item?.BrandName !== null
|
||||
? item?.BrandName
|
||||
: ''}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -2517,9 +2509,7 @@ const StandardTable = () => {
|
|||
(
|
||||
{!item?.ProdVariantName?.toLowerCase()?.includes(
|
||||
'variant'
|
||||
) && (
|
||||
<span>{item?.ProdVariantName} </span>
|
||||
)}
|
||||
) && <span>{item?.ProdVariantName} </span>}
|
||||
{AvailableDate ? (
|
||||
<>
|
||||
{' '}
|
||||
|
|
@ -2621,12 +2611,16 @@ const StandardTable = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -2726,7 +2720,8 @@ const StandardTable = () => {
|
|||
{OldtableDataDinein?.map((item, index) => (
|
||||
<tr
|
||||
key={OldtableDataTakeAway?.length + index}
|
||||
className={`${item?.SalesId
|
||||
className={`${
|
||||
item?.SalesId
|
||||
? 'booking-billing-table-row-disabled'
|
||||
: 'booking-billing-table-row'
|
||||
}
|
||||
|
|
@ -2748,8 +2743,7 @@ const StandardTable = () => {
|
|||
? 'wheat'
|
||||
: BookingType !== 'Dine In' &&
|
||||
triggerAnimation &&
|
||||
OldtableDataTakeAway?.length + index ===
|
||||
0 &&
|
||||
OldtableDataTakeAway?.length + index === 0 &&
|
||||
tableDataDinein?.length >=
|
||||
PreviousdataLength &&
|
||||
!HoldOrderDtl &&
|
||||
|
|
@ -2827,9 +2821,7 @@ const StandardTable = () => {
|
|||
>
|
||||
{item?.ProdName}
|
||||
{' '}
|
||||
{item?.BrandName !== null
|
||||
? item?.BrandName
|
||||
: ''}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -2842,9 +2834,7 @@ const StandardTable = () => {
|
|||
(
|
||||
{!item?.ProdVariantName?.toLowerCase()?.includes(
|
||||
'variant'
|
||||
) && (
|
||||
<span>{item?.ProdVariantName} </span>
|
||||
)}
|
||||
) && <span>{item?.ProdVariantName} </span>}
|
||||
{AvailableDate ? (
|
||||
<>
|
||||
{' '}
|
||||
|
|
@ -2945,12 +2935,16 @@ const StandardTable = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -3055,7 +3049,8 @@ const StandardTable = () => {
|
|||
OldtableDataTakeAway?.length +
|
||||
index
|
||||
}
|
||||
className={`${BookingType === 'Dine In' && item?.SalesId
|
||||
className={`${
|
||||
BookingType === 'Dine In' && item?.SalesId
|
||||
? 'booking-billing-table-row-disabled'
|
||||
: 'booking-billing-table-row'
|
||||
}
|
||||
|
|
@ -3073,8 +3068,7 @@ const StandardTable = () => {
|
|||
index ===
|
||||
0 &&
|
||||
!item?.SalesId &&
|
||||
tableDataTakeAway?.length >=
|
||||
PreviousdataLength
|
||||
tableDataTakeAway?.length >= PreviousdataLength
|
||||
? 'wheat'
|
||||
: BookingType !== 'Dine In' &&
|
||||
triggerAnimation &&
|
||||
|
|
@ -3114,9 +3108,7 @@ const StandardTable = () => {
|
|||
? 'rgb(243, 248, 213)'
|
||||
: GlobEstBooking === 'ParEst' &&
|
||||
GlobProdwisedata?.includes(
|
||||
item?.InwardDtlId +
|
||||
' ' +
|
||||
item?.BookingTypeName
|
||||
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
||||
)
|
||||
? '#b2d1f7'
|
||||
: (OldtableDataDinein?.length +
|
||||
|
|
@ -3126,9 +3118,7 @@ const StandardTable = () => {
|
|||
0
|
||||
? 'white'
|
||||
: SelectedBillColor?.['OverallBackgroundColor']
|
||||
? SelectedBillColor?.[
|
||||
'OverallBackgroundColor'
|
||||
]
|
||||
? SelectedBillColor?.['OverallBackgroundColor']
|
||||
: '#d6d6d6',
|
||||
animation:
|
||||
BillOrderPre === 'Y' && !BookingTypeBoth
|
||||
|
|
@ -3188,8 +3178,9 @@ const StandardTable = () => {
|
|||
"'Inter', ui-sans-serif, system-ui, sans-serif",
|
||||
}}
|
||||
onClick={() =>
|
||||
(item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 || imeiModal)
|
||||
item.FullProductIdentifierDtls?.length > 0 ||
|
||||
item.ProductIdentifierDtls?.length > 0 ||
|
||||
imeiModal
|
||||
? handleImeiDetails(item)
|
||||
: editField && handleEditQuantity(item)
|
||||
}
|
||||
|
|
@ -3198,9 +3189,7 @@ const StandardTable = () => {
|
|||
? item.ProdName
|
||||
: item.ServiceName}
|
||||
{' '}
|
||||
{item?.BrandName !== null
|
||||
? item?.BrandName
|
||||
: ''}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -3215,9 +3204,7 @@ const StandardTable = () => {
|
|||
{!item?.ProdVariantName?.toLowerCase()?.includes(
|
||||
'variant'
|
||||
) && (
|
||||
<span>
|
||||
{item?.ProdVariantName}{' '}
|
||||
</span>
|
||||
<span>{item?.ProdVariantName} </span>
|
||||
)}
|
||||
{AvailableDate ? (
|
||||
<>
|
||||
|
|
@ -3225,8 +3212,7 @@ const StandardTable = () => {
|
|||
(
|
||||
{`${to12Hour(item?.VariantAvailableFrom)} - ${to12Hour(item?.VariantAvailableTo)}`}
|
||||
)
|
||||
{item?.SinglePc == 'Y' &&
|
||||
'Single'}
|
||||
{item?.SinglePc == 'Y' && 'Single'}
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
|
|
@ -3321,12 +3307,16 @@ const StandardTable = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
|
||||
|
|
@ -3432,7 +3422,8 @@ const StandardTable = () => {
|
|||
tableDataTakeAway?.length +
|
||||
index
|
||||
}
|
||||
className={`${BookingType === 'Dine In' && item?.SalesId
|
||||
className={`${
|
||||
BookingType === 'Dine In' && item?.SalesId
|
||||
? 'booking-billing-table-row-disabled'
|
||||
: 'booking-billing-table-row'
|
||||
}
|
||||
|
|
@ -3476,9 +3467,7 @@ const StandardTable = () => {
|
|||
? 'rgb(243, 248, 213)'
|
||||
: GlobEstBooking === 'ParEst' &&
|
||||
GlobProdwisedata?.includes(
|
||||
item?.InwardDtlId +
|
||||
' ' +
|
||||
item?.BookingTypeName
|
||||
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
||||
)
|
||||
? '#b2d1f7'
|
||||
: (OldtableDataTakeAway?.length +
|
||||
|
|
@ -3489,9 +3478,7 @@ const StandardTable = () => {
|
|||
0
|
||||
? 'white'
|
||||
: SelectedBillColor?.['OverallBackgroundColor']
|
||||
? SelectedBillColor?.[
|
||||
'OverallBackgroundColor'
|
||||
]
|
||||
? SelectedBillColor?.['OverallBackgroundColor']
|
||||
: '#d6d6d6',
|
||||
animation:
|
||||
BillOrderPre === 'Y' && !BookingTypeBoth
|
||||
|
|
@ -3560,9 +3547,7 @@ const StandardTable = () => {
|
|||
>
|
||||
{item?.ProdName}
|
||||
{' '}
|
||||
{item?.BrandName !== null
|
||||
? item?.BrandName
|
||||
: ''}
|
||||
{item?.BrandName !== null ? item?.BrandName : ''}
|
||||
{item?.Type != 'C' && (
|
||||
<>
|
||||
<p
|
||||
|
|
@ -3575,9 +3560,7 @@ const StandardTable = () => {
|
|||
(
|
||||
{!item?.ProdVariantName?.toLowerCase()?.includes(
|
||||
'variant'
|
||||
) && (
|
||||
<span>{item?.ProdVariantName} </span>
|
||||
)}
|
||||
) && <span>{item?.ProdVariantName} </span>}
|
||||
{AvailableDate ? (
|
||||
<>
|
||||
{' '}
|
||||
|
|
@ -3678,12 +3661,16 @@ const StandardTable = () => {
|
|||
{item?.Type != 'C'
|
||||
? item.Offer && item.Offer > 0
|
||||
? item.Offer
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'
|
||||
: item?.OfferPrice && item?.OfferPrice > 0
|
||||
? item?.OfferType === 'F'
|
||||
? `₹${safeRound(item.OfferPrice)}`
|
||||
: `${item.OfferPrice}%`
|
||||
: item.DiscountAmt ? item.DiscountAmt : '-'}
|
||||
: item.DiscountAmt
|
||||
? item.DiscountAmt
|
||||
: '-'}
|
||||
</td>
|
||||
)}
|
||||
{tableitem.OptionName == 'Quantity' && (
|
||||
|
|
@ -3801,7 +3788,6 @@ const StandardTable = () => {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Suspense>
|
||||
);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -15,9 +15,7 @@ import {
|
|||
PreferenceData,
|
||||
} from '../../../../Features/BookingScreen/BookingData/BookingData';
|
||||
import { ExtractDateFormate } from '../../../../Services/Others';
|
||||
import { RiArchiveLine } from 'react-icons/ri';
|
||||
import { AiFillAlert } from 'react-icons/ai';
|
||||
import { TbAlertTriangleFilled } from 'react-icons/tb';
|
||||
import { IoEye } from 'react-icons/io5';
|
||||
import { DefaultModal } from '../../../../Components/Modal/DefaultModal';
|
||||
import { Tables } from '../../../../Components/Tables/Table';
|
||||
|
|
@ -351,7 +349,13 @@ const BSExpireProductsList = () => {
|
|||
messageData={message.data}
|
||||
onComplete={onComplete}
|
||||
/>
|
||||
|
||||
<div
|
||||
style={{
|
||||
display: 'flex',
|
||||
justifyContent: 'space-between',
|
||||
marginTop: '20px',
|
||||
}}
|
||||
>
|
||||
<Segmented
|
||||
value={selectedSegment}
|
||||
onChange={onChangeSegment}
|
||||
|
|
@ -369,7 +373,7 @@ const BSExpireProductsList = () => {
|
|||
},
|
||||
]}
|
||||
/>
|
||||
<div style={{ display: 'flex', justifyContent: 'flex-end' }}>
|
||||
|
||||
<Search
|
||||
placeholder={`Search ${selectedSegment === 'expired' ? 'Expired' : 'Low Stock'} Products`}
|
||||
onSearchChange={(e) =>
|
||||
|
|
@ -381,7 +385,7 @@ const BSExpireProductsList = () => {
|
|||
</div>
|
||||
|
||||
<Table
|
||||
className='LowStockAlterModalTable'
|
||||
className="LowStockAlterModalTable"
|
||||
rowKey="InwardDtlId"
|
||||
columns={
|
||||
selectedSegment === 'expired' ? expiredColumns : lowStockColumns
|
||||
|
|
|
|||
|
|
@ -21,7 +21,11 @@ const RetailBookingClosing = (props) => {
|
|||
const dispatch = useDispatch();
|
||||
const UserType = getSession('UserType');
|
||||
const preferenceDatas = useSelector(PreferenceData);
|
||||
const allowDecimal = preferenceDatas?.[0]?.SettingDtlDetails?.find((setting) => setting?.SettingIdName?.toLowerCase() === "decimal" && setting?.SettingValue === 'Y');
|
||||
const allowDecimal = preferenceDatas?.[0]?.SettingDtlDetails?.find(
|
||||
(setting) =>
|
||||
setting?.SettingIdName?.toLowerCase() === 'decimal' &&
|
||||
setting?.SettingValue === 'Y'
|
||||
);
|
||||
const CompId = getSession('CompId');
|
||||
const AppId = getSession('AppId');
|
||||
const UserId = getSession('UserId');
|
||||
|
|
@ -298,39 +302,42 @@ const RetailBookingClosing = (props) => {
|
|||
title={'Booking Close'}
|
||||
handleCancel={props.PaymentClose}
|
||||
footer={false}
|
||||
width={700}
|
||||
width={750}
|
||||
children={
|
||||
<div className="PaymentClosingOverAll">
|
||||
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||
<div className="PaymentClosingOverAll-sub">
|
||||
<div>
|
||||
{' '}
|
||||
Received Amount ={' '}
|
||||
<div className="ClosepayBTN">
|
||||
<p> Received Amount </p>
|
||||
<div>= </div>
|
||||
<span style={{ color: '#28AA3A', cursor: 'pointer' }}>
|
||||
{safeRound(PaymentClosingData?.ReceivedAmount)}
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
Cash Amount ={' '}
|
||||
<div className="ClosepayBTN">
|
||||
<p> Cash Amount</p>
|
||||
<div>= </div>
|
||||
<span style={{ color: '#28AA3A', cursor: 'pointer' }}>
|
||||
{safeRound(PaymentClosingData?.OverAllCashAmount)}
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
Card Amount ={' '}
|
||||
<div className="ClosepayBTN">
|
||||
<p> Card Amount</p>
|
||||
<div>=</div>
|
||||
<span style={{ color: '#28AA3A', cursor: 'pointer' }}>
|
||||
{safeRound(PaymentClosingData?.OverAllCardAmount)}
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
UPI Amount ={' '}
|
||||
<div className="ClosepayBTN">
|
||||
<p>UPI Amount</p>
|
||||
<div>=</div>
|
||||
<span style={{ color: '#28AA3A', cursor: 'pointer' }}>
|
||||
{safeRound(PaymentClosingData?.OverAllUpiAmount)}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
Total Cash In Hand ={' '}
|
||||
<div className="ClosepayBTN">
|
||||
<p> Total Cash In Hand</p>
|
||||
<div>=</div>
|
||||
<span style={{ color: '#28AA3A' }}>
|
||||
{safeRound(TotalCashInHand)}
|
||||
</span>
|
||||
|
|
|
|||
|
|
@ -68,10 +68,19 @@
|
|||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
font-family: "Poppins";
|
||||
width: 250px;
|
||||
div {
|
||||
width: 300px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.ClosepayBTN {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
p {
|
||||
width: 150px;
|
||||
}
|
||||
span {
|
||||
width: 50px;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,18 @@
|
|||
import React, { useState, useEffect, useRef, useCallback } from 'react';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { ImWarning } from "react-icons/im";
|
||||
import { Form, Table, Input, Select, AutoComplete, Button, Tooltip } from 'antd';
|
||||
import { BsUpcScan } from "react-icons/bs";
|
||||
import { FaLink } from "react-icons/fa";
|
||||
import { ImWarning } from 'react-icons/im';
|
||||
import {
|
||||
Form,
|
||||
Table,
|
||||
Input,
|
||||
Select,
|
||||
AutoComplete,
|
||||
Button,
|
||||
Tooltip,
|
||||
} from 'antd';
|
||||
import { BsUpcScan } from 'react-icons/bs';
|
||||
import { FaLink } from 'react-icons/fa';
|
||||
import {
|
||||
DeleteFilled,
|
||||
ArrowRightOutlined,
|
||||
|
|
@ -13,7 +21,12 @@ import {
|
|||
import { Messages } from '../../Components/Notifications/Messages.jsx';
|
||||
import { InputField } from '../../Components/Forms/InputField.jsx';
|
||||
import Buttons from '../../Components/Forms/Buttons.jsx';
|
||||
import { getSession, pdfDiv, printDiv, validateSafeInput } from '../../Services/Others';
|
||||
import {
|
||||
getSession,
|
||||
pdfDiv,
|
||||
printDiv,
|
||||
validateSafeInput,
|
||||
} from '../../Services/Others';
|
||||
import FormHeader from '../PageComponents/FormHeader.jsx';
|
||||
import { DropDowns } from '../../Components/Forms/DropDown.jsx';
|
||||
import { CiBarcode } from 'react-icons/ci';
|
||||
|
|
@ -32,14 +45,17 @@ import {
|
|||
getEmpAccess,
|
||||
} from '../../Features/AppPage/CenterPage.js';
|
||||
import { useAuth } from '../../AuthContext.jsx';
|
||||
import { getAllCustomer, getPreferenceData } from '../../Features/BookingScreen/BookingData/BookingData.js';
|
||||
import {
|
||||
getAllCustomer,
|
||||
getPreferenceData,
|
||||
} from '../../Features/BookingScreen/BookingData/BookingData.js';
|
||||
const subDirectory = import.meta.env.BASE_URL;
|
||||
import TooltipWrapper from '../../Components/Tooltip/Tooltip';
|
||||
import { FaEye, FaPrint } from 'react-icons/fa';
|
||||
import { MdOutlineMail } from 'react-icons/md';
|
||||
import { DefaultModal } from '../../Components/Modal/DefaultModal.jsx';
|
||||
import FloatLabel from '../../Components/Forms/FloatLabel/index.jsx';
|
||||
import { debounce } from "lodash";
|
||||
import { debounce } from 'lodash';
|
||||
import { getPrintSelectionComponentData } from '../../Features/ThemeChange/ThemeChange.js';
|
||||
import { PrintStyleFunction } from '../paymentpdfPage/PrintStyleFunction.js';
|
||||
import { isMobile } from 'react-device-detect';
|
||||
|
|
@ -71,7 +87,7 @@ const SalesQuotationForm = () => {
|
|||
|
||||
const [SelProduct, setSelProduct] = useState(null);
|
||||
const [selectedProductName, setSelectedProductName] = useState(null);
|
||||
const [productSearchText, setProductSearchText] = useState("");
|
||||
const [productSearchText, setProductSearchText] = useState('');
|
||||
const [scanner, setScanner] = useState(false);
|
||||
|
||||
console.log(SelTaxTypeName, 'SelTaxTypeName');
|
||||
|
|
@ -95,7 +111,7 @@ const SalesQuotationForm = () => {
|
|||
const [addnewAccess, setaddnewAccess] = useState(true);
|
||||
const [isbarcode, setisbarcode] = useState(false);
|
||||
const [isSubmitted, setIsSubmitted] = useState(false);
|
||||
const [usrMailDataModel, setusrMailDataModel] = useState(false)
|
||||
const [usrMailDataModel, setusrMailDataModel] = useState(false);
|
||||
const [EnteredMailId, setEnteredMailId] = useState(null);
|
||||
const [PrintTempData, setPrintTempData] = useState([]);
|
||||
console.log(TableData, 'TableData');
|
||||
|
|
@ -111,8 +127,6 @@ const SalesQuotationForm = () => {
|
|||
},
|
||||
];
|
||||
|
||||
|
||||
|
||||
// const QuotationStylepdf = `<style>
|
||||
// * {
|
||||
// box-sizing: border-box;
|
||||
|
|
@ -371,7 +385,6 @@ const SalesQuotationForm = () => {
|
|||
// font-size:20px;
|
||||
// }
|
||||
|
||||
|
||||
// }
|
||||
|
||||
// </style>`;
|
||||
|
|
@ -559,15 +572,15 @@ const SalesQuotationForm = () => {
|
|||
);
|
||||
if (matchedProduct) {
|
||||
let productName = {};
|
||||
productName.label = `${matchedProduct?.ProdName} (${matchedProduct.Size} ${matchedProduct.UomName})${matchedProduct?.BrandName ? ` - ${matchedProduct?.BrandName}` : ''}`
|
||||
productName.label = `${matchedProduct?.ProdName} (${matchedProduct.Size} ${matchedProduct.UomName})${matchedProduct?.BrandName ? ` - ${matchedProduct?.BrandName}` : ''}`;
|
||||
ProductDropDownChange(matchedProduct.ProdId, productName);
|
||||
if (matchedProduct?.ProdVariantPriceDetails?.length < 2) {
|
||||
setSelectedProductName("");
|
||||
setSelProduct(null)
|
||||
setSelectedProductName('');
|
||||
setSelProduct(null);
|
||||
}
|
||||
} else {
|
||||
setMessageType("error");
|
||||
setMessageData("The Scanned Product not Available in Product List")
|
||||
setMessageType('error');
|
||||
setMessageData('The Scanned Product not Available in Product List');
|
||||
}
|
||||
}, 300),
|
||||
[ProductData]
|
||||
|
|
@ -575,12 +588,16 @@ const SalesQuotationForm = () => {
|
|||
|
||||
const getPreference = async () => {
|
||||
const data = { AppId: AppId, CompId: CompId, BranchId: BranchId };
|
||||
const { data: res } = await dispatch(getPreferenceData(data)).unwrap()
|
||||
const decimalSetting = res?.data?.[0]?.SettingDtlDetails?.find((setting) => setting?.SettingIdName?.toLowerCase() === "decimal" && setting?.SettingValue === 'Y');
|
||||
const { data: res } = await dispatch(getPreferenceData(data)).unwrap();
|
||||
const decimalSetting = res?.data?.[0]?.SettingDtlDetails?.find(
|
||||
(setting) =>
|
||||
setting?.SettingIdName?.toLowerCase() === 'decimal' &&
|
||||
setting?.SettingValue === 'Y'
|
||||
);
|
||||
if (decimalSetting) {
|
||||
setAllowDecimal(true)
|
||||
}
|
||||
setAllowDecimal(true);
|
||||
}
|
||||
};
|
||||
const changebarcode = useCallback(() => {
|
||||
setisbarcode((prev) => !prev);
|
||||
}, []);
|
||||
|
|
@ -621,7 +638,6 @@ const SalesQuotationForm = () => {
|
|||
// Print();
|
||||
// }, [PrintData]);
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
let total = TableData?.reduce((accumulator, currentValue) => {
|
||||
return accumulator + currentValue.NetAmt;
|
||||
|
|
@ -659,7 +675,9 @@ const SalesQuotationForm = () => {
|
|||
).unwrap();
|
||||
if (Product?.data?.statusCode === 1) {
|
||||
let Productonlydata = Product?.data?.data?.filter(
|
||||
(item) => item?.ProdTypeName === 'Product' && (item?.StockAvailable === "Y" ? item?.BalanceQty > 0 : true)
|
||||
(item) =>
|
||||
item?.ProdTypeName === 'Product' &&
|
||||
(item?.StockAvailable === 'Y' ? item?.BalanceQty > 0 : true)
|
||||
);
|
||||
|
||||
setProductData(Productonlydata);
|
||||
|
|
@ -684,13 +702,14 @@ const SalesQuotationForm = () => {
|
|||
|
||||
const Data = { AppId, CompId, BranchId };
|
||||
|
||||
const printtemp = await dispatch(getPrintSelectionComponentData(Data)).unwrap();
|
||||
const printtemp = await dispatch(
|
||||
getPrintSelectionComponentData(Data)
|
||||
).unwrap();
|
||||
const printTypeName = printtemp?.data?.data
|
||||
?.flatMap(template => template.ComponentDetails || [])
|
||||
?.flatMap((template) => template.ComponentDetails || [])
|
||||
?.find(
|
||||
comp =>
|
||||
comp.SetasDefault === "Y" &&
|
||||
comp.PrintTypeName === "Sales Quotation"
|
||||
(comp) =>
|
||||
comp.SetasDefault === 'Y' && comp.PrintTypeName === 'Sales Quotation'
|
||||
);
|
||||
setPrintTempData(printTypeName);
|
||||
};
|
||||
|
|
@ -739,33 +758,33 @@ const SalesQuotationForm = () => {
|
|||
};
|
||||
const handleScanSearch = () => {
|
||||
if (scanner === false) {
|
||||
setMessageType("success");
|
||||
setMessageData("Search by QrCode/BarCode Enabled")
|
||||
setMessageType('success');
|
||||
setMessageData('Search by QrCode/BarCode Enabled');
|
||||
} else {
|
||||
setMessageType("success");
|
||||
setMessageData("Search by QrCode/BarCode Disabled")
|
||||
setMessageType('success');
|
||||
setMessageData('Search by QrCode/BarCode Disabled');
|
||||
}
|
||||
setScanner(prev => !prev)
|
||||
setScanner((prev) => !prev);
|
||||
setSelectedProductName(null);
|
||||
setselectedProductVariantData(null);
|
||||
setVariants(null)
|
||||
setVariants(null);
|
||||
formRef?.current?.setFieldsValue({
|
||||
ProdId: null,
|
||||
VarProdId: null
|
||||
VarProdId: null,
|
||||
});
|
||||
}
|
||||
};
|
||||
const handleProductSearch = (value) => {
|
||||
if (scanner) {
|
||||
debouncedScannerSearch(value);
|
||||
}
|
||||
setProductSearchText(value)
|
||||
setProductSearchText(value);
|
||||
setSelectedProductName(value);
|
||||
setselectedProductVariantData([]);
|
||||
setVariants([])
|
||||
setVariants([]);
|
||||
};
|
||||
const ProductDropDownChange = async (ProdId, option) => {
|
||||
setProductSearchText("")
|
||||
setSelectedProductName(option?.label ? option?.label : '')
|
||||
setProductSearchText('');
|
||||
setSelectedProductName(option?.label ? option?.label : '');
|
||||
formRef?.current?.resetFields(['VarProdId']);
|
||||
|
||||
console.log(ProductData, 'ProdIdProdId');
|
||||
|
|
@ -866,9 +885,7 @@ const SalesQuotationForm = () => {
|
|||
)?.[0]?.ProdVariantName;
|
||||
|
||||
const ProdName1 = TableData?.some(
|
||||
(e) =>
|
||||
e.ProdId == SelProduct &&
|
||||
e.ProdVariantName === ProdName2
|
||||
(e) => e.ProdId == SelProduct && e.ProdVariantName === ProdName2
|
||||
);
|
||||
if (ProdName1) {
|
||||
setMessageType('error');
|
||||
|
|
@ -886,9 +903,7 @@ const SalesQuotationForm = () => {
|
|||
// let x = VariantData1?.filter((e) => e.InwardDtlId == value);
|
||||
// let u = ProductData?.find((e) => e.ProdId == selectedProductData);
|
||||
// console.log(first)
|
||||
let ProductData1 = ProductData?.find(
|
||||
(e) => e.ProdId == SelProduct
|
||||
);
|
||||
let ProductData1 = ProductData?.find((e) => e.ProdId == SelProduct);
|
||||
console.log(ProductData1, 'ProductData1ProductData1');
|
||||
let mrp;
|
||||
let sellprice;
|
||||
|
|
@ -988,7 +1003,7 @@ const SalesQuotationForm = () => {
|
|||
title: 'Product Name',
|
||||
dataIndex: 'ProdName',
|
||||
key: 'ProdName',
|
||||
width: "230px",
|
||||
width: '230px',
|
||||
align: 'right',
|
||||
render: (text, record, index) => (
|
||||
<a style={{ color: 'black' }}>
|
||||
|
|
@ -1350,7 +1365,8 @@ const SalesQuotationForm = () => {
|
|||
? sellprice * parseInt(qty)
|
||||
: 0;
|
||||
|
||||
const taxamt = SelTaxTypeName?.toLowerCase() === 'withtax'
|
||||
const taxamt =
|
||||
SelTaxTypeName?.toLowerCase() === 'withtax'
|
||||
? (Amount * parseInt(record?.TaxPercentage)) /
|
||||
(100 + parseInt(record?.TaxPercentage))
|
||||
: 0;
|
||||
|
|
@ -1373,22 +1389,12 @@ const SalesQuotationForm = () => {
|
|||
|
||||
[`Qty${index}`]: qty,
|
||||
[`NetAmt${index}`]: Amount,
|
||||
// [`ReceivedQty${index}`]: qty,
|
||||
// [`AcceptedQty${index}`]: acceptedQty,
|
||||
// [`RejectedQty${index}`]: qty - acceptedQty,
|
||||
// ReceivedQty: qty,
|
||||
// AcceptedQty: acceptedQty,
|
||||
// RejectedQty: qty - acceptedQty,
|
||||
|
||||
[`PurcDisc${index}`]: 0,
|
||||
[`DiscType${index}`]: 'P',
|
||||
});
|
||||
};
|
||||
const handleDiscountTypeChange = (value, record, index) => {
|
||||
// console.log(value,"valuevalue")
|
||||
// const newData1 = [...TableData];
|
||||
// const item = newData1[index];
|
||||
// item.DiscountType = value;
|
||||
// setTableData(newData1);
|
||||
const tempamt = record.Qty * record.Price;
|
||||
const DisType = value;
|
||||
const amount =
|
||||
|
|
@ -1530,23 +1536,16 @@ const SalesQuotationForm = () => {
|
|||
PostData['TaxAmount'] = parseFloat(
|
||||
(TotalCgst + TotalSgst + TotalIgst)?.toFixed(2)
|
||||
);
|
||||
(PostData['CompId'] = CompId),
|
||||
((PostData['CompId'] = CompId),
|
||||
(PostData['BranchId'] = BranchId),
|
||||
(PostData['AppId'] = AppId);
|
||||
(PostData['AppId'] = AppId));
|
||||
let res = await dispatch(postPurcQuotation(PostData)).unwrap();
|
||||
if (res?.data?.statusCode === 1) {
|
||||
setMessageType('success');
|
||||
setMessageData(res?.data?.response);
|
||||
const custId = formRef.current?.getFieldValue('CustId');
|
||||
const customer = AllCustomer?.find(c => c.UserId === custId);
|
||||
console.log(customer, "customertrt");
|
||||
|
||||
// const printDataWithCustomer = {
|
||||
// ...res?.data?.data,
|
||||
// customerName: customer?.CustName || '',
|
||||
// customerAddress: customer?.CustAddress || '',
|
||||
// customerMobile: customer?.CustMobile || '',
|
||||
// };
|
||||
const customer = AllCustomer?.find((c) => c.UserId === custId);
|
||||
console.log(customer, 'customertrt');
|
||||
|
||||
setPrintData(res?.data?.data);
|
||||
setIsSubmitted(true);
|
||||
|
|
@ -1597,33 +1596,6 @@ const SalesQuotationForm = () => {
|
|||
}
|
||||
};
|
||||
|
||||
// const handleSearch = (input) => {
|
||||
// // Only proceed if input is not empty and isbarcode is true
|
||||
// if (!input || !isbarcode) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
// if (debounceRef.current) {
|
||||
// clearTimeout(debounceRef.current);
|
||||
// }
|
||||
|
||||
// debounceRef.current = setTimeout(async () => {
|
||||
// const product = ProductData.find(
|
||||
// (p) => p.QRCode?.toLowerCase() === input.toLowerCase()
|
||||
// );
|
||||
// console.log(input, 'inputinput', product);
|
||||
// if (product) {
|
||||
// setEditingKey('');
|
||||
|
||||
// await ProductDropDownChange(product.ProdId);
|
||||
// setTimeout(() => {
|
||||
// setSelProduct(null);
|
||||
// formRef.current?.setFieldsValue({ ProdId: null });
|
||||
// }, 100);
|
||||
// }
|
||||
// }, 300);
|
||||
// };
|
||||
|
||||
const onChangeprodFunction = (e) => {
|
||||
console.log(e, 'yyyyyyyyyyyyyy');
|
||||
|
||||
|
|
@ -1651,20 +1623,11 @@ const SalesQuotationForm = () => {
|
|||
}
|
||||
};
|
||||
|
||||
// Add these functions inside your component, before the return statement:
|
||||
// const handleEmailClick = () => {
|
||||
// const subject = encodeURIComponent('Sales Quotation');
|
||||
// const body = encodeURIComponent('Please find attached the purchase quotation.');
|
||||
// window.open(`mailto:?subject=${subject}&body=${body}`);
|
||||
// };
|
||||
|
||||
// const handlePrint = () => {
|
||||
// printDiv('Pur-Quot-Print', QuotationStyle);
|
||||
// };
|
||||
// ...existing code...
|
||||
const handlePrint = async () => {
|
||||
const style = await PrintStyleFunction(
|
||||
PrintTempData?.StyleName == undefined ? 'Style 13' : PrintTempData?.StyleName,
|
||||
PrintTempData?.StyleName == undefined
|
||||
? 'Style 13'
|
||||
: PrintTempData?.StyleName,
|
||||
'Quotation'
|
||||
);
|
||||
|
||||
|
|
@ -1690,7 +1653,9 @@ const SalesQuotationForm = () => {
|
|||
|
||||
const selectedStyle =
|
||||
stylesMap[
|
||||
PrintTempData?.StyleName == undefined ? 'Style 13' : PrintTempData?.StyleName
|
||||
PrintTempData?.StyleName == undefined
|
||||
? 'Style 13'
|
||||
: PrintTempData?.StyleName
|
||||
];
|
||||
|
||||
if (isMobile) {
|
||||
|
|
@ -1700,15 +1665,13 @@ const SalesQuotationForm = () => {
|
|||
UserId: UserId,
|
||||
dispatch,
|
||||
});
|
||||
}
|
||||
else if (selectedStyle) {
|
||||
} else if (selectedStyle) {
|
||||
await printDiv(`${selectedStyle}`, style);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const handleEmailClick = async (mail, data) => {
|
||||
let record = mail == "mail" ? data : PrintData?.[0]
|
||||
let record = mail == 'mail' ? data : PrintData?.[0];
|
||||
|
||||
if (record?.Email) {
|
||||
setTimeout(async () => {
|
||||
|
|
@ -1726,46 +1689,45 @@ const SalesQuotationForm = () => {
|
|||
if (res?.data?.status === 1) {
|
||||
setMessageData(res?.data?.response);
|
||||
setMessageType('success');
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
setMessageData(res?.data?.response);
|
||||
setMessageType('error');
|
||||
}
|
||||
|
||||
|
||||
// setMessageData("Email sent successfully");
|
||||
// setMessageType('success');
|
||||
} catch (error) {
|
||||
console.error('❌ Email send failed:', error);
|
||||
// alert('❌ Email failed to send');
|
||||
setMessageData("Email failed to send");
|
||||
setMessageData('Email failed to send');
|
||||
setMessageType('error');
|
||||
}
|
||||
}, 300);
|
||||
} else {
|
||||
setusrMailDataModel(true);
|
||||
}
|
||||
else {
|
||||
setusrMailDataModel(true)
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
const handleUserMailmodalCancel = () => {
|
||||
setusrMailDataModel(false)
|
||||
setEnteredMailId(null)
|
||||
setusrMailDataModel(false);
|
||||
setEnteredMailId(null);
|
||||
emailform.resetFields();
|
||||
// setQuotationProductdata([])
|
||||
}
|
||||
};
|
||||
|
||||
const emailSubmit = (values) => {
|
||||
let data = { ...PrintData?.[0], ...{ CustMail: values.email }, ...{ Email: values.email } };
|
||||
handleEmailClick("mail", data);
|
||||
let data = {
|
||||
...PrintData?.[0],
|
||||
...{ CustMail: values.email },
|
||||
...{ Email: values.email },
|
||||
};
|
||||
handleEmailClick('mail', data);
|
||||
setEnteredMailId(null);
|
||||
emailform.resetFields();
|
||||
emailform.setFieldsValue({ email: '' });
|
||||
setusrMailDataModel(false);
|
||||
};
|
||||
|
||||
|
||||
return (
|
||||
<div className="pageOverAll">
|
||||
<div className="userPage">
|
||||
|
|
@ -1775,11 +1737,14 @@ const SalesQuotationForm = () => {
|
|||
messageData={messageData}
|
||||
onComplete={onComplete}
|
||||
/>
|
||||
<div className="formName" style={{
|
||||
<div
|
||||
className="formName"
|
||||
style={{
|
||||
display: 'flex',
|
||||
justifyContent: 'space-between',
|
||||
marginTop: '5px',
|
||||
}}>
|
||||
}}
|
||||
>
|
||||
<FormHeader title={'Sales Quotation'} />
|
||||
<div
|
||||
style={{
|
||||
|
|
@ -1793,10 +1758,12 @@ const SalesQuotationForm = () => {
|
|||
cursor: 'pointer',
|
||||
fontFamily: 'Poppins',
|
||||
fontWeight: '400',
|
||||
whiteSpace: "nowrap",
|
||||
fontSize: "15px"
|
||||
whiteSpace: 'nowrap',
|
||||
fontSize: '15px',
|
||||
}}
|
||||
onClick={() => navigate(`${subDirectory}setting/sales-quotation/list`)}
|
||||
onClick={() =>
|
||||
navigate(`${subDirectory}setting/sales-quotation/list`)
|
||||
}
|
||||
>
|
||||
<FaEye /> <span>View Quotation</span>
|
||||
</div>
|
||||
|
|
@ -1857,129 +1824,67 @@ const SalesQuotationForm = () => {
|
|||
/>
|
||||
</Form.Item>
|
||||
<div className="ProductDropDownChange-Quotation">
|
||||
<Form.Item
|
||||
name="ProdId"
|
||||
>
|
||||
<Form.Item name="ProdId">
|
||||
<div className="product-scan sales-quotation">
|
||||
<FloatLabel label={"Product Name"} value={selectedProductName}>
|
||||
<FloatLabel
|
||||
label={'Product Name'}
|
||||
value={selectedProductName}
|
||||
>
|
||||
<AutoComplete
|
||||
className="field-DropDown"
|
||||
value={selectedProductName}
|
||||
filterOption={(input, option) => {
|
||||
const product = ProductData.find(p => p.ProdId === option.value);
|
||||
const nameMatch = option.label?.toLowerCase()?.includes(productSearchText?.toLowerCase());
|
||||
const qrMatch = product?.QRCode?.toLowerCase() == productSearchText?.toLowerCase();
|
||||
const product = ProductData.find(
|
||||
(p) => p.ProdId === option.value
|
||||
);
|
||||
const nameMatch = option.label
|
||||
?.toLowerCase()
|
||||
?.includes(productSearchText?.toLowerCase());
|
||||
const qrMatch =
|
||||
product?.QRCode?.toLowerCase() ==
|
||||
productSearchText?.toLowerCase();
|
||||
return nameMatch || qrMatch;
|
||||
}}
|
||||
options={!scanner ? ProductData?.map
|
||||
((option) => ({
|
||||
options={
|
||||
!scanner
|
||||
? ProductData?.map((option) => ({
|
||||
value: option.ProdId,
|
||||
label: `${option.ProdName} (${option.Size} ${option.UomName})${option?.BrandName ? ` - ${option?.BrandName}` : ''}`
|
||||
})) : []}
|
||||
label: `${option.ProdName} (${option.Size} ${option.UomName})${option?.BrandName ? ` - ${option?.BrandName}` : ''}`,
|
||||
}))
|
||||
: []
|
||||
}
|
||||
onSelect={ProductDropDownChange}
|
||||
onChange={handleProductSearch}
|
||||
onKeyDown={(e) => {
|
||||
if (scanner && e.key === "Enter") {
|
||||
if (scanner && e.key === 'Enter') {
|
||||
e.preventDefault();
|
||||
}
|
||||
}}
|
||||
disabled={ProductData?.length === 0}
|
||||
>
|
||||
</AutoComplete>
|
||||
></AutoComplete>
|
||||
</FloatLabel>
|
||||
<Tooltip title={"BarCode/QrCode"} placement={"top"}>
|
||||
<BsUpcScan strokeWidth={0.5} color="#000" style={{ fontSize: "16px", color: scanner ? "#52c41a" : "#888", fontWeight: "600" }} className="product-scan-Icon" onClick={handleScanSearch} />
|
||||
<Tooltip title={'BarCode/QrCode'} placement={'top'}>
|
||||
<div className="BsUpcScanSQ">
|
||||
<BsUpcScan
|
||||
strokeWidth={0.5}
|
||||
color="#000"
|
||||
style={{
|
||||
fontSize: '16px',
|
||||
color: scanner ? '#52c41a' : '#888',
|
||||
fontWeight: '600',
|
||||
}}
|
||||
className="product-scan-Icon"
|
||||
onClick={handleScanSearch}
|
||||
/>
|
||||
</div>
|
||||
</Tooltip>
|
||||
{ProductData?.length === 0 && <p style={{ color: "red" }}><ImWarning /> All Products have no Stock</p>}
|
||||
{ProductData?.length === 0 && (
|
||||
<p style={{ color: 'red' }}>
|
||||
<ImWarning /> All Products have no Stock
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
</Form.Item>
|
||||
{/* <Form.Item name="ProdId">
|
||||
<AutoComplete
|
||||
options={ProductData?.map((option) => ({
|
||||
value:
|
||||
option.ProdName +
|
||||
' ' +
|
||||
'(' +
|
||||
option.Size +
|
||||
option.UomName +
|
||||
')',
|
||||
label:
|
||||
option.ProdName +
|
||||
' ' +
|
||||
'(' +
|
||||
option.Size +
|
||||
option.UomName +
|
||||
')',
|
||||
qrCode: option.QRCode,
|
||||
}))}
|
||||
style={{ width: '250px', height: '48px' }}
|
||||
onSelect={(value, option) => {
|
||||
if (isbarcode && option.qrCode) {
|
||||
const productByQR = ProductData.find(
|
||||
(p) => p.QRCode === option.qrCode
|
||||
);
|
||||
if (productByQR) {
|
||||
ProductDropDownChange({
|
||||
value:
|
||||
productByQR.ProdName +
|
||||
' ' +
|
||||
'(' +
|
||||
productByQR.Size +
|
||||
productByQR.UomName +
|
||||
')',
|
||||
});
|
||||
}
|
||||
} else {
|
||||
ProductDropDownChange(option);
|
||||
}
|
||||
}}
|
||||
filterOption={(input, option) => {
|
||||
if (isbarcode) {
|
||||
return (
|
||||
option.qrCode &&
|
||||
option.qrCode
|
||||
.toLowerCase()
|
||||
.includes(input.toLowerCase())
|
||||
);
|
||||
} else {
|
||||
return option.label
|
||||
.toLowerCase()
|
||||
.includes(input.toLowerCase());
|
||||
}
|
||||
}}
|
||||
value={SelProduct}
|
||||
>
|
||||
<InputField
|
||||
label="Product Name"
|
||||
style={{}}
|
||||
onChange={(e) =>
|
||||
onChangeprodFunction(e?.target?.value)
|
||||
}
|
||||
onPressEnter={(e) =>
|
||||
onChangeprodFunction(e?.target?.value)
|
||||
}
|
||||
isOnChange={SelProduct ? true : false}
|
||||
suffix={
|
||||
<TooltipWrapper
|
||||
title="Search Product Name"
|
||||
// isMobile={isMobile}
|
||||
>
|
||||
<CiBarcode
|
||||
style={{
|
||||
fontSize: '17px',
|
||||
paddingRight: '1px',
|
||||
}}
|
||||
color={isbarcode ? 'green' : ' '}
|
||||
onClick={changebarcode}
|
||||
/>
|
||||
<SearchOutlined
|
||||
style={{ color: 'rgba(0,0,0,.45)' }}
|
||||
/>
|
||||
</TooltipWrapper>
|
||||
}
|
||||
/>
|
||||
</AutoComplete>
|
||||
</Form.Item> */}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -2025,7 +1930,10 @@ const SalesQuotationForm = () => {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="QuosubmitButton" style={{ display: 'flex', gap: '1rem' }}>
|
||||
<div
|
||||
className="QuosubmitButton"
|
||||
style={{ display: 'flex', gap: '1rem' }}
|
||||
>
|
||||
<Buttons
|
||||
buttonText="SUBMIT"
|
||||
color="901D77"
|
||||
|
|
@ -2055,50 +1963,31 @@ const SalesQuotationForm = () => {
|
|||
</div>
|
||||
</>
|
||||
)}
|
||||
|
||||
</div>
|
||||
</Form>
|
||||
{TableData?.length > 0 && (
|
||||
<div className="Quo-Summary-Quotation">
|
||||
<div className='Quotation-summary'> Gross Total: {allowDecimal ? TotalBillAmount?.toFixed(2) : TotalBillAmount}</div>
|
||||
<div className='Quotation-summary' > Total GST: {allowDecimal ? (TotalCgst + TotalSgst + TotalIgst)?.toFixed(2) : (TotalCgst + TotalSgst + TotalIgst)}</div>
|
||||
<div className="Quotation-summary">
|
||||
{' '}
|
||||
Gross Total:{' '}
|
||||
{allowDecimal ? TotalBillAmount?.toFixed(2) : TotalBillAmount}
|
||||
</div>
|
||||
<div className="Quotation-summary">
|
||||
{' '}
|
||||
Total GST:{' '}
|
||||
{allowDecimal
|
||||
? (TotalCgst + TotalSgst + TotalIgst)?.toFixed(2)
|
||||
: TotalCgst + TotalSgst + TotalIgst}
|
||||
</div>
|
||||
{/* <div> Total SGST: {TotalSgst?.toFixed(2)}</div>
|
||||
<div> Total IGST: {TotalIgst?.toFixed(2)}</div> */}
|
||||
<div className='Quotation-summary'> Total Amount: {allowDecimal ? Math.round(TotalAmount)?.toFixed(2) : Math.round(TotalAmount)}</div>
|
||||
{/* <table style={{ width: '300px', border: '1px solid black' }}>
|
||||
<tr>
|
||||
<td style={{ textAlign: 'right' }}>Gross Total:</td>
|
||||
<td style={{ textAlign: 'right' }}>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style={{ textAlign: 'right' }}>Total CGST:</td>
|
||||
<td style={{ textAlign: 'right' }}>
|
||||
{TotalCgst?.toFixed(2)}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style={{ textAlign: 'right' }}>Total SGST:</td>
|
||||
<td style={{ textAlign: 'right' }}>
|
||||
{TotalSgst?.toFixed(2)}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style={{ textAlign: 'right' }}>Total IGST:</td>
|
||||
<td style={{ textAlign: 'right' }}>
|
||||
{TotalIgst?.toFixed(2)}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style={{ textAlign: 'right' }}>
|
||||
Total Amount(Round Off):
|
||||
</td>
|
||||
<td style={{ textAlign: 'right' }}>
|
||||
{Math.round(TotalAmount)?.toFixed(2)}
|
||||
</td>
|
||||
</tr>
|
||||
</table> */}
|
||||
<div className="Quotation-summary">
|
||||
{' '}
|
||||
Total Amount:{' '}
|
||||
{allowDecimal
|
||||
? Math.round(TotalAmount)?.toFixed(2)
|
||||
: Math.round(TotalAmount)}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
|
@ -2109,20 +1998,17 @@ const SalesQuotationForm = () => {
|
|||
handleCancel={handleUserMailmodalCancel}
|
||||
footer={false}
|
||||
children={
|
||||
|
||||
<div>
|
||||
<Form form={emailform} layout="vertical" onFinish={emailSubmit}>
|
||||
<Form.Item
|
||||
label="Mail ID"
|
||||
name="email"
|
||||
rules={[
|
||||
{ required: true, message: "Email is required" },
|
||||
{ type: "email", message: "Enter a valid email address" },
|
||||
{ required: true, message: 'Email is required' },
|
||||
{ type: 'email', message: 'Enter a valid email address' },
|
||||
]}
|
||||
>
|
||||
<Input
|
||||
autoComplete="off"
|
||||
placeholder="Enter your email" />
|
||||
<Input autoComplete="off" placeholder="Enter your email" />
|
||||
</Form.Item>
|
||||
|
||||
<Button type="primary" htmlType="submit">
|
||||
|
|
@ -2134,7 +2020,10 @@ const SalesQuotationForm = () => {
|
|||
/>
|
||||
|
||||
<div style={{ display: 'none' }}>
|
||||
<PurchaseQuotationPrint PrintingData={PrintData} PrintTempData={PrintTempData} />
|
||||
<PurchaseQuotationPrint
|
||||
PrintingData={PrintData}
|
||||
PrintTempData={PrintTempData}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
.BSBilling4-tablediv-mobile {
|
||||
display: block;
|
||||
height: 40vh;
|
||||
overflow-y: scroll;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.BSBilling4-tablediv-mobile::-webkit-scrollbar {
|
||||
|
|
@ -316,6 +316,7 @@
|
|||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
@media (min-width: 280px) and (max-width: 499px) {
|
||||
|
|
@ -340,11 +341,6 @@
|
|||
row-gap: 0rem;
|
||||
}
|
||||
|
||||
.Table4-price-btn-master {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.Table4-cash {
|
||||
width: 60px !important;
|
||||
}
|
||||
|
|
@ -726,8 +722,10 @@
|
|||
.BSBilling4-price-content {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
width: 100vw;
|
||||
@media (max-width: 768px) {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
.Table4-price-icon-container {
|
||||
|
|
@ -789,3 +787,38 @@
|
|||
font-weight: bold;
|
||||
padding: 2px;
|
||||
}
|
||||
.BS7hold-sum {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: row;
|
||||
column-gap: 1rem;
|
||||
color: var(--DEFAULT_SELECTED_COLOR);
|
||||
}
|
||||
.RowforResposiveBill7 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.RowResposiveBill7 {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
.bsbilltable7 {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.BSTable3_payroll {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.bsbilltable7 {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -109,7 +109,8 @@
|
|||
.Btn-payment-mode {
|
||||
background-color: var(--SELECTED_COLOR);
|
||||
color: #ffffff;
|
||||
outline: none;border: none;
|
||||
outline: none;
|
||||
border: none;
|
||||
font-size: 12px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
|
@ -318,9 +319,9 @@
|
|||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
overflow: auto;
|
||||
scrollbar-width: none;
|
||||
width: inherit;
|
||||
height: 85vh;
|
||||
scrollbar-width: none;
|
||||
border-radius: 10px;
|
||||
@media (max-width: 768px) {
|
||||
width: 100% !important;
|
||||
|
|
@ -333,9 +334,9 @@
|
|||
|
||||
.BSTable3 {
|
||||
overflow-y: auto;
|
||||
scrollbar-width: none;
|
||||
height: 100vh;
|
||||
background-color: #fff;
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
.Cust-tag {
|
||||
|
|
|
|||
|
|
@ -95,9 +95,10 @@
|
|||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
max-width: 130px;
|
||||
white-space: nowrap;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 3;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.BSItemCard-itemPrice {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
.receipt-reprint-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
// justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,7 +113,8 @@ body {
|
|||
|
||||
@media (max-width: 768px) {
|
||||
width: 100%;
|
||||
margin: 0.5rem;
|
||||
margin: 0;
|
||||
padding: 0.5rem;
|
||||
min-height: 200px;
|
||||
}
|
||||
|
||||
|
|
@ -229,7 +230,6 @@ body {
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.NewLayoutBillContainer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
|
|||
|
|
@ -46,6 +46,12 @@
|
|||
overflow: auto;
|
||||
height: 75vh;
|
||||
padding-bottom: 3rem;
|
||||
white-space: nowrap;
|
||||
width: 100%;
|
||||
|
||||
.printer-button {
|
||||
width: 120px !important;
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
text-align: center;
|
||||
|
|
@ -75,13 +81,15 @@
|
|||
|
||||
.setting-card {
|
||||
width: 30%;
|
||||
@media (max-width: 768px) {
|
||||
width: unset;
|
||||
}
|
||||
|
||||
button {
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
// flex-direction: column;
|
||||
padding: 10px 20px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
|
|
@ -166,11 +174,10 @@
|
|||
// Responsive design
|
||||
@media (max-width: 600px) {
|
||||
.printer-settings-content {
|
||||
padding: 20px;
|
||||
padding: 10px;
|
||||
|
||||
.settings-grid {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 15px;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.modal-actions {
|
||||
|
|
|
|||
|
|
@ -68,10 +68,10 @@
|
|||
column-gap: 3rem;
|
||||
padding-top: 1rem;
|
||||
height: 78vh;
|
||||
overflow: scroll;
|
||||
overflow: auto;
|
||||
scrollbar-width: thin;
|
||||
row-gap: 1.5rem;
|
||||
padding-bottom: 4rem;
|
||||
scrollbar-width: thin;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
padding-bottom: 4rem;
|
||||
|
|
@ -131,6 +131,7 @@
|
|||
}
|
||||
|
||||
.sales-quotation {
|
||||
position: relative;
|
||||
.ant-select {
|
||||
width: 250px !important;
|
||||
height: 48px !important;
|
||||
|
|
@ -139,4 +140,9 @@
|
|||
input {
|
||||
padding: 6px 25px 6px 12px !important;
|
||||
}
|
||||
.BsUpcScanSQ {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 15px;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
}
|
||||
|
||||
.MasterLedger-Report {
|
||||
// width: 100vw;
|
||||
padding: 0rem 0;
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
|
|
@ -16,13 +15,16 @@
|
|||
width: max-content !important;
|
||||
}
|
||||
}
|
||||
.custom-table th {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.LedgerTable {
|
||||
height: 73vh;
|
||||
scrollbar-width: thin;
|
||||
width: 100%;
|
||||
overflow: auto;
|
||||
scrollbar-width: thin;
|
||||
|
||||
tr:nth-child(even) {
|
||||
background-color: #e9e8e8 !important;
|
||||
|
|
@ -49,7 +51,6 @@
|
|||
.Dropdown-DatePicker {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
// padding: 0.2rem 0px;
|
||||
flex-direction: row;
|
||||
column-gap: 2rem;
|
||||
flex-wrap: wrap;
|
||||
|
|
@ -80,12 +81,10 @@
|
|||
|
||||
.LedgerDropDate {
|
||||
display: flex;
|
||||
// align-items: center;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
gap: 2rem;
|
||||
flex-wrap: wrap;
|
||||
// overflow-x: scroll;
|
||||
}
|
||||
|
||||
.ItemWiseReport-printerIcon-disabled {
|
||||
|
|
@ -118,7 +117,6 @@
|
|||
display: flex;
|
||||
padding-left: 10px;
|
||||
border-style: groove;
|
||||
// align-items: center;
|
||||
}
|
||||
|
||||
.LR-DatePicker {
|
||||
|
|
@ -207,17 +205,15 @@
|
|||
width: 200px !important;
|
||||
}
|
||||
|
||||
|
||||
.LedgerTable {
|
||||
height: 50vh;
|
||||
}
|
||||
|
||||
.LedgerDropDate {
|
||||
overflow-y: scroll;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.Ledger-datePicker {
|
||||
|
||||
.ant-picker {
|
||||
width: 100px !important;
|
||||
height: 50px !important;
|
||||
|
|
@ -239,7 +235,7 @@
|
|||
|
||||
.AllRadioButton {
|
||||
width: 37vh;
|
||||
overflow-x: scroll;
|
||||
overflow-x: auto;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -281,7 +277,6 @@
|
|||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
font-family: VAR(--HEADING_FONT_FAMILY);
|
||||
// text-transform: uppercase;
|
||||
text-transform: capitalize;
|
||||
letter-spacing: 0.2px;
|
||||
}
|
||||
|
|
@ -290,7 +285,8 @@
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
overflow: scroll;
|
||||
overflow: auto;
|
||||
scrollbar-width: thin;
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
|
|
@ -354,7 +350,6 @@
|
|||
}
|
||||
|
||||
.custom-table {
|
||||
|
||||
Button:disabled,
|
||||
Button[disabled] {
|
||||
width: unset !important;
|
||||
|
|
|
|||
Loading…
Reference in New Issue