|
|
Ext.namespace('Shipping');
|
|
|
|
|
|
Shipping.MsPrice_QuotationEdit = function (config) {
|
|
|
Ext.applyIf(this, config);
|
|
|
this.initUIComponents();
|
|
|
window.Shipping.MsPrice_QuotationEdit.superclass.constructor.call(this);
|
|
|
};
|
|
|
|
|
|
Ext.extend(Shipping.MsPrice_QuotationEdit, Ext.Panel, {
|
|
|
parentWin: null,
|
|
|
opStatus: 'add',
|
|
|
StoreList: null,
|
|
|
editRecord: null,
|
|
|
Editdata: null,
|
|
|
MainEditRecord: null,
|
|
|
stroplb: '报价管理',///与视图 V_op_bs 的OPLBNAME相同 依赖于枚举类型96005
|
|
|
isfen: false,
|
|
|
PageSize: 50,
|
|
|
|
|
|
initUIComponents: function () {
|
|
|
this.serialNo = 0;
|
|
|
//this.bodyDel = [];
|
|
|
this.itemindex = 1;
|
|
|
this.initloaddata = 0;
|
|
|
this.accdatesameetd = 0;
|
|
|
this.MsPeriod = null;
|
|
|
this.SALEORDERDEPTBYOP = 0;
|
|
|
this.formname = "MsPrice_ContractEdit";
|
|
|
this.formname_Add = "MsPrice_ContractEdit_Add";
|
|
|
this.UpLoadFileType = 'Price_Quotation';
|
|
|
_this = this;
|
|
|
|
|
|
parentWin = window.parent.opener;
|
|
|
//mainWin = getMainForm(parentWin);
|
|
|
|
|
|
opflex = 0.6;//上方几个用户下拉框 《操作》等的宽度
|
|
|
ViaWidth = 90;//中转港信息的的标签宽度
|
|
|
|
|
|
//#region 信息加载
|
|
|
|
|
|
//权限范围
|
|
|
this.StoreOpRange = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'MsOP',
|
|
|
proxy: { url: '/MvcShipping/MsBaseInfo/GetOpIDRang' }
|
|
|
});
|
|
|
//this.StoreOpRange.load({ params: { optype: "modOrderManagement" } });
|
|
|
|
|
|
//#region 船公司
|
|
|
this.storeCARRIER = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'DsShipping.ux.CustomRefModel',
|
|
|
proxy: { url: '/CommMng/BasicDataRef/GetCustomRefListCARRIER' }
|
|
|
});
|
|
|
//this.storeCARRIER.load();
|
|
|
this.comboxCARRIER = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
fieldLabel: '船公司',
|
|
|
labelWidth:45,
|
|
|
store: this.storeCARRIER,
|
|
|
flex:1,
|
|
|
//queryMode: 'remote',
|
|
|
//minChars: 1,
|
|
|
//queryParam: 'CODENAME',
|
|
|
name: 'CARRIER',
|
|
|
id: 'search_carrier',
|
|
|
valueField: 'CustName',
|
|
|
displayField: 'CodeAndName',
|
|
|
listeners: {
|
|
|
specialkey: function (field, e) {
|
|
|
if (e.getKey() == e.ENTER) {
|
|
|
_this.onRefreshClick();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
this.comboxCARRIER_grid = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
|
|
|
store: this.storeCARRIER,
|
|
|
matchFieldWidth: false,
|
|
|
name: 'CARRIER',
|
|
|
|
|
|
valueField: 'CustName',
|
|
|
displayField: 'CodeAndName',
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
this.storeCustCode = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'DsShipping.ux.CustomRefModel',
|
|
|
proxy: { url: '/CommMng/BasicDataRef/GetCustomRefListController' }
|
|
|
});
|
|
|
//this.storeCustCode.load();
|
|
|
this.comboxCust = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
fieldLabel: '报价单位',
|
|
|
store: this.storeCustCode,
|
|
|
forceSelection: true,
|
|
|
//queryMode: 'remote',
|
|
|
//minChars: 2,
|
|
|
autoSelect: true,
|
|
|
name: 'CUSTOMERNAME',
|
|
|
valueField: 'CustName',
|
|
|
displayField: 'CodeAndName'
|
|
|
//,allowBlank: false
|
|
|
});
|
|
|
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
//#region 起运港 目的港
|
|
|
this.storeCodeLoadport = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'DsShipping.ux.CodeLoadportModel',
|
|
|
proxy: { url: '/CommMng/BasicDataRef/GetCodeLoadportList' }
|
|
|
});
|
|
|
//this.storeCodeLoadport.load();
|
|
|
this.comboxPORTLOAD = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
fieldLabel: '起运港',
|
|
|
labelWidth: 45,
|
|
|
flex: 1,
|
|
|
store: this.storeCodeLoadport,
|
|
|
name: 'PORTLOAD',
|
|
|
id: 'search_portload',
|
|
|
valueField: 'PORT',
|
|
|
displayField: 'CodeAndName',
|
|
|
listeners: {
|
|
|
specialkey: function (field, e) {
|
|
|
if (e.getKey() == e.ENTER) {
|
|
|
_this.onRefreshClick();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
this.comboxPORTLOAD_grid = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
store: this.storeCodeLoadport,
|
|
|
matchFieldWidth: false,
|
|
|
name: 'PORTLOAD',
|
|
|
valueField: 'PORT',
|
|
|
displayField: 'CodeAndName'
|
|
|
});
|
|
|
|
|
|
this.storeCodePort = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'DsShipping.ux.CodeDisportModel',
|
|
|
proxy: { url: '/CommMng/BasicDataRef/GetCodeDisportList' }
|
|
|
});
|
|
|
//this.storeCodePort.load();
|
|
|
this.comboxPORTDISCHARGE = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
//fieldLabel: '目的港',
|
|
|
store: this.storeCodePort,
|
|
|
name: 'PORTDISCHARGE',
|
|
|
matchFieldWidth: false,
|
|
|
valueField: 'PORT',
|
|
|
displayField: 'CodeAndName'
|
|
|
});
|
|
|
|
|
|
this.storeCodePort2 = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'DsShipping.ux.CodeDisportModel',
|
|
|
proxy: { url: '/CommMng/BasicDataRef/GetCodeDisportList' }
|
|
|
});
|
|
|
//this.storeCodePort2.load();
|
|
|
this.comboxPORTDISCHARGE2 = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
fieldLabel: '目的港',
|
|
|
labelWidth: 45,
|
|
|
flex: 1,
|
|
|
store: this.storeCodePort2,
|
|
|
name: 'PORTDISCHARGE',
|
|
|
id: 'search_portdischarge',
|
|
|
valueField: 'PORT',
|
|
|
displayField: 'CodeAndName',
|
|
|
listeners: {
|
|
|
specialkey: function (field, e) {
|
|
|
if (e.getKey() == e.ENTER) {
|
|
|
_this.onRefreshClick();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
this.storeCodePort3 = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'DsShipping.ux.CodeDisportModel',
|
|
|
proxy: { url: '/CommMng/BasicDataRef/GetCodeDisportList' }
|
|
|
});
|
|
|
//this.storeCodePort3.load();
|
|
|
this.comboxPORTDISCHARGE3 = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
fieldLabel: '中转港',
|
|
|
labelWidth: 45,
|
|
|
flex: 1,
|
|
|
store: this.storeCodePort3,
|
|
|
name: 'VIA',
|
|
|
id: 'search_via',
|
|
|
valueField: 'PORT',
|
|
|
displayField: 'CodeAndName',
|
|
|
listeners: {
|
|
|
specialkey: function (field, e) {
|
|
|
if (e.getKey() == e.ENTER) {
|
|
|
_this.onRefreshClick();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
this.comboxVIA = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
store: this.storeCodePort2,
|
|
|
name: 'VIA',
|
|
|
matchFieldWidth: false,
|
|
|
valueField: 'PORT',
|
|
|
displayField: 'CodeAndName'
|
|
|
});
|
|
|
this.comboxVIA2 = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
store: this.storeCodePort3,
|
|
|
name: 'VIA2',
|
|
|
matchFieldWidth: false,
|
|
|
valueField: 'PORT',
|
|
|
displayField: 'CodeAndName'
|
|
|
});
|
|
|
this.comboxVIA3 = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
store: this.storeCodePort,
|
|
|
name: 'VIA3',
|
|
|
matchFieldWidth: false,
|
|
|
valueField: 'PORT',
|
|
|
displayField: 'CodeAndName'
|
|
|
});
|
|
|
//#endregion
|
|
|
|
|
|
this.storeCT = getPriceCtnTypeStore();
|
|
|
|
|
|
this.comboxCTNTYPE = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
fieldLabel: '箱型',
|
|
|
labelWidth: 35,
|
|
|
store: this.storeCT,
|
|
|
name: 'CTNTYPE',
|
|
|
id: 'search_ctntype',
|
|
|
valueField: 'ID',
|
|
|
displayField: 'NAME',
|
|
|
enableKeyEvents: true, //激活键盘事件
|
|
|
listeners: {
|
|
|
scope: this,
|
|
|
'keyup': {
|
|
|
fn: function (_field, e) {
|
|
|
if (e.getKey() == 13) {
|
|
|
this.onRefreshClick();
|
|
|
}
|
|
|
},
|
|
|
scope: this
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
this.storeLANE = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'XiaLaKuangModel',
|
|
|
proxy: { url: '/MvcShipping/MsCrmPriceCarrierList/GetLANEList' }
|
|
|
});
|
|
|
this.storeLANE.load();
|
|
|
this.comboxLANE = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
labelWidth: 35,
|
|
|
flex: 1,
|
|
|
store: this.storeLANE,
|
|
|
name: 'LANE',
|
|
|
id: 'search_lane1',
|
|
|
valueField: 'NAME',
|
|
|
displayField: 'CodeAndName',
|
|
|
forceSelection: false,
|
|
|
listeners: {
|
|
|
specialkey: function (field, e) {
|
|
|
if (e.getKey() == e.ENTER) {
|
|
|
_this.onRefreshClick();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
this.storeLANE_2 = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'XiaLaKuangModel',
|
|
|
proxy: { url: '/MvcShipping/MsCrmPriceCarrierList/GetLANEList' }
|
|
|
});
|
|
|
this.storeLANE_2.load();
|
|
|
this.comboxLANE_2 = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
fieldLabel: '航线',
|
|
|
labelWidth: 35,
|
|
|
flex: 1,
|
|
|
store: this.storeLANE_2,
|
|
|
name: 'LANE_2',
|
|
|
id: 'search_lane',
|
|
|
valueField: 'NAME',
|
|
|
displayField: 'CodeAndName',
|
|
|
forceSelection: false,
|
|
|
listeners: {
|
|
|
specialkey: function (field, e) {
|
|
|
if (e.getKey() == e.ENTER) {
|
|
|
_this.onRefreshClick();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
//加载业务信息
|
|
|
|
|
|
//枚举类型30002 默认杂费模板
|
|
|
this.storeZaFeiModel = Ext.create('DsExt.ux.RefEnum_AllStore', {});
|
|
|
|
|
|
this.comboxZaFeiFeeName = Ext.create('DsExt.ux.RefEnumCombox', {
|
|
|
store: this.storeZaFeiModel,
|
|
|
forceSelection: false,
|
|
|
name: 'FEENAME',
|
|
|
valueField: 'EnumValueName',
|
|
|
displayField: 'EnumValueName'
|
|
|
});
|
|
|
//
|
|
|
|
|
|
|
|
|
this.storecurr = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'DsShipping.ux.CodeCurrencyModel',
|
|
|
proxy: { url: '/CommMng/BasicDataRef/GetCodeCurrencyList' }
|
|
|
});
|
|
|
this.storecurr.load({ params: { condition: "" } });
|
|
|
this.comboxcurr = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
store: this.storecurr,
|
|
|
name: 'CURRENCY',
|
|
|
valueField: 'CODENAME',
|
|
|
displayField: 'CODENAME'
|
|
|
//币别
|
|
|
});
|
|
|
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
|
|
//#region 主表信息
|
|
|
this.formHead = Ext.widget('form', {
|
|
|
//layout: "border",
|
|
|
region: 'north',
|
|
|
title: '报价信息',
|
|
|
//height:300,
|
|
|
frame: true,
|
|
|
bodyPadding: 5,
|
|
|
collapsed: false,
|
|
|
collapsible: true,
|
|
|
trackResetOnLoad: true,
|
|
|
fieldDefaults: {
|
|
|
margins: '2 3 2 0',
|
|
|
labelAlign: 'right',
|
|
|
flex: 1,
|
|
|
labelWidth: 65,
|
|
|
msgTarget: 'qtip'
|
|
|
},
|
|
|
|
|
|
items: [
|
|
|
{
|
|
|
//第一格
|
|
|
xtype: 'container',
|
|
|
//title:'委托信息',
|
|
|
defaultType: 'textfield',
|
|
|
layout: 'anchor',
|
|
|
defaults: {
|
|
|
anchor: '100%'
|
|
|
},
|
|
|
items: [
|
|
|
{
|
|
|
xtype: 'container',
|
|
|
layout: 'hbox',
|
|
|
defaultType: 'textfield',
|
|
|
items: [
|
|
|
{
|
|
|
fieldLabel: 'TIMEMARK',
|
|
|
name: 'TIMEMARK', hidden: true
|
|
|
},
|
|
|
|
|
|
{
|
|
|
fieldLabel: '报价编号', flex: 1, readOnly: true,
|
|
|
name: 'BSNO'
|
|
|
}, this.comboxCust
|
|
|
, {
|
|
|
fieldLabel: '生效时间',
|
|
|
format: 'Y-m-d',
|
|
|
flex: 1,
|
|
|
xtype: 'datefield',
|
|
|
name: 'EFFECTIVEDATE',
|
|
|
id: 'search_etdbgn'
|
|
|
, allowBlank: false
|
|
|
}, {
|
|
|
fieldLabel: '失效时间',
|
|
|
format: 'Y-m-d',
|
|
|
flex: 1,
|
|
|
xtype: 'datefield',
|
|
|
name: 'VALIDDATE',
|
|
|
id: 'search_etdend'
|
|
|
, allowBlank: false
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
]
|
|
|
},
|
|
|
|
|
|
{
|
|
|
//第2格
|
|
|
xtype: 'container',
|
|
|
defaultType: 'textfield',
|
|
|
layout: 'hbox',
|
|
|
defaults: {
|
|
|
anchor: '100%'
|
|
|
},
|
|
|
items: [
|
|
|
{
|
|
|
fieldLabel: '报价人',readOnly:true,
|
|
|
flex: 1,
|
|
|
name: 'CREATOR'
|
|
|
},
|
|
|
{
|
|
|
fieldLabel: '报价时间', readOnly: true,
|
|
|
flex: 1,
|
|
|
name: 'CREATETIME'
|
|
|
},
|
|
|
{
|
|
|
fieldLabel: '备注',
|
|
|
flex:2,
|
|
|
name: 'REMARK'
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
]//end items(fieldset 1)
|
|
|
|
|
|
}); //end this.formHead
|
|
|
|
|
|
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
//#region 报价明细
|
|
|
this.cellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
|
|
|
clicksToEdit: 1
|
|
|
});
|
|
|
//this.cargoCheckBoxModel = Ext.create('Ext.selection.CheckboxModel');
|
|
|
this.initcolumn = [
|
|
|
{
|
|
|
sortable: true,hidden:true,
|
|
|
dataIndex: 'GID',
|
|
|
header: 'GID',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'BSNO',
|
|
|
header: 'BSNO',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'SEQUENCE',
|
|
|
header: '顺序号',
|
|
|
width: 40,
|
|
|
editor: {
|
|
|
xtype: 'numberfield',
|
|
|
selectOnFocus: true, //得到焦点时自动选择文本
|
|
|
allowDecimals: false //允许输入小数
|
|
|
//decimalPrecision: 2 //允许保留的小数位数,并四舍五入
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'LANE',
|
|
|
header: '航线',
|
|
|
width: 80
|
|
|
,editor: this.comboxLANE
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'PODLOAD',
|
|
|
header: '起运港',
|
|
|
width: 80
|
|
|
, editor: this.comboxPORTLOAD_grid
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'PORTDISCHARGE',
|
|
|
header: '卸货港',
|
|
|
width: 80
|
|
|
,editor: this.comboxPORTDISCHARGE
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CARRIER',
|
|
|
header: '船公司',
|
|
|
width: 80
|
|
|
,editor: this.comboxCARRIER_grid
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'VIA',
|
|
|
header: '中转港',
|
|
|
width: 80
|
|
|
, editor: this.comboxVIA
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'VIA2',
|
|
|
header: '中转港2',
|
|
|
width: 80
|
|
|
, editor: this.comboxVIA3
|
|
|
},
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'ETD',
|
|
|
header: 'ETD',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'textfield',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'TT',
|
|
|
header: 'TT',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield',
|
|
|
allowDecimals: false, //允许输入小数
|
|
|
decimalPrecision: 0,
|
|
|
nanText: '请输入有效数字',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'EFFECTIVEDATE',
|
|
|
header: '生效时间',
|
|
|
width: 80,
|
|
|
renderer: Ext.util.Format.dateRenderer('Y-m-d')
|
|
|
, editor: {
|
|
|
xtype: 'datefield',
|
|
|
format: 'Y-m-d'
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'VALIDDATE',
|
|
|
header: '失效时间',
|
|
|
width: 80,
|
|
|
renderer: Ext.util.Format.dateRenderer('Y-m-d')
|
|
|
, editor: {
|
|
|
xtype: 'datefield',
|
|
|
format: 'Y-m-d'
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'FEE0',
|
|
|
header: '附加费',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield',
|
|
|
allowDecimals: false, //允许输入小数
|
|
|
decimalPrecision: 2,
|
|
|
nanText: '请输入有效数字',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'FEE1',
|
|
|
header: 'FEE1',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'FEE2',
|
|
|
header: 'FEE2',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'FEE3',
|
|
|
header: 'FEE3',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'FEE4',
|
|
|
header: 'FEE4',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'CTN00',
|
|
|
header: '小柜底价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
cellmeta.tdCls = '浅灰色';
|
|
|
return '<div id="CTN00' + record.data.GID + '" class="TipDiv">' + value + '</div>';
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'CTN02',
|
|
|
header: '小柜报价',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield',
|
|
|
allowDecimals: true, //允许输入小数
|
|
|
decimalPrecision: 2,
|
|
|
nanText: '请输入有效小数',
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
|
|
|
if (parseFloat(value, 2) <= parseFloat(record.data.CTN00))
|
|
|
cellmeta.tdCls = 'OST';
|
|
|
|
|
|
value = usMoney(value, 2, '', true);
|
|
|
return value;
|
|
|
}
|
|
|
},
|
|
|
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'CTN10',
|
|
|
header: '大柜底价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
cellmeta.tdCls = '浅灰色';
|
|
|
return '<div id="CTN10' + record.data.GID + '" class="TipDiv">' + value + '</div>';
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'CTN12',
|
|
|
header: '大柜报价',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield',
|
|
|
allowDecimals: true, //允许输入小数
|
|
|
decimalPrecision: 2,
|
|
|
nanText: '请输入有效小数',
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
if (parseFloat(value, 2) <= parseFloat(record.data.CTN10))
|
|
|
cellmeta.tdCls = 'OST';
|
|
|
value = usMoney(value, 2, '', true);
|
|
|
return value;
|
|
|
}
|
|
|
},
|
|
|
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'CTN20',
|
|
|
header: '超高底价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
cellmeta.tdCls = '浅灰色';
|
|
|
return '<div id="CTN20' + record.data.GID + '" class="TipDiv">' + value + '</div>';
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'CTN22',
|
|
|
header: '超高报价',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield',
|
|
|
allowDecimals: true, //允许输入小数
|
|
|
decimalPrecision: 2,
|
|
|
nanText: '请输入有效小数',
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
if (parseFloat(value, 2) <= parseFloat(record.data.CTN20))
|
|
|
cellmeta.tdCls = 'OST';
|
|
|
value = usMoney(value, 2, '', true);
|
|
|
return value;
|
|
|
}
|
|
|
},
|
|
|
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'CTN30',
|
|
|
header: '小冻底价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
cellmeta.tdCls = '浅灰色';
|
|
|
return '<div id="CTN30' + record.data.GID + '" class="TipDiv">' + value + '</div>';
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'CTN32',
|
|
|
header: '小冻报价',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield',
|
|
|
allowDecimals: true, //允许输入小数
|
|
|
decimalPrecision: 2,
|
|
|
nanText: '请输入有效小数',
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
if (parseFloat(value, 2) <= parseFloat(record.data.CTN30))
|
|
|
cellmeta.tdCls = 'OST';
|
|
|
value = usMoney(value, 2, '', true);
|
|
|
return value;
|
|
|
}
|
|
|
},
|
|
|
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'CTN40',
|
|
|
header: '超冻底价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
cellmeta.tdCls = '浅灰色';
|
|
|
return '<div id="CTN40' + record.data.GID + '" class="TipDiv">' + value + '</div>';
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, align: 'right',
|
|
|
dataIndex: 'CTN42',
|
|
|
header: '超冻报价',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield',
|
|
|
allowDecimals: true, //允许输入小数
|
|
|
decimalPrecision: 2,
|
|
|
nanText: '请输入有效小数',
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
if (parseFloat(value, 2) <= parseFloat(record.data.CTN40))
|
|
|
cellmeta.tdCls = 'OST';
|
|
|
value = usMoney(value, 2, '', true);
|
|
|
return value;
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
dataIndex: 'CTN0DETENTION',
|
|
|
text: '目的港免箱期_小柜',
|
|
|
width: 100,
|
|
|
editor: {
|
|
|
xtype: 'textfield',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
dataIndex: 'CTN1DETENTION',
|
|
|
text: '目的港免箱期_大柜',
|
|
|
width: 100,
|
|
|
editor: {
|
|
|
xtype: 'textfield',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
dataIndex: 'CTN2DETENTION',
|
|
|
text: '目的港免箱期_超高',
|
|
|
width: 100,
|
|
|
editor: {
|
|
|
xtype: 'textfield',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
dataIndex: 'CTN3DETENTION',
|
|
|
text: '目的港免箱期_小冻',
|
|
|
width: 100,
|
|
|
editor: {
|
|
|
xtype: 'textfield',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
dataIndex: 'CTN4DETENTION',
|
|
|
text: '目的港免箱期_超冻',
|
|
|
width: 100,
|
|
|
editor: {
|
|
|
xtype: 'textfield',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'COMMODITY',
|
|
|
header: '品名/特殊商品',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'textfield',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'REMARK',
|
|
|
header: '备注',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'textfield',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'INPUTBY',
|
|
|
header: 'INPUTBY',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'INPUTBYREF',
|
|
|
header: '录入人',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'INPUTTIME',
|
|
|
header: '录入时间',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'MODIFIEDUSER',
|
|
|
header: 'MODIFIEDUSER',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'MODIFIEDUSERREF',
|
|
|
header: '修改人',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'MODIFYTIME',
|
|
|
header: '修改时间',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN50',
|
|
|
header: 'CTN50',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN60',
|
|
|
header: 'CTN60',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN70',
|
|
|
header: 'CTN70',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN80',
|
|
|
header: 'CTN80',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN90',
|
|
|
header: 'CTN90',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN01',
|
|
|
header: 'CTN01',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN11',
|
|
|
header: 'CTN11',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN21',
|
|
|
header: 'CTN21',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN31',
|
|
|
header: 'CTN31',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN41',
|
|
|
header: 'CTN41',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN51',
|
|
|
header: 'CTN51',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN61',
|
|
|
header: 'CTN61',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN71',
|
|
|
header: 'CTN71',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN81',
|
|
|
header: 'CTN81',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN91',
|
|
|
header: 'CTN91',
|
|
|
width: 80
|
|
|
},
|
|
|
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN52',
|
|
|
header: 'CTN52',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN62',
|
|
|
header: 'CTN62',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN72',
|
|
|
header: 'CTN72',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN82',
|
|
|
header: 'CTN82',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN92',
|
|
|
header: 'CTN92',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN03',
|
|
|
header: 'CTN03',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN13',
|
|
|
header: 'CTN13',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN23',
|
|
|
header: 'CTN23',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN33',
|
|
|
header: 'CTN33',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN43',
|
|
|
header: 'CTN43',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN53',
|
|
|
header: 'CTN53',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN63',
|
|
|
header: 'CTN63',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN73',
|
|
|
header: 'CTN73',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN83',
|
|
|
header: 'CTN83',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN93',
|
|
|
header: 'CTN93',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN04',
|
|
|
header: 'CTN04',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN14',
|
|
|
header: 'CTN14',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN24',
|
|
|
header: 'CTN24',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN34',
|
|
|
header: 'CTN34',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN44',
|
|
|
header: 'CTN44',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN54',
|
|
|
header: 'CTN54',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN64',
|
|
|
header: 'CTN64',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN74',
|
|
|
header: 'CTN74',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN84',
|
|
|
header: 'CTN84',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN94',
|
|
|
header: 'CTN94',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'PORTDISCHARGEID',
|
|
|
header: '卸货港ID',
|
|
|
width: 80,
|
|
|
editor: this.comboxVIA2
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CONTRACTNO',
|
|
|
header: '合约号',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'textfield',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CONTRACTBSNO',
|
|
|
header: 'CONTRACTBSNO',
|
|
|
width: 80
|
|
|
}
|
|
|
|
|
|
];
|
|
|
|
|
|
this.column = this.initcolumn;
|
|
|
|
|
|
this.storeBody = Ext.create('Ext.data.Store', {
|
|
|
|
|
|
model: 'MsPrice_Quotation_Detailmb',
|
|
|
remoteSort: false,
|
|
|
//groupField: 'GroupDate',
|
|
|
proxy: {
|
|
|
type: 'ajax',
|
|
|
//url: '/TruckMng/MsRptPcHeadOperate/QryData_ADL',
|
|
|
url: '/MvcShipping/MsPrice/GetQuotationDetailList',
|
|
|
//this.storeList.proxy.url = '/TruckMng/MsRptPcHeadOperate/QryData_ADL';
|
|
|
reader: {
|
|
|
id: 'GID',
|
|
|
root: 'data',
|
|
|
totalProperty: 'totalCount'
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
this.formDetail = new Ext.grid.GridPanel({
|
|
|
store: this.storeBody,
|
|
|
enableHdMenu: false,
|
|
|
region: 'center',
|
|
|
layout: "border",
|
|
|
anchor: '100% 55%',
|
|
|
//height: 160,
|
|
|
title: '报价明细',
|
|
|
loadMask: { msg: "数据加载中,请稍等..." },
|
|
|
trackMouseOver: true,
|
|
|
disableSelection: false,
|
|
|
plugins: [this.cellEditing],
|
|
|
//selModel: //this.cargoCheckBoxModel,
|
|
|
selType: 'cellmodel',
|
|
|
//features: [{
|
|
|
// ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性
|
|
|
//}],
|
|
|
tbar: [
|
|
|
//{
|
|
|
// text: '增加明细',
|
|
|
// tooltip: '增加明细',
|
|
|
// id: "btnadddetail",
|
|
|
// iconCls: "btnadddetail",
|
|
|
// handler: function (button, event) {
|
|
|
// this.onAddDetailClick(button, event);
|
|
|
// },
|
|
|
// scope: this
|
|
|
//},
|
|
|
{
|
|
|
text: '删除明细',
|
|
|
tooltip: '删除明细',
|
|
|
id: 'btndeletedetail',
|
|
|
iconCls: "btndeletedetail",
|
|
|
handler: function (button, event) {
|
|
|
this.onDelDetailClick(button, event);
|
|
|
},
|
|
|
scope: this
|
|
|
}
|
|
|
],
|
|
|
columns: this.column
|
|
|
});
|
|
|
|
|
|
this.column = DsTruck.GetGridPanel(USERID, this.formname, this.column);
|
|
|
//使用者id,表名 ,中间column数组,跳过一开始的几列
|
|
|
this.formDetail.reconfigure(this.storeBody, this.column);
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
//#region 待取用的运价明细
|
|
|
|
|
|
this.initcolumn_Add = [
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'GID',
|
|
|
header: 'GID',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'LANE',
|
|
|
header: '航线',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'PODLOAD',
|
|
|
header: '起运港',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'PORTDISCHARGE',
|
|
|
header: '卸货港中文',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'PORTDISCHARGEID',
|
|
|
header: '卸货港',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CARRIER',
|
|
|
header: '船公司',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CONTRACTNO',
|
|
|
header: '合约号',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'VIA',
|
|
|
header: '中转港',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'VIA2',
|
|
|
header: '中转港2',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'ETD',
|
|
|
header: 'ETD',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'TT',
|
|
|
header: 'TT',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'EFFECTIVEDATE',
|
|
|
header: '生效时间',
|
|
|
width: 80,
|
|
|
renderer: Ext.util.Format.dateRenderer('Y-m-d')
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'VALIDDATE',
|
|
|
header: '失效时间',
|
|
|
width: 80,
|
|
|
renderer: Ext.util.Format.dateRenderer('Y-m-d')
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'FEE0',
|
|
|
header: '附加费',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'FEE1',
|
|
|
header: 'FEE1',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'FEE2',
|
|
|
header: 'FEE2',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'FEE3',
|
|
|
header: 'FEE3',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'FEE4',
|
|
|
header: 'FEE4',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CTN00',
|
|
|
header: '小柜底价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
return '<div id="CTN00' + record.data.GID + '" class="TipDiv">' + usMoney(value, 2, '', true) + '</div>';
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CTN02',
|
|
|
header: '小柜报价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
value = usMoney(value, 2, '', true);
|
|
|
return value;
|
|
|
}
|
|
|
},
|
|
|
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CTN10',
|
|
|
header: '大柜底价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
return '<div id="CTN10' + record.data.GID + '" class="TipDiv">' + usMoney(value, 2, '', true) + '</div>';
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CTN12',
|
|
|
header: '大柜报价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
value = usMoney(value, 2, '', true);
|
|
|
return value;
|
|
|
}
|
|
|
},
|
|
|
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CTN20',
|
|
|
header: '超高底价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
return '<div id="CTN20' + record.data.GID + '" class="TipDiv">' + usMoney(value, 2, '', true) + '</div>';
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CTN22',
|
|
|
header: '超高报价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
value = usMoney(value, 2, '', true);
|
|
|
return value;
|
|
|
}
|
|
|
},
|
|
|
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CTN30',
|
|
|
header: '小冻底价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
return '<div id="CTN30' + record.data.GID + '" class="TipDiv">' + usMoney(value, 2, '', true) + '</div>';
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CTN32',
|
|
|
header: '小冻报价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
value = usMoney(value, 2, '', true);
|
|
|
return value;
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CTN40',
|
|
|
header: '超冻底价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
return '<div id="CTN40' + record.data.GID + '" class="TipDiv">' + usMoney(value, 2, '', true) + '</div>';
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'CTN42',
|
|
|
header: '超冻报价',
|
|
|
width: 80,
|
|
|
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
|
|
|
value = usMoney(value, 2, '', true);
|
|
|
return value;
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
dataIndex: 'CTN0DETENTION',
|
|
|
text: '目的港免箱期_小柜',
|
|
|
width: 100
|
|
|
},
|
|
|
{
|
|
|
dataIndex: 'CTN1DETENTION',
|
|
|
text: '目的港免箱期_大柜',
|
|
|
width: 100
|
|
|
},
|
|
|
{
|
|
|
dataIndex: 'CTN2DETENTION',
|
|
|
text: '目的港免箱期_超高',
|
|
|
width: 100
|
|
|
},
|
|
|
{
|
|
|
dataIndex: 'CTN3DETENTION',
|
|
|
text: '目的港免箱期_小冻',
|
|
|
width: 100
|
|
|
},
|
|
|
{
|
|
|
dataIndex: 'CTN4DETENTION',
|
|
|
text: '目的港免箱期_超冻',
|
|
|
width: 100
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'COMMODITY',
|
|
|
header: '品名/特殊商品',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'REMARK',
|
|
|
header: '备注',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'INPUTBY',
|
|
|
header: 'INPUTBY',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'INPUTBYREF',
|
|
|
header: '录入人',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'INPUTTIME',
|
|
|
header: '录入时间',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'MODIFIEDUSER',
|
|
|
header: 'MODIFIEDUSER',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'MODIFIEDUSERREF',
|
|
|
header: '修改人',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'MODIFYTIME',
|
|
|
header: '修改时间',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN50',
|
|
|
header: 'CTN50',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN60',
|
|
|
header: 'CTN60',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN70',
|
|
|
header: 'CTN70',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN80',
|
|
|
header: 'CTN80',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN90',
|
|
|
header: 'CTN90',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN01',
|
|
|
header: 'CTN01',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN11',
|
|
|
header: 'CTN11',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN21',
|
|
|
header: 'CTN21',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN31',
|
|
|
header: 'CTN31',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN41',
|
|
|
header: 'CTN41',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN51',
|
|
|
header: 'CTN51',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN61',
|
|
|
header: 'CTN61',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN71',
|
|
|
header: 'CTN71',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN81',
|
|
|
header: 'CTN81',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN91',
|
|
|
header: 'CTN91',
|
|
|
width: 80
|
|
|
},
|
|
|
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN52',
|
|
|
header: 'CTN52',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN62',
|
|
|
header: 'CTN62',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN72',
|
|
|
header: 'CTN72',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN82',
|
|
|
header: 'CTN82',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN92',
|
|
|
header: 'CTN92',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN03',
|
|
|
header: 'CTN03',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN13',
|
|
|
header: 'CTN13',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN23',
|
|
|
header: 'CTN23',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN33',
|
|
|
header: 'CTN33',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN43',
|
|
|
header: 'CTN43',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN53',
|
|
|
header: 'CTN53',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN63',
|
|
|
header: 'CTN63',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN73',
|
|
|
header: 'CTN73',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN83',
|
|
|
header: 'CTN83',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN93',
|
|
|
header: 'CTN93',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN04',
|
|
|
header: 'CTN04',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN14',
|
|
|
header: 'CTN14',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN24',
|
|
|
header: 'CTN24',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN34',
|
|
|
header: 'CTN34',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN44',
|
|
|
header: 'CTN44',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN54',
|
|
|
header: 'CTN54',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN64',
|
|
|
header: 'CTN64',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN74',
|
|
|
header: 'CTN74',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN84',
|
|
|
header: 'CTN84',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CTN94',
|
|
|
header: 'CTN94',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'CONTRACTBSNO',
|
|
|
header: 'CONTRACTBSNO',
|
|
|
width: 80
|
|
|
}
|
|
|
|
|
|
];
|
|
|
|
|
|
this.column_Add = this.initcolumn_Add;
|
|
|
|
|
|
this.storeBody_Add = Ext.create('Ext.data.Store', {
|
|
|
pageSize: this.PageSize,
|
|
|
model: 'MsPrice_Quotation_Addmb',
|
|
|
remoteSort: false,
|
|
|
//groupField: 'GroupDate',
|
|
|
viewConfig: {
|
|
|
enableTextSelection: true
|
|
|
},
|
|
|
proxy: {
|
|
|
type: 'ajax',
|
|
|
//url: '/TruckMng/MsRptPcHeadOperate/QryData_ADL',
|
|
|
url: '/MvcShipping/MsPrice/GetQuotationAddList',
|
|
|
//this.storeList.proxy.url = '/TruckMng/MsRptPcHeadOperate/QryData_ADL';
|
|
|
reader: {
|
|
|
id: 'GID',
|
|
|
root: 'data',
|
|
|
totalProperty: 'totalCount'
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
this.CBM = Ext.create('Ext.selection.CheckboxModel');
|
|
|
|
|
|
this.Pagenum = Ext.create('Ext.form.field.Number', {
|
|
|
name: 'bottles',
|
|
|
fieldLabel: '每页记录数',
|
|
|
labelAlign: 'right',
|
|
|
value: this.PageSize,
|
|
|
maxValue: 100000,
|
|
|
width: 180,
|
|
|
minValue: 0,
|
|
|
listeners: {
|
|
|
specialkey: function (field, e) {
|
|
|
if (e.getKey() == e.ENTER) {
|
|
|
_this.onRefreshClick();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
this.formDetail_Add = new Ext.grid.GridPanel({
|
|
|
store: this.storeBody_Add,
|
|
|
enableHdMenu: false,
|
|
|
region: 'center',
|
|
|
layout: "border",
|
|
|
anchor: '100% 45%',
|
|
|
title: '报价',
|
|
|
loadMask: { msg: "数据加载中,请稍等..." },
|
|
|
trackMouseOver: true,
|
|
|
disableSelection: false,
|
|
|
//plugins: [this.cellEditing],
|
|
|
selModel: this.CBM,
|
|
|
selType: 'cellmodel',
|
|
|
//features: [{
|
|
|
// ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性
|
|
|
//}],
|
|
|
tbar: [
|
|
|
{
|
|
|
text: '增加明细',
|
|
|
tooltip: '增加明细',
|
|
|
id: "btnadddetail",
|
|
|
iconCls: "btnadddetail",
|
|
|
handler: function (button, event) {
|
|
|
this.onAddDetailClick(button, event);
|
|
|
},
|
|
|
scope: this
|
|
|
}, '-',
|
|
|
{
|
|
|
text: "执行查询",
|
|
|
labelWidth: 60,
|
|
|
iconCls: "btnrefresh",
|
|
|
handler: function (button, event) {
|
|
|
var Form = this.formHead.getForm();
|
|
|
|
|
|
|
|
|
if (!Form.isValid()) {
|
|
|
return;
|
|
|
}
|
|
|
this.onRefreshClick(button, event);
|
|
|
},
|
|
|
scope: this
|
|
|
},
|
|
|
this.comboxCARRIER,
|
|
|
this.comboxPORTLOAD,
|
|
|
this.comboxPORTDISCHARGE2,
|
|
|
this.comboxPORTDISCHARGE3,
|
|
|
this.comboxCTNTYPE,
|
|
|
this.comboxLANE_2,
|
|
|
{
|
|
|
xtype: 'textfield',
|
|
|
fieldLabel: '合约号/合约序列号',
|
|
|
labelWidth: 109,
|
|
|
flex: 1,
|
|
|
name: 'CONTRACT',
|
|
|
id: 'search_contract',
|
|
|
listeners: {
|
|
|
specialkey: function (field, e) {
|
|
|
if (e.getKey() == e.ENTER) {
|
|
|
_this.onRefreshClick();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//{
|
|
|
// text: '删除明细',
|
|
|
// tooltip: '删除明细',
|
|
|
// id: 'btndeletedetail',
|
|
|
// iconCls: "btndeletedetail",
|
|
|
// handler: function (button, event) {
|
|
|
// this.onDelDetailClick(button, event);
|
|
|
// },
|
|
|
// scope: this
|
|
|
//}
|
|
|
],
|
|
|
columns: this.column_Add
|
|
|
,
|
|
|
bbar: [Ext.create('Ext.PagingToolbar', {
|
|
|
store: this.storeBody_Add,
|
|
|
displayInfo: true,
|
|
|
displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录',
|
|
|
emptyMsg: "没有数据"
|
|
|
}), this.Pagenum]
|
|
|
});
|
|
|
|
|
|
this.column_Add = DsTruck.GetGridPanel(USERID, this.formname_Add, this.column_Add);
|
|
|
//使用者id,表名 ,中间column数组,跳过一开始的几列
|
|
|
this.formDetail_Add.reconfigure(this.storeBody_Add, this.column_Add);
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
//#region 按钮Toolbar
|
|
|
this.panelBtn = new Ext.Panel({
|
|
|
region: "north",
|
|
|
tbar: [
|
|
|
{
|
|
|
id: 'btnESave',
|
|
|
text: "保存",
|
|
|
iconCls: "btnsave",
|
|
|
handler: function (button, event) {
|
|
|
this.Save('0');
|
|
|
},
|
|
|
scope: this
|
|
|
},
|
|
|
{
|
|
|
id: 'btnESaveAndClose',
|
|
|
text: "保存并关闭",
|
|
|
handler: function (button, event) {
|
|
|
this.Save('1');
|
|
|
},
|
|
|
scope: this
|
|
|
},
|
|
|
{
|
|
|
text: "关闭",
|
|
|
handler: function (button, event) {
|
|
|
window.close();
|
|
|
},
|
|
|
scope: this
|
|
|
}
|
|
|
, '-',
|
|
|
{
|
|
|
id: 'btnCopyNew',
|
|
|
text: "复制新建",
|
|
|
iconCls: "btncopy",
|
|
|
handler: function (button, event) {
|
|
|
this.Save('2');
|
|
|
},
|
|
|
scope: this
|
|
|
}, '-',
|
|
|
{
|
|
|
text: "上传报价单", id: "btnMAKEPRICE",
|
|
|
handler: function (button, event) {
|
|
|
this.UploadPDF();
|
|
|
},
|
|
|
scope: this
|
|
|
},
|
|
|
{
|
|
|
text: "下载报价单", id: "btndownload",
|
|
|
handler: function (button, event) {
|
|
|
window.open(this.Editdata.PDFURL);
|
|
|
},
|
|
|
scope: this
|
|
|
}, '-',
|
|
|
{
|
|
|
text: "打印",
|
|
|
iconCls: "btnprint",
|
|
|
handler: function (button, event) {
|
|
|
this.Print();
|
|
|
},
|
|
|
scope: this
|
|
|
}, '-', {
|
|
|
text: "保存列表样式",
|
|
|
menu: [
|
|
|
{
|
|
|
text: "保存",
|
|
|
handler: function (button, event) {
|
|
|
_this.column = DsTruck.SaveGridPanel(USERID, _this.formname, _this.formDetail.columns, _this.column, 0, true);
|
|
|
_this.formDetail.reconfigure(_this.storeBody, _this.column);
|
|
|
|
|
|
_this.column_Add = DsTruck.SaveGridPanel(USERID, _this.formname_Add, _this.formDetail_Add.columns, _this.column_Add, 0, true);
|
|
|
_this.formDetail_Add.reconfigure(_this.storeBody_Add, _this.column_Add);
|
|
|
|
|
|
}
|
|
|
}, {
|
|
|
text: "初始化",
|
|
|
handler: function (menu, event) {
|
|
|
_this.formDetail.reconfigure(_this.storeBody, _this.initcolumn);
|
|
|
_this.columns = DsTruck.SaveGridPanel(USERID, _this.formname, _this.formDetail.columns, _this.initctncolumns, 0, true);
|
|
|
|
|
|
_this.formDetail_Add.reconfigure(_this.storeBody_Add, _this.initcolumn_Add);
|
|
|
_this.columns_Add = DsTruck.SaveGridPanel(USERID, _this.formname_Add, _this.formDetail_Add.columns, _this.initctncolumns_Add, 0, true);
|
|
|
}
|
|
|
}],
|
|
|
scope: this
|
|
|
}]
|
|
|
}); //end 按钮Toolbar
|
|
|
//#endregion
|
|
|
|
|
|
//#region 关联提单号
|
|
|
|
|
|
this.storeMblnoList = Ext.create('Ext.data.Store', {
|
|
|
pageSize: this.PageSize,
|
|
|
model: 'MsPrice_Quotation_MblnoListmb',
|
|
|
remoteSort: true,
|
|
|
proxy: {
|
|
|
type: 'ajax',
|
|
|
url: '/MvcShipping/MsPrice/GetQuotationMblnoList',
|
|
|
reader: {
|
|
|
id: 'ID',
|
|
|
root: 'data',
|
|
|
totalProperty: 'totalCount'
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
this.gridMblnoList = new Ext.grid.GridPanel({
|
|
|
store: this.storeMblnoList,
|
|
|
enableHdMenu: false,
|
|
|
region: 'center',
|
|
|
layout: "border",
|
|
|
title: '报价相关业务列表',
|
|
|
loadMask: { msg: "数据加载中,请稍等..." },
|
|
|
trackMouseOver: true,
|
|
|
disableSelection: false,
|
|
|
plugins: [],
|
|
|
tbar: [
|
|
|
|
|
|
],
|
|
|
columns: [
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'ID',
|
|
|
header: 'ID',
|
|
|
width: 80
|
|
|
}, {
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'BSNO',
|
|
|
header: 'BSNO',
|
|
|
width: 80
|
|
|
}, {
|
|
|
sortable: true,
|
|
|
dataIndex: 'MBLNO',
|
|
|
header: '主提单号',
|
|
|
width: 100
|
|
|
}, {
|
|
|
sortable: true,
|
|
|
dataIndex: 'CREATOR',
|
|
|
header: '关联人',
|
|
|
width: 100
|
|
|
}, {
|
|
|
sortable: true,
|
|
|
dataIndex: 'CREATETIME',
|
|
|
header: '关联时间',
|
|
|
width: 100
|
|
|
}
|
|
|
]
|
|
|
});
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
//#region 杂费列表
|
|
|
|
|
|
this.storeZaFeiList = Ext.create('Ext.data.Store', {
|
|
|
pageSize: this.PageSize,
|
|
|
model: 'MsPrice_Quotation_ZaFeiListmb',
|
|
|
remoteSort: false,
|
|
|
proxy: {
|
|
|
type: 'ajax',
|
|
|
url: '/MvcShipping/MsPrice/GetZaFeiList',
|
|
|
reader: {
|
|
|
id: 'ID',
|
|
|
root: 'data',
|
|
|
totalProperty: 'totalCount'
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
this.cellEditingZaFei = Ext.create('Ext.grid.plugin.CellEditing', {
|
|
|
clicksToEdit: 1
|
|
|
});
|
|
|
this.gridZaFeiList = new Ext.grid.GridPanel({
|
|
|
store: this.storeZaFeiList,
|
|
|
enableHdMenu: false,
|
|
|
region: 'center',
|
|
|
layout: "border",
|
|
|
title: '杂费列表',
|
|
|
loadMask: { msg: "数据加载中,请稍等..." },
|
|
|
trackMouseOver: true,
|
|
|
disableSelection: false,
|
|
|
plugins: [this.cellEditingZaFei],
|
|
|
tbar: [
|
|
|
{
|
|
|
id: 'btnAddZaFei',
|
|
|
text: "添加",
|
|
|
tooltip:"注意,此处变动必须点击保存才实际保存。",
|
|
|
iconCls: "btnadd",
|
|
|
handler: function (button, event) {
|
|
|
this.AddZaFei();
|
|
|
},
|
|
|
scope: this
|
|
|
},
|
|
|
{
|
|
|
id: 'btnDelZaFei',
|
|
|
text: "删除",
|
|
|
tooltip: "注意,此处变动必须点击保存才实际保存。",
|
|
|
iconCls: "btndelete",
|
|
|
handler: function (button, event) {
|
|
|
this.DelZaFei();
|
|
|
},
|
|
|
scope: this
|
|
|
}
|
|
|
],
|
|
|
columns: [
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'ID',
|
|
|
header: 'ID',
|
|
|
width: 80
|
|
|
}, {
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'BSNO',
|
|
|
header: 'BSNO',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'SEQUENCE',
|
|
|
header: '顺序号',
|
|
|
width: 40,
|
|
|
editor: {
|
|
|
xtype: 'numberfield',
|
|
|
selectOnFocus: true, //得到焦点时自动选择文本
|
|
|
allowDecimals: false //允许输入小数
|
|
|
//decimalPrecision: 2 //允许保留的小数位数,并四舍五入
|
|
|
}
|
|
|
}, {
|
|
|
sortable: true,
|
|
|
dataIndex: 'FEENAME',
|
|
|
header: '费用名称',
|
|
|
width: 100,
|
|
|
editor: {
|
|
|
xtype: 'textfield',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
}, {
|
|
|
sortable: true,
|
|
|
dataIndex: 'CURRENCY',
|
|
|
header: '币别',
|
|
|
width: 100,
|
|
|
editor: this.comboxcurr
|
|
|
}, {
|
|
|
sortable: true,
|
|
|
dataIndex: 'UNIT',
|
|
|
header: '单位标准',
|
|
|
width: 100,
|
|
|
editor: {
|
|
|
xtype: 'textfield',
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
}, {
|
|
|
sortable: true,
|
|
|
dataIndex: 'AMOUNT',
|
|
|
header: '金额',
|
|
|
width: 100,
|
|
|
editor: {
|
|
|
xtype: 'numberfield',
|
|
|
allowDecimals: true, //允许输入小数
|
|
|
decimalPrecision: 2,
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
}, {
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
dataIndex: 'NEEDSHOW',
|
|
|
header: '包含',
|
|
|
width: 100,
|
|
|
renderer: function (value, cellmeta) {
|
|
|
if (isTrue(value)) {
|
|
|
return "√";
|
|
|
} else return "";
|
|
|
},
|
|
|
editor: {
|
|
|
xtype: 'checkboxfield'
|
|
|
}
|
|
|
}, {
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
dataIndex: 'NEEDHIDE',
|
|
|
header: '不包含',
|
|
|
width: 100,
|
|
|
renderer: function (value, cellmeta) {
|
|
|
if (isTrue( value)) {
|
|
|
return "√";
|
|
|
} else return "";
|
|
|
},
|
|
|
editor: {
|
|
|
xtype: 'checkboxfield'
|
|
|
}
|
|
|
}
|
|
|
]
|
|
|
});
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
//#region 框架结构
|
|
|
|
|
|
|
|
|
this.panelPrice = new Ext.Panel({
|
|
|
title:"报价信息",
|
|
|
layout: "anchor",
|
|
|
// region: 'north',
|
|
|
// height: 560,
|
|
|
region: 'center',
|
|
|
items: [
|
|
|
this.formDetail
|
|
|
, this.formDetail_Add
|
|
|
]
|
|
|
});
|
|
|
|
|
|
this.MainTab = new Ext.tab.Panel({
|
|
|
layout: "border",
|
|
|
region: "center",
|
|
|
items: [this.panelPrice, this.gridMblnoList, this.gridZaFeiList]
|
|
|
});
|
|
|
|
|
|
Ext.apply(this, {
|
|
|
items: [
|
|
|
this.panelBtn, this.formHead, this.MainTab
|
|
|
]
|
|
|
});
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
this.LoadInitData();
|
|
|
|
|
|
this.InitData();
|
|
|
|
|
|
//#region 其他
|
|
|
this.formDetail.on('edit', function (editor, e, eOpts) {
|
|
|
//this.AfterEdit(editor, e, eOpts);
|
|
|
}, this);
|
|
|
|
|
|
this.gridZaFeiList.on('edit', function (editor, e, eOpts) {
|
|
|
this.ZaFeiAfterEdit(editor, e, eOpts);
|
|
|
}, this);
|
|
|
|
|
|
this.storeBody_Add.on('beforeload', function (store) {
|
|
|
var sql = this.getCondition();
|
|
|
this.storeBody_Add.pageSize = this.PageSize;
|
|
|
Ext.apply(store.proxy.extraParams, { condition: sql });
|
|
|
}, this);
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
}, //end initUIComponents
|
|
|
|
|
|
//#region 加载事件
|
|
|
InitData: function () {
|
|
|
this.opStatus = 'add';
|
|
|
var condition = '';
|
|
|
_this = this;
|
|
|
if (parentWin) {
|
|
|
var ret = parentWin.OprationSwap();
|
|
|
this.opStatus = ret[0];
|
|
|
this.StoreList = ret[1];
|
|
|
this.editRecord = ret[2];
|
|
|
|
|
|
_storeCustCode = ret[5];
|
|
|
this.storeCustCode.loadData(_storeCustCode.data.items);
|
|
|
|
|
|
_storeCodeLoadport = ret[6];
|
|
|
this.storeCodeLoadport.loadData(_storeCodeLoadport.data.items);
|
|
|
|
|
|
_storeCodePort = ret[7];
|
|
|
this.storeCodePort.loadData(_storeCodePort.data.items);
|
|
|
this.storeCodePort2.loadData(_storeCodePort.data.items);
|
|
|
this.storeCodePort3.loadData(_storeCodePort.data.items);
|
|
|
|
|
|
_storeCARRIER = ret[8];
|
|
|
this.storeCARRIER.loadData(_storeCARRIER.data.items);
|
|
|
}
|
|
|
|
|
|
if (this.opStatus == 'edit') {
|
|
|
Headcondition = "BSNO='" + this.editRecord.get('BSNO') + "'";
|
|
|
Bodycondition = "BSNO='" + this.editRecord.get('BSNO') + "'";
|
|
|
//this.storeBodyList.load({ params: { condition: condition} });
|
|
|
|
|
|
this.storeZaFeiModel.load({ params: { enumTypeId: 30002 } });
|
|
|
} else {
|
|
|
Headcondition = "";
|
|
|
Bodycondition = "1=2";
|
|
|
this.LoadZaFeiDefault();
|
|
|
}
|
|
|
|
|
|
this.LoadData(this.opStatus, Headcondition, Bodycondition);
|
|
|
|
|
|
}, //end InitData
|
|
|
|
|
|
LoadData: function (opstatus, condition, Bodycondition) {
|
|
|
this.serialNo = 0;
|
|
|
//this.bodyDel = [];
|
|
|
var BSNO = "";
|
|
|
|
|
|
this.opStatus = opstatus;
|
|
|
if (this.opStatus == 'add') {
|
|
|
document.title = "新建报价单";
|
|
|
}
|
|
|
if (this.opStatus == 'edit') {
|
|
|
BSNO = this.editRecord.get('BSNO').toString().trim()
|
|
|
if (BSNO != "") {
|
|
|
document.title = "报价单序列号:" + this.editRecord.get('BSNO').toString().trim();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
Ext.Ajax.request({
|
|
|
waitMsg: '正在查询主表数据...',
|
|
|
url: '/MvcShipping/MsPrice/GetQuotationData',
|
|
|
params: {
|
|
|
handle: opstatus,
|
|
|
condition: condition
|
|
|
},
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
this.Editdata = result.data;
|
|
|
//this.LoadInit(data);
|
|
|
|
|
|
this.formHead.getForm().reset();
|
|
|
this.formHead.getForm().setValues(this.Editdata);
|
|
|
|
|
|
this.GetEditStatus();
|
|
|
|
|
|
} else {
|
|
|
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
|
|
|
}
|
|
|
},
|
|
|
scope: this
|
|
|
});
|
|
|
|
|
|
|
|
|
this.storeMblnoList.load({ params: { condition: " BSNO='" + BSNO+"' " } });
|
|
|
|
|
|
this.loadBody(Bodycondition);
|
|
|
|
|
|
},
|
|
|
|
|
|
loadBody: function (condition) {
|
|
|
_this = this;
|
|
|
this.storeBody.load(
|
|
|
{
|
|
|
params: { condition: condition }
|
|
|
,
|
|
|
callback: function (options, success, response) {
|
|
|
_this.DoSetGridTip();
|
|
|
}
|
|
|
}
|
|
|
);
|
|
|
if (this.opStatus == 'edit')
|
|
|
this.storeZaFeiList.load(
|
|
|
{
|
|
|
params: { condition: condition }
|
|
|
,
|
|
|
callback: function (options, success, response) {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
);
|
|
|
},
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
LoadInitData: function () {
|
|
|
|
|
|
},
|
|
|
|
|
|
//#region 保存/添加/删除
|
|
|
Save: function (type) {
|
|
|
|
|
|
var Form = this.formHead.getForm();
|
|
|
|
|
|
|
|
|
if (!Form.isValid()) {
|
|
|
return;
|
|
|
}
|
|
|
var data = Form.getValues();
|
|
|
|
|
|
var Bodydatas = [];
|
|
|
for (var i = 0; i < this.storeBody.getCount(); i += 1) {
|
|
|
var member = this.storeBody.getAt(i);
|
|
|
Bodydatas.push(member);
|
|
|
}
|
|
|
var jsonBody = ConvertRecordsToJson(Bodydatas);
|
|
|
|
|
|
var ZaFeidatas = [];
|
|
|
for (var i = 0; i < this.storeZaFeiList.getCount(); i += 1) {
|
|
|
var member = this.storeZaFeiList.getAt(i);
|
|
|
ZaFeidatas.push(member);
|
|
|
}
|
|
|
var jsonBody_ZaFei = ConvertRecordsToJson(ZaFeidatas);
|
|
|
|
|
|
Ext.Msg.wait('正在保存数据, 请稍侯..');
|
|
|
Ext.Ajax.request({
|
|
|
waitMsg: '正在保存数据...',
|
|
|
url: '/MvcShipping/MsPrice/SaveQuotation',
|
|
|
scope: this,
|
|
|
params: {
|
|
|
opstatus: this.opStatus,
|
|
|
data: Ext.JSON.encode(data),
|
|
|
Body: jsonBody,
|
|
|
ZaFei: jsonBody_ZaFei
|
|
|
},
|
|
|
callback: function (options, success, response) {
|
|
|
if (success) {
|
|
|
Ext.MessageBox.hide();
|
|
|
var jsonresult = Ext.JSON.decode(response.responseText);
|
|
|
if (jsonresult.Success) {
|
|
|
var returnData = jsonresult.Data;
|
|
|
|
|
|
this.Editdata = returnData;
|
|
|
|
|
|
|
|
|
this.Editdata.EFFECTIVEDATE = this.Editdata.EFFECTIVEDATE.replace(" 00:00:00", "");
|
|
|
this.Editdata.VALIDDATE = this.Editdata.VALIDDATE.replace(" 00:00:00", "");
|
|
|
|
|
|
|
|
|
this.formHead.getForm().reset();
|
|
|
this.formHead.getForm().setValues(this.Editdata);
|
|
|
|
|
|
if (this.opStatus == 'add') {
|
|
|
var arrNewRecords = this.StoreList.add(returnData);
|
|
|
this.editRecord = arrNewRecords[0];
|
|
|
this.opStatus = 'edit';
|
|
|
}
|
|
|
else if (this.opStatus == 'edit') {
|
|
|
var editp = Ext.create('MsPrice_QuotationIndexmb', returnData);
|
|
|
this.editRecord.fields.each(function (field) {
|
|
|
if (field.persist) {
|
|
|
name = field.name;
|
|
|
if (name != 'BSNO')
|
|
|
this.editRecord.set(name, editp.get(name));
|
|
|
}
|
|
|
}, this);
|
|
|
this.editRecord.commit();
|
|
|
|
|
|
//this.Editdata = result.data;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.GetEditStatus();
|
|
|
|
|
|
if (type == '0') {
|
|
|
|
|
|
this.loadBody(" BSNO='" + this.editRecord.get('BSNO').toString().trim() + "'");
|
|
|
|
|
|
} else if (type == '1') {
|
|
|
window.close();
|
|
|
} else if (type == '2') {
|
|
|
this.CopyNew();
|
|
|
} else if (type == '3') {
|
|
|
//执行add方法
|
|
|
|
|
|
this.DoAddDetailClick();
|
|
|
}
|
|
|
|
|
|
} 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
|
|
|
CopyNew: function () {
|
|
|
|
|
|
this.opStatus = 'add';
|
|
|
var basicForm = this.formHead.getForm();
|
|
|
|
|
|
basicForm.findField('BSNO').setValue('');
|
|
|
basicForm.findField('CUSTOMERNAME').setValue('');
|
|
|
|
|
|
this.storeBody.each(function (record) {
|
|
|
record.set('GID', NewGuid());
|
|
|
record.set('BSNO', '');
|
|
|
});
|
|
|
|
|
|
this.storeZaFeiList.each(function (record) {
|
|
|
record.set('GID', NewGuid());
|
|
|
record.set('BSNO', '');
|
|
|
});
|
|
|
|
|
|
}
|
|
|
,
|
|
|
onAddDetailClick: function (button, event) {
|
|
|
//执行save方法 在callback当中执行添加子项 最后再load一次
|
|
|
|
|
|
var selections = this.formDetail_Add.getSelectionModel().getSelection();
|
|
|
if (selections.length == 0) {
|
|
|
Ext.Msg.show({ title: '提示', msg: '请先选择单据!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
|
|
|
this.Save('3');
|
|
|
},
|
|
|
DoAddDetailClick: function (button, event) {
|
|
|
|
|
|
var selections = this.formDetail_Add.getSelectionModel().getSelection();
|
|
|
|
|
|
GIDList = "";
|
|
|
|
|
|
for (var _i = 0; _i < selections.length; _i++) {
|
|
|
rec = selections[_i];
|
|
|
|
|
|
if (GIDList != "") GIDList += ",";
|
|
|
GIDList += "'" + rec.data.GID + "'";
|
|
|
}
|
|
|
|
|
|
Ext.Ajax.request({
|
|
|
waitMsg: '正在保存数据...',
|
|
|
url: '/MvcShipping/MsPrice/AddQuotationDetail',
|
|
|
scope: this,
|
|
|
params: {
|
|
|
data: Ext.JSON.encode(this.Editdata),
|
|
|
GID: GIDList
|
|
|
},
|
|
|
callback: function (options, success, response) {
|
|
|
Ext.MessageBox.hide();
|
|
|
var jsonresult = Ext.JSON.decode(response.responseText);
|
|
|
if (jsonresult.Success) {
|
|
|
|
|
|
this.loadBody("BSNO='" + this.editRecord.get('BSNO') + "'");
|
|
|
|
|
|
this.onRefreshClick();
|
|
|
} else {
|
|
|
Ext.Msg.show({
|
|
|
title: '请重试',
|
|
|
msg: jsonresult.Message,
|
|
|
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
onDelDetailClick: function (button, event) {
|
|
|
|
|
|
var selectedRecords = this.formDetail.selModel.getSelection();
|
|
|
Ext.MessageBox.confirm('提示', '确定删除记录吗?', function (btn) {
|
|
|
if (btn == 'yes') {
|
|
|
var GIDList = "";
|
|
|
for (var i = 0; i < selectedRecords.length; i++) {
|
|
|
var rec = selectedRecords[i];
|
|
|
if (GIDList != "") {
|
|
|
GIDList += ",";
|
|
|
}
|
|
|
GIDList += "'" + rec.data.GID + "'";
|
|
|
}
|
|
|
|
|
|
Ext.Msg.wait('正在保存数据, 请稍侯..');
|
|
|
Ext.Ajax.request({
|
|
|
waitMsg: '正在保存数据...',
|
|
|
url: '/MvcShipping/MsPrice/DelQuotationDetail',
|
|
|
scope: this,
|
|
|
params: {
|
|
|
data: Ext.JSON.encode(this.Editdata),
|
|
|
GID: GIDList
|
|
|
},
|
|
|
callback: function (options, success, response) {
|
|
|
Ext.MessageBox.hide();
|
|
|
var jsonresult = Ext.JSON.decode(response.responseText);
|
|
|
if (jsonresult.Success) {
|
|
|
//var returnData = jsonresult.Data;
|
|
|
|
|
|
//this.Editdata = returnData;
|
|
|
|
|
|
this.loadBody("BSNO='" + this.editRecord.get('BSNO') + "'");
|
|
|
|
|
|
//this.formHead.getForm().reset();
|
|
|
//this.formHead.getForm().setValues(this.Editdata);
|
|
|
|
|
|
//this.loadBody(" BSNO='" + this.editRecord.get('BSNO').toString().trim() + "' ");
|
|
|
|
|
|
} else {
|
|
|
Ext.Msg.show({
|
|
|
title: '请重试',
|
|
|
msg: jsonresult.Message,
|
|
|
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}
|
|
|
}, this);
|
|
|
},
|
|
|
reLine: function (button, event) {
|
|
|
var _L = 1;
|
|
|
this.storeBody.each(function (record) {
|
|
|
var ln = _L + "";
|
|
|
_L = _L + 1;
|
|
|
record.set('SEQUENCE', ln);
|
|
|
});
|
|
|
},
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
//#region 载入初始信息
|
|
|
|
|
|
LoadInit: function (data) {
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
//#region 编辑时按钮等的状态
|
|
|
GetEditStatus: function () {
|
|
|
var canedit = false;
|
|
|
|
|
|
_this = this;
|
|
|
|
|
|
var op = USERID;
|
|
|
|
|
|
this.StoreOpRange.load({
|
|
|
params: { optype: "modPrice_Quotation" },
|
|
|
callback: function (r, options, success) {
|
|
|
if (success) {
|
|
|
if (r.length != 0) {
|
|
|
var records = DsStoreQueryBy(_this.StoreOpRange, 'OPID', op);
|
|
|
if (records.getCount() > 0) {
|
|
|
canedit = true;
|
|
|
}
|
|
|
} else { canedit = false; }
|
|
|
|
|
|
_this.setSaveBtnStatus(canedit);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
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;
|
|
|
|
|
|
},
|
|
|
|
|
|
setSaveBtnStatus: function (enable) {
|
|
|
var btnESave = Ext.getCmp('btnESave');
|
|
|
var btnESaveAndClose = Ext.getCmp('btnESaveAndClose');
|
|
|
|
|
|
var btndeletedetail = Ext.getCmp('btndeletedetail');
|
|
|
|
|
|
if (enable) {
|
|
|
btnESave.enable();
|
|
|
btnESaveAndClose.enable();
|
|
|
btndeletedetail.enable();
|
|
|
|
|
|
} else {
|
|
|
btnESave.disable();
|
|
|
btnESaveAndClose.disable();
|
|
|
btndeletedetail.disable();
|
|
|
}
|
|
|
},
|
|
|
//#endregion
|
|
|
|
|
|
//#region 下半部查询
|
|
|
onRefreshClick: function (button, event) {
|
|
|
|
|
|
this.PageSize = this.Pagenum.getValue();
|
|
|
_this = this;
|
|
|
var sql = this.getCondition();
|
|
|
|
|
|
this.storeBody_Add.load({
|
|
|
params: { start: 0, limit: this.PageSize, condition: sql },
|
|
|
waitMsg: "正在查询数据...",
|
|
|
callback: function (options, success, response) {
|
|
|
_this.DoSetGridTip_Add();
|
|
|
},
|
|
|
scope: this
|
|
|
});
|
|
|
//}
|
|
|
},
|
|
|
getCondition: function () {
|
|
|
|
|
|
//var form = this.formSearch.getForm();
|
|
|
var sql = '';
|
|
|
|
|
|
//if (!isNullorEmpty(this.Editdata.BSNO)) {
|
|
|
// _bsno = this.Editdata.BSNO;
|
|
|
// sql = sql + getAndConSql(sql, _bsno, " not exists (select 1 from op_seaprice_quotation_detail d where d.carrier = carrier and d.PODLOAD=PODLOAD and d.PORTDISCHARGE=PORTDISCHARGE and d.VIA=VIA) ");
|
|
|
//}
|
|
|
|
|
|
var CARRIER = Ext.getCmp('search_carrier').getValue();
|
|
|
sql = sql + getAndConSql(sql, CARRIER, " CARRIER like '%" + CARRIER + "%' ");
|
|
|
|
|
|
var PORTLOAD = Ext.getCmp('search_portload').getValue();
|
|
|
sql = sql + getAndConSql(sql, PORTLOAD, " PODLOAD = '" + PORTLOAD + "' ");
|
|
|
|
|
|
var PORTDISCHARGE = Ext.getCmp('search_portdischarge').getValue();
|
|
|
sql = sql + getAndConSql(sql, PORTDISCHARGE, " PORTDISCHARGEID = '" + PORTDISCHARGE + "' ");
|
|
|
|
|
|
var VIA = Ext.getCmp('search_via').getValue();
|
|
|
sql = sql + getAndConSql(sql, VIA, " (VIA = '" + VIA + "' or VIA2 = '" + VIA + "') ");
|
|
|
|
|
|
var BSNO = Ext.getCmp('search_contract').getValue();
|
|
|
sql = sql + getAndConSql(sql, BSNO, " (CONTRACTNO like '%" + BSNO + "%' or CONTRACTBSNO like '%" + BSNO + "%') ");
|
|
|
|
|
|
var ETD_BGN = Ext.getCmp('search_etdbgn').getRawValue();
|
|
|
var ETD_END = Ext.getCmp('search_etdend').getRawValue() + " 23:59:59";
|
|
|
if (!isNullorEmpty(ETD_BGN) && !isNullorEmpty(ETD_END)) {
|
|
|
sql = sql + getAndConSql(sql, ETD_BGN, "dbo.F_TimeMixed(EFFECTIVEDATE,VALIDDATE,'" + ETD_BGN + "','" + ETD_END + "')='true' ");
|
|
|
} else {
|
|
|
|
|
|
sql = sql + getAndConSql(sql, ETD_BGN, " VALIDDATE>='" + ETD_BGN + "'");
|
|
|
sql = sql + getAndConSql(sql, ETD_END, " EFFECTIVEDATE<='" + ETD_END);
|
|
|
}
|
|
|
|
|
|
|
|
|
var CTNTYPE = Ext.getCmp('search_ctntype').getValue();
|
|
|
sql = sql + getAndConSql(sql, CTNTYPE, " isnull(" + CTNTYPE + "2,0)>0 ");
|
|
|
|
|
|
|
|
|
// ((endTime < begin) OR (startTime > end))
|
|
|
|
|
|
return sql;
|
|
|
},
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
//#region 上传pdf
|
|
|
UploadPDF: function () {
|
|
|
if (this.opStatus != 'edit') {
|
|
|
Ext.Msg.show({
|
|
|
title: '提示',
|
|
|
msg: '请先保存',
|
|
|
icon: Ext.MessageBox.ERROR,
|
|
|
buttons: Ext.Msg.OK
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
_this = this;
|
|
|
URLINFO = { KeyValue: this.Editdata.BSNO, INDATABASE: "false" };
|
|
|
UpLoadFile(URLINFO, this.UpLoadFileType, _this.rewrite, _this);
|
|
|
|
|
|
},
|
|
|
|
|
|
rewrite: function () {
|
|
|
|
|
|
Bodycondition = "BSNO='" + this.Editdata.get('BSNO') + "'";
|
|
|
|
|
|
this.LoadData(this.opStatus, this.Editdata.BSNO, Bodycondition);
|
|
|
|
|
|
},
|
|
|
//#endregion
|
|
|
|
|
|
DoSetGridTip: function () {
|
|
|
|
|
|
this.SetGridTip(this.storeBody,"GID", "CTN00", "CTN0PRICESTR");
|
|
|
this.SetGridTip(this.storeBody,"GID", "CTN10", "CTN1PRICESTR");
|
|
|
this.SetGridTip(this.storeBody,"GID", "CTN20", "CTN2PRICESTR");
|
|
|
this.SetGridTip(this.storeBody,"GID", "CTN30", "CTN3PRICESTR");
|
|
|
this.SetGridTip(this.storeBody, "GID", "CTN40", "CTN4PRICESTR");
|
|
|
|
|
|
}
|
|
|
,
|
|
|
DoSetGridTip_Add: function () {
|
|
|
|
|
|
this.SetGridTip(this.storeBody_Add, "GID", "CTN00", "CTN0PRICESTR");
|
|
|
this.SetGridTip(this.storeBody_Add, "GID", "CTN10", "CTN1PRICESTR");
|
|
|
this.SetGridTip(this.storeBody_Add, "GID", "CTN20", "CTN2PRICESTR");
|
|
|
this.SetGridTip(this.storeBody_Add, "GID", "CTN30", "CTN3PRICESTR");
|
|
|
this.SetGridTip(this.storeBody_Add, "GID", "CTN40", "CTN4PRICESTR");
|
|
|
}
|
|
|
,
|
|
|
SetGridTip: function (store,keyfield, idname, columnname) {
|
|
|
store.each(function (record) {
|
|
|
_id = idname + record.get(keyfield);
|
|
|
_html = _this.truntohtml(record.get(columnname));
|
|
|
Ext.create('Ext.tip.ToolTip', {
|
|
|
target: _id,
|
|
|
html: _html,
|
|
|
title: '',
|
|
|
//autoHide: false,
|
|
|
dismissDelay: 4000
|
|
|
//closable: true,
|
|
|
//draggable: true //可以允许被拖动
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
truntohtml: function (str) {
|
|
|
if (isNullorEmpty(str)) return '';
|
|
|
var arr = str.split(';');
|
|
|
var result = "";
|
|
|
if (arr.length > 0)
|
|
|
for (_i = 0; _i < arr.length; _i++) {
|
|
|
if (!isNullorEmpty(arr[_i]))
|
|
|
result += arr[_i] + '<br />';
|
|
|
}
|
|
|
return result;
|
|
|
},
|
|
|
|
|
|
//#region 添加删除杂费列表的杂费
|
|
|
AddZaFei: function () {
|
|
|
|
|
|
if (this.opStatus == "add") {
|
|
|
Ext.Msg.show({
|
|
|
title: '错误',
|
|
|
msg: '请先保存业务',
|
|
|
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var linenum = this.storeZaFeiList.getCount() + 1;
|
|
|
|
|
|
var record = Ext.create('MsPrice_Quotation_ZaFeiListmb', {
|
|
|
'ID': '',
|
|
|
'BSNO': '',
|
|
|
'SEQUENCE': linenum,
|
|
|
'FEENAME': '',
|
|
|
'CURRENCY': 'RMB',
|
|
|
'AMOUNT': 0,
|
|
|
'NEEDHIDE': 'false',
|
|
|
'NEEDSHOW': 'true'
|
|
|
});
|
|
|
this.storeZaFeiList.add(record);
|
|
|
|
|
|
},
|
|
|
DelZaFei: function () {
|
|
|
|
|
|
if (this.opStatus == "add") {
|
|
|
Ext.Msg.show({
|
|
|
title: '错误',
|
|
|
msg: '请先保存业务',
|
|
|
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var selectedRecords = this.gridZaFeiList.selModel.getSelection();
|
|
|
if (selectedRecords.length == 0) return;
|
|
|
Ext.MessageBox.confirm('提示', '确定删除记录吗?', function (btn) {
|
|
|
if (btn == 'yes') {
|
|
|
var GIDList = "";
|
|
|
for (var i = 0; i < selectedRecords.length; i++) {
|
|
|
var rec = selectedRecords[i];
|
|
|
|
|
|
|
|
|
if (!isNullorEmpty(rec.data.ID)) {
|
|
|
if (GIDList != "") {
|
|
|
GIDList += ",";
|
|
|
}
|
|
|
|
|
|
GIDList += "" + rec.data.ID + "";
|
|
|
}
|
|
|
this.storeZaFeiList.remove(rec);
|
|
|
}
|
|
|
if (GIDList == "") {
|
|
|
//this.storeZaFeiList.load("BSNO='" + this.editRecord.get('BSNO') + "'");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
Ext.Msg.wait('正在保存数据, 请稍侯..');
|
|
|
Ext.Ajax.request({
|
|
|
waitMsg: '正在保存数据...',
|
|
|
url: '/MvcShipping/MsPrice/DelZaFeiDetail',
|
|
|
scope: this,
|
|
|
params: {
|
|
|
data: Ext.JSON.encode(this.Editdata),
|
|
|
GID: GIDList
|
|
|
},
|
|
|
callback: function (options, success, response) {
|
|
|
Ext.MessageBox.hide();
|
|
|
var jsonresult = Ext.JSON.decode(response.responseText);
|
|
|
if (jsonresult.Success) {
|
|
|
|
|
|
this.loadBody(" BSNO='" + this.editRecord.get('BSNO').toString().trim() + "'");
|
|
|
|
|
|
} else {
|
|
|
Ext.Msg.show({
|
|
|
title: '请重试',
|
|
|
msg: jsonresult.Message,
|
|
|
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}
|
|
|
}, this);
|
|
|
},
|
|
|
|
|
|
//从枚举类型30002当中查找所有内容,并写入storeZaFeiList
|
|
|
LoadZaFeiDefault: function () {
|
|
|
_this = this;
|
|
|
this.storeZaFeiModel.load({
|
|
|
params: { enumTypeId: 30002 }
|
|
|
, callback: function (options, success, response) {
|
|
|
var jsonArray = [];
|
|
|
|
|
|
_this.storeZaFeiModel.each(function (record) {
|
|
|
|
|
|
_this.InsertZaFei(record);
|
|
|
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
InsertZaFei: function (rec) {
|
|
|
var linenum = this.storeZaFeiList.getCount() + 1;
|
|
|
if (isNullorEmpty(rec.data.EnumValueName)) return;
|
|
|
|
|
|
ss = rec.data.EnumValueName_2.split(",");
|
|
|
|
|
|
var record = Ext.create('MsPrice_Quotation_ZaFeiListmb', {
|
|
|
'ID': '',
|
|
|
'BSNO': '',
|
|
|
'SEQUENCE': linenum,
|
|
|
'FEENAME': rec.data.EnumValueName,
|
|
|
'CURRENCY': ss[0],
|
|
|
'UNIT': ss[1],
|
|
|
'AMOUNT': -1,
|
|
|
'NEEDHIDE': 'false',
|
|
|
'NEEDSHOW': 'true'
|
|
|
});
|
|
|
this.storeZaFeiList.add(record);
|
|
|
|
|
|
this.storeZaFeiList.each(function (newrec) {
|
|
|
if (newrec.data.AMOUNT == -1) {
|
|
|
newrec.set("AMOUNT", rec.data.VerNo);
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
|
|
|
ZaFeiAfterEdit: function (editor, e, eOpts) {
|
|
|
if (e.value == e.originalValue) { return; }
|
|
|
|
|
|
if (e.field == 'NEEDHIDE') {
|
|
|
if (e.value==true)
|
|
|
e.record.set('NEEDSHOW', false);
|
|
|
if (e.value == false)
|
|
|
e.record.set('NEEDSHOW', true);
|
|
|
}
|
|
|
|
|
|
if (e.field == 'NEEDSHOW') {
|
|
|
if (e.value == true)
|
|
|
e.record.set('NEEDHIDE', false);
|
|
|
if (e.value == false)
|
|
|
e.record.set('NEEDHIDE', true);
|
|
|
}
|
|
|
},
|
|
|
//#endregion
|
|
|
|
|
|
//#region 打印
|
|
|
Print: function () {
|
|
|
|
|
|
var basicForm = this.formHead.getForm();
|
|
|
var BSNO = basicForm.findField('BSNO').value;
|
|
|
if (BSNO == '*' || BSNO == '') {
|
|
|
Ext.Msg.show({ title: '错误', msg: '单据还没有保存,请保存后再打印', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var printType = 'Op_Price_Quotation';
|
|
|
var sql1 = "";
|
|
|
var sql2 = "";
|
|
|
var sql3 = "";
|
|
|
var sql4 = "";
|
|
|
var sql5 = "";
|
|
|
var sql6 = "";
|
|
|
|
|
|
ctninfo = [];
|
|
|
|
|
|
for (var i = 0; i < this.storeBody.getCount(); i += 1) {
|
|
|
|
|
|
var recdata = this.storeBody.getAt(i).data;
|
|
|
|
|
|
if (recdata.CTN02 > 0 && this.ArrayHaveNot(ctninfo, 'CTN02'))
|
|
|
ctninfo.push('CTN02');
|
|
|
if (recdata.CTN12 > 0 && this.ArrayHaveNot(ctninfo, 'CTN12'))
|
|
|
ctninfo.push('CTN12');
|
|
|
if (recdata.CTN22 > 0 && this.ArrayHaveNot(ctninfo, 'CTN22'))
|
|
|
ctninfo.push('CTN22');
|
|
|
if (recdata.CTN32 > 0 && this.ArrayHaveNot(ctninfo, 'CTN32'))
|
|
|
ctninfo.push('CTN32');
|
|
|
if (recdata.CTN42 > 0 && this.ArrayHaveNot(ctninfo, 'CTN42'))
|
|
|
ctninfo.push('CTN42');
|
|
|
}
|
|
|
|
|
|
|
|
|
if (ctninfo.length == 0) {
|
|
|
Ext.Msg.show({
|
|
|
title: '提示',
|
|
|
msg: "第一行报价中至少要有一项不是0的报价",
|
|
|
icon: Ext.MessageBox.ERROR,
|
|
|
buttons: Ext.Msg.OK
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
Ext.Ajax.request({
|
|
|
waitMsg: '正在查询主表数据...',
|
|
|
url: '/MvcShipping/MsPrice/GetQuotationPrintSql_Fen',
|
|
|
params: {
|
|
|
printname: printType,
|
|
|
BSNOList: "'" + BSNO + "'",
|
|
|
ctntype: ctninfo
|
|
|
},
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
//this.Editdata = result.data;
|
|
|
//this.LoadInit(data);
|
|
|
|
|
|
sql1 = result.Data.sql1;
|
|
|
sql2 ='select * from(' +result.Data.sql2 + ')t order by PODLOAD,PORTDISCHARGE,报价类型';
|
|
|
|
|
|
PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6);
|
|
|
} else {
|
|
|
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
|
|
|
}
|
|
|
},
|
|
|
scope: this
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
, ArrayHaveNot(ctninfo, ctntypestr) {
|
|
|
|
|
|
_i = ctninfo.indexOf(ctntypestr);
|
|
|
|
|
|
if (_i >= 0) { return false; }
|
|
|
else { return true;}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
});
|
|
|
|