$(function () { 'use strict'; var eq = BWA.DataUtil.constructEqualFilter, or = BWA.DataUtil.orFilter, and = BWA.DataUtil.andFilter; var visible = ko.observable(false), newInfo = ko.observable(false), userDataSource = BWA.DataUtil.createDataSource({ dataSourceOptions: { paginate: false, select: ['SiteId', 'CompanyId', 'DepartmentId', 'UserId', 'Name', 'EmploymentType', 'Email', 'MobilePhoneNo', 'EmploymentStatus', 'CmPosition/Name', 'CmDepartment/Name', 'CmCompany/Name'], expand: ["CmPosition", "CmDepartment", "CmCompany"], extendOptions: { alterNames: { 'CmPosition/Name': 'PositionName', 'CmDepartment/Name': 'DepartmentName', 'CmCompany/Name': 'CompanyName' } } } }, 'CmUser'), userInfo = { SiteId: ko.observable(), UserId: ko.observable(), Name: ko.observable(), CompanyName: ko.observable(), PositionName: ko.observable(), DepartmentName: ko.observable(), MobilePhoneNo: ko.observable(), Email: ko.observable() }; var announceGridView = undefined; var now = new Date(); var endDate = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0); var announceDataSource = BWA.DataUtil.createDataSource({ dataSourceOptions: { paginate: false, select: [ 'SiteId', 'AnnouncementId', 'BusinessFieldId', 'CmBusinessField/Name', 'Title', 'Contents', 'RegisterUserId ', 'CmUser/Name', // 등록자 'FileId', 'CmFile/Name', 'CmFile/FileSize', 'AddDate', 'UpdateDate', 'IsUse', 'ReadCount' ], expand: ['CmBusinessField', 'CmFile', 'CmUser'], extendOptions: { forceOriginalField: true }, } }, 'CmAnnouncement'); var announcements = ko.observableArray(); var constructionDataSource = BWA.DataUtil.createDataSource({ dataSourceOptions: { paginate: false, select: [ 'SiteId', 'ConstructionId', 'Name', 'StartDate', 'EndDate', 'PartnerId', 'ConstructLocation', 'OwnerShipName', 'CommitmentMan', 'OwnerShipPhoneNo', 'WeldWorkStartTime', 'WeldWorkEndTime', 'GasWorkStartTime', 'GasWorkEndTime', 'PaintWorkStartTime', 'PaintWorkEndTime', 'Comment', 'ProgressId', 'AddDate', 'UpdateDate', 'FmsConstructionCodeProgress/Name', 'CmPartner/Name', 'CmPartner/PhoneNo', 'FmsConstructionCodeType/Name', 'ConstructionDetail', 'InOutStockName', 'FileId1', 'FileId2', 'FileId3', 'CmFile/Name', 'CmFile1/Name', 'CmFile2/Name' ], expand: [ 'FmsConstructionCodeProgress', 'CmPartner', 'FmsConstructionEstimation', 'FmsConstructionCodeType', 'CmFile', 'CmFile1', 'CmFile2' ], extendOptions: { forceOriginalField: true }, } }, 'FmsConstruction'); var constructions = ko.observableArray(); var workDataSource = BWA.DataUtil.createDataSource({ dataSourceOptions: { paginate: false, select: [ 'SiteId', 'WorkRequestId', //'StartDate', 'EndDate', 'StartWorkDate', //'ConfirmedDate', 'ConfirmedUserId', 'IsConfirmed', 'FmsWorkRequest/Content', 'FmsWorkRequest/WorkTypeId', 'Title', 'CmUser/Name', // 작업지시자 //'FmsWorkResult/WorkerUserId/Name', 'OrderDate', 'FmsWorkRequest/WorkProgressId', //'CmUser1/Name', // 승인자 'FmsWorkRequest/FmsWorkCodeType/Name', 'CmBusinessField/Name', 'FmsWorkRequest/FmsWorkCodeProgress/Name', 'FmsWorkRequest/WorkTypeId', 'FmsWorkResult/CmUser/Name', // 작업자 'FmsWorkResult/CmUser1/Name', // 승인자 test ok hcLee 2016 03 22 'FmsWorkResult/EndDate', // 작업자 'BusinessFieldId', 'Content' ], expand: [ 'FmsWorkRequest', 'FmsWorkResult', 'FmsWorkResult/CmUser', 'FmsWorkResult/CmUser1', 'FmsWorkRequest/FmsWorkCodeType', 'FmsWorkRequest/FmsWorkCodeProgress', 'CmBusinessField', 'CmUser'], extendOptions: { forceOriginalField: true }, } }, 'FmsWorkOrder'); //}, 'FmsWorkRequest'); var works = ko.observableArray(); var announcePopupVisible = ko.observable(false); function announceHandlePopupButtonClose() { announcePopupVisible(false); announceGridView.refresh(); } var announceDataModel = new BemsWebApplication.CmAnnouncementViewModel(); announceDataModel.BusinessFieldName = ko.observable(); announceDataModel.FileUrl = ko.observable(); announceDataModel.FileName = ko.observable(); var constructionPopupVisible = ko.observable(false); function constructionHandlePopupButtonClose() { constructionPopupVisible(false); } var constructionDataModel = ko.observable(); constructionDataModel = new BemsWebApplication.FmsConstructionViewModel(); var workPopupVisible = ko.observable(false); function workHandlePopupButtonClose() { workPopupVisible(false); } var workDataModel = ko.observable(); workDataModel = new BemsWebApplication.FmsWorkOrderViewModel(); BWA.UserPanel = { newInfo: newInfo, UserInfo: userInfo, announceDataModel: announceDataModel, announcePopupOptions: { width: '680px', height: 'auto', visible: announcePopupVisible, closeOnOutsideClick: true, showingAction: function (e) { }, shownAction: function (e) { var keys = BWA.db.extractKeysObject('CmAnnouncement', BWA.UserPanel.announceDataModel); BWA.UserPanel.announceDataModel.ReadCount(BWA.UserPanel.announceDataModel.ReadCount() + 1); BWA.db.CmAnnouncement.update(keys, BWA.UserPanel.announceDataModel.toJS()).done(function (e) { announceGridView.refresh(); }); } }, announcePopupToolbarItems: [ { location: 'before', text: '상세보기' }, { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: announceHandlePopupButtonClose } } ], constructionDataModel: constructionDataModel, constructionPopupOptions: { width: '680px', height: 'auto', visible: constructionPopupVisible, closeOnOutsideClick: true, showingAction: function (e) { }, shownAction: function (e) { } }, constructionPopupToolbarItems: [ { location: 'before', text: '상세보기' }, { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: constructionHandlePopupButtonClose } } ], workDataModel: workDataModel, workPopupOptions: { width: '680px', height: 'auto', visible: workPopupVisible, closeOnOutsideClick: true, showingAction: function (e) { }, shownAction: function (e) { } }, workPopupToolbarItems: [ { location: 'before', text: '상세보기' }, { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: workHandlePopupButtonClose } } ], workDataGridOptions: utils.datagrid.defaultOptions({ dataSource: works, datagridId: 'workDataGridInUserPanel', handleDataGridRowClick: function (id, dataGrid, clickRow) { // function () { dataGrid.clearSelection(); var data = clickRow.data; //BWA.UserPanel.workDataModel = data; BWA.UserPanel.workDataModel.Title(data.Title()); BWA.UserPanel.workDataModel.WorkProgressName = $KoSet(BWA.UserPanel.workDataModel.WorkProgressName, data['FmsWorkRequest/FmsWorkCodeProgress/Name']()); BWA.UserPanel.workDataModel.WorkerUserName = $KoSet(BWA.UserPanel.workDataModel.WorkerUserName, data['FmsWorkResult/CmUser/Name']); BWA.UserPanel.workDataModel.StartWorkDate(data.StartWorkDate()); BWA.UserPanel.workDataModel.OrderDate(data.OrderDate()); BWA.UserPanel.workDataModel.Content(data.Content()); //BWA.UserPanel.workDataModel.Title = $KoSet(BWA.UserPanel.workDataModel.Title, data['Title']()); /* BWA.UserPanel.workDataModel.BusinessFieldName = $KoSet(BWA.UserPanel.workDataModel.BusinessFieldName, data['CmBusinessField/Name']()); BWA.UserPanel.workDataModel.WorkTypeName = $KoSet(BWA.UserPanel.workDataModel.WorkTypeName, data['FmsWorkRequest/FmsWorkCodeType/Name']()); BWA.UserPanel.workDataModel.WorkerUserName = $KoSet(BWA.UserPanel.workDataModel.WorkerUserName, data['FmsWorkResult/WorkerUserId/Name']); BWA.UserPanel.workDataModel.ConfirmedUserName = $KoSet(BWA.UserPanel.workDataModel.ConfirmedUserName, ''); BWA.UserPanel.workDataModel.WorkProgressName = $KoSet(BWA.UserPanel.workDataModel.WorkProgressName, ''); //BWA.UserPanel.workDataModel.OrderDate = $KoSet(BWA.UserPanel.workDataModel.OrderDate, ''); BWA.UserPanel.workDataModel.OrderDate(data.OrderDate()); BWA.UserPanel.workDataModel.Content(data.Content()); */ //if (data['CmUser1/Name'] !== undefined) { // BWA.UserPanel.workDataModel.ConfirmedUserName(data['CmUser1/Name']()); //} //BWA.UserPanel.workDataModel.EndDate = $KoSet(BWA.UserPanel.workDataModel.EndDate, data['FmsWorkResult/EndDate']); //BWA.UserPanel.workDataModel.OrderDate(data['FmsWorkOrder/OrderDate']()); //if (data['FmsWorkOrder/Content'] !== undefined) { // BWA.UserPanel.workDataModel.OrderContent(data['FmsWorkOrder/Content']()); //} workPopupVisible(true); }, useNumberColumn: true, columns: [ { dataField: 'WorkRequestId', caption: $G('number'), width: '12%', alignment: 'center', sortOrder: 'desc' }, { dataField: 'FmsWorkRequest/FmsWorkCodeType/Name', caption: $G('workTypeName'), width: '15%', alignment: 'center' }, { dataField: 'FmsWorkRequest/FmsWorkCodeProgress/Name', caption: $G('workProgressName'), width: '15%', alignment: 'center' }, //{ dataField: 'FmsWorkResult/CmUser/Name', caption: $G('workProgressName'), width: '15%', alignment: 'center' }, test ok hcLee 2016 03 22 //{ dataField: 'FmsWorkResult/CmUser1/Name', caption: $G('workProgressName'), width: '15%', alignment: 'center' }, test ok hcLee 2016 03 22 { dataField: 'Title', caption: '작업명', width: '33%', alignment: 'center' }, ], height: 220, paging: { pageSize: 4 }, pager: { visible: true } }), constructionDataGridOptions: utils.datagrid.defaultOptions({ dataSource: constructions, datagridId: 'constructionDataGridInUserPanel', handleDataGridRowClick: function (id, dataGrid, clickRow) { // function () { dataGrid.clearSelection(); var data = clickRow.data; //BWA.UserPanel.constructionDataModel = data; BWA.UserPanel.constructionDataModel.Name(data.Name()); BWA.UserPanel.constructionDataModel.ConstructLocation(data.ConstructLocation()); //BWA.UserPanel.constructionDataModel.ConstructionTypeName(data.ConstructionTypeName()); //BWA.UserPanel.constructionDataModel.ProgressName(data.ProgressName()); BWA.UserPanel.constructionDataModel.StartDate(data.StartDate()); BWA.UserPanel.constructionDataModel.EndDate(data.EndDate()); BWA.UserPanel.constructionDataModel.WeldWorkStartTime(data.WeldWorkStartTime()); BWA.UserPanel.constructionDataModel.WeldWorkEndTime(data.WeldWorkEndTime()); BWA.UserPanel.constructionDataModel.GasWorkStartTime(data.GasWorkStartTime()); BWA.UserPanel.constructionDataModel.GasWorkEndTime(data.GasWorkEndTime()); BWA.UserPanel.constructionDataModel.PaintWorkStartTime(data.PaintWorkStartTime()); BWA.UserPanel.constructionDataModel.PaintWorkStartTime(data.PaintWorkStartTime()); BWA.UserPanel.constructionDataModel.ConstructionDetail(data.ConstructionDetail()); BWA.UserPanel.constructionDataModel.InOutStockName(data.InOutStockName()); BWA.UserPanel.constructionDataModel.PartnerName = $KoSet(BWA.UserPanel.constructionDataModel.PartnerName, data['CmPartner/Name']()); BWA.UserPanel.constructionDataModel.PartnerPhoneNo = $KoSet(BWA.UserPanel.constructionDataModel.PartnerPhoneNo, data['CmPartner/PhoneNo']()); BWA.UserPanel.constructionDataModel.ConstructionTypeName = $KoSet(BWA.UserPanel.constructionDataModel.ConstructionTypeName, data['FmsConstructionCodeType/Name']()); BWA.UserPanel.constructionDataModel.ProgressName = $KoSet(BWA.UserPanel.constructionDataModel.ProgressName, data['FmsConstructionCodeProgress/Name']()); BWA.UserPanel.constructionDataModel.FileUrl1 = $KoSet(BWA.UserPanel.constructionDataModel.FileUrl1, ''); BWA.UserPanel.constructionDataModel.FileUrl2 = $KoSet(BWA.UserPanel.constructionDataModel.FileUrl2, ''); BWA.UserPanel.constructionDataModel.AttachmentFileName1 = $KoSet(BWA.UserPanel.constructionDataModel.AttachmentFileName1, ''); BWA.UserPanel.constructionDataModel.AttachmentFileName2 = $KoSet(BWA.UserPanel.constructionDataModel.AttachmentFileName2, ''); if (data['FileId1']() != null) { BWA.UserPanel.constructionDataModel.AttachmentFileName1(data['CmFile/Name']()); BWA.UserPanel.constructionDataModel.FileUrl1('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, data.SiteId(), data.FileId1())); } else { BWA.UserPanel.constructionDataModel.AttachmentFileName1(''); BWA.UserPanel.constructionDataModel.FileUrl1(''); } if (data['FileId2']() != null) { BWA.UserPanel.constructionDataModel.AttachmentFileName2(data['CmFile1/Name']()); BWA.UserPanel.constructionDataModel.FileUrl2('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, data.SiteId(), data.FileId2())); } else { BWA.UserPanel.constructionDataModel.AttachmentFileName2(''); BWA.UserPanel.constructionDataModel.FileUrl2(''); } constructionPopupVisible(true); }, useNumberColumn: true, columns: [ { dataField: 'ConstructionId', caption: $G('number'), width: '15%', alignment: 'center', sortOrder: 'desc' }, { dataField: 'FmsConstructionCodeType/Name', caption: '공사구분', width: '20%', alignment: 'center' }, { dataField: 'Name', caption: '공사명', width: '80%', alignment: 'center' }, ], height: 220, paging: { pageSize: 4 }, pager: { visible: true } }), announceDataGridOptions: utils.datagrid.defaultOptions({ //dxDataSource: announcements, dataSource: announcements, datagridId: 'announcementDataGridInUserPanel', handleDataGridRowClick: function (id, dataGrid, clickRow) { dataGrid.clearSelection(); var data = clickRow.data; BWA.UserPanel.announceDataModel.AnnouncementId(data.AnnouncementId()); BWA.UserPanel.announceDataModel.SiteId(data.SiteId()); BWA.UserPanel.announceDataModel.Title(data.Title()); BWA.UserPanel.announceDataModel.Contents(data.Contents()); BWA.UserPanel.announceDataModel.AddDate(data.AddDate()); BWA.UserPanel.announceDataModel.BusinessFieldName(data['CmBusinessField/Name']()); BWA.UserPanel.announceDataModel.ReadCount(data.ReadCount()); if (data.FileId() == null) { BWA.UserPanel.announceDataModel.FileName(''); BWA.UserPanel.announceDataModel.FileUrl(''); } else { BWA.UserPanel.announceDataModel.FileName(data['CmFile/Name']()); BWA.UserPanel.announceDataModel.FileUrl('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, data.SiteId(), data.FileId())); } announcePopupVisible(true); }, columns: [ { dataField: 'AnnouncementId', caption: $G('number'), width: '15%', alignment: 'center', sortOrder: 'desc' }, { dataField: 'Title', caption: '제목', width: '40%', alignment: 'center' }, ], useNumberColumn: true, height: 220, paging: { pageSize: 4 }, pager: { visible: true }, contentReadyAction: function (e) { announceGridView = e.component; }, }), options: { width: '1400', height: '670', visible: visible, position: { my: 'top', at: 'top', of: window }, animation: { show: { type: "slide", easing: 'ease-in-out', duration: 400, from: { top: -649 }, to: { top: 0 } }, hide: { type: "slide", easing: 'ease-in-out', duration: 400, from: { top: 1 }, to: { top: -649 } } }, showingAction: function () { userDataSource.filter([ eq('SiteId', BWA.UserInfo.SiteId()), and, eq('UserId', BWA.UserInfo.UserId()) ]); userDataSource.load().done(function (users) { if (_.isEmpty(users)) { return; // logout 처리 필요 } BWA.DataUtil.copyViewModel(users[0], userInfo); }); announceDataSource.filter([ eq('SiteId', BWA.UserInfo.SiteId()), // hcLee 2015 12 24 and, ['UpdateDate', '>', endDate], and, // 2016 03 14 [eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('BusinessFieldId', 1)] ]); announceDataSource.load().done(function (announceResult) { announcements(announceResult); }); constructionDataSource.filter([ eq('SiteId', BWA.UserInfo.SiteId()), and, ['ProgressId', '<', 3] ]); constructionDataSource.load().done(function (constructResult) { constructions(constructResult); }); workDataSource.filter([ eq('SiteId', BWA.UserInfo.SiteId()), and, [eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('BusinessFieldId', 1)], // hcLee 2016 04 04 추가 and, // 2016 03 14 [['FmsWorkRequest/WorkProgressId', '=', $Code.WorkProgress.WORK_STANDBY], // 3 대기만 보여준다 2016 03 09 or, [eq('FmsWorkRequest/WorkProgressId', $Code.WorkProgress.WORKING), 'and', eq('FmsWorkResult/WorkerUserId', BWA.UserInfo.UserId())]] ]); workDataSource.load().done(function (workResult) { works(workResult); }); }, contentReadyAction: function (e) { }, shading: false, closeOnOutsideClick: true }, handleToggleOpenClose: function () { visible(!visible()); }, show: function () { visible(true); }, hide: function () { visible(false); } }; });