Merge pull request 'sales-bill-edit-flow-added' (#77) from temp/sales-bill-edit into main
Reviewed-on: Pozomind/pozo-retail-app#77
This commit is contained in:
commit
ea144ce81b
|
|
@ -56,6 +56,9 @@ import {
|
||||||
changeBtoBQuickProductTransfer,
|
changeBtoBQuickProductTransfer,
|
||||||
changeTipAmount,
|
changeTipAmount,
|
||||||
GlobalDineinDefault,
|
GlobalDineinDefault,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changeBillEditingMode,
|
||||||
} from '../../Features/BookingScreen/BookingData/BookingData';
|
} from '../../Features/BookingScreen/BookingData/BookingData';
|
||||||
import {
|
import {
|
||||||
changeWholeSaleAuctionSelectedData,
|
changeWholeSaleAuctionSelectedData,
|
||||||
|
|
@ -262,6 +265,9 @@ const SideMenuPozo = ({ items = [] }) => {
|
||||||
dispatch(ChangeTotalAmount([]));
|
dispatch(ChangeTotalAmount([]));
|
||||||
dispatch(ChangeFullFreeProductList([]));
|
dispatch(ChangeFullFreeProductList([]));
|
||||||
dispatch(changeFullOfferAppliedProducts([]));
|
dispatch(changeFullOfferAppliedProducts([]));
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
dispatch(changeLoyaltyConsumedQuantities({}));
|
dispatch(changeLoyaltyConsumedQuantities({}));
|
||||||
}
|
}
|
||||||
if (e == `${subDirectory}sales`) {
|
if (e == `${subDirectory}sales`) {
|
||||||
|
|
@ -285,6 +291,9 @@ const SideMenuPozo = ({ items = [] }) => {
|
||||||
dispatch(Offer.changeCoupenCodeAmount(0));
|
dispatch(Offer.changeCoupenCodeAmount(0));
|
||||||
dispatch(ChangeFullFreeProductList([]));
|
dispatch(ChangeFullFreeProductList([]));
|
||||||
dispatch(changeFullOfferAppliedProducts([]));
|
dispatch(changeFullOfferAppliedProducts([]));
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
dispatch(ChangeTotalAmount([]));
|
dispatch(ChangeTotalAmount([]));
|
||||||
dispatch(changeLoyaltyConsumedQuantities({}));
|
dispatch(changeLoyaltyConsumedQuantities({}));
|
||||||
}
|
}
|
||||||
|
|
@ -382,7 +391,7 @@ const SideMenuPozo = ({ items = [] }) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
handleMenuClick(item, parentKeys, e, level);
|
handleMenuClick(item, parentKeys, e, level);
|
||||||
}}
|
}}
|
||||||
// style={{ paddingLeft: `${level * 10 + 1}px` }}
|
// style={{ paddingLeft: `${level * 10 + 1}px` }}
|
||||||
>
|
>
|
||||||
{item.icon && level === 0 && (
|
{item.icon && level === 0 && (
|
||||||
<span
|
<span
|
||||||
|
|
|
||||||
|
|
@ -168,6 +168,14 @@ export const PutBookingData = createAsyncThunk(
|
||||||
return await axiosRetailInstanceData.put(`/Booking`, putData);
|
return await axiosRetailInstanceData.put(`/Booking`, putData);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
export const putSalesBillEdit = createAsyncThunk(
|
||||||
|
'BookingData/putSalesBillEdit',
|
||||||
|
async (putData) => {
|
||||||
|
return await axiosRetailInstanceData.put(`/SalesBillEdit`, putData);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
export const getEstimateDatewiseReport = createAsyncThunk(
|
export const getEstimateDatewiseReport = createAsyncThunk(
|
||||||
'BookingData/getEstimateDatewiseReport',
|
'BookingData/getEstimateDatewiseReport',
|
||||||
async (data) => {
|
async (data) => {
|
||||||
|
|
@ -1598,6 +1606,9 @@ const initialState = {
|
||||||
AddBookingDetailsTrigger: false,
|
AddBookingDetailsTrigger: false,
|
||||||
CurrentOrderId: null,
|
CurrentOrderId: null,
|
||||||
productCardTrigger: 0,
|
productCardTrigger: 0,
|
||||||
|
salesBillEdit: false,
|
||||||
|
previousOrderPayment: [],
|
||||||
|
previousOrderOfferDetails: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
const BookingData = createSlice({
|
const BookingData = createSlice({
|
||||||
|
|
@ -1923,6 +1934,15 @@ const BookingData = createSlice({
|
||||||
triggerProductCard: (state) => {
|
triggerProductCard: (state) => {
|
||||||
state.productCardTrigger += 1;
|
state.productCardTrigger += 1;
|
||||||
},
|
},
|
||||||
|
changeBillEditingMode: (state, action) => {
|
||||||
|
state.salesBillEdit = action?.payload;
|
||||||
|
},
|
||||||
|
changePreviousOrderPayment: (state, action) => {
|
||||||
|
state.previousOrderPayment = action?.payload;
|
||||||
|
},
|
||||||
|
changePreviousOrderOfferDetail: (state, action) => {
|
||||||
|
state.previousOrderOfferDetails = action?.payload;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
extraReducers: (builder) => {
|
extraReducers: (builder) => {
|
||||||
|
|
@ -2190,6 +2210,9 @@ export const {
|
||||||
changeAddBookingDetailsTrigger,
|
changeAddBookingDetailsTrigger,
|
||||||
changeCurrentOrderId,
|
changeCurrentOrderId,
|
||||||
triggerProductCard,
|
triggerProductCard,
|
||||||
|
changeBillEditingMode,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changePreviousOrderOfferDetail
|
||||||
} = BookingData.actions;
|
} = BookingData.actions;
|
||||||
|
|
||||||
export const GlobalComboRedirectionToDefaultLayoutForParking = (state) =>
|
export const GlobalComboRedirectionToDefaultLayoutForParking = (state) =>
|
||||||
|
|
@ -2358,5 +2381,11 @@ export const GlobalAddBookingDetailsTrigger = (state) =>
|
||||||
state?.BookingData?.AddBookingDetailsTrigger;
|
state?.BookingData?.AddBookingDetailsTrigger;
|
||||||
export const GlobalCurrentOrderId = (state) =>
|
export const GlobalCurrentOrderId = (state) =>
|
||||||
state?.BookingData?.CurrentOrderId;
|
state?.BookingData?.CurrentOrderId;
|
||||||
|
export const GlobalSalesBillEdit = (state) =>
|
||||||
|
state?.BookingData?.salesBillEdit;
|
||||||
|
export const GlobalPreviousOrderPayment = (state) =>
|
||||||
|
state?.BookingData?.previousOrderPayment;
|
||||||
|
export const GlobalPreviousOrderOfferDetails = (state) =>
|
||||||
|
state?.BookingData?.previousOrderOfferDetails;
|
||||||
|
|
||||||
export default BookingData.reducer;
|
export default BookingData.reducer;
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,15 @@ import {
|
||||||
changeCurrentOrderId,
|
changeCurrentOrderId,
|
||||||
GlobalCombocarddata,
|
GlobalCombocarddata,
|
||||||
getCreditCustomer,
|
getCreditCustomer,
|
||||||
|
GlobalSalesBillEdit,
|
||||||
|
GlobalPreviousOrderPayment,
|
||||||
|
GlobalPreviousOrderOfferDetails,
|
||||||
|
GlobalpaymentOptionData,
|
||||||
|
getPaymentOptions,
|
||||||
|
putSalesBillEdit,
|
||||||
|
changeBillEditingMode,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
||||||
import FeaturesFunctionalities from '../../BookingFunctionality/FeaturesFunctionalities';
|
import FeaturesFunctionalities from '../../BookingFunctionality/FeaturesFunctionalities';
|
||||||
import {
|
import {
|
||||||
|
|
@ -235,6 +244,10 @@ export default function BST1Payment() {
|
||||||
);
|
);
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||||
|
const previousOrderPayment = useSelector(GlobalPreviousOrderPayment);
|
||||||
|
const previousOrderOfferDetails = useSelector(GlobalPreviousOrderOfferDetails);
|
||||||
|
const AllPaymentOptions = useSelector(GlobalpaymentOptionData);
|
||||||
const Discount = useSelector(GlobalOverAllOfferAmt);
|
const Discount = useSelector(GlobalOverAllOfferAmt);
|
||||||
const defaultBookingType = useSelector(GlobalDefaultBookingType);
|
const defaultBookingType = useSelector(GlobalDefaultBookingType);
|
||||||
const globalTipAmount = useSelector(GlobaltipAmount);
|
const globalTipAmount = useSelector(GlobaltipAmount);
|
||||||
|
|
@ -323,6 +336,12 @@ export default function BST1Payment() {
|
||||||
const [defaultEnabled, setDefaultEnabled] = useState(false);
|
const [defaultEnabled, setDefaultEnabled] = useState(false);
|
||||||
const [SelectedUpiOption, setSelectedUpiOption] = useState();
|
const [SelectedUpiOption, setSelectedUpiOption] = useState();
|
||||||
const [hold, setHold] = useState(false);
|
const [hold, setHold] = useState(false);
|
||||||
|
const [refundPayBtns, setRefundPayBtns] = useState([]);
|
||||||
|
const [refundPaySelected, setRefundPaySelected] = useState();
|
||||||
|
const [refundPaySelectedName, setRefundPaySelectedName] = useState(null);
|
||||||
|
const [currentOrderNetAmount, setCurrentOrderNetAmount] = useState(0);
|
||||||
|
const [previousNetAmount, setPreviousNetAmount] = useState(0);
|
||||||
|
console.log(currentOrderNetAmount, 'currentOrderNetAmount', previousNetAmount, salesBillEdit);
|
||||||
const [addcustomer, setAddCustomer] = useState(false);
|
const [addcustomer, setAddCustomer] = useState(false);
|
||||||
const [PrintOrderDetails, setPrintOrderDetails] = useState([]);
|
const [PrintOrderDetails, setPrintOrderDetails] = useState([]);
|
||||||
//Total calculation
|
//Total calculation
|
||||||
|
|
@ -540,6 +559,27 @@ export default function BST1Payment() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const filteredPayments =
|
||||||
|
previousOrderPayment?.filter(
|
||||||
|
p => p?.LastOrderTran === 'Y' && p?.AfterAdjustment != null && p?.AfterAdjustment !== '' && p?.AfterAdjustment
|
||||||
|
) || [];
|
||||||
|
|
||||||
|
const paymentsToUse =
|
||||||
|
filteredPayments.length > 0 ? filteredPayments : previousOrderPayment || [];
|
||||||
|
|
||||||
|
const totalPreviouspayment = paymentsToUse?.reduce(
|
||||||
|
(acc, payment) => acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const totalPreviousOfferAmount = previousOrderOfferDetails?.reduce(
|
||||||
|
(acc, offer) => acc + parseFloat(offer.OfferAmount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const previousNetAmount =
|
||||||
|
(totalPreviouspayment) || 0;
|
||||||
|
|
||||||
// let withdiscTotal = Total - ((OverAllSales || 0) + (OverAllEstimate || 0));
|
// let withdiscTotal = Total - ((OverAllSales || 0) + (OverAllEstimate || 0));
|
||||||
let withdiscTotal =
|
let withdiscTotal =
|
||||||
Total -
|
Total -
|
||||||
|
|
@ -547,19 +587,17 @@ export default function BST1Payment() {
|
||||||
(OverAllEstimate || 0) +
|
(OverAllEstimate || 0) +
|
||||||
(Discount > 0 ? Discount : 0));
|
(Discount > 0 ? Discount : 0));
|
||||||
|
|
||||||
setTotalAmount(
|
const currentOrderNetAmount = formatAmount(
|
||||||
formatAmount(
|
withdiscTotal >= 0
|
||||||
withdiscTotal >= 0
|
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
||||||
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
||||||
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
)
|
||||||
)
|
|
||||||
);
|
setTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount);
|
||||||
|
setCurrentOrderNetAmount(currentOrderNetAmount);
|
||||||
|
setPreviousNetAmount(previousNetAmount);
|
||||||
|
dispatch(changeSummeryTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount));
|
||||||
|
|
||||||
dispatch(
|
|
||||||
changeSummeryTotalAmount(
|
|
||||||
formatAmount(withdiscTotal > 0 ? withdiscTotal : Number(Total))
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
||||||
|
|
||||||
|
|
@ -621,6 +659,31 @@ export default function BST1Payment() {
|
||||||
fetchApi();
|
fetchApi();
|
||||||
}
|
}
|
||||||
}, [UserType]);
|
}, [UserType]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (salesBillEdit) {
|
||||||
|
dispatch(getPaymentOptions()).unwrap();
|
||||||
|
}
|
||||||
|
}, [salesBillEdit]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
if (salesBillEdit) {
|
||||||
|
if (SelCustId) {
|
||||||
|
setRefundPayBtns(AllPaymentOptions);
|
||||||
|
setRefundPaySelected(AllPaymentOptions?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(AllPaymentOptions?.[0]?.ConfigName);
|
||||||
|
} else {
|
||||||
|
const withoutCustomer = AllPaymentOptions?.filter?.(
|
||||||
|
(item) => item?.ConfigName?.toLowerCase() !== 'credit'
|
||||||
|
);
|
||||||
|
setRefundPaySelected(withoutCustomer?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(withoutCustomer?.[0]?.ConfigName);
|
||||||
|
setRefundPayBtns(withoutCustomer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [AllPaymentOptions, SelCustId, salesBillEdit])
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
let hasAccess = false;
|
let hasAccess = false;
|
||||||
|
|
||||||
|
|
@ -828,7 +891,7 @@ export default function BST1Payment() {
|
||||||
|
|
||||||
const selectedStyle =
|
const selectedStyle =
|
||||||
stylesMap[
|
stylesMap[
|
||||||
printerTemplateStyle == undefined ? 'Style 13' : printerTemplateStyle
|
printerTemplateStyle == undefined ? 'Style 13' : printerTemplateStyle
|
||||||
];
|
];
|
||||||
|
|
||||||
if (selectedStyle) {
|
if (selectedStyle) {
|
||||||
|
|
@ -1182,7 +1245,7 @@ export default function BST1Payment() {
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
PrintOrderDetails?.[0]?.OrderDetails?.map(
|
PrintOrderDetails?.[0]?.OrderDetails?.map(
|
||||||
async (orderDetail, index) => {
|
async (orderDetail, index) => {
|
||||||
const groupedTokens = orderDetail?.productDetails?.reduce(
|
const groupedTokens = orderDetail?.productDetails?.filter(data => data?.EditTokenAvailable !== 'N')?.reduce(
|
||||||
(acc, item, idx) => {
|
(acc, item, idx) => {
|
||||||
if (item.TokenAvailable === 'Y') {
|
if (item.TokenAvailable === 'Y') {
|
||||||
if (!item.CounterName) {
|
if (!item.CounterName) {
|
||||||
|
|
@ -1263,6 +1326,10 @@ export default function BST1Payment() {
|
||||||
const handleButtonClick = () => {
|
const handleButtonClick = () => {
|
||||||
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
||||||
UpiPayment();
|
UpiPayment();
|
||||||
|
} else if (salesBillEdit && currentOrderNetAmount < previousNetAmount && !refundPaySelected) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Please Select Refund Payment Method');
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? AddBookingDetails('Dine-In', false)
|
? AddBookingDetails('Dine-In', false)
|
||||||
|
|
@ -1535,6 +1602,12 @@ export default function BST1Payment() {
|
||||||
setCardoptionnotSelected(false);
|
setCardoptionnotSelected(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefundPaymentMode = (id, name) => {
|
||||||
|
setRefundPaySelected(id);
|
||||||
|
setRefundPaySelectedName(name);
|
||||||
|
}
|
||||||
|
|
||||||
const addUpiOption = async (id, name, UPIId) => {
|
const addUpiOption = async (id, name, UPIId) => {
|
||||||
await dispatch(changeUpiIDprint(UPIId));
|
await dispatch(changeUpiIDprint(UPIId));
|
||||||
await dispatch(changeUpiIDName(name));
|
await dispatch(changeUpiIDName(name));
|
||||||
|
|
@ -1736,6 +1809,9 @@ export default function BST1Payment() {
|
||||||
ParkingClaimed: false,
|
ParkingClaimed: false,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
dispatch(changeTipAmount(0));
|
dispatch(changeTipAmount(0));
|
||||||
dispatch(changeLoyaltyConsumedQuantities({}));
|
dispatch(changeLoyaltyConsumedQuantities({}));
|
||||||
dispatch(changeFullOfferAppliedProducts([]));
|
dispatch(changeFullOfferAppliedProducts([]));
|
||||||
|
|
@ -1752,6 +1828,8 @@ export default function BST1Payment() {
|
||||||
setPaybtnselected(PaymentOptionsModeId);
|
setPaybtnselected(PaymentOptionsModeId);
|
||||||
setQrCode(false);
|
setQrCode(false);
|
||||||
setUpinotSelected(false);
|
setUpinotSelected(false);
|
||||||
|
setCurrentOrderNetAmount(0);
|
||||||
|
setPreviousNetAmount(0);
|
||||||
getHolddata();
|
getHolddata();
|
||||||
if (defaultBookingType === 'Both') {
|
if (defaultBookingType === 'Both') {
|
||||||
await dispatch(changeBookingType('TakeAway'));
|
await dispatch(changeBookingType('TakeAway'));
|
||||||
|
|
@ -1928,15 +2006,15 @@ export default function BST1Payment() {
|
||||||
OrderStatus: 'O',
|
OrderStatus: 'O',
|
||||||
OrderType:
|
OrderType:
|
||||||
BookingType === 'Dine In' ||
|
BookingType === 'Dine In' ||
|
||||||
BookingTypeBoth ||
|
BookingTypeBoth ||
|
||||||
Estimation?.SettingValue == 'N'
|
Estimation?.SettingValue == 'N'
|
||||||
? 'S'
|
? 'S'
|
||||||
: GlobEstBooking === 'OvrAllEst'
|
: GlobEstBooking === 'OvrAllEst'
|
||||||
? 'E'
|
? 'E'
|
||||||
: GlobEstBooking === 'ParEst'
|
: GlobEstBooking === 'ParEst'
|
||||||
? GlobProdwisedata?.includes(
|
? GlobProdwisedata?.includes(
|
||||||
a.InwardDtlId + ' ' + a?.BookingTypeName
|
a.InwardDtlId + ' ' + a?.BookingTypeName
|
||||||
)
|
)
|
||||||
? 'E'
|
? 'E'
|
||||||
: 'S'
|
: 'S'
|
||||||
: 'S',
|
: 'S',
|
||||||
|
|
@ -2026,7 +2104,7 @@ export default function BST1Payment() {
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
? 'S'
|
? 'S'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'upi' &&
|
: Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
OrderDtlDetails:
|
OrderDtlDetails:
|
||||||
|
|
@ -2043,15 +2121,15 @@ export default function BST1Payment() {
|
||||||
? globalTipAmount === 0
|
? globalTipAmount === 0
|
||||||
? SelectedTableDetails
|
? SelectedTableDetails
|
||||||
: SelectedTableDetails?.map((item) => ({
|
: SelectedTableDetails?.map((item) => ({
|
||||||
...item,
|
...item,
|
||||||
TipsAmount: globalTipAmount,
|
TipsAmount: globalTipAmount,
|
||||||
}))
|
}))
|
||||||
: null,
|
: null,
|
||||||
|
|
||||||
SalesPaymentType: 'normal',
|
SalesPaymentType: 'normal',
|
||||||
PaymentDetail: [
|
PaymentDetail: [
|
||||||
{
|
{
|
||||||
PaymentType:
|
PaymentType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? refundPaySelected :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi'
|
Paybtnnameselected?.toLowerCase() === 'upi'
|
||||||
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
||||||
? PaymentDeviceUPI?.[0]?.ModeId
|
? PaymentDeviceUPI?.[0]?.ModeId
|
||||||
|
|
@ -2059,20 +2137,20 @@ export default function BST1Payment() {
|
||||||
? PaymentgatewayUPI?.[0]?.ModeId
|
? PaymentgatewayUPI?.[0]?.ModeId
|
||||||
: SelectedUPIPayOption?.toLowerCase() === 'business'
|
: SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
? BusinessPayOption?.find(
|
? BusinessPayOption?.find(
|
||||||
(busupi) => busupi?.ModeId === UpiId
|
(busupi) => busupi?.ModeId === UpiId
|
||||||
)?.ModeId
|
)?.ModeId
|
||||||
: paybtnselected
|
: paybtnselected
|
||||||
: paybtnselected
|
: paybtnselected
|
||||||
? paybtnselected
|
? paybtnselected
|
||||||
: null,
|
: null,
|
||||||
Amount: Math.round(TotalAmount),
|
Amount: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? previousNetAmount - currentOrderNetAmount : Math.round(TotalAmount),
|
||||||
MerchantId:
|
MerchantId: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'business'
|
SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantId
|
?.MerchantId
|
||||||
: null,
|
: null,
|
||||||
PaymentOptionType:
|
PaymentOptionType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) && (refundPaySelectedName?.toLowerCase() === 'cash' || refundPaySelectedName?.toLowerCase() === 'credit') ? 'PC' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2086,42 +2164,42 @@ export default function BST1Payment() {
|
||||||
? 'BU'
|
? 'BU'
|
||||||
: SelectedUPIPayOption
|
: SelectedUPIPayOption
|
||||||
: null,
|
: null,
|
||||||
ModeOfPayment:
|
ModeOfPayment: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
||||||
?.UPIDetailId
|
?.UPIDetailId
|
||||||
: SelectedUPIPayOption?.toLowerCase() === 'business'
|
: SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantUPIId
|
?.MerchantUPIId
|
||||||
: null,
|
: null,
|
||||||
AccountDtl:
|
AccountDtl: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? [] :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||||
(upipay) => upipay?.UPIId === UpiId
|
(upipay) => upipay?.UPIId === UpiId
|
||||||
)
|
)
|
||||||
: (Paybtnnameselected?.toLowerCase() === 'upi' &&
|
: (Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'pd') ||
|
SelectedUPIPayOption?.toLowerCase() === 'pd') ||
|
||||||
(Paybtnnameselected?.toLowerCase() === 'card' &&
|
(Paybtnnameselected?.toLowerCase() === 'card' &&
|
||||||
SelectedCardOption?.toLowerCase() === 'pd')
|
SelectedCardOption?.toLowerCase() === 'pd')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentDevice
|
? useOptions?.[0]?.PaymentDetails?.PaymentDevice
|
||||||
: (Paybtnnameselected?.toLowerCase() === 'upi' &&
|
: (Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'pg') ||
|
SelectedUPIPayOption?.toLowerCase() === 'pg') ||
|
||||||
(Paybtnnameselected?.toLowerCase() === 'card' &&
|
(Paybtnnameselected?.toLowerCase() === 'card' &&
|
||||||
SelectedCardOption?.toLowerCase() === 'pg')
|
SelectedCardOption?.toLowerCase() === 'pg')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||||
: [],
|
: [],
|
||||||
PaymentStatus:
|
PaymentStatus: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? 'S' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'S'
|
? 'S'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
? 'S'
|
? 'S'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'upi' &&
|
: Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
Debit: 0,
|
Debit: (salesBillEdit && currentOrderNetAmount < previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(previousNetAmount - currentOrderNetAmount) : 0,
|
||||||
Credit:
|
Credit: salesBillEdit ? (currentOrderNetAmount > previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(TotalAmount) : 0 :
|
||||||
Paybtnnameselected?.toLowerCase() === 'credit'
|
Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
? Math.round(TotalAmount)
|
? Math.round(TotalAmount)
|
||||||
: 0,
|
: 0,
|
||||||
|
|
@ -2190,14 +2268,14 @@ export default function BST1Payment() {
|
||||||
setMessageType('success');
|
setMessageType('success');
|
||||||
setMessageData(
|
setMessageData(
|
||||||
response?.data?.response +
|
response?.data?.response +
|
||||||
' ' +
|
' ' +
|
||||||
(response?.data?.OrderDetails?.length > 0
|
(response?.data?.OrderDetails?.length > 0
|
||||||
? response?.data?.OrderId &&
|
? response?.data?.OrderId &&
|
||||||
extractLastNumberOrderId(
|
extractLastNumberOrderId(
|
||||||
response?.data?.OrderId,
|
response?.data?.OrderId,
|
||||||
response?.data?.OrderDetails?.[0]?.FYStatus
|
response?.data?.OrderDetails?.[0]?.FYStatus
|
||||||
)
|
)
|
||||||
: '')
|
: '')
|
||||||
);
|
);
|
||||||
response?.data?.OrderDetails?.length > 0 &&
|
response?.data?.OrderDetails?.length > 0 &&
|
||||||
setPrintOrderDetails([response?.data]);
|
setPrintOrderDetails([response?.data]);
|
||||||
|
|
@ -2326,7 +2404,12 @@ export default function BST1Payment() {
|
||||||
putdata['PaymentType'] = !pay && '';
|
putdata['PaymentType'] = !pay && '';
|
||||||
putdata['PrintType'] = 'Y';
|
putdata['PrintType'] = 'Y';
|
||||||
}
|
}
|
||||||
let response = await dispatch(PutBookingData(putdata)).unwrap();
|
let response = null;
|
||||||
|
if (salesBillEdit) {
|
||||||
|
response = await dispatch(putSalesBillEdit(putdata)).unwrap();
|
||||||
|
} else {
|
||||||
|
response = await dispatch(PutBookingData(putdata)).unwrap();
|
||||||
|
}
|
||||||
if (value !== 'Unpaid') {
|
if (value !== 'Unpaid') {
|
||||||
if (response?.data?.statusCode == 1) {
|
if (response?.data?.statusCode == 1) {
|
||||||
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
|
|
@ -2349,14 +2432,14 @@ export default function BST1Payment() {
|
||||||
setMessageType('success');
|
setMessageType('success');
|
||||||
setMessageData(
|
setMessageData(
|
||||||
response?.data?.response +
|
response?.data?.response +
|
||||||
' ' +
|
' ' +
|
||||||
(response?.data?.OrderDetails?.length > 0
|
(response?.data?.OrderDetails?.length > 0
|
||||||
? response?.data?.OrderId &&
|
? response?.data?.OrderId &&
|
||||||
extractLastNumberOrderId(
|
extractLastNumberOrderId(
|
||||||
response?.data?.OrderId,
|
response?.data?.OrderId,
|
||||||
response?.data?.OrderDetails?.[0]?.FYStatus
|
response?.data?.OrderDetails?.[0]?.FYStatus
|
||||||
)
|
)
|
||||||
: '')
|
: '')
|
||||||
);
|
);
|
||||||
response?.data?.OrderDetails?.length > 0 &&
|
response?.data?.OrderDetails?.length > 0 &&
|
||||||
setPrintOrderDetails([response?.data]);
|
setPrintOrderDetails([response?.data]);
|
||||||
|
|
@ -2457,14 +2540,14 @@ export default function BST1Payment() {
|
||||||
}
|
}
|
||||||
setMessageData(
|
setMessageData(
|
||||||
response?.data?.response +
|
response?.data?.response +
|
||||||
' ' +
|
' ' +
|
||||||
(response?.data?.OrderDetails?.length > 0
|
(response?.data?.OrderDetails?.length > 0
|
||||||
? response?.data?.OrderId &&
|
? response?.data?.OrderId &&
|
||||||
extractLastNumberOrderId(
|
extractLastNumberOrderId(
|
||||||
response?.data?.OrderId,
|
response?.data?.OrderId,
|
||||||
response?.data?.OrderDetails?.[0]?.FYStatus
|
response?.data?.OrderDetails?.[0]?.FYStatus
|
||||||
)
|
)
|
||||||
: '')
|
: '')
|
||||||
);
|
);
|
||||||
if (response?.data?.OrderDetails?.length > 0) {
|
if (response?.data?.OrderDetails?.length > 0) {
|
||||||
setPrintOrderDetails([response?.data]);
|
setPrintOrderDetails([response?.data]);
|
||||||
|
|
@ -2639,14 +2722,14 @@ export default function BST1Payment() {
|
||||||
setMessageType('success');
|
setMessageType('success');
|
||||||
setMessageData(
|
setMessageData(
|
||||||
bookingpaymentupdate?.data?.response +
|
bookingpaymentupdate?.data?.response +
|
||||||
' ' +
|
' ' +
|
||||||
(bookingpaymentupdate?.data?.OrderDetails?.length > 0
|
(bookingpaymentupdate?.data?.OrderDetails?.length > 0
|
||||||
? bookingpaymentupdate?.data?.OrderId &&
|
? bookingpaymentupdate?.data?.OrderId &&
|
||||||
extractLastNumberOrderId(
|
extractLastNumberOrderId(
|
||||||
bookingpaymentupdate?.data?.OrderId,
|
bookingpaymentupdate?.data?.OrderId,
|
||||||
bookingpaymentupdate?.data?.OrderDetail?.[0]?.FYStatus
|
bookingpaymentupdate?.data?.OrderDetail?.[0]?.FYStatus
|
||||||
)
|
)
|
||||||
: '')
|
: '')
|
||||||
);
|
);
|
||||||
bookingpaymentupdate?.data?.OrderDetails?.length > 0 &&
|
bookingpaymentupdate?.data?.OrderDetails?.length > 0 &&
|
||||||
setPrintOrderDetails([bookingpaymentupdate?.data]);
|
setPrintOrderDetails([bookingpaymentupdate?.data]);
|
||||||
|
|
@ -2664,7 +2747,7 @@ export default function BST1Payment() {
|
||||||
if (
|
if (
|
||||||
Date.now() - startTime >
|
Date.now() - startTime >
|
||||||
useOptions?.[0]?.PDConfigDetails?.[0]?.AutoCancelDurationInMinutes *
|
useOptions?.[0]?.PDConfigDetails?.[0]?.AutoCancelDurationInMinutes *
|
||||||
60000
|
60000
|
||||||
) {
|
) {
|
||||||
// 60,000 ms = 1 minute
|
// 60,000 ms = 1 minute
|
||||||
|
|
||||||
|
|
@ -3098,7 +3181,7 @@ export default function BST1Payment() {
|
||||||
};
|
};
|
||||||
|
|
||||||
const SplitPaymentOpen = () => {
|
const SplitPaymentOpen = () => {
|
||||||
if (OrderCardDetail?.length > 0) {
|
if (OrderCardDetail?.length > 0 && TotalAmount > 0) {
|
||||||
const updatedData = {
|
const updatedData = {
|
||||||
userData: OrderCardDetail,
|
userData: OrderCardDetail,
|
||||||
ExtraCharges: GlobalExtraCharge,
|
ExtraCharges: GlobalExtraCharge,
|
||||||
|
|
@ -3108,6 +3191,11 @@ export default function BST1Payment() {
|
||||||
setFailedOrderData(updatedData);
|
setFailedOrderData(updatedData);
|
||||||
setSplitpayment(true);
|
setSplitpayment(true);
|
||||||
} else {
|
} else {
|
||||||
|
if (TotalAmount <= 0) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Cannot split when total amount is zero or less');
|
||||||
|
return;
|
||||||
|
}
|
||||||
setMessageType('warning');
|
setMessageType('warning');
|
||||||
setMessageData('Please Select the Product');
|
setMessageData('Please Select the Product');
|
||||||
}
|
}
|
||||||
|
|
@ -3437,30 +3525,30 @@ export default function BST1Payment() {
|
||||||
(BookingType === 'Dine In' ||
|
(BookingType === 'Dine In' ||
|
||||||
BookingTypeBoth ||
|
BookingTypeBoth ||
|
||||||
CheckOrderType?.length > 0) &&
|
CheckOrderType?.length > 0) &&
|
||||||
!unpaidFlow &&
|
!unpaidFlow &&
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? 'none'
|
? 'none'
|
||||||
: 'auto',
|
: 'auto',
|
||||||
opacity:
|
opacity:
|
||||||
(BookingType === 'Dine In' ||
|
(BookingType === 'Dine In' ||
|
||||||
BookingTypeBoth ||
|
BookingTypeBoth ||
|
||||||
CheckOrderType?.length > 0) &&
|
CheckOrderType?.length > 0) &&
|
||||||
!unpaidFlow &&
|
!unpaidFlow &&
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? 0.5
|
? 0.5
|
||||||
: 1,
|
: 1,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{paybtns?.length > 0 ? (
|
{paybtns?.length > 0 && (currentOrderNetAmount >= previousNetAmount) ? (
|
||||||
paybtns?.map((payment) => (
|
paybtns?.map((payment) => (
|
||||||
<div className="Table3-cash">
|
<div className="Table3-cash">
|
||||||
<button
|
<button
|
||||||
className={
|
className={
|
||||||
paybtnselected === payment.ModeId &&
|
paybtnselected === payment.ModeId &&
|
||||||
(UpinotSelected || CardoptionnotSelected)
|
(UpinotSelected || CardoptionnotSelected)
|
||||||
? 'Btn-payment-mode-notupisel'
|
? 'Btn-payment-mode-notupisel'
|
||||||
: paybtnselected === payment.ModeId &&
|
: paybtnselected === payment.ModeId &&
|
||||||
(!UpinotSelected || !CardoptionnotSelected)
|
(!UpinotSelected || !CardoptionnotSelected)
|
||||||
? 'Btn-payment-mode'
|
? 'Btn-payment-mode'
|
||||||
: 'Btn-payment-mode-sel'
|
: 'Btn-payment-mode-sel'
|
||||||
}
|
}
|
||||||
|
|
@ -3474,13 +3562,13 @@ export default function BST1Payment() {
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
payment?.ModeName?.toLowerCase() === 'upi' // Change the condition to payment.Id
|
payment?.ModeName?.toLowerCase() === 'upi' // Change the condition to payment.Id
|
||||||
? handleUPIButtonClick(
|
? handleUPIButtonClick(
|
||||||
payment.ModeId,
|
payment.ModeId,
|
||||||
payment.ModeName
|
payment.ModeName
|
||||||
)
|
)
|
||||||
: handlePaymentMode(
|
: handlePaymentMode(
|
||||||
payment.ModeId,
|
payment.ModeId,
|
||||||
payment.ModeName
|
payment.ModeName
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{/* {UpiOption === "" && payment?.ModeName?.toLowerCase() === "upi" && <p> UPI</p>} */}
|
{/* {UpiOption === "" && payment?.ModeName?.toLowerCase() === "upi" && <p> UPI</p>} */}
|
||||||
|
|
@ -3531,6 +3619,42 @@ export default function BST1Payment() {
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
|
) : (currentOrderNetAmount < previousNetAmount && salesBillEdit && refundPayBtns.length > 0) ? (
|
||||||
|
refundPayBtns.map((payment) => (
|
||||||
|
<div className="Table3-cash">
|
||||||
|
<button
|
||||||
|
className={
|
||||||
|
refundPaySelected === payment.ConfigId &&
|
||||||
|
(UpinotSelected || CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode-notupisel'
|
||||||
|
: refundPaySelected === payment.ConfigId &&
|
||||||
|
(!UpinotSelected || !CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode'
|
||||||
|
: 'Btn-payment-mode-sel'
|
||||||
|
}
|
||||||
|
style={{
|
||||||
|
fontFamily: FontFamily['para'],
|
||||||
|
position: 'relative',
|
||||||
|
animation: blink
|
||||||
|
? 'blink-animation 0.5s infinite alternate'
|
||||||
|
: 'none',
|
||||||
|
}}
|
||||||
|
onClick={() => handleRefundPaymentMode(payment?.ConfigId, payment?.ConfigName)}
|
||||||
|
>
|
||||||
|
{/* {UpiOption === "" && payment?.ModeName?.toLowerCase() === "upi" && <p> UPI</p>} */}
|
||||||
|
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
columnGap: '0.5rem',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{payment.ConfigName}
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
))
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
onClick={handlepaymentoptions}
|
onClick={handlepaymentoptions}
|
||||||
|
|
@ -3574,9 +3698,9 @@ export default function BST1Payment() {
|
||||||
OrderCardDetail?.length > 0 && 'not-allowed',
|
OrderCardDetail?.length > 0 && 'not-allowed',
|
||||||
color:
|
color:
|
||||||
OrderCardDetail?.length > 0 ||
|
OrderCardDetail?.length > 0 ||
|
||||||
(selOption?.value === undefined &&
|
(selOption?.value === undefined &&
|
||||||
GlobalAddCustomerDetails1?.length === 0 &&
|
GlobalAddCustomerDetails1?.length === 0 &&
|
||||||
GetCustId?.CustMobile === undefined)
|
GetCustId?.CustMobile === undefined)
|
||||||
? 'gray'
|
? 'gray'
|
||||||
: 'rgb(18, 146, 238)',
|
: 'rgb(18, 146, 238)',
|
||||||
fontSize: '28px',
|
fontSize: '28px',
|
||||||
|
|
@ -3626,16 +3750,16 @@ export default function BST1Payment() {
|
||||||
(BookingType === 'Dine In' ||
|
(BookingType === 'Dine In' ||
|
||||||
BookingTypeBoth ||
|
BookingTypeBoth ||
|
||||||
CheckOrderType?.length > 0) &&
|
CheckOrderType?.length > 0) &&
|
||||||
!unpaidFlow &&
|
!unpaidFlow &&
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? 'none'
|
? 'none'
|
||||||
: 'auto',
|
: 'auto',
|
||||||
opacity:
|
opacity:
|
||||||
(BookingType === 'Dine In' ||
|
(BookingType === 'Dine In' ||
|
||||||
BookingTypeBoth ||
|
BookingTypeBoth ||
|
||||||
CheckOrderType?.length > 0) &&
|
CheckOrderType?.length > 0) &&
|
||||||
!unpaidFlow &&
|
!unpaidFlow &&
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? 0.5
|
? 0.5
|
||||||
: 1,
|
: 1,
|
||||||
}}
|
}}
|
||||||
|
|
@ -3654,14 +3778,14 @@ export default function BST1Payment() {
|
||||||
width: '1.5rem',
|
width: '1.5rem',
|
||||||
cursor:
|
cursor:
|
||||||
OrderCardDetail?.length === 0 ||
|
OrderCardDetail?.length === 0 ||
|
||||||
CheckBookingStatus == 'Close' ||
|
CheckBookingStatus == 'Close' ||
|
||||||
addnewAccess
|
addnewAccess
|
||||||
? 'not-allowed'
|
? 'not-allowed'
|
||||||
: 'pointer',
|
: 'pointer',
|
||||||
color:
|
color:
|
||||||
OrderCardDetail?.length === 0 ||
|
OrderCardDetail?.length === 0 ||
|
||||||
CheckBookingStatus == 'Close' ||
|
CheckBookingStatus == 'Close' ||
|
||||||
addnewAccess
|
addnewAccess
|
||||||
? 'gray'
|
? 'gray'
|
||||||
: 'rgb(18, 146, 238)',
|
: 'rgb(18, 146, 238)',
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
|
|
@ -3727,14 +3851,14 @@ export default function BST1Payment() {
|
||||||
width: '1.5rem',
|
width: '1.5rem',
|
||||||
cursor:
|
cursor:
|
||||||
OrderCardDetail?.length === 0 ||
|
OrderCardDetail?.length === 0 ||
|
||||||
CheckBookingStatus == 'Close' ||
|
CheckBookingStatus == 'Close' ||
|
||||||
addnewAccess
|
addnewAccess
|
||||||
? 'not-allowed'
|
? 'not-allowed'
|
||||||
: 'pointer',
|
: 'pointer',
|
||||||
color:
|
color:
|
||||||
OrderCardDetail?.length === 0 ||
|
OrderCardDetail?.length === 0 ||
|
||||||
CheckBookingStatus == 'Close' ||
|
CheckBookingStatus == 'Close' ||
|
||||||
addnewAccess
|
addnewAccess
|
||||||
? 'gray'
|
? 'gray'
|
||||||
: 'rgb(18, 146, 238)',
|
: 'rgb(18, 146, 238)',
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
|
|
@ -3816,58 +3940,58 @@ export default function BST1Payment() {
|
||||||
<div>
|
<div>
|
||||||
{unpaidFlow == false
|
{unpaidFlow == false
|
||||||
? holdCheckedSalesSetup &&
|
? holdCheckedSalesSetup &&
|
||||||
BookingType !== 'Dine In' &&
|
BookingType !== 'Dine In' &&
|
||||||
!BookingTypeBoth &&
|
!BookingTypeBoth &&
|
||||||
OrderCardDetail?.length != 0 &&
|
OrderCardDetail?.length != 0 &&
|
||||||
CheckOrderType?.length === 0 &&
|
CheckOrderType?.length === 0 &&
|
||||||
OrderType != 'Failed' &&
|
OrderType != 'Failed' &&
|
||||||
CheckBookingStatus != 'Close' &&
|
CheckBookingStatus != 'Close' &&
|
||||||
paybtns?.length > 0 &&
|
paybtns?.length > 0 &&
|
||||||
!addnewAccess && (
|
!addnewAccess && (
|
||||||
<TooltipWrapper title={'Hold'} isMobile={isMobile}>
|
<TooltipWrapper title={'Hold'} isMobile={isMobile}>
|
||||||
{' '}
|
{' '}
|
||||||
<PozoHoldIcon
|
<PozoHoldIcon
|
||||||
className="BSBillingNav-icon-table-icon"
|
className="BSBillingNav-icon-table-icon"
|
||||||
onClick={() => AddBookingDetails('Hold')}
|
onClick={() => AddBookingDetails('Hold')}
|
||||||
style={{
|
style={{
|
||||||
fontSize: '30px',
|
fontSize: '30px',
|
||||||
cursor: 'pointer',
|
cursor: 'pointer',
|
||||||
color: '' ? '#52c41a' : '#1292EE',
|
color: '' ? '#52c41a' : '#1292EE',
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</TooltipWrapper>
|
</TooltipWrapper>
|
||||||
)
|
)
|
||||||
: ''}
|
: ''}
|
||||||
{unpaidFlow == false
|
{unpaidFlow == false
|
||||||
? holdCheckedSalesSetup &&
|
? holdCheckedSalesSetup &&
|
||||||
paybtns?.length > 0 &&
|
paybtns?.length > 0 &&
|
||||||
BookingType !== 'Dine In' &&
|
BookingType !== 'Dine In' &&
|
||||||
!BookingTypeBoth &&
|
!BookingTypeBoth &&
|
||||||
Holddata?.length > 0 &&
|
Holddata?.length > 0 &&
|
||||||
OrderCardDetail?.length == 0 &&
|
OrderCardDetail?.length == 0 &&
|
||||||
CheckBookingStatus != 'Close' &&
|
CheckBookingStatus != 'Close' &&
|
||||||
!addnewAccess && (
|
!addnewAccess && (
|
||||||
<TooltipWrapper title={'Recall'} isMobile={isMobile}>
|
<TooltipWrapper title={'Recall'} isMobile={isMobile}>
|
||||||
{' '}
|
{' '}
|
||||||
<Badge
|
<Badge
|
||||||
count={Holddata?.length}
|
count={Holddata?.length}
|
||||||
size={'small'}
|
size={'small'}
|
||||||
offset={[0, 7]}
|
offset={[0, 7]}
|
||||||
>
|
>
|
||||||
<PozoHoldIcon
|
<PozoHoldIcon
|
||||||
className="BSBillingNav-icon-table-icon"
|
className="BSBillingNav-icon-table-icon"
|
||||||
onClick={() => HandleholdModelOpen()}
|
onClick={() => HandleholdModelOpen()}
|
||||||
style={{
|
style={{
|
||||||
fontSize: '28px',
|
fontSize: '28px',
|
||||||
cursor: 'pointer',
|
cursor: 'pointer',
|
||||||
color: Holddata ? '#52c41a' : 'default',
|
color: Holddata ? '#52c41a' : 'default',
|
||||||
pointerEvents:
|
pointerEvents:
|
||||||
OrderType === 'Failed' ? 'none' : 'auto',
|
OrderType === 'Failed' ? 'none' : 'auto',
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</Badge>
|
</Badge>
|
||||||
</TooltipWrapper>
|
</TooltipWrapper>
|
||||||
)
|
)
|
||||||
: ''}
|
: ''}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
@ -3896,6 +4020,11 @@ export default function BST1Payment() {
|
||||||
}
|
}
|
||||||
BillingTableName="BillingTable1"
|
BillingTableName="BillingTable1"
|
||||||
CheckBookingStatus={CheckBookingStatus}
|
CheckBookingStatus={CheckBookingStatus}
|
||||||
|
salesBillEdit={salesBillEdit}
|
||||||
|
currentOrderNetAmount={currentOrderNetAmount}
|
||||||
|
previousNetAmount={previousNetAmount}
|
||||||
|
credit={credit}
|
||||||
|
overAllBal={overAllBal}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
<TooltipWrapper title="Create Bill (F4)" isMobile={isMobile}>
|
<TooltipWrapper title="Create Bill (F4)" isMobile={isMobile}>
|
||||||
|
|
@ -3905,11 +4034,12 @@ export default function BST1Payment() {
|
||||||
addnewAccess
|
addnewAccess
|
||||||
? 'price-button-disabled'
|
? 'price-button-disabled'
|
||||||
: FirstPaymentclick === false &&
|
: FirstPaymentclick === false &&
|
||||||
OrderCardDetail?.length > 0 &&
|
OrderCardDetail?.length > 0 &&
|
||||||
paybtnselected &&
|
paybtnselected &&
|
||||||
CheckBookingStatus != 'Close'
|
CheckBookingStatus != 'Close'
|
||||||
? !OrderStatus
|
? !OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ?
|
||||||
? 'price-button'
|
'price-button'
|
||||||
|
: 'price-button'
|
||||||
: 'price-button Order'
|
: 'price-button Order'
|
||||||
: 'price-button-disabled'
|
: 'price-button-disabled'
|
||||||
}
|
}
|
||||||
|
|
@ -3924,7 +4054,7 @@ export default function BST1Payment() {
|
||||||
>
|
>
|
||||||
{' '}
|
{' '}
|
||||||
{isMobile ? (
|
{isMobile ? (
|
||||||
!OrderStatus ? (
|
!OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ? <div>Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</div> : (
|
||||||
`₹ ${Math.round(
|
`₹ ${Math.round(
|
||||||
OrderType === 'Failed'
|
OrderType === 'Failed'
|
||||||
? FailedTotalAmt
|
? FailedTotalAmt
|
||||||
|
|
@ -3935,7 +4065,7 @@ export default function BST1Payment() {
|
||||||
) : (
|
) : (
|
||||||
'ORDER'
|
'ORDER'
|
||||||
)
|
)
|
||||||
) : !OrderStatus ? (
|
) : !OrderStatus ? (salesBillEdit && (currentOrderNetAmount < previousNetAmount)) ? (<div>Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</div>) : (
|
||||||
<div>
|
<div>
|
||||||
₹{' '}
|
₹{' '}
|
||||||
<CountUp
|
<CountUp
|
||||||
|
|
@ -4133,7 +4263,10 @@ export default function BST1Payment() {
|
||||||
SplitPaymentModal={Splitpayment}
|
SplitPaymentModal={Splitpayment}
|
||||||
handlesplitpaymentclose={handlesplitpaymentclose}
|
handlesplitpaymentclose={handlesplitpaymentclose}
|
||||||
TotalNetAmount={
|
TotalNetAmount={
|
||||||
OrderType === 'Failed' ? FailedTotalAmt : Math.round(TotalAmount)
|
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)))
|
||||||
}
|
}
|
||||||
failedOrderData={failedOrderData}
|
failedOrderData={failedOrderData}
|
||||||
/>
|
/>
|
||||||
|
|
@ -4266,9 +4399,9 @@ export default function BST1Payment() {
|
||||||
|
|
||||||
const qty = isGroup
|
const qty = isGroup
|
||||||
? OrderCardDetail.filter((o) => o.id === groupKey).reduce(
|
? OrderCardDetail.filter((o) => o.id === groupKey).reduce(
|
||||||
(sum, o) => sum + (o.OrderQty || 1),
|
(sum, o) => sum + (o.OrderQty || 1),
|
||||||
0
|
0
|
||||||
)
|
)
|
||||||
: item.OrderQty || 1;
|
: item.OrderQty || 1;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
@ -4383,24 +4516,24 @@ export default function BST1Payment() {
|
||||||
Do you want to cancel the payment?
|
Do you want to cancel the payment?
|
||||||
</Modal>
|
</Modal>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{customerPreviesOrders && (
|
{customerPreviesOrders && (
|
||||||
<DefaultModal
|
<DefaultModal
|
||||||
open={customerPreviesOrders}
|
open={customerPreviesOrders}
|
||||||
handleCancel={() => setCustomerPreviesOrders(false)}
|
handleCancel={() => setCustomerPreviesOrders(false)}
|
||||||
footer={false}
|
footer={false}
|
||||||
width={700}
|
width={700}
|
||||||
className={'ModalPaymentGatewayEmbedded'}
|
className={'ModalPaymentGatewayEmbedded'}
|
||||||
children={
|
children={
|
||||||
<>
|
<>
|
||||||
<CustomerOrders
|
<CustomerOrders
|
||||||
CustomerDetails={selOption}
|
CustomerDetails={selOption}
|
||||||
close={() => setCustomerPreviesOrders(false)}
|
close={() => setCustomerPreviesOrders(false)}
|
||||||
/>
|
|
||||||
</>
|
|
||||||
}
|
|
||||||
/>
|
/>
|
||||||
)}
|
</>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,11 @@ const PaymentInput = ({
|
||||||
handleButtonClick,
|
handleButtonClick,
|
||||||
BillingTableName,
|
BillingTableName,
|
||||||
CheckBookingStatus,
|
CheckBookingStatus,
|
||||||
|
salesBillEdit = false,
|
||||||
|
currentOrderNetAmount = 0,
|
||||||
|
previousNetAmount = 0,
|
||||||
|
credit = false,
|
||||||
|
overAllBal = 0,
|
||||||
}) => {
|
}) => {
|
||||||
const { SadminuserAccess } = useAuth();
|
const { SadminuserAccess } = useAuth();
|
||||||
let SAAccessCommonMaster = SadminuserAccess?.find(
|
let SAAccessCommonMaster = SadminuserAccess?.find(
|
||||||
|
|
@ -133,9 +138,9 @@ const PaymentInput = ({
|
||||||
addnewAccess
|
addnewAccess
|
||||||
? 'price-button-disabled'
|
? 'price-button-disabled'
|
||||||
: FirstPaymentclick === false &&
|
: FirstPaymentclick === false &&
|
||||||
OrderCardDetail?.length > 0 &&
|
OrderCardDetail?.length > 0 &&
|
||||||
paybtnselected &&
|
paybtnselected &&
|
||||||
CheckBookingStatus != 'Close'
|
CheckBookingStatus != 'Close'
|
||||||
? !OrderStatus
|
? !OrderStatus
|
||||||
? 'price-button'
|
? 'price-button'
|
||||||
: 'price-button Order'
|
: 'price-button Order'
|
||||||
|
|
@ -152,13 +157,15 @@ const PaymentInput = ({
|
||||||
style={{ fontFamily: FontFamily['head'] }}
|
style={{ fontFamily: FontFamily['head'] }}
|
||||||
>
|
>
|
||||||
{isMobile &&
|
{isMobile &&
|
||||||
(!OrderStatus
|
(!OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ? <div>Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</div> :
|
||||||
? `₹ ${Math.round(
|
`₹ ${Math.round(
|
||||||
OrderType === 'Failed' ? failedTotalAmt : totalAmount
|
OrderType === 'Failed' ? failedTotalAmt : credit && overAllBal >= 0
|
||||||
)}`
|
? Math.max(0, totalAmount - overAllBal)
|
||||||
|
: totalAmount
|
||||||
|
)}`
|
||||||
: 'ORDER')}
|
: 'ORDER')}
|
||||||
|
|
||||||
{!isMobile && !OrderStatus && (
|
{!isMobile && !OrderStatus && ((salesBillEdit && (currentOrderNetAmount < previousNetAmount)) ? <div>Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</div> : (
|
||||||
<>
|
<>
|
||||||
₹{' '}
|
₹{' '}
|
||||||
{/* <CountUp
|
{/* <CountUp
|
||||||
|
|
@ -170,9 +177,11 @@ const PaymentInput = ({
|
||||||
/> */}
|
/> */}
|
||||||
{OrderType === 'Failed'
|
{OrderType === 'Failed'
|
||||||
? failedTotalAmt
|
? failedTotalAmt
|
||||||
: safeRound(totalAmount)}
|
: safeRound((credit && overAllBal >= 0)
|
||||||
|
? Math.max(0, totalAmount - overAllBal)
|
||||||
|
: totalAmount)}
|
||||||
</>
|
</>
|
||||||
)}
|
))}
|
||||||
|
|
||||||
{!isMobile && OrderStatus && 'ORDER'}
|
{!isMobile && OrderStatus && 'ORDER'}
|
||||||
</button>
|
</button>
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,15 @@ import {
|
||||||
changeCurrentOrderId,
|
changeCurrentOrderId,
|
||||||
GlobalCombocarddata,
|
GlobalCombocarddata,
|
||||||
getCreditCustomer,
|
getCreditCustomer,
|
||||||
|
GlobalSalesBillEdit,
|
||||||
|
GlobalPreviousOrderPayment,
|
||||||
|
GlobalPreviousOrderOfferDetails,
|
||||||
|
GlobalpaymentOptionData,
|
||||||
|
getPaymentOptions,
|
||||||
|
putSalesBillEdit,
|
||||||
|
changeBillEditingMode,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
||||||
import {
|
import {
|
||||||
gettinghold,
|
gettinghold,
|
||||||
|
|
@ -243,6 +252,10 @@ const BSBillingTable2 = () => {
|
||||||
const SessionMobileNo = SessionData?.SessionMobileNo;
|
const SessionMobileNo = SessionData?.SessionMobileNo;
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||||
|
const previousOrderPayment = useSelector(GlobalPreviousOrderPayment);
|
||||||
|
const previousOrderOfferDetails = useSelector(GlobalPreviousOrderOfferDetails);
|
||||||
|
const AllPaymentOptions = useSelector(GlobalpaymentOptionData);
|
||||||
const defaultBookingType = useSelector(GlobalDefaultBookingType);
|
const defaultBookingType = useSelector(GlobalDefaultBookingType);
|
||||||
const globalTipAmount = useSelector(GlobaltipAmount);
|
const globalTipAmount = useSelector(GlobaltipAmount);
|
||||||
const OtherServiceTicketClaim = useSelector(GlobalOtherServiceTicketClaim);
|
const OtherServiceTicketClaim = useSelector(GlobalOtherServiceTicketClaim);
|
||||||
|
|
@ -320,6 +333,11 @@ const BSBillingTable2 = () => {
|
||||||
const [overAllBal, setOverAllBal] = useState(0);
|
const [overAllBal, setOverAllBal] = useState(0);
|
||||||
const [creditCustomerOpen, setcreditCustomerOpen] = useState(false);
|
const [creditCustomerOpen, setcreditCustomerOpen] = useState(false);
|
||||||
const [hold, setHold] = useState(false);
|
const [hold, setHold] = useState(false);
|
||||||
|
const [refundPayBtns, setRefundPayBtns] = useState([]);
|
||||||
|
const [refundPaySelected, setRefundPaySelected] = useState();
|
||||||
|
const [refundPaySelectedName, setRefundPaySelectedName] = useState(null);
|
||||||
|
const [currentOrderNetAmount, setCurrentOrderNetAmount] = useState(0);
|
||||||
|
const [previousNetAmount, setPreviousNetAmount] = useState(0);
|
||||||
const [addcustomer, setAddCustomer] = useState(false);
|
const [addcustomer, setAddCustomer] = useState(false);
|
||||||
const [paybtns, setpaybtns] = useState([]);
|
const [paybtns, setpaybtns] = useState([]);
|
||||||
const tableOptions = templateData?.BookingBilling?.[1];
|
const tableOptions = templateData?.BookingBilling?.[1];
|
||||||
|
|
@ -453,6 +471,7 @@ const BSBillingTable2 = () => {
|
||||||
item.SettingIdName.toLowerCase() === 'shortcutkeys' &&
|
item.SettingIdName.toLowerCase() === 'shortcutkeys' &&
|
||||||
item.SettingValue === 'Y'
|
item.SettingValue === 'Y'
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchCreditCustomer = async () => {
|
const fetchCreditCustomer = async () => {
|
||||||
const selectedMode = paybtns?.find(
|
const selectedMode = paybtns?.find(
|
||||||
|
|
@ -492,6 +511,31 @@ const BSBillingTable2 = () => {
|
||||||
fetchCreditCustomer();
|
fetchCreditCustomer();
|
||||||
}, [paybtnselected, selOption, paybtns]);
|
}, [paybtnselected, selOption, paybtns]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (salesBillEdit) {
|
||||||
|
dispatch(getPaymentOptions()).unwrap();
|
||||||
|
}
|
||||||
|
}, [salesBillEdit]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
if (salesBillEdit) {
|
||||||
|
if (SelCustId) {
|
||||||
|
setRefundPayBtns(AllPaymentOptions);
|
||||||
|
setRefundPaySelected(AllPaymentOptions?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(AllPaymentOptions?.[0]?.ConfigName);
|
||||||
|
} else {
|
||||||
|
const withoutCustomer = AllPaymentOptions?.filter?.(
|
||||||
|
(item) => item?.ConfigName?.toLowerCase() !== 'credit'
|
||||||
|
);
|
||||||
|
setRefundPaySelected(withoutCustomer?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(withoutCustomer?.[0]?.ConfigName);
|
||||||
|
setRefundPayBtns(withoutCustomer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [AllPaymentOptions, SelCustId, salesBillEdit])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!preOrder) {
|
if (!preOrder) {
|
||||||
const totalSum = OrderCardDetail?.reduce(
|
const totalSum = OrderCardDetail?.reduce(
|
||||||
|
|
@ -547,23 +591,43 @@ const BSBillingTable2 = () => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const filteredPayments =
|
||||||
|
previousOrderPayment?.filter(
|
||||||
|
p => p?.LastOrderTran === 'Y' && p?.AfterAdjustment != null && p?.AfterAdjustment !== '' && p?.AfterAdjustment
|
||||||
|
) || [];
|
||||||
|
|
||||||
|
const paymentsToUse =
|
||||||
|
filteredPayments.length > 0 ? filteredPayments : previousOrderPayment || [];
|
||||||
|
|
||||||
|
const totalPreviouspayment = paymentsToUse?.reduce(
|
||||||
|
(acc, payment) => acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const totalPreviousOfferAmount = previousOrderOfferDetails?.reduce(
|
||||||
|
(acc, offer) => acc + parseFloat(offer.OfferAmount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const previousNetAmount =
|
||||||
|
(totalPreviouspayment) || 0;
|
||||||
|
|
||||||
let withdiscTotal =
|
let withdiscTotal =
|
||||||
Total -
|
Total -
|
||||||
((OverAllSales || 0) +
|
((OverAllSales || 0) +
|
||||||
(OverAllEstimate || 0) +
|
(OverAllEstimate || 0) +
|
||||||
(Discount > 0 ? Discount : 0));
|
(Discount > 0 ? Discount : 0));
|
||||||
|
|
||||||
setTotalAmount(
|
const currentOrderNetAmount = formatAmount(
|
||||||
withdiscTotal >= 0
|
withdiscTotal >= 0
|
||||||
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
||||||
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
||||||
);
|
)
|
||||||
|
|
||||||
dispatch(
|
setTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount);
|
||||||
changeSummeryTotalAmount(
|
setCurrentOrderNetAmount(currentOrderNetAmount);
|
||||||
withdiscTotal > 0 ? withdiscTotal : Number(Total)
|
setPreviousNetAmount(previousNetAmount);
|
||||||
)
|
dispatch(changeSummeryTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount));
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
||||||
|
|
||||||
|
|
@ -768,6 +832,10 @@ const BSBillingTable2 = () => {
|
||||||
const handleButtonClick = () => {
|
const handleButtonClick = () => {
|
||||||
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
||||||
UpiPayment();
|
UpiPayment();
|
||||||
|
} else if (salesBillEdit && currentOrderNetAmount < previousNetAmount && !refundPaySelected) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Please Select Refund Payment Method');
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? AddBookingDetails('Dine-In', false)
|
? AddBookingDetails('Dine-In', false)
|
||||||
|
|
@ -1241,6 +1309,11 @@ const BSBillingTable2 = () => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefundPaymentMode = (id, name) => {
|
||||||
|
setRefundPaySelected(id);
|
||||||
|
setRefundPaySelectedName(name);
|
||||||
|
}
|
||||||
|
|
||||||
const addUpiOption = async (id, name, UPIId) => {
|
const addUpiOption = async (id, name, UPIId) => {
|
||||||
await dispatch(changeUpiIDprint(UPIId));
|
await dispatch(changeUpiIDprint(UPIId));
|
||||||
await dispatch(changeUpiIDName(name));
|
await dispatch(changeUpiIDName(name));
|
||||||
|
|
@ -1777,6 +1850,9 @@ const BSBillingTable2 = () => {
|
||||||
} else {
|
} else {
|
||||||
dispatch(changeOrderCardDetails([]));
|
dispatch(changeOrderCardDetails([]));
|
||||||
}
|
}
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
dispatch(changeTipAmount(0));
|
dispatch(changeTipAmount(0));
|
||||||
dispatch(changeFullOfferAppliedProducts([]));
|
dispatch(changeFullOfferAppliedProducts([]));
|
||||||
dispatch(ChangeFullFreeProductList([]));
|
dispatch(ChangeFullFreeProductList([]));
|
||||||
|
|
@ -1793,6 +1869,8 @@ const BSBillingTable2 = () => {
|
||||||
setPaybtnnameselected(PaymentOptionsModeName);
|
setPaybtnnameselected(PaymentOptionsModeName);
|
||||||
setQrCode(false);
|
setQrCode(false);
|
||||||
setUpinotSelected(false);
|
setUpinotSelected(false);
|
||||||
|
setCurrentOrderNetAmount(0);
|
||||||
|
setPreviousNetAmount(0);
|
||||||
getHolddata();
|
getHolddata();
|
||||||
if (defaultBookingType === 'Both') {
|
if (defaultBookingType === 'Both') {
|
||||||
await dispatch(changeBookingType('TakeAway'));
|
await dispatch(changeBookingType('TakeAway'));
|
||||||
|
|
@ -2094,7 +2172,7 @@ const BSBillingTable2 = () => {
|
||||||
SalesPaymentType: 'normal',
|
SalesPaymentType: 'normal',
|
||||||
PaymentDetail: [
|
PaymentDetail: [
|
||||||
{
|
{
|
||||||
PaymentType:
|
PaymentType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? refundPaySelected :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi'
|
Paybtnnameselected?.toLowerCase() === 'upi'
|
||||||
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
||||||
? PaymentDeviceUPI?.[0]?.ModeId
|
? PaymentDeviceUPI?.[0]?.ModeId
|
||||||
|
|
@ -2108,15 +2186,14 @@ const BSBillingTable2 = () => {
|
||||||
: paybtnselected
|
: paybtnselected
|
||||||
? paybtnselected
|
? paybtnselected
|
||||||
: null,
|
: null,
|
||||||
// SelectedUPIPayOption?.toLowerCase() === "pg" ?
|
Amount: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? previousNetAmount - currentOrderNetAmount : Math.round(TotalAmount),
|
||||||
Amount: Math.round(TotalAmount),
|
MerchantId: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
MerchantId:
|
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'business'
|
SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantId
|
?.MerchantId
|
||||||
: null,
|
: null,
|
||||||
PaymentOptionType:
|
PaymentOptionType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) && (refundPaySelectedName?.toLowerCase() === 'cash' || refundPaySelectedName?.toLowerCase() === 'credit') ? 'PC' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2130,7 +2207,7 @@ const BSBillingTable2 = () => {
|
||||||
? 'BU'
|
? 'BU'
|
||||||
: SelectedUPIPayOption
|
: SelectedUPIPayOption
|
||||||
: null,
|
: null,
|
||||||
ModeOfPayment:
|
ModeOfPayment: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
||||||
?.UPIDetailId
|
?.UPIDetailId
|
||||||
|
|
@ -2138,7 +2215,7 @@ const BSBillingTable2 = () => {
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantUPIId
|
?.MerchantUPIId
|
||||||
: null,
|
: null,
|
||||||
AccountDtl:
|
AccountDtl: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? [] :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||||
|
|
@ -2155,7 +2232,7 @@ const BSBillingTable2 = () => {
|
||||||
SelectedCardOption?.toLowerCase() === 'pg')
|
SelectedCardOption?.toLowerCase() === 'pg')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||||
: [],
|
: [],
|
||||||
PaymentStatus:
|
PaymentStatus: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? 'S' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'S'
|
? 'S'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2164,8 +2241,8 @@ const BSBillingTable2 = () => {
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
Debit: 0,
|
Debit: (salesBillEdit && currentOrderNetAmount < previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(previousNetAmount - currentOrderNetAmount) : 0,
|
||||||
Credit:
|
Credit: salesBillEdit ? (currentOrderNetAmount > previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(TotalAmount) : 0 :
|
||||||
Paybtnnameselected?.toLowerCase() === 'credit'
|
Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
? Math.round(TotalAmount)
|
? Math.round(TotalAmount)
|
||||||
: 0,
|
: 0,
|
||||||
|
|
@ -2373,7 +2450,12 @@ const BSBillingTable2 = () => {
|
||||||
putdata['PaymentType'] = !pay && '';
|
putdata['PaymentType'] = !pay && '';
|
||||||
putdata['PrintType'] = 'Y';
|
putdata['PrintType'] = 'Y';
|
||||||
}
|
}
|
||||||
let response = await dispatch(PutBookingData(putdata)).unwrap();
|
let response = null;
|
||||||
|
if (salesBillEdit) {
|
||||||
|
response = await dispatch(putSalesBillEdit(putdata)).unwrap();
|
||||||
|
} else {
|
||||||
|
response = await dispatch(PutBookingData(putdata)).unwrap();
|
||||||
|
}
|
||||||
if (value !== 'Unpaid') {
|
if (value !== 'Unpaid') {
|
||||||
if (response?.data?.statusCode == 1) {
|
if (response?.data?.statusCode == 1) {
|
||||||
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
|
|
@ -3202,7 +3284,7 @@ const BSBillingTable2 = () => {
|
||||||
|
|
||||||
// split payments
|
// split payments
|
||||||
const SplitPaymentOpen = () => {
|
const SplitPaymentOpen = () => {
|
||||||
if (OrderCardDetail?.length > 0) {
|
if (OrderCardDetail?.length > 0 && TotalAmount > 0) {
|
||||||
const updatedData = {
|
const updatedData = {
|
||||||
userData: OrderCardDetail,
|
userData: OrderCardDetail,
|
||||||
ExtraCharges: GlobalExtraCharge,
|
ExtraCharges: GlobalExtraCharge,
|
||||||
|
|
@ -3212,6 +3294,11 @@ const BSBillingTable2 = () => {
|
||||||
setFailedOrderData(updatedData);
|
setFailedOrderData(updatedData);
|
||||||
setSplitpayment(true);
|
setSplitpayment(true);
|
||||||
} else {
|
} else {
|
||||||
|
if (TotalAmount <= 0) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Cannot split when total amount is zero or less');
|
||||||
|
return;
|
||||||
|
}
|
||||||
setMessageType('warning');
|
setMessageType('warning');
|
||||||
setMessageData('Please Select the Product');
|
setMessageData('Please Select the Product');
|
||||||
}
|
}
|
||||||
|
|
@ -3821,7 +3908,7 @@ const BSBillingTable2 = () => {
|
||||||
: 1,
|
: 1,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{paybtns?.length > 0 ? (
|
{paybtns?.length > 0 && (currentOrderNetAmount >= previousNetAmount) ? (
|
||||||
paybtns?.map((payment) => (
|
paybtns?.map((payment) => (
|
||||||
<div className="Table3-cash">
|
<div className="Table3-cash">
|
||||||
<button
|
<button
|
||||||
|
|
@ -3896,6 +3983,42 @@ const BSBillingTable2 = () => {
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
|
) : (currentOrderNetAmount < previousNetAmount && salesBillEdit && refundPayBtns.length > 0) ? (
|
||||||
|
refundPayBtns.map((payment) => (
|
||||||
|
<div className="Table3-cash">
|
||||||
|
<button
|
||||||
|
className={
|
||||||
|
refundPaySelected === payment.ConfigId &&
|
||||||
|
(UpinotSelected || CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode-notupisel'
|
||||||
|
: refundPaySelected === payment.ConfigId &&
|
||||||
|
(!UpinotSelected || !CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode'
|
||||||
|
: 'Btn-payment-mode-sel'
|
||||||
|
}
|
||||||
|
style={{
|
||||||
|
fontFamily: FontFamily['para'],
|
||||||
|
position: 'relative',
|
||||||
|
animation: blink
|
||||||
|
? 'blink-animation 0.5s infinite alternate'
|
||||||
|
: 'none',
|
||||||
|
}}
|
||||||
|
onClick={() => handleRefundPaymentMode(payment?.ConfigId, payment?.ConfigName)}
|
||||||
|
>
|
||||||
|
{/* {UpiOption === "" && payment?.ModeName?.toLowerCase() === "upi" && <p> UPI</p>} */}
|
||||||
|
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
columnGap: '0.5rem',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{payment.ConfigName}
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
))
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
onClick={handlepaymentoptions}
|
onClick={handlepaymentoptions}
|
||||||
|
|
@ -4132,7 +4255,9 @@ const BSBillingTable2 = () => {
|
||||||
OrderCardDetail?.length > 0 &&
|
OrderCardDetail?.length > 0 &&
|
||||||
paybtnselected &&
|
paybtnselected &&
|
||||||
CheckBookingStatus != 'Close'
|
CheckBookingStatus != 'Close'
|
||||||
? 'billing-btn'
|
? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ?
|
||||||
|
'billing-btn'
|
||||||
|
: 'billing-btn'
|
||||||
: 'billing-btn-deactive'
|
: 'billing-btn-deactive'
|
||||||
}
|
}
|
||||||
// onClick={() => {
|
// onClick={() => {
|
||||||
|
|
@ -4143,7 +4268,9 @@ const BSBillingTable2 = () => {
|
||||||
handleButtonClick
|
handleButtonClick
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{!OrderStatus ? (
|
{!OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ? <div
|
||||||
|
className="billing-in-style-Order"
|
||||||
|
style={{ fontFamily: FontFamily['head'] }}>Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</div> : (
|
||||||
<>
|
<>
|
||||||
<div className="billing-in-style">
|
<div className="billing-in-style">
|
||||||
<h1 style={{ fontFamily: FontFamily['head'] }}>Total</h1>
|
<h1 style={{ fontFamily: FontFamily['head'] }}>Total</h1>
|
||||||
|
|
@ -4364,7 +4491,10 @@ const BSBillingTable2 = () => {
|
||||||
SplitPaymentModal={Splitpayment}
|
SplitPaymentModal={Splitpayment}
|
||||||
handlesplitpaymentclose={handlesplitpaymentclose}
|
handlesplitpaymentclose={handlesplitpaymentclose}
|
||||||
TotalNetAmount={
|
TotalNetAmount={
|
||||||
OrderType === 'Failed' ? FailedTotalAmt : Math.round(TotalAmount)
|
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)))
|
||||||
}
|
}
|
||||||
failedOrderData={failedOrderData}
|
failedOrderData={failedOrderData}
|
||||||
/>
|
/>
|
||||||
|
|
@ -4579,7 +4709,7 @@ const BSBillingTable2 = () => {
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<DefaultModal
|
<DefaultModal
|
||||||
open={businessUPI}
|
open={businessUPI}
|
||||||
handleCancel={() => setShowCancelConfirm(true)}
|
handleCancel={() => setShowCancelConfirm(true)}
|
||||||
|
|
|
||||||
|
|
@ -131,6 +131,15 @@ import {
|
||||||
GlobalCombocarddata,
|
GlobalCombocarddata,
|
||||||
getCreditCustomer,
|
getCreditCustomer,
|
||||||
GlobalSummeryTotalItems,
|
GlobalSummeryTotalItems,
|
||||||
|
GlobalSalesBillEdit,
|
||||||
|
GlobalPreviousOrderPayment,
|
||||||
|
GlobalPreviousOrderOfferDetails,
|
||||||
|
GlobalpaymentOptionData,
|
||||||
|
getPaymentOptions,
|
||||||
|
putSalesBillEdit,
|
||||||
|
changeBillEditingMode,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
||||||
import { PrintStyleFunction } from '../../../../paymentpdfPage/PrintStyleFunction.js';
|
import { PrintStyleFunction } from '../../../../paymentpdfPage/PrintStyleFunction.js';
|
||||||
import FeaturesFunctionalities from '../../BookingFunctionality/FeaturesFunctionalities';
|
import FeaturesFunctionalities from '../../BookingFunctionality/FeaturesFunctionalities';
|
||||||
|
|
@ -225,6 +234,10 @@ const BSBillingTable3Pay = () => {
|
||||||
);
|
);
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||||
|
const previousOrderPayment = useSelector(GlobalPreviousOrderPayment);
|
||||||
|
const previousOrderOfferDetails = useSelector(GlobalPreviousOrderOfferDetails);
|
||||||
|
const AllPaymentOptions = useSelector(GlobalpaymentOptionData);
|
||||||
const FreeProdList = useSelector(GlobalFreeProdList);
|
const FreeProdList = useSelector(GlobalFreeProdList);
|
||||||
const offerAppliedProducts = useSelector(
|
const offerAppliedProducts = useSelector(
|
||||||
GlobalOfferAppliedProducts,
|
GlobalOfferAppliedProducts,
|
||||||
|
|
@ -332,11 +345,16 @@ const BSBillingTable3Pay = () => {
|
||||||
const [SelectedUPIPayOption, setSelectedUPIPayOption] = useState('Default');
|
const [SelectedUPIPayOption, setSelectedUPIPayOption] = useState('Default');
|
||||||
const [SelectedUpiOption, setSelectedUpiOption] = useState('');
|
const [SelectedUpiOption, setSelectedUpiOption] = useState('');
|
||||||
const [hold, setHold] = useState(false);
|
const [hold, setHold] = useState(false);
|
||||||
|
const [refundPayBtns, setRefundPayBtns] = useState([]);
|
||||||
|
const [refundPaySelected, setRefundPaySelected] = useState();
|
||||||
|
const [refundPaySelectedName, setRefundPaySelectedName] = useState(null);
|
||||||
|
const [currentOrderNetAmount, setCurrentOrderNetAmount] = useState(0);
|
||||||
|
const [previousNetAmount, setPreviousNetAmount] = useState(0);
|
||||||
const [addcustomer, setAddCustomer] = useState(false);
|
const [addcustomer, setAddCustomer] = useState(false);
|
||||||
const [PrintOrderDetails, setPrintOrderDetails] = useState([]);
|
const [PrintOrderDetails, setPrintOrderDetails] = useState([]);
|
||||||
const OrderCardDetail = useSelector(GlobalOrderCardDetails);
|
const OrderCardDetail = useSelector(GlobalOrderCardDetails);
|
||||||
const [customerPreviesOrders, setCustomerPreviesOrders] = useState(false);
|
const [customerPreviesOrders, setCustomerPreviesOrders] = useState(false);
|
||||||
|
|
||||||
console.log(OrderCardDetail, 'OrderCardDetail');
|
console.log(OrderCardDetail, 'OrderCardDetail');
|
||||||
//Total calculation
|
//Total calculation
|
||||||
const TotalItems = OrderCardDetail?.length;
|
const TotalItems = OrderCardDetail?.length;
|
||||||
|
|
@ -568,23 +586,43 @@ const BSBillingTable3Pay = () => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const filteredPayments =
|
||||||
|
previousOrderPayment?.filter(
|
||||||
|
p => p?.LastOrderTran === 'Y' && p?.AfterAdjustment != null && p?.AfterAdjustment !== '' && p?.AfterAdjustment
|
||||||
|
) || [];
|
||||||
|
|
||||||
|
const paymentsToUse =
|
||||||
|
filteredPayments.length > 0 ? filteredPayments : previousOrderPayment || [];
|
||||||
|
|
||||||
|
const totalPreviouspayment = paymentsToUse?.reduce(
|
||||||
|
(acc, payment) => acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const totalPreviousOfferAmount = previousOrderOfferDetails?.reduce(
|
||||||
|
(acc, offer) => acc + parseFloat(offer.OfferAmount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const previousNetAmount =
|
||||||
|
(totalPreviouspayment) || 0;
|
||||||
|
|
||||||
let withdiscTotal =
|
let withdiscTotal =
|
||||||
Total -
|
Total -
|
||||||
((OverAllSales || 0) +
|
((OverAllSales || 0) +
|
||||||
(OverAllEstimate || 0) +
|
(OverAllEstimate || 0) +
|
||||||
(Discount > 0 ? Discount : 0));
|
(Discount > 0 ? Discount : 0));
|
||||||
|
|
||||||
setTotalAmount(
|
const currentOrderNetAmount = formatAmount(
|
||||||
withdiscTotal >= 0
|
withdiscTotal >= 0
|
||||||
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
||||||
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
||||||
);
|
)
|
||||||
|
|
||||||
dispatch(
|
setTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount);
|
||||||
changeSummeryTotalAmount(
|
setCurrentOrderNetAmount(currentOrderNetAmount);
|
||||||
formatAmount(withdiscTotal > 0 ? withdiscTotal : Number(Total))
|
setPreviousNetAmount(previousNetAmount);
|
||||||
)
|
dispatch(changeSummeryTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount));
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
||||||
|
|
||||||
|
|
@ -693,6 +731,31 @@ const BSBillingTable3Pay = () => {
|
||||||
// }
|
// }
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (salesBillEdit) {
|
||||||
|
dispatch(getPaymentOptions()).unwrap();
|
||||||
|
}
|
||||||
|
}, [salesBillEdit]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
if (salesBillEdit) {
|
||||||
|
if (SelCustId) {
|
||||||
|
setRefundPayBtns(AllPaymentOptions);
|
||||||
|
setRefundPaySelected(AllPaymentOptions?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(AllPaymentOptions?.[0]?.ConfigName);
|
||||||
|
} else {
|
||||||
|
const withoutCustomer = AllPaymentOptions?.filter?.(
|
||||||
|
(item) => item?.ConfigName?.toLowerCase() !== 'credit'
|
||||||
|
);
|
||||||
|
setRefundPaySelected(withoutCustomer?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(withoutCustomer?.[0]?.ConfigName);
|
||||||
|
setRefundPayBtns(withoutCustomer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [AllPaymentOptions, SelCustId, salesBillEdit])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (UserType === 'Employee') {
|
if (UserType === 'Employee') {
|
||||||
fetchApi();
|
fetchApi();
|
||||||
|
|
@ -1424,6 +1487,10 @@ const BSBillingTable3Pay = () => {
|
||||||
const handleButtonClick = () => {
|
const handleButtonClick = () => {
|
||||||
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
||||||
UpiPayment();
|
UpiPayment();
|
||||||
|
} else if (salesBillEdit && currentOrderNetAmount < previousNetAmount && !refundPaySelected) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Please Select Refund Payment Method');
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? AddBookingDetails('Dine-In', false)
|
? AddBookingDetails('Dine-In', false)
|
||||||
|
|
@ -1705,6 +1772,11 @@ const BSBillingTable3Pay = () => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefundPaymentMode = (id, name) => {
|
||||||
|
setRefundPaySelected(id);
|
||||||
|
setRefundPaySelectedName(name);
|
||||||
|
}
|
||||||
|
|
||||||
const addUpiOption = async (id, name, UPIId) => {
|
const addUpiOption = async (id, name, UPIId) => {
|
||||||
await dispatch(changeUpiIDprint(UPIId));
|
await dispatch(changeUpiIDprint(UPIId));
|
||||||
await dispatch(changeUpiIDName(name));
|
await dispatch(changeUpiIDName(name));
|
||||||
|
|
@ -1912,6 +1984,9 @@ const BSBillingTable3Pay = () => {
|
||||||
// } else {
|
// } else {
|
||||||
dispatch(changeOrderCardDetails([]));
|
dispatch(changeOrderCardDetails([]));
|
||||||
// }
|
// }
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
dispatch(changeLoyaltyConsumedQuantities({}));
|
dispatch(changeLoyaltyConsumedQuantities({}));
|
||||||
dispatch(changeFullOfferAppliedProducts([]));
|
dispatch(changeFullOfferAppliedProducts([]));
|
||||||
dispatch(ChangeFullFreeProductList([]));
|
dispatch(ChangeFullFreeProductList([]));
|
||||||
|
|
@ -1927,6 +2002,8 @@ const BSBillingTable3Pay = () => {
|
||||||
setPaybtnnameselected(PaymentOptionsModeName);
|
setPaybtnnameselected(PaymentOptionsModeName);
|
||||||
setPaybtnselected(PaymentOptionsModeId);
|
setPaybtnselected(PaymentOptionsModeId);
|
||||||
setQrCode(false);
|
setQrCode(false);
|
||||||
|
setCurrentOrderNetAmount(0);
|
||||||
|
setPreviousNetAmount(0);
|
||||||
setUpinotSelected(false);
|
setUpinotSelected(false);
|
||||||
getHolddata();
|
getHolddata();
|
||||||
if (defaultBookingType === 'Both') {
|
if (defaultBookingType === 'Both') {
|
||||||
|
|
@ -2239,7 +2316,7 @@ const BSBillingTable3Pay = () => {
|
||||||
SalesPaymentType: 'normal',
|
SalesPaymentType: 'normal',
|
||||||
PaymentDetail: [
|
PaymentDetail: [
|
||||||
{
|
{
|
||||||
PaymentType:
|
PaymentType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? refundPaySelected :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi'
|
Paybtnnameselected?.toLowerCase() === 'upi'
|
||||||
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
||||||
? PaymentDeviceUPI?.[0]?.ModeId
|
? PaymentDeviceUPI?.[0]?.ModeId
|
||||||
|
|
@ -2253,14 +2330,14 @@ const BSBillingTable3Pay = () => {
|
||||||
: paybtnselected
|
: paybtnselected
|
||||||
? paybtnselected
|
? paybtnselected
|
||||||
: null,
|
: null,
|
||||||
Amount: Math.round(TotalAmount),
|
Amount: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? previousNetAmount - currentOrderNetAmount : Math.round(TotalAmount),
|
||||||
MerchantId:
|
MerchantId: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'business'
|
SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantId
|
?.MerchantId
|
||||||
: null,
|
: null,
|
||||||
PaymentOptionType:
|
PaymentOptionType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) && (refundPaySelectedName?.toLowerCase() === 'cash' || refundPaySelectedName?.toLowerCase() === 'credit') ? 'PC' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2274,7 +2351,7 @@ const BSBillingTable3Pay = () => {
|
||||||
? 'BU'
|
? 'BU'
|
||||||
: SelectedUPIPayOption
|
: SelectedUPIPayOption
|
||||||
: null,
|
: null,
|
||||||
ModeOfPayment:
|
ModeOfPayment: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
||||||
?.UPIDetailId
|
?.UPIDetailId
|
||||||
|
|
@ -2282,7 +2359,7 @@ const BSBillingTable3Pay = () => {
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantUPIId
|
?.MerchantUPIId
|
||||||
: null,
|
: null,
|
||||||
AccountDtl:
|
AccountDtl: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? [] :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||||
|
|
@ -2299,7 +2376,7 @@ const BSBillingTable3Pay = () => {
|
||||||
SelectedCardOption?.toLowerCase() === 'pg')
|
SelectedCardOption?.toLowerCase() === 'pg')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||||
: [],
|
: [],
|
||||||
PaymentStatus:
|
PaymentStatus: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? 'S' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'S'
|
? 'S'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2308,8 +2385,8 @@ const BSBillingTable3Pay = () => {
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
Debit: 0,
|
Debit: (salesBillEdit && currentOrderNetAmount < previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(previousNetAmount - currentOrderNetAmount) : 0,
|
||||||
Credit:
|
Credit: salesBillEdit ? (currentOrderNetAmount > previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(TotalAmount) : 0 :
|
||||||
Paybtnnameselected?.toLowerCase() === 'credit'
|
Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
? Math.round(TotalAmount)
|
? Math.round(TotalAmount)
|
||||||
: 0,
|
: 0,
|
||||||
|
|
@ -2519,7 +2596,12 @@ const BSBillingTable3Pay = () => {
|
||||||
putdata['PaymentType'] = !pay && '';
|
putdata['PaymentType'] = !pay && '';
|
||||||
putdata['PrintType'] = 'Y';
|
putdata['PrintType'] = 'Y';
|
||||||
}
|
}
|
||||||
let response = await dispatch(PutBookingData(putdata)).unwrap();
|
let response = null;
|
||||||
|
if (salesBillEdit) {
|
||||||
|
response = await dispatch(putSalesBillEdit(putdata)).unwrap();
|
||||||
|
} else {
|
||||||
|
response = await dispatch(PutBookingData(putdata)).unwrap();
|
||||||
|
}
|
||||||
if (value !== 'Unpaid') {
|
if (value !== 'Unpaid') {
|
||||||
if (response?.data?.statusCode == 1) {
|
if (response?.data?.statusCode == 1) {
|
||||||
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
|
|
@ -3218,7 +3300,7 @@ const BSBillingTable3Pay = () => {
|
||||||
};
|
};
|
||||||
// split payments
|
// split payments
|
||||||
const SplitPaymentOpen = () => {
|
const SplitPaymentOpen = () => {
|
||||||
if (OrderCardDetail?.length > 0) {
|
if (OrderCardDetail?.length > 0 && TotalAmount > 0) {
|
||||||
const updatedData = {
|
const updatedData = {
|
||||||
userData: OrderCardDetail,
|
userData: OrderCardDetail,
|
||||||
ExtraCharges: GlobalExtraCharge,
|
ExtraCharges: GlobalExtraCharge,
|
||||||
|
|
@ -3228,6 +3310,11 @@ const BSBillingTable3Pay = () => {
|
||||||
setFailedOrderData(updatedData);
|
setFailedOrderData(updatedData);
|
||||||
setSplitpayment(true);
|
setSplitpayment(true);
|
||||||
} else {
|
} else {
|
||||||
|
if (TotalAmount <= 0) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Cannot split when total amount is zero or less');
|
||||||
|
return;
|
||||||
|
}
|
||||||
setMessageType('warning');
|
setMessageType('warning');
|
||||||
setMessageData('Please Select the Product');
|
setMessageData('Please Select the Product');
|
||||||
}
|
}
|
||||||
|
|
@ -3954,7 +4041,7 @@ const BSBillingTable3Pay = () => {
|
||||||
: 1,
|
: 1,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{paybtns?.length > 0 ? (
|
{paybtns?.length > 0 && (currentOrderNetAmount >= previousNetAmount) ? (
|
||||||
paybtns?.map((payment) => (
|
paybtns?.map((payment) => (
|
||||||
<div className="Table3-cash">
|
<div className="Table3-cash">
|
||||||
<button
|
<button
|
||||||
|
|
@ -4035,6 +4122,42 @@ const BSBillingTable3Pay = () => {
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
|
) : (currentOrderNetAmount < previousNetAmount && salesBillEdit && refundPayBtns.length > 0) ? (
|
||||||
|
refundPayBtns.map((payment) => (
|
||||||
|
<div className="Table3-cash">
|
||||||
|
<button
|
||||||
|
className={
|
||||||
|
refundPaySelected === payment.ConfigId &&
|
||||||
|
(UpinotSelected || CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode-notupisel'
|
||||||
|
: refundPaySelected === payment.ConfigId &&
|
||||||
|
(!UpinotSelected || !CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode'
|
||||||
|
: 'Btn-payment-mode-sel'
|
||||||
|
}
|
||||||
|
style={{
|
||||||
|
fontFamily: FontFamily['para'],
|
||||||
|
position: 'relative',
|
||||||
|
animation: blink
|
||||||
|
? 'blink-animation 0.5s infinite alternate'
|
||||||
|
: 'none',
|
||||||
|
}}
|
||||||
|
onClick={() => handleRefundPaymentMode(payment?.ConfigId, payment?.ConfigName)}
|
||||||
|
>
|
||||||
|
{/* {UpiOption === "" && payment?.ModeName?.toLowerCase() === "upi" && <p> UPI</p>} */}
|
||||||
|
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
columnGap: '0.5rem',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{payment.ConfigName}
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
))
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
onClick={handlepaymentoptions}
|
onClick={handlepaymentoptions}
|
||||||
|
|
@ -4276,8 +4399,9 @@ const BSBillingTable3Pay = () => {
|
||||||
OrderCardDetail?.length > 0 &&
|
OrderCardDetail?.length > 0 &&
|
||||||
paybtnselected &&
|
paybtnselected &&
|
||||||
CheckBookingStatus != 'Close'
|
CheckBookingStatus != 'Close'
|
||||||
? !OrderStatus
|
? !OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ?
|
||||||
? 'BSBillingTable3-paybtn'
|
'BSBillingTable3-paybtn'
|
||||||
|
: 'BSBillingTable3-paybtn'
|
||||||
: 'BSBillingTable3-paybtn Order'
|
: 'BSBillingTable3-paybtn Order'
|
||||||
: 'BSBillingTable3-paybtn-deactive'
|
: 'BSBillingTable3-paybtn-deactive'
|
||||||
}
|
}
|
||||||
|
|
@ -4292,7 +4416,7 @@ const BSBillingTable3Pay = () => {
|
||||||
}
|
}
|
||||||
//dhana
|
//dhana
|
||||||
>
|
>
|
||||||
{!OrderStatus ? (
|
{!OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ? <p className="Table4-Order">Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</p> : (
|
||||||
<>
|
<>
|
||||||
<p style={{ fontFamily: FontFamily['head'] }}>
|
<p style={{ fontFamily: FontFamily['head'] }}>
|
||||||
{' '}
|
{' '}
|
||||||
|
|
@ -4504,7 +4628,10 @@ const BSBillingTable3Pay = () => {
|
||||||
SplitPaymentModal={Splitpayment}
|
SplitPaymentModal={Splitpayment}
|
||||||
handlesplitpaymentclose={handlesplitpaymentclose}
|
handlesplitpaymentclose={handlesplitpaymentclose}
|
||||||
TotalNetAmount={
|
TotalNetAmount={
|
||||||
OrderType === 'Failed' ? FailedTotalAmt : Math.round(TotalAmount)
|
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)))
|
||||||
}
|
}
|
||||||
failedOrderData={failedOrderData}
|
failedOrderData={failedOrderData}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,14 @@ import {
|
||||||
changeCurrentOrderId,
|
changeCurrentOrderId,
|
||||||
GlobalCombocarddata,
|
GlobalCombocarddata,
|
||||||
getCreditCustomer,
|
getCreditCustomer,
|
||||||
|
GlobalSalesBillEdit,
|
||||||
|
GlobalPreviousOrderPayment,
|
||||||
|
GlobalPreviousOrderOfferDetails,
|
||||||
|
GlobalpaymentOptionData,
|
||||||
|
putSalesBillEdit,
|
||||||
|
changeBillEditingMode,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
||||||
import {
|
import {
|
||||||
globalExtraTotalAmount,
|
globalExtraTotalAmount,
|
||||||
|
|
@ -231,6 +239,10 @@ const BSBilling4Payment = () => {
|
||||||
);
|
);
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||||
|
const previousOrderPayment = useSelector(GlobalPreviousOrderPayment);
|
||||||
|
const previousOrderOfferDetails = useSelector(GlobalPreviousOrderOfferDetails);
|
||||||
|
const AllPaymentOptions = useSelector(GlobalpaymentOptionData);
|
||||||
const FreeProdList = useSelector(GlobalFreeProdList);
|
const FreeProdList = useSelector(GlobalFreeProdList);
|
||||||
const offerAppliedProducts = useSelector(GlobalOfferAppliedProducts);
|
const offerAppliedProducts = useSelector(GlobalOfferAppliedProducts);
|
||||||
// const applyOffer = useApplyOfferto_CardDetail();
|
// const applyOffer = useApplyOfferto_CardDetail();
|
||||||
|
|
@ -329,6 +341,11 @@ const BSBilling4Payment = () => {
|
||||||
const UserType = SessionData?.UserType;
|
const UserType = SessionData?.UserType;
|
||||||
const AuthToken = SessionData?.AuthToken;
|
const AuthToken = SessionData?.AuthToken;
|
||||||
const SessionMobileNo = SessionData?.SessionMobileNo;
|
const SessionMobileNo = SessionData?.SessionMobileNo;
|
||||||
|
const [refundPayBtns, setRefundPayBtns] = useState([]);
|
||||||
|
const [refundPaySelected, setRefundPaySelected] = useState();
|
||||||
|
const [refundPaySelectedName, setRefundPaySelectedName] = useState(null);
|
||||||
|
const [currentOrderNetAmount, setCurrentOrderNetAmount] = useState(0);
|
||||||
|
const [previousNetAmount, setPreviousNetAmount] = useState(0);
|
||||||
const [PaymentgatewayCard, setPaymentgatewayCard] = useState([]);
|
const [PaymentgatewayCard, setPaymentgatewayCard] = useState([]);
|
||||||
const [PaymentDeviceCard, setPaymentDeviceCard] = useState([]);
|
const [PaymentDeviceCard, setPaymentDeviceCard] = useState([]);
|
||||||
const [PaymentgatewayUPI, setPaymentgatewayUPI] = useState([]);
|
const [PaymentgatewayUPI, setPaymentgatewayUPI] = useState([]);
|
||||||
|
|
@ -506,6 +523,32 @@ const BSBilling4Payment = () => {
|
||||||
const Data1 = { AppId, CompId, BranchId };
|
const Data1 = { AppId, CompId, BranchId };
|
||||||
dispatch(getPrintSelectionComponentData(Data1)).unwrap();
|
dispatch(getPrintSelectionComponentData(Data1)).unwrap();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (salesBillEdit) {
|
||||||
|
dispatch(getPaymentOptions()).unwrap();
|
||||||
|
}
|
||||||
|
}, [salesBillEdit]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
if (salesBillEdit) {
|
||||||
|
if (SelCustId) {
|
||||||
|
setRefundPayBtns(AllPaymentOptions);
|
||||||
|
setRefundPaySelected(AllPaymentOptions?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(AllPaymentOptions?.[0]?.ConfigName);
|
||||||
|
} else {
|
||||||
|
const withoutCustomer = AllPaymentOptions?.filter?.(
|
||||||
|
(item) => item?.ConfigName?.toLowerCase() !== 'credit'
|
||||||
|
);
|
||||||
|
setRefundPaySelected(withoutCustomer?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(withoutCustomer?.[0]?.ConfigName);
|
||||||
|
setRefundPayBtns(withoutCustomer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [AllPaymentOptions, SelCustId, salesBillEdit])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchCreditCustomer = async () => {
|
const fetchCreditCustomer = async () => {
|
||||||
const selectedMode = paybtns?.find(
|
const selectedMode = paybtns?.find(
|
||||||
|
|
@ -602,25 +645,43 @@ const BSBilling4Payment = () => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const filteredPayments =
|
||||||
|
previousOrderPayment?.filter(
|
||||||
|
p => p?.LastOrderTran === 'Y' && p?.AfterAdjustment != null && p?.AfterAdjustment !== '' && p?.AfterAdjustment
|
||||||
|
) || [];
|
||||||
|
|
||||||
|
const paymentsToUse =
|
||||||
|
filteredPayments.length > 0 ? filteredPayments : previousOrderPayment || [];
|
||||||
|
|
||||||
|
const totalPreviouspayment = paymentsToUse?.reduce(
|
||||||
|
(acc, payment) => acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const totalPreviousOfferAmount = previousOrderOfferDetails?.reduce(
|
||||||
|
(acc, offer) => acc + parseFloat(offer.OfferAmount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const previousNetAmount =
|
||||||
|
(totalPreviouspayment) || 0;
|
||||||
|
|
||||||
let withdiscTotal =
|
let withdiscTotal =
|
||||||
Total -
|
Total -
|
||||||
((OverAllSales || 0) +
|
((OverAllSales || 0) +
|
||||||
(OverAllEstimate || 0) +
|
(OverAllEstimate || 0) +
|
||||||
(Discount > 0 ? Discount : 0));
|
(Discount > 0 ? Discount : 0));
|
||||||
|
|
||||||
setTotalAmount(
|
const currentOrderNetAmount = formatAmount(
|
||||||
formatAmount(
|
withdiscTotal >= 0
|
||||||
withdiscTotal >= 0
|
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
||||||
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
||||||
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
)
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(
|
setTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount);
|
||||||
changeSummeryTotalAmount(
|
setCurrentOrderNetAmount(currentOrderNetAmount);
|
||||||
formatAmount(withdiscTotal > 0 ? withdiscTotal : Number(Total))
|
setPreviousNetAmount(previousNetAmount);
|
||||||
)
|
dispatch(changeSummeryTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount));
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
||||||
|
|
||||||
|
|
@ -1307,6 +1368,10 @@ const BSBilling4Payment = () => {
|
||||||
const handleButtonClick = () => {
|
const handleButtonClick = () => {
|
||||||
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
||||||
UpiPayment();
|
UpiPayment();
|
||||||
|
} else if (salesBillEdit && currentOrderNetAmount < previousNetAmount && !refundPaySelected) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Please Select Refund Payment Method');
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? AddBookingDetails('Dine-In', false)
|
? AddBookingDetails('Dine-In', false)
|
||||||
|
|
@ -1610,6 +1675,12 @@ const BSBilling4Payment = () => {
|
||||||
setCardoptionnotSelected(false);
|
setCardoptionnotSelected(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefundPaymentMode = (id, name) => {
|
||||||
|
setRefundPaySelected(id);
|
||||||
|
setRefundPaySelectedName(name);
|
||||||
|
}
|
||||||
|
|
||||||
const addUpiOption = async (id, name, UPIId) => {
|
const addUpiOption = async (id, name, UPIId) => {
|
||||||
await dispatch(changeUpiIDprint(UPIId));
|
await dispatch(changeUpiIDprint(UPIId));
|
||||||
await dispatch(changeUpiIDName(name));
|
await dispatch(changeUpiIDName(name));
|
||||||
|
|
@ -1806,6 +1877,9 @@ const BSBilling4Payment = () => {
|
||||||
// } else {
|
// } else {
|
||||||
dispatch(changeOrderCardDetails([]));
|
dispatch(changeOrderCardDetails([]));
|
||||||
// }
|
// }
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
dispatch(changeLoyaltyConsumedQuantities({}));
|
dispatch(changeLoyaltyConsumedQuantities({}));
|
||||||
dispatch(changeFullOfferAppliedProducts([]));
|
dispatch(changeFullOfferAppliedProducts([]));
|
||||||
dispatch(ChangeFullFreeProductList([]));
|
dispatch(ChangeFullFreeProductList([]));
|
||||||
|
|
@ -1821,6 +1895,8 @@ const BSBilling4Payment = () => {
|
||||||
setPaybtnnameselected(PaymentOptionsModeName);
|
setPaybtnnameselected(PaymentOptionsModeName);
|
||||||
setPaybtnselected(PaymentOptionsModeId);
|
setPaybtnselected(PaymentOptionsModeId);
|
||||||
setQrCode(false);
|
setQrCode(false);
|
||||||
|
setCurrentOrderNetAmount(0);
|
||||||
|
setPreviousNetAmount(0);
|
||||||
setUpinotSelected(false);
|
setUpinotSelected(false);
|
||||||
getHolddata();
|
getHolddata();
|
||||||
if (defaultBookingType === 'Both') {
|
if (defaultBookingType === 'Both') {
|
||||||
|
|
@ -2123,7 +2199,7 @@ const BSBilling4Payment = () => {
|
||||||
SalesPaymentType: 'normal',
|
SalesPaymentType: 'normal',
|
||||||
PaymentDetail: [
|
PaymentDetail: [
|
||||||
{
|
{
|
||||||
PaymentType:
|
PaymentType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? refundPaySelected :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi'
|
Paybtnnameselected?.toLowerCase() === 'upi'
|
||||||
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
||||||
? PaymentDeviceUPI?.[0]?.ModeId
|
? PaymentDeviceUPI?.[0]?.ModeId
|
||||||
|
|
@ -2137,14 +2213,14 @@ const BSBilling4Payment = () => {
|
||||||
: paybtnselected
|
: paybtnselected
|
||||||
? paybtnselected
|
? paybtnselected
|
||||||
: null,
|
: null,
|
||||||
Amount: Math.round(TotalAmount),
|
Amount: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? previousNetAmount - currentOrderNetAmount : Math.round(TotalAmount),
|
||||||
MerchantId:
|
MerchantId: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'business'
|
SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantId
|
?.MerchantId
|
||||||
: null,
|
: null,
|
||||||
PaymentOptionType:
|
PaymentOptionType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) && (refundPaySelectedName?.toLowerCase() === 'cash' || refundPaySelectedName?.toLowerCase() === 'credit') ? 'PC' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2158,7 +2234,7 @@ const BSBilling4Payment = () => {
|
||||||
? 'BU'
|
? 'BU'
|
||||||
: SelectedUPIPayOption
|
: SelectedUPIPayOption
|
||||||
: null,
|
: null,
|
||||||
ModeOfPayment:
|
ModeOfPayment: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
||||||
?.UPIDetailId
|
?.UPIDetailId
|
||||||
|
|
@ -2166,7 +2242,7 @@ const BSBilling4Payment = () => {
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantUPIId
|
?.MerchantUPIId
|
||||||
: null,
|
: null,
|
||||||
AccountDtl:
|
AccountDtl: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? [] :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||||
|
|
@ -2183,7 +2259,7 @@ const BSBilling4Payment = () => {
|
||||||
SelectedCardOption?.toLowerCase() === 'pg')
|
SelectedCardOption?.toLowerCase() === 'pg')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||||
: [],
|
: [],
|
||||||
PaymentStatus:
|
PaymentStatus: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? 'S' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'S'
|
? 'S'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2192,8 +2268,8 @@ const BSBilling4Payment = () => {
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
Debit: 0,
|
Debit: (salesBillEdit && currentOrderNetAmount < previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(previousNetAmount - currentOrderNetAmount) : 0,
|
||||||
Credit:
|
Credit: salesBillEdit ? (currentOrderNetAmount > previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(TotalAmount) : 0 :
|
||||||
Paybtnnameselected?.toLowerCase() === 'credit'
|
Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
? Math.round(TotalAmount)
|
? Math.round(TotalAmount)
|
||||||
: 0,
|
: 0,
|
||||||
|
|
@ -2402,7 +2478,12 @@ const BSBilling4Payment = () => {
|
||||||
putdata['PrintType'] = 'Y';
|
putdata['PrintType'] = 'Y';
|
||||||
}
|
}
|
||||||
console.log(putdata, 'putdataputdata');
|
console.log(putdata, 'putdataputdata');
|
||||||
let response = await dispatch(PutBookingData(putdata)).unwrap();
|
let response = null;
|
||||||
|
if (salesBillEdit) {
|
||||||
|
response = await dispatch(putSalesBillEdit(putdata)).unwrap();
|
||||||
|
} else {
|
||||||
|
response = await dispatch(PutBookingData(putdata)).unwrap();
|
||||||
|
}
|
||||||
let PayatCounterfilter = response?.data?.PaymentOrderDtl?.filter(
|
let PayatCounterfilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
(item) => item?.PaymentOptionType?.toLowerCase() === 'pc'
|
(item) => item?.PaymentOptionType?.toLowerCase() === 'pc'
|
||||||
);
|
);
|
||||||
|
|
@ -3061,7 +3142,7 @@ const BSBilling4Payment = () => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const SplitPaymentOpen = () => {
|
const SplitPaymentOpen = () => {
|
||||||
if (OrderCardDetail?.length > 0) {
|
if (OrderCardDetail?.length > 0 && TotalAmount > 0) {
|
||||||
const updatedData = {
|
const updatedData = {
|
||||||
userData: OrderCardDetail,
|
userData: OrderCardDetail,
|
||||||
ExtraCharges: GlobalExtraCharge,
|
ExtraCharges: GlobalExtraCharge,
|
||||||
|
|
@ -3071,6 +3152,11 @@ const BSBilling4Payment = () => {
|
||||||
setFailedOrderData(updatedData);
|
setFailedOrderData(updatedData);
|
||||||
setSplitpayment(true);
|
setSplitpayment(true);
|
||||||
} else {
|
} else {
|
||||||
|
if (TotalAmount <= 0) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Cannot split when total amount is zero or less');
|
||||||
|
return;
|
||||||
|
}
|
||||||
setMessageType('warning');
|
setMessageType('warning');
|
||||||
setMessageData('Please Select the Product');
|
setMessageData('Please Select the Product');
|
||||||
}
|
}
|
||||||
|
|
@ -3936,7 +4022,7 @@ const BSBilling4Payment = () => {
|
||||||
: 1,
|
: 1,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{paybtns?.length > 0 ? (
|
{paybtns?.length > 0 && (currentOrderNetAmount >= previousNetAmount) ? (
|
||||||
paybtns?.map((payment) => (
|
paybtns?.map((payment) => (
|
||||||
<div className="Table3-cash">
|
<div className="Table3-cash">
|
||||||
<button
|
<button
|
||||||
|
|
@ -4016,6 +4102,42 @@ const BSBilling4Payment = () => {
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
|
) : (currentOrderNetAmount < previousNetAmount && salesBillEdit && refundPayBtns.length > 0) ? (
|
||||||
|
refundPayBtns.map((payment) => (
|
||||||
|
<div className="Table3-cash">
|
||||||
|
<button
|
||||||
|
className={
|
||||||
|
refundPaySelected === payment.ConfigId &&
|
||||||
|
(UpinotSelected || CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode-notupisel'
|
||||||
|
: refundPaySelected === payment.ConfigId &&
|
||||||
|
(!UpinotSelected || !CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode'
|
||||||
|
: 'Btn-payment-mode-sel'
|
||||||
|
}
|
||||||
|
style={{
|
||||||
|
fontFamily: FontFamily['para'],
|
||||||
|
position: 'relative',
|
||||||
|
animation: blink
|
||||||
|
? 'blink-animation 0.5s infinite alternate'
|
||||||
|
: 'none',
|
||||||
|
}}
|
||||||
|
onClick={() => handleRefundPaymentMode(payment?.ConfigId, payment?.ConfigName)}
|
||||||
|
>
|
||||||
|
{/* {UpiOption === "" && payment?.ModeName?.toLowerCase() === "upi" && <p> UPI</p>} */}
|
||||||
|
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
columnGap: '0.5rem',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{payment.ConfigName}
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
))
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
onClick={handlepaymentoptions}
|
onClick={handlepaymentoptions}
|
||||||
|
|
@ -4248,11 +4370,12 @@ const BSBilling4Payment = () => {
|
||||||
addnewAccess
|
addnewAccess
|
||||||
? 'Table4-Btn-final-price-disabled'
|
? 'Table4-Btn-final-price-disabled'
|
||||||
: FirstPaymentclick === false &&
|
: FirstPaymentclick === false &&
|
||||||
OrderCardDetail?.length > 0 &&
|
OrderCardDetail?.length > 0 &&
|
||||||
paybtnselected &&
|
paybtnselected &&
|
||||||
CheckBookingStatus != 'Close'
|
CheckBookingStatus != 'Close'
|
||||||
? !OrderStatus
|
? !OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ?
|
||||||
? 'Table4-Btn-final-price'
|
'Table4-Btn-final-price'
|
||||||
|
: 'Table4-Btn-final-price'
|
||||||
: 'Table4-Btn-final-price order'
|
: 'Table4-Btn-final-price order'
|
||||||
: 'Table4-Btn-final-price-disabled'
|
: 'Table4-Btn-final-price-disabled'
|
||||||
}
|
}
|
||||||
|
|
@ -4265,7 +4388,7 @@ const BSBilling4Payment = () => {
|
||||||
handleButtonClick
|
handleButtonClick
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{!OrderStatus ? (
|
{!OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ? <p className="Table4-Order">Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</p> : (
|
||||||
<div className="Table4-fullrate">
|
<div className="Table4-fullrate">
|
||||||
<div
|
<div
|
||||||
className="Table4-rate"
|
className="Table4-rate"
|
||||||
|
|
@ -4489,7 +4612,10 @@ const BSBilling4Payment = () => {
|
||||||
SplitPaymentModal={Splitpayment}
|
SplitPaymentModal={Splitpayment}
|
||||||
handlesplitpaymentclose={handlesplitpaymentclose}
|
handlesplitpaymentclose={handlesplitpaymentclose}
|
||||||
TotalNetAmount={
|
TotalNetAmount={
|
||||||
OrderType === 'Failed' ? FailedTotalAmt : Math.round(TotalAmount)
|
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)))
|
||||||
}
|
}
|
||||||
failedOrderData={failedOrderData}
|
failedOrderData={failedOrderData}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,15 @@ import {
|
||||||
changeCurrentOrderId,
|
changeCurrentOrderId,
|
||||||
GlobalCombocarddata,
|
GlobalCombocarddata,
|
||||||
getCreditCustomer,
|
getCreditCustomer,
|
||||||
|
GlobalSalesBillEdit,
|
||||||
|
GlobalPreviousOrderPayment,
|
||||||
|
GlobalPreviousOrderOfferDetails,
|
||||||
|
GlobalpaymentOptionData,
|
||||||
|
getPaymentOptions,
|
||||||
|
putSalesBillEdit,
|
||||||
|
changeBillEditingMode,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
||||||
import { ChangeTotalAmount } from '../../../../../Features/ExteraCharges/ExtraCharges.js'; //Shifayth Date:27/12/2023
|
import { ChangeTotalAmount } from '../../../../../Features/ExteraCharges/ExtraCharges.js'; //Shifayth Date:27/12/2023
|
||||||
import {
|
import {
|
||||||
|
|
@ -237,6 +246,10 @@ const BSBillingTable5 = () => {
|
||||||
const UserType = SessionData?.UserType;
|
const UserType = SessionData?.UserType;
|
||||||
const AuthToken = SessionData?.AuthToken;
|
const AuthToken = SessionData?.AuthToken;
|
||||||
const SessionMobileNo = SessionData?.SessionMobileNo;
|
const SessionMobileNo = SessionData?.SessionMobileNo;
|
||||||
|
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||||
|
const previousOrderPayment = useSelector(GlobalPreviousOrderPayment);
|
||||||
|
const previousOrderOfferDetails = useSelector(GlobalPreviousOrderOfferDetails);
|
||||||
|
const AllPaymentOptions = useSelector(GlobalpaymentOptionData);
|
||||||
const Discount = useSelector(GlobalOverAllOfferAmt);
|
const Discount = useSelector(GlobalOverAllOfferAmt);
|
||||||
const FreeProdList = useSelector(GlobalFreeProdList);
|
const FreeProdList = useSelector(GlobalFreeProdList);
|
||||||
const offerAppliedProducts = useSelector(GlobalOfferAppliedProducts);
|
const offerAppliedProducts = useSelector(GlobalOfferAppliedProducts);
|
||||||
|
|
@ -317,6 +330,11 @@ const BSBillingTable5 = () => {
|
||||||
const printDatas = useSelector(GlobalprintDatas);
|
const printDatas = useSelector(GlobalprintDatas);
|
||||||
const PrinterDetails = useSelector(GlobalPrinterMappingDtls);
|
const PrinterDetails = useSelector(GlobalPrinterMappingDtls);
|
||||||
|
|
||||||
|
const [refundPayBtns, setRefundPayBtns] = useState([]);
|
||||||
|
const [refundPaySelected, setRefundPaySelected] = useState();
|
||||||
|
const [refundPaySelectedName, setRefundPaySelectedName] = useState(null);
|
||||||
|
const [currentOrderNetAmount, setCurrentOrderNetAmount] = useState(0);
|
||||||
|
const [previousNetAmount, setPreviousNetAmount] = useState(0);
|
||||||
const [paybtnselected, setPaybtnselected] = useState();
|
const [paybtnselected, setPaybtnselected] = useState();
|
||||||
const [Paybtnnameselected, setPaybtnnameselected] = useState();
|
const [Paybtnnameselected, setPaybtnnameselected] = useState();
|
||||||
const [SelectedBookingType, setSelectedBookingType] = useState(null);
|
const [SelectedBookingType, setSelectedBookingType] = useState(null);
|
||||||
|
|
@ -467,6 +485,31 @@ const BSBillingTable5 = () => {
|
||||||
// for customised invoice number
|
// for customised invoice number
|
||||||
const { invoiceDate, clearInvoiceDate } = useDateStore();
|
const { invoiceDate, clearInvoiceDate } = useDateStore();
|
||||||
const CurrentOrderId = useSelector(GlobalCurrentOrderId);
|
const CurrentOrderId = useSelector(GlobalCurrentOrderId);
|
||||||
|
useEffect(() => {
|
||||||
|
if (salesBillEdit) {
|
||||||
|
dispatch(getPaymentOptions()).unwrap();
|
||||||
|
}
|
||||||
|
}, [salesBillEdit]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
if (salesBillEdit) {
|
||||||
|
if (SelCustId) {
|
||||||
|
setRefundPayBtns(AllPaymentOptions);
|
||||||
|
setRefundPaySelected(AllPaymentOptions?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(AllPaymentOptions?.[0]?.ConfigName);
|
||||||
|
} else {
|
||||||
|
const withoutCustomer = AllPaymentOptions?.filter?.(
|
||||||
|
(item) => item?.ConfigName?.toLowerCase() !== 'credit'
|
||||||
|
);
|
||||||
|
setRefundPaySelected(withoutCustomer?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(withoutCustomer?.[0]?.ConfigName);
|
||||||
|
setRefundPayBtns(withoutCustomer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [AllPaymentOptions, SelCustId, salesBillEdit])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (
|
if (
|
||||||
OrderCardDetail?.length === 1 &&
|
OrderCardDetail?.length === 1 &&
|
||||||
|
|
@ -590,25 +633,44 @@ const BSBillingTable5 = () => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const filteredPayments =
|
||||||
|
previousOrderPayment?.filter(
|
||||||
|
p => p?.LastOrderTran === 'Y' && p?.AfterAdjustment != null && p?.AfterAdjustment !== '' && p?.AfterAdjustment
|
||||||
|
) || [];
|
||||||
|
|
||||||
|
const paymentsToUse =
|
||||||
|
filteredPayments.length > 0 ? filteredPayments : previousOrderPayment || [];
|
||||||
|
|
||||||
|
const totalPreviouspayment = paymentsToUse?.reduce(
|
||||||
|
(acc, payment) => acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const totalPreviousOfferAmount = previousOrderOfferDetails?.reduce(
|
||||||
|
(acc, offer) => acc + parseFloat(offer.OfferAmount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const previousNetAmount =
|
||||||
|
(totalPreviouspayment) || 0;
|
||||||
|
|
||||||
let withdiscTotal =
|
let withdiscTotal =
|
||||||
Total -
|
Total -
|
||||||
((OverAllSales || 0) +
|
((OverAllSales || 0) +
|
||||||
(OverAllEstimate || 0) +
|
(OverAllEstimate || 0) +
|
||||||
(Discount > 0 ? Discount : 0));
|
(Discount > 0 ? Discount : 0));
|
||||||
|
|
||||||
setTotalAmount(
|
const currentOrderNetAmount = formatAmount(
|
||||||
formatAmount(
|
withdiscTotal >= 0
|
||||||
withdiscTotal >= 0
|
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
||||||
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
||||||
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
)
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(
|
setTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount);
|
||||||
changeSummeryTotalAmount(
|
setCurrentOrderNetAmount(currentOrderNetAmount);
|
||||||
formatAmount(withdiscTotal > 0 ? withdiscTotal : Number(Total))
|
setPreviousNetAmount(previousNetAmount);
|
||||||
)
|
dispatch(changeSummeryTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount));
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
||||||
|
|
||||||
|
|
@ -845,6 +907,10 @@ const BSBillingTable5 = () => {
|
||||||
const handleButtonClick = () => {
|
const handleButtonClick = () => {
|
||||||
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
||||||
UpiPayment();
|
UpiPayment();
|
||||||
|
} else if (salesBillEdit && currentOrderNetAmount < previousNetAmount && !refundPaySelected) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Please Select Refund Payment Method');
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? AddBookingDetails('Dine-In', false)
|
? AddBookingDetails('Dine-In', false)
|
||||||
|
|
@ -1680,6 +1746,12 @@ const BSBillingTable5 = () => {
|
||||||
setCardoptionnotSelected(false);
|
setCardoptionnotSelected(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefundPaymentMode = (id, name) => {
|
||||||
|
setRefundPaySelected(id);
|
||||||
|
setRefundPaySelectedName(name);
|
||||||
|
}
|
||||||
|
|
||||||
const addUpiOption = async (id, name, UPIId) => {
|
const addUpiOption = async (id, name, UPIId) => {
|
||||||
await dispatch(changeUpiIDprint(UPIId));
|
await dispatch(changeUpiIDprint(UPIId));
|
||||||
await dispatch(changeUpiIDName(name));
|
await dispatch(changeUpiIDName(name));
|
||||||
|
|
@ -1821,6 +1893,9 @@ const BSBillingTable5 = () => {
|
||||||
} else {
|
} else {
|
||||||
dispatch(changeOrderCardDetails([]));
|
dispatch(changeOrderCardDetails([]));
|
||||||
}
|
}
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
dispatch(changeTipAmount(0));
|
dispatch(changeTipAmount(0));
|
||||||
dispatch(changeLoyaltyConsumedQuantities({}));
|
dispatch(changeLoyaltyConsumedQuantities({}));
|
||||||
await dispatch(ChangeTotalAmount([]));
|
await dispatch(ChangeTotalAmount([]));
|
||||||
|
|
@ -1837,6 +1912,8 @@ const BSBillingTable5 = () => {
|
||||||
setPaybtnselected(PaymentOptionsModeId);
|
setPaybtnselected(PaymentOptionsModeId);
|
||||||
setQrCode(false);
|
setQrCode(false);
|
||||||
setUpinotSelected(false);
|
setUpinotSelected(false);
|
||||||
|
setCurrentOrderNetAmount(0);
|
||||||
|
setPreviousNetAmount(0);
|
||||||
getHolddata();
|
getHolddata();
|
||||||
if (defaultBookingType === 'Both') {
|
if (defaultBookingType === 'Both') {
|
||||||
await dispatch(changeBookingType('TakeAway'));
|
await dispatch(changeBookingType('TakeAway'));
|
||||||
|
|
@ -2135,7 +2212,7 @@ const BSBillingTable5 = () => {
|
||||||
SalesPaymentType: 'normal',
|
SalesPaymentType: 'normal',
|
||||||
PaymentDetail: [
|
PaymentDetail: [
|
||||||
{
|
{
|
||||||
PaymentType:
|
PaymentType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? refundPaySelected :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi'
|
Paybtnnameselected?.toLowerCase() === 'upi'
|
||||||
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
||||||
? PaymentDeviceUPI?.[0]?.ModeId
|
? PaymentDeviceUPI?.[0]?.ModeId
|
||||||
|
|
@ -2149,14 +2226,14 @@ const BSBillingTable5 = () => {
|
||||||
: paybtnselected
|
: paybtnselected
|
||||||
? paybtnselected
|
? paybtnselected
|
||||||
: null,
|
: null,
|
||||||
Amount: Math.round(TotalAmount),
|
Amount: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? previousNetAmount - currentOrderNetAmount : Math.round(TotalAmount),
|
||||||
MerchantId:
|
MerchantId: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'business'
|
SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantId
|
?.MerchantId
|
||||||
: null,
|
: null,
|
||||||
PaymentOptionType:
|
PaymentOptionType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) && (refundPaySelectedName?.toLowerCase() === 'cash' || refundPaySelectedName?.toLowerCase() === 'credit') ? 'PC' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2170,7 +2247,7 @@ const BSBillingTable5 = () => {
|
||||||
? 'BU'
|
? 'BU'
|
||||||
: SelectedUPIPayOption
|
: SelectedUPIPayOption
|
||||||
: null,
|
: null,
|
||||||
ModeOfPayment:
|
ModeOfPayment: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
||||||
?.UPIDetailId
|
?.UPIDetailId
|
||||||
|
|
@ -2178,7 +2255,7 @@ const BSBillingTable5 = () => {
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantUPIId
|
?.MerchantUPIId
|
||||||
: null,
|
: null,
|
||||||
AccountDtl:
|
AccountDtl: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? [] :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||||
|
|
@ -2195,7 +2272,7 @@ const BSBillingTable5 = () => {
|
||||||
SelectedCardOption?.toLowerCase() === 'pg')
|
SelectedCardOption?.toLowerCase() === 'pg')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||||
: [],
|
: [],
|
||||||
PaymentStatus:
|
PaymentStatus: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? 'S' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'S'
|
? 'S'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2204,8 +2281,8 @@ const BSBillingTable5 = () => {
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
Debit: 0,
|
Debit: (salesBillEdit && currentOrderNetAmount < previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(previousNetAmount - currentOrderNetAmount) : 0,
|
||||||
Credit:
|
Credit: salesBillEdit ? (currentOrderNetAmount > previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(TotalAmount) : 0 :
|
||||||
Paybtnnameselected?.toLowerCase() === 'credit'
|
Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
? Math.round(TotalAmount)
|
? Math.round(TotalAmount)
|
||||||
: 0,
|
: 0,
|
||||||
|
|
@ -2411,7 +2488,12 @@ const BSBillingTable5 = () => {
|
||||||
putdata['PaymentType'] = !pay && '';
|
putdata['PaymentType'] = !pay && '';
|
||||||
putdata['PrintType'] = 'Y';
|
putdata['PrintType'] = 'Y';
|
||||||
}
|
}
|
||||||
let response = await dispatch(PutBookingData(putdata)).unwrap();
|
let response = null;
|
||||||
|
if (salesBillEdit) {
|
||||||
|
response = await dispatch(putSalesBillEdit(putdata)).unwrap();
|
||||||
|
} else {
|
||||||
|
response = await dispatch(PutBookingData(putdata)).unwrap();
|
||||||
|
}
|
||||||
if (value !== 'Unpaid') {
|
if (value !== 'Unpaid') {
|
||||||
if (response?.data?.statusCode == 1) {
|
if (response?.data?.statusCode == 1) {
|
||||||
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
|
|
@ -3183,7 +3265,7 @@ const BSBillingTable5 = () => {
|
||||||
|
|
||||||
// split payments
|
// split payments
|
||||||
const SplitPaymentOpen = () => {
|
const SplitPaymentOpen = () => {
|
||||||
if (OrderCardDetail?.length > 0) {
|
if (OrderCardDetail?.length > 0 && TotalAmount > 0) {
|
||||||
const updatedData = {
|
const updatedData = {
|
||||||
userData: OrderCardDetail,
|
userData: OrderCardDetail,
|
||||||
ExtraCharges: GlobalExtraCharge,
|
ExtraCharges: GlobalExtraCharge,
|
||||||
|
|
@ -3193,6 +3275,11 @@ const BSBillingTable5 = () => {
|
||||||
setFailedOrderData(updatedData);
|
setFailedOrderData(updatedData);
|
||||||
setSplitpayment(true);
|
setSplitpayment(true);
|
||||||
} else {
|
} else {
|
||||||
|
if (TotalAmount <= 0) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Cannot split when total amount is zero or less');
|
||||||
|
return;
|
||||||
|
}
|
||||||
setMessageType('warning');
|
setMessageType('warning');
|
||||||
setMessageData('Please Select the Product');
|
setMessageData('Please Select the Product');
|
||||||
}
|
}
|
||||||
|
|
@ -3606,7 +3693,7 @@ const BSBillingTable5 = () => {
|
||||||
: 1,
|
: 1,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{paybtns?.length > 0 ? (
|
{paybtns?.length > 0 && (currentOrderNetAmount >= previousNetAmount) ? (
|
||||||
paybtns?.map((payment) => (
|
paybtns?.map((payment) => (
|
||||||
<div className="Table3-cash">
|
<div className="Table3-cash">
|
||||||
<button
|
<button
|
||||||
|
|
@ -3684,6 +3771,42 @@ const BSBillingTable5 = () => {
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
|
) : (currentOrderNetAmount < previousNetAmount && salesBillEdit && refundPayBtns.length > 0) ? (
|
||||||
|
refundPayBtns.map((payment) => (
|
||||||
|
<div className="Table3-cash">
|
||||||
|
<button
|
||||||
|
className={
|
||||||
|
refundPaySelected === payment.ConfigId &&
|
||||||
|
(UpinotSelected || CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode-notupisel'
|
||||||
|
: refundPaySelected === payment.ConfigId &&
|
||||||
|
(!UpinotSelected || !CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode'
|
||||||
|
: 'Btn-payment-mode-sel'
|
||||||
|
}
|
||||||
|
style={{
|
||||||
|
fontFamily: FontFamily['para'],
|
||||||
|
position: 'relative',
|
||||||
|
animation: blink
|
||||||
|
? 'blink-animation 0.5s infinite alternate'
|
||||||
|
: 'none',
|
||||||
|
}}
|
||||||
|
onClick={() => handleRefundPaymentMode(payment?.ConfigId, payment?.ConfigName)}
|
||||||
|
>
|
||||||
|
{/* {UpiOption === "" && payment?.ModeName?.toLowerCase() === "upi" && <p> UPI</p>} */}
|
||||||
|
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
columnGap: '0.5rem',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{payment.ConfigName}
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
))
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
onClick={handlepaymentoptions}
|
onClick={handlepaymentoptions}
|
||||||
|
|
@ -4155,8 +4278,9 @@ const BSBillingTable5 = () => {
|
||||||
OrderCardDetail?.length > 0 &&
|
OrderCardDetail?.length > 0 &&
|
||||||
paybtnselected &&
|
paybtnselected &&
|
||||||
CheckBookingStatus != 'Close'
|
CheckBookingStatus != 'Close'
|
||||||
? !OrderStatus
|
? !OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ?
|
||||||
? 'BSBIllingTable5-paybtn-noitems'
|
'BSBIllingTable5-paybtn-noitems'
|
||||||
|
: 'BSBIllingTable5-paybtn-noitems'
|
||||||
: 'BSBIllingTable5-paybtn-noitems Order'
|
: 'BSBIllingTable5-paybtn-noitems Order'
|
||||||
: 'BSBIllingTable5-paybtn-noitems-disable'
|
: 'BSBIllingTable5-paybtn-noitems-disable'
|
||||||
}
|
}
|
||||||
|
|
@ -4168,7 +4292,7 @@ const BSBillingTable5 = () => {
|
||||||
handleButtonClick
|
handleButtonClick
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{!OrderStatus ? (
|
{!OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ? <div>Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</div> : (
|
||||||
<>
|
<>
|
||||||
{/* ₹ {Math.round(TotalAmount)} */}
|
{/* ₹ {Math.round(TotalAmount)} */}
|
||||||
{isMobile ? (
|
{isMobile ? (
|
||||||
|
|
@ -4377,7 +4501,10 @@ const BSBillingTable5 = () => {
|
||||||
SplitPaymentModal={Splitpayment}
|
SplitPaymentModal={Splitpayment}
|
||||||
handlesplitpaymentclose={handlesplitpaymentclose}
|
handlesplitpaymentclose={handlesplitpaymentclose}
|
||||||
TotalNetAmount={
|
TotalNetAmount={
|
||||||
OrderType === 'Failed' ? FailedTotalAmt : Math.round(TotalAmount)
|
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)))
|
||||||
}
|
}
|
||||||
failedOrderData={failedOrderData}
|
failedOrderData={failedOrderData}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,15 @@ import {
|
||||||
changeCurrentOrderId,
|
changeCurrentOrderId,
|
||||||
GlobalCombocarddata,
|
GlobalCombocarddata,
|
||||||
getCreditCustomer,
|
getCreditCustomer,
|
||||||
|
GlobalSalesBillEdit,
|
||||||
|
GlobalPreviousOrderPayment,
|
||||||
|
GlobalPreviousOrderOfferDetails,
|
||||||
|
GlobalpaymentOptionData,
|
||||||
|
getPaymentOptions,
|
||||||
|
putSalesBillEdit,
|
||||||
|
changeBillEditingMode,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
||||||
import FeaturesFunctionalities from '../../BookingFunctionality/FeaturesFunctionalities';
|
import FeaturesFunctionalities from '../../BookingFunctionality/FeaturesFunctionalities';
|
||||||
import {
|
import {
|
||||||
|
|
@ -240,6 +249,10 @@ const BST6Payment = () => {
|
||||||
type?.PreferredSubCatName?.toLowerCase() === 'dine in' &&
|
type?.PreferredSubCatName?.toLowerCase() === 'dine in' &&
|
||||||
type?.PreferredStatus === 'Y'
|
type?.PreferredStatus === 'Y'
|
||||||
);
|
);
|
||||||
|
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||||
|
const previousOrderPayment = useSelector(GlobalPreviousOrderPayment);
|
||||||
|
const previousOrderOfferDetails = useSelector(GlobalPreviousOrderOfferDetails);
|
||||||
|
const AllPaymentOptions = useSelector(GlobalpaymentOptionData);
|
||||||
const screenwidth = useSelector(GlobalScreenSize);
|
const screenwidth = useSelector(GlobalScreenSize);
|
||||||
const printerTemplateStyle = useSelector(SelectedPrintTemplate);
|
const printerTemplateStyle = useSelector(SelectedPrintTemplate);
|
||||||
const RetailWSSalesType = useSelector(GlobalRetailWSSalesType);
|
const RetailWSSalesType = useSelector(GlobalRetailWSSalesType);
|
||||||
|
|
@ -336,6 +349,11 @@ const BST6Payment = () => {
|
||||||
const UserType = SessionData?.UserType;
|
const UserType = SessionData?.UserType;
|
||||||
const AuthToken = SessionData?.AuthToken;
|
const AuthToken = SessionData?.AuthToken;
|
||||||
const SessionMobileNo = SessionData?.SessionMobileNo;
|
const SessionMobileNo = SessionData?.SessionMobileNo;
|
||||||
|
const [refundPayBtns, setRefundPayBtns] = useState([]);
|
||||||
|
const [refundPaySelected, setRefundPaySelected] = useState();
|
||||||
|
const [refundPaySelectedName, setRefundPaySelectedName] = useState(null);
|
||||||
|
const [currentOrderNetAmount, setCurrentOrderNetAmount] = useState(0);
|
||||||
|
const [previousNetAmount, setPreviousNetAmount] = useState(0);
|
||||||
const [FirstPaymentclick, setFirstPaymentclick] = useState(false);
|
const [FirstPaymentclick, setFirstPaymentclick] = useState(false);
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
const [unpaidopen, setUnpaidOpen] = useState(false);
|
const [unpaidopen, setUnpaidOpen] = useState(false);
|
||||||
|
|
@ -459,6 +477,30 @@ const BST6Payment = () => {
|
||||||
setPrintOrderDetails([]);
|
setPrintOrderDetails([]);
|
||||||
}
|
}
|
||||||
}, [OrderCardDetail]);
|
}, [OrderCardDetail]);
|
||||||
|
useEffect(() => {
|
||||||
|
if (salesBillEdit) {
|
||||||
|
dispatch(getPaymentOptions()).unwrap();
|
||||||
|
}
|
||||||
|
}, [salesBillEdit]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
if (salesBillEdit) {
|
||||||
|
if (SelCustId) {
|
||||||
|
setRefundPayBtns(AllPaymentOptions);
|
||||||
|
setRefundPaySelected(AllPaymentOptions?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(AllPaymentOptions?.[0]?.ConfigName);
|
||||||
|
} else {
|
||||||
|
const withoutCustomer = AllPaymentOptions?.filter?.(
|
||||||
|
(item) => item?.ConfigName?.toLowerCase() !== 'credit'
|
||||||
|
);
|
||||||
|
setRefundPaySelected(withoutCustomer?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(withoutCustomer?.[0]?.ConfigName);
|
||||||
|
setRefundPayBtns(withoutCustomer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [AllPaymentOptions, SelCustId, salesBillEdit])
|
||||||
console.log(PrintOrderDetails, 'PrintOrderDetails');
|
console.log(PrintOrderDetails, 'PrintOrderDetails');
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (selOption) {
|
if (selOption) {
|
||||||
|
|
@ -563,25 +605,43 @@ const BST6Payment = () => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const filteredPayments =
|
||||||
|
previousOrderPayment?.filter(
|
||||||
|
p => p?.LastOrderTran === 'Y' && p?.AfterAdjustment != null && p?.AfterAdjustment !== '' && p?.AfterAdjustment
|
||||||
|
) || [];
|
||||||
|
|
||||||
|
const paymentsToUse =
|
||||||
|
filteredPayments.length > 0 ? filteredPayments : previousOrderPayment || [];
|
||||||
|
|
||||||
|
const totalPreviouspayment = paymentsToUse?.reduce(
|
||||||
|
(acc, payment) => acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const totalPreviousOfferAmount = previousOrderOfferDetails?.reduce(
|
||||||
|
(acc, offer) => acc + parseFloat(offer.OfferAmount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const previousNetAmount =
|
||||||
|
(totalPreviouspayment) || 0;
|
||||||
|
|
||||||
let withdiscTotal =
|
let withdiscTotal =
|
||||||
Total -
|
Total -
|
||||||
((OverAllSales || 0) +
|
((OverAllSales || 0) +
|
||||||
(OverAllEstimate || 0) +
|
(OverAllEstimate || 0) +
|
||||||
(Discount > 0 ? Discount : 0));
|
(Discount > 0 ? Discount : 0));
|
||||||
|
|
||||||
setTotalAmount(
|
const currentOrderNetAmount = formatAmount(
|
||||||
formatAmount(
|
withdiscTotal >= 0
|
||||||
withdiscTotal >= 0
|
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
||||||
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
||||||
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
)
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(
|
setTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount);
|
||||||
changeSummeryTotalAmount(
|
setCurrentOrderNetAmount(currentOrderNetAmount);
|
||||||
formatAmount(withdiscTotal > 0 ? withdiscTotal : Number(Total))
|
setPreviousNetAmount(previousNetAmount);
|
||||||
)
|
dispatch(changeSummeryTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount));
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
||||||
|
|
||||||
|
|
@ -1174,6 +1234,10 @@ const BST6Payment = () => {
|
||||||
const handleButtonClick = () => {
|
const handleButtonClick = () => {
|
||||||
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
||||||
UpiPayment();
|
UpiPayment();
|
||||||
|
} else if (salesBillEdit && currentOrderNetAmount < previousNetAmount && !refundPaySelected) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Please Select Refund Payment Method');
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? AddBookingDetails('Dine-In', false)
|
? AddBookingDetails('Dine-In', false)
|
||||||
|
|
@ -1634,6 +1698,11 @@ const BST6Payment = () => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefundPaymentMode = (id, name) => {
|
||||||
|
setRefundPaySelected(id);
|
||||||
|
setRefundPaySelectedName(name);
|
||||||
|
}
|
||||||
|
|
||||||
const addUpiOption = async (id, name, UPIId) => {
|
const addUpiOption = async (id, name, UPIId) => {
|
||||||
await dispatch(changeUpiIDprint(UPIId));
|
await dispatch(changeUpiIDprint(UPIId));
|
||||||
await dispatch(changeUpiIDName(name));
|
await dispatch(changeUpiIDName(name));
|
||||||
|
|
@ -1718,7 +1787,7 @@ const BST6Payment = () => {
|
||||||
setCardOptionOpen(visible);
|
setCardOptionOpen(visible);
|
||||||
};
|
};
|
||||||
const SplitPaymentOpen = () => {
|
const SplitPaymentOpen = () => {
|
||||||
if (OrderCardDetail?.length > 0) {
|
if (OrderCardDetail?.length > 0 && TotalAmount > 0) {
|
||||||
const updatedData = {
|
const updatedData = {
|
||||||
userData: OrderCardDetail,
|
userData: OrderCardDetail,
|
||||||
ExtraCharges: GlobalExtraCharge,
|
ExtraCharges: GlobalExtraCharge,
|
||||||
|
|
@ -1728,6 +1797,11 @@ const BST6Payment = () => {
|
||||||
setFailedOrderData(updatedData);
|
setFailedOrderData(updatedData);
|
||||||
setSplitpayment(true);
|
setSplitpayment(true);
|
||||||
} else {
|
} else {
|
||||||
|
if (TotalAmount <= 0) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Cannot split when total amount is zero or less');
|
||||||
|
return;
|
||||||
|
}
|
||||||
setMessageType('warning');
|
setMessageType('warning');
|
||||||
setMessageData('Please Select the Product');
|
setMessageData('Please Select the Product');
|
||||||
}
|
}
|
||||||
|
|
@ -1861,6 +1935,9 @@ const BST6Payment = () => {
|
||||||
} else {
|
} else {
|
||||||
dispatch(changeOrderCardDetails([]));
|
dispatch(changeOrderCardDetails([]));
|
||||||
}
|
}
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
dispatch(changeTipAmount(0));
|
dispatch(changeTipAmount(0));
|
||||||
dispatch(changeLoyaltyConsumedQuantities({}));
|
dispatch(changeLoyaltyConsumedQuantities({}));
|
||||||
await dispatch(ChangeTotalAmount([]));
|
await dispatch(ChangeTotalAmount([]));
|
||||||
|
|
@ -1877,6 +1954,8 @@ const BST6Payment = () => {
|
||||||
setPaybtnselected(PaymentOptionsModeId);
|
setPaybtnselected(PaymentOptionsModeId);
|
||||||
setQrCode(false);
|
setQrCode(false);
|
||||||
setUpinotSelected(false);
|
setUpinotSelected(false);
|
||||||
|
setCurrentOrderNetAmount(0);
|
||||||
|
setPreviousNetAmount(0);
|
||||||
getHolddata();
|
getHolddata();
|
||||||
if (defaultBookingType === 'Both') {
|
if (defaultBookingType === 'Both') {
|
||||||
await dispatch(changeBookingType('TakeAway'));
|
await dispatch(changeBookingType('TakeAway'));
|
||||||
|
|
@ -2173,7 +2252,7 @@ const BST6Payment = () => {
|
||||||
SalesPaymentType: 'normal',
|
SalesPaymentType: 'normal',
|
||||||
PaymentDetail: [
|
PaymentDetail: [
|
||||||
{
|
{
|
||||||
PaymentType:
|
PaymentType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? refundPaySelected :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi'
|
Paybtnnameselected?.toLowerCase() === 'upi'
|
||||||
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
||||||
? PaymentDeviceUPI?.[0]?.ModeId
|
? PaymentDeviceUPI?.[0]?.ModeId
|
||||||
|
|
@ -2187,14 +2266,14 @@ const BST6Payment = () => {
|
||||||
: paybtnselected
|
: paybtnselected
|
||||||
? paybtnselected
|
? paybtnselected
|
||||||
: null,
|
: null,
|
||||||
Amount: Math.round(TotalAmount),
|
Amount: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? previousNetAmount - currentOrderNetAmount : Math.round(TotalAmount),
|
||||||
MerchantId:
|
MerchantId: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'business'
|
SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantId
|
?.MerchantId
|
||||||
: null,
|
: null,
|
||||||
PaymentOptionType:
|
PaymentOptionType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) && (refundPaySelectedName?.toLowerCase() === 'cash' || refundPaySelectedName?.toLowerCase() === 'credit') ? 'PC' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2208,7 +2287,7 @@ const BST6Payment = () => {
|
||||||
? 'BU'
|
? 'BU'
|
||||||
: SelectedUPIPayOption
|
: SelectedUPIPayOption
|
||||||
: null,
|
: null,
|
||||||
ModeOfPayment:
|
ModeOfPayment: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
||||||
?.UPIDetailId
|
?.UPIDetailId
|
||||||
|
|
@ -2216,7 +2295,7 @@ const BST6Payment = () => {
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantUPIId
|
?.MerchantUPIId
|
||||||
: null,
|
: null,
|
||||||
AccountDtl:
|
AccountDtl: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? [] :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||||
|
|
@ -2233,7 +2312,7 @@ const BST6Payment = () => {
|
||||||
SelectedCardOption?.toLowerCase() === 'pg')
|
SelectedCardOption?.toLowerCase() === 'pg')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||||
: [],
|
: [],
|
||||||
PaymentStatus:
|
PaymentStatus: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? 'S' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'S'
|
? 'S'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2242,8 +2321,8 @@ const BST6Payment = () => {
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
Debit: 0,
|
Debit: (salesBillEdit && currentOrderNetAmount < previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(previousNetAmount - currentOrderNetAmount) : 0,
|
||||||
Credit:
|
Credit: salesBillEdit ? (currentOrderNetAmount > previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(TotalAmount) : 0 :
|
||||||
Paybtnnameselected?.toLowerCase() === 'credit'
|
Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
? Math.round(TotalAmount)
|
? Math.round(TotalAmount)
|
||||||
: 0,
|
: 0,
|
||||||
|
|
@ -2451,7 +2530,12 @@ const BST6Payment = () => {
|
||||||
putdata['PaymentType'] = !pay && '';
|
putdata['PaymentType'] = !pay && '';
|
||||||
putdata['PrintType'] = 'Y';
|
putdata['PrintType'] = 'Y';
|
||||||
}
|
}
|
||||||
let response = await dispatch(PutBookingData(putdata)).unwrap();
|
let response = null;
|
||||||
|
if (salesBillEdit) {
|
||||||
|
response = await dispatch(putSalesBillEdit(putdata)).unwrap();
|
||||||
|
} else {
|
||||||
|
response = await dispatch(PutBookingData(putdata)).unwrap();
|
||||||
|
}
|
||||||
let PayatCounterfilter = response?.data?.PaymentOrderDtl?.filter(
|
let PayatCounterfilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
(item) => item?.PaymentOptionType?.toLowerCase() === 'pc'
|
(item) => item?.PaymentOptionType?.toLowerCase() === 'pc'
|
||||||
);
|
);
|
||||||
|
|
@ -3678,7 +3762,7 @@ const BST6Payment = () => {
|
||||||
: 1,
|
: 1,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{paybtns?.length > 0 ? (
|
{paybtns?.length > 0 && (currentOrderNetAmount >= previousNetAmount) ? (
|
||||||
paybtns?.map((payment) => (
|
paybtns?.map((payment) => (
|
||||||
<div className="Table6-cash">
|
<div className="Table6-cash">
|
||||||
<button
|
<button
|
||||||
|
|
@ -3758,6 +3842,40 @@ const BST6Payment = () => {
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
|
) : (currentOrderNetAmount < previousNetAmount && salesBillEdit && refundPayBtns.length > 0) ? (
|
||||||
|
refundPayBtns.map((payment) => (
|
||||||
|
<div className="Table6-cash">
|
||||||
|
<button
|
||||||
|
className={
|
||||||
|
refundPaySelected === payment.ConfigId &&
|
||||||
|
(UpinotSelected || CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode-notupisel'
|
||||||
|
: refundPaySelected === payment.ConfigId &&
|
||||||
|
(!UpinotSelected || !CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode'
|
||||||
|
: 'Btn-payment-mode-sel'
|
||||||
|
}
|
||||||
|
style={{
|
||||||
|
fontFamily: FontFamily['para'],
|
||||||
|
position: 'relative',
|
||||||
|
animation: blink
|
||||||
|
? 'blink-animation 0.5s infinite alternate'
|
||||||
|
: 'none',
|
||||||
|
}}
|
||||||
|
onClick={() => handleRefundPaymentMode(payment?.ConfigId, payment?.ConfigName)}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
columnGap: '0.5rem',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{payment.ConfigName}
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
))
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
onClick={handlepaymentoptions}
|
onClick={handlepaymentoptions}
|
||||||
|
|
@ -3782,8 +3900,9 @@ const BST6Payment = () => {
|
||||||
OrderCardDetail?.length > 0 &&
|
OrderCardDetail?.length > 0 &&
|
||||||
paybtnselected &&
|
paybtnselected &&
|
||||||
CheckBookingStatus != 'Close'
|
CheckBookingStatus != 'Close'
|
||||||
? !OrderStatus
|
? !OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ?
|
||||||
? 'BST6Payment-Button-pay'
|
'BST6Payment-Button-pay'
|
||||||
|
: 'BST6Payment-Button-pay'
|
||||||
: 'BST6Payment-Button-pay Order'
|
: 'BST6Payment-Button-pay Order'
|
||||||
: 'BST6Payment-Button-pay-disabled'
|
: 'BST6Payment-Button-pay-disabled'
|
||||||
}
|
}
|
||||||
|
|
@ -3798,7 +3917,7 @@ const BST6Payment = () => {
|
||||||
handleButtonClick
|
handleButtonClick
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{!OrderStatus ? (
|
{!OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ? <div>Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</div> : (
|
||||||
<>
|
<>
|
||||||
<p style={{ fontFamily: FontFamily['head'] }}>
|
<p style={{ fontFamily: FontFamily['head'] }}>
|
||||||
{isMobile ? (
|
{isMobile ? (
|
||||||
|
|
@ -4317,7 +4436,10 @@ const BST6Payment = () => {
|
||||||
SplitPaymentModal={Splitpayment}
|
SplitPaymentModal={Splitpayment}
|
||||||
handlesplitpaymentclose={handlesplitpaymentclose}
|
handlesplitpaymentclose={handlesplitpaymentclose}
|
||||||
TotalNetAmount={
|
TotalNetAmount={
|
||||||
OrderType === 'Failed' ? FailedTotalAmt : Math.round(TotalAmount)
|
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)))
|
||||||
}
|
}
|
||||||
failedOrderData={failedOrderData}
|
failedOrderData={failedOrderData}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,15 @@ import {
|
||||||
changeCurrentOrderId,
|
changeCurrentOrderId,
|
||||||
GlobalCombocarddata,
|
GlobalCombocarddata,
|
||||||
getCreditCustomer,
|
getCreditCustomer,
|
||||||
|
GlobalSalesBillEdit,
|
||||||
|
GlobalPreviousOrderPayment,
|
||||||
|
GlobalPreviousOrderOfferDetails,
|
||||||
|
GlobalpaymentOptionData,
|
||||||
|
getPaymentOptions,
|
||||||
|
putSalesBillEdit,
|
||||||
|
changeBillEditingMode,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
} from '../../../../../Features/BookingScreen/BookingData/BookingData.js';
|
} from '../../../../../Features/BookingScreen/BookingData/BookingData.js';
|
||||||
import {
|
import {
|
||||||
globalExtraTotalAmount,
|
globalExtraTotalAmount,
|
||||||
|
|
@ -225,6 +234,10 @@ const BSBilling7Payment = () => {
|
||||||
);
|
);
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||||
|
const previousOrderPayment = useSelector(GlobalPreviousOrderPayment);
|
||||||
|
const previousOrderOfferDetails = useSelector(GlobalPreviousOrderOfferDetails);
|
||||||
|
const AllPaymentOptions = useSelector(GlobalpaymentOptionData);
|
||||||
const Discount = useSelector(GlobalOverAllOfferAmt);
|
const Discount = useSelector(GlobalOverAllOfferAmt);
|
||||||
const screenwidth = useSelector(GlobalScreenSize);
|
const screenwidth = useSelector(GlobalScreenSize);
|
||||||
const defaultBookingType = useSelector(GlobalDefaultBookingType);
|
const defaultBookingType = useSelector(GlobalDefaultBookingType);
|
||||||
|
|
@ -327,6 +340,11 @@ const BSBilling7Payment = () => {
|
||||||
const [SelectedUPIPayOption, setSelectedUPIPayOption] = useState('Default');
|
const [SelectedUPIPayOption, setSelectedUPIPayOption] = useState('Default');
|
||||||
const [SelectedUpiOption, setSelectedUpiOption] = useState();
|
const [SelectedUpiOption, setSelectedUpiOption] = useState();
|
||||||
const [hold, setHold] = useState(false);
|
const [hold, setHold] = useState(false);
|
||||||
|
const [refundPayBtns, setRefundPayBtns] = useState([]);
|
||||||
|
const [refundPaySelected, setRefundPaySelected] = useState();
|
||||||
|
const [refundPaySelectedName, setRefundPaySelectedName] = useState(null);
|
||||||
|
const [currentOrderNetAmount, setCurrentOrderNetAmount] = useState(0);
|
||||||
|
const [previousNetAmount, setPreviousNetAmount] = useState(0);
|
||||||
const [addcustomer, setAddCustomer] = useState(false);
|
const [addcustomer, setAddCustomer] = useState(false);
|
||||||
const [PrintOrderDetails, setPrintOrderDetails] = useState([]);
|
const [PrintOrderDetails, setPrintOrderDetails] = useState([]);
|
||||||
const [customerPreviesOrders, setCustomerPreviesOrders] = useState(false); const OverAllSales = useSelector(GlobalOverAllDiscSales);
|
const [customerPreviesOrders, setCustomerPreviesOrders] = useState(false); const OverAllSales = useSelector(GlobalOverAllDiscSales);
|
||||||
|
|
@ -348,7 +366,7 @@ const BSBilling7Payment = () => {
|
||||||
|
|
||||||
return acc + Math.round(Number(item?.OrderQty || 0));
|
return acc + Math.round(Number(item?.OrderQty || 0));
|
||||||
}, 0);
|
}, 0);
|
||||||
|
console.log(salesBillEdit, currentOrderNetAmount, previousNetAmount, "previousNetAmount")
|
||||||
const [UpiOption, setUpiOption] = useState('');
|
const [UpiOption, setUpiOption] = useState('');
|
||||||
const [BusinessPayOption, setBusinessPayoption] = useState([]);
|
const [BusinessPayOption, setBusinessPayoption] = useState([]);
|
||||||
const [paymentSucess, setPaymentSuccess] = useState(false);
|
const [paymentSucess, setPaymentSuccess] = useState(false);
|
||||||
|
|
@ -482,6 +500,33 @@ const BSBilling7Payment = () => {
|
||||||
setMobileNoWhatsApp(selOption);
|
setMobileNoWhatsApp(selOption);
|
||||||
}
|
}
|
||||||
}, [selOption]);
|
}, [selOption]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (salesBillEdit) {
|
||||||
|
dispatch(getPaymentOptions()).unwrap();
|
||||||
|
}
|
||||||
|
}, [salesBillEdit]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
if (salesBillEdit) {
|
||||||
|
if (SelCustId) {
|
||||||
|
setRefundPayBtns(AllPaymentOptions);
|
||||||
|
setRefundPaySelected(AllPaymentOptions?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(AllPaymentOptions?.[0]?.ConfigName);
|
||||||
|
} else {
|
||||||
|
const withoutCustomer = AllPaymentOptions?.filter?.(
|
||||||
|
(item) => item?.ConfigName?.toLowerCase() !== 'credit'
|
||||||
|
);
|
||||||
|
setRefundPaySelected(withoutCustomer?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(withoutCustomer?.[0]?.ConfigName);
|
||||||
|
setRefundPayBtns(withoutCustomer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [AllPaymentOptions, SelCustId, salesBillEdit])
|
||||||
|
|
||||||
|
|
||||||
// Usage
|
// Usage
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchCreditCustomer = async () => {
|
const fetchCreditCustomer = async () => {
|
||||||
|
|
@ -579,23 +624,44 @@ const BSBilling7Payment = () => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const filteredPayments =
|
||||||
|
previousOrderPayment?.filter(
|
||||||
|
p => p?.LastOrderTran === 'Y' && p?.AfterAdjustment != null && p?.AfterAdjustment !== '' && p?.AfterAdjustment
|
||||||
|
) || [];
|
||||||
|
|
||||||
|
const paymentsToUse =
|
||||||
|
filteredPayments.length > 0 ? filteredPayments : previousOrderPayment || [];
|
||||||
|
|
||||||
|
const totalPreviouspayment = paymentsToUse?.reduce(
|
||||||
|
(acc, payment) => acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const totalPreviousOfferAmount = previousOrderOfferDetails?.reduce(
|
||||||
|
(acc, offer) => acc + parseFloat(offer.OfferAmount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const previousNetAmount =
|
||||||
|
(totalPreviouspayment) || 0;
|
||||||
|
|
||||||
let withdiscTotal =
|
let withdiscTotal =
|
||||||
Total -
|
Total -
|
||||||
((OverAllSales || 0) +
|
((OverAllSales || 0) +
|
||||||
(OverAllEstimate || 0) +
|
(OverAllEstimate || 0) +
|
||||||
(Discount > 0 ? Discount : 0));
|
(Discount > 0 ? Discount : 0));
|
||||||
|
|
||||||
setTotalAmount(
|
const currentOrderNetAmount = formatAmount(
|
||||||
withdiscTotal >= 0
|
withdiscTotal >= 0
|
||||||
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
||||||
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
||||||
);
|
)
|
||||||
|
console.log(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount, "totalPreviouspayment")
|
||||||
|
|
||||||
dispatch(
|
setTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount);
|
||||||
changeSummeryTotalAmount(
|
setCurrentOrderNetAmount(currentOrderNetAmount);
|
||||||
withdiscTotal > 0 ? withdiscTotal : Number(Total)
|
setPreviousNetAmount(previousNetAmount);
|
||||||
)
|
dispatch(changeSummeryTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount));
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
||||||
|
|
||||||
|
|
@ -819,7 +885,7 @@ const BSBilling7Payment = () => {
|
||||||
async (orderDetail, index) => {
|
async (orderDetail, index) => {
|
||||||
await printDiv(`${selectedStyle}-${index}`, style); // Use unique IDs for each print
|
await printDiv(`${selectedStyle}-${index}`, style); // Use unique IDs for each print
|
||||||
if (orderDetail?.BookingTypeName !== 'Dine In') {
|
if (orderDetail?.BookingTypeName !== 'Dine In') {
|
||||||
const groupedTokens = orderDetail?.productDetails?.reduce(
|
const groupedTokens = orderDetail?.productDetails?.filter(data => data?.EditTokenAvailable !== 'N')?.reduce(
|
||||||
(acc, item, idx) => {
|
(acc, item, idx) => {
|
||||||
if (item.TokenAvailable === 'Y') {
|
if (item.TokenAvailable === 'Y') {
|
||||||
if (!item.CounterName) {
|
if (!item.CounterName) {
|
||||||
|
|
@ -899,12 +965,17 @@ const BSBilling7Payment = () => {
|
||||||
const handleButtonClick = () => {
|
const handleButtonClick = () => {
|
||||||
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
||||||
UpiPayment();
|
UpiPayment();
|
||||||
|
} else if (salesBillEdit && currentOrderNetAmount < previousNetAmount && !refundPaySelected) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Please Select Refund Payment Method');
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? AddBookingDetails('Dine-In', false)
|
? AddBookingDetails('Dine-In', false)
|
||||||
: AddBookingDetails(BookingType, true);
|
: AddBookingDetails(BookingType, true);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const financialYearError = async () => {
|
const financialYearError = async () => {
|
||||||
setMessageType('error');
|
setMessageType('error');
|
||||||
setMessageData('Financial Year-Based Sales Not Yet Started');
|
setMessageData('Financial Year-Based Sales Not Yet Started');
|
||||||
|
|
@ -1637,6 +1708,12 @@ const BSBilling7Payment = () => {
|
||||||
setCardoptionnotSelected(false);
|
setCardoptionnotSelected(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefundPaymentMode = (id, name) => {
|
||||||
|
setRefundPaySelected(id);
|
||||||
|
setRefundPaySelectedName(name);
|
||||||
|
}
|
||||||
|
|
||||||
const addUpiOption = async (id, name, UPIId) => {
|
const addUpiOption = async (id, name, UPIId) => {
|
||||||
await dispatch(changeUpiIDprint(UPIId));
|
await dispatch(changeUpiIDprint(UPIId));
|
||||||
await dispatch(changeUpiIDName(name));
|
await dispatch(changeUpiIDName(name));
|
||||||
|
|
@ -1833,6 +1910,9 @@ const BSBilling7Payment = () => {
|
||||||
} else {
|
} else {
|
||||||
dispatch(changeOrderCardDetails([]));
|
dispatch(changeOrderCardDetails([]));
|
||||||
}
|
}
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
dispatch(changeTipAmount(0));
|
dispatch(changeTipAmount(0));
|
||||||
dispatch(changeFullOfferAppliedProducts([]));
|
dispatch(changeFullOfferAppliedProducts([]));
|
||||||
dispatch(changeLoyaltyConsumedQuantities({}));
|
dispatch(changeLoyaltyConsumedQuantities({}));
|
||||||
|
|
@ -1848,6 +1928,8 @@ const BSBilling7Payment = () => {
|
||||||
setPaybtnnameselected(PaymentOptionsModeName);
|
setPaybtnnameselected(PaymentOptionsModeName);
|
||||||
setPaybtnselected(PaymentOptionsModeId);
|
setPaybtnselected(PaymentOptionsModeId);
|
||||||
setQrCode(false);
|
setQrCode(false);
|
||||||
|
setCurrentOrderNetAmount(0);
|
||||||
|
setPreviousNetAmount(0);
|
||||||
setUpinotSelected(false);
|
setUpinotSelected(false);
|
||||||
getHolddata();
|
getHolddata();
|
||||||
if (defaultBookingType === 'Both') {
|
if (defaultBookingType === 'Both') {
|
||||||
|
|
@ -2139,7 +2221,7 @@ const BSBilling7Payment = () => {
|
||||||
SalesPaymentType: 'normal',
|
SalesPaymentType: 'normal',
|
||||||
PaymentDetail: [
|
PaymentDetail: [
|
||||||
{
|
{
|
||||||
PaymentType:
|
PaymentType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? refundPaySelected :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi'
|
Paybtnnameselected?.toLowerCase() === 'upi'
|
||||||
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
||||||
? PaymentDeviceUPI?.[0]?.ModeId
|
? PaymentDeviceUPI?.[0]?.ModeId
|
||||||
|
|
@ -2153,14 +2235,14 @@ const BSBilling7Payment = () => {
|
||||||
: paybtnselected
|
: paybtnselected
|
||||||
? paybtnselected
|
? paybtnselected
|
||||||
: null,
|
: null,
|
||||||
Amount: Math.round(TotalAmount),
|
Amount: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? previousNetAmount - currentOrderNetAmount : Math.round(TotalAmount),
|
||||||
MerchantId:
|
MerchantId: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'business'
|
SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantId
|
?.MerchantId
|
||||||
: null,
|
: null,
|
||||||
PaymentOptionType:
|
PaymentOptionType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) && (refundPaySelectedName?.toLowerCase() === 'cash' || refundPaySelectedName?.toLowerCase() === 'credit') ? 'PC' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2174,7 +2256,7 @@ const BSBilling7Payment = () => {
|
||||||
? 'BU'
|
? 'BU'
|
||||||
: SelectedUPIPayOption
|
: SelectedUPIPayOption
|
||||||
: null,
|
: null,
|
||||||
ModeOfPayment:
|
ModeOfPayment: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
||||||
?.UPIDetailId
|
?.UPIDetailId
|
||||||
|
|
@ -2182,7 +2264,7 @@ const BSBilling7Payment = () => {
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantUPIId
|
?.MerchantUPIId
|
||||||
: null,
|
: null,
|
||||||
AccountDtl:
|
AccountDtl: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? [] :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||||
|
|
@ -2199,7 +2281,7 @@ const BSBilling7Payment = () => {
|
||||||
SelectedCardOption?.toLowerCase() === 'pg')
|
SelectedCardOption?.toLowerCase() === 'pg')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||||
: [],
|
: [],
|
||||||
PaymentStatus:
|
PaymentStatus: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? 'S' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'S'
|
? 'S'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2208,8 +2290,8 @@ const BSBilling7Payment = () => {
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
Debit: 0,
|
Debit: (salesBillEdit && currentOrderNetAmount < previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(previousNetAmount - currentOrderNetAmount) : 0,
|
||||||
Credit:
|
Credit: salesBillEdit ? (currentOrderNetAmount > previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(TotalAmount) : 0 :
|
||||||
Paybtnnameselected?.toLowerCase() === 'credit'
|
Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
? Math.round(TotalAmount)
|
? Math.round(TotalAmount)
|
||||||
: 0,
|
: 0,
|
||||||
|
|
@ -2416,7 +2498,12 @@ const BSBilling7Payment = () => {
|
||||||
putdata['PaymentType'] = !pay && '';
|
putdata['PaymentType'] = !pay && '';
|
||||||
putdata['PrintType'] = 'Y';
|
putdata['PrintType'] = 'Y';
|
||||||
}
|
}
|
||||||
let response = await dispatch(PutBookingData(putdata)).unwrap();
|
let response = null;
|
||||||
|
if (salesBillEdit) {
|
||||||
|
response = await dispatch(putSalesBillEdit(putdata)).unwrap();
|
||||||
|
} else {
|
||||||
|
response = await dispatch(PutBookingData(putdata)).unwrap();
|
||||||
|
}
|
||||||
if (value !== 'Unpaid') {
|
if (value !== 'Unpaid') {
|
||||||
if (response?.data?.statusCode == 1) {
|
if (response?.data?.statusCode == 1) {
|
||||||
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
|
|
@ -3126,7 +3213,7 @@ const BSBilling7Payment = () => {
|
||||||
};
|
};
|
||||||
// split payments
|
// split payments
|
||||||
const SplitPaymentOpen = () => {
|
const SplitPaymentOpen = () => {
|
||||||
if (OrderCardDetail?.length > 0) {
|
if (OrderCardDetail?.length > 0 && TotalAmount > 0) {
|
||||||
const updatedData = {
|
const updatedData = {
|
||||||
userData: OrderCardDetail,
|
userData: OrderCardDetail,
|
||||||
ExtraCharges: GlobalExtraCharge,
|
ExtraCharges: GlobalExtraCharge,
|
||||||
|
|
@ -3136,6 +3223,11 @@ const BSBilling7Payment = () => {
|
||||||
setFailedOrderData(updatedData);
|
setFailedOrderData(updatedData);
|
||||||
setSplitpayment(true);
|
setSplitpayment(true);
|
||||||
} else {
|
} else {
|
||||||
|
if (TotalAmount <= 0) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Cannot split when total amount is zero or less');
|
||||||
|
return;
|
||||||
|
}
|
||||||
setMessageType('warning');
|
setMessageType('warning');
|
||||||
setMessageData('Please Select the Product');
|
setMessageData('Please Select the Product');
|
||||||
}
|
}
|
||||||
|
|
@ -3840,7 +3932,7 @@ const BSBilling7Payment = () => {
|
||||||
: 1,
|
: 1,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{paybtns?.length > 0 ? (
|
{paybtns?.length > 0 && (currentOrderNetAmount >= previousNetAmount) ? (
|
||||||
paybtns?.map((payment) => (
|
paybtns?.map((payment) => (
|
||||||
<div className="Table3-cash">
|
<div className="Table3-cash">
|
||||||
<button
|
<button
|
||||||
|
|
@ -3917,6 +4009,42 @@ const BSBilling7Payment = () => {
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
|
) : (currentOrderNetAmount < previousNetAmount && salesBillEdit && refundPayBtns.length > 0) ? (
|
||||||
|
refundPayBtns.map((payment) => (
|
||||||
|
<div className="Table3-cash">
|
||||||
|
<button
|
||||||
|
className={
|
||||||
|
refundPaySelected === payment.ConfigId &&
|
||||||
|
(UpinotSelected || CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode-notupisel'
|
||||||
|
: refundPaySelected === payment.ConfigId &&
|
||||||
|
(!UpinotSelected || !CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode'
|
||||||
|
: 'Btn-payment-mode-sel'
|
||||||
|
}
|
||||||
|
style={{
|
||||||
|
fontFamily: FontFamily['para'],
|
||||||
|
position: 'relative',
|
||||||
|
animation: blink
|
||||||
|
? 'blink-animation 0.5s infinite alternate'
|
||||||
|
: 'none',
|
||||||
|
}}
|
||||||
|
onClick={() => handleRefundPaymentMode(payment?.ConfigId, payment?.ConfigName)}
|
||||||
|
>
|
||||||
|
{/* {UpiOption === "" && payment?.ModeName?.toLowerCase() === "upi" && <p> UPI</p>} */}
|
||||||
|
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
columnGap: '0.5rem',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{payment.ConfigName}
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
))
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
onClick={handlepaymentoptions}
|
onClick={handlepaymentoptions}
|
||||||
|
|
@ -4154,8 +4282,9 @@ const BSBilling7Payment = () => {
|
||||||
OrderCardDetail?.length > 0 &&
|
OrderCardDetail?.length > 0 &&
|
||||||
paybtnselected &&
|
paybtnselected &&
|
||||||
CheckBookingStatus != 'Close'
|
CheckBookingStatus != 'Close'
|
||||||
? !OrderStatus
|
? !OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ?
|
||||||
? 'Table4-Btn-final-price'
|
'Table4-Btn-final-price'
|
||||||
|
: 'Table4-Btn-final-price'
|
||||||
: 'Table4-Btn-final-price Order'
|
: 'Table4-Btn-final-price Order'
|
||||||
: 'Table4-Btn-final-price-disabled'
|
: 'Table4-Btn-final-price-disabled'
|
||||||
}
|
}
|
||||||
|
|
@ -4168,7 +4297,7 @@ const BSBilling7Payment = () => {
|
||||||
handleButtonClick
|
handleButtonClick
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{!OrderStatus ? (
|
{!OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ? <p className="Table4-Order">Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</p> : (
|
||||||
<>
|
<>
|
||||||
<div className="Table4-fullrate">
|
<div className="Table4-fullrate">
|
||||||
<div
|
<div
|
||||||
|
|
@ -4501,7 +4630,10 @@ const BSBilling7Payment = () => {
|
||||||
SplitPaymentModal={Splitpayment}
|
SplitPaymentModal={Splitpayment}
|
||||||
handlesplitpaymentclose={handlesplitpaymentclose}
|
handlesplitpaymentclose={handlesplitpaymentclose}
|
||||||
TotalNetAmount={
|
TotalNetAmount={
|
||||||
OrderType === 'Failed' ? FailedTotalAmt : Math.round(TotalAmount)
|
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)))
|
||||||
}
|
}
|
||||||
failedOrderData={failedOrderData}
|
failedOrderData={failedOrderData}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,9 @@ import {
|
||||||
PostBlockSlots,
|
PostBlockSlots,
|
||||||
changeCustomerID,
|
changeCustomerID,
|
||||||
changeSelectedCustId,
|
changeSelectedCustId,
|
||||||
|
changeBillEditingMode,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
||||||
import './StandardTable.scss';
|
import './StandardTable.scss';
|
||||||
import { IoClose } from 'react-icons/io5';
|
import { IoClose } from 'react-icons/io5';
|
||||||
|
|
@ -148,8 +151,8 @@ const StandardTable = () => {
|
||||||
OrderType === 'Hold'
|
OrderType === 'Hold'
|
||||||
? OrderCardDetail?.filter((a, b) => a.BookingTypeName === 'TakeAway')
|
? OrderCardDetail?.filter((a, b) => a.BookingTypeName === 'TakeAway')
|
||||||
: OrderCardDetail?.filter(
|
: OrderCardDetail?.filter(
|
||||||
(a, b) => a.BookingTypeName === 'TakeAway' && !a?.SalesId
|
(a, b) => a.BookingTypeName === 'TakeAway' && !a?.SalesId
|
||||||
);
|
);
|
||||||
console.log('HoldOrderDtl', OrderCardDetail);
|
console.log('HoldOrderDtl', OrderCardDetail);
|
||||||
const OldtableDataDinein = OrderCardDetail?.filter(
|
const OldtableDataDinein = OrderCardDetail?.filter(
|
||||||
(a, b) => a.BookingTypeName === 'Dine In' && a?.SalesId
|
(a, b) => a.BookingTypeName === 'Dine In' && a?.SalesId
|
||||||
|
|
@ -157,8 +160,8 @@ const StandardTable = () => {
|
||||||
const OldtableDataTakeAway =
|
const OldtableDataTakeAway =
|
||||||
OrderType != 'Hold'
|
OrderType != 'Hold'
|
||||||
? OrderCardDetail?.filter(
|
? OrderCardDetail?.filter(
|
||||||
(a, b) => a.BookingTypeName === 'TakeAway' && a?.SalesId
|
(a, b) => a.BookingTypeName === 'TakeAway' && a?.SalesId
|
||||||
)
|
)
|
||||||
: [];
|
: [];
|
||||||
|
|
||||||
const [EditQuantity, setEditQuantity] = useState(false);
|
const [EditQuantity, setEditQuantity] = useState(false);
|
||||||
|
|
@ -291,9 +294,9 @@ const StandardTable = () => {
|
||||||
AppId: AppId,
|
AppId: AppId,
|
||||||
...(AvailableDate && selectedDate
|
...(AvailableDate && selectedDate
|
||||||
? {
|
? {
|
||||||
fromDate: selectedDate?.[0],
|
fromDate: selectedDate?.[0],
|
||||||
toDate: selectedDate?.[1],
|
toDate: selectedDate?.[1],
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
};
|
};
|
||||||
await dispatch(getSelectedFavItems(data)).unwrap();
|
await dispatch(getSelectedFavItems(data)).unwrap();
|
||||||
|
|
@ -305,9 +308,9 @@ const StandardTable = () => {
|
||||||
ProdSubCat: ProdSubCat,
|
ProdSubCat: ProdSubCat,
|
||||||
...(AvailableDate && selectedDate
|
...(AvailableDate && selectedDate
|
||||||
? {
|
? {
|
||||||
fromDate: selectedDate?.[0],
|
fromDate: selectedDate?.[0],
|
||||||
toDate: selectedDate?.[1],
|
toDate: selectedDate?.[1],
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -318,9 +321,9 @@ const StandardTable = () => {
|
||||||
prodCat: prodCat,
|
prodCat: prodCat,
|
||||||
...(AvailableDate && selectedDate
|
...(AvailableDate && selectedDate
|
||||||
? {
|
? {
|
||||||
fromDate: selectedDate?.[0],
|
fromDate: selectedDate?.[0],
|
||||||
toDate: selectedDate?.[1],
|
toDate: selectedDate?.[1],
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -413,6 +416,9 @@ const StandardTable = () => {
|
||||||
await dispatch(ChangeTotalAmount([]));
|
await dispatch(ChangeTotalAmount([]));
|
||||||
await dispatch(changeOrderType(null));
|
await dispatch(changeOrderType(null));
|
||||||
await dispatch(changeReorderHoldDetails({}));
|
await dispatch(changeReorderHoldDetails({}));
|
||||||
|
await dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
} else if (OrderType === 'Reorder') {
|
} else if (OrderType === 'Reorder') {
|
||||||
const UpdatedData = OrderCardDetail?.filter(
|
const UpdatedData = OrderCardDetail?.filter(
|
||||||
(cartItem) => cartItem?.SalesId
|
(cartItem) => cartItem?.SalesId
|
||||||
|
|
@ -438,6 +444,9 @@ const StandardTable = () => {
|
||||||
await dispatch(ChangeTotalAmount([]));
|
await dispatch(ChangeTotalAmount([]));
|
||||||
await dispatch(changeUnpaidData(false));
|
await dispatch(changeUnpaidData(false));
|
||||||
await dispatch(changeReorderHoldDetails({}));
|
await dispatch(changeReorderHoldDetails({}));
|
||||||
|
await dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
await dispatch(changeReorderProductDetails([]));
|
await dispatch(changeReorderProductDetails([]));
|
||||||
await dispatch(ChangeSelectedCustDisable(false));
|
await dispatch(ChangeSelectedCustDisable(false));
|
||||||
|
|
||||||
|
|
@ -1124,9 +1133,9 @@ const StandardTable = () => {
|
||||||
)?.map((item, idx) =>
|
)?.map((item, idx) =>
|
||||||
idx === 0
|
idx === 0
|
||||||
? {
|
? {
|
||||||
...item,
|
...item,
|
||||||
FreeQty,
|
FreeQty,
|
||||||
}
|
}
|
||||||
: item
|
: item
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
@ -2510,11 +2519,10 @@ const StandardTable = () => {
|
||||||
{OldtableDataTakeAway?.map((item, index) => (
|
{OldtableDataTakeAway?.map((item, index) => (
|
||||||
<tr
|
<tr
|
||||||
key={index}
|
key={index}
|
||||||
className={`${
|
className={`${item?.SalesId && OrderType !== 'Hold'
|
||||||
item?.SalesId && OrderType !== 'Hold'
|
? 'booking-billing-table-row-disabled'
|
||||||
? 'booking-billing-table-row-disabled'
|
: 'booking-billing-table-row'
|
||||||
: 'booking-billing-table-row'
|
}`}
|
||||||
}`}
|
|
||||||
style={{
|
style={{
|
||||||
fontFamily:
|
fontFamily:
|
||||||
"'Inter', ui-sans-serif, system-ui, sans-serif",
|
"'Inter', ui-sans-serif, system-ui, sans-serif",
|
||||||
|
|
@ -2524,16 +2532,16 @@ const StandardTable = () => {
|
||||||
? item?.SalesId && OrderType !== 'Hold'
|
? item?.SalesId && OrderType !== 'Hold'
|
||||||
? 'rgb(243, 248, 213)'
|
? 'rgb(243, 248, 213)'
|
||||||
: triggerAnimation &&
|
: triggerAnimation &&
|
||||||
index === 0 &&
|
index === 0 &&
|
||||||
!item?.SalesId &&
|
!item?.SalesId &&
|
||||||
tableDataTakeAway?.length >= PreviousdataLength
|
tableDataTakeAway?.length >= PreviousdataLength
|
||||||
? 'wheat'
|
? 'wheat'
|
||||||
: triggerAnimation &&
|
: triggerAnimation &&
|
||||||
index === 0 &&
|
index === 0 &&
|
||||||
tableDataTakeAway?.length >=
|
tableDataTakeAway?.length >=
|
||||||
PreviousdataLength &&
|
PreviousdataLength &&
|
||||||
!HoldOrderDtl &&
|
!HoldOrderDtl &&
|
||||||
!UnpaidData
|
!UnpaidData
|
||||||
? 'wheat'
|
? 'wheat'
|
||||||
: 'inherit'
|
: 'inherit'
|
||||||
: 'none',
|
: 'none',
|
||||||
|
|
@ -2541,9 +2549,9 @@ const StandardTable = () => {
|
||||||
item?.SalesId && OrderType !== 'Hold'
|
item?.SalesId && OrderType !== 'Hold'
|
||||||
? 'rgb(243, 248, 213)'
|
? 'rgb(243, 248, 213)'
|
||||||
: GlobEstBooking === 'ParEst' &&
|
: GlobEstBooking === 'ParEst' &&
|
||||||
GlobProdwisedata?.includes(
|
GlobProdwisedata?.includes(
|
||||||
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
||||||
)
|
)
|
||||||
? '#b2d1f7'
|
? '#b2d1f7'
|
||||||
: index % 2 === 0
|
: index % 2 === 0
|
||||||
? 'white'
|
? 'white'
|
||||||
|
|
@ -2606,7 +2614,7 @@ const StandardTable = () => {
|
||||||
}}
|
}}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
item.FullProductIdentifierDtls?.length > 0 ||
|
item.FullProductIdentifierDtls?.length > 0 ||
|
||||||
item.ProductIdentifierDtls?.length > 0
|
item.ProductIdentifierDtls?.length > 0
|
||||||
? handleImeiDetails(item)
|
? handleImeiDetails(item)
|
||||||
: editField && handleEditQuantity(item)
|
: editField && handleEditQuantity(item)
|
||||||
}
|
}
|
||||||
|
|
@ -2675,21 +2683,21 @@ const StandardTable = () => {
|
||||||
{productBasedExtraCharges?.find(
|
{productBasedExtraCharges?.find(
|
||||||
(find) => find.ProdId === item.ProdId
|
(find) => find.ProdId === item.ProdId
|
||||||
) !== undefined && (
|
) !== undefined && (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
fontSize: '10px',
|
fontSize: '10px',
|
||||||
fontWeight: '500',
|
fontWeight: '500',
|
||||||
whiteSpace: 'nowrap',
|
whiteSpace: 'nowrap',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Extra Charges :{' '}
|
Extra Charges :{' '}
|
||||||
{
|
{
|
||||||
productBasedExtraCharges?.find(
|
productBasedExtraCharges?.find(
|
||||||
(find) => find.ProdId === item.ProdId
|
(find) => find.ProdId === item.ProdId
|
||||||
)?.TotalAmt
|
)?.TotalAmt
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</td>
|
</td>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
@ -2784,7 +2792,7 @@ const StandardTable = () => {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{safeRound(item?.TotalAmt)}
|
{safeRound(item?.TotalAmt - (item?.Offer || 0) || 0)}
|
||||||
</td>
|
</td>
|
||||||
)}
|
)}
|
||||||
{tableitem.OptionName == 'Delete' && (
|
{tableitem.OptionName == 'Delete' && (
|
||||||
|
|
@ -2828,11 +2836,10 @@ const StandardTable = () => {
|
||||||
{OldtableDataDinein?.map((item, index) => (
|
{OldtableDataDinein?.map((item, index) => (
|
||||||
<tr
|
<tr
|
||||||
key={OldtableDataTakeAway?.length + index}
|
key={OldtableDataTakeAway?.length + index}
|
||||||
className={`${
|
className={`${item?.SalesId
|
||||||
item?.SalesId
|
? 'booking-billing-table-row-disabled'
|
||||||
? 'booking-billing-table-row-disabled'
|
: 'booking-billing-table-row'
|
||||||
: 'booking-billing-table-row'
|
}
|
||||||
}
|
|
||||||
|
|
||||||
`}
|
`}
|
||||||
style={{
|
style={{
|
||||||
|
|
@ -2844,27 +2851,27 @@ const StandardTable = () => {
|
||||||
? item?.SalesId
|
? item?.SalesId
|
||||||
? 'rgb(243, 248, 213)'
|
? 'rgb(243, 248, 213)'
|
||||||
: BookingType === 'Dine In' &&
|
: BookingType === 'Dine In' &&
|
||||||
triggerAnimation &&
|
triggerAnimation &&
|
||||||
OldtableDataTakeAway?.length + index === 0 &&
|
OldtableDataTakeAway?.length + index === 0 &&
|
||||||
!item?.SalesId &&
|
!item?.SalesId &&
|
||||||
tableDataDinein?.length >= PreviousdataLength
|
tableDataDinein?.length >= PreviousdataLength
|
||||||
? 'wheat'
|
? 'wheat'
|
||||||
: BookingType !== 'Dine In' &&
|
: BookingType !== 'Dine In' &&
|
||||||
triggerAnimation &&
|
triggerAnimation &&
|
||||||
OldtableDataTakeAway?.length + index === 0 &&
|
OldtableDataTakeAway?.length + index === 0 &&
|
||||||
tableDataDinein?.length >=
|
tableDataDinein?.length >=
|
||||||
PreviousdataLength &&
|
PreviousdataLength &&
|
||||||
!HoldOrderDtl &&
|
!HoldOrderDtl &&
|
||||||
!UnpaidData
|
!UnpaidData
|
||||||
? 'wheat'
|
? 'wheat'
|
||||||
: 'inherit'
|
: 'inherit'
|
||||||
: 'none',
|
: 'none',
|
||||||
background: item?.SalesId
|
background: item?.SalesId
|
||||||
? 'rgb(243, 248, 213)'
|
? 'rgb(243, 248, 213)'
|
||||||
: GlobEstBooking === 'ParEst' &&
|
: GlobEstBooking === 'ParEst' &&
|
||||||
GlobProdwisedata?.includes(
|
GlobProdwisedata?.includes(
|
||||||
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
||||||
)
|
)
|
||||||
? '#b2d1f7'
|
? '#b2d1f7'
|
||||||
: (OldtableDataTakeAway?.length + index) % 2 === 0
|
: (OldtableDataTakeAway?.length + index) % 2 === 0
|
||||||
? 'white'
|
? 'white'
|
||||||
|
|
@ -2991,21 +2998,21 @@ const StandardTable = () => {
|
||||||
{productBasedExtraCharges?.find(
|
{productBasedExtraCharges?.find(
|
||||||
(find) => find.ProdId === item.ProdId
|
(find) => find.ProdId === item.ProdId
|
||||||
) !== undefined && (
|
) !== undefined && (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
fontSize: '10px',
|
fontSize: '10px',
|
||||||
fontWeight: '500',
|
fontWeight: '500',
|
||||||
whiteSpace: 'nowrap',
|
whiteSpace: 'nowrap',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Extra Charges :{' '}
|
Extra Charges :{' '}
|
||||||
{
|
{
|
||||||
productBasedExtraCharges?.find(
|
productBasedExtraCharges?.find(
|
||||||
(find) => find.ProdId === item.ProdId
|
(find) => find.ProdId === item.ProdId
|
||||||
)?.TotalAmt
|
)?.TotalAmt
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</td>
|
</td>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
@ -3099,7 +3106,7 @@ const StandardTable = () => {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{safeRound(item?.TotalAmt)}
|
{safeRound(item?.TotalAmt - (item?.Offer || 0) || 0)}
|
||||||
</td>
|
</td>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|
@ -3148,11 +3155,10 @@ const StandardTable = () => {
|
||||||
OldtableDataTakeAway?.length +
|
OldtableDataTakeAway?.length +
|
||||||
index
|
index
|
||||||
}
|
}
|
||||||
className={`${
|
className={`${BookingType === 'Dine In' && item?.SalesId
|
||||||
BookingType === 'Dine In' && item?.SalesId
|
? 'booking-billing-table-row-disabled'
|
||||||
? 'booking-billing-table-row-disabled'
|
: 'booking-billing-table-row'
|
||||||
: 'booking-billing-table-row'
|
}
|
||||||
}
|
|
||||||
|
|
||||||
`}
|
`}
|
||||||
style={{
|
style={{
|
||||||
|
|
@ -3161,43 +3167,43 @@ const StandardTable = () => {
|
||||||
? BookingType === 'Dine In' && item?.SalesId
|
? BookingType === 'Dine In' && item?.SalesId
|
||||||
? 'rgb(243, 248, 213)'
|
? 'rgb(243, 248, 213)'
|
||||||
: BookingType === 'Dine In' &&
|
: BookingType === 'Dine In' &&
|
||||||
triggerAnimation &&
|
triggerAnimation &&
|
||||||
OldtableDataDinein?.length +
|
OldtableDataDinein?.length +
|
||||||
OldtableDataTakeAway?.length +
|
OldtableDataTakeAway?.length +
|
||||||
index ===
|
index ===
|
||||||
0 &&
|
0 &&
|
||||||
!item?.SalesId &&
|
!item?.SalesId &&
|
||||||
tableDataTakeAway?.length >= PreviousdataLength
|
tableDataTakeAway?.length >= PreviousdataLength
|
||||||
? 'wheat'
|
? 'wheat'
|
||||||
: BookingType !== 'Dine In' &&
|
: BookingType !== 'Dine In' &&
|
||||||
triggerAnimation &&
|
triggerAnimation &&
|
||||||
OldtableDataDinein?.length +
|
OldtableDataDinein?.length +
|
||||||
OldtableDataTakeAway?.length +
|
OldtableDataTakeAway?.length +
|
||||||
index ===
|
index ===
|
||||||
0 &&
|
0 &&
|
||||||
tableDataTakeAway?.length >=
|
tableDataTakeAway?.length >=
|
||||||
PreviousdataLength &&
|
PreviousdataLength &&
|
||||||
!HoldOrderDtl &&
|
!HoldOrderDtl &&
|
||||||
!UnpaidData
|
!UnpaidData
|
||||||
? 'wheat'
|
? 'wheat'
|
||||||
: (OldtableDataDinein?.length +
|
: (OldtableDataDinein?.length +
|
||||||
OldtableDataTakeAway?.length +
|
OldtableDataTakeAway?.length +
|
||||||
index) %
|
index) %
|
||||||
2 ===
|
2 ===
|
||||||
0
|
0
|
||||||
? 'white'
|
? 'white'
|
||||||
: SelectedBillColor?.[
|
: SelectedBillColor?.[
|
||||||
'OverallBackgroundColor'
|
'OverallBackgroundColor'
|
||||||
]
|
]
|
||||||
? SelectedBillColor?.[
|
? SelectedBillColor?.[
|
||||||
'OverallBackgroundColor'
|
'OverallBackgroundColor'
|
||||||
]
|
]
|
||||||
: '#d6d6d6'
|
: '#d6d6d6'
|
||||||
: (OldtableDataDinein?.length +
|
: (OldtableDataDinein?.length +
|
||||||
OldtableDataTakeAway?.length +
|
OldtableDataTakeAway?.length +
|
||||||
index) %
|
index) %
|
||||||
2 ===
|
2 ===
|
||||||
0
|
0
|
||||||
? 'white'
|
? 'white'
|
||||||
: SelectedBillColor?.['OverallBackgroundColor']
|
: SelectedBillColor?.['OverallBackgroundColor']
|
||||||
? SelectedBillColor?.['OverallBackgroundColor']
|
? SelectedBillColor?.['OverallBackgroundColor']
|
||||||
|
|
@ -3206,15 +3212,15 @@ const StandardTable = () => {
|
||||||
BookingType === 'Dine In' && item?.SalesId
|
BookingType === 'Dine In' && item?.SalesId
|
||||||
? 'rgb(243, 248, 213)'
|
? 'rgb(243, 248, 213)'
|
||||||
: GlobEstBooking === 'ParEst' &&
|
: GlobEstBooking === 'ParEst' &&
|
||||||
GlobProdwisedata?.includes(
|
GlobProdwisedata?.includes(
|
||||||
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
||||||
)
|
)
|
||||||
? '#b2d1f7'
|
? '#b2d1f7'
|
||||||
: (OldtableDataDinein?.length +
|
: (OldtableDataDinein?.length +
|
||||||
OldtableDataTakeAway?.length +
|
OldtableDataTakeAway?.length +
|
||||||
index) %
|
index) %
|
||||||
2 ===
|
2 ===
|
||||||
0
|
0
|
||||||
? 'white'
|
? 'white'
|
||||||
: SelectedBillColor?.['OverallBackgroundColor']
|
: SelectedBillColor?.['OverallBackgroundColor']
|
||||||
? SelectedBillColor?.['OverallBackgroundColor']
|
? SelectedBillColor?.['OverallBackgroundColor']
|
||||||
|
|
@ -3223,9 +3229,9 @@ const StandardTable = () => {
|
||||||
BillOrderPre === 'Y' && !BookingTypeBoth
|
BillOrderPre === 'Y' && !BookingTypeBoth
|
||||||
? triggerAnimation &&
|
? triggerAnimation &&
|
||||||
OldtableDataDinein?.length +
|
OldtableDataDinein?.length +
|
||||||
OldtableDataTakeAway?.length +
|
OldtableDataTakeAway?.length +
|
||||||
index ===
|
index ===
|
||||||
0 &&
|
0 &&
|
||||||
!item?.SalesId &&
|
!item?.SalesId &&
|
||||||
tableDataTakeAway?.length >= PreviousdataLength &&
|
tableDataTakeAway?.length >= PreviousdataLength &&
|
||||||
!HoldOrderDtl &&
|
!HoldOrderDtl &&
|
||||||
|
|
@ -3278,7 +3284,7 @@ const StandardTable = () => {
|
||||||
}}
|
}}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
item.FullProductIdentifierDtls?.length > 0 ||
|
item.FullProductIdentifierDtls?.length > 0 ||
|
||||||
item.ProductIdentifierDtls?.length > 0
|
item.ProductIdentifierDtls?.length > 0
|
||||||
? handleImeiDetails(item)
|
? handleImeiDetails(item)
|
||||||
: editField && handleEditQuantity(item)
|
: editField && handleEditQuantity(item)
|
||||||
}
|
}
|
||||||
|
|
@ -3302,8 +3308,8 @@ const StandardTable = () => {
|
||||||
{!item?.ProdVariantName?.toLowerCase()?.includes(
|
{!item?.ProdVariantName?.toLowerCase()?.includes(
|
||||||
'variant'
|
'variant'
|
||||||
) && (
|
) && (
|
||||||
<span>{item?.ProdVariantName} </span>
|
<span>{item?.ProdVariantName} </span>
|
||||||
)}
|
)}
|
||||||
{AvailableDate ? (
|
{AvailableDate ? (
|
||||||
<>
|
<>
|
||||||
{' '}
|
{' '}
|
||||||
|
|
@ -3353,21 +3359,21 @@ const StandardTable = () => {
|
||||||
{productBasedExtraCharges?.find(
|
{productBasedExtraCharges?.find(
|
||||||
(find) => find.ProdId === item.ProdId
|
(find) => find.ProdId === item.ProdId
|
||||||
) !== undefined && (
|
) !== undefined && (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
fontSize: '10px',
|
fontSize: '10px',
|
||||||
fontWeight: '500',
|
fontWeight: '500',
|
||||||
whiteSpace: 'nowrap',
|
whiteSpace: 'nowrap',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Extra Charges :{' '}
|
Extra Charges :{' '}
|
||||||
{
|
{
|
||||||
productBasedExtraCharges?.find(
|
productBasedExtraCharges?.find(
|
||||||
(find) => find.ProdId === item.ProdId
|
(find) => find.ProdId === item.ProdId
|
||||||
)?.TotalAmt
|
)?.TotalAmt
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</td>
|
</td>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
@ -3462,7 +3468,7 @@ const StandardTable = () => {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{safeRound(item?.TotalAmt)}
|
{safeRound(item?.TotalAmt - (item?.Offer || 0) || 0)}
|
||||||
</td>
|
</td>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|
@ -3511,11 +3517,10 @@ const StandardTable = () => {
|
||||||
tableDataTakeAway?.length +
|
tableDataTakeAway?.length +
|
||||||
index
|
index
|
||||||
}
|
}
|
||||||
className={`${
|
className={`${BookingType === 'Dine In' && item?.SalesId
|
||||||
BookingType === 'Dine In' && item?.SalesId
|
? 'booking-billing-table-row-disabled'
|
||||||
? 'booking-billing-table-row-disabled'
|
: 'booking-billing-table-row'
|
||||||
: 'booking-billing-table-row'
|
}
|
||||||
}
|
|
||||||
|
|
||||||
`}
|
`}
|
||||||
style={{
|
style={{
|
||||||
|
|
@ -3526,45 +3531,45 @@ const StandardTable = () => {
|
||||||
!BookingTypeBoth
|
!BookingTypeBoth
|
||||||
? 'rgb(243, 248, 213)'
|
? 'rgb(243, 248, 213)'
|
||||||
: BookingType === 'Dine In' &&
|
: BookingType === 'Dine In' &&
|
||||||
triggerAnimation &&
|
triggerAnimation &&
|
||||||
OldtableDataTakeAway?.length +
|
OldtableDataTakeAway?.length +
|
||||||
OldtableDataDinein?.length +
|
OldtableDataDinein?.length +
|
||||||
tableDataTakeAway?.length +
|
tableDataTakeAway?.length +
|
||||||
index ===
|
index ===
|
||||||
0 &&
|
0 &&
|
||||||
!item?.SalesId &&
|
!item?.SalesId &&
|
||||||
tableDataDinein?.length >= PreviousdataLength
|
tableDataDinein?.length >= PreviousdataLength
|
||||||
? 'wheat'
|
? 'wheat'
|
||||||
: BookingType !== 'Dine In' &&
|
: BookingType !== 'Dine In' &&
|
||||||
triggerAnimation &&
|
triggerAnimation &&
|
||||||
OldtableDataTakeAway?.length +
|
OldtableDataTakeAway?.length +
|
||||||
OldtableDataDinein?.length +
|
OldtableDataDinein?.length +
|
||||||
tableDataTakeAway?.length +
|
tableDataTakeAway?.length +
|
||||||
index ===
|
index ===
|
||||||
0 &&
|
0 &&
|
||||||
tableDataDinein?.length >=
|
tableDataDinein?.length >=
|
||||||
PreviousdataLength &&
|
PreviousdataLength &&
|
||||||
!HoldOrderDtl &&
|
!HoldOrderDtl &&
|
||||||
!UnpaidData
|
!UnpaidData
|
||||||
? 'wheat'
|
? 'wheat'
|
||||||
: 'inherit'
|
: 'inherit'
|
||||||
: 'none',
|
: 'none',
|
||||||
background:
|
background:
|
||||||
BookingType === 'Dine In' &&
|
BookingType === 'Dine In' &&
|
||||||
item?.SalesId &&
|
item?.SalesId &&
|
||||||
!BookingTypeBoth
|
!BookingTypeBoth
|
||||||
? 'rgb(243, 248, 213)'
|
? 'rgb(243, 248, 213)'
|
||||||
: GlobEstBooking === 'ParEst' &&
|
: GlobEstBooking === 'ParEst' &&
|
||||||
GlobProdwisedata?.includes(
|
GlobProdwisedata?.includes(
|
||||||
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
item?.InwardDtlId + ' ' + item?.BookingTypeName
|
||||||
)
|
)
|
||||||
? '#b2d1f7'
|
? '#b2d1f7'
|
||||||
: (OldtableDataTakeAway?.length +
|
: (OldtableDataTakeAway?.length +
|
||||||
OldtableDataDinein?.length +
|
OldtableDataDinein?.length +
|
||||||
tableDataTakeAway?.length +
|
tableDataTakeAway?.length +
|
||||||
index) %
|
index) %
|
||||||
2 ===
|
2 ===
|
||||||
0
|
0
|
||||||
? 'white'
|
? 'white'
|
||||||
: SelectedBillColor?.['OverallBackgroundColor']
|
: SelectedBillColor?.['OverallBackgroundColor']
|
||||||
? SelectedBillColor?.['OverallBackgroundColor']
|
? SelectedBillColor?.['OverallBackgroundColor']
|
||||||
|
|
@ -3573,10 +3578,10 @@ const StandardTable = () => {
|
||||||
BillOrderPre === 'Y' && !BookingTypeBoth
|
BillOrderPre === 'Y' && !BookingTypeBoth
|
||||||
? triggerAnimation &&
|
? triggerAnimation &&
|
||||||
OldtableDataTakeAway?.length +
|
OldtableDataTakeAway?.length +
|
||||||
OldtableDataDinein?.length +
|
OldtableDataDinein?.length +
|
||||||
tableDataTakeAway?.length +
|
tableDataTakeAway?.length +
|
||||||
index ===
|
index ===
|
||||||
0 &&
|
0 &&
|
||||||
!item?.SalesId &&
|
!item?.SalesId &&
|
||||||
tableDataDinein?.length >= PreviousdataLength &&
|
tableDataDinein?.length >= PreviousdataLength &&
|
||||||
!HoldOrderDtl &&
|
!HoldOrderDtl &&
|
||||||
|
|
@ -3698,21 +3703,21 @@ const StandardTable = () => {
|
||||||
{productBasedExtraCharges?.find(
|
{productBasedExtraCharges?.find(
|
||||||
(find) => find.ProdId === item.ProdId
|
(find) => find.ProdId === item.ProdId
|
||||||
) !== undefined && (
|
) !== undefined && (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
fontSize: '10px',
|
fontSize: '10px',
|
||||||
fontWeight: '500',
|
fontWeight: '500',
|
||||||
whiteSpace: 'nowrap',
|
whiteSpace: 'nowrap',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Extra Charges :{' '}
|
Extra Charges :{' '}
|
||||||
{
|
{
|
||||||
productBasedExtraCharges?.find(
|
productBasedExtraCharges?.find(
|
||||||
(find) => find.ProdId === item.ProdId
|
(find) => find.ProdId === item.ProdId
|
||||||
)?.TotalAmt
|
)?.TotalAmt
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</td>
|
</td>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
@ -3806,7 +3811,7 @@ const StandardTable = () => {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{safeRound(item?.TotalAmt)}
|
{safeRound(item?.TotalAmt - (item?.Offer || 0) || 0)}
|
||||||
</td>
|
</td>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
height: 2rem;
|
height: 2rem;
|
||||||
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
|
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
|
||||||
|
|
||||||
> th {
|
>th {
|
||||||
font-size: 10px !important;
|
font-size: 10px !important;
|
||||||
font-weight: 400 !important;
|
font-weight: 400 !important;
|
||||||
-webkit-text-stroke-width: 0.2px;
|
-webkit-text-stroke-width: 0.2px;
|
||||||
|
|
@ -1116,19 +1116,20 @@
|
||||||
@media (max-width: 500px) {
|
@media (max-width: 500px) {
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ShoppingCartMain-left {
|
.ShoppingCartMain-left {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
||||||
> div {
|
>div {
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
|
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
> p {
|
>p {
|
||||||
background-color: #fff3;
|
background-color: #fff3;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
padding: 1px 6px;
|
padding: 1px 6px;
|
||||||
|
|
@ -1153,11 +1154,9 @@
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
background-color: linear-gradient(
|
background-color: linear-gradient(to bottom right,
|
||||||
to bottom right,
|
#1e2536,
|
||||||
#1e2536,
|
#2a3447) !important;
|
||||||
#2a3447
|
|
||||||
) !important;
|
|
||||||
background: linear-gradient(to bottom right, #1e2536, #2a3447) !important;
|
background: linear-gradient(to bottom right, #1e2536, #2a3447) !important;
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
}
|
}
|
||||||
|
|
@ -1172,13 +1171,13 @@
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
||||||
> div {
|
>div {
|
||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
|
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
> p {
|
>p {
|
||||||
background-color: #fff3;
|
background-color: #fff3;
|
||||||
font-size: small;
|
font-size: small;
|
||||||
padding: 1px 6px;
|
padding: 1px 6px;
|
||||||
|
|
@ -1194,11 +1193,11 @@
|
||||||
padding: 12px 16px;
|
padding: 12px 16px;
|
||||||
|
|
||||||
.ShoppingCartMain-left {
|
.ShoppingCartMain-left {
|
||||||
> div {
|
>div {
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
> p {
|
>p {
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1209,11 +1208,11 @@
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
|
|
||||||
.ShoppingCartMain-left {
|
.ShoppingCartMain-left {
|
||||||
> div {
|
>div {
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
> p {
|
>p {
|
||||||
font-size: 0.7rem;
|
font-size: 0.7rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1269,6 +1268,27 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.standard-pay-btn-refund {
|
||||||
|
padding: 0.9rem 0.75rem;
|
||||||
|
font-size: 1.125rem;
|
||||||
|
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
// justify-content: space-around;
|
||||||
|
gap: 0.5rem;
|
||||||
|
opacity: 1;
|
||||||
|
background-color: #0d9488;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
@media (max-width: 500px) {
|
||||||
|
padding: 0.75rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.standard-pay-btn {
|
.standard-pay-btn {
|
||||||
padding: 0.9rem 0.75rem;
|
padding: 0.9rem 0.75rem;
|
||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
|
|
@ -1538,7 +1558,7 @@
|
||||||
.paybutton {
|
.paybutton {
|
||||||
padding: 10px 12px;
|
padding: 10px 12px;
|
||||||
|
|
||||||
> svg {
|
>svg {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1557,9 +1577,7 @@
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.booking-billing-table-container
|
.booking-billing-table-container .shoppingCartLeft .payment-buttons-container {
|
||||||
.shoppingCartLeft
|
|
||||||
.payment-buttons-container {
|
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
|
|
@ -1596,7 +1614,7 @@
|
||||||
.standard-pay-btns {
|
.standard-pay-btns {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|
||||||
> button {
|
>button {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1650,4 +1668,4 @@
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -12,6 +12,7 @@ import Credit from '../../UtillComponents/Pozo retail icons/credit.svg';
|
||||||
import { FaCreditCard } from 'react-icons/fa6';
|
import { FaCreditCard } from 'react-icons/fa6';
|
||||||
import {
|
import {
|
||||||
changeAddBookingDetailsTrigger,
|
changeAddBookingDetailsTrigger,
|
||||||
|
changeBillEditingMode,
|
||||||
changeBookingType,
|
changeBookingType,
|
||||||
ChangeComboCarddata,
|
ChangeComboCarddata,
|
||||||
changeCurrentOrderId,
|
changeCurrentOrderId,
|
||||||
|
|
@ -25,6 +26,8 @@ import {
|
||||||
ChangeOverAllDiscSales,
|
ChangeOverAllDiscSales,
|
||||||
changePaymentloader,
|
changePaymentloader,
|
||||||
changePaymentTransactionNumber,
|
changePaymentTransactionNumber,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
|
changePreviousOrderPayment,
|
||||||
changeReorderHoldDetails,
|
changeReorderHoldDetails,
|
||||||
changeReorderProductDetails,
|
changeReorderProductDetails,
|
||||||
changeSelectChair,
|
changeSelectChair,
|
||||||
|
|
@ -50,6 +53,7 @@ import {
|
||||||
getCurrentOrderid,
|
getCurrentOrderid,
|
||||||
getLayoutproductCard,
|
getLayoutproductCard,
|
||||||
GetPaymentdeviceResponse,
|
GetPaymentdeviceResponse,
|
||||||
|
getPaymentOptions,
|
||||||
getSalesDetailData,
|
getSalesDetailData,
|
||||||
getSelectedFavItems,
|
getSelectedFavItems,
|
||||||
getUnpaidData,
|
getUnpaidData,
|
||||||
|
|
@ -72,11 +76,15 @@ import {
|
||||||
GlobalOverAllDiscEstimate,
|
GlobalOverAllDiscEstimate,
|
||||||
GlobalOverAllDiscSales,
|
GlobalOverAllDiscSales,
|
||||||
GlobalPayementloader,
|
GlobalPayementloader,
|
||||||
|
GlobalpaymentOptionData,
|
||||||
GlobalPaymentTrigger,
|
GlobalPaymentTrigger,
|
||||||
|
GlobalPreviousOrderOfferDetails,
|
||||||
|
GlobalPreviousOrderPayment,
|
||||||
GlobalProductCategorie,
|
GlobalProductCategorie,
|
||||||
GlobalProductSubCategorie,
|
GlobalProductSubCategorie,
|
||||||
GlobalReorderHoldDetails,
|
GlobalReorderHoldDetails,
|
||||||
GlobalRetailWSSalesType,
|
GlobalRetailWSSalesType,
|
||||||
|
GlobalSalesBillEdit,
|
||||||
GlobalSelCustId,
|
GlobalSelCustId,
|
||||||
GlobalSelectedTableDetails,
|
GlobalSelectedTableDetails,
|
||||||
GlobalSelOption,
|
GlobalSelOption,
|
||||||
|
|
@ -93,6 +101,7 @@ import {
|
||||||
PutBookingData,
|
PutBookingData,
|
||||||
PutBookingPaymentStatusChange,
|
PutBookingPaymentStatusChange,
|
||||||
PutPendingPaymentList,
|
PutPendingPaymentList,
|
||||||
|
putSalesBillEdit,
|
||||||
putSplitpaymentStatus,
|
putSplitpaymentStatus,
|
||||||
SendPaymentLink,
|
SendPaymentLink,
|
||||||
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
} from '../../../../../Features/BookingScreen/BookingData/BookingData';
|
||||||
|
|
@ -267,6 +276,10 @@ const StandardTablePayment = () => {
|
||||||
const GlobProdwisedata = useSelector(GlobalSelProdWiseEst);
|
const GlobProdwisedata = useSelector(GlobalSelProdWiseEst);
|
||||||
const GlobEstBooking = useSelector(GlobalEstimateBooking);
|
const GlobEstBooking = useSelector(GlobalEstimateBooking);
|
||||||
const OtherServicesglobal = useSelector(GlobalOtherSevices);
|
const OtherServicesglobal = useSelector(GlobalOtherSevices);
|
||||||
|
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||||
|
const previousOrderPayment = useSelector(GlobalPreviousOrderPayment);
|
||||||
|
const previousOrderOfferDetails = useSelector(GlobalPreviousOrderOfferDetails);
|
||||||
|
const AllPaymentOptions = useSelector(GlobalpaymentOptionData);
|
||||||
const OrderType = useSelector(GlobalOrderType);
|
const OrderType = useSelector(GlobalOrderType);
|
||||||
const unpaidFlow = useSelector(Globalunpaidflow);
|
const unpaidFlow = useSelector(Globalunpaidflow);
|
||||||
const selOption = useSelector(GlobalSelOption);
|
const selOption = useSelector(GlobalSelOption);
|
||||||
|
|
@ -354,6 +367,11 @@ const StandardTablePayment = () => {
|
||||||
const [PaymentDeviceUPI, setPaymentDeviceUPI] = useState([]);
|
const [PaymentDeviceUPI, setPaymentDeviceUPI] = useState([]);
|
||||||
const [ConfigDataList, setConfigDataList] = useState([]);
|
const [ConfigDataList, setConfigDataList] = useState([]);
|
||||||
const [TotalAmount, setTotalAmount] = useState(0);
|
const [TotalAmount, setTotalAmount] = useState(0);
|
||||||
|
const [refundPayBtns, setRefundPayBtns] = useState([]);
|
||||||
|
const [refundPaySelected, setRefundPaySelected] = useState();
|
||||||
|
const [refundPaySelectedName, setRefundPaySelectedName] = useState(null);
|
||||||
|
const [currentOrderNetAmount, setCurrentOrderNetAmount] = useState(0);
|
||||||
|
const [previousNetAmount, setPreviousNetAmount] = useState(0);
|
||||||
const [FirstPaymentclick, setFirstPaymentclick] = useState(false);
|
const [FirstPaymentclick, setFirstPaymentclick] = useState(false);
|
||||||
const [UpinotSelected, setUpinotSelected] = useState(false);
|
const [UpinotSelected, setUpinotSelected] = useState(false);
|
||||||
const [brachName, setbrachName] = useState('');
|
const [brachName, setbrachName] = useState('');
|
||||||
|
|
@ -486,6 +504,12 @@ const StandardTablePayment = () => {
|
||||||
);
|
);
|
||||||
}, [GlobalExtraCharge]);
|
}, [GlobalExtraCharge]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (salesBillEdit) {
|
||||||
|
dispatch(getPaymentOptions()).unwrap();
|
||||||
|
}
|
||||||
|
}, [salesBillEdit]);
|
||||||
|
|
||||||
const customerNameOrMobile = MobileNoWhatsApp?.CustName?.trim()
|
const customerNameOrMobile = MobileNoWhatsApp?.CustName?.trim()
|
||||||
? `Dear ${MobileNoWhatsApp?.CustName}`
|
? `Dear ${MobileNoWhatsApp?.CustName}`
|
||||||
: `Dear ${MobileNoWhatsApp?.value}`;
|
: `Dear ${MobileNoWhatsApp?.value}`;
|
||||||
|
|
@ -706,7 +730,6 @@ const StandardTablePayment = () => {
|
||||||
CheckBookingStatus,
|
CheckBookingStatus,
|
||||||
addnewAccess,
|
addnewAccess,
|
||||||
preferenceshortcutkey,
|
preferenceshortcutkey,
|
||||||
|
|
||||||
unpaidFlow,
|
unpaidFlow,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
@ -809,7 +832,13 @@ const StandardTablePayment = () => {
|
||||||
}, [paybtnselected, selOption, payBtns]);
|
}, [paybtnselected, selOption, payBtns]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
orderCardDetail?.length == 0 ? dispatch(changeunpaidflow(false)) : '';
|
if (orderCardDetail?.length == 0) {
|
||||||
|
dispatch(changeunpaidflow(false));
|
||||||
|
// dispatch(changePreviousOrderPayment([]));
|
||||||
|
// dispatch(changePreviousOrderOfferDetail([]));
|
||||||
|
// dispatch(changeBillEditingMode(false));
|
||||||
|
}
|
||||||
|
|
||||||
if (!preOrder) {
|
if (!preOrder) {
|
||||||
const totalSum = orderCardDetail?.reduce(
|
const totalSum = orderCardDetail?.reduce(
|
||||||
(acc, card) => acc + parseFloat(card.OrderRate * card.OrderQty || 0),
|
(acc, card) => acc + parseFloat(card.OrderRate * card.OrderQty || 0),
|
||||||
|
|
@ -866,29 +895,45 @@ const StandardTablePayment = () => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const filteredPayments =
|
||||||
|
previousOrderPayment?.filter(
|
||||||
|
p => p?.LastOrderTran === 'Y' && p?.AfterAdjustment != null && p?.AfterAdjustment !== '' && p?.AfterAdjustment
|
||||||
|
) || [];
|
||||||
|
|
||||||
|
const paymentsToUse =
|
||||||
|
filteredPayments.length > 0 ? filteredPayments : previousOrderPayment || [];
|
||||||
|
|
||||||
|
const totalPreviouspayment = paymentsToUse?.reduce(
|
||||||
|
(acc, payment) => acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const totalPreviousOfferAmount = previousOrderOfferDetails?.reduce(
|
||||||
|
(acc, offer) => acc + parseFloat(offer.OfferAmount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const previousNetAmount =
|
||||||
|
(totalPreviouspayment) || 0;
|
||||||
|
|
||||||
|
|
||||||
let withdiscTotal =
|
let withdiscTotal =
|
||||||
Total -
|
Total -
|
||||||
((OverAllSales || 0) +
|
((OverAllSales || 0) +
|
||||||
(OverAllEstimate || 0) +
|
(OverAllEstimate || 0) +
|
||||||
(Discount > 0 ? Discount : 0));
|
(Discount > 0 ? Discount : 0));
|
||||||
|
|
||||||
setTotalAmount(
|
const currentOrderNetAmount = formatAmount(
|
||||||
formatAmount(
|
withdiscTotal >= 0
|
||||||
withdiscTotal >= 0
|
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
||||||
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
||||||
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
)
|
||||||
)
|
console.log(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount, "totalPreviouspayment")
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(
|
setTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount);
|
||||||
changeSummeryTotalAmount(
|
setCurrentOrderNetAmount(currentOrderNetAmount);
|
||||||
formatAmount(
|
setPreviousNetAmount(previousNetAmount);
|
||||||
withdiscTotal >= 0
|
dispatch(changeSummeryTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount));
|
||||||
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
|
||||||
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
// dispatch(
|
// dispatch(
|
||||||
// changeSummeryTotalAmount(withdiscTotal > 0 ? withdiscTotal : Number(Total))
|
// changeSummeryTotalAmount(withdiscTotal > 0 ? withdiscTotal : Number(Total))
|
||||||
// );
|
// );
|
||||||
|
|
@ -1016,6 +1061,25 @@ const StandardTablePayment = () => {
|
||||||
}
|
}
|
||||||
}, [PaymentUpiOptions, PaymentOptions, SelCustId]);
|
}, [PaymentUpiOptions, PaymentOptions, SelCustId]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
if (salesBillEdit) {
|
||||||
|
if (SelCustId) {
|
||||||
|
setRefundPayBtns(AllPaymentOptions);
|
||||||
|
setRefundPaySelected(AllPaymentOptions?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(AllPaymentOptions?.[0]?.ConfigName);
|
||||||
|
} else {
|
||||||
|
const withoutCustomer = AllPaymentOptions?.filter?.(
|
||||||
|
(item) => item?.ConfigName?.toLowerCase() !== 'credit'
|
||||||
|
);
|
||||||
|
setRefundPaySelected(withoutCustomer?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(withoutCustomer?.[0]?.ConfigName);
|
||||||
|
setRefundPayBtns(withoutCustomer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [AllPaymentOptions, SelCustId, salesBillEdit])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (
|
if (
|
||||||
(BookingType === 'Dine In' ||
|
(BookingType === 'Dine In' ||
|
||||||
|
|
@ -1112,6 +1176,10 @@ const StandardTablePayment = () => {
|
||||||
const handleButtonClick = () => {
|
const handleButtonClick = () => {
|
||||||
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
if (qrCode && SelectedUPIPayOption === 'Default' && UpiQRPreference) {
|
||||||
UpiPayment();
|
UpiPayment();
|
||||||
|
} else if (salesBillEdit && currentOrderNetAmount < previousNetAmount && !refundPaySelected) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Please Select Refund Payment Method');
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? AddBookingDetails('Dine-In', false)
|
? AddBookingDetails('Dine-In', false)
|
||||||
|
|
@ -1490,7 +1558,7 @@ const StandardTablePayment = () => {
|
||||||
SalesPaymentType: 'normal',
|
SalesPaymentType: 'normal',
|
||||||
PaymentDetail: [
|
PaymentDetail: [
|
||||||
{
|
{
|
||||||
PaymentType:
|
PaymentType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? refundPaySelected :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi'
|
Paybtnnameselected?.toLowerCase() === 'upi'
|
||||||
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
||||||
? PaymentDeviceUPI?.[0]?.ModeId
|
? PaymentDeviceUPI?.[0]?.ModeId
|
||||||
|
|
@ -1504,14 +1572,14 @@ const StandardTablePayment = () => {
|
||||||
: paybtnselected
|
: paybtnselected
|
||||||
? paybtnselected
|
? paybtnselected
|
||||||
: null,
|
: null,
|
||||||
Amount: Math.round(TotalAmount),
|
Amount: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? previousNetAmount - currentOrderNetAmount : Math.round(TotalAmount),
|
||||||
MerchantId:
|
MerchantId: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'business'
|
SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantId
|
?.MerchantId
|
||||||
: null,
|
: null,
|
||||||
PaymentOptionType:
|
PaymentOptionType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) && (refundPaySelectedName?.toLowerCase() === 'cash' || refundPaySelectedName?.toLowerCase() === 'credit') ? 'PC' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -1525,7 +1593,7 @@ const StandardTablePayment = () => {
|
||||||
? 'BU'
|
? 'BU'
|
||||||
: SelectedUPIPayOption
|
: SelectedUPIPayOption
|
||||||
: null,
|
: null,
|
||||||
ModeOfPayment:
|
ModeOfPayment: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
||||||
?.UPIDetailId
|
?.UPIDetailId
|
||||||
|
|
@ -1533,7 +1601,7 @@ const StandardTablePayment = () => {
|
||||||
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
?.MerchantUPIId
|
?.MerchantUPIId
|
||||||
: null,
|
: null,
|
||||||
AccountDtl:
|
AccountDtl: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? [] :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||||
|
|
@ -1550,7 +1618,7 @@ const StandardTablePayment = () => {
|
||||||
SelectedCardOption?.toLowerCase() === 'pg')
|
SelectedCardOption?.toLowerCase() === 'pg')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||||
: [],
|
: [],
|
||||||
PaymentStatus:
|
PaymentStatus: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? 'S' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'S'
|
? 'S'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -1559,8 +1627,8 @@ const StandardTablePayment = () => {
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
Debit: 0,
|
Debit: (salesBillEdit && currentOrderNetAmount < previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(previousNetAmount - currentOrderNetAmount) : 0,
|
||||||
Credit:
|
Credit: salesBillEdit ? (currentOrderNetAmount > previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(TotalAmount) : 0 :
|
||||||
Paybtnnameselected?.toLowerCase() === 'credit'
|
Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
? Math.round(TotalAmount)
|
? Math.round(TotalAmount)
|
||||||
: 0,
|
: 0,
|
||||||
|
|
@ -1793,7 +1861,12 @@ const StandardTablePayment = () => {
|
||||||
putdata['PaymentType'] = !pay && '';
|
putdata['PaymentType'] = !pay && '';
|
||||||
putdata['PrintType'] = 'Y';
|
putdata['PrintType'] = 'Y';
|
||||||
}
|
}
|
||||||
let response = await dispatch(PutBookingData(putdata)).unwrap();
|
let response = null;
|
||||||
|
if (salesBillEdit) {
|
||||||
|
response = await dispatch(putSalesBillEdit(putdata)).unwrap();
|
||||||
|
} else {
|
||||||
|
response = await dispatch(PutBookingData(putdata)).unwrap();
|
||||||
|
}
|
||||||
if (value !== 'Unpaid') {
|
if (value !== 'Unpaid') {
|
||||||
if (response?.data?.statusCode == 1) {
|
if (response?.data?.statusCode == 1) {
|
||||||
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
|
|
@ -1845,6 +1918,7 @@ const StandardTablePayment = () => {
|
||||||
if (response?.data?.OrderDetails?.length > 0) {
|
if (response?.data?.OrderDetails?.length > 0) {
|
||||||
setPrintOrderDetails([response?.data]);
|
setPrintOrderDetails([response?.data]);
|
||||||
}
|
}
|
||||||
|
|
||||||
ClearAllGlobalStateDatas();
|
ClearAllGlobalStateDatas();
|
||||||
console.log('more pg data');
|
console.log('more pg data');
|
||||||
}
|
}
|
||||||
|
|
@ -1858,6 +1932,7 @@ const StandardTablePayment = () => {
|
||||||
await dispatch(changeOrderCardDetails([]));
|
await dispatch(changeOrderCardDetails([]));
|
||||||
await dispatch(changeReorderHoldDetails({}));
|
await dispatch(changeReorderHoldDetails({}));
|
||||||
await dispatch(changeReorderProductDetails([]));
|
await dispatch(changeReorderProductDetails([]));
|
||||||
|
|
||||||
setFirstPaymentclick(false);
|
setFirstPaymentclick(false);
|
||||||
if (defaultBookingType === 'Both') {
|
if (defaultBookingType === 'Both') {
|
||||||
await dispatch(changeBookingType('TakeAway'));
|
await dispatch(changeBookingType('TakeAway'));
|
||||||
|
|
@ -1959,6 +2034,10 @@ const StandardTablePayment = () => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleSalesBillEdit = async (putdatas, value, pay) => {
|
||||||
|
console.log(putdatas, value, pay, "handleSalesBillEdit")
|
||||||
|
}
|
||||||
|
|
||||||
const OtherServicePostBooking = async (PostData, value) => {
|
const OtherServicePostBooking = async (PostData, value) => {
|
||||||
console.log(PostData, value, 'PostData, value');
|
console.log(PostData, value, 'PostData, value');
|
||||||
|
|
||||||
|
|
@ -2703,6 +2782,11 @@ const StandardTablePayment = () => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefundPaymentMode = (id, name) => {
|
||||||
|
setRefundPaySelected(id);
|
||||||
|
setRefundPaySelectedName(name);
|
||||||
|
}
|
||||||
|
|
||||||
const addUpiOption = async (id, name, UPIId) => {
|
const addUpiOption = async (id, name, UPIId) => {
|
||||||
await dispatch(changeUpiIDprint(UPIId));
|
await dispatch(changeUpiIDprint(UPIId));
|
||||||
await dispatch(changeUpiIDName(name));
|
await dispatch(changeUpiIDName(name));
|
||||||
|
|
@ -2733,6 +2817,9 @@ const StandardTablePayment = () => {
|
||||||
ParkingClaimed: false,
|
ParkingClaimed: false,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
dispatch(changeTipAmount(0));
|
dispatch(changeTipAmount(0));
|
||||||
dispatch(changeFullOfferAppliedProducts([]));
|
dispatch(changeFullOfferAppliedProducts([]));
|
||||||
dispatch(ChangeFullFreeProductList([]));
|
dispatch(ChangeFullFreeProductList([]));
|
||||||
|
|
@ -2752,6 +2839,8 @@ const StandardTablePayment = () => {
|
||||||
setQrCode(false);
|
setQrCode(false);
|
||||||
setUpinotSelected(false);
|
setUpinotSelected(false);
|
||||||
getHolddata();
|
getHolddata();
|
||||||
|
setCurrentOrderNetAmount(0);
|
||||||
|
setPreviousNetAmount(0);
|
||||||
if (defaultBookingType === 'Both') {
|
if (defaultBookingType === 'Both') {
|
||||||
await dispatch(changeBookingType('TakeAway'));
|
await dispatch(changeBookingType('TakeAway'));
|
||||||
}
|
}
|
||||||
|
|
@ -2893,7 +2982,7 @@ const StandardTablePayment = () => {
|
||||||
async (orderDetail, index) => {
|
async (orderDetail, index) => {
|
||||||
await printDiv(`${selectedStyle}-${index}`, style); // Use unique IDs for each print
|
await printDiv(`${selectedStyle}-${index}`, style); // Use unique IDs for each print
|
||||||
if (orderDetail?.BookingTypeName !== 'Dine In') {
|
if (orderDetail?.BookingTypeName !== 'Dine In') {
|
||||||
const groupedTokens = orderDetail?.productDetails?.reduce(
|
const groupedTokens = orderDetail?.productDetails?.filter(data => data?.EditTokenAvailable !== 'N')?.reduce(
|
||||||
(acc, item, idx) => {
|
(acc, item, idx) => {
|
||||||
if (item.TokenAvailable === 'Y') {
|
if (item.TokenAvailable === 'Y') {
|
||||||
if (!item.CounterName) {
|
if (!item.CounterName) {
|
||||||
|
|
@ -2938,7 +3027,7 @@ const StandardTablePayment = () => {
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
PrintOrderDetails?.[0]?.OrderDetails?.map(
|
PrintOrderDetails?.[0]?.OrderDetails?.map(
|
||||||
async (orderDetail, index) => {
|
async (orderDetail, index) => {
|
||||||
const groupedTokens = orderDetail?.productDetails?.reduce(
|
const groupedTokens = orderDetail?.productDetails?.filter(data => data?.EditTokenAvailable !== 'N')?.reduce(
|
||||||
(acc, item, idx) => {
|
(acc, item, idx) => {
|
||||||
if (item.TokenAvailable === 'Y') {
|
if (item.TokenAvailable === 'Y') {
|
||||||
if (!item.CounterName) {
|
if (!item.CounterName) {
|
||||||
|
|
@ -2974,7 +3063,7 @@ const StandardTablePayment = () => {
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
PrintOrderDetails?.[0]?.OrderDetails?.map(
|
PrintOrderDetails?.[0]?.OrderDetails?.filter(data => data?.EditTokenAvailable !== 'N')?.map(
|
||||||
async (orderDetail, index) => {
|
async (orderDetail, index) => {
|
||||||
await TokenPrint(`${index}-${orderDetail?.OrderId}`);
|
await TokenPrint(`${index}-${orderDetail?.OrderId}`);
|
||||||
}
|
}
|
||||||
|
|
@ -3188,7 +3277,7 @@ const StandardTablePayment = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const SplitPaymentOpen = () => {
|
const SplitPaymentOpen = () => {
|
||||||
if (orderCardDetail?.length > 0) {
|
if (orderCardDetail?.length > 0 && TotalAmount > 0) {
|
||||||
// const updatedData = {
|
// const updatedData = {
|
||||||
// userData: OrderCardDetail,
|
// userData: OrderCardDetail,
|
||||||
// ExtraCharges: GlobalExtraCharge,
|
// ExtraCharges: GlobalExtraCharge,
|
||||||
|
|
@ -3198,6 +3287,11 @@ const StandardTablePayment = () => {
|
||||||
// setFailedOrderData(updatedData);
|
// setFailedOrderData(updatedData);
|
||||||
setSplitpayment(true);
|
setSplitpayment(true);
|
||||||
} else {
|
} else {
|
||||||
|
if (TotalAmount <= 0) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Cannot split when total amount is zero or less');
|
||||||
|
return;
|
||||||
|
}
|
||||||
setMessageType('warning');
|
setMessageType('warning');
|
||||||
setMessageData('Please Select the Product');
|
setMessageData('Please Select the Product');
|
||||||
}
|
}
|
||||||
|
|
@ -3610,7 +3704,7 @@ const StandardTablePayment = () => {
|
||||||
opacity: isDisabled ? 0.5 : 1,
|
opacity: isDisabled ? 0.5 : 1,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{payBtns?.length > 0 ? (
|
{payBtns?.length > 0 && (currentOrderNetAmount >= previousNetAmount) ? (
|
||||||
payBtns.map((payment) => {
|
payBtns.map((payment) => {
|
||||||
const mode = payment?.ModeName?.toLowerCase();
|
const mode = payment?.ModeName?.toLowerCase();
|
||||||
const isSelected = paybtnselected === payment?.ModeId;
|
const isSelected = paybtnselected === payment?.ModeId;
|
||||||
|
|
@ -3700,6 +3794,55 @@ const StandardTablePayment = () => {
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
|
) : (currentOrderNetAmount < previousNetAmount && salesBillEdit && refundPayBtns.length > 0) ? (
|
||||||
|
refundPayBtns.map((payment) => {
|
||||||
|
const mode = payment?.ConfigName?.toLowerCase();
|
||||||
|
const isSelected = refundPaySelected === payment?.ConfigId;
|
||||||
|
const buttonClass = isSelected
|
||||||
|
? 'paybutton-selected'
|
||||||
|
: 'paybutton';
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="standard-pay-btns" key={payment?.ConfigId}>
|
||||||
|
<button
|
||||||
|
className={buttonClass}
|
||||||
|
style={{
|
||||||
|
// fontFamily: FontFamily['para'],
|
||||||
|
backgroundColor:
|
||||||
|
mode === 'upi'
|
||||||
|
? '#2563eb'
|
||||||
|
: mode === 'card'
|
||||||
|
? '#9333ea'
|
||||||
|
: mode === 'credit'
|
||||||
|
? '#9333ea'
|
||||||
|
: '#16a34a',
|
||||||
|
animation: blink
|
||||||
|
? 'blink-animation 0.5s infinite alternate'
|
||||||
|
: 'none',
|
||||||
|
}}
|
||||||
|
onClick={() => handleRefundPaymentMode(payment?.ConfigId, payment?.ConfigName)}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
alignItems: 'center',
|
||||||
|
gap: '0.5rem',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{mode === 'cash' && <FaMoneyBillWave />}
|
||||||
|
{mode === 'upi' && <FaMobileScreenButton />}
|
||||||
|
|
||||||
|
{mode === 'credit' && (
|
||||||
|
<>
|
||||||
|
<img src={Credit} alt="" width={20} />
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
{payment?.ConfigName}
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
onClick={handlePaymentOptions}
|
onClick={handlePaymentOptions}
|
||||||
|
|
@ -3721,14 +3864,15 @@ const StandardTablePayment = () => {
|
||||||
orderCardDetail?.length > 0 &&
|
orderCardDetail?.length > 0 &&
|
||||||
paybtnselected &&
|
paybtnselected &&
|
||||||
CheckBookingStatus !== 'Close'
|
CheckBookingStatus !== 'Close'
|
||||||
? !OrderStatus
|
? !OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ?
|
||||||
? 'standard-pay-btn'
|
'standard-pay-btn-refund'
|
||||||
|
: 'standard-pay-btn'
|
||||||
: 'standard-pay-btn order-complete'
|
: 'standard-pay-btn order-complete'
|
||||||
: 'standard-pay-btn-disabled'
|
: 'standard-pay-btn-disabled'
|
||||||
}
|
}
|
||||||
onClick={handleButtonClick}
|
onClick={handleButtonClick}
|
||||||
>
|
>
|
||||||
{!OrderStatus ? (
|
{!OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ? <p>Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</p> : (
|
||||||
<>
|
<>
|
||||||
<p
|
<p
|
||||||
className="standard-pay-amount"
|
className="standard-pay-amount"
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,16 @@ import {
|
||||||
changeCurrentOrderId,
|
changeCurrentOrderId,
|
||||||
getCreditCustomer,
|
getCreditCustomer,
|
||||||
ChangeSelectedCustDisable,
|
ChangeSelectedCustDisable,
|
||||||
|
GlobalSalesBillEdit,
|
||||||
|
GlobalPreviousOrderPayment,
|
||||||
|
GlobalPreviousOrderOfferDetails,
|
||||||
|
GlobalpaymentOptionData,
|
||||||
|
getPaymentOptions,
|
||||||
|
putSalesBillEdit,
|
||||||
|
changeBillEditingMode,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
|
GlobalPaymentTrigger,
|
||||||
} from '../../../../Features/BookingScreen/BookingData/BookingData';
|
} from '../../../../Features/BookingScreen/BookingData/BookingData';
|
||||||
import { PrintStyleFunction } from '../../../paymentpdfPage/PrintStyleFunction.js';
|
import { PrintStyleFunction } from '../../../paymentpdfPage/PrintStyleFunction.js';
|
||||||
import {
|
import {
|
||||||
|
|
@ -148,7 +158,9 @@ import {
|
||||||
} from '../../../../Features/ExteraCharges/ExtraCharges';
|
} from '../../../../Features/ExteraCharges/ExtraCharges';
|
||||||
import {
|
import {
|
||||||
getAddCustomerDetails,
|
getAddCustomerDetails,
|
||||||
|
getDefaultPaymentOptions,
|
||||||
GlobalAddCustomerDetails,
|
GlobalAddCustomerDetails,
|
||||||
|
ReprintDetails,
|
||||||
triggerCustomerRefresh,
|
triggerCustomerRefresh,
|
||||||
} from '../../../../Features/BookingScreen/Customer/addCustomer';
|
} from '../../../../Features/BookingScreen/Customer/addCustomer';
|
||||||
import BSCustomerSelect from '../UtillComponents/BSSelectCustomer.jsx';
|
import BSCustomerSelect from '../UtillComponents/BSSelectCustomer.jsx';
|
||||||
|
|
@ -233,6 +245,8 @@ import { useDateStore } from '../../../../Features/BookingScreen/BookingData/Dat
|
||||||
import { getPaymentOptionsData } from '../../../../Features/BookingScreen/BookingData/KioskBookingData.js';
|
import { getPaymentOptionsData } from '../../../../Features/BookingScreen/BookingData/KioskBookingData.js';
|
||||||
import { GlobalFreeProdList, GlobalOfferAppliedProducts, GlobalOverAllOfferAmt } from '../../../../Features/Offer/Offernew/BookingOffernew.js';
|
import { GlobalFreeProdList, GlobalOfferAppliedProducts, GlobalOverAllOfferAmt } from '../../../../Features/Offer/Offernew/BookingOffernew.js';
|
||||||
import BSNavBarTable from '../UtillComponents/BSNavBarTable.jsx';
|
import BSNavBarTable from '../UtillComponents/BSNavBarTable.jsx';
|
||||||
|
import pozologoimg from '../../../../Images/pozologoimg.png';
|
||||||
|
import PaymentGatewayEmbedded from '../UtillComponents/PaymentGatewayEmbedded.jsx';
|
||||||
|
|
||||||
const subDirectory = import.meta.env.ENV_BASE_URL;
|
const subDirectory = import.meta.env.ENV_BASE_URL;
|
||||||
const MainHomeUrl = import.meta.env.ENV_MAIN_BASE_URL;
|
const MainHomeUrl = import.meta.env.ENV_MAIN_BASE_URL;
|
||||||
|
|
@ -250,6 +264,10 @@ const BSC1Payment = (props) => {
|
||||||
|
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||||
|
const previousOrderPayment = useSelector(GlobalPreviousOrderPayment);
|
||||||
|
const previousOrderOfferDetails = useSelector(GlobalPreviousOrderOfferDetails);
|
||||||
|
const AllPaymentOptions = useSelector(GlobalpaymentOptionData);
|
||||||
const SessionData = useSelector(StoredSessionData);
|
const SessionData = useSelector(StoredSessionData);
|
||||||
const BranchFinancialStatus = useSelector(GlobalBranchFinancialStatus);
|
const BranchFinancialStatus = useSelector(GlobalBranchFinancialStatus);
|
||||||
const globalTipAmount = useSelector(GlobaltipAmount);
|
const globalTipAmount = useSelector(GlobaltipAmount);
|
||||||
|
|
@ -321,6 +339,11 @@ const BSC1Payment = (props) => {
|
||||||
const [UpiOption, setUpiOption] = useState('');
|
const [UpiOption, setUpiOption] = useState('');
|
||||||
const [UpiId, setUpiId] = useState();
|
const [UpiId, setUpiId] = useState();
|
||||||
const [hold, setHold] = useState(false);
|
const [hold, setHold] = useState(false);
|
||||||
|
const [refundPayBtns, setRefundPayBtns] = useState([]);
|
||||||
|
const [refundPaySelected, setRefundPaySelected] = useState();
|
||||||
|
const [refundPaySelectedName, setRefundPaySelectedName] = useState(null);
|
||||||
|
const [currentOrderNetAmount, setCurrentOrderNetAmount] = useState(0);
|
||||||
|
const [previousNetAmount, setPreviousNetAmount] = useState(0);
|
||||||
const appPreferences = useSelector(ApplicationPreferences);
|
const appPreferences = useSelector(ApplicationPreferences);
|
||||||
const commonModulePreference = appPreferences?.find(
|
const commonModulePreference = appPreferences?.find(
|
||||||
(preference) => preference?.PreferredCatName === 'Common Module'
|
(preference) => preference?.PreferredCatName === 'Common Module'
|
||||||
|
|
@ -432,6 +455,14 @@ const BSC1Payment = (props) => {
|
||||||
const [PaymentgatewayUPI, setPaymentgatewayUPI] = useState([]);
|
const [PaymentgatewayUPI, setPaymentgatewayUPI] = useState([]);
|
||||||
const [PaymentDeviceUPI, setPaymentDeviceUPI] = useState([]);
|
const [PaymentDeviceUPI, setPaymentDeviceUPI] = useState([]);
|
||||||
const [UpiPayOption, setUpiPayOption] = useState([]);
|
const [UpiPayOption, setUpiPayOption] = useState([]);
|
||||||
|
const [BusinessPayOption, setBusinessPayoption] = useState([]);
|
||||||
|
const [paymentSucess, setPaymentSuccess] = useState(false);
|
||||||
|
const [businessUPI, setBusinessUPI] = useState(false);
|
||||||
|
const [businessUPIOrderId, setBusinessUPIOrderId] = useState(null);
|
||||||
|
const [businessUPILink, setBusinessUPILink] = useState(null);
|
||||||
|
const defaultPaymentTrigger = useSelector(GlobalPaymentTrigger);
|
||||||
|
const [defaultPaymentMode, setDefaultPaymentMode] = useState([]);
|
||||||
|
const [defaultEnabled, setDefaultEnabled] = useState(false);
|
||||||
const [CardPayOption, setCardPayOption] = useState([]);
|
const [CardPayOption, setCardPayOption] = useState([]);
|
||||||
const [PaymentUpiOptions, setPaymentUpiOptions] = useState([]);
|
const [PaymentUpiOptions, setPaymentUpiOptions] = useState([]);
|
||||||
const GlobaluseOptions = useSelector(GlobalCommonPaymentOptions);
|
const GlobaluseOptions = useSelector(GlobalCommonPaymentOptions);
|
||||||
|
|
@ -464,6 +495,7 @@ const BSC1Payment = (props) => {
|
||||||
const printDatas = useSelector(GlobalprintDatas);
|
const printDatas = useSelector(GlobalprintDatas);
|
||||||
const PrinterDetails = useSelector(GlobalPrinterMappingDtls);
|
const PrinterDetails = useSelector(GlobalPrinterMappingDtls);
|
||||||
const [addnewAccess, setaddnewAccess] = useState(true);
|
const [addnewAccess, setaddnewAccess] = useState(true);
|
||||||
|
const [showCancelConfirm, setShowCancelConfirm] = useState(false);
|
||||||
const BookingStatus = useSelector(GlobalBookingStatus);
|
const BookingStatus = useSelector(GlobalBookingStatus);
|
||||||
|
|
||||||
const PaymentOptionsModeName =
|
const PaymentOptionsModeName =
|
||||||
|
|
@ -532,6 +564,79 @@ const BSC1Payment = (props) => {
|
||||||
'11111111111111'
|
'11111111111111'
|
||||||
);
|
);
|
||||||
// Usage
|
// Usage
|
||||||
|
useEffect(() => {
|
||||||
|
const setDefaultPaymentOption = async () => {
|
||||||
|
const res = await dispatch(
|
||||||
|
getDefaultPaymentOptions({ AppId, CompId, BranchId })
|
||||||
|
)?.unwrap();
|
||||||
|
const defaultDetail = res?.data?.data?.[0]?.DefaultDetails?.[0];
|
||||||
|
if (res?.data?.data?.length > 0 && defaultDetail) {
|
||||||
|
setDefaultEnabled(true);
|
||||||
|
setDefaultPaymentMode(defaultDetail);
|
||||||
|
const { option, card } = defaultDetail;
|
||||||
|
if (option?.value) setSelectedUPIPayOption(option.value);
|
||||||
|
if (card) {
|
||||||
|
const isDefault =
|
||||||
|
String(option?.value ?? '').toLowerCase() === 'default';
|
||||||
|
const idToUse = isDefault ? card?.UPIId : card?.ModeId;
|
||||||
|
|
||||||
|
if (idToUse) {
|
||||||
|
addUpiOption(card?.Mode, card?.ModeName, idToUse);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setDefaultEnabled(false);
|
||||||
|
setDefaultPaymentMode([]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
setDefaultPaymentOption();
|
||||||
|
}, [defaultPaymentTrigger]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const getPrintData = async () => {
|
||||||
|
try {
|
||||||
|
const data = {
|
||||||
|
AppId,
|
||||||
|
CompId,
|
||||||
|
BranchId,
|
||||||
|
OrderId: businessUPIOrderId,
|
||||||
|
};
|
||||||
|
|
||||||
|
const res = await dispatch(ReprintDetails(data)).unwrap();
|
||||||
|
|
||||||
|
if (res?.data?.statusCode === 1 && res?.data?.data?.length > 0) {
|
||||||
|
const orderData = [{ OrderDetails: res.data.data }];
|
||||||
|
|
||||||
|
// Reset states first
|
||||||
|
setBusinessUPIOrderId(null);
|
||||||
|
setBusinessUPI(false);
|
||||||
|
setPaymentSuccess(false);
|
||||||
|
|
||||||
|
// Then set new data and trigger side effects
|
||||||
|
setPrintOrderDetails(orderData);
|
||||||
|
CustomerDisplay();
|
||||||
|
ClearAllGlobalStateDatas();
|
||||||
|
filteredSettingNames?.includes('whatsapp') &&
|
||||||
|
MobileNoWhatsApp?.value &&
|
||||||
|
handleURL(orderData);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Failed to fetch print data:', error);
|
||||||
|
// Reset states even on error
|
||||||
|
setBusinessUPI(false);
|
||||||
|
setPaymentSuccess(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (paymentSucess && businessUPIOrderId) {
|
||||||
|
const timer = setTimeout(() => {
|
||||||
|
getPrintData();
|
||||||
|
}, 3000);
|
||||||
|
|
||||||
|
return () => clearTimeout(timer);
|
||||||
|
}
|
||||||
|
}, [paymentSucess, businessUPIOrderId, AppId, CompId, BranchId, dispatch]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchCreditCustomer = async () => {
|
const fetchCreditCustomer = async () => {
|
||||||
const selectedMode = paybtns?.find(
|
const selectedMode = paybtns?.find(
|
||||||
|
|
@ -570,6 +675,32 @@ const BSC1Payment = (props) => {
|
||||||
|
|
||||||
fetchCreditCustomer();
|
fetchCreditCustomer();
|
||||||
}, [paybtnselected, selOption, paybtns]);
|
}, [paybtnselected, selOption, paybtns]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (salesBillEdit) {
|
||||||
|
dispatch(getPaymentOptions()).unwrap();
|
||||||
|
}
|
||||||
|
}, [salesBillEdit]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
if (salesBillEdit) {
|
||||||
|
if (SelCustId) {
|
||||||
|
setRefundPayBtns(AllPaymentOptions);
|
||||||
|
setRefundPaySelected(AllPaymentOptions?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(AllPaymentOptions?.[0]?.ConfigName);
|
||||||
|
} else {
|
||||||
|
const withoutCustomer = AllPaymentOptions?.filter?.(
|
||||||
|
(item) => item?.ConfigName?.toLowerCase() !== 'credit'
|
||||||
|
);
|
||||||
|
setRefundPaySelected(withoutCustomer?.[0]?.ConfigId);
|
||||||
|
setRefundPaySelectedName(withoutCustomer?.[0]?.ConfigName);
|
||||||
|
setRefundPayBtns(withoutCustomer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [AllPaymentOptions, SelCustId, salesBillEdit])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!preOrder) {
|
if (!preOrder) {
|
||||||
const totalSum = OrderCardDetail?.reduce(
|
const totalSum = OrderCardDetail?.reduce(
|
||||||
|
|
@ -627,22 +758,41 @@ const BSC1Payment = (props) => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const filteredPayments =
|
||||||
|
previousOrderPayment?.filter(
|
||||||
|
p => p?.LastOrderTran === 'Y' && p?.AfterAdjustment != null && p?.AfterAdjustment !== '' && p?.AfterAdjustment
|
||||||
|
) || [];
|
||||||
|
|
||||||
|
const paymentsToUse =
|
||||||
|
filteredPayments.length > 0 ? filteredPayments : previousOrderPayment || [];
|
||||||
|
|
||||||
|
const totalPreviouspayment = paymentsToUse?.reduce(
|
||||||
|
(acc, payment) => acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const totalPreviousOfferAmount = previousOrderOfferDetails?.reduce(
|
||||||
|
(acc, offer) => acc + parseFloat(offer.OfferAmount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const previousNetAmount =
|
||||||
|
(totalPreviouspayment) || 0;
|
||||||
|
|
||||||
let withdiscTotal =
|
let withdiscTotal =
|
||||||
Total - ((OverAllSales || 0) + (OverAllEstimate || 0) +
|
Total - ((OverAllSales || 0) + (OverAllEstimate || 0) +
|
||||||
(Discount > 0 ? Discount : 0));
|
(Discount > 0 ? Discount : 0));
|
||||||
|
|
||||||
|
const currentOrderNetAmount = formatAmount(
|
||||||
setTotalAmount(
|
|
||||||
withdiscTotal >= 0
|
withdiscTotal >= 0
|
||||||
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
? (Number(withdiscTotal) + Number(globalTipAmount)).toFixed(2)
|
||||||
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
: (Number(Total) + Number(globalTipAmount)).toFixed(2)
|
||||||
);
|
)
|
||||||
|
|
||||||
dispatch(
|
setTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount);
|
||||||
changeSummeryTotalAmount(
|
setCurrentOrderNetAmount(currentOrderNetAmount);
|
||||||
withdiscTotal > 0 ? withdiscTotal : Number(Total)
|
setPreviousNetAmount(previousNetAmount);
|
||||||
)
|
dispatch(changeSummeryTotalAmount(salesBillEdit ? (currentOrderNetAmount > previousNetAmount) ? (currentOrderNetAmount - previousNetAmount) : 0 : currentOrderNetAmount));
|
||||||
);
|
|
||||||
|
|
||||||
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
dispatch(changeSummeryComboOfferAmount(withComboSum));
|
||||||
|
|
||||||
|
|
@ -1083,6 +1233,10 @@ const BSC1Payment = (props) => {
|
||||||
const handleButtonClick = () => {
|
const handleButtonClick = () => {
|
||||||
if (qrCode && SelectedUPIPayOption === 'Default') {
|
if (qrCode && SelectedUPIPayOption === 'Default') {
|
||||||
UpiPayment();
|
UpiPayment();
|
||||||
|
} else if (salesBillEdit && currentOrderNetAmount < previousNetAmount && !refundPaySelected) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Please Select Refund Payment Method');
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
OrderStatus
|
OrderStatus
|
||||||
? AddBookingDetails('Dine-In', false)
|
? AddBookingDetails('Dine-In', false)
|
||||||
|
|
@ -1158,6 +1312,9 @@ const BSC1Payment = (props) => {
|
||||||
const filterpaymentdevice = FiltersalesPayment?.[0]?.OptionDetails?.filter(
|
const filterpaymentdevice = FiltersalesPayment?.[0]?.OptionDetails?.filter(
|
||||||
(item) => item?.OptionName?.toLowerCase() === 'payment device'
|
(item) => item?.OptionName?.toLowerCase() === 'payment device'
|
||||||
);
|
);
|
||||||
|
const filterBusinessUpi = FiltersalesPayment?.[0]?.OptionDetails?.filter(
|
||||||
|
(item) => item?.OptionName?.toLowerCase() === 'business upi'
|
||||||
|
);
|
||||||
const cardinpaymentgateway =
|
const cardinpaymentgateway =
|
||||||
filterpaymentgateway?.[0]?.ModeDetails?.filter((item) =>
|
filterpaymentgateway?.[0]?.ModeDetails?.filter((item) =>
|
||||||
item?.ModeName?.toLowerCase()?.includes('card')
|
item?.ModeName?.toLowerCase()?.includes('card')
|
||||||
|
|
@ -1200,7 +1357,6 @@ const BSC1Payment = (props) => {
|
||||||
}
|
}
|
||||||
setCardPayOption(cardoptions);
|
setCardPayOption(cardoptions);
|
||||||
const options = [];
|
const options = [];
|
||||||
|
|
||||||
if (FiltersalesPayment?.[0]?.PaymentDetails?.Payatthecounter?.length > 0) {
|
if (FiltersalesPayment?.[0]?.PaymentDetails?.Payatthecounter?.length > 0) {
|
||||||
options.push({
|
options.push({
|
||||||
label: 'Personal UPI',
|
label: 'Personal UPI',
|
||||||
|
|
@ -1208,6 +1364,16 @@ const BSC1Payment = (props) => {
|
||||||
imgSrc: defaultupi,
|
imgSrc: defaultupi,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (filterBusinessUpi?.[0]?.ModeDetails?.length > 0) {
|
||||||
|
options.push({
|
||||||
|
label: 'Business UPI',
|
||||||
|
value: 'Business',
|
||||||
|
imgSrc: pozologoimg,
|
||||||
|
PaymentOptionId: filterBusinessUpi?.[0]?.PaymentOptionId,
|
||||||
|
PaymentFlowId: filterBusinessUpi?.[0]?.PaymentFlowId,
|
||||||
|
OptionId: filterBusinessUpi?.[0]?.OptionId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (upiinpaymentgateway?.length > 0) {
|
if (upiinpaymentgateway?.length > 0) {
|
||||||
options.push({ label: 'Payment Gateway', value: 'PG', imgSrc: paygate });
|
options.push({ label: 'Payment Gateway', value: 'PG', imgSrc: paygate });
|
||||||
|
|
@ -1217,6 +1383,7 @@ const BSC1Payment = (props) => {
|
||||||
options.push({ label: 'Payment Device', value: 'PD', imgSrc: paydevice });
|
options.push({ label: 'Payment Device', value: 'PD', imgSrc: paydevice });
|
||||||
}
|
}
|
||||||
setUpiPayOption(options);
|
setUpiPayOption(options);
|
||||||
|
setBusinessPayoption(filterBusinessUpi?.[0]?.ModeDetails || []);
|
||||||
// }
|
// }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -1255,12 +1422,17 @@ const BSC1Payment = (props) => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefundPaymentMode = (id, name) => {
|
||||||
|
setRefundPaySelected(id);
|
||||||
|
setRefundPaySelectedName(name);
|
||||||
|
}
|
||||||
|
|
||||||
const AddCardOption = (data) => {
|
const AddCardOption = (data) => {
|
||||||
setSelectedCardOption(data);
|
setSelectedCardOption(data);
|
||||||
setCardOptionOpen(false);
|
setCardOptionOpen(false);
|
||||||
setCardoptionnotSelected(false);
|
setCardoptionnotSelected(false);
|
||||||
};
|
};
|
||||||
const AddUPIPaymentOption = async (data) => {
|
const AddUPIPaymentOption = async (data, mode = false) => {
|
||||||
setSelectedUpiOption('');
|
setSelectedUpiOption('');
|
||||||
setUpiOption('');
|
setUpiOption('');
|
||||||
setUpiId('');
|
setUpiId('');
|
||||||
|
|
@ -1270,7 +1442,7 @@ const BSC1Payment = (props) => {
|
||||||
setSelectedUPIPayOption(data);
|
setSelectedUPIPayOption(data);
|
||||||
setUpinotSelected(false);
|
setUpinotSelected(false);
|
||||||
setCardoptionnotSelected(false);
|
setCardoptionnotSelected(false);
|
||||||
if (data !== 'Default') {
|
if (data !== 'Default' && data !== 'Business' && !mode) {
|
||||||
setUpiOptionOpen(false);
|
setUpiOptionOpen(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -1650,6 +1822,18 @@ const BSC1Payment = (props) => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const businessUPIFlow = async (
|
||||||
|
businessUPIfilter,
|
||||||
|
OrderId,
|
||||||
|
PaymentStatusLink
|
||||||
|
) => {
|
||||||
|
// Implement your business UPI flow here
|
||||||
|
// You can add similar logic as PaymentDeviceFlow or PaymentGatewayFlow based on your requirements
|
||||||
|
setBusinessUPILink(PaymentStatusLink);
|
||||||
|
setBusinessUPI(true);
|
||||||
|
setBusinessUPIOrderId(OrderId);
|
||||||
|
};
|
||||||
|
|
||||||
function safeRound(amountStr) {
|
function safeRound(amountStr) {
|
||||||
if (amountStr == null) return '0.00';
|
if (amountStr == null) return '0.00';
|
||||||
|
|
||||||
|
|
@ -1797,6 +1981,9 @@ const BSC1Payment = (props) => {
|
||||||
} else {
|
} else {
|
||||||
dispatch(changeOrderCardDetails([]));
|
dispatch(changeOrderCardDetails([]));
|
||||||
}
|
}
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
dispatch(changeTipAmount(0));
|
dispatch(changeTipAmount(0));
|
||||||
await dispatch(ChangeTotalAmount([]));
|
await dispatch(ChangeTotalAmount([]));
|
||||||
await dispatch(changeReorderHoldDetails({}));
|
await dispatch(changeReorderHoldDetails({}));
|
||||||
|
|
@ -1810,6 +1997,8 @@ const BSC1Payment = (props) => {
|
||||||
setPaybtnselected(PaymentOptionsModeId);
|
setPaybtnselected(PaymentOptionsModeId);
|
||||||
setQrCode(false);
|
setQrCode(false);
|
||||||
setUpinotSelected(false);
|
setUpinotSelected(false);
|
||||||
|
setCurrentOrderNetAmount(0);
|
||||||
|
setPreviousNetAmount(0);
|
||||||
getHolddata();
|
getHolddata();
|
||||||
getUnpaiddatas();
|
getUnpaiddatas();
|
||||||
await dispatch(changeBookingType('TakeAway'));
|
await dispatch(changeBookingType('TakeAway'));
|
||||||
|
|
@ -1846,7 +2035,8 @@ const BSC1Payment = (props) => {
|
||||||
);
|
);
|
||||||
if (
|
if (
|
||||||
OnUpiSelected?.ModeName?.toLowerCase() === 'upi' &&
|
OnUpiSelected?.ModeName?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
(SelectedUPIPayOption?.toLowerCase() === 'default' ||
|
||||||
|
SelectedUPIPayOption?.toLowerCase() === 'business')
|
||||||
) {
|
) {
|
||||||
SetSuccess(false);
|
SetSuccess(false);
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
|
|
@ -2099,19 +2289,28 @@ const BSC1Payment = (props) => {
|
||||||
SalesPaymentType: 'normal',
|
SalesPaymentType: 'normal',
|
||||||
PaymentDetail: [
|
PaymentDetail: [
|
||||||
{
|
{
|
||||||
PaymentType:
|
PaymentType: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? refundPaySelected :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi'
|
Paybtnnameselected?.toLowerCase() === 'upi'
|
||||||
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
? SelectedUPIPayOption?.toLowerCase() === 'pd'
|
||||||
? PaymentDeviceUPI?.[0]?.ModeId
|
? PaymentDeviceUPI?.[0]?.ModeId
|
||||||
: SelectedUPIPayOption?.toLowerCase() === 'pg'
|
: SelectedUPIPayOption?.toLowerCase() === 'pg'
|
||||||
? PaymentgatewayUPI?.[0]?.ModeId
|
? PaymentgatewayUPI?.[0]?.ModeId
|
||||||
: paybtnselected
|
: SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
|
? BusinessPayOption?.find(
|
||||||
|
(busupi) => busupi?.ModeId === UpiId
|
||||||
|
)?.ModeId
|
||||||
|
: paybtnselected
|
||||||
: paybtnselected
|
: paybtnselected
|
||||||
? paybtnselected
|
? paybtnselected
|
||||||
: null,
|
: null,
|
||||||
// SelectedUPIPayOption?.toLowerCase() === "pg" ?
|
Amount: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? previousNetAmount - currentOrderNetAmount : Math.round(TotalAmount),
|
||||||
Amount: Math.round(TotalAmount),
|
MerchantId: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
PaymentOptionType:
|
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'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2121,14 +2320,19 @@ const BSC1Payment = (props) => {
|
||||||
: Paybtnnameselected?.toLowerCase() === 'upi'
|
: Paybtnnameselected?.toLowerCase() === 'upi'
|
||||||
? SelectedUPIPayOption?.toLowerCase() === 'default'
|
? SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: SelectedUPIPayOption
|
: SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
|
? 'BU'
|
||||||
|
: SelectedUPIPayOption
|
||||||
: null,
|
: null,
|
||||||
ModeOfPayment:
|
ModeOfPayment: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? null :
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
? PaymentUpiOptions?.find((upipay) => upipay?.UPIId === UpiId)
|
||||||
?.UPIDetailId
|
?.UPIDetailId
|
||||||
: null,
|
: SelectedUPIPayOption?.toLowerCase() === 'business'
|
||||||
AccountDtl:
|
? BusinessPayOption?.find((busupi) => busupi?.ModeId === UpiId)
|
||||||
|
?.MerchantUPIId
|
||||||
|
: null,
|
||||||
|
AccountDtl: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? [] :
|
||||||
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
Paybtnnameselected?.toLowerCase() === 'upi' &&
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||||
|
|
@ -2145,7 +2349,7 @@ const BSC1Payment = (props) => {
|
||||||
SelectedCardOption?.toLowerCase() === 'pg')
|
SelectedCardOption?.toLowerCase() === 'pg')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||||
: [],
|
: [],
|
||||||
PaymentStatus:
|
PaymentStatus: (salesBillEdit && currentOrderNetAmount < previousNetAmount) ? 'S' :
|
||||||
Paybtnnameselected?.toLowerCase() === 'cash'
|
Paybtnnameselected?.toLowerCase() === 'cash'
|
||||||
? 'S'
|
? 'S'
|
||||||
: Paybtnnameselected?.toLowerCase() === 'credit'
|
: Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
|
|
@ -2154,8 +2358,8 @@ const BSC1Payment = (props) => {
|
||||||
SelectedUPIPayOption?.toLowerCase() === 'default'
|
SelectedUPIPayOption?.toLowerCase() === 'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
Debit: 0,
|
Debit: (salesBillEdit && currentOrderNetAmount < previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(previousNetAmount - currentOrderNetAmount) : 0,
|
||||||
Credit:
|
Credit: salesBillEdit ? (currentOrderNetAmount > previousNetAmount && refundPaySelectedName?.toLowerCase() === 'credit') ? Math.round(TotalAmount) : 0 :
|
||||||
Paybtnnameselected?.toLowerCase() === 'credit'
|
Paybtnnameselected?.toLowerCase() === 'credit'
|
||||||
? Math.round(TotalAmount)
|
? Math.round(TotalAmount)
|
||||||
: 0,
|
: 0,
|
||||||
|
|
@ -2209,6 +2413,11 @@ const BSC1Payment = (props) => {
|
||||||
let PayatCounterfilter = response?.data?.PaymentOrderDtl?.filter(
|
let PayatCounterfilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
(item) => item?.PaymentOptionType?.toLowerCase() === 'pc'
|
(item) => item?.PaymentOptionType?.toLowerCase() === 'pc'
|
||||||
);
|
);
|
||||||
|
let businessUPIfilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
|
(item) =>
|
||||||
|
item?.PaymentOptionType?.toLowerCase() === 'bu' &&
|
||||||
|
item?.PaymentStatus === 'P'
|
||||||
|
);
|
||||||
if (
|
if (
|
||||||
PayatCounterfilter?.length === 1 ||
|
PayatCounterfilter?.length === 1 ||
|
||||||
response?.data?.PaymentOrderDtl?.length === 0
|
response?.data?.PaymentOrderDtl?.length === 0
|
||||||
|
|
@ -2313,6 +2522,13 @@ const BSC1Payment = (props) => {
|
||||||
} else {
|
} else {
|
||||||
console.log('more pg data');
|
console.log('more pg data');
|
||||||
}
|
}
|
||||||
|
if (businessUPIfilter?.length === 1) {
|
||||||
|
businessUPIFlow(
|
||||||
|
businessUPIfilter,
|
||||||
|
response?.data?.OrderId,
|
||||||
|
response?.data?.PaymentPageLink
|
||||||
|
);
|
||||||
|
}
|
||||||
dispatch(triggerCustomerRefresh());
|
dispatch(triggerCustomerRefresh());
|
||||||
} else {
|
} else {
|
||||||
setMessageType('error');
|
setMessageType('error');
|
||||||
|
|
@ -2344,10 +2560,16 @@ const BSC1Payment = (props) => {
|
||||||
putdata['PaymentType'] = !pay && '';
|
putdata['PaymentType'] = !pay && '';
|
||||||
putdata['PrintType'] = 'Y';
|
putdata['PrintType'] = 'Y';
|
||||||
}
|
}
|
||||||
let response = await dispatch(PutBookingData(putdata)).unwrap();
|
let response = null;
|
||||||
|
if (salesBillEdit) {
|
||||||
|
response = await dispatch(putSalesBillEdit(putdata)).unwrap();
|
||||||
|
} else {
|
||||||
|
response = await dispatch(PutBookingData(putdata)).unwrap();
|
||||||
|
}
|
||||||
let PayatCounterfilter = response?.data?.PaymentOrderDtl?.filter(
|
let PayatCounterfilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
(item) => item?.PaymentOptionType?.toLowerCase() === 'pc'
|
(item) => item?.PaymentOptionType?.toLowerCase() === 'pc'
|
||||||
);
|
);
|
||||||
|
|
||||||
if (value !== 'Unpaid') {
|
if (value !== 'Unpaid') {
|
||||||
if (response?.data?.statusCode == 1) {
|
if (response?.data?.statusCode == 1) {
|
||||||
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
|
|
@ -2361,8 +2583,7 @@ const BSC1Payment = (props) => {
|
||||||
item?.PaymentStatus === 'P'
|
item?.PaymentStatus === 'P'
|
||||||
);
|
);
|
||||||
|
|
||||||
if (
|
if (PayatCounterfilter?.length === 1 ||
|
||||||
PayatCounterfilter?.length === 1 ||
|
|
||||||
response?.data?.PaymentOrderDtl?.length === 0
|
response?.data?.PaymentOrderDtl?.length === 0
|
||||||
) {
|
) {
|
||||||
setMessageType('success');
|
setMessageType('success');
|
||||||
|
|
@ -2394,6 +2615,8 @@ const BSC1Payment = (props) => {
|
||||||
if (PaymentGatewayfilter?.length === 1) {
|
if (PaymentGatewayfilter?.length === 1) {
|
||||||
await PaymentGatewayFlow(PaymentGatewayfilter);
|
await PaymentGatewayFlow(PaymentGatewayfilter);
|
||||||
} else {
|
} else {
|
||||||
|
setPrintOrderDetails([response?.data]);
|
||||||
|
ClearAllGlobalStateDatas();
|
||||||
console.log('more pg data');
|
console.log('more pg data');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -3087,7 +3310,7 @@ const BSC1Payment = (props) => {
|
||||||
};
|
};
|
||||||
// split payments
|
// split payments
|
||||||
const SplitPaymentOpen = () => {
|
const SplitPaymentOpen = () => {
|
||||||
if (OrderCardDetail?.length > 0) {
|
if (OrderCardDetail?.length > 0 && TotalAmount > 0) {
|
||||||
const updatedData = {
|
const updatedData = {
|
||||||
userData: OrderCardDetail,
|
userData: OrderCardDetail,
|
||||||
ExtraCharges: GlobalExtraCharge,
|
ExtraCharges: GlobalExtraCharge,
|
||||||
|
|
@ -3097,6 +3320,11 @@ const BSC1Payment = (props) => {
|
||||||
setFailedOrderData(updatedData);
|
setFailedOrderData(updatedData);
|
||||||
setSplitpayment(true);
|
setSplitpayment(true);
|
||||||
} else {
|
} else {
|
||||||
|
if (TotalAmount <= 0) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Cannot split when total amount is zero or less');
|
||||||
|
return;
|
||||||
|
}
|
||||||
setMessageType('warning');
|
setMessageType('warning');
|
||||||
setMessageData('Please Select the Product');
|
setMessageData('Please Select the Product');
|
||||||
}
|
}
|
||||||
|
|
@ -3634,7 +3862,7 @@ const BSC1Payment = (props) => {
|
||||||
: 1,
|
: 1,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{paybtns?.length > 0 ? (
|
{paybtns?.length > 0 && (currentOrderNetAmount >= previousNetAmount) ? (
|
||||||
paybtns?.map((payment) => (
|
paybtns?.map((payment) => (
|
||||||
<div className="Table3-cash">
|
<div className="Table3-cash">
|
||||||
<button
|
<button
|
||||||
|
|
@ -3683,6 +3911,9 @@ const BSC1Payment = (props) => {
|
||||||
)}
|
)}
|
||||||
{payment?.ModeName?.toLowerCase() === 'upi' && (
|
{payment?.ModeName?.toLowerCase() === 'upi' && (
|
||||||
<UpiPopover
|
<UpiPopover
|
||||||
|
defaultPaymentMode={defaultPaymentMode}
|
||||||
|
defaultEnabled={defaultEnabled}
|
||||||
|
setDefaultEnabled={setDefaultEnabled}
|
||||||
UpiOptionOpen={UpiOptionOpen}
|
UpiOptionOpen={UpiOptionOpen}
|
||||||
UpiPayOption={UpiPayOption}
|
UpiPayOption={UpiPayOption}
|
||||||
SelectedUPIPayOption={SelectedUPIPayOption}
|
SelectedUPIPayOption={SelectedUPIPayOption}
|
||||||
|
|
@ -3690,6 +3921,7 @@ const BSC1Payment = (props) => {
|
||||||
PaymentUpiOptions={PaymentUpiOptions}
|
PaymentUpiOptions={PaymentUpiOptions}
|
||||||
UpiOption={UpiOption}
|
UpiOption={UpiOption}
|
||||||
UpiId={UpiId}
|
UpiId={UpiId}
|
||||||
|
BusinessPayOption={BusinessPayOption}
|
||||||
paygate={paygate}
|
paygate={paygate}
|
||||||
paydevice={paydevice}
|
paydevice={paydevice}
|
||||||
EnableUpiOptions={EnableUpiOptions}
|
EnableUpiOptions={EnableUpiOptions}
|
||||||
|
|
@ -3704,6 +3936,41 @@ const BSC1Payment = (props) => {
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
|
) : (currentOrderNetAmount < previousNetAmount && salesBillEdit && refundPayBtns.length > 0) ? (
|
||||||
|
refundPayBtns.map((payment) => (
|
||||||
|
<div className="Table3-cash">
|
||||||
|
<button
|
||||||
|
className={
|
||||||
|
refundPaySelected === payment.ConfigId &&
|
||||||
|
(UpinotSelected || CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode-notupisel'
|
||||||
|
: refundPaySelected === payment.ConfigId &&
|
||||||
|
(!UpinotSelected || !CardoptionnotSelected)
|
||||||
|
? 'Btn-payment-mode'
|
||||||
|
: 'Btn-payment-mode-sel'
|
||||||
|
}
|
||||||
|
style={{
|
||||||
|
position: 'relative',
|
||||||
|
animation: blink
|
||||||
|
? 'blink-animation 0.5s infinite alternate'
|
||||||
|
: 'none',
|
||||||
|
}}
|
||||||
|
onClick={() => handleRefundPaymentMode(payment?.ConfigId, payment?.ConfigName)}
|
||||||
|
>
|
||||||
|
{/* {UpiOption === "" && payment?.ModeName?.toLowerCase() === "upi" && <p> UPI</p>} */}
|
||||||
|
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
columnGap: '0.5rem',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{payment.ConfigName}
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
))
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
onClick={handlepaymentoptions}
|
onClick={handlepaymentoptions}
|
||||||
|
|
@ -4234,8 +4501,9 @@ const BSC1Payment = (props) => {
|
||||||
OrderCardDetail?.length > 0 &&
|
OrderCardDetail?.length > 0 &&
|
||||||
paybtnselected &&
|
paybtnselected &&
|
||||||
CheckBookingStatus != 'Close'
|
CheckBookingStatus != 'Close'
|
||||||
? !OrderStatus
|
? !OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ?
|
||||||
? 'BSC1Payment-div4-button'
|
'BSC1Payment-div4-button'
|
||||||
|
: 'BSC1Payment-div4-button'
|
||||||
: 'BSC1Payment-div4-button Order'
|
: 'BSC1Payment-div4-button Order'
|
||||||
: 'BSC1Payment-div4-button-disable'
|
: 'BSC1Payment-div4-button-disable'
|
||||||
}
|
}
|
||||||
|
|
@ -4245,7 +4513,7 @@ const BSC1Payment = (props) => {
|
||||||
onClick={handleButtonClick}
|
onClick={handleButtonClick}
|
||||||
style={{ borderRadius: '6px 0 0 6px' }}
|
style={{ borderRadius: '6px 0 0 6px' }}
|
||||||
>
|
>
|
||||||
{!OrderStatus ? (
|
{!OrderStatus ? salesBillEdit && (currentOrderNetAmount < previousNetAmount) ? <div className="Table4-Order">Refund: ₹{(previousNetAmount || 0) - (currentOrderNetAmount || 0)}</div> : (
|
||||||
<>
|
<>
|
||||||
{isMobile ? (
|
{isMobile ? (
|
||||||
`₹ ${safeRound(
|
`₹ ${safeRound(
|
||||||
|
|
@ -4494,7 +4762,10 @@ const BSC1Payment = (props) => {
|
||||||
SplitPaymentModal={Splitpayment}
|
SplitPaymentModal={Splitpayment}
|
||||||
handlesplitpaymentclose={handlesplitpaymentclose}
|
handlesplitpaymentclose={handlesplitpaymentclose}
|
||||||
TotalNetAmount={
|
TotalNetAmount={
|
||||||
OrderType === 'Failed' ? FailedTotalAmt : Math.round(TotalAmount)
|
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)))
|
||||||
}
|
}
|
||||||
failedOrderData={failedOrderData}
|
failedOrderData={failedOrderData}
|
||||||
/>
|
/>
|
||||||
|
|
@ -4572,6 +4843,43 @@ const BSC1Payment = (props) => {
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
<DefaultModal
|
||||||
|
open={businessUPI}
|
||||||
|
handleCancel={() => setShowCancelConfirm(true)}
|
||||||
|
footer={false}
|
||||||
|
width={500}
|
||||||
|
children={
|
||||||
|
<>
|
||||||
|
<PaymentGatewayEmbedded
|
||||||
|
orderId={businessUPIOrderId}
|
||||||
|
setBusinessUPIOrderId={setBusinessUPIOrderId}
|
||||||
|
businessUPILink={businessUPILink}
|
||||||
|
setBusinessUPI={setBusinessUPI}
|
||||||
|
setPaymentSuccess={setPaymentSuccess}
|
||||||
|
paymentSucess={paymentSucess}
|
||||||
|
ClearAllGlobalStateDatas={ClearAllGlobalStateDatas}
|
||||||
|
CustomerDisplay={CustomerDisplay}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
{showCancelConfirm && (
|
||||||
|
<Modal
|
||||||
|
open={showCancelConfirm}
|
||||||
|
title="Cancel Payment"
|
||||||
|
onOk={() => {
|
||||||
|
setBusinessUPI(false);
|
||||||
|
setShowCancelConfirm(false);
|
||||||
|
ClearAllGlobalStateDatas();
|
||||||
|
CustomerDisplay();
|
||||||
|
}}
|
||||||
|
onCancel={() => setShowCancelConfirm(false)}
|
||||||
|
okText="Yes"
|
||||||
|
cancelText="No"
|
||||||
|
>
|
||||||
|
Do you want to cancel the payment?
|
||||||
|
</Modal>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2432,7 +2432,9 @@ const BSItemCard = (props) => {
|
||||||
const isItemInCartHold = CartOrderDetails?.find(
|
const isItemInCartHold = CartOrderDetails?.find(
|
||||||
(cartItem) =>
|
(cartItem) =>
|
||||||
itemMatchCondition(cartItem) &&
|
itemMatchCondition(cartItem) &&
|
||||||
(cartItem?.OfferMode !== 'B' &&
|
((cartItem?.OfferModeType && cartItem?.OfferMode === 'B'
|
||||||
|
? true
|
||||||
|
: cartItem?.OfferMode !== 'B') &&
|
||||||
cartItem?.OfferMode !== 'P' && cartItem?.OfferMode !== 'C' &&
|
cartItem?.OfferMode !== 'P' && cartItem?.OfferMode !== 'C' &&
|
||||||
cartItem?.OfferMode !== 'O' &&
|
cartItem?.OfferMode !== 'O' &&
|
||||||
cartItem?.OfferMode !== 'L'
|
cartItem?.OfferMode !== 'L'
|
||||||
|
|
@ -2461,7 +2463,9 @@ const BSItemCard = (props) => {
|
||||||
(cartItem) =>
|
(cartItem) =>
|
||||||
!(
|
!(
|
||||||
itemMatchCondition(cartItem) &&
|
itemMatchCondition(cartItem) &&
|
||||||
(cartItem?.OfferMode !== 'B' &&
|
((cartItem?.OfferModeType && cartItem?.OfferMode === 'B'
|
||||||
|
? true
|
||||||
|
: cartItem?.OfferMode !== 'B') &&
|
||||||
cartItem?.OfferMode !== 'P' && cartItem?.OfferMode !== 'C' &&
|
cartItem?.OfferMode !== 'P' && cartItem?.OfferMode !== 'C' &&
|
||||||
cartItem?.OfferMode !== 'O' &&
|
cartItem?.OfferMode !== 'O' &&
|
||||||
cartItem?.OfferMode !== 'L'
|
cartItem?.OfferMode !== 'L'
|
||||||
|
|
@ -2865,7 +2869,6 @@ const BSItemCard = (props) => {
|
||||||
OfferId: offer?.OfferId || '',
|
OfferId: offer?.OfferId || '',
|
||||||
OfferAmount: change?.discount || 0,
|
OfferAmount: change?.discount || 0,
|
||||||
OfferType: offer?.OfferType || '', // I / Q / B
|
OfferType: offer?.OfferType || '', // I / Q / B
|
||||||
OfferCode: PromoCodeOffersDatas?.OfferCode,
|
|
||||||
ActualOfferAmount: offer?.OfferAmt || 0,
|
ActualOfferAmount: offer?.OfferAmt || 0,
|
||||||
OfferValue: offer?.OfferAmt || 0,
|
OfferValue: offer?.OfferAmt || 0,
|
||||||
TableName: change?.TableName || '',
|
TableName: change?.TableName || '',
|
||||||
|
|
@ -2873,7 +2876,7 @@ const BSItemCard = (props) => {
|
||||||
TableUniqueId: change?.TableUniqueId || '',
|
TableUniqueId: change?.TableUniqueId || '',
|
||||||
// OfferType: offer?.ValueType || "", // F / P
|
// OfferType: offer?.ValueType || "", // F / P
|
||||||
Detail: offer?.Detail || [],
|
Detail: offer?.Detail || [],
|
||||||
OfferCode: offer?.OfferCode || '',
|
OfferCode: offer?.OfferCode || PromoCodeOffersDatas?.OfferCode || '',
|
||||||
CustId: offer?.CustId || '',
|
CustId: offer?.CustId || '',
|
||||||
UsedCount: offer?.UsedCount || 0,
|
UsedCount: offer?.UsedCount || 0,
|
||||||
AppliesTo: offer?.AppliesTo || '',
|
AppliesTo: offer?.AppliesTo || '',
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ import { MdHome, MdLocationOn } from 'react-icons/md';
|
||||||
import { RadioGrpButton } from '../../../../Components/Forms/RadioGroup.jsx';
|
import { RadioGrpButton } from '../../../../Components/Forms/RadioGroup.jsx';
|
||||||
|
|
||||||
const FeaturesFunctionalities = (props) => {
|
const FeaturesFunctionalities = (props) => {
|
||||||
const { closeModal = () => {} } = props;
|
const { closeModal = () => { } } = props;
|
||||||
const applyOffer = useApplyOfferto_CardDetail();
|
const applyOffer = useApplyOfferto_CardDetail();
|
||||||
const EditableContext = React.createContext(null);
|
const EditableContext = React.createContext(null);
|
||||||
const EditableContext1 = React.createContext(null);
|
const EditableContext1 = React.createContext(null);
|
||||||
|
|
@ -367,30 +367,30 @@ const FeaturesFunctionalities = (props) => {
|
||||||
|
|
||||||
const options = suggestions
|
const options = suggestions
|
||||||
? suggestions
|
? suggestions
|
||||||
?.filter((item) =>
|
?.filter((item) =>
|
||||||
selectedSearchValue === 'CustName' ? item.CustName !== null : item
|
selectedSearchValue === 'CustName' ? item.CustName !== null : item
|
||||||
)
|
)
|
||||||
.map((item) => ({
|
.map((item) => ({
|
||||||
value: item?.CustMobile,
|
value: item?.CustMobile,
|
||||||
label:
|
label:
|
||||||
selectedSearchValue === 'CustMobile'
|
selectedSearchValue === 'CustMobile'
|
||||||
? `${item?.CustMobile} - ${item?.CustName ? item?.CustName : ''} ${item?.CustName ? ' - ' : ''} ${'Id:' + item?.CustId?.match(/-(\d+)$/)?.[1]}`
|
? `${item?.CustMobile} - ${item?.CustName ? item?.CustName : ''} ${item?.CustName ? ' - ' : ''} ${'Id:' + item?.CustId?.match(/-(\d+)$/)?.[1]}`
|
||||||
: selectedSearchValue === 'CustId'
|
: selectedSearchValue === 'CustId'
|
||||||
? `${'Id:' + item?.CustId?.match(/-(\d+)$/)?.[1]}${item?.CustName ? ' - ' : ''} ${item?.CustName ? item?.CustName : ''} - ${item?.CustMobile}`
|
? `${'Id:' + item?.CustId?.match(/-(\d+)$/)?.[1]}${item?.CustName ? ' - ' : ''} ${item?.CustName ? item?.CustName : ''} - ${item?.CustMobile}`
|
||||||
: selectedSearchValue === 'CustName' &&
|
: selectedSearchValue === 'CustName' &&
|
||||||
item?.CustName !== null &&
|
item?.CustName !== null &&
|
||||||
`${item?.CustName ? item?.CustName : ''} ${item?.CustName ? ' - ' : ''} ${item?.CustMobile} - ${'Id:' + item?.CustId?.match(/-(\d+)$/)?.[1]}`,
|
`${item?.CustName ? item?.CustName : ''} ${item?.CustName ? ' - ' : ''} ${item?.CustMobile} - ${'Id:' + item?.CustId?.match(/-(\d+)$/)?.[1]}`,
|
||||||
CustMobile: item?.CustMobile,
|
|
||||||
CustId: item?.CustId?.match(/-(\d+)$/)?.[1],
|
|
||||||
CustName: item?.CustName,
|
|
||||||
}))
|
|
||||||
: GlobalAddCustomerDetails1?.map((item) => ({
|
|
||||||
value: item.CustMobile,
|
|
||||||
label: `${item?.CustName} ${item?.CustMobile}`,
|
|
||||||
CustMobile: item?.CustMobile,
|
CustMobile: item?.CustMobile,
|
||||||
CustId: item?.CustId,
|
CustId: item?.CustId?.match(/-(\d+)$/)?.[1],
|
||||||
CustName: item?.CustName,
|
CustName: item?.CustName,
|
||||||
}));
|
}))
|
||||||
|
: GlobalAddCustomerDetails1?.map((item) => ({
|
||||||
|
value: item.CustMobile,
|
||||||
|
label: `${item?.CustName} ${item?.CustMobile}`,
|
||||||
|
CustMobile: item?.CustMobile,
|
||||||
|
CustId: item?.CustId,
|
||||||
|
CustName: item?.CustName,
|
||||||
|
}));
|
||||||
const handleYesOrNoChange = (value) => {
|
const handleYesOrNoChange = (value) => {
|
||||||
setSelectedValue(value);
|
setSelectedValue(value);
|
||||||
formRef.current?.setFieldsValue({ OfferActiveStatus: value });
|
formRef.current?.setFieldsValue({ OfferActiveStatus: value });
|
||||||
|
|
@ -453,34 +453,34 @@ const FeaturesFunctionalities = (props) => {
|
||||||
},
|
},
|
||||||
...(sportsAppPreference
|
...(sportsAppPreference
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
title: 'Subcategory',
|
title: 'Subcategory',
|
||||||
key: 'productDetails',
|
key: 'productDetails',
|
||||||
dataIndex: 'productDetails',
|
dataIndex: 'productDetails',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: '150px',
|
width: '150px',
|
||||||
onCell: (record) => {
|
onCell: (record) => {
|
||||||
const productDetails = record?.productDetails;
|
const productDetails = record?.productDetails;
|
||||||
const Combodtl =
|
const Combodtl =
|
||||||
record?.productDetails?.[0]?.comboDtl?.[0]
|
record?.productDetails?.[0]?.comboDtl?.[0]
|
||||||
?.ComboInwardDetails?.[0]?.ComboDetails;
|
?.ComboInwardDetails?.[0]?.ComboDetails;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
HoldPutfun(productDetails, record, Combodtl);
|
HoldPutfun(productDetails, record, Combodtl);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
|
||||||
render: (productDetails, record) => (
|
|
||||||
<a
|
|
||||||
style={{ color: 'black' }}
|
|
||||||
onClick={() => HoldPutfun(productDetails, record)}
|
|
||||||
>
|
|
||||||
{record?.productDetails?.[0]?.ProdSubCatName}
|
|
||||||
</a>
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
]
|
render: (productDetails, record) => (
|
||||||
|
<a
|
||||||
|
style={{ color: 'black' }}
|
||||||
|
onClick={() => HoldPutfun(productDetails, record)}
|
||||||
|
>
|
||||||
|
{record?.productDetails?.[0]?.ProdSubCatName}
|
||||||
|
</a>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
]
|
||||||
: []),
|
: []),
|
||||||
{
|
{
|
||||||
title: 'Orders',
|
title: 'Orders',
|
||||||
|
|
@ -758,7 +758,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
TaxAmt: formatAmount(
|
TaxAmt: formatAmount(
|
||||||
((record.Price * record.TaxPercentage) /
|
((record.Price * record.TaxPercentage) /
|
||||||
(100 + record.TaxPercentage)) *
|
(100 + record.TaxPercentage)) *
|
||||||
record.QTY
|
record.QTY
|
||||||
),
|
),
|
||||||
TaxId: record.TaxId,
|
TaxId: record.TaxId,
|
||||||
TaxPercentage: record.TaxPercentage,
|
TaxPercentage: record.TaxPercentage,
|
||||||
|
|
@ -785,11 +785,11 @@ const FeaturesFunctionalities = (props) => {
|
||||||
const isDuplicate = TableName?.some(
|
const isDuplicate = TableName?.some(
|
||||||
(item) =>
|
(item) =>
|
||||||
item.InwardDtlId +
|
item.InwardDtlId +
|
||||||
' ' +
|
' ' +
|
||||||
item.BookingTypeName +
|
item.BookingTypeName +
|
||||||
' ' +
|
' ' +
|
||||||
item.SinglePc ===
|
item.SinglePc ===
|
||||||
selectedProduct && item.UniqueId === record.UniqueId
|
selectedProduct && item.UniqueId === record.UniqueId
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!isDuplicate) {
|
if (!isDuplicate) {
|
||||||
|
|
@ -807,7 +807,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
TaxAmt: formatAmount(
|
TaxAmt: formatAmount(
|
||||||
((record.Price * record.TaxPercentage) /
|
((record.Price * record.TaxPercentage) /
|
||||||
(100 + record.TaxPercentage)) *
|
(100 + record.TaxPercentage)) *
|
||||||
record.QTY
|
record.QTY
|
||||||
),
|
),
|
||||||
TaxId: record?.TaxId,
|
TaxId: record?.TaxId,
|
||||||
TaxPercentage: record.TaxPercentage,
|
TaxPercentage: record.TaxPercentage,
|
||||||
|
|
@ -1054,7 +1054,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
...record,
|
...record,
|
||||||
...values,
|
...values,
|
||||||
});
|
});
|
||||||
} catch (errInfo) {}
|
} catch (errInfo) { }
|
||||||
};
|
};
|
||||||
|
|
||||||
let childNode = children;
|
let childNode = children;
|
||||||
|
|
@ -1106,7 +1106,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
return (
|
return (
|
||||||
record.Price * record.QTY -
|
record.Price * record.QTY -
|
||||||
((record.Price * record.TaxPercentage) / (100 + record.TaxPercentage)) *
|
((record.Price * record.TaxPercentage) / (100 + record.TaxPercentage)) *
|
||||||
record.QTY
|
record.QTY
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
const WithTaxAmountTaxAmount = (record) => {
|
const WithTaxAmountTaxAmount = (record) => {
|
||||||
|
|
@ -1179,10 +1179,10 @@ const FeaturesFunctionalities = (props) => {
|
||||||
onClick={() => addeddata(record)}
|
onClick={() => addeddata(record)}
|
||||||
disabled={
|
disabled={
|
||||||
Object.keys(ReorderHoldDetails).length !== 0 &&
|
Object.keys(ReorderHoldDetails).length !== 0 &&
|
||||||
BookingType === 'Dine In' &&
|
BookingType === 'Dine In' &&
|
||||||
GlobalExtraCharge.some(
|
GlobalExtraCharge.some(
|
||||||
(item) => item.ExtraChargeId === record.UniqueId
|
(item) => item.ExtraChargeId === record.UniqueId
|
||||||
)
|
)
|
||||||
? true
|
? true
|
||||||
: false
|
: false
|
||||||
}
|
}
|
||||||
|
|
@ -1278,7 +1278,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
QTY: parseInt(row.QTY),
|
QTY: parseInt(row.QTY),
|
||||||
TaxAmt: formatAmount(
|
TaxAmt: formatAmount(
|
||||||
((row.Price * row.TaxPercentage) / (100 + row.TaxPercentage)) *
|
((row.Price * row.TaxPercentage) / (100 + row.TaxPercentage)) *
|
||||||
row.QTY
|
row.QTY
|
||||||
),
|
),
|
||||||
TotalAmt: row.Price * row.QTY,
|
TotalAmt: row.Price * row.QTY,
|
||||||
// ((row.Price * row.TaxPercentage) / (100 + row.TaxPercentage) *row.QTY ).toFixed(2),
|
// ((row.Price * row.TaxPercentage) / (100 + row.TaxPercentage) *row.QTY ).toFixed(2),
|
||||||
|
|
@ -1427,12 +1427,12 @@ const FeaturesFunctionalities = (props) => {
|
||||||
<Space size="middle">
|
<Space size="middle">
|
||||||
<a>
|
<a>
|
||||||
{Object.keys(ReorderHoldDetails).length !== 0 &&
|
{Object.keys(ReorderHoldDetails).length !== 0 &&
|
||||||
BookingType === 'Dine In' &&
|
BookingType === 'Dine In' &&
|
||||||
GlobalExtraCharge?.some(
|
GlobalExtraCharge?.some(
|
||||||
(item) =>
|
(item) =>
|
||||||
item.ExtraChargeId === record.UniqueId &&
|
item.ExtraChargeId === record.UniqueId &&
|
||||||
item.InwardDtlId === record.InwardDtlId
|
item.InwardDtlId === record.InwardDtlId
|
||||||
) ? (
|
) ? (
|
||||||
<DeleteFilled
|
<DeleteFilled
|
||||||
style={{
|
style={{
|
||||||
color: '#FF4D4F',
|
color: '#FF4D4F',
|
||||||
|
|
@ -1702,7 +1702,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
dispatch(
|
dispatch(
|
||||||
changeCustomerID(
|
changeCustomerID(
|
||||||
response?.data?.CustomerDetails?.[
|
response?.data?.CustomerDetails?.[
|
||||||
response?.data?.CustomerDetails.length - 1
|
response?.data?.CustomerDetails.length - 1
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
@ -2186,9 +2186,9 @@ const FeaturesFunctionalities = (props) => {
|
||||||
AppId: AppId,
|
AppId: AppId,
|
||||||
...(AvailableDate && selectedDate
|
...(AvailableDate && selectedDate
|
||||||
? {
|
? {
|
||||||
fromDate: selectedDate?.[0],
|
fromDate: selectedDate?.[0],
|
||||||
toDate: selectedDate?.[1],
|
toDate: selectedDate?.[1],
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
};
|
};
|
||||||
await dispatch(getSelectedFavItems(data)).unwrap();
|
await dispatch(getSelectedFavItems(data)).unwrap();
|
||||||
|
|
@ -2200,9 +2200,9 @@ const FeaturesFunctionalities = (props) => {
|
||||||
ProdSubCat: ProdSubCat,
|
ProdSubCat: ProdSubCat,
|
||||||
...(AvailableDate && selectedDate
|
...(AvailableDate && selectedDate
|
||||||
? {
|
? {
|
||||||
fromDate: selectedDate?.[0],
|
fromDate: selectedDate?.[0],
|
||||||
toDate: selectedDate?.[1],
|
toDate: selectedDate?.[1],
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -2213,9 +2213,9 @@ const FeaturesFunctionalities = (props) => {
|
||||||
prodCat: prodCat,
|
prodCat: prodCat,
|
||||||
...(AvailableDate && selectedDate
|
...(AvailableDate && selectedDate
|
||||||
? {
|
? {
|
||||||
fromDate: selectedDate?.[0],
|
fromDate: selectedDate?.[0],
|
||||||
toDate: selectedDate?.[1],
|
toDate: selectedDate?.[1],
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -2588,7 +2588,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
e?.stopPropagation();
|
e?.stopPropagation();
|
||||||
removeAll();
|
removeAll();
|
||||||
}}
|
}}
|
||||||
// onClick={() => statusFormatter(record,index)}
|
// onClick={() => statusFormatter(record,index)}
|
||||||
>
|
>
|
||||||
Clear All
|
Clear All
|
||||||
</Button>
|
</Button>
|
||||||
|
|
@ -2715,7 +2715,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
: selectedSearchValue == 'CustName'
|
: selectedSearchValue == 'CustName'
|
||||||
? 'Please Enter Valid Name'
|
? 'Please Enter Valid Name'
|
||||||
: selectedSearchValue == 'CustId' &&
|
: selectedSearchValue == 'CustId' &&
|
||||||
'Please EnterCustomer Id',
|
'Please EnterCustomer Id',
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
|
|
@ -2804,7 +2804,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
: selectedSearchValue == 'CustName'
|
: selectedSearchValue == 'CustName'
|
||||||
? 'Enter Name'
|
? 'Enter Name'
|
||||||
: selectedSearchValue == 'CustId' &&
|
: selectedSearchValue == 'CustId' &&
|
||||||
'Enter Customer Id'
|
'Enter Customer Id'
|
||||||
: ' Mobile Number'}
|
: ' Mobile Number'}
|
||||||
</label>
|
</label>
|
||||||
}
|
}
|
||||||
|
|
@ -2986,7 +2986,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
isOnChange={
|
isOnChange={
|
||||||
formRef.current?.getFieldsValue()?.CustName ||
|
formRef.current?.getFieldsValue()?.CustName ||
|
||||||
inputValue
|
inputValue
|
||||||
? true
|
? true
|
||||||
: false
|
: false
|
||||||
}
|
}
|
||||||
|
|
@ -3052,9 +3052,9 @@ const FeaturesFunctionalities = (props) => {
|
||||||
<p>Upload Profile</p>
|
<p>Upload Profile</p>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="CustomerProfile"
|
name="CustomerProfile"
|
||||||
// getValueFromEvent={(e) =>
|
// getValueFromEvent={(e) =>
|
||||||
// formType === 'edit' ? editstate?.EmpPhotoLink : e
|
// formType === 'edit' ? editstate?.EmpPhotoLink : e
|
||||||
// }
|
// }
|
||||||
>
|
>
|
||||||
<Imageupload
|
<Imageupload
|
||||||
singleImage={true}
|
singleImage={true}
|
||||||
|
|
@ -3196,133 +3196,133 @@ const FeaturesFunctionalities = (props) => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="address-type-section">
|
<div className="address-type-section">
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
flexWrap: 'wrap',
|
flexWrap: 'wrap',
|
||||||
}}
|
}}
|
||||||
>
|
|
||||||
<Checkbox
|
|
||||||
checked={(
|
|
||||||
addressTypes[idx] || []
|
|
||||||
).includes('Delivery Address')}
|
|
||||||
onChange={(e) =>
|
|
||||||
handleAddressTypeChange(
|
|
||||||
idx,
|
|
||||||
'Delivery Address',
|
|
||||||
e.target.checked
|
|
||||||
)
|
|
||||||
}
|
|
||||||
>
|
>
|
||||||
Delivery Address
|
<Checkbox
|
||||||
</Checkbox>
|
checked={(
|
||||||
<Checkbox
|
addressTypes[idx] || []
|
||||||
checked={(
|
).includes('Delivery Address')}
|
||||||
addressTypes[idx] || []
|
onChange={(e) =>
|
||||||
).includes('Billing Address')}
|
handleAddressTypeChange(
|
||||||
onChange={(e) =>
|
idx,
|
||||||
handleAddressTypeChange(
|
'Delivery Address',
|
||||||
idx,
|
e.target.checked
|
||||||
'Billing Address',
|
)
|
||||||
e.target.checked
|
}
|
||||||
)
|
>
|
||||||
}
|
Delivery Address
|
||||||
>
|
</Checkbox>
|
||||||
Billing Address
|
<Checkbox
|
||||||
</Checkbox>
|
checked={(
|
||||||
<Checkbox
|
addressTypes[idx] || []
|
||||||
checked={(
|
).includes('Billing Address')}
|
||||||
addressTypes[idx] || []
|
onChange={(e) =>
|
||||||
).includes('Both Address')}
|
handleAddressTypeChange(
|
||||||
onChange={(e) =>
|
idx,
|
||||||
handleAddressTypeChange(
|
'Billing Address',
|
||||||
idx,
|
e.target.checked
|
||||||
'Both Address',
|
)
|
||||||
e.target.checked
|
}
|
||||||
)
|
>
|
||||||
}
|
Billing Address
|
||||||
>
|
</Checkbox>
|
||||||
Both Address
|
<Checkbox
|
||||||
</Checkbox>
|
checked={(
|
||||||
</div>
|
addressTypes[idx] || []
|
||||||
</div>
|
).includes('Both Address')}
|
||||||
|
onChange={(e) =>
|
||||||
<div className="address-details-grid">
|
handleAddressTypeChange(
|
||||||
<div className="address-detail-item address1">
|
idx,
|
||||||
<div className="value">
|
'Both Address',
|
||||||
{addr?.Address1 || ''}
|
e.target.checked
|
||||||
|
)
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Both Address
|
||||||
|
</Checkbox>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="address-detail-item address2">
|
<div className="address-details-grid">
|
||||||
<div className="value">
|
<div className="address-detail-item address1">
|
||||||
{addr?.Address2 || ''}
|
<div className="value">
|
||||||
</div>
|
{addr?.Address1 || ''}
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="address-detail-item zip">
|
|
||||||
<div className="value">
|
|
||||||
{addr?.Zip || ''}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="address-detail-item city">
|
|
||||||
<div className="value">
|
|
||||||
{addr?.City || ''}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="address-detail-item district">
|
|
||||||
<div className="value">
|
|
||||||
{addr?.Dist || ''}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="address-detail-item state">
|
|
||||||
<div className="value">
|
|
||||||
{addr?.State || ''}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{addr?.Latitude && (
|
|
||||||
<div className="address-detail-item coordinates">
|
|
||||||
<div className="value coordinates">
|
|
||||||
<MdLocationOn />{' '}
|
|
||||||
{addr?.Latitude || ''},{' '}
|
|
||||||
{addr?.Longitude || ''}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
<div className="header-actions">
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
onClick={() => handleEditAddress(idx)}
|
|
||||||
className="edit-btn"
|
|
||||||
>
|
|
||||||
<FaEdit /> Edit
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<Popconfirm
|
<div className="address-detail-item address2">
|
||||||
title="Remove Address"
|
<div className="value">
|
||||||
description="Are you sure you want to remove this address?"
|
{addr?.Address2 || ''}
|
||||||
onConfirm={() => handleRemoveAddress(idx)}
|
</div>
|
||||||
okText="Yes, Remove"
|
</div>
|
||||||
cancelText="Cancel"
|
|
||||||
okType="danger"
|
<div className="address-detail-item zip">
|
||||||
>
|
<div className="value">
|
||||||
|
{addr?.Zip || ''}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="address-detail-item city">
|
||||||
|
<div className="value">
|
||||||
|
{addr?.City || ''}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="address-detail-item district">
|
||||||
|
<div className="value">
|
||||||
|
{addr?.Dist || ''}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="address-detail-item state">
|
||||||
|
<div className="value">
|
||||||
|
{addr?.State || ''}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{addr?.Latitude && (
|
||||||
|
<div className="address-detail-item coordinates">
|
||||||
|
<div className="value coordinates">
|
||||||
|
<MdLocationOn />{' '}
|
||||||
|
{addr?.Latitude || ''},{' '}
|
||||||
|
{addr?.Longitude || ''}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
<div className="header-actions">
|
||||||
<button
|
<button
|
||||||
className="remove-btn"
|
|
||||||
type="button"
|
type="button"
|
||||||
|
onClick={() => handleEditAddress(idx)}
|
||||||
|
className="edit-btn"
|
||||||
>
|
>
|
||||||
<FaTrash /> Remove
|
<FaEdit /> Edit
|
||||||
</button>
|
</button>
|
||||||
</Popconfirm>
|
|
||||||
|
<Popconfirm
|
||||||
|
title="Remove Address"
|
||||||
|
description="Are you sure you want to remove this address?"
|
||||||
|
onConfirm={() => handleRemoveAddress(idx)}
|
||||||
|
okText="Yes, Remove"
|
||||||
|
cancelText="Cancel"
|
||||||
|
okType="danger"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
className="remove-btn"
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<FaTrash /> Remove
|
||||||
|
</button>
|
||||||
|
</Popconfirm>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
))
|
||||||
))
|
|
||||||
) : (
|
) : (
|
||||||
<div className="empty-state">
|
<div className="empty-state">
|
||||||
<MdHome />
|
<MdHome />
|
||||||
|
|
@ -3484,7 +3484,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
|
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="State"
|
name="State"
|
||||||
// rules={[{ required: true }]}
|
// rules={[{ required: true }]}
|
||||||
>
|
>
|
||||||
<InputField
|
<InputField
|
||||||
field="State"
|
field="State"
|
||||||
|
|
@ -3527,13 +3527,13 @@ const FeaturesFunctionalities = (props) => {
|
||||||
style={
|
style={
|
||||||
offerType == 'P'
|
offerType == 'P'
|
||||||
? {
|
? {
|
||||||
opacity: '1',
|
opacity: '1',
|
||||||
boxShadow:
|
boxShadow:
|
||||||
'rgba(0, 0, 0, 0.05) 0px 6px 24px 0px, rgba(0, 0, 0, 0.08) 0px 0px 0px 1px',
|
'rgba(0, 0, 0, 0.05) 0px 6px 24px 0px, rgba(0, 0, 0, 0.08) 0px 0px 0px 1px',
|
||||||
margin: '3px',
|
margin: '3px',
|
||||||
padding: '5px',
|
padding: '5px',
|
||||||
backgroundColor: '#fff',
|
backgroundColor: '#fff',
|
||||||
}
|
}
|
||||||
: { opacity: '0.6', boxShadow: 'none' }
|
: { opacity: '0.6', boxShadow: 'none' }
|
||||||
}
|
}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
|
@ -3549,13 +3549,13 @@ const FeaturesFunctionalities = (props) => {
|
||||||
style={
|
style={
|
||||||
offerType == 'F'
|
offerType == 'F'
|
||||||
? {
|
? {
|
||||||
opacity: '1',
|
opacity: '1',
|
||||||
boxShadow:
|
boxShadow:
|
||||||
'rgba(0, 0, 0, 0.05) 0px 6px 24px 0px, rgba(0, 0, 0, 0.08) 0px 0px 0px 1px',
|
'rgba(0, 0, 0, 0.05) 0px 6px 24px 0px, rgba(0, 0, 0, 0.08) 0px 0px 0px 1px',
|
||||||
margin: '3px',
|
margin: '3px',
|
||||||
padding: '5px',
|
padding: '5px',
|
||||||
backgroundColor: '#fff',
|
backgroundColor: '#fff',
|
||||||
}
|
}
|
||||||
: { opacity: '0.6', boxShadow: 'none' }
|
: { opacity: '0.6', boxShadow: 'none' }
|
||||||
}
|
}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
|
@ -3652,7 +3652,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
}
|
}
|
||||||
isOnChange={
|
isOnChange={
|
||||||
formRef.current?.getFieldsValue()?.CustEmail ||
|
formRef.current?.getFieldsValue()?.CustEmail ||
|
||||||
inputValue
|
inputValue
|
||||||
? true
|
? true
|
||||||
: false
|
: false
|
||||||
}
|
}
|
||||||
|
|
@ -3680,7 +3680,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
isOnChange={
|
isOnChange={
|
||||||
formRef.current?.getFieldsValue()?.CreditLimit ||
|
formRef.current?.getFieldsValue()?.CreditLimit ||
|
||||||
inputValue
|
inputValue
|
||||||
? true
|
? true
|
||||||
: false
|
: false
|
||||||
}
|
}
|
||||||
|
|
@ -4027,7 +4027,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
buttonText="SAVE"
|
buttonText="SAVE"
|
||||||
color="901D77"
|
color="901D77"
|
||||||
icon={<ArrowRightOutlined />}
|
icon={<ArrowRightOutlined />}
|
||||||
// handleSubmit={() => { globalamount1() }}
|
// handleSubmit={() => { globalamount1() }}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -4041,7 +4041,7 @@ const FeaturesFunctionalities = (props) => {
|
||||||
bordered
|
bordered
|
||||||
dataSource={TableName}
|
dataSource={TableName}
|
||||||
width={'120px'}
|
width={'120px'}
|
||||||
//pagination={column2?.length < "11" ? false : true}
|
//pagination={column2?.length < "11" ? false : true}
|
||||||
></Table>
|
></Table>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,14 @@ import {
|
||||||
GlobalOverAllDiscSales,
|
GlobalOverAllDiscSales,
|
||||||
GlobalOverAllDiscEstimate,
|
GlobalOverAllDiscEstimate,
|
||||||
GlobaltipAmount,
|
GlobaltipAmount,
|
||||||
GlobalRetailWSSalesType
|
GlobalRetailWSSalesType,
|
||||||
|
GlobalPreviousOrderPayment,
|
||||||
|
GlobalPreviousOrderOfferDetails,
|
||||||
|
GlobalSalesBillEdit,
|
||||||
|
putSalesBillEdit,
|
||||||
|
changeBillEditingMode,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changePreviousOrderOfferDetail
|
||||||
} from '../../../../Features/BookingScreen/BookingData/BookingData';
|
} from '../../../../Features/BookingScreen/BookingData/BookingData';
|
||||||
import { Form, Radio } from 'antd';
|
import { Form, Radio } from 'antd';
|
||||||
import {
|
import {
|
||||||
|
|
@ -98,6 +105,7 @@ import { gettinghold } from '../../../../Features/BookingScreen/HoldOption/HoldO
|
||||||
import { Global_OrderOfferDetail } from '../../../../Features/Offer/Offer.js';
|
import { Global_OrderOfferDetail } from '../../../../Features/Offer/Offer.js';
|
||||||
import { useApplyOfferto_CardDetail } from '../UtillComponents/BSNavBarOffer/BSNavBarOffer_CustomHooks.jsx';
|
import { useApplyOfferto_CardDetail } from '../UtillComponents/BSNavBarOffer/BSNavBarOffer_CustomHooks.jsx';
|
||||||
import { ApplicationPreferences } from '../../../../Features/BrachLogin/BranchLogin.js';
|
import { ApplicationPreferences } from '../../../../Features/BrachLogin/BranchLogin.js';
|
||||||
|
import { ChangeFullFreeProductList, changeFullOfferAppliedProducts, GlobalOfferAppliedProducts } from '../../../../Features/Offer/Offernew/BookingOffernew.js';
|
||||||
|
|
||||||
const subDirectory = import.meta.env.BASE_URL;
|
const subDirectory = import.meta.env.BASE_URL;
|
||||||
const MainHomeUrl = import.meta.env.ENV_MAIN_BASE_URL;
|
const MainHomeUrl = import.meta.env.ENV_MAIN_BASE_URL;
|
||||||
|
|
@ -114,7 +122,7 @@ const SplitPayment = (props) => {
|
||||||
|
|
||||||
const applyOffer = useApplyOfferto_CardDetail();
|
const applyOffer = useApplyOfferto_CardDetail();
|
||||||
const globalTipAmount = useSelector(GlobaltipAmount);
|
const globalTipAmount = useSelector(GlobaltipAmount);
|
||||||
const TotalAmount = (props.hasOwnProperty('TotalNetAmount')
|
const TotalNetAmount = (props.hasOwnProperty('TotalNetAmount')
|
||||||
? props['TotalNetAmount']
|
? props['TotalNetAmount']
|
||||||
: null);
|
: null);
|
||||||
const TableOrderId = props.hasOwnProperty('TableBookingOrderId')
|
const TableOrderId = props.hasOwnProperty('TableBookingOrderId')
|
||||||
|
|
@ -128,7 +136,23 @@ const SplitPayment = (props) => {
|
||||||
: null;
|
: null;
|
||||||
const OrderCardDetail = useSelector(GlobalOrderCardDetails);
|
const OrderCardDetail = useSelector(GlobalOrderCardDetails);
|
||||||
const SelCustId = useSelector(GlobalSelCustId);
|
const SelCustId = useSelector(GlobalSelCustId);
|
||||||
|
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||||
|
const previousOrderPayment = useSelector(GlobalPreviousOrderPayment);
|
||||||
|
const previousOrderOfferDetails = useSelector(GlobalPreviousOrderOfferDetails);
|
||||||
|
const filteredPayments =
|
||||||
|
previousOrderPayment?.filter(
|
||||||
|
p => p?.LastOrderTran === 'Y' && p?.AfterAdjustment != null && p?.AfterAdjustment !== '' && p?.AfterAdjustment
|
||||||
|
) || [];
|
||||||
|
const paymentsToUse =
|
||||||
|
filteredPayments.length > 0 ? filteredPayments : previousOrderPayment || [];
|
||||||
|
const totalPreviousOfferAmount = previousOrderOfferDetails?.reduce(
|
||||||
|
(acc, offer) => acc + parseFloat(offer.OfferAmount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
const totalPreviouspayment = paymentsToUse?.reduce(
|
||||||
|
(acc, payment) => acc + parseFloat(payment.AfterAdjustment || payment.Amount || 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
const [paybtns, setpaybtns] = useState([]);
|
const [paybtns, setpaybtns] = useState([]);
|
||||||
const [PaymentOptions, setPaymentOptions] = useState([]);
|
const [PaymentOptions, setPaymentOptions] = useState([]);
|
||||||
const [PaymentUpiOptions, setPaymentUpiOptions] = useState([]);
|
const [PaymentUpiOptions, setPaymentUpiOptions] = useState([]);
|
||||||
|
|
@ -140,6 +164,9 @@ const SplitPayment = (props) => {
|
||||||
const [SplitSelPayMode, setSplitSelPayMode] = useState({});
|
const [SplitSelPayMode, setSplitSelPayMode] = useState({});
|
||||||
const [TotalSplitAmount, setTotalSplitAmount] = useState(0);
|
const [TotalSplitAmount, setTotalSplitAmount] = useState(0);
|
||||||
const [SalesOrderId, setSalesOrderId] = useState();
|
const [SalesOrderId, setSalesOrderId] = useState();
|
||||||
|
const [beforeAdjAmount, setBeforeAdjAmount] = useState(null);
|
||||||
|
const [afterAdjAmount, setAfterAdjAmount] = useState(null);
|
||||||
|
const [adjustmentType, setAdjustmentType] = useState(null);
|
||||||
const [PaymentgatewayCard, setPaymentgatewayCard] = useState([]);
|
const [PaymentgatewayCard, setPaymentgatewayCard] = useState([]);
|
||||||
const [PaymentDeviceCard, setPaymentDeviceCard] = useState([]);
|
const [PaymentDeviceCard, setPaymentDeviceCard] = useState([]);
|
||||||
const [PaymentgatewayUPI, setPaymentgatewayUPI] = useState([]);
|
const [PaymentgatewayUPI, setPaymentgatewayUPI] = useState([]);
|
||||||
|
|
@ -154,7 +181,7 @@ const SplitPayment = (props) => {
|
||||||
const GlobProdwisedata = useSelector(GlobalSelProdWiseEst);
|
const GlobProdwisedata = useSelector(GlobalSelProdWiseEst);
|
||||||
const prodCat = useSelector(GlobalProductCategorie);
|
const prodCat = useSelector(GlobalProductCategorie);
|
||||||
const ProdSubCat = useSelector(GlobalProductSubCategorie);
|
const ProdSubCat = useSelector(GlobalProductSubCategorie);
|
||||||
const RetailWSSalesType= useSelector(GlobalRetailWSSalesType, shallowEqual);
|
const RetailWSSalesType = useSelector(GlobalRetailWSSalesType, shallowEqual);
|
||||||
const selOption = useSelector(GlobalSelOption);
|
const selOption = useSelector(GlobalSelOption);
|
||||||
const ReportholdData = useSelector(GlobalReorderHoldDetails);
|
const ReportholdData = useSelector(GlobalReorderHoldDetails);
|
||||||
const GlobalExtraCharge = useSelector(globalExtraTotalAmount);
|
const GlobalExtraCharge = useSelector(globalExtraTotalAmount);
|
||||||
|
|
@ -177,6 +204,7 @@ const SplitPayment = (props) => {
|
||||||
(i) => i.SettingIdName === 'AllProductindividualToken'
|
(i) => i.SettingIdName === 'AllProductindividualToken'
|
||||||
)?.[0];
|
)?.[0];
|
||||||
const OrderOfferDetail = useSelector(Global_OrderOfferDetail, shallowEqual);
|
const OrderOfferDetail = useSelector(Global_OrderOfferDetail, shallowEqual);
|
||||||
|
const offerAppliedProducts = useSelector(GlobalOfferAppliedProducts);
|
||||||
const [SelectedBookingType, setSelectedBookingType] = useState(null);
|
const [SelectedBookingType, setSelectedBookingType] = useState(null);
|
||||||
const [ConfigDataList, setConfigDataList] = useState([]);
|
const [ConfigDataList, setConfigDataList] = useState([]);
|
||||||
const [formattedDate, setFormattedDate] = useState('');
|
const [formattedDate, setFormattedDate] = useState('');
|
||||||
|
|
@ -194,6 +222,8 @@ const SplitPayment = (props) => {
|
||||||
const OfferCheckedInSetup = templateData?.BookingNavbar?.[1].some(
|
const OfferCheckedInSetup = templateData?.BookingNavbar?.[1].some(
|
||||||
(item) => item?.OptionName == 'Offer'
|
(item) => item?.OptionName == 'Offer'
|
||||||
);
|
);
|
||||||
|
const [TotalAmount, setTotalAmount] = useState(0);
|
||||||
|
console.log(TotalAmount, "TotalSplitAmount", TotalSplitAmount)
|
||||||
const preferenceOffer =
|
const preferenceOffer =
|
||||||
SettingDataSelector?.[0]?.['SettingDtlDetails']?.find(
|
SettingDataSelector?.[0]?.['SettingDtlDetails']?.find(
|
||||||
(item) => item.SettingIdName === 'Offer'
|
(item) => item.SettingIdName === 'Offer'
|
||||||
|
|
@ -206,6 +236,21 @@ const SplitPayment = (props) => {
|
||||||
getPaymentOptionFeature();
|
getPaymentOptionFeature();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
if (salesBillEdit) {
|
||||||
|
const previousNetAmount = (totalPreviouspayment || 0);
|
||||||
|
if (TotalNetAmount > previousNetAmount) {
|
||||||
|
setTotalAmount(TotalNetAmount - previousNetAmount);
|
||||||
|
} else {
|
||||||
|
setTotalAmount(0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setTotalAmount(TotalNetAmount);
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [totalPreviousOfferAmount, totalPreviouspayment, TotalNetAmount])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (SelCustId) {
|
if (SelCustId) {
|
||||||
setpaybtns(PaymentOptions);
|
setpaybtns(PaymentOptions);
|
||||||
|
|
@ -227,8 +272,11 @@ const SplitPayment = (props) => {
|
||||||
}, [Splitpayment]);
|
}, [Splitpayment]);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const totalPayAmount = Object.keys(SplitSelPayMode)
|
const totalPayAmount = Object.keys(SplitSelPayMode)
|
||||||
.filter((key) => key.startsWith('PayAmount-')) // Filter keys that start with "PayAmount-"
|
.filter(key => key.startsWith('PayAmount-'))
|
||||||
.reduce((sum, key) => sum + parseInt(SplitSelPayMode[key]), 0);
|
.reduce((sum, key) => {
|
||||||
|
const value = parseInt(SplitSelPayMode[key], 10);
|
||||||
|
return sum + (isNaN(value) ? 0 : value);
|
||||||
|
}, 0);
|
||||||
setTotalSplitAmount(totalPayAmount);
|
setTotalSplitAmount(totalPayAmount);
|
||||||
}, [SplitSelPayMode]);
|
}, [SplitSelPayMode]);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
@ -522,7 +570,7 @@ const SplitPayment = (props) => {
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
PrintOrderDetails?.[0]?.OrderDetails?.map(
|
PrintOrderDetails?.[0]?.OrderDetails?.map(
|
||||||
async (orderDetail, index) => {
|
async (orderDetail, index) => {
|
||||||
const groupedTokens = orderDetail?.productDetails?.reduce(
|
const groupedTokens = orderDetail?.productDetails?.filter(data => data?.EditTokenAvailable !== 'N')?.reduce(
|
||||||
(acc, item, idx) => {
|
(acc, item, idx) => {
|
||||||
if (item.TokenAvailable === 'Y') {
|
if (item.TokenAvailable === 'Y') {
|
||||||
if (!item.CounterName) {
|
if (!item.CounterName) {
|
||||||
|
|
@ -557,7 +605,7 @@ const SplitPayment = (props) => {
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
PrintOrderDetails?.[0]?.OrderDetails?.map(
|
PrintOrderDetails?.[0]?.OrderDetails?.filter(data => data?.EditTokenAvailable !== 'N')?.map(
|
||||||
async (orderDetail, index) => {
|
async (orderDetail, index) => {
|
||||||
await TokenPrint(`${index}-${orderDetail?.OrderId}`);
|
await TokenPrint(`${index}-${orderDetail?.OrderId}`);
|
||||||
}
|
}
|
||||||
|
|
@ -585,6 +633,10 @@ const SplitPayment = (props) => {
|
||||||
'Style 11': 'PrintStyle11',
|
'Style 11': 'PrintStyle11',
|
||||||
'Style 12': 'PrintStyle12',
|
'Style 12': 'PrintStyle12',
|
||||||
'Style 13': 'RePrint',
|
'Style 13': 'RePrint',
|
||||||
|
A4: 'PrintStyleA4',
|
||||||
|
A5: 'PrintStyleA5',
|
||||||
|
A4Standard: 'A4Standard',
|
||||||
|
TaxInvoice: 'TaxInvoice',
|
||||||
};
|
};
|
||||||
|
|
||||||
const selectedStyle =
|
const selectedStyle =
|
||||||
|
|
@ -598,7 +650,7 @@ const SplitPayment = (props) => {
|
||||||
async (orderDetail, index) => {
|
async (orderDetail, index) => {
|
||||||
await printDiv(`${selectedStyle}-${index}`, style); // Use unique IDs for each print
|
await printDiv(`${selectedStyle}-${index}`, style); // Use unique IDs for each print
|
||||||
if (orderDetail?.BookingTypeName !== 'Dine In') {
|
if (orderDetail?.BookingTypeName !== 'Dine In') {
|
||||||
const groupedTokens = orderDetail?.productDetails?.reduce(
|
const groupedTokens = orderDetail?.productDetails?.filter(data => data?.EditTokenAvailable !== 'N')?.reduce(
|
||||||
(acc, item, idx) => {
|
(acc, item, idx) => {
|
||||||
if (item.TokenAvailable === 'Y') {
|
if (item.TokenAvailable === 'Y') {
|
||||||
if (!item.CounterName) {
|
if (!item.CounterName) {
|
||||||
|
|
@ -981,11 +1033,11 @@ const SplitPayment = (props) => {
|
||||||
<button
|
<button
|
||||||
className={
|
className={
|
||||||
SplitSelPayMode[`PaymentStatus-${i}`] === 'S' ||
|
SplitSelPayMode[`PaymentStatus-${i}`] === 'S' ||
|
||||||
SplitSelPayMode[`FirstPaymentclick-${i}`] === 'Y'
|
SplitSelPayMode[`FirstPaymentclick-${i}`] === 'Y'
|
||||||
? 'Splitbutton-diabled'
|
? 'Splitbutton-diabled'
|
||||||
: 'Splitbutton'
|
: 'Splitbutton'
|
||||||
}
|
}
|
||||||
// onClick={(e) => (SplitSelPayMode[`PaymentStatus-${i}`] === "S" || SplitSelPayMode[`FirstPaymentclick-${i}`] === "Y") ? e.stopPropagation() : onFinish(i)}
|
// onClick={(e) => (SplitSelPayMode[`PaymentStatus-${i}`] === "S" || SplitSelPayMode[`FirstPaymentclick-${i}`] === "Y") ? e.stopPropagation() : onFinish(i)}
|
||||||
>
|
>
|
||||||
Pay
|
Pay
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -1240,7 +1292,12 @@ const SplitPayment = (props) => {
|
||||||
} else {
|
} else {
|
||||||
dispatch(changeOrderCardDetails([]));
|
dispatch(changeOrderCardDetails([]));
|
||||||
}
|
}
|
||||||
|
dispatch(changeBillEditingMode(false));
|
||||||
|
await dispatch(changePreviousOrderPayment([]));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail([]));
|
||||||
await dispatch(ChangeTotalAmount([]));
|
await dispatch(ChangeTotalAmount([]));
|
||||||
|
dispatch(changeFullOfferAppliedProducts([]));
|
||||||
|
dispatch(ChangeFullFreeProductList([]));
|
||||||
await dispatch(changeReorderHoldDetails({}));
|
await dispatch(changeReorderHoldDetails({}));
|
||||||
await dispatch(changeReorderProductDetails([]));
|
await dispatch(changeReorderProductDetails([]));
|
||||||
await dispatch(ChangeNavHoldData(false));
|
await dispatch(ChangeNavHoldData(false));
|
||||||
|
|
@ -1308,8 +1365,8 @@ const SplitPayment = (props) => {
|
||||||
? 'E'
|
? 'E'
|
||||||
: GlobEstBooking === 'ParEst'
|
: GlobEstBooking === 'ParEst'
|
||||||
? GlobProdwisedata?.includes(
|
? GlobProdwisedata?.includes(
|
||||||
a.InwardDtlId + ' ' + a?.BookingTypeName
|
a.InwardDtlId + ' ' + a?.BookingTypeName
|
||||||
)
|
)
|
||||||
? 'E'
|
? 'E'
|
||||||
: 'S'
|
: 'S'
|
||||||
: 'S',
|
: 'S',
|
||||||
|
|
@ -1318,6 +1375,8 @@ const SplitPayment = (props) => {
|
||||||
OfferValue: a?.Type === 'C' ? a?.OfferValue : a.Offer,
|
OfferValue: a?.Type === 'C' ? a?.OfferValue : a.Offer,
|
||||||
OfferAmt: a?.Type === 'C' ? a?.TotalAmt : a.Offer,
|
OfferAmt: a?.Type === 'C' ? a?.TotalAmt : a.Offer,
|
||||||
OfferType: a?.Type === 'C' ? a?.OfferType : '',
|
OfferType: a?.Type === 'C' ? a?.OfferType : '',
|
||||||
|
OfferMode: a?.OfferMode,
|
||||||
|
OfferMessage: a?.OfferMessage,
|
||||||
CounterName: a?.TokenAvailable === 'Y' ? a?.CounterName : null,
|
CounterName: a?.TokenAvailable === 'Y' ? a?.CounterName : null,
|
||||||
ProductIdentifierDtls: a.ProductIdentifierDtls,
|
ProductIdentifierDtls: a.ProductIdentifierDtls,
|
||||||
ModelNumber: a.ModelNumber,
|
ModelNumber: a.ModelNumber,
|
||||||
|
|
@ -1326,9 +1385,9 @@ const SplitPayment = (props) => {
|
||||||
const NotSlectedTypeFind = temporderdetail?.find(
|
const NotSlectedTypeFind = temporderdetail?.find(
|
||||||
(a) => a?.BookingType != SelectedBookingType
|
(a) => a?.BookingType != SelectedBookingType
|
||||||
);
|
);
|
||||||
let updatedOfferDetails = OrderOfferDetail;
|
let updatedOfferDetails = offerAppliedProducts;
|
||||||
if (GlobEstBooking !== 'Sales') {
|
if (GlobEstBooking !== 'Sales') {
|
||||||
updatedOfferDetails = OrderOfferDetail?.filter(
|
updatedOfferDetails = offerAppliedProducts?.filter(
|
||||||
(item) =>
|
(item) =>
|
||||||
!(
|
!(
|
||||||
item.TableName === 'LoyaltyPoints' &&
|
item.TableName === 'LoyaltyPoints' &&
|
||||||
|
|
@ -1339,7 +1398,7 @@ const SplitPayment = (props) => {
|
||||||
}
|
}
|
||||||
let temppostdata = {
|
let temppostdata = {
|
||||||
CompId: CompId,
|
CompId: CompId,
|
||||||
SalesMode:RetailWSSalesType || 'R',
|
SalesMode: RetailWSSalesType || 'R',
|
||||||
BranchId: BranchId,
|
BranchId: BranchId,
|
||||||
AppId: AppId,
|
AppId: AppId,
|
||||||
OrderDate: formattedDate,
|
OrderDate: formattedDate,
|
||||||
|
|
@ -1413,37 +1472,37 @@ const SplitPayment = (props) => {
|
||||||
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'card'
|
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'card'
|
||||||
? SplitSelPayMode[`CardSelection-${i}`]
|
? SplitSelPayMode[`CardSelection-${i}`]
|
||||||
: SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
: SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
||||||
'default'
|
'default'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: SplitSelPayMode[`UPISelection-${i}`],
|
: SplitSelPayMode[`UPISelection-${i}`],
|
||||||
ModeOfPayment:
|
ModeOfPayment:
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'default'
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'default'
|
||||||
? PaymentUpiOptions?.find(
|
? PaymentUpiOptions?.find(
|
||||||
(upipay) => upipay?.Mode === SplitSelPayMode[`UPIMode-${i}`]
|
(upipay) => upipay?.Mode === SplitSelPayMode[`UPIMode-${i}`]
|
||||||
)?.UPIDetailId
|
)?.UPIDetailId
|
||||||
: null,
|
: null,
|
||||||
AccountDtl:
|
AccountDtl:
|
||||||
SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'default'
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'default'
|
||||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||||
(upipay) => upipay?.Mode === SplitSelPayMode[`UPIMode-${i}`]
|
(upipay) => upipay?.Mode === SplitSelPayMode[`UPIMode-${i}`]
|
||||||
)
|
)
|
||||||
: (SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
: (SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
||||||
'pd') ||
|
'pd') ||
|
||||||
|
(SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() ===
|
||||||
|
'card' &&
|
||||||
|
SplitSelPayMode[`CardSelection-${i}`]?.toLowerCase() ===
|
||||||
|
'pd')
|
||||||
|
? useOptions?.[0]?.PaymentDetails?.PaymentDevice
|
||||||
|
: (SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() ===
|
||||||
|
'upi' &&
|
||||||
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
||||||
|
'pg') ||
|
||||||
(SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() ===
|
(SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() ===
|
||||||
'card' &&
|
'card' &&
|
||||||
SplitSelPayMode[`CardSelection-${i}`]?.toLowerCase() ===
|
SplitSelPayMode[`CardSelection-${i}`]?.toLowerCase() ===
|
||||||
'pd')
|
'pg')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentDevice
|
|
||||||
: (SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() ===
|
|
||||||
'upi' &&
|
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
|
||||||
'pg') ||
|
|
||||||
(SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() ===
|
|
||||||
'card' &&
|
|
||||||
SplitSelPayMode[`CardSelection-${i}`]?.toLowerCase() ===
|
|
||||||
'pg')
|
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||||
: [],
|
: [],
|
||||||
PaymentStatus:
|
PaymentStatus:
|
||||||
|
|
@ -1452,9 +1511,9 @@ const SplitPayment = (props) => {
|
||||||
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'credit'
|
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'credit'
|
||||||
? 'S'
|
? 'S'
|
||||||
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() ===
|
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() ===
|
||||||
'upi' &&
|
'upi' &&
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
||||||
'default'
|
'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
Debit: 0,
|
Debit: 0,
|
||||||
|
|
@ -1468,7 +1527,7 @@ const SplitPayment = (props) => {
|
||||||
};
|
};
|
||||||
let PostData = temppostdata;
|
let PostData = temppostdata;
|
||||||
(i === 0 && SplitSelPayMode[`PaymentStatus-${i}`] === 'F') ||
|
(i === 0 && SplitSelPayMode[`PaymentStatus-${i}`] === 'F') ||
|
||||||
(i === 0 && props.hasOwnProperty('TableBookingOrderId'))
|
(i === 0 && props.hasOwnProperty('TableBookingOrderId'))
|
||||||
? PutSplitPayment(i)
|
? PutSplitPayment(i)
|
||||||
: i === 0
|
: i === 0
|
||||||
? Object.keys(ReportholdData)?.length > 0
|
? Object.keys(ReportholdData)?.length > 0
|
||||||
|
|
@ -1517,14 +1576,14 @@ const SplitPayment = (props) => {
|
||||||
}
|
}
|
||||||
setMessageData(
|
setMessageData(
|
||||||
response?.data?.response +
|
response?.data?.response +
|
||||||
' ' +
|
' ' +
|
||||||
(response?.data?.OrderDetails?.length > 0
|
(response?.data?.OrderDetails?.length > 0
|
||||||
? response?.data?.OrderId &&
|
? response?.data?.OrderId &&
|
||||||
extractLastNumberOrderId(
|
extractLastNumberOrderId(
|
||||||
response?.data?.OrderId,
|
response?.data?.OrderId,
|
||||||
response?.data?.OrderDetails?.[0]?.FYStatus
|
response?.data?.OrderDetails?.[0]?.FYStatus
|
||||||
)
|
)
|
||||||
: '')
|
: '')
|
||||||
);
|
);
|
||||||
if (response?.data?.OrderDetails?.length > 0) {
|
if (response?.data?.OrderDetails?.length > 0) {
|
||||||
setPrintOrderDetails([response?.data]);
|
setPrintOrderDetails([response?.data]);
|
||||||
|
|
@ -1566,11 +1625,23 @@ const SplitPayment = (props) => {
|
||||||
: ReportholdData?.OrderId;
|
: ReportholdData?.OrderId;
|
||||||
putdata['SalesId'] = ReportholdData?.SalesId;
|
putdata['SalesId'] = ReportholdData?.SalesId;
|
||||||
putdata['UpdatedBy'] = UserId;
|
putdata['UpdatedBy'] = UserId;
|
||||||
|
let response = null;
|
||||||
|
|
||||||
let response = await dispatch(PutBookingData(putdata)).unwrap();
|
if (salesBillEdit) {
|
||||||
|
response = await dispatch(putSalesBillEdit(putdata)).unwrap();
|
||||||
|
} else {
|
||||||
|
response = await dispatch(PutBookingData(putdata)).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
if (response?.data?.statusCode == 1) {
|
if (response?.data?.statusCode == 1) {
|
||||||
setSalesOrderId(response?.data?.OrderId);
|
setSalesOrderId(response?.data?.OrderId);
|
||||||
|
const salesEditAmount = response?.data?.PaymentOrderDtl?.find(payment =>
|
||||||
|
payment?.LastOrderTran === 'Y' && payment?.AdjustmentType &&
|
||||||
|
payment?.AdjustmentType != null && payment?.AfterAdjustment && payment?.BeforeAdjustment && payment?.AfterAdjustment != null && payment?.BeforeAdjustment != null
|
||||||
|
)
|
||||||
|
setBeforeAdjAmount(salesEditAmount?.BeforeAdjustment || null);
|
||||||
|
setAfterAdjAmount(salesEditAmount?.AfterAdjustment || null);
|
||||||
|
setAdjustmentType(salesEditAmount?.AdjustmentType || null);
|
||||||
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
let Paymentdevicefilter = response?.data?.PaymentOrderDtl?.filter(
|
||||||
(item) =>
|
(item) =>
|
||||||
item?.PaymentOptionType?.toLowerCase() === 'pd' &&
|
item?.PaymentOptionType?.toLowerCase() === 'pd' &&
|
||||||
|
|
@ -1606,14 +1677,14 @@ const SplitPayment = (props) => {
|
||||||
}
|
}
|
||||||
setMessageData(
|
setMessageData(
|
||||||
response?.data?.response +
|
response?.data?.response +
|
||||||
' ' +
|
' ' +
|
||||||
(response?.data?.OrderDetails?.length > 0
|
(response?.data?.OrderDetails?.length > 0
|
||||||
? response?.data?.OrderId &&
|
? response?.data?.OrderId &&
|
||||||
extractLastNumberOrderId(
|
extractLastNumberOrderId(
|
||||||
response?.data?.OrderId,
|
response?.data?.OrderId,
|
||||||
response?.data?.OrderDetails?.[0]?.FYStatus
|
response?.data?.OrderDetails?.[0]?.FYStatus
|
||||||
)
|
)
|
||||||
: '')
|
: '')
|
||||||
);
|
);
|
||||||
if (response?.data?.OrderDetails?.length > 0) {
|
if (response?.data?.OrderDetails?.length > 0) {
|
||||||
setPrintOrderDetails([response?.data]);
|
setPrintOrderDetails([response?.data]);
|
||||||
|
|
@ -1672,32 +1743,32 @@ const SplitPayment = (props) => {
|
||||||
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'card'
|
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'card'
|
||||||
? SplitSelPayMode[`CardSelection-${i}`]
|
? SplitSelPayMode[`CardSelection-${i}`]
|
||||||
: SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
: SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
||||||
'default'
|
'default'
|
||||||
? 'PC'
|
? 'PC'
|
||||||
: SplitSelPayMode[`UPISelection-${i}`],
|
: SplitSelPayMode[`UPISelection-${i}`],
|
||||||
ModeOfPayment:
|
ModeOfPayment:
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'default'
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'default'
|
||||||
? PaymentUpiOptions?.find(
|
? PaymentUpiOptions?.find(
|
||||||
(upipay) => upipay?.Mode === SplitSelPayMode[`UPIMode-${i}`]
|
(upipay) => upipay?.Mode === SplitSelPayMode[`UPIMode-${i}`]
|
||||||
)?.UPIDetailId
|
)?.UPIDetailId
|
||||||
: null,
|
: null,
|
||||||
AccountDtl:
|
AccountDtl:
|
||||||
SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'default'
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'default'
|
||||||
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
? useOptions?.[0]?.PaymentDetails?.Payatthecounter?.find(
|
||||||
(upipay) => upipay?.Mode === SplitSelPayMode[`UPIMode-${i}`]
|
(upipay) => upipay?.Mode === SplitSelPayMode[`UPIMode-${i}`]
|
||||||
)
|
)
|
||||||
: (SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
: (SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'pd') ||
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'pd') ||
|
||||||
(SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'card' &&
|
(SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'card' &&
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'pd')
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'pd')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentDevice
|
? useOptions?.[0]?.PaymentDetails?.PaymentDevice
|
||||||
: (SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
: (SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
||||||
'pg') ||
|
'pg') ||
|
||||||
(SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() ===
|
(SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() ===
|
||||||
'card' &&
|
'card' &&
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'pg')
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() === 'pg')
|
||||||
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
? useOptions?.[0]?.PaymentDetails?.PaymentGateway
|
||||||
: [],
|
: [],
|
||||||
PaymentStatus:
|
PaymentStatus:
|
||||||
|
|
@ -1706,8 +1777,8 @@ const SplitPayment = (props) => {
|
||||||
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'credit'
|
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'credit'
|
||||||
? 'S'
|
? 'S'
|
||||||
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
: SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'upi' &&
|
||||||
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
SplitSelPayMode[`UPISelection-${i}`]?.toLowerCase() ===
|
||||||
'default'
|
'default'
|
||||||
? 'S'
|
? 'S'
|
||||||
: 'P',
|
: 'P',
|
||||||
Debit: 0,
|
Debit: 0,
|
||||||
|
|
@ -1715,6 +1786,10 @@ const SplitPayment = (props) => {
|
||||||
SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'credit'
|
SplitSelPayMode[`PaymentMode-${i}`]?.toLowerCase() === 'credit'
|
||||||
? SplitSelPayMode[`PayAmount-${i}`]
|
? SplitSelPayMode[`PayAmount-${i}`]
|
||||||
: 0,
|
: 0,
|
||||||
|
BeforeAdjAmount: beforeAdjAmount || null,
|
||||||
|
AfterAdjAmount: afterAdjAmount || null,
|
||||||
|
AdjustmentType: adjustmentType || null,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let response = await dispatch(
|
let response = await dispatch(
|
||||||
|
|
@ -1761,14 +1836,14 @@ const SplitPayment = (props) => {
|
||||||
}
|
}
|
||||||
setMessageData(
|
setMessageData(
|
||||||
response?.data?.response +
|
response?.data?.response +
|
||||||
' ' +
|
' ' +
|
||||||
(response?.data?.OrderDetails?.length > 0
|
(response?.data?.OrderDetails?.length > 0
|
||||||
? response?.data?.OrderId &&
|
? response?.data?.OrderId &&
|
||||||
extractLastNumberOrderId(
|
extractLastNumberOrderId(
|
||||||
response?.data?.OrderId,
|
response?.data?.OrderId,
|
||||||
response?.data?.OrderDetails?.[0]?.FYStatus
|
response?.data?.OrderDetails?.[0]?.FYStatus
|
||||||
)
|
)
|
||||||
: '')
|
: '')
|
||||||
);
|
);
|
||||||
if (response?.data?.OrderDetails?.length > 0) {
|
if (response?.data?.OrderDetails?.length > 0) {
|
||||||
setPrintOrderDetails([response?.data]);
|
setPrintOrderDetails([response?.data]);
|
||||||
|
|
@ -1870,14 +1945,14 @@ const SplitPayment = (props) => {
|
||||||
});
|
});
|
||||||
setMessageData(
|
setMessageData(
|
||||||
bookingpaymentupdate?.data?.response +
|
bookingpaymentupdate?.data?.response +
|
||||||
' ' +
|
' ' +
|
||||||
(bookingpaymentupdate?.data?.OrderDetails?.length > 0
|
(bookingpaymentupdate?.data?.OrderDetails?.length > 0
|
||||||
? bookingpaymentupdate?.data?.OrderId &&
|
? bookingpaymentupdate?.data?.OrderId &&
|
||||||
extractLastNumberOrderId(
|
extractLastNumberOrderId(
|
||||||
bookingpaymentupdate?.data?.OrderId,
|
bookingpaymentupdate?.data?.OrderId,
|
||||||
bookingpaymentupdate?.data?.OrderDetails?.[0]?.FYStatus
|
bookingpaymentupdate?.data?.OrderDetails?.[0]?.FYStatus
|
||||||
)
|
)
|
||||||
: '')
|
: '')
|
||||||
);
|
);
|
||||||
if (bookingpaymentupdate?.data?.OrderDetails?.length > 0) {
|
if (bookingpaymentupdate?.data?.OrderDetails?.length > 0) {
|
||||||
setPrintOrderDetails([bookingpaymentupdate?.data]);
|
setPrintOrderDetails([bookingpaymentupdate?.data]);
|
||||||
|
|
@ -1895,7 +1970,7 @@ const SplitPayment = (props) => {
|
||||||
if (
|
if (
|
||||||
Date.now() - startTime >
|
Date.now() - startTime >
|
||||||
useOptions?.[0]?.PDConfigDetails?.[0]?.AutoCancelDurationInMinutes *
|
useOptions?.[0]?.PDConfigDetails?.[0]?.AutoCancelDurationInMinutes *
|
||||||
60000
|
60000
|
||||||
) {
|
) {
|
||||||
// 60,000 ms = 1 minute
|
// 60,000 ms = 1 minute
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,26 @@ import MobilePrint from '../../BookingFunctionality/MobilePrint.jsx';
|
||||||
import '../../../../../Styles/BookingScreen/Components/OtherConponents/Reprint/BSReprint.scss';
|
import '../../../../../Styles/BookingScreen/Components/OtherConponents/Reprint/BSReprint.scss';
|
||||||
import PaymentPdfBooking from '../../../../paymentpdfPage/PaymentPdfBooking.jsx';
|
import PaymentPdfBooking from '../../../../paymentpdfPage/PaymentPdfBooking.jsx';
|
||||||
import {
|
import {
|
||||||
|
changeBillEditingMode,
|
||||||
|
changeEstimateBooking,
|
||||||
|
changeHoldOrderDtl,
|
||||||
|
changeOrderCardDetails,
|
||||||
|
changeOrderType,
|
||||||
|
ChangeOverAllDiscEstimate,
|
||||||
|
ChangeOverAllDiscSales,
|
||||||
|
changePreviousOrderOfferDetail,
|
||||||
|
changePreviousOrderPayment,
|
||||||
|
changeReorderHoldDetails,
|
||||||
|
changeReorderProductDetails,
|
||||||
|
ChangeSelectedCustDisable,
|
||||||
|
changeSelectedCustId,
|
||||||
|
changeSelectedOption,
|
||||||
|
changeSelProdWiseEst,
|
||||||
|
getAllCustomer,
|
||||||
getConfigType,
|
getConfigType,
|
||||||
|
getCustomerForHold,
|
||||||
|
GlobalSalesBillEdit,
|
||||||
|
GlobalSelectedCustDisable,
|
||||||
PreferenceData,
|
PreferenceData,
|
||||||
} from '../../../../../Features/BookingScreen/BookingData/BookingData.js';
|
} from '../../../../../Features/BookingScreen/BookingData/BookingData.js';
|
||||||
import { DatePicker, Form } from 'antd';
|
import { DatePicker, Form } from 'antd';
|
||||||
|
|
@ -63,10 +82,15 @@ import {
|
||||||
import { TbSettingsCog } from 'react-icons/tb';
|
import { TbSettingsCog } from 'react-icons/tb';
|
||||||
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
||||||
import { axiosRetailInstanceData } from '../../../../../Features/AuthenicationToken/AuthenticationToken.js';
|
import { axiosRetailInstanceData } from '../../../../../Features/AuthenicationToken/AuthenticationToken.js';
|
||||||
|
import { MdEdit } from "react-icons/md";
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
import { changeOrderOfferDetail } from '../../../../../Features/Offer/Offer.js';
|
||||||
|
import { ChangeFullFreeProductList, changeFullOfferAppliedProducts, changeLoyaltyConsumedQuantities } from '../../../../../Features/Offer/Offernew/BookingOffernew.js';
|
||||||
|
import { ChangeTotalAmount } from '../../../../../Features/ExteraCharges/ExtraCharges.js';
|
||||||
|
|
||||||
const RetailApiurl = import.meta.env.ENV_API_URL;
|
const RetailApiurl = import.meta.env.ENV_API_URL;
|
||||||
|
|
||||||
function BSReprint() {
|
function BSReprint({ setOpenModel = () => { } }) {
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
const appPreferences = useSelector(ApplicationPreferences);
|
const appPreferences = useSelector(ApplicationPreferences);
|
||||||
|
|
@ -100,24 +124,31 @@ function BSReprint() {
|
||||||
const [page, setpage] = useState(1);
|
const [page, setpage] = useState(1);
|
||||||
const [itemsPerPage] = useState(10);
|
const [itemsPerPage] = useState(10);
|
||||||
const [DefReason, setDefReason] = useState({});
|
const [DefReason, setDefReason] = useState({});
|
||||||
console.log(DefReason, 'DefReason');
|
|
||||||
const SettingDataSelector = useSelector(PreferenceData);
|
const SettingDataSelector = useSelector(PreferenceData);
|
||||||
|
const salesBillEdit = useSelector(GlobalSalesBillEdit);
|
||||||
|
const custDisable = useSelector(GlobalSelectedCustDisable);
|
||||||
|
console.log(SettingDataSelector, 'SettingDataSelector');
|
||||||
const MobileA4Print = SettingDataSelector?.[0]?.SettingDtlDetails?.find(
|
const MobileA4Print = SettingDataSelector?.[0]?.SettingDtlDetails?.find(
|
||||||
(setting) =>
|
(setting) =>
|
||||||
setting?.SettingIdName?.toLowerCase() === 'mobilea4' &&
|
setting?.SettingIdName?.toLowerCase() === 'mobilea4' &&
|
||||||
setting?.SettingValue === 'Y'
|
setting?.SettingValue === 'Y'
|
||||||
);
|
);
|
||||||
|
const editBill = SettingDataSelector?.[0]?.SettingDtlDetails?.find(
|
||||||
|
(setting) =>
|
||||||
|
setting?.SettingIdName?.toLowerCase() === 'editbill' &&
|
||||||
|
setting?.SettingValue === 'Y'
|
||||||
|
);
|
||||||
const TokenOnly = SettingDataSelector?.[0]?.SettingDtlDetails?.filter(
|
const TokenOnly = SettingDataSelector?.[0]?.SettingDtlDetails?.filter(
|
||||||
(i) => i.SettingIdName === 'TokenOnly'
|
(i) => i.SettingIdName === 'TokenOnly'
|
||||||
)?.[0];
|
)?.[0];
|
||||||
const IndividualToken = SettingDataSelector?.[0]?.SettingDtlDetails?.filter(
|
const IndividualToken = SettingDataSelector?.[0]?.SettingDtlDetails?.filter(
|
||||||
(i) => i.SettingIdName === 'AllProductindividualToken'
|
(i) => i.SettingIdName === 'AllProductindividualToken'
|
||||||
)?.[0];
|
)?.[0];
|
||||||
const Weightasquantity = SettingDataSelector?.[0]?.SettingDtlDetails?.some(
|
const Weightasquantity = SettingDataSelector?.[0]?.SettingDtlDetails?.some(
|
||||||
(setting) =>
|
(setting) =>
|
||||||
setting?.SettingIdName?.toLowerCase() === 'weightasquantity' &&
|
setting?.SettingIdName?.toLowerCase() === 'weightasquantity' &&
|
||||||
setting?.SettingValue === 'Y'
|
setting?.SettingValue === 'Y'
|
||||||
);
|
);
|
||||||
const printDatas = useSelector(GlobalprintDatas);
|
const printDatas = useSelector(GlobalprintDatas);
|
||||||
console.log(printDatas, 'GlobalprintDatas');
|
console.log(printDatas, 'GlobalprintDatas');
|
||||||
const PrinterDetails = useSelector(GlobalPrinterMappingDtls);
|
const PrinterDetails = useSelector(GlobalPrinterMappingDtls);
|
||||||
|
|
@ -560,7 +591,7 @@ function BSReprint() {
|
||||||
|
|
||||||
const selectedStyle =
|
const selectedStyle =
|
||||||
stylesMap[
|
stylesMap[
|
||||||
printerTemplateStyle == undefined ? 'Style 13' : printerTemplateStyle
|
printerTemplateStyle == undefined ? 'Style 13' : printerTemplateStyle
|
||||||
];
|
];
|
||||||
if (selectedStyle) {
|
if (selectedStyle) {
|
||||||
if (data === 'without') {
|
if (data === 'without') {
|
||||||
|
|
@ -784,7 +815,6 @@ function BSReprint() {
|
||||||
<a style={{ color: 'black' }}>{(page - 1) * 10 + index + 1}</a>
|
<a style={{ color: 'black' }}>{(page - 1) * 10 + index + 1}</a>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: 'Bill No',
|
title: 'Bill No',
|
||||||
dataIndex: 'BillNo',
|
dataIndex: 'BillNo',
|
||||||
|
|
@ -895,6 +925,21 @@ function BSReprint() {
|
||||||
/>
|
/>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
// ...(editBill ? [
|
||||||
|
{
|
||||||
|
title: 'Edit Bill',
|
||||||
|
key: 'EditBill',
|
||||||
|
dataIndex: 'EditBill',
|
||||||
|
align: 'center',
|
||||||
|
render: (text, row) => (
|
||||||
|
<MdEdit
|
||||||
|
style={{ color: '#1292EE', fontSize: '25px', cursor: 'pointer' }}
|
||||||
|
onClick={async (e) => await handleEditBill(e, row)}
|
||||||
|
/>
|
||||||
|
),
|
||||||
|
}
|
||||||
|
// ] : [])
|
||||||
|
,
|
||||||
{
|
{
|
||||||
title: () => (
|
title: () => (
|
||||||
<div
|
<div
|
||||||
|
|
@ -1192,24 +1237,162 @@ function BSReprint() {
|
||||||
console.log(table2Data, 'table2Datadfnfjd');
|
console.log(table2Data, 'table2Datadfnfjd');
|
||||||
|
|
||||||
const totalSalesQty = table2Data?.[0]?.productDetails?.reduce((acc, item) => {
|
const totalSalesQty = table2Data?.[0]?.productDetails?.reduce((acc, item) => {
|
||||||
const isWeightScale = item?.ScaleType === 'weight';
|
const isWeightScale = item?.ScaleType === 'weight';
|
||||||
|
|
||||||
if (isWeightScale) {
|
if (isWeightScale) {
|
||||||
return acc + (
|
return acc + (
|
||||||
Weightasquantity
|
Weightasquantity
|
||||||
? Math.round(Number(item?.SalesQty || item?.OrderQty || 0))
|
? Math.round(Number(item?.SalesQty || item?.OrderQty || 0))
|
||||||
: 1
|
: 1
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return acc + Math.round(Number(item?.SalesQty || item?.OrderQty|| 0));
|
return acc + Math.round(Number(item?.SalesQty || item?.OrderQty || 0));
|
||||||
}, 0)
|
}, 0)
|
||||||
|
|
||||||
const widthOutTexAmt = table2Data?.[0]?.TaxDetails?.reduce(
|
const widthOutTexAmt = table2Data?.[0]?.TaxDetails?.reduce(
|
||||||
(sum, item) => sum + (item?.WithOutTaxAmount || 0),
|
(sum, item) => sum + (item?.WithOutTaxAmount || 0),
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const handleEditBill = async (e, orderDtls) => {
|
||||||
|
setOpenModel(e);
|
||||||
|
dispatch(changeBillEditingMode(true));
|
||||||
|
const {
|
||||||
|
productDetails,
|
||||||
|
ExtraChargeDetails,
|
||||||
|
CustSuppId,
|
||||||
|
OrderOfferDetails,
|
||||||
|
RefDetails,
|
||||||
|
OrderId,
|
||||||
|
OrderType,
|
||||||
|
OverallDisc,
|
||||||
|
OrderPaymentDtl,
|
||||||
|
} = orderDtls;
|
||||||
|
const updated = productDetails?.map((item) => ({
|
||||||
|
...item,
|
||||||
|
Offer: item?.OfferAmt,
|
||||||
|
localId: uuidv4(),
|
||||||
|
OfferMode: item?.OfferMode ? item?.OfferMode?.trim() : null,
|
||||||
|
VariantAvailableFrom: item?.AvailableFrom || null,
|
||||||
|
VariantAvailableTo: item?.AvailableTo || null,
|
||||||
|
OrderQty: item?.SalesQty,
|
||||||
|
OrderRate: item?.Rate,
|
||||||
|
// TotalAmt: formatAmount((item.TotalAmt - item.OfferValue)),
|
||||||
|
}));
|
||||||
|
|
||||||
|
if (RefDetails?.[0]?.FreeProdList) {
|
||||||
|
dispatch(ChangeFullFreeProductList(RefDetails[0]?.FreeProdList));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (RefDetails?.[0]?.OfferAppliedProductList) {
|
||||||
|
dispatch(
|
||||||
|
changeFullOfferAppliedProducts(
|
||||||
|
RefDetails[0]?.OfferAppliedProductList
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (CustSuppId) {
|
||||||
|
let res = await dispatch(
|
||||||
|
getCustomerForHold({
|
||||||
|
CompId: CompId,
|
||||||
|
AppId: AppId,
|
||||||
|
branchId: BranchId,
|
||||||
|
OrderId: OrderId,
|
||||||
|
})
|
||||||
|
).unwrap();
|
||||||
|
|
||||||
|
if (res?.data?.statusCode !== 1) {
|
||||||
|
res = await dispatch(
|
||||||
|
getAllCustomer({
|
||||||
|
CompId: CompId,
|
||||||
|
AppId: AppId,
|
||||||
|
branchId: BranchId,
|
||||||
|
})
|
||||||
|
).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (res?.data?.statusCode === 1) {
|
||||||
|
|
||||||
|
const loyaltyFreeProductOfferApplied = (RefDetails?.[0]?.OfferAppliedProductList || [])?.filter(
|
||||||
|
(off) =>
|
||||||
|
off?.FreeProductsList?.OfferMode === 'L' &&
|
||||||
|
off?.TableUniqueName === 'FreeProduct'
|
||||||
|
);
|
||||||
|
|
||||||
|
const customerDetails = res?.data?.data?.find(
|
||||||
|
(item) => item.CustId === CustSuppId
|
||||||
|
);
|
||||||
|
|
||||||
|
if (customerDetails) {
|
||||||
|
const { CustId, CustName, CustMobile, LoyaltyPointsDetail, TotalLoyaltyPoints } = customerDetails;
|
||||||
|
const data = {
|
||||||
|
CustId: CustId,
|
||||||
|
CustName: CustName,
|
||||||
|
label: CustName ? CustName : CustMobile,
|
||||||
|
value: CustMobile,
|
||||||
|
LoyaltyPointsDetail: LoyaltyPointsDetail,
|
||||||
|
TotalLoyaltyPoints: TotalLoyaltyPoints
|
||||||
|
};
|
||||||
|
|
||||||
|
dispatch(changeOrderOfferDetail([...OrderOfferDetails]));
|
||||||
|
dispatch(changeSelectedOption(data));
|
||||||
|
await dispatch(ChangeSelectedCustDisable(true));
|
||||||
|
|
||||||
|
if (loyaltyFreeProductOfferApplied?.length > 0) {
|
||||||
|
const loyaltyProdQuantities = {};
|
||||||
|
|
||||||
|
loyaltyFreeProductOfferApplied.forEach((off) => {
|
||||||
|
const freeProdDtls = off?.FreeProductsList;
|
||||||
|
const freeProdOfferId =
|
||||||
|
freeProdDtls?.ProdVariantDetails?.[0]?.StockDetails?.[0]
|
||||||
|
?.ProdOfferId;
|
||||||
|
|
||||||
|
const key = [
|
||||||
|
freeProdDtls?.OfferId,
|
||||||
|
freeProdDtls?.FreeProdId,
|
||||||
|
freeProdDtls?.FreeProdVariantName,
|
||||||
|
freeProdOfferId,
|
||||||
|
].join('|');
|
||||||
|
|
||||||
|
loyaltyProdQuantities[key] = freeProdDtls?.FreeQty || 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (Object.keys(loyaltyProdQuantities).length > 0) {
|
||||||
|
dispatch(changeLoyaltyConsumedQuantities(loyaltyProdQuantities));
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(loyaltyProdQuantities, 'loyaltyProdQuantities');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await dispatch(changeOrderType('Hold'));
|
||||||
|
await dispatch(changeHoldOrderDtl(true));
|
||||||
|
await dispatch(changeReorderHoldDetails(orderDtls));
|
||||||
|
await dispatch(changeReorderProductDetails(updated));
|
||||||
|
await dispatch(changeSelectedCustId(CustSuppId));
|
||||||
|
await dispatch(ChangeTotalAmount(ExtraChargeDetails));
|
||||||
|
await dispatch(changePreviousOrderPayment(OrderPaymentDtl));
|
||||||
|
await dispatch(changePreviousOrderOfferDetail(OrderOfferDetails));
|
||||||
|
dispatch(changeOrderCardDetails(updated));
|
||||||
|
let temp = updated?.filter((item) => item.OrderType === 'E')
|
||||||
|
.map((item) => item.InwardDtlId + ' ' + item.BookingTypeName);
|
||||||
|
await dispatch(changeSelProdWiseEst(temp));
|
||||||
|
|
||||||
|
if (OrderType === 'E') {
|
||||||
|
await dispatch(changeEstimateBooking('OvrAllEst'));
|
||||||
|
await dispatch(ChangeOverAllDiscEstimate(parseFloat(OverallDisc)));
|
||||||
|
} else {
|
||||||
|
await dispatch(changeEstimateBooking('Sales'));
|
||||||
|
await dispatch(ChangeOverAllDiscSales(parseFloat(OverallDisc)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -1295,7 +1478,7 @@ function BSReprint() {
|
||||||
<Tables
|
<Tables
|
||||||
columns={columns}
|
columns={columns}
|
||||||
data={filteredData}
|
data={filteredData}
|
||||||
// pagination={handlePageChange}
|
// pagination={handlePageChange}
|
||||||
/>
|
/>
|
||||||
{countOfProduct > 10 && (
|
{countOfProduct > 10 && (
|
||||||
<Pagination
|
<Pagination
|
||||||
|
|
|
||||||
|
|
@ -177,9 +177,9 @@ const PrintPreviewPage = (props) => {
|
||||||
carouselRef.current.goTo(index);
|
carouselRef.current.goTo(index);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const goToPrintSetup = () => {
|
const goToPrintSetup = () => {
|
||||||
navigate(`${subDirectory}saleslayouts/print-selection`);
|
navigate(`${subDirectory}saleslayouts/print-selection`);
|
||||||
};
|
};
|
||||||
const getStyleNote = (value) => {
|
const getStyleNote = (value) => {
|
||||||
if (!GlobaldummyData) return false;
|
if (!GlobaldummyData) return false;
|
||||||
const isAnyTableOptionTrue =
|
const isAnyTableOptionTrue =
|
||||||
|
|
@ -385,7 +385,6 @@ const PrintPreviewPage = (props) => {
|
||||||
// (item) => item.StyleName === selectedStyleName
|
// (item) => item.StyleName === selectedStyleName
|
||||||
// );
|
// );
|
||||||
|
|
||||||
// debugger
|
|
||||||
// // Only one "Sales" style should have SetasDefault: "Y"
|
// // Only one "Sales" style should have SetasDefault: "Y"
|
||||||
// const updatedTemplates = SizeOptionData.map((item) => {
|
// const updatedTemplates = SizeOptionData.map((item) => {
|
||||||
// if (
|
// if (
|
||||||
|
|
@ -401,7 +400,7 @@ const PrintPreviewPage = (props) => {
|
||||||
// });
|
// });
|
||||||
|
|
||||||
// console.log(updatedTemplates,'ngfjbknbfgjbgfjn');
|
// console.log(updatedTemplates,'ngfjbknbfgjbgfjn');
|
||||||
|
|
||||||
|
|
||||||
// let TemplateDetails = updatedTemplates.map((item) => ({
|
// let TemplateDetails = updatedTemplates.map((item) => ({
|
||||||
// SizeId: null,
|
// SizeId: null,
|
||||||
|
|
@ -451,78 +450,79 @@ const PrintPreviewPage = (props) => {
|
||||||
// };
|
// };
|
||||||
|
|
||||||
|
|
||||||
const onfinish = async (values) => {
|
const onfinish = async (values) => {
|
||||||
if (!SizeOptionData || SizeOptionData.length === 0) {
|
if (!SizeOptionData || SizeOptionData.length === 0) {
|
||||||
setMessageType('error');
|
setMessageType('error');
|
||||||
setMessageData('Please Setup the Screen');
|
setMessageData('Please Setup the Screen');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const selectedStyle = SizeOptionData.find(
|
|
||||||
(item) => item.StyleName === selectedStyleName
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!selectedStyle) {
|
const selectedStyle = SizeOptionData.find(
|
||||||
setMessageType('error');
|
(item) => item.StyleName === selectedStyleName
|
||||||
setMessageData('Selected style not found');
|
);
|
||||||
return;
|
|
||||||
}
|
if (!selectedStyle) {
|
||||||
// Update all templates, ensuring only the selected style has SetasDefault: "Y"
|
setMessageType('error');
|
||||||
const updatedTemplates = SizeOptionData.map((item) => {
|
setMessageData('Selected style not found');
|
||||||
return {
|
return;
|
||||||
...item,
|
}
|
||||||
SetasDefault: item.StyleName === selectedStyleName ? "Y" : "N",
|
// Update all templates, ensuring only the selected style has SetasDefault: "Y"
|
||||||
|
const updatedTemplates = SizeOptionData.map((item) => {
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
SetasDefault: item.StyleName === selectedStyleName ? "Y" : "N",
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(updatedTemplates, 'ngfjbknbfgjbgfjn');
|
||||||
|
|
||||||
|
let TemplateDetails = updatedTemplates.map((item) => ({
|
||||||
|
SizeId: null,
|
||||||
|
StyleId: item.StyleId,
|
||||||
|
SetasDefault: item.SetasDefault,
|
||||||
|
SetasDefaultInvoice: item.SetasDefaultInvoice,
|
||||||
|
PrintTypeId: item?.PrintTypeId,
|
||||||
|
SizeDetails: item.OptionDetails.map((opt) => ({
|
||||||
|
OptionId: opt.ConfigId,
|
||||||
|
})),
|
||||||
|
...(item?.TermsandConditions?.length > 0
|
||||||
|
? {
|
||||||
|
PrintTermsandConditions: (item?.TermsandConditions
|
||||||
|
? item?.TermsandConditions
|
||||||
|
: []
|
||||||
|
)?.map((tc) => ({
|
||||||
|
TermsandConditions: tc,
|
||||||
|
})),
|
||||||
|
}
|
||||||
|
: {}),
|
||||||
|
...(item?.Notes ? { Notes: item.Notes } : {}),
|
||||||
|
...(item?.PageSize ? { PageSize: item.PageSize } : {}),
|
||||||
|
...(item?.PrintHdrName ? { PrintHdrName: item.PrintHdrName } : {}),
|
||||||
|
...(item?.Signature ? { Signature: item?.Signature } : {}),
|
||||||
|
PrintType: item?.PrintType,
|
||||||
|
}));
|
||||||
|
|
||||||
|
const Data = {
|
||||||
|
CompId: CompId,
|
||||||
|
BranchId: BranchId,
|
||||||
|
AppId: AppId,
|
||||||
|
TemplateDetails: TemplateDetails,
|
||||||
|
CreatedBy: UserId,
|
||||||
};
|
};
|
||||||
});
|
|
||||||
|
|
||||||
console.log(updatedTemplates, 'ngfjbknbfgjbgfjn');
|
const response = await dispatch(
|
||||||
|
putPrintSelectionComponentData(Data)
|
||||||
|
).unwrap();
|
||||||
|
|
||||||
let TemplateDetails = updatedTemplates.map((item) => ({
|
if (response?.data?.statusCode === 1) {
|
||||||
SizeId: null,
|
dispatch(changeSelectedPrintdummyData(false));
|
||||||
StyleId: item.StyleId,
|
await GetPrintData();
|
||||||
SetasDefault: item.SetasDefault,
|
setMessageType('success');
|
||||||
SetasDefaultInvoice: item.SetasDefaultInvoice,
|
setMessageData(response?.data?.response);
|
||||||
PrintTypeId: item?.PrintTypeId,
|
if (onClose) onClose(); // Call the onClose callback after success
|
||||||
SizeDetails: item.OptionDetails.map((opt) => ({
|
}
|
||||||
OptionId: opt.ConfigId,
|
|
||||||
})),
|
|
||||||
...(item?.TermsandConditions?.length > 0
|
|
||||||
? {
|
|
||||||
PrintTermsandConditions: (item?.TermsandConditions
|
|
||||||
? item?.TermsandConditions
|
|
||||||
: []
|
|
||||||
)?.map((tc) => ({
|
|
||||||
TermsandConditions: tc,
|
|
||||||
})),
|
|
||||||
}
|
|
||||||
: {}),
|
|
||||||
...(item?.Notes ? { Notes: item.Notes } : {}),
|
|
||||||
...(item?.PageSize ? { PageSize: item.PageSize } : {}),
|
|
||||||
...(item?.PrintHdrName ? { PrintHdrName: item.PrintHdrName } : {}),
|
|
||||||
...(item?.Signature ? { Signature: item?.Signature } : {}),
|
|
||||||
PrintType: item?.PrintType,
|
|
||||||
}));
|
|
||||||
|
|
||||||
const Data = {
|
|
||||||
CompId: CompId,
|
|
||||||
BranchId: BranchId,
|
|
||||||
AppId: AppId,
|
|
||||||
TemplateDetails: TemplateDetails,
|
|
||||||
CreatedBy: UserId,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const response = await dispatch(
|
|
||||||
putPrintSelectionComponentData(Data)
|
|
||||||
).unwrap();
|
|
||||||
|
|
||||||
if (response?.data?.statusCode === 1) {
|
|
||||||
dispatch(changeSelectedPrintdummyData(false));
|
|
||||||
await GetPrintData();
|
|
||||||
setMessageType('success');
|
|
||||||
setMessageData(response?.data?.response);
|
|
||||||
if (onClose) onClose(); // Call the onClose callback after success
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return (
|
return (
|
||||||
<div style={{ display: 'flex', flexDirection: 'column', width: '100%' }}>
|
<div style={{ display: 'flex', flexDirection: 'column', width: '100%' }}>
|
||||||
<Messages
|
<Messages
|
||||||
|
|
@ -618,32 +618,32 @@ const onfinish = async (values) => {
|
||||||
</div>
|
</div>
|
||||||
{style.component}
|
{style.component}
|
||||||
</div>
|
</div>
|
||||||
)):(
|
)) : (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
padding: "1rem",
|
padding: "1rem",
|
||||||
textAlign: "center",
|
textAlign: "center",
|
||||||
fontWeight: 500,
|
fontWeight: 500,
|
||||||
color: "#777",
|
color: "#777",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Please set up Print form to view or change here.
|
Please set up Print form to view or change here.
|
||||||
<br />
|
<br />
|
||||||
<span
|
<span
|
||||||
onClick={goToPrintSetup} // <-- call your function here
|
onClick={goToPrintSetup} // <-- call your function here
|
||||||
style={{
|
style={{
|
||||||
marginTop: "0.5rem",
|
marginTop: "0.5rem",
|
||||||
display: "inline-block",
|
display: "inline-block",
|
||||||
color: "#2ba01b",
|
color: "#2ba01b",
|
||||||
cursor: "pointer",
|
cursor: "pointer",
|
||||||
textDecoration: "underline",
|
textDecoration: "underline",
|
||||||
fontWeight: 600,
|
fontWeight: 600,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Click here to go there
|
Click here to go there
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</Carousel>
|
</Carousel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1752,7 +1752,6 @@ const BSCreditCustomer = (props) => {
|
||||||
</label>
|
</label>
|
||||||
}
|
}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
// debugger
|
|
||||||
const value = parseFloat(e?.target?.value) || 0;
|
const value = parseFloat(e?.target?.value) || 0;
|
||||||
if (value <= SelectedBillData?.OrderPendingAmount) {
|
if (value <= SelectedBillData?.OrderPendingAmount) {
|
||||||
HandleAmount(e?.target?.value);
|
HandleAmount(e?.target?.value);
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ const BSNavbarSearchStandard = ({ inputRef }) => {
|
||||||
const ProdName = useSelector(GlobalSearchData);
|
const ProdName = useSelector(GlobalSearchData);
|
||||||
const templateData = useSelector(getTemplateData);
|
const templateData = useSelector(getTemplateData);
|
||||||
const appPreferences = useSelector(ApplicationPreferences);
|
const appPreferences = useSelector(ApplicationPreferences);
|
||||||
|
console.log(ProdName, "ProdName")
|
||||||
const [preFocus, setPreFocus] = useState(false);
|
const [preFocus, setPreFocus] = useState(false);
|
||||||
const [screenWidth, setScreenWidth] = useState(window.innerWidth);
|
const [screenWidth, setScreenWidth] = useState(window.innerWidth);
|
||||||
const [check, setCheck] = useState(false);
|
const [check, setCheck] = useState(false);
|
||||||
|
|
@ -92,7 +92,7 @@ const BSNavbarSearchStandard = ({ inputRef }) => {
|
||||||
if (debounceTimeoutRef.current) clearTimeout(debounceTimeoutRef.current);
|
if (debounceTimeoutRef.current) clearTimeout(debounceTimeoutRef.current);
|
||||||
|
|
||||||
debounceTimeoutRef.current = setTimeout(async () => {
|
debounceTimeoutRef.current = setTimeout(async () => {
|
||||||
|
|
||||||
const hasSearch = (Array?.isArray(ProdName) && ProdName?.length === 0 ? "" : ProdName)?.trim()?.length > 0;
|
const hasSearch = (Array?.isArray(ProdName) && ProdName?.length === 0 ? "" : ProdName)?.trim()?.length > 0;
|
||||||
|
|
||||||
if (hasSearch) {
|
if (hasSearch) {
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ const BSPrinterSetting = ({
|
||||||
IconComponent = PozoReprintIcon,
|
IconComponent = PozoReprintIcon,
|
||||||
ClassName = 'BSBillingNav-icon',
|
ClassName = 'BSBillingNav-icon',
|
||||||
drawerOpen = false,
|
drawerOpen = false,
|
||||||
setDrawerOpen = () => {},
|
setDrawerOpen = () => { },
|
||||||
}) => {
|
}) => {
|
||||||
const CompId = getSession('CompId');
|
const CompId = getSession('CompId');
|
||||||
const BranchId = getSession('BranchId');
|
const BranchId = getSession('BranchId');
|
||||||
|
|
@ -57,7 +57,7 @@ const BSPrinterSetting = ({
|
||||||
const [receiptReprintShow, setReceiptReprintShow] = useState(false);
|
const [receiptReprintShow, setReceiptReprintShow] = useState(false);
|
||||||
const SettingDataSelector = useSelector(PreferenceData);
|
const SettingDataSelector = useSelector(PreferenceData);
|
||||||
const [KioskPrintersetupShow, setKioskPrintersetupShow] = useState(false);
|
const [KioskPrintersetupShow, setKioskPrintersetupShow] = useState(false);
|
||||||
|
console.log(OpenModel, "OpenModel")
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const printmodelOpen = () => {
|
const printmodelOpen = () => {
|
||||||
setOpenModel(true);
|
setOpenModel(true);
|
||||||
|
|
@ -266,7 +266,7 @@ const BSPrinterSetting = ({
|
||||||
className="printer-settings-tabs"
|
className="printer-settings-tabs"
|
||||||
>
|
>
|
||||||
<TabPane tab="Sales Reprint" key="reprint">
|
<TabPane tab="Sales Reprint" key="reprint">
|
||||||
{reprintShow && <BSReprint />}
|
{reprintShow && <BSReprint setOpenModel={closeModel} />}
|
||||||
</TabPane>
|
</TabPane>
|
||||||
<TabPane tab="Receipt Reprint" key="receiptReprint">
|
<TabPane tab="Receipt Reprint" key="receiptReprint">
|
||||||
{receiptReprintShow && <CreditCustomerReprint />}
|
{receiptReprintShow && <CreditCustomerReprint />}
|
||||||
|
|
|
||||||
|
|
@ -1,518 +1,449 @@
|
||||||
import { shallowEqual, useSelector } from 'react-redux';
|
import { shallowEqual, useSelector } from "react-redux";
|
||||||
import {
|
import { GlobalAccessForOthers, GlobalCardAccess, GlobalCombosearch, GlobalItemCard, GlobalProductCategorie, GlobalSelectedDatas, GlobalWithoutSubCatItemCard, triggerProductCard } from "../../../../Features/BookingScreen/BookingData/BookingData";
|
||||||
GlobalAccessForOthers,
|
import { DefaultModal } from "../../../../Components/Modal/DefaultModal";
|
||||||
GlobalCardAccess,
|
import { useCallback, useEffect, useRef, useState } from "react";
|
||||||
GlobalCombosearch,
|
import { Tables } from "../../../../Components/Tables/Table";
|
||||||
GlobalItemCard,
|
import { InputField } from "../../../../Components/Forms/InputField";
|
||||||
GlobalProductCategorie,
|
import { Form, Pagination, Tooltip } from "antd";
|
||||||
GlobalSelectedDatas,
|
import { getSession } from "../../../../Services/Others";
|
||||||
GlobalWithoutSubCatItemCard,
|
import { Messages } from "../../../../Components/Notifications/Messages";
|
||||||
triggerProductCard,
|
import { useDispatch } from "react-redux";
|
||||||
} from '../../../../Features/BookingScreen/BookingData/BookingData';
|
import { PutStockPrice } from "../../../../Features/StockPriceUpdate/StockPriceUpdateMaster";
|
||||||
import { DefaultModal } from '../../../../Components/Modal/DefaultModal';
|
import PriceChange from "../../../../Images/PayOptImgs/PriceChange.svg"
|
||||||
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
||||||
import { Tables } from '../../../../Components/Tables/Table';
|
|
||||||
import { InputField } from '../../../../Components/Forms/InputField';
|
|
||||||
import { Form, Pagination, Tooltip } from 'antd';
|
|
||||||
import { getSession } from '../../../../Services/Others';
|
|
||||||
import { Messages } from '../../../../Components/Notifications/Messages';
|
|
||||||
import { useDispatch } from 'react-redux';
|
|
||||||
import { PutStockPrice } from '../../../../Features/StockPriceUpdate/StockPriceUpdateMaster';
|
|
||||||
import PriceChange from '../../../../Images/PayOptImgs/PriceChange.svg';
|
|
||||||
|
|
||||||
const ProductPriceChange = ({
|
const ProductPriceChange = ({ showButton = true, priceChangeProduct = null, productPriceChange = false, setProductPriceChange = () => { }, setPriceChangeProduct = () => { } }) => {
|
||||||
showButton = true,
|
|
||||||
priceChangeProduct = [],
|
|
||||||
productPriceChange = false,
|
|
||||||
setProductPriceChange = () => {},
|
|
||||||
setPriceChangeProduct = () => {},
|
|
||||||
}) => {
|
|
||||||
const formRef = useRef(null);
|
|
||||||
const dispatch = useDispatch();
|
|
||||||
|
|
||||||
const AppId = getSession('AppId');
|
const formRef = useRef(null);
|
||||||
const CompId = getSession('CompId');
|
const dispatch = useDispatch();
|
||||||
const BranchId = getSession('BranchId');
|
|
||||||
const UserId = getSession('UserId');
|
|
||||||
|
|
||||||
const [messageData, setMessageData] = useState(null);
|
const AppId = getSession('AppId');
|
||||||
const [messageType, setMessageType] = useState(null);
|
const CompId = getSession('CompId');
|
||||||
const [currentPage, setCurrentPage] = useState(1);
|
const BranchId = getSession('BranchId');
|
||||||
const [pageSize] = useState(10);
|
const UserId = getSession('UserId');
|
||||||
|
|
||||||
const [noSubcatCardData, setNoSubcatCardData] = useState();
|
const [messageData, setMessageData] = useState(null);
|
||||||
const [priceChangeModal, setPriceChangeModal] = useState(false);
|
const [messageType, setMessageType] = useState(null);
|
||||||
|
const [currentPage, setCurrentPage] = useState(1);
|
||||||
|
const [pageSize] = useState(10);
|
||||||
|
|
||||||
const comboSearch = useSelector(GlobalCombosearch);
|
const [noSubcatCardData, setNoSubcatCardData] = useState();
|
||||||
const ProdCat = useSelector(GlobalProductCategorie, shallowEqual);
|
const [priceChangeModal, setPriceChangeModal] = useState(false);
|
||||||
const ItemCard = useSelector(GlobalItemCard, shallowEqual);
|
|
||||||
const withoutSubCatItemCard = useSelector(
|
|
||||||
GlobalWithoutSubCatItemCard,
|
|
||||||
shallowEqual
|
|
||||||
);
|
|
||||||
const CardAccess = useSelector(GlobalCardAccess, shallowEqual);
|
|
||||||
const globalAccessForOthers = useSelector(
|
|
||||||
GlobalAccessForOthers,
|
|
||||||
shallowEqual
|
|
||||||
);
|
|
||||||
const SelectedDatas = useSelector(GlobalSelectedDatas, shallowEqual);
|
|
||||||
const [tableData, setTableData] = useState([]);
|
|
||||||
const [editingKey, setEditingKey] = useState(null);
|
|
||||||
const [priceChangedProducts, setPriceChangedProducts] = useState([]);
|
|
||||||
console.log(comboSearch, 'comboSearch');
|
|
||||||
|
|
||||||
// console.log(noSubcatCardData, "noSubcatCardData")
|
const comboSearch = useSelector(GlobalCombosearch);
|
||||||
|
const ProdCat = useSelector(GlobalProductCategorie, shallowEqual);
|
||||||
|
const ItemCard = useSelector(GlobalItemCard, shallowEqual);
|
||||||
|
const withoutSubCatItemCard = useSelector(GlobalWithoutSubCatItemCard, shallowEqual);
|
||||||
|
const CardAccess = useSelector(GlobalCardAccess, shallowEqual);
|
||||||
|
const globalAccessForOthers = useSelector(GlobalAccessForOthers, shallowEqual);
|
||||||
|
const SelectedDatas = useSelector(GlobalSelectedDatas, shallowEqual);
|
||||||
|
const [tableData, setTableData] = useState([]);
|
||||||
|
const [editingKey, setEditingKey] = useState(null);
|
||||||
|
const [priceChangedProducts, setPriceChangedProducts] = useState([]);
|
||||||
|
console.log(comboSearch, "comboSearch")
|
||||||
|
|
||||||
useEffect(() => {
|
// console.log(noSubcatCardData, "noSubcatCardData")
|
||||||
if (
|
|
||||||
ProdCat &&
|
|
||||||
(ItemCard || withoutSubCatItemCard) &&
|
|
||||||
(!noSubcatCardData || noSubcatCardData?.length === 0)
|
|
||||||
) {
|
|
||||||
setNoSubcatCardData(
|
|
||||||
ItemCard?.length === 0 ? withoutSubCatItemCard : ItemCard
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}, [ProdCat, ItemCard, withoutSubCatItemCard, noSubcatCardData]);
|
|
||||||
|
|
||||||
const priceChangeColumns = [
|
useEffect(() => {
|
||||||
{
|
if (ProdCat && (ItemCard || withoutSubCatItemCard) && (!noSubcatCardData || noSubcatCardData?.length === 0)) {
|
||||||
title: 'S.No',
|
setNoSubcatCardData(ItemCard?.length === 0 ? withoutSubCatItemCard : ItemCard);
|
||||||
dataIndex: 'SlNo',
|
}
|
||||||
key: 'SlNo',
|
}, [ProdCat, ItemCard, withoutSubCatItemCard, noSubcatCardData]);
|
||||||
width: '60px',
|
|
||||||
align: 'center',
|
|
||||||
render: (text, record, index) => (
|
|
||||||
<div>{(currentPage - 1) * pageSize + index + 1}</div>
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Product Name',
|
|
||||||
dataIndex: 'ProdName',
|
|
||||||
key: 'ProdName',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Old MRP',
|
|
||||||
dataIndex: 'MRP',
|
|
||||||
key: 'MRP',
|
|
||||||
width: '100px',
|
|
||||||
align: 'right',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'New MRP (Optional)',
|
|
||||||
dataIndex: 'NewMRP',
|
|
||||||
key: 'NewMRP',
|
|
||||||
width: '100px',
|
|
||||||
align: 'right',
|
|
||||||
render: (text, record, index) => {
|
|
||||||
// if (index === editingKey) {
|
|
||||||
|
|
||||||
// }
|
const priceChangeColumns = [
|
||||||
// return <div>{text ? text : 'Enter New MRP'}</div>
|
{
|
||||||
return (
|
title: 'S.No',
|
||||||
<Form.Item
|
dataIndex: 'SlNo',
|
||||||
name={`NewMRP${index}`}
|
key: 'SlNo',
|
||||||
rules={[
|
width: '60px',
|
||||||
{
|
align: 'center',
|
||||||
validator: async (_, value) => {
|
render: (text, record, index) => <div>{(currentPage - 1) * pageSize + index + 1}</div>
|
||||||
if (value === '') {
|
},
|
||||||
return Promise.resolve();
|
{
|
||||||
} else if (parseFloat(value) < 1) {
|
title: 'Product Name',
|
||||||
return Promise.reject(`MRP should be greater than 0`);
|
dataIndex: 'ProdName',
|
||||||
}
|
key: 'ProdName',
|
||||||
return Promise.resolve();
|
},
|
||||||
},
|
{
|
||||||
},
|
title: 'Old MRP',
|
||||||
]}
|
dataIndex: 'MRP',
|
||||||
>
|
key: 'MRP',
|
||||||
<InputField
|
width: '100px',
|
||||||
value={text}
|
align: 'right',
|
||||||
placeholder="Enter New MRP"
|
},
|
||||||
onChange={(e) => handleNewMRPChange(e?.target?.value, index)}
|
{
|
||||||
inputMode="decimal"
|
title: 'New MRP (Optional)',
|
||||||
onInput={(e) => {
|
dataIndex: 'NewMRP',
|
||||||
let cleanedValue = e.target.value.replace(/[^0-9.]/g, ''); // Remove invalid characters
|
key: 'NewMRP',
|
||||||
const parts = cleanedValue.split('.');
|
width: '100px',
|
||||||
|
align: 'right',
|
||||||
|
render: (text, record, index) => {
|
||||||
|
// if (index === editingKey) {
|
||||||
|
|
||||||
if (cleanedValue.startsWith('.')) {
|
// }
|
||||||
cleanedValue = '0' + cleanedValue;
|
// return <div>{text ? text : 'Enter New MRP'}</div>
|
||||||
}
|
return (
|
||||||
|
<Form.Item
|
||||||
|
name={`NewMRP${index}`}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
validator: async (_, value) => {
|
||||||
|
if (value === '') {
|
||||||
|
return Promise.resolve();
|
||||||
|
} else if (parseFloat(value) < 1) {
|
||||||
|
return Promise.reject(`MRP should be greater than 0`)
|
||||||
|
}
|
||||||
|
return Promise.resolve();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]}>
|
||||||
|
<InputField
|
||||||
|
value={text}
|
||||||
|
placeholder="Enter New MRP"
|
||||||
|
onChange={(e) => handleNewMRPChange(e?.target?.value, index)}
|
||||||
|
inputMode="decimal"
|
||||||
|
onInput={(e) => {
|
||||||
|
let cleanedValue = e.target.value.replace(
|
||||||
|
/[^0-9.]/g,
|
||||||
|
''
|
||||||
|
); // Remove invalid characters
|
||||||
|
const parts = cleanedValue.split('.');
|
||||||
|
|
||||||
e.target.value =
|
if (cleanedValue.startsWith('.')) {
|
||||||
parts.length > 2
|
cleanedValue = '0' + cleanedValue;
|
||||||
? `${parts[0]}.${parts.slice(1).join('')}`
|
}
|
||||||
: cleanedValue;
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</Form.Item>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Old Sell Price',
|
|
||||||
dataIndex: 'SellPrice',
|
|
||||||
key: 'SellPrice',
|
|
||||||
width: '120px',
|
|
||||||
align: 'right',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'New Sell Price',
|
|
||||||
dataIndex: 'NewSellPrice',
|
|
||||||
key: 'NewSellPrice',
|
|
||||||
width: '160px',
|
|
||||||
align: 'right',
|
|
||||||
render: (text, record, index) => {
|
|
||||||
// if (index === editingKey) {
|
|
||||||
|
|
||||||
// }
|
e.target.value =
|
||||||
// return <div>{text ? text : 'Enter New Sell Price'}</div>
|
parts.length > 2
|
||||||
return (
|
? `${parts[0]}.${parts.slice(1).join('')}`
|
||||||
<Form.Item
|
: cleanedValue;
|
||||||
name={`NewSellPrice${index}`}
|
}}
|
||||||
rules={[
|
/>
|
||||||
{
|
</Form.Item>
|
||||||
validator: async (_, value) => {
|
);
|
||||||
if (value === '') {
|
},
|
||||||
return Promise.resolve();
|
},
|
||||||
} else if (parseFloat(value) < 1) {
|
{
|
||||||
return Promise.reject(
|
title: 'Old Sell Price',
|
||||||
`Sell Price should be greater than 0`
|
dataIndex: 'SellPrice',
|
||||||
);
|
key: 'SellPrice',
|
||||||
}
|
width: '120px',
|
||||||
return Promise.resolve();
|
align: 'right',
|
||||||
},
|
},
|
||||||
},
|
{
|
||||||
]}
|
title: 'New Sell Price',
|
||||||
>
|
dataIndex: 'NewSellPrice',
|
||||||
<InputField
|
key: 'NewSellPrice',
|
||||||
value={text}
|
width: '160px',
|
||||||
placeholder="Enter New Sell Price"
|
align: 'right',
|
||||||
onChange={(e) =>
|
render: (text, record, index) => {
|
||||||
handleNewSellPriceChange(e?.target?.value, index)
|
// if (index === editingKey) {
|
||||||
}
|
|
||||||
inputMode="decimal"
|
|
||||||
onInput={(e) => {
|
|
||||||
let cleanedValue = e.target.value.replace(/[^0-9.]/g, ''); // Remove invalid characters
|
|
||||||
const parts = cleanedValue.split('.');
|
|
||||||
|
|
||||||
if (cleanedValue.startsWith('.')) {
|
// }
|
||||||
cleanedValue = '0' + cleanedValue;
|
// return <div>{text ? text : 'Enter New Sell Price'}</div>
|
||||||
}
|
return (
|
||||||
|
<Form.Item
|
||||||
|
name={`NewSellPrice${index}`}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
validator: async (_, value) => {
|
||||||
|
if (value === '') {
|
||||||
|
return Promise.resolve();
|
||||||
|
} else if (parseFloat(value) < 1) {
|
||||||
|
return Promise.reject(`Sell Price should be greater than 0`)
|
||||||
|
}
|
||||||
|
return Promise.resolve();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<InputField
|
||||||
|
value={text}
|
||||||
|
placeholder="Enter New Sell Price"
|
||||||
|
onChange={(e) => handleNewSellPriceChange(e?.target?.value, index)}
|
||||||
|
inputMode="decimal"
|
||||||
|
onInput={(e) => {
|
||||||
|
let cleanedValue = e.target.value.replace(
|
||||||
|
/[^0-9.]/g,
|
||||||
|
''
|
||||||
|
); // Remove invalid characters
|
||||||
|
const parts = cleanedValue.split('.');
|
||||||
|
|
||||||
e.target.value =
|
if (cleanedValue.startsWith('.')) {
|
||||||
parts.length > 2
|
cleanedValue = '0' + cleanedValue;
|
||||||
? `${parts[0]}.${parts.slice(1).join('')}`
|
}
|
||||||
: cleanedValue;
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</Form.Item>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
const cardData = !globalAccessForOthers
|
e.target.value =
|
||||||
? CardAccess
|
parts.length > 2
|
||||||
? SelectedDatas?.length > 1
|
? `${parts[0]}.${parts.slice(1).join('')}`
|
||||||
? SelectedDatas
|
: cleanedValue;
|
||||||
: SelectedDatas?.[0]?.AppId === 0 && SelectedDatas?.[0]?.CompId === 0
|
}}
|
||||||
? []
|
/>
|
||||||
: SelectedDatas
|
</Form.Item>
|
||||||
: ItemCard?.length === 0 ||
|
);
|
||||||
(ItemCard?.[0]?.AppId === 0 && ItemCard?.[0]?.CompId === 0)
|
},
|
||||||
? noSubcatCardData
|
},
|
||||||
: ItemCard
|
];
|
||||||
: [];
|
|
||||||
|
|
||||||
console.log(cardData, 'noSubcatCardDatanoSubcatCardData', ItemCard);
|
const cardData = !globalAccessForOthers
|
||||||
|
? CardAccess
|
||||||
|
? SelectedDatas?.length > 1
|
||||||
|
? SelectedDatas
|
||||||
|
: SelectedDatas?.[0]?.AppId === 0 && SelectedDatas?.[0]?.CompId === 0
|
||||||
|
? []
|
||||||
|
: SelectedDatas
|
||||||
|
: ItemCard?.length === 0 || (ItemCard?.[0]?.AppId === 0 && ItemCard?.[0]?.CompId === 0)
|
||||||
|
? noSubcatCardData
|
||||||
|
: ItemCard
|
||||||
|
: '';
|
||||||
|
|
||||||
useEffect(() => {
|
console.log(cardData, "noSubcatCardDatanoSubcatCardData", ItemCard)
|
||||||
if (priceChangeModal || productPriceChange) {
|
|
||||||
const extractStockDtls = (data) => {
|
|
||||||
if (data?.length === 0 || !data) return [];
|
|
||||||
|
|
||||||
let stockDtls = [];
|
useEffect(() => {
|
||||||
|
const extractStockDtls = (data) => {
|
||||||
|
if (data?.length === 0) return [];
|
||||||
|
|
||||||
data?.forEach((item) => {
|
let stockDtls = [];
|
||||||
let products = item?.ProductDetail?.flatMap((product) => product);
|
|
||||||
|
|
||||||
let variants = products?.flatMap(
|
data?.forEach(item => {
|
||||||
(product) => product?.ProdVariantDetails
|
let products = item?.ProductDetail?.flatMap(product => product);
|
||||||
);
|
|
||||||
const filteredVariants = variants?.filter(
|
|
||||||
(variant) => variant?.StockDetails?.length > 0
|
|
||||||
);
|
|
||||||
const stocks = filteredVariants?.flatMap((variant) =>
|
|
||||||
variant?.StockDetails?.map((stock) => ({
|
|
||||||
...stock,
|
|
||||||
ProdName:
|
|
||||||
products?.[0]?.ProdName +
|
|
||||||
(variant?.ProdVariantName
|
|
||||||
? ` (${variant?.ProdVariantName})`
|
|
||||||
: ''),
|
|
||||||
StockAvailable: products?.[0]?.StockAvailable,
|
|
||||||
ProdVariantName: variant?.ProdVariantName,
|
|
||||||
}))
|
|
||||||
);
|
|
||||||
|
|
||||||
stockDtls.push(
|
let variants = products?.flatMap(product => product?.ProdVariantDetails);
|
||||||
...stocks?.filter((stock) =>
|
const filteredVariants = variants?.filter(variant => variant?.StockDetails?.length > 0);
|
||||||
stock?.StockAvailable === 'Y' ? stock?.BatchRef : true
|
const stocks = filteredVariants?.flatMap(variant =>
|
||||||
)
|
variant?.StockDetails?.map(stock => ({
|
||||||
);
|
...stock,
|
||||||
});
|
ProdName: products?.[0]?.ProdName + (variant?.ProdVariantName ? ` (${variant?.ProdVariantName})` : ''),
|
||||||
console.log('extractStockDtls', stockDtls);
|
StockAvailable: products?.[0]?.StockAvailable,
|
||||||
return stockDtls;
|
ProdVariantName: variant?.ProdVariantName
|
||||||
};
|
}))
|
||||||
setTableData(extractStockDtls(priceChangeProduct || cardData || []));
|
);
|
||||||
setCurrentPage(1);
|
|
||||||
}
|
|
||||||
}, [cardData, priceChangeProduct, priceChangeModal, productPriceChange]);
|
|
||||||
|
|
||||||
const handleNewMRPChange = (value, index) => {
|
stockDtls.push(...stocks?.filter(stock =>
|
||||||
const updatedTableData = [...tableData];
|
stock?.StockAvailable === 'Y'
|
||||||
updatedTableData[index].NewMRP = value;
|
? stock?.BatchRef
|
||||||
setTableData(updatedTableData);
|
: true
|
||||||
updatedTableData[index].NewSellPrice = null;
|
));
|
||||||
formRef.current.setFieldsValue({
|
|
||||||
[`NewMRP${index}`]: value,
|
|
||||||
[`NewSellPrice${index}`]: null,
|
|
||||||
});
|
|
||||||
|
|
||||||
const priceChangedProdList = [...priceChangedProducts];
|
});
|
||||||
const prodIndex = priceChangedProdList?.findIndex(
|
console.log("extractStockDtls", stockDtls);
|
||||||
(prod) => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId
|
return stockDtls;
|
||||||
);
|
}
|
||||||
if (prodIndex !== -1) {
|
setTableData(extractStockDtls(priceChangeProduct || cardData))
|
||||||
priceChangedProdList[prodIndex] = {
|
setCurrentPage(1)
|
||||||
...priceChangedProdList?.[prodIndex],
|
}, [cardData, priceChangeProduct])
|
||||||
NewMRP: value,
|
|
||||||
NewSellPrice: null,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
setPriceChangedProducts(priceChangedProdList);
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleNewSellPriceChange = (value, index) => {
|
const handleNewMRPChange = (value, index) => {
|
||||||
const updatedTableData = [...tableData];
|
|
||||||
if (updatedTableData[index]?.NewMRP) {
|
const updatedTableData = [...tableData];
|
||||||
if (parseFloat(value) > parseFloat(updatedTableData[index]?.NewMRP)) {
|
updatedTableData[index].NewMRP = value;
|
||||||
setMessageType('error');
|
|
||||||
setMessageData('New Sell Price cannot be greater than New MRP');
|
|
||||||
formRef.current.setFieldsValue({
|
|
||||||
[`NewSellPrice${index}`]: null,
|
|
||||||
});
|
|
||||||
updatedTableData[index].NewSellPrice = null;
|
|
||||||
setTableData(updatedTableData);
|
setTableData(updatedTableData);
|
||||||
const priceChangedProdList = [...priceChangedProducts];
|
updatedTableData[index].NewSellPrice = null;
|
||||||
const prodIndex = priceChangedProdList?.findIndex(
|
formRef.current.setFieldsValue({
|
||||||
(prod) => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId
|
[`NewMRP${index}`]: value,
|
||||||
);
|
[`NewSellPrice${index}`]: null,
|
||||||
|
});
|
||||||
|
|
||||||
|
const priceChangedProdList = [...priceChangedProducts];
|
||||||
|
const prodIndex = priceChangedProdList?.findIndex(prod => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId);
|
||||||
if (prodIndex !== -1) {
|
if (prodIndex !== -1) {
|
||||||
priceChangedProdList.splice(prodIndex, 1);
|
priceChangedProdList[prodIndex] = {
|
||||||
|
...priceChangedProdList?.[prodIndex],
|
||||||
|
NewMRP: value,
|
||||||
|
NewSellPrice: null,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
setPriceChangedProducts(priceChangedProdList);
|
setPriceChangedProducts(priceChangedProdList);
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!updatedTableData[index]?.NewMRP && updatedTableData[index]?.MRP) {
|
|
||||||
if (parseFloat(value) > parseFloat(updatedTableData[index]?.MRP)) {
|
|
||||||
setMessageType('error');
|
|
||||||
setMessageData('New Sell Price cannot be greater than MRP');
|
|
||||||
formRef.current.setFieldsValue({
|
|
||||||
[`NewSellPrice${index}`]: null,
|
|
||||||
});
|
|
||||||
updatedTableData[index].NewSellPrice = null;
|
|
||||||
setTableData(updatedTableData);
|
|
||||||
const priceChangedProdList = [...priceChangedProducts];
|
|
||||||
const prodIndex = priceChangedProdList?.findIndex(
|
|
||||||
(prod) => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId
|
|
||||||
);
|
|
||||||
|
|
||||||
if (prodIndex !== -1) {
|
|
||||||
priceChangedProdList.splice(prodIndex, 1);
|
|
||||||
}
|
|
||||||
setPriceChangedProducts(priceChangedProdList);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
updatedTableData[index].NewSellPrice = value;
|
|
||||||
setTableData(updatedTableData);
|
|
||||||
formRef.current.setFieldsValue({
|
|
||||||
[`NewSellPrice${index}`]: value,
|
|
||||||
});
|
|
||||||
|
|
||||||
const priceChangedProdList = [...priceChangedProducts];
|
|
||||||
const prodIndex = priceChangedProdList?.findIndex(
|
|
||||||
(prod) => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId
|
|
||||||
);
|
|
||||||
|
|
||||||
if (prodIndex !== -1) {
|
|
||||||
priceChangedProdList[prodIndex] = {
|
|
||||||
...priceChangedProdList[prodIndex],
|
|
||||||
SellPrice: String(value),
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
priceChangedProdList.push({
|
|
||||||
ProdId: updatedTableData[index]?.ProdId,
|
|
||||||
ProdName: updatedTableData[index]?.ProdName,
|
|
||||||
MRP: String(
|
|
||||||
updatedTableData[index]?.NewMRP || updatedTableData[index]?.MRP
|
|
||||||
),
|
|
||||||
SellPrice: String(value),
|
|
||||||
AdjComment: 'string',
|
|
||||||
InwardDtlId: updatedTableData[index]?.InwardDtlId,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setPriceChangedProducts(priceChangedProdList);
|
const handleNewSellPriceChange = (value, index) => {
|
||||||
};
|
const updatedTableData = [...tableData];
|
||||||
|
if (updatedTableData[index]?.NewMRP) {
|
||||||
|
if (parseFloat(value) > parseFloat(updatedTableData[index]?.NewMRP)) {
|
||||||
|
setMessageType('error');
|
||||||
|
setMessageData('New Sell Price cannot be greater than New MRP');
|
||||||
|
formRef.current.setFieldsValue({
|
||||||
|
[`NewSellPrice${index}`]: null,
|
||||||
|
});
|
||||||
|
updatedTableData[index].NewSellPrice = null;
|
||||||
|
setTableData(updatedTableData);
|
||||||
|
const priceChangedProdList = [...priceChangedProducts];
|
||||||
|
const prodIndex = priceChangedProdList?.findIndex(prod => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId);
|
||||||
|
|
||||||
const edit = (record, index) => {
|
if (prodIndex !== -1) {
|
||||||
console.log('edit', record, index);
|
priceChangedProdList.splice(prodIndex, 1);
|
||||||
setEditingKey(index);
|
}
|
||||||
};
|
setPriceChangedProducts(priceChangedProdList);
|
||||||
|
|
||||||
const handleSubmit = async () => {
|
|
||||||
console.log('submit');
|
|
||||||
|
|
||||||
if (priceChangedProducts?.length > 0) {
|
|
||||||
console.log('priceChangedProducts', priceChangedProducts);
|
|
||||||
const validation = priceChangedProducts?.every((prod) => {
|
|
||||||
if (parseFloat(prod?.MRP) < parseFloat(prod?.SellPrice)) {
|
|
||||||
setMessageType('error');
|
|
||||||
setMessageData(
|
|
||||||
`${prod?.ProdName}: MRP cannot be less than Sell Price`
|
|
||||||
);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!parseFloat(prod?.SellPrice) || !parseFloat(prod?.MRP)) {
|
|
||||||
setMessageType('error');
|
|
||||||
setMessageData(`${prod?.ProdName}: Please give Sell Price or MRP`);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
if (!validation) return;
|
|
||||||
|
|
||||||
const data = {
|
|
||||||
AppId: AppId,
|
|
||||||
CompId: CompId,
|
|
||||||
BranchId: BranchId,
|
|
||||||
ProductDetails: priceChangedProducts,
|
|
||||||
UpdatedBy: UserId,
|
|
||||||
};
|
|
||||||
|
|
||||||
const res = await dispatch(PutStockPrice(data))?.unwrap();
|
|
||||||
if (res?.data?.statusCode === 1) {
|
|
||||||
setMessageData('Price Changed Successfully');
|
|
||||||
setMessageType('success');
|
|
||||||
setPriceChangeModal(false);
|
|
||||||
setProductPriceChange(false);
|
|
||||||
setEditingKey(null);
|
|
||||||
setPriceChangedProducts([]);
|
|
||||||
setTableData([]);
|
|
||||||
dispatch(triggerProductCard());
|
|
||||||
setPriceChangeProduct(null);
|
|
||||||
formRef.current.resetFields();
|
|
||||||
} else {
|
|
||||||
setMessageData('Error Updating Product Price');
|
|
||||||
setMessageType('error');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
setMessageType('error');
|
|
||||||
setMessageData('No changes made / No sell price entered');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const onComplete = useCallback(() => {
|
|
||||||
setMessageData(null);
|
|
||||||
setMessageType(null);
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<Messages
|
|
||||||
messageData={messageData}
|
|
||||||
messageType={messageType}
|
|
||||||
onComplete={onComplete}
|
|
||||||
/>
|
|
||||||
{showButton ? (
|
|
||||||
<Tooltip title="Price Change">
|
|
||||||
<button
|
|
||||||
className="price-change-btn"
|
|
||||||
type="button"
|
|
||||||
onClick={() => {
|
|
||||||
if (comboSearch) {
|
|
||||||
setMessageType('warning');
|
|
||||||
setMessageData('Price change will not work for combo products');
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setPriceChangeModal(true);
|
}
|
||||||
}}
|
if (!updatedTableData[index]?.NewMRP && updatedTableData[index]?.MRP) {
|
||||||
>
|
if (parseFloat(value) > parseFloat(updatedTableData[index]?.MRP)) {
|
||||||
{/* <FaIndianRupeeSign size={35}/> */}
|
setMessageType('error');
|
||||||
<img src={PriceChange} alt="" width={30} />
|
setMessageData('New Sell Price cannot be greater than MRP');
|
||||||
</button>
|
formRef.current.setFieldsValue({
|
||||||
</Tooltip>
|
[`NewSellPrice${index}`]: null,
|
||||||
) : (
|
});
|
||||||
<></>
|
updatedTableData[index].NewSellPrice = null;
|
||||||
)}
|
setTableData(updatedTableData);
|
||||||
<DefaultModal
|
const priceChangedProdList = [...priceChangedProducts];
|
||||||
title="Price Change"
|
const prodIndex = priceChangedProdList?.findIndex(prod => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId);
|
||||||
className={'price-change-modal'}
|
|
||||||
open={priceChangeModal || productPriceChange}
|
|
||||||
footer={true}
|
|
||||||
width={800}
|
|
||||||
handleCancel={() => {
|
|
||||||
setPriceChangeModal(false);
|
|
||||||
setProductPriceChange(false);
|
|
||||||
setEditingKey(null);
|
|
||||||
setPriceChangedProducts([]);
|
|
||||||
formRef?.current?.resetFields();
|
|
||||||
setPriceChangeProduct(null);
|
|
||||||
}}
|
|
||||||
handleSubmit={handleSubmit}
|
|
||||||
>
|
|
||||||
<div className="price-change-table">
|
|
||||||
{/* <div className="table-notes">Note : Click on a row to edit/modify</div> */}
|
|
||||||
<Form ref={formRef}>
|
|
||||||
<Tables
|
|
||||||
columns={priceChangeColumns}
|
|
||||||
data={tableData?.slice(
|
|
||||||
(currentPage - 1) * pageSize,
|
|
||||||
currentPage * pageSize
|
|
||||||
)}
|
|
||||||
onRow={(record, index) => ({
|
|
||||||
onClick: () => {
|
|
||||||
edit(record, index);
|
|
||||||
},
|
|
||||||
})}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
style={{
|
|
||||||
display: 'flex',
|
|
||||||
justifyContent: 'center',
|
|
||||||
margin: '20px 0',
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<Pagination
|
|
||||||
current={currentPage}
|
|
||||||
pageSize={pageSize}
|
|
||||||
total={tableData?.length}
|
|
||||||
onChange={(page) => setCurrentPage(page)}
|
|
||||||
showSizeChanger={false}
|
|
||||||
showTotal={(total, range) =>
|
|
||||||
`${range[0]}-${range[1]} of ${total} items`
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</Form>
|
|
||||||
</div>
|
|
||||||
</DefaultModal>
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default ProductPriceChange;
|
if (prodIndex !== -1) {
|
||||||
|
priceChangedProdList.splice(prodIndex, 1);
|
||||||
|
}
|
||||||
|
setPriceChangedProducts(priceChangedProdList);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
updatedTableData[index].NewSellPrice = value;
|
||||||
|
setTableData(updatedTableData);
|
||||||
|
formRef.current.setFieldsValue({
|
||||||
|
[`NewSellPrice${index}`]: value,
|
||||||
|
});
|
||||||
|
|
||||||
|
const priceChangedProdList = [...priceChangedProducts];
|
||||||
|
const prodIndex = priceChangedProdList?.findIndex(prod => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId);
|
||||||
|
|
||||||
|
if (prodIndex !== -1) {
|
||||||
|
priceChangedProdList[prodIndex] = {
|
||||||
|
...priceChangedProdList[prodIndex],
|
||||||
|
SellPrice: String(value)
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
priceChangedProdList.push({
|
||||||
|
ProdId: updatedTableData[index]?.ProdId,
|
||||||
|
ProdName: updatedTableData[index]?.ProdName,
|
||||||
|
MRP: String(updatedTableData[index]?.NewMRP || updatedTableData[index]?.MRP),
|
||||||
|
SellPrice: String(value),
|
||||||
|
AdjComment: "string",
|
||||||
|
InwardDtlId: updatedTableData[index]?.InwardDtlId
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
setPriceChangedProducts(priceChangedProdList);
|
||||||
|
}
|
||||||
|
|
||||||
|
const edit = (record, index) => {
|
||||||
|
console.log("edit", record, index);
|
||||||
|
setEditingKey(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleSubmit = async () => {
|
||||||
|
console.log("submit");
|
||||||
|
|
||||||
|
if (priceChangedProducts?.length > 0) {
|
||||||
|
console.log("priceChangedProducts", priceChangedProducts);
|
||||||
|
const validation = priceChangedProducts?.every((prod) => {
|
||||||
|
if (parseFloat(prod?.MRP) < parseFloat(prod?.SellPrice)) {
|
||||||
|
setMessageType('error');
|
||||||
|
setMessageData(`${prod?.ProdName}: MRP cannot be less than Sell Price`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!parseFloat(prod?.SellPrice) || !parseFloat(prod?.MRP)) {
|
||||||
|
setMessageType('error');
|
||||||
|
setMessageData(`${prod?.ProdName}: Please give Sell Price or MRP`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
if (!validation) return;
|
||||||
|
|
||||||
|
const data = {
|
||||||
|
AppId: AppId,
|
||||||
|
CompId: CompId,
|
||||||
|
BranchId: BranchId,
|
||||||
|
ProductDetails: priceChangedProducts,
|
||||||
|
UpdatedBy: UserId,
|
||||||
|
}
|
||||||
|
|
||||||
|
const res = await dispatch(PutStockPrice(data))?.unwrap();
|
||||||
|
if (res?.data?.statusCode === 1) {
|
||||||
|
setMessageData('Price Changed Successfully');
|
||||||
|
setMessageType('success');
|
||||||
|
setPriceChangeModal(false);
|
||||||
|
setProductPriceChange(false);
|
||||||
|
setEditingKey(null);
|
||||||
|
setPriceChangedProducts([]);
|
||||||
|
setTableData([]);
|
||||||
|
dispatch(triggerProductCard())
|
||||||
|
setPriceChangeProduct(null);
|
||||||
|
formRef.current.resetFields();
|
||||||
|
} else {
|
||||||
|
setMessageData('Error Updating Product Price')
|
||||||
|
setMessageType('error');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setMessageType('error');
|
||||||
|
setMessageData('No changes made / No sell price entered');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const onComplete = useCallback(() => {
|
||||||
|
setMessageData(null);
|
||||||
|
setMessageType(null);
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
|
||||||
|
<Messages messageData={messageData} messageType={messageType} onComplete={onComplete} />
|
||||||
|
{showButton ? <Tooltip title="Price Change">
|
||||||
|
<button className="price-change-btn" type="button" onClick={() => {
|
||||||
|
if (comboSearch) {
|
||||||
|
setMessageType('warning');
|
||||||
|
setMessageData('Price change will not work for combo products');
|
||||||
|
return
|
||||||
|
}
|
||||||
|
setPriceChangeModal(true)
|
||||||
|
}}>
|
||||||
|
{/* <FaIndianRupeeSign size={35}/> */}
|
||||||
|
<img src={PriceChange} alt="" width={30} />
|
||||||
|
</button>
|
||||||
|
</Tooltip> : <></>}
|
||||||
|
<DefaultModal
|
||||||
|
title="Price Change"
|
||||||
|
className={'price-change-modal'}
|
||||||
|
open={priceChangeModal || productPriceChange}
|
||||||
|
footer={true}
|
||||||
|
width={800}
|
||||||
|
handleCancel={() => {
|
||||||
|
setPriceChangeModal(false);
|
||||||
|
setProductPriceChange(false);
|
||||||
|
setEditingKey(null);
|
||||||
|
setPriceChangedProducts([]);
|
||||||
|
formRef?.current?.resetFields();
|
||||||
|
setPriceChangeProduct(null);
|
||||||
|
}}
|
||||||
|
handleSubmit={handleSubmit}
|
||||||
|
>
|
||||||
|
<div className="price-change-table">
|
||||||
|
{/* <div className="table-notes">Note : Click on a row to edit/modify</div> */}
|
||||||
|
<Form ref={formRef}>
|
||||||
|
<Tables
|
||||||
|
columns={priceChangeColumns}
|
||||||
|
data={tableData?.slice((currentPage - 1) * pageSize, currentPage * pageSize)}
|
||||||
|
onRow={(record, index) => ({
|
||||||
|
onClick: () => {
|
||||||
|
edit(record, index);
|
||||||
|
},
|
||||||
|
})}
|
||||||
|
/>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'center', margin: '20px 0' }}>
|
||||||
|
<Pagination
|
||||||
|
current={currentPage}
|
||||||
|
pageSize={pageSize}
|
||||||
|
total={tableData?.length}
|
||||||
|
onChange={(page) => setCurrentPage(page)}
|
||||||
|
showSizeChanger={false}
|
||||||
|
showTotal={(total, range) => `${range[0]}-${range[1]} of ${total} items`}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</Form>
|
||||||
|
</div>
|
||||||
|
</DefaultModal>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ProductPriceChange;
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -137,6 +137,18 @@ const PrintA4Style11 = ({
|
||||||
let PaymentStatusSuccess = PaymentStatus?.filter(
|
let PaymentStatusSuccess = PaymentStatus?.filter(
|
||||||
(ps) => ps.PaymentStatus === 'S'
|
(ps) => ps.PaymentStatus === 'S'
|
||||||
);
|
);
|
||||||
|
const isEditedBill = PaymentStatus?.some(payment => {
|
||||||
|
const type = payment?.AdjustmentType?.toLowerCase();
|
||||||
|
return (
|
||||||
|
(type === 'extra' || type === 'refund') &&
|
||||||
|
payment?.BeforeAdjustment != null &&
|
||||||
|
payment?.AfterAdjustment != null
|
||||||
|
);
|
||||||
|
});
|
||||||
|
const lastTransaction = PaymentStatus?.find(
|
||||||
|
(ps) => ps.PaymentStatus === 'S' && ps?.LastOrderTran === 'Y'
|
||||||
|
)
|
||||||
|
|
||||||
const TakeawayTotal = TakeawayData?.reduce(
|
const TakeawayTotal = TakeawayData?.reduce(
|
||||||
(accumulator, currentValue) => accumulator + currentValue.TotalAmt,
|
(accumulator, currentValue) => accumulator + currentValue.TotalAmt,
|
||||||
0
|
0
|
||||||
|
|
@ -540,15 +552,15 @@ const PrintA4Style11 = ({
|
||||||
</th>
|
</th>
|
||||||
)
|
)
|
||||||
: Quantity == true && (
|
: Quantity == true && (
|
||||||
<th
|
<th
|
||||||
style={{
|
style={{
|
||||||
width: '8%',
|
width: '8%',
|
||||||
textAlign: 'center',
|
textAlign: 'center',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{WeightasKg ? 'Qty/Kg' : 'Qty'}
|
{WeightasKg ? 'Qty/Kg' : 'Qty'}
|
||||||
</th>
|
</th>
|
||||||
)}
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? GlobalMRP && (
|
? GlobalMRP && (
|
||||||
<th
|
<th
|
||||||
|
|
@ -934,6 +946,46 @@ const PrintA4Style11 = ({
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div style={{
|
||||||
|
width: '100%', marginTop: '2px',
|
||||||
|
paddingTop: '2px', display: 'flex', justifyContent: 'center', alignItems: 'flex-start',
|
||||||
|
flexDirection: 'column', borderTop: '1px dashed #000'
|
||||||
|
}}>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '100%'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600, }}>Bill Gross Amount</span>
|
||||||
|
<strong>{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: 600,
|
||||||
|
color:
|
||||||
|
lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '#000'
|
||||||
|
: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '4px' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600 }}>Net Bill Amount</span>
|
||||||
|
<strong>{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? GlobalCredit && (
|
? GlobalCredit && (
|
||||||
<div
|
<div
|
||||||
|
|
@ -1563,15 +1615,15 @@ const PrintA4Style11 = ({
|
||||||
</th>
|
</th>
|
||||||
)
|
)
|
||||||
: Quantity == true && (
|
: Quantity == true && (
|
||||||
<th
|
<th
|
||||||
style={{
|
style={{
|
||||||
width: '8%',
|
width: '8%',
|
||||||
textAlign: 'center',
|
textAlign: 'center',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{WeightasKg ? 'Qty/Kg' : 'Qty'}
|
{WeightasKg ? 'Qty/Kg' : 'Qty'}
|
||||||
</th>
|
</th>
|
||||||
)}
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? GlobalMRP && (
|
? GlobalMRP && (
|
||||||
<th
|
<th
|
||||||
|
|
@ -1937,6 +1989,46 @@ const PrintA4Style11 = ({
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div style={{
|
||||||
|
width: '100%', marginTop: '2px',
|
||||||
|
paddingTop: '2px', display: 'flex', justifyContent: 'center', alignItems: 'flex-start',
|
||||||
|
flexDirection: 'column', borderTop: '1px dashed #000'
|
||||||
|
}}>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '100%'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600, }}>Bill Gross Amount</span>
|
||||||
|
<strong>{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: 600,
|
||||||
|
color:
|
||||||
|
lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '#000'
|
||||||
|
: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '4px' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600 }}>Net Bill Amount</span>
|
||||||
|
<strong>{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? GlobalCredit && (
|
? GlobalCredit && (
|
||||||
<div
|
<div
|
||||||
|
|
@ -2453,7 +2545,7 @@ const PrintA4Style11 = ({
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{(PaymentStatusSuccess?.length > 1 && !isEditedBill) && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments).map((paymentType) => (
|
{Object.keys(aggregatedPayments).map((paymentType) => (
|
||||||
|
|
@ -2550,6 +2642,46 @@ const PrintA4Style11 = ({
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div style={{
|
||||||
|
width: '100%', marginTop: '2px',
|
||||||
|
paddingTop: '2px', display: 'flex', justifyContent: 'center', alignItems: 'flex-start',
|
||||||
|
flexDirection: 'column', borderTop: '1px dashed #000'
|
||||||
|
}}>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '100%'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600, }}>Bill Gross Amount</span>
|
||||||
|
<strong>{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: 600,
|
||||||
|
color:
|
||||||
|
lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '#000'
|
||||||
|
: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '4px' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600 }}>Net Bill Amount</span>
|
||||||
|
<strong>{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? GlobalCredit && (
|
? GlobalCredit && (
|
||||||
<div
|
<div
|
||||||
|
|
@ -3076,6 +3208,46 @@ const PrintA4Style11 = ({
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div style={{
|
||||||
|
width: '100%', marginTop: '2px',
|
||||||
|
paddingTop: '2px', display: 'flex', justifyContent: 'center', alignItems: 'flex-start',
|
||||||
|
flexDirection: 'column', borderTop: '1px dashed #000'
|
||||||
|
}}>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '100%'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600, }}>Bill Gross Amount</span>
|
||||||
|
<strong>{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: 600,
|
||||||
|
color:
|
||||||
|
lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '#000'
|
||||||
|
: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '4px' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600 }}>Net Bill Amount</span>
|
||||||
|
<strong>{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? GlobalCredit && (
|
? GlobalCredit && (
|
||||||
<div
|
<div
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ const PrintA5Style11 = ({
|
||||||
const CashierNameField = FieldDetails?.['CashierName'];
|
const CashierNameField = FieldDetails?.['CashierName'];
|
||||||
const LogoField = FieldDetails?.['Logo'];
|
const LogoField = FieldDetails?.['Logo'];
|
||||||
const CreditDetails = FieldDetails?.['Credit details'];
|
const CreditDetails = FieldDetails?.['Credit details'];
|
||||||
const WeightasKg = FieldDetails?.['Weight'];
|
const WeightasKg = FieldDetails?.['Weight'];
|
||||||
const GlobalSlNo = useSelector(GlobalprintSlNo);
|
const GlobalSlNo = useSelector(GlobalprintSlNo);
|
||||||
const GlobalItem = useSelector(GlobalprintItem);
|
const GlobalItem = useSelector(GlobalprintItem);
|
||||||
const GlobalMRP = useSelector(GlobalprintMRP);
|
const GlobalMRP = useSelector(GlobalprintMRP);
|
||||||
|
|
@ -137,6 +137,17 @@ const PrintA5Style11 = ({
|
||||||
let PaymentStatusSuccess = PaymentStatus?.filter(
|
let PaymentStatusSuccess = PaymentStatus?.filter(
|
||||||
(ps) => ps.PaymentStatus === 'S'
|
(ps) => ps.PaymentStatus === 'S'
|
||||||
);
|
);
|
||||||
|
const isEditedBill = PaymentStatus?.some(payment => {
|
||||||
|
const type = payment?.AdjustmentType?.toLowerCase();
|
||||||
|
return (
|
||||||
|
(type === 'extra' || type === 'refund') &&
|
||||||
|
payment?.BeforeAdjustment != null &&
|
||||||
|
payment?.AfterAdjustment != null
|
||||||
|
);
|
||||||
|
});
|
||||||
|
const lastTransaction = PaymentStatus?.find(
|
||||||
|
(ps) => ps.PaymentStatus === 'S' && ps?.LastOrderTran === 'Y'
|
||||||
|
)
|
||||||
const PackageDetails = table2Data?.PackageDtl;
|
const PackageDetails = table2Data?.PackageDtl;
|
||||||
const TakeawayTotal = TakeawayData?.reduce(
|
const TakeawayTotal = TakeawayData?.reduce(
|
||||||
(accumulator, currentValue) => accumulator + currentValue.TotalAmt,
|
(accumulator, currentValue) => accumulator + currentValue.TotalAmt,
|
||||||
|
|
@ -548,7 +559,7 @@ const PrintA5Style11 = ({
|
||||||
textAlign: 'center',
|
textAlign: 'center',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{ WeightasKg ?'Qty/Kg' :'Qty'}
|
{WeightasKg ? 'Qty/Kg' : 'Qty'}
|
||||||
</th>
|
</th>
|
||||||
)}
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
|
|
@ -936,6 +947,46 @@ const PrintA5Style11 = ({
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div style={{
|
||||||
|
width: '100%', marginTop: '2px',
|
||||||
|
paddingTop: '2px', display: 'flex', justifyContent: 'center', alignItems: 'flex-start',
|
||||||
|
flexDirection: 'column', borderTop: '1px dashed #000'
|
||||||
|
}}>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '100%'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600, }}>Bill Gross Amount</span>
|
||||||
|
<strong>{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: 600,
|
||||||
|
color:
|
||||||
|
lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '#000'
|
||||||
|
: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '4px' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600 }}>Net Bill Amount</span>
|
||||||
|
<strong>{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? GlobalCredit && (
|
? GlobalCredit && (
|
||||||
<div
|
<div
|
||||||
|
|
@ -1510,7 +1561,7 @@ const PrintA5Style11 = ({
|
||||||
textAlign: 'center',
|
textAlign: 'center',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{ WeightasKg ?'Qty/Kg' :'Qty'}
|
{WeightasKg ? 'Qty/Kg' : 'Qty'}
|
||||||
</th>
|
</th>
|
||||||
)}
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
|
|
@ -1876,6 +1927,46 @@ const PrintA5Style11 = ({
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div style={{
|
||||||
|
width: '100%', marginTop: '2px',
|
||||||
|
paddingTop: '2px', display: 'flex', justifyContent: 'center', alignItems: 'flex-start',
|
||||||
|
flexDirection: 'column', borderTop: '1px dashed #000'
|
||||||
|
}}>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '100%'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600, }}>Bill Gross Amount</span>
|
||||||
|
<strong>{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: 600,
|
||||||
|
color:
|
||||||
|
lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '#000'
|
||||||
|
: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '4px' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600 }}>Net Bill Amount</span>
|
||||||
|
<strong>{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? GlobalCredit && (
|
? GlobalCredit && (
|
||||||
<div
|
<div
|
||||||
|
|
@ -2331,7 +2422,7 @@ const PrintA5Style11 = ({
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{(PaymentStatusSuccess?.length > 1 && !isEditedBill) && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments).map((paymentType) => (
|
{Object.keys(aggregatedPayments).map((paymentType) => (
|
||||||
|
|
@ -2428,6 +2519,86 @@ const PrintA5Style11 = ({
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div style={{
|
||||||
|
width: '100%', marginTop: '2px',
|
||||||
|
paddingTop: '2px', display: 'flex', justifyContent: 'center', alignItems: 'flex-start',
|
||||||
|
flexDirection: 'column', borderTop: '1px dashed #000'
|
||||||
|
}}>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '100%'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600, }}>Bill Gross Amount</span>
|
||||||
|
<strong>{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: 600,
|
||||||
|
color:
|
||||||
|
lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '#000'
|
||||||
|
: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '4px' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600 }}>Net Bill Amount</span>
|
||||||
|
<strong>{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div style={{
|
||||||
|
width: '100%', marginTop: '2px',
|
||||||
|
paddingTop: '2px', display: 'flex', justifyContent: 'center', alignItems: 'flex-start',
|
||||||
|
flexDirection: 'column', borderTop: '1px dashed #000'
|
||||||
|
}}>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '100%'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600, }}>Bill Gross Amount</span>
|
||||||
|
<strong>{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: 600,
|
||||||
|
color:
|
||||||
|
lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '#000'
|
||||||
|
: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '4px' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600 }}>Net Bill Amount</span>
|
||||||
|
<strong>{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? GlobalCredit && (
|
? GlobalCredit && (
|
||||||
<div
|
<div
|
||||||
|
|
@ -2935,6 +3106,86 @@ const PrintA5Style11 = ({
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div style={{
|
||||||
|
width: '100%', marginTop: '2px',
|
||||||
|
paddingTop: '2px', display: 'flex', justifyContent: 'center', alignItems: 'flex-start',
|
||||||
|
flexDirection: 'column', borderTop: '1px dashed #000'
|
||||||
|
}}>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '100%'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600, }}>Bill Gross Amount</span>
|
||||||
|
<strong>{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: 600,
|
||||||
|
color:
|
||||||
|
lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '#000'
|
||||||
|
: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '4px' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600 }}>Net Bill Amount</span>
|
||||||
|
<strong>{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div style={{
|
||||||
|
width: '100%', marginTop: '2px',
|
||||||
|
paddingTop: '2px', display: 'flex', justifyContent: 'center', alignItems: 'flex-start',
|
||||||
|
flexDirection: 'column', borderTop: '1px dashed #000'
|
||||||
|
}}>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '100%'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600, }}>Bill Gross Amount</span>
|
||||||
|
<strong>{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: 600,
|
||||||
|
color:
|
||||||
|
lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '#000'
|
||||||
|
: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '4px' }}>
|
||||||
|
<span style={{ color: '#000', fontWeight: 600 }}>Net Bill Amount</span>
|
||||||
|
<strong>{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? GlobalCredit && (
|
? GlobalCredit && (
|
||||||
<div
|
<div
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -124,6 +124,18 @@ const PrintStyle10 = ({
|
||||||
);
|
);
|
||||||
const SelectedHeaderColor = useSelector(GlobalSelectedPrintHeaderColor);
|
const SelectedHeaderColor = useSelector(GlobalSelectedPrintHeaderColor);
|
||||||
|
|
||||||
|
const isEditedBill = PaymentStatus?.some((payment) => {
|
||||||
|
const type = payment?.AdjustmentType?.toLowerCase();
|
||||||
|
return (
|
||||||
|
(type === 'extra' || type === 'refund') &&
|
||||||
|
payment?.BeforeAdjustment != null &&
|
||||||
|
payment?.AfterAdjustment != null
|
||||||
|
);
|
||||||
|
});
|
||||||
|
const lastTransaction = PaymentStatus?.find(
|
||||||
|
(ps) => ps.PaymentStatus === 'S' && ps?.LastOrderTran === 'Y'
|
||||||
|
);
|
||||||
|
|
||||||
let TermsAndConditions = printDatas?.TermsandConditions;
|
let TermsAndConditions = printDatas?.TermsandConditions;
|
||||||
let SignatureImg = printDatas?.Signature;
|
let SignatureImg = printDatas?.Signature;
|
||||||
let Notestext = printDatas?.Notes;
|
let Notestext = printDatas?.Notes;
|
||||||
|
|
@ -537,7 +549,7 @@ const PrintStyle10 = ({
|
||||||
<th
|
<th
|
||||||
style={{ width: '10px', textAlign: 'right' }}
|
style={{ width: '10px', textAlign: 'right' }}
|
||||||
>
|
>
|
||||||
{ WeightasKg ?'Qty/Kg' :'Qty'}
|
{WeightasKg ? 'Qty/Kg' : 'Qty'}
|
||||||
</th>
|
</th>
|
||||||
)}
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
|
|
@ -912,7 +924,7 @@ const PrintStyle10 = ({
|
||||||
<th
|
<th
|
||||||
style={{ width: '10px', textAlign: 'right' }}
|
style={{ width: '10px', textAlign: 'right' }}
|
||||||
>
|
>
|
||||||
{ WeightasKg ?'Qty/Kg' :'Qty'}
|
{WeightasKg ? 'Qty/Kg' : 'Qty'}
|
||||||
</th>
|
</th>
|
||||||
)}
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
|
|
@ -1654,7 +1666,7 @@ const PrintStyle10 = ({
|
||||||
table2Data?.FYStatus
|
table2Data?.FYStatus
|
||||||
)}{' '}
|
)}{' '}
|
||||||
</div>
|
</div>
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{PaymentStatusSuccess?.length > 1 && !isEditedBill && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments).map(
|
{Object.keys(aggregatedPayments).map(
|
||||||
|
|
@ -1801,6 +1813,77 @@ const PrintStyle10 = ({
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
margin: '2px 0',
|
||||||
|
padding: '2px 0',
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
flexDirection: 'column',
|
||||||
|
borderTop: '1px dashed #000',
|
||||||
|
borderBottom: '1px dashed #000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '90%',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Bill Gross Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.BeforeAdjustment || 0).toFixed(
|
||||||
|
2
|
||||||
|
)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: '800',
|
||||||
|
color: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '-'
|
||||||
|
: '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
marginTop: '4px',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Net Bill Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.AfterAdjustment || 0).toFixed(
|
||||||
|
2
|
||||||
|
)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
|
|
@ -2545,7 +2628,7 @@ const PrintStyle10 = ({
|
||||||
table2Data?.FYStatus
|
table2Data?.FYStatus
|
||||||
)}{' '}
|
)}{' '}
|
||||||
</div>
|
</div>
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{PaymentStatusSuccess?.length > 1 && !isEditedBill && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments).map(
|
{Object.keys(aggregatedPayments).map(
|
||||||
|
|
@ -2679,6 +2762,75 @@ const PrintStyle10 = ({
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
margin: '2px 0',
|
||||||
|
padding: '2px 0',
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
flexDirection: 'column',
|
||||||
|
borderTop: '1px dashed #000',
|
||||||
|
borderBottom: '1px dashed #000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '90%',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Bill Gross Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.BeforeAdjustment || 0).toFixed(
|
||||||
|
2
|
||||||
|
)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: '800',
|
||||||
|
color: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '-'
|
||||||
|
: '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
marginTop: '4px',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Net Bill Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
|
|
@ -3041,7 +3193,7 @@ const PrintStyle10 = ({
|
||||||
)
|
)
|
||||||
: Quantity && (
|
: Quantity && (
|
||||||
<th style={{ width: '10px', textAlign: 'right' }}>
|
<th style={{ width: '10px', textAlign: 'right' }}>
|
||||||
{ WeightasKg ?'Qty/Kg' :'Qty'}
|
{WeightasKg ? 'Qty/Kg' : 'Qty'}
|
||||||
</th>
|
</th>
|
||||||
)}
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
|
|
@ -3367,7 +3519,7 @@ const PrintStyle10 = ({
|
||||||
)
|
)
|
||||||
: Quantity && (
|
: Quantity && (
|
||||||
<th style={{ width: '10px', textAlign: 'right' }}>
|
<th style={{ width: '10px', textAlign: 'right' }}>
|
||||||
{ WeightasKg ?'Qty/Kg' :'Qty'}
|
{WeightasKg ? 'Qty/Kg' : 'Qty'}
|
||||||
</th>
|
</th>
|
||||||
)}
|
)}
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
|
|
@ -4046,7 +4198,7 @@ const PrintStyle10 = ({
|
||||||
table2Data?.FYStatus
|
table2Data?.FYStatus
|
||||||
)}{' '}
|
)}{' '}
|
||||||
</div>
|
</div>
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{PaymentStatusSuccess?.length > 1 && !isEditedBill && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments).map((paymentType) => (
|
{Object.keys(aggregatedPayments).map((paymentType) => (
|
||||||
|
|
@ -4164,6 +4316,71 @@ const PrintStyle10 = ({
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
margin: '2px 0',
|
||||||
|
padding: '2px 0',
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
flexDirection: 'column',
|
||||||
|
borderTop: '1px dashed #000',
|
||||||
|
borderBottom: '1px dashed #000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '90%',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Bill Gross Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: '800',
|
||||||
|
color: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
marginTop: '4px',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Net Bill Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -126,6 +126,21 @@ const Printstyle8 = ({
|
||||||
const paymentTypeUPI = PaymentStatus?.find(
|
const paymentTypeUPI = PaymentStatus?.find(
|
||||||
(ps) => ps.PaymentTypeName === 'UPI'
|
(ps) => ps.PaymentTypeName === 'UPI'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
console.log(GlobalDiscount, Discount, 'Discount');
|
||||||
|
|
||||||
|
const isEditedBill = PaymentStatus?.some((payment) => {
|
||||||
|
const type = payment?.AdjustmentType?.toLowerCase();
|
||||||
|
return (
|
||||||
|
(type === 'extra' || type === 'refund') &&
|
||||||
|
payment?.BeforeAdjustment != null &&
|
||||||
|
payment?.AfterAdjustment != null
|
||||||
|
);
|
||||||
|
});
|
||||||
|
const lastTransaction = PaymentStatus?.find(
|
||||||
|
(ps) => ps.PaymentStatus === 'S' && ps?.LastOrderTran === 'Y'
|
||||||
|
);
|
||||||
|
|
||||||
const SelectedHeaderColor = useSelector(GlobalSelectedPrintHeaderColor);
|
const SelectedHeaderColor = useSelector(GlobalSelectedPrintHeaderColor);
|
||||||
|
|
||||||
console.log(GlobalDiscount, Discount, 'Discount');
|
console.log(GlobalDiscount, Discount, 'Discount');
|
||||||
|
|
@ -1670,8 +1685,84 @@ const Printstyle8 = ({
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
justifyContent: 'space-evenly',
|
justifyContent: 'space-evenly',
|
||||||
marginTop: '5px',
|
marginTop: '5px',
|
||||||
|
flexDirection: 'column',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
margin: '2px 0',
|
||||||
|
padding: '2px 0',
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
flexDirection: 'column',
|
||||||
|
borderTop: '1px dashed #000',
|
||||||
|
borderBottom: '1px dashed #000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '95%',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
style={{ color: '#000', fontWeight: '600' }}
|
||||||
|
>
|
||||||
|
Bill Gross Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(
|
||||||
|
lastTransaction?.BeforeAdjustment || 0
|
||||||
|
).toFixed(2)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: '800',
|
||||||
|
color: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '-'
|
||||||
|
: '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
marginTop: '4px',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
style={{ color: '#000', fontWeight: '600' }}
|
||||||
|
>
|
||||||
|
Net Bill Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(
|
||||||
|
lastTransaction?.AfterAdjustment || 0
|
||||||
|
).toFixed(2)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
marginTop: '5px',
|
marginTop: '5px',
|
||||||
|
|
@ -1761,7 +1852,7 @@ const Printstyle8 = ({
|
||||||
)}
|
)}
|
||||||
<div className="PrintStyle8-Qr-Order">
|
<div className="PrintStyle8-Qr-Order">
|
||||||
<div className="PrintStyle8-OrderNo">
|
<div className="PrintStyle8-OrderNo">
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{PaymentStatusSuccess?.length > 1 && !isEditedBill && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments).map(
|
{Object.keys(aggregatedPayments).map(
|
||||||
|
|
@ -2592,8 +2683,79 @@ const Printstyle8 = ({
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
justifyContent: 'space-evenly',
|
justifyContent: 'space-evenly',
|
||||||
marginTop: '5px',
|
marginTop: '5px',
|
||||||
|
flexDirection: 'column',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
margin: '2px 0',
|
||||||
|
padding: '2px 0',
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
flexDirection: 'column',
|
||||||
|
borderTop: '1px dashed #000',
|
||||||
|
borderBottom: '1px dashed #000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '95%',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Bill Gross Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.BeforeAdjustment || 0).toFixed(
|
||||||
|
2
|
||||||
|
)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: '800',
|
||||||
|
color: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '-'
|
||||||
|
: '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
marginTop: '4px',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Net Bill Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.AfterAdjustment || 0).toFixed(
|
||||||
|
2
|
||||||
|
)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
marginTop: '5px',
|
marginTop: '5px',
|
||||||
|
|
@ -2683,7 +2845,7 @@ const Printstyle8 = ({
|
||||||
)}
|
)}
|
||||||
<div className="PrintStyle8-Qr-Order">
|
<div className="PrintStyle8-Qr-Order">
|
||||||
<div className="PrintStyle8-OrderNo">
|
<div className="PrintStyle8-OrderNo">
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{PaymentStatusSuccess?.length > 1 && !isEditedBill && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments).map(
|
{Object.keys(aggregatedPayments).map(
|
||||||
|
|
@ -4107,14 +4269,79 @@ const Printstyle8 = ({
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
justifyContent: 'space-evenly',
|
justifyContent: 'space-evenly',
|
||||||
marginTop: '5px',
|
marginTop: '5px',
|
||||||
|
flexDirection: 'column',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
margin: '2px 0',
|
||||||
|
padding: '2px 0',
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
flexDirection: 'column',
|
||||||
|
borderTop: '1px dashed #000',
|
||||||
|
borderBottom: '1px dashed #000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '95%',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Bill Gross Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: '800',
|
||||||
|
color: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
marginTop: '4px',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Net Bill Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
marginTop: '5px',
|
marginTop: '5px',
|
||||||
|
|
@ -4194,7 +4421,7 @@ const Printstyle8 = ({
|
||||||
)}
|
)}
|
||||||
<div className="PrintStyle8-Qr-Order">
|
<div className="PrintStyle8-Qr-Order">
|
||||||
<div className="PrintStyle8-OrderNo">
|
<div className="PrintStyle8-OrderNo">
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{PaymentStatusSuccess?.length > 1 && !isEditedBill && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments).map((paymentType) => (
|
{Object.keys(aggregatedPayments).map((paymentType) => (
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,19 @@ const PrintStyle9 = ({
|
||||||
const paymentTypeUPI = PaymentStatus?.find(
|
const paymentTypeUPI = PaymentStatus?.find(
|
||||||
(ps) => ps.PaymentTypeName === 'UPI'
|
(ps) => ps.PaymentTypeName === 'UPI'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const isEditedBill = PaymentStatus?.some((payment) => {
|
||||||
|
const type = payment?.AdjustmentType?.toLowerCase();
|
||||||
|
return (
|
||||||
|
(type === 'extra' || type === 'refund') &&
|
||||||
|
payment?.BeforeAdjustment != null &&
|
||||||
|
payment?.AfterAdjustment != null
|
||||||
|
);
|
||||||
|
});
|
||||||
|
const lastTransaction = PaymentStatus?.find(
|
||||||
|
(ps) => ps.PaymentStatus === 'S' && ps?.LastOrderTran === 'Y'
|
||||||
|
);
|
||||||
|
|
||||||
const SelectedHeaderColor = useSelector(GlobalSelectedPrintHeaderColor);
|
const SelectedHeaderColor = useSelector(GlobalSelectedPrintHeaderColor);
|
||||||
let TermsAndConditions = printDatas?.TermsandConditions;
|
let TermsAndConditions = printDatas?.TermsandConditions;
|
||||||
let SignatureImg = printDatas?.Signature;
|
let SignatureImg = printDatas?.Signature;
|
||||||
|
|
@ -1670,7 +1683,7 @@ const PrintStyle9 = ({
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<div>
|
<div>
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{PaymentStatusSuccess?.length > 1 && !isEditedBill && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments).map(
|
{Object.keys(aggregatedPayments).map(
|
||||||
|
|
@ -1827,7 +1840,85 @@ const PrintStyle9 = ({
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style={{ fontSize: '13px' }}>
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
marginTop: '2px',
|
||||||
|
paddingTop: '2px',
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
flexDirection: 'column',
|
||||||
|
borderTop: '1px dashed #000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '13px',
|
||||||
|
width: '90%',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Bill Gross Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.BeforeAdjustment || 0).toFixed(
|
||||||
|
2
|
||||||
|
)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: '800',
|
||||||
|
color: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '-'
|
||||||
|
: '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
marginTop: '4px',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Net Bill Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.AfterAdjustment || 0).toFixed(
|
||||||
|
2
|
||||||
|
)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '13px',
|
||||||
|
width: '100%',
|
||||||
|
textAlign: 'center',
|
||||||
|
marginTop: '5px',
|
||||||
|
fontWeight: '600',
|
||||||
|
}}
|
||||||
|
>
|
||||||
Your Order No :
|
Your Order No :
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? '01'
|
? '01'
|
||||||
|
|
@ -2585,7 +2676,7 @@ const PrintStyle9 = ({
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<div>
|
<div>
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{PaymentStatusSuccess?.length > 1 && !isEditedBill && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments).map((paymentType) => (
|
{Object.keys(aggregatedPayments).map((paymentType) => (
|
||||||
|
|
@ -2731,8 +2822,83 @@ const PrintStyle9 = ({
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
marginTop: '2px',
|
||||||
|
paddingTop: '2px',
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
flexDirection: 'column',
|
||||||
|
borderTop: '1px dashed #000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '13px',
|
||||||
|
width: '90%',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Bill Gross Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.BeforeAdjustment || 0).toFixed(
|
||||||
|
2
|
||||||
|
)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: '800',
|
||||||
|
color: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '-'
|
||||||
|
: '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
marginTop: '4px',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Net Bill Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
<div style={{ fontSize: '13px' }}>
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '13px',
|
||||||
|
width: '100%',
|
||||||
|
textAlign: 'center',
|
||||||
|
marginTop: '5px',
|
||||||
|
fontWeight: '600',
|
||||||
|
}}
|
||||||
|
>
|
||||||
Your Order No :
|
Your Order No :
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? '01'
|
? '01'
|
||||||
|
|
@ -4108,7 +4274,7 @@ const PrintStyle9 = ({
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<div>
|
<div>
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{PaymentStatusSuccess?.length > 1 && !isEditedBill && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments).map((paymentType) => (
|
{Object.keys(aggregatedPayments).map((paymentType) => (
|
||||||
|
|
@ -4239,7 +4405,79 @@ const PrintStyle9 = ({
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style={{ fontSize: '13px' }}>
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
marginTop: '2px',
|
||||||
|
paddingTop: '2px',
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
flexDirection: 'column',
|
||||||
|
borderTop: '1px dashed #000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '13px',
|
||||||
|
width: '90%',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Bill Gross Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
fontWeight: '800',
|
||||||
|
color: '#000',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
marginTop: '4px',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span style={{ color: '#000', fontWeight: '600' }}>
|
||||||
|
Net Bill Amount
|
||||||
|
</span>
|
||||||
|
<strong>
|
||||||
|
{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '13px',
|
||||||
|
width: '100%',
|
||||||
|
textAlign: 'center',
|
||||||
|
marginTop: '5px',
|
||||||
|
fontWeight: '600',
|
||||||
|
}}
|
||||||
|
>
|
||||||
Your Order No :
|
Your Order No :
|
||||||
{GlobaldummyData
|
{GlobaldummyData
|
||||||
? '01'
|
? '01'
|
||||||
|
|
|
||||||
|
|
@ -264,7 +264,6 @@ const RetailDashboard = () => {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (isInitialLoad && CompId && AppId && selection === 'dashboard') {
|
if (isInitialLoad && CompId && AppId && selection === 'dashboard') {
|
||||||
// debugger
|
|
||||||
if (dates && dates?.[0] && dates?.[1] && !initialDate) {
|
if (dates && dates?.[0] && dates?.[1] && !initialDate) {
|
||||||
onRangeChange(dates, [
|
onRangeChange(dates, [
|
||||||
dates?.[0]?.format('DD-MM-YYYY'),
|
dates?.[0]?.format('DD-MM-YYYY'),
|
||||||
|
|
|
||||||
|
|
@ -257,29 +257,29 @@ const CardPage1 = (props) => {
|
||||||
if (isItemInCart) {
|
if (isItemInCart) {
|
||||||
newOrderDetails = newOrderDetails.map((cartItem) =>
|
newOrderDetails = newOrderDetails.map((cartItem) =>
|
||||||
cartItem.ProdId === item.ProdId &&
|
cartItem.ProdId === item.ProdId &&
|
||||||
cartItem.InwardDtlId === item.InwardDtlId &&
|
cartItem.InwardDtlId === item.InwardDtlId &&
|
||||||
cartItem.OrderRate === item.OrderRate &&
|
cartItem.OrderRate === item.OrderRate &&
|
||||||
cartItem?.BookingTypeName === item?.BookingTypeName &&
|
cartItem?.BookingTypeName === item?.BookingTypeName &&
|
||||||
!cartItem?.disabled
|
!cartItem?.disabled
|
||||||
? {
|
? {
|
||||||
...cartItem,
|
...cartItem,
|
||||||
OrderQty: cartItem.OrderQty + 1,
|
OrderQty: cartItem.OrderQty + 1,
|
||||||
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
|
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
|
||||||
TaxAmt: (
|
TaxAmt: (
|
||||||
|
((cartItem.OrderQty + 1) *
|
||||||
|
cartItem.OrderRate *
|
||||||
|
cartItem.TaxPercentage) /
|
||||||
|
(100 + cartItem.TaxPercentage)
|
||||||
|
).toFixed(2),
|
||||||
|
WithoutTaxRate:
|
||||||
|
(cartItem.OrderQty + 1) * cartItem.OrderRate -
|
||||||
|
(
|
||||||
((cartItem.OrderQty + 1) *
|
((cartItem.OrderQty + 1) *
|
||||||
cartItem.OrderRate *
|
cartItem.OrderRate *
|
||||||
cartItem.TaxPercentage) /
|
cartItem.TaxPercentage) /
|
||||||
(100 + cartItem.TaxPercentage)
|
(100 + cartItem.TaxPercentage)
|
||||||
).toFixed(2),
|
).toFixed(2),
|
||||||
WithoutTaxRate:
|
}
|
||||||
(cartItem.OrderQty + 1) * cartItem.OrderRate -
|
|
||||||
(
|
|
||||||
((cartItem.OrderQty + 1) *
|
|
||||||
cartItem.OrderRate *
|
|
||||||
cartItem.TaxPercentage) /
|
|
||||||
(100 + cartItem.TaxPercentage)
|
|
||||||
).toFixed(2),
|
|
||||||
}
|
|
||||||
: cartItem
|
: cartItem
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -360,11 +360,11 @@ const CardPage1 = (props) => {
|
||||||
(cartItem) =>
|
(cartItem) =>
|
||||||
cartItem?.ProdId === item?.ProductDetail?.[0]?.ProdId &&
|
cartItem?.ProdId === item?.ProductDetail?.[0]?.ProdId &&
|
||||||
cartItem?.InwardDtlId ===
|
cartItem?.InwardDtlId ===
|
||||||
item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]
|
item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]
|
||||||
?.InwardDtlId &&
|
?.InwardDtlId &&
|
||||||
cartItem?.OrderRate ===
|
cartItem?.OrderRate ===
|
||||||
item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]
|
item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]
|
||||||
?.SellPrice
|
?.SellPrice
|
||||||
);
|
);
|
||||||
if (Isincart && Isincart?.StockAvailable === 'Y') {
|
if (Isincart && Isincart?.StockAvailable === 'Y') {
|
||||||
if (Isincart?.BalanceQty > Isincart?.OrderQty) {
|
if (Isincart?.BalanceQty > Isincart?.OrderQty) {
|
||||||
|
|
@ -419,13 +419,13 @@ const CardPage1 = (props) => {
|
||||||
(cartItem) =>
|
(cartItem) =>
|
||||||
cartItem?.ProdId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId &&
|
cartItem?.ProdId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId &&
|
||||||
cartItem?.InwardDtlId ===
|
cartItem?.InwardDtlId ===
|
||||||
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[
|
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[
|
||||||
item?.VarientIndex
|
item?.VarientIndex
|
||||||
]?.StockDetails?.[0]?.InwardDtlId &&
|
]?.StockDetails?.[0]?.InwardDtlId &&
|
||||||
cartItem?.OrderRate ===
|
cartItem?.OrderRate ===
|
||||||
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[
|
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[
|
||||||
item?.VarientIndex
|
item?.VarientIndex
|
||||||
]?.StockDetails?.[0]?.SellPrice
|
]?.StockDetails?.[0]?.SellPrice
|
||||||
);
|
);
|
||||||
console.log(Isincart, item, KioskOrderDetails, 'IsincartsingleVarient');
|
console.log(Isincart, item, KioskOrderDetails, 'IsincartsingleVarient');
|
||||||
if (Isincart && Isincart?.StockAvailable === 'Y') {
|
if (Isincart && Isincart?.StockAvailable === 'Y') {
|
||||||
|
|
@ -543,7 +543,7 @@ const CardPage1 = (props) => {
|
||||||
SinglePc: onePcs ? 'Y' : 'N',
|
SinglePc: onePcs ? 'Y' : 'N',
|
||||||
NoOfPcs: onePcs
|
NoOfPcs: onePcs
|
||||||
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
||||||
?.StockDetails?.[stockIndex]?.NoOfPcs
|
?.StockDetails?.[stockIndex]?.NoOfPcs
|
||||||
: null,
|
: null,
|
||||||
ProdVariantName:
|
ProdVariantName:
|
||||||
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
||||||
|
|
@ -568,14 +568,14 @@ const CardPage1 = (props) => {
|
||||||
?.StockDetails?.[stockIndex]?.InwardId,
|
?.StockDetails?.[stockIndex]?.InwardId,
|
||||||
MRP: onePcs
|
MRP: onePcs
|
||||||
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
||||||
?.StockDetails?.[stockIndex]?.OnePcsPrice
|
?.StockDetails?.[stockIndex]?.OnePcsPrice
|
||||||
: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
||||||
?.StockDetails?.[stockIndex]?.MRP,
|
?.StockDetails?.[stockIndex]?.MRP,
|
||||||
OrderRate: onePcs
|
OrderRate: onePcs
|
||||||
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
||||||
?.StockDetails?.[stockIndex]?.OnePcsPrice
|
?.StockDetails?.[stockIndex]?.OnePcsPrice
|
||||||
: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
||||||
?.StockDetails?.[stockIndex]?.SellPrice,
|
?.StockDetails?.[stockIndex]?.SellPrice,
|
||||||
SuppId:
|
SuppId:
|
||||||
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
|
||||||
?.StockDetails?.[stockIndex]?.SuppId,
|
?.StockDetails?.[stockIndex]?.SuppId,
|
||||||
|
|
@ -603,7 +603,6 @@ const CardPage1 = (props) => {
|
||||||
};
|
};
|
||||||
// add Product in cart state
|
// add Product in cart state
|
||||||
const AddOrderDetails = async (item) => {
|
const AddOrderDetails = async (item) => {
|
||||||
// debugger
|
|
||||||
message.success(`${item?.ProdName} Added in the Cart`);
|
message.success(`${item?.ProdName} Added in the Cart`);
|
||||||
const isItemInCart = KioskOrderDetails?.find(
|
const isItemInCart = KioskOrderDetails?.find(
|
||||||
(cartItem) =>
|
(cartItem) =>
|
||||||
|
|
@ -619,29 +618,29 @@ const CardPage1 = (props) => {
|
||||||
changeKioskOrderDetails(
|
changeKioskOrderDetails(
|
||||||
KioskOrderDetails?.map((cartItem) =>
|
KioskOrderDetails?.map((cartItem) =>
|
||||||
cartItem.ProdId === item.ProdId &&
|
cartItem.ProdId === item.ProdId &&
|
||||||
cartItem.InwardDtlId === item.InwardDtlId &&
|
cartItem.InwardDtlId === item.InwardDtlId &&
|
||||||
cartItem.OrderRate === item.OrderRate &&
|
cartItem.OrderRate === item.OrderRate &&
|
||||||
cartItem?.BookingTypeName === item?.BookingTypeName &&
|
cartItem?.BookingTypeName === item?.BookingTypeName &&
|
||||||
!cartItem?.disabled
|
!cartItem?.disabled
|
||||||
? {
|
? {
|
||||||
...cartItem,
|
...cartItem,
|
||||||
OrderQty: cartItem.OrderQty + 1,
|
OrderQty: cartItem.OrderQty + 1,
|
||||||
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
|
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
|
||||||
TaxAmt: (
|
TaxAmt: (
|
||||||
|
((cartItem.OrderQty + 1) *
|
||||||
|
cartItem.OrderRate *
|
||||||
|
cartItem.TaxPercentage) /
|
||||||
|
(100 + cartItem.TaxPercentage)
|
||||||
|
).toFixed(2),
|
||||||
|
WithoutTaxRate:
|
||||||
|
(cartItem.OrderQty + 1) * cartItem.OrderRate -
|
||||||
|
(
|
||||||
((cartItem.OrderQty + 1) *
|
((cartItem.OrderQty + 1) *
|
||||||
cartItem.OrderRate *
|
cartItem.OrderRate *
|
||||||
cartItem.TaxPercentage) /
|
cartItem.TaxPercentage) /
|
||||||
(100 + cartItem.TaxPercentage)
|
(100 + cartItem.TaxPercentage)
|
||||||
).toFixed(2),
|
).toFixed(2),
|
||||||
WithoutTaxRate:
|
}
|
||||||
(cartItem.OrderQty + 1) * cartItem.OrderRate -
|
|
||||||
(
|
|
||||||
((cartItem.OrderQty + 1) *
|
|
||||||
cartItem.OrderRate *
|
|
||||||
cartItem.TaxPercentage) /
|
|
||||||
(100 + cartItem.TaxPercentage)
|
|
||||||
).toFixed(2),
|
|
||||||
}
|
|
||||||
: cartItem
|
: cartItem
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
@ -862,7 +861,7 @@ const CardPage1 = (props) => {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className="KioskCardmaster"
|
className="KioskCardmaster"
|
||||||
style={{ height: '100vh', }}
|
style={{ height: '100vh', }}
|
||||||
>
|
>
|
||||||
{/* Top area */}
|
{/* Top area */}
|
||||||
<div style={{ backgroundColor: '#EEEEEE', overflow: 'auto' }}>
|
<div style={{ backgroundColor: '#EEEEEE', overflow: 'auto' }}>
|
||||||
|
|
@ -875,7 +874,7 @@ const CardPage1 = (props) => {
|
||||||
? props.class
|
? props.class
|
||||||
: 'KioskCard-card-main'
|
: 'KioskCard-card-main'
|
||||||
}
|
}
|
||||||
// style={{ backgroundColor: getKioskLightColourdata }}
|
// style={{ backgroundColor: getKioskLightColourdata }}
|
||||||
>
|
>
|
||||||
{/* Mapping through kioskCategoriesCard */}
|
{/* Mapping through kioskCategoriesCard */}
|
||||||
{(selfBookingOption === 'Card Only' ||
|
{(selfBookingOption === 'Card Only' ||
|
||||||
|
|
@ -891,9 +890,9 @@ const CardPage1 = (props) => {
|
||||||
card?.OverAllQty,
|
card?.OverAllQty,
|
||||||
KioskOrderDetails
|
KioskOrderDetails
|
||||||
) > 0) ||
|
) > 0) ||
|
||||||
card?.ProductDetail?.some(
|
card?.ProductDetail?.some(
|
||||||
(item) => item?.StockAvailable !== 'Y'
|
(item) => item?.StockAvailable !== 'Y'
|
||||||
)
|
)
|
||||||
? 'KioskCard-card'
|
? 'KioskCard-card'
|
||||||
: 'KioskCard-card-dis'
|
: 'KioskCard-card-dis'
|
||||||
}
|
}
|
||||||
|
|
@ -923,9 +922,9 @@ const CardPage1 = (props) => {
|
||||||
card?.OverAllQty,
|
card?.OverAllQty,
|
||||||
KioskOrderDetails
|
KioskOrderDetails
|
||||||
) > 0) ||
|
) > 0) ||
|
||||||
card?.ProductDetail?.some(
|
card?.ProductDetail?.some(
|
||||||
(item) => item?.StockAvailable !== 'Y'
|
(item) => item?.StockAvailable !== 'Y'
|
||||||
) ? (
|
) ? (
|
||||||
''
|
''
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
|
|
@ -957,57 +956,57 @@ const CardPage1 = (props) => {
|
||||||
{card?.ProductDetail?.filter(
|
{card?.ProductDetail?.filter(
|
||||||
(item) => item.OnePcsAvailable == 'Y'
|
(item) => item.OnePcsAvailable == 'Y'
|
||||||
).length !== 0 && (
|
).length !== 0 && (
|
||||||
<div
|
<div
|
||||||
className="card4Main-onepiece-selfBooking"
|
className="card4Main-onepiece-selfBooking"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.stopPropagation(); // Stop event propagation to the parent div
|
e.stopPropagation(); // Stop event propagation to the parent div
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!(
|
!(
|
||||||
(card?.OverAllQty !== undefined &&
|
(card?.OverAllQty !== undefined &&
|
||||||
returnOnepcCount(
|
returnOnepcCount(
|
||||||
card?.ProductDetail?.[0]?.ProdName,
|
card?.ProductDetail?.[0]?.ProdName,
|
||||||
card?.OverAllPcs,
|
card?.OverAllPcs,
|
||||||
CartOrderDetails
|
CartOrderDetails
|
||||||
) > 0) ||
|
) > 0) ||
|
||||||
card?.ProductDetail?.some(
|
card?.ProductDetail?.some(
|
||||||
(item) => item?.StockAvailable !== 'Y'
|
(item) => item?.StockAvailable !== 'Y'
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
) {
|
||||||
) {
|
return; // Don't proceed if the condition isn't met
|
||||||
return; // Don't proceed if the condition isn't met
|
} else {
|
||||||
} else {
|
CardOnClick(card, 'OnePeiceProduct'); // This only runs when you click the "One Piece" button
|
||||||
CardOnClick(card, 'OnePeiceProduct'); // This only runs when you click the "One Piece" button
|
}
|
||||||
}
|
}}
|
||||||
}}
|
style={{
|
||||||
style={{
|
fontFamily: SelectedCardFont || '',
|
||||||
fontFamily: SelectedCardFont || '',
|
backgroundColor:
|
||||||
backgroundColor:
|
SelectedCardColor?.FontColor || '#f00000ff',
|
||||||
SelectedCardColor?.FontColor || '#f00000ff',
|
color:
|
||||||
color:
|
returnOnepcCount(
|
||||||
returnOnepcCount(
|
card?.ProductDetail?.[0]?.ProdName,
|
||||||
card?.ProductDetail?.[0]?.ProdName,
|
card?.OverAllPcs,
|
||||||
card?.OverAllPcs,
|
CartOrderDetails
|
||||||
CartOrderDetails
|
) > 0 ||
|
||||||
) > 0 ||
|
card?.ProductDetail?.some(
|
||||||
card?.ProductDetail?.some(
|
(product) => product?.StockAvailable !== 'Y'
|
||||||
(product) => product?.StockAvailable !== 'Y'
|
)
|
||||||
)
|
? true
|
||||||
? true
|
? SelectedCardColor?.BackgroundColor ||
|
||||||
? SelectedCardColor?.BackgroundColor ||
|
|
||||||
'#000000'
|
'#000000'
|
||||||
: '#fff'
|
: '#fff'
|
||||||
: '#ff4d4f',
|
: '#ff4d4f',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
{' '}
|
{' '}
|
||||||
{AppName?.toLowerCase() === 'sports'
|
{AppName?.toLowerCase() === 'sports'
|
||||||
? 'Single'
|
? 'Single'
|
||||||
: '1PCS'}{' '}
|
: '1PCS'}{' '}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
)}
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,7 @@ const PreferenceList = () => {
|
||||||
weeklysalesreport: allSettingsMap['weeklysalesreport'] === 'Y',
|
weeklysalesreport: allSettingsMap['weeklysalesreport'] === 'Y',
|
||||||
notificationblink: allSettingsMap['notificationblink'] === 'Y',
|
notificationblink: allSettingsMap['notificationblink'] === 'Y',
|
||||||
onlineindivdualslots: allSettingsMap['onlineindivdualslots'] === 'Y',
|
onlineindivdualslots: allSettingsMap['onlineindivdualslots'] === 'Y',
|
||||||
|
editbill: allSettingsMap['editbill'] === 'Y',
|
||||||
notification: [
|
notification: [
|
||||||
...(allSettingsMap['onbilltime'] === 'Y' ? ['onbilltime'] : []),
|
...(allSettingsMap['onbilltime'] === 'Y' ? ['onbilltime'] : []),
|
||||||
...(allSettingsMap['1daybefore'] === 'Y' ? ['1daybefore'] : []),
|
...(allSettingsMap['1daybefore'] === 'Y' ? ['1daybefore'] : []),
|
||||||
|
|
@ -308,6 +309,7 @@ const PreferenceList = () => {
|
||||||
lowstockreport: values.lowstockreport,
|
lowstockreport: values.lowstockreport,
|
||||||
weeklysalesreport: values.weeklysalesreport,
|
weeklysalesreport: values.weeklysalesreport,
|
||||||
notificationblink: values.notificationblink,
|
notificationblink: values.notificationblink,
|
||||||
|
editbill: values.editbill,
|
||||||
};
|
};
|
||||||
|
|
||||||
const arrayValues = {
|
const arrayValues = {
|
||||||
|
|
@ -627,6 +629,7 @@ const PreferenceList = () => {
|
||||||
'Do you Want Customised Bill Number?'
|
'Do you Want Customised Bill Number?'
|
||||||
)}
|
)}
|
||||||
{renderCheckbox('upiqr', 'Do you want to show the UPI QR code?')}
|
{renderCheckbox('upiqr', 'Do you want to show the UPI QR code?')}
|
||||||
|
{/* {renderCheckbox('editbill', 'Do you want to edit the previously created bill?')} */}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Divider />
|
<Divider />
|
||||||
|
|
|
||||||
|
|
@ -1034,7 +1034,6 @@ const TableBooking = ({ PaymentStatus }) => {
|
||||||
);
|
);
|
||||||
|
|
||||||
const navigatetoBooking = async (data) => {
|
const navigatetoBooking = async (data) => {
|
||||||
|
|
||||||
const OrderDetails = data?.OrderDetails?.[0];
|
const OrderDetails = data?.OrderDetails?.[0];
|
||||||
const {
|
const {
|
||||||
OrderDtlDetails,
|
OrderDtlDetails,
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,18 @@ const PaymentPdfBooking = ({
|
||||||
let PaymentStatusSuccess = PaymentStatus?.filter(
|
let PaymentStatusSuccess = PaymentStatus?.filter(
|
||||||
(ps) => ps.PaymentStatus === 'S'
|
(ps) => ps.PaymentStatus === 'S'
|
||||||
);
|
);
|
||||||
|
const isEditedBill = PaymentStatus?.some(payment => {
|
||||||
|
const type = payment?.AdjustmentType?.toLowerCase();
|
||||||
|
return (
|
||||||
|
(type === 'extra' || type === 'refund') &&
|
||||||
|
payment?.BeforeAdjustment != null &&
|
||||||
|
payment?.AfterAdjustment != null
|
||||||
|
);
|
||||||
|
});
|
||||||
|
const lastTransaction = PaymentStatus?.find(
|
||||||
|
(ps) => ps.PaymentStatus === 'S' && ps?.LastOrderTran === 'Y'
|
||||||
|
)
|
||||||
|
console.log(singleData2?.filter(data => data?.EditTokenAvailable !== 'N'), "singleData2")
|
||||||
const ExtraChargeTotal = table2Data?.ExtraChargeDetails?.reduce(
|
const ExtraChargeTotal = table2Data?.ExtraChargeDetails?.reduce(
|
||||||
(accumulator, currentObject) => {
|
(accumulator, currentObject) => {
|
||||||
return accumulator + currentObject.TotalAmt;
|
return accumulator + currentObject.TotalAmt;
|
||||||
|
|
@ -80,6 +92,7 @@ const PaymentPdfBooking = ({
|
||||||
const [BranchZip, setBranchZip] = useState();
|
const [BranchZip, setBranchZip] = useState();
|
||||||
const CashierName = getSession('userName');
|
const CashierName = getSession('userName');
|
||||||
const printerTemplateStyle = useSelector(SelectedPrintTemplate);
|
const printerTemplateStyle = useSelector(SelectedPrintTemplate);
|
||||||
|
console.log(printerTemplateStyle, "printerTemplateStyle")
|
||||||
const appPreferences = useSelector(ApplicationPreferences);
|
const appPreferences = useSelector(ApplicationPreferences);
|
||||||
const SettingData = useSelector(PreferenceData);
|
const SettingData = useSelector(PreferenceData);
|
||||||
const estimatePrintHeader =
|
const estimatePrintHeader =
|
||||||
|
|
@ -297,6 +310,21 @@ const PaymentPdfBooking = ({
|
||||||
return `${h}:${m}${suffix}`;
|
return `${h}:${m}${suffix}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getAdjustmentLabel = (type) => {
|
||||||
|
switch (type?.toUpperCase()) {
|
||||||
|
case 'REFUND':
|
||||||
|
return 'Returned Item Amount';
|
||||||
|
case 'EXTRA':
|
||||||
|
return 'Additional Amount';
|
||||||
|
case 'DISCOUNT':
|
||||||
|
return 'Discount Applied';
|
||||||
|
case 'ROUND_OFF':
|
||||||
|
return 'Round Off';
|
||||||
|
default:
|
||||||
|
return 'Adjustment Amount';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="Reprint-body" id={`RePrint-${index}`}>
|
<div className="Reprint-body" id={`RePrint-${index}`}>
|
||||||
|
|
@ -341,8 +369,8 @@ const PaymentPdfBooking = ({
|
||||||
{table2Data?.AddressDetails?.[0]?.City &&
|
{table2Data?.AddressDetails?.[0]?.City &&
|
||||||
table2Data?.AddressDetails?.[0]?.Zip &&
|
table2Data?.AddressDetails?.[0]?.Zip &&
|
||||||
table2Data?.AddressDetails?.[0]?.City +
|
table2Data?.AddressDetails?.[0]?.City +
|
||||||
'- ' +
|
'- ' +
|
||||||
table2Data?.AddressDetails?.[0]?.Zip}
|
table2Data?.AddressDetails?.[0]?.Zip}
|
||||||
</p>
|
</p>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|
@ -358,9 +386,9 @@ const PaymentPdfBooking = ({
|
||||||
GSTIN: {table2Data?.BrGSTIN}
|
GSTIN: {table2Data?.BrGSTIN}
|
||||||
</p>
|
</p>
|
||||||
)}
|
)}
|
||||||
<p style={{ fontSize: '9px', margin: '7px 0 0 0', padding: 0 }}>
|
{table2Data?.BrMobile && <p style={{ fontSize: '9px', margin: '7px 0 0 0', padding: 0 }}>
|
||||||
Mobile:+91 {table2Data?.BrMobile}
|
Mobile:+91 {table2Data?.BrMobile}
|
||||||
</p>
|
</p>}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -435,7 +463,7 @@ const PaymentPdfBooking = ({
|
||||||
|
|
||||||
<div className="Re-print-top2">
|
<div className="Re-print-top2">
|
||||||
<div className="Re-print-bold1">
|
<div className="Re-print-bold1">
|
||||||
BillNo:
|
Bill No:
|
||||||
{table2Data?.OrderId &&
|
{table2Data?.OrderId &&
|
||||||
extractLastNumberOrderId(
|
extractLastNumberOrderId(
|
||||||
table2Data?.OrderId,
|
table2Data?.OrderId,
|
||||||
|
|
@ -512,27 +540,27 @@ const PaymentPdfBooking = ({
|
||||||
|
|
||||||
{item?.ProductIdentifierDtls?.length > 0
|
{item?.ProductIdentifierDtls?.length > 0
|
||||||
? item?.ProductIdentifierDtls.filter(
|
? item?.ProductIdentifierDtls.filter(
|
||||||
(items) =>
|
(items) =>
|
||||||
items.SerialNumber &&
|
items.SerialNumber &&
|
||||||
items.SerialNumber !== ''
|
items.SerialNumber !== ''
|
||||||
).map((a, i) => (
|
).map((a, i) => (
|
||||||
<div key={i}>{a.SerialNumber}</div>
|
<div key={i}>{a.SerialNumber}</div>
|
||||||
))
|
))
|
||||||
: ''}
|
: ''}
|
||||||
{item?.ProductIdentifierDtls?.length > 0
|
{item?.ProductIdentifierDtls?.length > 0
|
||||||
? item?.ProductIdentifierDtls.filter(
|
? item?.ProductIdentifierDtls.filter(
|
||||||
(id) => id.IMEI1 !== '' || id.IMEI2 !== ''
|
(id) => id.IMEI1 !== '' || id.IMEI2 !== ''
|
||||||
).map((id, i) => {
|
).map((id, i) => {
|
||||||
const imei1 = id.IMEI1 || '';
|
const imei1 = id.IMEI1 || '';
|
||||||
const imei2 = id.IMEI2 || '';
|
const imei2 = id.IMEI2 || '';
|
||||||
return (
|
return (
|
||||||
<div key={i}>
|
<div key={i}>
|
||||||
{[imei1, imei2]
|
{[imei1, imei2]
|
||||||
.filter(Boolean)
|
.filter(Boolean)
|
||||||
.join(',')}
|
.join(',')}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
: ''}
|
: ''}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -549,25 +577,25 @@ const PaymentPdfBooking = ({
|
||||||
|
|
||||||
{item?.ProductIdentifierDtls?.length > 0
|
{item?.ProductIdentifierDtls?.length > 0
|
||||||
? item?.ProductIdentifierDtls.filter(
|
? item?.ProductIdentifierDtls.filter(
|
||||||
(items) =>
|
(items) =>
|
||||||
items.SerialNumber &&
|
items.SerialNumber &&
|
||||||
items.SerialNumber !== ''
|
items.SerialNumber !== ''
|
||||||
).map((a, i) => (
|
).map((a, i) => (
|
||||||
<div key={i}>{a.SerialNumber}</div>
|
<div key={i}>{a.SerialNumber}</div>
|
||||||
))
|
))
|
||||||
: ''}
|
: ''}
|
||||||
{item?.ProductIdentifierDtls?.length > 0
|
{item?.ProductIdentifierDtls?.length > 0
|
||||||
? item?.ProductIdentifierDtls.filter(
|
? item?.ProductIdentifierDtls.filter(
|
||||||
(id) => id.IMEI1 !== '' || id.IMEI2 !== ''
|
(id) => id.IMEI1 !== '' || id.IMEI2 !== ''
|
||||||
).map((id, i) => {
|
).map((id, i) => {
|
||||||
const imei1 = id.IMEI1 || '';
|
const imei1 = id.IMEI1 || '';
|
||||||
const imei2 = id.IMEI2 || '';
|
const imei2 = id.IMEI2 || '';
|
||||||
return (
|
return (
|
||||||
<div key={i}>
|
<div key={i}>
|
||||||
{[imei1, imei2].filter(Boolean).join(',')}
|
{[imei1, imei2].filter(Boolean).join(',')}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
: ''}
|
: ''}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
|
@ -1109,7 +1137,7 @@ const PaymentPdfBooking = ({
|
||||||
></div>
|
></div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{PaymentStatusSuccess?.length > 1 && (
|
{(PaymentStatusSuccess?.length > 1 && !isEditedBill) && (
|
||||||
<>
|
<>
|
||||||
{/* <p>Split Payment:</p> */}
|
{/* <p>Split Payment:</p> */}
|
||||||
{Object.keys(aggregatedPayments)?.map((paymentType) => (
|
{Object.keys(aggregatedPayments)?.map((paymentType) => (
|
||||||
|
|
@ -1122,6 +1150,48 @@ const PaymentPdfBooking = ({
|
||||||
))}
|
))}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
{isEditedBill && lastTransaction && (
|
||||||
|
<div style={{
|
||||||
|
width: '90%', marginTop: '2px',
|
||||||
|
marginLeft: '10px',
|
||||||
|
paddingTop: '2px', display: 'flex', justifyContent: 'center', alignItems: 'center',
|
||||||
|
flexDirection: 'column', borderTop: '1px dashed #ccc'
|
||||||
|
}}>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
fontSize: '12px',
|
||||||
|
width: '70%'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#333' }}>Bill Gross Amount</span>
|
||||||
|
<strong>{(lastTransaction?.BeforeAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
marginTop: '4px',
|
||||||
|
fontWeight: 600,
|
||||||
|
color:
|
||||||
|
lastTransaction?.AdjustmentType === 'REFUND'
|
||||||
|
? '#d32f2f'
|
||||||
|
: '#2e7d32',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span>{'Adjustment Amount'}</span>
|
||||||
|
<span>
|
||||||
|
{lastTransaction?.AdjustmentType === 'REFUND' ? '-' : '+'}
|
||||||
|
{(lastTransaction?.Amount || 0).toFixed(2)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
|
<span style={{ color: '#333' }}>Net Bill Amount</span>
|
||||||
|
<strong>{(lastTransaction?.AfterAdjustment || 0).toFixed(2)}</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
{table2Data?.CustSuppName && (
|
{table2Data?.CustSuppName && (
|
||||||
<div>
|
<div>
|
||||||
<p
|
<p
|
||||||
|
|
@ -1582,7 +1652,7 @@ const PaymentPdfBooking = ({
|
||||||
|
|
||||||
{/* Token print */}
|
{/* Token print */}
|
||||||
{Object.entries(
|
{Object.entries(
|
||||||
singleData2?.reduce((acc, item, idx) => {
|
singleData2?.filter(data => data?.EditTokenAvailable !== 'N')?.reduce((acc, item, idx) => {
|
||||||
if (item.TokenAvailable === 'Y') {
|
if (item.TokenAvailable === 'Y') {
|
||||||
if (!item.CounterName) {
|
if (!item.CounterName) {
|
||||||
// For null or empty CounterName, print each item individually
|
// For null or empty CounterName, print each item individually
|
||||||
|
|
@ -1607,7 +1677,7 @@ const PaymentPdfBooking = ({
|
||||||
<p className="Re-print-title">Token</p>
|
<p className="Re-print-title">Token</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="Re-print-top2">
|
<div className="Re-print-top2">
|
||||||
<p className="Re-print-bold">BillNo: {orderId}</p>
|
<p className="Re-print-bold">Bill No: {orderId}</p>
|
||||||
<p className="Re-print-bold">{Date1}</p>
|
<p className="Re-print-bold">{Date1}</p>
|
||||||
</div>
|
</div>
|
||||||
<table className="Re-print-Table">
|
<table className="Re-print-Table">
|
||||||
|
|
@ -1625,9 +1695,9 @@ const PaymentPdfBooking = ({
|
||||||
<tr className="Re-print-body-Tr" key={idx}>
|
<tr className="Re-print-body-Tr" key={idx}>
|
||||||
<td className="Re-print-td">{idx + 1}</td>
|
<td className="Re-print-td">{idx + 1}</td>
|
||||||
<td className="Re-print-body-Product">{item.ProdName}</td>
|
<td className="Re-print-body-Product">{item.ProdName}</td>
|
||||||
<td className="Re-print-body-Rate">{item.SalesQty}</td>
|
<td className="Re-print-body-Rate">{item?.EditTokenAvailable === 'Y' ? item?.EditTokenQty : item.SalesQty}</td>
|
||||||
<td className="Re-print-body-Rate">{item.Rate}</td>
|
<td className="Re-print-body-Rate">{item.Rate}</td>
|
||||||
<td className="Re-print-body-Rate">{item.TotalAmt}</td>
|
<td className="Re-print-body-Rate">{((item?.EditTokenAvailable === 'Y' ? item?.EditTokenQty : item.SalesQty) * item.Rate) - ((item?.EditTokenAvailable === 'Y' ? (item?.OfferAmt / item?.EditTokenQty) : item?.OfferAmt))}</td>
|
||||||
</tr>
|
</tr>
|
||||||
))}
|
))}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue