Merge pull request '판매관리, 매출관리 업데이트' (#8) from V2025101701 into main
Reviewed-on: #8
This commit was merged in pull request #8.
This commit is contained in:
@@ -975,7 +975,6 @@
|
||||
/* INCOTERMS 필드 없음 - 검색 조건 무시 */
|
||||
</if>
|
||||
ORDER BY T.REGDATE DESC
|
||||
LIMIT #{COUNT_PER_PAGE} OFFSET #{PAGE_START}
|
||||
</select>
|
||||
|
||||
<!-- 매출관리 그리드 목록 개수 - project_mgmt 테이블 기반 -->
|
||||
|
||||
@@ -45,13 +45,11 @@
|
||||
//엔터키로 조회
|
||||
$("input").keyup(function(e){
|
||||
if(e.keyCode == 13){
|
||||
$("#page").val("1");
|
||||
fn_search();
|
||||
}
|
||||
});
|
||||
|
||||
$("#btnSearch").click(function(){
|
||||
$("#page").val("1");
|
||||
fn_search();
|
||||
});
|
||||
|
||||
@@ -183,7 +181,7 @@ var columns = [
|
||||
];
|
||||
|
||||
function fn_search(){
|
||||
// 그리드 조회 및 Total 합계 업데이트
|
||||
// 그리드 조회 및 Total 합계 업데이트를 위한 커스텀 AJAX
|
||||
$.ajax({
|
||||
url: "/revenueMgmt/revenueGridList.do",
|
||||
type: "POST",
|
||||
@@ -196,23 +194,23 @@ function fn_search(){
|
||||
_endLoading();
|
||||
},
|
||||
success: function(response) {
|
||||
console.log("Response:", response); // 디버깅용
|
||||
|
||||
// 그리드 데이터 설정
|
||||
if(_tabulGrid){
|
||||
_tabulGrid.setData(response.RESULTLIST || []);
|
||||
} else {
|
||||
// 그리드 초기화
|
||||
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/revenueMgmt/revenueGridList.do", columns, true);
|
||||
_tabulGrid = new Tabulator("#mainGrid", {
|
||||
layout: _tabul_layout_fitColumns,
|
||||
columns: columns,
|
||||
data: response.RESULTLIST || []
|
||||
});
|
||||
// 그리드 초기화 후 Excel 버튼 이벤트 등록
|
||||
fn_bindExcelButton();
|
||||
}
|
||||
|
||||
// Total 합계 업데이트 (소문자 키 사용)
|
||||
// Total 합계 업데이트
|
||||
if(response && response.TOTALS){
|
||||
var totals = response.TOTALS;
|
||||
console.log("Totals:", totals); // 디버깅용
|
||||
// PostgreSQL이 소문자로 반환하므로 소문자 키 사용
|
||||
var supplyPrice = totals.total_supply_price || totals.TOTAL_SUPPLY_PRICE || 0;
|
||||
var vat = totals.total_vat || totals.TOTAL_VAT || 0;
|
||||
var amount = totals.total_amount || totals.TOTAL_AMOUNT || 0;
|
||||
@@ -221,7 +219,6 @@ function fn_search(){
|
||||
$("#totalVat").text(Number(vat).toLocaleString());
|
||||
$("#totalAmount").text(Number(amount).toLocaleString());
|
||||
} else {
|
||||
console.log("No TOTALS in response"); // 디버깅용
|
||||
$("#totalSupplyPrice").text("0");
|
||||
$("#totalVat").text("0");
|
||||
$("#totalAmount").text("0");
|
||||
@@ -233,12 +230,10 @@ function fn_search(){
|
||||
}
|
||||
},
|
||||
error: function(jqxhr, status, error){
|
||||
console.error("Error:", jqxhr, status, error);
|
||||
_endLoading();
|
||||
alert("데이터 조회 중 오류가 발생했습니다.");
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
|
||||
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/revenueMgmt/revenueGridList.do", columns, true);
|
||||
}
|
||||
|
||||
function _fnc_datepick(){
|
||||
@@ -330,10 +325,10 @@ function fn_excel() {
|
||||
|
||||
function fn_FileRegist(objId, docType, docTypeName){
|
||||
var popup_width = 800;
|
||||
var popup_height = 350;
|
||||
var popup_height = 680;
|
||||
|
||||
var params = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName;
|
||||
var url = "/common/FileRegistPopup.do"+params;
|
||||
var url = "/contractMgmt/FileRegistPopup.do"+params;
|
||||
|
||||
fn_centerPopup(popup_width, popup_height, url);
|
||||
}
|
||||
@@ -347,9 +342,6 @@ function fn_FileRegist(objId, docType, docTypeName){
|
||||
|
||||
<form name="form1" id="form1" method="post">
|
||||
<input type="hidden" name="actionType" id="actionType">
|
||||
<input type="hidden" name="page" id="page" value="1">
|
||||
<input type="hidden" name="COUNT_PER_PAGE" id="COUNT_PER_PAGE" value="10">
|
||||
<input type="hidden" name="PAGE_START" id="PAGE_START" value="0">
|
||||
<div class="min_part_enroll">
|
||||
<div class="content-box">
|
||||
<div class="content-box-s">
|
||||
|
||||
@@ -18,18 +18,16 @@
|
||||
fnc_datepick(); // 날짜 선택기 초기화
|
||||
$('.select2').select2(); // select2 초기화
|
||||
|
||||
// 엔터키로 조회
|
||||
$("input").keyup(function(e){
|
||||
if(e.keyCode == 13){
|
||||
$("#page").val("1");
|
||||
fn_search();
|
||||
}
|
||||
});
|
||||
// 엔터키로 조회
|
||||
$("input").keyup(function(e){
|
||||
if(e.keyCode == 13){
|
||||
fn_search();
|
||||
}
|
||||
});
|
||||
|
||||
$("#btnSearch").click(function(){
|
||||
$("#page").val("1");
|
||||
fn_search();
|
||||
});
|
||||
$("#btnSearch").click(function(){
|
||||
fn_search();
|
||||
});
|
||||
|
||||
// 초기 데이터 조회
|
||||
fn_search();
|
||||
@@ -50,10 +48,10 @@
|
||||
|
||||
function fn_FileRegist(objId, docType, docTypeName){
|
||||
var popup_width = 800;
|
||||
var popup_height = 350;
|
||||
var popup_height = 680;
|
||||
|
||||
var params = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName;
|
||||
var url = "/common/FileRegistPopup.do"+params;
|
||||
var url = "/contractMgmt/FileRegistPopup.do"+params;
|
||||
|
||||
fn_centerPopup(popup_width, popup_height, url);
|
||||
}
|
||||
@@ -155,7 +153,6 @@ function fn_bulkRegister(){
|
||||
</head>
|
||||
<body>
|
||||
<form name="form1" id="form1" method="post">
|
||||
<input type="hidden" name="page" id="page" value="1">
|
||||
<input type="hidden" name="actionType" id="actionType">
|
||||
<div class="min_part_enroll">
|
||||
<div class="content-box">
|
||||
|
||||
@@ -139,10 +139,12 @@ function fnc_tabul_searchAjax(gridObj, searchURL, formId, hidePaging, checkValid
|
||||
return;
|
||||
}
|
||||
|
||||
var formData = $("#"+formId).serializeObject();
|
||||
|
||||
$.ajax({
|
||||
url: searchURL,
|
||||
type:"POST",
|
||||
data:$("#"+formId).serializeObject(),
|
||||
data:formData,
|
||||
dataType:"json",
|
||||
//async:false,
|
||||
beforeSend:function(){
|
||||
@@ -162,9 +164,8 @@ function fnc_tabul_searchAjax(gridObj, searchURL, formId, hidePaging, checkValid
|
||||
//console.log(data);
|
||||
},
|
||||
error: function(jqxhr, status, error){
|
||||
console.log(jqxhr);
|
||||
console.log(status);
|
||||
console.log(error);
|
||||
alert("데이터 조회 중 오류가 발생했습니다.");
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -175,14 +175,13 @@ public class SalesNcollectMgmtController {
|
||||
// 수주상태
|
||||
codeMap.put("orderStatusList",
|
||||
commonService.bizMakeOptionList("0000932", "", "common.getCodeselect"));
|
||||
// 출하대기 상태
|
||||
codeMap.put("shippingStatusList",
|
||||
salesMgmtCommonService.bizMakeOptionList("SH", "", "salesMgmtCommon.getCodeList"));
|
||||
// 담당자
|
||||
codeMap.put("managerList",
|
||||
salesMgmtCommonService.bizMakeOptionList("", "", "salesMgmtCommon.getSalesmanList"));
|
||||
|
||||
request.setAttribute("codeMap", codeMap);
|
||||
// 출하대기 상태
|
||||
codeMap.put("shippingStatusList",
|
||||
salesMgmtCommonService.bizMakeOptionList("SH", "", "salesMgmtCommon.getCodeList"));
|
||||
// 담당자
|
||||
codeMap.put("managerList", commonService.bizMakeOptionList("", "", "common.getUserselect"));
|
||||
|
||||
request.setAttribute("codeMap", codeMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -200,39 +199,27 @@ public class SalesNcollectMgmtController {
|
||||
@ResponseBody
|
||||
@RequestMapping(value = "/revenueMgmt/revenueGridList.do", method = RequestMethod.POST)
|
||||
public Map<String, Object> salesMgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
||||
Map<String, Object> resultMap = new HashMap<String, Object>();
|
||||
|
||||
try {
|
||||
System.out.println("===== revenueGridList.do 파라미터 =====");
|
||||
System.out.println("paramMap: " + paramMap);
|
||||
// commonService.selectListPagingNew를 사용하여 페이지네이션 처리
|
||||
commonService.selectListPagingNew("salesNcollectMgmt.getSalesMgmtGridList", request, paramMap);
|
||||
|
||||
List<Map<String, Object>> list = salesNcollectMgmtService.getSalesMgmtGridList(request, paramMap);
|
||||
int totalCount = salesNcollectMgmtService.getSalesMgmtGridListCount(paramMap);
|
||||
// Total 합계 조회 (기존 로직 유지)
|
||||
Map<String, Object> totals = salesNcollectMgmtService.getSalesMgmtTotals(paramMap);
|
||||
|
||||
System.out.println("list size: " + list.size());
|
||||
System.out.println("totalCount: " + totalCount);
|
||||
System.out.println("totals: " + totals);
|
||||
|
||||
resultMap.put("RESULTLIST", list);
|
||||
resultMap.put("last_page", (int) Math.ceil((double)totalCount / Integer.parseInt(CommonUtils.checkNull(request.getParameter("size"), "10"))));
|
||||
resultMap.put("TOTALS", totals); // Total 공급가액, 부가세, 총액
|
||||
paramMap.put("TOTALS", totals);
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
// Tabulator는 에러 발생 시 빈 배열을 기대합니다.
|
||||
resultMap.put("RESULTLIST", new java.util.ArrayList<>());
|
||||
resultMap.put("last_page", 0);
|
||||
// 에러 발생 시 빈 데이터 설정
|
||||
paramMap.put("RESULTLIST", new java.util.ArrayList<>());
|
||||
|
||||
// Total 초기화
|
||||
Map<String, Object> emptyTotals = new HashMap<String, Object>();
|
||||
|
||||
emptyTotals.put("TOTAL_SUPPLY_PRICE", 0);
|
||||
emptyTotals.put("TOTAL_VAT", 0);
|
||||
emptyTotals.put("TOTAL_AMOUNT", 0);
|
||||
resultMap.put("TOTALS", emptyTotals);
|
||||
paramMap.put("TOTALS", emptyTotals);
|
||||
}
|
||||
|
||||
return resultMap;
|
||||
return paramMap;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -264,8 +251,7 @@ public class SalesNcollectMgmtController {
|
||||
Map<String, Object> codeMap = new HashMap<String, Object>();
|
||||
|
||||
// 담당자
|
||||
codeMap.put("managerList",
|
||||
salesMgmtCommonService.bizMakeOptionList("", "", "salesMgmtCommon.getSalesmanList"));
|
||||
codeMap.put("managerList", commonService.bizMakeOptionList("", "", "common.getUserselect"));
|
||||
|
||||
// 기존 판매 정보 조회 후 환종(통화) 공통코드 세팅
|
||||
Map<String, Object> saleInfo = null;
|
||||
@@ -293,22 +279,9 @@ public class SalesNcollectMgmtController {
|
||||
@RequestMapping(value = "/salesMgmt/salesMgmtGridList.do", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public Map<String, Object> getSalesMgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
||||
Map<String, Object> resultMap = new HashMap<String, Object>();
|
||||
|
||||
try {
|
||||
List<Map<String, Object>> list = salesNcollectMgmtService.getSalesMgmtGridList(request, paramMap);
|
||||
int totalCount = salesNcollectMgmtService.getSalesMgmtGridListCount(paramMap);
|
||||
|
||||
resultMap.put("RESULTLIST", list);
|
||||
resultMap.put("last_page", (int) Math.ceil((double)totalCount / Integer.parseInt(CommonUtils.checkNull(request.getParameter("size"), "10"))));
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
// Tabulator는 에러 발생 시 빈 배열을 기대합니다.
|
||||
resultMap.put("RESULTLIST", new java.util.ArrayList<>());
|
||||
resultMap.put("last_page", 0);
|
||||
}
|
||||
|
||||
return resultMap;
|
||||
// commonService.selectListPagingNew를 사용하여 페이지네이션 HTML 생성
|
||||
commonService.selectListPagingNew("salesNcollectMgmt.getSalesMgmtGridList", request, paramMap);
|
||||
return paramMap;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/salesMgmt/saveSales.do", method = RequestMethod.POST)
|
||||
|
||||
@@ -975,7 +975,6 @@
|
||||
/* INCOTERMS 필드 없음 - 검색 조건 무시 */
|
||||
</if>
|
||||
ORDER BY T.REGDATE DESC
|
||||
LIMIT #{COUNT_PER_PAGE} OFFSET #{PAGE_START}
|
||||
</select>
|
||||
|
||||
<!-- 매출관리 그리드 목록 개수 - project_mgmt 테이블 기반 -->
|
||||
|
||||
@@ -2466,22 +2466,22 @@ public class CommonService extends BaseService {
|
||||
//qryList = new StringBuffer();
|
||||
selectListPaging2(sqlSession, log, sqlId, request, pageMap, query, resultList);
|
||||
|
||||
//결과 없으면 재검색 1번(240723 추가)
|
||||
if(TOTAL_CNT_INT > 0 && (resultList == null || resultList.isEmpty()) ) { //!isFirstRecursive &&
|
||||
pageMap.put("page", "1"); //1페이지 검색
|
||||
pageMap = CommonUtils.setPagingInfo(request, rowCnt); //reset
|
||||
//return selectListPagingAct(sqlId, request, paramMap, isNew, true);
|
||||
selectListPaging2(sqlSession, log, sqlId, request, pageMap, query, resultList);
|
||||
}
|
||||
|
||||
//#SET PAGE_HTML ///////////////////////////////////////////////////////
|
||||
String PAGE_HTML = "";
|
||||
if(isNew){
|
||||
PAGE_HTML = CommonUtils.getPageingHtml2(request, resultList, false, pageMap);
|
||||
}else{
|
||||
PAGE_HTML = CommonUtils.getPageingHtml(request, resultList, false);
|
||||
}
|
||||
paramMap.put("PAGE_HTML", PAGE_HTML);
|
||||
//결과 없으면 재검색 1번(240723 추가)
|
||||
if(TOTAL_CNT_INT > 0 && (resultList == null || resultList.isEmpty()) ) { //!isFirstRecursive &&
|
||||
pageMap.put("page", "1"); //1페이지 검색
|
||||
pageMap = CommonUtils.setPagingInfo(request, rowCnt); //reset
|
||||
//return selectListPagingAct(sqlId, request, paramMap, isNew, true);
|
||||
selectListPaging2(sqlSession, log, sqlId, request, pageMap, query, resultList);
|
||||
}
|
||||
|
||||
//#SET PAGE_HTML ///////////////////////////////////////////////////////
|
||||
String PAGE_HTML = "";
|
||||
if(isNew){
|
||||
PAGE_HTML = CommonUtils.getPageingHtml2(request, resultList, false, pageMap);
|
||||
}else{
|
||||
PAGE_HTML = CommonUtils.getPageingHtml(request, resultList, false);
|
||||
}
|
||||
paramMap.put("PAGE_HTML", PAGE_HTML);
|
||||
request.setAttribute("PAGE_HTML" , PAGE_HTML);
|
||||
} catch (SQLException e) {
|
||||
// TODO Auto-generated catch block
|
||||
|
||||
Reference in New Issue
Block a user