ITP_STINFO06010.js 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013
  1. require(['config'], function() {
  2. require([
  3. ], function($) {
  4. pageObj.init();
  5. });
  6. });
  7. /********************************************************
  8. --------------------------------------------------------
  9. - Object 목록 -
  10. --------------------------------------------------------
  11. * const gridColModel = {} : 화면 Grid Object *
  12. * let pageObj = {} : 화면공통 Object *
  13. * let listObj = {} : 목록화면 Object *
  14. * let viewObj = {} : 상세화면 Object *
  15. * let modifyObj = {} : 수정화면 Object *
  16. * let createObj = {} : 신규화면 Object *
  17. *******************************************************/
  18. //[grid]
  19. /*화면 변수*/
  20. const STINFO06010_GRID_ID = '#ITP_STINFO06010_jqGrid';
  21. const STINFO06010_GRID_LIST = '#ITP_STINFO06010_jqGrid_list';
  22. const STINFO06010_GRID_PAGER = '#ITP_STINFO06010_jqGridPager';
  23. const STINFO06010_GRID_EMPTY = '#ITP_STINFO06010_jqGridEmpty';
  24. const STINFO06010_DETAIL_GRID_ID = '#ITP_STINFO06010_DETAIL_jqGrid';
  25. const STINFO06010_DETAIL_GRID_LIST = '#ITP_STINFO06010_DETAIL_jqGrid_list';
  26. const STINFO06010_DETAIL_GRID_PAGER = '#ITP_STINFO06010_DETAIL_jqGridPager';
  27. const STINFO06010_DETAIL_GRID_EMPTY = '#ITP_STINFO06010_DETAIL_jqGridEmpty';
  28. let STINFO06010_GRID_LAST_ROW_ID;
  29. /* 공통코드 리스트 */
  30. let ITP_COMMON_CD_DSTRBT_COST_UNIT = fn_make_common_cd_list(CODE_LIST, 'DSTRBT_COST_UNIT', true, '기본단위');
  31. let ITP_COMMON_CD_CURR = fn_make_common_cd_list(CODE_LIST, 'CURR', true, '통화');
  32. let ITP_COMMON_CD_UNIT_TARGET_CD = fn_make_common_cd_list(CODE_LIST, 'UNIT_TARGET_CD', true, '대상여부');
  33. /*API URL*/
  34. let API_DETAIL_GRID_LIST = '/api/itemunit/store-unit-grid-list'; // 목록
  35. let API_DETAIL_INFO = '/api/itemunit/info-storeitemunit'; // 상세
  36. let API_DETAIL_NEW = '/api/itemunit/new-info-storeitemunit'; // 신규
  37. let API_DETAIL_SAVE = '/api/itemunit/save-store-itemunit'; // 저장
  38. /*화면 Grid ColModel*/
  39. const gridColModel = {
  40. list: [
  41. {
  42. index: 'BRAND_ID', name: 'brandId',
  43. label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
  44. width: '10', fixed: false, align: 'center',
  45. sortable: false, hidden: true
  46. },
  47. {
  48. index: 'STORE_ID', name: 'storeId',
  49. label: ITP_MSG_LOCALE.label.storeId, //매장ID
  50. width: '10', fixed: false, align: 'center',
  51. sortable: false, hidden: true
  52. },
  53. {
  54. index: 'STORE_NM', name: 'storeNm',
  55. label: ITP_MSG_LOCALE.label.storeNm, //매장명
  56. width: '10', fixed: false, align: 'left',
  57. sortable: false, hidden: false, classes: 'ui-ellipsis'
  58. },
  59. {
  60. index: 'CONT_STT_DT', name: 'contSttDt',
  61. label: ITP_MSG_LOCALE.label.contSttDt, //계약시작일
  62. width: '10', fixed: false, align: 'center',
  63. sortable: false, hidden: false
  64. },
  65. {
  66. index: 'CONT_END_DT', name: 'contEndDt',
  67. label: ITP_MSG_LOCALE.label.contEndDt, //계약종료일
  68. width: '10', fixed: false, align: 'center',
  69. sortable: false, hidden: false
  70. },
  71. {
  72. index: 'SYS_REG_DTTM', name: 'sysRegDttm',
  73. label: ITP_MSG_LOCALE.label.sysRegDt, //계약생성일
  74. width: '10', fixed: false, align: 'center',
  75. sortable: false, hidden: false
  76. },
  77. {
  78. index: 'ITEM_CNT', name: 'itemCnt',
  79. label: ITP_MSG_LOCALE.label.itemCnt, //계약품목수
  80. width: '10', fixed: false, align: 'right',
  81. sortable: false, hidden: false
  82. }
  83. ],
  84. detail: [
  85. {
  86. index: 'VIEW_CD', name: 'viewCd',
  87. label: ITP_MSG_LOCALE.label.viewCd, //공급단가
  88. width: '6', fixed: false, align: 'center',
  89. sortable: false, hidden: true
  90. },
  91. {
  92. index: 'VIEW_NM', name: 'viewNm',
  93. label: ITP_MSG_LOCALE.label.viewNm, //공급단가
  94. width: '6', fixed: false, align: 'center',
  95. sortable: false, hidden: false
  96. },
  97. {
  98. index: 'BRAND_ID', name: 'brandId',
  99. label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
  100. width: '10', fixed: false, align: 'center',
  101. sortable: false, hidden: true
  102. },
  103. {
  104. index: 'BRAND_UNIT_UNQ_NO', name: 'brandUnitUnqNo',
  105. label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
  106. width: '10', fixed: false, align: 'center',
  107. sortable: false, hidden: true
  108. },
  109. {
  110. index: 'STORE_UNIT_UNQ_NO', name: 'storeUnitUnqNo',
  111. label: ITP_MSG_LOCALE.label.storeId, //브랜드ID
  112. width: '10', fixed: false, align: 'center',
  113. sortable: false, hidden: true
  114. },
  115. {
  116. index: 'ITEM_ID', name: 'itemId',
  117. label: ITP_MSG_LOCALE.label.itemId, //품목번호
  118. width: '10', fixed: false, align: 'center',
  119. sortable: false, hidden: false
  120. },
  121. {
  122. index: 'ITEM_NM', name: 'itemNm',
  123. label: ITP_MSG_LOCALE.label.itemNm, //품목명
  124. width: '12', fixed: false, align: 'left',
  125. sortable: false, hidden: false, classes: 'ui-ellipsis'
  126. },
  127. {
  128. index: 'CONT_STT_DT', name: 'contSttDt',
  129. label: ITP_MSG_LOCALE.label.contSttDt, //계약시작일
  130. width: '7', fixed: false, align: 'center',
  131. sortable: false, hidden: false
  132. },
  133. {
  134. index: 'CONT_END_DT', name: 'contEndDt',
  135. label: ITP_MSG_LOCALE.label.contEndDt, //계약종료일
  136. width: '7', fixed: false, align: 'center',
  137. sortable: false, hidden: false
  138. },
  139. {
  140. index: 'UNIT', name: 'unit',
  141. label: ITP_MSG_LOCALE.label.unit, //기본단위
  142. width: '6', fixed: false, align: 'center',
  143. sortable: false, editable: false, formatter: 'select', edittype: 'select',
  144. editoptions: {value: ITP_COMMON_CD_DSTRBT_COST_UNIT}
  145. },
  146. {
  147. index: 'CURR', name: 'curr',
  148. label: ITP_MSG_LOCALE.label.curr, //통화
  149. width: '6', fixed: false, align: 'center',
  150. sortable: false, editable: true, formatter: 'select', edittype: 'select',
  151. editoptions: {value: ITP_COMMON_CD_CURR},
  152. classes: 'input_color',
  153. editrules: {required: true}
  154. },
  155. {
  156. index: 'UNIT_AMT', name: 'unitAmt',
  157. label: ITP_MSG_LOCALE.label.unitAmt, //단가
  158. width: '7', fixed: false, align: 'right',
  159. sortable: true, editable: true, edittype: 'text',
  160. classes: 'input_color',
  161. editrules: {required: true},
  162. editoptions: {"onKeyup": "this.value=this.value.replace(/[^0-9]/g,'');", maxlength: 10},
  163. formatter: 'integer', formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  164. },
  165. {
  166. index: 'UNIT_TARGET_CD', name: 'unitTargetCd',
  167. label: ITP_MSG_LOCALE.label.unitTargetCd, //대상여부
  168. width: '7', fixed: false, align: 'center',
  169. classes: 'input_color',
  170. sortable: false, editable: true, formatter: 'select', edittype: 'select',
  171. editoptions: {value: ITP_COMMON_CD_UNIT_TARGET_CD},
  172. editrules: {required: true}
  173. },
  174. {
  175. index: 'SPPLY_UNIT_AMT', name: 'spplyUnitAmt',
  176. label: ITP_MSG_LOCALE.label.spplyUnitAmt, //공급단가
  177. width: '7', fixed: false, align: 'right',
  178. sortable: false, hidden: false,
  179. formatter: 'integer', formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  180. },
  181. {
  182. index: 'SPPLY_AMT', name: 'spplyAmt', label: '공급대표단가', hidden: true
  183. },
  184. {
  185. index: 'SPPLY_NM', name: 'spplyNm',
  186. label: ITP_MSG_LOCALE.label.spplyNm, //공급업체명
  187. width: '8', fixed: false, align: 'left',
  188. sortable: false, hidden: false, classes: 'ui-ellipsis'
  189. }
  190. ],
  191. sdetail: [
  192. {
  193. index: 'VIEW_CD', name: 'viewCd',
  194. label: ITP_MSG_LOCALE.label.viewCd, //공급단가
  195. width: '6', fixed: false, align: 'center',
  196. sortable: false, hidden: true
  197. },
  198. {
  199. index: 'VIEW_NM', name: 'viewNm',
  200. label: ITP_MSG_LOCALE.label.viewNm, //공급단가
  201. width: '6', fixed: false, align: 'center',
  202. sortable: false, hidden: false
  203. },
  204. {
  205. index: 'BRAND_ID', name: 'brandId',
  206. label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
  207. width: '10', fixed: false, align: 'center',
  208. sortable: false, hidden: true
  209. },
  210. {
  211. index: 'BRAND_UNIT_UNQ_NO', name: 'brandUnitUnqNo',
  212. label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
  213. width: '10', fixed: false, align: 'center',
  214. sortable: false, hidden: true
  215. },
  216. {
  217. index: 'STORE_UNIT_UNQ_NO', name: 'storeUnitUnqNo',
  218. label: ITP_MSG_LOCALE.label.storeId, //브랜드ID
  219. width: '10', fixed: false, align: 'center',
  220. sortable: false, hidden: true
  221. },
  222. {
  223. index: 'ITEM_ID', name: 'itemId',
  224. label: ITP_MSG_LOCALE.label.itemId, //품목번호
  225. minwidth: 200,
  226. width: '13', fixed: false, align: 'center',
  227. sortable: false, hidden: false
  228. },
  229. {
  230. index: 'ITEM_NM', name: 'itemNm',
  231. label: ITP_MSG_LOCALE.label.itemNm, //품목명
  232. width: '13', fixed: false, align: 'left',
  233. minwidth: 200,
  234. sortable: false, hidden: false, classes: 'ui-ellipsis'
  235. },
  236. {
  237. index: 'CONT_STT_DT', name: 'contSttDt',
  238. label: ITP_MSG_LOCALE.label.contSttDt, //계약시작일
  239. width: '7', fixed: false, align: 'center',
  240. sortable: false, hidden: false
  241. },
  242. {
  243. index: 'CONT_END_DT', name: 'contEndDt',
  244. label: ITP_MSG_LOCALE.label.contEndDt, //계약종료일
  245. width: '7', fixed: false, align: 'center',
  246. sortable: false, hidden: false
  247. },
  248. {
  249. index: 'UNIT', name: 'unit',
  250. label: ITP_MSG_LOCALE.label.unit, //기본단위
  251. width: '6', fixed: false, align: 'center',
  252. sortable: false, editable: false, formatter: 'select', edittype: 'select',
  253. editoptions: {value: ITP_COMMON_CD_DSTRBT_COST_UNIT}
  254. },
  255. {
  256. index: 'CURR', name: 'curr',
  257. label: ITP_MSG_LOCALE.label.curr, //통화
  258. width: '6', fixed: false, align: 'center',
  259. sortable: false, editable: false, formatter: 'select', edittype: 'select',
  260. editoptions: {value: ITP_COMMON_CD_CURR}
  261. },
  262. {
  263. index: 'UNIT_AMT', name: 'unitAmt',
  264. label: ITP_MSG_LOCALE.label.unitAmt, //단가
  265. width: '10', fixed: false, align: 'right',
  266. sortable: true, editable: false, edittype: 'text',
  267. formatter: 'integer', formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  268. },
  269. {
  270. index: 'UNIT_TARGET_CD', name: 'unitTargetCd',
  271. label: ITP_MSG_LOCALE.label.unitTargetCd, //대상여부
  272. width: '6', fixed: false, align: 'center',
  273. sortable: false, editable: false, formatter: 'select', edittype: 'select',
  274. editoptions: {value: ITP_COMMON_CD_UNIT_TARGET_CD}
  275. }
  276. ]
  277. };
  278. /*화면공통 Object*/
  279. let pageObj = {
  280. init: function () {
  281. this.ui.init();
  282. this.event.init();
  283. this.action();
  284. },
  285. skipChange: false,
  286. screenMode: 'LIST',
  287. ui: {
  288. init: function () {
  289. this.view();
  290. this.grid();
  291. listObj.empty.init();
  292. listObj.init();
  293. },
  294. view: function() {
  295. // 버튼 권한설정
  296. fn_proc_btn_auth('STINFO06010');
  297. // 공통코드 표시
  298. $('select').each(function() {
  299. if($(this).data('select-code')) {
  300. fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
  301. }
  302. });
  303. // 조회일자 지정
  304. var now = new Date();
  305. $('#ITP_FORM_STINFO06010_SEARCH_FROM_DT').val(itp_fn_get_before_month() );
  306. $('#ITP_FORM_STINFO06010_SEARCH_TO_DT').val(itp_fn_get_today_ko() );
  307. $('#ITP_TAB_STINFO06010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
  308. $('#ITP_FORM_STINFO06010_SEARCH_FROM_DT').datepicker();
  309. $('#ITP_FORM_STINFO06010_SEARCH_TO_DT').datepicker();
  310. $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker('setDate', new Date());
  311. $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_TO_DT').datepicker('setDate', itp_fn_date_add('Y', 1));
  312. },
  313. grid: function() {
  314. }
  315. },
  316. event: {
  317. init: function () {
  318. this.button();
  319. },
  320. button: function () {
  321. // 버튼 클릭 이벤트
  322. $('button').each(function() {
  323. var id = $(this).attr('id');
  324. $(this).on('click', function(e) {
  325. switch (id) {
  326. case 'ITP_BTN_STINFO06010_SRH' : listObj.button.search(); break; // 조회 버튼 클릭
  327. case 'ITP_BTN_STINFO06010_NEWREG' : listObj.button.create(); break; // 신규등록 버튼
  328. case 'ITP_BTN_STINFO06010_CANCELLIST' : listObj.grid.search(); break; // 취소/목록 버튼
  329. case 'ITP_BTN_STINFO06010_SAVE' : createObj.button.save(); break; // 저장 버튼
  330. case 'ITP_BTN_STINFO06010_EXCEL' : pageObj.excelDown(); break; // 엑셀 다운로드 버튼
  331. case 'ITP_BTN_STINFO06010_DETAIL_EXCEL' : pageObj.excelDtlDown(); break; // 엑셀 다운로드 버튼
  332. case 'ITP_BTN_STINFO06010_CALCULATE' :
  333. e.preventDefault();
  334. e.stopPropagation();
  335. itp_fn_grid_save_rows(STINFO06010_DETAIL_GRID_ID);
  336. pageObj.calculate();
  337. break;
  338. default: break;
  339. }
  340. });
  341. });
  342. var fnDateChange = function(cellname, data) {
  343. var cnt = $(STINFO06010_DETAIL_GRID_ID).getGridParam("reccount");
  344. for (var i=1; i<=cnt; i++) {
  345. $(STINFO06010_DETAIL_GRID_ID).jqGrid('setCell', i, cellname, data);
  346. }
  347. };
  348. $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker().on('changeDate', function () {
  349. fnDateChange('contSttDt', $(this).val());
  350. });
  351. $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').datepicker().on('changeDate', function () {
  352. fnDateChange('contEndDt', $(this).val());
  353. });
  354. $('body').on('click', function(e) {
  355. var gridId = STINFO06010_DETAIL_GRID_ID.replace('#', '');
  356. itp_fn_grid_reset_selection(e, STINFO06010_GRID_LAST_ROW_ID, gridId, 'STINFO06010');
  357. var preItemId = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getCell', STINFO06010_GRID_LAST_ROW_ID, 'itemId');
  358. if(preItemId !== undefined) {
  359. var preUnitAmt = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getCell', STINFO06010_GRID_LAST_ROW_ID, 'unitAmt');
  360. var cnt = $(STINFO06010_DETAIL_GRID_ID).getGridParam("reccount");
  361. var itemId;
  362. var viewCd ;
  363. for (var i = 1; i <= cnt ; i++) {
  364. itemId = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getCell', i, 'itemId');
  365. viewCd = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getCell', i, 'viewCd');
  366. if(preItemId == itemId) {
  367. if (viewCd != "C") {
  368. $(STINFO06010_DETAIL_GRID_ID).jqGrid('setCell', i, 'viewCd', 'U');
  369. }
  370. $(STINFO06010_DETAIL_GRID_ID).jqGrid('setCell', i, 'unitAmt', preUnitAmt);
  371. }
  372. }
  373. }
  374. });
  375. }
  376. },
  377. action: function () {
  378. var _this = this;
  379. //시작일자 변경시
  380. $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').focusin(function() {
  381. $(this).data('pre', $(this).val());
  382. });
  383. $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').focusin(function() {
  384. $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').data('pre', $(this).val());
  385. });
  386. $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').change(function() {
  387. if(pageObj.skipChange) return;
  388. console.log("xxxxxxx pageObj.skipChange == ", pageObj.skipChange)
  389. if(pageObj.screenMode === 'MODIFY') {
  390. var preDate = $(this).data('pre');
  391. var topreDate = $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').data('pre');
  392. var chgDate = $(this).val();
  393. var endDt = $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').val();
  394. if (preDate > endDt) {
  395. if ( preDate != chgDate) {
  396. alert("계약 종료일은 시작일보다 이전일수 없습니다.");
  397. $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker('setDate', new Date(preDate));
  398. $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_TO_DT').datepicker('setDate', new Date(topreDate));
  399. return;
  400. }
  401. } else {
  402. if ( preDate != chgDate) {
  403. alert("계약 시작일은 변경할 수 없습니다.");
  404. $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker('setDate', new Date(preDate));
  405. return;
  406. }
  407. }
  408. }
  409. });
  410. },
  411. switchScreen: function(mode) {
  412. this.screenMode = mode;
  413. $('.itp_det_head').find('button[id^="ITP_BTN_STINFO06010_"]').each(function(i) {
  414. $(this).hide();
  415. });
  416. $('#ITP_TAB_STINFO06010').find('div[id$="_CONTAINER"]').each(function(i) {
  417. $(this).hide();
  418. });
  419. $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val('');
  420. $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').val('');
  421. /*
  422. if(mode == 'ADD') {
  423. $("#ITP_FORM_STINFO06010_DETAIL_FROM_DT").removeAttr('readonly');
  424. } else {
  425. //$('#ITP_FORM_STINFO06010_DETAIL .contDt').hide();
  426. //$('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').attr('readonly','true');
  427. document.getElementById('ITP_FORM_STINFO06010_DETAIL_FROM_DT').readOnly = true;
  428. }
  429. */
  430. $('#ITP_FORM_STINFO06010_DETAIL .contDt').show();
  431. //if(pageObj.screenMode === 'ADD')
  432. if(mode == 'LIST') { // 목록
  433. itp_fn_fire_window_resize();
  434. $('#ITP_AJAX_STINFO06010_LIST_CONTAINER').show();
  435. if(fn_make_user_info.get('authTpCd') === '50') {
  436. fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_SRH']);
  437. $('#ITP_FORM_STINFO06010_SEARCH_STORE_ID').val(fn_make_user_info.get('storeId'));
  438. $('#ITP_FORM_STINFO06010_SEARCH_STORE').hide();
  439. } else {
  440. fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_SRH', '#ITP_BTN_STINFO06010_NEWREG']);
  441. $('#ITP_BTN_STINFO06010_EXCEL').show();
  442. $('#ITP_BTN_STINFO06010_DETAIL_DELETE_STORE').show();
  443. }
  444. $('#ITP_FORM_STINFO06010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));
  445. } else if(mode == 'ADD') { // 등록
  446. itp_fn_form_clear_validate(null, '#ITP_FORM_STINFO07010_DETAIL');
  447. $('#ITP_FORM_STINFO06010_DETAIL').find('input, textarea, select, checkbox').each(function(i, elem) {
  448. $(this).attr('id') === 'ITP_FORM_STINFO06010_DETAIL_VIEW_CD' ? $(this).val('C') : $(this).val('');
  449. if(elem.type === 'select') {
  450. $(this).val('').prop('selected', true);
  451. }
  452. });
  453. $('#ITP_AJAX_STINFO06010_DETAIL_CONTAINER').show();
  454. $('#ITP_BTN_STINFO06010_SRH').show();
  455. fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_CANCELLIST', '#ITP_BTN_STINFO06010_SAVE']);
  456. $('#ITP_BTN_STINFO06010_DETAIL_SEARCH_STORE').removeAttr('disabled');
  457. $('#ITP_BTN_STINFO06010_DETAIL_DELETE_STORE').removeAttr('disabled');
  458. // 브랜드그룹 정보 설정
  459. $('#ITP_FORM_STINFO06010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
  460. $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker('setDate', new Date());
  461. $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_TO_DT').datepicker('setDate', itp_fn_date_add('Y', 1));
  462. $('#ITP_BTN_STINFO06010_DETAIL_EXCEL').show();
  463. $('#ITP_BTN_STINFO06010_CALCULATE').show();
  464. $('#ITP_STINFO06010_UNIT_STDD').val('');
  465. if(fn_make_user_info.get('authTpCd') === '50') {
  466. $('#ITP_BTN_STINFO06010_CALCULATE_FORM').hide();
  467. }
  468. //return itp_fn_date_format(date.setDate(-1), 2);
  469. } else if(mode == 'MODIFY') { // 수정
  470. $('#ITP_AJAX_STINFO06010_DETAIL_CONTAINER').show();
  471. if(fn_make_user_info.get('authTpCd') === '50') {
  472. fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_CANCELLIST']);
  473. } else {
  474. fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_CANCELLIST', '#ITP_BTN_STINFO06010_SAVE']);
  475. }
  476. $('#ITP_BTN_STINFO06010_DETAIL_SEARCH_STORE').attr('disabled', true);
  477. $('#ITP_BTN_STINFO06010_DETAIL_DELETE_STORE').attr('disabled', true);
  478. // $('#ITP_BTN_STINFO06010_SRH').show();
  479. $('#ITP_BTN_STINFO06010_DETAIL_EXCEL').show();
  480. $('#ITP_BTN_STINFO06010_CALCULATE').show();
  481. // 브랜드그룹 정보 설정
  482. $('#ITP_FORM_STINFO06010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
  483. $('#ITP_STINFO06010_UNIT_STDD').val('');
  484. if(fn_make_user_info.get('authTpCd') === '50') {
  485. $('#ITP_BTN_STINFO06010_CALCULATE_FORM').hide();
  486. }
  487. } else if(mode == 'VIEW') { // 보기
  488. $('#ITP_AJAX_STINFO06010_VIEW_CONTAINER').show();
  489. fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_MODIFY', '#ITP_BTN_STINFO06010_CANCELLIST']);
  490. if(fn_make_user_info.get('authTpCd') === '50') {
  491. $('#ITP_BTN_STINFO06010_CALCULATE_FORM').hide();
  492. }
  493. }
  494. this.screenMode = mode;
  495. },
  496. excelDown: function() {
  497. var param = {
  498. 'url': API_DETAIL_GRID_LIST,
  499. 'param': $('#ITP_FORM_STINFO06010_SEARCH').serializeObject(),
  500. 'gridColumns': $(STINFO06010_GRID_ID).jqGrid('getGridParam', 'colModel'),
  501. 'fileName': '매장단가관리.xlsx',
  502. 'sheetName': '매장단가관리'
  503. };
  504. itp_fn_remote_to_excel(param);
  505. },
  506. excelDtlDown: function() {
  507. var storeId = $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val();
  508. var contSttDt = $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val();
  509. var contEndDt = $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val();
  510. const key = {brandId:fn_make_user_info.get('brandId'), storeId: storeId, contSttDt: contSttDt, contEndDt: contEndDt, viewCd: 'R'};
  511. var param = {
  512. 'url': API_DETAIL_INFO,
  513. 'param': key,
  514. 'gridColumns': $(STINFO06010_DETAIL_GRID_ID).jqGrid('getGridParam', 'colModel'),
  515. 'fileName': '매장단가정보.xlsx',
  516. 'sheetName': '매장단가상세정보'
  517. };
  518. itp_fn_remote_to_excel(param);
  519. },
  520. calculate: function() {
  521. var selectedIds = $(STINFO06010_DETAIL_GRID_ID).getGridParam('selarrrow');
  522. if( selectedIds.length==0 ) {
  523. return alert("일괄적용할 품목을 선택해 주세요")
  524. }
  525. // var ids = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getDataIDs');
  526. for (var i = 0; i < selectedIds.length; i++) {
  527. var rowData = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getRowData', selectedIds[i]);
  528. if (rowData.spplyUnitAmt == null || rowData.spplyUnitAmt == '') {
  529. return false;
  530. }
  531. var unitAmt = Math.floor(Number(rowData.spplyAmt) / 100 * (Number($('#ITP_STINFO06010_UNIT_STDD').val()) + 100));
  532. $(STINFO06010_DETAIL_GRID_ID).jqGrid('setRowData', selectedIds[i], {unitAmt: unitAmt});
  533. }
  534. }
  535. };
  536. /*목록화면 Object*/
  537. let listObj = {
  538. init: function () {
  539. this.grid.init();
  540. },
  541. itp_STINFO06010_search: false,
  542. button: {
  543. search: function() {
  544. if(pageObj.screenMode=='LIST') {
  545. listObj.itp_STINFO06010_search = true;
  546. let param = $('#ITP_FORM_STINFO06010_SEARCH').serializeObject();
  547. param.gridSize = $.jgrid.defaults.rowNum;
  548. param.gridPage = $.jgrid.defaults.page;
  549. $(STINFO06010_GRID_ID).data('grid-param',param);
  550. $(STINFO06010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
  551. } else {
  552. listObj.itp_STINFO06010_search = true;
  553. let param = $('#ITP_FORM_STINFO06010_DETAIL').serializeObject();
  554. $(STINFO06010_DETAIL_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
  555. }
  556. },
  557. create: function() {
  558. var param = {'brandId':fn_make_user_info.get('brandId')};
  559. createObj.init(param);
  560. }
  561. },
  562. empty: {
  563. init: function() {
  564. },
  565. itp_STINFO06010_param: {},
  566. push: function() {
  567. },
  568. back: function() {
  569. }
  570. },
  571. grid: {
  572. init: function () {
  573. // 데이터 없을때
  574. itp_fn_jqgrid_resize(STINFO06010_GRID_ID, STINFO06010_GRID_LIST, 'lg');
  575. listObj.empty.push();
  576. this.search();
  577. },
  578. search: function() {
  579. pageObj.switchScreen('LIST');
  580. this.unload();
  581. this.load();
  582. },
  583. load: function() {
  584. let param = $('#ITP_FORM_STINFO06010_SEARCH').serializeObject();
  585. param.gridSize = $.jgrid.defaults.rowNum;
  586. param.sbrandId = fn_make_user_info.get('brandId');
  587. param.sstoreId = fn_make_user_info.get('storeId');
  588. var option = {
  589. gridId: STINFO06010_GRID_ID,
  590. colModel: gridColModel.list,
  591. param: param,
  592. url: DOMAIN + API_DETAIL_GRID_LIST,
  593. pager: STINFO06010_GRID_PAGER,
  594. onCellSelect: function(rowId, cellIdx, cellValue) {
  595. var cm = $(this).jqGrid('getGridParam', 'colModel');
  596. var colNm = cm[cellIdx].name;
  597. if (colNm === 'contSttDt') {
  598. const storeId = $(this).jqGrid('getCell', rowId, 'storeId');
  599. const storeNm = $(this).jqGrid('getCell', rowId, 'storeNm');
  600. const contSttDt = $(this).jqGrid('getCell', rowId, 'contSttDt');
  601. const contEndDt = $(this).jqGrid('getCell', rowId, 'contEndDt');
  602. $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val(storeId);
  603. $('#ITP_FORM_STINFO06010_DETAIL_STORE_NM').val(storeNm);
  604. const key = {brandId:fn_make_user_info.get('brandId'), storeId: storeId, contSttDt: contSttDt, contEndDt: contEndDt, viewCd: 'R'};
  605. // var param = $.param(key);
  606. modifyObj.init(key);
  607. }
  608. },
  609. loadComplete: function(data) {
  610. itp_fn_grid_load_complete(data, STINFO06010_GRID_ID, true, 'number', 'STINFO06010', listObj.itp_STINFO06010_search, listObj.empty, true, data.gridRecords, true);
  611. var ids = $(STINFO06010_GRID_ID).getDataIDs();
  612. $.each(ids, function(idx, rowId) {
  613. $(STINFO06010_GRID_ID).jqGrid('setCell', rowId, 'contSttDt', '', ITP_GRID_COL_STYLE.link);
  614. });
  615. const self=this;
  616. if(self.sortUse) return;
  617. self.sortUse=true;
  618. self['sort3']='asc';
  619. const th=$(STINFO06010_GRID_LIST).find('.ui-jqgrid-labels .ui-th-div').eq(3);
  620. th.find('.s-ico').show();
  621. th.find('.ui-grid-ico-sort').hide();
  622. th.find('.glyphicon-triangle-bottom').show();//asc 는 bottom 으로 desc 는 top
  623. //$(STINFO06010_GRID_LIST).find('.ui-jqgrid-labels .ui-th-div').css('cursor','default');
  624. $(STINFO06010_GRID_LIST).find('th').eq(3).css({cursor:'pointer',background:'#FFEBCD'});
  625. $(STINFO06010_GRID_LIST).find('.ui-jqgrid-labels>th').on('click', function() {
  626. const idx=$(this).index();
  627. console.log("xxxx grid header click xxxxxxx index=="+idx, param );
  628. if(idx==3 || idx==5 ) {
  629. var field='',sort=self['sort'+idx];
  630. if(sort ) {
  631. sort=sort=='asc'?'desc':'asc';
  632. } else {
  633. // 등록일 내림차순, 제목 오름차순
  634. sort=idx==3? 'asc':idx==5? 'desc': 'asc';
  635. }
  636. const icon=sort=='asc'? '.glyphicon-triangle-bottom': '.glyphicon-triangle-top';
  637. self['sort'+idx]=sort;
  638. if(idx==3) {
  639. field='storeNm';
  640. } else if(idx==5) {
  641. field='brandNm';
  642. }
  643. param.page=1;
  644. param.sidx=field;
  645. param.sord=sort;
  646. $(STINFO06010_GRID_ID).jqGrid('setGridParam',{
  647. postData:JSON.stringify(param)
  648. }).trigger('reloadGrid');
  649. $(this).find('.s-ico').show();
  650. $(this).find('.ui-grid-ico-sort').hide();
  651. $(this).find(icon).show();
  652. }
  653. });
  654. },
  655. onPaging: function(action) {
  656. itp_fn_grid_paging(STINFO06010_GRID_ID, action, param);
  657. }
  658. };
  659. itp_fn_grid_make_remote(option);
  660. },
  661. clearData : function() {
  662. $(STINFO06010_GRID_ID).jqGrid('clearGridData', true);
  663. $(STINFO06010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  664. $(STINFO06010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  665. $(STINFO06010_GRID_EMPTY).show();
  666. },
  667. unload : function() {
  668. $.jgrid.gridUnload(STINFO06010_GRID_ID);
  669. }
  670. }
  671. };
  672. /*수정화면 Object*/
  673. let modifyObj = {
  674. init: function (param) {
  675. pageObj.switchScreen('MODIFY');
  676. // var param = $.param($('#ITP_FORM_STINFO06010_DETAIL').serializeObject());
  677. this.grid.init(param);
  678. },
  679. itp_STINFO06010_search: false,
  680. empty: {
  681. init: function() {
  682. var _this = this;
  683. this.push();
  684. $(STINFO06010_DETAIL_GRID_EMPTY).on('click', function() {
  685. _this.back();
  686. _this.itp_STINFO06010_param.gridSize = 100 ; // $.jgrid.defaults.rowNum;
  687. $(STINFO06010_DETAIL_GRID_ID).setGridParam($.param(_this.itp_STINFO06010_param)).trigger('reloadGrid');
  688. });
  689. },
  690. itp_STINFO06010_param: {},
  691. push: function() {
  692. let param = $('#ITP_FORM_STINFO06010_DETAIL').serializeObject();
  693. listObj.itp_STINFO06010_param = param;
  694. },
  695. back: function() {
  696. }
  697. },
  698. grid: {
  699. init: function (param) {
  700. // 데이터 없을때
  701. itp_fn_jqgrid_resize(STINFO06010_DETAIL_GRID_ID, STINFO06010_DETAIL_GRID_LIST, 'lg');
  702. listObj.empty.push();
  703. this.unload();
  704. this.load(param);
  705. },
  706. load: function(param) {
  707. var _this = this;
  708. // $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val(param.contSttDt);
  709. // $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').val(param.contEndDt);
  710. pageObj.skipChange=true;
  711. $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker('setDate', param.contSttDt);
  712. $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_TO_DT').datepicker('setDate', param.contEndDt);
  713. setTimeout(() => pageObj.skipChange=false, 200);
  714. var option = {
  715. gridId: STINFO06010_DETAIL_GRID_ID,
  716. colModel: fn_make_user_info.get('authTpCd') === '50' ? gridColModel.sdetail : gridColModel.detail,
  717. height : 'auto',
  718. rowNum: '',
  719. mtype: 'POST',
  720. url: API_DETAIL_INFO,
  721. // scroll: true,
  722. postData: JSON.stringify(param),
  723. loadComplete: function(data) {
  724. //$(STINFO06010_DETAIL_GRID_LIST).jqGrid('hideCol',["spplyNm","spplyUnitAmt"]);
  725. createObj.rows = data.gridRows;
  726. /*
  727. itp_fn_grid_load_complete(data, STINFO06010_DETAIL_GRID_ID, false, 'number', 'STINFO06010', modifyObj.itp_STINFO06010_search, modifyObj.empty, true, data.gridRecords, true);
  728. */
  729. const container=$('#ITP_STINFO06010_DETAIL_jqGrid_list').closest('#ITP_CONTAINER');
  730. let hei=container.height();
  731. if(hei>300 ) {
  732. hei-=210;
  733. } else {
  734. hei=300;
  735. }
  736. $('#ITP_STINFO06010_DETAIL_jqGrid_list .ui-jqgrid-bdiv').height(hei);
  737. const rowCnt = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getGridParam', 'records');
  738. let viewHtml = '';
  739. viewHtml += '<span class="itp_shrv fix">';
  740. viewHtml += '<span class="shrv_txt">' + ITP_MSG_LOCALE.label.total + '</span>';
  741. viewHtml += '<span class="shrv_num shrv_tot">(<em>' + rowCnt + '</em>)</span>';
  742. viewHtml += '</span>';
  743. $('#ITP_STINFO06010_DETAIL_jqGridView').html(viewHtml).show();
  744. },
  745. onCellSelect: function(rowid, cellIdx, cellValue) {
  746. if(fn_make_user_info.get('authTpCd') !== '50') {
  747. STINFO06010_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowid, cellIdx, STINFO06010_GRID_LAST_ROW_ID, STINFO06010_DETAIL_GRID_ID, ['actionId']);
  748. }
  749. }
  750. };
  751. //itp_fn_grid_make_remote(option);
  752. makeGrid(option);
  753. },
  754. clearData : function() {
  755. $(STINFO06010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
  756. $(STINFO06010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  757. $(STINFO06010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  758. $(STINFO06010_DETAIL_GRID_EMPTY).show();
  759. },
  760. unload : function() {
  761. $.jgrid.gridUnload(STINFO06010_DETAIL_GRID_ID);
  762. }
  763. }
  764. };
  765. let createObj = {
  766. init: function (param) {
  767. pageObj.switchScreen('ADD');
  768. this.grid.init(param);
  769. this.button.init();
  770. },
  771. button: {
  772. init: function() {
  773. // 브랜드그룹 조회 버튼 클릭
  774. $('#ITP_BTN_STINFO06010_DETAIL_SEARCH_STORE').on('click', function() {
  775. createObj.popup();
  776. });
  777. // 브랜드그룹 텍스트 삭제 버튼 클릭
  778. $('#ITP_BTN_STINFO06010_DETAIL_DELETE_STORE').one('click', function() {
  779. $('#ITP_FORM_STINFO06010_DETAIL_BRAND_ID').val('');
  780. $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val('');
  781. $('#ITP_FORM_STINFO06010_DETAIL_STORE_NM').val('');
  782. });
  783. },
  784. cancel: function() {
  785. listObj.grid.search();
  786. },
  787. save: function() {
  788. const formId = '#ITP_FORM_STINFO06010_DETAIL';
  789. var isValid = true;
  790. if(pageObj.screenMode === 'ADD') {
  791. //isValid = itp_fn_form_event.isValid(formId);
  792. //매장 아이디 존재 여부 확인
  793. var storeChk = $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val();
  794. if (storeChk == '') {
  795. alert("계약할 매장을 선택해주세요!");
  796. return;
  797. }
  798. }
  799. var checkCount=0;
  800. const checkMap={};
  801. const checkIncr = function(cur, idx) {
  802. const brandUnitUnqNo=cur.brandUnitUnqNo;
  803. if( cur.unitTargetCd=='Y' && checkMap.hasOwnProperty(brandUnitUnqNo)) {
  804. // 이미 대상인 아이템이 있다면
  805. const prev=checkMap[brandUnitUnqNo];
  806. $('#jqg_ITP_STINFO06010_DETAIL_jqGrid_'+prev).prop('checked',true);
  807. $('#jqg_ITP_STINFO06010_DETAIL_jqGrid_'+idx).prop('checked',true);
  808. checkCount++;
  809. }
  810. // 대상인경우 맵에추가
  811. if( cur.unitTargetCd=='Y' ) {
  812. checkMap[brandUnitUnqNo]=idx;
  813. }
  814. return true;
  815. };
  816. var idx=1;
  817. $('#ITP_STINFO06010_DETAIL_jqGrid .cbox.checkbox').prop('checked',false);
  818. for(var cur of $(STINFO06010_DETAIL_GRID_ID).getRowData()) {
  819. checkIncr(cur, idx++);
  820. }
  821. if(checkCount>0 ) {
  822. return itp_fn_modal_alert_ajax(checkCount+ " 개 품목 동일한 대상건이 있습니다 ");
  823. }
  824. if (isValid) {
  825. itp_fn_grid_save_rows(STINFO06010_DETAIL_GRID_ID);
  826. var rows = $(STINFO06010_DETAIL_GRID_ID).getRowData();
  827. let param = {};
  828. var gridInsertData = [];
  829. var gridUpdateData = [];
  830. var changeRows = createObj.changeRows(rows);
  831. $.each(changeRows, function (index, item) {
  832. if(item.viewCd === 'C') {
  833. gridInsertData.push(item);
  834. } else if(item.viewCd === 'U') {
  835. gridUpdateData.push(item);
  836. }
  837. // if(pageObj.screenMode === 'ADD') {
  838. // gridInsertData.push(item);
  839. // } else {
  840. // if(item.viewCd === 'C') {
  841. // gridInsertData.push(item);
  842. // } else if(item.viewCd === 'U') {
  843. // gridUpdateData.push(item);
  844. // }
  845. // }
  846. });
  847. param['viewCd'] = 'U';
  848. param['brandId'] = fn_make_user_info.get('brandId');
  849. param['storeId'] = $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val();
  850. param['contSttDt'] = $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val();
  851. param['contEndDt'] = $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').val();
  852. if(pageObj.screenMode === 'ADD')
  853. {
  854. //param['contSttDt'] = $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val();
  855. //param['contEndDt'] = $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').val();
  856. param['viewCd'] = "C";
  857. } else {
  858. param['viewCd'] = "U";
  859. }
  860. param['gridInsertData'] = gridInsertData;
  861. param['gridUpdateData'] = gridUpdateData;
  862. var searhFn = function() {
  863. listObj.grid.search();
  864. };
  865. fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
  866. }
  867. }
  868. },
  869. grid: {
  870. init: function (param) {
  871. // 데이터 없을때
  872. listObj.empty.push();
  873. this.unload();
  874. this.load(param);
  875. },
  876. rows: [],
  877. load: function(param) {
  878. var option = {
  879. gridId: STINFO06010_DETAIL_GRID_ID,
  880. colModel: fn_make_user_info.get('authTpCd') === '50' ? gridColModel.sdetail : gridColModel.detail,
  881. height : 'auto',
  882. rowNum: '',
  883. mtype: 'POST',
  884. url: API_DETAIL_NEW,
  885. // scroll: true,
  886. postData: JSON.stringify(param),
  887. loadComplete: function(data) {
  888. //$(STINFO06010_DETAIL_GRID_LIST).jqGrid('hideCol',["spplyNm","spplyUnitAmt"]);
  889. createObj.rows = data.gridRows;
  890. /*
  891. itp_fn_grid_load_complete(data, STINFO06010_DETAIL_GRID_ID, false, 'number', 'STINFO06010', modifyObj.itp_STINFO06010_search, modifyObj.empty, true, data.gridRecords, true);
  892. */
  893. const container=$('#ITP_STINFO06010_DETAIL_jqGrid_list').closest('#ITP_CONTAINER');
  894. let hei=container.height();
  895. if(hei>300 ) {
  896. hei-=210;
  897. } else {
  898. hei=300;
  899. }
  900. $('#ITP_STINFO06010_DETAIL_jqGrid_list .ui-jqgrid-bdiv').height(hei);
  901. const rowCnt = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getGridParam', 'records');
  902. let viewHtml = '';
  903. viewHtml += '<span class="itp_shrv fix">';
  904. viewHtml += '<span class="shrv_txt">' + ITP_MSG_LOCALE.label.total + '</span>';
  905. viewHtml += '<span class="shrv_num shrv_tot">(<em>' + rowCnt + '</em>)</span>';
  906. viewHtml += '</span>';
  907. $('#ITP_STINFO06010_DETAIL_jqGridView').html(viewHtml).show();
  908. },
  909. onCellSelect: function(rowid, cellIdx, cellValue) {
  910. if(fn_make_user_info.get('authTpCd') !== '50') {
  911. STINFO06010_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowid, cellIdx, STINFO06010_GRID_LAST_ROW_ID, STINFO06010_DETAIL_GRID_ID, ['actionId']);
  912. }
  913. }
  914. };
  915. //itp_fn_grid_make_remote(option);
  916. makeGrid(option);
  917. },
  918. clearData : function() {
  919. $(STINFO06010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
  920. $(STINFO06010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  921. $(STINFO06010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  922. $(STINFO06010_DETAIL_GRID_EMPTY).show();
  923. },
  924. unload : function() {
  925. $.jgrid.gridUnload(STINFO06010_DETAIL_GRID_ID);
  926. }
  927. },
  928. popup: function() {
  929. var popFn = function(rowDataPop) {
  930. if(rowDataPop && rowDataPop.length > 0) {
  931. $('#ITP_FORM_STINFO06010_DETAIL_BRAND_ID').val(rowDataPop[0].brandId);
  932. $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val(rowDataPop[0].storeId);
  933. $('#ITP_FORM_STINFO06010_DETAIL_STORE_NM').val(rowDataPop[0].storeNm);
  934. }
  935. // 강제로 팝업 창닫기 실행
  936. setTimeout(function() {
  937. $('.modal-backdrop').hide();
  938. }, 500);
  939. };
  940. fn_call_popup('biz', 'BIZPOP_BRAND_STORE', '#ITP_ASIDE', popFn, null, 'S');
  941. },
  942. rows: [],
  943. changeRows: function(gridRows) {
  944. var modifyRows = [];
  945. var chkColumns = ['unit', 'curr', 'unitAmt', 'unitTargetCd'];
  946. $.each(this.rows, function(index, item) {
  947. var row = gridRows[index];
  948. if(row.viewCd === 'C') {
  949. modifyRows.push(row);
  950. } else {
  951. if(row.itemId === item.itemId) {
  952. $.each(chkColumns, function(index, column) {
  953. if(row[column].toString() !== item[column].toString()) {
  954. row.viewCd = 'U';
  955. modifyRows.push(row);
  956. return false;
  957. }
  958. });
  959. }
  960. }
  961. });
  962. return modifyRows;
  963. }
  964. };