123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407 |
- $(function () {
- 'use strict';
- BemsWebApplication.Popup.AnyCheckSchedule = {
- create: function (viewInfo, viewModel, executionPlanOptions) {
- var isInnerCheckWorkType = ko.observable(false);
- var facilities = ko.observableArray(),
- facilitiesInView = ko.observableArray(),
- businessFields = ko.observableArray(),
- isVisibleEditWorkOrderButton = ko.observable(),
- isVisibleButtons = ko.observable();
- var eq = BWA.DataUtil.constructEqualFilter;
- var and = BWA.DataUtil.andFilter;
- var workResultCheckItems = ko.observableArray();
- var workResultCheckItemDataSource = BemsWebApplication.db.createDataSource('FmsWorkResultCheckItem', true, true, false, true);
- if (executionPlanOptions == null) {
- isVisibleEditWorkOrderButton = ko.observable();
- isVisibleButtons = ko.observable();
- }
- else {
- isVisibleEditWorkOrderButton = executionPlanOptions ? executionPlanOptions.isVisibleEditWorkOrderButton : undefined;
- isVisibleButtons = executionPlanOptions ? executionPlanOptions.isVisibleButtons : undefined;
- }
- var facilitySearchPopup = null,
- facilityFactory = BWA.Factory.Facility,
- facilityGridView = ko.observable(undefined),
- facilityDataGridOptions,
- modifiableFacilityDataGridOptions = undefined,
- isWorkOrder = ko.observable(false),
- isReject = ko.observable(false);
- var workTypeId = null; //= $Code.WorkType.CIVIL_COMPLAINT;
- var facilityDataSource = facilityFactory.getBasicDataSourceRef({
- dbModeIId: 'FmsWorkRequestToFacility',
- primaryKeyDataField: 'WorkRequestId'
- });
- function isValidateWithFunction(errorMessage) {
- if (_.isEmpty(facilities())) {
- errorMessage.message = '점검 계획을 위한 시설이 없습니다.';
- return false;
- }
- return true;
- }
- function handleBeforePopupShowingPromise(isNewInPopup, dataViewModel, clickRowData) {
- var workProgressId;
- if (isNewInPopup()) {
- workProgressId = $Code.WorkProgress.WORK_PLAN;
- }
- else {
- workProgressId = clickRowData.WorkProgressId();
- }
- isVisibleEditWorkOrderButton(workProgressId === $Code.WorkProgress.WORK_STANDBY);
- if (isNewInPopup()) {
- isVisibleButtons(false);
- }
- else {
- isVisibleButtons(workProgressId === $Code.WorkProgress.WORK_PLAN);
- }
- isWorkOrder(workProgressId >= $Code.WorkProgress.WORK_STANDBY);
- isReject(workProgressId === $Code.WorkProgress.WORK_POSTPONE);
- }
- function handlePopupShowing(isNewInPopup, dataModel, selectedData) {
- viewModel.visibleEditButton(false);
- viewModel.visibleDeleteButton(false);
- $("#gridContainer2").dxDataGrid({
- paging: {
- pageSize: 8,
- enabled: true
- }
- });
- $("#gridContainer3").dxDataGrid({
- paging: {
- pageSize: 8,
- enabled: true
- }
- });
- var userInfo = BWA.UserInfo;
- if (isNewInPopup()) {
- workTypeId = $Code.WorkType.INNER_CHECK;
- //if (isInnerCheckWorkType()) {
- // workTypeId = $Code.WorkType.INNER_CHECK;
- //}
- //else {
- // //workTypeId = $Code.WorkType.CIVIL_COMPLAINT;
- // workTypeId = $Code.WorkType.any
- //}
- dataModel.BusinessFieldName(userInfo.BusinessFieldName());
- dataModel.BusinessFieldId(userInfo.BusinessFieldId());
- dataModel.RequestUserName(userInfo.Name());
- dataModel.RequestUserId(userInfo.UserId());
- dataModel.WorkTypeId(workTypeId);
- BWA.db.FmsWorkCodeType.byKey(BWA.DataUtil.pickKeys(dataModel, 'FmsWorkCodeType')).done(function (workType) {
- dataModel.WorkTypeName(workType.Name);
- });
- var now = moment();
- dataModel.RequestDate(now.toDate());
- dataModel.StartWorkDate(BWA.DataUtil.getDateFromDateTime(now));
- dataModel.WorkProgressId($Code.WorkProgress.WORK_PLAN);
- BWA.db.FmsWorkCodeProgress.byKey(BWA.DataUtil.pickKeys(dataModel, 'FmsWorkCodeProgress')).done(function (workProgress) {
- dataModel.WorkProgressName(workProgress.Name);
- });
- }
- }
- function handlePopupShown(isEditMode, isNew, dataViewModel) {
- }
- // 점검계획 정보가 저장된 후에 호출 된다.
- // 등록이면 responseKey가 있고, 수정이면 없다.
- function handleAfterSave(responseKey) {
- var array = facilities();
- if (_.isEmpty(array)) {
- return;
- }
- var siteId, workRequestId;//, businessFieldId;
- if (_.isUndefined(responseKey)) {
- var dataModel = viewModel.dataModel;
- siteId = dataModel.SiteId();
- //businessFieldId = dataModel.BusinessFieldId();
- workRequestId = dataModel.WorkRequestId();
- }
- else {
- siteId = responseKey.SiteId;
- //businessFieldId = responseKey.BusinessFieldId;
- workRequestId = responseKey.WorkRequestId;
- }
- var postData;
- var parameters = {
- SiteId: siteId,
- //BusinessFieldId: businessFieldId,
- WorkRequestId: workRequestId
- };
- postData = _.map(array, function (f) {
- return {
- SiteId: siteId,
- //BusinessFieldId: businessFieldId,
- WorkRequestId: workRequestId,
- FacilityCode: f.FacilityCode()
- };
- });
- BWA.api.post('FmsWorkRequestToFacility/Insert', postData, parameters);
- }
- function handleAfterLoadingModelByKey(data, dataViewModel, isNewInPopup) {
- if (dataViewModel.WorkProgressId() >= $Code.WorkProgress.WORK_PLAN) {
- if (dataViewModel.WorkTypeId() == $Code.WorkType.INNER_CHECK) {
- // WorkType 이 내부점검인 경우 수정/삭제할 수 있어야 함
- viewModel.visibleEditButton(true);
- viewModel.visibleDeleteButton(true);
- }
- else {
- viewModel.visibleEditButton(false);
- viewModel.visibleDeleteButton(false);
- }
- }
- facilityDataSource.filter([
- eq('SiteId', dataViewModel.SiteId()),
- and,
- //eq('BusinessFieldId', dataViewModel.BusinessFieldId()),
- //and,
- eq('WorkRequestId', dataViewModel.WorkRequestId())
- ]);
- facilityDataSource.load().done(function (dbFacilities) {
- facilitiesInView(dbFacilities);
- });
- if (!isNewInPopup()) {
- workResultCheckItemDataSource.filter([
- eq('SiteId', dataViewModel.SiteId()),
- and,
- eq('WorkRequestId', dataViewModel.WorkRequestId())
- ]);
- workResultCheckItemDataSource.load().done(function (dbWorkCheckItems) {
- workResultCheckItems(dbWorkCheckItems);
- });
- viewModel.dataModel.selectedItemCheckDate("");
- viewModel.dataModel.selectedItemTextResult("");
- viewModel.dataModel.selectedItemCheckItemId(0);
- }
- }
- function handleBeforeShowingPopupForEdit(rowData, dataViewModel) {
- dataViewModel.BusinessFieldName(rowData['CmBusinessField/Name']());
- dataViewModel.WorkTypeName(rowData['FmsWorkCodeType/Name']());
- dataViewModel.RequestUserName(rowData['CmUser/Name']());
- dataViewModel.WorkProgressName(rowData['FmsWorkCodeProgress/Name']());
- dataViewModel.RejectUserName($KoValue(rowData['CmUser1/Name']));
- }
- viewModel.popupVisible.subscribe(function (visible) {
- //if (!visible) {
- if (visible) {
- facilitiesInView([]);
- facilities([]);
- }
- });
- viewModel.isEditModeInPopup.subscribe(function (isEditMode) {
- if (isEditMode) {
- facilities(facilitiesInView.slice(0));
- }
- });
- viewModel.dataModel.WorkTypeName = ko.observable();
- viewModel.dataModel.BusinessFieldName = ko.observable();
- viewModel.dataModel.RequestUserName = ko.observable();
- viewModel.dataModel.RejectUserName = ko.observable();
- viewModel.dataModel.WorkProgressName = ko.observable();
- viewModel.dataModel.selectedItemCheckDate = ko.observable();
- viewModel.dataModel.selectedItemTextResult = ko.observable();
- viewModel.dataModel.selectedItemCheckItemId = ko.observable();
- viewModel.workResultCheckItems = workResultCheckItems;
- viewModel.refreshListData = refreshListData;
- viewModel.onItemClick = onItemClick;
- facilityDataGridOptions = BWA.Popup.Facility.getReadOnlyDataGridOptions(facilitiesInView, viewModel.viewModeInPopup);
- modifiableFacilityDataGridOptions = BWA.Popup.Facility.getModifiableDataGridOptions(
- facilities, viewModel.isEditModeInPopup, facilityGridView);
- viewModel.facilitySearchPopup = facilitySearchPopup = BWA.Popup.Facility.create(viewModel, undefined, {
- isMultipleSelect: true,
- onSelectedFacilities: function (selectedFacilities) {
- var workRequestId = viewModel.dataModel.WorkRequestId();
- _.each(selectedFacilities, function (sf) {
- // 어차피 SiteId와 BusinessField는 동일 할 수 밖에 없으므로 비교하지 않는다.
- var found = _.some(facilities(), function (f) {
- //return f.FacilityCode() === sf.FacilityCode();
- try {
- return f.FacilityCode() === sf.FacilityCode();
- } catch (e) {
- return f.FacilityCode() === sf.FacilityCode;
- }
- });
- if (found) return;
- //facilities.push({
- // SiteId: sf.SiteId,
- // WorkRequestId: ko.observable(workRequestId),
- // FacilityCode: sf.FacilityCode,
- // Name: sf.Name,
- // FirstClassId: sf.FirstClassId,
- // SecondClassId: sf.SecondClassId,
- // ThirdClassId: sf.ThirdClassId,
- //});
- //2019.08.08 수정
- try {
- facilities.push({
- SiteId: ko.observable(sf.SiteId()),
- WorkRequestId: ko.observable(workRequestId),
- FacilityCode: ko.observable(sf.FacilityCode()),
- Name: ko.observable(sf.Name()),
- FirstClassId: ko.observable(sf.FirstClassId()),
- SecondClassId: ko.observable(sf.SecondClassId()),
- ThirdClassId: ko.observable(sf.ThirdClassId()),
- });
- } catch (e) {
- facilities.push({
- SiteId: ko.observable(sf.SiteId),
- WorkRequestId: ko.observable(workRequestId),
- FacilityCode: ko.observable(sf.FacilityCode),
- Name: ko.observable(sf.Name),
- FirstClassId: ko.observable(sf.FirstClassId),
- SecondClassId: ko.observable(sf.SecondClassId),
- ThirdClassId: ko.observable(sf.ThirdClassId),
- });
- }
- });
- facilityGridView().refresh();
- }
- });
- function refreshListData() {
- //workResultCheckItemDataSource.filter([
- // eq('SiteId', dataViewModel.SiteId()),
- // and,
- // eq('WorkRequestId', dataViewModel.WorkRequestId())
- //]);
- //workResultCheckItemDataSource.load().done(function (dbWorkCheckItems) {
- // workResultCheckItems(dbWorkCheckItems);
- //});
- //viewModel.dataModel.selectedItemCheckDate("");
- //viewModel.dataModel.selectedItemTextResult("");
- //viewModel.dataModel.selectedItemCheckItemId(0);
- }
- function onItemClick(e) {
- viewModel.dataModel.selectedItemCheckDate(e.itemData.CheckDate());
- viewModel.dataModel.selectedItemTextResult(e.itemData.TextResult());
- viewModel.dataModel.selectedItemCheckItemId(e.itemData.CheckItemId());
- if (viewModel.workResultCheckItemMaterialPopup === undefined) {
- return;
- }
- viewModel.workResultCheckItemMaterialPopup.materials2([]);
- viewModel.workResultCheckItemMaterialPopup.materials2DataSource.filter([
- eq('SiteId', viewModel.dataModel.SiteId()),
- and,
- eq('WorkRequestId', viewModel.dataModel.WorkRequestId()),
- and,
- eq('CheckItemId', e.itemData.CheckItemId())
- ]);
- viewModel.workResultCheckItemMaterialPopup.materials2DataSource.load().done(function (dbMaterials) {
- _.each(dbMaterials, function (sm) {
- viewModel.workResultCheckItemMaterialPopup.materials2.push({
- SiteId: sm.SiteId,
- //PurchaseRequestId: ko.observable(purchaseRequestId),
- MaterialId: sm.MaterialId,
- Name: sm.Name,
- MaterialCode: sm.MaterialCode,
- MaterialCount: sm.MaterialCount
- //FinalPrice: sm.FinalPrice,
- });
- });
- });
- }
- return {
- workResultCheckItems: workResultCheckItems,
- refreshListData: refreshListData,
- isInnerCheckWorkType: isInnerCheckWorkType,
- facilitySearchPopup: facilitySearchPopup,
- facilities: facilitiesInView,
- businessFields: businessFields,
- isReject: isReject,
- isWorkOrder: isWorkOrder,
- isValidateWithFunction: isValidateWithFunction,
- facilityDataGridOptions: facilityDataGridOptions,
- modifiableFacilityDataGridOptions: modifiableFacilityDataGridOptions,
- handleAfterLoadingModelByKey: handleAfterLoadingModelByKey,
- handleAfterSave: handleAfterSave,
- handlePopupShowing: handlePopupShowing,
- handlePopupShown: handlePopupShown,
- handleBeforeShowingPopupForEdit: handleBeforeShowingPopupForEdit,
- handleDeleteSelectedFacilities: BWA.Popup.Facility.getDeleteSelectedFacilitiesFunc(facilityGridView, facilities),
- handleBeforePopupShowingPromise: handleBeforePopupShowingPromise
- };
- }
- }
- });
|