일단저장
This commit is contained in:
@@ -280,107 +280,64 @@ public class SalesNcollectMgmtController {
|
||||
request.setAttribute("saleInfo", saleInfo);
|
||||
request.setAttribute("orderInfo", saleInfo);
|
||||
}
|
||||
// orderNo가 있으면 기존 판매 정보 조회
|
||||
// orderNo가 있으면 판매 정보 조회
|
||||
else if(paramMap.get("orderNo") != null && !paramMap.get("orderNo").equals("")) {
|
||||
System.out.println("=== salesRegForm.do 파라미터 확인 ===");
|
||||
System.out.println("orderNo: " + paramMap.get("orderNo"));
|
||||
System.out.println("salesQuantity: " + paramMap.get("salesQuantity"));
|
||||
System.out.println("salesUnitPrice: " + paramMap.get("salesUnitPrice"));
|
||||
System.out.println("salesSupplyPrice: " + paramMap.get("salesSupplyPrice"));
|
||||
System.out.println("salesVat: " + paramMap.get("salesVat"));
|
||||
System.out.println("salesTotalAmount: " + paramMap.get("salesTotalAmount"));
|
||||
System.out.println("salesCurrency: " + paramMap.get("salesCurrency"));
|
||||
System.out.println("salesExchangeRate: " + paramMap.get("salesExchangeRate"));
|
||||
System.out.println("saleNo: " + paramMap.get("saleNo"));
|
||||
System.out.println("remainingQuantity: " + paramMap.get("remainingQuantity"));
|
||||
|
||||
saleInfo = salesNcollectMgmtService.getSaleInfo(paramMap);
|
||||
salesCurrency = CommonUtils.nullToEmpty((String)saleInfo.get("SALES_CURRENCY"));
|
||||
|
||||
System.out.println("=== DB에서 조회한 saleInfo ===");
|
||||
System.out.println("ORDER_QUANTITY: " + saleInfo.get("ORDER_QUANTITY"));
|
||||
System.out.println("SALES_QUANTITY: " + saleInfo.get("SALES_QUANTITY"));
|
||||
System.out.println("SALES_UNIT_PRICE: " + saleInfo.get("SALES_UNIT_PRICE"));
|
||||
System.out.println("SALES_SUPPLY_PRICE: " + saleInfo.get("SALES_SUPPLY_PRICE"));
|
||||
// saleNo가 있으면 기존 판매 데이터 수정 모드
|
||||
if(paramMap.get("saleNo") != null && !paramMap.get("saleNo").equals("")) {
|
||||
System.out.println("=== 기존 판매 데이터 수정 모드 ===");
|
||||
saleInfo = salesNcollectMgmtService.getSaleInfo(paramMap);
|
||||
salesCurrency = CommonUtils.nullToEmpty((String)saleInfo.get("SALES_CURRENCY"));
|
||||
|
||||
// URL 파라미터로 그리드 데이터가 전달된 경우 우선 사용
|
||||
if(paramMap.get("salesQuantity") != null && !paramMap.get("salesQuantity").equals("")) {
|
||||
System.out.println("=== URL 파라미터로 그리드 데이터 설정 ===");
|
||||
if(saleInfo == null) saleInfo = new HashMap<String, Object>();
|
||||
|
||||
saleInfo.put("SALES_UNIT_PRICE", paramMap.get("salesUnitPrice"));
|
||||
saleInfo.put("SALES_SUPPLY_PRICE", paramMap.get("salesSupplyPrice"));
|
||||
saleInfo.put("SALES_VAT", paramMap.get("salesVat"));
|
||||
saleInfo.put("SALES_TOTAL_AMOUNT", paramMap.get("salesTotalAmount"));
|
||||
if(paramMap.get("salesCurrency") != null) {
|
||||
saleInfo.put("SALES_CURRENCY", paramMap.get("salesCurrency"));
|
||||
salesCurrency = CommonUtils.nullToEmpty((String)paramMap.get("salesCurrency"));
|
||||
}
|
||||
if(paramMap.get("salesExchangeRate") != null) {
|
||||
saleInfo.put("SALES_EXCHANGE_RATE", paramMap.get("salesExchangeRate"));
|
||||
}
|
||||
System.out.println("설정 후 SALES_UNIT_PRICE: " + saleInfo.get("SALES_UNIT_PRICE"));
|
||||
System.out.println("설정 후 SALES_SUPPLY_PRICE: " + saleInfo.get("SALES_SUPPLY_PRICE"));
|
||||
System.out.println("설정 후 SALES_VAT: " + saleInfo.get("SALES_VAT"));
|
||||
System.out.println("설정 후 SALES_TOTAL_AMOUNT: " + saleInfo.get("SALES_TOTAL_AMOUNT"));
|
||||
System.out.println("=== DB에서 조회한 saleInfo ===");
|
||||
System.out.println("ORDER_QUANTITY: " + saleInfo.get("ORDER_QUANTITY"));
|
||||
System.out.println("SALES_QUANTITY: " + saleInfo.get("SALES_QUANTITY"));
|
||||
System.out.println("SALES_UNIT_PRICE: " + saleInfo.get("SALES_UNIT_PRICE"));
|
||||
System.out.println("SALES_SUPPLY_PRICE: " + saleInfo.get("SALES_SUPPLY_PRICE"));
|
||||
}
|
||||
// 판매 정보가 비어있거나 금액이 0이면 수주 데이터로 채우기
|
||||
else 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);
|
||||
// saleNo가 없으면 신규 판매 등록 모드 -> 수주 데이터만 조회
|
||||
else {
|
||||
System.out.println("=== 신규 판매 등록 모드 ===");
|
||||
Map<String, Object> orderDataParam = new HashMap<String, Object>();
|
||||
orderDataParam.put("orderNo", paramMap.get("orderNo"));
|
||||
saleInfo = salesNcollectMgmtService.getOrderDataByOrderNo(orderDataParam);
|
||||
|
||||
if(saleInfo != null) {
|
||||
salesCurrency = CommonUtils.nullToEmpty((String)saleInfo.get("SALES_CURRENCY"));
|
||||
// 수주 데이터의 SALES_QUANTITY를 ORDER_QUANTITY로 변경
|
||||
saleInfo.put("ORDER_QUANTITY", saleInfo.get("SALES_QUANTITY"));
|
||||
saleInfo.put("SALES_QUANTITY", ""); // 신규 등록이므로 판매수량은 비워둠
|
||||
|
||||
if(orderData != null && orderData.get("SALES_SUPPLY_PRICE") != null) {
|
||||
// 수주 데이터를 saleInfo에 병합 (기존 S/N 등은 유지)
|
||||
if(saleInfo == null) saleInfo = new HashMap<String, Object>();
|
||||
// SALES_QUANTITY는 나중에 잔량으로 계산하므로 여기서는 설정하지 않음
|
||||
// saleInfo.put("SALES_QUANTITY", orderData.get("SALES_QUANTITY")); // 제거
|
||||
saleInfo.put("ORDER_QUANTITY", orderData.get("SALES_QUANTITY")); // 주문수량은 ORDER_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"));
|
||||
System.out.println("=== 수주 데이터 조회 완료 ===");
|
||||
System.out.println("ORDER_QUANTITY: " + saleInfo.get("ORDER_QUANTITY"));
|
||||
System.out.println("SALES_QUANTITY: " + saleInfo.get("SALES_QUANTITY"));
|
||||
System.out.println("SALES_UNIT_PRICE: " + saleInfo.get("SALES_UNIT_PRICE"));
|
||||
System.out.println("SALES_SUPPLY_PRICE: " + saleInfo.get("SALES_SUPPLY_PRICE"));
|
||||
}
|
||||
}
|
||||
|
||||
// 신규 등록 모드에서는 이미 수주 데이터를 조회했으므로 추가 처리 불필요
|
||||
|
||||
// 잔량 계산: ORDER_QUANTITY - 모든 분할 출하의 합계
|
||||
if(saleInfo != null && saleInfo.get("ORDER_QUANTITY") != null) {
|
||||
int orderQuantity = Integer.parseInt(String.valueOf(saleInfo.get("ORDER_QUANTITY")).split("\\.")[0]);
|
||||
|
||||
// 모든 분할 출하의 합계 조회
|
||||
int totalSoldQuantity = 0;
|
||||
try {
|
||||
Map<String, Object> totalResult = salesNcollectMgmtService.getTotalSalesQuantity(paramMap);
|
||||
System.out.println("getTotalSalesQuantity 결과: " + totalResult);
|
||||
if(totalResult != null && totalResult.get("total") != null) {
|
||||
System.out.println("total 값: " + totalResult.get("total"));
|
||||
totalSoldQuantity = Integer.parseInt(String.valueOf(totalResult.get("total")).split("\\.")[0]);
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.out.println("getTotalSalesQuantity 에러 발생!");
|
||||
e.printStackTrace();
|
||||
// 잔량은 그리드에서 이미 계산되어 있으므로 별도 계산 불필요
|
||||
// URL 파라미터로 잔량이 전달된 경우 사용
|
||||
if(paramMap.get("remainingQuantity") != null && !paramMap.get("remainingQuantity").equals("")) {
|
||||
if(saleInfo == null) saleInfo = new HashMap<String, Object>();
|
||||
saleInfo.put("REMAINING_QUANTITY", paramMap.get("remainingQuantity"));
|
||||
System.out.println("=== 그리드에서 전달받은 잔량 ===");
|
||||
System.out.println("잔량 (REMAINING_QUANTITY): " + saleInfo.get("REMAINING_QUANTITY"));
|
||||
}
|
||||
|
||||
// 판매수량은 기존 값 유지 (이미 판매 등록된 경우) 또는 비워둠 (신규 등록)
|
||||
if(saleInfo != null) {
|
||||
if(saleInfo.get("SALES_QUANTITY") == null || saleInfo.get("SALES_QUANTITY").equals(0)) {
|
||||
saleInfo.put("SALES_QUANTITY", ""); // 신규 등록: 비워둠
|
||||
}
|
||||
|
||||
int remainingQuantity = orderQuantity - totalSoldQuantity;
|
||||
|
||||
System.out.println("=== 잔량 계산 ===");
|
||||
System.out.println("주문수량 (ORDER_QUANTITY): " + orderQuantity);
|
||||
System.out.println("총 판매 수량 (모든 분할 출하 합계): " + totalSoldQuantity);
|
||||
System.out.println("잔량 (remainingQuantity): " + remainingQuantity);
|
||||
|
||||
// 잔량을 판매수량으로 설정 (정수)
|
||||
saleInfo.put("SALES_QUANTITY", remainingQuantity > 0 ? remainingQuantity : orderQuantity);
|
||||
System.out.println("설정 후 SALES_QUANTITY: " + saleInfo.get("SALES_QUANTITY"));
|
||||
}
|
||||
System.out.println("판매수량 (SALES_QUANTITY): " + saleInfo.get("SALES_QUANTITY"));
|
||||
}
|
||||
|
||||
// 프로젝트의 모든 품목 조회 (Phase 2) - 주석처리: 품목은 하나만 존재
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user