12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064 |
- BemsWebApplication.Facility2 = function (params, viewInfo) {
- "use strict";
- var facilityClassDataSource = BemsWebApplication.db.createDataSource('FmsFacilityCodeClass');
- facilityClassDataSource.filter([
- ['SiteId', '=', BWA.UserInfo.SiteId()],
- 'and',
- ['ParentFacilityClassId', '=', null]
- ]);
- var facilityClassDataSource2 = BemsWebApplication.db.createDataSource('FmsFacilityCodeClass');
- var facilityClasses2 = ko.observableArray();
- var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', true),
- floorDataSource = BemsWebApplication.db.createDataSource('CmFloor', true),
- zoneDataSource = BemsWebApplication.db.createDataSource('CmZone', true),
- UserDataSource = BemsWebApplication.db.createDataSource('CmUser', true),
- facilityDataSource = BemsWebApplication.db.createDataSource('CmFacility', true),
- fuelTypeDataSource = BemsWebApplication.db.createDataSource('BemsFuelType', true),
- contractTypeDataSource = BemsWebApplication.db.createDataSource('BemsNoticePriceContractType'),
- floorDataSource2 = BemsWebApplication.db.createDataSource('CmFloor', true),
- zoneDataSource2 = BemsWebApplication.db.createDataSource('CmZone', true),
- contractTypeDataSource2 = BemsWebApplication.db.createDataSource('BemsNoticePriceContractType');
- var filePath = "/App_Data/files/form/설비등록양식.xlsx";
- var isEditModeInPopup = ko.observable(false);
- // 설비분류 데이터소스
- var facilityTypeDataSource = BemsWebApplication.db.createDataSource('BemsFacilityType');
- var facilityTypes = ko.observableArray();
- var facility = ko.observableArray();
- var facilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()];
- var buildings = ko.observableArray(),
- floors = ko.observableArray(),
- zones = ko.observableArray(),
- floors2 = ko.observableArray(),
- zones2 = ko.observableArray(),
- user = ko.observableArray(),
- contract = ko.observableArray(),
- fuelTypes = ko.observableArray(),
- contractTypes = ko.observableArray();
- var searchFacilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()],
- searchFacilityClassValues = [ko.observable(), ko.observable(), ko.observable()],
- searchBuildings = ko.observableArray(),
- searchFloors = ko.observableArray(),
- searchFuelTypes = ko.observableArray(),
- searchBuildingId = ko.observable(),
- searchFloorId = ko.observable();
- var imagefileUrl = ko.observable(),
- uploadedFileInfo = {},
- dropZone = null;
- var isMainContactor = true,
- selectedUserData = ko.observable(),
- selectedFacility = ko.observable(),
- selectedFacilityDataInSearchParentPopup = ko.observable();
- var searchDeferred = new $.Deferred();
- var defaultSearchClassArray = $SearchView.createDefaultArray('FacilityClassId'),
- defaultSearchBuildingArray = $SearchView.createDefaultArray('BuildingId'),
- defaultSearchFloorArray = $SearchView.createDefaultArray('FloorId'),
- defaultSearchContractTypeArray = $SearchView.createDefaultArray('ContractType');
- var tabsVisible = ko.observable(false);
- var currentTabIndex = ko.observable(0);
- selectedFacilityDataInSearchParentPopup.subscribe(function (value) {
- viewModel.dataModel.ParentFacilityCode(value.FacilityCode);
- viewModel.dataModel.ParentFacilityName(value.Name);
- });
- selectedUserData.subscribe(function (value) {
- if (isMainContactor) {
- viewModel.dataModel.MainContactorUserId(value.UserId);
- viewModel.dataModel.MainContactorUserName(value.Name);
- }
- else {
- viewModel.dataModel.SubContactorUserId(value.UserId);
- viewModel.dataModel.SubContactorUserName(value.Name);
- }
- });
- var handleFirstClassChangedValueInSearchView = function (e) {
- if (e.value === 0) {
- initializeSearchClasses();
- return;
- }
- BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[1], defaultSearchClassArray);
- };
- var handleSecondClassChangedValueInSearchView = function (e) {
- if (e.value === 0) {
- initializeSearchClasses(true);
- return;
- }
- BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[2], defaultSearchClassArray);
- };
- var handleBuildingInSearchView = function (e) {
- if (e.value === 0) {
- searchFloors(defaultSearchFloorArray.slice(0));
- searchFloorId(0);
- return 0;
- }
- BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', e.value, searchFloors, defaultSearchFloorArray);
- }
- function initializeSearchClasses(onlyThird) {
- if (onlyThird === undefined || onlyThird === false) {
- searchFacilityClasses[1](defaultSearchClassArray.slice(0));
- searchFacilityClassValues[1](0);
- }
- searchFacilityClasses[2](defaultSearchClassArray.slice(0));
- searchFacilityClassValues[2](0);
- }
- function setupDropZone(isEditModeInPopup, dataViewModel) {//2019-11-11 변경
- var timer = null;
- isEditModeInPopup.subscribe(function (value) {
- if (value) {
- if (timer) { clearInterval(timer); }
- timer = setInterval(function () {
- if ($('#facilityDropZone').length) {
- if (_.isNull(dropZone)) {
- dropZone = BWA.DropZone.create({
- id: '#facilityDropZone',
- categoryId: $Code.FileCategory.FACILITY,
- uploadedFileInfo: uploadedFileInfo,
- handleRemoveBeforePromise: function () {
- var keys = BWA.db.extractKeysObject('CmFacility', dataViewModel);
- return BWA.db.CmFacility.update(keys, { FileId: null });
- },
- handleSuccess: function (fileInfo) {
- if (uploadedFileInfo.FileId) {
- dataViewModel.FileId(uploadedFileInfo.FileId);
- var keys = BWA.db.extractKeysObject('CmFacility', dataViewModel);
- if (keys.FacilityCode != null) {
- return BWA.db.CmFacility.update(keys, { FileId: uploadedFileInfo.FileId });
- }
- }
- },
- handleRemovedFile: function () {
- dataViewModel.FileId(null);
- }
- });
- }
- }
- }, 100);
- }
- else {
- if (timer) {
- clearInterval(timer);
- timer = null;
- }
- dropZone = null;
- }
- });
- }
- function FacilityDownload() {
- var url = "";
- if (BemsWebApplication.config.mode == "production") {
- url = BemsWebApplication.config.endpoints.service.production + filePath;
- } else {
- url = BemsWebApplication.config.endpoints.service.local + filePath;
- }
- window.location.assign(url);
- }
- function FacilityImport() {
- var inputFileControl = document.getElementById("FILE_IMPORT");
- $(document).ready(function () {
- function changeValue(e) {
- if (e.currentTarget.value == "") {
- }
- else if (!checkFileType(e.currentTarget.value)) {
- utils.toast.show('정해진 양식으로만 올려주세요!', 'error');
- return;
- } else {
- var files = e.target.files; //input file 객체를 가져온다.
- var i, f;
- for (i = 0; i != files.length; ++i) {
- f = files[i];
- var reader = new FileReader(); //FileReader를 생성한다.
- //성공적으로 읽기 동작이 완료된 경우 실행되는 이벤트 핸들러를 설정한다.
- reader.onload = function (e) {
- if (e) {
- var data = e.target.result;
- data = new Uint8Array(data);
- var EXCELarray = [];
- var tempEXCELarray = [];
- var workbook = XLSX.read(data, { type: 'array' });
- workbook.SheetNames.forEach(function (item, index, array) {
- EXCELarray.push(XLSX.utils.sheet_to_json(workbook.Sheets[item]));
- });
- for (var i = 0; i < EXCELarray[0].length; i++) {
- var tempmaterial = {
- SiteId: BWA.UserInfo.SiteId(),
- FacilityTypeId: EXCELarray[0][i]['BEMS 유형 (*)'],
- FacilityCode: null,
- FirstClassId: EXCELarray[0][i]['시설 대분류(*)'],
- SecondClassId: EXCELarray[0][i]['시설 중분류'],
- ThirdClassId: EXCELarray[0][i]['시설 소분류'],
- DeviceType: EXCELarray[0][i]['종류'],
- ParentFacilityCode: null,
- Name: EXCELarray[0][i]['시설명칭(*)'],
- Nickname: EXCELarray[0][i]['시설별칭(*)'],
- Rfid: EXCELarray[0][i]['RFID'],
- Manufacturer: EXCELarray[0][i]['제조업체'],
- ManufactureDate: EXCELarray[0][i]['제조일자'],
- ManufactureSerial: EXCELarray[0][i]['제조번호'],
- ManufactureModel: EXCELarray[0][i]['제조모델'],
- Supplier: EXCELarray[0][i]['납품업체'],
- SupplierPhoneNo: EXCELarray[0][i]['업체전화'],
- BuildingId: EXCELarray[0][i]['설치위치(대)'],
- FloorId: EXCELarray[0][i]['설치위치(중)'],
- ZoneId: EXCELarray[0][i]['설치위치(소)'],
- InstallDate: EXCELarray[0][i]['설치일자'],
- OperationStartDate: EXCELarray[0][i]['운전시작일'],
- FacilityCapacity: EXCELarray[0][i]['시설용량'],
- FacilityCost: EXCELarray[0][i]['시설비용'],
- FacilityCount: EXCELarray[0][i]['시설수량'],
- FacilitySeviceLifeYear: null,
- FacilityUsage: EXCELarray[0][i]['시설용도'],
- RatedPowerConsumption: EXCELarray[0][i]['정격전력소비량'],
- RatedCOP: EXCELarray[0][i]['정격COP'],
- MainContactorUserId: EXCELarray[0][i]['정담당자'],
- SubContactorUserId: EXCELarray[0][i]['부담당자'],
- Note: EXCELarray[0][i]['Note'],
- Reserved1: null,
- Reserved2: null,
- IsUse: EXCELarray[0][i]['사용여부(*)[활성화 or 취소]'],
- FileId: null,
- IsVirtualFacility: false,
- FuelTypeId: EXCELarray[0][i]['연료종류'],
- ContractType: EXCELarray[0][i]['계약종류'],
- }
- // BEMS 유형
- if (tempmaterial.FacilityTypeId == null) {
- utils.toast.show('BEMS 유형을 입력해야합니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- else {
- var cnt = 0;
- for (var j = 0; j < facilityTypes().length; j++) {
- if (tempmaterial.FacilityTypeId == facilityTypes()[j].Name()) {
- tempmaterial.FacilityTypeId = facilityTypes()[j].FacilityTypeId();
- break;
- }
- else {
- cnt++;
- if (cnt == facilityTypes().length) {
- utils.toast.show('잘못된 BEMS 유형 내용을 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- // 시설명칭
- if (tempmaterial.Name == null) {
- utils.toast.show('시설명칭을 입력해야합니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- else {
- tempmaterial.Name = tempmaterial.Name.toString();
- }
- if (tempmaterial.Nickname == null) {
- utils.toast.show('시설별칭을 입력해야합니다(' + (i + 1) + '번 행)', 'error');
- return;
- } else {
- tempmaterial.Nickname = tempmaterial.Nickname.toString();
- }
- for (var j = 0; j < facility().length; j++) {
- if (tempmaterial.Name == facility()[j].Name()) {
- if (tempmaterial.Nickname == facility()[j].Nickname()) {
- utils.toast.show('동일한 시설명칭과 시설별칭을 입력할수 없습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- //사용여부
- if (tempmaterial.IsUse == null) {
- utils.toast.show('사용여부를 입력해야합니다(' + (i + 1) + '번 행)[활성화 or 취소]', 'error');
- return;
- }
- else {
- if (tempmaterial.IsUse == "활성화") {
- tempmaterial.IsUse = true;
- } else if (tempmaterial.IsUse == "취소") {
- tempmaterial.IsUse = false;
- }
- else {
- utils.toast.show('사용여부를 정확히 입력해야합니다(' + (i + 1) + '번 행)[활성화 or 취소]', 'error');
- return;
- }
- }
- //시설 대분류
- if (tempmaterial.FirstClassId == null) {
- utils.toast.show('시설 대분류를 입력해야합니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- else {
- var cnt = 0;
- for (var j = 0; j < facilityClasses2().length; j++) {
- if ((tempmaterial.FirstClassId == facilityClasses2()[j].Name()) && facilityClasses2()[j].Depth() == 0) {
- tempmaterial.FirstClassId = facilityClasses2()[j].FacilityClassId();
- break;
- }
- else {
- cnt++;
- if (cnt == facilityClasses2().length) {
- utils.toast.show('잘못된 시설 대분류 내용을 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- //시설 중분류
- if (tempmaterial.SecondClassId != null) {
- var cnt = 0;
- for (var j = 0; j < facilityClasses2().length; j++) {
- if ((tempmaterial.SecondClassId == facilityClasses2()[j].Name()) && (tempmaterial.FirstClassId == facilityClasses2()[j].ParentFacilityClassId()) && (facilityClasses2()[j].Depth() == 1)) {
- tempmaterial.SecondClassId = facilityClasses2()[j].FacilityClassId();
- break;
- }
- else {
- cnt++;
- if (cnt == facilityClasses2().length) {
- utils.toast.show('잘못된 시설 중분류 내용을 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- //시설 소분류
- if (tempmaterial.ThirdClassId != null) {
- var cnt = 0;
- for (var j = 0; j < facilityClasses2().length; j++) {
- if ((tempmaterial.ThirdClassId == facilityClasses2()[j].Name()) && (tempmaterial.SecondClassId == facilityClasses2()[j].ParentFacilityClassId()) && (facilityClasses2()[j].Depth() == 2)) {
- tempmaterial.ThirdClassId = facilityClasses2()[j].FacilityClassId();
- break;
- }
- else {
- cnt++;
- if (cnt == facilityClasses2().length) {
- utils.toast.show('잘못된 시설 소분류 내용을 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- if (tempmaterial.BuildingId != null) {
- var cnt = 0;
- for (var j = 0; j < buildings().length; j++) {
- if (tempmaterial.BuildingId == buildings()[j].Name()) {
- tempmaterial.BuildingId = buildings()[j].BuildingId();
- break;
- }
- else {
- cnt++;
- if (cnt == buildings().length) {
- utils.toast.show('잘못된 설치위치(대) 내용을 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- if (tempmaterial.FloorId != null) {
- var cnt = 0;
- for (var j = 0; j < floors2().length; j++) {
- if (tempmaterial.FloorId == floors2()[j].Name()) {
- tempmaterial.FloorId = floors2()[j].FloorId();
- break;
- }
- else {
- cnt++;
- if (cnt == floors2().length) {
- utils.toast.show('잘못된 설치위치(중) 내용을 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- if (tempmaterial.ZoneId != null) {
- var cnt = 0;
- for (var j = 0; j < zones2().length; j++) {
- if (tempmaterial.ZoneId == zones2()[j].Name()) {
- tempmaterial.ZoneId = zones2()[j].ZoneId();
- break;
- }
- else {
- cnt++;
- if (cnt == zones2().length) {
- utils.toast.show('잘못된 설치위치(소) 내용을 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- if (tempmaterial.MainContactorUserId != null) {
- var cnt = 0;
- for (var j = 0; j < user().length; j++) {
- if (tempmaterial.MainContactorUserId == user()[j].Name()) {
- tempmaterial.MainContactorUserId = user()[j].UserId();
- break;
- }
- else {
- cnt++;
- if (cnt == user().length) {
- utils.toast.show('잘못된 정담당자 내용을 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- if (tempmaterial.SubContactorUserId != null) {
- var cnt = 0;
- for (var j = 0; j < user().length; j++) {
- if (tempmaterial.SubContactorUserId == user()[j].Name()) {
- tempmaterial.SubContactorUserId = user()[j].UserId();
- break;
- }
- else {
- cnt++;
- if (cnt == user().length) {
- utils.toast.show('잘못된 부담당자 내용을 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- if (tempmaterial.FuelTypeId != null) {
- var cnt = 0;
- for (var j = 0; j < fuelTypes().length; j++) {
- if (tempmaterial.FuelTypeId == fuelTypes()[j].Name()) {
- tempmaterial.FuelTypeId = fuelTypes()[j].FuelTypeId();
- break;
- }
- else {
- cnt++;
- if (cnt == fuelTypes().length) {
- utils.toast.show('잘못된 연료종류를 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- if (tempmaterial.ContractType != null) {
- var cnt = 0;
- for (var j = 0; j < contract().length; j++) {
- if (tempmaterial.ContractType == contract()[j].Name()) {
- tempmaterial.ContractType = contract()[j].ContractType();
- break;
- }
- else {
- cnt++;
- if (cnt == contract().length) {
- utils.toast.show('잘못된 계약종류를 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- if (tempmaterial.DeviceType != null)
- tempmaterial.DeviceType = tempmaterial.DeviceType.toString();
- if (tempmaterial.Rfid != null) {
- tempmaterial.Rfid = tempmaterial.Rfid.toString();
- for (var j = 0; j < facility().length; j++) {
- if (facility()[j].Rfid() == tempmaterial.Rfid && tempmaterial.Rfid != "" && tempmaterial.Rfid != null) {
- utils.toast.show('RFID값이 중복되었습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- if (tempmaterial.Manufacturer != null)
- tempmaterial.Manufacturer = tempmaterial.Manufacturer.toString();
- if (tempmaterial.ManufactureSerial != null)
- tempmaterial.ManufactureSerial = tempmaterial.ManufactureSerial.toString();
- if (tempmaterial.ManufactureModel != null)
- tempmaterial.ManufactureModel = tempmaterial.ManufactureModel.toString();
- if (tempmaterial.Supplier != null)
- tempmaterial.Supplier = tempmaterial.Supplier.toString();
- if (tempmaterial.SupplierPhoneNo != null)
- tempmaterial.SupplierPhoneNo = tempmaterial.SupplierPhoneNo.toString();
- if (tempmaterial.FacilityUsage != null)
- tempmaterial.FacilityUsage = tempmaterial.FacilityUsage.toString();
- if (tempmaterial.RatedPowerConsumption != null)
- tempmaterial.RatedPowerConsumption = tempmaterial.RatedPowerConsumption.toString();
- if (tempmaterial.Note != null)
- tempmaterial.Note = tempmaterial.Note.toString();
- if (tempmaterial.FacilityCapacity != null)
- tempmaterial.FacilityCapacity = tempmaterial.FacilityCapacity.toString();
- if (tempmaterial.InstallDate != null) {
- tempmaterial.InstallDate = parse(tempmaterial.InstallDate);
- }
- if (tempmaterial.OperationStartDate != null) {
- tempmaterial.OperationStartDate = parse(tempmaterial.OperationStartDate);
- }
- if (tempmaterial.ManufactureDate != null) {
- tempmaterial.ManufactureDate = parse(tempmaterial.ManufactureDate);
- }
- if (tempmaterial.RatedCOP != null) {
- if (typeof (tempmaterial.RatedCOP) == "string") {
- utils.toast.show('정격COP은 숫자만 입력가능합니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- else {
- tempmaterial.RatedCOP = parseFloat(tempmaterial.RatedCOP);
- }
- }
- if (tempmaterial.FacilityCost != null) {
- if (typeof (tempmaterial.FacilityCost) == "string") {
- utils.toast.show('시설비용은 숫자만 입력가능합니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- else {
- tempmaterial.FacilityCost = parseInt(tempmaterial.FacilityCost);
- }
- }
- if (tempmaterial.FacilityCount != null) {
- if (typeof (tempmaterial.FacilityCount) == "string") {
- utils.toast.show('시설수량은 숫자만 입력가능합니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- else {
- tempmaterial.FacilityCount = parseInt(tempmaterial.FacilityCount);
- }
- }
- tempEXCELarray.push(tempmaterial);
- }
- for (var k = 0; k < tempEXCELarray.length; k++) {
- BWA.db.CmFacility.insert(tempEXCELarray[k]).done(function (response, responseKey) {
- if (k == tempEXCELarray.length) {
- facilityDataSource.load().done(function (result5) {
- facility(result5);
- utils.toast.show($G('successDatabaseInsertionMsg'));
- $('#gridContainer').dxDataGrid('instance').refresh();
- });
- }
- }).fail(function (error) {
- utils.toast.show(error);
- });
- }
- }
- };
- //파일객체를 읽는다. 완료되면 원시 이진 데이터가 문자열로 포함됨.
- reader.readAsArrayBuffer(f);
- }//end. for
- }
- $("#FILE_IMPORT").val("");
- }
- $("#FILE_IMPORT").on("change", changeValue);
- });
- inputFileControl.click();
- }
- function parse(str) {
- var y = String(str).substr(0, 4);
- var m = String(str).substr(4, 2);
- var d = String(str).substr(6, 2);
- return new Date(y, m - 1, d);
- }
- function checkFileType(filePath) {
- var fileLen = filePath.length;
- var lastDot = filePath.lastIndexOf('.');
- var fileFormat = filePath.substring(lastDot, fileLen).toLowerCase();
- if (fileFormat == ".xls" || fileFormat == ".xlsx") {
- return true;
- } else { return false; }
- }
- var facilityOptions = BemsWebApplication.Factory.Facility;
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmFacility', {
- dataSourceOptions: facilityOptions.getDataSourceForDataGrid(),
- columns: facilityOptions.getColumns([
- { dataField: 'FacilityCode', width: '7%' },
- { dataField: 'FmsFacilityCodeClass/Name', caption: '시설(대)', width: '7%', alignment: 'center', allowFiltering: false },
- { dataField: 'FmsFacilityCodeClass1/Name', caption: '시설(중)', width: '10%', alignment: 'center', allowFiltering: false },
- { dataField: 'FmsFacilityCodeClass2/Name', caption: '시설(소)', width: '10%', alignment: 'center', allowFiltering: false },
- { dataField: 'Name', width: '35%', alignment: 'left' },
- { dataField: 'ManufactureModel', width: '20%', alignment: 'left' },
- { dataField: 'FacilityCapacity', caption: '시설용량', width: '20%', alignment: 'left' },
- { dataField: 'CmFloor/Name', caption: $G('facilityLocation'), width: '10%', alignment: 'center', allowFiltering: false }
- ]),
- "export": {
- enabled: true,
- fileName: '설비 정보 목록',
- },
- onExporting: function (e) {
- e.component.columnOption("FacilityCode", "visible", false);
- },
- onExported: function (e) {
- e.component.columnOption("FacilityCode", "visible", true);
- },
- popupWidth: '760px',
- wordWrapEnabled: true,
- cellPrepared: BemsWebApplication.Factory.Facility.cellPrepared,
- searchViewItems: [
- { id: 'FirstClassId', ignoreValue: 0, defaultValue: 0, value: searchFacilityClassValues[0], dataSource: searchFacilityClasses[0], handleChangedValue: handleFirstClassChangedValueInSearchView },
- { id: 'SecondClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'FirstClassId', value: searchFacilityClassValues[1], dataSource: searchFacilityClasses[1], handleChangedValue: handleSecondClassChangedValueInSearchView },
- { id: 'ThirdClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'FirstClassId', value: searchFacilityClassValues[2], dataSource: searchFacilityClasses[2] },
- { id: 'BuildingId', ignoreValue: 0, defaultValue: 0, value: searchBuildingId, dataSource: searchBuildings, handleChangedValue: handleBuildingInSearchView },
- { id: 'FloorId', ignoreValue: 0, defaultValue: 0, withCheckId: 'BuildingId', value: searchFloorId, dataSource: searchFloors },
- { id: 'Name' }
- ],
- promiseDataInSearchView: searchDeferred.promise(),
- handlePopupButtonEdit: function (dataModel) {
- isEditModeInPopup(true);
- },
- handleCancelInPopup: function () {
- isEditModeInPopup(false);
- },
- handlePopupButtonClose: function () {
- isEditModeInPopup(false);
- },
- handleViewShowing: function () {
- facilityTypeDataSource.filter([
- ['FacilityTypeId', '<', 99]
- ]);
- floorDataSource2.filter([
- ['SiteId', '=', BWA.UserInfo.SiteId()]
- ]);
- zoneDataSource2.filter([
- ['SiteId', '=', BWA.UserInfo.SiteId()]
- ]);
- contractTypeDataSource2.filter([
- ['FuelTypeId', '>=', 1]
- ]);
- // 빌딩 데이터 로드 시점
- $.when(facilityClassDataSource.load(),
- buildingDataSource.load(),
- facilityTypeDataSource.load(),
- fuelTypeDataSource.load(),
- facilityDataSource.load(),
- UserDataSource.load(),
- floorDataSource2.load(),
- zoneDataSource2.load(),
- contractTypeDataSource2.load()
- ).done(function (result1, result2, result3, result4, result5, UserData, floorData, zoneData, contractData) {
- facilityClasses[0](result1[0]);
- searchFacilityClasses[0](defaultSearchClassArray.slice(0).concat(result1[0]));
- initializeSearchClasses();
- buildings(result2[0]);
- user(UserData[0]);
- floors2(floorData[0]);
- zones2(zoneData[0]);
- contract(contractData[0]);
- searchBuildings(defaultSearchBuildingArray.slice(0).concat(result2[0]));
- searchFloors(defaultSearchFloorArray.slice(0));
- var fuelTypeItemNull = new BemsWebApplication.BemsFuelTypeViewModel({ FuelTypeId: null, Name: '선택' });
- result4[0].unshift(fuelTypeItemNull);
- fuelTypes(result4[0]);
- facilityTypes(result3[0]);
- facility(result5[0]);
- searchDeferred.resolve();
- });
- facilityClassDataSource2.filter([
- ['SiteId', '=', BWA.UserInfo.SiteId()]
- ]);
- // 빌딩 데이터 로드 시점
- $.when(facilityClassDataSource2.load()
- ).done(function (result1) {
- facilityClasses2(result1);
- });
- },
- handleViewShown: function (dataViewModel, isEditModeInPopup) {
- setupDropZone(isEditModeInPopup, dataViewModel);
- $("#gridContainer").dxDataGrid({
- paging: {
- pageSize: 18
- }
- });
- },
- handlePopupShowing: function (isNewInPopup) {
- imagefileUrl(undefined);
- if (_.isNull(dropZone) === false) dropZone.resetUploadedFileInfo();
- if (isNewInPopup() == false) {
- isEditModeInPopup(false);
- } else {
- dropZone = null;
- isEditModeInPopup(true);
- }
- },
- handlePopupShown: function (isEditMode, isNewInPopup, dataViewModel) {
- if (isNewInPopup === false) {
- isEditModeInPopup(false);
- }
- else {
- dataViewModel.IsVirtualFacility(false);
- isEditModeInPopup(true);
- }
- $.when(
- facilityDataSource.load()
- ).done(function (result5) {
- facility(result5);
- });
- viewModel.searchViewPopup.show();
- },
- handleSaveSuccess: function () {
- if (_.isNull(dropZone) === false) {
- dropZone.resetUploadedFileInfo();
- }
- isEditModeInPopup(false);
- },
- handleAfterDelete: function () {
- facilityDataSource.load().done(function (result5) {
- facility(result5);
- });
- },
- handleAfterInsert: function (db, db2) {
- if (db2.FacilityTypeId != 1) return;
- var dataViewModel = new BemsWebApplication['CmFacilityTempSetViewModel']();
- dataViewModel.SiteId = db.SiteId;
- dataViewModel.FacilityCode = db.FacilityCode;
- var promise = BemsWebApplication.api.post('BemsMonitoringPoint/AddAirTempSet', dataViewModel);
- promise.done(function () {
- });
- },
- handleAfterSaveInPopup: function (responseKey, response) {//2019-11-11 변경
- viewModel.dataModel.FacilityCode(responseKey.FacilityCode);
- },
- handleSaveButtonInPopup: function (isInsert) {//2019-11-11 변경
- if (isInsert === false) {//추가, 변경 여부
- if (_.isNull(dropZone) === false) {
- if (viewModel.dataModel.FileId() != null) { //변경 - 그림삭제
- var temp = {
- SiteId: BWA.UserInfo.SiteId(),
- FileId: viewModel.dataModel.FileId()
- }
- BWA.db.CmFile.byKey(temp).done(function (data) {
- dropZone.removeFile(data);
- dropZone.processQueue();
- });
- }
- else {
- dropZone.processQueue();//변경 - 그림 삭제 필요없음
- }
- }
- }
- else {
- if (_.isNull(dropZone) === false) { //추가
- if (viewModel.dataModel.FileId() == null) {
- dropZone.processQueue();
- }
- }
- }
- },
- handleBeforeDelete: function (db) {//2019-11-11 변경
- var temp = {
- SiteId: BWA.UserInfo.SiteId(),
- FileId: viewModel.dataModel.FileId()
- }
- BWA.db.CmFile.byKey(temp).done(function (data) {
- if ($('#facilityDropZone1').length) {
- if (_.isNull(dropZone)) {
- dropZone = BWA.DropZone.create({
- id: '#facilityDropZone1',
- categoryId: $Code.FileCategory.FACILITY
- });
- dropZone.removeFile(data);
- dropZone = null;
- }
- }
- });
- var dataViewModel = new BemsWebApplication['CmFacilityTempSetViewModel']();
- dataViewModel.SiteId = db.SiteId;
- dataViewModel.FacilityCode = db.FacilityCode;
- var promise = BemsWebApplication.api.post('BemsMonitoringPoint/RemoveAirTempSet', dataViewModel);
- promise.done(function () {
- });
- },
- handleAfterLoadingModelByKey: function (data, dataViewModel, isNewInPopup) {
- if (isNewInPopup() == false) {
- BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', dataViewModel.FirstClassId(), facilityClasses[1]).done(function () {
- BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', dataViewModel.SecondClassId(), facilityClasses[2]);
- });
- BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', dataViewModel.BuildingId(), floors).done(function () {
- BWA.DataUtil.setArrayDataSourceFilter(zoneDataSource, 'FloorId', dataViewModel.FloorId(), zones);
- });
- if (_.isNull(dataViewModel.FileId()) === false) {
- imagefileUrl('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, dataViewModel.SiteId(), dataViewModel.FileId()));
- }
- else {
- //imagefileUrl(undefined);
- imagefileUrl("images/default.png");
- //dataViewModel.imagefileUrl("images/default.png");
- }
- selectedFacility(dataViewModel);
- }
- },
- handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
- dataGrid.clearSelection();
- var data = clickRow.data;
- var dataModel = viewModel.dataModel;
- if (data.ParentFacilityCode() != null) {
- for (var i = 0; i < facility().length; i++) {
- if (data.ParentFacilityCode() == facility()[i].FacilityCode()) {
- dataModel.ParentFacilityName(facility()[i].Name());
- break;
- }
- }
- } else {
- dataModel.ParentFacilityName("");
- }
- dataModel.ClassName = $KoSet(dataModel.ClassName,
- BWA.Factory.Facility.formatClassName(
- data['FmsFacilityCodeClass/Name'] == undefined ? '' : data['FmsFacilityCodeClass/Name'](),
- data['FmsFacilityCodeClass1/Name'] == undefined ? '' : data['FmsFacilityCodeClass1/Name'](),
- data['FmsFacilityCodeClass2/Name'] == undefined ? '' : data['FmsFacilityCodeClass2/Name']()));
- dataModel.BuildingName = $KoSet(dataModel.BuildingName, data['CmBuilding/Name'] == undefined ? '' : data['CmBuilding/Name']());
- dataModel.FloorName = $KoSet(dataModel.FloorName, data['CmFloor/Name'] == undefined ? '' : data['CmFloor/Name']());
- dataModel.ZoneName = $KoSet(dataModel.ZoneName, data['CmZone/Name'] == undefined ? '' : data['CmZone/Name']());
- dataModel.facilitylocation(dataModel.BuildingName() + " - " + dataModel.FloorName() + " - " + dataModel.ZoneName());
- //2016 04 21
- dataModel.MainContactorUserName = $KoSet(dataModel.MainContactorUserName, data['CmUser/Name'] == undefined ? '' : data['CmUser/Name']());
- dataModel.SubContactorUserName = $KoSet(dataModel.SubContactorUserName, data['CmUser1/Name'] == undefined ? '' : data['CmUser1/Name']());
- // jhLee 2016 04 22
- dataModel.FuelTypeName = $KoSet(dataModel.FuelTypeName, data['BemsFuelType/Name'] == undefined ? '' : data['BemsFuelType/Name']());
- dataModel.ContractTypeName = $KoSet(dataModel.ContractTypeName, data['BemsNoticePriceContractType/Name'] == undefined ? '' : data['BemsNoticePriceContractType/Name']);
- popupVisible(true);
- },
- beforeInsertingDataViewModel: function (dataModel, dbModelId) {
- var dfd = $.Deferred();
- for (var i = 0; i < facility().length; i++) {
- if (facility()[i].Rfid() == dataModel.Rfid() && dataModel.Rfid() != "" && dataModel.Rfid() != null) {
- return dfd.resolve(false, 'RFID값이 중복되었습니다.');
- }
- }
- return dfd.resolve(true);
- },
- beforeUpdateDataViewModel: function () {
- for (var i = 0; i < facility().length; i++) {
- if (facility()[i].Rfid() == viewModel.dataModel.Rfid() && viewModel.dataModel.Rfid() != "" && viewModel.dataModel.Rfid() != null) {
- if (facility()[i].FacilityCode() != viewModel.dataModel.FacilityCode()) {
- utils.toast.show('RFID값이 중복되었습니다.', 'error');
- return 0;
- }
- }
- }
- return 2; // 2016 01 19 BaseClass 에서 update한다.
- }
- });
- contractTypeDataSource.filter('FuelTypeId', -1);
- floorDataSource.filter('BuildingId', -1);
- zoneDataSource.filter('FloorId', -1);
- viewModel.handleSelectBoxChangeFirstClass = function (e) {
- if (viewModel.dataModel.FirstClassId() != null) {
- facilityClassDataSource.filter([
- ["SiteId", "=", BWA.UserInfo.SiteId()],
- "and",
- ["Depth", "=", 1],
- "and",
- ["ParentFacilityClassId", "=", viewModel.dataModel.FirstClassId()]
- ]);
- }
- facilityClassDataSource.load().done(function (result) {
- facilityClasses[1](result);
- });
- //BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, facilityClasses[1]);
- viewModel.dataModel.SecondClassId(null);
- viewModel.dataModel.ThirdClassId(null);
- };
- viewModel.handleSelectBoxChangeSecondClass = function (e) {
- if (viewModel.dataModel.FirstClassId() != null) {
- facilityClassDataSource.filter([
- ["SiteId", "=", BWA.UserInfo.SiteId()],
- "and",
- ["Depth", "=", 2],
- "and",
- ["ParentFacilityClassId", "=", viewModel.dataModel.SecondClassId()]
- ]);
- }
- facilityClassDataSource.load().done(function (result) {
- facilityClasses[2](result);
- });
- //BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, facilityClasses[2]);
- viewModel.dataModel.ThirdClassId(null);
- };
- viewModel.handleSelectBoxChangeBuilding = function (e) {
- if (viewModel.dataModel.BuildingId() != null) {
- floorDataSource2.filter([
- ['SiteId', '=', BWA.UserInfo.SiteId()],
- "and",
- ['BuildingId', '=', viewModel.dataModel.BuildingId()]
- ]);
- }
- floorDataSource2.load().done(function (result) {
- floors(result);
- });
- //BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', e.value, floors);
- viewModel.dataModel.FloorId(null);
- viewModel.dataModel.ZoneId(null);
- };
- viewModel.handleSelectBoxChangeFloor = function (e) {
- if (viewModel.dataModel.BuildingId() != null && viewModel.dataModel.FloorId() != null) {
- zoneDataSource2.filter([
- ['SiteId', '=', BWA.UserInfo.SiteId()],
- "and",
- ['BuildingId', '=', viewModel.dataModel.BuildingId()],
- "and",
- ['FloorId', '=', viewModel.dataModel.FloorId()]
- ]);
- }
- zoneDataSource2.load().done(function (result) {
- zones(result);
- });
- //BWA.DataUtil.setArrayDataSourceFilter(zoneDataSource, 'FloorId', e.value, zones);
- viewModel.dataModel.ZoneId(null);
- };
- viewModel.handleSelectBoxChangeFuelType = function (e) {
- BWA.DataUtil.setArrayDataSourceFilter(contractTypeDataSource, 'FuelTypeId', e.value, contractTypes).done(function () {
- var contractTypeItemNull = new BemsWebApplication.BemsNoticePriceContractTypeViewModel({ FuelTypeId: e.value, ContractType: null, Name: '선택' });
- contractTypes.unshift(contractTypeItemNull);
- });
- viewModel.dataModel.ContractType(null);
- };
- viewModel.buttonSearchFacility = function () {
- viewModel.facilitySearchPopup.show();
- };
- viewModel.buttonSearchMainContactorUser = function (e) {
- isMainContactor = true;
- viewModel.userSearchPopup.show();
- }
- viewModel.buttonSearchSubContactorUser = function (e) {
- isMainContactor = false;
- viewModel.userSearchPopup.show();
- }
- // JD : 아래를 주석처리 하면 팝업 화면이 깨짐
- // JD : 일단 tabsVisible = false, currentTabIndex = 0 으로 초기화 되어 있으므로 나둠
- viewModel.tabsOptions = {
- visible: tabsVisible,
- selectedIndex: currentTabIndex,
- dataSource: [
- { text: '시설정보' },
- { text: '작업이력' },
- { text: '하위시설' },
- { text: '점검항목' },
- { text: '법정항목' },
- { text: '운전일자항목' }
- ]
- };
- viewModel.dataModel.MainContactorUserName = $KoSet(viewModel.dataModel.MainContactorUserName, '');
- viewModel.dataModel.SubContactorUserName = $KoSet(viewModel.dataModel.SubContactorUserName, '');
- viewModel.dataModel.ParentFacilityName = $KoSet(viewModel.dataModel.ParentFacilityName, '');
- viewModel.facilityTypes = facilityTypes;
- viewModel.dataModel.facilitylocation = ko.observable();
- viewModel.dataModel.ClassName = ko.observable();
- viewModel.facilityClasses = facilityClasses;
- viewModel.searchFacilityClasses = searchFacilityClasses;
- viewModel.buildings = buildings;
- viewModel.floors = floors;
- viewModel.zones = zones;
- viewModel.userSearchPopup = $UserSearchPopup(viewModel, selectedUserData);
- viewModel.facilitySearchPopup = BWA.Popup.Facility.create(viewModel, selectedFacilityDataInSearchParentPopup);
- viewModel.fuelTypes = fuelTypes;
- viewModel.contractTypes = contractTypes;
- viewModel.isEditModeInPopup = isEditModeInPopup;
- viewModel.FacilityDownload = FacilityDownload;
- viewModel.FacilityImport = FacilityImport;
- var multiViewDataSource = [{
- viewModel: viewModel,
- imagefileUrl: imagefileUrl,
- template: 'facility'
- }];
- viewModel.searchViewPopup = BWA.Popup.SearchView.create({
- parentPopupId: 'popupDetail',
- parentPopupVisible: viewModel.popupVisible,
- handleSearch: function (filter, searchItems) {
- }
- });
- viewModel.multiViewOptions = {
- height: '740px',
- selectedIndex: currentTabIndex,
- dataSource: multiViewDataSource
- };
- return viewModel;
- };
|