123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945 |
- BemsWebApplication.EquipManagement2 = function (params, viewInfo) {
- "use strict";
- var codeTypeDataSource = BemsWebApplication.db.createDataSource('FmsEquipmentCodeType', true, false, true),
- codeStateTypeDataSource = BemsWebApplication.db.createDataSource('FmsEquipmentCodeStateType', false, false, true),
- warehouseDataSource = BemsWebApplication.db.createDataSource('FmsMaterialWarehouse', true, false, true);
- var eq = BWA.DataUtil.constructEqualFilter, and = BWA.DataUtil.andFilter;
- var filePath = "/App_Data/files/form/공기구등록양식.xlsx";
- var EquipmentTypes = ko.observableArray();
- var EquipmentTypesDataSource = BemsWebApplication.db.createDataSource('FmsEquipmentCodeType', true);
- var Equipment = ko.observableArray();
- var EquipmentDataSource = BemsWebApplication.db.createDataSource('FmsEquipment', true);
- var EquipmentInfo = ko.observableArray();
- var FmsEquipmentDataSource = BemsWebApplication.db.createDataSource('FmsEquipment');
- var RowEquipmentName, RowEquipmentTypeId;
- var equipmentExDataSource = BWA.DataUtil.createDataSource({
- dataSourceOptions: {
- store: BemsWebApplication.odata.FmsEquipmentEx,
- map: function (item) {
- return new BemsWebApplication.FmsEquipmentExViewModel(item);
- },
- filter: ([
- eq('SiteId', BWA.UserInfo.SiteId())
- ]),
- }
- });
- var visibleEditButton = ko.observable(false); // 수정 버튼 활성화 여부 플래그
- var hasnotModificationPermission = ko.observable(true); // 수정버튼 비활성화 플래그
- var visibleDeleteButton = ko.observable(false); // 삭제버튼 활성화 플래그
- var visibleCancelButton = ko.observable(false); // 취소버튼 활성화 플래그
- var isEditModeInPopup = ko.observable(); // 저장버튼 활성화 플래그
- var isNotModifyMode = ko.observable(false); // 저장버튼 비활성화 플래그
- var codeTypes = ko.observableArray(),
- codeStateTypes = ko.observableArray(),
- warehouses = ko.observableArray(),
- equipmentExs = ko.observableArray();
- var IsAdditionalEquipment = ko.observable(false);
- var codeTypesForSearch = ko.observableArray(),
- codeStateTypesForSearch = ko.observableArray(),
- warehousesForSearch = ko.observableArray();
- var deferredForSearch = new $.Deferred();
- var backupDataViewModel = null;
- var imagefileUrl = ko.observable(), uploadedFileInfo = {}, dropZone = null;
- var equipPopupToolbarItems = [
- { location: 'before', text: '입고 등록' },
- { location: 'after', widget: 'button', options: { text: $G('edit'), icon: 'edit', visible: visibleEditButton, disabled: hasnotModificationPermission, clickAction: handlePopupButtonEdit } },
- { location: 'after', widget: 'button', options: { text: $G('delete'), type: 'danger', icon: 'remove', visible: visibleDeleteButton, disabled: hasnotModificationPermission, clickAction: handlePopupButtonDelete } },
- { location: 'after', widget: 'button', options: { text: $G('cancel'), icon: 'cancel', visible: visibleCancelButton, clickAction: handlePopupButtonCancel } },
- { location: 'after', widget: 'button', options: { text: $G('save'), icon: 'save', visible: isEditModeInPopup, disabled: isNotModifyMode, clickAction: handlePopupButtonSave } },
- { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: equipEstimatePopupButtonClose } }
- ];
- function EquipImport() {
- 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(),
- EquipmentId: null,
- Name: EXCELarray[0][i]['이름 (*)'],
- EquipmentTypeId: EXCELarray[0][i]['분류 (*)'],
- WarehouseId: EXCELarray[0][i]['창고명칭 (*)'],
- Unit: EXCELarray[0][i]['단위'],
- Standard: EXCELarray[0][i]['규격'],
- AddDate: new Date(),
- UpdateDate: new Date(),
- RegisterUserId: BWA.UserInfo.UserId(),
- SupplierName: EXCELarray[0][i]['공급업체'],
- SupplierPhoneNo: EXCELarray[0][i]['업체연락처'],
- ImageFileId: null,
- TotalStockCount: null,
- CurrentStockCount: null,
- CurrentRentCount: null,
- StoredCount: EXCELarray[0][i]['최초입고수량']
- }
- var Addonoff = EXCELarray[0][i]['추가입고여부(*)[아니오]'];
- // 공기구 분류
- if (tempmaterial.EquipmentTypeId == null) {
- utils.toast.show('공기구 분류를 입력해야합니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- else {
- var cnt = 0;
- for (var j = 0; j < EquipmentTypes().length; j++) {
- if (tempmaterial.EquipmentTypeId == EquipmentTypes()[j].Name()) {
- tempmaterial.EquipmentTypeId = EquipmentTypes()[j].EquipmentTypeId();
- break;
- }
- else {
- cnt++;
- if (cnt == EquipmentTypes().length) {
- utils.toast.show('잘못된 공기구 분류 내용을 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- // 공기구 이름
- if (tempmaterial.Name == null) {
- utils.toast.show('공기구 이름을 입력해야합니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- else {
- tempmaterial.Name = tempmaterial.Name.toString();
- }
- // 규격
- if (tempmaterial.Standard == null) {
- tempmaterial.Standard = "";
- } else {
- tempmaterial.Standard = tempmaterial.Standard.toString();
- }
- for (var j = 0; j < Equipment().length; j++) {
- if (tempmaterial.Name == Equipment()[j].Name()) {
- if (tempmaterial.Standard == Equipment()[j].Standard()) {
- utils.toast.show('동일한 공기구이름과 규격을 입력할수 없습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- //공기구 창고 명칭
- if (tempmaterial.WarehouseId == null) {
- utils.toast.show('창고 명칭을 입력해야합니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- else {
- var cnt = 0;
- for (var j = 0; j < warehouses().length; j++) {
- if ((tempmaterial.WarehouseId == warehouses()[j].Name()) && warehouses()[j].IsUse() == true) {
- tempmaterial.WarehouseId = warehouses()[j].WarehouseId();
- break;
- }
- else {
- cnt++;
- if (cnt == warehouses().length) {
- utils.toast.show('잘못된 창고 명칭 내용을 입력하였습니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- }
- }
- }
- //추가입고여부
- if (Addonoff != null) {
- if (Addonoff != "아니오") {
- utils.toast.show('추가입고여부는 아니오만 입력해야합니다(' + (i + 1) + '번 행)[아니오]', 'error');
- return;
- }
- } else {
- utils.toast.show('추가입고여부를 입력해야합니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- //단위
- if (tempmaterial.Unit != null)
- tempmaterial.Unit = tempmaterial.Unit.toString();
- //공급업체
- if (tempmaterial.SupplierName != null)
- tempmaterial.SupplierName = tempmaterial.SupplierName.toString();
- //업체 연락처
- if (tempmaterial.SupplierPhoneNo != null)
- tempmaterial.SupplierPhoneNo = tempmaterial.SupplierPhoneNo.toString();
- if (tempmaterial.TotalStockCount != null) {
- if (typeof (tempmaterial.TotalStockCount) == "string") {
- utils.toast.show('최초 입고수량은 숫자만 입력가능합니다(' + (i + 1) + '번 행)', 'error');
- return;
- }
- else {
- tempmaterial.TotalStockCount = tempmaterial.CurrentStockCount = tempmaterial.StoredCount = parseInt(tempmaterial.TotalStockCount);
- }
- }
- tempEXCELarray.push(tempmaterial);
- }
- var parameters = {
- SiteId: BWA.UserInfo.SiteId(),
- IsAdditionalEquipment: false
- };
- for (var k = 0; k < tempEXCELarray.length; k++) {
- BWA.api.post('FmsEquipment/InsertFmsEquipment', tempEXCELarray[k], parameters).done(
- function () {
- if (k == tempEXCELarray.length) {
- EquipmentDataSource.load().done(function (result5) {
- utils.toast.show($G('successDatabaseInsertionMsg'));
- viewModel.gridView().refresh();
- });
- }
- }).fail(function (error) {
- utils.toast.show(error);
- });
- }
- }
- };
- //파일객체를 읽는다. 완료되면 원시 이진 데이터가 문자열로 포함됨.
- reader.readAsArrayBuffer(f);
- }//end. for
- }
- $("#FILE_IMPORT").val("");
- }
- $("#FILE_IMPORT").on("change", changeValue);
- });
- inputFileControl.click();
- }
- 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; }
- }
- function setupDropZone(dataViewModel) {//2019-11-11 변경
- var timer = null;
- viewModel.isEditModeInPopup.subscribe(function (value) {
- if (value) {
- if (timer) {
- clearInterval(timer);
- }
- timer = setInterval(function () {
- if ($('#equipmentDropZone').length) {
- if (_.isNull(dropZone)) {
- dropZone = BWA.DropZone.create({
- id: '#equipmentDropZone',
- categoryId: $Code.FileCategory.EQUIPMENT,
- uploadedFileInfo: uploadedFileInfo,
- handleRemoveBeforePromise: function () {
- var keys = BWA.db.extractKeysObject('FmsEquipment', dataViewModel);
- return BWA.db.FmsEquipment.update(keys, { ImageFileId: null });
- },
- handleSuccess: function (fileInfo) {
- if (uploadedFileInfo.FileId) {
- dataViewModel.ImageFileId(uploadedFileInfo.FileId);
- var keys = BWA.db.extractKeysObject('FmsEquipment', dataViewModel);
- if (keys.EquipmentId != null) {
- return BWA.db.FmsEquipment.update(keys, { ImageFileId: uploadedFileInfo.FileId })
- .done(function (res) {
- $('#gridContainer').dxDataGrid('instance').refresh();
- });
- }
- }
- },
- handleRemovedFile: function () {
- dataViewModel.ImageFileId(null);
- }
- });
- }
- }
- }, 100);
- }
- else {
- if (timer) {
- clearInterval(timer);
- timer = null;
- }
- dropZone = null;
- }
- });
- }
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsEquipmentHistory', {
- dataSourceOptions: {
- select: [
- 'SiteId',
- 'EquipmentHistoryId',
- 'EquipmentId',
- 'TotalStockCount',
- 'CurrentStockCount',
- 'RentCount',
- 'CurrentRentCount',
- 'ReturnCount',
- 'LossCount',
- 'StoredCount',
- 'EquipmentRentId',
- 'EquipmentStateTypeId',
- 'AddDate',
- 'UpdateDate',
- 'IsReturned',
- 'FmsEquipment/SupplierName',
- 'FmsEquipment/SupplierPhoneNo',
- 'FmsEquipment/FmsEquipmentCodeType/Name',
- 'FmsEquipment/FmsEquipmentCodeType/EquipmentTypeId',
- 'FmsEquipment/Name',
- 'FmsEquipment/CmUser/Name',
- 'FmsEquipmentCodeStateType/Name',
- 'FmsEquipment/Standard',
- 'FmsEquipment/Unit',
- 'FmsEquipment/ImageFileId',
- 'FmsEquipmentRentInfo/CmUser1/Name',
- 'FmsEquipmentRentInfo/RentDate',
- 'FmsEquipmentRentInfo/ReturnDueDate',
- 'FmsEquipmentRentInfo/ReturnFixDate',
- 'FmsEquipment/FmsMaterialWarehouse/'
- ],
- expand: [
- 'FmsEquipment/FmsEquipmentCodeType',
- 'FmsEquipmentCodeStateType',
- 'FmsEquipment/CmUser',
- 'FmsEquipmentRentInfo',
- 'FmsEquipmentRentInfo/CmUser1',
- 'FmsEquipment/FmsMaterialWarehouse',
- 'FmsEquipmentCodeStateType / Name',
- 'FmsEquipment/ImageFileId'
- ],
- extendOptions: {
- forceOriginalField: true
- },
- filter: [
- eq('SiteId', BWA.UserInfo.SiteId()),
- 'and',
- eq('EquipmentStateTypeId', 1), // 공사완료 항목만 가져옴
- ]
- },
- columns: [
- { dataField: 'EquipmentHistoryId', caption: $G('number'), width: '10%', alignment: 'center' },
- { dataField: 'FmsEquipment/FmsEquipmentCodeType/Name', caption: '분류', width: '8%', alignment: 'center' },
- { dataField: 'FmsEquipment/Name', caption: '공기구명', width: '20%', alignment: 'center' },
- { dataField: 'FmsEquipment/Standard', caption: '규격', width: '20%', alignment: 'center' },
- { dataField: 'FmsEquipment/Unit', caption: '단위', width: '10%', alignment: 'center' },
- { dataField: 'StoredCount', caption: '수량', width: '10%', alignment: 'center' },
- {
- dataField: 'UpdateDate', caption: '등록일', width: '17%', alignment: 'center', sortOrder: 'desc', dataType: "shortDate", format: "yyyy-MM-dd hh:mm:ss",
- customizeText: function (cellInfo) {
- return cellInfo.valueText;
- }
- },
- { dataField: 'FmsEquipment/SupplierName', caption: '공급업체', width: '15%', alignment: 'center' },
- { dataField: 'FmsEquipment/SupplierPhoneNo', caption: '연락처', width: '15%', alignment: 'center' },
- { dataField: 'FmsEquipment/FmsMaterialWarehouse/Name', caption: '창고위치', width: '10%', alignment: 'center' },
- { dataField: 'FmsEquipment/CmUser/Name', caption: '관리자', width: '10%', alignment: 'center', visible: false },
- ],
- paging: {
- pageSize: 18,
- enabled: true
- },
- pager: {},
- "export": {
- enabled: true,
- fileName: '공기구 등록 목록',
- },
- onExporting: function (e) {
- e.component.columnOption("EquipmentHistoryId", "visible", false);
- },
- onExported: function (e) {
- e.component.columnOption("EquipmentHistoryId", "visible", true);
- },
- sort: { field: "EquipmentHistoryId", desc: true },
- searchViewItems: [
- { id: 'FmsEquipment/FmsEquipmentCodeType/Name' },
- { id: 'FmsEquipment/Name' },
- { id: 'FmsEquipment/Standard' },
- { id: 'UpdateDate', type: 'dateRange', isOnlyDate: true }
- ],
- popupWidth: 700,
- handleViewShowing: function (dataModel) {
- //권한설정
- hasnotModificationPermission(!BWA.UserInfo.hasPermissionOfModification(viewInfo.viewName));
- //2016 04 27 추가 hcLee
- warehouseDataSource.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- eq('IsUse', true)
- ])
- $.when(
- codeStateTypeDataSource.load(),
- codeTypeDataSource.load(),
- warehouseDataSource.load(),
- EquipmentTypesDataSource.load(),
- EquipmentDataSource.load()
- ).done(function (codeStateTypeResult, codeTypeResult, warehouseResult, EquipmentTypesResult, EquipmentResult) {
- codeStateTypes(codeStateTypeResult[0]);
- codeTypes(codeTypeResult[0]);
- warehouses(warehouseResult[0]);
- codeStateTypesForSearch($SearchView.createArrayOfSelectBox('EquipmentStateTypeId', codeStateTypes()));
- codeTypesForSearch($SearchView.createArrayOfSelectBox('EquipmentTypeId', codeTypes()));
- warehousesForSearch($SearchView.createArrayOfSelectBox('WarehouseId', warehouses()));
- EquipmentTypes(EquipmentTypesResult[0]);
- Equipment(EquipmentResult[0]);
- deferredForSearch.resolve();
- });
- },
- handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
- dataGrid.clearSelection();
- viewModel.visibleEditButton(true);
- viewModel.visibleDeleteButton(true);
- viewModel.isNotModifyMode(true);
- var data = clickRow.data;
- var viewDataModel = viewModel.dataModel;
- viewDataModel.AddDate(data.AddDate());
- viewDataModel.UpdateDate(data.UpdateDate());
- viewDataModel.SiteId(data.SiteId());
- viewDataModel.Name = $KoSet(viewDataModel.Name, data['FmsEquipment/Name']);
- viewDataModel.EquipmentTypeId = $KoSet(viewDataModel.EquipmentTypeId, data['FmsEquipment/FmsEquipmentCodeType/EquipmentTypeId']);
- viewDataModel.WarehouseId = $KoSet(viewDataModel.WarehouseId, data['FmsEquipment/FmsMaterialWarehouse/WarehouseId']);
- viewDataModel.WarehouseName = $KoSet(viewDataModel.WarehouseName, data['FmsEquipment/FmsMaterialWarehouse/Name']);
- viewDataModel.Unit = $KoSet(viewDataModel.Unit, data['FmsEquipment/Unit']);
- viewDataModel.Standard = $KoSet(viewDataModel.Standard, data['FmsEquipment/Standard']);
- viewDataModel.RegisterUserId(BWA.UserInfo.UserId());
- viewDataModel.SupplierName = $KoSet(viewDataModel.SupplierName, data['FmsEquipment/SupplierName']);
- viewDataModel.SupplierPhoneNo = $KoSet(viewDataModel.SupplierPhoneNo, data['FmsEquipment/SupplierPhoneNo']);
- viewDataModel.TotalStockCount(data.TotalStockCount());
- viewDataModel.CurrentStockCount(data.CurrentStockCount());
- viewDataModel.StoredCount(data.StoredCount());
- viewDataModel.CurrentRentCount(data.CurrentRentCount());
- viewDataModel.EquipmentId(data.EquipmentId());//2019-11-11 변경
- viewDataModel.ImageFileId = $KoSet(viewDataModel.ImageFileId, data['FmsEquipment/ImageFileId']);
- // 여기서 ViewModel 설정하고 그리드 rowiTem
- // 갯수만 수정하면 되지 않을까? 만일 수정을 요청하면 말이다. hcLee 2016 01 14
- popupVisible(true); // Detail 모드를 수행하지 않음 // hcLee 2016 01 14 확인 공기구등록에서는 수정의 의미가 없다
- RowEquipmentName = data['FmsEquipment/Name'];
- RowEquipmentTypeId = data['FmsEquipment/FmsEquipmentCodeType/EquipmentTypeId'];
- },
- handleViewShown: function (dataViewModel, isEditModeInPopup) {
- setupDropZone(dataViewModel);
- },
- handlePopupShowing: function (isNewInPopup, dataViewModel) {
- imagefileUrl(undefined);//2019-11-11 변경
- // 저장 버튼
- if (isNewInPopup() == false) {
- } else {
- dataViewModel.Name('');
- dataViewModel.Unit('');
- dataViewModel.Standard('');
- dataViewModel.SupplierName('');
- dataViewModel.SupplierPhoneNo('');
- dataViewModel.RegisterUserId(BWA.UserInfo.UserId());
- dataViewModel.AddDate(new Date());
- dataViewModel.UpdateDate(new Date());
- dataViewModel.StoredCount(1);
- dataViewModel.ImageFileId(null);
- viewModel.isNewInPopup(true);
- viewModel.isEditModeInPopup(true);
- IsAdditionalEquipment(false);
- }
- FmsEquipmentDataSource.filter([
- ["SiteId", "=", BWA.UserInfo.SiteId()]
- ]);
- FmsEquipmentDataSource.load().done(function (result) {
- EquipmentInfo(result);
- });
- },
- handlePopupShown: function (isEditMode, isNew, dataViewModel) {
- $.when(
- equipmentExDataSource.load()
- ).done(function (equipmentExResult) {
- equipmentExs(equipmentExResult);
- });
- if (isNew) { // 신규등록인 경우
- }
- },
- handleSaveSuccess: function () {
- if (_.isNull(dropZone) === false) {//2019-11-11 변경
- dropZone.resetUploadedFileInfo();
- }
- },
- handleBeforeDelete: function () {//2019-11-11 변경
- var temp = {
- SiteId: BWA.UserInfo.SiteId(),
- FileId: viewModel.dataModel.ImageFileId()
- }
- BWA.db.CmFile.byKey(temp).done(function (data) {
- if ($('#equipmentDropZone1').length) {
- if (_.isNull(dropZone)) {
- dropZone = BWA.DropZone.create({
- id: '#equipmentDropZone1',
- categoryId: $Code.FileCategory.EQUIPMENT
- });
- dropZone.removeFile(data);
- dropZone = null;
- }
- }
- });
- },
- handleAfterLoadingModelByKey: function (data, dataViewModel, isNewInPopup) {
- if (isNewInPopup() == false) {
- getImageUrl();
- }
- }
- });
- function handlePopupButtonSave() {
- var dataViewModel = viewModel.dataModel;
- if (IsAdditionalEquipment()) {
- if (dataViewModel.EquipmentId() == null) {
- utils.toast.show('추가입고할 공기구를 선택하세요.', 'error');
- return;
- }
- }
- else {
- if (dataViewModel.EquipmentTypeId() == null) {
- utils.toast.show('입고할 공기구 분류 선택하세요.', 'error');
- return;
- }
- else if (dataViewModel.Name() == null || dataViewModel.Name() == "") {
- utils.toast.show('입고할 공기구 이름을 입력하세요.', 'error');
- return;
- }
- }
- if (dataViewModel.WarehouseId() == null) {
- utils.toast.show('입고될 창고위치를 선택하세요.', 'error');
- return;
- }
- if (dataViewModel.StoredCount() == "" || dataViewModel.StoredCount() < 0) {
- utils.toast.show('입고수량을 입력하세요. 수량은 0 이상이어야 합니다.', 'error');
- return;
- }
- var isDuplicated = false;
- if (viewModel.isNewInPopup()) {
- for (var i = 0; i < EquipmentInfo().length; i++) {
- if (dataViewModel.Name() == EquipmentInfo()[i].Name() && dataViewModel.EquipmentTypeId() == EquipmentInfo()[i].EquipmentTypeId()) {
- isDuplicated = true;
- }
- }
- if (!BWA.DataUtil.isValidInputValue(dataViewModel.Name())) {
- if (!IsAdditionalEquipment()) {
- utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error');
- return;
- }
- }
- else {
- if (isDuplicated) {
- utils.toast.show('동일 정보가 존재합니다.', 'error');
- return;
- }
- }
- }
- else {
- for (var i = 0; i < EquipmentInfo().length; i++) {
- if (dataViewModel.EquipmentTypeId() == EquipmentInfo()[i].EquipmentTypeId() && dataViewModel.Name() == EquipmentInfo()[i].Name()
- && (RowEquipmentTypeId() != EquipmentInfo()[i].EquipmentTypeId() || RowEquipmentName() != EquipmentInfo()[i].Name())) {
- isDuplicated = true;
- }
- }
- if (!BWA.DataUtil.isValidInputValue(dataViewModel.Name())) {
- if (!IsAdditionalEquipment()) {
- utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error');
- return;
- }
- }
- else {
- if (isDuplicated) {
- utils.toast.show('동일 정보가 존재합니다.', 'error');
- return;
- }
- }
- }
- var parameters = {
- SiteId: dataViewModel.SiteId(),
- IsAdditionalEquipment: IsAdditionalEquipment()
- };
- var postViewModel = new BemsWebApplication.FmsEquipmentExViewModel();
- if (!viewModel.isNewInPopup() || IsAdditionalEquipment()) {
- postViewModel.EquipmentId(dataViewModel.EquipmentId());
- }
- postViewModel.AddDate(dataViewModel.AddDate());
- postViewModel.UpdateDate(dataViewModel.UpdateDate());
- postViewModel.SiteId(dataViewModel.SiteId());
- postViewModel.Name(dataViewModel.Name());
- postViewModel.EquipmentTypeId(dataViewModel.EquipmentTypeId())
- postViewModel.WarehouseId(dataViewModel.WarehouseId());
- postViewModel.Unit(dataViewModel.Unit());
- postViewModel.Standard(dataViewModel.Standard());
- postViewModel.RegisterUserId(dataViewModel.RegisterUserId());
- postViewModel.SupplierName(dataViewModel.SupplierName());
- postViewModel.SupplierPhoneNo(dataViewModel.SupplierPhoneNo());
- postViewModel.TotalStockCount(dataViewModel.TotalStockCount());
- postViewModel.CurrentStockCount(dataViewModel.CurrentStockCount());
- postViewModel.StoredCount(dataViewModel.StoredCount());
- postViewModel.CurrentRentCount(dataViewModel.CurrentRentCount());
- postViewModel.ImageFileId(dataViewModel.ImageFileId());
- var postData = postViewModel.toJS();
- var url = viewModel.isNewInPopup() ? 'FmsEquipment/InsertFmsEquipment' : 'FmsEquipment/UpdateFmsEquipment';
- BWA.api.post(url, postData, parameters).done(//2019-11-11 변경
- function (responseKey, response) {
- viewModel.dataModel.EquipmentId(responseKey);
- if (viewModel.isNewInPopup() === false) {//추가, 변경 여부
- if (_.isNull(dropZone) === false) {
- if (viewModel.dataModel.ImageFileId() != null) { //변경 - 그림삭제
- var temp = {
- SiteId: BWA.UserInfo.SiteId(),
- FileId: viewModel.dataModel.ImageFileId()
- }
- BWA.db.CmFile.byKey(temp).done(function (data) {
- dropZone.removeFile(data);
- dropZone.processQueue();
- utils.toast.show($G('successDatabaseInsertionMsg'));
- equipEstimatePopupButtonClose();
- $('#gridContainer').dxDataGrid('instance').refresh();
- });
- }
- else {
- dropZone.processQueue();//변경 - 그림 삭제 필요없음
- utils.toast.show($G('successDatabaseInsertionMsg'));
- equipEstimatePopupButtonClose();
- $('#gridContainer').dxDataGrid('instance').refresh();
- }
- }
- else {
- utils.toast.show($G('successDatabaseInsertionMsg'));
- equipEstimatePopupButtonClose();
- $('#gridContainer').dxDataGrid('instance').refresh();
- }
- }
- else {
- if (_.isNull(dropZone) === false) { //추가
- if (viewModel.dataModel.ImageFileId() == null) {
- dropZone.processQueue();
- utils.toast.show($G('successDatabaseInsertionMsg'));
- equipEstimatePopupButtonClose();
- $('#gridContainer').dxDataGrid('instance').refresh();
- }
- }
- else {
- utils.toast.show($G('successDatabaseInsertionMsg'));
- equipEstimatePopupButtonClose();
- $('#gridContainer').dxDataGrid('instance').refresh();
- }
- }
- });
- }
- function switchChanged(e) {
- var dataViewModel = viewModel.dataModel;
- dataViewModel.Name(null);
- dataViewModel.EquipmentId(null);
- dataViewModel.EquipmentTypeId(null);
- dataViewModel.WarehouseId(null);
- dataViewModel.Unit(null);
- dataViewModel.Standard(null);
- dataViewModel.RegisterUserId(BWA.UserInfo.UserId());
- dataViewModel.SupplierName(null);
- dataViewModel.SupplierPhoneNo(null);
- dataViewModel.TotalStockCount(null);
- dataViewModel.CurrentStockCount(null);
- dataViewModel.StoredCount(1);
- dataViewModel.ImageFileId(null);
- imagefileUrl(undefined);
- if (_.isNull(dropZone) === false) {//2019-11-11 변경
- dropZone.destroy();
- $('#equipmentDropZone').empty();
- dropZone = null;
- }
- }
- function processValueChange(e) {
- var foundModel = _.find(equipmentExs(), function (x) {
- return x.EquipmentId() === e.value;
- });
- if (foundModel !== undefined) {
- var dataViewModel = viewModel.dataModel;
- dataViewModel.EquipmentId(foundModel.EquipmentId());
- dataViewModel.EquipmentTypeId(foundModel.EquipmentTypeId());
- dataViewModel.WarehouseId(foundModel.WarehouseId());
- dataViewModel.Unit(foundModel.Unit());
- dataViewModel.Standard(foundModel.Standard());
- dataViewModel.UpdateDate(new Date());
- dataViewModel.SupplierName(foundModel.SupplierName());
- dataViewModel.SupplierPhoneNo(foundModel.SupplierPhoneNo());
- dataViewModel.TotalStockCount(foundModel.TotalStockCount());
- dataViewModel.CurrentStockCount(foundModel.CurrentStockCount());
- dataViewModel.ImageFileId(foundModel.ImageFileId());
- getImageUrl();
- }
- }
- function getImageUrl() {
- if (_.isNull(viewModel.dataModel.ImageFileId()) === false) {
- imagefileUrl('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, viewModel.dataModel.SiteId(), viewModel.dataModel.ImageFileId()));
- }
- else {
- imagefileUrl("images/default.png");
- }
- }
- function getBackupDataViewModel(model) {
- var object = {};
- $.each(model, function (name, value) {
- if (ko.isObservable(value)) {
- object[name] = value();
- }
- });
- return object;
- }
- function restoreDataViewModelFromBackup(model, backupModel) {
- $.each(backupModel, function (name, value) {
- model[name](value);
- });
- }
- // 수정버튼 클릭
- function handlePopupButtonEdit() {
- viewModel.isNewInPopup(false);
- viewModel.visibleEditButton(false);
- viewModel.visibleDeleteButton(false);
- viewModel.visibleCancelButton(true);
- viewModel.isEditModeInPopup(true);
- viewModel.isNotModifyMode(false);
- backupDataViewModel = getBackupDataViewModel(viewModel.dataModel);
- }
- // 삭제버튼 클릭
- function handlePopupButtonDelete() {//2019-11-11 변경
- DevExpress.ui.dialog.confirm($G('deleteConfirmMsg'), "삭제").then(function (result) {
- if (result) {
- var postViewModel = new BemsWebApplication.FmsEquipmentExViewModel();
- var dataViewModel = viewModel.dataModel;
- postViewModel.EquipmentId(dataViewModel.EquipmentId());
- var postData = dataViewModel.toJS();
- var parameters = {
- SiteId: dataViewModel.SiteId()
- };
- if (viewModel.dataModel.ImageFileId() != null) {
- var temp = {
- SiteId: BWA.UserInfo.SiteId(),
- FileId: viewModel.dataModel.ImageFileId()
- }
- BWA.db.CmFile.byKey(temp).done(function (data) {
- if ($('#equipmentDropZone1').length) {
- if (_.isNull(dropZone)) {
- dropZone = BWA.DropZone.create({
- id: '#equipmentDropZone1',
- categoryId: $Code.FileCategory.EQUIPMENT
- });
- dropZone.removeFile(data);
- dropZone = null;
- }
- }
- });
- }
- BWA.api.post('FmsEquipment/FmsEquipmentDelete', postData, parameters).done(
- function () {
- EquipmentDataSource.load().done(function (result5) {
- Equipment(result5);
- utils.toast.show($G('successDatabaseDeleteMsg'));
- viewModel.IsAdditionalEquipment(false);
- viewModel.isNewInPopup(false);
- viewModel.visibleEditButton(false);
- viewModel.visibleDeleteButton(false);
- viewModel.visibleCancelButton(false);
- viewModel.isEditModeInPopup(false);
- viewModel.isNotModifyMode(false);
- viewModel.dataModel.ImageFileId(null);
- viewModel.popupVisible(false);
- viewModel.gridView().refresh();
- if (postData.EquipmentRentId != null) {
- BWA.db.FmsEquipmentRentInfo.remove({
- SiteId: postData.SiteId,
- EquipmentRentId: postData.EquipmentRentId
- }).done(function () {
- viewModel.gridView().refresh();
- });
- }
- else {
- viewModel.gridView().refresh();
- }
- });
- });
- }
- });
- }
- function EquipDownload() {
- 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 handlePopupButtonCancel() {
- viewModel.visibleEditButton(true);
- viewModel.visibleDeleteButton(true);
- viewModel.visibleCancelButton(false);
- viewModel.isEditModeInPopup(false);
- viewModel.isNotModifyMode(true);
- restoreDataViewModelFromBackup(viewModel.dataModel, backupDataViewModel);
- }
- // 닫기버튼
- function equipEstimatePopupButtonClose() {
- viewModel.IsAdditionalEquipment(false);
- viewModel.isNewInPopup(false);
- viewModel.visibleEditButton(false);
- viewModel.visibleDeleteButton(false);
- viewModel.visibleCancelButton(false);
- viewModel.isEditModeInPopup(false);
- viewModel.isNotModifyMode(false);
- viewModel.dataModel.ImageFileId(null);
- viewModel.popupVisible(false);
- }
- viewModel.EquipImport = EquipImport;
- viewModel.EquipDownload = EquipDownload;
- viewModel.equipPopupToolbarItems = equipPopupToolbarItems;
- viewModel.dataModel.Name = ko.observable();
- viewModel.dataModel.EquipmentTypeId = ko.observable();
- viewModel.dataModel.WarehouseId = ko.observable();
- viewModel.dataModel.Unit = ko.observable();
- viewModel.dataModel.Standard = ko.observable();
- viewModel.dataModel.SupplierName = ko.observable();
- viewModel.dataModel.SupplierPhoneNo = ko.observable();
- viewModel.dataModel.RegisterUserId = $KoSet(viewModel.dataModel.RegisterUserId, BWA.UserInfo.UserId());
- viewModel.dataModel.AddDate = $KoSet(viewModel.dataModel.AddDate, new Date());
- viewModel.dataModel.UpdateDate = $KoSet(viewModel.dataModel.UpdateDate, new Date());
- viewModel.dataModel.StoredCount(1);
- viewModel.dataModel.ImageFileId = ko.observable();
- viewModel.switchChanged = switchChanged;
- viewModel.processValueChange = processValueChange;
- viewModel.IsAdditionalEquipment = IsAdditionalEquipment;
- viewModel.equipmentExs = equipmentExs;
- viewModel.codeTypes = codeTypes;
- viewModel.codeStateTypes = codeStateTypes;
- viewModel.warehouses = warehouses;
- viewModel.imagefileUrl = imagefileUrl;
- viewModel.backupDataViewModel = backupDataViewModel;
- viewModel.visibleEditButton = visibleEditButton;
- viewModel.hasnotModificationPermission = hasnotModificationPermission;
- viewModel.visibleDeleteButton = visibleDeleteButton;
- viewModel.visibleCancelButton = visibleCancelButton;
- viewModel.isEditModeInPopup = isEditModeInPopup;
- viewModel.isNotModifyMode = isNotModifyMode;
- return viewModel;
- };
|