123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469 |
- BemsWebApplication.MonthlyReport = function (params, viewInfo) {
- 'use strict';
- var imagefileUrl1 = ko.observable(),
- uploadedFileInfo = {},
- dropZone1 = null
- ;
- var eq = BWA.DataUtil.constructEqualFilter,
- and = BWA.DataUtil.andFilter
- ;
- var currentViewModel = new BemsWebApplication.FmsReportViewModel();
- var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true);
- var businessFieldsForSearch = ko.observableArray();
- var businessFields = ko.observableArray();
- var deferredForSearch = new $.Deferred();
- var level = ko.observable(0); // 0 작성, 1:팀장, 2:소장
- var isVisibleConfirmButton = ko.observable(false);
- var isVisibleConfirmCancelButton = ko.observable(false);
- var dataSourceOptions = {
- select: [
- 'SiteId',
- 'RId',
- 'BusinessFieldId',
- 'CmBusinessField/Name',
- 'Title',
- 'Contents',
- 'RegisterUserId ',
- 'CmUser/Name', // 등록자
- 'FileId',
- 'CmFile/Name',
- 'CmFile/FileSize',
- 'MakeDate',
- 'ConfirmUserId1',
- 'CmUser1/Name', // 팀장
- 'ConfirmUserId2',
- 'CmUser2/Name', // 소장
- ],
- expand: [
- 'CmBusinessField',
- 'CmFile',
- 'CmUser',
- 'CmUser1',
- 'CmUser2'
- ],
- extendOptions: {
- forceOriginalField: true
- },
- filter: [
- ['SiteId', '=', BWA.UserInfo.SiteId()],
- ]
- };
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsReport', {
- dataSourceOptions: dataSourceOptions,
- columns: [
- { dataField: 'RId', caption: $G('number'), width: '10%', alignment: 'center', allowFiltering: false, sortOrder: 'desc' },
- { dataField: 'CmBusinessField/Name', caption: '업무분야', width: '10%', alignment: 'center' },
- {
- dataField: 'MakeDate', caption: '등록일', width: '15%', alignment: 'center',
- customizeText: function (cellInfo) {
- return $G.date(cellInfo.value);
- }
- },
- { dataField: 'Title', caption: '제목', width: '40%', alignment: 'center' },
- { dataField: 'CmFile/Name', caption: '파일명', width: '40%', alignment: 'center' },
- { dataField: 'CmUser/Name', caption: '등록자', width: '15%', alignment: 'center' },
- { dataField: 'CmUser1/Name', caption: '팀장확인', width: '15%', alignment: 'center' },
- { dataField: 'CmUser2/Name', caption: '소장확인', width: '15%', alignment: 'center' },
- //utils.datagrid.columnIsUse('20%') hcLee 2015 12 23
- ],
- /*
- toolbarItems: [
- { location: 'before', text: '공지사항 입력' },
- { location: 'after', widget: 'button', options: { text: $G('edit'), icon: 'edit', visible: _.isBoolean(isModifiable) ? isModifiable : visibleEditButton, disabled: hasnotModificationPermission, clickAction: handlePopupButtonEdit } },
- { location: 'after', widget: 'button', options: { text: $G('delete'), type: 'danger', icon: 'remove', visible: _.isBoolean(isModifiable) ? isModifiable : 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: hasnotModificationPermission, clickAction: handlePopupButtonSave } },
- { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handlePopupButtonClose } }
- ], */
- //popupWidth: 580,
- searchViewItems: [
- { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: businessFieldsForSearch },
- { id: 'Title' },
- { id: 'Contents' },
- { id: 'CmFile/Name' },
- { id: 'MakeDate', type: 'dateRange', isOnlyDate: true },
- ],
- mandatoryFields: [
- { dataField: 'Title', name: '제목' },
- { dataField: 'Contents', name: '내용' },
- //{ dataField: 'CmFile/Name', name: '파일명' }
- ],
- getAddedToolbarItemsInPopup: function (e) {
- var isEditModeInPopup = e.isEditModeInPopup,
- hasnotModificationPermission = e.hasnotModificationPermission
- ;
- isEditModeInPopup.subscribe(function (isEditMode) {
- //tabIndex(0); // 왼쪽 수정은 무조건 매뉴얼 hcLee 2016 03 24추가
- //isVisibleHistoryInsertButton(tabIndex() === 1 && isEditMode);
- if (isEditMode) {
- isVisibleConfirmCancelButton(false);
- isVisibleConfirmButton(false);
- }
- else {
- ButtonsView(currentViewModel);
- }
- });
- return [
- {
- location: 'after',
- widget: 'button',
- options: {
- text: '결재',
- icon: 'plus',
- visible: isVisibleConfirmButton,
- disabled: hasnotModificationPermission,
- clickAction: function () {
- //drawingHistoryPopup.handleInsertDrawingHistory();
- if (level == 1) currentViewModel.ConfirmUserId1(BWA.UserInfo.UserId());
- if (level == 2) {
- if (_.isNull(currentViewModel.ConfirmUserId1())) {
- utils.toast.show('팀장확인이 필요합니다.');
- viewModel.popupVisible(false);
- viewModel.handlePopupButtonClose();
- return;
- }
- currentViewModel.ConfirmUserId2(BWA.UserInfo.UserId());
- }
- var keys = BWA.db.extractKeysObject('FmsReport', currentViewModel);
- BWA.db.FmsReport.update(keys, currentViewModel.toJS()).done(function (res) {
- utils.toast.show('일지가 결재 되었습니다.');
- //dropZone1.resetUploadedFileInfo();
- //reloadDrawingHistory(drawingId());
- //dropZone.options.startLoadFileCount = 0;
- //historyGridView.refresh();
- viewModel.popupVisible(false);
- viewModel.handlePopupButtonClose();
- });
- }
- }
- },
- {
- location: 'after',
- widget: 'button',
- options: {
- text: '결재취소',
- icon: 'minus',
- visible: isVisibleConfirmCancelButton,
- disabled: hasnotModificationPermission,
- clickAction: function () {
- if (level == 1) currentViewModel.ConfirmUserId1(null);
- if (level == 2) currentViewModel.ConfirmUserId2(null);
- var keys = BWA.db.extractKeysObject('FmsReport', currentViewModel);
- BWA.db.FmsReport.update(keys, currentViewModel.toJS()).done(function (res) {
- utils.toast.show('일지결재가 취소 되었습니다.');
- //dropZone1.resetUploadedFileInfo();
- //reloadDrawingHistory(drawingId());
- //dropZone.options.startLoadFileCount = 0;
- //historyGridView.refresh();
- viewModel.popupVisible(false);
- viewModel.handlePopupButtonClose();
- });
- }
- }
- },
- ]
- },
- handleAfterLoadingModelByKey: function (data, dataViewModel, isNewInPopup) {
- if (isNewInPopup() == false) {
- if (_.isNull(dataViewModel.FileId()) === false) {
- //alert('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, dataViewModel.SiteId(), dataViewModel.FileId()));
- imagefileUrl1('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, dataViewModel.SiteId(), dataViewModel.FileId()));
- }
- else {
- imagefileUrl1(undefined);
- }
- var keys = BWA.db.extractKeysObject('FmsReport', dataViewModel);
- BWA.db.FmsReport.update(keys, dataViewModel.toJS());
- }
- },
- handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
- dataGrid.clearSelection();
- var data = clickRow.data;
- var dataModel = viewModel.dataModel;
- currentViewModel = dataModel;
- if (data['FileId']() != null) {
- dataModel.AttachmentFileName(data['CmFile/Name']());
- }
- else {
- dataModel.AttachmentFileName('');
- }
- //alert(dataModel.AttachmentFileName());
- popupVisible(true);
- },
- handlePopupButtonClose: function (dataViewModel, backupDataViewModel) {
- isVisibleConfirmButton(false);
- isVisibleConfirmCancelButton(false);
- //isEditModeInPopup(false);
- viewModel.visibleEditButton(false);
- viewModel.visibleDeleteButton(false);
- },
- handlePopupShown: function (isEditModeInPopup, isNewInPopup, dataViewModel) {
- currentViewModel = dataViewModel;
- if (isNewInPopup) {
- isVisibleConfirmButton(false);
- isVisibleConfirmCancelButton(false);
- }
- else {
- ButtonsView(dataViewModel);
- /*
- if (_.isNull(dataViewModel.ConfirmUserId1()) == false || _.isNull(dataViewModel.ConfirmUserId2()) == false) {
- viewModel.visibleEditButton(false);
- viewModel.visibleDeleteButton(false);
- }
- else {
- viewModel.visibleEditButton(true);
- viewModel.visibleDeleteButton(true);
- }
- if (level > 0) {
- if (level == 1) {
- if (dataViewModel.ConfirmUserId1() == BWA.UserInfo.UserId())
- isVisibleConfirmCancelButton(true);
- else
- isVisibleConfirmButton(true);
- }
- if (level == 2) {
- if (dataViewModel.ConfirmUserId2() == BWA.UserInfo.UserId())
- isVisibleConfirmCancelButton(true);
- else
- isVisibleConfirmButton(true);
- }
- }
- else {
- isVisibleConfirmButton(false);
- isVisibleConfirmCancelButton(false);
- }*/
- }
- },
- handleViewShowing: function (dataModel) {
- if (BWA.UserInfo.UserGroupName().indexOf('소장') > -1)
- level = 2;
- else if (BWA.UserInfo.UserGroupName().indexOf('팀장') > -1) level = 1;
- else level = 0;
- var useBusinessFiltering = BWA.UserInfo.isDependBusinessField(viewInfo.viewName)
- if (useBusinessFiltering) {
- dataSourceOptions.filter.push('and');
- dataSourceOptions.filter.push([eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('BusinessFieldId', 1)]);
- businessFieldDataSource.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- [eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('BusinessFieldId', 1)]
- ]);
- }
- businessFieldDataSource.load().done(function (dbBusinessFields) {
- businessFields(dbBusinessFields);
- businessFieldsForSearch($SearchView.createArrayOfSelectBox('BusinessFieldId', businessFields()));
- });
- },
- handlePopupShowing: function (isNewInPopup, dataViewModel) {
- // 신규등록인 경우
- //imagefileUrl1(undefined);
- //dropZone1.removeAllFiles();
- //if (_.isNull(dropZone1) === false) dropZone1.resetUploadedFileInfo();
- if (isNewInPopup()) {
- // hcLee 2016 01 04 추가
- imagefileUrl1(undefined);
- dataViewModel.MakeDate(new Date());
- dataViewModel.RegisterUserId(BWA.UserInfo.UserId());
- }
- viewModel.visibleEditButton(false); // 2017 07 25 hcLee
- viewModel.visibleDeleteButton(false); // 2017 07 25 hcLee
- isVisibleConfirmButton(false); // 2017 07 25 hcLee
- isVisibleConfirmCancelButton(false); // 2017 07 25 hcLee
- },
- handleViewShown: function (dataViewModel, isEditModeInPopup) {
- setupDropZone(isEditModeInPopup, dataViewModel);
- },
- handleSaveSuccess: function () {
- if (_.isNull(dropZone1) === false) {
- dropZone1.resetUploadedFileInfo();
- }
- },
- });
- function ButtonsView(dataViewModel) {
- if (_.isNull(dataViewModel.ConfirmUserId1()) == false || _.isNull(dataViewModel.ConfirmUserId2()) == false) {
- viewModel.visibleEditButton(false);
- viewModel.visibleDeleteButton(false);
- }
- else {
- viewModel.visibleEditButton(true);
- viewModel.visibleDeleteButton(true);
- }
- if (level > 0) {
- if (level == 1) {
- if (dataViewModel.ConfirmUserId1() == BWA.UserInfo.UserId())
- isVisibleConfirmCancelButton(true);
- else if (_.isNull(dataViewModel.ConfirmUserId1()) == true) // 2017 07 25 hcLee 수정
- isVisibleConfirmButton(true);
- if (_.isNull(dataViewModel.ConfirmUserId2()) == false) isVisibleConfirmCancelButton(false);// 2016 08 11 결재조건 팀장선결 필수로 수정
- }
- if (level == 2) {
- if (dataViewModel.ConfirmUserId2() == BWA.UserInfo.UserId())
- isVisibleConfirmCancelButton(true);
- else
- isVisibleConfirmButton(!_.isNull(dataViewModel.ConfirmUserId1())); // 2016 08 11 결재조건 팀장선결 필수로 수정
- }
- }
- else {
- isVisibleConfirmButton(false);
- isVisibleConfirmCancelButton(false);
- }
- }
- function setupDropZone(isEditModeInPopup, dataViewModel) {
- var timer = null;
- isEditModeInPopup.subscribe(function (value) {
- if (value) {
- if (timer) { clearInterval(timer); }
- timer = setInterval(function () {
- if ($('#reportDropZone1').length) {
- if (_.isNull(dropZone1)) {
- dropZone1 = BWA.DropZone.create({
- id: '#reportDropZone1',
- previewTemplate: "...",
- categoryId: $Code.FileCategory.REPORT,
- uploadedFileInfo: uploadedFileInfo,
- /*
- handleRemoveBeforePromise: function () {
- var keys = BWA.db.extractKeysObject('CmAnnouncement', dataViewModel);
- return BWA.db.CmAnnouncement.update(keys, { FileId: null });
- },*/
- handleSuccess: function (fileInfo) {
- dataViewModel.FileId(fileInfo.FileId);
- dropZone1.options.startLoadFileCount = 1;
- },
- handleRemovedFile: function () {
- dataViewModel.FileId(null);
- dropZone1.options.startLoadFileCount = 0;
- },
- });
- uploadedFileInfo.SiteId = dataViewModel.SiteId();
- uploadedFileInfo.FileId = dataViewModel.FileId();
- if (uploadedFileInfo.FileId) {
- BWA.db.CmFile.byKey(uploadedFileInfo).done(function (data) {
- // dropZone1.removeAllFiles();
- dropZone1.emit('addedfile', {
- name: data.Name,
- size: data.FileSize
- });
- dropZone1.options.startLoadFileCount = 1;
- dataViewModel.AttachmentFileName(data.Name);
- //dropZone1.setTempFileFlag(true);
- //dropZone.options.maxFiles = 0; // 이게 있으면 삭제후 다시 업로드가 안 된다.
- });
- }
- }
- }
- }, 100);
- }
- else {
- if (timer) { clearInterval(timer); timer = null; }
- dropZone1 = null;
- }
- });
- }
- /*
- var toolbarItems = [
- { location: 'before', text: '공지사항 입력' },
- { location: 'after', widget: 'button', options: { text: $G('edit'), icon: 'edit', visible: _.isBoolean(isModifiable) ? isModifiable : visibleEditButton, disabled: hasnotModificationPermission, clickAction: handlePopupButtonEdit } },
- { location: 'after', widget: 'button', options: { text: $G('delete'), type: 'danger', icon: 'remove', visible: _.isBoolean(isModifiable) ? isModifiable : 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: hasnotModificationPermission, clickAction: handlePopupButtonSave } },
- { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handlePopupButtonClose } }
- ]; */
- viewModel.popupVisible.subscribe(function (value) {
- if (!value) {
- viewModel.gridView().refresh();
- }
- });
- viewModel.dataModel.AttachmentFileName = ko.observable();
- viewModel.imagefileUrl1 = imagefileUrl1;
- viewModel.businessFields = businessFields;
- //viewModel.processValueChange = processValueChange;
- //viewModel.partnerTypes = partnerTypes;
- //viewModel.contractClasses = contractClasses;
- //viewModel.contractMethods = contractMethods;
- //viewModel.contractTypes = contractTypes;
- //viewModel.paymentTypes = paymentTypes;
- //viewModel.allPartner = allPartner;
- //viewModel.filteredPartner = filteredPartner;
- //viewModel.toolbarItems = toolbarItems;
- return viewModel;
- };
|