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.
DS7/DSWeb/Areas/MvcShipping/Viewsjs/MsOpExpress/MsOpExpressIndex.js

655 lines
24 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.MsOpExpressIndex = function (config) {
Ext.applyIf(this, config);
this.initUIComponents();
window.Shipping.MsOpExpressIndex.superclass.constructor.call(this);
};
Ext.extend(Shipping.MsOpExpressIndex, Ext.Panel, {
PageSize: 100,
OprationStatus: null, //仅当弹出界面时使用
SelectedRecord: null,
initUIComponents: function () {
this.formname = "formMsOpExpressIndex"; //页面名称
//定义数据集
this.storeList = Ext.create('Ext.data.Store', {
pageSize: this.PageSize,
model: 'MsOpExpress',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/MvcShipping/MsOpExpress/GetDataList',
reader: {
id: 'GID',
root: 'data',
totalProperty: 'totalCount'
}
}
});
this.initgirdcolums = [
{
sortable: true,
dataIndex: 'GID',
header: 'GID',
hidden: true,
width: 160
}, {
sortable: true,
dataIndex: 'EXNO',
header: '快递号',
width: 120
}, {
sortable: true,
dataIndex: 'BILLDATE',
header: '快递日期',
width: 120
}, {
sortable: true,
dataIndex: 'BILLSTATUS',
header: '快递状态',
width: 120
}, {
sortable: true,
dataIndex: 'EXPRESSCORP',
header: '快递公司',
width: 100
}, {
sortable: true,
dataIndex: 'RECEIVECUST',
header: '收件公司',
width: 160
}, {
sortable: true,
dataIndex: 'RECEIVECITY',
header: '所在城市',
width: 100
}, {
sortable: true,
dataIndex: 'RECEIVE',
header: '收件公司名称',
width: 160
}, {
sortable: true,
dataIndex: 'GOODSNAME',
header: '品名',
width: 180
}, {
sortable: true,
dataIndex: 'BILLFEE',
header: '快递费',
width: 180
}, {
sortable: true,
dataIndex: 'REMARKS',
header: '备注',
width: 200
}, {
sortable: true,
dataIndex: 'CREATEUSERREF',
header: '录入人',
width: 100
}, {
sortable: true,
dataIndex: 'CREATETIME',
header: '录入时间',
width: 120
}
];
this.girdcolums = this.initgirdcolums;
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,
viewConfig: {
enableTextSelection: true
},
selModel: this.GridCheckBoxModel,
columns: this.girdcolums,
bbar: Ext.create('Ext.PagingToolbar', {
store: this.storeList,
displayInfo: true,
displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录',
emptyMsg: "没有数据"
})
});
/////////////以下部分为获取存储的gridpanel显示样式
this.girdcolums = DsTruck.GetGridPanel(USERID, this.formname, this.girdcolums, 1); //使用者id表名中间column数组跳过一开始的几列
// this.girdcolums.unshift(new Ext.grid.RowNumberer());
this.gridList.reconfigure(this.storeList, this.girdcolums);
this.gridList.columns[1] = new Ext.grid.RowNumberer();
////////////////////////////////////////////////
this.gridList.addListener('itemdblclick', function (dataview, record, item, index, e, b) {
this.SelectedRecord = record;
this.OprationStatus = 'edit';
DsOpenEditWin('/MvcShipping/MsOpExpress/Edit');
// window.open('/MvcShipping/MsOpExpress/Edit', "OPEXPRESS", 'width=800,height=650,top=0,left=0,resizable=yes,status=yes,menubar=no,scrollbars=yes');
}, this);
//#region formSearch
//#region formSearch枚举参照相关
this.StoreExpStatus = Ext.create('Ext.data.Store', {
fields: ['OpLb']
});
this.StoreExpStatus.add({ "OpLb": "" });
this.StoreExpStatus.add({ "OpLb": "新建" });
this.StoreExpStatus.add({ "OpLb": "已下单" });
this.StoreExpStatus.add({ "OpLb": "已发件" });
this.StoreExpStatus.add({ "OpLb": "已收件" });
this.comboxExpressStatus = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '快件状态',
store: this.StoreExpStatus,
forceSelection: true,
name: 'EXPSTATUS',
valueField: 'OpLb',
displayField: 'OpLb',
enableKeyEvents: true,
listeners: {
keyup: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
});
//#endregion
_this = this;
this.formSearch = Ext.widget('form', {
frame: true,
region: 'center',
bodyPadding: 5,
fieldDefaults: {
margins: '2 2 2 2',
labelAlign: 'right',
flex: 1,
labelWidth: 90,
msgTarget: 'qtip'
},
items: [
{//fieldset 1
xtype: 'container',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '快递号',
name: 'PORTID',
enableKeyEvents: true,
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
}, {
fieldLabel: '编号',
name: 'BLNO',
enableKeyEvents: true,
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
},this.comboxExpressStatus,{
fieldLabel: '收件客户',
name: 'PORTENAME',
enableKeyEvents: true,
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
}, {
fieldLabel: '快递日期',
format: 'Y-m-d',
xtype: 'datefield',
name: 'ETDbgn',
enableKeyEvents: true,
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
}, {
fieldLabel: '到',
format: 'Y-m-d',
xtype: 'datefield',
name: 'ETDend',
enableKeyEvents: true,
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
}
]
}
]//end items(fieldset 1)
}//end fieldset 1
]//end root items
});
//#endregion formSearch
_this = this;
//查询工具条
this.panelBtn = new Ext.Panel({
region: "north",
tbar: [
{
text: "新建",
iconCls: "btnadd",
handler: function (button, event) {
this.OprationStatus = 'add';
DsOpenEditWin('/MvcShipping/MsOpExpress/Edit');
// window.open('/MvcShipping/MsOpExpress/Edit', "OPEXPRESS", 'width=800,height=650,top=0,left=0,resizable=yes,status=yes,menubar=no,scrollbars=yes');
},
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: "状态",
menu: [
{ text: "更新为已发件",
handler: function (menu, event) {
_this.onExpressRefreshStatusClick('已发件');
}
}, { text: "更新为已收件",
handler: function (menu, event) {
_this.onExpressRefreshStatusClick('已收件');
}
}, { text: "查看动态",
handler: function (menu, event) {
_this.onExpressStatusClick();
}
}],
scope: this
}, '-' ,{
text: "打印",
iconCls: "btnprint",
handler: function (button, event) {
_this.Print();
},
scope: this
}, '-', {
text: "保存列表样式",//Zi.LAN.btntest, //"保存列表样式",
id: "btntest",
menu: [
{
text: "保存", //Zi.LAN.SaveGridPanel, //"保存",
handler: function (button, event) {
this.girdcolums = DsTruck.SaveGridPanel(USERID, _this.formname, _this.gridList.columns, _this.girdcolums, 1, true);
}
}, {
text: "初始化", //Zi.LAN.SaveGridPanel2, //"初始化",
handler: function (menu, event) {
_this.InitGrid(_this.initgirdcolums);
_this.girdcolums = DsTruck.SaveGridPanel(USERID, _this.formname, _this.gridList.columns, _this.initgirdcolums, 1, true);
}
}
],
scope: this
}
]
});
this.panelTop = new Ext.Panel({
layout: "border",
region: "north",
height: 80,
items: [this.formSearch, this.panelBtn]
});
Ext.apply(this, {
items: [this.panelTop, this.gridList]
});
this.storeList.on('beforeload', function (store) {
var sql = this.getCondition();
Ext.apply(store.proxy.extraParams, { condition: sql });
}, this);
thisport = this;
var sql =" BILLSTATUS='新建' OR BILLSTATUS='已发件' ";
this.storeList.load({
params: { start: 0, limit: this.PageSize, sort: '', condition: sql },
waitMsg: "正在查询数据...",
scope: this
});
this.storeExpressCorp = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsInfoClientModel',
proxy: { url: '/MvcShipping/MsInfoClient/GetDataListAll' }
});
this.storeExpressCorp.load({ params: { condition: "ISEXPRESS='1'"} });
}, //end initUIComponents
onRefreshClick: function (button, event) {
var sql = this.getCondition();
this.storeList.load({
params: { start: 0, limit: this.PageSize, sort: '', condition: sql },
waitMsg: "正在查询数据...",
scope: this
});
},
onExpressRefreshStatusClick: function (expstatus) {
var GidStr = '';
var records = this.GridCheckBoxModel.selected.items;
if (records.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择要刷新的业务!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var bodyAddDatas = [];
for (var i = 0; i < records.length; i++) {
var rec = records[i];
if (rec.data.MANIFESTSTATUS != expstatus) {
bodyAddDatas.push(rec);
}
}
_this = this;
if (bodyAddDatas.length == 0) {
Ext.Msg.show({ title: '提示', msg: '没有要刷新的业务!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
} else {
Ext.Msg.wait('正在更新数据...');
var jsonbodyAddDatas = ConvertRecordsToJsonAll(bodyAddDatas);
Ext.Ajax.request({
waitMsg: '正在锁定...',
url: '/MvcShipping/MsOpExpress/RefreshExpressSTATUSList',
params: {
data: jsonbodyAddDatas,
status: expstatus
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
return;
} else {
Ext.Msg.show({ title: '提示', msg: result.Message, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
_this.onRefreshClick();
}
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
},
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/MsOpExpress/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
//#region 快递动态
onExpressStatusClick: 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];
var expno = record.data.EXNO;
var expid = record.data.GID;
var expcorpid = '';
var CORP = record.data.EXPRESSCORP;
if (expno == "" || CORP == "") {
Ext.Msg.show({ title: '提示', msg: '快递单号和快递公司不能为空!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
} else {
var Cargoinforecords = DsStoreQueryBy(this.storeExpressCorp, 'SHORTNAME', CORP);
if (Cargoinforecords.getCount() > 0) {
var Cargoinfodata = Cargoinforecords.getAt(0).data;
expcorpid = Cargoinfodata.EDICODE;
}
if (expcorpid == "") {
Ext.Msg.show({ title: '提示', msg: '快递公司的EDI代码不能为空!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
// if (CORP.indexOf("中通") >= 0)
// expcorpid = 'zhongtong';
// else if (CORP.indexOf("圆通") >= 0)
// expcorpid = 'yuantong';
// else if (CORP.indexOf("申通") >= 0)
// expcorpid = 'shentong';
// else if (CORP.indexOf("韵达") >= 0)
// expcorpid = 'yunda';
// else if (CORP.indexOf("EMS") >= 0)
// expcorpid = 'ems';
// else if (CORP.indexOf("百世") >= 0 || CORP.indexOf("汇通") >= 0)
// expcorpid = 'huitongkuaidi';
var ExpressStatusView = new Shipping.ExpressStatusView({
});
ExpressStatusView.expno = expno;
ExpressStatusView.expcorpid = expcorpid;
ExpressStatusView.expid = expid;
ExpressStatusView.EditRecord = record;
ExpressStatusView.show();
return;
}
},
//#endregion
Print: function () {
_this = this;
if (this.storeList.getCount() == 0) {
return;
}
var selectedRecords = [];
selectedRecords = this.GridCheckBoxModel.selected.items;
if (selectedRecords.length == 0) {
Ext.Msg.show({ title: Zi.LAN.TiShi, msg: Zi.LAN.QingXianXuanZeYeWu, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); //'提示', '请先选择要打印的业务!'
return;
}
var gidSql = '';
for (var i = 0; i < selectedRecords.length; i++) {
var record = selectedRecords[i];
var sfGId = "'" + record.get('GID') + "'";
if (gidSql == '') {
gidSql = sfGId;
} else {
gidSql = gidSql + "," + sfGId;
}
};
var printType = 'MSOPEXPRESS';
var sql1 =
"SET LANGUAGE 'us_english' select e.*,s.origincode,s.destcode,s.proCode,s.destRouteLabel,s.destTeamCode,s.codingMapping, s.codingMappingOut, s.twoDimensionCode, s.abFlag from op_express e left join op_express_sfprint s on e.EXNO = s.mailno WHERE e.GID IN (" + gidSql + ")";
//sql1 += "s.codingMapping, s.codingMappingOut, s.twoDimensionCode, s.abFlag ";
//sql1 += " from op_express e inner join op_express_sfprint s on e.EXNO = s.mailno WHERE e.GID IN (" + gidSql + ")";
var sql2 = "";
var sql3 = "";
var sql4 = "";
var sql5 = "";
var sql6 = "";
PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6);
},
getCondition: function () {
var form = this.formSearch.getForm();
if (!form.isValid()) {
Ext.Msg.alert('提示', '查询条件赋值错误,请检查。');
return '';
}
var sql = '';
var PORTID = form.findField('PORTID').getValue();
sql = sql + getAndConSql(sql, PORTID, "EXNO like '%" + PORTID + "%'");
var BLNO = form.findField('BLNO').getValue();
sql = sql + getAndConSql(sql, BLNO, " gid in (select EXPID from op_express_doc e left join op_receipt d on(d.GID = e.DOCID) inner join v_op_bs b on(b.BSNO = d.BSNO) and (b.MBLNO like '%" + BLNO + "%' or b.CUSTNO like '%" + BLNO + "%'))");
var EXPSTATUS = form.findField('EXPSTATUS').getValue();
sql = sql + getAndConSql(sql, EXPSTATUS, " BILLSTATUS='" + EXPSTATUS + "'");
var PORTENAME = form.findField('PORTENAME').getValue();
sql = sql + getAndConSql(sql, PORTENAME, "RECEIVE like '%" + PORTENAME + "%'");
var ETDbgn = form.findField('ETDbgn').getRawValue();
sql = sql + getAndConSql(sql, ETDbgn, "BILLDATE >='" + ETDbgn + "'");
var ETDend = form.findField('ETDend').getRawValue();
sql = sql + getAndConSql(sql, ETDend, "BILLDATE <='" + ETDend + "'");
return sql;
},
OprationSwap: function () {
var ret = new Array();
ret[0] = this.OprationStatus;
ret[1] = this.storeList;
ret[2] = this.SelectedRecord;
return ret;
}
});