|
|
|
@ -490,6 +490,22 @@ export const CartScreen = () => {
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 检查每个商品组的最小起订量
|
|
|
|
|
for (const item of cartList) { |
|
|
|
|
// 检查该商品组是否有选中的SKU
|
|
|
|
|
const hasSelectedSku = item.skus.some(sku => sku.selected === 1); |
|
|
|
|
if (hasSelectedSku) { |
|
|
|
|
const currentGroupTotal = calculateProductGroupTotalQuantity(item.cart_id); |
|
|
|
|
if (currentGroupTotal < item.min_order_quantity) { |
|
|
|
|
Alert.alert( |
|
|
|
|
t("cart.notice"), |
|
|
|
|
`${getSubjectTransLanguage(item)} ${t("cart.min_order")}${item.min_order_quantity}${t("cart.pieces")},${t("cart.current_quantity", "当前数量")}${currentGroupTotal}${t("cart.pieces")}` |
|
|
|
|
); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 检查最低订单金额
|
|
|
|
|
if (country_code !== 225) { |
|
|
|
|
// 只有当 country_code 不是 255 时才进行最低订单金额检查
|
|
|
|
@ -578,6 +594,14 @@ export const CartScreen = () => {
|
|
|
|
|
setMinQuantityModalVisible(true); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 计算同一商品组的总数量
|
|
|
|
|
const calculateProductGroupTotalQuantity = (cartId: number) => { |
|
|
|
|
const product = cartList.find(item => item.cart_id === cartId); |
|
|
|
|
if (!product) return 0; |
|
|
|
|
|
|
|
|
|
return product.skus.reduce((total, sku) => total + sku.quantity, 0); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 处理减少数量
|
|
|
|
|
const handleDecreaseQuantity = ( |
|
|
|
|
cartId: number, |
|
|
|
@ -590,7 +614,11 @@ export const CartScreen = () => {
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (currentQuantity > minOrderQuantity) { |
|
|
|
|
// 计算减少1个数量后,该商品组的总数量
|
|
|
|
|
const currentGroupTotal = calculateProductGroupTotalQuantity(cartId); |
|
|
|
|
const newGroupTotal = currentGroupTotal - 1; |
|
|
|
|
|
|
|
|
|
if (newGroupTotal >= minOrderQuantity) { |
|
|
|
|
updateQuantity(cartId, cartItemId, currentQuantity - 1); |
|
|
|
|
} else { |
|
|
|
|
showMinQuantityModal(`${t("cart.notice")}:${t("cart.min_order")}${minOrderQuantity}${t("cart.pieces")}`); |
|
|
|
@ -625,9 +653,16 @@ export const CartScreen = () => {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const { cartId, cartItemId } = editingItem; |
|
|
|
|
const minOrderQuantity = cartList.find(item => item.cart_id === cartId)?.min_order_quantity || 1; |
|
|
|
|
const product = cartList.find(item => item.cart_id === cartId); |
|
|
|
|
const minOrderQuantity = product?.min_order_quantity || 1; |
|
|
|
|
|
|
|
|
|
// 计算修改数量后,该商品组的总数量
|
|
|
|
|
const currentGroupTotal = calculateProductGroupTotalQuantity(cartId); |
|
|
|
|
const currentSkuQuantity = product?.skus.find(sku => sku.cart_item_id === cartItemId)?.quantity || 0; |
|
|
|
|
const quantityDifference = newQuantity - currentSkuQuantity; |
|
|
|
|
const newGroupTotal = currentGroupTotal + quantityDifference; |
|
|
|
|
|
|
|
|
|
if (newQuantity < minOrderQuantity) { |
|
|
|
|
if (newGroupTotal < minOrderQuantity) { |
|
|
|
|
showMinQuantityModal(`${t("cart.notice")}:${t("cart.min_order")}${minOrderQuantity}${t("cart.pieces")}`); |
|
|
|
|
} else { |
|
|
|
|
updateQuantity(cartId, cartItemId, newQuantity); |
|
|
|
@ -683,7 +718,8 @@ export const CartScreen = () => {
|
|
|
|
|
{/* <Text style={styles.shoppingCartTitle}>Panier (5)</Text> */} |
|
|
|
|
</View> |
|
|
|
|
{cartList.map((item, index1) => ( |
|
|
|
|
<View style={styles.productCardListing} key={item.cart_id}> |
|
|
|
|
<View key={item.cart_id}> |
|
|
|
|
<View style={styles.productCardListing}> |
|
|
|
|
<View style={styles.productCardContainer5}> |
|
|
|
|
<View style={styles.svgContainer1}> |
|
|
|
|
<TouchableOpacity |
|
|
|
@ -714,7 +750,7 @@ export const CartScreen = () => {
|
|
|
|
|
{getSubjectTransLanguage(item)} |
|
|
|
|
</Text> |
|
|
|
|
<Text style={styles.productDetailsTextStyle1}> |
|
|
|
|
{t("cart.min_order")}: {item.min_order_quantity} |
|
|
|
|
{t("cart.min_order")}: {calculateProductGroupTotalQuantity(item.cart_id)}/{item.min_order_quantity} |
|
|
|
|
{t("cart.pieces")} |
|
|
|
|
</Text> |
|
|
|
|
</View> |
|
|
|
@ -903,6 +939,11 @@ export const CartScreen = () => {
|
|
|
|
|
); |
|
|
|
|
})} |
|
|
|
|
</View> |
|
|
|
|
{/* 商品组分隔线 */} |
|
|
|
|
{index1 < cartList.length - 1 && ( |
|
|
|
|
<View style={styles.productGroupDivider} /> |
|
|
|
|
)} |
|
|
|
|
</View> |
|
|
|
|
))} |
|
|
|
|
|
|
|
|
|
{/* 商品 */} |
|
|
|
@ -924,7 +965,7 @@ export const CartScreen = () => {
|
|
|
|
|
<Text>{t("cart.min_order_quantity")} </Text> |
|
|
|
|
<Text style={styles.tiltWarpText}> |
|
|
|
|
{convertedMinAmount !== null |
|
|
|
|
? `${convertedMinAmount.toFixed(2)} ${currency}` |
|
|
|
|
? `${(convertedMinAmount as number).toFixed(2)} ${currency}` |
|
|
|
|
: "50,000FCFA" |
|
|
|
|
} |
|
|
|
|
</Text> |
|
|
|
@ -1890,4 +1931,9 @@ const styles = StyleSheet.create({
|
|
|
|
|
fontSize: fontSize(16), |
|
|
|
|
fontWeight: '600', |
|
|
|
|
}, |
|
|
|
|
productGroupDivider: { |
|
|
|
|
height: 5, |
|
|
|
|
backgroundColor: '#f0f0f0', |
|
|
|
|
width: '100%', |
|
|
|
|
}, |
|
|
|
|
}); |
|
|
|
|