Ext.QuickTips.init();
Ext.define('erp.controller.pm.make.MakePlan!Add', {
extend: 'Ext.app.Controller',
requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil'],
views:[
'pm.make.MakePlan!Add','core.form.Panel','core.grid.Panel2','core.toolbar.Toolbar','core.trigger.MultiDbfindTrigger','core.trigger.HrOrgTreeDbfindTrigger',
'core.button.Save','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload','core.button.ResAudit','core.button.FormBook',
'core.button.Audit','core.button.Close','core.button.Delete','core.button.Update','core.button.DeleteDetail','core.button.ResSubmit',
'core.button.Scan','core.button.Banned','core.button.ResBanned','core.form.MultiField','core.button.Confirm','core.button.Sync',
'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField', 'core.grid.YnColumn','core.trigger.AddDbfindTrigger',
'core.form.FileField','core.form.SplitTextField','core.button.End','core.button.ResEnd','core.form.CheckBoxGroup','core.button.TurnMJProject',
'core.form.MonthDateField','core.form.SpecialContainField','core.form.SeparNumber','core.button.AutoInvoice','core.button.CleanDetail','core.form.DateToNumberField'
],
init:function(){
var me = this;
me.FormUtil = Ext.create('erp.util.FormUtil');
me.GridUtil = Ext.create('erp.util.GridUtil');
me.BaseUtil = Ext.create('erp.util.BaseUtil');
this.control({
'erpFormPanel': {
alladded: function(form){
var grid = Ext.getCmp('grid');
if(grid)
me.resize(form, grid);
}
},
'erpGridPanel2': {
itemclick: this.onGridItemClick,
reconfigure: function(grid){
var form = Ext.getCmp('form');
if(form)
me.resize(form, grid);
}
},
'erpSaveButton': {
afterrender: function(btn){
var form = me.getForm(btn);
var codeField = Ext.getCmp(form.codeField);
if(Ext.getCmp(form.codeField) && (Ext.getCmp(form.codeField).value != null && Ext.getCmp(form.codeField).value != '')){
btn.hide();
}
},
click: function(btn){
var form = me.getForm(btn);
if(!Ext.isEmpty(form.codeField) && Ext.getCmp(form.codeField) && (
Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == '')){
me.BaseUtil.getRandomNumber(caller);//自动添加编号
}
this.FormUtil.beforeSave(this);
}
},
'erpDeleteButton' : {
click: function(btn){
me.FormUtil.onDelete(Ext.getCmp(me.getForm(btn).keyField).value);
}
},
'erpUpdateButton': {
click: function(btn){
this.FormUtil.onUpdate(this);
}
},
'erpAddButton': {
click: function(btn){
var title = btn.ownerCt.ownerCt.title || ' ';
var url = window.location.href;
url = url.replace(basePath, '');
url = url.substring(0, url.lastIndexOf('formCondition')-1);
me.FormUtil.onAdd('add' + caller, title, url);
}
},
'erpCloseButton': {
click: function(btn){
me.FormUtil.beforeClose(me);
}
},
'erpSubmitButton': {
afterrender: function(btn){
var status = Ext.getCmp(me.getForm(btn).statuscodeField);
if(status && status.value != 'ENTERING'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onSubmit(Ext.getCmp(me.getForm(btn).keyField).value);
}
},
'erpResSubmitButton': {
afterrender: function(btn){
var status = Ext.getCmp(me.getForm(btn).statuscodeField);
if(status && status.value != 'COMMITED'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onResSubmit(Ext.getCmp(me.getForm(btn).keyField).value);
}
},
'erpAuditButton': {
afterrender: function(btn){
var status = Ext.getCmp(me.getForm(btn).statuscodeField);
if(status && status.value != 'COMMITED'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onAudit(Ext.getCmp(me.getForm(btn).keyField).value);
}
},
'erpResAuditButton': {
afterrender: function(btn){
var status = Ext.getCmp(me.getForm(btn).statuscodeField);
if(status && status.value != 'AUDITED'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onResAudit(Ext.getCmp(me.getForm(btn).keyField).value);
}
},
'dbfindtrigger[name=mp_linecode]': {
beforetrigger: function(t){
var wccode = Ext.getCmp('mp_wccode');
if(wccode && wccode.value !='' && wccode.value != null){
t.dbBaseCondition = " li_wccode='"+ wccode.value+"'";
}
}
},
'erpAutoInvoiceButton': {
afterrender: function(btn){
btn.setWidth(90);
btn.setText('自动生成');
var status = Ext.getCmp(me.getForm(btn).statuscodeField);
if(status && status.value != 'ENTERING'){
btn.hide();
}
},
click: function(btn){
var linecode = '';
if(Ext.getCmp('mp_linecode')){
linecode = Ext.getCmp('mp_linecode').value;
}
var grid = Ext.getCmp('grid');
var me = this;
win = Ext.create('Ext.Window', {
title: '自动生成生产计划',
height: 150,
id: 'addPlan',
width: 600,
items: [{
xtype: 'form',
height: '100%',
width: '100%',
layout: 'column',
bodyStyle: 'background:#f1f2f5;',
items: [{
xtype: 'numberfield',
fieldLabel: '开始时间',
labelSeparator: ':',
allowBlank: false,
id: 'mp_begintime',
columnWidth: 0.3,
minValue:0,
maxValue:23,
labelWidth:70,
allowBlank: false,
value:8,
style: {
'margin-top': '10px'
}
},{
xtype: 'numberfield',
fieldLabel: '结束时间',
labelSeparator: ':',
id: 'mp_endtime',
allowBlank: false,
columnWidth: 0.3,
minValue:0,
maxValue:23,
labelWidth:70,
value:19,
style: {
'margin-top': '10px'
}
},{
xtype: 'numberfield',
fieldLabel: '排产数量',
labelSeparator: ':',
id: 'mp_planqty',
allowBlank: false,
columnWidth: 0.3,
minValue:0,
labelWidth:70,
style: {
'margin-top': '10px'
}
}],
closeAction: 'hide',
buttonAlign: 'center',
buttons: [{
text: $I18N.common.button.erpConfirmButton,
handler: function(btn) {
var form = btn.ownerCt.ownerCt,
a = form.down('#mp_begintime').value,
b = form.down('#mp_endtime').value,
c = form.down('#mp_planqty').value;
number = 0;
i= 0;
j = 0;
singledata='';
detailgrid = Ext.getCmp('grid');
count = detailgrid.store.data.items.length;
length = count;
m=0;
if( a==null || a>23 || a<0){
Ext.Msg.alert('温馨提示',
'起始时间介于0-23');
return;
}
if( b==null ||b>23 || b<0){
Ext.Msg.alert('温馨提示',
'结束时间介于0-23');
return;
}
if(b-a>0){
number = b-a;
}else if (b-a < 0){
number = 24-a+b;
}else if(b-a == 0){
number = 24;
}
for(i=0;i24){
a=a-24;
}
m=1;
break;
}
}
}
if(m==1){
detailgrid.store.data.items[j].set('mpd_datenum','H'+a);
detailgrid.store.data.items[j].set('mpd_planqty',c);
detailgrid.store.data.items[j].set('mpd_linecode',linecode);
a++;
if(a>24){
a=a-24;
}
j++;
}
if(m==0){
detailgrid.store.data.items[j].set('mpd_datenum','H'+a);
detailgrid.store.data.items[j].set('mpd_planqty',c);
detailgrid.store.data.items[j].set('mpd_linecode',linecode);
length++;
a++;
if(a>24){
a=a-24;
}
}
}
Ext.getCmp('addPlan').close();
}
}, {
text: $I18N.common.button.erpCloseButton,
cls: 'x-btn-gray',
handler: function(btn) {
btn.up('window').close();
}
}]
}]
});
win.show();
}
},
'erpCleanDetailButton':{
afterrender: function(btn){
var status = Ext.getCmp(me.getForm(btn).statuscodeField);
if(status && status.value != 'ENTERING'){
btn.hide();
}
},
click: function(btn){
var param = me.getGridItems();
if(param == null || param == ''){
showError("没有需要清除的明细");
return ;
}
me.cleanDetail();
}
}
})
},
onGridItemClick: function(selModel, record){//grid行选择
this.GridUtil.onGridItemClick(selModel, record);
},
getForm: function(btn){
return btn.ownerCt.ownerCt;
},
resize: function(form, grid){
if(!this.resized && form && grid && form.items.items.length > 0){
var height = window.innerHeight,
fh = form.getEl().down('.x-panel-body>.x-column-inner').getHeight();
form.setHeight(70 + fh);
grid.setHeight(height - fh - 70);
this.resized = true;
}
},
cleanDetail: function(){
var grid=Ext.getCmp('grid');
grid.setLoading(true);
Ext.Ajax.request({
url :basePath+ 'pm/make/cleanMakePlanDetail.action',
params: {
id:Ext.getCmp('mp_id').value,
code:Ext.getCmp('mp_code').value
},
method : 'post',
callback : function(options,success,response){
grid.setLoading(false);
var localJson = new Ext.decode(response.responseText);
if(localJson.success){
showMessage('提示', '清除成功!', 1000);
//update成功后刷新页面进入可编辑的页面
window.location.reload();
} else if(localJson.exceptionInfo){
showError(localJson.exceptionInfo);return;
}
}
});
},
getGridItems :function(){//检查明细行是否有明细
var grid = Ext.getCmp('grid');
var jsonGridData = new Array();
var form = Ext.getCmp('form');
if(grid!=null){
grid.getStore().each(function(item){//将grid里面各行的数据获取并拼成jsonGridData
var data = Ext.clone(item.data);
var dd = new Object();
if(data[grid.necessaryField] != null && data[grid.necessaryField] != ""){
if(grid.mainField && form && form.keyField){//例如,将pu_id的值赋给pd_puid
dd[grid.mainField] = Ext.getCmp(form.keyField).value;
}
Ext.each(grid.columns, function(c){
if((c.logic != 'ignore') && c.dataIndex){//只需显示,无需后台操作的字段,自动略去
if(c.xtype == 'datecolumn'){
if(Ext.isDate(data[c.dataIndex])){
dd[c.dataIndex] = Ext.Date.toString(data[c.dataIndex]);//在这里把GMT日期转化成Y-m-d格式日期
} else {
dd[c.dataIndex] = Ext.Date.format(new Date(), 'Y-m-d');//如果用户没输入日期,或输入有误,就给个默认日期,
//或干脆return;并且提示一下用户
}
} else if(c.xtype == 'numbercolumn'){//赋个默认值0吧,不然不好保存
if(data[c.dataIndex] == null || data[c.dataIndex] == ''){
dd[c.dataIndex] = '0';//也可以从data里面去掉这些字段
} else {
dd[c.dataIndex] = "" + data[c.dataIndex];
}
}else{
dd[c.dataIndex] = data[c.dataIndex];
}
}
});
jsonGridData.push(Ext.JSON.encode(dd));
}
});
return jsonGridData;
}
}
});