Merge pull request 'fixed bugs' (#177) from temp/bug-fix-250226 into main

Reviewed-on: Pozomind/pozo-retail-app#177
This commit is contained in:
karthikalakshmi 2026-02-25 16:27:53 +05:30
commit e1b9d1d83e
7 changed files with 166 additions and 155 deletions

View File

@ -3262,7 +3262,7 @@ const ComboEditQtyAndRate = (props) => {
min="0" min="0"
onChange={(e) => quantityValidation(e.target.value)} onChange={(e) => quantityValidation(e.target.value)}
onBlur={() => { onBlur={() => {
if (Quantity && Quantity.trim() !== '') { if (Quantity && String(Quantity || '').trim() !== '') {
AddProductQuantity(); AddProductQuantity();
} }
}} }}

View File

@ -33,11 +33,12 @@ import { DropDowns } from '../../../../Components/Forms/DropDown.jsx';
import { Messages } from '../../../../Components/Notifications/Messages.jsx'; import { Messages } from '../../../../Components/Notifications/Messages.jsx';
import '../../../../Styles/BookingScreen/Components/UtillComponents/BSNavBarDragItems.scss'; import '../../../../Styles/BookingScreen/Components/UtillComponents/BSNavBarDragItems.scss';
import { getTemplateData } from '../../../../Features/ThemeChange/ThemeChange.js'; import { getTemplateData } from '../../../../Features/ThemeChange/ThemeChange.js';
import { capitalizeFirstLetter } from '../../../../utils/calculations.js';
const BSNavBarDragItems = ({ const BSNavBarDragItems = ({
type, type,
drawerOpen = false, drawerOpen = false,
setDrawerOpen = () => {}, setDrawerOpen = () => { },
}) => { }) => {
const draggingComponent = useSelector(GlobaldraggingComponent); const draggingComponent = useSelector(GlobaldraggingComponent);
const GlobalisFavClickedCheck = useSelector(GlobalisFavClicked); const GlobalisFavClickedCheck = useSelector(GlobalisFavClicked);
@ -72,27 +73,27 @@ const BSNavBarDragItems = ({
BranchId: BranchId, BranchId: BranchId,
...(draggingComponent == 'sub-category' ...(draggingComponent == 'sub-category'
? { ? {
ProdCat: MapData?.[0]?.ProdCat, ProdCat: MapData?.[0]?.ProdCat,
ProductSubCatDtl: MapData.map((item, index) => ({ ProductSubCatDtl: MapData.map((item, index) => ({
ProdSubCat: item?.ProdSubCat, ProdSubCat: item?.ProdSubCat,
DisplayProdSubCatNo: index + 1, DisplayProdSubCatNo: index + 1,
})), })),
} }
: draggingComponent == 'category' : draggingComponent == 'category'
? { ? {
ProductCatDtl: MapData.map((item, index) => ({ ProductCatDtl: MapData.map((item, index) => ({
ProdCat: item?.ProdCat, ProdCat: item?.ProdCat,
DisplayProdCatNo: index + 1, DisplayProdCatNo: index + 1,
})), })),
} }
: { : {
ProdCat: MapData?.[0]?.ProdCat || null, ProdCat: MapData?.[0]?.ProdCat || null,
ProdSubCat: MapData?.[0]?.ProdSubCat || null, ProdSubCat: MapData?.[0]?.ProdSubCat || null,
ProductDtl: MapData.map((item, index) => ({ ProductDtl: MapData.map((item, index) => ({
ProdId: item?.ProdId, ProdId: item?.ProdId,
DisplayProductNo: index + 1, DisplayProductNo: index + 1,
})), })),
}), }),
UpdatedBy: UserId, UpdatedBy: UserId,
}; };
@ -199,7 +200,7 @@ const BSNavBarDragItems = ({
draggingComponent === item.name ? 'selected' : '' draggingComponent === item.name ? 'selected' : ''
} }
> >
{item.name} {capitalizeFirstLetter(item.name)}
</button> </button>
))} ))}
</div> </div>
@ -279,47 +280,47 @@ const BSNavBarDragItems = ({
(!GlobalisFavClickedCheck && (!GlobalisFavClickedCheck &&
draggingComponent !== 'card' && draggingComponent !== 'card' &&
draggingComponent !== 'sub-category'))) || draggingComponent !== 'sub-category'))) ||
(!GlobalisFavClickedCheck && (!GlobalisFavClickedCheck &&
draggingComponent !== 'card' && draggingComponent !== 'card' &&
draggingComponent == 'sub-category') || draggingComponent == 'sub-category') ||
(!GlobalisFavClickedCheck && (!GlobalisFavClickedCheck &&
draggingComponent == 'card' && draggingComponent == 'card' &&
draggingComponent !== 'sub-category') draggingComponent !== 'sub-category')
? MapData?.map((item, index) => ( ? MapData?.map((item, index) => (
<Draggable <Draggable
key={index} key={index}
draggableId={index.toString()} draggableId={index.toString()}
index={index} index={index}
> >
{(provided, snapshot) => ( {(provided, snapshot) => (
<div <div
className="AddFavItemList4" className="AddFavItemList4"
ref={provided.innerRef} ref={provided.innerRef}
{...provided.draggableProps} {...provided.draggableProps}
{...provided.dragHandleProps} {...provided.dragHandleProps}
style={{ style={{
...provided.draggableProps.style, ...provided.draggableProps.style,
margin: 0, margin: 0,
padding: '8px 12px', padding: '8px 12px',
background: snapshot.isDragging background: snapshot.isDragging
? '#e0f7fa' ? '#e0f7fa'
: '#fff', : '#fff',
border: '1px solid #ccc', border: '1px solid #ccc',
borderRadius: 4, borderRadius: 4,
}} }}
> >
<p> <p>
{draggingComponent == 'category' {draggingComponent == 'category'
? item?.ProdCatName ? item?.ProdCatName
: draggingComponent == 'sub-category' : draggingComponent == 'sub-category'
? item?.ProdSubCatName ? item?.ProdSubCatName
: item?.ProdName} : item?.ProdName}
</p> </p>
</div> </div>
)} )}
</Draggable> </Draggable>
)) ))
: 'NO data Found'} : 'No Data Found'}
{provided.placeholder} {provided.placeholder}
</div> </div>
)} )}

View File

@ -491,10 +491,10 @@ const SalesCountForStandard = React.memo(() => {
return ( return (
DineInAccess?.SettingValue === 'Y' && DineInAccess?.SettingValue === 'Y' &&
DineInOrderCount + DineInOrderCount +
TakeAwayOrderCount + TakeAwayOrderCount +
SelfTakeAwayOrderCount + SelfTakeAwayOrderCount +
SelfDineInOrderCount > SelfDineInOrderCount >
0 && 0 &&
(takeAwayPreference || dinePreference) (takeAwayPreference || dinePreference)
); );
}, [DineInAccess, sales, dinePreference, takeAwayPreference]); }, [DineInAccess, sales, dinePreference, takeAwayPreference]);
@ -652,7 +652,7 @@ const SalesCountForStandard = React.memo(() => {
{DineInAccess?.SettingValue === 'Y' && {DineInAccess?.SettingValue === 'Y' &&
takeAwayPreference && takeAwayPreference &&
(TakeAwayOrderCount || SelfTakeAwayOrderCount || PreOrderAmount) > (TakeAwayOrderCount || SelfTakeAwayOrderCount || PreOrderAmount) >
0 && ( 0 && (
<Tooltip <Tooltip
className="standardTooltipDineIN" className="standardTooltipDineIN"
title={renderBreakdown([ title={renderBreakdown([
@ -930,8 +930,8 @@ const SalesCountForStandard = React.memo(() => {
(e.currentTarget.style.backgroundColor = '#d6e4ff') (e.currentTarget.style.backgroundColor = '#d6e4ff')
} }
onMouseLeave={(e) => onMouseLeave={(e) =>
(e.currentTarget.style.backgroundColor = (e.currentTarget.style.backgroundColor =
index % 2 === 0 ? '#f7faff' : '#e9f1ff') index % 2 === 0 ? '#f7faff' : '#e9f1ff')
} }
> >
<td style={{ border: '1px solid #ddd', padding: '8px' }}> <td style={{ border: '1px solid #ddd', padding: '8px' }}>
@ -1162,8 +1162,8 @@ const SalesCountForStandard = React.memo(() => {
(e.currentTarget.style.backgroundColor = '#e6f2ff') (e.currentTarget.style.backgroundColor = '#e6f2ff')
} }
onMouseLeave={(e) => onMouseLeave={(e) =>
(e.currentTarget.style.backgroundColor = (e.currentTarget.style.backgroundColor =
index % 2 === 0 ? '#f7faff' : '#ffffff') index % 2 === 0 ? '#f7faff' : '#ffffff')
} }
> >
<td <td

View File

@ -55,6 +55,7 @@ function PaymentOptions({ setModalOpen }) {
const [paymentMode, setPaymentMode] = useState([]); const [paymentMode, setPaymentMode] = useState([]);
const [BusinessUpiModes, setBusinessUpiModes] = useState([]); const [BusinessUpiModes, setBusinessUpiModes] = useState([]);
const [paymentGatewayMode, setPaymentGatewayMode] = useState([]); const [paymentGatewayMode, setPaymentGatewayMode] = useState([]);
console.log(paymentOptions, "paymentOptions", BusinessUpiModes)
const [paymentDeviceMode, setPaymentDeviceMode] = useState([]); const [paymentDeviceMode, setPaymentDeviceMode] = useState([]);
const [selectedConfigs, setSelectedConfigs] = useState({ const [selectedConfigs, setSelectedConfigs] = useState({
salesDetails: [], salesDetails: [],
@ -421,7 +422,6 @@ function PaymentOptions({ setModalOpen }) {
BranchId: BranchId, BranchId: BranchId,
DetailType: 'BU', DetailType: 'BU',
}; };
ALERT('HIH');
const Businessupidetails = await dispatch( const Businessupidetails = await dispatch(
getPaymentUPIDetails(BusiData) getPaymentUPIDetails(BusiData)
).unwrap(); ).unwrap();
@ -622,31 +622,31 @@ function PaymentOptions({ setModalOpen }) {
(details) => details.FlowId === sectionId (details) => details.FlowId === sectionId
) )
? prevState[key]?.map((details) => { ? prevState[key]?.map((details) => {
if (details.FlowId === sectionId) { if (details.FlowId === sectionId) {
return { return {
...details, ...details,
optionDetails: details?.optionDetails?.some( optionDetails: details?.optionDetails?.some(
(opt) => opt.optionId === optionId (opt) => opt.optionId === optionId
)
? details?.optionDetails?.filter(
(opt) => opt.optionId !== optionId
) )
? details?.optionDetails?.filter( : [
(opt) => opt.optionId !== optionId ...details.optionDetails,
) { optionId, optionName: option },
: [ ],
...details.optionDetails, };
{ optionId, optionName: option }, }
], return details;
}; })
}
return details;
})
: [ : [
...prevState[key], ...prevState[key],
{ {
FlowId: sectionId, FlowId: sectionId,
FlowName: section, FlowName: section,
optionDetails: [{ optionId, optionName: option }], optionDetails: [{ optionId, optionName: option }],
}, },
]; ];
return { ...prevState, [key]: updatedDetails }; return { ...prevState, [key]: updatedDetails };
}); });
@ -864,8 +864,7 @@ function PaymentOptions({ setModalOpen }) {
{configDetails?.some((detail) => {configDetails?.some((detail) =>
detail?.optionDetails?.some((opt) => opt.optionName === configName) detail?.optionDetails?.some((opt) => opt.optionName === configName)
) && ) &&
modeOptions.length > 0 && modeOptions.length > 0 ? (configName === 'Business Upi' && section === 'kioskSales' ? (
(configName === 'Business Upi' && section === 'kioskSales' ? (
<Radio.Group <Radio.Group
value={getSelectedRadioValue()} value={getSelectedRadioValue()}
onChange={(e) => { onChange={(e) => {
@ -951,7 +950,7 @@ function PaymentOptions({ setModalOpen }) {
</div> </div>
); );
}) })
))} )) : <div style={{ color: '#c71b1d' }}>No payment methods available</div>}
</div> </div>
); );
}; };
@ -1043,27 +1042,27 @@ function PaymentOptions({ setModalOpen }) {
// Update newOptionDetails based on whether we are adding or removing // Update newOptionDetails based on whether we are adding or removing
let newOptionDetails = isAdding let newOptionDetails = isAdding
? [ ? [
...currentDetails.OptionDetails, ...currentDetails.OptionDetails,
{ {
OptionName: configName, OptionName: configName,
ModeDetails: [ ModeDetails: [
{ {
ModeId: optionId, ModeId: optionId,
ModeName: ModeName:
option.ConfigName || option.ConfigName ||
option.MethodName || option.MethodName ||
option.MerchantNameIdName || option.MerchantNameIdName ||
option.BusinessName, option.BusinessName,
}, },
], ],
}, },
] ]
: currentDetails.OptionDetails.map((details) => ({ : currentDetails.OptionDetails.map((details) => ({
...details, ...details,
ModeDetails: details.ModeDetails.filter( ModeDetails: details.ModeDetails.filter(
(mode) => mode.ModeId !== optionId (mode) => mode.ModeId !== optionId
), ),
})).filter((details) => details.ModeDetails.length > 0); })).filter((details) => details.ModeDetails.length > 0);
let updatedOptions = prevCheckedOptions.filter( let updatedOptions = prevCheckedOptions.filter(
(opt) => !(opt.FlowName === section && opt.Option === configName) (opt) => !(opt.FlowName === section && opt.Option === configName)
@ -1374,8 +1373,8 @@ function PaymentOptions({ setModalOpen }) {
postData['PaymentDetails'] = consolidatedData; postData['PaymentDetails'] = consolidatedData;
postData['KioskDefaultOption'] = postData['KioskDefaultOption'] =
checkedOptions?.length > 0 && checkedOptions?.length > 0 &&
(checkForCardDefaultOption(checkedOptions) || (checkForCardDefaultOption(checkedOptions) ||
checkForUpiDefaultOption(checkedOptions)) checkForUpiDefaultOption(checkedOptions))
? defaultStatus ? defaultStatus
: null; : null;
if (consolidatedData?.length > 0) { if (consolidatedData?.length > 0) {
@ -1486,7 +1485,7 @@ function PaymentOptions({ setModalOpen }) {
)} )}
{option.optionName === 'Pay at the counter' && {option.optionName === 'Pay at the counter' &&
getPayAtCounterSalesDropdownOptions().length > getPayAtCounterSalesDropdownOptions().length >
0 && ( 0 && (
<div style={{ marginTop: '4px' }}> <div style={{ marginTop: '4px' }}>
<select <select
value={payAtCounterSalesDefaultMode} value={payAtCounterSalesDefaultMode}

View File

@ -121,7 +121,7 @@ const StockReceived = ({ productDetails, editable = true, onDataChange }) => {
<th className="tableheaderSR">Products</th> <th className="tableheaderSR">Products</th>
<th className="tableheaderSR">Category</th> <th className="tableheaderSR">Category</th>
<th className="tableheaderSR">Sub Category</th> <th className="tableheaderSR">Sub Category</th>
<th className="tableheaderSR">Varient</th> <th className="tableheaderSR">Variant</th>
<th className="tableheaderSR">Received Qty</th> <th className="tableheaderSR">Received Qty</th>
<th className="tableheaderSR-accepted">Accepted Qty</th> <th className="tableheaderSR-accepted">Accepted Qty</th>
</tr> </tr>

View File

@ -83,30 +83,30 @@
background-color: rgba(255, 255, 255, 0.8); background-color: rgba(255, 255, 255, 0.8);
position: absolute; position: absolute;
display: flex; display: flex;
column-gap: 0.5rem; column-gap: 0.5rem;
justify-content: center; justify-content: center;
cursor: pointer; cursor: pointer;
bottom: 0px; bottom: 0px;
left: 0; left: 0;
right: 0; right: 0;
} }
.BSItemCard-itemName { .BSItemCard-itemName {
text-align: center; text-align: center;
font-size: 12px; font-size: 12px;
font-weight: 500; font-weight: 500;
max-width: 130px; max-width: 130px;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.BSItemCard-itemPrice { .BSItemCard-itemPrice {
color: #52c41a; color: #52c41a;
font-size: 14px; font-size: 14px;
font-weight: 600; font-weight: 600;
font-family: "Gilroy"; font-family: "Gilroy";
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
width: 105px; width: 105px;
@ -120,7 +120,7 @@
.BSItemCard-badge-withoutimage { .BSItemCard-badge-withoutimage {
position: absolute; position: absolute;
top: 0px; top: 0px;
right: 0; right: 0;
} }
@ -145,7 +145,7 @@
.BSItemCard-content-smallimage { .BSItemCard-content-smallimage {
width: max-content; width: max-content;
padding: 5px 0; padding: 5px 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
column-gap: 0.5rem; column-gap: 0.5rem;
justify-content: center; justify-content: center;
@ -333,6 +333,7 @@
width: 8rem !important; width: 8rem !important;
height: 6rem !important; height: 6rem !important;
} }
.BSItemCard-itemName { .BSItemCard-itemName {
width: 60px !important; width: 60px !important;
font-size: 10px; font-size: 10px;
@ -385,7 +386,7 @@
border-spacing: 0px; border-spacing: 0px;
} }
.QRStockchange-table .ant-table-wrapper .ant-table-thead > tr > th { .QRStockchange-table .ant-table-wrapper .ant-table-thead>tr>th {
color: black !important; color: black !important;
font-weight: 600 !important; font-weight: 600 !important;
font-size: 14px; font-size: 14px;
@ -407,6 +408,7 @@
.BkPrdCardDeActive { .BkPrdCardDeActive {
// pointer-events: none; // pointer-events: none;
border: 1px solid #f10000; border: 1px solid #f10000;
// border-radius: 8px; // border-radius: 8px;
.BSItemCard-container-smallimage { .BSItemCard-container-smallimage {
width: 10.9rem; width: 10.9rem;
@ -434,13 +436,13 @@
} }
.Brand-Card-modal-table { .Brand-Card-modal-table {
height: 43vh; height: 43vh;
overflow: auto; overflow: auto;
justify-content: flex-start; justify-content: flex-start;
padding: 1.8rem 0.5rem; padding: 1.8rem 0.5rem;
column-gap: 0.5rem; column-gap: 0.5rem;
row-gap: 1rem; row-gap: 1rem;
} }
.Brand-Card-modal-table::-webkit-scrollbar { .Brand-Card-modal-table::-webkit-scrollbar {
width: 10px !important; width: 10px !important;
@ -555,13 +557,13 @@
background-color: #fafafa; background-color: #fafafa;
} }
.Card-modal-table .ant-table-wrapper .ant-table-thead > tr > th { .Card-modal-table .ant-table-wrapper .ant-table-thead>tr>th {
color: black !important; color: black !important;
font-weight: 600 !important; font-weight: 600 !important;
font-size: 14px; font-size: 14px;
} }
.Card-modal-table .ant-table-row > td { .Card-modal-table .ant-table-row>td {
color: black !important; color: black !important;
font-weight: 500 !important; font-weight: 500 !important;
font-size: 16px; font-size: 16px;
@ -816,6 +818,7 @@
.Payment-loader1 { .Payment-loader1 {
.Payment-loader { .Payment-loader {
// column-gap: 1rem; // column-gap: 1rem;
.contener_mixte { .contener_mixte {
top: 5px; top: 5px;
@ -1019,6 +1022,7 @@
gap: 1.7rem !important; gap: 1.7rem !important;
overflow: scroll; overflow: scroll;
height: 100%; height: 100%;
scrollbar-width: none;
@media (max-width: 500px) { @media (max-width: 500px) {
gap: 0.5rem !important; gap: 0.5rem !important;
@ -1351,7 +1355,7 @@
font-family: "Poppins"; font-family: "Poppins";
font-size: 0.8rem; font-size: 0.8rem;
> div:nth-child(1) { >div:nth-child(1) {
font-size: 0.8rem; font-size: 0.8rem;
font-weight: 600; font-weight: 600;
} }
@ -1660,6 +1664,7 @@
color: #ffffff; color: #ffffff;
border-color: #f44336; border-color: #f44336;
cursor: not-allowed; cursor: not-allowed;
&:hover { &:hover {
color: #c90b0b; color: #c90b0b;
background-color: #ffff; background-color: #ffff;
@ -1676,6 +1681,7 @@
background-color: #ffe8bf; background-color: #ffe8bf;
color: #5f4204; color: #5f4204;
border-color: #ff9800; border-color: #ff9800;
&:hover { &:hover {
background-color: #5f4204; background-color: #5f4204;
color: #ffe8bf; color: #ffe8bf;

View File

@ -3,3 +3,8 @@ export const calculateOverAllQtyLimit = (orders) => {
return acc + (cartItem?.OrderQty || 0); return acc + (cartItem?.OrderQty || 0);
}, 0) }, 0)
} }
export const capitalizeFirstLetter = (text) => {
if (!text) return '';
return text.charAt(0).toUpperCase() + text.slice(1);
};