ITP_SETTMNG03010.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645
  1. /********************************************************
  2. --------------------------------------------------------
  3. - Object 목록 -
  4. --------------------------------------------------------
  5. * const gridColModel = {} : 화면 Grid Object *
  6. * let pageObj = {} : 화면공통 Object *
  7. * let listObj = {} : 목록화면 Object *
  8. * let modifyObj = {} : 상세화면 Object *
  9. *******************************************************/
  10. /*화면 변수*/
  11. const SETTMNG03010_GRID_ID = '#ITP_SETTMNG03010_jqGrid';
  12. const SETTMNG03010_GRID_LIST = '#ITP_SETTMNG03010_jqGrid_list';
  13. const SETTMNG03010_GRID_PAGER = '#ITP_SETTMNG03010_jqGridPager';
  14. const SETTMNG03010_GRID_EMPTY = '#ITP_SETTMNG03010_jqGridEmpty';
  15. const SETTMNG03010_DETAIL_GRID_ID = '#ITP_SETTMNG03010_DETAIL_jqGrid';
  16. const SETTMNG03010_DETAIL_GRID_LIST = '#ITP_SETTMNG03010_DETAIL_jqGrid_list';
  17. const SETTMNG03010_DETAIL_GRID_PAGER = '#ITP_SETTMNG03010_DETAIL_jqGridPager';
  18. const SETTMNG03010_DETAIL_GRID_EMPTY = '#ITP_SETTMNG03010_DETAIL_jqGridEmpty';
  19. let ITP_FORM_SETTMNG03010_DETAIL_IS_DUPLICATE = false;
  20. let ITP_FORM_SETTMNG03010_DETAIL_IS_WRITING = false;
  21. let SETTMNG03010_DETAIL_GRID_LAST_ROW_ID;
  22. /*API URL*/
  23. let STTL_STATE_DETAIL_GRID_LIST = '/api/sttl/state/detail-grid-list';
  24. let STTL_STATE_STTL_END = '/api/sttl/state/sttl-end';
  25. let STTL_REQ_INFO_STTL = '/api/sttl/req/info-sttl';
  26. let STTL_REQ_STL_GRID_LIST = '/api/sttl/req/stl-grid-list';
  27. let LOGIN_AUTH_TYPE_CD;
  28. /*화면 Grid ColModel*/
  29. const gridColModel = {
  30. list: [
  31. {
  32. index: 'VIEW_CD', name: 'viewCd',
  33. label: ITP_MSG_LOCALE.label.viewCd,
  34. width: '10', fixed: false, align: 'center',
  35. sortable: false, hidden: true
  36. },
  37. {
  38. index: 'BRAND_NM', name: 'brandNm',
  39. label: "브랜드",
  40. width: '10', fixed: false, align: 'center',
  41. sortable: false, hidden: true
  42. },
  43. {
  44. index: 'STORE_NM', name: 'storeNm',
  45. label: "매장명",
  46. width: '10', fixed: false, align: 'left',
  47. sortable: false, hidden: false, classes: 'ui-ellipsis'
  48. },
  49. {
  50. index: 'LOAN_DVSN_NM', name: 'loanDvsnNm',
  51. label: "정산타입",
  52. width: '8', fixed: false, align: 'center',
  53. sortable: false, hidden: false
  54. },
  55. {
  56. index: 'SPPLY_NM', name: 'spplyNm',
  57. label: "공급사명",
  58. width: '10', fixed: false, align: 'center',
  59. sortable: false, hidden: true
  60. },
  61. {
  62. index: 'STTL_MGNT_UNQ_NO', name: 'sttlMgntUnqNo',
  63. label: "정산번호",
  64. width: '10', fixed: false, align: 'center',
  65. minwidth: 180,
  66. sortable: false, hidden: false
  67. },
  68. {
  69. index: 'STTL_ST_CD', name: 'sttlStCd',
  70. label: "정산상태코드",
  71. width: '8', fixed: false, align: 'center',
  72. sortable: false, hidden: true
  73. },
  74. {
  75. index: 'STTL_ST_NM', name: 'sttlStNm',
  76. label: "정산상태",
  77. width: '10', fixed: false, align: 'center',
  78. sortable: false, hidden: false
  79. },
  80. {
  81. index: 'STTL_REQ_DT', name: 'sttlReqDt',
  82. label: "정산요청일",
  83. width: '10', fixed: false, align: 'center',
  84. sortable: false, editable: false, edittype: 'text'
  85. },
  86. {
  87. index: 'STTL_REQ_AMT', name: 'sttlReqAmt',
  88. label: "정산요청금액",
  89. width: '10', fixed: false, align: 'right',
  90. sortable: false, editable: false, edittype: 'text',
  91. formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  92. },
  93. {
  94. index: 'STTL_DT', name: 'sttlDt',
  95. label: "정산확정일",
  96. width: '10', fixed: false, align: 'center',
  97. sortable: false, editable: false, edittype: 'text'
  98. },
  99. {
  100. index: 'STTL_REQ_AMT', name: 'sttlAmt',
  101. label: "정산확정금액",
  102. width: '10', fixed: false, align: 'right',
  103. sortable: false, editable: false, edittype: 'text',
  104. formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  105. },
  106. {
  107. index: 'UNPAID_AMT', name: 'unpaidAmt',
  108. label: "미납금액",
  109. width: '10', fixed: false, align: 'right',
  110. sortable: false, editable: false, edittype: 'text',
  111. formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  112. },
  113. {
  114. index: 'STTL_REG_MGR_NM', name: 'sttlRegMgrNm',
  115. label: "등록자",
  116. width: '10', fixed: false, align: 'center',
  117. sortable: false, editable: false, edittype: 'text', classes: 'ui-ellipsis'
  118. }
  119. ],
  120. view: [
  121. {
  122. index: 'VIEW_CD', name: 'viewCd',
  123. label: ITP_MSG_LOCALE.label.viewCd,
  124. width: '10', fixed: false, align: 'center',
  125. sortable: false, hidden: true
  126. },
  127. {
  128. index: 'STTL_MGNT_DTL_NO', name: 'sttlMgntDtlNo',
  129. label: '정산관리상세번호',
  130. width: '10', fixed: false, align: 'center',
  131. sortable: false, hidden: true
  132. },
  133. {
  134. index: 'BRAND_NM', name: 'brandNm',
  135. label: "브랜드",
  136. width: '10', fixed: false, align: 'center',
  137. sortable: false, hidden: true
  138. },
  139. {
  140. index: 'STORE_NM', name: 'storeNm',
  141. label: "매장명",
  142. width: '10', fixed: false, align: 'center',
  143. sortable: false, hidden: true
  144. },
  145. {
  146. index: 'ITEM_ID', name: 'itemId',
  147. label: "품목코드",
  148. width: '13', fixed: false, align: 'center',
  149. sortable: false, editable: false, edittype: 'text'
  150. },
  151. {
  152. index: 'ITEM_NM', name: 'itemNm',
  153. label: "품목명",
  154. width: '12', fixed: false, align: 'left',
  155. sortable: false, editable: false, edittype: 'text',
  156. classes: 'ui-ellipsis'
  157. },
  158. {
  159. index: 'UNIT', name: 'unit',
  160. label: "단위",
  161. width: '6', fixed: false, align: 'center',
  162. sortable: false, editable: false, edittype: 'text'
  163. },
  164. {
  165. index: 'UNIT_AMT', name: 'unitAmt',
  166. label: "단가",
  167. width: '8', fixed: false, align: 'right',
  168. sortable: false, editable: false, edittype: 'text',
  169. formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  170. },
  171. {
  172. index: 'PODR_QTY', name: 'podrQty',
  173. label: "발주수량",
  174. width: '8', fixed: false, align: 'right',
  175. sortable: false, editable: false, edittype: 'text',
  176. formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  177. },
  178. {
  179. index: 'DLV_QTY', name: 'dlvQty',
  180. label: "납품수량",
  181. width: '8', fixed: false, align: 'right',
  182. sortable: false, editable: false, edittype: 'text',
  183. formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  184. },
  185. {
  186. index: 'WHS_COL_QTY', name: 'whsColQty',
  187. label: "입고/수거수량",
  188. width: '8', fixed: false, align: 'right',
  189. sortable: false, editable: false, edittype: 'text',
  190. formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  191. },
  192. {
  193. index: 'WHS_COL_DT', name: 'whsColDt',
  194. label: "입고/수거일자",
  195. width: '8', fixed: false, align: 'center',
  196. sortable: false, editable: false, edittype: 'text'
  197. },
  198. {
  199. index: 'WHS_COL_AMT', name: 'whsColAmt',
  200. label: "입고/수거금액",
  201. width: '8', fixed: false, align: 'right',
  202. sortable: false, editable: false, edittype: 'text',
  203. formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  204. },
  205. {
  206. index: 'STTL_DVSN_NM', name: 'sttlDvsnNm',
  207. label: "정산구분",
  208. width: '6', fixed: false, align: 'center',
  209. sortable: false, editable: false, edittype: 'text'
  210. },
  211. {
  212. index: 'PODR_UNQ_NO', name: 'podrUnqNo',
  213. label: "발주번호",
  214. width: '10', fixed: false, align: 'center',
  215. sortable: false, editable: false, edittype: 'text'
  216. },
  217. {
  218. index: 'PODR_DTL_NO', name: 'podrDtlNo',
  219. label: "발주항번",
  220. width: '6', fixed: false, align: 'center',
  221. sortable: false, editable: false, edittype: 'text'
  222. }
  223. ]
  224. };
  225. require(['config'], function() {
  226. require([
  227. 'kakao.map.util'
  228. ], function($) {
  229. pageObj.init();
  230. });
  231. });
  232. /*화면공통 Object*/
  233. let pageObj = {
  234. init: function () {
  235. this.ui.init();
  236. this.event.init();
  237. },
  238. ui: {
  239. init: function () {
  240. this.view();
  241. this.grid();
  242. this.ready();
  243. },
  244. view: function() {
  245. // 버튼 권한설정
  246. fn_proc_btn_auth('SETTMNG03010');
  247. // 공통코드 표시
  248. $('select').each(function() {
  249. if($(this).data('select-code')) {
  250. fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
  251. }
  252. });
  253. // 조회일자 지정
  254. var now = new Date();
  255. var fromDate = new Date(now);
  256. fromDate.setDate(now.getDate() - 30);
  257. var toDate = new Date(now);
  258. $('#ITP_TAB_SETTMNG03010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
  259. $('#ITP_FORM_SETTMNG03010_SEARCH_FROM_DT').datepicker('setDate', fromDate);
  260. $('#ITP_FORM_SETTMNG03010_SEARCH_TO_DT').datepicker('setDate', toDate);
  261. // 권한에 따라 매장값 설정
  262. $('#ITP_FORM_SETTMNG03010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));
  263. LOGIN_AUTH_TYPE_CD = fn_make_user_info.get('authTpCd'); // 권한타입
  264. if(LOGIN_AUTH_TYPE_CD == '50') {
  265. $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_ID').val(fn_make_user_info.get('storeId'));
  266. $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_SPPLY_NM').val(fn_make_user_info.get('storeNm'));
  267. }
  268. },
  269. grid: function() {
  270. itp_fn_jqgrid_resize(SETTMNG03010_GRID_ID, SETTMNG03010_GRID_LIST, 'lg');
  271. listObj.empty.init();
  272. itp_fn_fire_window_resize();
  273. },
  274. ready: function() {
  275. listObj.init();
  276. }
  277. },
  278. event: {
  279. init: function () {
  280. this.button();
  281. this.change();
  282. },
  283. button: function () {
  284. // 버튼 클릭 이벤트
  285. $('button').each(function() {
  286. var id = $(this).attr('id');
  287. $(this).on('click', function() {
  288. switch (id) {
  289. case 'ITP_BTN_SETTMNG03010_SRH' : listObj.button.search(); break; // 조회 버튼 클릭
  290. case 'ITP_BTN_SETTMNG03010_CANCELLIST' : modifyObj.button.cancel(); break; // 취소/목록 버튼
  291. case 'ITP_BTN_SETTMNG03010_STTL_END' : modifyObj.button.endSttl(); break; // 정산확정 버튼
  292. case 'ITP_BTN_SETTMNG03010_SEARCH_STORE_POP' : listObj.button.storePop(); break; // 매장검색 팝업
  293. case 'ITP_BTN_SETTMNG03010_SEARCH_ERASE' : listObj.button.storeErase(); break; // 매장 지움
  294. case 'ITP_BTN_SETTMNG03010_EXCEL' : listObj.excelDown(); break; // 엑셀 다운로드
  295. }
  296. });
  297. });
  298. $('body').on('click', function(e) {
  299. var gridId = SETTMNG03010_DETAIL_GRID_ID.replace('#', '');
  300. var rids = $(SETTMNG03010_DETAIL_GRID_ID).jqGrid('getDataIDs');
  301. var last_row_id = rids[rids.length - 1];
  302. itp_fn_grid_reset_selection(e, last_row_id, gridId, 'SETTMNG03010_DETAIL');
  303. });
  304. },
  305. change: function() {
  306. $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_SPPLY_GUBUN').on('change', function() {
  307. var gubunVal = $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_SPPLY_GUBUN').val();
  308. if(gubunVal == '1') { // 매장
  309. $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_SPPLY_NM').attr('placeholder', '매장명');
  310. $(SETTMNG03010_GRID_ID).jqGrid('hideCol', ["spplyNm"]);
  311. $(SETTMNG03010_GRID_ID).jqGrid('showCol', ["storeNm"]);
  312. // $(SETTMNG03010_GRID_ID).setColProp('spplyNm', {hidden: true});
  313. // $(SETTMNG03010_GRID_ID).setColProp('storeNm', {hidden: false});
  314. } else if(gubunVal == '2') { // 공급업체
  315. $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_SPPLY_NM').attr('placeholder', '공급사명');
  316. $(SETTMNG03010_GRID_ID).jqGrid('hideCol', ["storeNm"]);
  317. $(SETTMNG03010_GRID_ID).jqGrid('showCol', ["spplyNm"]);
  318. // $(SETTMNG03010_GRID_ID).setColProp('storeNm', {hidden: true});
  319. // $(SETTMNG03010_GRID_ID).setColProp('spplyNm', {hidden: false});
  320. }
  321. listObj.button.search();
  322. // itp_fn_jqgrid_resize(SETTMNG03010_GRID_ID, SETTMNG03010_GRID_LIST, 'lg');
  323. });
  324. }
  325. },
  326. switchScreen: function(mode) {
  327. if(mode == 'LIST') { // 목록
  328. $('#ITP_BTN_SETTMNG03010_MODIFY').hide();
  329. $('#ITP_BTN_SETTMNG03010_CANCELLIST').hide();
  330. $('#ITP_BTN_SETTMNG03010_DELETE').hide();
  331. $('#ITP_BTN_SETTMNG03010_STTL_END').hide();
  332. if(LOGIN_AUTH_TYPE_CD == '50') { // 매장관리자
  333. $('#ITP_BTN_SETTMNG03010_SEARCH_STORE_POP').hide();
  334. $('#ITP_BTN_SETTMNG03010_SEARCH_ERASE').hide();
  335. } else {
  336. $('#ITP_BTN_SETTMNG03010_SEARCH_STORE_POP').show();
  337. $('#ITP_BTN_SETTMNG03010_SEARCH_ERASE').show();
  338. }
  339. fn_show_btn_auth('#ITP_BTN_SETTMNG03010_SRH');
  340. fn_show_btn_auth('#ITP_BTN_SETTMNG03010_NEWREG');
  341. $('#ITP_AJAX_SETTMNG03010_LIST_CONTAINER').show();
  342. $('#ITP_AJAX_SETTMNG03010_DETAIL_CONTAINER').hide();
  343. $('#ITP_BTN_SETTMNG03010_EXCEL').show();
  344. } else if(mode == 'DETAIL') { // 보기
  345. $('#ITP_BTN_SETTMNG03010_SRH').hide();
  346. $('#ITP_BTN_SETTMNG03010_NEWREG').hide();
  347. $('#ITP_BTN_SETTMNG03010_DELETE').hide();
  348. fn_show_btn_auth('#ITP_BTN_SETTMNG03010_STTL_END');
  349. fn_show_btn_auth('#ITP_BTN_SETTMNG03010_CANCELLIST');
  350. $('#ITP_AJAX_SETTMNG03010_LIST_CONTAINER').hide();
  351. $('#ITP_AJAX_SETTMNG03010_DETAIL_CONTAINER').show();
  352. }
  353. }
  354. };
  355. /*목록화면 Object*/
  356. let listObj = {
  357. init: function () {
  358. this.grid.init();
  359. },
  360. itp_SETTMNG03010_search: false,
  361. button: {
  362. search: function() {
  363. listObj.itp_SETTMNG03010_search = true;
  364. let param = $('#ITP_FORM_SETTMNG03010_SEARCH').serializeObject();
  365. param.gridSize = $.jgrid.defaults.rowNum;
  366. param.gridPage = $.jgrid.defaults.page;
  367. $(SETTMNG03010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
  368. },
  369. storePop: function() {
  370. fn_call_popup('biz', 'BIZPOP_BRAND_STORE', '#ITP_ASIDE', function(result) {
  371. // alert(JSON.stringify(result));
  372. $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_ID').val(result[0].storeId);
  373. $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_SPPLY_NM').val(result[0].storeNm);
  374. listObj.button.search();
  375. }, null, 'S');
  376. },
  377. storeErase: function() {
  378. $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_ID').val('');
  379. $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_SPPLY_NM').val('');
  380. listObj.button.search();
  381. }
  382. },
  383. empty: {
  384. init: function() {
  385. var _this = this;
  386. this.push();
  387. $(SETTMNG03010_GRID_EMPTY).on('click', function() {
  388. _this.back();
  389. _this.itp_SETTMNG03010_param.gridSize = $.jgrid.defaults.rowNum;
  390. $(SETTMNG03010_GRID_ID).setGridParam({'postData': JSON.stringify(_this.itp_SETTMNG03010_param)}).trigger('reloadGrid');
  391. });
  392. },
  393. itp_SETTMNG03010_param: {},
  394. push: function() {
  395. let param = $('#ITP_FORM_SETTMNG03010_SEARCH').serializeObject();
  396. listObj.itp_SETTMNG03010_param = param;
  397. },
  398. back: function() {
  399. $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_ID').val(listObj.itp_SETTMNG03010_param.sstoreId);
  400. $('#ITP_FORM_SETTMNG03010_SEARCH_STORE_NM').val(listObj.itp_SETTMNG03010_param.sstoreNm);
  401. $('#ITP_FORM_SETTMNG03010_SEARCH_FROM_DT').val(listObj.itp_SETTMNG03010_param.fromDt);
  402. $('#ITP_FORM_SETTMNG03010_SEARCH_TO_DT').val(listObj.itp_SETTMNG03010_param.toDt);
  403. $('#ITP_FORM_SETTMNG03010_SEARCH_ITEM_NM').val(listObj.itp_SETTMNG03010_param.sitemNm);
  404. }
  405. },
  406. grid: {
  407. init: function () {
  408. // 데이터 없을때
  409. listObj.empty.push();
  410. this.search();
  411. },
  412. colModel: gridColModel.list,
  413. search: function() {
  414. pageObj.switchScreen('LIST');
  415. this.unload();
  416. this.load();
  417. },
  418. load: function() {
  419. let param = $('#ITP_FORM_SETTMNG03010_SEARCH').serializeObject();
  420. param.gridSize = $.jgrid.defaults.rowNum;
  421. var option = {
  422. gridId: SETTMNG03010_GRID_ID,
  423. colModel: gridColModel.list,
  424. param: param,
  425. url: DOMAIN + STTL_STATE_DETAIL_GRID_LIST,
  426. pager: SETTMNG03010_GRID_PAGER,
  427. onCellSelect: function(rowId, cellIdx, cellValue) {
  428. var cm = $(this).jqGrid('getGridParam', 'colModel');
  429. var colNm = cm[cellIdx].name;
  430. if (colNm == 'sttlMgntUnqNo') {
  431. const sttlMgntUnqNoVal = $(this).jqGrid('getCell', rowId, 'sttlMgntUnqNo');
  432. const key = {sttlMgntUnqNo: sttlMgntUnqNoVal, viewCd: 'R'};
  433. var param = $.param(key);
  434. modifyObj.init(param);
  435. }
  436. },
  437. loadComplete: function(data) {
  438. console.log(data);
  439. itp_fn_grid_load_complete(data, SETTMNG03010_GRID_ID, true, 'number', 'SETTMNG03010', listObj.itp_SETTMNG03010_search, listObj.empty, true, data.gridRecords, true);
  440. var ids = $(SETTMNG03010_GRID_ID).getDataIDs();
  441. $.each(ids, function(idx, rowId) {
  442. $(SETTMNG03010_GRID_ID).jqGrid('setCell', rowId, 'sttlMgntUnqNo', '', ITP_GRID_COL_STYLE.link);
  443. });
  444. },
  445. onPaging: function(action) {
  446. itp_fn_grid_paging(SETTMNG03010_GRID_ID, action, param);
  447. }
  448. };
  449. itp_fn_grid_make_remote(option);
  450. },
  451. clearData : function() {
  452. $(SETTMNG03010_GRID_ID).jqGrid('clearGridData', true);
  453. $(SETTMNG03010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  454. $(SETTMNG03010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  455. $(SETTMNG03010_GRID_EMPTY).show();
  456. },
  457. unload : function() {
  458. $.jgrid.gridUnload(SETTMNG03010_GRID_ID);
  459. }
  460. },
  461. excelDown: function() {
  462. var param = {
  463. 'url': STTL_STATE_DETAIL_GRID_LIST,
  464. 'param': $('#ITP_FORM_SETTMNG03010_SEARCH').serializeObject(),
  465. 'gridColumns': $(SETTMNG03010_GRID_ID).jqGrid('getGridParam', 'colModel'),
  466. 'fileName': '정산현황.xlsx',
  467. 'sheetName': '정산현황리스트'
  468. };
  469. itp_fn_remote_to_excel(param);
  470. }
  471. };
  472. /*상세화면 Object*/
  473. let modifyObj = {
  474. init: function (param) {
  475. this.load(param);
  476. },
  477. button: {
  478. cancel: function() {
  479. listObj.grid.search();
  480. },
  481. endSttl: function() {
  482. // 정산확정
  483. const formId = '#ITP_FORM_SETTMNG03010_DETAIL';
  484. let param = $(formId).serializeObject();
  485. var confirmFn= {
  486. callBack: function() {
  487. var searhFn = function() {
  488. listObj.grid.search();
  489. };
  490. fn_ajax_call(STTL_STATE_STTL_END, JSON.stringify(param), searhFn, 'POST');
  491. }
  492. };
  493. var sttlReqAmt = parseInt($('#ITP_FORM_SETTMNG03010_DETAIL_STTL_REQ_AMT').val());
  494. var acctBal = parseInt($('#ITP_FORM_SETTMNG03010_DETAIL_ACCT_BAL').val());
  495. var rcptYn = $('#ITP_FORM_SETTMNG03010_DETAIL_RCPT_YN').val();
  496. if(acctBal > 0 && rcptYn != 'Y') {
  497. if(acctBal >= sttlReqAmt) {
  498. itp_fn_modal_confirm('계좌잔액에서 지급처리가 진행됩니다.\n정산 확정하시겠습니까?', confirmFn, null);
  499. } else {
  500. itp_fn_modal_confirm('일부금액이 계좌잔액에서 지급처리가 진행됩니다.\n정산 확정하시겠습니까?', confirmFn, null);
  501. }
  502. } else {
  503. itp_fn_modal_confirm('정산 확정하시겠습니까?', confirmFn, null);
  504. }
  505. }
  506. },
  507. load: function(param) {
  508. fn_ajax_call(STTL_REQ_INFO_STTL, param, this.callback, 'GET');
  509. },
  510. callback: function (result) {
  511. // console.log(result);
  512. pageObj.switchScreen('DETAIL');
  513. $('#ITP_FORM_SETTMNG03010_DETAIL_BRAND_ID').val(result.brandId);
  514. $('#ITP_FORM_SETTMNG03010_DETAIL_STORE_ID').val(result.storeId);
  515. $('#ITP_FORM_SETTMNG03010_DETAIL_STTL_MGNT_UNQ_NO').val(result.sttlMgntUnqNo);
  516. $('#ITP_FORM_SETTMNG03010_DETAIL_ACCT_BAL').val(result.acctBal); // 계좌잔액
  517. $('#ITP_FORM_SETTMNG03010_DETAIL_STTL_REQ_AMT').val(result.sttlReqAmt); // 정산요청금액
  518. $('#ITP_FORM_SETTMNG03010_DETAIL_RCPT_YN').val(result.rcptYn); // 수납여부
  519. $('#ITP_FORM_SETTMNG03010_DETAIL .fnBrandNm').text(result.brandNm);
  520. $('#ITP_FORM_SETTMNG03010_DETAIL .fnStoreNm').text(result.storeNm);
  521. $('#ITP_FORM_SETTMNG03010_DETAIL .fnLoanDvsnNm').text(result.loanDvsnNm);
  522. $('#ITP_FORM_SETTMNG03010_DETAIL .fnAcctBal').text(itp_fn_number_comma(result.acctBal));
  523. $('#ITP_FORM_SETTMNG03010_DETAIL .fnSttlRjctRsn').text(result.sttlRjctRsn == null ? '' : result.sttlRjctRsn);
  524. $('#ITP_FORM_SETTMNG03010_DETAIL .fnSttlStNm').text(result.sttlStNm);
  525. $('#ITP_FORM_SETTMNG03010_DETAIL .fnSttlReqDt').text(result.sttlReqDt); // 정산요청일자
  526. $('#ITP_FORM_SETTMNG03010_DETAIL .fnSttlReqAmt').text(itp_fn_number_comma(result.sttlReqAmt));
  527. // $('#ITP_FORM_SETTMNG03010_DETAIL_STTL_DT').val(result.sttlDt); // 정산일자
  528. $('#ITP_FORM_SETTMNG03010_DETAIL .fnSttlDt').text(result.sttlDt == null ? '' : result.sttlDt); // 정산요청일자
  529. $('#ITP_FORM_SETTMNG03010_DETAIL .fnSttlAmt').text(itp_fn_number_comma(result.sttlAmt));
  530. // $('#ITP_FORM_SETTMNG03010_DETAIL .fnRcptYn').text(result.rcptYn == null ? '' : result.rcptYn);
  531. // $('#ITP_FORM_SETTMNG03010_DETAIL .fnRcptDt').text(result.rcptDt == null ? '' : result.rcptDt);
  532. if(result.rcptYn == null) {
  533. $('#ITP_FORM_SETTMNG03010_DETAIL .fnRcptYnDate').text('');
  534. } else if(result.rcptYn == 'N') {
  535. $('#ITP_FORM_SETTMNG03010_DETAIL .fnRcptYnDate').text('N');
  536. } else if(result.rcptYn == 'Y') {
  537. $('#ITP_FORM_SETTMNG03010_DETAIL .fnRcptYnDate').text('Y (' + result.rcptDt + ')');
  538. }
  539. $('#ITP_FORM_SETTMNG03010_DETAIL .fnUnpaidAmt').text(itp_fn_number_comma(result.unpaidAmt));
  540. $('#ITP_FORM_SETTMNG03010_DETAIL .fnSysRegDttm').text(result.sysRegDttm);
  541. $('#ITP_FORM_SETTMNG03010_DETAIL .fnSysRegNm').text(result.sysRegNm);
  542. if(result.sttlStCd == 'ST10') { // 정산요청
  543. $('#ITP_BTN_SETTMNG03010_STTL_END').show();
  544. } else {
  545. $('#ITP_BTN_SETTMNG03010_STTL_END').hide();
  546. }
  547. // 리스트 조회
  548. modifyObj.grid.init();
  549. },
  550. grid: {
  551. init: function() {
  552. this.unload();
  553. this.load();
  554. },
  555. load : function() {
  556. let param = $('#ITP_FORM_SETTMNG03010_DETAIL').serializeObject();
  557. param.gridSize = $.jgrid.defaults.rowNum;
  558. param.pagingYn = false; // 페이징안함
  559. var option = {
  560. gridId: SETTMNG03010_DETAIL_GRID_ID,
  561. colModel: gridColModel.view,
  562. param: param,
  563. url: DOMAIN + STTL_REQ_STL_GRID_LIST,
  564. pager: SETTMNG03010_DETAIL_GRID_PAGER,
  565. loadComplete: function(data) {
  566. itp_fn_grid_load_complete(data, SETTMNG03010_DETAIL_GRID_ID, true, undefined, 'SETTMNG03010_DETAIL');
  567. },
  568. onPaging: function(action) {
  569. var pagingFn = {
  570. callBack: function(args) {
  571. $(args).trigger('reloadGrid');
  572. }
  573. };
  574. if (itp_fn_check_grid_is_writing(SETTMNG03010_DETAIL_GRID_ID)) {
  575. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, SETTMNG03010_DETAIL_GRID_ID);
  576. return 'stop';
  577. } else {
  578. itp_fn_grid_paging(SETTMNG03010_DETAIL_GRID_ID, action, param);
  579. }
  580. },
  581. onSortCol: function(index, columnIndex, sortOrder) {
  582. var sortingFn = {
  583. callBack: function(args) {
  584. $(args).trigger('reloadGrid');
  585. }
  586. };
  587. if (itp_fn_check_grid_is_writing(SETTMNG03010_DETAIL_GRID_ID)) {
  588. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, SETTMNG03010_DETAIL_GRID_ID);
  589. return 'stop';
  590. } else {
  591. itp_fn_grid_sorting(SETTMNG03010_DETAIL_GRID_ID, index, sortOrder);
  592. }
  593. }
  594. };
  595. itp_fn_grid_make_remote(option);
  596. },
  597. clearData : function() {
  598. $(SETTMNG03010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
  599. $(SETTMNG03010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  600. $(SETTMNG03010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  601. $(SETTMNG03010_DETAIL_GRID_EMPTY).show();
  602. },
  603. unload : function() {
  604. $.jgrid.gridUnload(SETTMNG03010_DETAIL_GRID_ID);
  605. }
  606. }
  607. };