in this component i have change total amt

This commit is contained in:
Srinath 2026-02-06 17:20:22 +05:30
parent 006c6dd1e1
commit da669b3f44
1 changed files with 57 additions and 289 deletions

View File

@ -40,6 +40,7 @@ import {
} from '../../../../../Features/Offer/Offernew/BookingOffernew.js';
import { validateOffers } from '../../BSItemCards/ValidateOffer.jsx';
import { v4 as uuidv4 } from 'uuid';
import WeightCalculatePrice from './WeightCalculatePrice.jsx';
const BSBillingEditQuantity = (props) => {
const dispatch = useDispatch();
@ -678,12 +679,12 @@ const BSBillingEditQuantity = (props) => {
const handleEditQuantity = async (
editedProduct,
editedProductIndex,
newPrice
newPrice,
overrideQty = null
) => {
// check itself is a offer product
const editedQty =
props?.Productdata?.ScaleType !== 'weight'
const editedQty = overrideQty !== null
? overrideQty
: props?.Productdata?.ScaleType !== 'weight'
? parseInt(Quantity)
: props.Productdata.OrderQty;
const addFirst = BillOrderPre === 'Y';
@ -3096,9 +3097,10 @@ const BSBillingEditQuantity = (props) => {
newPrice = 0,
offerApply = false
) => {
const fixedQty = Number(qty.toFixed(3));
const updatedProduct = {
...editedProduct,
OrderQty: qty,
OrderQty: fixedQty,
OrderRate: newPrice > 0 ? newPrice : editedProduct?.OrderRate,
...calculateTaxAmounts({
qty: qty,
@ -3236,289 +3238,6 @@ const BSBillingEditQuantity = (props) => {
OfferValue: offerValue,
};
};
// const AddProductQuantity = async () => {
// let NewPrice = NewPrice1 > 0 ? NewPrice1 : props.Productdata.OrderRate;
// await dispatch(changeHoldOrderDtl(false));
// await dispatch(changePreviousOrderLength(CartOrderDetails?.length));
// const OtherOrderDatas = CartOrderDetails?.filter(
// (cartItem) =>
// !(
// cartItem?.ProdId === props?.Productdata?.ProdId &&
// cartItem.InwardDtlId === props?.Productdata?.InwardDtlId &&
// cartItem?.OrderRate === props?.Productdata?.OrderRate &&
// cartItem?.BookingTypeName === props?.Productdata?.BookingTypeName
// ) && !cartItem?.SalesId
// );
// const OtherOrderDatawithsales = CartOrderDetails?.filter(
// (cartItem) => cartItem?.SalesId
// );
// const OtherorderDataforNormal = CartOrderDetails?.filter(
// (cartItem) =>
// !(
// cartItem?.ProdId === props?.Productdata?.ProdId &&
// cartItem?.InwardDtlId === props?.Productdata?.InwardDtlId &&
// cartItem?.OrderRate === props?.Productdata?.OrderRate &&
// cartItem?.BookingTypeName === props?.Productdata?.BookingTypeName &&
// !cartItem?.SalesId
// )
// );
// const isItemInCart = CartOrderDetails?.find(
// (cartItem) =>
// cartItem?.ProdId === props?.Productdata?.ProdId &&
// cartItem?.InwardDtlId === props?.Productdata?.InwardDtlId &&
// cartItem?.OrderRate === props?.Productdata?.OrderRate &&
// cartItem?.BookingTypeName === props?.Productdata?.BookingTypeName &&
// !cartItem?.SalesId
// ); // check if the item is already in the cart
// // changing for one piece stock checking
// const isItemInCartfilter = CartOrderDetails?.filter(
// (cartItem) =>
// cartItem?.ProdId === props?.Productdata?.ProdId &&
// cartItem?.InwardDtlId === props?.Productdata?.InwardDtlId &&
// !(
// cartItem?.OrderRate === props?.Productdata?.OrderRate &&
// cartItem?.BookingTypeName === props?.Productdata?.BookingTypeName
// ) &&
// !cartItem?.SalesId
// ); // check if the item is already in the cart
// let OverallQuantity = CalculateOverallQty(isItemInCart, isItemInCartfilter);
// const BookingTypeProd = props?.Productdata?.BookingTypeName;
// const isItemInCartHold = CartOrderDetails?.find(
// (cartItem) =>
// cartItem?.ProdId === props?.Productdata?.ProdId &&
// cartItem?.InwardDtlId === props?.Productdata?.InwardDtlId &&
// cartItem?.OrderRate === props?.Productdata?.OrderRate &&
// cartItem?.BookingTypeName === props?.Productdata?.BookingTypeName
// ); // check if the item is already in the cart
// const isItemInCartHoldfilter = CartOrderDetails?.filter(
// (cartItem) =>
// cartItem?.ProdId === props?.Productdata?.ProdId &&
// cartItem?.InwardDtlId === props?.Productdata?.InwardDtlId &&
// !(
// cartItem?.OrderRate === props?.Productdata?.OrderRate &&
// cartItem?.BookingTypeName === props?.Productdata?.BookingTypeName
// )
// ); // check if the item is already in the cart
// const holddataproduct = ReorderProductData?.filter(
// (cartItem) =>
// cartItem?.ProdId === props?.Productdata?.ProdId &&
// cartItem?.InwardDtlId === props?.Productdata?.InwardDtlId
// );
// let totalSelectedProductQty = holddataproduct?.reduce(
// (accumulator, card) => {
// return (
// accumulator +
// parseInt(
// card?.StockAvailable === 'Y'
// ? props?.Productdata?.SinglePc === 'Y'
// ? card.SinglePc !== 'Y'
// ? card.OrderQty * card.NoOfPcs
// : card.OrderQty
// : card.SinglePc !== 'Y'
// ? card.OrderQty
// : card.OverAllPcs % card.NoOfPcs >= card.OrderQty
// ? 0
// : card.OrderQty % card.NoOfPcs === 0
// ? Math.floor(card.OrderQty / card.NoOfPcs)
// : Math.floor(card.OrderQty / card.NoOfPcs) + 1
// : 0
// )
// );
// },
// 0
// );
// let OverallQuantityhold =
// CalculateOverallQty(isItemInCartHold, isItemInCartHoldfilter) +
// totalSelectedProductQty;
// const OtherorderDataforNormalWithoutSalesId = CartOrderDetails?.filter(
// (cartItem) =>
// !(
// cartItem?.ProdId === props?.Productdata?.ProdId &&
// cartItem?.InwardDtlId === props?.Productdata?.InwardDtlId &&
// cartItem?.OrderRate === props?.Productdata?.OrderRate &&
// cartItem?.BookingTypeName === props?.Productdata?.BookingTypeName
// )
// );
// if (parseInt(Quantity) === 0 || Quantity === '') {
// setMessageType('error');
// setMessageData('Please enter valid quantity');
// setQuantity('');
// }
// else {
// if (isItemInCart && BookingTypeProd != 'Dine In' && OrderType != 'Hold') {
// if (isItemInCart?.StockAvailable === 'Y') {
// let Condition = OverallQuantity >= Quantity;
// if (Condition) {
// const UpdatedCartItem = await createUpdatedCartItem(
// isItemInCart,
// Quantity,
// NewPrice
// );
// const Cartdata = MergecardItem(
// UpdatedCartItem,
// BillOrderPre,
// OtherorderDataforNormal
// );
// await dispatch(changeOrderCardDetails(Cartdata));
// if (OfferCheckedInSetup && preferenceOffer) {
// await applyOffer(Cartdata);
// } else {
// dispatch(changeOrderCardDetails(Cartdata));
// }
// props.handleEditQuantityCancel();
// setClearQuantity(false);
// } else {
// setMessageType('error');
// setMessageData('Stock Not Available');
// setQuantity('');
// }
// } else {
// if (
// isItemInCart &&
// BookingTypeProd != 'Dine In' &&
// OrderType != 'Hold'
// ) {
// const UpdatedCartItem = createUpdatedCartItem(
// isItemInCart,
// Quantity,
// NewPrice
// );
// const Cartdata = MergecardItem(
// UpdatedCartItem,
// BillOrderPre,
// OtherorderDataforNormal
// );
// await dispatch(changeOrderCardDetails(Cartdata));
// if (OfferCheckedInSetup && preferenceOffer) {
// await applyOffer(Cartdata);
// } else {
// dispatch(changeOrderCardDetails(Cartdata));
// }
// }
// props.handleEditQuantityCancel();
// setClearQuantity(false);
// }
// }
// else if (isItemInCartHold && OrderType === 'Hold') {
// if (isItemInCartHold?.StockAvailable === 'Y') {
// let Condition = OverallQuantityhold >= Quantity;
// if (Condition) {
// const UpdatedCartItem = createUpdatedCartItem(
// isItemInCartHold,
// Quantity,
// NewPrice
// );
// const Cartdata = MergecardItem(
// UpdatedCartItem,
// BillOrderPre,
// OtherorderDataforNormalWithoutSalesId
// );
// if (OfferCheckedInSetup && preferenceOffer) {
// await applyOffer(Cartdata);
// } else {
// dispatch(changeOrderCardDetails(Cartdata));
// }
// await dispatch(changeOrderCardDetails(Cartdata));
// props.handleEditQuantityCancel();
// setClearQuantity(false);
// } else {
// setMessageType('error');
// setMessageData('Stock Not Available');
// setQuantity('');
// }
// } else {
// if (isItemInCartHold && OrderType === 'Hold') {
// const UpdatedCartItem = createUpdatedCartItem(
// isItemInCartHold,
// Quantity,
// NewPrice
// );
// const Cartdata = MergecardItem(
// UpdatedCartItem,
// BillOrderPre,
// OtherorderDataforNormalWithoutSalesId
// );
// await dispatch(changeOrderCardDetails(Cartdata));
// if (OfferCheckedInSetup && preferenceOffer) {
// await applyOffer(Cartdata);
// } else {
// dispatch(changeOrderCardDetails(Cartdata));
// }
// }
// props.handleEditQuantityCancel();
// setClearQuantity(false);
// }
// }
// else if (
// isItemInCart &&
// BookingTypeProd === 'Dine In' &&
// OrderType != 'Hold'
// ) {
// if (isItemInCart?.StockAvailable === 'Y') {
// let Condition = OverallQuantity >= Quantity;
// if (Condition) {
// const UpdatedCartItem = createUpdatedCartItem(
// isItemInCart,
// Quantity,
// NewPrice
// );
// const Cartdata = MergecardItem(
// UpdatedCartItem,
// BillOrderPre,
// OtherOrderDatas
// );
// await dispatch(
// changeOrderCardDetails([...OtherOrderDatawithsales, ...Cartdata])
// );
// if (OfferCheckedInSetup && preferenceOffer) {
// await applyOffer(Cartdata);
// } else {
// dispatch(changeOrderCardDetails(Cartdata));
// }
// props.handleEditQuantityCancel();
// setClearQuantity(false);
// } else {
// setMessageType('error');
// setMessageData('Stock Not Available');
// setQuantity('');
// }
// }
// else {
// if (
// isItemInCart &&
// BookingTypeProd === 'Dine In' &&
// OrderType != 'Hold'
// ) {
// const UpdatedCartItem = createUpdatedCartItem(
// isItemInCart,
// Quantity,
// NewPrice
// );
// const Cartdata = MergecardItem(
// UpdatedCartItem,
// BillOrderPre,
// OtherorderDataforNormal
// );
// await dispatch(changeOrderCardDetails(Cartdata));
// if (OfferCheckedInSetup && preferenceOffer) {
// await applyOffer(Cartdata);
// } else {
// dispatch(changeOrderCardDetails(Cartdata));
// }
// }
// props.handleEditQuantityCancel();
// setClearQuantity(false);
// }
// }
// }
// };
const CloseModal = () => {
props.handleEditQuantityCancel();
setClearQuantity(false);
@ -3706,6 +3425,33 @@ const BSBillingEditQuantity = (props) => {
setPackageDtl(data || []);
};
const handleWeightCalculation = async (data) => {
const { price, quantity } = data;
setQuantity(quantity);
setEditedPrice(price);
await handleWeightSubmit(quantity, price);
};
const handleWeightSubmit = async (qty, price) => {
await dispatch(changeHoldOrderDtl(false));
await dispatch(changePreviousOrderLength(CartOrderDetails?.length));
let localId = props.Index;
let editedProductIndex = CartOrderDetails?.findIndex(
(e) => e?.localId == localId
);
const editedProduct = {
...CartOrderDetails[editedProductIndex],
OrderQty: qty
};
await handleEditQuantity(editedProduct, editedProductIndex, editedProduct.OrderRate, qty);
props.handleEditQuantityCancel();
setClearQuantity(false);
};
const isKg =
props?.Productdata?.Size == 1 &&
["KG", "KGS"].includes(props?.Productdata?.UomName?.toUpperCase());
return (
<div className="BSBilling-EditQuantity-Modal">
<Messages
@ -3802,6 +3548,19 @@ const BSBillingEditQuantity = (props) => {
>
Packing
</button>
{isKg && (<button
type="button"
className={
RadioBtnSelection === 'AddWeight'
? 'SelecBtn AddWeight'
: 'ChangeBtn'
}
onClick={() => onRadioBtnChange('AddWeight')}
>
Add Weight
</button>)}
</div>
{RadioBtnSelection == 'Quantity' && (
@ -4007,6 +3766,15 @@ const BSBillingEditQuantity = (props) => {
/>
</>
)}
{RadioBtnSelection == 'AddWeight' && (
<>
<WeightCalculatePrice
CartOrderDetails={CartOrderDetails}
itemData={ItemData}
onSubmit={handleWeightCalculation}
/>
</>
)}
<div style={{ display: 'flex', justifyContent: 'flex-end' }}>
{((RadioBtnSelection == 'Price' && disableSubmitButton) ||
RadioBtnSelection == 'Quantity') && (