Ext.QuickTips.init();
Ext.define('erp.controller.plm.record.BillRecord', {
extend: 'Ext.app.Controller',
FormUtil: Ext.create('erp.util.FormUtil'),
GridUtil: Ext.create('erp.util.GridUtil'),
BaseUtil: Ext.create('erp.util.BaseUtil'),
views:[
'plm.record.BillRecord','core.grid.Panel2','core.toolbar.Toolbar','core.form.Panel',
'core.button.Close','core.button.Over','core.button.Update','core.button.DeleteDetail',
'core.button.ChangeHandler','core.trigger.DbfindTrigger','core.form.FileField','core.button.Confirm',
'core.button.NoConfirm'
],
init:function(){
var me = this;
me.control({
'erpFormPanel': {
afterrender:function(form){
Ext.defer(function(){
var ra_id=form.down('#ra_id').getValue(),
status=form.down('#ra_statuscode').getValue();
if(ra_id){
var data= me.getWorkRecord(ra_id);
if(data.length>0){
var index=me.getInsertIndex();
form.insert(index,{
xtype: 'fieldset',
title: '
处理明细
',
collapsible: true,
//collapsed: true,
columnWidth:1,
layout: 'anchor',
defaults: {
anchor: '100%',
labelStyle: 'padding-left:4px;'
},
items:[{
autoScroll: true,
xtype: 'dataview',
tpl:Ext.create('Ext.XTemplate',
'',
'',
'
{WR_RECORDDATE}
{WR_RECORDER}',
'{WR_PROGRESS:this.formatKind}
',
'
回复信息: {WR_REDCORD}
',
'
',
{formatKind: function(value){
if(value=='reply') return '回复处理';
else if(value=='confirm') return '确认处理';
else if(value=='noconfirm') return '驳回处理';}
}),
store: Ext.create('Ext.data.Store', {
fields:[{name: 'WR_RECORDER' },
{name: 'WR_RECORDDATE'},
{name: 'WR_PROGRESS'},
{name: 'WR_REDCORD'}],
data:data
})
}]
});
}
if(status!='FINISHED')
form.add(me.createRecord());
}
},200);
}
},
'field[name=sourcecode]':{
afterrender:function(f){
if(f.value!=null && f.value!=''){
f.setFieldStyle({
'color': 'red'
});
f.focusCls = 'mail-attach';
var c = Ext.Function.bind(me.openSource, me);
Ext.EventManager.on(f.inputEl, {
mousedown : c,
scope: f,
buffer : 100
});
}
}
},
'erpUpdateButton' : {
click : function(b) {
var form = b.ownerCt.ownerCt,
f = form.down('#wr_redcord');
if(f && !Ext.isEmpty(f.getValue())) {
me.onUpdate(form);
}
},
afterrender:function(btn){
var status=Ext.getCmp('ra_status');
if(status.value == '待确认' || status.value =='已结束'){
btn.hide();
}
}
},
'erpChangeHandlerButton' : {
afterrender : function(b) {
var form = b.ownerCt.ownerCt,
status = form.down('#ra_statuscode');
if(status && (status.getValue() == 'FINISHED' || status.getValue()=='UNCONFIRMED')) {
b.hide();
} else {
b.setDisabled(false);
b.show();
}
},
click : function(b) {
warnMsg('确定变更该任务?', function(k){
if(k == 'yes' || k == 'ok') {
var form = b.ownerCt.ownerCt;
me.onHandlerChange(form);
}
});
}
},
'erpOverButton' : {
click : function(b) {
warnMsg('确定已达到提出人要求,结束该任务?', function(k){
if(k == 'yes' || k == 'ok') {
var form = b.ownerCt.ownerCt;
me.onOver(form);
}
});
},
afterrender:function(btn){
var status=Ext.getCmp('ra_status'),resourcename=Ext.getCmp('ra_resourcename').getValue();
btn.setText('回复');
if(status.value =='待确认' || status.value =='已完成' || resourcename!=recorder){
btn.hide();
}
}
},
'erpConfirmButton' : {
afterrender:function(btn){
var status=Ext.getCmp('ra_status'),exhibitor=Ext.getCmp('recorder');
if(status.value !='待确认' || exhibitor.value !=recorder || status =='已完成'){
btn.hide();
}
},
click : function(b) {
var form = b.ownerCt.ownerCt;
me.onConfirm(form);
}
},
'erpNoConfirmButton' : {
afterrender:function(btn){
var status=Ext.getCmp('ra_status'),exhibitor=Ext.getCmp('recorder');
if(status.value !='待确认' || exhibitor.value !=recorder || status.value =='已完成'){
btn.hide();
}
},
click : function(b) {
var form = b.ownerCt.ownerCt;
me.onNoConfirm(form);
}
}
});
},
openSource : function(e, el, obj) {
var f = obj.scope;
if(f.value) {
this.FormUtil.onAdd(null, f.ownerCt.down('#sourcecode').value,
f.ownerCt.down('#sourcelink').value + '&_noc=1');
}
},
getInsertIndex:function(){
var form=Ext.getCmp('form'),i=0;
Ext.Array.each(form.items.items,function(item,index){
if(item.name=='description'){
i=index;
}
});
return i+1;
},
getWorkRecord : function(id, form) {
var me = this,data=[];
Ext.Ajax.request({
url : basePath + 'common/getFieldsDatas.action',
params: {
caller: 'WorkRecord',
fields: 'wr_recorder,wr_recorddate,wr_redcord,WR_PROGRESS',
condition: 'wr_raid=' + id + ' order by wr_recorddate'
},
async:false,
method : 'post',
callback : function(opt, s, res){
console.log(res);
var r = new Ext.decode(res.responseText);
if(r.exceptionInfo){
showError(r.exceptionInfo);return;
}
/* var status = form.down('#ra_statuscode');
//alert(status.getValue());
if(status && (status.getValue() != 'FINISHED' || status.getValue() != 'UNCONFIRMED')) {
//form.down('erpUpdateButton').show();
//form.down('erpOverButton').show();
form.add(me.createRecord());
} else {
form.down('erpOverButton').hide();
//form.down('erpConfirmButton').hide();
}*/
if(r.success && r.data){
data= new Ext.decode(r.data);
}
}
});
return data;
},
createRecord : function(r, t, v) {
var args = {columnWidth : 1};
if (r) {
args.fieldLabel = Ext.Date.format(Ext.Date.parse(t,'Y-m-d H:i:s'),'m-d H:i:s') + '
' + r;
args.value = v;
args.readOnly = true;
args.fieldStyle = 'background:#f1f1f1;';
args.labelSeparator = '';
} else {
args.fieldLabel = '回复信息';
args.name = 'wr_redcord';
args.id = 'wr_redcord';
args.labelAlign='top';
args.cls = 'form-field-allowBlank';
}
return Ext.create('Ext.form.field.TextArea', args);
},
onUpdate : function(form) {
var id = form.down('#ra_id').getValue(),
text = form.down('#wr_redcord').getValue();
form.setLoading(true);
Ext.Ajax.request({
url : basePath + 'plm/record/updateBillRecord.action',
params : {
_noc : 1,
caller : caller,
wr_raid : id,
wr_redcord : text
},
callback : function(opt, s, res) {
form.setLoading(false);
var r = Ext.decode(res.responseText);
if (r.success) {
showMessage('提示', '保存成功!', 1000);
window.location.reload();
} else if(r.exceptionInfo) {
showError(r.exceptionInfo);
}
}
});
},
onHandlerChange : function(form) {
var me = this;
var win = Ext.create('Ext.window.Window', {
width : 300,
height : 150,
cls : 'custom-blue',
title : '变更处理人',
bodyStyle : 'background:#f1f2f5;',
layout : {
type : 'vbox',
align : 'center',
pack : 'center'
},
items : [{
xtype : 'dbfindtrigger',
name : 'ma_recorder',
labelWidth : 75,
fieldLabel : '新执行人',
listeners : {
aftertrigger : function(t, r) {
t.setValue(r.get('em_name'));
t.em_id = r.get('em_id');
}
}
}],
buttonAlign : 'center',
buttons : [{
text : '确认变更',
cls : 'x-btn-blue',
handler : function(b){
var w = b.ownerCt.ownerCt,
e = w.down('dbfindtrigger');
if(e.em_id) {
me.changeHandler(form, e.em_id);
w.close();
}
}
},{
text : '取消',
cls : 'x-btn-blue',
handler : function(b) {
b.ownerCt.ownerCt.close();
}
}]
});
win.show();
},
changeHandler : function(form, em_id) {
var me = this, id = form.down('#ra_id').getValue();
form.setLoading(true);
Ext.Ajax.request({
url : basePath + 'plm/record/changeBillTask.action',
params : {
caller : caller,
_noc : 1,
ra_id : id,
em_id : em_id
},
callback : function(opt, s, res) {
form.setLoading(false);
var r = Ext.decode(res.responseText);
if (r.success) {
showMessage('提示', '变更成功!', 1000);
me.BaseUtil.getActiveTab().close();
} else if(r.exceptionInfo) {
showError(r.exceptionInfo);
}
}
});
},
onOver : function(form) {
var id = form.down('#ra_id').getValue();
text = form.down('#wr_redcord').getValue();
form.setLoading(true);
Ext.Ajax.request({
url : basePath + 'plm/record/endBillTask.action',
params : {
caller : caller,
_noc : 1,
ra_id : id,
record:text
},
callback : function(opt, s, res) {
form.setLoading(false);
var r = Ext.decode(res.responseText);
if (r.success) {
showMessage('提示', '结束成功!', 1000);
window.location.reload();
} else if(r.exceptionInfo) {
showError(r.exceptionInfo);
}
}
});
},
onConfirm : function(form) {
var id = form.down('#ra_id').getValue();
text = form.down('#wr_redcord').getValue();
form.setLoading(true);
Ext.Ajax.request({
url : basePath + 'plm/record/confirmBillTask.action',
params : {
caller : caller,
_noc : 1,
ra_id : id,
record:text
},
callback : function(opt, s, res) {
form.setLoading(false);
var r = Ext.decode(res.responseText);
if (r.success) {
showMessage('提示', '确认成功!', 1000);
window.location.reload();
} else if(r.exceptionInfo) {
showError(r.exceptionInfo);
}
}
});
},
onNoConfirm:function(form) {
var id = form.down('#ra_id').getValue();
text = form.down('#wr_redcord').getValue();
form.setLoading(true);
Ext.Ajax.request({
url : basePath + 'plm/record/noConfirmBillTask.action',
params : {
caller : caller,
_noc : 1,
ra_id : id,
record:text
},
callback : function(opt, s, res) {
form.setLoading(false);
var r = Ext.decode(res.responseText);
if (r.success) {
showMessage('提示', '驳回成功!', 1000);
var main = parent.Ext.getCmp("content-panel");
if(main) main.getActiveTab().close();
} else if(r.exceptionInfo) {
showError(r.exceptionInfo);
}
}
});
}
});