ITP_MPOMNG02010.js 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752
  1. require(['config'], function() {
  2. require([
  3. ], function($) {
  4. mobPageObj.init();
  5. });
  6. });
  7. /*API URL*/
  8. const API_MOBILE_GRID_LIST = '/api/pomng/detail-grid-list'; // 목록
  9. const API_MOBILE_INFO = '/api/pomng/info-pchReq'; // 상세
  10. const API_MOBILE_SAVE = '/api/pomng/save-pchReq'; // 저장
  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 PCH_REQ_ST_CD_TEMP_SAVE ="PR00";
  14. const PCH_REQ_ST_CD_REQUEST_SAVE ="PR20";
  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_MPOMNG02010 .itp_input.date').datepicker(ITP_DATE_LANGUAGE);
  40. $('#ITP_FORM_MPOMNG02010_LIST_SEARCH_FROM_DT').datepicker('setDate', itp_fn_date_add('D', -30));
  41. $('#ITP_FORM_MPOMNG02010_LIST_SEARCH_TO_DT').datepicker('setDate', itp_fn_date_add('M', 0));
  42. if(fn_make_user_info.get('authTpCd') === '50') {
  43. $('#ITP_FORM_MPOMNG02010_LIST_SEARCH #ITP_FORM_MPOMNG02010_LIST_SEARCH_WHS_NM').attr('readonly', true);
  44. // $('#ITP_FORM_MPOMNG02010_LIST_SEARCH #ITP_BTN_MPOMNG02010_LIST_SEARCH_WHS_NM').attr('disabled', true);
  45. // $('#ITP_FORM_MPOMNG02010_LIST_SEARCH #ITP_BTN_MPOMNG02010_LIST_DELETE_WHS_NM').attr('disabled', true);
  46. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_WHS_NM').attr('readonly', true);
  47. // $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_BTN_MPOMNG02010_MODIFY_SEARCH_WHS_NM').attr('disabled', true);
  48. // $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_BTN_MPOMNG02010_MODIFY_DELETE_WHS_NM').attr('disabled', true);
  49. }
  50. },
  51. info: function() {
  52. $('input:hidden[id$="_BRAND_ID"]').val(fn_make_user_info.get('brandId'));
  53. $('input:hidden[id$="_STORE_ID"]').val(fn_make_user_info.get('storeId'));
  54. },
  55. action: function() {
  56. }
  57. },
  58. event: {
  59. init: function() {
  60. this.button();
  61. },
  62. button: function() {
  63. $('button[id^="ITP_BTN_MPOMNG02010_LIST"]').on('click', function() {
  64. var id = $(this).attr('id');
  65. switch (id) {
  66. case 'ITP_BTN_MPOMNG02010_LIST_SEARCH_WHS_NM' : mobPopObj.popWhsNm.init(VIEW_MODE_LIST); break;
  67. case 'ITP_BTN_MPOMNG02010_LIST_DELETE_WHS_NM' : mobPopObj.popWhsNm.delete(VIEW_MODE_LIST); break;
  68. case 'ITP_BTN_MPOMNG02010_LIST_SEARCH' : mobContObj.list.search(); break;
  69. }
  70. return false;
  71. });
  72. $('button[id^="ITP_BTN_MPOMNG02010_VIEW"]').on('click', function() {
  73. var id = $(this).attr('id');
  74. switch (id) {
  75. case 'ITP_BTN_MPOMNG02010_VIEW_CANCEL_LIST' : mobContObj.detail.cancel(); break;
  76. }
  77. return false;
  78. });
  79. $('button[id^="ITP_BTN_MPOMNG02010_MODIFY"]').on('click', function() {
  80. var id = $(this).attr('id');
  81. switch (id) {
  82. case 'ITP_BTN_MPOMNG02010_MODIFY_SEARCH_WHS_NM' : mobPopObj.popWhsNm.init(VIEW_MODE_MODIFY); break;
  83. case 'ITP_BTN_MPOMNG02010_MODIFY_DELETE_WHS_NM' : mobPopObj.popWhsNm.delete(VIEW_MODE_MODIFY); break;
  84. case 'ITP_BTN_MPOMNG02010_MODIFY_ADD_ROW' : mobPopObj.popItem.init(); break;
  85. case 'ITP_BTN_MPOMNG02010_MODIFY_DEL_ROW' : mobContObj.modify.list.detachRow(); break;
  86. case 'ITP_BTN_MPOMNG02010_MODIFY_CANCEL' : mobContObj.modify.cancel(); break;
  87. case 'ITP_BTN_MPOMNG02010_MODIFY_REQ_ORDER' : mobPopObj.popReqConfirm.init(PCH_REQ_ST_CD_REQUEST_SAVE); break;
  88. case 'ITP_BTN_MPOMNG02010_MODIFY_TEMP_SAVE' : mobPopObj.popReqConfirm.init(PCH_REQ_ST_CD_TEMP_SAVE); break;
  89. }
  90. return false;
  91. });
  92. }
  93. },
  94. switchScreen: function(mode) {
  95. $('#ITP_MOBILE_MPOMNG02010').find('div[id$="_CONTAINER"]').each(function(i) {
  96. $(this).hide();
  97. });
  98. if(mode === VIEW_MODE_LIST) {
  99. $('#ITP_AJAX_MPOMNG02010_LIST_CONTAINER').show();
  100. if(fn_make_user_info.get('authTpCd') === '50') {
  101. $('#ITP_FORM_MPOMNG02010_LIST_SEARCH #ITP_FORM_MPOMNG02010_LIST_SEARCH_WHS_NM').attr('readonly', true);
  102. $('#ITP_FORM_MPOMNG02010_LIST_SEARCH #ITP_FORM_MPOMNG02010_LIST_SEARCH_WHS_ID').attr('disabled', true);
  103. }
  104. } else if(mode === VIEW_MODE_DETAIL) {
  105. $('#ITP_AJAX_MPOMNG02010_VIEW_CONTAINER').show();
  106. CommonObj.moreView('#ITP_LIST_MPOMNG02010_ITEM_AREA', false);
  107. } else if(mode === VIEW_MODE_MODIFY) {
  108. $('#ITP_AJAX_MPOMNG02010_MODIFY_CONTAINER').show();
  109. CommonObj.moreView('#ITP_LIST_MPOMNG02010_ITEM_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_MPOMNG02010_ITEM_ROWS').children().remove();
  129. setTimeout(function() {
  130. mobContObj.list.load();
  131. }, 100);
  132. },
  133. pager: function(totPage) {
  134. (this.listPage < totPage) ?
  135. CommonObj.moreView('#ITP_LIST_MPOMNG02010_ITEM_AREA', true, mobContObj.list.load) :
  136. CommonObj.moreView('#ITP_LIST_MPOMNG02010_ITEM_AREA', false);
  137. this.listPage += 1;
  138. },
  139. load: function() {
  140. var callbackFn = function(result) {
  141. console.log(result);
  142. mobContObj.list.pager(result.gridTotal);
  143. $.each(result.gridRows, function (i, item) {
  144. $('#ITP_LIST_MPOMNG02010_ITEM_AREA .panel-group').append($('#ITP_LIST_MPOMNG02010_ITEM_ROWCOPY').html());
  145. var $li = $('#ITP_LIST_MPOMNG02010_ITEM_AREA .panel-group > .item-row:last');
  146. $li.find('.fnReqTypeNm').text(item.reqTypeNm);
  147. $li.find('.fnPchReqDt').text(item.pchReqDt);
  148. $li.find('.fnDlvReqDt').text(item.dlvReqDt);
  149. $li.find('.fnPchReqMgrNm').text(item.pchReqMgrNm);
  150. $li.find('.fnPchReqStNm').text(item.pchReqStNm);
  151. $li.find('.fnWhsLocationNm').text(item.whsLocationNm);
  152. $li.find('.fnPchReqItemQty').text(CommonObj.comma.set(item.pchReqItemQty));
  153. $li.find('.fnPchReqTotalAmt').text(CommonObj.currency.add(item.pchReqTotalAmt));
  154. $li.find('.fnPchReqRjctDt').text(item.pchReqRjctDt);
  155. $li.find('.fnPchReqRjctNm').text(item.pchReqRjctNm);
  156. mobContObj.list.rows.push(item);
  157. });
  158. mobContObj.list.action();
  159. };
  160. const param = $('#ITP_FORM_MPOMNG02010_LIST_SEARCH').serializeObject();
  161. param.gridPage = mobContObj.list.listPage;
  162. param.gridSize = mobile_list_size;
  163. fn_ajax_call(API_MOBILE_GRID_LIST, JSON.stringify(param), callbackFn, 'POST');
  164. },
  165. action: function () {
  166. var _this = this;
  167. $(document).off('click', '#ITP_LIST_MPOMNG02010_ITEM_ROWS li');
  168. $(document).on('click', '#ITP_LIST_MPOMNG02010_ITEM_ROWS li', function() {
  169. var index = $(this).index();
  170. var item = _this.rows[index];
  171. (item.pchReqStCd === PCH_REQ_ST_CD_TEMP_SAVE) ?
  172. (item.pchReqMgrId === fn_make_user_info.get('userId')) ? mobContObj.modify.init(item) : mobContObj.detail.init(item) :
  173. mobContObj.detail.init(item);
  174. });
  175. }
  176. },
  177. detail: {
  178. rows: [],
  179. init: function(item) {
  180. mobPageObj.switchScreen(VIEW_MODE_DETAIL);
  181. this.search(item);
  182. },
  183. search: function(item) {
  184. var _this = this;
  185. var callbackFn = function(result) {
  186. console.log(result);
  187. _this.rows = result.pchReqDtlList;
  188. _this.view(result);
  189. };
  190. const param = {'brandId':fn_make_user_info.get('brandId'), 'pchReqUnqNo': item.pchReqUnqNo};
  191. fn_ajax_call(API_MOBILE_INFO, param, callbackFn, 'GET');
  192. },
  193. view: function(result) {
  194. var _this = this;
  195. var id = '#ITP_AJAX_MPOMNG02010_VIEW_CONTAINER';
  196. $(id).find('.fnDlvReqDt').text(result.dlvReqDt);
  197. $(id).find('.fnPchReqTotalAmt').text(CommonObj.currency.add(result.pchReqTotalAmt));
  198. $(id).find('.fnLocationNm').text(result.whsNm);
  199. $(id).find('.fnPchReqStnm').text(result.pchReqStNm);
  200. $(id).find('.fnPchReqRjctDt').text(result.pchReqRjctDt);
  201. $(id).find('.fnPchReqRjctNm').text(result.pchReqRjctNm);
  202. $.each(result.pchReqDtlList, function (i, item) {
  203. $('#ITP_LIST_MPOMNG02010_VIEW_AREA .panel-group').append($('#ITP_LIST_MPOMNG02010_VIEW_ROWCOPY').html());
  204. var $li = $('#ITP_LIST_MPOMNG02010_VIEW_AREA .panel-group > .item-row:last');
  205. $li.find('.fnItemNm').text(item.itemNm);
  206. $li.find('.fnPchReqQty').text(item.pchReqQty + ' ' + item.unit);
  207. $li.find('.fnPchReqAmt').text(CommonObj.currency.add(item.pchReqAmt));
  208. mobContObj.detail.rows.push(item);
  209. });
  210. },
  211. cancel: function () {
  212. this.rows.length = 0;
  213. var id = '#ITP_AJAX_MPOMNG02010_VIEW_CONTAINER';
  214. $(id).find('.fnDlvReqDt').text('');
  215. $(id).find('.fnPchReqTotalAmt').text('');
  216. $(id).find('.fnLocationNm').text('');
  217. $(id).find('.fnPchApprNm').text('');
  218. $('#ITP_LIST_MPOMNG02010_VIEW_AREA .panel-group').empty();
  219. mobPageObj.switchScreen(VIEW_MODE_LIST);
  220. }
  221. },
  222. modify: {
  223. init: function(item) {
  224. mobPageObj.switchScreen(VIEW_MODE_MODIFY);
  225. this.clear();
  226. this.search(item);
  227. },
  228. search: function(item) {
  229. var _this = this;
  230. var callbackFn = function(result) {
  231. console.log(result);
  232. _this.view(result);
  233. };
  234. const param = {'brandId':fn_make_user_info.get('brandId'), 'pchReqUnqNo': item.pchReqUnqNo};
  235. fn_ajax_call(API_MOBILE_INFO, param, callbackFn, 'GET');
  236. },
  237. view: function(result) {
  238. var _this = this;
  239. var id = '#ITP_AJAX_MPOMNG02010_MODIFY_CONTAINER';
  240. $('#ITP_FORM_MPOMNG02010_MODIFY_DLV_REQ_DT').datepicker('setDate', result.dlvReqDt);
  241. $(id).find('.fnPchReqTotalAmt').text(CommonObj.currency.add(result.pchReqTotalAmt));
  242. $(id).find('.fnOrdUseAmt').text(CommonObj.currency.add(result.ordUseAmt));
  243. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_BRAND_ID').val(result.brandId);
  244. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_STORE_ID').val(result.storeId);
  245. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_LOAN_DVSN').val(result.loanDvsn);
  246. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_LOAN_MGNT_UNQ_NO').val(result.loanMgntUnqNo);
  247. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_PCH_REQ_UNQ_NO').val(result.pchReqUnqNo);
  248. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_PCH_REQ_DVSN').val(result.pchReqDvsn);
  249. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_PCH_REQ_MGR_ID').val(result.pchReqMgrId);
  250. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_MALL_ID').val(result.mallId);
  251. $('#ITP_FORM_MPOMNG02010_MODIFY .fnOrdUseAmt').text(CommonObj.currency.add(result.ordUseAmt));
  252. if(result.whsId !== '' && result.location !== '') {
  253. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_WHS_ID').val(result.whsId);
  254. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_WHS_NM').val(result.whsNm);
  255. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_LOCATION').val(result.location);
  256. }
  257. _this.list.init(result.pchReqDtlList);
  258. },
  259. list: {
  260. rows: [],
  261. init: function(pchReqDtlList) {
  262. var _this = this;
  263. var existRows = [];
  264. $.each(pchReqDtlList, function (i, item) {
  265. item['viewCd'] = 'U';
  266. existRows.push(item);
  267. });
  268. this.attachRow(existRows);
  269. },
  270. attachRow: function (items) {
  271. var _this = this;
  272. var fnIsNotExist = function(rows, item) {
  273. var isPushRow = true;
  274. var isAddItem = true;
  275. $.each(rows, function(i, row) {
  276. if(row.brandUnitUnqNo === item.brandUnitUnqNo) {
  277. if(row.viewCd === 'D') {
  278. row.viewCd = 'U';
  279. row.pchReqQty = item.pchReqQty;
  280. } else {
  281. isAddItem = false;
  282. }
  283. isPushRow = false;
  284. return false;
  285. }
  286. });
  287. if(isPushRow) _this.rows.push(item);
  288. return isAddItem;
  289. };
  290. $.each(items, function(i, item) {
  291. if(fnIsNotExist(_this.rows, item)) {
  292. $('#ITP_LIST_MPOMNG02010_MODIFY_AREA .panel-group').append($('#ITP_LIST_MPOMNG02010_MODIFY_ROWCOPY').html());
  293. var $li = $('#ITP_LIST_MPOMNG02010_MODIFY_AREA .panel-group > .item-row:last');
  294. $li.find('.fnBrandUnitUnqNo').val(item.brandUnitUnqNo);
  295. $li.find('.fnItemNm').text(item.itemNm);
  296. $li.find('#ITP_MPOMNG02010_MODIFY_NUM').val(item.pchReqQty);
  297. $li.find('#ITP_MPOMNG02010_MODIFY_NUM').data('brandUnitUnqNo', item.brandUnitUnqNo);
  298. $li.find('.fnUnitAmt').text(CommonObj.currency.add(item.unitAmt));
  299. $li.find('.fnOrdAmt').text(CommonObj.currency.add(Number(item.unitAmt) * Number(item.pchReqQty)));
  300. $('.item-row #ITP_BTN_MPOMNG02010_MODIFY_PLUS')[$li.index()].addEventListener('click', function() { _this.actPlus(this); });
  301. $('.item-row #ITP_BTN_MPOMNG02010_MODIFY_MINUS')[$li.index()].addEventListener('click', function() { _this.actMinus(this); });
  302. $('.item-row #ITP_MPOMNG02010_MODIFY_NUM')[$li.index()].addEventListener('input', function() { _this.actInput(this); });
  303. _this.pchReqAmtTot();
  304. }
  305. });
  306. },
  307. detachRow: function () {
  308. if($('#ITP_LIST_MPOMNG02010_MODIFY_AREA input:checkbox[name=brandUnitUnqNo]:checked').length > 0) {
  309. var _this = this;
  310. $('#ITP_LIST_MPOMNG02010_MODIFY_ROWS li').each(function(index, elem) {
  311. var __this = this;
  312. var isChecked = $(this).find('input[type="checkbox"]').is(':checked');
  313. if(isChecked) {
  314. if(_this.rows[index].viewCd === 'U') {
  315. _this.rows[index].viewCd = 'D';
  316. } else {
  317. $.each(_this.rows, function(i, row){
  318. if(row.brandUnitUnqNo === $(__this).find('input[type="checkbox"]').val()) {
  319. _this.rows.splice(i, 1);
  320. return false;
  321. }
  322. });
  323. }
  324. $(this).remove();
  325. }
  326. });
  327. this.pchReqAmtTot();
  328. }
  329. },
  330. actPlus: function(elem) {
  331. var elQty = $(elem).prev();
  332. var num = Number($(elQty).val());
  333. if(num < 100000) {
  334. var calcNum = num + 1;
  335. $(elQty).val(calcNum.toString());
  336. this.rows[this.itemIndex($(elQty).data('brandUnitUnqNo'))]['pchReqQty'] = calcNum;
  337. this.pchReqAmtUnit(elem, calcNum);
  338. this.pchReqAmtTot();
  339. }
  340. },
  341. actMinus: function(elem) {
  342. var elQty = $(elem).next();
  343. var num = Number($(elQty).val());
  344. if(num > 1) {
  345. var calcNum = num - 1;
  346. $(elQty).val(calcNum.toString());
  347. this.rows[this.itemIndex($(elQty).data('brandUnitUnqNo'))]['pchReqQty'] = calcNum;
  348. this.pchReqAmtUnit(elem, calcNum);
  349. this.pchReqAmtTot();
  350. }
  351. },
  352. actInput: function(elem) {
  353. var index = this.itemIndex($(elem).data('brandUnitUnqNo'));
  354. CommonObj.chkMaxLength(elem, function(qty) {
  355. mobContObj.modify.list.rows[index]['pchReqQty'] = qty;
  356. mobContObj.modify.list.pchReqAmtUnit(elem, qty);
  357. mobContObj.modify.list.pchReqAmtTot();
  358. });
  359. },
  360. itemIndex: function(brandUnitUnqNo) {
  361. var choiceIndex = -1;
  362. $.each(this.rows, function(index, item) {
  363. if(brandUnitUnqNo === item.brandUnitUnqNo) {
  364. choiceIndex = index;
  365. return false;
  366. }
  367. });
  368. return choiceIndex;
  369. },
  370. pchReqAmtUnit: function(elem, qty) {
  371. var $div = $(elem).parent().prev();
  372. var unitAmt = CommonObj.onlyNumber($div.find('.fnUnitAmt').text());
  373. $div.find('.fnOrdAmt').text(CommonObj.currency.add(Number(unitAmt ? unitAmt : 0) * Number(qty)));
  374. },
  375. pchReqAmtTot: function() {
  376. var reqAmt = 0;
  377. $.each(this.rows, function(index, item) {
  378. if(item.viewCd !== 'D') {
  379. var qty = item.pchReqQty;
  380. var amt = item.unitAmt;
  381. reqAmt += Number(qty) * amt;
  382. }
  383. });
  384. $('#ITP_AJAX_MPOMNG02010_MODIFY_CONTAINER').find('.fnPchReqAmtTot').text(CommonObj.currency.add(reqAmt));
  385. }
  386. },
  387. cancel: function () {
  388. mobPageObj.switchScreen(VIEW_MODE_LIST);
  389. },
  390. clear: function() {
  391. this.list.rows.length = 0;
  392. var id = '#ITP_AJAX_MPOMNG02010_MODIFY_CONTAINER';
  393. $(id).find('.fnDlvReqDt').val('');
  394. $(id).find('.fnPchReqTotalAmt').text('');
  395. $(id).find('.fnOrdUseAmt').text('');
  396. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_LOAN_DVSN').val('');
  397. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_LOAN_MGNT_UNQ_NO').val('');
  398. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_PCH_REQ_UNQ_NO').val('');
  399. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_PCH_REQ_DVSN').val('');
  400. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_WHS_NM').val('');
  401. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_WHS_ID').val('');
  402. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_LOCATION').val('');
  403. $('#ITP_LIST_MPOMNG02010_MODIFY_AREA .panel-group').empty();
  404. }
  405. }
  406. };
  407. let mobPopObj = {
  408. popItem: {
  409. popId: 'ITP_POP_MPOMNG02010_ITEM_AREA',
  410. init: function() {
  411. mobPopObj.show(this.popId);
  412. $('#ITP_POP_MPOMNG02010_ITEM_AREA #ITP_FORM_MPOMNG02010_POP_ITEM_KEYWORD').val('');
  413. this.search();
  414. },
  415. search: function() {
  416. $('#ITP_LIST_MPOMNG02010_POP_ITEM_AREA .panel-group').empty();
  417. var callbackFn = function(result) {
  418. console.log(result);
  419. mobPopObj.popItem.rows = result.gridRows;
  420. $.each(mobPopObj.popItem.rows, function (i, item) {
  421. $('#ITP_LIST_MPOMNG02010_POP_ITEM_AREA .panel-group').append($('#ITP_LIST_MPOMNG02010_POP_ITEM_ROWCOPY').html());
  422. var $li = $('#ITP_LIST_MPOMNG02010_POP_ITEM_AREA .panel-group > .row_2:last');
  423. $li.find('#ITP_FORM_MPOMNG02010_POP_ITEM_CHECKBOX').val(item.itemId);
  424. $li.find('.fnItemNm').text(item.itemNm);
  425. $li.find('.fnUnitAmt').text(CommonObj.currency.add(item.unitAmt));
  426. $li.find('.fnOrdAmt').text(CommonObj.currency.add(item.unitAmt));
  427. });
  428. mobPopObj.popItem.addRow.init();
  429. };
  430. let param = $('#ITP_FORM_MPOMNG02010_POPUP_ITEM').serializeObject();
  431. fn_ajax_call(API_POP_ITEM_LIST, JSON.stringify(param), callbackFn, 'POST');
  432. },
  433. addRow: {
  434. init: function() {
  435. this.button.init();
  436. },
  437. button: {
  438. init: function() {
  439. var _this = this;
  440. $('button[id^="ITP_BTN_MPOMNG02010_POP_ITEM_"]').off('click').on('click', function() {
  441. var id = $(this).attr('id');
  442. switch (id) {
  443. case 'ITP_BTN_MPOMNG02010_POP_ITEM_PLUS' : _this.actPlus($(this)); break;
  444. case 'ITP_BTN_MPOMNG02010_POP_ITEM_MINUS' : _this.actMinus($(this)); break;
  445. case 'ITP_BTN_MPOMNG02010_POP_ITEM_ADD' : _this.addItems(); break;
  446. // case 'ITP_BTN_MPOMNG02010_POP_ITEM_ADD' : _this.actItemAdd($(this)); break;
  447. case 'ITP_BTN_MPOMNG02010_POP_ITEM_SEARCH' : mobPopObj.popItem.search(); break;
  448. case 'ITP_BTN_MPOMNG02010_POP_ITEM_CLOSE' : mobPopObj.hide(id); break;
  449. }
  450. return false;
  451. });
  452. $('input[id="ITP_MPOMNG02010_POP_NUM"]').off('input').on('input', function() {
  453. var _this = this;
  454. CommonObj.chkMaxLength(this, function(qty) { mobPopObj.popItem.addRow.button.reqAmtUnit(_this, qty) });
  455. });
  456. },
  457. actPlus: function(elem) {
  458. var elQty = $(elem).prev();
  459. var num = Number($(elQty).val());
  460. if(num < 100000) {
  461. var calcNum = num + 1;
  462. $(elQty).val(calcNum.toString());
  463. this.reqAmtUnit(elem, calcNum);
  464. }
  465. },
  466. actMinus: function(elem) {
  467. var elQty = $(elem).next();
  468. var num = Number($(elQty).val());
  469. if(num > 1) {
  470. var calcNum = num - 1;
  471. $(elQty).val(calcNum.toString());
  472. this.reqAmtUnit(elem, calcNum);
  473. }
  474. },
  475. reqAmtUnit: function(elem, qty) {
  476. var $li = $(elem).closest('li');
  477. var unitAmt = CommonObj.onlyNumber($li.find('.fnUnitAmt').text());
  478. $li.find('.fnOrdAmt').text(CommonObj.currency.add(Number(unitAmt ? unitAmt : 0) * Number(qty)));
  479. },
  480. actItemAdd: function(elem) {
  481. var $li = $(elem).closest('li');
  482. var item = mobPopObj.popItem.rows[$li.index()];
  483. item['viewCd'] = 'C';
  484. item['pchReqQty'] = $li.find('.fnPchReqQty').html();
  485. // var index = $(elem).closest('li').index();
  486. // var item = mobPopObj.popItem.rows[index];
  487. // item['pchReqQty'] = $(elem).closest('li').find('.fnPchReqQty').html();
  488. mobContObj.list.attachRow(item);
  489. },
  490. addItems: function() {
  491. var items = [];
  492. var chkMsg = '';
  493. $('#ITP_LIST_MPOMNG02010_POP_ITEM_ROWS').find('input:checkbox').each(function() {
  494. if($(this).is(':checked')) {
  495. var val = $(this).closest('li').find('#ITP_MPOMNG02010_POP_NUM').val();
  496. if(val === '') {
  497. chkMsg = '수량을 입력하세요.';
  498. return false;
  499. }
  500. var index = $(this).closest('li').index();
  501. var item = mobPopObj.popItem.rows[index];
  502. item['viewCd'] = 'C';
  503. item['pchReqQty'] = val;
  504. items.push(item);
  505. }
  506. });
  507. if(chkMsg !== '') {
  508. itp_fn_modal_alert(chkMsg);
  509. return;
  510. }
  511. if(items.length < 1) {
  512. itp_fn_modal_alert('품목을 선택하세요.');
  513. return;
  514. }
  515. mobContObj.modify.list.attachRow(items);
  516. mobPopObj.popItem.close();
  517. }
  518. }
  519. },
  520. delRow: function() {
  521. },
  522. close: function() {
  523. this.rows.length = 0;
  524. $('#ITP_LIST_MPOMNG02010_POP_ITEM_ROWS').children().remove();
  525. mobPopObj.hide('ITP_POP_MPOMNG02010_ITEM_AREA');
  526. }
  527. },
  528. popWhsNm: {
  529. popId: 'ITP_POP_MPOMNG02010_WHS_AREA',
  530. init: function () {
  531. $('#ITP_LIST_MPOMNG02010_POP_WHS_AREA .mb_0').children().remove();
  532. $('#ITP_POP_MPOMNG02010_WHS_AREA #ITP_FORM_MPOMNG02010_POP_WHS_KEYWORD').val('');
  533. this.rows.length = 0;
  534. mobPopObj.show(this.popId);
  535. this.search();
  536. this.action();
  537. },
  538. rows: [],
  539. search: function () {
  540. var _this = this;
  541. $('#ITP_LIST_MPOMNG02010_POP_WHS_AREA .mb_0').empty();
  542. var callbackFn = function(result) {
  543. $.each(result.gridRows, function (i, item) {
  544. $('#ITP_LIST_MPOMNG02010_POP_WHS_AREA .mb_0').append($('#ITP_LIST_MPOMNG02010_POP_WHS_ROWCOPY').html());
  545. var $li = $('#ITP_LIST_MPOMNG02010_POP_WHS_AREA .mb_0 > .row_2:last');
  546. $li.find('.fnWhsNm').text(item.whsNm);
  547. $li.find('.fnLocationNm').text(item.locationNm);
  548. $li.find('.fnWhsId').data('whs-id', item.whsId);
  549. $li.find('.fnWhsId').data('location', item.location);
  550. $('#ITP_LIST_MPOMNG02010_POP_WHS_ROWS li button')[$li.index()].addEventListener('click', function() { _this.choice(this); });
  551. });
  552. };
  553. const param = $('#ITP_FORM_MPOMNG02010_POP_WHS').serializeObject();
  554. (fn_make_user_info.get('authTpCd') === '50') ? param.swhsDvsn = 'W02' : param.swhsDvsn = 'W01';
  555. fn_ajax_call(API_POP_SEARCH_LIST, JSON.stringify(param), callbackFn, 'POST');
  556. },
  557. action: function() {
  558. var _this = this;
  559. $('#ITP_FORM_MPOMNG02010_POP_WHS button[id="ITP_BTN_MPOMNG02010_POP_WHS_SEARCH"]').off('click').on('click', function() {
  560. _this.search();
  561. });
  562. },
  563. choice: function(elem) {
  564. var whsId = $(elem).data('whs-id');
  565. var whsNm = $(elem).parent().prev().find('.fnWhsNm').text();
  566. var location = $(elem).data('location');
  567. $('#ITP_FORM_MPOMNG02010_LIST_SEARCH #ITP_FORM_MPOMNG02010_LIST_SEARCH_WHS_ID').val(whsId);
  568. $('#ITP_FORM_MPOMNG02010_LIST_SEARCH #ITP_FORM_MPOMNG02010_LIST_SEARCH_WHS_NM').val(whsNm);
  569. mobPopObj.hide(this.popId);
  570. },
  571. delete: function() {
  572. $('#ITP_FORM_MPOMNG02010_LIST_SEARCH #ITP_FORM_MPOMNG02010_LIST_SEARCH_WHS_ID').val('');
  573. $('#ITP_FORM_MPOMNG02010_LIST_SEARCH #ITP_FORM_MPOMNG02010_LIST_SEARCH_WHS_NM').val('');
  574. }
  575. },
  576. popReqConfirm: {
  577. popId: 'ITP_POP_MPOMNG02010_REQ_AREA',
  578. pchReqStCd: '',
  579. saveMode: 1, // 1 : 임시저장, 2 : 구매요청, 요청금액이 가능금액보다 클 경우 (3 : PG 정보 없음, 4 : 선불매장, 5 : 후불매장)
  580. init: function (pchReqStCd) {
  581. let mgrId = $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_PCH_REQ_MGR_ID').val();
  582. if(mgrId !== fn_make_user_info.get('userId')) {
  583. itp_fn_modal_alert_ajax(ITP_MSG_LOCALE.message.ajax.diffWrite);
  584. return;
  585. }
  586. if($('#ITP_LIST_MPOMNG02010_MODIFY_ROWS > li').size() < 1) {
  587. itp_fn_modal_alert('품목추가 버튼을 이용하여 품목을 추가해 주세요.');
  588. return false;
  589. }
  590. var chkMsg = '';
  591. $.each(mobContObj.modify.list.rows, function(index, item) {
  592. if(item.pchReqQty === '') {
  593. chkMsg = '수량을 입력하세요.';
  594. return false;
  595. }
  596. });
  597. if(chkMsg !== '') {
  598. itp_fn_modal_alert(chkMsg);
  599. return;
  600. }
  601. this.formId = '#ITP_FORM_MPOMNG02010_MODIFY';
  602. this.pchReqStCd = pchReqStCd;
  603. mobPopObj.show(this.popId);
  604. this.view();
  605. this.action();
  606. },
  607. view: function() {
  608. var popMsg = '';
  609. var loanDvsn = $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_LOAN_DVSN').val();
  610. var ordUseAmt = CommonObj.onlyNumber($('#ITP_FORM_MPOMNG02010_MODIFY .fnOrdUseAmt').text());
  611. var pchReqAmtTot = CommonObj.onlyNumber($('#ITP_FORM_MPOMNG02010_MODIFY .fnPchReqAmtTot').text());
  612. if(this.pchReqStCd === PCH_REQ_ST_CD_REQUEST_SAVE) { // 구매요청
  613. if(loanDvsn === 'LD03') { // 무정산
  614. this.saveMode = 2;
  615. popMsg = '구매요청 하시겠습니까?';
  616. $('#ITP_POP_MPOMNG02010_REQ_AREA .divOrdPssblAmt').hide();
  617. $('#ITP_POP_MPOMNG02010_REQ_AREA .divOrdAmt').hide();
  618. $('#ITP_POP_MPOMNG02010_REQ_AREA .divOrdReqAmt').addClass('border');
  619. $('#ITP_POP_MPOMNG02010_REQ_AREA #ITP_BTN_MPOMNG02010_POP_REQ_CONFIRM').text('확인');
  620. } else {
  621. $('#ITP_POP_MPOMNG02010_REQ_AREA .divOrdPssblAmt').show();
  622. $('#ITP_POP_MPOMNG02010_REQ_AREA .divOrdAmt').show();
  623. $('#ITP_POP_MPOMNG02010_REQ_AREA .divOrdReqAmt').removeClass('border');
  624. if (Number(ordUseAmt) < Number(pchReqAmtTot)) { // 요청금액이 가능금액보다 클 경우
  625. if(CommonObj.isPayPossible()) { // PG 정보 여부
  626. if(loanDvsn === 'LD01') { // 선불매장
  627. this.saveMode = 4;
  628. popMsg = '선불매장이므로 결재를 하셔야 구매요청이 진행이 됩니다.<br>' +
  629. '결재를 하시겠습니까?';
  630. $('#ITP_POP_MPOMNG02010_REQ_AREA #ITP_BTN_MPOMNG02010_POP_REQ_CONFIRM').text('결제');
  631. } else if(loanDvsn === 'LD02') { // 후불매장
  632. this.saveMode = 5;
  633. popMsg = '구매한도가 부족합니다.<br>' +
  634. '선결재를 하신 후에 구매요청을 하시기 바랍니다.<br>' +
  635. '결재를 하시겠습니까?';
  636. $('#ITP_POP_MPOMNG02010_REQ_AREA #ITP_BTN_MPOMNG02010_POP_REQ_CONFIRM').text('결제');
  637. }
  638. } else {
  639. this.saveMode = 3;
  640. if(loanDvsn === 'LD01') { // 선불매장
  641. popMsg = '선불매장이므로 입금을 하시고, 입금등록 후 브랜드에서 승인이 되어야 구매요청을 하실 수 있습니다.';
  642. } else if(loanDvsn === 'LD02') { // 후불매장
  643. popMsg = '구매한도가 부족합니다.<br>' +
  644. '선입금을 하시고, 입금등록 후 브랜드에서 승인이 되어야 구매요청을 하실 수 있습니다.\n';
  645. }
  646. $('#ITP_POP_MPOMNG02010_REQ_AREA #ITP_BTN_MPOMNG02010_POP_REQ_CONFIRM').text('확인');
  647. }
  648. } else {
  649. this.saveMode = 2;
  650. popMsg = '구매요청 하시겠습니까?';
  651. $('#ITP_POP_MPOMNG02010_REQ_AREA #ITP_BTN_MPOMNG02010_POP_REQ_CONFIRM').text('확인');
  652. }
  653. }
  654. } else { // 임시저장
  655. this.saveMode = 1;
  656. popMsg = '임시저장 하시겠습니까?';
  657. $('#ITP_POP_MPOMNG02010_REQ_AREA #ITP_BTN_MPOMNG02010_POP_REQ_CONFIRM').text('확인');
  658. }
  659. $('#ITP_POP_MPOMNG02010_REQ_AREA .fnPopDlvReqDt').text($('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_DLV_REQ_DT').val());
  660. $('#ITP_POP_MPOMNG02010_REQ_AREA .fnItemQty').text(CommonObj.currency.add($('#ITP_LIST_MPOMNG02010_MODIFY_ROWS').children().length, '개'));
  661. $('#ITP_POP_MPOMNG02010_REQ_AREA .fnOrdReqAmt').text($('#ITP_FORM_MPOMNG02010_MODIFY .fnPchReqAmtTot').text());
  662. $('#ITP_POP_MPOMNG02010_REQ_AREA .fnOrdPssblAmt').text($('#ITP_FORM_MPOMNG02010_MODIFY .fnOrdUseAmt').text());
  663. var ordAmt = Number(pchReqAmtTot) - Number(ordUseAmt);
  664. $('#ITP_POP_MPOMNG02010_REQ_AREA .fnOrdAmt').text(CommonObj.currency.add(ordAmt > 0 ? ordAmt : 0));
  665. $('#ITP_POP_MPOMNG02010_REQ_AREA .pop_msg').html(popMsg);
  666. },
  667. action: function() {
  668. var _this = this;
  669. $('#ITP_POP_MPOMNG02010_REQ_AREA button[id="ITP_BTN_MPOMNG02010_POP_REQ_CONFIRM"]').off('click').on('click', function() {
  670. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_PCH_REQ_ST_CD').val(_this.pchReqStCd);
  671. _this.save();
  672. });
  673. },
  674. save: function() {
  675. var loanDvsn = $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_LOAN_DVSN').val();
  676. var procSave = function () {
  677. let param = $('#ITP_FORM_MPOMNG02010_MODIFY').serializeObject();
  678. var gridInsertData = [];
  679. var gridUpdateData = [];
  680. var gridDeleteData = [];
  681. $.each(mobContObj.modify.list.rows, function(i, item) {
  682. console.log(item);
  683. if(item.viewCd === 'D') {
  684. gridDeleteData.push(item);
  685. } else if(item.viewCd === 'C') {
  686. gridInsertData.push(item);
  687. } else {
  688. item.viewCd = 'U';
  689. gridUpdateData.push(item);
  690. }
  691. });
  692. param.gridInsertData = gridInsertData;
  693. param.gridUpdateData = gridUpdateData;
  694. param.gridDeleteData = gridDeleteData;
  695. param['dlvReqDt'] = param.dlvReqDt.replace(/[^0-9]/g, "");
  696. var saveFn = function (result) {
  697. mobPopObj.hide('ITP_POP_MPOMNG02010_REQ_AREA');
  698. mobContObj.list.init();
  699. };
  700. console.log(param);
  701. fn_ajax_call(API_MOBILE_SAVE, JSON.stringify(param), saveFn, 'POST');
  702. };
  703. if (this.saveMode === 1 || this.saveMode === 2 || this.saveMode === 3) {
  704. if(this.saveMode === 3)
  705. $('#ITP_FORM_MPOMNG02010_MODIFY #ITP_FORM_MPOMNG02010_MODIFY_PCH_REQ_ST_CD').val(PCH_REQ_ST_CD_TEMP_SAVE);
  706. procSave();
  707. } else if (this.saveMode === 4 || this.saveMode === 5) {
  708. // 결제 팝업 결과
  709. var popFn = function(rowDataPop) {
  710. procSave();
  711. };
  712. // 결제 팝업
  713. var ordUseAmt = CommonObj.onlyNumber($('#ITP_FORM_MPOMNG02010_MODIFY .fnOrdUseAmt').text());
  714. var pchReqAmtTot = CommonObj.onlyNumber($('#ITP_FORM_MPOMNG02010_MODIFY .fnPchReqAmtTot').text());
  715. var args = {
  716. 'payTpCd' : '40',
  717. 'brandId' : $('#ITP_FORM_MPOMNG02010_MODIFY_BRAND_ID').val(),
  718. 'storeId' : $('#ITP_FORM_MPOMNG02010_MODIFY_STORE_ID').val(),
  719. 'goodsAmt' : Number(pchReqAmtTot - ordUseAmt)
  720. };
  721. fn_call_popup('biz', 'BIZPOP_PO_PAYMENT', '#ITP_ASIDE', popFn, args, 'M');
  722. }
  723. }
  724. },
  725. show: function(popId) {
  726. $('button[id$="_CLOSE"]').off('click').on('click', function() {
  727. if($(this).hasClass('btn-pop-close')) {
  728. mobPopObj.hide(popId);
  729. }
  730. });
  731. $('#' + popId).show();
  732. },
  733. hide: function(popId) {
  734. $('#' + popId).closest('.mobile-pop-close').hide();
  735. }
  736. };