require(['config'], function() {
	require([
	], function($) {
		pageObj.init();	//config 적용
	});
});

/********************************************************
--------------------------------------------------------
- Object 목록								            -
--------------------------------------------------------
* const gridColModel = {}	: 화면 Grid Object			*
* let pageObj = {}			: 화면공통 Object			*
* let listObj = {}			: 목록화면 Object			*
* let viewObj = {}			: 상세화면 Object			*
*******************************************************/

/*화면 변수*/
const VENDINFO02010_GRID_ID = '#ITP_VENDINFO02010_jqGrid'; 			//GRID_ID 선언
const VENDINFO02010_GRID_LIST = '#ITP_VENDINFO02010_jqGrid_list';	//GRID_LIST 선언
const VENDINFO02010_GRID_PAGER = '#ITP_VENDINFO02010_jqGridPager';	//GRID_PAGER 선언
const VENDINFO02010_GRID_EMPTY = '#ITP_VENDINFO02010_jqGridEmpty';	//GRID_EMPTY 선언


/*API URL*/
let API_ITEM_GRID_LIST 	= '/api/item/spply-grid-list';	    // 목록 
let API_ITEM_INFO 		= '/api/item/info-item';			// 상세

/*화면 Grid ColModel*/
const gridColModel = {
	list: [
		{
			index: 'ITEM_ID', name: 'itemId',  			//서버로 전송시 데이터 명 , 데이터명
			label: ITP_MSG_LOCALE.label.itemId, 		//품목번호
			width: '12', fixed: false, align: 'center',	// cell가로넓이,고정 여부 ,text정렬 
			sortable: false, hidden: false 				//정렬가능 여부,화면표시 여부
		},
		{
			index: 'ITEM_NM', name: 'itemNm',			//서버로 전송시 데이터 명 , 데이터명
			label: ITP_MSG_LOCALE.label.itemNm, 		//품목명
			width: '13', fixed: false, align: 'left',	// cell가로넓이,고정 여부 ,text정렬 
			sortable: false, hidden: false, 			//정렬가능 여부,화면표시 여부
			classes: 'ui-ellipsis'
		},
		{
			index: 'ITEM_TYPE_NM', name: 'itemTypeNm',	//서버로 전송시 데이터 명 , 데이터명
			label: ITP_MSG_LOCALE.label.itemTypeNm, 	//품목유형
			width: '10', fixed: false, align: 'center',	// cell가로넓이,고정 여부 ,text정렬 
			sortable: false, hidden: false 				//정렬가능 여부,화면표시 여부
		},
		{
			index: 'ITEM_CLASS_NM', name: 'itemClassNm',//서버로 전송시 데이터 명 , 데이터명
			label: ITP_MSG_LOCALE.label.itemClassNm, 	//품목분류
			width: '12', fixed: false, align: 'center',	// cell가로넓이,고정 여부 ,text정렬 
			sortable: false, hidden: false 				//정렬가능 여부,화면표시 여부
		},
		{
			index: 'ITEM_ST_NM', name: 'itemStNm',		//서버로 전송시 데이터 명 , 데이터명
			label: "상태", 								//상태
			width: '8', fixed: false, align: 'center',	// cell가로넓이,고정 여부 ,text정렬 
			sortable: false, hidden: false 				//정렬가능 여부,화면표시 여부
		},
		{
			index: 'PODR_PSSBLDVSN_NM', name: 'podrPssblDvsnNm',//서버로 전송시 데이터 명 , 데이터명
			label: ITP_MSG_LOCALE.label.podrPssblDvsnNm, //발주여부
			width: '6', fixed: false, align: 'center',	// cell가로넓이,고정 여부 ,text정렬 
			sortable: false, hidden: false 				//정렬가능 여부,화면표시 여부
		},
		{
			index: 'UNIT', name: 'unit',				//서버로 전송시 데이터 명 , 데이터명		
			label: ITP_MSG_LOCALE.label.unit, 			//기본단위
			width: '6', fixed: false, align: 'center',	// cell가로넓이,고정 여부 ,text정렬 
			sortable: false, hidden: false 				//정렬가능 여부,화면표시 여부
		},
		{
			index: 'PCH_ITEM_YN', name: 'pchItemYn',	//서버로 전송시 데이터 명 , 데이터명
			label: ITP_MSG_LOCALE.label.pchItemYn, 		//구매품목여부
			width: '8', fixed: false, align: 'center',	// cell가로넓이,고정 여부 ,text정렬 
			sortable: false, hidden: false 				//정렬가능 여부,화면표시 여부
		},
		{
			index: 'SALE_ITEM_YN', name: 'saleItemYn',	//서버로 전송시 데이터 명 , 데이터명
			label: ITP_MSG_LOCALE.label.saleItemYn, 	//판매품목여부
			width: '8', fixed: false, align: 'center',	// cell가로넓이,고정 여부 ,text정렬 
			sortable: false, hidden: false 				//정렬가능 여부,화면표시 여부
		}
	]
};
/*화면공통 Object*/
let pageObj = {		
	init: function () {
		this.ui.init(); //ui 안 init 불러옴
		this.event.button(); //event 안 button 불러옴
	},
	ui: {
		init: function () {
			this.view(); //ui 에서 view 불러옴
			this.ready();//ui 에서 ready 불러옴
		},
		view: function() {
			// 버튼 권한설정
			fn_proc_btn_auth('VENDINFO02010');
			// 공통코드 표시
			$('select').each(function() {
				if($(this).data('select-code')) {
					fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
				}
			});
		},
		ready: function() {
			listObj.init();//목록화면 오브젝트
		}
	},
	event: {
		button: function () {
			// 버튼 클릭 이벤트
			$('button').each(function() {
				var id = $(this).attr('id');
				$(this).on('click', function() {//버튼 클릭시
					switch (id) {
						case 'ITP_BTN_VENDINFO02010_SRH'		: listObj.button.search();	break	// 조회 버튼 클릭시 멈춤
						case 'ITP_BTN_VENDINFO02010_CANCELLIST'	: viewObj.button.cancel(); 			// 취소/목록 버튼
						case 'ITP_BTN_VENDINFO02010_EXCEL'		: listObj.excelDown(); 			// 엑셀 다운로드
					}
				});
			});
		}
	},
	switchScreen: function(mode) {
		//itp_det_head 에서 Id가 ITP_BTN_VENDINFO02010_인 버튼을 찾아서 숨기기
		$('.itp_det_head').find('button[id^="ITP_BTN_VENDINFO02010_"]').each(function(i) {
			$(this).hide();
		});
		//ITP_TAB_VENDINFO02010 에서 _CONTAINER 컨테이너 찾아서 숨기기
		$('#ITP_TAB_VENDINFO02010').find('div[id$="_CONTAINER"]').each(function(i) {
			$(this).hide();
		});
		if(mode == 'LIST') { // mode 가 List 일때 List컨테이너를 보여주고 조회버튼 보이기
			$('#ITP_AJAX_VENDINFO02010_LIST_CONTAINER').show();
			$('#ITP_BTN_VENDINFO02010_EXCEL').show();
							
			fn_show_btn_auth_array(['#ITP_BTN_VENDINFO02010_SRH']);
		}  else if(mode == 'VIEW') { // mode 가 VIEW 일때 VEIW 컨테이너를 보여주고 취소/목록버튼 보이기
			$('#ITP_AJAX_VENDINFO02010_VIEW_CONTAINER').show();
			fn_show_btn_auth_array(['#ITP_BTN_VENDINFO02010_CANCELLIST']);
		}
	},
};

/*목록화면 Object*/
let listObj = {
	init: function () {
		this.grid.init(); //grid에서 init 불러오기
	},
    itp_VENDINFO02010_param: {}, //itp_VENDINFO02010_param 값 없음
	itp_VENDINFO02010_search: false, // 조회안함
	button: {
		search: function() {
			listObj.itp_VENDINFO02010_search = true; //조회시작
			let param = $('#ITP_FORM_VENDINFO02010_SEARCH').serializeObject(); // param 선언
			param.gridSize = $.jgrid.defaults.rowNum; // 그리드 사이즈 20
			param.gridPage = $.jgrid.defaults.page; // 페이지 1
			
			$(VENDINFO02010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
		},
	},
	empty: {
		init: function() {
			
		},
		itp_VENDINFO02010_param: {}, //param 선언
		push: function() {
			
		},
		back: function() {
		
		}
	},
	grid: {
		init: function () {
			// 데이터 없을때
			this.search(); //search 불러오기
		},
		colModel: gridColModel.list,//컬럼정보
		search: function() {
			pageObj.switchScreen('LIST');//리스트 페이지로
			this.unload();
			this.load();//load 불러오기
		},
		load: function() {
			$('#ITP_FORM_VENDINFO02010_SEARCH_SPPLY_ID').val(fn_make_user_info.get('spplyId'));//fn_make_user_info 에서 spplyId 가져와서 넣기
			$('#ITP_FORM_VENDINFO02010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));//fn_make_user_info 에서 brandId 가져와서 넣기
			$('#ITP_FORM_VENDINFO02010_SEARCH_SPPLY_NM').val(fn_make_user_info.get('spplyNm'));//fn_make_user_info 에서 spplyNm 가져와서 넣기
			let param = $('#ITP_FORM_VENDINFO02010_SEARCH').serializeObject(); //param 값넣기
			var option = {
				gridId: VENDINFO02010_GRID_ID,
				colModel: gridColModel.list,
				param: param,
				url: DOMAIN + API_ITEM_GRID_LIST,
				pager: VENDINFO02010_GRID_PAGER,
				onCellSelect: function(rowId, cellIdx, cellValue) {
					var cm = $(this).jqGrid('getGridParam', 'colModel');
					var colNm = cm[cellIdx].name;
					if (colNm == 'itemId') {
						const selectVal = $(this).jqGrid('getCell', rowId, 'itemId');
						const key = {brandId:fn_make_user_info.get('brandId'), itemId: selectVal, viewCd: 'R'};
							var param = $.param(key);
						viewObj.init(param);
					}
				},
				loadComplete: function(data) {
					itp_fn_grid_load_complete(data, VENDINFO02010_GRID_ID, true, 'number', 'VENDINFO02010', listObj.itp_VENDINFO02010_search, listObj.empty, true, data.gridRecords, true);
					var ids = $(VENDINFO02010_GRID_ID).getDataIDs();
					$.each(ids, function(idx, rowId) {
						$(VENDINFO02010_GRID_ID).jqGrid('setCell', rowId, 'itemId', '', ITP_GRID_COL_STYLE.link);
					});
				},
				onPaging: function(action) {
					itp_fn_grid_paging(VENDINFO02010_GRID_ID, action, param);
				}
			};
			itp_fn_grid_make_remote(option);
		},
		clearData: function() {
			$(VENDINFO02010_GRID_ID).jqGrid('clearGridData', true);
            $(VENDINFO02010_GRID_ID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
            $(VENDINFO02010_GRID_ID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
            $(VENDINFO02010_GRID_ID_EMPTY).show();
		},
		unload: function() {
			$.jgrid.gridUnload(VENDINFO02010_GRID_ID);
		}
	},
	excelDown: function() {
		var param = {
			'url': API_ITEM_GRID_LIST,
			'param': $('#ITP_FORM_VENDINFO02010_SEARCH').serializeObject(),
			'gridColumns': $(VENDINFO02010_GRID_ID).jqGrid('getGridParam', 'colModel'),
			'fileName': '공급사 품목정보.xlsx',
			'sheetName': '공급사 품목리스트'
		};
		console.log(1111);
		//itp_fn_remote_to_excel(param);
	}
};

/*상세화면 Object*/
let viewObj = {
	init: function (param) {
		this.load(param);//load param 불러오기
	},
	load: function(param) {
		fn_ajax_call(API_ITEM_INFO, param, this.callback, 'GET');//API 주소, param  , Fn, 파일형식
	},
	button: {
		cancel: function() {
			pageObj.switchScreen('LIST'); //취소 버튼은 listObj 에 grid 안 search에 적용
		}
	},
	callback: function (result) { 
		console.log(result);
		pageObj.switchScreen('VIEW'); //VIEW로 화면 전환시
		
		var itemClassNm = ""; //itemClassNm 값 없음
		
		if (result.itemClass1Nm != null && result.itemClass1Nm != "")//itemclass1Nm 값이 있을때
		{
			var itemClassNm = result.itemClass1Nm;  //itemClassNm 에 itemClass1Nm 값 넣음
		}
		
		if (result.itemClass2Nm != null && result.itemClass2Nm != "")//itemclass2Nm 값이 있을때
		{
			var itemClassNm = itemClassNm + " " + ">" + " " + result.itemClass2Nm;	//itemClassNm 에 itemClassNm + > + itemClass2Nm 값 넣음
		}
		
		if (result.itemClass3Nm != null && result.itemClass3Nm != "")//itemclass3Nm 값이 있을때
		{
			var itemClassNm = itemClassNm + " " + ">" + " " + result.itemClass3Nm;	//itemClassNm 에 itemClassNm + > + itemClass3Nm 값 넣음		
		}
		
		if (result.itemClass4Nm != null && result.itemClass4Nm != "")//itemclass4Nm 값이 있을때
		{
			var itemClassNm = itemClassNm + " " + ">" + " " + result.itemClass4Nm;	//itemClassNm 에 itemClassNm + > + itemClass4Nm 값 넣음
		}
		$('#ITP_FORM_VENDINFO02010_VIEW .fnBrandNm').text(fn_make_user_info.get('brandNm'));//fn_make_user_info에서 brandNm 가져와서 넣기
		
		/*#ITP_FORM_VENDINFO02010_VIEW 안에 있는 fn class에 API데이터 넣기*/
		
		$('#ITP_FORM_VENDINFO02010_VIEW .fnItemClass1Nm').text(itemClassNm);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnItemClassMgntNo').text(result.itemClassMgntNo);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnItemId').text(result.itemId);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnItemTypeNm').text(result.itemTypeNm);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnItemNm').text(result.itemClassNm);
		$('#ITP_FORM_VENDINFO02010_VIEW #ITP_FORM_VENDINFO02010_VIEW_IMP_DVSN').val(result.impDvsn);
		let impDvsnNm;
		if (result.impDvsn == '') {
        	impDvsnNm = '';
		} else {
			impDvsnNm = $('#ITP_FORM_VENDINFO02010_VIEW_IMP_DVSN option:selected').text(); 
		}
		$('#ITP_FORM_VENDINFO02010_VIEW .fnImpDvsnNm').text(impDvsnNm);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnPodrPssblDvsn').text(result.podrPssblDvsnNm);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnUnit').text(result.unit);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnWeightUnit').text(result.weightUnit);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnVolumeUnit').text(result.volumeUnit);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnWidthUnit').text(result.widthUnit);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnHeightUnit').text(result.heightUnit);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnHighUnit').text(result.highUnit);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnPchItemYn').text(result.pchItemYn);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnViewPchUnit').text(result.pchUnit);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnSaleItemYn').text(result.saleItemYn);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnSaleUnit').text(result.saleUnit);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnAssetInfo').text(result.assetInfo);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnStckUnit').text(result.stckUnit);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnWeight').text(result.weight.toFixed(2));
		$('#ITP_FORM_VENDINFO02010_VIEW .fnVolume').text(result.volume.toFixed(2));
		$('#ITP_FORM_VENDINFO02010_VIEW .fnWidth').text(result.width.toFixed(2));
		$('#ITP_FORM_VENDINFO02010_VIEW .fnHeight').text(result.height.toFixed(2));
		$('#ITP_FORM_VENDINFO02010_VIEW .fnHigh').text(result.high.toFixed(2));
		$('#ITP_FORM_VENDINFO02010_VIEW .fnOneBoxQty').text(result.oneBoxQty);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnExpryYn').text(result.expryYn);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnExpryPeriod').text(result.expryPeriod);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnRtnPssblYn').text(result.rtnPssblYn);
		$('#ITP_FORM_VENDINFO02010_VIEW .fnRtnDvsn').text(result.rtnDvsnNm);
		
		//#ITP_FORM_VENDINFO02010_VIEW 안에 있는 fnItemImage에  API데이터를 이미지 경로로 넣기
		$.each(result.imageFileNoList, function(index, item) {
			$('#ITP_FORM_VENDINFO02010_VIEW .fnItemImage').append('<img src=" + item.filePath +" />');
		});
	}
};

