12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013 |
- require(['config'], function() {
- require([
- ], function($) {
- pageObj.init();
- });
- });
- /********************************************************
- --------------------------------------------------------
- - Object 목록 -
- --------------------------------------------------------
- * const gridColModel = {} : 화면 Grid Object *
- * let pageObj = {} : 화면공통 Object *
- * let listObj = {} : 목록화면 Object *
- * let viewObj = {} : 상세화면 Object *
- * let modifyObj = {} : 수정화면 Object *
- * let createObj = {} : 신규화면 Object *
- *******************************************************/
- //[grid]
- /*화면 변수*/
- const STINFO06010_GRID_ID = '#ITP_STINFO06010_jqGrid';
- const STINFO06010_GRID_LIST = '#ITP_STINFO06010_jqGrid_list';
- const STINFO06010_GRID_PAGER = '#ITP_STINFO06010_jqGridPager';
- const STINFO06010_GRID_EMPTY = '#ITP_STINFO06010_jqGridEmpty';
- const STINFO06010_DETAIL_GRID_ID = '#ITP_STINFO06010_DETAIL_jqGrid';
- const STINFO06010_DETAIL_GRID_LIST = '#ITP_STINFO06010_DETAIL_jqGrid_list';
- const STINFO06010_DETAIL_GRID_PAGER = '#ITP_STINFO06010_DETAIL_jqGridPager';
- const STINFO06010_DETAIL_GRID_EMPTY = '#ITP_STINFO06010_DETAIL_jqGridEmpty';
- let STINFO06010_GRID_LAST_ROW_ID;
- /* 공통코드 리스트 */
- let ITP_COMMON_CD_DSTRBT_COST_UNIT = fn_make_common_cd_list(CODE_LIST, 'DSTRBT_COST_UNIT', true, '기본단위');
- let ITP_COMMON_CD_CURR = fn_make_common_cd_list(CODE_LIST, 'CURR', true, '통화');
- let ITP_COMMON_CD_UNIT_TARGET_CD = fn_make_common_cd_list(CODE_LIST, 'UNIT_TARGET_CD', true, '대상여부');
- /*API URL*/
- let API_DETAIL_GRID_LIST = '/api/itemunit/store-unit-grid-list'; // 목록
- let API_DETAIL_INFO = '/api/itemunit/info-storeitemunit'; // 상세
- let API_DETAIL_NEW = '/api/itemunit/new-info-storeitemunit'; // 신규
- let API_DETAIL_SAVE = '/api/itemunit/save-store-itemunit'; // 저장
- /*화면 Grid ColModel*/
- const gridColModel = {
- list: [
- {
- index: 'BRAND_ID', name: 'brandId',
- label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: true
- },
- {
- index: 'STORE_ID', name: 'storeId',
- label: ITP_MSG_LOCALE.label.storeId, //매장ID
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: true
- },
- {
- index: 'STORE_NM', name: 'storeNm',
- label: ITP_MSG_LOCALE.label.storeNm, //매장명
- width: '10', fixed: false, align: 'left',
- sortable: false, hidden: false, classes: 'ui-ellipsis'
- },
- {
- index: 'CONT_STT_DT', name: 'contSttDt',
- label: ITP_MSG_LOCALE.label.contSttDt, //계약시작일
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: false
- },
- {
- index: 'CONT_END_DT', name: 'contEndDt',
- label: ITP_MSG_LOCALE.label.contEndDt, //계약종료일
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: false
- },
- {
- index: 'SYS_REG_DTTM', name: 'sysRegDttm',
- label: ITP_MSG_LOCALE.label.sysRegDt, //계약생성일
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: false
- },
- {
- index: 'ITEM_CNT', name: 'itemCnt',
- label: ITP_MSG_LOCALE.label.itemCnt, //계약품목수
- width: '10', fixed: false, align: 'right',
- sortable: false, hidden: false
- }
- ],
- detail: [
- {
- index: 'VIEW_CD', name: 'viewCd',
- label: ITP_MSG_LOCALE.label.viewCd, //공급단가
- width: '6', fixed: false, align: 'center',
- sortable: false, hidden: true
- },
- {
- index: 'VIEW_NM', name: 'viewNm',
- label: ITP_MSG_LOCALE.label.viewNm, //공급단가
- width: '6', fixed: false, align: 'center',
- sortable: false, hidden: false
- },
- {
- index: 'BRAND_ID', name: 'brandId',
- label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: true
- },
- {
- index: 'BRAND_UNIT_UNQ_NO', name: 'brandUnitUnqNo',
- label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: true
- },
- {
- index: 'STORE_UNIT_UNQ_NO', name: 'storeUnitUnqNo',
- label: ITP_MSG_LOCALE.label.storeId, //브랜드ID
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: true
- },
- {
- index: 'ITEM_ID', name: 'itemId',
- label: ITP_MSG_LOCALE.label.itemId, //품목번호
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: false
- },
- {
- index: 'ITEM_NM', name: 'itemNm',
- label: ITP_MSG_LOCALE.label.itemNm, //품목명
- width: '12', fixed: false, align: 'left',
- sortable: false, hidden: false, classes: 'ui-ellipsis'
- },
- {
- index: 'CONT_STT_DT', name: 'contSttDt',
- label: ITP_MSG_LOCALE.label.contSttDt, //계약시작일
- width: '7', fixed: false, align: 'center',
- sortable: false, hidden: false
- },
- {
- index: 'CONT_END_DT', name: 'contEndDt',
- label: ITP_MSG_LOCALE.label.contEndDt, //계약종료일
- width: '7', fixed: false, align: 'center',
- sortable: false, hidden: false
- },
- {
- index: 'UNIT', name: 'unit',
- label: ITP_MSG_LOCALE.label.unit, //기본단위
- width: '6', fixed: false, align: 'center',
- sortable: false, editable: false, formatter: 'select', edittype: 'select',
- editoptions: {value: ITP_COMMON_CD_DSTRBT_COST_UNIT}
- },
- {
- index: 'CURR', name: 'curr',
- label: ITP_MSG_LOCALE.label.curr, //통화
- width: '6', fixed: false, align: 'center',
- sortable: false, editable: true, formatter: 'select', edittype: 'select',
- editoptions: {value: ITP_COMMON_CD_CURR},
- classes: 'input_color',
- editrules: {required: true}
- },
- {
- index: 'UNIT_AMT', name: 'unitAmt',
- label: ITP_MSG_LOCALE.label.unitAmt, //단가
- width: '7', fixed: false, align: 'right',
- sortable: true, editable: true, edittype: 'text',
- classes: 'input_color',
- editrules: {required: true},
- editoptions: {"onKeyup": "this.value=this.value.replace(/[^0-9]/g,'');", maxlength: 10},
- formatter: 'integer', formatoptions: { defaultValue: '', thousandsSeparator: ',' }
- },
- {
- index: 'UNIT_TARGET_CD', name: 'unitTargetCd',
- label: ITP_MSG_LOCALE.label.unitTargetCd, //대상여부
- width: '7', fixed: false, align: 'center',
- classes: 'input_color',
- sortable: false, editable: true, formatter: 'select', edittype: 'select',
- editoptions: {value: ITP_COMMON_CD_UNIT_TARGET_CD},
- editrules: {required: true}
- },
- {
- index: 'SPPLY_UNIT_AMT', name: 'spplyUnitAmt',
- label: ITP_MSG_LOCALE.label.spplyUnitAmt, //공급단가
- width: '7', fixed: false, align: 'right',
- sortable: false, hidden: false,
- formatter: 'integer', formatoptions: { defaultValue: '', thousandsSeparator: ',' }
-
- },
- {
- index: 'SPPLY_AMT', name: 'spplyAmt', label: '공급대표단가', hidden: true
- },
- {
- index: 'SPPLY_NM', name: 'spplyNm',
- label: ITP_MSG_LOCALE.label.spplyNm, //공급업체명
- width: '8', fixed: false, align: 'left',
- sortable: false, hidden: false, classes: 'ui-ellipsis'
- }
- ],
- sdetail: [
- {
- index: 'VIEW_CD', name: 'viewCd',
- label: ITP_MSG_LOCALE.label.viewCd, //공급단가
- width: '6', fixed: false, align: 'center',
- sortable: false, hidden: true
- },
- {
- index: 'VIEW_NM', name: 'viewNm',
- label: ITP_MSG_LOCALE.label.viewNm, //공급단가
- width: '6', fixed: false, align: 'center',
- sortable: false, hidden: false
- },
- {
- index: 'BRAND_ID', name: 'brandId',
- label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: true
- },
- {
- index: 'BRAND_UNIT_UNQ_NO', name: 'brandUnitUnqNo',
- label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: true
- },
- {
- index: 'STORE_UNIT_UNQ_NO', name: 'storeUnitUnqNo',
- label: ITP_MSG_LOCALE.label.storeId, //브랜드ID
- width: '10', fixed: false, align: 'center',
- sortable: false, hidden: true
- },
- {
- index: 'ITEM_ID', name: 'itemId',
- label: ITP_MSG_LOCALE.label.itemId, //품목번호
- minwidth: 200,
- width: '13', fixed: false, align: 'center',
- sortable: false, hidden: false
- },
- {
- index: 'ITEM_NM', name: 'itemNm',
- label: ITP_MSG_LOCALE.label.itemNm, //품목명
- width: '13', fixed: false, align: 'left',
- minwidth: 200,
- sortable: false, hidden: false, classes: 'ui-ellipsis'
- },
- {
- index: 'CONT_STT_DT', name: 'contSttDt',
- label: ITP_MSG_LOCALE.label.contSttDt, //계약시작일
- width: '7', fixed: false, align: 'center',
- sortable: false, hidden: false
- },
- {
- index: 'CONT_END_DT', name: 'contEndDt',
- label: ITP_MSG_LOCALE.label.contEndDt, //계약종료일
- width: '7', fixed: false, align: 'center',
- sortable: false, hidden: false
- },
- {
- index: 'UNIT', name: 'unit',
- label: ITP_MSG_LOCALE.label.unit, //기본단위
- width: '6', fixed: false, align: 'center',
- sortable: false, editable: false, formatter: 'select', edittype: 'select',
- editoptions: {value: ITP_COMMON_CD_DSTRBT_COST_UNIT}
- },
- {
- index: 'CURR', name: 'curr',
- label: ITP_MSG_LOCALE.label.curr, //통화
- width: '6', fixed: false, align: 'center',
- sortable: false, editable: false, formatter: 'select', edittype: 'select',
- editoptions: {value: ITP_COMMON_CD_CURR}
- },
- {
- index: 'UNIT_AMT', name: 'unitAmt',
- label: ITP_MSG_LOCALE.label.unitAmt, //단가
- width: '10', fixed: false, align: 'right',
- sortable: true, editable: false, edittype: 'text',
- formatter: 'integer', formatoptions: { defaultValue: '', thousandsSeparator: ',' }
- },
- {
- index: 'UNIT_TARGET_CD', name: 'unitTargetCd',
- label: ITP_MSG_LOCALE.label.unitTargetCd, //대상여부
- width: '6', fixed: false, align: 'center',
- sortable: false, editable: false, formatter: 'select', edittype: 'select',
- editoptions: {value: ITP_COMMON_CD_UNIT_TARGET_CD}
- }
- ]
- };
- /*화면공통 Object*/
- let pageObj = {
- init: function () {
- this.ui.init();
- this.event.init();
- this.action();
- },
- skipChange: false,
- screenMode: 'LIST',
- ui: {
- init: function () {
- this.view();
- this.grid();
- listObj.empty.init();
- listObj.init();
- },
- view: function() {
- // 버튼 권한설정
- fn_proc_btn_auth('STINFO06010');
- // 공통코드 표시
- $('select').each(function() {
- if($(this).data('select-code')) {
- fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
- }
- });
- // 조회일자 지정
- var now = new Date();
- $('#ITP_FORM_STINFO06010_SEARCH_FROM_DT').val(itp_fn_get_before_month() );
- $('#ITP_FORM_STINFO06010_SEARCH_TO_DT').val(itp_fn_get_today_ko() );
- $('#ITP_TAB_STINFO06010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
- $('#ITP_FORM_STINFO06010_SEARCH_FROM_DT').datepicker();
- $('#ITP_FORM_STINFO06010_SEARCH_TO_DT').datepicker();
- $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker('setDate', new Date());
- $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_TO_DT').datepicker('setDate', itp_fn_date_add('Y', 1));
- },
- grid: function() {
-
- }
- },
- event: {
- init: function () {
- this.button();
- },
- button: function () {
- // 버튼 클릭 이벤트
- $('button').each(function() {
- var id = $(this).attr('id');
- $(this).on('click', function(e) {
-
- switch (id) {
- case 'ITP_BTN_STINFO06010_SRH' : listObj.button.search(); break; // 조회 버튼 클릭
- case 'ITP_BTN_STINFO06010_NEWREG' : listObj.button.create(); break; // 신규등록 버튼
- case 'ITP_BTN_STINFO06010_CANCELLIST' : listObj.grid.search(); break; // 취소/목록 버튼
- case 'ITP_BTN_STINFO06010_SAVE' : createObj.button.save(); break; // 저장 버튼
- case 'ITP_BTN_STINFO06010_EXCEL' : pageObj.excelDown(); break; // 엑셀 다운로드 버튼
- case 'ITP_BTN_STINFO06010_DETAIL_EXCEL' : pageObj.excelDtlDown(); break; // 엑셀 다운로드 버튼
- case 'ITP_BTN_STINFO06010_CALCULATE' :
- e.preventDefault();
- e.stopPropagation();
- itp_fn_grid_save_rows(STINFO06010_DETAIL_GRID_ID);
- pageObj.calculate();
- break;
- default: break;
- }
- });
- });
- var fnDateChange = function(cellname, data) {
- var cnt = $(STINFO06010_DETAIL_GRID_ID).getGridParam("reccount");
- for (var i=1; i<=cnt; i++) {
- $(STINFO06010_DETAIL_GRID_ID).jqGrid('setCell', i, cellname, data);
- }
- };
- $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker().on('changeDate', function () {
- fnDateChange('contSttDt', $(this).val());
- });
- $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').datepicker().on('changeDate', function () {
- fnDateChange('contEndDt', $(this).val());
- });
- $('body').on('click', function(e) {
- var gridId = STINFO06010_DETAIL_GRID_ID.replace('#', '');
- itp_fn_grid_reset_selection(e, STINFO06010_GRID_LAST_ROW_ID, gridId, 'STINFO06010');
- var preItemId = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getCell', STINFO06010_GRID_LAST_ROW_ID, 'itemId');
- if(preItemId !== undefined) {
- var preUnitAmt = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getCell', STINFO06010_GRID_LAST_ROW_ID, 'unitAmt');
- var cnt = $(STINFO06010_DETAIL_GRID_ID).getGridParam("reccount");
- var itemId;
- var viewCd ;
- for (var i = 1; i <= cnt ; i++) {
- itemId = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getCell', i, 'itemId');
- viewCd = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getCell', i, 'viewCd');
- if(preItemId == itemId) {
- if (viewCd != "C") {
- $(STINFO06010_DETAIL_GRID_ID).jqGrid('setCell', i, 'viewCd', 'U');
- }
- $(STINFO06010_DETAIL_GRID_ID).jqGrid('setCell', i, 'unitAmt', preUnitAmt);
- }
- }
- }
- });
- }
- },
- action: function () {
- var _this = this;
-
- //시작일자 변경시
- $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').focusin(function() {
- $(this).data('pre', $(this).val());
- });
-
- $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').focusin(function() {
- $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').data('pre', $(this).val());
- });
-
- $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').change(function() {
- if(pageObj.skipChange) return;
- console.log("xxxxxxx pageObj.skipChange == ", pageObj.skipChange)
- if(pageObj.screenMode === 'MODIFY') {
- var preDate = $(this).data('pre');
- var topreDate = $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').data('pre');
- var chgDate = $(this).val();
-
- var endDt = $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').val();
-
- if (preDate > endDt) {
- if ( preDate != chgDate) {
- alert("계약 종료일은 시작일보다 이전일수 없습니다.");
- $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker('setDate', new Date(preDate));
- $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_TO_DT').datepicker('setDate', new Date(topreDate));
-
- return;
- }
- } else {
- if ( preDate != chgDate) {
- alert("계약 시작일은 변경할 수 없습니다.");
- $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker('setDate', new Date(preDate));
- return;
- }
- }
- }
- });
- },
- switchScreen: function(mode) {
- this.screenMode = mode;
- $('.itp_det_head').find('button[id^="ITP_BTN_STINFO06010_"]').each(function(i) {
- $(this).hide();
- });
- $('#ITP_TAB_STINFO06010').find('div[id$="_CONTAINER"]').each(function(i) {
- $(this).hide();
- });
- $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val('');
- $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').val('');
- /*
- if(mode == 'ADD') {
- $("#ITP_FORM_STINFO06010_DETAIL_FROM_DT").removeAttr('readonly');
- } else {
- //$('#ITP_FORM_STINFO06010_DETAIL .contDt').hide();
- //$('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').attr('readonly','true');
- document.getElementById('ITP_FORM_STINFO06010_DETAIL_FROM_DT').readOnly = true;
- }
- */
- $('#ITP_FORM_STINFO06010_DETAIL .contDt').show();
-
- //if(pageObj.screenMode === 'ADD')
-
- if(mode == 'LIST') { // 목록
- itp_fn_fire_window_resize();
- $('#ITP_AJAX_STINFO06010_LIST_CONTAINER').show();
- if(fn_make_user_info.get('authTpCd') === '50') {
- fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_SRH']);
- $('#ITP_FORM_STINFO06010_SEARCH_STORE_ID').val(fn_make_user_info.get('storeId'));
- $('#ITP_FORM_STINFO06010_SEARCH_STORE').hide();
- } else {
- fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_SRH', '#ITP_BTN_STINFO06010_NEWREG']);
- $('#ITP_BTN_STINFO06010_EXCEL').show();
- $('#ITP_BTN_STINFO06010_DETAIL_DELETE_STORE').show();
- }
- $('#ITP_FORM_STINFO06010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));
- } else if(mode == 'ADD') { // 등록
- itp_fn_form_clear_validate(null, '#ITP_FORM_STINFO07010_DETAIL');
-
- $('#ITP_FORM_STINFO06010_DETAIL').find('input, textarea, select, checkbox').each(function(i, elem) {
- $(this).attr('id') === 'ITP_FORM_STINFO06010_DETAIL_VIEW_CD' ? $(this).val('C') : $(this).val('');
- if(elem.type === 'select') {
- $(this).val('').prop('selected', true);
- }
- });
- $('#ITP_AJAX_STINFO06010_DETAIL_CONTAINER').show();
- $('#ITP_BTN_STINFO06010_SRH').show();
- fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_CANCELLIST', '#ITP_BTN_STINFO06010_SAVE']);
- $('#ITP_BTN_STINFO06010_DETAIL_SEARCH_STORE').removeAttr('disabled');
- $('#ITP_BTN_STINFO06010_DETAIL_DELETE_STORE').removeAttr('disabled');
- // 브랜드그룹 정보 설정
- $('#ITP_FORM_STINFO06010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
- $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker('setDate', new Date());
- $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_TO_DT').datepicker('setDate', itp_fn_date_add('Y', 1));
-
- $('#ITP_BTN_STINFO06010_DETAIL_EXCEL').show();
- $('#ITP_BTN_STINFO06010_CALCULATE').show();
- $('#ITP_STINFO06010_UNIT_STDD').val('');
- if(fn_make_user_info.get('authTpCd') === '50') {
- $('#ITP_BTN_STINFO06010_CALCULATE_FORM').hide();
- }
- //return itp_fn_date_format(date.setDate(-1), 2);
- } else if(mode == 'MODIFY') { // 수정
- $('#ITP_AJAX_STINFO06010_DETAIL_CONTAINER').show();
- if(fn_make_user_info.get('authTpCd') === '50') {
- fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_CANCELLIST']);
- } else {
- fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_CANCELLIST', '#ITP_BTN_STINFO06010_SAVE']);
- }
- $('#ITP_BTN_STINFO06010_DETAIL_SEARCH_STORE').attr('disabled', true);
- $('#ITP_BTN_STINFO06010_DETAIL_DELETE_STORE').attr('disabled', true);
- // $('#ITP_BTN_STINFO06010_SRH').show();
- $('#ITP_BTN_STINFO06010_DETAIL_EXCEL').show();
- $('#ITP_BTN_STINFO06010_CALCULATE').show();
- // 브랜드그룹 정보 설정
- $('#ITP_FORM_STINFO06010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
- $('#ITP_STINFO06010_UNIT_STDD').val('');
- if(fn_make_user_info.get('authTpCd') === '50') {
- $('#ITP_BTN_STINFO06010_CALCULATE_FORM').hide();
- }
-
- } else if(mode == 'VIEW') { // 보기
- $('#ITP_AJAX_STINFO06010_VIEW_CONTAINER').show();
- fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_MODIFY', '#ITP_BTN_STINFO06010_CANCELLIST']);
- if(fn_make_user_info.get('authTpCd') === '50') {
- $('#ITP_BTN_STINFO06010_CALCULATE_FORM').hide();
- }
- }
- this.screenMode = mode;
- },
- excelDown: function() {
- var param = {
- 'url': API_DETAIL_GRID_LIST,
- 'param': $('#ITP_FORM_STINFO06010_SEARCH').serializeObject(),
- 'gridColumns': $(STINFO06010_GRID_ID).jqGrid('getGridParam', 'colModel'),
- 'fileName': '매장단가관리.xlsx',
- 'sheetName': '매장단가관리'
- };
- itp_fn_remote_to_excel(param);
- },
- excelDtlDown: function() {
- var storeId = $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val();
- var contSttDt = $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val();
- var contEndDt = $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val();
- const key = {brandId:fn_make_user_info.get('brandId'), storeId: storeId, contSttDt: contSttDt, contEndDt: contEndDt, viewCd: 'R'};
-
- var param = {
- 'url': API_DETAIL_INFO,
- 'param': key,
- 'gridColumns': $(STINFO06010_DETAIL_GRID_ID).jqGrid('getGridParam', 'colModel'),
- 'fileName': '매장단가정보.xlsx',
- 'sheetName': '매장단가상세정보'
- };
- itp_fn_remote_to_excel(param);
- },
- calculate: function() {
- var selectedIds = $(STINFO06010_DETAIL_GRID_ID).getGridParam('selarrrow');
- if( selectedIds.length==0 ) {
- return alert("일괄적용할 품목을 선택해 주세요")
- }
- // var ids = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getDataIDs');
-
- for (var i = 0; i < selectedIds.length; i++) {
- var rowData = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getRowData', selectedIds[i]);
- if (rowData.spplyUnitAmt == null || rowData.spplyUnitAmt == '') {
- return false;
- }
- var unitAmt = Math.floor(Number(rowData.spplyAmt) / 100 * (Number($('#ITP_STINFO06010_UNIT_STDD').val()) + 100));
- $(STINFO06010_DETAIL_GRID_ID).jqGrid('setRowData', selectedIds[i], {unitAmt: unitAmt});
- }
- }
- };
- /*목록화면 Object*/
- let listObj = {
- init: function () {
- this.grid.init();
- },
- itp_STINFO06010_search: false,
- button: {
- search: function() {
- if(pageObj.screenMode=='LIST') {
- listObj.itp_STINFO06010_search = true;
- let param = $('#ITP_FORM_STINFO06010_SEARCH').serializeObject();
- param.gridSize = $.jgrid.defaults.rowNum;
- param.gridPage = $.jgrid.defaults.page;
- $(STINFO06010_GRID_ID).data('grid-param',param);
- $(STINFO06010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
- } else {
- listObj.itp_STINFO06010_search = true;
- let param = $('#ITP_FORM_STINFO06010_DETAIL').serializeObject();
- $(STINFO06010_DETAIL_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
- }
- },
- create: function() {
- var param = {'brandId':fn_make_user_info.get('brandId')};
- createObj.init(param);
- }
- },
- empty: {
- init: function() {
- },
- itp_STINFO06010_param: {},
- push: function() {
- },
- back: function() {
- }
- },
- grid: {
- init: function () {
- // 데이터 없을때
- itp_fn_jqgrid_resize(STINFO06010_GRID_ID, STINFO06010_GRID_LIST, 'lg');
- listObj.empty.push();
- this.search();
- },
- search: function() {
- pageObj.switchScreen('LIST');
- this.unload();
- this.load();
- },
- load: function() {
- let param = $('#ITP_FORM_STINFO06010_SEARCH').serializeObject();
- param.gridSize = $.jgrid.defaults.rowNum;
- param.sbrandId = fn_make_user_info.get('brandId');
- param.sstoreId = fn_make_user_info.get('storeId');
- var option = {
- gridId: STINFO06010_GRID_ID,
- colModel: gridColModel.list,
- param: param,
- url: DOMAIN + API_DETAIL_GRID_LIST,
- pager: STINFO06010_GRID_PAGER,
- onCellSelect: function(rowId, cellIdx, cellValue) {
- var cm = $(this).jqGrid('getGridParam', 'colModel');
- var colNm = cm[cellIdx].name;
- if (colNm === 'contSttDt') {
- const storeId = $(this).jqGrid('getCell', rowId, 'storeId');
- const storeNm = $(this).jqGrid('getCell', rowId, 'storeNm');
- const contSttDt = $(this).jqGrid('getCell', rowId, 'contSttDt');
- const contEndDt = $(this).jqGrid('getCell', rowId, 'contEndDt');
- $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val(storeId);
- $('#ITP_FORM_STINFO06010_DETAIL_STORE_NM').val(storeNm);
- const key = {brandId:fn_make_user_info.get('brandId'), storeId: storeId, contSttDt: contSttDt, contEndDt: contEndDt, viewCd: 'R'};
- // var param = $.param(key);
- modifyObj.init(key);
- }
- },
- loadComplete: function(data) {
- itp_fn_grid_load_complete(data, STINFO06010_GRID_ID, true, 'number', 'STINFO06010', listObj.itp_STINFO06010_search, listObj.empty, true, data.gridRecords, true);
- var ids = $(STINFO06010_GRID_ID).getDataIDs();
- $.each(ids, function(idx, rowId) {
- $(STINFO06010_GRID_ID).jqGrid('setCell', rowId, 'contSttDt', '', ITP_GRID_COL_STYLE.link);
- });
- const self=this;
- if(self.sortUse) return;
- self.sortUse=true;
- self['sort3']='asc';
- const th=$(STINFO06010_GRID_LIST).find('.ui-jqgrid-labels .ui-th-div').eq(3);
- th.find('.s-ico').show();
- th.find('.ui-grid-ico-sort').hide();
- th.find('.glyphicon-triangle-bottom').show();//asc 는 bottom 으로 desc 는 top
-
- //$(STINFO06010_GRID_LIST).find('.ui-jqgrid-labels .ui-th-div').css('cursor','default');
- $(STINFO06010_GRID_LIST).find('th').eq(3).css({cursor:'pointer',background:'#FFEBCD'});
- $(STINFO06010_GRID_LIST).find('.ui-jqgrid-labels>th').on('click', function() {
- const idx=$(this).index();
- console.log("xxxx grid header click xxxxxxx index=="+idx, param );
- if(idx==3 || idx==5 ) {
- var field='',sort=self['sort'+idx];
- if(sort ) {
- sort=sort=='asc'?'desc':'asc';
- } else {
- // 등록일 내림차순, 제목 오름차순
- sort=idx==3? 'asc':idx==5? 'desc': 'asc';
- }
- const icon=sort=='asc'? '.glyphicon-triangle-bottom': '.glyphicon-triangle-top';
- self['sort'+idx]=sort;
- if(idx==3) {
- field='storeNm';
- } else if(idx==5) {
- field='brandNm';
- }
- param.page=1;
- param.sidx=field;
- param.sord=sort;
-
- $(STINFO06010_GRID_ID).jqGrid('setGridParam',{
- postData:JSON.stringify(param)
- }).trigger('reloadGrid');
- $(this).find('.s-ico').show();
- $(this).find('.ui-grid-ico-sort').hide();
- $(this).find(icon).show();
- }
- });
- },
- onPaging: function(action) {
- itp_fn_grid_paging(STINFO06010_GRID_ID, action, param);
- }
- };
- itp_fn_grid_make_remote(option);
- },
- clearData : function() {
- $(STINFO06010_GRID_ID).jqGrid('clearGridData', true);
- $(STINFO06010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
- $(STINFO06010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
- $(STINFO06010_GRID_EMPTY).show();
- },
- unload : function() {
- $.jgrid.gridUnload(STINFO06010_GRID_ID);
- }
- }
- };
- /*수정화면 Object*/
- let modifyObj = {
- init: function (param) {
- pageObj.switchScreen('MODIFY');
- // var param = $.param($('#ITP_FORM_STINFO06010_DETAIL').serializeObject());
- this.grid.init(param);
-
- },
- itp_STINFO06010_search: false,
- empty: {
- init: function() {
- var _this = this;
- this.push();
- $(STINFO06010_DETAIL_GRID_EMPTY).on('click', function() {
- _this.back();
- _this.itp_STINFO06010_param.gridSize = 100 ; // $.jgrid.defaults.rowNum;
- $(STINFO06010_DETAIL_GRID_ID).setGridParam($.param(_this.itp_STINFO06010_param)).trigger('reloadGrid');
- });
- },
- itp_STINFO06010_param: {},
- push: function() {
- let param = $('#ITP_FORM_STINFO06010_DETAIL').serializeObject();
- listObj.itp_STINFO06010_param = param;
- },
- back: function() {
- }
- },
- grid: {
- init: function (param) {
- // 데이터 없을때
- itp_fn_jqgrid_resize(STINFO06010_DETAIL_GRID_ID, STINFO06010_DETAIL_GRID_LIST, 'lg');
- listObj.empty.push();
- this.unload();
- this.load(param);
- },
- load: function(param) {
- var _this = this;
- // $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val(param.contSttDt);
- // $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').val(param.contEndDt);
- pageObj.skipChange=true;
- $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_FROM_DT').datepicker('setDate', param.contSttDt);
- $('#ITP_FORM_STINFO06010_DETAIL #ITP_FORM_STINFO06010_DETAIL_TO_DT').datepicker('setDate', param.contEndDt);
- setTimeout(() => pageObj.skipChange=false, 200);
- var option = {
- gridId: STINFO06010_DETAIL_GRID_ID,
- colModel: fn_make_user_info.get('authTpCd') === '50' ? gridColModel.sdetail : gridColModel.detail,
- height : 'auto',
- rowNum: '',
- mtype: 'POST',
- url: API_DETAIL_INFO,
- // scroll: true,
- postData: JSON.stringify(param),
- loadComplete: function(data) {
- //$(STINFO06010_DETAIL_GRID_LIST).jqGrid('hideCol',["spplyNm","spplyUnitAmt"]);
- createObj.rows = data.gridRows;
- /*
- itp_fn_grid_load_complete(data, STINFO06010_DETAIL_GRID_ID, false, 'number', 'STINFO06010', modifyObj.itp_STINFO06010_search, modifyObj.empty, true, data.gridRecords, true);
- */
- const container=$('#ITP_STINFO06010_DETAIL_jqGrid_list').closest('#ITP_CONTAINER');
- let hei=container.height();
- if(hei>300 ) {
- hei-=210;
- } else {
- hei=300;
- }
- $('#ITP_STINFO06010_DETAIL_jqGrid_list .ui-jqgrid-bdiv').height(hei);
- const rowCnt = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getGridParam', 'records');
- let viewHtml = '';
- viewHtml += '<span class="itp_shrv fix">';
- viewHtml += '<span class="shrv_txt">' + ITP_MSG_LOCALE.label.total + '</span>';
- viewHtml += '<span class="shrv_num shrv_tot">(<em>' + rowCnt + '</em>)</span>';
- viewHtml += '</span>';
- $('#ITP_STINFO06010_DETAIL_jqGridView').html(viewHtml).show();
- },
- onCellSelect: function(rowid, cellIdx, cellValue) {
- if(fn_make_user_info.get('authTpCd') !== '50') {
- STINFO06010_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowid, cellIdx, STINFO06010_GRID_LAST_ROW_ID, STINFO06010_DETAIL_GRID_ID, ['actionId']);
- }
- }
- };
- //itp_fn_grid_make_remote(option);
- makeGrid(option);
- },
- clearData : function() {
- $(STINFO06010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
- $(STINFO06010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
- $(STINFO06010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
- $(STINFO06010_DETAIL_GRID_EMPTY).show();
- },
- unload : function() {
- $.jgrid.gridUnload(STINFO06010_DETAIL_GRID_ID);
- }
- }
- };
-
- let createObj = {
- init: function (param) {
- pageObj.switchScreen('ADD');
- this.grid.init(param);
- this.button.init();
- },
- button: {
- init: function() {
- // 브랜드그룹 조회 버튼 클릭
- $('#ITP_BTN_STINFO06010_DETAIL_SEARCH_STORE').on('click', function() {
-
- createObj.popup();
- });
- // 브랜드그룹 텍스트 삭제 버튼 클릭
- $('#ITP_BTN_STINFO06010_DETAIL_DELETE_STORE').one('click', function() {
- $('#ITP_FORM_STINFO06010_DETAIL_BRAND_ID').val('');
- $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val('');
- $('#ITP_FORM_STINFO06010_DETAIL_STORE_NM').val('');
- });
- },
- cancel: function() {
- listObj.grid.search();
- },
- save: function() {
- const formId = '#ITP_FORM_STINFO06010_DETAIL';
- var isValid = true;
- if(pageObj.screenMode === 'ADD') {
- //isValid = itp_fn_form_event.isValid(formId);
- //매장 아이디 존재 여부 확인
- var storeChk = $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val();
- if (storeChk == '') {
- alert("계약할 매장을 선택해주세요!");
- return;
- }
- }
- var checkCount=0;
- const checkMap={};
- const checkIncr = function(cur, idx) {
- const brandUnitUnqNo=cur.brandUnitUnqNo;
- if( cur.unitTargetCd=='Y' && checkMap.hasOwnProperty(brandUnitUnqNo)) {
- // 이미 대상인 아이템이 있다면
- const prev=checkMap[brandUnitUnqNo];
- $('#jqg_ITP_STINFO06010_DETAIL_jqGrid_'+prev).prop('checked',true);
- $('#jqg_ITP_STINFO06010_DETAIL_jqGrid_'+idx).prop('checked',true);
- checkCount++;
- }
- // 대상인경우 맵에추가
- if( cur.unitTargetCd=='Y' ) {
- checkMap[brandUnitUnqNo]=idx;
- }
- return true;
- };
- var idx=1;
- $('#ITP_STINFO06010_DETAIL_jqGrid .cbox.checkbox').prop('checked',false);
- for(var cur of $(STINFO06010_DETAIL_GRID_ID).getRowData()) {
- checkIncr(cur, idx++);
- }
- if(checkCount>0 ) {
- return itp_fn_modal_alert_ajax(checkCount+ " 개 품목 동일한 대상건이 있습니다 ");
- }
- if (isValid) {
- itp_fn_grid_save_rows(STINFO06010_DETAIL_GRID_ID);
- var rows = $(STINFO06010_DETAIL_GRID_ID).getRowData();
- let param = {};
- var gridInsertData = [];
- var gridUpdateData = [];
- var changeRows = createObj.changeRows(rows);
- $.each(changeRows, function (index, item) {
- if(item.viewCd === 'C') {
- gridInsertData.push(item);
- } else if(item.viewCd === 'U') {
- gridUpdateData.push(item);
- }
- // if(pageObj.screenMode === 'ADD') {
- // gridInsertData.push(item);
- // } else {
- // if(item.viewCd === 'C') {
- // gridInsertData.push(item);
- // } else if(item.viewCd === 'U') {
- // gridUpdateData.push(item);
- // }
- // }
- });
- param['viewCd'] = 'U';
- param['brandId'] = fn_make_user_info.get('brandId');
- param['storeId'] = $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val();
- param['contSttDt'] = $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val();
- param['contEndDt'] = $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').val();
-
- if(pageObj.screenMode === 'ADD')
- {
- //param['contSttDt'] = $('#ITP_FORM_STINFO06010_DETAIL_FROM_DT').val();
- //param['contEndDt'] = $('#ITP_FORM_STINFO06010_DETAIL_TO_DT').val();
- param['viewCd'] = "C";
- } else {
- param['viewCd'] = "U";
- }
- param['gridInsertData'] = gridInsertData;
- param['gridUpdateData'] = gridUpdateData;
- var searhFn = function() {
- listObj.grid.search();
- };
- fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
- }
- }
- },
- grid: {
- init: function (param) {
- // 데이터 없을때
- listObj.empty.push();
- this.unload();
- this.load(param);
- },
- rows: [],
- load: function(param) {
- var option = {
- gridId: STINFO06010_DETAIL_GRID_ID,
- colModel: fn_make_user_info.get('authTpCd') === '50' ? gridColModel.sdetail : gridColModel.detail,
- height : 'auto',
- rowNum: '',
- mtype: 'POST',
- url: API_DETAIL_NEW,
- // scroll: true,
- postData: JSON.stringify(param),
- loadComplete: function(data) {
- //$(STINFO06010_DETAIL_GRID_LIST).jqGrid('hideCol',["spplyNm","spplyUnitAmt"]);
- createObj.rows = data.gridRows;
- /*
- itp_fn_grid_load_complete(data, STINFO06010_DETAIL_GRID_ID, false, 'number', 'STINFO06010', modifyObj.itp_STINFO06010_search, modifyObj.empty, true, data.gridRecords, true);
- */
- const container=$('#ITP_STINFO06010_DETAIL_jqGrid_list').closest('#ITP_CONTAINER');
- let hei=container.height();
- if(hei>300 ) {
- hei-=210;
- } else {
- hei=300;
- }
- $('#ITP_STINFO06010_DETAIL_jqGrid_list .ui-jqgrid-bdiv').height(hei);
- const rowCnt = $(STINFO06010_DETAIL_GRID_ID).jqGrid('getGridParam', 'records');
- let viewHtml = '';
- viewHtml += '<span class="itp_shrv fix">';
- viewHtml += '<span class="shrv_txt">' + ITP_MSG_LOCALE.label.total + '</span>';
- viewHtml += '<span class="shrv_num shrv_tot">(<em>' + rowCnt + '</em>)</span>';
- viewHtml += '</span>';
- $('#ITP_STINFO06010_DETAIL_jqGridView').html(viewHtml).show();
-
-
- },
- onCellSelect: function(rowid, cellIdx, cellValue) {
- if(fn_make_user_info.get('authTpCd') !== '50') {
- STINFO06010_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowid, cellIdx, STINFO06010_GRID_LAST_ROW_ID, STINFO06010_DETAIL_GRID_ID, ['actionId']);
- }
- }
- };
- //itp_fn_grid_make_remote(option);
- makeGrid(option);
- },
- clearData : function() {
- $(STINFO06010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
- $(STINFO06010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
- $(STINFO06010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
- $(STINFO06010_DETAIL_GRID_EMPTY).show();
- },
- unload : function() {
- $.jgrid.gridUnload(STINFO06010_DETAIL_GRID_ID);
- }
- },
- popup: function() {
- var popFn = function(rowDataPop) {
- if(rowDataPop && rowDataPop.length > 0) {
- $('#ITP_FORM_STINFO06010_DETAIL_BRAND_ID').val(rowDataPop[0].brandId);
- $('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').val(rowDataPop[0].storeId);
- $('#ITP_FORM_STINFO06010_DETAIL_STORE_NM').val(rowDataPop[0].storeNm);
- }
- // 강제로 팝업 창닫기 실행
- setTimeout(function() {
- $('.modal-backdrop').hide();
- }, 500);
- };
- fn_call_popup('biz', 'BIZPOP_BRAND_STORE', '#ITP_ASIDE', popFn, null, 'S');
- },
- rows: [],
- changeRows: function(gridRows) {
- var modifyRows = [];
- var chkColumns = ['unit', 'curr', 'unitAmt', 'unitTargetCd'];
- $.each(this.rows, function(index, item) {
- var row = gridRows[index];
- if(row.viewCd === 'C') {
- modifyRows.push(row);
- } else {
- if(row.itemId === item.itemId) {
- $.each(chkColumns, function(index, column) {
- if(row[column].toString() !== item[column].toString()) {
- row.viewCd = 'U';
- modifyRows.push(row);
- return false;
- }
- });
- }
- }
- });
- return modifyRows;
- }
- };
|