Ext . namespace ( 'DsTruck' ) ;
DsTruck . MsWlDjPcEdit = function ( config ) {
Ext . applyIf ( this , config ) ;
this . initUIComponents ( ) ;
window . DsTruck . MsWlDjPcEdit . superclass . constructor . call ( this ) ;
} ;
Ext . extend ( DsTruck . MsWlDjPcEdit , Ext . Panel , {
ParentWin : null , //弹出式
ParentPanel : null , //Tab页编辑模式
FunType : '' ,
OpStatus : 'add' ,
StoreList : null ,
EditRecord : null ,
RefBillNo : '*' ,
DataLoading : true ,
LoadFuel : 0 ,
NoLoadFuel : 0 ,
ratedFuel : 0 ,
//主要是为了处理修改事件。使用focus和blur模拟change事件。
RealMil : 0 ,
OverLoadMil : 0 ,
NoLoadMil : 0 ,
Ton : 0 ,
initUIComponents : function ( ) {
this . poundSerialNo = 0 ;
this . poundBodyDel = [ ] ;
this . fixSerialNo = 0 ;
this . fixBodyDel = [ ] ;
this . feeSerialNo = 0 ;
this . feeBodyDel = [ ] ;
_thisdjpcedit = this ;
//#region 编辑form
//枚举参照相关(编辑form)
this . storeBsType = Ext . create ( 'DsExt.ux.RefEnumStore' , { } ) ;
this . storeBsType . load ( { params : { enumTypeId : 99025 } } ) ;
this . comboxBsType = Ext . create ( 'DsExt.ux.RefEnumCombox' , {
fieldLabel : '托单类型' ,
store : this . storeBsType ,
name : 'BsType'
} ) ;
//表参照相关(编辑form)
this . storeTruckNo = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'MsWlPcHeadRefMsWlTruck' ,
proxy : { url : '/TruckMng/MsWlDjPc/GetTruckNoList' }
} ) ;
this . storeTruckNo . load ( { params : { condition : "" } } ) ;
this . comboxTruckNo = Ext . create ( 'DsExt.ux.RefTableCombox' , {
fieldLabel : '车牌号' ,
store : this . storeTruckNo ,
name : 'TruckNo' ,
valueField : 'TruckNo' ,
displayField : 'TruckNo' ,
listeners : {
change : function ( field , newValue , oldValue ) {
this . tonAndTruckNoChange ( field , newValue , oldValue ) ;
} ,
scope : this
}
} ) ;
this . storeDrvName = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'MsWlPcHeadRefMsWlDriver' ,
proxy : { url : '/TruckMng/MsWlDjPc/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 ) ;
}
}
}
} ) ;
this . storeDdCode = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'DsTruckMng.ux.UserRefModel' ,
proxy : { url : '/CommMng/BasicDataRef/GetUserRefList' }
} ) ;
this . storeDdCode . load ( { params : { condition : "" } } ) ;
this . comboxDdCode = Ext . create ( 'DsExt.ux.RefTableCombox' , {
fieldLabel : '调度员编码' ,
store : this . storeDdCode ,
name : 'DdCode' ,
valueField : 'UserCode' ,
displayField : 'CodeAndName'
} ) ;
//编辑form
this . formEdit = Ext . widget ( 'form' , {
region : 'center' ,
frame : true ,
bodyPadding : 5 ,
autoScroll : true ,
fieldDefaults : {
margins : '2 2 2 2' ,
labelAlign : 'right' ,
flex : 1 ,
labelWidth : 90 ,
msgTarget : 'qtip'
} ,
items : [
{
//fieldset 1
xtype : 'fieldset' ,
defaultType : 'textfield' ,
layout : 'anchor' ,
defaults : {
anchor : '100%'
} ,
items : [ {
xtype : 'container' ,
layout : 'hbox' ,
defaultType : 'textfield' ,
items : [
//#region 界面需要的但不需要显示的控件
{
fieldLabel : '录入日期' ,
name : 'LrDate' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : '记账日期' ,
name : 'JzDate' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : '用户编码' ,
name : 'UserCode' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : '用户姓名' ,
name : 'UserName' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : '组织编码' ,
name : 'OrgCode' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : '组织名称' ,
name : 'OrgName' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : '司机姓名' ,
name : 'DrvName' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : '周转量' ,
name : 'AroundTon' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : '调度员姓名' ,
name : 'DdName' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : '时间戳' ,
name : 'TimeMark' ,
flex : 0 ,
hidden : true ,
margins : '0'
} ,
{
fieldLabel : '相关托单物流号' ,
name : 'RefBillNo' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : '单据锁定状态' ,
name : 'BillStatus' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : '费用锁定状态' ,
name : 'FeeStatus' ,
flex : 0 ,
hidden : true ,
margins : '0'
} , {
fieldLabel : 'GId' ,
name : 'GId' ,
flex : 0 ,
hidden : true ,
margins : '0'
} ,
//#endregion
{
fieldLabel : '物流号' ,
allowBlank : false ,
disabled : true ,
name : 'BillNo'
} , this . comboxDdCode , this . comboxTruckNo , this . comboxBsType
]
} , {
xtype : 'container' ,
layout : 'hbox' ,
defaultType : 'textfield' ,
items : [ this . comboxDrvName , {
fieldLabel : '司机手机' ,
name : 'Mobile'
} , {
fieldLabel : '派车日期' ,
format : 'Y-m-d' ,
xtype : 'datefield' ,
name : 'ExpDate'
} , {
fieldLabel : '返回日期' ,
format : 'Y-m-d' ,
xtype : 'datefield' ,
name : 'ReturnDate'
}
]
} , {
xtype : 'container' ,
layout : 'hbox' ,
defaultType : 'textfield' ,
items : [ {
fieldLabel : '始发地点' ,
name : 'LoadPlace'
} , {
fieldLabel : '目的地' ,
name : 'DstArea'
} , {
fieldLabel : '本次加油量' ,
xtype : 'numberfield' ,
allowBlank : false ,
hideTrigger : true ,
keyNavEnabled : false ,
mouseWheelEnabled : false ,
disabled : true ,
name : 'FuelQty'
} , {
fieldLabel : '运行次数' ,
xtype : 'numberfield' ,
allowBlank : false ,
hideTrigger : true ,
keyNavEnabled : false ,
mouseWheelEnabled : false ,
allowDecimals : false ,
name : 'LoadCount'
}
]
} , {
xtype : 'container' ,
layout : 'hbox' ,
defaultType : 'textfield' ,
items : [ {
fieldLabel : '重驶里程' ,
xtype : 'numberfield' ,
allowBlank : false ,
name : 'OverLoadMil' ,
hideTrigger : true ,
keyNavEnabled : false ,
mouseWheelEnabled : false
} , {
fieldLabel : '空驶里程' ,
xtype : 'numberfield' ,
allowBlank : false ,
name : 'NoLoadMil' ,
hideTrigger : true ,
keyNavEnabled : false ,
mouseWheelEnabled : false
} , {
fieldLabel : '合计里程' ,
xtype : 'numberfield' ,
allowBlank : false ,
name : 'TotalMil' ,
hideTrigger : true ,
keyNavEnabled : false ,
mouseWheelEnabled : false
} , {
fieldLabel : '额定油耗' ,
xtype : 'numberfield' ,
allowBlank : false ,
hideTrigger : true ,
keyNavEnabled : false ,
mouseWheelEnabled : false ,
name : 'RatedFuel'
}
]
} , {
xtype : 'container' ,
layout : 'hbox' ,
defaultType : 'textfield' ,
items : [ {
fieldLabel : '变动里程' ,
xtype : 'numberfield' ,
allowBlank : false ,
hideTrigger : true ,
keyNavEnabled : false ,
mouseWheelEnabled : false ,
name : 'ChangedMil'
} , {
fieldLabel : '变动油耗' ,
xtype : 'numberfield' ,
allowBlank : false ,
hideTrigger : true ,
keyNavEnabled : false ,
mouseWheelEnabled : false ,
name : 'ChangedFuel'
} , {
fieldLabel : '变动原因' ,
name : 'ChangedReson'
} , {
fieldLabel : '实际油耗' ,
xtype : 'numberfield' ,
allowBlank : false ,
hideTrigger : true ,
keyNavEnabled : false ,
mouseWheelEnabled : false ,
hidden : true ,
name : 'RealFuel'
}
]
} , {
xtype : 'container' ,
layout : 'hbox' ,
defaultType : 'textarea' ,
height : 36 ,
items : [ {
fieldLabel : '备注' ,
height : 32 ,
name : 'Remark'
}
]
}
] //end items(fieldset 1)
} //end fieldset 1
] //end root items
} ) ; //end this.formEdit
//#endregion
//#region 按钮Toolbar
this . panelBtn = new Ext . Panel ( {
region : "north" ,
tbar : [
{
id : 'pcbtnSave' ,
text : "保存" ,
iconCls : "btnsave" ,
handler : function ( button , event ) {
this . Save ( '0' ) ;
} ,
scope : this
} ,
{
id : 'pcbtnSaveAndClose' ,
text : "保存并关闭" ,
handler : function ( button , event ) {
this . Save ( '1' ) ;
} ,
scope : this
} ,
'-' ,
{
id : 'pcbtnSaveAndNew' ,
text : "保存并新建" ,
handler : function ( button , event ) {
this . Save ( '2' ) ;
} ,
scope : this
} ,
'-' ,
{
text : "关闭" ,
handler : function ( button , event ) {
window . close ( ) ;
} ,
scope : this
} ,
{
id : 'pcbtnNew' ,
text : "新建" ,
handler : function ( button , event ) {
this . LoadData ( 'add' , '' , this . RefBillNo ) ;
var basicForm = this . formEdit . getForm ( ) ;
basicForm . findField ( 'BillNo' ) . setDisabled ( false ) ;
} ,
scope : this
} ,
'-' ,
{
text : "打印" ,
iconCls : "btnprint" ,
handler : function ( button , event ) {
this . Print ( ) ;
} ,
scope : this
}
]
} ) ; //end 按钮Toolbar
//#endregion
//#region 固定费用明细表
//派车明细表表格相关
this . storeBulkBillNoRef = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'MsWlDjPoundRefMsWlDjHead' ,
proxy : { url : '/TruckMng/MsWlDjPc/GetDjBillNoList' }
} ) ;
this . storeBulkBillNoRef . load ( { params : { condition : "" } } ) ;
this . comboxBulkBillNoRef = Ext . create ( 'DsExt.ux.RefTableCombox' , {
store : this . storeBulkBillNoRef ,
name : 'DjBillNo' ,
valueField : 'BillNo' ,
displayField : 'BillNo' ,
allowBlank : false ,
editable : false
} ) ;
this . storeCustCodeRef = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'DsTruckMng.ux.CustomRefModel' ,
proxy : { url : '/CommMng/BasicDataRef/GetCustomRefList' }
} ) ;
this . storeCustCodeRef . load ( { params : { condition : "ISCONTROLLER='1'" } } ) ;
this . comboxCustCodeRef = Ext . create ( 'DsExt.ux.RefTableCombox' , {
store : this . storeCustCodeRef ,
name : 'CustCode' ,
valueField : 'CustCode' ,
displayField : 'CodeAndName'
} ) ;
//明细表-数据集
this . storePoundBodyList = Ext . create ( 'Ext.data.Store' , {
model : 'MsWlDjPound' ,
remoteSort : true ,
proxy : {
type : 'ajax' ,
url : '/TruckMng/MsWlDjPc/GetBodyList' ,
reader : {
id : 'BillNo,SerialNo' ,
root : 'data' ,
totalProperty : 'totalCount'
}
}
} ) ;
//明细表表格
this . PoundgridListCellEditing = Ext . create ( 'Ext.grid.plugin.CellEditing' , {
clicksToEdit : 1
} ) ;
this . PoundgridList = new Ext . grid . GridPanel ( {
store : this . storePoundBodyList ,
enableHdMenu : false ,
region : 'center' ,
loadMask : { msg : "数据加载中,请稍等..." } ,
trackMouseOver : true ,
disableSelection : false ,
plugins : [ this . PoundgridListCellEditing ] ,
selType : 'cellmodel' ,
tbar : [ {
text : '增加明细' ,
tooltip : '增加明细' ,
iconCls : "btnadddetail" ,
handler : function ( button , event ) {
this . onAddDetailClick ( button , event , '3' ) ;
} ,
scope : this
} , '-' , {
text : '删除明细' ,
tooltip : '删除明细' ,
iconCls : "btndeletedetail" ,
handler : function ( button , event ) {
this . onDelDetailClick ( button , event , '3' ) ;
} ,
scope : this
} ] ,
columns : [ {
sortable : true ,
dataIndex : 'BillNo' ,
header : '单据号' ,
hidden : true ,
width : 120
} , {
sortable : true ,
dataIndex : 'SerialNo' ,
header : '序号' ,
width : 30
} , {
sortable : true ,
dataIndex : 'DjBillNo' ,
header : '托运单号' ,
editor : this . comboxBulkBillNoRef ,
width : 150
} , {
sortable : true ,
dataIndex : 'GId' ,
header : '惟一编号' ,
hidden : true ,
width : 160
} , {
sortable : true ,
dataIndex : 'CustCode' ,
header : '委托单位代码' ,
renderer : function ( value , p , record ) {
if ( value == null || value == '' )
return '' ;
else
return value + '-' + record . data . CustCode _Ref ;
} ,
editor : this . comboxCustCodeRef ,
width : 160
} , {
sortable : true ,
dataIndex : 'CustName' ,
header : '委托单位' ,
hidden : true ,
width : 80
} , {
sortable : true ,
dataIndex : 'ClsName' ,
header : '品名' ,
editor : {
xtype : 'textfield' ,
selectOnFocus : true
} ,
width : 100
} , {
sortable : true ,
dataIndex : 'DepartureDate' ,
header : '起运时间' ,
editor : {
xtype : 'datefield' ,
format : 'Y-m-d' ,
selectOnFocus : true
} ,
renderer : Ext . util . Format . dateRenderer ( 'Y-m-d' ) ,
width : 80
} , {
sortable : true ,
dataIndex : 'LoadPlace' ,
header : '起点' ,
editor : {
xtype : 'textfield' ,
selectOnFocus : true
} ,
width : 60
} , {
sortable : true ,
dataIndex : 'UnLoadPlace' ,
header : '止点' ,
editor : {
xtype : 'textfield' ,
selectOnFocus : true
} ,
width : 60
} , {
sortable : true ,
dataIndex : 'PlanOverLoadMil' ,
header : '计划重驶里程' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 76
} , {
sortable : true ,
dataIndex : 'PlanNoLoadMil' ,
header : '计划空驶里程' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 76
} , {
sortable : true ,
dataIndex : 'PlanLoadCount' ,
header : '计划运行次数' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 76
} , {
sortable : true ,
dataIndex : 'OverLoadMil' ,
header : '实际重驶里程' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 76
} , {
sortable : true ,
dataIndex : 'NoLoadMil' ,
header : '实际空驶里程' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 76
} , {
sortable : true ,
dataIndex : 'LoadCount' ,
header : '实际运行次数' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 76
} , {
sortable : true ,
dataIndex : 'PNum' ,
header : '装运件数' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 76
} , {
sortable : true ,
dataIndex : 'PKgs' ,
header : '件重' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 76
} , {
sortable : true ,
dataIndex : 'Weight' ,
header : '实际运输总重量' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 76
} , {
sortable : true ,
dataIndex : 'RatedFuel' ,
header : '额定油耗' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 76
} , {
sortable : true ,
dataIndex : 'TonMil' ,
header : '吨公里' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 76
} , {
sortable : true ,
dataIndex : 'WorkTime' ,
header : '工作时间' ,
hidden : true ,
width : 160
}
]
} ) ;
//明细表表格相关
this . storeCreditDebitRef = Ext . create ( 'DsExt.ux.RefEnumStore' , { } ) ;
this . storeCreditDebitRef . load ( { params : { enumTypeId : 99020 } } ) ;
this . comboxCreditDebitRef = Ext . create ( 'DsExt.ux.RefEnumCombox' , {
store : this . storeCreditDebitRef ,
name : 'CreditDebit'
} ) ;
this . storeFeeTypeCodeRef = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'DsTruckMng.ux.FeeTypeRefModel' ,
proxy : { url : '/CommMng/BasicDataRef/GetFeeTypeRefList' }
} ) ;
this . storeFeeTypeCodeRef . load ( { params : { condition : "ISTRUCKING='1' and ISTRUCKINGFIXED ='1'" } } ) ;
this . comboxFeeTypeCodeRef = Ext . create ( 'DsExt.ux.RefTableCombox' , {
store : this . storeFeeTypeCodeRef ,
name : 'FeeTypeCode' ,
valueField : 'FeeCode' ,
displayField : 'CodeAndName'
} ) ;
//明细表-数据集
this . storeBodyFix = Ext . create ( 'Ext.data.Store' , {
model : 'MsWlPcFixed' ,
remoteSort : false ,
proxy : {
type : 'ajax' ,
url : '/TruckMng/MsWlPc/GetFeeFixBodyList' ,
reader : {
id : 'GId' ,
root : 'data' ,
totalProperty : 'totalCount'
}
}
} ) ;
//明细表表格
this . cellEditingFix = Ext . create ( 'Ext.grid.plugin.CellEditing' , {
clicksToEdit : 1
} ) ;
this . gridListFix = new Ext . grid . GridPanel ( {
store : this . storeBodyFix ,
enableHdMenu : false ,
region : 'center' ,
loadMask : { msg : "数据加载中,请稍等..." } ,
trackMouseOver : true ,
disableSelection : false ,
plugins : [ this . cellEditingFix ] ,
selType : 'cellmodel' ,
tbar : [ {
text : '增加明细' ,
tooltip : '增加明细' ,
iconCls : "btnadddetail" ,
handler : function ( button , event ) {
this . onAddDetailClick ( button , event , '1' ) ;
} ,
scope : this
} , '-' , {
text : '删除明细' ,
tooltip : '删除明细' ,
iconCls : "btndeletedetail" ,
handler : function ( button , event ) {
this . onDelDetailClick ( button , event , '1' ) ;
} ,
scope : this
} ] ,
columns : [ {
sortable : true ,
dataIndex : 'BillNo' ,
header : '单据号' ,
hidden : true ,
width : 120
} , {
sortable : true ,
dataIndex : 'SerialNo' ,
header : '序号' ,
width : 40
} , {
sortable : true ,
dataIndex : 'FeeTypeCode' ,
header : '费用编码' ,
renderer : function ( value , p , record ) {
if ( value == null || value == '' )
return '' ;
else
return value + '-' + record . data . FeeTypeCode _Ref ;
} ,
editor : this . comboxFeeTypeCodeRef ,
width : 80
} , {
sortable : true ,
dataIndex : 'FeeTypeName' ,
header : '费用名称' ,
hidden : true ,
width : 120
} , {
sortable : true ,
dataIndex : 'FsTotal' ,
header : '金额' ,
editor : {
xtype : 'numberfield' ,
allowBlank : false ,
selectOnFocus : true
} ,
width : 60
} , {
sortable : true ,
dataIndex : 'Remark' ,
header : '备注' ,
editor : {
xtype : 'textfield' ,
selectOnFocus : true
} ,
width : 150
}
]
} ) ;
this . gridListFix . on ( 'edit' , function ( editor , e , eOpts ) {
this . gridListFixAfterEdit ( editor , e , eOpts ) ;
} , this ) ;
this . cellEditingFix . on ( 'beforeedit' , function ( editor , e ) {
return this . cellEditingFixBeforeEdit ( editor , e ) ;
} , this ) ;
//#endregion 明细表
//#region 费用表
//明细表表格相关
this . storeFeeTypeRef = Ext . create ( 'DsExt.ux.RefEnumStore' , { } ) ;
this . storeFeeTypeRef . load ( { params : { enumTypeId : 99020 } } ) ;
this . comboxFeeTypeRef = Ext . create ( 'DsExt.ux.RefEnumCombox' , {
store : this . storeFeeTypeRef ,
name : 'FeeType'
} ) ;
this . storeFeeNameRef = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'DsTruckMng.ux.FeeTypeRefModel' ,
proxy : { url : '/CommMng/BasicDataRef/GetFeeTypeRefList' }
} ) ;
this . storeFeeNameRef . load ( { params : { condition : "ISTRUCKING='1' " } } ) ;
this . comboxFeeNameRef = Ext . create ( 'DsExt.ux.RefTableCombox' , {
store : this . storeFeeNameRef ,
name : 'FeeName' ,
valueField : 'Name' ,
displayField : 'CodeAndName'
} ) ;
this . storeCustomerNameRef = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'DsTruckMng.ux.CustomRefModel' ,
proxy : { url : '/CommMng/BasicDataRef/GetCustomRefList' }
} ) ;
this . storeCustomerNameRef . load ( { params : { condition : "" } } ) ;
this . comboxCustomerNameRef = Ext . create ( 'DsExt.ux.RefTableCombox' , {
store : this . storeCustomerNameRef ,
name : 'CustomerName' ,
valueField : 'CustName' ,
displayField : 'CodeAndName'
} ) ;
//明细表-数据集
this . storeBodyChFee = Ext . create ( 'Ext.data.Store' , {
model : 'MsChFee' ,
remoteSort : false ,
proxy : {
type : 'ajax' ,
url : '/TruckMng/MsChFee/GetDataList' ,
reader : {
id : 'GId' ,
root : 'data' ,
totalProperty : 'totalCount'
}
}
} ) ;
//明细表表格
this . cellEditingChFee = Ext . create ( 'Ext.grid.plugin.CellEditing' , {
clicksToEdit : 1
} ) ;
this . feeGridCheckBoxModel = Ext . create ( 'Ext.selection.CheckboxModel' ) ;
this . gridListChFee = new Ext . grid . GridPanel ( {
store : this . storeBodyChFee ,
enableHdMenu : false ,
region : 'center' ,
loadMask : { msg : "数据加载中,请稍等..." } ,
trackMouseOver : true ,
disableSelection : false ,
plugins : [ this . cellEditingChFee ] ,
selModel : this . feeGridCheckBoxModel ,
selType : 'cellmodel' ,
viewConfig : {
autoFill : true ,
getRowClass : function ( record , rowIndex , rowParams , store ) {
var feeStatus = record . get ( 'FeeStatus' ) ;
return DsTruck . MsChFeeGetRowClass ( feeStatus ) ;
}
} ,
tbar : [ {
text : '增加明细' ,
tooltip : '增加明细' ,
iconCls : "btnadddetail" ,
handler : function ( button , event ) {
this . onAddDetailClick ( button , event , '2' ) ;
} ,
scope : this
} , '-' , {
text : '删除明细' ,
tooltip : '删除明细' ,
iconCls : "btndeletedetail" ,
handler : function ( button , event ) {
this . onDelDetailClick ( button , event , '2' ) ;
} ,
scope : this
} , '-' , {
text : '提交审核' ,
tooltip : '提交审核' ,
iconCls : 'btnsubmitaudit' ,
handler : function ( button , event ) {
this . onSubmitAuditClick ( button , event ) ;
} ,
scope : this
} , {
text : '审核通过' ,
tooltip : '审核通过' ,
iconCls : 'btnsubmitaudit' ,
handler : function ( button , event ) {
this . onPassAuditClick ( button , event ) ;
} ,
scope : this
} , {
text : '撤销审核' ,
tooltip : '撤销审核' ,
iconCls : 'btnsubmitaudit' ,
handler : function ( button , event ) {
this . onCancelAuditClick ( button , event ) ;
} ,
scope : this
} ] ,
columns : [ {
sortable : true ,
dataIndex : 'GId' ,
header : '惟一编号' ,
hidden : true ,
width : 160
} , {
sortable : true ,
dataIndex : 'BsNo' ,
header : '业务编号' ,
hidden : true ,
width : 200
} , {
sortable : true ,
dataIndex : 'FeeStatus' ,
header : '费用状态' ,
renderer : function ( value , p , record ) {
return record . data . FeeStatus _Ref ;
} ,
width : 66
} , {
sortable : true ,
dataIndex : 'FeeName' ,
header : '费用名称' ,
editor : this . comboxFeeNameRef ,
width : 100
} , {
sortable : true ,
dataIndex : 'FeeType' ,
header : '收付方式' ,
renderer : function ( value , p , record ) {
if ( value == null || value == '' )
return '' ;
else
return value + '-' + record . data . FeeType _Ref ;
} ,
editor : this . comboxFeeTypeRef ,
width : 66
} , {
sortable : true ,
dataIndex : 'FeeDescription' ,
header : '费用英文名称' ,
hidden : true ,
width : 200
} , {
sortable : true ,
dataIndex : 'CustomerType' ,
header : '客户类别' ,
hidden : true ,
width : 200
} , {
sortable : true ,
dataIndex : 'CustomerName' ,
header : '结算对象' ,
editor : this . comboxCustomerNameRef ,
width : 120
} , {
sortable : true ,
dataIndex : 'Unit' ,
header : '单位标准' ,
hidden : true ,
width : 200
} , {
sortable : true ,
dataIndex : 'UnitPrice' ,
header : '单价' ,
editor : {
xtype : 'numberfield' ,
selectOnFocus : true
} ,
width : 60
} , {
sortable : true ,
dataIndex : 'Quantity' ,
header : '数量' ,
editor : {
xtype : 'numberfield' ,
selectOnFocus : true
} ,
width : 60
} , {
sortable : true ,
dataIndex : 'Amount' ,
header : '金额' ,
width : 60
} , {
sortable : true ,
dataIndex : 'Currency' ,
header : '币别' ,
hidden : true ,
width : 200
} , {
sortable : true ,
dataIndex : 'ExChangerate' ,
header : '汇率' ,
hidden : true ,
width : 160
} , {
sortable : true ,
dataIndex : 'Reason' ,
header : '原因' ,
hidden : true ,
width : 200
} , {
sortable : true ,
dataIndex : 'Remark' ,
header : '备注' ,
editor : {
xtype : 'textfield' ,
selectOnFocus : true
} ,
width : 150
}
]
} ) ;
this . gridListChFee . on ( 'edit' , function ( editor , e , eOpts ) {
this . gridListChFeeAfterEdit ( editor , e , eOpts ) ;
} , this ) ;
this . cellEditingChFee . on ( 'beforeedit' , function ( editor , e ) {
return this . cellEditingChFeeBeforeEdit ( editor , e ) ;
} , this ) ;
//#endregion
//#region 布局
this . panelTop = new Ext . Panel ( {
layout : "border" ,
region : "north" ,
height : 226 ,
items : [ this . panelBtn , this . formEdit ]
} ) ;
this . panelBodypound = new Ext . Panel ( {
title : '派车明细' ,
layout : "border" ,
region : 'north' ,
margin : '5 10' ,
height : 240 ,
items : [ this . PoundgridList ]
} ) ;
this . panelBodyFix = new Ext . Panel ( {
title : '固定费用(仅报销,不计入利润统计)' ,
layout : "border" ,
region : 'west' ,
width : 270 ,
margin : '5 10' ,
items : [ this . gridListFix ]
} ) ;
this . panelBodyChFee = new Ext . Panel ( {
title : '费用(计入利润统计的应收应付)' ,
layout : "border" ,
region : 'center' ,
margin : '5 10' ,
items : [ this . gridListChFee ]
} ) ;
this . panelFee = new Ext . Panel ( {
layout : "border" ,
region : "center" ,
items : [
this . panelBodyFix , this . panelBodyChFee
]
} ) ;
Ext . apply ( this , {
items : [ this . panelTop , this . panelBodypound , this . panelFee ]
} ) ;
//#endregion
this . opStatus = 'add' ;
this . ParentWin = window . parent . opener ;
//初始化数据
this . InitData ( ) ;
this . PoundgridList . on ( 'edit' , function ( editor , e , eOpts ) {
this . PoundgridAfterEdit ( editor , e , eOpts ) ;
} , this ) ;
} , //end initUIComponents
//#region 加载数据
InitData : function ( ) {
var condition = '' ;
if ( this . ParentWin ) {
var ret = this . ParentWin . OprationSwap ( ) ;
this . opStatus = ret [ 0 ] ;
this . StoreList = ret [ 1 ] ;
this . editRecord = ret [ 2 ] ;
this . RefBillNo = ret [ 3 ] ;
}
if ( this . opStatus == 'add' ) {
condition = " BillNo='*'" ;
} else if ( this . opStatus == 'edit' ) {
condition = " BillNo='" + this . editRecord . get ( 'BillNo' ) + "'" ;
}
this . LoadData ( this . opStatus , condition , this . RefBillNo ) ;
} , //end InitData
LoadData : function ( opstatus , condition , refbillno ) {
this . poundSerialNo = 0 ;
this . poundBodyDel = [ ] ;
this . fixSerialNo = 0 ;
this . fixBodyDel = [ ] ;
this . feeSerialNo = 0 ;
this . feeBodyDel = [ ] ;
this . opStatus = opstatus ;
Ext . Ajax . request ( {
waitMsg : '正在查询主表数据...' ,
url : '/TruckMng/MsWlDjPc/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 ;
if ( this . opStatus == 'add' ) {
data . RefBillNo = this . RefBillNo ;
}
this . DataLoading = true ;
var basicForm = this . formEdit . getForm ( ) ;
basicForm . reset ( ) ;
basicForm . setValues ( data ) ;
// this.LoadFuel = basicForm.findField('LoadFuel').value;
// this.NoLoadFuel = basicForm.findField('NoLoadFuel').value;
this . DataLoading = false ;
} else {
Ext . MessageBox . alert ( '请求出现错误,请重试' , response . responseText ) ;
}
} ,
scope : this
} ) ;
var billno = '*' ;
var gid = '*' ;
if ( this . opStatus == 'edit' ) {
billno = this . editRecord . get ( 'BillNo' ) ;
gid = this . editRecord . get ( 'GId' ) ;
}
this . storeBodyFix . load ( { params : { billno : gid } } ) ;
this . storeBodyChFee . load ( { params : { billno : gid } } ) ;
this . storePoundBodyList . load ( { params : { billno : gid } } ) ;
} , // end LoadData
//#endregion
Save : function ( type ) {
var basicForm = this . formEdit . getForm ( ) ;
if ( ! basicForm . isValid ( ) ) {
return ;
}
basicForm . findField ( 'BillNo' ) . setDisabled ( false ) ;
var data = basicForm . getValues ( ) ;
basicForm . findField ( 'BillNo' ) . setDisabled ( true ) ;
var bodypounddatas = [ ] ;
for ( var i = 0 ; i < this . storePoundBodyList . getCount ( ) ; i += 1 ) {
var member = this . storePoundBodyList . getAt ( i ) ;
var dpt = member . get ( 'DepartureDate' ) ;
var dptstr = Ext . util . Format . date ( dpt , 'Y-m-d' )
member . set ( "DepartureDate" , dptstr ) ;
// member.commit();
bodypounddatas . push ( member ) ;
} ;
var jsonpoundBody = ConvertRecordsToJson ( bodypounddatas ) ;
var jsonpoundDelBody = ConvertRecordsToJsonAll ( this . poundBodyDel ) ;
var bodyFixdatas = [ ] ;
for ( var i = 0 ; i < this . storeBodyFix . getCount ( ) ; i += 1 ) {
var member = this . storeBodyFix . getAt ( i ) ;
bodyFixdatas . push ( member ) ;
} ;
var jsonFixBody = ConvertRecordsToJson ( bodyFixdatas ) ;
var jsonFixDelBody = ConvertRecordsToJsonAll ( this . fixBodyDel ) ;
var bodyChFeeDatas = [ ] ;
for ( i = 0 ; i < this . storeBodyChFee . getCount ( ) ; i += 1 ) {
var memberyf = this . storeBodyChFee . getAt ( i ) ;
bodyChFeeDatas . push ( memberyf ) ;
var amount = memberyf . data . Amount ;
if ( amount == 0 ) {
Ext . Msg . show ( { title : '警告' ,
msg : '费用的金额不允许为0, 请修改后再保存' ,
icon : Ext . Msg . ERROR , buttons : Ext . Msg . OK
} ) ;
return ;
}
}
;
var jsonChFeeBody = ConvertRecordsToJson ( bodyChFeeDatas ) ;
var jsonChFeeDelBody = ConvertRecordsToJsonAll ( this . feeBodyDel ) ;
Ext . Msg . wait ( '正在保存数据, 请稍侯..' ) ;
Ext . Ajax . request ( {
waitMsg : '正在保存数据...' ,
url : '/TruckMng/MsWlDjPc/Save' ,
scope : this ,
params : {
opstatus : this . opStatus ,
data : Ext . JSON . encode ( data ) ,
poundbody : jsonpoundBody ,
pounddelbody : jsonpoundDelBody ,
fixbody : jsonFixBody ,
fixdelbody : jsonFixDelBody ,
chfeebody : jsonChFeeBody ,
chfeedelbody : jsonChFeeDelBody
} ,
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 ] ;
} else if ( this . opStatus == 'edit' ) {
var editp = Ext . create ( 'MsWlPcHead' , returnData ) ;
this . editRecord . fields . each ( function ( field ) {
if ( field . persist ) {
name = field . name ;
if ( name != 'id' )
this . editRecord . set ( name , editp . get ( name ) ) ;
}
} , this ) ;
this . editRecord . commit ( ) ;
}
_thisdjpcedit . opStatus = 'edit' ;
if ( type == '0' ) {
basicForm . findField ( 'BillNo' ) . setDisabled ( true ) ;
for ( var i = 0 ; i < this . storePoundBodyList . getCount ( ) ; i += 1 ) {
var member = this . storePoundBodyList . getAt ( i ) ;
member . set ( "BillNo" , this . editRecord . get ( 'BillNo' ) ) ;
member . commit ( ) ;
}
;
for ( var i = 0 ; i < this . storeBodyFix . getCount ( ) ; i += 1 ) {
var member = this . storeBodyFix . getAt ( i ) ;
member . set ( "BillNo" , this . editRecord . get ( 'BillNo' ) ) ;
member . commit ( ) ;
}
;
// for (var i = 0; i < this.storeBodyChFee.getCount(); i += 1) {
// var member = this.storeBodyChFee.getAt(i);
// //member.set("BsNo", this.editRecord.get('BillNo'));
// member.commit();
// };
var gid = this . editRecord . get ( 'GId' ) ;
var billno = this . editRecord . get ( 'BillNo' )
this . storeBodyChFee . load ( { params : { billno : gid } } ) ;
//this.storeBodyChFee.load({ params: { condition: "Bsno='" + gid + "' or Bsno='" + billno + "'" } });
} else if ( type == '1' ) {
window . close ( ) ;
} else {
this . LoadData ( 'add' , '' , this . RefBillNo ) ;
//basicForm.findField('BillNo').setDisabled(false);
}
} 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
onAddPoundDetailClick : function ( button , event ) {
this . addPoundDetail ( ) ;
} , //end onAddDetailClick
onDelPoundDetailClick : function ( button , event ) {
this . deletePoundDetail ( ) ;
} , //onDelDetailClick
PoundgridAfterEdit : function ( editor , e , eOpts ) {
//需要自己实现里面的事件
if ( e . field == 'CustCode' ) {
var records = DsStoreQueryBy ( this . storeCustCodeRef , 'CustCode' , e . value ) ;
if ( records . getCount ( ) > 0 ) {
var data = records . getAt ( 0 ) . data ;
var custName = data . CustName ;
if ( e . field == 'CustCode' ) {
e . record . set ( 'CustCode_Ref' , custName ) ;
e . record . set ( 'CustName' , custName ) ;
}
} else {
if ( e . field == 'CustCode' ) {
e . record . set ( 'CustCode_Ref' , '' ) ;
e . record . set ( 'CustName' , '' ) ;
}
}
}
else if ( e . field == 'DjBillNo' ) {
var opStatus = 'edit' ;
var bulkBillNo = e . value ;
var condition = " BillNo='" + bulkBillNo + "'" ;
Ext . Ajax . request ( {
waitMsg : '正在查询托单数据...' ,
url : '/TruckMng/MsWlDj/GetData' ,
async : false ,
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
} ) ;
this . copyBulkHeadData ( e , null ) ;
return ;
}
var bulkHeadData = result . data ;
this . copyBulkHeadData ( e , bulkHeadData ) ;
} else {
Ext . MessageBox . alert ( '请求出现错误,请重试' , response . responseText ) ;
this . copyBulkHeadData ( e , null ) ;
}
} ,
scope : this
} ) ;
}
else if ( e . field == 'PlanOverLoadMil' ) {
e . record . set ( 'OverLoadMil' , e . value ) ;
var overloadmil = e . record . data [ 'OverLoadMil' ] ;
var noloadmil = e . record . data [ 'NoLoadMil' ] ;
var weight = e . record . data [ 'Weight' ] ;
var nofuel = this . getTruckLoadFuel ( weight , noloadmil , '0' ) ;
var overfuel = this . getTruckLoadFuel ( weight , overloadmil , '1' ) ;
e . record . set ( 'RatedFuel' , nofuel + overfuel ) ;
this . setOverLoadMilTotal ( ) ;
this . setNoFuelCountTotal ( ) ;
}
else if ( e . field == 'OverLoadMil' ) {
var planoverloadmil = e . record . data [ 'PlanOverLoadMil' ] ;
var plannoloadmil = e . record . data [ 'PlanNoLoadMil' ] ;
var overloadmil = e . record . data [ 'OverLoadMil' ] ;
var noloadmil = e . record . data [ 'NoLoadMil' ] ;
var weight = e . record . data [ 'Weight' ] ;
var nofuel = this . getTruckLoadFuel ( weight , noloadmil , '0' ) ;
var overfuel = this . getTruckLoadFuel ( weight , overloadmil , '1' ) ;
e . record . set ( 'RatedFuel' , nofuel + overfuel ) ;
this . setOverLoadMilTotal ( ) ;
this . setNoFuelCountTotal ( ) ;
}
else if ( e . field == 'PlanNoLoadMil' ) {
e . record . set ( 'NoLoadMil' , e . value ) ;
var planoverloadmil = e . record . data [ 'PlanOverLoadMil' ] ;
var plannoloadmil = e . record . data [ 'PlanNoLoadMil' ] ;
var overloadmil = e . record . data [ 'OverLoadMil' ] ;
var noloadmil = e . record . data [ 'NoLoadMil' ] ;
var weight = e . record . data [ 'Weight' ] ;
var nofuel = this . getTruckLoadFuel ( weight , noloadmil , '0' ) ;
var overfuel = this . getTruckLoadFuel ( weight , overloadmil , '1' ) ;
e . record . set ( 'RatedFuel' , nofuel + overfuel ) ;
this . setNoLoadMilTotal ( ) ;
this . setNoFuelCountTotal ( ) ;
}
else if ( e . field == 'NoLoadMil' ) {
var planoverloadmil = e . record . data [ 'PlanOverLoadMil' ] ;
var plannoloadmil = e . record . data [ 'PlanNoLoadMil' ] ;
var overloadmil = e . record . data [ 'OverLoadMil' ] ;
var noloadmil = e . record . data [ 'NoLoadMil' ] ;
var weight = e . record . data [ 'Weight' ] ;
var nofuel = this . getTruckLoadFuel ( weight , noloadmil , '0' ) ;
var overfuel = this . getTruckLoadFuel ( weight , overloadmil , '1' ) ;
e . record . set ( 'RatedFuel' , nofuel + overfuel ) ;
this . setNoLoadMilTotal ( ) ;
this . setNoFuelCountTotal ( ) ;
} else if ( e . field == 'LoadCount' ) {
this . setLoadCountTotal ( ) ;
}
else if ( e . field == 'PNum' || e . field == 'PKgs' ) {
var PNum = e . record . data [ 'PNum' ] ;
var PKgs = e . record . data [ 'PKgs' ] ;
var overloadmil = e . record . data [ 'OverLoadMil' ] ;
e . record . set ( 'Weight' , ( PNum * PKgs ) . toFixed ( 2 ) ) ;
var weight = e . record . data [ 'Weight' ] ;
var noloadmil = e . record . data [ 'NoLoadMil' ] ;
var nofuel = this . getTruckLoadFuel ( weight , noloadmil , '0' ) ;
var overfuel = this . getTruckLoadFuel ( weight , overloadmil , '1' ) ;
e . record . set ( 'RatedFuel' , nofuel + overfuel ) ;
e . record . set ( 'TonMil' , ( overloadmil * PNum * PKgs ) . toFixed ( 2 ) ) ;
this . setNoFuelCountTotal ( ) ;
} else if ( e . field == 'Weight' ) {
// this.setWeightCountTotal();
var overloadmil = e . record . data [ 'OverLoadMil' ] ;
var noloadmil = e . record . data [ 'NoLoadMil' ] ;
var weight = e . record . data [ 'Weight' ] ;
var nofuel = this . getTruckLoadFuel ( weight , noloadmil , '0' ) ;
var overfuel = this . getTruckLoadFuel ( weight , overloadmil , '1' ) ;
e . record . set ( 'RatedFuel' , nofuel + overfuel ) ;
e . record . set ( 'TonMil' , ( overloadmil * weight ) . toFixed ( 2 ) ) ;
this . setNoFuelCountTotal ( ) ;
} else if ( e . field == 'RatedFuel' ) {
this . setNoFuelCountTotal ( ) ;
}
} ,
//#region 明细表合计
setAllTotal : function ( ) {
this . setOverLoadMilTotal ( ) ;
this . setNoLoadMilTotal ( ) ;
this . setLoadCountTotal ( ) ;
// this.setWeightCountTotal();
this . setNoFuelCountTotal ( ) ;
} ,
setOverLoadMilTotal : function ( ) {
var total = this . calcDetailTotal ( 'OverLoadMil' ) ;
this . setHeadFieldValue ( 'OverLoadMil' , total ) ;
} ,
setNoLoadMilTotal : function ( ) {
var total = this . calcDetailTotal ( 'NoLoadMil' ) ;
this . setHeadFieldValue ( 'NoLoadMil' , total ) ;
} ,
setLoadCountTotal : function ( ) {
var total = this . calcDetailTotal ( 'LoadCount' ) ;
this . setHeadFieldValue ( 'LoadCount' , total ) ;
} ,
setNoFuelCountTotal : function ( ) {
var total = this . calcDetailTotal ( 'RatedFuel' ) ;
this . setHeadFieldValue ( 'RatedFuel' , total ) ;
} ,
calcDetailTotal : function ( fieldName ) {
var total = 0 ;
for ( var i = 0 ; i < this . storePoundBodyList . getCount ( ) ; i += 1 ) {
var member = this . storePoundBodyList . getAt ( i ) ;
var value = member . get ( fieldName ) ;
total = total + value ;
}
return total ;
} ,
setHeadFieldValue : function ( fieldName , value ) {
var field = this . formEdit . getForm ( ) . findField ( fieldName ) ;
field . setValue ( value ) ;
} ,
//#endregion
addPoundDetail : function ( ) {
var newSerialno = DsGetNewSerialNo ( this . storePoundBodyList , this . poundserialNo ) ;
this . poundserialNo = newSerialno ;
var record = Ext . create ( 'MsWlDjPound' , {
BillNo : '*' ,
SerialNo : newSerialno ,
DjBillNo : '' ,
DjBillNo _Ref : '' ,
GId : NewGuid ( ) ,
CustCode : '' ,
CustCode _Ref : '' ,
CustName : '' ,
ClsName : '' ,
DepartureDate : '' ,
LoadPlace : '' ,
UnLoadPlace : '' ,
PlanOverLoadMil : 0 ,
PlanNoLoadMil : 0 ,
PlanLoadCount : 1 ,
OverLoadMil : 0 ,
NoLoadMil : 0 ,
LoadCount : 1 ,
PNum : 0 ,
PKgs : 0 ,
Weight : 0 ,
RatedFuel : 0 ,
WorkTime : ''
} ) ;
this . storePoundBodyList . add ( record ) ;
var n = this . storePoundBodyList . getCount ( ) ;
this . PoundgridListCellEditing . startEditByPosition ( { row : n - 1 , column : 2 } ) ;
} ,
deletePoundDetail : function ( ) {
// this.poundserialNo = DsGetCurSerialNo(this.storePoundBodyList, this.poundserialNo);
var selectedRecords = this . PoundgridList . selModel . getSelection ( ) ;
for ( var i = 0 ; i < selectedRecords . length ; i ++ ) {
var rec = selectedRecords [ i ] ;
if ( rec . BillNo != "" || rec . BillNo != "*" ) //如果是新增但没有保存的数据,没有必要提交到后台
{
this . poundBodyDel . push ( rec ) ;
}
this . storePoundBodyList . remove ( selectedRecords [ i ] ) ;
this . setAllTotal ( ) ;
}
} ,
getPoundcustname : function ( ) {
result = '' ;
var selectedRecords = this . PoundgridList . selModel . getSelection ( ) ;
for ( var i = 0 ; i < selectedRecords . length ; i ++ ) {
var rec = selectedRecords [ i ] ;
result = rec . custname ;
}
return result ;
} ,
copyBulkHeadData : function ( e , bulkHeadData ) {
if ( bulkHeadData != null ) {
e . record . set ( 'CustCode' , bulkHeadData . CustCode ) ;
e . record . set ( 'CustCode_Ref' , bulkHeadData . CustName ) ;
e . record . set ( 'CustName' , bulkHeadData . CustName ) ;
e . record . set ( 'ClsName' , bulkHeadData . ClsName ) ;
e . record . set ( 'PNum' , bulkHeadData . PNum - bulkHeadData . OverPNum ) ;
e . record . set ( 'PKgs' , bulkHeadData . PKgs ) ;
e . record . set ( 'Weight' , ( bulkHeadData . PNum - bulkHeadData . OverPNum ) * bulkHeadData . PKgs ) ;
e . record . set ( 'LoadPlace' , bulkHeadData . SedArea ) ;
e . record . set ( 'UnLoadPlace' , bulkHeadData . DstArea ) ;
} else {
e . record . set ( 'CustCode' , '' ) ;
e . record . set ( 'CustCode_Ref' , '' ) ;
e . record . set ( 'CustName' , '' ) ;
e . record . set ( 'ClsName' , '' ) ;
e . record . set ( 'PNum' , 0 ) ;
e . record . set ( 'PKgs' , 0 ) ;
e . record . set ( 'Weight' , 0 ) ;
e . record . set ( 'LoadPlace' , '' ) ;
e . record . set ( 'UnLoadPlace' , '' ) ;
}
} ,
//#region 明细操作
onAddDetailClick : function ( button , event , type ) {
var allow = this . getAllowOperationDetail ( ) ;
if ( allow == false ) {
return ;
}
var store = null ;
if ( type == 1 ) {
store = this . storeBodyFix ;
} else if ( type == 2 ) {
store = this . storeBodyChFee ;
} else if ( type == 3 ) {
store = this . storePoundBodyList ;
} else {
alert ( '函数(onAddDetailClick)的参数type类型设置的不对' ) ;
return ;
}
var newSerialno = this . GetHandleSerialNo ( store , type ) ;
var record = null ;
if ( type == 1 ) {
record = Ext . create ( 'MsWlPcFixed' , {
GId : NewGuid ( ) ,
BillNo : '*' ,
SerialNo : newSerialno ,
FeeStatus : 1 ,
FeeStatus _Ref : '录入状态' ,
AuditStatus : 0 ,
CreditDebit : "2" ,
CreditDebit _Ref : "应付" ,
FeeTypeCode : '' ,
FeeTypeCode _Ref : '' ,
FeeTypeName : '' ,
DistCount : 0 ,
Price : 0 ,
FsTotal : 0 ,
JsTotal : 0 ,
Remark : ''
} ) ;
} else if ( type == 2 ) {
record = Ext . create ( 'MsChFee' , {
GId : NewGuid ( ) ,
BsNo : '*' ,
FeeStatus : 1 ,
FeeStatus _Ref : '录入状态' ,
FeeType : 1 ,
FeeType _Ref : '应收' ,
FeeName : '' ,
FeeName _Ref : '' ,
FeeDescription : '' ,
CustomerType : '' ,
CustomerName : this . getPoundcustname ( ) ,
CustomerName _Ref : '' ,
Unit : '' ,
UnitPrice : 0 ,
Quantity : 1 ,
Amount : 0 ,
Currency : 'RMB' ,
ExChangerate : 1 ,
Reason : '' ,
Remark : '' ,
Commissionrate : 0 ,
Settlement : 0 ,
Invoice : 0 ,
OrderAmount : 0 ,
OrderInvoice : 0 ,
SubmitDate : null ,
Auditoperator : '' ,
AuditDate : null ,
EnteroPerator : GetCookie _UserId ( ) ,
EnterDate : null ,
DebitNo : '' ,
IsDebit : "0" ,
IsOpen : "0" ,
IsAdvancedpay : "0" ,
Sort : "0" ,
IsInvoice : "0" ,
FeeFrt : '' ,
IsCrmOrderFee : "0" ,
AuditStatus : 0 ,
InvoiceNum : '' ,
ChequeNum : '' ,
WmsOutBsNo : ''
} ) ;
} else if ( type == 3 ) {
record = Ext . create ( 'MsWlDjPound' , {
BillNo : '*' ,
SerialNo : newSerialno ,
DjBillNo : '' ,
DjBillNo _Ref : '' ,
GId : NewGuid ( ) ,
CustCode : '' ,
CustCode _Ref : '' ,
CustName : '' ,
ClsName : '' ,
DepartureDate : '' ,
LoadPlace : '' ,
UnLoadPlace : '' ,
PlanOverLoadMil : 0 ,
PlanNoLoadMil : 0 ,
PlanLoadCount : 0 ,
OverLoadMil : 0 ,
NoLoadMil : 0 ,
LoadCount : 0 ,
PNum : 0 ,
PKgs : 0 ,
Weight : 0 ,
WorkTime : ''
} ) ;
}
store . add ( record ) ;
var editColumnIndex = 0 ;
var cellediting = null ;
if ( type == 1 ) {
cellediting = this . cellEditingFix ;
editColumnIndex = 2 ;
} else if ( type == 2 ) {
cellediting = this . cellEditingChFee ;
editColumnIndex = 4 ;
} else if ( type == 3 ) {
cellediting = this . PoundgridListCellEditing ;
editColumnIndex = 2 ;
}
var n = store . getCount ( ) ;
cellediting . startEditByPosition ( { row : n - 1 , column : editColumnIndex } ) ;
} ,
GetHandleSerialNo : function ( store , type ) {
var result = 0 ;
if ( type == 1 ) {
result = this . fixSerialNo ;
} else if ( type == 2 ) {
result = this . feeSerialNo ;
} else if ( type == 3 ) {
result = this . poundSerialNo ;
}
if ( result == 0 ) {
for ( var i = 0 ; i < store . getCount ( ) ; i += 1 ) {
var member = store . getAt ( i ) ;
if ( member . data . SerialNo > result ) {
result = member . data . SerialNo ;
}
}
}
result = result + 1 ;
if ( type == 1 ) {
this . fixSerialNo = result ;
} else if ( type == 2 ) {
this . feeSerialNo = result ;
} else if ( type == 3 ) {
this . poundSerialNo = result ;
}
return result ;
} ,
onDelDetailClick : function ( button , event , type ) {
var allow = this . getAllowOperationDetail ( ) ;
if ( allow == false ) {
return ;
}
var store = null ;
if ( type == 1 ) {
store = this . storeBodyFix ;
} else if ( type == 2 ) {
store = this . storeBodyChFee ;
} else if ( type == 3 ) {
store = this . storePoundBodyList ;
} else {
alert ( '函数(onAddDetailClick)的参数type类型设置的不对' ) ;
return ;
}
var result = 0 ;
if ( type == '1' ) {
result = this . fixSerialNo ;
} else if ( type == '2' ) {
result = this . feeSerialNo ;
} else if ( type == '3' ) {
result = this . poundSerialNo ;
}
if ( result == 0 ) {
for ( var i = 0 ; i < store . getCount ( ) ; i += 1 ) {
var member = store . getAt ( i ) ;
if ( member . data . SerialNo > this . giSerialNo ) {
result = member . data . SerialNo ;
}
}
}
if ( type == '1' ) {
this . fixSerialNo = result ;
} else if ( type == '2' ) {
this . feeSerialNo = result ;
} else if ( type == '3' ) {
this . poundSerialNo = result ;
}
var selectedRecords = [ ] ;
if ( type == '1' ) {
selectedRecords = this . gridListFix . selModel . getSelection ( ) ;
} else if ( type == '2' ) {
selectedRecords = this . gridListChFee . selModel . getSelection ( ) ;
var candelete = DsTruck . CheckChFeeDelete ( selectedRecords ) ;
if ( candelete == false )
return ;
} else if ( type == '3' ) {
selectedRecords = this . PoundgridList . selModel . getSelection ( ) ;
}
if ( selectedRecords . length > 0 ) {
for ( var i = 0 ; i < selectedRecords . length ; i ++ ) {
var rec = selectedRecords [ i ] ;
if ( rec . BillNo != "" || rec . BillNo != "*" ) //如果是新增但没有保存的数据,没有必要提交到后台
{
if ( type == '1' ) {
this . fixBodyDel . push ( rec ) ;
} else if ( type == '2' ) {
this . feeBodyDel . push ( rec ) ;
} else if ( type == '3' ) {
this . poundBodyDel . push ( rec ) ;
}
}
if ( type == '1' ) {
this . storeBodyFix . remove ( selectedRecords [ i ] ) ;
} else if ( type == '2' ) {
this . storeBodyChFee . remove ( selectedRecords [ i ] ) ;
} else if ( type == '3' ) {
this . storePoundBodyList . remove ( selectedRecords [ i ] ) ;
this . setAllTotal ( ) ;
}
}
}
} ,
getAllowOperationDetail : function ( ) {
var feeStatus = this . getFeeStatus ( ) ;
if ( feeStatus == '0' )
return true ;
else {
Ext . Msg . show ( { title : '错误' , msg : "费用已锁定,不允许操作费用!" , icon : Ext . Msg . ERROR , buttons : Ext . Msg . OK } ) ;
return false ;
}
} ,
//#endregion
//#region 表格的AfterEdit
gridListFixAfterEdit : function ( editor , e , eOpts ) {
if ( e . field == 'FeeTypeCode' ) {
var records = DsStoreQueryBy ( this . storeFeeTypeCodeRef , 'FeeCode' , e . value ) ;
if ( records . getCount ( ) > 0 ) {
var data = records . getAt ( 0 ) . data ;
e . record . set ( 'FeeTypeCode_Ref' , data . Name ) ;
e . record . set ( 'FeeTypeName' , data . Name ) ;
} else {
e . record . set ( 'FeeTypeCode_Ref' , '' ) ;
e . record . set ( 'FeeTypeName' , '' ) ;
}
} else if ( e . field == 'CreditDebit' ) {
var recordsCreditDebit = DsStoreQueryBy ( this . storeCreditDebitRef , 'EnumValueId' , e . value ) ;
if ( recordsCreditDebit . getCount ( ) > 0 ) {
var dataCreditDebit = recordsCreditDebit . getAt ( 0 ) . data ;
e . record . set ( 'CreditDebit_Ref' , dataCreditDebit . EnumValueName ) ;
} else {
e . record . set ( 'CreditDebit_Ref' , '' ) ;
}
}
} ,
gridListChFeeAfterEdit : function ( editor , e , eOpts ) {
if ( e . field == 'FeeType' ) {
var records = DsStoreQueryBy ( this . storeFeeTypeRef , 'EnumValueId' , e . value ) ;
if ( records . getCount ( ) > 0 ) {
var data = records . getAt ( 0 ) . data ;
e . record . set ( 'FeeType_Ref' , data . EnumValueName ) ;
} else {
e . record . set ( 'FeeType_Ref' , '' ) ;
}
} else if ( e . field == 'UnitPrice' || e . field == 'Quantity' ) {
var unitPrice = e . record . data [ 'UnitPrice' ] ;
var quantity = e . record . data [ 'Quantity' ] ;
e . record . set ( 'Amount' , ( unitPrice * quantity ) . toFixed ( 2 ) ) ;
}
} ,
//#endregion
cellEditingFixBeforeEdit : function ( editor , e ) {
var feeStatus = this . getFeeStatus ( ) ;
var billStatus = this . getBillStatus ( ) ;
var canedit = feeStatus == '0' && billStatus == '0' ;
return canedit ;
} ,
cellEditingChFeeBeforeEdit : function ( editor , e ) {
var chfeefeeStatus = e . record . get ( 'FeeStatus' ) ;
var canedit = chfeefeeStatus == 1 || chfeefeeStatus == 6 ;
if ( canedit ) {
var feeStatus = this . getFeeStatus ( ) ;
var billStatus = this . getBillStatus ( ) ;
canedit = feeStatus == '0' && billStatus == '0' ;
}
return canedit ;
} ,
refBillNoSeChange : function ( field , newValue , oldValue ) {
// if (newValue != oldValue) {
// alert(newValue + "," + oldValue);
// }
} ,
realMilChange : function ( field , newValue , oldValue ) {
if ( this . DataLoading == true ) return ;
if ( newValue == oldValue ) return ;
var realMil = newValue ;
var basicForm = this . formEdit . getForm ( ) ;
basicForm . findField ( 'OverLoadMil' ) . setValue ( realMil ) ;
basicForm . findField ( 'NoLoadMil' ) . setValue ( realMil ) ;
} ,
overLoadMilChange : function ( field , newValue , oldValue ) {
if ( this . DataLoading == true ) return ;
var basicForm = this . formEdit . getForm ( ) ;
// basicForm.findField('LoadFuel').setValue(this.LoadFuel);
basicForm . findField ( 'RatedFuel' ) . setValue ( this . ratedFuel ) ;
} ,
noLoadMilChange : function ( field , newValue , oldValue ) {
if ( this . DataLoading == true ) return ;
var basicForm = this . formEdit . getForm ( ) ;
} ,
tonAndTruckNoChange : function ( field , newValue , oldValue ) {
if ( this . DataLoading == true ) return ;
var basicForm = this . formEdit . getForm ( ) ;
// basicForm.findField('LoadFuel').setValue(this.LoadFuel);
// basicForm.findField('NoLoadFuel').setValue(this.NoLoadFuel);
basicForm . findField ( 'RatedFuel' ) . setValue ( this . ratedFuel ) ;
if ( field . name == 'TruckNo' ) {
var records = DsStoreQueryBy ( this . storeTruckNo , 'TruckNo' , newValue ) ;
if ( records . getCount ( ) > 0 ) {
var data = records . getAt ( 0 ) . data ;
basicForm . findField ( 'DrvCode' ) . setValue ( data . DrvCode ) ;
this . setDrvName ( data . DrvCode ) ;
basicForm . findField ( 'Mobile' ) . setValue ( data . Mobile ) ;
} else {
basicForm . findField ( 'DrvCode' ) . setValue ( '' ) ;
basicForm . findField ( 'DrvName' ) . setValue ( '' ) ;
basicForm . findField ( 'Mobile' ) . setValue ( '' ) ;
}
}
} ,
onSubmitAuditClick : function ( button , event ) {
var records = this . feeGridCheckBoxModel . selected . items ;
if ( records . length == 0 ) {
Ext . Msg . show ( { title : '提示' , msg : '请先选择费用!' , icon : Ext . Msg . INFO , buttons : Ext . Msg . OK } ) ;
return ;
}
DsTruck . MsChFeeAudit ( records , 2 , '正在提交审核数据, 请稍侯..' ) ;
this . storeBodyChFee . reload ( ) ;
} ,
onPassAuditClick : function ( button , event ) {
var records = this . feeGridCheckBoxModel . selected . items ;
if ( records . length == 0 ) {
Ext . Msg . show ( { title : '提示' , msg : '请先选择费用!' , icon : Ext . Msg . INFO , buttons : Ext . Msg . OK } ) ;
return ;
}
DsTruck . MsChFeeAudit ( records , 0 , '正在审核数据, 请稍侯..' ) ;
this . storeBodyChFee . reload ( ) ;
} ,
onCancelAuditClick : function ( button , event ) {
var records = this . feeGridCheckBoxModel . selected . items ;
if ( records . length == 0 ) {
Ext . Msg . show ( { title : '提示' , msg : '请先选择费用!' , icon : Ext . Msg . INFO , buttons : Ext . Msg . OK } ) ;
return ;
}
DsTruck . MsChFeeAudit ( records , 1 , '正在撤销提交审核数据, 请稍侯..' ) ;
this . storeBodyChFee . reload ( ) ;
} ,
setSaveBtnStatus : function ( enable ) {
var bsbtnSave = Ext . getCmp ( 'pcbtnSave' ) ;
var bsbtnSaveAndClose = Ext . getCmp ( 'pcbtnSaveAndClose' ) ;
var bsbtnSaveAndNew = Ext . getCmp ( 'pcbtnSaveAndNew' ) ;
var pcbtnNew = Ext . getCmp ( 'pcbtnNew' ) ;
if ( enable ) {
bsbtnSave . enable ( ) ;
bsbtnSaveAndClose . enable ( ) ;
bsbtnSaveAndNew . enable ( ) ;
pcbtnNew . enable ( ) ;
} else {
//bsbtnSave.disable();
//bsbtnSaveAndClose.disable();
bsbtnSaveAndNew . disable ( ) ;
pcbtnNew . disable ( ) ;
}
} ,
getFeeStatus : function ( ) {
var basicForm = this . formEdit . getForm ( ) ;
var feeStatus = basicForm . findField ( 'FeeStatus' ) . value ;
return feeStatus ;
} ,
getBillStatus : function ( ) {
var basicForm = this . formEdit . getForm ( ) ;
var billStatus = basicForm . findField ( 'BillStatus' ) . value ;
return billStatus ;
} ,
// getCustName: function () {
// var custName = this.formEdit.getForm().findField('RefCustomerName');
// return custName.getValue();
// },
getTruckNo : function ( ) {
var truckNo = this . formEdit . getForm ( ) . findField ( 'TruckNo' ) ;
return truckNo . getValue ( ) ;
} ,
Print : function ( ) {
var basicForm = this . formEdit . getForm ( ) ;
var billNo = basicForm . findField ( 'BillNo' ) . value ;
if ( billNo == '*' || billNo == '' ) {
Ext . Msg . show ( { title : '错误' , msg : '单据还没有保存,请保存后再打印' , icon : Ext . Msg . ERROR , buttons : Ext . Msg . OK } ) ;
return ;
}
var gid = basicForm . findField ( 'GId' ) . value ;
var refBillNo = basicForm . findField ( 'RefBillNo' ) . value ;
var printType = 'MSWLPC' ;
var sql1 = "SET LANGUAGE 'us_english' "
+ " select * from vMsWlPcHeadPrint WHERE BillNo = '" + billNo + "'" ;
var sql2 = "SET LANGUAGE 'us_english' SELECT * from ch_fee where BsNo='" + gid + "'" ;
var records = this . feeGridCheckBoxModel . selected . items ;
if ( records . length > 0 ) {
var feeGidSql = '' ;
for ( var i = 0 ; i < records . length ; i ++ ) {
var record = records [ i ] ;
var feeGId = "'" + record . get ( 'GId' ) + "'" ;
if ( feeGidSql == '' ) {
feeGidSql = feeGId ;
} else {
feeGidSql = feeGidSql + "," + feeGId ;
}
}
if ( feeGidSql != '' ) {
sql2 = sql2 + ' and Gid in (' + feeGidSql + ')' ;
}
}
var sql3 = "SET LANGUAGE 'us_english ' "
+ " SET LANGUAGE 'us_english' select A.*,B.* from tMsWlDjPound A,tMsWlDjHead B where A.DjBillNo=B.BillNo and A.BillNo = '" + gid + "' order by A.SerialNo" ;
var sql4 = "SET LANGUAGE 'us_english' select A.*,B.* from vMsWlPcHeadPrint A,tMsWlPcFixed B where A.Gid=B.BillNo and A.BillNo='" + billNo + "' order by A.BillNo" ;
var sql5 = "" ;
var sql6 = "" ;
PrintComm ( printType , sql1 , sql2 , sql3 , sql4 , sql5 , sql6 ) ;
} ,
//获取油耗
getTruckLoadFuel : function ( ton , mil , type ) {
var resultFuel = 0 ;
var truckNo = this . getTruckNo ( ) ;
if ( truckNo == null || truckNo == "" ) {
resultFuel = 0 ;
return resultFuel ;
}
if ( ton == null || ton == "" || mil == null ) {
resultFuel = 0 ;
return resultFuel ;
}
resultFuel = this . getTruckFuel ( truckNo , type , ton , mil ) ;
return resultFuel ;
} ,
getTruckFuel : function ( truckNo , loadType , ton , mil ) {
var resultFuel = 0 ;
Ext . Ajax . request ( {
waitMsg : '正在计算车里油量信息...' ,
url : '/TruckMng/MsWlDjPc/GetTruckFuel' ,
async : false ,
params : {
truckNo : truckNo ,
loadType : loadType ,
ton : ton ,
mil : mil
} ,
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
} ) ;
resultFuel = 0 ;
}
var data = result . data ;
resultFuel = data ;
} else {
Ext . MessageBox . alert ( '请求出现错误,请重试' , response . responseText ) ;
resultFuel = 0 ;
}
} ,
scope : this
} ) ;
return resultFuel ;
} ,
setDrvName : function ( drvCode ) {
var recs = DsStoreQueryBy ( this . storeDrvName , 'DrvCode' , drvCode ) ;
var basicForm = this . formEdit . getForm ( ) ;
var custname = basicForm . findField ( 'DrvName' ) ;
var mobile = basicForm . findField ( 'Mobile' ) ;
if ( recs . getCount ( ) > 0 ) {
var data = recs . getAt ( 0 ) . data ;
custname . setValue ( data . DrvName ) ;
mobile . setValue ( data . Mobile ) ;
} else {
custname . setValue ( '' ) ;
mobile . setValue ( '' ) ;
}
} ,
setBtnOnlyQuery : function ( ) {
var bsbtnSave = Ext . getCmp ( 'pcbtnSave' ) ;
var bsbtnSaveAndClose = Ext . getCmp ( 'pcbtnSaveAndClose' ) ;
var bsbtnSaveAndNew = Ext . getCmp ( 'pcbtnSaveAndNew' ) ;
var pcbtnNew = Ext . getCmp ( 'pcbtnNew' ) ;
bsbtnSave . setVisible ( false ) ;
bsbtnSaveAndClose . setVisible ( false ) ;
bsbtnSaveAndNew . setVisible ( false ) ;
pcbtnNew . setVisible ( false ) ;
}
} ) ;