define(["angularAMD"], function (angularAMD) { angularAMD.service('mrs09Service', ['$rootScope', '$filter', '$translate', 'config', 'MMWService', '$mdDialog', function ($rootScope, $filter, $translate, config, $MMWService, $mdDialog) { /*** * options = { * plotItem : {}, * feedback : function, * close : function * } */ this.init = function (options) { //開啟解除畫面 function openDialog(plotItem){ $mdDialog.dialog('module/moduleWIP/program/mrs-eqp/mrs09/mrs09.html', function(dialog){ return { plotItem : plotItem, workStation : config.cache.workStation, pause_status : '2', remark:'', beforeShown:function(){ if($rootScope.platform != 'cordova') $rootScope.focusById('remark'); }, background: { click: function () { dialog.hide(); if (typeof (feedback) == 'function') feedback(); } }, barcodeScan : function(event){ //barcode example if(event == undefined || event.keyCode == 13){ var type; if(config.cache.platform == 'SFT'){ //當條碼為以下三者之一時才能往下 if(dialog.remark.indexOf('ESC016') != -1){ type = '10'; //暫停/解除暫停 } if(!type){ //條碼格式錯誤 $rootScope.showAlert($filter('translate')('common.msg.code_format_error'), function(){ dialog.remark = ''; dialog.description = ''; $rootScope.focusById('remark'); }); return; } else { dialog.remark = dialog.remark.substring(6,(dialog.remark.length)); } } else { type = 0; } getExceptionReason(dialog.remark, type,function(data){ data = JSON.parse(data.Result); if(data.Result != 'fail' && data.RecordList.length > 0){ dialog.remark = data.RecordList[0].holdreason_no; dialog.description = data.RecordList[0].holdreason_name; } else { $rootScope.showAlert($filter('translate')('mrs09.msg.cantGetErrCode')+dialog.remark, function(){ dialog.remark = ''; dialog.description = ''; $rootScope.focusById('remark'); }); } }); } }, scanQrcode : function(){ $rootScope.OpenScanner({ after : function(result){ dialog.remark = result.text; dialog.barcodeScan(); }, exception: function(){ //目前裝置無法使用相機 $rootScope.showAlert($filter('translate')('common.msg.camera_not_support')); }, orientation : "landscape" }); }, search: function(){ var type; if(config.cache.platform == 'SFT'){ type = '10'; } else { type = 0; } getExceptionReason(dialog.remark, type,function(data){ data = JSON.parse(data.Result); if(data.Result != 'fail' && data.RecordList.length > 0){ $rootScope.showSelect({ title : $filter('translate')('common.msg.plz_select'), label : 'holdreason_name', code : 'holdreason_no', order: 'holdreason_no', selectCode : '', list : data.RecordList, confirm : function(s_item, s_dialog){ s_dialog.hide(); dialog.remark = s_item.holdreason_no; dialog.description = s_item.holdreason_name; $rootScope.focusById('remark'); } }); } else { $rootScope.showAlert($filter('translate')('mrs09.msg.cantGetErrCode')+dialog.remark, function(){ dialog.remark = ''; dialog.description = ''; $rootScope.focusById('remark'); }); } }); }, back: function () { dialog.hide(); if(options.close) options.close(); }, confirm: function () { var content = { change_control_mode :'2', status : dialog.pause_status, machine_no : config.cache.equipment, plot_no : dialog.plotItem.plot_no, op_seq : dialog.plotItem.OpSeq, op_no : dialog.plotItem.OpNo, workstation_no : config.cache.workStation, plot_stamp : dialog.plotItem.PlotStamp, description : dialog.description, remark : dialog.remark, lot_status : dialog.plotItem.lot_status }; //mantis#0041000: 生產批暫停類型新增機台暫停選項 if($rootScope.servicePlatform == 'SFT'){ content.status = '2'; } //console.log(content); plotWaitProcess(content, function(){ $rootScope.showAlert($filter('translate')('mrs09.msg.confirm_success'), function(){ dialog.hide(); if(options.feedback){ options.feedback(); } }); }); } } } ); } function getExceptionReason(Code, CheckType, callback){ $MMWService.sendToWMMServer({ uri : 'app.holdreason.get', content : { holdreason_no:Code, holdreason_type : CheckType, Remark:'' }, success : function(data){ if(callback) callback(data); } }); } function plotInfoGet(plotItem, callback){ var MoId = plotItem.plot_no + ';'; if(plotItem.sft_op_seq && plotItem.sft_op_no){ MoId += plotItem.sft_op_seq + ';' + plotItem.sft_op_no+';' } MoId = MoId + config.cache.workStation; $MMWService.sendToWMMServer({ uri : 'PlotInfo', content : { MoId : MoId, ReturnType : '0' }, success : function(data){ data = JSON.parse(data.Result); if(data.Result != 'fail'){ console.log(data); data.plot_no = plotItem.plot_no; data.OpNo = plotItem.sft_op_no; data.sft_op_seq = data.OpSeq = plotItem.sft_op_seq; data.lot_status = plotItem.prev_status; if(callback) callback(data); } else { $rootScope.showAlert(data.SysMsg, options.close); } } }); } function plotWaitProcess(content, callback){ $MMWService.sendToWMMServer({ uri : 'MoStatusChange', content : content, success : function(data){ data = JSON.parse(data.Result); if(data.Result != 'fail'){ console.log(data); if(callback) callback(); } else { $rootScope.showAlert(data.SysMsg, options.close); } } }); } plotInfoGet(options.plotItem, function(data){ openDialog(data); }) }; }]); });