Ext.QuickTips.init();
Ext.define('erp.controller.scm.purchase.Inquiry', {
extend: 'Ext.app.Controller',
FormUtil: Ext.create('erp.util.FormUtil'),
GridUtil: Ext.create('erp.util.GridUtil'),
BaseUtil: Ext.create('erp.util.BaseUtil'),
views:[
'core.form.Panel','scm.purchase.Inquiry','core.grid.Panel2','core.toolbar.Toolbar','core.form.FileField',
'core.button.Save','core.button.Update','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload',
'core.button.Audit','core.button.Close','core.button.Delete','core.button.DeleteDetail','core.button.ResSubmit',
'core.button.ResAudit','core.button.HistoryQuotation','core.button.HistoryInPrice','core.button.UpdateMaxlimitInfo',
'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField','core.button.TurnPurcPrice','core.button.AgreePrice','core.grid.YnColumn'
],
init:function(){
var me = this;
me.alloweditor = true;
this.control({
'erpGridPanel2': {
afterrender: function(grid){
var status = Ext.getCmp('in_statuscode');
if(status && status.value != 'ENTERING' && status.value != 'COMMITED'){
Ext.each(grid.columns, function(c){
c.setEditor(null);
});
}
},
itemclick: this.onGridItemClick
},
'erpSaveButton': {
click: function(btn){
var form = me.getForm(btn);
if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
me.BaseUtil.getRandomNumber();//自动添加编号
}
var bool = true;
//供应商必填
var grid = Ext.getCmp('grid'), start = Ext.getCmp('in_recorddate').value,
end = Ext.getCmp('in_enddate').value;
grid.getStore().each(function(item){
if(item.dirty && item.data[grid.necessaryField] != null && item.data[grid.necessaryField] != ""){
if(item.data['id_vendcode'] == null || item.data['id_vendcode'] == ''){
bool = false;
showError('明细表第' + item.data['id_detno'] + '行的供应商为空');return;
}
if(item.data['id_fromdate'] ==null){
item.set('id_fromdate', start);
}
if(item.data['id_todate'] ==null){
item.set('id_todate', end);
}
if(Ext.Date.format(item.data['id_fromdate'],'Y-m-d') > Ext.Date.format(item.data['id_todate'],'Y-m-d')){
bool=false;
showError('明细有效开始日期大于截止日期,不能保存!');return;
}
if(Ext.Date.format(item.data['id_fromdate'],'Y-m-d') < Ext.Date.format(new Date(),'Y-m-d')){
bool=false;
showError('明细有效开始日期小于当前日期,不能保存!');return;
}
}
});
if(bool){
this.FormUtil.beforeSave(this);
}
}
},
'erpUpdateButton': {
click: function(btn){
var bool = true;
//供应商必填
var grid = Ext.getCmp('grid'),
fromDate = Ext.getCmp('in_recorddate').value,
toDate = Ext.getCmp('in_enddate').value;
grid.getStore().each(function(item){
if(item.dirty && item.data[grid.necessaryField] != null && item.data[grid.necessaryField] != ""){
if(item.data['id_vendcode'] == null || item.data['id_vendcode'] == ''){
bool = false;
showError('明细表第' + item.data['id_detno'] + '行的供应商为空');return;
}
if(item.data['id_fromdate'] ==null ){
item.set('id_fromdate',fromDate);
}
if(item.data['id_todate'] ==null){
item.set('id_todate',toDate);
}
if(Ext.Date.format(item.data['id_fromdate'],'Y-m-d') > Ext.Date.format(item.data['id_todate'],'Y-m-d')){
bool = false;
showError('明细有效开始日期大于截止日期,不能保存!');return;
}
console.log(Ext.Date.format(item.data['id_fromdate'],'Y-m-d'));
if(Ext.Date.format(item.data['id_fromdate'],'Y-m-d') < Ext.Date.format(new Date(),'Y-m-d')){
bool = false;
showError('明细有效开始日期小于当前日期,不能保存!');return;
}
}
});
if(bool){
this.FormUtil.onUpdate(this);
}
}
},
'erpDeleteButton' : {
click: function(btn){
me.FormUtil.onDelete(Ext.getCmp('in_id').value);
}
},
'erpAddButton': {
click: function(){
me.FormUtil.onAdd('addInquiry', '新增询价单', 'jsps/scm/purchase/inquiry.jsp');
}
},
'erpUpdateMaxlimitInfoButton':{
afterrender:function(btn){
btn.setDisabled(true);
},
click: function(btn){
var id=btn.ownerCt.ownerCt.ownerCt.items.items[1].selModel.selected.items[0].data["id_id"];
var idstatus=btn.ownerCt.ownerCt.ownerCt.items.items[1].selModel.selected.items[0].data["id_status"];
if(idstatus!='已报价'){
showError("只能针对已报价的询价做限购");
}else{
var formCondition="id_id IS"+id;
var linkCaller='InquiryMaxlimit';
var win = new Ext.window.Window({
id : 'win',
height : '90%',
width : '95%',
maximizable : true,
buttonAlign : 'center',
layout : 'anchor',
items : [ {
tag : 'iframe',
frame : true,
anchor : '100% 100%',
layout : 'fit',
html : ''
} ],
listeners:{
'beforeclose':function(view ,opt){
//grid 刷新一次
var grid=Ext.getCmp('grid');
var gridParam = {caller: caller, condition: gridCondition};
grid.GridUtil.getGridColumnsAndStore(grid, 'common/singleGridPanel.action', gridParam, "");
Ext.getCmp('updateMaxlimitInfo').setDisabled(true);
}
}
});
win.show();
}
}
},
'erpCloseButton': {
click: function(btn){
me.FormUtil.beforeClose(me);
}
},
'erpSubmitButton': {
afterrender: function(btn){
var status = Ext.getCmp('in_statuscode');
var checkstatus = Ext.getCmp('in_checkstatuscode').value;
if(status && status.value != 'AUDITED'){
btn.hide();
}else if(checkstatus&&checkstatus!=null&&checkstatus!='ENTERING'){
btn.hide();
}
},
click: function(btn){
/*Ext.getCmp('in_kind').setValue = 'ss';
Ext.getCmp('in_enddate').setValue= 'ss';
console.log('ce');
me.FormUtil.onSubmit(Ext.getCmp('in_id').value);*/
var inclass = Ext.getCmp('in_class');
if(inclass&&inclass.value=='主动报价'){
me.FormUtil.getActiveTab().setLoading(true);
Ext.Ajax.request({
url : basePath + 'scm/purchase/submitInquiry.action',
params: {
id: Ext.getCmp('in_id').value
},
method : 'post',
callback : function(options,success,response){
me.FormUtil.getActiveTab().setLoading(false);
var localJson = new Ext.decode(response.responseText);
if(localJson.exceptionInfo){
showError(localJson.exceptionInfo);
}
if(localJson.success){
window.location.reload();
}
}
});
}else{
me.FormUtil.onSubmit(Ext.getCmp('in_id').value);
}
}
},
'erpResSubmitButton': {
afterrender: function(btn){
var status = Ext.getCmp('in_checkstatuscode');
if(status && status.value != 'COMMITED'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onResSubmit(Ext.getCmp('in_id').value);
}
},
'erpAuditButton': {
afterrender: function(btn){
var status = Ext.getCmp('in_statuscode');
if(status && status.value != 'ENTERING'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onAudit(Ext.getCmp('in_id').value);
}
},
'erpResAuditButton': {
afterrender: function(btn){
var status = Ext.getCmp('in_statuscode');
if(status && status.value != 'AUDITED'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onResAudit(Ext.getCmp('in_id').value);
}
},
'erpPrintButton': {
click: function(btn){
me.FormUtil.onPrint(Ext.getCmp('in_id').value);
}
},
'erpAgreePriceButton': {
afterrender: function(btn){
var status = Ext.getCmp('in_statuscode');
if(status && status.value != 'AUDITED'){
btn.hide();
}
},
click: function(btn){
var appstatus = Ext.getCmp('in_checkstatuscode');
if(appstatus && appstatus.value == 'APPROVED'){
showError('审批完成的询价单不能进行最终判定!');return;
}else{
inid=Ext.getCmp('in_id').value;
var url = basePath+'jsps/common/vastDatalist.jsp?_noc=1&whoami=ToPrice&urlcondition=id_inid='+inid+' and nvl(id_price,0)>0';
var main = parent.parent.Ext.getCmp("content-panel");
var panelId='Inquiry' + id;
var title='采购询价转核价' + id;
if(main){
panelId = panelId == main.getActiveTab().id ? Math.random() : panelId;
var panel = Ext.getCmp(panelId);
if(!panel){
var value = "";
if (title.toString().length>5) {
value = title.toString().substring(0,5);
} else {
value = title;
}
if(!contains(url, 'http://', true) && !contains(url, basePath, true)){
url = basePath + url;
}
panel = {
title : value,
tag : 'iframe',
tabConfig:{tooltip:title},
frame : true,
border : false,
layout : 'fit',
iconCls : 'x-tree-icon-tab-tab',
html : '',
closable : true
};
me.FormUtil.openTab(panel, panelId);
} else {
main.setActiveTab(panel);
}
} else {
if(!contains(url, basePath, true)){
url = basePath + url;
}
window.open(url);
}
}
//me.FormUtil.onPrint(Ext.getCmp('in_id').value);
}
},
'erpTurnPurcPriceButton': {
afterrender: function(btn){
var status = Ext.getCmp('in_statuscode');
if(status && status.value != 'AUDITED'){
btn.hide();
}
},
click: function(btn){
warnMsg("确定要转入物料核价单吗?", function(btn){
if(btn == 'yes'){
me.FormUtil.getActiveTab().setLoading(true);//loading...
Ext.Ajax.request({
url : basePath + 'scm/purchase/turnPurcPrice.action',
params: {
id: Ext.getCmp('in_id').value
},
method : 'post',
callback : function(options,success,response){
me.FormUtil.getActiveTab().setLoading(false);
var localJson = new Ext.decode(response.responseText);
if(localJson.exceptionInfo){
showError(localJson.exceptionInfo);
}
if(localJson.success){
turnSuccess(function(){
var id = localJson.id;
var url = "jsps/scm/purchase/purchasePrice.jsp?formCondition=pp_id=" + id +
"&gridCondition=ppd_ppid=" + id;
me.FormUtil.onAdd('PurchasePrice' + id, '物料核价单' + id, url);
});
}
}
});
}
});
}
},
/**
* 查看历史入库价
*/
'button[id=historyin]': {
click: function(){
var record = Ext.getCmp('grid').selModel.lastSelected;
if(record){
var prod = record.data['id_prodcode'];
var win = Ext.getCmp('in-win');
if(win == null){
win = Ext.create('Ext.window.Window', {
id: 'in-win',
width: '80%',
height: '100%',
maximizable : true,
layout: 'anchor',
closeAction: 'hide',
items: [Ext.create('erp.view.core.grid.Panel2', {
id: 'inhistory',
anchor: '100% 100%',
caller: 'ProdInOut!In!History',
condition: "pd_prodcode='" + prod + "' order by pd_prodmadedate desc",
bbar: null
})],
setMyTitle: function(code){//@param code 料号
this.setTitle('编号:' + code + ' 的历史入库价 ' +
'' +
'');
},
reload: function(code){//@param code 料号
var g = this.down('grid[id=inhistory]');
g.GridUtil.loadNewStore(g, {
caller: g.caller,
condition: "pd_prodcode='" + code + "' order by pd_prodmadedate desc"
});
this.setMyTitle(code);
},
prev: function(){//查看上一条
var item = Ext.getCmp('grid').prev();
if(item != null){
this.reload(item.data['id_prodcode']);
}
},
next: function(){//查看下一条
var item = Ext.getCmp('grid').next();
if(item != null){
this.reload(item.data['id_prodcode']);
}
}
});
win.setMyTitle(prod);
win.show();
} else {
win.reload(prod);
win.show();
}
} else {
alert("请先选择明细!");
}
}
},
/**
* 查看历史报价
*/
'button[id=historyquo]': {
click: function(){
var record = Ext.getCmp('grid').selModel.lastSelected;
if(record){
var prod = record.data['id_prodcode'];
var win = Ext.getCmp('history-win');
if(win == null){
win = Ext.create('Ext.window.Window', {
id: 'history-win',
width: '80%',
height: '100%',
maximizable : true,
layout: 'anchor',
closeAction: 'hide',
setMyTitle: function(code){//@param code 料号
this.setTitle('编号:' + code + ' 的报价历史 ' +
'' +
'');
},
reload: function(code){//@param code 料号
var g = this.down('grid[id=history]');
g.GridUtil.loadNewStore(g, {
caller: g.caller,
condition: "id_prodcode='" + code + "'"
});
g = this.down('grid[id=invid]');
g.GridUtil.loadNewStore(g, {
caller: g.caller,
condition: "ppd_prodcode='" + code + "' AND ppd_statuscode='VALID'"
});
this.setMyTitle(code);
},
prev: function(){//查看上一条
var item = Ext.getCmp('grid').prev();
if(item != null){
this.reload(item.data['id_prodcode']);
}
},
next: function(){//查看下一条
var item = Ext.getCmp('grid').next();
if(item != null){
this.reload(item.data['id_prodcode']);
}
}
});
win.setMyTitle(prod);
win.show();
win.add(Ext.create('erp.view.core.grid.Panel2', {
id: 'history',
anchor: '100% 60%',
caller: 'Inquiry!History',
condition: "id_prodcode='" + prod + "'",
bbar: null,
listeners: {
reconfigure: function(){
win.add(Ext.create('erp.view.core.grid.Panel2', {
id: 'invid',
title: '现有效价格',
anchor: '100% 40%',
caller: 'PurchasePrice!Invid',
condition: "ppd_prodcode='" + prod + "' AND ppd_statuscode='VALID'",
bbar: null
}));
}
}
}));
} else {
win.reload(prod);
win.show();
}
} else {
alert("请先选择明细!");
}
}
}
});
},
onGridItemClick: function(selModel, record){//grid行选择
this.GridUtil.onGridItemClick(selModel, record);
var grid=selModel.ownerCt;
var show=0;
Ext.Array.each(grid.necessaryFields, function(field) {
var fieldValue=record.data[field];
if(fieldValue==undefined||fieldValue==""||fieldValue==null){
show=1;
return;
}
});
if(show==1){
Ext.getCmp('updateMaxlimitInfo').setDisabled(true);
}else {
Ext.getCmp('updateMaxlimitInfo').setDisabled(false);
}
},
getForm: function(btn){
return btn.ownerCt.ownerCt;
}
});