ITP_MRTNMNG02010.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. require(['config'], function() {
  2. require([
  3. ], function($) {
  4. mobPageObj.init();
  5. });
  6. });
  7. /*API URL*/
  8. const API_MOBILE_GRID_LIST = '/api/rtnmng/detail-grid-list'; // 목록
  9. const API_MOBILE_INFO = '/api/rtnmng/info-rtnReq'; // 상세
  10. const API_MOBILE_SAVE = '/api/rtnmng/save-rtnReq'; // 저장
  11. const API_POP_SEARCH_LIST = '/api/whs/mng/pop-whs-search';
  12. const API_POP_ITEM_LIST = '/api/item/pop-grid-list';
  13. const RTN_REQ_ST_CD_TEMP_SAVE ="RR00";
  14. const RTN_REQ_ST_CD_REQUEST_SAVE ="RR20";
  15. const VIEW_MODE_LIST = "LIST";
  16. const VIEW_MODE_DETAIL = "DETAIL";
  17. const VIEW_MODE_MODIFY = "MODIFY";
  18. let mobPageObj = {
  19. viewMode: VIEW_MODE_LIST,
  20. init: function () {
  21. this.ui.init();
  22. this.event.init();
  23. this.ready();
  24. },
  25. ui: {
  26. init: function () {
  27. this.view();
  28. this.info();
  29. this.action();
  30. },
  31. view: function() {
  32. // 공통코드 표시
  33. $('select').each(function() {
  34. if($(this).data('select-code')) {
  35. fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
  36. }
  37. });
  38. // 조회일자 지정
  39. $('#ITP_MOBILE_MRTNMNG02010 .itp_input.date').datepicker(ITP_DATE_LANGUAGE);
  40. $('#ITP_FORM_MRTNMNG02010_LIST_SEARCH_FROM_DT').datepicker('setDate', itp_fn_date_add('D', -7));
  41. $('#ITP_FORM_MRTNMNG02010_LIST_SEARCH_TO_DT').datepicker('setDate', itp_fn_date_add('D', 0));
  42. },
  43. info: function() {
  44. $('input:hidden[id$="_BRAND_ID"]').val(fn_make_user_info.get('brandId'));
  45. $('input:hidden[id$="_STORE_ID"]').val(fn_make_user_info.get('storeId'));
  46. },
  47. action: function() {
  48. }
  49. },
  50. event: {
  51. init: function() {
  52. this.button();
  53. },
  54. button: function() {
  55. $('button[id^="ITP_BTN_MRTNMNG02010_LIST"]').on('click', function() {
  56. var id = $(this).attr('id');
  57. switch (id) {
  58. case 'ITP_BTN_MRTNMNG02010_LIST_SEARCH_WHS_NM' : mobPopObj.popWhsNm.init(VIEW_MODE_LIST); break;
  59. case 'ITP_BTN_MRTNMNG02010_LIST_DELETE_WHS_NM' : mobPopObj.popWhsNm.delete(VIEW_MODE_LIST); break;
  60. case 'ITP_BTN_MRTNMNG02010_LIST_SEARCH' : mobContObj.list.search(); break;
  61. case 'ITP_BTN_MRTNMNG02010_LIST_CANCEL' : mobContObj.list.cancel(); break;
  62. }
  63. return false;
  64. });
  65. $('button[id^="ITP_BTN_MRTNMNG02010_DETAIL"]').on('click', function() {
  66. var id = $(this).attr('id');
  67. switch (id) {
  68. case 'ITP_BTN_MRTNMNG02010_DETAIL_CANCEL_LIST' : mobContObj.detail.cancel(); break;
  69. }
  70. return false;
  71. });
  72. $('button[id^="ITP_BTN_MRTNMNG02010_MODIFY"]').on('click', function() {
  73. var id = $(this).attr('id');
  74. switch (id) {
  75. case 'ITP_BTN_MRTNMNG02010_MODIFY_SEARCH_WHS_NM' : mobPopObj.popWhsNm.init(VIEW_MODE_MODIFY); break;
  76. case 'ITP_BTN_MRTNMNG02010_MODIFY_DELETE_WHS_NM' : mobPopObj.popWhsNm.delete(VIEW_MODE_MODIFY); break;
  77. case 'ITP_BTN_MRTNMNG02010_MODIFY_ADD_ROW' : mobPopObj.popItem.init(); break;
  78. case 'ITP_BTN_MRTNMNG02010_MODIFY_DEL_ROW' : mobContObj.modify.list.detachRow(); break;
  79. case 'ITP_BTN_MRTNMNG02010_MODIFY_CANCEL' : mobContObj.modify.cancel(); break;
  80. case 'ITP_BTN_MRTNMNG02010_MODIFY_REQ_ORDER' : mobPopObj.popReqConfirm.init(RTN_REQ_ST_CD_REQUEST_SAVE); break;
  81. case 'ITP_BTN_MRTNMNG02010_MODIFY_TEMP_SAVE' : mobPopObj.popReqConfirm.init(RTN_REQ_ST_CD_TEMP_SAVE); break;
  82. }
  83. return false;
  84. });
  85. $(document).on('click', '#ITP_LIST_MRTNMNG02010_LIST_ROWS li', function() {
  86. var index = $(this).index();
  87. var item = mobContObj.list.rows[index];
  88. (item.rtnReqStCd === RTN_REQ_ST_CD_TEMP_SAVE) ?
  89. (item.rtnReqMgrId === fn_make_user_info.get('userId')) ? mobContObj.modify.init(item) : mobContObj.detail.init(item) :
  90. mobContObj.detail.init(item);
  91. });
  92. $(document).off('click', '#ITP_LIST_MRTNMNG02010_POP_WHS_ROWS li button');
  93. $(document).on('click', '#ITP_LIST_MRTNMNG02010_POP_WHS_ROWS li button', function() {
  94. mobPopObj.popWhsNm.choice($(this));
  95. });
  96. }
  97. },
  98. switchScreen: function(mode) {
  99. $('#ITP_MOBILE_MRTNMNG02010').find('div[id$="_CONTAINER"]').each(function(i) {
  100. $(this).hide();
  101. });
  102. if(mode === VIEW_MODE_LIST) {
  103. $('#ITP_AJAX_MRTNMNG02010_LIST_CONTAINER').show();
  104. } else if(mode === VIEW_MODE_DETAIL) {
  105. $('#ITP_AJAX_MRTNMNG02010_DETAIL_CONTAINER').show();
  106. CommonObj.moreView('#ITP_LIST_MRTNMNG02010_LIST_AREA', false);
  107. } else if(mode === VIEW_MODE_MODIFY) {
  108. $('#ITP_AJAX_MRTNMNG02010_MODIFY_CONTAINER').show();
  109. CommonObj.moreView('#ITP_LIST_MRTNMNG02010_LIST_AREA', false);
  110. }
  111. this.viewMode = mode;
  112. },
  113. ready: function() {
  114. mobContObj.list.init();
  115. }
  116. };
  117. let mobContObj = {
  118. list: {
  119. listPage: 1,
  120. rows: [],
  121. init: function() {
  122. mobPageObj.switchScreen(VIEW_MODE_LIST);
  123. this.search();
  124. },
  125. search: function() {
  126. this.listPage = 1;
  127. this.rows.length = 0;
  128. $('#ITP_LIST_MRTNMNG02010_LIST_ROWS').empty();
  129. setTimeout(function() {
  130. mobContObj.list.load();
  131. }, 100);
  132. },
  133. pager: function(totPage) {
  134. (this.listPage < totPage) ?
  135. CommonObj.moreView('#ITP_LIST_MRTNMNG02010_ITEM_AREA', true, mobContObj.list.load) :
  136. CommonObj.moreView('#ITP_LIST_MRTNMNG02010_ITEM_AREA', false);
  137. this.listPage += 1;
  138. },
  139. load: function() {
  140. var _this = this;
  141. var callbackFn = function(result) {
  142. console.log(result);
  143. mobContObj.list.pager(result.gridTotal);
  144. $.each(result.gridRows, function (i, item) {
  145. $('#ITP_LIST_MRTNMNG02010_LIST_AREA .panel-group').append($('#ITP_LIST_MRTNMNG02010_LIST_ROWCOPY').html());
  146. var $li = $('#ITP_LIST_MRTNMNG02010_LIST_AREA .panel-group > .history_list5:last');
  147. // $li.find('.fnRtnReqUnqNo').text(item.rtnReqUnqNo);
  148. $li.find('.fnRtnReqDt').text(item.colReqDt);
  149. // $li.find('.fnRtnReqDt').text(item.rtnReqStCd === 'RR00' ? item.colReqDt : item.rtnReqDt);
  150. $li.find('.fnRtnReqMgrNm').text(item.rtnReqMgrNm);
  151. $li.find('.fnRtnReqStNm').text(item.rtnReqStNm);
  152. $li.find('.fnRtnReqAmt').text(CommonObj.currency.add(item.rtnReqAmt));
  153. $li.find('.fnRtnReqItemQty').text(CommonObj.comma.set(item.rtnReqItemQty));
  154. $li.find('.fnRtnWhsNm').text(item.rtnWhsNm);
  155. $li.find('.fnRtnReqRjctNm').text(item.pchReqRjctNm);
  156. mobContObj.list.rows.push(item);
  157. });
  158. };
  159. const param = $('#ITP_FORM_MRTNMNG02010_LIST_SEARCH').serializeObject();
  160. param.gridPage = mobContObj.list.listPage;
  161. param.gridSize = mobile_list_size;
  162. fn_ajax_call(API_MOBILE_GRID_LIST, JSON.stringify(param), callbackFn, 'POST');
  163. },
  164. cancel: function () {
  165. $(location).attr('href', MOBILE_CONTEXTPATH + '/app/main.html');
  166. }
  167. },
  168. detail: {
  169. rows: [],
  170. init: function(item) {
  171. mobPageObj.switchScreen(VIEW_MODE_DETAIL);
  172. this.search(item);
  173. },
  174. search: function(item) {
  175. var _this = this;
  176. var callbackFn = function(result) {
  177. console.log(result);
  178. _this.view(result);
  179. };
  180. const param = {'brandId':fn_make_user_info.get('brandId'), 'rtnReqUnqNo': item.rtnReqUnqNo};
  181. fn_ajax_call(API_MOBILE_INFO, param, callbackFn, 'GET');
  182. },
  183. view: function(result) {
  184. var _this = this;
  185. var id = '#ITP_AJAX_MRTNMNG02010_DETAIL_CONTAINER';
  186. $(id).find('.fnRtnReqDt').text(result.rtnReqDt);
  187. $(id).find('.fnRtnReqAmt').text(CommonObj.currency.add(result.rtnReqAmt));
  188. $(id).find('.fnRtnWhsNm').text(result.rtnWhsNm);
  189. $(id).find('.fnRtnRjctDt').text(result.rtnRjctDt);
  190. $(id).find('.fnRjctNm').text(result.rtnRjctNm);
  191. $(id).find('.fnRjctRsn').text(result.rtnRjctRsn);
  192. $.each(result.rtnReqDtlList, function (i, item) {
  193. $('#ITP_LIST_MRTNMNG02010_DETAIL_AREA .panel-group').append($('#ITP_LIST_MRTNMNG02010_DETAIL_ROWCOPY').html());
  194. var $li = $('#ITP_LIST_MRTNMNG02010_DETAIL_AREA .panel-group > .item-row:last');
  195. $li.find('.fnItemNm').text(item.itemNm);
  196. $li.find('.fnUnit').text(item.unit);
  197. $li.find('.fnRtnAmt').text(CommonObj.comma.set(item.rtnAmt));
  198. $li.find('.fnRtnQty').text(CommonObj.currency.add(item.rtnQty, ''));
  199. _this.rows.push(item);
  200. });
  201. },
  202. cancel: function () {
  203. this.rows.length = 0;
  204. var id = '#ITP_AJAX_MRTNMNG02010_DETAIL_CONTAINER';
  205. $(id).find('.fnDlvReqDt').text('');
  206. $(id).find('.fnRtnReqTotalAmt').text('');
  207. $(id).find('.fnLocationNm').text('');
  208. $(id).find('.fnRtnApprNm').text('');
  209. $('#ITP_LIST_MRTNMNG02010_DETAIL_AREA .panel-group').empty();
  210. mobPageObj.switchScreen(VIEW_MODE_LIST);
  211. }
  212. },
  213. modify: {
  214. init: function(item) {
  215. mobPageObj.switchScreen(VIEW_MODE_MODIFY);
  216. this.clear();
  217. this.search(item);
  218. },
  219. search: function(item) {
  220. var _this = this;
  221. var callbackFn = function(result) {
  222. console.log(result);
  223. _this.view(result);
  224. };
  225. const param = {'brandId':fn_make_user_info.get('brandId'), 'rtnReqUnqNo': item.rtnReqUnqNo};
  226. fn_ajax_call(API_MOBILE_INFO, param, callbackFn, 'GET');
  227. },
  228. view: function(result) {
  229. var _this = this;
  230. var id = '#ITP_AJAX_MRTNMNG02010_MODIFY_CONTAINER';
  231. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_COL_REQ_DT').val(result.colReqDt.replace(/\./g, "."));
  232. $('#ITP_FORM_MRTNMNG02010_MODIFY_COL_REQ_DT').datepicker('setDate', result.colReqDt.replace(/\./g, "."));
  233. $(id).find('.fnRtnReqTotalAmt').text(CommonObj.currency.add(result.pchReqTotalAmt));
  234. $(id).find('.fnOrdUseAmt').text(CommonObj.currency.add(result.ordUseAmt));
  235. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_RTN_REQ_UNQ_NO').val(result.rtnReqUnqNo);
  236. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_WHS_DVSN').val(result.whsDvsn);
  237. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_RTN_REQ_MGR_ID').val(result.rtnReqMgrId);
  238. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_WHS_NM').val(result.rtnWhsNm);
  239. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_WHS_ID').val(result.rtnWhsId);
  240. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_LOCATION').val(result.rtnLocation);
  241. _this.list.init(result.rtnReqDtlList);
  242. },
  243. list: {
  244. rows: [],
  245. init: function(rtnReqDtlList) {
  246. var _this = this;
  247. var existRows = [];
  248. $.each(rtnReqDtlList, function (i, item) {
  249. item['viewCd'] = 'U';
  250. existRows.push(item);
  251. });
  252. this.attachRow(existRows);
  253. },
  254. attachRow: function (items) {
  255. var _this = this;
  256. var fnIsNotExist = function(rows, item) {
  257. var isPushRow = true;
  258. var isAddItem = true;
  259. $.each(rows, function(i, row) {
  260. if(row.brandUnitUnqNo === item.brandUnitUnqNo) {
  261. if(row.viewCd === 'D') {
  262. row.viewCd = 'U';
  263. row.rtnQty = item.rtnQty;
  264. } else {
  265. isAddItem = false;
  266. }
  267. isPushRow = false;
  268. return false;
  269. }
  270. });
  271. if(isPushRow) _this.rows.push(item);
  272. return isAddItem;
  273. };
  274. $.each(items, function(i, item) {
  275. if(fnIsNotExist(_this.rows, item)) {
  276. $('#ITP_LIST_MRTNMNG02010_MODIFY_AREA .mb_0').append($('#ITP_LIST_MRTNMNG02010_MODIFY_ROWCOPY').html());
  277. var $li = $('#ITP_LIST_MRTNMNG02010_MODIFY_AREA .mb_0 > .item-row:last');
  278. $li.find('.fnBrandUnitUnqNo').val(item.brandUnitUnqNo);
  279. $li.find('.fnItemNm').text(item.itemNm);
  280. $li.find('#ITP_MRTNMNG02010_MODIFY_NUM').val(item.rtnQty);
  281. $li.find('#ITP_MRTNMNG02010_MODIFY_NUM').data('brandUnitUnqNo', item.brandUnitUnqNo);
  282. $li.find('.fnUnitAmt').text(CommonObj.currency.add(item.unitAmt));
  283. $li.find('.fnOrdAmt').text(CommonObj.currency.add(Number(item.unitAmt) * Number(item.rtnQty)));
  284. $('.item-row .DETAIL_ITEM_PLUS')[$li.index()].addEventListener('click', function() { _this.actPlus(this); });
  285. $('.item-row .DETAIL_ITEM_MINUS')[$li.index()].addEventListener('click', function() { _this.actMinus(this); });
  286. $('.item-row #ITP_MRTNMNG02010_MODIFY_NUM')[$li.index()].addEventListener('input', function() { _this.actInput(this); });
  287. _this.rtnReqAmtTot();
  288. }
  289. });
  290. },
  291. detachRow: function () {
  292. if($('#ITP_LIST_MRTNMNG02010_MODIFY_AREA input:checkbox[name=brandUnitUnqNo]:checked').length > 0) {
  293. var _this = this;
  294. $('#ITP_LIST_MRTNMNG02010_MODIFY_ROWS li').each(function(index, elem) {
  295. var __this = this;
  296. var isChecked = $(this).find('input[type="checkbox"]').is(':checked');
  297. if(isChecked) {
  298. if(_this.rows[index].viewCd === 'U') {
  299. _this.rows[index].viewCd = 'D';
  300. } else {
  301. $.each(_this.rows, function(i, row){
  302. if(row.brandUnitUnqNo === $(__this).find('input[type="checkbox"]').val()) {
  303. _this.rows.splice(i, 1);
  304. return false;
  305. }
  306. });
  307. }
  308. $(this).remove();
  309. }
  310. });
  311. this.rtnReqAmtTot();
  312. }
  313. },
  314. actPlus: function(elem) {
  315. var elQty = $(elem).prev();
  316. var num = Number($(elQty).val());
  317. if(num < 100000) {
  318. var calcNum = num + 1;
  319. $(elQty).val(calcNum.toString());
  320. this.rows[this.itemIndex($(elQty).data('brandUnitUnqNo'))]['rtnQty'] = calcNum;
  321. this.rtnReqAmtUnit(elem, calcNum);
  322. this.rtnReqAmtTot();
  323. }
  324. },
  325. actMinus: function(elem) {
  326. var elQty = $(elem).next();
  327. var num = Number($(elQty).val());
  328. if(num > 1) {
  329. var calcNum = num - 1;
  330. $(elQty).val(calcNum.toString());
  331. this.rows[this.itemIndex($(elQty).data('brandUnitUnqNo'))]['rtnQty'] = calcNum;
  332. this.rtnReqAmtUnit(elem, calcNum);
  333. this.rtnReqAmtTot();
  334. }
  335. },
  336. actInput: function(elem) {
  337. var index = this.itemIndex($(elem).data('brandUnitUnqNo'));
  338. CommonObj.chkMaxLength(elem, function(qty) {
  339. mobContObj.modify.list.rows[index]['rtnQty'] = qty;
  340. mobContObj.modify.list.rtnReqAmtUnit(elem, qty);
  341. mobContObj.modify.list.rtnReqAmtTot();
  342. });
  343. },
  344. itemIndex: function(brandUnitUnqNo) {
  345. var choiceIndex = -1;
  346. $.each(this.rows, function(index, item) {
  347. if(brandUnitUnqNo === item.brandUnitUnqNo) {
  348. choiceIndex = index;
  349. return false;
  350. }
  351. });
  352. return choiceIndex;
  353. },
  354. rtnReqAmtUnit: function(elem, qty) {
  355. var $div = $(elem).parent().prev();
  356. var unitAmt = CommonObj.onlyNumber($div.find('.fnUnitAmt').text());
  357. $div.find('.fnOrdAmt').text(CommonObj.currency.add(Number(unitAmt ? unitAmt : 0) * Number(qty)));
  358. },
  359. rtnReqAmtTot: function() {
  360. var reqAmt = 0;
  361. $.each(this.rows, function(index, item) {
  362. if(item.viewCd !== 'D') {
  363. var qty = item.rtnQty;
  364. var amt = item.unitAmt;
  365. reqAmt += Number(qty) * amt;
  366. }
  367. });
  368. $('#ITP_FORM_MRTNMNG02010_MODIFY').find('.fnRtnReqAmtTot').text(CommonObj.currency.add(reqAmt));
  369. }
  370. },
  371. cancel: function () {
  372. mobPageObj.switchScreen(VIEW_MODE_LIST);
  373. },
  374. clear: function() {
  375. this.list.rows.length = 0;
  376. var id = '#ITP_AJAX_MRTNMNG02010_MODIFY_CONTAINER';
  377. $(id).find('.fnDlvReqDt').val('');
  378. $(id).find('.fnRtnReqTotalAmt').text('');
  379. $(id).find('.fnOrdUseAmt').text('');
  380. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_COL_REQ_DT').val('');
  381. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_RTN_REQ_UNQ_NO').val('');
  382. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_WHS_DVSN').val('');
  383. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_RTN_REQ_MGR_ID').val('');
  384. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_WHS_NM').val('');
  385. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_WHS_ID').val('');
  386. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_LOCATION').val('');
  387. $('#ITP_LIST_MRTNMNG02010_MODIFY_ROWS').children().remove();
  388. }
  389. }
  390. };
  391. let mobPopObj = {
  392. popItem: {
  393. popId: 'ITP_POP_MRTNMNG02010_ITEM_AREA',
  394. init: function() {
  395. mobPopObj.show(this.popId);
  396. $('#ITP_POP_MRTNMNG02010_ITEM_AREA #ITP_FORM_MRTNMNG02010_POP_ITEM_KEYWORD').val('');
  397. this.search();
  398. },
  399. search: function() {
  400. $('#ITP_LIST_MRTNMNG02010_POP_ITEM_AREA .panel-group').empty();
  401. var callbackFn = function(result) {
  402. console.log(result);
  403. mobPopObj.popItem.rows = result.gridRows;
  404. $.each(mobPopObj.popItem.rows, function (i, item) {
  405. $('#ITP_LIST_MRTNMNG02010_POP_ITEM_AREA .panel-group').append($('#ITP_LIST_MRTNMNG02010_POP_ITEM_ROWCOPY').html());
  406. var $li = $('#ITP_LIST_MRTNMNG02010_POP_ITEM_AREA .panel-group > .row_2:last');
  407. $li.find('#ITP_FORM_MRTNMNG02010_POP_ITEM_CHECKBOX').val(item.itemId);
  408. $li.find('.fnItemNm').text(item.itemNm);
  409. $li.find('.fnUnitAmt').text(CommonObj.currency.add(item.unitAmt));
  410. $li.find('.fnOrdAmt').text(CommonObj.currency.add(item.unitAmt));
  411. });
  412. mobPopObj.popItem.addRow.init();
  413. };
  414. let param = $('#ITP_FORM_MRTNMNG02010_POPUP_ITEM').serializeObject();
  415. fn_ajax_call(API_POP_ITEM_LIST, JSON.stringify(param), callbackFn, 'POST');
  416. },
  417. addRow: {
  418. init: function() {
  419. this.button.init();
  420. },
  421. button: {
  422. init: function() {
  423. var _this = this;
  424. $('button[id^="ITP_BTN_MRTNMNG02010_POP_ITEM_"]').off('click').on('click', function() {
  425. var id = $(this).attr('id');
  426. switch (id) {
  427. case 'ITP_BTN_MRTNMNG02010_POP_ITEM_PLUS' : _this.actPlus($(this)); break;
  428. case 'ITP_BTN_MRTNMNG02010_POP_ITEM_MINUS' : _this.actMinus($(this)); break;
  429. case 'ITP_BTN_MRTNMNG02010_POP_ITEM_ADD' : _this.addItems(); break;
  430. // case 'ITP_BTN_MRTNMNG02010_POP_ITEM_ADD' : _this.actItemAdd($(this)); break;
  431. case 'ITP_BTN_MRTNMNG02010_POP_ITEM_SEARCH' : mobPopObj.popItem.search(); break;
  432. case 'ITP_BTN_MRTNMNG02010_POP_ITEM_CLOSE' : mobPopObj.hide(id); break;
  433. }
  434. return false;
  435. });
  436. $('input[id="ITP_MRTNMNG02010_POP_NUM"]').off('input').on('input', function() {
  437. var _this = this;
  438. CommonObj.chkMaxLength(this, function(qty) { mobPopObj.popItem.addRow.button.reqAmtUnit(_this, qty) });
  439. });
  440. },
  441. actPlus: function(elem) {
  442. var elQty = $(elem).prev();
  443. var num = Number($(elQty).val());
  444. if(num < 100000) {
  445. var calcNum = num + 1;
  446. $(elQty).val(calcNum.toString());
  447. this.reqAmtUnit(elem, calcNum);
  448. }
  449. },
  450. actMinus: function(elem) {
  451. var elQty = $(elem).next();
  452. var num = Number($(elQty).val());
  453. if(num > 1) {
  454. var calcNum = num - 1;
  455. $(elQty).val(calcNum.toString());
  456. this.reqAmtUnit(elem, calcNum);
  457. }
  458. },
  459. reqAmtUnit: function(elem, qty) {
  460. var $li = $(elem).closest('li');
  461. var unitAmt = CommonObj.onlyNumber($li.find('.fnUnitAmt').text());
  462. $li.find('.fnOrdAmt').text(CommonObj.currency.add(Number(unitAmt ? unitAmt : 0) * Number(qty)));
  463. },
  464. actItemAdd: function(elem) {
  465. var $li = $(elem).closest('li');
  466. var item = mobPopObj.popItem.rows[$li.index()];
  467. item['viewCd'] = 'C';
  468. item['rtnQty'] = $li.find('.fnRtnQty').html();
  469. // var index = $(elem).closest('li').index();
  470. // var item = mobPopObj.popItem.rows[index];
  471. // item['pchReqQty'] = $(elem).closest('li').find('.fnPchReqQty').html();
  472. mobContObj.list.attachRow(item);
  473. },
  474. addItems: function() {
  475. var chkMsg = '';
  476. var items = [];
  477. $('#ITP_LIST_MRTNMNG02010_POP_ITEM_ROWS').find('input:checkbox').each(function() {
  478. if($(this).is(':checked')) {
  479. var val = $(this).closest('li').find('#ITP_MRTNMNG02010_POP_NUM').val();
  480. if(val === '') {
  481. chkMsg = '수량을 입력하세요.';
  482. return false;
  483. }
  484. var index = $(this).closest('li').index();
  485. var item = mobPopObj.popItem.rows[index];
  486. item['viewCd'] = 'C';
  487. item['rtnQty'] = val;
  488. items.push(item);
  489. }
  490. });
  491. if(chkMsg !== '') {
  492. itp_fn_modal_alert(chkMsg);
  493. return;
  494. }
  495. if(items.length < 1) {
  496. itp_fn_modal_alert('품목을 선택하세요.');
  497. return;
  498. }
  499. mobContObj.modify.list.attachRow(items);
  500. mobPopObj.popItem.close();
  501. }
  502. }
  503. },
  504. delRow: function() {
  505. },
  506. close: function() {
  507. this.rows.length = 0;
  508. $('#ITP_LIST_MRTNMNG02010_POP_ITEM_ROWS').children().remove();
  509. mobPopObj.hide('ITP_POP_MRTNMNG02010_ITEM_AREA');
  510. }
  511. },
  512. popWhsNm: {
  513. popId: 'ITP_POP_MRTNMNG02010_WHS_AREA',
  514. mode: '',
  515. rows: [],
  516. init: function (mode) {
  517. this.mode = mode;
  518. $('#ITP_POP_MRTNMNG02010_WHS_AREA #ITP_FORM_MRTNMNG02010_POP_WHS_KEYWORD').val('');
  519. this.rows.length = 0;
  520. mobPopObj.show(this.popId);
  521. this.search();
  522. this.action();
  523. },
  524. search: function () {
  525. var _this = this;
  526. $('#ITP_LIST_MRTNMNG02010_POP_WHS_AREA .panel-group').empty();
  527. var callbackFn = function(result) {
  528. console.log(result);
  529. _this.view(result.gridRows);
  530. };
  531. const param = $('#ITP_FORM_MRTNMNG02010_POP_WHS').serializeObject();
  532. (fn_make_user_info.get('authTpCd') === '50') ? param.swhsDvsn = 'W02' : param.swhsDvsn = mobPageObj.viewMode === VIEW_MODE_LIST ? '' : 'W01';
  533. fn_ajax_call(API_POP_SEARCH_LIST, JSON.stringify(param), callbackFn, 'POST');
  534. },
  535. view: function(gridRows) {
  536. this.rows = gridRows;
  537. $.each(gridRows, function (i, item) {
  538. $('#ITP_LIST_MRTNMNG02010_POP_WHS_AREA .panel-group').append($('#ITP_LIST_MRTNMNG02010_POP_WHS_ROWCOPY').html());
  539. var $li = $('#ITP_LIST_MRTNMNG02010_POP_WHS_AREA .panel-group > .row_2:last');
  540. $li.find('.fnWhsNm').text(item.whsNm);
  541. $li.find('.fnLocationNm').text(item.locationNm);
  542. $li.find('.fnWhsId').data('whs-id', item.whsId);
  543. });
  544. },
  545. choice: function(elem) {
  546. var _this = this;
  547. var whsId = $(elem).data('whs-id');
  548. $.each(this.rows, function (i, item) {
  549. if(whsId === item.whsId) {
  550. if(_this.mode === VIEW_MODE_LIST) {
  551. $('#ITP_FORM_MRTNMNG02010_LIST_SEARCH #ITP_FORM_MRTNMNG02010_LIST_SEARCH_WHS_ID').val(item.whsId);
  552. $('#ITP_FORM_MRTNMNG02010_LIST_SEARCH #ITP_FORM_MRTNMNG02010_LIST_SEARCH_WHS_NM').val(item.whsNm);
  553. } else if(_this.mode === VIEW_MODE_MODIFY) {
  554. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_WHS_ID').val(item.whsId);
  555. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_WHS_NM').val(item.whsNm);
  556. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_LOCATION').val(item.location);
  557. }
  558. mobPopObj.hide(_this.popId);
  559. return false;
  560. }
  561. });
  562. },
  563. action: function() {
  564. var _this = this;
  565. $('button[id^="ITP_BTN_MRTNMNG02010_POP"]').off('click').on('click', function() {
  566. var id = $(this).attr('id');
  567. switch (id) {
  568. case 'ITP_BTN_MRTNMNG02010_POP_WHS_SEARCH' : _this.search(); break;
  569. case 'ITP_BTN_MRTNMNG02010_POP_WHS_CHOICE' : _this.choice($(this)); break;
  570. case 'ITP_BTN_MRTNMNG02010_POP_WHS_CLOSE' : mobPopObj.hide(_this.popId); break;
  571. }
  572. return false;
  573. });
  574. },
  575. delete: function(mode) {
  576. if(mode === VIEW_MODE_LIST) {
  577. $('#ITP_FORM_MRTNMNG02010_LIST_SEARCH #ITP_FORM_MRTNMNG02010_LIST_SEARCH_WHS_ID').val('');
  578. $('#ITP_FORM_MRTNMNG02010_LIST_SEARCH #ITP_FORM_MRTNMNG02010_LIST_SEARCH_WHS_NM').val('');
  579. } else if(mode === VIEW_MODE_MODIFY) {
  580. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_WHS_ID').val('');
  581. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_WHS_NM').val('');
  582. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_LOCATION').val('');
  583. }
  584. }
  585. },
  586. popReqConfirm: {
  587. popId: 'ITP_POP_MRTNMNG02010_REQ_AREA',
  588. rtnReqStCd: '',
  589. init: function (rtnReqStCd) {
  590. let mgrId = $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_RTN_REQ_MGR_ID').val();
  591. if(mgrId !== fn_make_user_info.get('userId')) {
  592. itp_fn_modal_alert(ITP_MSG_LOCALE.message.ajax.diffWrite);
  593. return;
  594. }
  595. if($('#ITP_LIST_MRTNMNG02010_MODIFY_ROWS').children().length < 1) {
  596. itp_fn_modal_alert( "요청할 품목내역이 없습니다.");
  597. return;
  598. }
  599. var chkMsg = '';
  600. $.each(mobContObj.modify.list.rows, function(index, item) {
  601. if(item.rtnQty === '') {
  602. chkMsg = '수량을 입력하세요.';
  603. return false;
  604. }
  605. });
  606. if(chkMsg !== '') {
  607. itp_fn_modal_alert(chkMsg);
  608. return;
  609. }
  610. this.rtnReqStCd = rtnReqStCd;
  611. mobPopObj.show(this.popId);
  612. this.view();
  613. this.action();
  614. },
  615. view: function() {
  616. if(this.rtnReqStCd === RTN_REQ_ST_CD_REQUEST_SAVE) {
  617. $('#ITP_POP_MRTNMNG02010_REQ_AREA .msg_save').text('반품요청 하시겠습니까?');
  618. } else {
  619. $('#ITP_POP_MRTNMNG02010_REQ_AREA .msg_save').text('임시저장 하시겠습니까?');
  620. }
  621. $('#ITP_POP_MRTNMNG02010_REQ_AREA .fnPopDlvReqDt').text($('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_COL_REQ_DT').val());
  622. $('#ITP_POP_MRTNMNG02010_REQ_AREA .fnItemQty').text(CommonObj.currency.add($('#ITP_LIST_MRTNMNG02010_MODIFY_ROWS').children().length, '개'));
  623. $('#ITP_POP_MRTNMNG02010_REQ_AREA .fnRtnTotalAmt').text($('#ITP_FORM_MRTNMNG02010_MODIFY .fnRtnReqAmtTot').text());
  624. },
  625. action: function() {
  626. var _this = this;
  627. $('#ITP_POP_MRTNMNG02010_REQ_AREA button[id="ITP_BTN_MRTNMNG02010_POP_REQ_CONFIRM"]').off('click').on('click', function() {
  628. $('#ITP_FORM_MRTNMNG02010_MODIFY #ITP_FORM_MRTNMNG02010_MODIFY_PCH_REQ_ST_CD').val(_this.rtnReqStCd);
  629. _this.save('#ITP_FORM_MRTNMNG02010_MODIFY');
  630. });
  631. },
  632. save: function(formId) {
  633. var _this = this;
  634. var gridInsertData = [];
  635. var gridUpdateData = [];
  636. var gridDeleteData = [];
  637. $.each(mobContObj.modify.list.rows, function(index, item) {
  638. item['rtnAmt'] = parseInt(item.unitAmt) * parseInt(item.rtnQty);
  639. if(item.viewCd === 'D') {
  640. gridDeleteData.push(item);
  641. } else if(item.viewCd === 'C') {
  642. gridInsertData.push(item);
  643. } else {
  644. item.viewCd = 'U';
  645. gridUpdateData.push(item);
  646. }
  647. });
  648. let param = $(formId).serializeObject();
  649. param['rtnReqStCd'] = this.rtnReqStCd;
  650. param['colReqDt'] = param.colReqDt.replace(/[^0-9]/g, "");
  651. param.gridInsertData = gridInsertData;
  652. param.gridUpdateData = gridUpdateData;
  653. param.gridDeleteData = gridDeleteData;
  654. console.log(JSON.stringify(param));
  655. var saveFn = function (result) {
  656. mobPopObj.hide(_this.popId);
  657. mobContObj.list.init();
  658. };
  659. fn_ajax_call(API_MOBILE_SAVE, JSON.stringify(param), saveFn, 'POST');
  660. }
  661. },
  662. show: function(popId) {
  663. $('button[id$="_CLOSE"]').off('click').on('click', function() {
  664. if($(this).hasClass('btn-pop-close')) {
  665. mobPopObj.hide(popId);
  666. }
  667. });
  668. $('#' + popId).show();
  669. },
  670. hide: function(popId) {
  671. $('#' + popId).closest('.mobile-pop-close').hide();
  672. }
  673. };