|
|
@@ -0,0 +1,544 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="ko"
|
|
|
+ xmlns:th="http://www.thymeleaf.org">
|
|
|
+<!--
|
|
|
+ *******************************************************************************
|
|
|
+ * @source : goodsDealForm.html
|
|
|
+ * @desc : 딜상상품 구성 관리
|
|
|
+ *============================================================================
|
|
|
+ * SISUN
|
|
|
+ * Copyright(C) 2019 TSIT, All rights reserved.
|
|
|
+ *============================================================================
|
|
|
+ * VER DATE AUTHOR DESCRIPTION
|
|
|
+ * === =========== ========== =============================================
|
|
|
+ * 1.0 2020.10.29 eskim 최초 작성
|
|
|
+ *******************************************************************************
|
|
|
+ -->
|
|
|
+ <div class="modalPopup" data-width="1100" >
|
|
|
+ <div class="panelStyle">
|
|
|
+ <div class="panelTitle">
|
|
|
+ <h2>딜 상품 구성</h2>
|
|
|
+ <button type="button" class="close" onclick="fngoodsDealFormClose()"><i class="fa fa-times"></i></button>
|
|
|
+ </div>
|
|
|
+ <div class="panelContent">
|
|
|
+ <ul class="notice">
|
|
|
+ <li>구성상품 등록시 기본값
|
|
|
+ <!-- 아이콘 툴팁 -->
|
|
|
+ <div class="iconTooltip">
|
|
|
+ <i class="fa fa-info" aria-hidden="true"></i>
|
|
|
+ <span class="left" style="width:400px; text-align:left;">
|
|
|
+ - 상품상태 : 정보부족<br/>
|
|
|
+ - 정상가 : 판매가 입력값<br/>
|
|
|
+ - 브랜드코드 : 구성상품의 기준여부 'Y'상품의 브랜드코드<br/>
|
|
|
+ - 품목코드 : 구성상품의 기준여부 'Y'상품의 품목코드<br/>
|
|
|
+ - 포인트 : 구성상품의 기준여부 'Y'상품의 브랜드 포인트<br/>
|
|
|
+ - 기본배송비 : 구성상품의 기준여부 'Y'상품의 브랜드 기본배송비<br/>
|
|
|
+ - 무료배송비기준 : 구성상품의 기준여부 'Y'상품의 브랜드 무료배송비기준<br/>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <!-- //아이콘 툴팁 -->
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <form id="goodsDealForm" name="goodsDealForm" th:method="post">
|
|
|
+ <input type="hidden" id="compsGoodsList" name="compsGoodsList" />
|
|
|
+ <table class="frmStyle">
|
|
|
+ <colgroup>
|
|
|
+ <col width="10%"/>
|
|
|
+ <col/>
|
|
|
+ <col width="10%"/>
|
|
|
+ <col width="23%"/>
|
|
|
+ <col width="10%"/>
|
|
|
+ <col width="23%"/>
|
|
|
+ </colgroup>
|
|
|
+ <tr>
|
|
|
+ <th>상품명<i class="star"></i></th>
|
|
|
+ <td><input type="text" id="goodsNm" name="goodsNm" maxlength="60"/></td>
|
|
|
+ <th>판매가<i class="star"></i></th>
|
|
|
+ <td><input type="text" class="w100" id="currPrice" name="currPrice" maxlength="8" data-valid-type="numeric"/></td>
|
|
|
+ <th>자사노출여부<i class="star"></i></th>
|
|
|
+ <td><label class="rdoBtn"><input type="radio" name="selfMallYn" id="selfMallYnY" value="Y" checked/>Y</label>
|
|
|
+ <label class="rdoBtn"><input type="radio" name="selfMallYn" id="selfMallYnN" value="N"/>N</label>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>년도/시즌<i class="star"></i></th>
|
|
|
+ <td colspan="3"><select name="styleYear" id="styleYear">
|
|
|
+ <option value="">[전체]</option>
|
|
|
+ <option th:if="${styleYearList}" th:each="oneData, status : ${styleYearList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
|
|
|
+ </select>
|
|
|
+ <select name="seasonCd" id="seasonCd">
|
|
|
+ <option value="">[전체]</option>
|
|
|
+ <option th:if="${seasonList}" th:each="oneData, status : ${seasonList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
|
|
|
+ </select>
|
|
|
+ </td>
|
|
|
+ <th>성별<i class="star"></i></th>
|
|
|
+ <td><select name="sexGb" id="sexGb">
|
|
|
+ <option value="">[전체]</option>
|
|
|
+ <option th:if="${sexGbList}" th:each="oneData, status : ${sexGbList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
|
|
|
+ </select>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>색상<i class="star"></i></th>
|
|
|
+ <td >
|
|
|
+ <select name="colorCd" id="colorCd">
|
|
|
+ <option value="">[전체]</option>
|
|
|
+ <option th:if="${colorCdList}" th:each="oneData, status : ${colorCdList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
|
|
|
+ </select>
|
|
|
+ </td>
|
|
|
+ <th>원산지<i class="star"></i></th>
|
|
|
+ <td><input type="text" class="w100" id="makeNm" name="makeNm" maxlength="20" /></td>
|
|
|
+ <th>제조년월일<i class="star"></i></th>
|
|
|
+ <td><input type="text" class="w100" id="makeYmd" name="makeYmd" maxlength="8" data-valid-type="date"/></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>제조년월일<i class="star"></i></th>
|
|
|
+ <td colspan="5"><input type="text" class="w100" id="makeYmd" name="makeYmd" maxlength="8" data-valid-type="date"/></td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ </table>
|
|
|
+ <div class="padT15 padB15">
|
|
|
+ <button type="button" class="btn btn-danger btn-lg" onclick="fnGoodsDealDeleteRow();">행삭제</button>
|
|
|
+ <button type="button" class="btn btnRight btn-base btn-lg" onclick="fnOpenGoodsDealPopup();">구상상품추가</button>
|
|
|
+ <button type="button" class="btn btnRight btn-success btn-lg" id="btnGoodsDealSearchExcel" >엑셀조회</button>
|
|
|
+ <button type="button" class="btn btnRight btn-default btn-lg" onclick="cfnDownloadSampleFile('SF003');">상품엑셀조회 양식 다운로드</button>
|
|
|
+ </div>
|
|
|
+ <div id="gridGoodsDealList" style="height: 450px;" class="ag-theme-balham lh60"></div>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ <ul class="panelBar">
|
|
|
+ <th:block th:if="${sessionInfo.roleCd == '0000' OR sessionInfo.roleCd == 'A000' OR sessionInfo.roleCd == 'A101' OR sessionInfo.roleCd == 'A100' OR sessionInfo.roleCd == 'A001'}">
|
|
|
+ <button type="button" class="btn btnRight btn-success btn-lg" id="btnGoodsDealSave">저장</button>
|
|
|
+ </th:block>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+<script th:inline="javascript">
|
|
|
+/*<![CDATA[*/
|
|
|
+ var useYnList = gagajf.convertToArray([[${useYnList}]]);
|
|
|
+ var goodsStatList = gagajf.convertToArray([[${goodsStatList}]]);
|
|
|
+ // specify the columns
|
|
|
+ var columnGoodsDealDefs = [
|
|
|
+ {width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
|
|
|
+ {headerName: "정렬", field: "dispOrd", width: 70 ,hide: false, cellClass: 'text-center', rowDrag: true },
|
|
|
+ //{headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
|
|
|
+ {headerName: "이미지", field: "imgPath1", width: 100, height: 60, cellClass: 'text-center'
|
|
|
+ ,cellRenderer: function(params) {
|
|
|
+ if (params.data.imgType == "A"){
|
|
|
+ if(!gagajf.isNull(params.data.imgPath6)){
|
|
|
+ return '<img width="60" src="'+ uploadGoodsUrl+params.data.imgPath6.replace("/1000/","/100/") + '" alt="" onerror="this.src=\'/image/no.gif\';"/>';
|
|
|
+ }else{
|
|
|
+ return '<img width="60" src="'+ uploadGoodsUrl+params.value.replace("/1000/","/100/") + '" alt="" onerror="this.src=\'/image/no.gif\';"/>';
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if(!gagajf.isNull(params.data.imgPath6)){
|
|
|
+ return '<img width="60" src="'+ params.data.imgPath1 + '" alt="" onerror="this.src=\'/image/no.gif\';"/>';
|
|
|
+ }else{
|
|
|
+ return '<img width="60" src="'+ params.value + '" alt="" onerror="this.src=\'/image/no.gif\';"/>';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {headerName: "구성상품코드", field: "compsGoodsCd" , width: 130, cellClass: 'text-center'},
|
|
|
+ {headerName: "옵션명", field: "compsGoodsOptNm" , width: 250, cellClass: 'text-left',editable: true, required: true},
|
|
|
+ {headerName: "판매가", field: "currPrice" , width: 100, cellClass: 'text-center'},
|
|
|
+ {headerName: "기준여부(품목/전시카테)", field: "baseYn" , width: 180, cellClass: 'text-center',editable: true, required: true,
|
|
|
+ cellEditor: 'agRichSelectCellEditor',
|
|
|
+ cellEditorParams: { values: gagaAgGrid.extractValues(useYnList) },
|
|
|
+ valueFormatter: function (params) { return gagaAgGrid.lookupValue(useYnList, params.value); },
|
|
|
+ valueParser: function (params) { return gagaAgGrid.lookupKey(useYnList, params.newValue); }
|
|
|
+ },
|
|
|
+ {headerName: "전시여부", field: "useYn" , width: 90, cellClass: 'text-center',editable: true, required: true,
|
|
|
+ cellEditor: 'agRichSelectCellEditor',
|
|
|
+ cellEditorParams: { values: gagaAgGrid.extractValues(useYnList) },
|
|
|
+ valueFormatter: function (params) { return gagaAgGrid.lookupValue(useYnList, params.value); },
|
|
|
+ valueParser: function (params) { return gagaAgGrid.lookupKey(useYnList, params.newValue); }
|
|
|
+ },
|
|
|
+ {headerName: "상품상태", field: "goodsStat" , width: 100, cellClass: 'text-center',
|
|
|
+ cellEditorParams: { values: gagaAgGrid.extractValues(goodsStatList) },
|
|
|
+ valueFormatter: function (params) { return gagaAgGrid.lookupValue(goodsStatList, params.value); },
|
|
|
+ valueParser: function (params) { return gagaAgGrid.lookupKey(goodsStatList, params.newValue); }
|
|
|
+ },
|
|
|
+ {headerName: "수량", field: "qty" , width: 80, cellClass: 'text-right',hide:true}
|
|
|
+ /* {headerName: "등록일자", field: "regDt", width: 150, cellClass: 'text-center' ,
|
|
|
+ cellRenderer: function(params) {
|
|
|
+ return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmm").format("YYYY-MM-DD HH:mm") : '';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {headerName: "등록자", field: "regId", width: 100, cellClass: 'text-center'},
|
|
|
+ {headerName: "수정일자", field: "regDt", width: 150, cellClass: 'text-center' ,
|
|
|
+ cellRenderer: function(params) {
|
|
|
+ return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmm").format("YYYY-MM-DD HH:mm") : '';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {headerName: "수정자", field: "regId", width: 100, cellClass: 'text-center'} */
|
|
|
+ ];
|
|
|
+
|
|
|
+ // Get GridOptions
|
|
|
+ var gridGoodsDealOptions = gagaAgGrid.getGridOptions(columnGoodsDealDefs);
|
|
|
+ gridGoodsDealOptions.rowSelection = 'multiple';
|
|
|
+ gridGoodsDealOptions.suppressRowClickSelection = true;
|
|
|
+
|
|
|
+ // 드래그
|
|
|
+ gridGoodsDealOptions.rowDragManaged = true;
|
|
|
+ gridGoodsDealOptions.rowHeight = 60; //이미지가 있을경우 높이 지정해야함.
|
|
|
+
|
|
|
+ //기준여부 표시
|
|
|
+ gridGoodsDealOptions.getRowStyle = function(params) {
|
|
|
+ if ("Y" == params.data.baseYn) {
|
|
|
+ return { background: '#1ab394' };
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Row
|
|
|
+ gridGoodsDealOptions.onCellValueChanged = function(event) {
|
|
|
+ var rowIdx = null;
|
|
|
+ var isChangColor = true;
|
|
|
+ if (event.colDef.field == "baseYn"){
|
|
|
+ if (event.data.baseYn == "Y"){
|
|
|
+ rowIdx = event.rowIndex;
|
|
|
+
|
|
|
+ //다른 기준여부 'Y'가 존재하는지 확인
|
|
|
+ gridGoodsDealOptions.api.forEachNode(function(rowNode, index) {
|
|
|
+ if (rowNode.data.baseYn == "Y" && index != rowIdx){
|
|
|
+ event.data.baseYn = event.oldValue;
|
|
|
+ gridGoodsDealOptions.api.updateRowData({update: [event.data]});
|
|
|
+ isChangColor = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if (!isChangColor){
|
|
|
+ mcxDialog.alert('다른 구성상품에 기준여부가 선택되어 있습니다.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //창종료
|
|
|
+ var fngoodsDealFormClose = function(){
|
|
|
+ uifnPopupClose('popupGoodsDeal');
|
|
|
+ }
|
|
|
+
|
|
|
+ $(document).ready(function() {
|
|
|
+ gagaAgGrid.createGrid('gridGoodsDealList', gridGoodsDealOptions);
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ var fnOpenGoodsDealPopup = function() {
|
|
|
+ cfnOpenGoodsPopup('fnCreateGoodsDeal');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 상품추가
|
|
|
+ var fnCreateGoodsDeal = function(goodsData) {
|
|
|
+ if (goodsData.length < 1) return;
|
|
|
+
|
|
|
+ // 기존상품
|
|
|
+ var oldGoodsDealList = gagaAgGrid.getAllRowData(gridGoodsDealOptions);
|
|
|
+ var idx = oldGoodsDealList.length+1;
|
|
|
+
|
|
|
+ var isExist = false;
|
|
|
+ goodsData.forEach(function(goods){
|
|
|
+ isExist = false;
|
|
|
+
|
|
|
+ gridGoodsDealOptions.api.forEachNode(function(rowNode, index) {
|
|
|
+ if (goods.goodsCd == rowNode.data.compsGoodsCd){
|
|
|
+ isExist = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (goods.goodsType != 'N'){
|
|
|
+ isExist = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!isExist){
|
|
|
+ var data = {
|
|
|
+ compsGoodsCd: goods.goodsCd
|
|
|
+ , goodsType: 'D'
|
|
|
+ , dispOrd: idx
|
|
|
+ , qty: 1
|
|
|
+ , compsCurrPrice: goods.currPrice
|
|
|
+ , compsStaffCurrPrice: goods.currPrice
|
|
|
+ , baseYn: 'N'
|
|
|
+ , goodsStat : goods.goodsStat
|
|
|
+ , useYn: 'Y'
|
|
|
+ , compsGoodsOptNm : goods.goodsNm
|
|
|
+ , currPrice : goods.currPrice
|
|
|
+ , selfGoodsYn : goods.selfGoodsYn
|
|
|
+ , imgType : goods.imgType
|
|
|
+ , imgPath1 : goods.imgPath1
|
|
|
+ , imgPath6 : goods.imgPath6
|
|
|
+ };
|
|
|
+ //그리드 마지막에 추가해야함
|
|
|
+ gridGoodsDealOptions.api.updateRowData({add: [data], addIndex: idx});
|
|
|
+
|
|
|
+ idx++;
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ gridGoodsDealOptions.api.refreshCells();
|
|
|
+ }
|
|
|
+
|
|
|
+ //엑셀 상품 조회
|
|
|
+ $('#btnGoodsDealSearchExcel').on('click', function() {
|
|
|
+ cfnExcelUploadPopup('goodsDealExcelUpload', 'goodsDealExcelUpload');
|
|
|
+ });
|
|
|
+
|
|
|
+ var goodsDealExcelUpload = function(result){
|
|
|
+ var data = {procJob : result.procJob
|
|
|
+ ,excelFileNm : result.excelFileNm
|
|
|
+ };
|
|
|
+ var jsonData = JSON.stringify(data);
|
|
|
+ gagajf.ajaxJsonSubmit('/goods/search/excelupload/save', jsonData, fnGoodsDealExcelUploadCallBack);
|
|
|
+ }
|
|
|
+
|
|
|
+ var fnGoodsDealExcelUploadCallBack = function(result){
|
|
|
+ gagajf.ajaxJsonSubmit('/goods/excel/upload/goods/list', '', fnExcelSearchCallBack);
|
|
|
+ }
|
|
|
+
|
|
|
+ var fnExcelSearchCallBack = function(result){
|
|
|
+ fnCreateGoodsDeal(result.goodsExcelList);
|
|
|
+ }
|
|
|
+ // 저장클릭시
|
|
|
+ $('#btnGoodsDealSave').on('click', function() {
|
|
|
+
|
|
|
+ if(!fnGoodsDealConditionCheck()) return;
|
|
|
+
|
|
|
+ mcxDialog.confirm('딜상품을 등록 하시겠습니까?', {
|
|
|
+ cancelBtnText: "취소",
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function(){
|
|
|
+ var compsGoodsList = gagaAgGrid.getAllRowData(gridGoodsDealOptions);
|
|
|
+ $("#goodsDealForm input[name=compsGoodsList]").val(JSON.stringify(compsGoodsList));
|
|
|
+ gagajf.ajaxFormSubmit("/goods/deal/save", "#goodsDealForm", fngoodsDealFormClose);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ //저장 조건 확인
|
|
|
+ var fnGoodsDealConditionCheck = function(){
|
|
|
+ var optCheck = false;
|
|
|
+
|
|
|
+ if(gagajf.isNull($("#goodsDealForm input[name=goodsNm]").val())){
|
|
|
+ mcxDialog.alertC('상품명을 입력해 주세요.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm input[name=goodsNm]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(gagajf.isNull($("#goodsDealForm input[name=currPrice]").val())){
|
|
|
+ mcxDialog.alertC('판매가를 입력해 주세요.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm input[name=currPrice]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(Number($("#goodsDealForm input[name=currPrice]").val()) <= 0){
|
|
|
+ mcxDialog.alertC('판매가를 바르게 입력해 주세요.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm input[name=currPrice]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(gagajf.isNull($("#goodsDealForm select[name=colorCd]").val())){
|
|
|
+ mcxDialog.alertC('색상을 입력해 주세요.<br/>기준여부를 선택하시면<br/>해당브랜드의 색상을 노출합니다.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm select[name=colorCd]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (gagajf.isNull($("#goodsDealForm input[name=selfMallYn]").val())){
|
|
|
+ mcxDialog.alertC('자사노출여부를 선택해 주세요.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm input[name=selfMallYn]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(gagajf.isNull($("#goodsDealForm select[name=styleYear]").val())){
|
|
|
+ mcxDialog.alertC('년도을 선택해 주세요.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm select[name=styleYear]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(gagajf.isNull($("#goodsDealForm select[name=seasonCd]").val())){
|
|
|
+ mcxDialog.alertC('시즌을 선택해주세요.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm select[name=seasonCd]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(gagajf.isNull($("#goodsDealForm select[name=sexGb]").val())){
|
|
|
+ mcxDialog.alertC('성별을 선택해주세요.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm select[name=sexGb]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(gagajf.isNull($("#goodsDealForm input[name=makeNm]").val())){
|
|
|
+ mcxDialog.alertC('원산지를 입력해 주세요.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm input[name=makeNm]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ var makeYmd = $("#goodsDealForm input[name=makeYmd]").val();
|
|
|
+
|
|
|
+ if(gagajf.isNull(makeYmd)){
|
|
|
+ mcxDialog.alertC('제조년월일를 입력해 주세요.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm input[name=makeYmd]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(makeYmd.length < 8){
|
|
|
+ mcxDialog.alertC('제조년월일를 바르게 주세요.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm input[name=makeYmd]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isNaN(Date.parse(makeYmd.substr(0, 4) +'-'+ makeYmd.substr(4, 2) +'-'+ makeYmd.substr(6, 2)))){
|
|
|
+ mcxDialog.alertC('날짜형식이 아닙니다.', {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ $("#goodsDealForm input[name=makeYmd]").focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ var allData = gagaAgGrid.getAllRowData(gridGoodsDealOptions);
|
|
|
+ // Validation
|
|
|
+ if (!gagaAgGrid.validation(gridGoodsDealOptions, allData))
|
|
|
+ return false;
|
|
|
+
|
|
|
+ var comSupplyCompCd = '';
|
|
|
+ var comSelfGoodsYn = '';
|
|
|
+ //기준여부 Y 존재하는지 확인
|
|
|
+ var checkBaseYn = false;
|
|
|
+ optCheck = false;
|
|
|
+ $.each(allData, function(index, item) {
|
|
|
+ if (index == 0){
|
|
|
+ comSelfGoodsYn = item.selfGoodsYn;
|
|
|
+ comSupplyCompCd = item.supplyCompCd;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (item.baseYn == "Y"){
|
|
|
+ checkBaseYn = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(item.goodsStat != "90"){
|
|
|
+ optCheck = true;
|
|
|
+ mcxDialog.alertC("상품상태를 확인해 주세요.", {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ gridGoodsDealOptions.api.setFocusedCell(index, "goodsStat", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(Number(item.qty) <= 0){
|
|
|
+ optCheck = true;
|
|
|
+ mcxDialog.alertC("수량을 입력해 주세요.", {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ gridGoodsDealOptions.api.setFocusedCell(index, "qty", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (comSelfGoodsYn != item.selfGoodsYn){
|
|
|
+ optCheck = true;
|
|
|
+ mcxDialog.alertC("구상상품중 자사/입점상품 구분값이 다릅니다.\n확인해 주세요", {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ gridGoodsDealOptions.api.setFocusedCell(index, "goodsCd", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }else{
|
|
|
+ if (comSelfGoodsYn == "N" && (comSupplyCompCd != item.supplyCompCd)){
|
|
|
+ optCheck = true;
|
|
|
+ mcxDialog.alertC("구상상품중 입점은 같은 업체 상품만 가능합니다.\n확인해 주세요", {
|
|
|
+ sureBtnText: "확인",
|
|
|
+ sureBtnClick: function() {
|
|
|
+ gridGoodsDealOptions.api.setFocusedCell(index, "goodsCd", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ if(optCheck) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!checkBaseYn){
|
|
|
+ mcxDialog.alert('구성상품중 기준여부를 선택해 주세요.');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ //상품삭제
|
|
|
+ var fnGoodsDealDeleteRow = function() {
|
|
|
+ var selectedData = gagaAgGrid.selectedRowData(gridGoodsDealOptions);
|
|
|
+
|
|
|
+ if (selectedData.length == 0) {
|
|
|
+ mcxDialog.alert('선택된 행이 없습니다.');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ var iTotalCnt = 0;
|
|
|
+ var iCnt = 0;
|
|
|
+ $.each(selectedData, function(index, item) {
|
|
|
+ iTotalCnt ++;
|
|
|
+ if (item.crud == "C"){
|
|
|
+ gridGoodsDealOptions.api.updateRowData({remove: [item]});
|
|
|
+ iCnt ++;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+/*]]>*/
|
|
|
+</script>
|
|
|
+</html>
|