ITP_MRTNMNG02010.js 25 KB

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