You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

508 lines
15 KiB
JavaScript

Ext.namespace('Shipping');
Shipping.MsCompanyOrderFeeEdit = function (config) {
Ext.applyIf(this, config);
this.initUIComponents();
window.Shipping.MsCompanyOrderFeeEdit.superclass.constructor.call(this);
};
Ext.extend(Shipping.MsCompanyOrderFeeEdit, Ext.Panel, {
ParentWin: null,
OpStatus: 'add',
StoreList: null,
EditRecord: null,
Editdata: null,
isAudit: null,
accdate: null,
seaeop: "",
seaecustservice: "",
reason: "",
BillType: null,
OrType: null,
initUIComponents: function () {
this.serialNo = 0;
//this.bodyDel = [];
this.itemindex = 1;
this.StoreFeeAGENTFEE = Ext.create('Ext.data.Store', {
fields: ['CODE','AGENTFEE']
});
this.StoreFeeAGENTFEE.add({ "CODE": 1, "AGENTFEE": "是" });
this.StoreFeeAGENTFEE.add({ "CODE": 0, "AGENTFEE": "否" });
this.comboxAGENTFEE = Ext.create('DsExt.ux.RefTableCombox', {
store: this.StoreFeeAGENTFEE,
forceSelection: true,
name: 'AGENTFEE',
valueField: 'CODE',
displayField: 'AGENTFEE'
});
this.storeFeeNameRef = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.FeeTypeRefModel',
proxy: { url: '/MvcShipping/MsChFee/GetFeeTypeRefList' }
});
this.storeFeeNameRef.load({ params: { condition: ""} });
this.comboxFeeNameRef = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storeFeeNameRef,
forceSelection: true,
name: 'FEENAME',
valueField: 'Name',
displayField: 'CodeAndName'
});
this.StoreCurr = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsFeeCurr',
proxy: { url: '/MvcShipping/MsChFee/GetFeeCurrList' }
});
this.StoreCurr.load({ params: { condition: ""} });
this.comboxCurr = Ext.create('DsExt.ux.RefTableCombox', {
store: this.StoreCurr,
forceSelection: true,
name: 'CURRENCY',
valueField: 'CURR',
displayField: 'CURR'
});
this.storeFeeUnit = Ext.create('DsExt.ux.RefTableStore', {
fields: ['UNIT'],
proxy: { url: '/MvcShipping/MsCodeFeeTemplate/GetFeeUnit' }
});
this.storeFeeUnit.load({ params: { condition: ""} });
this.comboxFeeUnit = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storeFeeUnit,
name: 'UNIT',
valueField: 'UNIT',
displayField: 'UNIT'
});
this.storeFee = Ext.create('Ext.data.Store', {
model: 'MsCompanyOrderFee',
remoteSort: false,
proxy: {
type: 'ajax',
url: '/MvcShipping/MsOpSubSeaOrder/GetCompanyFeeList',
reader: {
id: 'GId',
root: 'data',
totalProperty: 'totalCount'
}
}
});
this.cellEditingDrChFee = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
_this = this;
this.gridFee = new Ext.grid.GridPanel({
store: this.storeFee,
enableHdMenu: false,
region: "center",
height: 280,
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
plugins: [this.cellEditingDrChFee],
selType: 'cellmodel',
tbar: [{
text: '保存明细',
tooltip: '保存明细',
id: "btnadddetail",
iconCls: "btnsave",
handler: function (button, event) {
this.onSaveDetailClick(button, event);
},
scope: this
}, '-', {
text: '增加明细',
tooltip: '增加明细',
id: "btnaddafeedetail",
iconCls: "btnadddetail",
handler: function (button, event) {
this.onAddDetailClick(button, event);
},
scope: this
}, '-', {
text: '删除明细',
tooltip: '删除明细',
id: "btndelafeedetail",
iconCls: "btndeletedetail",
handler: function (button, event) {
this.deleteDetail(button, event);
},
scope: this
}],
columns: [{
sortable: true,
dataIndex: 'GID',
header: '惟一编号',
hidden: true,
width: 160
}, {
sortable: true,
dataIndex: 'COMPANYID',
header: 'COMPANYID',
hidden: true,
width: 160
}, {
sortable: true,
dataIndex: 'FEENAME',
header: '费用名称',
editor: this.comboxFeeNameRef,
width: 100
}, {
sortable: true,
dataIndex: 'UNITPRICE',
header: '单价',
editor: {
xtype: 'numberfield',
keyNavEnabled: false,
selectOnFocus: true,
hideTrigger: true,
mouseWheelEnabled: false,
enableKeyEvents: true
},
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
},
align: 'right',
width: 80
}, {
sortable: true,
dataIndex: 'CURRENCY',
header: '币别',
editor: this.comboxCurr,
width: 60
}, {
sortable: true,
dataIndex: 'UNIT',
header: '标准',
editor: this.comboxFeeUnit,
width: 80
}, {
sortable: true,
dataIndex: 'EXCHANGERATE',
header: '汇率',
editor: {
xtype: 'numberfield',
keyNavEnabled: false,
selectOnFocus: true,
hideTrigger: true,
mouseWheelEnabled: false,
enableKeyEvents: true
},
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { try { var lsValue = usMoney(value, 2, '', false); if (lsValue != "NaN") { value = lsValue; if (parseFloat(lsValue) < 0) { return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>'; } } else { return value; } } catch (e) { return value; } return value; },
align: 'right',
width: 60
}, {
sortable: true,
dataIndex: 'SORT',
header: '排序',
editor: {
xtype: 'numberfield',
keyNavEnabled: false,
selectOnFocus: true,
hideTrigger: true,
mouseWheelEnabled: false,
enableKeyEvents: true
},
align: 'right',
width: 80
}, {
sortable: true,
dataIndex: 'AGENTFEE',
header: '是否代理费用',
editor: this.comboxAGENTFEE,
align: 'right',
width: 80
}
]
});
this.gridFee.on('edit', function (editor, e, eOpts) {
this.gridListChFeeAfterEdit(editor, e, eOpts);
}, this);
// this.gridFee.on('beforeedit', function (editor, e) {
// return this.cellEditingChFeeBeforeEdit(editor, e);
// }, this);
//#region 框架结构
this.panelpage = new Ext.Panel({
title: '模板明细',
layout: "border",
region: 'center',
animate: true,
autoScroll: true,
// containerScroll: true,
frame: false,
items: [this.gridFee]
});
this.panelSeae = new Ext.Panel({
id: 'pnlmodSeaeOrderInfo',
layout: "border",
region: 'center',
animate: true,
autoScroll: true,
frame: false,
//closable:true,
items: [this.panelpage]
});
Ext.apply(this, {
items: [this.panelSeae]
});
//#endregion
//#region 其他
this.InitData();
//#endregion
}, //end initUIComponents
//#region 加载事件
InitData: function () {
this.storeFee.load({ params: { condition:''} });
}, //end InitData
//#endregion
//#region 保存
onAddDetailClick: function (button, event) {
var newSerialno = 0;
store = this.storeFee;
var record = Ext.create('MsCompanyOrderFee', {
GID: '',
FEENAME: "",
UNITPRICE: 0,
SORT: 0,
EXCHANGERATE: 1,
CURRENCY: "",
UNIT: "",
AGENTFEE: 1
});
store.add(record);
this.cellEditingDrChFee.startEditByPosition({ row: n - 1, column: 1 });
},
deleteDetail: function (button, event) {
var selectedRecords = this.gridFee.selModel.getSelection();
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
this.storeFee.remove(rec);
}
},
onSaveDetailClick: function (button, event) {
var feedatas = [];
for (var i = 0; i < this.storeFee.getCount(); i += 1) {
var member = this.storeFee.getAt(i);
feedatas.push(member);
}
//
var jsonfee = ConvertRecordsToJsonAll(feedatas);
//
Ext.Msg.wait('正在保存数据, 请稍侯..');
Ext.Ajax.request({
waitMsg: '正在保存数据...',
url: '/MvcShipping/MsOpSubSeaOrder/SaveCompanyFee',
scope: this,
params: {
fee: jsonfee
},
callback: function (options, success, response) {
if (success) {
Ext.MessageBox.hide();
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
for (var j = 0; j < this.storeFee.getCount(); j += 1) {
var memberbody = this.storeFee.getAt(j);
memberbody.commit();
};
} else {
Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
}
} else {
Ext.Msg.show({ title: '请重试',
msg: '服务器响应出错',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
}
}
});
}, //end save
//#endregion
getToMonth: function () {
var now = new Date();
var year = now.getFullYear(); //年
var month = now.getMonth() + 1; //月
var clock = year + "-";
if (month < 10)
clock = clock + "0" + month;
else
clock = clock + month;
return (clock);
},
//#region 编辑时按钮等的状态
GetStringNum: function (str) {
var num = 0;
if (str == null || str == '') return num;
if (str.length == 0) return num;
var if_find = false;
var str_num = '';
for (var i = 0; i < str.length; i += 1) {
var member = str.substr(i, 1);
if ((member == '0') || (member == '1') || (member == '2') || (member == '3')
|| (member == '4') || (member == '5') || (member == '6') || (member == '7')
|| (member == '8') || (member == '9') || (member == '.') || (member == '-')) {
if (!if_find) {
str_num = str_num + member;
}
} else {
if_find = true;
}
}
return str_num;
},
setBtnStatus: function (enable) {
var btnESave = Ext.getCmp('btnESave');
var btnESaveAndClose = Ext.getCmp('btnESaveAndClose');
var btnESaveAndNew = Ext.getCmp('btnESaveAndNew');
if (enable == 2) {
btnESave.setVisible(false); ;
btnESaveAndClose.setVisible(false);
btnESaveAndNew.setVisible(false);
} else {
btnESave.setVisible(true); ;
btnESaveAndClose.setVisible(true);
btnESaveAndNew.setVisible(true);
}
},
setSaveBtnStatus: function (enable) {
var btnESave = Ext.getCmp('btnESave');
var btnESaveAndClose = Ext.getCmp('btnESaveAndClose');
var btnESaveAndNew = Ext.getCmp('btnESaveAndNew');
if (enable) {
btnESave.enable();
btnESaveAndClose.enable();
btnESaveAndNew.enable();
} else {
btnESave.disable();
btnESaveAndClose.disable();
btnESaveAndNew.disable();
}
},
//#endregion
//#region 打印
Print: function () {
/*
var basicForm = this.formEdit.getForm();
var billNo = basicForm.findField('BillNo').value;
if (billNo == '*' || billNo == '') {
Ext.Msg.show({ title: '错误', msg: '单据还没有保存,请保存后再打印', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
return;
}
var printType = 'MSWLBULKBS';
var sql1 = "SET LANGUAGE 'us_english' SELECT * FROM tMsWlBulkHead WHERE BillNo = '" + billNo + "'";
var sql2 = "";
var sql3 = "";
var sql4 = "";
var sql5 = "";
var sql6 = "";
PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6);
*/
}
//#endregion
});