|
|
///<reference path="../../../../Views/../TruckMng/Scripts/vswd-ext_2.0.2.js" />
|
|
|
Ext.namespace('DsTruck');
|
|
|
|
|
|
DsTruck.CtnEdit = function (config) {
|
|
|
Ext.applyIf(this, config);
|
|
|
this.initUIComponents();
|
|
|
window.DsTruck.CtnEdit.superclass.constructor.call(this);
|
|
|
};
|
|
|
|
|
|
Date.prototype.format = function (format) {
|
|
|
var o = {
|
|
|
"M+": this.getMonth() + 1, //month
|
|
|
"d+": this.getDate(), //day
|
|
|
"h+": this.getHours(), //hour
|
|
|
"m+": this.getMinutes(), //minute
|
|
|
"s+": this.getSeconds(), //second
|
|
|
"q+": Math.floor((this.getMonth() + 3) / 3), //quarter
|
|
|
"S": this.getMilliseconds() //millisecond
|
|
|
}
|
|
|
if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
|
|
|
(this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
|
for (var k in o) if (new RegExp("(" + k + ")").test(format))
|
|
|
format = format.replace(RegExp.$1,
|
|
|
RegExp.$1.length == 1 ? o[k] :
|
|
|
("00" + o[k]).substr(("" + o[k]).length));
|
|
|
return format;
|
|
|
}
|
|
|
|
|
|
var xhr = new XMLHttpRequest();
|
|
|
var currdate = new Date();
|
|
|
if (!xhr) {
|
|
|
//...其他生成xmlhttprequest方法
|
|
|
}
|
|
|
xhr.open("HEAD", location.href, true);
|
|
|
xhr.onreadystatechange = function () {
|
|
|
if (xhr.readyState == 4 && xhr.status == 200) {
|
|
|
var datestr = xhr.getResponseHeader("Date");
|
|
|
currdate = new Date(datestr);
|
|
|
// alert(currdate.format('yyyy-MM-dd'));
|
|
|
}
|
|
|
}
|
|
|
xhr.send(null);
|
|
|
|
|
|
function getSaved() {
|
|
|
var feedirty = DsTruck.GetDirty(panelEdit.storeBodyChfee, panelEdit.storeBodyChfeeDel);
|
|
|
|
|
|
if (panelEdit.formEdit.getForm().isDirty()== true )
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
else return false;
|
|
|
}
|
|
|
|
|
|
Ext.extend(DsTruck.CtnEdit, Ext.Panel, {
|
|
|
parentWin: null,
|
|
|
OpStatus: 'add',
|
|
|
StoreList: null,
|
|
|
editRecord: null,
|
|
|
BXSTATUS: 1,
|
|
|
// parentfunction: null,
|
|
|
_First: true,
|
|
|
VISIBLERANGE: 0,
|
|
|
OPERATERANGE: 0,
|
|
|
WorkFlowName: "",
|
|
|
WorkFlowID: "",
|
|
|
BSNO: "",
|
|
|
initUIComponents: function () {
|
|
|
//this.feeSerialNo = 0;
|
|
|
this.CtnDel = [];
|
|
|
//this.PayBodyDel = [];
|
|
|
|
|
|
//#region 枚举参照相关(编辑form)
|
|
|
WorkFlowName = 'BaoxiaoMod';
|
|
|
|
|
|
Ext.define('BodyTypeMd', {
|
|
|
extend: 'Ext.data.Model',
|
|
|
fields: [
|
|
|
{ name: 'BODYTYPE', type: 'tmswl_port_ctn' },
|
|
|
{ name: 'BODYTYPE_REF', type: 'string' }
|
|
|
]
|
|
|
});
|
|
|
var BodyTypeData = [{ "BODYTYPE": "Ctn", "BODYTYPE_REF": "集装箱" },
|
|
|
{ "BODYTYPE": "Other", "BODYTYPE_REF": "杂项" },
|
|
|
{ "BODYTYPE": "RO", "BODYTYPE_REF": "滚装" },
|
|
|
{ "BODYTYPE": "MovCtn", "BODYTYPE_REF": "外部拖箱"}];
|
|
|
this.storeBodyType = Ext.create('Ext.data.Store', {
|
|
|
model: 'BodyTypeMd',
|
|
|
data: BodyTypeData
|
|
|
});
|
|
|
this.comboxBodyType = Ext.create('DsExt.ux.RefEnumCombox', {
|
|
|
fieldLabel: '业务类型',
|
|
|
forceSelection: true,
|
|
|
store: this.storeBodyType,
|
|
|
name: 'BODYTYPE',
|
|
|
valueField: 'BODYTYPE',
|
|
|
displayField: 'BODYTYPE_REF',
|
|
|
values: "Ctn"
|
|
|
});
|
|
|
|
|
|
this.storeTruckNo = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'MsWlBsHeadRefMsWlTruck',
|
|
|
proxy: { url: '/TruckMng/MsWlPc/GetTruckNoList' }
|
|
|
});
|
|
|
this.storeTruckNo.load({ params: { condition: " NativeAddr like '%码头%' "} });
|
|
|
|
|
|
this.comboxTruckNo = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
//fieldLabel: '车牌号',
|
|
|
store: this.storeTruckNo,
|
|
|
name: 'TRUCKNO',
|
|
|
valueField: 'TruckNo',
|
|
|
displayField: 'WORKNOTruckNo',
|
|
|
listeners: {
|
|
|
change: function (field, newValue, oldValue) {
|
|
|
//this.tonAndTruckNoChange(field, newValue, oldValue);
|
|
|
},
|
|
|
scope: this
|
|
|
}
|
|
|
});
|
|
|
|
|
|
this.storeDrvName = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'MsWlBsHeadRefMsWlDriver',
|
|
|
proxy: { url: '/TruckMng/MsWlPc/GetDrvNameList' }
|
|
|
});
|
|
|
this.storeDrvName.load({ params: { condition: ""} });
|
|
|
|
|
|
this.comboxDrvName = Ext.create('DsExt.ux.RefTableCombox', {
|
|
|
//fieldLabel: '司机',
|
|
|
store: this.storeDrvName,
|
|
|
name: 'DRVCODE',
|
|
|
valueField: 'DrvCode',
|
|
|
displayField: 'CodeAndName',
|
|
|
listeners: {
|
|
|
scope: this,
|
|
|
'select': function (combo, records, eOpts) {
|
|
|
if (records.length > 0) {
|
|
|
//this.setDrvName(records[0].data.DrvCode);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
//#endregion
|
|
|
|
|
|
this.storePrice = Ext.create('DsExt.ux.RefEnumStore', {});
|
|
|
this.storePrice.load({ params: { enumTypeId: 99043} });
|
|
|
//费用参数
|
|
|
/* this.comboxMainstate = Ext.create('DsExt.ux.RefEnumCombox', {
|
|
|
fieldLabel: '合同状态',
|
|
|
store: this.storeMainstate,
|
|
|
name: 'Mainstate'
|
|
|
//,value: '0'
|
|
|
});*/
|
|
|
|
|
|
|
|
|
//////////////////
|
|
|
|
|
|
//编辑form:formEdit
|
|
|
this.formEdit = Ext.widget('form', {
|
|
|
// layout: "border",
|
|
|
region: 'north',
|
|
|
frame: true,
|
|
|
bodyPadding: 1,
|
|
|
trackResetOnLoad: true,
|
|
|
fieldDefaults: {
|
|
|
margins: '1 1 1 1',
|
|
|
labelAlign: 'right',
|
|
|
flex: 1,
|
|
|
labelWidth: 90,
|
|
|
msgTarget: 'qtip'
|
|
|
//,split:true
|
|
|
},
|
|
|
//bodyStyle: 'background:#FFF',
|
|
|
|
|
|
items: [
|
|
|
{//fieldset 1
|
|
|
xtype: 'fieldset',
|
|
|
defaultType: 'textfield',
|
|
|
layout: 'anchor',
|
|
|
defaults: {
|
|
|
anchor: '100%'
|
|
|
},
|
|
|
items: [{//container_1
|
|
|
xtype: 'container',
|
|
|
layout: 'hbox',
|
|
|
defaultType: 'textfield',
|
|
|
items: [{
|
|
|
fieldLabel: '业务序列号',
|
|
|
// allowBlank: false,
|
|
|
readOnly: true,
|
|
|
name: 'GID'
|
|
|
}, this.comboxBodyType,
|
|
|
{
|
|
|
fieldLabel: '制单时间',
|
|
|
format: 'Y-m-d', id: "EXPDATE",
|
|
|
xtype: 'datefield',
|
|
|
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
|
|
|
name: 'EXPDATE',
|
|
|
listeners: {
|
|
|
change: function (field, eOpts) {
|
|
|
|
|
|
if (field.lastValue != "") {
|
|
|
|
|
|
var ACCDATE = (this.formEdit.getForm().findField('ACCDATE').getRawValue());
|
|
|
|
|
|
if (ACCDATE == "" || ACCDATE == null) {
|
|
|
_M = field.lastValue.getMonth() + 1;
|
|
|
var _M2 = "";
|
|
|
if (_M < 10) {
|
|
|
_M2 = "0" + _M;
|
|
|
} else {
|
|
|
_M2 = "" + _M;
|
|
|
}
|
|
|
_a = field.lastValue.getFullYear() + '-' + _M2;
|
|
|
|
|
|
this.formEdit.getForm().findField('ACCDATE').setValue(_a);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
this.Cansearch = false;
|
|
|
},
|
|
|
scope: this
|
|
|
}
|
|
|
}, {
|
|
|
xtype: 'hiddenfield',
|
|
|
flex: 1
|
|
|
}
|
|
|
//this.comboxFEENAME,
|
|
|
/*{
|
|
|
fieldLabel: '时间戳',
|
|
|
name: 'TimeMark', flex: 0, hidden: true, margins: '0'
|
|
|
}*/
|
|
|
]
|
|
|
}, //container_1 end
|
|
|
{
|
|
|
xtype: 'container',
|
|
|
layout: 'hbox',
|
|
|
defaultType: 'textfield',
|
|
|
items: [{
|
|
|
fieldLabel: '会计月份',
|
|
|
// allowBlank: false,
|
|
|
//disabled: true,
|
|
|
name: 'ACCDATE'
|
|
|
}, {
|
|
|
fieldLabel: '应收',
|
|
|
name: 'Amount_1', id: "Amount_1",
|
|
|
flex: 1
|
|
|
}, {
|
|
|
fieldLabel: '应付',
|
|
|
name: 'Amount_2', id: "Amount_2",
|
|
|
flex: 1
|
|
|
}/*, {
|
|
|
xtype: 'hiddenfield',
|
|
|
flex: 1
|
|
|
}*/, {
|
|
|
fieldLabel: '时间戳',
|
|
|
name: 'TimeMark', flex: 1, hidden: true, margins: '0'
|
|
|
}, {
|
|
|
xtype: 'checkbox', flex: 1,
|
|
|
fieldLabel: '业务锁定',
|
|
|
name: 'Locked', readOnly: true
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
xtype: 'container',
|
|
|
layout: 'hbox',
|
|
|
defaultType: 'textfield',
|
|
|
items: [{
|
|
|
fieldLabel: '备注',
|
|
|
name: 'REMARK',
|
|
|
flex: 2
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
|
|
|
]
|
|
|
}
|
|
|
]
|
|
|
});
|
|
|
|
|
|
//////////////////////////////////
|
|
|
//明细 <<<< 收支费用明细 >>>>
|
|
|
//
|
|
|
/*
|
|
|
this.storeAccitems = Ext.create('DsExt.ux.RefTableStore', {
|
|
|
model: 'Accitemsmb',
|
|
|
proxy: { url: '/CommMng/BasicDataRef/GetAccitems' }
|
|
|
});
|
|
|
this.storeAccitems.load({ params: { condition: ""} });
|
|
|
*/
|
|
|
|
|
|
|
|
|
//数据集
|
|
|
this.storeCtn = Ext.create('Ext.data.Store', {
|
|
|
model: 'PortCtnmb',
|
|
|
remoteSort: false,
|
|
|
pruneModifiedRecords: true,
|
|
|
proxy: {
|
|
|
type: 'ajax',
|
|
|
url: '/TruckMng/MsWl_Port/GetCtn',
|
|
|
reader: {
|
|
|
id: 'GID',
|
|
|
root: 'data',
|
|
|
totalProperty: 'totalCount'
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
//表格
|
|
|
this.cellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
|
|
|
clicksToEdit: 1
|
|
|
});
|
|
|
this.CBModel = Ext.create('Ext.selection.CheckboxModel');
|
|
|
Ext.grid.RowNumberer = Ext.extend(Ext.grid.RowNumberer, {
|
|
|
width: 50
|
|
|
});
|
|
|
this.formCtn = new Ext.grid.GridPanel({
|
|
|
store: this.storeCtn,
|
|
|
enableHdMenu: false,
|
|
|
region: 'center',
|
|
|
title: '集装箱',
|
|
|
loadMask: { msg: "数据加载中,请稍等..." },
|
|
|
trackMouseOver: true,
|
|
|
disableSelection: false,
|
|
|
features: [{
|
|
|
ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性
|
|
|
}],
|
|
|
plugins: [this.cellEditing],
|
|
|
selModel: this.CBModel,
|
|
|
selType: 'cellmodel',
|
|
|
tbar: [{
|
|
|
text: '增加明细', id: "add1",
|
|
|
tooltip: '增加明细',
|
|
|
iconCls: "btnadddetail",
|
|
|
handler: function (button, event) {
|
|
|
this.onAddCtnClick(button, event);
|
|
|
},
|
|
|
scope: this
|
|
|
}, '-', {
|
|
|
text: '删除明细', id: "del1",
|
|
|
tooltip: '删除明细',
|
|
|
iconCls: "btndeletedetail",
|
|
|
handler: function (button, event) {
|
|
|
this.onDelCtnClick(button, event);
|
|
|
},
|
|
|
scope: this
|
|
|
}],
|
|
|
columns: [
|
|
|
new Ext.grid.RowNumberer(),
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'GID',
|
|
|
header: 'GID',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'LINKID',
|
|
|
header: 'LINKID',
|
|
|
width: 80
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'DRVCODE',
|
|
|
header: '驾驶员姓名',
|
|
|
width: 80,
|
|
|
renderer: function (value, p, record) {
|
|
|
if (value == null || value == '') return '';
|
|
|
else return record.data.DRVNAME;
|
|
|
},
|
|
|
width: 80,
|
|
|
editor: this.comboxDrvName
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'DRVNAME',
|
|
|
header: 'DRVNAME'
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'Mobile',
|
|
|
header: '电话',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'textfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'TRUCKNO',
|
|
|
header: '车号',
|
|
|
width: 80,
|
|
|
editor: this.comboxTruckNo
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'Ctn20',
|
|
|
header: '20',
|
|
|
width: 90,
|
|
|
editor: {
|
|
|
xtype: 'numberfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
summaryType: 'sum',
|
|
|
summaryRenderer: Ext.util.Format.numberRenderer('00.00')
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'Ctn40',
|
|
|
header: '40',
|
|
|
width: 90,
|
|
|
editor: {
|
|
|
xtype: 'textfield', //numberfield
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
summaryType: 'sum',
|
|
|
summaryRenderer: Ext.util.Format.numberRenderer('00.00')
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'Ctn45',
|
|
|
header: '45',
|
|
|
width: 90,
|
|
|
editor: {
|
|
|
xtype: 'numberfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
summaryType: 'sum',
|
|
|
summaryRenderer: Ext.util.Format.numberRenderer('00.00')
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'Mov',
|
|
|
header: '次数',
|
|
|
width: 90,
|
|
|
editor: {
|
|
|
xtype: 'numberfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
summaryType: 'sum',
|
|
|
summaryRenderer: Ext.util.Format.numberRenderer('00.00')
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'TEU',
|
|
|
header: 'TEU',
|
|
|
width: 100,
|
|
|
editor: {
|
|
|
xtype: 'numberfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
summaryType: 'sum',
|
|
|
summaryRenderer: Ext.util.Format.numberRenderer('00.00')
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'Price_1',
|
|
|
header: '小箱费率',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'Price_2',
|
|
|
header: '大箱费率',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, //hidden: true,
|
|
|
dataIndex: 'AvrOil',
|
|
|
header: '油价',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'Factor',
|
|
|
header: '系数',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
sortable: true, hidden: true,
|
|
|
dataIndex: 'Plus',
|
|
|
header: '尾数',
|
|
|
width: 80,
|
|
|
editor: {
|
|
|
xtype: 'numberfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
}
|
|
|
},
|
|
|
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'Amount_1',
|
|
|
header: '应收(结算)',
|
|
|
width: 100,
|
|
|
editor: {
|
|
|
xtype: 'numberfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
summaryType: 'sum',
|
|
|
summaryRenderer: Ext.util.Format.numberRenderer('00.00')
|
|
|
},
|
|
|
{
|
|
|
sortable: true,
|
|
|
dataIndex: 'Amount_2',
|
|
|
header: '应付(核算)',
|
|
|
width: 100,
|
|
|
editor: {
|
|
|
xtype: 'numberfield', //numberfield textfield
|
|
|
selectOnFocus: true
|
|
|
},
|
|
|
summaryType: 'sum',
|
|
|
summaryRenderer: Ext.util.Format.numberRenderer('00.00')
|
|
|
}]
|
|
|
});
|
|
|
//////////////////////////////////////////////明细<<<< 集装箱信息 >>>>结束
|
|
|
|
|
|
this.panelBtn = new Ext.Panel({
|
|
|
region: "north",
|
|
|
tbar: [
|
|
|
{
|
|
|
// id: "saveandclose",
|
|
|
text: "保存",
|
|
|
iconCls: "btnsave",
|
|
|
handler: function (button, event) {
|
|
|
this.Save('0');
|
|
|
},
|
|
|
scope: this
|
|
|
}, {
|
|
|
// id: "saveandclose",
|
|
|
text: "保存并关闭",
|
|
|
handler: function (button, event) {
|
|
|
this.Save('1');
|
|
|
},
|
|
|
scope: this
|
|
|
}, '-',
|
|
|
{
|
|
|
// id: "saveandclose",
|
|
|
text: "关闭",
|
|
|
handler: function (button, event) {
|
|
|
window.close();
|
|
|
},
|
|
|
scope: this
|
|
|
}, {
|
|
|
text: "导入码头Excel表格",
|
|
|
tooltip: '注意:写有导入内容的工作表名称应该是英文的,而且是xls文件内第一个工作表。文件格式应当是97-2003的xls文件。',
|
|
|
iconCls: "btnexportexcel",
|
|
|
handler: function (button, event) {
|
|
|
if (this.formEdit.getForm().findField('GID').getValue() == "") {
|
|
|
//alert("请先保存以获取单号");
|
|
|
// this.save("0");
|
|
|
this.Save('0');
|
|
|
}
|
|
|
var winAccess = new DsTruck.FileImport({});
|
|
|
|
|
|
var _r = this.storePrice.findRecord("EnumValueId", "油价加");
|
|
|
var priceAdd = parseFloat(_r.get('EnumValueName'));
|
|
|
|
|
|
var _r = this.storePrice.findRecord("EnumValueId", "油价减");
|
|
|
var priceCut = parseFloat(_r.get('EnumValueName'));
|
|
|
|
|
|
var _r = this.storePrice.findRecord("EnumValueId", "油价系数");
|
|
|
var priceMul = parseFloat(_r.get('EnumValueName'));
|
|
|
|
|
|
var _r = this.storePrice.findRecord("EnumValueId", "20GP系数");
|
|
|
var _20GPMul = parseFloat(_r.get('EnumValueName'));
|
|
|
|
|
|
var _r = this.storePrice.findRecord("EnumValueId", "40GP系数");
|
|
|
var _40GPMul = parseFloat(_r.get('EnumValueName'));
|
|
|
|
|
|
winAccess.StoreList = this.storeCtn;
|
|
|
winAccess.BSNO = this.formEdit.getForm().findField('GID').getValue();
|
|
|
winAccess.priceAdd = priceAdd;
|
|
|
winAccess.priceCut = priceCut;
|
|
|
winAccess.priceMul = priceMul;
|
|
|
winAccess._20GPMul = _20GPMul;
|
|
|
winAccess._40GPMul = _40GPMul;
|
|
|
|
|
|
winAccess.show();
|
|
|
|
|
|
},
|
|
|
scope: this
|
|
|
}
|
|
|
]
|
|
|
}); //end 按钮Toolbar
|
|
|
|
|
|
//布局
|
|
|
this.panelTop = new Ext.Panel({
|
|
|
layout: "border",
|
|
|
region: "north",
|
|
|
height: 30,
|
|
|
items: [this.panelBtn]
|
|
|
});
|
|
|
|
|
|
this.panelCtn = new Ext.Panel({
|
|
|
layout: "border",
|
|
|
region: 'center',
|
|
|
margin: '1 1',
|
|
|
height: 230,
|
|
|
split: true,
|
|
|
items: [this.formEdit, this.formCtn]
|
|
|
});
|
|
|
|
|
|
|
|
|
Ext.apply(this, {
|
|
|
items: [this.panelTop, this.panelCtn]
|
|
|
});
|
|
|
|
|
|
|
|
|
parentWin = window.parent.opener;
|
|
|
this.InitData();
|
|
|
|
|
|
//集中绑定事件
|
|
|
|
|
|
this.formCtn.on('edit', function (editor, e, eOpts) {
|
|
|
this.CtnAfterEdit(editor, e, eOpts);
|
|
|
}, this);
|
|
|
|
|
|
this.cellEditing.on('beforeedit', function (editor, e) {
|
|
|
//Ext.getCmp("zongshu").setText("1234");
|
|
|
return this.CtnBeforeEdit(editor, e);
|
|
|
}, this);
|
|
|
|
|
|
}, //end initUIComponents
|
|
|
|
|
|
parentfunction: function (button, event) {
|
|
|
var ret1 = window.parent.opener.OprationSwap();
|
|
|
// alert(this.First);
|
|
|
ret1[3]();
|
|
|
},
|
|
|
|
|
|
onAddCtnClick: function (button, event, type) {
|
|
|
|
|
|
var store = null;
|
|
|
|
|
|
store = this.storeCtn;
|
|
|
|
|
|
//var newSerialno = this.GetHandleSerialNo(store, type);
|
|
|
|
|
|
var record = null;
|
|
|
|
|
|
record = Ext.create('PortCtnmb', {
|
|
|
GID: newGuid(),
|
|
|
LINKID: "",
|
|
|
DRVCODE: "",
|
|
|
DRVNAME: "",
|
|
|
Mobile: "",
|
|
|
TRUCKNO: "",
|
|
|
Ctn20: "0",
|
|
|
Ctn40: "0",
|
|
|
Ctn45: "0",
|
|
|
Mov: "0",
|
|
|
TEU: "0",
|
|
|
Price_1: "2",
|
|
|
Price_2: "1.2",
|
|
|
AvrOil: "6",
|
|
|
Factor: "0.7",
|
|
|
Plus: "11.5",
|
|
|
Amount_1: "0",
|
|
|
Amount_2: "0"
|
|
|
});
|
|
|
|
|
|
store.add(record);
|
|
|
|
|
|
cellediting = this.cellEditing;
|
|
|
|
|
|
var n = store.getCount();
|
|
|
cellediting.startEditByPosition({ row: n - 1, column: 2 });
|
|
|
},
|
|
|
|
|
|
onDelCtnClick: function (button, event) {
|
|
|
var selectedRecords = this.formCtn.selModel.getSelection();
|
|
|
Ext.MessageBox.confirm('提示', '确定删除记录吗?', function (btn) {
|
|
|
if (btn == 'yes') {
|
|
|
for (var i = 0; i < selectedRecords.length; i++) {
|
|
|
var rec = selectedRecords[i];
|
|
|
if (rec.GID != "" || rec.GID != "*") //如果是新增但没有保存的数据,没有必要提交到后台
|
|
|
{
|
|
|
this.CtnDel.push(rec);
|
|
|
}
|
|
|
this.storeCtn.remove(selectedRecords[i]);
|
|
|
}
|
|
|
}
|
|
|
}, this);
|
|
|
//aftereditform();
|
|
|
var Amount_ALL = 0;
|
|
|
for (var i = 0; i < this.storeCtn.getCount(); i += 1) {
|
|
|
Amount_ALL = Add(Amount_ALL, parseFloat(this.storeCtn.getAt(i).get("Amount")));
|
|
|
}
|
|
|
Ext.getCmp("AMOUNT_ALL").setValue(Amount_ALL + "");
|
|
|
},
|
|
|
CtnAfterEdit: function (editor, e, eOpts) {
|
|
|
//需要自己实现里面的事件
|
|
|
if (COMPANYID == "") {
|
|
|
alert("登录信息不全,请退出重新登录");
|
|
|
returen;
|
|
|
}
|
|
|
/*20GP系数 1.2
|
|
|
40GP系数 2
|
|
|
油价加 11.5
|
|
|
油价减 5.4
|
|
|
油价系数 0.7*/
|
|
|
var _r = this.storePrice.findRecord("EnumValueId", "油价加");
|
|
|
var priceAdd = parseFloat(_r.get('EnumValueName'));
|
|
|
|
|
|
var _r = this.storePrice.findRecord("EnumValueId", "油价减");
|
|
|
var priceCut = parseFloat(_r.get('EnumValueName'));
|
|
|
|
|
|
var _r = this.storePrice.findRecord("EnumValueId", "油价系数");
|
|
|
var priceMul = parseFloat(_r.get('EnumValueName'));
|
|
|
|
|
|
var _r = this.storePrice.findRecord("EnumValueId", "20GP系数");
|
|
|
var _20GPMul = parseFloat(_r.get('EnumValueName'));
|
|
|
|
|
|
var _r = this.storePrice.findRecord("EnumValueId", "40GP系数");
|
|
|
var _40GPMul = parseFloat(_r.get('EnumValueName'));
|
|
|
|
|
|
if (e.field == 'DRVCODE') {
|
|
|
var BSrecords = DsStoreQueryBy(this.storeDrvName, 'DrvCode', e.value);
|
|
|
if (BSrecords.getCount() > 0) {
|
|
|
|
|
|
var BSdata = BSrecords.getAt(0).data;
|
|
|
e.record.set('DRVNAME', BSdata.DrvName); //Mobile
|
|
|
e.record.set('Mobile', BSdata.Mobile);
|
|
|
} else {
|
|
|
e.record.set('DRVNAME', '');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (e.field == 'Ctn20' || e.field == 'Ctn40' || e.field == 'Ctn45') {
|
|
|
var TEU = 0;
|
|
|
var _20 = parseFloat(e.record.get('Ctn20'));
|
|
|
var _40 = parseFloat(e.record.get('Ctn40'));
|
|
|
var _45 = parseFloat(e.record.get('Ctn45'));
|
|
|
var TEU = Add(_20, Mul(_40, 2));
|
|
|
TEU = Add(TEU, Mul(_45, 2.25));
|
|
|
var AvrOil = parseFloat(e.record.get('AvrOil'));
|
|
|
var Amount_1 = Mul(Add(Mul(Cut(AvrOil, priceCut), priceMul), priceAdd), TEU);
|
|
|
var Amount_2 = Add(Mul(_20, _20GPMul), Mul(Add(_40, _45), _40GPMul));
|
|
|
var Mov = Add(Add(_20, _40), _45);
|
|
|
e.record.set('TEU', TEU);
|
|
|
e.record.set('Amount_1', Amount_1);
|
|
|
e.record.set('Amount_2', Amount_2);
|
|
|
e.record.set('Mov', Mov);
|
|
|
}
|
|
|
|
|
|
if (e.field == 'TRUCKNO') {
|
|
|
|
|
|
if (e.record.get('TruckNo') != "") {
|
|
|
|
|
|
//获取油价
|
|
|
var form = this.formEdit.getForm();
|
|
|
if (!form.isValid()) {
|
|
|
Ext.Msg.alert('提示', '查询条件赋值错误,请检查。');
|
|
|
return '';
|
|
|
}
|
|
|
|
|
|
var TruckNo = e.record.get('TRUCKNO');
|
|
|
var EXPDATE = form.findField('EXPDATE').getValue();
|
|
|
|
|
|
//通过 日期 燃油 类型从 燃油表中获取油价 select * from tMsWl_Port_FuelPrice
|
|
|
var FuelPrice = "0";
|
|
|
Ext.Ajax.request({
|
|
|
waitMsg: '正在查询主表数据...',
|
|
|
url: '/TruckMng/MsWl_Port/GetFuelPrice',
|
|
|
params: {
|
|
|
DATE: EXPDATE,
|
|
|
TruckNo: TruckNo
|
|
|
},
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
var data = result.data;
|
|
|
FuelPrice = data.Price;
|
|
|
e.record.set('AvrOil', parseFloat(FuelPrice)); //Mobile
|
|
|
} else {
|
|
|
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
|
|
|
}
|
|
|
},
|
|
|
scope: this
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
//e.record.set('AvlOil', 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
},
|
|
|
CtnBeforeEdit: function (editor, e) {
|
|
|
|
|
|
},
|
|
|
InitData: function () {
|
|
|
|
|
|
this.OpStatus = 'add';
|
|
|
var condition = '';
|
|
|
|
|
|
|
|
|
if (parentWin) {
|
|
|
var ret = parentWin.OprationSwap();
|
|
|
this.OpStatus = ret[0];
|
|
|
this.StoreList = ret[1];
|
|
|
this.editRecord = ret[2];
|
|
|
// this.parentfunction = ret[3];
|
|
|
}
|
|
|
|
|
|
if (this.OpStatus == 'edit') {
|
|
|
condition = " P.GID='" + this.editRecord.get('GID') + "'";
|
|
|
}
|
|
|
|
|
|
this.LoadData(this.OpStatus, condition);
|
|
|
|
|
|
|
|
|
//var storeWorkFlowStep = GetWorkFlowStep('')
|
|
|
|
|
|
|
|
|
}, //end InitData
|
|
|
ReflashEdt: function (BSNO) {
|
|
|
|
|
|
this.OpStatus = 'edit';
|
|
|
condition = " P.GID='" + BSNO + "'";
|
|
|
|
|
|
this.LoadData(this.OpStatus, condition);
|
|
|
|
|
|
}, //end InitData
|
|
|
//载入数据
|
|
|
LoadData: function (OpStatus, condition) {
|
|
|
if (COMPANYID == "") {
|
|
|
alert("登录信息不全,请退出重新登录");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
this.OpStatus = OpStatus;
|
|
|
Ext.Ajax.request({
|
|
|
waitMsg: '正在查询主表数据...',
|
|
|
url: '/TruckMng/MsWl_Port/GetData',
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
var data = result.data;
|
|
|
// this.formEdit.getForm().reset();
|
|
|
if (data.EXPDATE == "") { data.EXPDATE = currdate.format('yyyy-MM-dd') };
|
|
|
data.BODYTYPE = "Ctn";
|
|
|
this.formEdit.getForm().setValues(data);
|
|
|
|
|
|
//alert(data.TimeMark);
|
|
|
|
|
|
} else {
|
|
|
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
|
|
|
}
|
|
|
},
|
|
|
scope: this
|
|
|
}); //request over
|
|
|
|
|
|
if (this.OpStatus == 'edit') {
|
|
|
|
|
|
//this.formEdit.getForm().findField('BXGID').setDisabled(false);
|
|
|
|
|
|
var GID = this.editRecord.get('GID');
|
|
|
|
|
|
this.storeCtn.load({ params: { start: 0, limit: 999, GID: GID} });
|
|
|
|
|
|
}
|
|
|
|
|
|
}, // end LoadDate
|
|
|
|
|
|
Save: function (type) {
|
|
|
var Amount_1 = 0;
|
|
|
var Amount_2 = 0;
|
|
|
for (var i = 0; i < this.storeCtn.getCount(); i += 1) {
|
|
|
Amount_1 = Add(Amount_1, parseFloat(this.storeCtn.getAt(i).get("Amount_1")));
|
|
|
Amount_2 = Add(Amount_2, parseFloat(this.storeCtn.getAt(i).get("Amount_2")));
|
|
|
}
|
|
|
Ext.getCmp("Amount_1").setValue(Amount_1 + "");
|
|
|
Ext.getCmp("Amount_2").setValue(Amount_2 + "");
|
|
|
|
|
|
var basicForm = this.formEdit.getForm();
|
|
|
|
|
|
if (!basicForm.isValid()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
|
|
|
var data = this.formEdit.getForm().getValues();
|
|
|
var GID = data.GID;
|
|
|
if (data.Locked == "on") {
|
|
|
alert("请先解除锁定");
|
|
|
return false;
|
|
|
}
|
|
|
data.Locked = this.formEdit.getForm().findField('Locked').getValue() ? 1 : 0;
|
|
|
|
|
|
if (COMPANYID == "") {
|
|
|
alert("登录信息不全,请退出重新登录");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var Ctns = [];
|
|
|
for (var i = 0; i < this.storeCtn.getCount(); i += 1) {
|
|
|
var member = this.storeCtn.getAt(i);
|
|
|
Ctns.push(member);
|
|
|
/*
|
|
|
var Amount = member.data.Amount_1;
|
|
|
|
|
|
if (Amount == 0 || NOTAXAMOUNT == 0) {
|
|
|
Ext.Msg.show({ title: '警告',
|
|
|
msg: '不含税价格和价税合计金额均不允许为0,请修改后再保存',
|
|
|
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
|
|
|
});
|
|
|
return;
|
|
|
}*/
|
|
|
}
|
|
|
|
|
|
|
|
|
var Ctn = ConvertRecordsToJson(Ctns);
|
|
|
var CtnDel = ConvertRecordsToJsonAll(this.CtnDel);
|
|
|
|
|
|
var _this = this;
|
|
|
Ext.Msg.wait('正在保存数据, 请稍侯..');
|
|
|
Ext.Ajax.request({
|
|
|
waitMsg: '正在保存数据...',
|
|
|
url: '/TruckMng/MsWl_Port/SaveCtn',
|
|
|
scope: this,
|
|
|
async: false,
|
|
|
params: {
|
|
|
OpStatus: this.OpStatus,
|
|
|
data: Ext.JSON.encode(data),
|
|
|
Ctn: Ctn,
|
|
|
CtnDel: CtnDel
|
|
|
},
|
|
|
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.formEdit.getForm().setValues(returnData);
|
|
|
|
|
|
if (this.OpStatus == 'add') {
|
|
|
var arrNewRecords = this.StoreList.add(returnData);
|
|
|
this.editRecord = arrNewRecords[0];
|
|
|
// alert(editRecord.get('ContractNo'));
|
|
|
}
|
|
|
else if (this.OpStatus == 'edit') {
|
|
|
var editp = Ext.create('MsWl_Portmb', returnData);
|
|
|
this.editRecord.fields.each(function (field) {
|
|
|
if (field.persist) {
|
|
|
name = field.name;
|
|
|
//alert(name + ' -- ' + editp.get(name));
|
|
|
if (name != 'GID')
|
|
|
this.editRecord.set(name, editp.get(name));
|
|
|
}
|
|
|
}, this);
|
|
|
this.editRecord.commit();
|
|
|
}
|
|
|
this.storeCtn.commitChanges();
|
|
|
this.BSNO = this.editRecord.get('GID');
|
|
|
if (type == '0') {
|
|
|
this.OpStatus = 'edit';
|
|
|
|
|
|
this.storeCtn.load({ params: { start: 0, limit: 999, GID: this.BSNO} });
|
|
|
} else if (type == '1') {//保存并关闭
|
|
|
|
|
|
window.close();
|
|
|
} else if (type == '2') {//保存并全部新建
|
|
|
this.LoadData('add', '');
|
|
|
}
|
|
|
} 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
|
|
|
});
|
|
|
}
|
|
|
//alert('03');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
//end save
|
|
|
, DoPrint: function () {
|
|
|
var basicForm = this.formEdit.getForm();
|
|
|
var GID = this.editRecord.get('GID')
|
|
|
/*
|
|
|
if (ContractNo == '*' || ContractNo == '') {
|
|
|
Ext.Msg.show({ title: '错误', msg: '单据还没有保存,请保存后再打印', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
|
|
|
return;
|
|
|
}*/
|
|
|
|
|
|
function GetDateStr(AddDayCount) {
|
|
|
var dd = new Date();
|
|
|
dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期
|
|
|
var y = dd.getFullYear();
|
|
|
var m = dd.getMonth() + 1; //获取当前月份的日期
|
|
|
var d = dd.getDate();
|
|
|
return y + "-" + m + "-" + d;
|
|
|
}
|
|
|
//alert(GetDateStr(+5));
|
|
|
var needdate = GetDateStr(+5);
|
|
|
var printdate = GetDateStr(0);
|
|
|
var _date = Ext.getCmp("CREATEDATE").getRawValue();
|
|
|
|
|
|
var printType = 'Baoxiao'; //客户对账_KC
|
|
|
//
|
|
|
var sql1 = " select OA_Baoxiao.*,sd.deptname DN ";
|
|
|
var sql1 = sql1 + " from OA_Baoxiao left join [user] U on U.showname=OA_Baoxiao.createuser ";
|
|
|
var sql1 = sql1 + " left join [user_baseinfo] ub on ub.userid=u.gid ";
|
|
|
var sql1 = sql1 + " left join sys_dept sd on sd.gid=OA_Baoxiao.DEPTNAME ";
|
|
|
var sql1 = sql1 + " where BXGID='" + BXGID + "' ";
|
|
|
|
|
|
var sql2 = " select vs.mblno,vs.CUSTNO, c.* from ch_fee c ";
|
|
|
var sql2 = sql2 + " left join vw_settlement vs on vs.bsno=c.bsno ";
|
|
|
var sql2 = sql2 + " where BXGID ='" + BXGID + "' order by c.CHEQUENUM,c.remark";
|
|
|
|
|
|
var sql3 = "select createuser from oa_baoxiao where bxgid ='" + BXGID + "' ";
|
|
|
var sql4 = "select dbo.GetRemain_ZWC ('" + DEPTGID + "','" + _date + "')"; //获取该部门剩余资金
|
|
|
var sql5 = "";
|
|
|
var sql6 = "";
|
|
|
|
|
|
PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6);
|
|
|
}
|
|
|
});
|
|
|
|