ITP_STOCKMNG04010.js 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826
  1. /********************************************************
  2. --------------------------------------------------------
  3. - Object 목록 -
  4. --------------------------------------------------------
  5. * const gridColModel = {} : 화면 Grid Object *
  6. * let pageObj = {} : 화면공통 Object *
  7. * let listObj = {} : 목록화면 Object *
  8. * let viewObj = {} : 상세화면 Object *
  9. * let modifyObj = {} : 수정화면 Object *
  10. * let createObj = {} : 신규화면 Object *
  11. * let locInfoObj = {} : 로케이션정보 Object *
  12. *******************************************************/
  13. /*화면 변수*/
  14. const STOCKMNG04010_GRID_ID = '#ITP_STOCKMNG04010_jqGrid';
  15. const STOCKMNG04010_GRID_LIST = '#ITP_STOCKMNG04010_jqGrid_list';
  16. const STOCKMNG04010_GRID_PAGER = '#ITP_STOCKMNG04010_jqGridPager';
  17. const STOCKMNG04010_GRID_EMPTY = '#ITP_STOCKMNG04010_jqGridEmpty';
  18. const STOCKMNG04010_VIEW_GRID_ID = '#ITP_STOCKMNG04010_VIEW_jqGrid';
  19. const STOCKMNG04010_VIEW_GRID_LIST = '#ITP_STOCKMNG04010_VIEW_jqGrid_list';
  20. const STOCKMNG04010_VIEW_GRID_PAGER = '#ITP_STOCKMNG04010_VIEW_jqGridPager';
  21. const STOCKMNG04010_VIEW_GRID_EMPTY = '#ITP_STOCKMNG04010_VIEW_jqGridEmpty';
  22. const STOCKMNG04010_DETAIL_GRID_ID = '#ITP_STOCKMNG04010_DETAIL_jqGrid';
  23. const STOCKMNG04010_DETAIL_GRID_LIST = '#ITP_STOCKMNG04010_DETAIL_jqGrid_list';
  24. const STOCKMNG04010_DETAIL_GRID_PAGER = '#ITP_STOCKMNG04010_DETAIL_jqGridPager';
  25. const STOCKMNG04010_DETAIL_GRID_EMPTY = '#ITP_STOCKMNG04010_DETAIL_jqGridEmpty';
  26. let ITP_FORM_STOCKMNG04010_DETAIL_IS_DUPLICATE = false;
  27. let ITP_FORM_STOCKMNG04010_DETAIL_IS_WRITING = false;
  28. let STOCKMNG04010_DETAIL_GRID_LAST_ROW_ID;
  29. /* 공통코드 리스트 */
  30. let ITP_COMMON_CD_STCK_DVSN = fn_make_common_cd_list(CODE_LIST, 'STCK_DVSN', true);
  31. let ITP_COMMON_CD_LOC_ST_CD = fn_make_common_cd_list(CODE_LIST, 'LOC_ST_CD', true);
  32. /*API URL*/
  33. let WHS_MNG_DETAIL_GRID_LIST = '/api/whs/mng/detail-grid-list';
  34. let WHS_MNG_LOCATION_GRID_LIST = '/api/whs/mng/location-grid-list';
  35. let WHS_MNG_INFO_WHS = '/api/whs/mng/info-whs';
  36. let WHS_MNG_ADD_WHS = '/api/whs/mng/add-whs';
  37. let WHS_MNG_MIDIFY_WHS = '/api/whs/mng/modify-whs';
  38. let WHS_MNG_REMOVE_WHS = '/api/whs/mng/remove-whs';
  39. /*화면 Grid ColModel*/
  40. const gridColModel = {
  41. list: [
  42. {
  43. index: 'BRAND_ID', name: 'brandId',
  44. label: "브랜드ID",
  45. width: '0', fixed: false, align: 'center',
  46. sortable: false, hidden: true
  47. },
  48. {
  49. index: 'STORE_ID', name: 'storeId',
  50. label: "매장ID",
  51. width: '0', fixed: false, align: 'center',
  52. sortable: false, hidden: true
  53. },
  54. {
  55. index: 'BRAND_NM', name: 'brandNm',
  56. label: ITP_MSG_LOCALE.label.brandNm, //브랜드
  57. width: '13', fixed: false, align: 'center',
  58. sortable: false, hidden: false
  59. },
  60. {
  61. index: 'STORE_NM', name: 'storeNm',
  62. label: "매장명",
  63. width: '13', fixed: false, align: 'center',
  64. sortable: false, hidden: false
  65. },
  66. {
  67. index: 'WHS_ID', name: 'whsId',
  68. label: "창고번호",
  69. width: '8', fixed: false, align: 'center',
  70. sortable: false, hidden: false
  71. },
  72. {
  73. index: 'WHS_NM', name: 'whsNm',
  74. label: "창고명",
  75. width: '13', fixed: false, align: 'center',
  76. sortable: false, hidden: false
  77. },
  78. {
  79. index: 'WHS_ST_NM', name: 'whsStNm',
  80. label: ITP_MSG_LOCALE.label.status, //상태
  81. width: '6', fixed: false, align: 'center',
  82. sortable: false, hidden: false
  83. },
  84. {
  85. index: 'MGR_NM', name: 'mgrNm',
  86. label: "담당자명",
  87. width: '8', fixed: false, align: 'center',
  88. sortable: false, hidden: false
  89. },
  90. {
  91. index: 'MGR_TEL_NO', name: 'mgrTelNo',
  92. label: "연락처",
  93. width: '8', fixed: false, align: 'center',
  94. sortable: false, hidden: false
  95. }
  96. ],
  97. view: [
  98. {
  99. index: 'VIEW_CD', name: 'viewCd',
  100. label: ITP_MSG_LOCALE.label.viewCd,
  101. width: '10', fixed: false, align: 'center',
  102. sortable: false, hidden: true
  103. },
  104. {
  105. index: 'LOCATION', name: 'location',
  106. label: "로케이션",
  107. width: '10', fixed: false, align: 'center',
  108. sortable: false, editable: false, edittype: 'text',
  109. editrules: {required: true}
  110. },
  111. {
  112. index: 'LOCATION_NM', name: 'locationNm',
  113. label: "로케이션명",
  114. width: '12', fixed: false, align: 'center',
  115. sortable: true, editable: false, edittype: 'text',
  116. editrules: {required: true}
  117. },
  118. {
  119. index: 'STCK_DVSN_NM', name: 'stckDvsnNm',
  120. label: "관리등록",
  121. width: '10', fixed: false, align: 'center',
  122. sortable: false, editable: false, edittype: 'text'
  123. },
  124. {
  125. index: 'LOC_ST_NM', name: 'locStNm',
  126. label: "상태",
  127. width: '10', fixed: false, align: 'center',
  128. sortable: false, editable: false, edittype: 'text'
  129. }
  130. ],
  131. detail: [
  132. {
  133. index: 'VIEW_CD', name: 'viewCd',
  134. label: ITP_MSG_LOCALE.label.viewCd,
  135. width: '10', fixed: false, align: 'center',
  136. sortable: false, hidden: true
  137. },
  138. {
  139. index: 'LOCATION', name: 'location',
  140. label: "로케이션",
  141. width: '10', fixed: false, align: 'center',
  142. sortable: false, editable: true, edittype: 'text',
  143. editrules: {required: false}
  144. },
  145. {
  146. index: 'LOCATION_NM', name: 'locationNm',
  147. label: "로케이션명",
  148. width: '12', fixed: false, align: 'center',
  149. sortable: false, editable: true, edittype: 'text',
  150. editrules: {required: true}
  151. },
  152. {
  153. index: 'STCK_DVSN', name: 'stckDvsn',
  154. label: "관리등록",
  155. width: '10', fixed: false, align: 'center',
  156. sortable: false, editable: true, formatter: 'select', edittype: 'select',
  157. editoptions: {value: ITP_COMMON_CD_STCK_DVSN},
  158. editrules: {required: true}
  159. },
  160. {
  161. index: 'LOC_ST_CD', name: 'locStCd',
  162. label: "상태",
  163. width: '10', fixed: false, align: 'center',
  164. sortable: false, editable: true, formatter: 'select', edittype: 'select',
  165. editoptions: {value: ITP_COMMON_CD_LOC_ST_CD},
  166. editrules: {required: true}
  167. }
  168. ]
  169. };
  170. require(['config'], function() {
  171. require([
  172. 'kakao.map.util'
  173. ], function($) {
  174. pageObj.init();
  175. });
  176. });
  177. /*화면공통 Object*/
  178. let pageObj = {
  179. init: function () {
  180. this.ui.init();
  181. this.event.init();
  182. locInfoObj.init();
  183. },
  184. ui: {
  185. init: function () {
  186. this.view();
  187. this.grid();
  188. this.ready();
  189. },
  190. view: function() {
  191. // 버튼 권한설정
  192. fn_proc_btn_auth('STOCKMNG04010');
  193. // 공통코드 표시
  194. fn_make_select(CODE_LIST, 'WHS_DVSN', 'ITP_FORM_STOCKMNG04010_WHS_DVSN');
  195. fn_make_select(CODE_LIST, 'WHS_ST_CD', 'ITP_FORM_STOCKMNG04010_WHS_ST_CD');
  196. fn_make_select(CODE_LIST, 'WHS_ST_CD', 'ITP_FORM_STOCKMNG04010_DETAIL_WHS_ST_CD', true, '선택');
  197. // 조회일자 지정
  198. $('#ITP_TAB_STOCKMNG04010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
  199. },
  200. grid: function() {
  201. itp_fn_jqgrid_resize(STOCKMNG04010_GRID_ID, STOCKMNG04010_GRID_LIST, 'lg');
  202. listObj.empty.init();
  203. itp_fn_fire_window_resize();
  204. },
  205. ready: function() {
  206. listObj.init();
  207. }
  208. },
  209. event: {
  210. init: function () {
  211. this.button();
  212. },
  213. button: function () {
  214. // 버튼 클릭 이벤트
  215. $('button').each(function() {
  216. var id = $(this).attr('id');
  217. $(this).on('click', function() {
  218. switch (id) {
  219. case 'ITP_BTN_STOCKMNG04010_SRH' : listObj.button.search(); break; // 조회 버튼 클릭
  220. case 'ITP_BTN_STOCKMNG04010_NEWREG' : listObj.button.create(); break; // 신규등록 버튼
  221. case 'ITP_BTN_STOCKMNG04010_MODIFY' : modifyObj.button.modify(); break; // 수정 버튼
  222. case 'ITP_BTN_STOCKMNG04010_CANCELLIST' : createObj.button.cancel(); break; // 취소/목록 버튼
  223. case 'ITP_BTN_STOCKMNG04010_DELETE' : break; // 삭제 버튼
  224. case 'ITP_BTN_STOCKMNG04010_SAVE' : createObj.button.save(); break; // 저장 버튼
  225. case 'ITP_BTN_STOCKMNG04010_DETAIL_ADDROW' : locInfoObj.button.addRow(); break; // 상세:추가버튼
  226. case 'ITP_BTN_STOCKMNG04010_DETAIL_DELROW' : locInfoObj.button.delRow(); break; // 상세:삭제버튼
  227. case 'ITP_BTN_STOCKMNG04010_DETAIL_ADDRESS_SEARCH' : createObj.button.address(); break; // 신규등록 주소 찾기
  228. case 'ITP_BTN_STOCKMNG04010_SEARCH_SRH' : createObj.button.popupStore(); break; // 매장선택 팝업
  229. case 'ITP_BTN_STOCKMNG04010_SEARCH_MODIFY' : createObj.button.eraseStore(); break; // 매장선택 삭제
  230. }
  231. });
  232. });
  233. $('body').on('click', function(e) {
  234. var gridId = STOCKMNG04010_DETAIL_GRID_ID.replace('#', '');
  235. var rids = $(STOCKMNG04010_DETAIL_GRID_ID).jqGrid('getDataIDs');
  236. var last_row_id = rids[rids.length - 1];
  237. itp_fn_grid_reset_selection(e, last_row_id, gridId, 'STOCKMNG04010_DETAIL');
  238. });
  239. }
  240. },
  241. switchScreen: function(mode) {
  242. if(mode == 'LIST') { // 목록
  243. $('#ITP_BTN_STOCKMNG04010_MODIFY').hide();
  244. $('#ITP_BTN_STOCKMNG04010_CANCELLIST').hide();
  245. $('#ITP_BTN_STOCKMNG04010_DELETE').hide();
  246. $('#ITP_BTN_STOCKMNG04010_SAVE').hide();
  247. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_SRH');
  248. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_NEWREG');
  249. $('#ITP_AJAX_STOCKMNG04010_LIST_CONTAINER').show();
  250. $('#ITP_AJAX_STOCKMNG04010_DETAIL_CONTAINER').hide();
  251. $('#ITP_AJAX_STOCKMNG04010_VIEW_CONTAINER').hide();
  252. } else if(mode == 'ADD') { // 등록
  253. ITP_FORM_STOCKMNG04010_DETAIL_IS_DUPLICATE = true;
  254. $('#ITP_BTN_STOCKMNG04010_SRH').hide();
  255. $('#ITP_BTN_STOCKMNG04010_MODIFY').hide();
  256. $('#ITP_BTN_STOCKMNG04010_NEWREG').hide();
  257. $('#ITP_BTN_STOCKMNG04010_DELETE').hide();
  258. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_CANCELLIST');
  259. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_SAVE');
  260. $('#ITP_AJAX_STOCKMNG04010_LIST_CONTAINER').hide();
  261. $('#ITP_AJAX_STOCKMNG04010_DETAIL_CONTAINER').show();
  262. $('#ITP_AJAX_STOCKMNG04010_VIEW_CONTAINER').hide();
  263. $('#ITP_FORM_STOCKMNG04010_DETAIL_VIEW_CD').val('C');
  264. $('#ITP_FORM_STOCKMNG04010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
  265. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnBrandNm').text(fn_make_user_info.get('brandNm'));
  266. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnWhsId').text('');
  267. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnRegDtm').text('');
  268. $('#ITP_FORM_STOCKMNG04010_DETAIL_STORE_ID').val('');
  269. $('#ITP_FORM_STOCKMNG04010_DETAIL_WHS_ID').val('');
  270. $('#ITP_FORM_STOCKMNG04010_DETAIL_WHS_ST_CD').val('');
  271. $('#ITP_FORM_STOCKMNG04010_DETAIL_WHS_NM').val('');
  272. $('#ITP_FORM_STOCKMNG04010_DETAIL_MGR_TEL_NO').val('');
  273. $('#ITP_FORM_STOCKMNG04010_DETAIL_MGR_NM').val('');
  274. $('#ITP_FORM_STOCKMNG04010_DETAIL_STORE_NM').val('');
  275. $('#ITP_FORM_STOCKMNG04010_DETAIL_ZIPNO').val('');
  276. $('#ITP_FORM_STOCKMNG04010_DETAIL_ADRES').val('');
  277. $('#ITP_FORM_STOCKMNG04010_DETAIL_ADRES_DTL').val('');
  278. } else if(mode == 'MODIFY') { // 수정
  279. $('#ITP_BTN_STOCKMNG04010_SRH').hide();
  280. $('#ITP_BTN_STOCKMNG04010_MODIFY').hide();
  281. $('#ITP_BTN_STOCKMNG04010_NEWREG').hide();
  282. $('#ITP_BTN_STOCKMNG04010_DELETE').hide();
  283. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_CANCELLIST');
  284. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_SAVE');
  285. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_RESET_PW');
  286. $('#ITP_AJAX_STOCKMNG04010_LIST_CONTAINER').hide();
  287. $('#ITP_AJAX_STOCKMNG04010_DETAIL_CONTAINER').show();
  288. $('#ITP_AJAX_STOCKMNG04010_VIEW_CONTAINER').hide();
  289. // $('#ITP_FORM_STOCKMNG04010_DETAIL_USER_ID').attr('readonly', true);
  290. // $('#ITP_FORM_STOCKMNG04010_DETAIL_DUP').attr('disabled', true);
  291. $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
  292. $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP').hide();
  293. $('#ITP_FORM_STOCKMNG04010_DETAIL_DELETE_AFFL_SHOP').hide();
  294. } else if(mode == 'VIEW') { // 보기
  295. $('#ITP_BTN_STOCKMNG04010_SRH').hide();
  296. $('#ITP_BTN_STOCKMNG04010_NEWREG').hide();
  297. $('#ITP_BTN_STOCKMNG04010_DELETE').hide();
  298. $('#ITP_BTN_STOCKMNG04010_SAVE').hide();
  299. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_MODIFY');
  300. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_CANCELLIST');
  301. $('#ITP_AJAX_STOCKMNG04010_LIST_CONTAINER').hide();
  302. $('#ITP_AJAX_STOCKMNG04010_DETAIL_CONTAINER').hide();
  303. $('#ITP_AJAX_STOCKMNG04010_VIEW_CONTAINER').show();
  304. }
  305. }
  306. };
  307. /*목록화면 Object*/
  308. let listObj = {
  309. init: function () {
  310. this.grid.init();
  311. },
  312. itp_STOCKMNG04010_search: false,
  313. button: {
  314. search: function() {
  315. listObj.itp_STOCKMNG04010_search = true;
  316. let param = $('#ITP_FORM_STOCKMNG04010_SEARCH').serializeObject();
  317. param.gridSize = $.jgrid.defaults.rowNum;
  318. param.gridPage = $.jgrid.defaults.page;
  319. $(STOCKMNG04010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
  320. },
  321. create: function() {
  322. pageObj.switchScreen('ADD');
  323. itp_fn_form_clear_validate(null, '#ITP_FORM_STOCKMNG04010_DETAIL');
  324. // 로케이션 리스트 조회
  325. createObj.init();
  326. }
  327. },
  328. empty: {
  329. init: function() {
  330. var _this = this;
  331. this.push();
  332. $(STOCKMNG04010_GRID_EMPTY).on('click', function() {
  333. _this.back();
  334. _this.itp_STOCKMNG04010_param.gridSize = $.jgrid.defaults.rowNum;
  335. $(STOCKMNG04010_GRID_ID).setGridParam({'postData': JSON.stringify(_this.itp_STOCKMNG04010_param)}).trigger('reloadGrid');
  336. });
  337. },
  338. itp_STOCKMNG04010_param: {},
  339. push: function() {
  340. let param = $('#ITP_FORM_STOCKMNG04010_SEARCH').serializeObject();
  341. listObj.itp_STOCKMNG04010_param = param;
  342. },
  343. back: function() {
  344. $('#ITP_FORM_STOCKMNG04010_WHS_DVSN').val(listObj.itp_STOCKMNG04010_param.swhsDvsn);
  345. $('#ITP_FORM_STOCKMNG04010_WHS_ST_CD').val(listObj.itp_STOCKMNG04010_param.swhsStCd);
  346. $('#ITP_FORM_STOCKMNG04010_SEARCH_WHS_NM').val(listObj.itp_STOCKMNG04010_param.swhsNm);
  347. }
  348. },
  349. grid: {
  350. init: function () {
  351. // 데이터 없을때
  352. listObj.empty.push();
  353. this.search();
  354. },
  355. colModel: gridColModel.list,
  356. search: function() {
  357. pageObj.switchScreen('LIST');
  358. this.unload();
  359. this.load();
  360. },
  361. load: function() {
  362. $('#ITP_FORM_STOCKMNG04010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));
  363. let param = $('#ITP_FORM_STOCKMNG04010_SEARCH').serializeObject();
  364. param.gridSize = $.jgrid.defaults.rowNum;
  365. var option = {
  366. gridId: STOCKMNG04010_GRID_ID,
  367. colModel: gridColModel.list,
  368. param: param,
  369. url: DOMAIN + WHS_MNG_DETAIL_GRID_LIST,
  370. pager: STOCKMNG04010_GRID_PAGER,
  371. onCellSelect: function(rowId, cellIdx, cellValue) {
  372. var cm = $(this).jqGrid('getGridParam', 'colModel');
  373. var colNm = cm[cellIdx].name;
  374. if (colNm == 'whsNm') {
  375. const brandIdVal = $(this).jqGrid('getCell', rowId, 'brandId');
  376. const whsIdVal = $(this).jqGrid('getCell', rowId, 'whsId');
  377. const key = {brandId: brandIdVal, whsId: whsIdVal, storeId: '', viewCd: 'R'};
  378. var param = $.param(key);
  379. viewObj.init(param);
  380. }
  381. },
  382. loadComplete: function(data) {
  383. console.log(data);
  384. itp_fn_grid_load_complete(data, STOCKMNG04010_GRID_ID, true, 'number', 'STOCKMNG04010', listObj.itp_STOCKMNG04010_search, listObj.empty, true, data.gridRecords, true);
  385. var ids = $(STOCKMNG04010_GRID_ID).getDataIDs();
  386. $.each(ids, function(idx, rowId) {
  387. $(STOCKMNG04010_GRID_ID).jqGrid('setCell', rowId, 'whsNm', '', ITP_GRID_COL_STYLE.link);
  388. });
  389. },
  390. onPaging: function(action) {
  391. itp_fn_grid_paging(STOCKMNG04010_GRID_ID, action, param);
  392. }
  393. };
  394. itp_fn_grid_make_remote(option);
  395. },
  396. clearData : function() {
  397. $(STOCKMNG04010_GRID_ID).jqGrid('clearGridData', true);
  398. $(STOCKMNG04010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  399. $(STOCKMNG04010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  400. $(STOCKMNG04010_GRID_EMPTY).show();
  401. },
  402. unload : function() {
  403. $.jgrid.gridUnload(STOCKMNG04010_GRID_ID);
  404. }
  405. }
  406. };
  407. /*상세화면 Object*/
  408. let viewObj = {
  409. init: function (param) {
  410. this.load(param);
  411. },
  412. load: function(param) {
  413. fn_ajax_call(WHS_MNG_INFO_WHS, param, this.callback, 'GET');
  414. },
  415. callback: function (result) {
  416. // console.log(result);
  417. pageObj.switchScreen('VIEW');
  418. $('#ITP_FORM_STOCKMNG04010_VIEW #ITP_FORM_STOCKMNG04010_VIEW_BRAND_ID').val(result.brandId);
  419. $('#ITP_FORM_STOCKMNG04010_VIEW #ITP_FORM_STOCKMNG04010_VIEW_STORE_ID').val(result.storeId);
  420. $('#ITP_FORM_STOCKMNG04010_VIEW #ITP_FORM_STOCKMNG04010_VIEW_WHS_ID').val(result.whsId);
  421. $('#ITP_FORM_STOCKMNG04010_VIEW .fnBrandNm').text(result.brandNm);
  422. $('#ITP_FORM_STOCKMNG04010_VIEW .fnStCd').text(result.whsStNm);
  423. $('#ITP_FORM_STOCKMNG04010_VIEW .fnWhsId').text(result.whsId);
  424. $('#ITP_FORM_STOCKMNG04010_VIEW .fnWhsNm').text(result.whsNm);
  425. $('#ITP_FORM_STOCKMNG04010_VIEW .fnTelNo').text(result.mgrTelNo);
  426. $('#ITP_FORM_STOCKMNG04010_VIEW .fnMgrNm').text(result.mgrNm);
  427. $('#ITP_FORM_STOCKMNG04010_VIEW .fnSpplyNm').text(result.storeNm ? result.storeNm : '');
  428. $('#ITP_FORM_STOCKMNG04010_VIEW .fnRegDtm').text(result.sysRegDttm);
  429. if(result.zipNo) {
  430. $('#ITP_FORM_STOCKMNG04010_VIEW .fnAddress').text('('+result.zipNo+') ' + result.addr1 + ' ' + result.addr2);
  431. }
  432. // 권한정보 리스트 조회
  433. viewObj.grid.init();
  434. },
  435. grid: {
  436. init: function() {
  437. this.unload();
  438. this.load();
  439. },
  440. load : function() {
  441. let param = $('#ITP_FORM_STOCKMNG04010_VIEW').serializeObject();
  442. param.gridSize = $.jgrid.defaults.rowNum;
  443. param.pagingYn = false; // 페이징안함
  444. var option = {
  445. gridId: STOCKMNG04010_VIEW_GRID_ID,
  446. colModel: gridColModel.view,
  447. param: param,
  448. url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
  449. pager: STOCKMNG04010_VIEW_GRID_PAGER,
  450. loadComplete: function(data) {
  451. itp_fn_grid_load_complete(data, STOCKMNG04010_VIEW_GRID_ID, true, undefined, 'STOCKMNG04010_VIEW');
  452. },
  453. onPaging: function(action) {
  454. var pagingFn = {
  455. callBack: function(args) {
  456. $(args).trigger('reloadGrid');
  457. }
  458. };
  459. if (itp_fn_check_grid_is_writing(STOCKMNG04010_VIEW_GRID_ID)) {
  460. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STOCKMNG04010_VIEW_GRID_ID);
  461. return 'stop';
  462. } else {
  463. itp_fn_grid_paging(STOCKMNG04010_VIEW_GRID_ID, action, param);
  464. }
  465. },
  466. onSortCol: function(index, columnIndex, sortOrder) {
  467. var sortingFn = {
  468. callBack: function(args) {
  469. $(args).trigger('reloadGrid');
  470. }
  471. };
  472. if (itp_fn_check_grid_is_writing(STOCKMNG04010_VIEW_GRID_ID)) {
  473. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STOCKMNG04010_VIEW_GRID_ID);
  474. return 'stop';
  475. } else {
  476. itp_fn_grid_sorting(STOCKMNG04010_VIEW_GRID_ID, index, sortOrder);
  477. }
  478. }
  479. };
  480. itp_fn_grid_make_remote(option);
  481. },
  482. clearData : function() {
  483. $(STOCKMNG04010_VIEW_GRID_ID).jqGrid('clearGridData', true);
  484. $(STOCKMNG04010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  485. $(STOCKMNG04010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  486. $(STOCKMNG04010_VIEW_GRID_EMPTY).show();
  487. },
  488. unload : function() {
  489. $.jgrid.gridUnload(STOCKMNG04010_VIEW_GRID_ID);
  490. }
  491. }
  492. };
  493. /*수정화면 Object*/
  494. let modifyObj = {
  495. init: function () {
  496. },
  497. button: {
  498. modify: function (param) {
  499. itp_fn_form_clear_validate(null, '#ITP_FORM_STOCKMNG04010_DETAIL');
  500. const brandIdVal = $('#ITP_FORM_STOCKMNG04010_VIEW_BRAND_ID').val();
  501. const whsIdVal = $('#ITP_FORM_STOCKMNG04010_VIEW_WHS_ID').val();
  502. const key = {brandId: brandIdVal, whsId: whsIdVal, storeId: '', viewCd: 'R'};
  503. var param = $.param(key);
  504. modifyObj.load(param);
  505. }
  506. },
  507. load: function(param) {
  508. fn_ajax_call(WHS_MNG_INFO_WHS, param, this.callback, 'GET');
  509. },
  510. callback: function (result) {
  511. // console.log(result);
  512. pageObj.switchScreen('MODIFY');
  513. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_VIEW_CD').val('U');
  514. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_BRAND_ID').val(result.brandId);
  515. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_STORE_ID').val(result.storeId);
  516. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_WHS_ID').val(result.whsId);
  517. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnBrandNm').text(result.brandNm);
  518. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnWhsId').text(result.whsId);
  519. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnRegDtm').text(result.sysRegDttm);
  520. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_WHS_ST_CD').val(result.whsStCd);
  521. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_WHS_NM').val(result.whsNm);
  522. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_WHS_NM').val(result.whsNm);
  523. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_MGR_TEL_NO').val(result.mgrTelNo);
  524. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_MGR_NM').val(result.mgrNm);
  525. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_STORE_NM').val(result.storeNm);
  526. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_ZIPNO').val(result.zipNo);
  527. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_ADRES').val(result.addr1);
  528. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_ADRES_DTL').val(result.addr2);
  529. kakaoMap.init('ITP_FORM_STOCKMNG04010_DETAIL', $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_ADRES').val());
  530. // 권한정보 리스트 조회
  531. modifyObj.grid.init();
  532. },
  533. grid: {
  534. init: function() {
  535. this.unload();
  536. this.load();
  537. },
  538. load : function() {
  539. let param = $('#ITP_FORM_STOCKMNG04010_DETAIL').serializeObject();
  540. param.gridSize = $.jgrid.defaults.rowNum;
  541. param.pagingYn = false; // 페이지안함
  542. var option = {
  543. gridId: STOCKMNG04010_DETAIL_GRID_ID,
  544. colModel: gridColModel.detail,
  545. param: param,
  546. url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
  547. pager: STOCKMNG04010_DETAIL_GRID_PAGER,
  548. multiselect: true,
  549. onCellSelect: function(rowId, cellIdx, cellValue) {
  550. STOCKMNG04010_DETAIL_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowId, cellIdx, STOCKMNG04010_DETAIL_GRID_LAST_ROW_ID, STOCKMNG04010_DETAIL_GRID_ID, ['location']);
  551. },
  552. loadComplete: function(data) {
  553. itp_fn_grid_load_complete(data, STOCKMNG04010_DETAIL_GRID_ID, true, undefined, 'STOCKMNG04010_DETAIL');
  554. },
  555. onPaging: function(action) {
  556. var pagingFn = {
  557. callBack: function(args) {
  558. $(args).trigger('reloadGrid');
  559. }
  560. };
  561. if (itp_fn_check_grid_is_writing(STOCKMNG04010_DETAIL_GRID_ID)) {
  562. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STOCKMNG04010_DETAIL_GRID_ID);
  563. return 'stop';
  564. } else {
  565. itp_fn_grid_paging(STOCKMNG04010_DETAIL_GRID_ID, action, param);
  566. }
  567. },
  568. onSortCol: function(index, columnIndex, sortOrder) {
  569. var sortingFn = {
  570. callBack: function(args) {
  571. $(args).trigger('reloadGrid');
  572. }
  573. };
  574. if (itp_fn_check_grid_is_writing(STOCKMNG04010_DETAIL_GRID_ID)) {
  575. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STOCKMNG04010_DETAIL_GRID_ID);
  576. return 'stop';
  577. } else {
  578. itp_fn_grid_sorting(STOCKMNG04010_DETAIL_GRID_ID, index, sortOrder);
  579. }
  580. }
  581. };
  582. itp_fn_grid_make_remote(option);
  583. },
  584. clearData : function() {
  585. $(STOCKMNG04010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
  586. $(STOCKMNG04010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  587. $(STOCKMNG04010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  588. $(STOCKMNG04010_DETAIL_GRID_EMPTY).show();
  589. },
  590. unload : function() {
  591. $.jgrid.gridUnload(STOCKMNG04010_DETAIL_GRID_ID);
  592. }
  593. }
  594. };
  595. /*신규화면 Object*/
  596. let createObj = {
  597. init: function () {
  598. kakaoMap.init('ITP_FORM_STOCKMNG04010_DETAIL', '');
  599. this.unload();
  600. this.load();
  601. },
  602. button: {
  603. cancel: function() {
  604. listObj.grid.search();
  605. },
  606. save: function() {
  607. var detailViewCd = $('#ITP_FORM_STOCKMNG04010_DETAIL_VIEW_CD').val();
  608. const formId = '#ITP_FORM_STOCKMNG04010_DETAIL';
  609. itp_fn_form_clear_validate(null, formId);
  610. var vali_whsStatCd = itp_fn_form_validate(formId, formId + '_WHS_ST_CD', ['empty'], undefined); // 상태
  611. var vali_whsNm = itp_fn_form_validate(formId, formId + '_WHS_NM', ['empty'], undefined);
  612. if (vali_whsStatCd && vali_whsNm) {
  613. let gridInsertData = [];
  614. let gridUpdateData = [];
  615. let gridDeleteData = [];
  616. const rowData = $(STOCKMNG04010_DETAIL_GRID_ID).getRowData();
  617. // const keyValue = $(formId + '_WHS_ID').val();
  618. $.each(rowData, function(key, value) {
  619. if (value.viewCd != 'R') {
  620. // value.whsId = keyValue;
  621. if (value.viewCd == 'C') {
  622. gridInsertData.push(value);
  623. } else if (value.viewCd == 'U') {
  624. gridUpdateData.push(value);
  625. } else if (value.viewCd == 'D') {
  626. gridDeleteData.push(value);
  627. }
  628. }
  629. });
  630. let param = $(formId).serializeObject();
  631. param.gridInsertData = gridInsertData;
  632. param.gridUpdateData = gridUpdateData;
  633. param.gridDeleteData = gridDeleteData;
  634. //console.log(JSON.stringify(param));
  635. var searhFn = function() {
  636. ITP_FORM_STOCKMNG04010_DETAIL_IS_WRITING = false;
  637. listObj.grid.search();
  638. };
  639. fn_ajax_call(detailViewCd == 'C' ? WHS_MNG_ADD_WHS : WHS_MNG_MIDIFY_WHS, JSON.stringify(param), searhFn, 'POST');
  640. }
  641. },
  642. address: function() {
  643. kakaoMap.address('ITP_FORM_STOCKMNG04010_DETAIL');
  644. },
  645. popupStore: function() { // 매장선택 팝업
  646. },
  647. eraseStore: function() { // 매장선택 삭제
  648. $('#ITP_FORM_STOCKMNG04010_DETAIL_STORE_ID').val('');
  649. $('#ITP_FORM_STOCKMNG04010_DETAIL_STORE_NM').val('');
  650. }
  651. },
  652. load: function () {
  653. let param = $('#ITP_FORM_STOCKMNG04010_DETAIL').serializeObject();
  654. param.gridSize = $.jgrid.defaults.rowNum;
  655. param.pagingYn = false; // 페이지안함
  656. var option = {
  657. gridId: STOCKMNG04010_DETAIL_GRID_ID,
  658. colModel: gridColModel.detail,
  659. param: param,
  660. url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
  661. pager: STOCKMNG04010_DETAIL_GRID_PAGER,
  662. multiselect: true,
  663. loadComplete: function(data) {
  664. itp_fn_grid_load_complete(data, STOCKMNG04010_DETAIL_GRID_ID, true, undefined, 'STOCKMNG04010_DETAIL');
  665. },
  666. onPaging: function(action) {
  667. var pagingFn = {
  668. callBack: function(args) {
  669. $(args).trigger('reloadGrid');
  670. }
  671. };
  672. if (itp_fn_check_grid_is_writing(STOCKMNG04010_DETAIL_GRID_ID)) {
  673. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STOCKMNG04010_DETAIL_GRID_ID);
  674. return 'stop';
  675. } else {
  676. itp_fn_grid_paging(STOCKMNG04010_DETAIL_GRID_ID, action, param);
  677. }
  678. },
  679. onSortCol: function(index, columnIndex, sortOrder) {
  680. var sortingFn = {
  681. callBack: function(args) {
  682. $(args).trigger('reloadGrid');
  683. }
  684. };
  685. if (itp_fn_check_grid_is_writing(STOCKMNG04010_DETAIL_GRID_ID)) {
  686. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STOCKMNG04010_DETAIL_GRID_ID);
  687. return 'stop';
  688. } else {
  689. itp_fn_grid_sorting(STOCKMNG04010_DETAIL_GRID_ID, index, sortOrder);
  690. }
  691. }
  692. };
  693. itp_fn_grid_make_remote(option);
  694. },
  695. clearData : function() {
  696. $(STOCKMNG04010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
  697. $(STOCKMNG04010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  698. $(STOCKMNG04010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  699. $(STOCKMNG04010_DETAIL_GRID_EMPTY).show();
  700. },
  701. unload : function() {
  702. $.jgrid.gridUnload(STOCKMNG04010_DETAIL_GRID_ID);
  703. }
  704. };
  705. /*로케이션정보 Object*/
  706. let locInfoObj = {
  707. init: function () {
  708. // if(AUTH_TYPE_CD === '10' || AUTH_TYPE_CD === '20') {
  709. this.action();
  710. // } else {
  711. // this.make();
  712. // }
  713. },
  714. button: {
  715. addRow: function() {
  716. // $(STOCKMNG04010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
  717. // $(STOCKMNG04010_DETAIL_GRID_EMPTY).hide();
  718. STOCKMNG04010_DETAIL_GRID_LAST_ROW_ID = itp_fn_add_grid_row(STOCKMNG04010_DETAIL_GRID_ID, undefined, ['location'],'STOCKMNG04010_DETAIL');
  719. },
  720. delRow: function() {
  721. itp_fn_grid_del_row(STOCKMNG04010_DETAIL_GRID_ID);
  722. }
  723. },
  724. make: function() {
  725. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP').hide();
  726. $('#ITP_FORM_STOCKMNG04010_DELETE_AFFL_SHOP').hide();
  727. if(AFFL_SHOP_LIST) {
  728. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP_ID').val(AFFL_SHOP_LIST[0].afflShopId);
  729. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP_NM').val(AFFL_SHOP_LIST[0].afflShopNm);
  730. }
  731. if(AFFL_BRAND_LIST) {
  732. fn_make_select_brand(AFFL_BRAND_LIST, 'ITP_FORM_STOCKMNG04010_SEARCH_BRAND_ID');
  733. }
  734. },
  735. action: function () {
  736. var _this = this;
  737. // 로케이션정보 조회 버튼 클릭
  738. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP').on('click', function() {
  739. _this.popup('L');
  740. });
  741. // 로케이션정보 텍스트 삭제 버튼 클릭
  742. $('#ITP_FORM_STOCKMNG04010_DELETE_AFFL_SHOP').on('click', function() {
  743. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP_NM').val('');
  744. $('select#ITP_FORM_STOCKMNG04010_SEARCH_BRAND_ID option').remove();
  745. });
  746. // 신규등록 로케이션정보 조회 버튼 클릭
  747. $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP').one('click', function() {
  748. _this.popup('C');
  749. });
  750. // 신규등록 로케이션정보 텍스트 삭제 버튼 클릭
  751. $('#ITP_FORM_STOCKMNG04010_DETAIL_DELETE_AFFL_SHOP').one('click', function() {
  752. $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP_NM').val('');
  753. $('select#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_BRAND_ID option').remove();
  754. });
  755. },
  756. popup: function (view) {
  757. // 팝업
  758. var popFn = (view === 'C') ? this.callback.create : this.callback.list;
  759. fn_call_popup('biz', 'BIZPOP_AFFL_SHOP', '#ITP_ASIDE', popFn, null, 'S');
  760. },
  761. callback: {
  762. list: function(rowDataPop) {
  763. // console.log(rowDataPop);
  764. if(rowDataPop.AFFL_SHOP) {
  765. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP_ID').val(rowDataPop.AFFL_SHOP.afflShopId);
  766. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP_NM').val(rowDataPop.AFFL_SHOP.afflShopNm);
  767. }
  768. if(rowDataPop.AFFL_BRAND) {
  769. fn_make_select_brand(rowDataPop.AFFL_BRAND, 'ITP_FORM_STOCKMNG04010_SEARCH_BRAND_ID', true, '선택');
  770. }
  771. },
  772. create: function(rowDataPop) {
  773. // console.log(rowDataPop);
  774. if(rowDataPop.AFFL_SHOP) {
  775. // $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP_ID').val(rowDataPop.AFFL_SHOP.afflShopId);
  776. // $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP_NM').val(rowDataPop.AFFL_SHOP.afflShopNm);
  777. }
  778. if(rowDataPop.AFFL_BRAND) {
  779. fn_make_select_brand(rowDataPop.AFFL_BRAND, 'ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_BRAND_ID', true, '선택');
  780. }
  781. }
  782. }
  783. };