매출관리까지 한 작업 중간커밋

This commit is contained in:
leeheejin
2025-11-10 14:40:34 +09:00
parent 8b3c8b182c
commit 1530d643f2
8 changed files with 814 additions and 203 deletions

View File

@@ -258,9 +258,48 @@ public class SalesNcollectMgmtController {
// 기존 판매 정보 조회 후 환종(통화) 공통코드 세팅
Map<String, Object> saleInfo = null;
String salesCurrency = "";
if(paramMap.get("orderNo") != null && !paramMap.get("orderNo").equals("")) {
// contractObjId가 있으면 주문서 관리에서 넘어온 것 -> 수주 데이터 조회
if(paramMap.get("contractObjId") != null && !paramMap.get("contractObjId").equals("")) {
// 수주 데이터 조회 (CONTRACT_ITEM 테이블에서)
saleInfo = salesNcollectMgmtService.getOrderDataForSale(paramMap);
salesCurrency = CommonUtils.nullToEmpty((String)saleInfo.get("SALES_CURRENCY"));
request.setAttribute("saleInfo", saleInfo);
request.setAttribute("orderInfo", saleInfo);
}
// orderNo가 있으면 기존 판매 정보 조회
else if(paramMap.get("orderNo") != null && !paramMap.get("orderNo").equals("")) {
saleInfo = salesNcollectMgmtService.getSaleInfo(paramMap);
salesCurrency = CommonUtils.nullToEmpty((String)saleInfo.get("SALES_CURRENCY"));
// 판매 정보가 비어있거나 금액이 0이면 수주 데이터로 채우기
if(saleInfo == null ||
(saleInfo.get("SALES_SUPPLY_PRICE") == null ||
"0".equals(String.valueOf(saleInfo.get("SALES_SUPPLY_PRICE"))) ||
Integer.parseInt(String.valueOf(saleInfo.get("SALES_SUPPLY_PRICE"))) == 0)) {
// orderNo로 contractObjId 조회 후 수주 데이터 가져오기
Map<String, Object> orderDataParam = new HashMap<String, Object>();
orderDataParam.put("orderNo", paramMap.get("orderNo"));
Map<String, Object> orderData = salesNcollectMgmtService.getOrderDataByOrderNo(orderDataParam);
if(orderData != null && orderData.get("SALES_SUPPLY_PRICE") != null) {
// 수주 데이터를 saleInfo에 병합 (기존 S/N 등은 유지)
if(saleInfo == null) saleInfo = new HashMap<String, Object>();
saleInfo.put("SALES_QUANTITY", orderData.get("SALES_QUANTITY"));
saleInfo.put("SALES_UNIT_PRICE", orderData.get("SALES_UNIT_PRICE"));
saleInfo.put("SALES_SUPPLY_PRICE", orderData.get("SALES_SUPPLY_PRICE"));
saleInfo.put("SALES_VAT", orderData.get("SALES_VAT"));
saleInfo.put("SALES_TOTAL_AMOUNT", orderData.get("SALES_TOTAL_AMOUNT"));
saleInfo.put("SALES_CURRENCY", orderData.get("SALES_CURRENCY"));
saleInfo.put("SALES_CURRENCY_NAME", orderData.get("SALES_CURRENCY_NAME"));
saleInfo.put("SALES_EXCHANGE_RATE", orderData.get("SALES_EXCHANGE_RATE"));
if(saleInfo.get("SHIPPING_DATE") == null || "".equals(saleInfo.get("SHIPPING_DATE"))) {
saleInfo.put("SHIPPING_DATE", orderData.get("SHIPPING_DATE"));
}
salesCurrency = CommonUtils.nullToEmpty((String)orderData.get("SALES_CURRENCY"));
}
}
request.setAttribute("saleInfo", saleInfo);
// orderInfo로 견적 정보 전달 (saleInfo가 이미 모든 필요한 정보를 포함)