GoodsWmsIncomelotForm.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. <!DOCTYPE html>
  2. <html lang="ko"
  3. xmlns:th="http://www.thymeleaf.org">
  4. <!--
  5. *******************************************************************************
  6. * @source : GoodsWmsIncomelotForm.html
  7. * @desc : WMS입고상품관리 화면
  8. *============================================================================
  9. * SISUN
  10. * Copyright(C) 2020 TSIT, All rights reserved.
  11. *============================================================================
  12. * VER DATE AUTHOR DESCRIPTION
  13. * === =========== ========== =============================================
  14. * 1.0 2020.11.18 eskim 최초 작성
  15. *******************************************************************************
  16. -->
  17. <div id="main">
  18. <!-- 메인타이틀 영역 -->
  19. <div class="main-title">
  20. </div>
  21. <!-- //메인타이틀 영역 -->
  22. <!-- 메뉴 설명 -->
  23. <div class="infoBox menu-desc">
  24. </div>
  25. <form id="goodsUnregisterListForm" name="goodsUnregisterListForm" action="#" th:action="@{'/goods/wms/incomelot/list'}">
  26. <input type="hidden" id="searchGb" name="searchGb" />
  27. <input type="hidden" id="dateGbn" name="dateGbn" value="R" />
  28. <!-- 패널 영역1 -->
  29. <div class="panelStyle" >
  30. <div class="panelTitle">
  31. <h3><i class="fa fa-info-circle"></i>아래 검색조건 중 하나를 꼭 입력해 주세요.</h3>
  32. </div>
  33. <div class="panelContent">
  34. <table class="frmStyle">
  35. <colgroup>
  36. <col width="10%"/>
  37. <col width="40%"/>
  38. <col width="10%"/>
  39. <col/>
  40. </colgroup>
  41. <tr>
  42. <th>업체/브랜드<i class="star"></i></th>
  43. <td>
  44. <select name="supplyCompCd" id="supplyCompCd">
  45. <option value="" th:if="${sessionInfo.roleCd} != 'B000'">[전체]</option>
  46. <option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
  47. </select>
  48. <select name="brandCd" id="brandCd">
  49. <option value="">[전체]</option>
  50. </select>
  51. </td>
  52. <th>모델번호<i class="star"></i></th>
  53. <td>
  54. <input id="modelNo" name=modelNo type="text" class="w150" maxlength="20"/>
  55. </td>
  56. </tr>
  57. <tr>
  58. <th>등록일<i class="star"></i></th>
  59. <td colspan="3" id="sellTerms"></td>
  60. </tr>
  61. </table>
  62. <ul class="panelBar">
  63. <li class="center">
  64. <button type="button" class="btn btn-gray btn-lg" id="btnInit" >초기화</button>
  65. <button type="button" class="btn btn-info btn-lg" id="btnSearch" >조회</button>
  66. </li>
  67. </ul>
  68. </div>
  69. <!-- //검색조건 영역 -->
  70. </div>
  71. <!-- 패널 영역1 -->
  72. <div class="panelStyle">
  73. <ul class="panelBar">
  74. <li class="right">
  75. <button type="button" class="btn btn-primary btn-lg" id="btnGoodsSetMake">사은품 등록</button>
  76. </li>
  77. </ul>
  78. <!-- 검색결과 영역 -->
  79. <div id="gridList" style="width: 100%; height: 500px;" class="ag-theme-balham"></div>
  80. <ul class="panelBar">
  81. <li class="center">
  82. <div class="tablePaging" id="goodsListPagination"></div>
  83. </li>
  84. </ul>
  85. <!-- 검색결과 영역 -->
  86. </div>
  87. </form>
  88. <!-- //패널 영역2 -->
  89. </div>
  90. <script type="text/javascript" src="/ux/plugins/gaga/gaga.paging.js?v=2019072202"></script>
  91. <script th:inline="javascript">
  92. /*<![CDATA[*/
  93. var sessRoleCd = [[${sessionInfo.roleCd}]];
  94. var goodsStatList = gagajf.convertToArray([[${goodsStatList}]]);
  95. var itemkindList = gagajf.convertToArray([[${itemkindList}]]);
  96. var columnDefs = [
  97. {width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
  98. {headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
  99. {headerName: "브랜드", field: "brandCd", width: 100, cellClass: 'text-center'},
  100. {headerName: "브랜드명", field: "brandEnm", width: 130, cellClass: 'text-center'},
  101. {headerName: "상품코드", field: "goodsCd", width: 120, cellClass: 'text-center'},
  102. {headerName: "ERP상품명", field: "erpGoodsNm", width: 200, cellClass: 'text-left'},
  103. {headerName: "상품명", field: "goodsNm", width: 200, cellClass: 'text-left'},
  104. //{headerName: "품목코드", field: "itemkindCd", width: 100, cellClass: 'text-center'},
  105. {headerName: "품목명", field: "itemkindCd" , width: 200, cellClass: 'text-left',
  106. cellEditorParams: { values: gagaAgGrid.extractValues(itemkindList) },
  107. valueFormatter: function (params) { return gagaAgGrid.lookupValue(itemkindList, params.value); },
  108. valueParser: function (params) { return gagaAgGrid.lookupKey(itemkindList, params.newValue); }
  109. },
  110. {headerName: "등록일시", field: "regDt", width: 150, cellClass: 'text-center',
  111. cellRenderer: function(params) {
  112. return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
  113. }
  114. },
  115. {headerName: "등록자", field: "regId", width: 100, cellClass: 'text-center'},
  116. {headerName: "수정일시", field: "updDt", width: 150, cellClass: 'text-center',
  117. cellRenderer: function(params) {
  118. return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
  119. }
  120. },
  121. {headerName: "수정자", field: "updId", width: 100, cellClass: 'text-center'}
  122. ];
  123. // Get GridOptions
  124. var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
  125. // 중복 선택 가능
  126. //gridOptions.rowSelection = 'multiple';
  127. gridOptions.suppressRowClickSelection = true;
  128. //gridOptions.rowHeight = 60; //이미지가 있을경우 높이 지정해야함.
  129. // 초기화 클릭시
  130. $('#btnInit').on('click', function() {
  131. fnInit();
  132. });
  133. var fnInit = function(){
  134. $('#goodsUnregisterListForm')[0].reset();
  135. //$("#goodsUnregisterListForm input[type=radio]").removeClass("checked");
  136. $("#goodsUnregisterListForm input[type=checkbox]").removeClass("checked");
  137. //$("#goodsUnregisterListForm input[type=radio]").parent("label").removeClass("checked");
  138. $("#goodsUnregisterListForm input[type=checkbox]").parent("label").removeClass("checked");
  139. $("#goodsUnregisterListForm input[type=radio][checked]").parent("label").addClass("checked");
  140. }
  141. // 조회클릭시
  142. $('#btnSearch').on('click', function() {
  143. fnGoodsUnregisterListSearch('BASIC');
  144. });
  145. // 조회
  146. var fnGoodsUnregisterListSearch = function(gbn) {
  147. if (typeof(gbn) != 'undefined' && gbn == 'EXCEL'){
  148. $("#goodsUnregisterListForm input[name=searchGb]").val("EXCEL");
  149. }else if (typeof(gbn) != 'undefined' && gbn == 'EXCELRESULT'){
  150. $("#goodsUnregisterListForm input[name=searchGb]").val("EXCELRESULT");
  151. }else{
  152. $("#goodsUnregisterListForm input[name=searchGb]").val("BASIC");
  153. }
  154. if(!fnConditionCheck()) return;
  155. gagaAgGrid.fetch($('#goodsUnregisterListForm').prop('action'), gridOptions, '#goodsUnregisterListForm');
  156. }
  157. //검색 조건 확인
  158. var fnConditionCheck = function(){
  159. var formId = '#goodsUnregisterListForm';
  160. var form = document.goodsUnregisterListForm;
  161. if($("#goodsUnregisterListForm input[name=searchGb]").val() == "EXCEL" || $("#goodsUnregisterListForm input[name=searchGb]").val() == "EXCELRESULT") {
  162. return true;
  163. }
  164. var searchFlag = false;
  165. var cnt = 0;
  166. /* if( !gagajf.isNull($("#goodsUnregisterListForm select[name=supplyCompCd]").val())
  167. || !gagajf.isNull($("#goodsUnregisterListForm input[name=condition]").val())
  168. || (!gagajf.isNull($("#goodsUnregisterListForm input[name=stDate]").val()) && !gagajf.isNull($("#goodsUnregisterListForm input[name=edDate]").val()))
  169. ){
  170. searchFlag = true;
  171. }else{ */
  172. for (i = 0; i < form.elements.length; i++ ) {
  173. var el = form.elements[i];
  174. if ($(el).prop("type") == "text" || ($(el).prop("type") == "select-one" && el.name != "search" && el.name != "pageSize")) {
  175. if (!(el.value == null || el.value == "")) {
  176. cnt++;
  177. }
  178. }
  179. }
  180. if(cnt > 0) searchFlag = true;
  181. /* } */
  182. if(searchFlag == false){
  183. mcxDialog.alert("검색조건을 입력하세요.");
  184. return false;
  185. }
  186. var fromDate = $('#goodsUnregisterListForm input[name=stDate]').val();
  187. var toDate = $('#goodsUnregisterListForm input[name=edDate]').val();
  188. if (!gagajf.isNull(fromDate) || !gagajf.isNull(toDate)) {
  189. if (gagajf.isNull(fromDate) || gagajf.isNull(toDate)) {
  190. mcxDialog.alertC("등록일 조회시 시작일자와 종료일자를 입력하세요.", {
  191. sureBtnText: "확인",
  192. sureBtnClick: function() {
  193. $('#goodsUnregisterListForm input[name=stDate]').focus();
  194. }
  195. });
  196. return false;
  197. }
  198. if (fromDate > toDate) {
  199. mcxDialog.alert("노출기간 시작일자는 종료일자 보다 클 수 없습니다.", {
  200. sureBtnText: "확인",
  201. sureBtnClick: function() {
  202. $('#goodsUnregisterListForm input[name=stDate]').focus();
  203. }
  204. });
  205. return false;
  206. }
  207. }
  208. return true;
  209. }
  210. //업체변경시
  211. $('#goodsUnregisterListForm select[name=supplyCompCd]').on('change', function() {
  212. var actionUrl = '/renderer/supplyCompany/brand/list/' + $(this).val();
  213. if(sessRoleCd == "B000"){
  214. actionUrl = '/renderer/brand/AuthBrandlist';
  215. }
  216. $("#goodsUnregisterListForm select[name=brandCd] option:gt(0)").remove();
  217. cfnCreateCombo(actionUrl, $('#goodsUnregisterListForm select[name=brandCd]'), "[전체]", "");
  218. });
  219. //엑셀 다운로드 클릭시
  220. $('#btnGoodsUnregisterExcelDownLoad').on('click', function() {
  221. //gagaAgGrid.exportToExcel('온라인미등록상품', gridOptions);
  222. var date = new Date().format("YYYYMMDDHHmmss");
  223. var params = {
  224. fileName : "온라인미등록상품_"+ date,
  225. sheetName: "DATA"
  226. }
  227. gridOptions.excelStyles = [
  228. {
  229. id: 'text-center',
  230. dataType: 'string',
  231. font: {size : 10, bold: false}
  232. },
  233. {
  234. id: 'text-left',
  235. dataType: 'string',
  236. font: {size : 10, bold: false}
  237. }
  238. ]
  239. gridOptions.api.exportDataAsExcel(params);
  240. });
  241. //엑셀 상품명/품목코드 저장
  242. $('#btnGoodsExcelSave').on('click', function() {
  243. cfnExcelUploadPopup('goodsInfoExcelUpload', 'goodsInfoExcelSave');
  244. });
  245. var goodsInfoExcelSave = function(result){
  246. mcxDialog.confirm('상품명/품목코드 저장을 진행하시겠습니까?', {
  247. cancelBtnText: "취소",
  248. sureBtnText: "확인",
  249. sureBtnClick: function(){
  250. var data = {procJob : result.procJob
  251. ,excelFileNm : result.excelFileNm
  252. };
  253. var jsonData = JSON.stringify(data);
  254. gagajf.ajaxJsonSubmit('/goods/unregister/excelupload/save', jsonData, fnGoodsInfoExcelSaveCallBack);
  255. }
  256. });
  257. }
  258. var fnGoodsInfoExcelSaveCallBack = function(result){
  259. fnGoodsUnregisterListSearch("EXCELRESULT");
  260. }
  261. $(document).ready(function() {
  262. cfnCreateCalendar('#sellTerms', 'stDate', 'edDate', true, '등록일');
  263. // Create a agGrid
  264. gagaAgGrid.createGrid('gridList', gridOptions);
  265. });
  266. /*]]>*/
  267. </script>
  268. </html>