|
|
@@ -1,200 +1,200 @@
|
|
|
-<!DOCTYPE html>
|
|
|
-<html lang="ko"
|
|
|
- xmlns:th="http://www.thymeleaf.org">
|
|
|
-<!--
|
|
|
- *******************************************************************************
|
|
|
- * @source : SettleConfirmForm.html
|
|
|
- * @desc : 정산확정관리 Page
|
|
|
- *============================================================================
|
|
|
- * STYLE24
|
|
|
- * Copyright(C) 2020 TSIT, All rights reserved.
|
|
|
- *============================================================================
|
|
|
- * VER DATE AUTHOR DESCRIPTION
|
|
|
- * === =========== ========== =============================================
|
|
|
- * 1.0 2020.10.26 gagamel 최초 작성
|
|
|
- *******************************************************************************
|
|
|
- -->
|
|
|
- <div id="main">
|
|
|
- <!-- 메인타이틀 영역 -->
|
|
|
- <div class="main-title">
|
|
|
- </div>
|
|
|
- <!-- //메인타이틀 영역 -->
|
|
|
-
|
|
|
- <!-- 메뉴 설명 -->
|
|
|
- <div class="infoBox menu-desc">
|
|
|
- </div>
|
|
|
- <!-- //메뉴 설명 -->
|
|
|
-
|
|
|
- <!-- 검색조건 영역 -->
|
|
|
- <div class="panelStyle">
|
|
|
- <form id="searchForm" name="searchForm" action="#" th:action="@{'/settle/confirm/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
|
|
|
- <table class="frmStyle" aria-describedby="검색조건">
|
|
|
- <colgroup>
|
|
|
- <col style="width:10%;"/>
|
|
|
- <col style="width:60%;"/>
|
|
|
- <col style="width:10%;"/>
|
|
|
- <col/>
|
|
|
- </colgroup>
|
|
|
- <tr>
|
|
|
- <th>출고기간<i class="required" title="필수" aria-hidden="true"></i></th>
|
|
|
- <td id="terms">
|
|
|
- </td>
|
|
|
- <th>유통구분</th>
|
|
|
- <td>
|
|
|
- <select name="distributionGb">
|
|
|
- <option value="">[전체]</option>
|
|
|
- <option th:if="${distributionGbList}" th:each="oneData, status : ${distributionGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
|
|
|
- </select>
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>공급업체/브랜드</th>
|
|
|
- <td colspan="3">
|
|
|
- <select name="supplyCompCd">
|
|
|
- <option value="">[전체]</option>
|
|
|
- <option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
|
|
|
- </select>
|
|
|
- /
|
|
|
- <select name="brandCd">
|
|
|
- <option value="">[전체]</option>
|
|
|
- </select>
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- </table>
|
|
|
-
|
|
|
- <ul class="panelBar">
|
|
|
- <li class="center">
|
|
|
- <button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
|
|
|
- <button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset();">초기화</button>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- </form>
|
|
|
- </div>
|
|
|
- <!-- 검색조건 영역 -->
|
|
|
-
|
|
|
- <!-- 리스트 영역 -->
|
|
|
- <div class="panelStyle">
|
|
|
- <!-- 버튼 배치 영역 -->
|
|
|
- <ul class="panelBar">
|
|
|
- <li class="right">
|
|
|
- <button type="button" class="btn btn-warning btn-lg" id="btnUpload">기타차감 엑셀업로드</button>
|
|
|
- <button type="button" class="btn btn-default btn-lg" id="btnExcel">세금계산서용 엑셀다운로드</button>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- <!-- //버튼 배치 영역 -->
|
|
|
-
|
|
|
- <div id="gridList" style="width: 100%; height: 570px" class="ag-theme-balham"></div>
|
|
|
- </div>
|
|
|
- <!-- //리스트 영역 -->
|
|
|
- </div>
|
|
|
-
|
|
|
-<script th:inline="javascript">
|
|
|
-/*<![CDATA[*/
|
|
|
- let supplyCompList = gagajf.convertToArray([[${supplyCompList}]]);
|
|
|
- let distributionGbList = gagajf.convertToArray([[${distributionGbList}]]);
|
|
|
- let bankList = gagajf.convertToArray([[${bankList}]]);
|
|
|
-
|
|
|
- let columnDefs = [
|
|
|
- {width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
|
|
|
- {
|
|
|
- headerName: "정산확정", field: "confirmYn", width: 100, cellClass: 'text-center',
|
|
|
- cellRenderer: function(params) {
|
|
|
- if (params.value == 'Y') {
|
|
|
- return '<button type="button" class="btn btn-success btn-sm">확정</button>';
|
|
|
- } else {
|
|
|
- return '<button type="button" class="btn btn-danger btn-sm">해제</button>';
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- headerName: "공급업체", field: "supplyCompCd", width: 100, cellClass: 'text-center',
|
|
|
- valueGetter: function (params) {
|
|
|
- return gagaAgGrid.lookupValue(supplyCompList, params.data.supplyCompCd);
|
|
|
- }
|
|
|
- },
|
|
|
- { headerName: "전자계약여부", field: "econtractYn", width: 100, cellClass: 'text-center' },
|
|
|
- { headerName: "사업자등록번호", field: "bizNo", width: 120, cellClass: 'text-center' },
|
|
|
- { headerName: "정산주기", field: "settleDay", width: 100, cellClass: 'text-center' },
|
|
|
- { headerName: "판매수량", field: "sellQty", width: 100, cellClass: 'text-center' },
|
|
|
- { headerName: "판매총액", field: "sellAmt", width: 100, cellClass: 'text-right' },
|
|
|
- { headerName: "수수료", field: "sellFeeAmt", width: 100, cellClass: 'text-right' },
|
|
|
- { headerName: "쿠폰할인금액", field: "cpnDcAmt", width: 100, cellClass: 'text-right' },
|
|
|
- { headerName: "자사쿠폰분담액", field: "selfCpnDcAmt", width: 120, cellClass: 'text-right' },
|
|
|
- { headerName: "입점쿠폰분담액", field: "supplyCompCpnDcAmt", width: 120, cellClass: 'text-right' },
|
|
|
- { headerName: "계산서발행금액", field: "billAmt", width: 120, cellClass: 'text-right' },
|
|
|
- { headerName: "공급가액", field: "supplyAmt", width: 100, cellClass: 'text-right' },
|
|
|
- { headerName: "세액", field: "taxAmt", width: 100, cellClass: 'text-right' },
|
|
|
- { headerName: "배송비", field: "delvFeeAmt", width: 100, cellClass: 'text-right' },
|
|
|
- {
|
|
|
- headerName: "기타차감", field: "etcDeductAmt", width: 100, cellClass: 'text-right',
|
|
|
- editable: true, cellEditor: 'numericCellEditor', cellEditorParams: { maxlength: 12, validType: 'integer' },
|
|
|
- cellRenderer: function(params) { return gagajf.isNull(params.value) ? 0 : params.value.addComma(); },
|
|
|
- cellStyle: { color: '#fffff', 'background-color': '#aaaaff' }
|
|
|
- },
|
|
|
- { headerName: "지급금액", field: "giveAmt", width: 100, cellClass: 'text-right' },
|
|
|
- {
|
|
|
- headerName: "미수금", field: "receivableAmt", width: 100, cellClass: 'text-right',
|
|
|
- editable: true, cellEditor: 'numericCellEditor', cellEditorParams: { maxlength: 12, validType: 'integer' },
|
|
|
- cellRenderer: function(params) { return gagajf.isNull(params.value) ? 0 : params.value.addComma(); },
|
|
|
- cellStyle: { color: '#fffff', 'background-color': '#aaaaff' }
|
|
|
- },
|
|
|
- { headerName: "총지급금액", field: "totGiveAmt", width: 100, cellClass: 'text-right' },
|
|
|
-
|
|
|
- {
|
|
|
- headerName: "상태", field: "settleStat", width: 100, cellClass: 'text-center',
|
|
|
- cellRenderer: function (params) {
|
|
|
- // 전자계약이 안 되어 있으면 "보류"
|
|
|
- // 전자계약은 되어 있으나 지급금액 < 0 이면 "미수금" 그 외는 "정상"
|
|
|
- if (params.data.econtractYn == 'N') {
|
|
|
- return '보류';
|
|
|
- }
|
|
|
-
|
|
|
- if (params.data.giveAmt < 0) {
|
|
|
- return '미수금';
|
|
|
- }
|
|
|
-
|
|
|
- return '정상';
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- headerName: "은행", field: "bankCd", width: 100, cellClass: 'text-center',
|
|
|
- valueGetter: function (params) {
|
|
|
- return gagaAgGrid.lookupValue(bankList, params.data.bankCd);
|
|
|
- }
|
|
|
- },
|
|
|
- { headerName: "계좌번호", field: "accountNo", width: 150, cellClass: 'text-center' },
|
|
|
- { headerName: "예금주명", field: "depositorNm", width: 100, cellClass: 'text-center' },
|
|
|
- { headerName: "계산서이메일", field: "billEmail", width: 100, cellClass: 'text-center' }
|
|
|
- ];
|
|
|
-
|
|
|
- let gridOptions = gagaAgGrid.getGridOptions(columnDefs);
|
|
|
-
|
|
|
- // 검색
|
|
|
- $('#btnSearch').on('click', function() {
|
|
|
- gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptions, '#searchForm');
|
|
|
- });
|
|
|
-
|
|
|
- // 세금계산서용 엑셀다운로드
|
|
|
- $('#btnExcel').on('click', function() {
|
|
|
- // DB 처리로 작업해야 함. 항목은 다음과 같음.
|
|
|
- // 작성일
|
|
|
- // 품목: "상품판매수수료"로 고정
|
|
|
- // 공급가액: ROUND(현금거래액 / 1.1)
|
|
|
- // 세액: 현금거래액 - 공급가액
|
|
|
- // 현금거래액: ROUND(수수료 - 자사쿠폰분담액). < 0인 경우 0으로 표기
|
|
|
- // 공급업체 / 사업자등록번호 / 대표자명 / 업태 / 업종 / 주소
|
|
|
- // 정산담당자 / 정산담당자연락처 / 계산서이메일
|
|
|
- // 세금계산서발행금액: ROUND(수수료 - 자사쿠폰분담액). < 0인 경우 0으로 표기
|
|
|
- });
|
|
|
-
|
|
|
- $(document).ready(function() {
|
|
|
- cfnCreateCalendar('#terms', 'startDt', 'endDt', true, '출고');
|
|
|
- $('.btnToday').trigger('click');
|
|
|
-
|
|
|
- // Create a agGrid
|
|
|
- gagaAgGrid.createGrid('gridList', gridOptions);
|
|
|
- });
|
|
|
-/*]]>*/
|
|
|
-</script>
|
|
|
-
|
|
|
-</html>
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="ko"
|
|
|
+ xmlns:th="http://www.thymeleaf.org">
|
|
|
+<!--
|
|
|
+ *******************************************************************************
|
|
|
+ * @source : SettleConfirmForm.html
|
|
|
+ * @desc : 정산확정관리 Page
|
|
|
+ *============================================================================
|
|
|
+ * STYLE24
|
|
|
+ * Copyright(C) 2020 TSIT, All rights reserved.
|
|
|
+ *============================================================================
|
|
|
+ * VER DATE AUTHOR DESCRIPTION
|
|
|
+ * === =========== ========== =============================================
|
|
|
+ * 1.0 2020.10.26 gagamel 최초 작성
|
|
|
+ *******************************************************************************
|
|
|
+ -->
|
|
|
+ <div id="main">
|
|
|
+ <!-- 메인타이틀 영역 -->
|
|
|
+ <div class="main-title">
|
|
|
+ </div>
|
|
|
+ <!-- //메인타이틀 영역 -->
|
|
|
+
|
|
|
+ <!-- 메뉴 설명 -->
|
|
|
+ <div class="infoBox menu-desc">
|
|
|
+ </div>
|
|
|
+ <!-- //메뉴 설명 -->
|
|
|
+
|
|
|
+ <!-- 검색조건 영역 -->
|
|
|
+ <div class="panelStyle">
|
|
|
+ <form id="searchForm" name="searchForm" action="#" th:action="@{'/settle/confirm/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
|
|
|
+ <table class="frmStyle" aria-describedby="검색조건">
|
|
|
+ <colgroup>
|
|
|
+ <col style="width:10%;"/>
|
|
|
+ <col style="width:60%;"/>
|
|
|
+ <col style="width:10%;"/>
|
|
|
+ <col/>
|
|
|
+ </colgroup>
|
|
|
+ <tr>
|
|
|
+ <th>매출기간<i class="required" title="필수" aria-hidden="true"></i></th>
|
|
|
+ <td id="terms">
|
|
|
+ </td>
|
|
|
+ <th>유통구분</th>
|
|
|
+ <td>
|
|
|
+ <select name="distributionGb">
|
|
|
+ <option value="">[전체]</option>
|
|
|
+ <option th:if="${distributionGbList}" th:each="oneData, status : ${distributionGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
|
|
|
+ </select>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>공급업체/브랜드</th>
|
|
|
+ <td colspan="3">
|
|
|
+ <select name="supplyCompCd">
|
|
|
+ <option value="">[전체]</option>
|
|
|
+ <option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
|
|
|
+ </select>
|
|
|
+ /
|
|
|
+ <select name="brandCd">
|
|
|
+ <option value="">[전체]</option>
|
|
|
+ </select>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+
|
|
|
+ <ul class="panelBar">
|
|
|
+ <li class="center">
|
|
|
+ <button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
|
|
|
+ <button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset();">초기화</button>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ <!-- 검색조건 영역 -->
|
|
|
+
|
|
|
+ <!-- 리스트 영역 -->
|
|
|
+ <div class="panelStyle">
|
|
|
+ <!-- 버튼 배치 영역 -->
|
|
|
+ <ul class="panelBar">
|
|
|
+ <li class="right">
|
|
|
+ <button type="button" class="btn btn-warning btn-lg" id="btnUpload">기타차감 엑셀업로드</button>
|
|
|
+ <button type="button" class="btn btn-default btn-lg" id="btnExcel">세금계산서용 엑셀다운로드</button>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <!-- //버튼 배치 영역 -->
|
|
|
+
|
|
|
+ <div id="gridList" style="width: 100%; height: 570px" class="ag-theme-balham"></div>
|
|
|
+ </div>
|
|
|
+ <!-- //리스트 영역 -->
|
|
|
+ </div>
|
|
|
+
|
|
|
+<script th:inline="javascript">
|
|
|
+/*<![CDATA[*/
|
|
|
+ let supplyCompList = gagajf.convertToArray([[${supplyCompList}]]);
|
|
|
+ let distributionGbList = gagajf.convertToArray([[${distributionGbList}]]);
|
|
|
+ let bankList = gagajf.convertToArray([[${bankList}]]);
|
|
|
+
|
|
|
+ let columnDefs = [
|
|
|
+ {width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
|
|
|
+ {
|
|
|
+ headerName: "정산확정", field: "confirmYn", width: 100, cellClass: 'text-center',
|
|
|
+ cellRenderer: function(params) {
|
|
|
+ if (params.value == 'Y') {
|
|
|
+ return '<button type="button" class="btn btn-success btn-sm">확정</button>';
|
|
|
+ } else {
|
|
|
+ return '<button type="button" class="btn btn-danger btn-sm">해제</button>';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ headerName: "공급업체", field: "supplyCompCd", width: 100, cellClass: 'text-center',
|
|
|
+ valueGetter: function (params) {
|
|
|
+ return gagaAgGrid.lookupValue(supplyCompList, params.data.supplyCompCd);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { headerName: "전자계약여부", field: "econtractYn", width: 100, cellClass: 'text-center' },
|
|
|
+ { headerName: "사업자등록번호", field: "bizNo", width: 120, cellClass: 'text-center' },
|
|
|
+ { headerName: "정산주기", field: "settleDay", width: 100, cellClass: 'text-center' },
|
|
|
+ { headerName: "판매수량", field: "sellQty", width: 100, cellClass: 'text-center' },
|
|
|
+ { headerName: "판매총액", field: "sellAmt", width: 100, cellClass: 'text-right' },
|
|
|
+ { headerName: "수수료", field: "sellFeeAmt", width: 100, cellClass: 'text-right' },
|
|
|
+ { headerName: "쿠폰할인금액", field: "cpnDcAmt", width: 100, cellClass: 'text-right' },
|
|
|
+ { headerName: "자사쿠폰분담액", field: "selfCpnDcAmt", width: 120, cellClass: 'text-right' },
|
|
|
+ { headerName: "입점쿠폰분담액", field: "supplyCompCpnDcAmt", width: 120, cellClass: 'text-right' },
|
|
|
+ { headerName: "계산서발행금액", field: "billAmt", width: 120, cellClass: 'text-right' },
|
|
|
+ { headerName: "공급가액", field: "supplyAmt", width: 100, cellClass: 'text-right' },
|
|
|
+ { headerName: "세액", field: "taxAmt", width: 100, cellClass: 'text-right' },
|
|
|
+ { headerName: "배송비", field: "delvFeeAmt", width: 100, cellClass: 'text-right' },
|
|
|
+ {
|
|
|
+ headerName: "기타차감", field: "etcDeductAmt", width: 100, cellClass: 'text-right',
|
|
|
+ editable: true, cellEditor: 'numericCellEditor', cellEditorParams: { maxlength: 12, validType: 'integer' },
|
|
|
+ cellRenderer: function(params) { return gagajf.isNull(params.value) ? 0 : params.value.addComma(); },
|
|
|
+ cellStyle: { color: '#fffff', 'background-color': '#aaaaff' }
|
|
|
+ },
|
|
|
+ { headerName: "지급금액", field: "giveAmt", width: 100, cellClass: 'text-right' },
|
|
|
+ {
|
|
|
+ headerName: "미수금", field: "receivableAmt", width: 100, cellClass: 'text-right',
|
|
|
+ editable: true, cellEditor: 'numericCellEditor', cellEditorParams: { maxlength: 12, validType: 'integer' },
|
|
|
+ cellRenderer: function(params) { return gagajf.isNull(params.value) ? 0 : params.value.addComma(); },
|
|
|
+ cellStyle: { color: '#fffff', 'background-color': '#aaaaff' }
|
|
|
+ },
|
|
|
+ { headerName: "총지급금액", field: "totGiveAmt", width: 100, cellClass: 'text-right' },
|
|
|
+
|
|
|
+ {
|
|
|
+ headerName: "상태", field: "settleStat", width: 100, cellClass: 'text-center',
|
|
|
+ cellRenderer: function (params) {
|
|
|
+ // 전자계약이 안 되어 있으면 "보류"
|
|
|
+ // 전자계약은 되어 있으나 지급금액 < 0 이면 "미수금" 그 외는 "정상"
|
|
|
+ if (params.data.econtractYn == 'N') {
|
|
|
+ return '보류';
|
|
|
+ }
|
|
|
+
|
|
|
+ if (params.data.giveAmt < 0) {
|
|
|
+ return '미수금';
|
|
|
+ }
|
|
|
+
|
|
|
+ return '정상';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ headerName: "은행", field: "bankCd", width: 100, cellClass: 'text-center',
|
|
|
+ valueGetter: function (params) {
|
|
|
+ return gagaAgGrid.lookupValue(bankList, params.data.bankCd);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { headerName: "계좌번호", field: "accountNo", width: 150, cellClass: 'text-center' },
|
|
|
+ { headerName: "예금주명", field: "depositorNm", width: 100, cellClass: 'text-center' },
|
|
|
+ { headerName: "계산서이메일", field: "billEmail", width: 100, cellClass: 'text-center' }
|
|
|
+ ];
|
|
|
+
|
|
|
+ let gridOptions = gagaAgGrid.getGridOptions(columnDefs);
|
|
|
+
|
|
|
+ // 검색
|
|
|
+ $('#btnSearch').on('click', function() {
|
|
|
+ gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptions, '#searchForm');
|
|
|
+ });
|
|
|
+
|
|
|
+ // 세금계산서용 엑셀다운로드
|
|
|
+ $('#btnExcel').on('click', function() {
|
|
|
+ // DB 처리로 작업해야 함. 항목은 다음과 같음.
|
|
|
+ // 작성일
|
|
|
+ // 품목: "상품판매수수료"로 고정
|
|
|
+ // 공급가액: ROUND(현금거래액 / 1.1)
|
|
|
+ // 세액: 현금거래액 - 공급가액
|
|
|
+ // 현금거래액: ROUND(수수료 - 자사쿠폰분담액). < 0인 경우 0으로 표기
|
|
|
+ // 공급업체 / 사업자등록번호 / 대표자명 / 업태 / 업종 / 주소
|
|
|
+ // 정산담당자 / 정산담당자연락처 / 계산서이메일
|
|
|
+ // 세금계산서발행금액: ROUND(수수료 - 자사쿠폰분담액). < 0인 경우 0으로 표기
|
|
|
+ });
|
|
|
+
|
|
|
+ $(document).ready(function() {
|
|
|
+ cfnCreateCalendar('#terms', 'startDt', 'endDt', true, '매출');
|
|
|
+ $('.btnToday').trigger('click');
|
|
|
+
|
|
|
+ // Create a agGrid
|
|
|
+ gagaAgGrid.createGrid('gridList', gridOptions);
|
|
|
+ });
|
|
|
+/*]]>*/
|
|
|
+</script>
|
|
|
+
|
|
|
+</html>
|