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.

484 lines
18 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

Ext.namespace('Shipping');
Shipping.MsSysInvInterFaceSetIndex = function (config) {
Ext.applyIf(this, config);
this.initUIComponents();
window.Shipping.MsSysInvInterFaceSetIndex.superclass.constructor.call(this);
};
Ext.extend(Shipping.MsSysInvInterFaceSetIndex, Ext.Panel, {
OprationStatus: null, //仅当弹出界面时使用
SelectedRecord: null,
initUIComponents: function () {
//定义数据集
this.storeList = Ext.create('Ext.data.Store', {
model: 'MsSysInvInterFaceSet',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/MvcShipping/MsSysInvInterFaceSet/GetDataList',
reader: {
id: 'GID',
root: 'data',
totalProperty: 'totalCount'
}
}
});
this.storeINVOICELINE = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeINVOICELINE.load({ params: { enumTypeId: 80003 } });
this.comboxINVOICELINE = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storeINVOICELINE,
name: 'INVOICELINE',
valueField: 'EnumValueName',
displayField: 'EnumValueName'
});
this.storeINVITERFACE = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeINVITERFACE.load({ params: { enumTypeId: 96017 } });
this.comboxINVITERFACE = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storeINVITERFACE,
name: 'INVITERFACE',
valueField: 'EnumValueName',
displayField: 'EnumValueName'
});
Ext.define('MsCompanysEntity', {
extend: 'Ext.data.Model',
idProperty: 'GID',
fields: [
{ name: 'GID', type: 'string' }, //GID
{ name: 'CODENAME', type: 'string' }, //CODENAME
{ name: 'NAME', type: 'string' }, //NAME
{ name: 'FULLNAME', type: 'string' }, //FULLNAME
{ name: 'ENNAME', type: 'string' }, //公司英文名称
{ name: 'ADDRESS', type: 'string' }, //ADDRESS
{ name: 'ENADDRESS', type: 'string' }, //公司英文地址
{ name: 'POSTCODE', type: 'string' }, //POSTCODE
{ name: 'OFFICEPHONE', type: 'string' }, //OFFICEPHONE
{ name: 'FAX', type: 'string' }, //FAX
{ name: 'EMAIL', type: 'string' }, //EMAIL
{ name: 'WEBSITEURL', type: 'string' }, //WEBSITEURL
{ name: 'LICENSECODE', type: 'string' }, //LICENSECODE
{ name: 'TAXCODE', type: 'string' }, //TAXCODE
//{name: 'LOGO', type: 'byte[]' }, //徽标
{ name: 'CREATEUSER', type: 'string' }, //CREATEUSER
{ name: 'CREATETIME', type: 'DateTime' }, //CREATETIME
{ name: 'MODIFIEDUSER', type: 'string' }, //更新人gid
{ name: 'MODIFIEDTIME', type: 'DateTime' }, //更新时间
{ name: 'ISDELETED', type: 'bool' }, //ISDELETED
{ name: 'ISDISABLE', type: 'bool' }, //ISDISABLE
{ name: 'PARENTID', type: 'string' }, //PARENTID
{ name: 'BILLRISES', type: 'string' }, //发票抬头
{ name: 'CHEQUEPAYABLE', type: 'string' }, //支票抬头
{ name: 'PRTHEADXML1', type: 'string' }, //打印抬头1
{ name: 'PRTHEADXML2', type: 'string' }, //打印抬头2
{ name: 'PRTHEADXML3', type: 'string' }, //打印抬头3
{ name: 'PRTHEADXML4', type: 'string' }, //打印抬头4
{ name: 'PRTHEADXML5', type: 'string' }, //打印抬头5
{ name: 'BANKSHEAD', type: 'string' }, //BANKSHEAD
{ name: 'LOCALCURR', type: 'string' }, //本地货币
{ name: 'WORKFLOWMSG', type: 'string' }, //是否启用消息提示
{ name: 'GPSUSER', type: 'string' }, //GPSUser
{ name: 'GPSPASSWORD', type: 'string' }, //GPSPassWord
{ name: 'ORGANIZATIONCODE', type: 'string' },
{ name: 'MODIFIEDUSERNAME', type: 'string' },
{ name: 'DBNAME', type: 'string' },
{ name: 'LOGOURL', type: 'string' }
]
});
this.storeSaleCompany = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsCompanysEntity',
proxy: { url: '/MvcShipping/MsCompanys/GetNoPicDataList' }
});
this.storeSaleCompany.load({ params: { condition: "" } });
this.comboxSaleCompany = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: Zi.LAN.SALECOMPANY, //'委托分公司',
store: this.storeSaleCompany,
forceSelection: true,
name: 'CORPID',
valueField: 'GID',
displayField: 'NAME'
});
_this = this;
this.gridListCellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
this.GridCheckBoxModel = Ext.create('Ext.selection.CheckboxModel');
//定义Grid
this.gridList = new Ext.grid.GridPanel({
store: this.storeList,
enableHdMenu: false,
region: 'center',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
plugins: [this.gridListCellEditing],
selType: 'cellmodel',
selModel: this.GridCheckBoxModel,
columns: [{
sortable: true,
dataIndex: 'GID',
header: 'GID',
hidden: true,
width: 120
}, {
sortable: true,
dataIndex: 'INVOICELINE',
header: '发票种类',
width: 160,
editor: this.comboxINVOICELINE
}, {
sortable: true,
dataIndex: 'INVITERFACE',
header: '接口类型',
width: 160,
editor: this.comboxINVITERFACE
}, {
sortable: true,
dataIndex: 'NUONUOAPPKEY',
header: 'AppKey',
width: 90,
editor: {
xtype: 'textfield'
}
}, {
sortable: true,
dataIndex: 'NUONUOAPPSECRET',
header: 'AppSecret',
width: 160,
editor: {
xtype: 'textfield'
}
}, {
sortable: true,
dataIndex: 'CORPID',
header: '所属公司',
width: 140,
renderer: function (value, p, record) {
if (value == null || value == '') return '';
else return record.data.COMPANYNAME;
},
editor: this.comboxSaleCompany
}, {
sortable: true,
dataIndex: 'extensionNumber',
header: '分机号',
width: 80,
editor: {
xtype: 'textfield'
}
}, {
sortable: true,
dataIndex: 'CREATEUSERREF',
header: '录入人',
width: 85
}, {
sortable: true,
dataIndex: 'CREATETIME',
header: '录入时间',
width: 130
}
]
});
// this.gridList.addListener('itemdblclick', function (dataview, record, item, index, e, b) {
// this.SelectedRecord = record;
// this.OprationStatus = 'edit';
// window.open('/MvcShipping/MsCodeYardDataSet/Edit', "CODEYARDDATASET", 'width=800,height=600,top=0,left=0,resizable=yes,status=yes,menubar=no,scrollbars=yes');
// }, this);
//#region formSearch
//#region formSearch枚举参照相关
//#endregion
//#endregion formSearch
//查询工具条
this.panelBtn = new Ext.Panel({
region: "north",
tbar: [
{
text: "新增",
iconCls: "btnadd",
handler: function (button, event) {
this.addDetail();
// this.OprationStatus = 'add';
// window.open('/MvcShipping/MsCodeYardDataSet/Edit', "CODEYARDDATASET", 'width=800,height=600,top=0,left=0,resizable=yes,status=yes,menubar=no,scrollbars=yes');
},
scope: this
},
{
text: "保存",
iconCls: "btnsave",
handler: function (button, event) {
this.onPostDetailClick(button, event);
},
scope: this
}, '-',
{
text: "删除",
iconCls: "btndelete",
handler: function (button, event) {
this.onDeleteClick(button, event);
},
scope: this
},
'-',
{
text: "刷新",
iconCls: "btnrefresh",
handler: function (button, event) {
this.onRefreshClick(button, event);
},
scope: this
},
{
text: "重置条件",
iconCls: "btnreset",
handler: function (button, event) {
},
scope: this
}, '-',
{
text: "重新获取开票认证",
iconCls: "btnrefresh",
handler: function (button, event) {
this.onRegainClick(button, event);
},
scope: this
}
]
});
//this.panelTop = new Ext.Panel({
// layout: "border",
// region: "north",
// height: 80,
// items: [this.panelBtn]
//});
Ext.apply(this, {
items: [this.panelBtn, this.gridList]
});
this.storeList.on('beforeload', function (store) {
var sql = this.getCondition();
Ext.apply(store.proxy.extraParams, { condition: sql });
}, this);
this.gridList.on('edit', function (editor, e, eOpts) {
this.gridListAfterEdit(editor, e, eOpts);
}, this);
this.onRefreshClick();
}, //end initUIComponents
onRefreshClick: function (button, event) {
var sql = this.getCondition();
this.storeList.load({
params: { start: 0, limit: 500, sort: '', condition: sql },
waitMsg: "正在查询数据...",
scope: this
});
},
addDetail: function () {
//var newSerialno = DsGetNewSerialNo(this.storeBodyList, this.serialNo);
var record = Ext.create('MsSysInvInterFaceSet', {
GID: '*',
INVOICELINE: '',
INVITERFACE: ''
});
this.storeList.add(record);
var n = this.storeList.getCount();
this.gridListCellEditing.startEditByPosition({ row: n - 1, column: 1 });
},
onPostDetailClick: function (button, event) {
var bodyDrChFeeDatas = [];
var i;
for (i = 0; i < this.storeList.getCount(); i += 1) {
var memberyf = this.storeList.getAt(i);
bodyDrChFeeDatas.push(memberyf);
};
var jsonChFeeBody = ConvertRecordsToJsonAll(bodyDrChFeeDatas);
_thisfee = this;
Ext.Msg.wait('正在保存数据, 请稍侯..');
Ext.Ajax.request({
waitMsg: '正在保存数据...',
url: '/MvcShipping/MsSysInvInterFaceSet/SaveDetail',
scope: this,
params: {
body: jsonChFeeBody
},
callback: function (options, success, response) {
if (success) {
Ext.MessageBox.hide();
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
this.onRefreshClick();
} 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
onDeleteClick: function (button, event) {
var selections = this.gridList.getSelectionModel().getSelection();
if (selections.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择单据!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var record = selections[0];
Ext.MessageBox.confirm('提示', '确定删除该记录吗?', function (btn) {
if (btn == 'yes') {
Ext.Msg.wait('正在删除数据...');
Ext.Ajax.request({
waitMsg: '正在删除数据...',
url: '/MvcShipping/MsSysInvInterFaceSet/Delete',
params: {
data: Ext.JSON.encode(record.data)
},
callback: function (options, success, response) {
if (success) {
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
this.storeList.remove(record);
Ext.Msg.show({ title: '提示', msg: jsonresult.Message, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
}
else {
Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
}
}
},
failure: function (response, options) {
Ext.Msg.show({ title: '警告', msg: '服务器响应出错,请重试', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
},
success: function (response, options) {
},
scope: this
}); //end Ext.Ajax.request
}
}, this);
}, //onDeleteClick
onRegainClick: function (button, event) {
var selections = this.gridList.getSelectionModel().getSelection();
if (selections.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择一条记录!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (selections.length != 1) {
Ext.Msg.show({ title: '提示', msg: '只能选择一条记录!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var record = selections[0];
var GID = record.data.GID;
Ext.MessageBox.confirm('提示', '确定重新获取开票认证信息吗注意该操作每个月只能成功执行最多30次。', function (btn) {
if (btn == 'yes') {
Ext.Msg.wait('正在获取数据...');
Ext.Ajax.request({
waitMsg: '正在获取数据...',
url: '/MvcShipping/MsSysInvInterFaceSet/RegainToken',
params: {
GID: GID
},
callback: function (options, success, response) {
if (success) {
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
//this.storeList.remove(record);
Ext.Msg.show({ title: '提示', msg: jsonresult.Message, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
}
else {
Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
}
}
},
failure: function (response, options) {
Ext.Msg.show({ title: '警告', msg: '服务器响应出错,请重试', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
},
success: function (response, options) {
},
scope: this
}); //end Ext.Ajax.request
}
}, this);
}, //onDeleteClick
gridListAfterEdit: function (editor, e, eOpts) {
if (e.value == e.originalValue) return;
if (e.field == 'CORPID') {
var currrecords = DsStoreQueryBy(this.storeSaleCompany, 'GID', e.value);
if (currrecords.getCount() > 0) {
var currdata = currrecords.getAt(0).data;
e.record.set('COMPANYNAME', currdata.NAME);
//e.record.set('Exchangerate', currdata.DEFRATE);
} else {
e.record.set('COMPANYNAME', '');
}
}
},
getCondition: function () {
var sql = '';
return sql;
},
OprationSwap: function () {
var ret = new Array();
ret[0] = this.OprationStatus;
ret[1] = this.storeList;
ret[2] = this.SelectedRecord;
return ret;
}
});