123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- BemsWebApplication.WorkOrder = function( params, viewInfo ) {
- "use strict";
- var workOrderDataModel = new BemsWebApplication.FmsWorkOrderViewModel(),
- workOrderDataModelForView = $.extend( {
- 'CmCompany_Name': ko.observable(),
- 'FmsWorkCodeEmergency_Name': ko.observable(),
- 'CmBusinessField_Name': ko.observable(),
- 'CmUser_OrderUserId_Name': ko.observable()
- } , workOrderDataModel );
-
- var selectedUserData = params.selectedUserData = ko.observable();
- var targetFacilities = ko.observableArray();
- var facilityDataSource = BemsWebApplication.Factory.Facility.getDataSourceWithRelation( BemsWebApplication.db.FmsWorkOrderToFacility );
- var emergencyCodeDataSource = BemsWebApplication.db.createDataSource( 'FmsWorkCodeEmergency', true, true ),
- workOrderDataSource = $DataSource( {
- dataSourceOptions: {
- store: BemsWebApplication.db.FmsWorkOrder,
- select: [ 'SiteId', 'OrderId', 'RequestId', 'EmergencyId', 'ChargeCompanyId', 'BusinessFieldId',
- 'OrderedDate', 'Title', 'Contents', 'TeamId', 'WorkerPhoneNo', 'WorkerUserName', 'IsSms',
- 'CmCompany/Name',
- 'FmsWorkCodeEmergency/Name', 'CmBusinessField/Name', 'CmUser/Name', 'CmUser1/Name' ],
- expand: [ 'FmsWorkCodeEmergency', 'CmBusinessField', 'CmCompany' ],
- extendOptions: {
- multipleItems: [ { id: 'UserId', entries: [ 'CmUser', 'CmUser1' ], fields: [ 'OrderUserId', 'WorkerUserId' ] } ]
- }
- }
- } ),
- //facilityDataSource = $DataSource( {
- // dataSourceOptions: {
- // store: BemsWebApplication.db.FmsWorkResult,
- // select: [ 'SiteId', 'OrderId', 'RequestId', 'EmergencyId', 'OrderUserId', 'ChargeCompanyId', 'BusinessFieldId',
- // 'OrderedDate', 'Title', 'Contents', 'TeamId', 'WorkerPhoneNo', 'WorkerUserId', 'WorkerUserName', 'IsSms',
- // 'CmCompany/Name',
- // 'FmsWorkCodeEmergency/Name', 'CmBusinessField/Name', 'CmUser/UserId', 'CmUser1/UserId', 'CmUser/Name', 'CmUser1/Name' ],
- // expand: [ 'FmsWorkCodeEmergency', 'CmBusinessField', 'CmCompany' ],
- // multiple: [ { id: 'UserId', entries: [ 'CmUser', 'CmUser1'], fields: [ 'OrderUserId', 'WorkerUserId' ] } ]
- // }
- //} ),
- emergencyCodes = ko.observableArray();
- var orderButtonsVisibleInDetailPopup = ko.observable(),
- editOrderButtonsVisibleInDetailPopup = ko.observable();
- var popupVisibleInTransfer = ko.observable( false ),
- popupVisibleInWorkOrder = ko.observable( false );
- viewInfo.handleAfterLoadingModelByKey = function( data, dataModel ) {
- orderButtonsVisibleInDetailPopup( (dataModel.ProgressId() === $Code.WorkProgress.Request) ||
- (dataModel.ProgressId() === $Code.WorkProgress.Transfer) );
- var workOrderProgress = dataModel.ProgressId() === $Code.WorkProgress.WorkOrder;
- editOrderButtonsVisibleInDetailPopup( workOrderProgress );
- if( workOrderProgress ) {
- workOrderDataSource.filter(
- [ 'SiteId', '=', dataModel.SiteId() ],
- 'and',
- [ 'RequestId', '=', dataModel.RequestId() ]
- );
- workOrderDataModel.OrderId( null );
- workOrderDataSource.load().done( function( result ) {
- if( result.length > 0 ) {
- BWA.DataUtil.copyViewModel( result[0], workOrderDataModelForView );
- BWA.DataUtil.copyViewModel( workOrderDataModelForView, workOrderDataModel );
- // workOrderDataModel.fromJS( result[0].toJS() );
- }
- facilityDataSource.filter(
- [ 'SiteId', '=', workOrderDataModel.SiteId() ],
- 'and',
- [ 'OrderId', '=', workOrderDataModel.OrderId() ]
- );
- facilityDataSource.load().done( function( facilities ) {
- targetFacilities( facilities );
- } );
- } );
- }
- else {
- workOrderDataModel.WorkerUserName( null );
- workOrderDataModel.WorkerUserId( null );
- workOrderDataModel.WorkerPhoneNo( null );
- workOrderDataModel.ChargeCompanyId( dataModel.ChargeCompanyId() );
- workOrderDataModel.BusinessFieldId( dataModel.BusinessFieldId() );
- workOrderDataModel.Title( dataModel.Title() );
- workOrderDataModel.Contents( dataModel.Content() );
- var db = BemsWebApplication.db;
- var keys = db.extractKeysObject( 'CmFacility', dataModel );
- db.CmFacility.byKey( keys ).done( function( f ) {
- targetFacilities.removeAll();
- var v = new BemsWebApplication.CmFacilityViewModel();
- v.fromJS( f );
- targetFacilities.push( v );
- } );
- }
- };
- viewInfo.handleViewShowing = function() {
- emergencyCodeDataSource.load().done( function( result ) {
- emergencyCodes( result );
- if( result.length > 0 ) {
- workOrderDataModel.EmergencyId( result[0].EmergencyId() );
- }
- });
- };
- params.workOrderVisible = ko.observable( false );
- params.workOrderDataModel = workOrderDataModelForView;
- workOrderDataModel.OrderId.subscribe( function( value ) {
- params.workOrderVisible( value !== null );
- } );
- var facilityFactory = BemsWebApplication.Factory.Facility;
- var dataGridOptions = {
- dataSource: targetFacilities,
- columns: facilityFactory.getColumns( [
- { dataField: 'ClassName', width: '40%' },
- { dataField: 'Name', width: '40%' },
- { dataField: 'FmsWorkCodeProgress_Name', width: '20%' }
- ] ),
- cellPrepared: facilityFactory.cellPrepared,
- height: 400
- };
- params.facilityDataGridOptions = dataGridOptions;
- var viewModel = BemsWebApplication.WorkRequest( params, viewInfo );
- viewModel.toolbarItems = [
- { location: 'before', text: '작업지시' },
- { location: 'after', widget: 'button', options: { text: $G('workOrder'), icon: 'save' , visible: orderButtonsVisibleInDetailPopup,
- clickAction: function() { popupVisibleInWorkOrder( true ); }
- } },
- { location: 'after', widget: 'button', options: { text: $G('cancelWorkOrder'), icon: 'remove' , visible: editOrderButtonsVisibleInDetailPopup,
- clickAction: handleCancelWorkOrder
- } },
- { location: 'after', widget: 'button', options: { text: $G('edit'), icon: 'save' , visible: editOrderButtonsVisibleInDetailPopup,
- clickAction: function() { popupVisibleInWorkOrder( true ); }
- } },
- { location: 'after', widget: 'button', options: { text: $G('workTransfer'), icon: 'save', visible: orderButtonsVisibleInDetailPopup,
- clickAction: function() { popupVisibleInTransfer( true ); }
- } },
- { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: viewModel.handlePopupButtonClose } }
- ];
- selectedUserData.subscribe( function( value ) {
- workOrderDataModel.WorkerUserId( value.UserId );
- workOrderDataModel.WorkerUserName( value.Name );
- workOrderDataModel.WorkerPhoneNo( value.MobilePhoneNo );
- } );
-
- function handleCancelWorkOrder() {
- viewModel.dataModel.ProgressId( $Code.WorkProgress.Request );
- var removePromise = BemsWebApplication.db.removeFromViewModel( 'FmsWorkOrder', workOrderDataModel );
- workOrderDataModel.OrderId( null );
- $.when( viewModel.update(), removePromise ).done( function() {
- viewModel.popupVisible( false );
- utils.toast.show( '작업지시가 취소 되었습니다.' );
- } );
- }
- function handleTransferPopupButtonSave() {
- viewModel.dataModel.ProgressId( $Code.WorkProgress.Transfer );
- viewModel.update();
- popupVisibleInTransfer( false );
- viewModel.popupVisible( false );
- }
- viewModel.toolbarItemsInTransferPopup = [
- { location: 'before', text: $G('workTransfer') },
- { location: 'after', widget: 'button', options: { text: $G('setup'), icon: 'save' , clickAction: handleTransferPopupButtonSave } },
- { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: function() { popupVisibleInTransfer( false ); } } }
- ];
- viewModel.popupOptionsInTransfer = {
- width: '600px',
- height: 'auto',
- visible: popupVisibleInTransfer,
- closeOnOutsideClick: false,
- animation: utils.popup.createAnimation()
- };
- viewModel.emergencyCodes = emergencyCodes;
- BemsWebApplication.Factory.WorkOrderPopup.create( viewModel,
- targetFacilities,
- workOrderDataModel,
- popupVisibleInWorkOrder,
- editOrderButtonsVisibleInDetailPopup,
- dataGridOptions );
- return viewModel;
- };
|