ITP_POMNG01010.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690
  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. /*화면 변수*/
  19. const POMNG01010_DETAIL_GRID_ID = '#ITP_POMNG01010_DETAIL_jqGrid';
  20. const POMNG01010_DETAIL_GRID_LIST = '#ITP_POMNG01010_DETAIL_jqGrid_list';
  21. const POMNG01010_DETAIL_GRID_PAGER = '#ITP_POMNG01010_DETAIL_jqGridPager';
  22. const POMNG01010_DETAIL_GRID_EMPTY = '#ITP_POMNG01010_DETAIL_jqGridEmpty'; // ==>dwkim html확인필요
  23. let POMNG01010_DETAIL_GRID_LAST_ROW_ID;
  24. /*API URL*/
  25. let API_DETAIL_INIT_INFO = '/api/pomng/init-pchReq'
  26. let API_DETAIL_SAVE = '/api/pomng/save-pchReq';
  27. /*화면 Grid ColModel ==>선택박스 항목 추가 부분 */
  28. const gridColModel = {
  29. detail: [
  30. {
  31. index: 'VIEW_CD', name: 'viewCd',
  32. label: ITP_MSG_LOCALE.label.viewCd,
  33. width: '10', fixed: false, align: 'center',
  34. sortable: false, hidden: true
  35. },
  36. {
  37. index: 'ITEM_ID', name: 'itemId',
  38. label: ITP_MSG_LOCALE.label.itemId,
  39. width: '14', fixed: false, align: 'center',
  40. sortable: false, editable: false, edittype: 'text',
  41. editrules: { required: true }
  42. },
  43. {
  44. index: 'ITEM_NM', name: 'itemNm',
  45. label: ITP_MSG_LOCALE.label.itemNm,
  46. width: '32', fixed: false, align: 'left',
  47. sortable: false, editable: false, edittype: 'text',
  48. editrules: { required: true }, classes: 'ui-ellipsis'
  49. },
  50. {
  51. index: 'UNIT', name: 'unit',
  52. label: ITP_MSG_LOCALE.label.unit,
  53. width: '7', fixed: false, align: 'center',
  54. sortable: false, editable: false, edittype: 'text'
  55. },
  56. {
  57. index: 'UNIT_AMT', name: 'unitAmt',
  58. label: ITP_MSG_LOCALE.label.unitAmt,
  59. width: '11', fixed: false, align: 'right',
  60. sortable: false, editable: false, edittype: 'text', hidden: false,
  61. formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  62. },
  63. {
  64. index: 'PCH_REQ_QTY', name: 'pchReqQty',
  65. label: ITP_MSG_LOCALE.label.pchReqQty, //수량
  66. width: '11', fixed: false, align: 'right',
  67. sortable: false, editable: true, edittype: 'text',
  68. classes: 'input_color',
  69. editoptions: {"onKeyup": "this.value=this.value.replace(/[^0-9]/g,'');", maxlength: 10},
  70. formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  71. },
  72. {
  73. index: 'PCH_REQ_AMT', name: 'pchReqAmt',
  74. label: ITP_MSG_LOCALE.label.pchReqAmt,
  75. width: '11', fixed: false, align: 'right',
  76. sortable: false, editable: false, edittype: 'text', hidden: false,
  77. formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
  78. },
  79. {
  80. index: 'BRAND_UNIT_UNQ_NO', name: 'brandUnitUnqNo',
  81. label: ITP_MSG_LOCALE.label.brandUnitUnqNo,
  82. width: '10', fixed: false, align: 'center',
  83. sortable: false, editable: false, edittype: 'text', hidden: true
  84. },
  85. {
  86. index: 'STORE_UNIT_UNQ_NO', name: 'storeUnitUnqNo',
  87. label: ITP_MSG_LOCALE.label.storeUnitUnqNo,
  88. width: '10', fixed: false, align: 'center',
  89. sortable: false, editable: false, edittype: 'text', hidden: true
  90. },
  91. {
  92. index: 'UNIT_GUBUN', name: 'unitGubun',
  93. label: ITP_MSG_LOCALE.label.unitGubun,
  94. width: '10', fixed: false, align: 'center',
  95. sortable: false, editable: false, edittype: 'text', hidden: true
  96. }
  97. ]
  98. };
  99. /*화면공통 Object*/
  100. let pageObj = {
  101. init: function() {
  102. this.ui.init();
  103. this.event.init();
  104. this.action();
  105. },
  106. action: function () {
  107. var _this = this;
  108. // 납품장소 조회 버튼 클릭
  109. $('#ITP_FORM_POMNG01010_SEARCH_WHS_NM').on('click', function() {
  110. _this.popup();
  111. });
  112. // 납품장소 텍스트 삭제 버튼 클릭
  113. $('#ITP_FORM_POMNG01010_DELETE_WHS_NM').on('click', function() {
  114. $('#ITP_FORM_POMNG01010_DETAIL_WHS_NM').val('');
  115. $('#ITP_FORM_POMNG01010_DETAIL_WHS_ID').val('');
  116. $('#ITP_FORM_POMNG01010_DETAIL_LOCATION_NM').val('');
  117. $('#ITP_FORM_POMNG01010_DETAIL_LOCATION').val('');
  118. });
  119. },
  120. popup: function () {
  121. // 팝업
  122. var popFn = this.callback.create;
  123. var whsDvsn = "";
  124. if (fn_make_user_info.get('storeId') == '' ) {
  125. whsDvsn = "W01";
  126. } else {
  127. whsDvsn = "W02";
  128. }
  129. const key = {brandId:fn_make_user_info.get('brandId'),storeId:fn_make_user_info.get('storeId'),whsDvsn: whsDvsn};
  130. fn_call_popup('biz', 'BIZPOP_WHS_LOCATION', '#ITP_ASIDE', popFn, key, 'S');
  131. },
  132. callback: {
  133. create: function(rowDataPop) {
  134. if(rowDataPop) {
  135. $('#ITP_FORM_POMNG01010_DETAIL_WHS_NM').val(rowDataPop.whsNm);
  136. $('#ITP_FORM_POMNG01010_DETAIL_WHS_ID').val(rowDataPop.whsId);
  137. $('#ITP_FORM_POMNG01010_DETAIL_LOCATION_NM').val(rowDataPop.locationNm);
  138. $('#ITP_FORM_POMNG01010_DETAIL_LOCATION').val(rowDataPop.location);
  139. }
  140. }
  141. },
  142. itp_POMNG01010_param: {}, // ==>dwkim
  143. itp_POMNG01010_search: false, // ==>dwkim
  144. ui: {
  145. init: function() {
  146. this.view();
  147. this.grid();
  148. this.ready();
  149. },
  150. view: function() {
  151. //타이틀 설정
  152. if (fn_make_user_info.get('storeId') == '' ) {
  153. $('.fnTitleMenu').text('본사발주요청');
  154. } else {
  155. $('.fnTitleMenu').text('매장발주요청');
  156. }
  157. // 버튼 권한설정
  158. fn_proc_btn_auth('POMNG01010');
  159. // 공통코드 표시
  160. $('select').each(function() {
  161. if ($(this).data('select-code')) {
  162. fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
  163. }
  164. });
  165. // 조회일자 지정
  166. //var now = new Date(date.getDate() + 5);
  167. var now = new Date();
  168. $('#ITP_TAB_POMNG01010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
  169. $('#ITP_FORM_POMNG01010_DETAIL_DLV_REQ_DT').datepicker('setDate', new Date(now.setDate(now.getDate() + 5)));
  170. //납품장소 필드 readonly
  171. $('#ITP_FORM_POMNG01010_DETAIL_WHS_NM').attr('readonly', true);
  172. $('#ITP_FORM_POMNG01010_DETAIL_LOCATION_NM').attr('readonly', true);
  173. },
  174. grid: function() {
  175. itp_fn_jqgrid_resize(POMNG01010_DETAIL_GRID_ID, POMNG01010_DETAIL_GRID_LIST, 'lg');
  176. itp_fn_fire_window_resize();
  177. },
  178. ready: function() {
  179. createObj.init();
  180. }
  181. },
  182. event: {
  183. init: function() {
  184. this.button();
  185. },
  186. button: function() {
  187. // 버튼 클릭 이벤트
  188. $('button').each(function() {
  189. var id = $(this).attr('id');
  190. $(this).on('click', function() {
  191. switch (id) {
  192. case 'ITP_BTN_POMNG01010_SRH' : createObj.button.save("PR20"); break; // 구매요청
  193. case 'ITP_BTN_POMNG01010_NEWREG' : createObj.button.save("PR00"); break; // 임시저장
  194. case 'ITP_BTN_POMNG01010_DETAIL_ADDROW' : pageObj.grid.button.addRow(); break; // 품목추가
  195. case 'ITP_BTN_POMNG01010_DETAIL_DELROW' : pageObj.grid.button.delRow(); break; // 품목삭제
  196. case 'ITP_BTN_POMNG01010_DETAIL_WISHLIST' : createObj.button.wishList(); break; // 위시리스트
  197. case 'ITP_BTN_POMNG01010_DETAIL_SAFE_STCK' : pageObj.grid.button.safeStck(); break;// 안전재고
  198. }
  199. });
  200. });
  201. $('body').on('click', function(e) {
  202. var gridId = POMNG01010_DETAIL_GRID_ID.replace('#', '');
  203. var rids = $(POMNG01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
  204. var last_row_id = rids[rids.length - 1];
  205. itp_fn_grid_reset_selection(e, last_row_id, gridId, 'POMNG01010_DETAIL');
  206. pageObj.grid.recal();
  207. });
  208. }
  209. },
  210. grid: {
  211. init: function(mode, gridData) {
  212. this.mode = mode;
  213. this.gridId = POMNG01010_DETAIL_GRID_ID;
  214. this.unload(); // ==>dwkim
  215. this.load(gridData);
  216. },
  217. mode: 'DETAIL',
  218. gridId: '',
  219. button: {
  220. addRow: function() {
  221. // 팝업
  222. var popFn = function(rowDataPop) {
  223. // 기존등록 데이터
  224. var exists = '';
  225. const rowData = $(POMNG01010_DETAIL_GRID_ID).getRowData();
  226. $.each(rowData, function(key, value) {
  227. exists = exists + value.brandUnitUnqNo + ';';
  228. });
  229. $.each(rowDataPop, function(key, value) {
  230. if (exists.indexOf(value.brandUnitUnqNo) < 0 && value.podrPssblDvsn == 'PO01') {
  231. value['viewCd'] = "C";
  232. $(POMNG01010_DETAIL_GRID_ID).jqGrid('addRowData', value.brandUnitUnqNo, value, 'last');
  233. }
  234. });
  235. $(POMNG01010_DETAIL_GRID_EMPTY).hide();
  236. };
  237. const key = {brandId:fn_make_user_info.get('brandId'),storeId:fn_make_user_info.get('storeId')};
  238. fn_call_popup('biz', 'BIZPOP_ITEM', '#ITP_ASIDE', popFn, key, 'S'); // ==>dwkim 추후 작업 진행 파라메타 설명필요
  239. },
  240. delRow: function() {
  241. itp_fn_grid_del_row(POMNG01010_DETAIL_GRID_ID);
  242. // 그리드 포문으로 금액 재계산후 구매요청금액에 넣어줌
  243. pageObj.grid.recal(); //==>dwkim 왜 호출이 안될까요
  244. },
  245. safeStck: function() {
  246. var popFn = function(rowDataPop) {
  247. var exists = '';
  248. const rowData = $(POMNG01010_DETAIL_GRID_ID).getRowData();
  249. $.each(rowData, function(key, value) {
  250. exists = exists + value.brandUnitUnqNo + ';';
  251. });
  252. $.each(rowDataPop, function(key, value) {
  253. if (exists.indexOf(value.brandUnitUnqNo) < 0 && value.podrPssblDvsn == 'PO01') {
  254. value.viewCd = "C";
  255. $(POMNG01010_DETAIL_GRID_ID).jqGrid('addRowData', value.brandUnitUnqNo, value, 'last');
  256. }
  257. });
  258. $(POMNG01010_DETAIL_GRID_EMPTY).hide();
  259. };
  260. let authTpCd = fn_make_user_info.get('authTpCd');
  261. let URL = '/api/whs/mng/pop-whs-search';
  262. let param = {};
  263. param.sbrandId = fn_make_user_info.get('brandId');
  264. param.sstoreId = fn_make_user_info.get('storeId');
  265. let firstWhsId, firstWhsNm;
  266. if (authTpCd == 50) {
  267. param.swhsDvsn = 'W02';
  268. let answer = function(result) {
  269. firstWhsId = result.gridRows[0].whsId;
  270. firstWhsNm = result.gridRows[0].whsNm;
  271. }
  272. fn_ajax_call(URL, JSON.stringify(param), answer, 'POST');
  273. } else if (authTpCd == 40) {
  274. param.swhsDvsn = 'W01';
  275. let answer = function(result) {
  276. firstWhsId = result.gridRows[0].whsId;
  277. firstWhsNm = result.gridRows[0].whsNm;
  278. }
  279. fn_ajax_call(URL, JSON.stringify(param), answer, 'POST');
  280. }
  281. const key = {brandId:fn_make_user_info.get('brandId'),storeId:fn_make_user_info.get('storeId'),whsId:firstWhsId};
  282. fn_call_popup('biz', 'BIZPOP_SAFE_STCK_ITEM', '#ITP_ASIDE', popFn, key, 'S'); // ==>dwkim 추후 작업 진행 파라메타 설명필요
  283. }
  284. },
  285. load: function(gridData) { // ==>dwkim 오픈시 데이타 가져오는 부분 넣으면 되는건지 여부 gird가 아님
  286. var _this = this;
  287. var option = {
  288. gridId: this.gridId,
  289. colModel: gridColModel.detail,
  290. data: gridData,
  291. multiselect: true,
  292. // cellEdit: true,
  293. onCellSelect: function(rowId, cellIdx, cellValue) {
  294. POMNG01010_DETAIL_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowId, cellIdx, POMNG01010_DETAIL_GRID_LAST_ROW_ID, POMNG01010_DETAIL_GRID_ID, ['pchReqQty']);
  295. },
  296. loadComplete: function(data) {
  297. _this.clearData();
  298. }
  299. };
  300. itp_fn_grid_make_local(option);
  301. },
  302. clearData: function() {
  303. // console.log(this.gridId);
  304. $(POMNG01010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
  305. $(POMNG01010_DETAIL_GRID_LIST).find('.ui-jqgrid .ui-jqgrid-bdiv').css('overflow-x', 'hidden');
  306. $(POMNG01010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  307. $(POMNG01010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  308. $(POMNG01010_DETAIL_GRID_EMPTY).show();
  309. },
  310. recal: function() {
  311. var ids = $(POMNG01010_DETAIL_GRID_ID).getDataIDs();
  312. $.each(ids, function(idx, rowId) {
  313. var viewCd = jQuery(POMNG01010_DETAIL_GRID_ID).jqGrid('getCell', rowId, 'viewCd');
  314. var unitAmt = jQuery(POMNG01010_DETAIL_GRID_ID).jqGrid('getCell', rowId, 'unitAmt');
  315. var pchReqQty = jQuery(POMNG01010_DETAIL_GRID_ID).jqGrid('getCell', rowId, 'pchReqQty');
  316. if(viewCd != 'D' && unitAmt != null && unitAmt != '' && pchReqQty != null && pchReqQty != '') {
  317. jQuery(POMNG01010_DETAIL_GRID_ID).jqGrid('setRowData',rowId,{pchReqAmt: parseInt(unitAmt)*parseInt(pchReqQty)});
  318. }
  319. });
  320. const rowData = $(POMNG01010_DETAIL_GRID_ID).getRowData();
  321. var pchReqAmt = 0 ;
  322. $.each(rowData, function(key, value) {
  323. // console.log(JSON.stringify(rowData));
  324. if (value.pchReqAmt != null && value.pchReqAmt != "" && value.viewCd != "D") {
  325. pchReqAmt = pchReqAmt + parseInt(value.pchReqAmt) ;
  326. }
  327. });
  328. $('#ITP_FORM_POMNG01010_DETAIL .fnPchReqAmt').text(itp_fn_number_comma(pchReqAmt));
  329. },
  330. unload: function() {
  331. $.jgrid.gridUnload(this.gridId);
  332. }
  333. }
  334. };
  335. /*신규화면 Object */
  336. let createObj = {
  337. init: function() {
  338. $('#ITP_FORM_POMNG01010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
  339. $('#ITP_FORM_POMNG01010_DETAIL_STORE_ID').val(fn_make_user_info.get('storeId'));
  340. //let param = 'brandId=' + LOGIN_USER_INFO.brandId + "&spplyId=" + LOGIN_USER_INFO.spplyId;
  341. $('#ITP_BTN_POMNG01010_DETAIL_SAFE_STCK').show();
  342. $('#ITP_BTN_POMNG01010_DETAIL_WISHLIST').show();
  343. $('#ITP_BTN_POMNG01010_DETAIL_ADDROW').show();
  344. $('#ITP_BTN_POMNG01010_DETAIL_DELROW').show();
  345. $('#ITP_BTN_POMNG01010_SRH').show();
  346. $('#ITP_BTN_POMNG01010_NEWREG').show();
  347. this.load();
  348. },
  349. newinit: function() {
  350. $('#ITP_FORM_POMNG01010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
  351. $('#ITP_FORM_POMNG01010_DETAIL_STORE_ID').val(fn_make_user_info.get('storeId'));
  352. $('#ITP_FORM_POMNG01010_DETAIL_PCH_REQ_NM').val('');
  353. $('#ITP_FORM_POMNG01010_DETAIL_NOTE').val('');
  354. var now = new Date();
  355. $('#ITP_TAB_POMNG01010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
  356. $('#ITP_FORM_POMNG01010_DETAIL_DLV_REQ_DT').datepicker('setDate', new Date(now.setDate(now.getDate() + 5)));
  357. this.load(); //==>dwkim 초기화 하여 다시 초기 데이타 가져와 뿌려줌
  358. const key = {brandId:fn_make_user_info.get('brandId'),storeId:fn_make_user_info.get('storeId')};
  359. fn_ajax_call(API_DETAIL_INIT_INFO, key, this.callback, 'GET');
  360. },
  361. button: {
  362. save: function(arg) {
  363. $('body').trigger('click');
  364. const formId = '#ITP_FORM_POMNG01010_DETAIL';
  365. itp_fn_form_clear_validate(null, formId);
  366. $('#ITP_FORM_POMNG01010_DETAIL_PCH_REQ_ST_CD').val(arg);
  367. var dlvReqDt = $('#ITP_FORM_POMNG01010_DETAIL_DLV_REQ_DT').val();
  368. var itemcnt = $(POMNG01010_DETAIL_GRID_ID).getGridParam('reccount');
  369. var dlvReqAmt = $('#ITP_FORM_POMNG01010_DETAIL .fnPchReqAmt').text();
  370. var apprArg = {};
  371. var pchActAtm = itp_fn_currency_unfmatter($('#ITP_FORM_POMNG01010_DETAIL .fnPchActAmt').text(),"","");
  372. var pchReqAtm = itp_fn_currency_unfmatter($('#ITP_FORM_POMNG01010_DETAIL .fnPchReqAmt').text(),"","");
  373. var mallId = $('#ITP_FORM_POMNG01010_DETAIL_MALL_ID').val();
  374. //정산 타입이 무정산이면 스킵
  375. var apprTypeCd = "Y" // Y 정상결재, NP 선불, NA 후불
  376. var loanDvsn = $('#ITP_FORM_POMNG01010_DETAIL_LOAN_DVSN').val();
  377. if (loanDvsn != null && loanDvsn != "") {
  378. if (loanDvsn != 'LD03' && arg == 'PR20' ) {
  379. if (parseFloat(pchActAtm) < parseFloat(pchReqAtm)) {
  380. dlvReqAmt = itp_fn_number_comma(String(parseInt(pchReqAtm) - parseInt(pchActAtm)));
  381. if (mallId == '') {
  382. if (loanDvsn == 'LD01') {
  383. apprTypeCd = 'NPN';
  384. } else {
  385. apprTypeCd = 'NAN';
  386. }
  387. } else {
  388. if (loanDvsn == 'LD01') {
  389. apprTypeCd = 'NP';
  390. } else {
  391. apprTypeCd = 'NA';
  392. }
  393. }
  394. } else {
  395. dlvReqAmt = 0 ;
  396. }
  397. } else if (loanDvsn == 'LD03' && arg == 'PR20' ) {
  398. dlvReqAmt = 0 ;
  399. }
  400. }
  401. if (itp_fn_form_event.isValid(formId)) {
  402. // 품목대상 정보 확인 필요
  403. var records = $(POMNG01010_DETAIL_GRID_ID).getGridParam('reccount');
  404. if (records == 0) {
  405. alert( "요청할 품목내역이 없습니다.");
  406. return ;
  407. }
  408. var now = new Date();
  409. var today = now.getFullYear() +
  410. "." + (now.getMonth()+1 > 9 ? (now.getMonth()+1).toString() : "0" + (now.getMonth()+1).toString()) +
  411. "." + (now.getDate() > 9 ? now.getDate().toString() : "0" + now.getDate().toString());
  412. var dlvReqDt = $('#ITP_FORM_POMNG01010_DETAIL_DLV_REQ_DT').val();
  413. if (today > dlvReqDt) {
  414. alert("납품요청일은 오늘 이후이어야 합니다.");
  415. return;
  416. }
  417. const rowChkData = $(POMNG01010_DETAIL_GRID_ID).getRowData();
  418. var chkQtyYn = "N";
  419. $.each(rowChkData, function(key, value) {
  420. if (value.pchReqQty == '' || value.pchReqQty < 1 ) {
  421. alert("요청수량을 입력해주세요!");
  422. chkQtyYn = "Y";
  423. return false;
  424. }
  425. });
  426. if (chkQtyYn == "Y") return;
  427. if (arg == 'PR20') {
  428. apprArg.dlvReqDt = dlvReqDt;
  429. apprArg.itemcnt = itemcnt;
  430. apprArg.pchReqAtm = itp_fn_number_comma(pchReqAtm);
  431. apprArg.pchPssblAtm = itp_fn_number_comma(pchActAtm);
  432. apprArg.dlvReqAmt = dlvReqAmt;
  433. if (apprTypeCd == "Y") { // 여신 구분, 여신금액
  434. var prIngFn = {
  435. callBack: function(args) {
  436. createObj.button.saveLastReq(arg);
  437. }
  438. };
  439. itp_fn_modal_confirm_req1(apprArg, prIngFn, arg);
  440. } else // 금액 부족시
  441. createObj.button.saveApprReq(apprArg,apprTypeCd, arg);
  442. } else {
  443. createObj.button.saveReq(apprArg);
  444. }
  445. }
  446. },
  447. saveReq: function(arg) {
  448. const formId = '#ITP_FORM_POMNG01010_DETAIL';
  449. var saveFn = {
  450. callBack: function(args) {
  451. $(formId).val(arg);
  452. let gridInsertData = [];
  453. let gridUpdateData = [];
  454. let gridDeleteData = [];
  455. const rowData = $(POMNG01010_DETAIL_GRID_ID).getRowData();
  456. $.each(rowData, function(key, value) {
  457. if (value.viewCd !== 'R') {
  458. if (value.viewCd === 'C') {
  459. gridInsertData.push(value);
  460. } else if (value.viewCd === 'U') {
  461. gridUpdateData.push(value);
  462. } else if (value.viewCd === 'D') {
  463. gridDeleteData.push(value);
  464. }
  465. }
  466. });
  467. //if (chkQtyYn == "Y") return;
  468. let param = $(formId).serializeObject();
  469. param.gridInsertData = gridInsertData;
  470. param.gridUpdateData = gridUpdateData;
  471. param.gridDeleteData = gridDeleteData;
  472. var searhFn = function() {
  473. createObj.newinit();
  474. };
  475. fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
  476. }
  477. };
  478. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.tmpSave, saveFn, null);
  479. },
  480. saveApprReq: function(param, apprTypeCd, arg) {
  481. var apprFn = {
  482. callBack: function(args) {
  483. // 결재금액이 부족하여 결재란으로 이동처리
  484. var popFn = function(rowDataPop) {
  485. // 결재 성공시 승인처리함
  486. createObj.button.saveLastReq(arg);
  487. };
  488. // 결제 팝업 : LD01(선불(충전)), LD02(후불(신용))
  489. // 결제타입코드 : 10(선불(충전)), 20(후불(결제)), 30(후불(선결제))
  490. // 구매요청 번호 전달 -
  491. //var loanDvsn = $('#ITP_FORM_LOANMNG02010_SEARCH_STORE_LOAN_DVSN').val();
  492. var pchActAtm = itp_fn_currency_unfmatter($('#ITP_FORM_POMNG01010_DETAIL .fnPchActAmt').text(),"","");
  493. var pchReqAtm = itp_fn_currency_unfmatter($('#ITP_FORM_POMNG01010_DETAIL .fnPchReqAmt').text(),"","");
  494. var args = {'payTpCd': '40',
  495. 'brandId': fn_make_user_info.get('brandId'),
  496. 'storeId': fn_make_user_info.get('storeId'),
  497. 'prchReqUnqNo': $('ITP_FORM_POMNG01010_DETAIL_PCH_REQ_UNQ_NO').val(),
  498. 'goodsAmt': pchReqAtm-pchActAtm};
  499. fn_call_popup('biz', 'BIZPOP_PO_PAYMENT', '#ITP_ASIDE', popFn, args, 'S');
  500. }
  501. };
  502. var apprNFn = {
  503. callBack: function(args) {
  504. // 임시저장 처리한다.
  505. arg = 'PR00';
  506. $('#ITP_FORM_POMNG01010_DETAIL_PCH_REQ_ST_CD').val(arg);
  507. createObj.button.saveLastReq(arg);
  508. }
  509. };
  510. //console.log(apprTypeCd) ;
  511. if (apprTypeCd == 'NP') { // 선불
  512. itp_fn_modal_confirm_req2(param, apprFn, arg);
  513. } else if (apprTypeCd == 'NA') { //후불
  514. itp_fn_modal_confirm_req3(param, apprFn, arg);
  515. } else if (apprTypeCd == 'NPN') { //선불 pg없음 임시저장으로
  516. itp_fn_modal_confirm_req4(param, apprNFn, arg);
  517. } else if (apprTypeCd == 'NAN') { //후불 pg없음 임시저장으로
  518. itp_fn_modal_confirm_req5(param, apprNFn, arg);
  519. }
  520. },
  521. saveLastReq: function(arg) {
  522. const formId = '#ITP_FORM_POMNG01010_DETAIL';
  523. $(formId).val(arg);
  524. let gridInsertData = [];
  525. let gridUpdateData = [];
  526. let gridDeleteData = [];
  527. const rowData = $(POMNG01010_DETAIL_GRID_ID).getRowData();
  528. $.each(rowData, function(key, value) {
  529. if (value.viewCd !== 'R') {
  530. if (value.viewCd === 'C') {
  531. gridInsertData.push(value);
  532. } else if (value.viewCd === 'U') {
  533. gridUpdateData.push(value);
  534. } else if (value.viewCd === 'D') {
  535. gridDeleteData.push(value);
  536. }
  537. }
  538. });
  539. //if (chkQtyYn == "Y") return;
  540. let param = $(formId).serializeObject();
  541. param.gridInsertData = gridInsertData;
  542. param.gridUpdateData = gridUpdateData;
  543. param.gridDeleteData = gridDeleteData;
  544. var searhFn = function() {
  545. createObj.newinit();
  546. };
  547. fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
  548. },
  549. wishList: function() {
  550. const key = {brandId:fn_make_user_info.get('brandId'),storeId:fn_make_user_info.get('storeId')};
  551. fn_call_popup('biz', 'BIZPOP_WISH_LIST_ITEM', '#ITP_ASIDE', function(result) {
  552. grid=$(POMNG01010_DETAIL_GRID_ID);
  553. if(result.length==0) {
  554. $(POMNG01010_DETAIL_GRID_EMPTY).show();
  555. } else {
  556. var exists = [];
  557. for(var cur of grid.getRowData() ) exists.push(cur.brandUnitUnqNo);
  558. for(var cur of result ) {
  559. if(exists.indexOf(cur.brandUnitUnqNo)==-1 ) {
  560. cur.viewCd='C';
  561. grid.jqGrid('addRowData', cur.brandUnitUnqNo, cur, 'first');
  562. }
  563. }
  564. $(POMNG01010_DETAIL_GRID_EMPTY).hide();
  565. }
  566. }, key, 'S');
  567. }
  568. },
  569. load: function() {
  570. const key = {brandId:fn_make_user_info.get('brandId'),storeId:fn_make_user_info.get('storeId')};
  571. fn_ajax_call(API_DETAIL_INIT_INFO, key, this.callback, 'GET');
  572. },
  573. callback: function(result) {
  574. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_VIEW_CD').val('C');
  575. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_BRAND_ID').val(result.brandId);
  576. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_STORE_ID').val(result.storeId);
  577. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_LOAN_DVSN').val(result.loanDvsn);
  578. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_LOAN_MGNT_UNQ_NO').val(result.loanMgntUnqNo);
  579. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_PCH_REQ_DVSN').val(result.pchReqDvsn);
  580. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_WHS_ID').val(result.whsId);
  581. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_WHS_NM').val(result.whsNm);
  582. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_LOCATION').val(result.location);
  583. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_LOCATION_NM').val(result.locationNm);
  584. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_MALL_ID').val(result.mallId);
  585. $('#ITP_FORM_POMNG01010_DETAIL .fnBrandNm').text(result.brandNm);
  586. $('#ITP_FORM_POMNG01010_DETAIL .fnPchReqDept').text(result.reqDept);
  587. $('#ITP_FORM_POMNG01010_DETAIL .fnPchReqMgrNm').text(result.userNm);
  588. $('#ITP_FORM_POMNG01010_DETAIL .fnPchReqAmt').text("0");
  589. $('#ITP_FORM_POMNG01010_DETAIL .fnLoanDvsnNm').text(result.loanDvsnNm);
  590. let pchActAmt
  591. if(result.ordUseAmt == 'Infinity' || result.ordUseAmt == Infinity || result.ordUseAmt == 0){
  592. pchActAmt = 0;
  593. } else {
  594. pchActAmt = result.ordUseAmt
  595. }
  596. $('#ITP_FORM_POMNG01010_DETAIL .fnPchActAmt').text(itp_fn_number_comma(pchActAmt));
  597. $('#ITP_FORM_POMNG01010_DETAIL .fnPchReqUnqNo').text(result.pchReqUnqNo);
  598. $('#ITP_FORM_POMNG01010_DETAIL #ITP_FORM_POMNG01010_DETAIL_PCH_REQ_UNQ_NO').val(result.pchReqUnqNo);
  599. if (result.wishListUseYn == 'Y') {
  600. $('#ITP_BTN_POMNG01010_DETAIL_WISHLIST').show();
  601. } else {
  602. $('#ITP_BTN_POMNG01010_DETAIL_WISHLIST').hide();
  603. }
  604. if (result.whsUseYn == 'Y') {
  605. $('#ITP_BTN_POMNG01010_DETAIL_SAFE_STCK').show();
  606. } else {
  607. $('#ITP_BTN_POMNG01010_DETAIL_SAFE_STCK').hide();
  608. }
  609. pageObj.grid.init();
  610. let shmtColProcType = fn_make_user_info.get('shmtColProcType');
  611. if (shmtColProcType == 20) {
  612. $('#ITP_FORM_POMNG01010_DETAIL_WHS_DIV').attr('class', 'col-xs-7 itp_ip');
  613. $('#ITP_FORM_POMNG01010_DETAIL_DLV_REQ_DT_LABEL').hide();
  614. $('#ITP_FORM_POMNG01010_DETAIL_DLV_REQ_DT').hide();
  615. }
  616. }
  617. };