123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- $(function () {
- 'use strict';
- BemsWebApplication.Popup.WorkOrder = {
- create: function (viewModel) {
- var workRequestFacilities = viewModel.popup.facilities,
- workRequestDataModel = viewModel.dataModel,
- workOrderDataModel = new BWA.FmsWorkOrderViewModel();
- var facilities = ko.observableArray(), businessFields = ko.observableArray();
- var facilitySearchPopup = viewModel.popup.facilitySearchPopup,
- facilityFactory = BWA.Factory.Facility,
- facilityGridView = ko.observable(undefined),
- facilityDataGridOptions = undefined;
- var facilityDataSource = facilityFactory.getBasicDataSourceRef({
- dbModeIId: 'FmsWorkOrderToFacility',
- primaryKeyDataField: 'WorkRequestId'
- });
- function onSelectedFacilities(selectedFacilities) {
- var workRequestId = workRequestDataModel.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,
- //});
- //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();
- }
- var isNew = true,
- popupVisible = ko.observable(false),
- toolbarItems = [
- { location: 'before', text: $G('workOrder') },
- //{
- // location: 'after', widget: 'button', options: {
- // text: $G('facilityInsertion'), icon: 'search',
- // clickAction: function () {
- // facilitySearchPopup.show(onSelectedFacilities);
- // }
- // }
- //},
- //{
- // location: 'after', widget: 'button', options: {
- // text: $G('facilityDeletion'),
- // icon: 'remove',
- // type: 'danger',
- // clickAction: BWA.Popup.Facility.getDeleteSelectedFacilitiesFunc(facilityGridView, facilities)
- // }
- //},
- { location: 'after', widget: 'button', options: { text: $G('workOrder'), icon: 'save', clickAction: handleSave } },
- { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handleClose } }
- ],
- popupOptions = {
- width: 1200,
- height: 650,
- //shading: false,
- shadingColor: 'rgba(0,0,0,0.0)',
- showingAction: handlePopupShowing,
- visible: popupVisible,
- closeOnOutsideClick: false,
- animation: utils.popup.createAnimation()
- };
- function handleSave() {
- if (isNew) {
- insert();
- return;
- }
- update();
- }
- function insert() {
- BWA.db.FmsWorkOrder.insert(workOrderDataModel.toJS()).done(function (response, responseKey) {
- var keys = BWA.db.extractKeysObject('FmsWorkRequest', workRequestDataModel);
- workRequestDataModel.WorkProgressId($Code.WorkProgress.WORK_STANDBY);
- BWA.db.FmsWorkRequest.update(keys, {
- WorkProgressId: workRequestDataModel.WorkProgressId()
- }).done(function () {
- handleAfterSave(responseKey);
- });
- });
- }
- function update() {
- var keys = BWA.db.extractKeysObject('FmsWorkOrder', workOrderDataModel);
- BWA.db.FmsWorkOrder.update(keys, workOrderDataModel.toJS()).done(function () {
- popupVisible(false);
- utils.toast.show($G('successSaveWorkOrderMsg'));
- });
- }
- function handleClose() {
- popupVisible(false);
- }
- function handleBeforePopupShowingPromise(isNewInPopup, dataViewModel, clickRowData) {
- }
- function handlePopupShowing() {
- $("#gridContainer_WorkOrder").dxDataGrid({
- paging: {
- pageSize: 13,
- enabled: true
- }
- });
- isNew = (workRequestDataModel.WorkProgressId() === $Code.WorkProgress.WORK_PLAN);
- if (isNew) {
- //var userInfo = BWA.UserInfo
- workOrderDataModel.SiteId(workRequestDataModel.SiteId());
- workOrderDataModel.WorkRequestId(workRequestDataModel.WorkRequestId());
- workOrderDataModel.BusinessFieldName(workRequestDataModel.BusinessFieldName());
- workOrderDataModel.BusinessFieldId(workRequestDataModel.BusinessFieldId());
- workOrderDataModel.OrderUserName(workRequestDataModel.RequestUserName());
- workOrderDataModel.OrderUserId(workRequestDataModel.RequestUserId());
- workOrderDataModel.OrderDate(new Date());
- workOrderDataModel.StartWorkDate(workRequestDataModel.StartWorkDate());
- workOrderDataModel.Title(workRequestDataModel.Title());
- //workOrderDataModel.Content(workRequestDataModel.Content());
- workOrderDataModel.Content("");
- facilities(workRequestFacilities());
- }
- else {
- // 키값이 WorkRequest와 동일하다.
- var keys = BWA.db.extractKeysObject('FmsWorkOrder', workRequestDataModel);
- BWA.db.FmsWorkOrder.byKey(keys).done(function (data) {
- workOrderDataModel.fromJS(data);
- var eq = BWA.DataUtil.constructEqualFilter;
- var and = BWA.DataUtil.andFilter;
- facilityDataSource.filter([
- eq('SiteId', workOrderDataModel.SiteId()),
- and,
- //eq('BusinessFieldId', dataViewModel.BusinessFieldId()),
- //and,
- eq('WorkRequestId', workOrderDataModel.WorkRequestId())
- ]);
- facilityDataSource.load().done(function (dbFacilities) {
- facilities(dbFacilities);
- });
- });
- }
- }
- function handlePopupShown(isEditMode, isNew, dataViewModel) {
- }
- function closeAfterSave() {
- popupVisible(false);
- viewModel.popupVisible(false);
- viewModel.refreshList();
- utils.toast.show($G('successSaveWorkOrderMsg'));
- }
- // 점검계획 정보가 저장된 후에 호출 된다.
- // 등록이면 responseKey가 있고, 수정이면 없다.
- function handleAfterSave(responseKey) {
- var array = facilities();
- if (_.isEmpty(array)) {
- closeAfterSave();
- return;
- }
- var postData;
- var parameters = {
- SiteId: responseKey.SiteId,
- WorkRequestId: responseKey.WorkRequestId
- };
- postData = _.map(array, function (f) {
- return {
- SiteId: parameters.SiteId,
- WorkRequestId: parameters.WorkRequestId,
- FacilityCode: f.FacilityCode()
- };
- });
- BWA.api.post('FmsWorkOrderToFacility', postData, parameters).done(function () {
- closeAfterSave();
- });
- }
- workOrderDataModel.BusinessFieldName = ko.observable();
- workOrderDataModel.OrderUserName = ko.observable();
- //facilityDataGridOptions = BWA.Popup.Facility.getModifiableDataGridOptions( facilities, ko.observable(true), facilityGridView);
- facilityDataGridOptions = BWA.Popup.Facility.getReadOnlyDataGridOptions(facilities, ko.observable(true));
- return {
- popupOptions: popupOptions,
- toolbarItems: toolbarItems,
- dataModel: workOrderDataModel,
- facilityDataGridOptions: facilityDataGridOptions,
- show: function () {
- popupVisible(true);
- }
- };
- }
- }
- });
|