동일상품 여러개 주문 시 배송료 누적 계산(1)
This commit is contained in:
@@ -2158,6 +2158,9 @@ public class BOPurchsService {
|
||||
for (Map.Entry<BigInteger, List<DataMap>> dlvyGroupEtry : goodsByDlvyGroupMap.entrySet()) {
|
||||
int dlvyGroupInnb = dlvyGroupEtry.getKey().intValue();
|
||||
List<DataMap> goodsByDlvyGroupList = dlvyGroupEtry.getValue();
|
||||
log.debug("goodsByDlvyGroupList : {}", goodsByDlvyGroupList);
|
||||
// BigDecimal goodsQy = (BigDecimal) goodsByDlvyGroupList.get("qy");
|
||||
// log.debug("goodsByDlvyGroupList qy : {}", qy);
|
||||
|
||||
finalDlvyGroupInnb = dlvyGroupInnb;
|
||||
|
||||
@@ -2182,6 +2185,8 @@ public class BOPurchsService {
|
||||
|
||||
for (DataMap goodsMap : goodsByDlvyGroupList) {
|
||||
|
||||
BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량
|
||||
|
||||
// 금액 조건
|
||||
if ("Y".equals(amtCndUseAt)) {
|
||||
BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액
|
||||
@@ -2189,16 +2194,21 @@ public class BOPurchsService {
|
||||
|
||||
if (slepric.compareTo(amtCndAditAmt) > 0) {
|
||||
dlvyAmt = new BigDecimal(0);
|
||||
} else {
|
||||
//배송비 합(같은상품 수량당 배송비 책정)
|
||||
dlvyAmt = dlvyAmt.multiply(qy);
|
||||
}
|
||||
}
|
||||
|
||||
// 수량 조건
|
||||
if ("Y".equals(cntCndUseAt)) {
|
||||
BigDecimal cntCndAditAmt = (BigDecimal) shippingGrouping.get("cntCndAditAmt"); // 금액조건 추가금액
|
||||
BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량
|
||||
|
||||
if (qy.compareTo(cntCndAditAmt) > 0) {
|
||||
dlvyAmt = new BigDecimal(0);
|
||||
} else {
|
||||
//배송비 합(같은상품 수량당 배송비 책정)
|
||||
dlvyAmt = dlvyAmt.multiply(qy);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2258,7 +2268,16 @@ public class BOPurchsService {
|
||||
|
||||
} else if ("03".equals(dlvyGroupDvCd)) { // 유료배송
|
||||
|
||||
paidDlvyAmt = paidDlvyAmt.add(dlvyAmt); // 유료배송비 합
|
||||
BigDecimal goodsQy = new BigDecimal(0);
|
||||
// 유료배송비 합(같은상품 수량당 배송비 책정)
|
||||
for (DataMap goodsMap : goodsByDlvyGroupList) {
|
||||
goodsQy = (BigDecimal) goodsMap.get("qy");
|
||||
dlvyAmt = dlvyAmt.multiply(goodsQy);
|
||||
|
||||
paidDlvyAmt = paidDlvyAmt.add(dlvyAmt);
|
||||
}
|
||||
// 유료배송비 합(같은상품 묶음 처리)
|
||||
//paidDlvyAmt = paidDlvyAmt.add(dlvyAmt);
|
||||
|
||||
if (!StringUtils.isEmpty(dlvyAreaAditAt) && "Y".equals(dlvyAreaAditAt)) {
|
||||
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
|
||||
@@ -2281,7 +2300,7 @@ public class BOPurchsService {
|
||||
log.debug("@@@ 유료배송비 합 : {}", paidDlvyAmt);
|
||||
|
||||
dlvyAmtByDlvyGroupList.add(dlvyGroupMap); // 배송그룹별 배송비 목록
|
||||
}
|
||||
} // for
|
||||
|
||||
// TODO : 도서산간 추가배송비 정채 :: 무료일 경우 무조건 무료인지 추가배송비는 발생 시킬건지 정의 필요 ( 2024-10-01 )
|
||||
addFreeDlvyAmt = addFreeDlvyAmt.compareTo(addBundleDlvyAmtY) > 0 ? addFreeDlvyAmt : addBundleDlvyAmtY; // 무료배송 추가 배송비와 조건부 무료배송 묶음 O 의 추가 배송비 중 큰 배송비
|
||||
|
||||
@@ -3041,6 +3041,7 @@ public class BOOrdrService{
|
||||
LinkedHashMap<String, Object> enuriMap = (LinkedHashMap) param.get("enuri"); // 애누리 ( 장바구니 쿠폰, 마일리지, 애누리 )
|
||||
|
||||
List<LinkedHashMap> goodsList = (List<LinkedHashMap>) param.get("goodsList");
|
||||
log.debug("goodsList : {}", goodsList);
|
||||
|
||||
if (!CollectionUtils.isEmpty(goodsList)) {
|
||||
for (LinkedHashMap goods : goodsList) {
|
||||
|
||||
Reference in New Issue
Block a user