ITP_STOCKMNG04010.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816
  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. ], function($) {
  173. pageObj.init();
  174. });
  175. });
  176. /*화면공통 Object*/
  177. let pageObj = {
  178. init: function () {
  179. this.ui.init();
  180. this.event.init();
  181. locInfoObj.init();
  182. },
  183. ui: {
  184. init: function () {
  185. this.view();
  186. this.grid();
  187. this.ready();
  188. },
  189. view: function() {
  190. // 버튼 권한설정
  191. fn_proc_btn_auth('STOCKMNG04010');
  192. // 공통코드 표시
  193. fn_make_select(CODE_LIST, 'WHS_DVSN', 'ITP_FORM_STOCKMNG04010_WHS_DVSN');
  194. fn_make_select(CODE_LIST, 'WHS_ST_CD', 'ITP_FORM_STOCKMNG04010_WHS_ST_CD');
  195. fn_make_select(CODE_LIST, 'WHS_ST_CD', 'ITP_FORM_STOCKMNG04010_DETAIL_WHS_ST_CD', true, '선택');
  196. // 조회일자 지정
  197. $('#ITP_TAB_STOCKMNG04010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
  198. },
  199. grid: function() {
  200. itp_fn_jqgrid_resize(STOCKMNG04010_GRID_ID, STOCKMNG04010_GRID_LIST, 'lg');
  201. listObj.empty.init();
  202. itp_fn_fire_window_resize();
  203. },
  204. ready: function() {
  205. listObj.init();
  206. }
  207. },
  208. event: {
  209. init: function () {
  210. this.button();
  211. },
  212. button: function () {
  213. // 버튼 클릭 이벤트
  214. $('button').each(function() {
  215. var id = $(this).attr('id');
  216. $(this).on('click', function() {
  217. switch (id) {
  218. case 'ITP_BTN_STOCKMNG04010_SRH' : listObj.button.search(); break; // 조회 버튼 클릭
  219. case 'ITP_BTN_STOCKMNG04010_NEWREG' : listObj.button.create(); break; // 신규등록 버튼
  220. case 'ITP_BTN_STOCKMNG04010_MODIFY' : modifyObj.button.modify(); break; // 수정 버튼
  221. case 'ITP_BTN_STOCKMNG04010_CANCELLIST' : createObj.button.cancel(); break; // 취소/목록 버튼
  222. case 'ITP_BTN_STOCKMNG04010_DELETE' : break; // 삭제 버튼
  223. case 'ITP_BTN_STOCKMNG04010_SAVE' : createObj.button.save(); break; // 저장 버튼
  224. case 'ITP_BTN_STOCKMNG04010_DETAIL_ADDROW' : locInfoObj.button.addRow(); break; // 상세:추가버튼
  225. case 'ITP_BTN_STOCKMNG04010_DETAIL_DELROW' : locInfoObj.button.delRow(); break; // 상세:삭제버튼
  226. }
  227. });
  228. });
  229. $('body').on('click', function(e) {
  230. var gridId = STOCKMNG04010_DETAIL_GRID_ID.replace('#', '');
  231. var rids = $(STOCKMNG04010_DETAIL_GRID_ID).jqGrid('getDataIDs');
  232. var last_row_id = rids[rids.length - 1];
  233. itp_fn_grid_reset_selection(e, last_row_id, gridId, 'STOCKMNG04010_DETAIL');
  234. });
  235. }
  236. },
  237. switchScreen: function(mode) {
  238. if(mode == 'LIST') { // 목록
  239. $('#ITP_BTN_STOCKMNG04010_MODIFY').hide();
  240. $('#ITP_BTN_STOCKMNG04010_CANCELLIST').hide();
  241. $('#ITP_BTN_STOCKMNG04010_DELETE').hide();
  242. $('#ITP_BTN_STOCKMNG04010_SAVE').hide();
  243. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_SRH');
  244. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_NEWREG');
  245. $('#ITP_AJAX_STOCKMNG04010_LIST_CONTAINER').show();
  246. $('#ITP_AJAX_STOCKMNG04010_DETAIL_CONTAINER').hide();
  247. $('#ITP_AJAX_STOCKMNG04010_VIEW_CONTAINER').hide();
  248. } else if(mode == 'ADD') { // 등록
  249. ITP_FORM_STOCKMNG04010_DETAIL_IS_DUPLICATE = true;
  250. $('#ITP_BTN_STOCKMNG04010_SRH').hide();
  251. $('#ITP_BTN_STOCKMNG04010_MODIFY').hide();
  252. $('#ITP_BTN_STOCKMNG04010_NEWREG').hide();
  253. $('#ITP_BTN_STOCKMNG04010_DELETE').hide();
  254. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_CANCELLIST');
  255. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_SAVE');
  256. $('#ITP_AJAX_STOCKMNG04010_LIST_CONTAINER').hide();
  257. $('#ITP_AJAX_STOCKMNG04010_DETAIL_CONTAINER').show();
  258. $('#ITP_AJAX_STOCKMNG04010_VIEW_CONTAINER').hide();
  259. var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_cd'));
  260. $('#ITP_FORM_STOCKMNG04010_DETAIL_VIEW_CD').val('C');
  261. $('#ITP_FORM_STOCKMNG04010_DETAIL_BRAND_ID').val(data.brandId);
  262. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnBrandNm').text(data.brandNm);
  263. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnWhsId').text('');
  264. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnRegDtm').text('');
  265. $('#ITP_FORM_STOCKMNG04010_DETAIL_STORE_ID').val('');
  266. $('#ITP_FORM_STOCKMNG04010_DETAIL_WHS_ID').val('');
  267. $('#ITP_FORM_STOCKMNG04010_DETAIL_WHS_ST_CD').val('');
  268. $('#ITP_FORM_STOCKMNG04010_DETAIL_WHS_NM').val('');
  269. $('#ITP_FORM_STOCKMNG04010_DETAIL_MGR_TEL_NO').val('');
  270. $('#ITP_FORM_STOCKMNG04010_DETAIL_MGR_NM').val('');
  271. $('#ITP_FORM_STOCKMNG04010_DETAIL_STORE_NM').val('');
  272. $('#ITP_FORM_STOCKMNG04010_DETAIL_ZIPNO').val('');
  273. $('#ITP_FORM_STOCKMNG04010_DETAIL_LOAD_ADDR').val('');
  274. $('#ITP_FORM_STOCKMNG04010_DETAIL_DTL_ADDR').val('');
  275. } else if(mode == 'MODIFY') { // 수정
  276. $('#ITP_BTN_STOCKMNG04010_SRH').hide();
  277. $('#ITP_BTN_STOCKMNG04010_MODIFY').hide();
  278. $('#ITP_BTN_STOCKMNG04010_NEWREG').hide();
  279. $('#ITP_BTN_STOCKMNG04010_DELETE').hide();
  280. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_CANCELLIST');
  281. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_SAVE');
  282. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_RESET_PW');
  283. $('#ITP_AJAX_STOCKMNG04010_LIST_CONTAINER').hide();
  284. $('#ITP_AJAX_STOCKMNG04010_DETAIL_CONTAINER').show();
  285. $('#ITP_AJAX_STOCKMNG04010_VIEW_CONTAINER').hide();
  286. // $('#ITP_FORM_STOCKMNG04010_DETAIL_USER_ID').attr('readonly', true);
  287. // $('#ITP_FORM_STOCKMNG04010_DETAIL_DUP').attr('disabled', true);
  288. $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
  289. $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP').hide();
  290. $('#ITP_FORM_STOCKMNG04010_DETAIL_DELETE_AFFL_SHOP').hide();
  291. } else if(mode == 'VIEW') { // 보기
  292. $('#ITP_BTN_STOCKMNG04010_SRH').hide();
  293. $('#ITP_BTN_STOCKMNG04010_NEWREG').hide();
  294. $('#ITP_BTN_STOCKMNG04010_DELETE').hide();
  295. $('#ITP_BTN_STOCKMNG04010_SAVE').hide();
  296. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_MODIFY');
  297. fn_show_btn_auth('#ITP_BTN_STOCKMNG04010_CANCELLIST');
  298. $('#ITP_AJAX_STOCKMNG04010_LIST_CONTAINER').hide();
  299. $('#ITP_AJAX_STOCKMNG04010_DETAIL_CONTAINER').hide();
  300. $('#ITP_AJAX_STOCKMNG04010_VIEW_CONTAINER').show();
  301. }
  302. }
  303. };
  304. /*목록화면 Object*/
  305. let listObj = {
  306. init: function () {
  307. this.grid.init();
  308. },
  309. itp_STOCKMNG04010_search: false,
  310. button: {
  311. search: function() {
  312. listObj.itp_STOCKMNG04010_search = true;
  313. let param = $('#ITP_FORM_STOCKMNG04010_SEARCH').serializeObject();
  314. param.gridSize = $.jgrid.defaults.rowNum;
  315. param.gridPage = $.jgrid.defaults.page;
  316. $(STOCKMNG04010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
  317. },
  318. create: function() {
  319. pageObj.switchScreen('ADD');
  320. itp_fn_form_clear_validate(null, '#ITP_FORM_STOCKMNG04010_DETAIL');
  321. // 로케이션 리스트 조회
  322. createObj.init();
  323. }
  324. },
  325. empty: {
  326. init: function() {
  327. var _this = this;
  328. this.push();
  329. $(STOCKMNG04010_GRID_EMPTY).on('click', function() {
  330. _this.back();
  331. _this.itp_STOCKMNG04010_param.gridSize = $.jgrid.defaults.rowNum;
  332. $(STOCKMNG04010_GRID_ID).setGridParam({'postData': JSON.stringify(_this.itp_STOCKMNG04010_param)}).trigger('reloadGrid');
  333. });
  334. },
  335. itp_STOCKMNG04010_param: {},
  336. push: function() {
  337. let param = $('#ITP_FORM_STOCKMNG04010_SEARCH').serializeObject();
  338. listObj.itp_STOCKMNG04010_param = param;
  339. },
  340. back: function() {
  341. $('#ITP_FORM_STOCKMNG04010_DEVI_TP_CD').val(this.itp_STOCKMNG04010_param.deviTpCd);
  342. $('#ITP_FORM_STOCKMNG04010_ORDER_YN').val(this.itp_STOCKMNG04010_param.orderYn);
  343. $('#ITP_FORM_STOCKMNG04010_ADT_AUTH_CD').val(this.itp_STOCKMNG04010_param.adtAuthCd);
  344. $('#ITP_FORM_STOCKMNG04010_EMAIL_RCV_YN').val(this.itp_STOCKMNG04010_param.emailRcvYn);
  345. $('#ITP_FORM_STOCKMNG04010_MEMB_EXIT_DT').val(this.itp_STOCKMNG04010_param.membExitDt);
  346. $('#ITP_FORM_STOCKMNG04010_FROM_DT').val(this.itp_STOCKMNG04010_param.fromDt);
  347. $('#ITP_FORM_STOCKMNG04010_TO_DT').val(this.itp_STOCKMNG04010_param.toDt);
  348. $('#ITP_FORM_STOCKMNG04010_KEYWORD').val(this.itp_STOCKMNG04010_param.keyword);
  349. }
  350. },
  351. grid: {
  352. init: function () {
  353. // 데이터 없을때
  354. listObj.empty.push();
  355. this.search();
  356. },
  357. colModel: gridColModel.list,
  358. search: function() {
  359. pageObj.switchScreen('LIST');
  360. this.unload();
  361. this.load();
  362. },
  363. load: function() {
  364. var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_cd'));
  365. $('#ITP_FORM_STOCKMNG04010_SEARCH_BRAND_ID').val(data.brandId);
  366. let param = $('#ITP_FORM_STOCKMNG04010_SEARCH').serializeObject();
  367. param.gridSize = $.jgrid.defaults.rowNum;
  368. var option = {
  369. gridId: STOCKMNG04010_GRID_ID,
  370. colModel: gridColModel.list,
  371. param: JSON.stringify(param),
  372. url: DOMAIN + WHS_MNG_DETAIL_GRID_LIST,
  373. pager: STOCKMNG04010_GRID_PAGER,
  374. onCellSelect: function(rowId, cellIdx, cellValue) {
  375. var cm = $(this).jqGrid('getGridParam', 'colModel');
  376. var colNm = cm[cellIdx].name;
  377. if (colNm == 'whsNm') {
  378. const brandIdVal = $(this).jqGrid('getCell', rowId, 'brandId');
  379. const whsIdVal = $(this).jqGrid('getCell', rowId, 'whsId');
  380. const key = {brandId: brandIdVal, whsId: whsIdVal, viewCd: 'R'};
  381. var param = $.param(key);
  382. viewObj.init(param);
  383. }
  384. },
  385. loadComplete: function(data) {
  386. console.log(data);
  387. itp_fn_grid_load_complete(data, STOCKMNG04010_GRID_ID, true, 'number', 'STOCKMNG04010', listObj.itp_STOCKMNG04010_search, listObj.empty, true, data.gridRecords, true);
  388. var ids = $(STOCKMNG04010_GRID_ID).getDataIDs();
  389. $.each(ids, function(idx, rowId) {
  390. $(STOCKMNG04010_GRID_ID).jqGrid('setCell', rowId, 'whsNm', '', ITP_GRID_COL_STYLE.link);
  391. });
  392. },
  393. onPaging: function(action) {
  394. itp_fn_grid_paging(STOCKMNG04010_GRID_ID, action, param);
  395. }
  396. };
  397. itp_fn_grid_make_remote(option);
  398. },
  399. clearData : function() {
  400. $(STOCKMNG04010_GRID_ID).jqGrid('clearGridData', true);
  401. $(STOCKMNG04010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  402. $(STOCKMNG04010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  403. $(STOCKMNG04010_GRID_EMPTY).show();
  404. },
  405. unload : function() {
  406. $.jgrid.gridUnload(STOCKMNG04010_GRID_ID);
  407. }
  408. }
  409. };
  410. /*상세화면 Object*/
  411. let viewObj = {
  412. init: function (param) {
  413. this.load(param);
  414. },
  415. load: function(param) {
  416. fn_ajax_call(WHS_MNG_INFO_WHS, param, this.callback, 'GET');
  417. },
  418. callback: function (result) {
  419. // console.log(result);
  420. pageObj.switchScreen('VIEW');
  421. $('#ITP_FORM_STOCKMNG04010_VIEW #ITP_FORM_STOCKMNG04010_VIEW_BRAND_ID').val(result.brandId);
  422. $('#ITP_FORM_STOCKMNG04010_VIEW #ITP_FORM_STOCKMNG04010_VIEW_STORE_ID').val(result.storeId);
  423. $('#ITP_FORM_STOCKMNG04010_VIEW #ITP_FORM_STOCKMNG04010_VIEW_WHS_ID').val(result.whsId);
  424. $('#ITP_FORM_STOCKMNG04010_VIEW .fnBrandNm').text(result.brandNm);
  425. $('#ITP_FORM_STOCKMNG04010_VIEW .fnStCd').text(result.whsStNm);
  426. $('#ITP_FORM_STOCKMNG04010_VIEW .fnWhsId').text(result.whsId);
  427. $('#ITP_FORM_STOCKMNG04010_VIEW .fnWhsNm').text(result.whsNm);
  428. $('#ITP_FORM_STOCKMNG04010_VIEW .fnTelNo').text(result.mgrTelNo);
  429. $('#ITP_FORM_STOCKMNG04010_VIEW .fnMgrNm').text(result.mgrNm);
  430. $('#ITP_FORM_STOCKMNG04010_VIEW .fnSpplyNm').text(result.storeNm ? result.storeNm : '');
  431. $('#ITP_FORM_STOCKMNG04010_VIEW .fnRegDtm').text(result.sysRegDttm);
  432. if(result.zipNo) {
  433. $('#ITP_FORM_STOCKMNG04010_VIEW .fnAddress').text('('+result.zipNo+') ' + result.addr1 + ' ' + result.addr2);
  434. }
  435. // 권한정보 리스트 조회
  436. viewObj.grid.init();
  437. },
  438. grid: {
  439. init: function() {
  440. this.unload();
  441. this.load();
  442. },
  443. load : function() {
  444. let param = $('#ITP_FORM_STOCKMNG04010_VIEW').serializeObject();
  445. param.gridSize = $.jgrid.defaults.rowNum;
  446. param.pagingYn = false; // 페이징안함
  447. var option = {
  448. gridId: STOCKMNG04010_VIEW_GRID_ID,
  449. colModel: gridColModel.view,
  450. param: JSON.stringify(param),
  451. url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
  452. pager: STOCKMNG04010_VIEW_GRID_PAGER,
  453. loadComplete: function(data) {
  454. itp_fn_grid_load_complete(data, STOCKMNG04010_VIEW_GRID_ID, true, undefined, 'STOCKMNG04010_VIEW');
  455. },
  456. onPaging: function(action) {
  457. var pagingFn = {
  458. callBack: function(args) {
  459. $(args).trigger('reloadGrid');
  460. }
  461. };
  462. if (itp_fn_check_grid_is_writing(STOCKMNG04010_VIEW_GRID_ID)) {
  463. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STOCKMNG04010_VIEW_GRID_ID);
  464. return 'stop';
  465. } else {
  466. itp_fn_grid_paging(STOCKMNG04010_VIEW_GRID_ID, action, param);
  467. }
  468. },
  469. onSortCol: function(index, columnIndex, sortOrder) {
  470. var sortingFn = {
  471. callBack: function(args) {
  472. $(args).trigger('reloadGrid');
  473. }
  474. };
  475. if (itp_fn_check_grid_is_writing(STOCKMNG04010_VIEW_GRID_ID)) {
  476. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STOCKMNG04010_VIEW_GRID_ID);
  477. return 'stop';
  478. } else {
  479. itp_fn_grid_sorting(STOCKMNG04010_VIEW_GRID_ID, index, sortOrder);
  480. }
  481. }
  482. };
  483. itp_fn_grid_make_remote(option);
  484. },
  485. clearData : function() {
  486. $(STOCKMNG04010_VIEW_GRID_ID).jqGrid('clearGridData', true);
  487. $(STOCKMNG04010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  488. $(STOCKMNG04010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  489. $(STOCKMNG04010_VIEW_GRID_EMPTY).show();
  490. },
  491. unload : function() {
  492. $.jgrid.gridUnload(STOCKMNG04010_VIEW_GRID_ID);
  493. }
  494. }
  495. };
  496. /*수정화면 Object*/
  497. let modifyObj = {
  498. init: function () {
  499. },
  500. button: {
  501. modify: function (param) {
  502. itp_fn_form_clear_validate(null, '#ITP_FORM_STOCKMNG04010_DETAIL');
  503. const brandIdVal = $('#ITP_FORM_STOCKMNG04010_VIEW_BRAND_ID').val();
  504. const whsIdVal = $('#ITP_FORM_STOCKMNG04010_VIEW_WHS_ID').val();
  505. const key = {brandId: brandIdVal, whsId: whsIdVal, viewCd: 'R'};
  506. var param = $.param(key);
  507. modifyObj.load(param);
  508. }
  509. },
  510. load: function(param) {
  511. fn_ajax_call(WHS_MNG_INFO_WHS, param, this.callback, 'GET');
  512. },
  513. callback: function (result) {
  514. // console.log(result);
  515. pageObj.switchScreen('MODIFY');
  516. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_VIEW_CD').val('U');
  517. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_BRAND_ID').val(result.brandId);
  518. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_STORE_ID').val(result.storeId);
  519. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_WHS_ID').val(result.whsId);
  520. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnBrandNm').text(result.brandNm);
  521. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnWhsId').text(result.whsId);
  522. $('#ITP_FORM_STOCKMNG04010_DETAIL .fnRegDtm').text(result.sysRegDttm);
  523. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_WHS_ST_CD').val(result.whsStCd);
  524. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_WHS_NM').val(result.whsNm);
  525. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_WHS_NM').val(result.whsNm);
  526. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_MGR_TEL_NO').val(result.mgrTelNo);
  527. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_MGR_NM').val(result.mgrNm);
  528. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_STORE_NM').val(result.storeNm);
  529. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_ZIPNO').val(result.zipNo);
  530. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_LOAD_ADDR').val(result.addr1);
  531. $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_DTL_ADDR').val(result.addr2);
  532. // 권한정보 리스트 조회
  533. modifyObj.grid.init();
  534. },
  535. grid: {
  536. init: function() {
  537. this.unload();
  538. this.load();
  539. },
  540. load : function() {
  541. let param = $('#ITP_FORM_STOCKMNG04010_DETAIL').serializeObject();
  542. param.gridSize = $.jgrid.defaults.rowNum;
  543. param.pagingYn = false; // 페이지안함
  544. var option = {
  545. gridId: STOCKMNG04010_DETAIL_GRID_ID,
  546. colModel: gridColModel.detail,
  547. param: JSON.stringify(param),
  548. url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
  549. pager: STOCKMNG04010_DETAIL_GRID_PAGER,
  550. multiselect: true,
  551. onCellSelect: function(rowId, cellIdx, cellValue) {
  552. STOCKMNG04010_DETAIL_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowId, cellIdx, STOCKMNG04010_DETAIL_GRID_LAST_ROW_ID, STOCKMNG04010_DETAIL_GRID_ID, ['location']);
  553. },
  554. loadComplete: function(data) {
  555. itp_fn_grid_load_complete(data, STOCKMNG04010_DETAIL_GRID_ID, true, undefined, 'STOCKMNG04010_DETAIL');
  556. },
  557. onPaging: function(action) {
  558. var pagingFn = {
  559. callBack: function(args) {
  560. $(args).trigger('reloadGrid');
  561. }
  562. };
  563. if (itp_fn_check_grid_is_writing(STOCKMNG04010_DETAIL_GRID_ID)) {
  564. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STOCKMNG04010_DETAIL_GRID_ID);
  565. return 'stop';
  566. } else {
  567. itp_fn_grid_paging(STOCKMNG04010_DETAIL_GRID_ID, action, param);
  568. }
  569. },
  570. onSortCol: function(index, columnIndex, sortOrder) {
  571. var sortingFn = {
  572. callBack: function(args) {
  573. $(args).trigger('reloadGrid');
  574. }
  575. };
  576. if (itp_fn_check_grid_is_writing(STOCKMNG04010_DETAIL_GRID_ID)) {
  577. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STOCKMNG04010_DETAIL_GRID_ID);
  578. return 'stop';
  579. } else {
  580. itp_fn_grid_sorting(STOCKMNG04010_DETAIL_GRID_ID, index, sortOrder);
  581. }
  582. }
  583. };
  584. itp_fn_grid_make_remote(option);
  585. },
  586. clearData : function() {
  587. $(STOCKMNG04010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
  588. $(STOCKMNG04010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  589. $(STOCKMNG04010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  590. $(STOCKMNG04010_DETAIL_GRID_EMPTY).show();
  591. },
  592. unload : function() {
  593. $.jgrid.gridUnload(STOCKMNG04010_DETAIL_GRID_ID);
  594. }
  595. }
  596. };
  597. /*신규화면 Object*/
  598. let createObj = {
  599. init: function () {
  600. this.unload();
  601. this.load();
  602. },
  603. button: {
  604. cancel: function() {
  605. listObj.grid.search();
  606. },
  607. save: function() {
  608. var detailViewCd = $('#ITP_FORM_STOCKMNG04010_DETAIL_VIEW_CD').val();
  609. const formId = '#ITP_FORM_STOCKMNG04010_DETAIL';
  610. itp_fn_form_clear_validate(null, formId);
  611. var vali_whsStatCd = itp_fn_form_validate(formId, formId + '_WHS_ST_CD', ['empty'], undefined); // 상태
  612. var vali_whsNm = itp_fn_form_validate(formId, formId + '_WHS_NM', ['empty'], undefined);
  613. if (vali_whsStatCd && vali_whsNm) {
  614. let gridInsertData = [];
  615. let gridUpdateData = [];
  616. let gridDeleteData = [];
  617. const rowData = $(STOCKMNG04010_DETAIL_GRID_ID).getRowData();
  618. // const keyValue = $(formId + '_WHS_ID').val();
  619. $.each(rowData, function(key, value) {
  620. if (value.viewCd != 'R') {
  621. // value.whsId = keyValue;
  622. if (value.viewCd == 'C') {
  623. gridInsertData.push(value);
  624. } else if (value.viewCd == 'U') {
  625. gridUpdateData.push(value);
  626. } else if (value.viewCd == 'D') {
  627. gridDeleteData.push(value);
  628. }
  629. }
  630. });
  631. let param = $(formId).serializeObject();
  632. param.gridInsertData = gridInsertData;
  633. param.gridUpdateData = gridUpdateData;
  634. param.gridDeleteData = gridDeleteData;
  635. //console.log(JSON.stringify(param));
  636. var searhFn = function() {
  637. ITP_FORM_STOCKMNG04010_DETAIL_IS_WRITING = false;
  638. listObj.grid.search();
  639. };
  640. fn_ajax_call(detailViewCd == 'C' ? WHS_MNG_ADD_WHS : WHS_MNG_MIDIFY_WHS, JSON.stringify(param), searhFn, 'POST');
  641. }
  642. }
  643. },
  644. load: function () {
  645. let param = $('#ITP_FORM_STOCKMNG04010_DETAIL').serializeObject();
  646. param.gridSize = $.jgrid.defaults.rowNum;
  647. param.pagingYn = false; // 페이지안함
  648. var option = {
  649. gridId: STOCKMNG04010_DETAIL_GRID_ID,
  650. colModel: gridColModel.detail,
  651. param: JSON.stringify(param),
  652. url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
  653. pager: STOCKMNG04010_DETAIL_GRID_PAGER,
  654. multiselect: true,
  655. loadComplete: function(data) {
  656. itp_fn_grid_load_complete(data, STOCKMNG04010_DETAIL_GRID_ID, true, undefined, 'STOCKMNG04010_DETAIL');
  657. },
  658. onPaging: function(action) {
  659. var pagingFn = {
  660. callBack: function(args) {
  661. $(args).trigger('reloadGrid');
  662. }
  663. };
  664. if (itp_fn_check_grid_is_writing(STOCKMNG04010_DETAIL_GRID_ID)) {
  665. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STOCKMNG04010_DETAIL_GRID_ID);
  666. return 'stop';
  667. } else {
  668. itp_fn_grid_paging(STOCKMNG04010_DETAIL_GRID_ID, action, param);
  669. }
  670. },
  671. onSortCol: function(index, columnIndex, sortOrder) {
  672. var sortingFn = {
  673. callBack: function(args) {
  674. $(args).trigger('reloadGrid');
  675. }
  676. };
  677. if (itp_fn_check_grid_is_writing(STOCKMNG04010_DETAIL_GRID_ID)) {
  678. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STOCKMNG04010_DETAIL_GRID_ID);
  679. return 'stop';
  680. } else {
  681. itp_fn_grid_sorting(STOCKMNG04010_DETAIL_GRID_ID, index, sortOrder);
  682. }
  683. }
  684. };
  685. itp_fn_grid_make_remote(option);
  686. },
  687. clearData : function() {
  688. $(STOCKMNG04010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
  689. $(STOCKMNG04010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  690. $(STOCKMNG04010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  691. $(STOCKMNG04010_DETAIL_GRID_EMPTY).show();
  692. },
  693. unload : function() {
  694. $.jgrid.gridUnload(STOCKMNG04010_DETAIL_GRID_ID);
  695. }
  696. };
  697. /*로케이션정보 Object*/
  698. let locInfoObj = {
  699. init: function () {
  700. if(AUTH_TYPE_CD === '10' || AUTH_TYPE_CD === '20') {
  701. this.action();
  702. } else {
  703. this.make();
  704. }
  705. },
  706. button: {
  707. addRow: function() {
  708. // $(STOCKMNG04010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
  709. // $(STOCKMNG04010_DETAIL_GRID_EMPTY).hide();
  710. STOCKMNG04010_DETAIL_GRID_LAST_ROW_ID = itp_fn_add_grid_row(STOCKMNG04010_DETAIL_GRID_ID, undefined, ['location'],'STOCKMNG04010_DETAIL');
  711. },
  712. delRow: function() {
  713. itp_fn_grid_del_row(STOCKMNG04010_DETAIL_GRID_ID);
  714. }
  715. },
  716. make: function() {
  717. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP').hide();
  718. $('#ITP_FORM_STOCKMNG04010_DELETE_AFFL_SHOP').hide();
  719. if(AFFL_SHOP_LIST) {
  720. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP_ID').val(AFFL_SHOP_LIST[0].afflShopId);
  721. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP_NM').val(AFFL_SHOP_LIST[0].afflShopNm);
  722. }
  723. if(AFFL_BRAND_LIST) {
  724. fn_make_select_brand(AFFL_BRAND_LIST, 'ITP_FORM_STOCKMNG04010_SEARCH_BRAND_ID');
  725. }
  726. },
  727. action: function () {
  728. var _this = this;
  729. // 로케이션정보 조회 버튼 클릭
  730. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP').on('click', function() {
  731. _this.popup('L');
  732. });
  733. // 로케이션정보 텍스트 삭제 버튼 클릭
  734. $('#ITP_FORM_STOCKMNG04010_DELETE_AFFL_SHOP').on('click', function() {
  735. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP_NM').val('');
  736. $('select#ITP_FORM_STOCKMNG04010_SEARCH_BRAND_ID option').remove();
  737. });
  738. // 신규등록 로케이션정보 조회 버튼 클릭
  739. $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP').on('click', function() {
  740. _this.popup('C');
  741. });
  742. // 신규등록 로케이션정보 텍스트 삭제 버튼 클릭
  743. $('#ITP_FORM_STOCKMNG04010_DETAIL_DELETE_AFFL_SHOP').on('click', function() {
  744. $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP_NM').val('');
  745. $('select#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_BRAND_ID option').remove();
  746. });
  747. },
  748. popup: function (view) {
  749. // 팝업
  750. var popFn = (view === 'C') ? this.callback.create : this.callback.list;
  751. fn_call_popup('biz', 'BIZPOP_AFFL_SHOP', '#ITP_ASIDE', popFn, null, 'S');
  752. },
  753. callback: {
  754. list: function(rowDataPop) {
  755. // console.log(rowDataPop);
  756. if(rowDataPop.AFFL_SHOP) {
  757. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP_ID').val(rowDataPop.AFFL_SHOP.afflShopId);
  758. $('#ITP_FORM_STOCKMNG04010_SEARCH_AFFL_SHOP_NM').val(rowDataPop.AFFL_SHOP.afflShopNm);
  759. }
  760. if(rowDataPop.AFFL_BRAND) {
  761. fn_make_select_brand(rowDataPop.AFFL_BRAND, 'ITP_FORM_STOCKMNG04010_SEARCH_BRAND_ID', true, '선택');
  762. }
  763. },
  764. create: function(rowDataPop) {
  765. // console.log(rowDataPop);
  766. if(rowDataPop.AFFL_SHOP) {
  767. // $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP_ID').val(rowDataPop.AFFL_SHOP.afflShopId);
  768. // $('#ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_AFFL_SHOP_NM').val(rowDataPop.AFFL_SHOP.afflShopNm);
  769. }
  770. if(rowDataPop.AFFL_BRAND) {
  771. fn_make_select_brand(rowDataPop.AFFL_BRAND, 'ITP_FORM_STOCKMNG04010_DETAIL_SEARCH_BRAND_ID', true, '선택');
  772. }
  773. }
  774. }
  775. };