You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1398 lines
50 KiB
JavaScript

This file contains ambiguous Unicode characters!

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

Ext.namespace('Shipping');
Shipping.MsOpCtnApplyCostHistryIndex = function (config) {
Ext.applyIf(this, config);
this.initUIComponents();
window.Shipping.MsOpCtnApplyCostHistryIndex.superclass.constructor.call(this);
};
Ext.extend(Shipping.MsOpCtnApplyCostHistryIndex, Ext.Panel, {
OprationStatus: null, //仅当弹出界面时使用
SelectedRecord: null,
sqlcontext: '',
PageSize: 100,
sortfield: '',
sortdire: '',
MainEditRecord: null,
MstoreBodyCostList: null,
initUIComponents: function () {
this.formname = "MsOpCtnApplyCostHistryIndex"; //页面名称
this.costsql = "1=2";
this.initgirdcolums = [{
sortable: true,
id: '',
dataIndex: '',
header: '',
width: 0
}, {
sortable: true,
dataIndex: 'GID',
header: 'GID',
hidden: true,
width: 120
}, {
sortable: true,
dataIndex: 'COMPANYID',
header: 'COMPANYID',
hidden: true,
width: 120
}, {
sortable: true,
dataIndex: 'PRICETYPE',
header: 'PRICETYPE',
hidden: true,
width: 120
}, {
sortable: true,
dataIndex: 'BSNO',
header: '申请单号',
width: 100
}, {
sortable: true,
dataIndex: 'BSDATE',
header: '申请日期',
width: 100
}, {
sortable: true,
dataIndex: 'BSSTATUS',
header: '申请状态',
width: 100
}, {
sortable: true,
dataIndex: 'SALE',
header: '揽货人',
width: 100
}, {
sortable: true,
dataIndex: 'OP',
header: '操作员',
width: 100
}, {
sortable: true,
dataIndex: 'GOODSNAME',
header: '品名',
width: 100
}, {
sortable: true,
dataIndex: 'GOODSNAMEREF',
header: '货物名称(含英文简称)',
width: 100
}, {
sortable: true,
dataIndex: 'GOODSTYPE',
header: '产品系列',
width: 100
}, {
sortable: true,
dataIndex: 'GOODTYPE',
header: '产品类别',
width: 100
}, {
sortable: true,
dataIndex: 'PORTLOAD',
header: '起运港',
width: 100
}, {
sortable: true,
dataIndex: 'PORTDISCHARGE',
header: '目的港',
width: 100
}, {
sortable: true,
dataIndex: 'CTNALL',
header: '箱型',
width: 100
}, {
sortable: true,
dataIndex: 'CTNNUM',
header: '箱量',
width: 100
}, {
sortable: true,
dataIndex: 'CUSTOMERNAME',
header: '委托单位',
width: 100
}, {
sortable: true,
dataIndex: 'FACTORYNAME',
header: '工厂名称',
width: 100
}, {
sortable: true,
dataIndex: 'PREGOODSNAME',
header: '前装品名',
width: 100
}, {
sortable: true,
dataIndex: 'CURGOODSNAME',
header: '后装品名',
width: 100
}, {
sortable: true,
dataIndex: 'AUDITSTATUS',
header: '适货审核状态',
width: 100
}, {
sortable: true,
dataIndex: 'AUDITBYREF',
header: '适货审核人',
width: 100
}, {
sortable: true,
dataIndex: 'AUDITTIME',
header: '适货审核时间',
width: 100
}, {
sortable: true,
dataIndex: 'AUDITRESULT',
header: '适货审核结果',
width: 100
}, {
sortable: true,
dataIndex: 'AGENTINPUTBY',
header: '代理维护人',
width: 100
}, {
sortable: true,
dataIndex: 'AGENTNAME',
header: '目的港代理',
width: 100
}, {
sortable: true,
dataIndex: 'CYCLEDAYS',
header: '周期',
width: 100
}, {
sortable: true,
dataIndex: 'COSTAUDITSTATUS',
header: '成本审核状态',
width: 100
}, {
sortable: true,
dataIndex: 'COSTSUBMITBYREF',
header: '提交人',
width: 100
}, {
sortable: true,
dataIndex: 'COSTSUBMITTIME',
header: '提交时间',
width: 100
}, {
sortable: true,
dataIndex: 'COSTAUDITBYREF',
header: '成本审核人',
width: 100
}, {
sortable: true,
dataIndex: 'COSTAUDITTIME',
header: '成本审核时间',
width: 100
}, {
sortable: true,
dataIndex: 'COSTAUDITRESULT',
header: '成本审核结果',
width: 100
}, {
sortable: true,
dataIndex: 'MNGAUDITSTATUS',
header: '总经理审核状态',
width: 100
}, {
sortable: true,
dataIndex: 'CHANGERATE',
header: '超期箱使费佣金比例',
width: 100
}, {
sortable: true,
dataIndex: 'FULL_CTN_FREE_STORAGE_DAY',
header: '重箱免堆天数',
width: 100
}, {
sortable: true,
dataIndex: 'CTN_PRICE',
header: '罐箱价格',
width: 100
}, {
sortable: true,
dataIndex: 'CURRENCY',
header: '币别',
width: 50
}, {
sortable: true,
dataIndex: 'CTN_INCOME',
header: '内部租金收入',
width: 100
}, {
sortable: true,
dataIndex: 'REMARKS',
header: '备注',
width: 200
}, {
sortable: true,
dataIndex: 'OTHER1COST',
header: '出口运费及港杂合计',
width: 100
}, {
sortable: true,
dataIndex: 'OTHER2COST',
header: '重箱目的港杂费合计',
width: 100
}, {
sortable: true,
dataIndex: 'OTHER3COST',
header: '海外堆场费用合计',
width: 100
}, {
sortable: true,
dataIndex: 'OTHER4COST',
header: '空罐回程运费及杂费合计',
width: 100
}, {
sortable: true,
dataIndex: 'OTHER5COST',
header: '空罐目的港杂费合计',
width: 100
}, {
sortable: true,
dataIndex: 'OTHER6COST',
header: '清洗合计',
width: 100
}, {
sortable: true,
dataIndex: 'OTHER7COST',
header: '改装合计',
width: 100
}, {
sortable: true,
dataIndex: 'INPUTBYREF',
header: '录入人',
width: 100
}, {
sortable: true,
dataIndex: 'INPUTTIME',
header: '录入时间',
width: 100
}, {
sortable: true,
dataIndex: 'COSTSUBMITBYREF',
header: '提交人',
width: 100
}, {
sortable: true,
dataIndex: 'COSTSUBMITTIME',
header: '提交时间',
width: 100
}, {
sortable: true,
dataIndex: 'SERVICE',
header: '运输条款',
width: 100
}, {
sortable: true,
dataIndex: 'NEEDBEHEATED',
header: '是否加热',
renderer: function (value, meta) {
if (isFalse(value)) {
return "";
} else {
meta.tdCls = 'feestatus_pass';
return "是";
}
},
width: 100
}, {
sortable: true,
dataIndex: 'EMPTYCTNALLOCATION',
header: '空箱调拨',
renderer: function (value, meta) {
if (isFalse(value)) {
return "";
} else {
meta.tdCls = 'feestatus_pass';
return "是";
}
},
width: 100
}, {
sortable: true,
align: 'right',
dataIndex: 'WEIGHT',
header: '重量(KGS)',
width: 100,
renderer: function (value) {
return Ext.util.Format.number(value, '0.000');
}
}, {
sortable: true,
dataIndex: 'PREI_ETD',
header: '预计开船日期',
width: 100
}
];
this.girdcolums = this.initgirdcolums;
_this = this;
//定义数据集
this.storeList = Ext.create('Ext.data.Store', {
pageSize: this.PageSize,
model: 'MsOpCtnApply',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/MvcContainer/MsOpCtnApply/GetDataList',
reader: {
root: 'data',
totalProperty: 'totalCount'
}
}
});
Ext.grid.RowNumberer = Ext.extend(Ext.grid.RowNumberer, {
width: 30
});
this.GridCheckBoxModel = Ext.create('Ext.selection.CheckboxModel');
_this = this;
//定义Grid
this.gridList = new Ext.grid.GridPanel({
store: this.storeList,
enableHdMenu: false,
region: 'center',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
selModel: this.GridCheckBoxModel,
columns: this.girdcolums
,
viewConfig: {
enableTextSelection: true
},
// paging bar on the bottom
bbar: Ext.create('Ext.PagingToolbar', {
store: this.storeList,
displayInfo: true,
displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录',
emptyMsg: "没有数据"
})
});
this.girdcolums = DsTruck.GetGridPanel(USERID, this.formname, this.girdcolums, 1); //使用者id表名中间column数组跳过一开始的几列
this.girdcolums.unshift(new Ext.grid.RowNumberer());
// this.InitGrid(this.girdcolums, '');
this.gridList.addListener('itemdblclick', function (dataview, record, item, index, e, b) {
this.OpenEditWin(record);
}, this);
this.gridList.addListener('sortchange', function (ct, column, direction, eOpts) {
this.sortfield = column.dataIndex;
this.sortdire = direction;
}, this);
//#region formSearch 查询面板
//#region 下拉菜单内容
this.storeCodeDisport = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.CodeDisportModel',
proxy: { url: '/CommMng/BasicDataRef/GetCodeDisportListRm' }
});
// this.storeCodeDisport.load();
this.comboxPORTDISCHARGE = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '目的港',
store: this.storeCodeDisport,
name: 'PORTDISCHARGE',
valueField: 'PORT',
queryMode: 'remote',
minChars: 2,
queryParam: 'PORT',
displayField: 'PORT',
enableKeyEvents: true,
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
});
this.comboxPORTLOAD = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '起运港',
store: this.storeCodeDisport,
name: 'PORTLOAD',
valueField: 'PORT',
queryMode: 'remote',
minChars: 2,
queryParam: 'PORT',
displayField: 'PORT',
enableKeyEvents: true,
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
});
//客户加载_委托单位
this.storeCustCode = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.CustomRefModel',
proxy: { url: '/CommMng/BasicDataRef/GetCustomRefListController' }
});
//this.storeCustCode.load({ params: { condition: "ISCONTROLLER='1'"} });
//委托单位
_this = this;
this.comboxCustCode = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '委托单位',
store: this.storeCustCode,
forceSelection: true,
queryMode: 'remote',
minChars: 1,
queryParam: 'CODENAME',
name: 'CUSTOMERNAME',
valueField: 'CustName',
displayField: 'CodeAndName',
enableKeyEvents: true,
listeners: {
keyup: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
});
this.storeListGood = Ext.create('Ext.data.Store', {
model: 'MsCodeMSDS',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/MvcContainer/MsCodeMSDS/GetDataListRm',
reader: {
id: 'GID',
root: 'data',
totalProperty: 'totalCount'
}
}
});
//this.storeListGood.load({ params: { start: 0, limit: 20000, condition: "" } });
this.comboxGoods = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storeListGood,
fieldLabel: '品名',
allowBlank: true,
labelWidth: 40,
queryMode: 'remote',
minChars: 0,
queryParam: 'CODENAME',
// forceSelection: true,
//flex: 2,
name: 'GOODSNAME',
valueField: 'CHEMICALCGOODSNAME',
displayField: 'GOODNAMEANDCNAME',
enableKeyEvents: true,
listeners: {
keyup: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
});
this.storeDESTPORT_STATOIN = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.CustomRefModel',
proxy: { url: '/CommMng/BasicDataRef/GetCustomRefList' }
});
this.storeDESTPORT_STATOIN.load({ params: { condition: "ISYARD='1'" } });
//场站
this.comboxDESTPORT_STATOIN = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '目的港还箱堆场',
labelWidth: 100,
store: this.storeDESTPORT_STATOIN,
forceSelection: true,
name: 'DESTPORT_STATOIN',
valueField: 'CustName',
displayField: 'CodeAndName',
enableKeyEvents: true,
listeners: {
keyup: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
});
this.storeAGENT = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.CustomRefModel',
proxy: { url: '/CommMng/BasicDataRef/GetCustomRefList' }
});
this.storeAGENT.load({ params: { condition: "ISAGENT='1'" } });
this.comboxAgent = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '目的港代理',
store: this.storeAGENT,
forceSelection: true,
name: 'AGENTNAME',
valueField: 'CustName',
displayField: 'CodeAndName',
enableKeyEvents: true,
listeners: {
keyup: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
});
//#endregion
_this = this;
this.formSearch = Ext.widget('form', {
frame: true,
region: 'center',
bodyPadding: 5,
fieldDefaults: {
margins: '2 2 2 2',
labelAlign: 'right',
flex: 1,
labelWidth: 70,
msgTarget: 'qtip'
},
items: [{//fieldset 1
xtype: 'container',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '罐号',
labelWidth: 40,
name: 'CTNNO',
enableKeyEvents: true,
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
}, {
fieldLabel: '申请编号',
name: 'MblNo',
enableKeyEvents: true,
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
}, this.comboxPORTLOAD, this.comboxPORTDISCHARGE, this.comboxCustCode, {
xtype: 'button',
width: 90,
text: "执行查询",
iconCls: "btnrefresh",
handler: function (button, event) {
this.onRefreshClick(button, event);
},
scope: this
}]
}, {
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '委托编号',
name: 'CUSTNO',
enableKeyEvents: true,
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
}, this.comboxAgent, this.comboxDESTPORT_STATOIN, this.comboxGoods, { xtype: 'hiddenfield' },{
xtype: 'button',
width: 90,
text: "高级查询",
iconCls: "btnmore",
handler: function (button, event) {
var sql = this.getCondition();
var winAccess = new Shipping.DsQuery({
});
winAccess.StoreList = this.storeList;
winAccess.formname = this.formname;
winAccess.condition = sql;
winAccess.show();
return;
},
scope: this
}]
}
]//end items(fieldset 1)
}]//end root items
});
//#endregion formSearch
//查询工具条
this.panelBtn = new Ext.Panel({
region: "north",
tbar: [
{
text: "执行查询",
iconCls: "btnrefresh",
handler: function (button, event) {
this.onRefreshClick(button, event);
},
scope: this
},
{
text: "重置条件",
iconCls: "btnreset",
handler: function (button, event) {
var form = this.formSearch.getForm();
form.reset();
},
scope: this
}, '-',
{
text: "打印",
iconCls: 'btnprint',
menu: [
{ text: "全部",
handler: function (menu, event) {
_this.Print();
}
}, { text: "选择打印",
handler: function (menu, event) {
_this.PrintSelect();
}
}],
scope: this
}, '-',
{
text: "打开",
iconCls: "btnright", id: "OPEN",
handler: function (button, event) {
this.onOpenClick(button, event);
},
scope: this
}, '-', {
text: "保存列表样式",
menu: [
{ text: "保存",
handler: function (button, event) {
this.girdcolums = DsTruck.SaveGridPanel(USERID, _this.formname, _this.gridList.columns, _this.girdcolums, 1, true);
}
}, { text: "初始化",
handler: function (menu, event) {
_this.InitGrid(_this.initgirdcolums);
_this.girdcolums = DsTruck.SaveGridPanel(USERID, _this.formname, _this.gridList.columns, _this.initgirdcolums, 1, true);
}
}],
scope: this
}
]
});
this.panelTop = new Ext.Panel({
layout: "border",
region: "north",
height: 105,
items: [this.formSearch, this.panelBtn]
});
//#region 申请修改
//#region 报价信息
this.storeBodyCostList = Ext.create('Ext.data.Store', {
model: 'MsOpCtnApplyCostItems',
remoteSort: false,
proxy: {
type: 'ajax',
url: '/MvcContainer/MsOpCtnApply/GetCtnApplyCostItemsList',
reader: {
id: 'GID',
root: 'data',
totalProperty: 'totalCount'
}
}
});
this.initgirdcolumsCost = [{
sortable: true,
dataIndex: 'GID',
header: '编号',
hidden: true,
width: 0
}, {
sortable: true,
dataIndex: 'LINKGID',
header: '业务编号',
hidden: true,
width: 0
}, {
sortable: true,
dataIndex: 'FEENAME',
header: '费用名称',
//editor: this.comboxFeeNameRef,
width: 140
}, {
sortable: true,
dataIndex: 'UNIT',
header: '标准',
//editor: this.comboxFeeUnit,
width: 80
}, {
sortable: true,
dataIndex: 'CURRENCY',
header: '币别',
//editor: this.comboxCurr,
width: 60
}, {
sortable: true,
dataIndex: 'UNITPRICE',
header: '单价',
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { try { var lsValue = usMoney(value, 2, '', false); if (lsValue != "NaN") { value = lsValue; if (parseFloat(lsValue) < 0) { return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>'; } } else { return value; } } catch (e) { return value; } return value; },
align: 'right',
width: 100
}, {
sortable: true,
dataIndex: 'QUANTITY',
header: '数量',
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { try { var lsValue = usMoney(value, 2, '', false); if (lsValue != "NaN") { value = lsValue; if (parseFloat(lsValue) < 0) { return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>'; } } else { return value; } } catch (e) { return value; } return value; },
align: 'right',
width: 90
}, {
sortable: true,
dataIndex: 'AMOUNT',
header: '金额',
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { try { var lsValue = usMoney(value, 2, '', false); if (lsValue != "NaN") { value = lsValue; if (parseFloat(lsValue) < 0) { return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>'; } } else { return value; } } catch (e) { return value; } return value; },
align: 'right',
width: 100
}, {
sortable: true,
dataIndex: 'EXCHANGERATE',
header: '汇率',
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { try { var lsValue = usMoney(value, 2, '', false); if (lsValue != "NaN") { value = lsValue; if (parseFloat(lsValue) < 0) { return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>'; } } else { return value; } } catch (e) { return value; } return value; },
align: 'right',
width: 100
}, {
sortable: true,
dataIndex: 'CUSTOMERNAME',
header: '付款方',
width: 130
}, {
sortable: true,
dataIndex: 'REMARKS',
header: '备注',
width: 250
}, {
sortable: true,
dataIndex: 'INPUTBYREF',
header: '引入人',
width: 80
}, {
sortable: true,
dataIndex: 'INPUTTIME',
header: '引入时间',
width: 100
}, {
sortable: true,
dataIndex: 'GOODSNAME',
header: '品名',
width: 250
},
{
sortable: true,
id: '',
dataIndex: 'PRICETYPE',
header: '运价来源',
align: 'center',
width: 120,
renderer: function (value, cellmeta) {
if (value == '1') {
return '海运出口报价';
} else if (value == '2') {
return '海运进口报价';
} else if (value == '3') {
return '代理报价';
} else if (value == '4') {
return '场站报价';
}
}
},
{
sortable: true,
id: '',
dataIndex: 'PRICECLASS',
header: '类别归属',
align: 'center',
width: 120
}];
this.girdcolumsCost = this.initgirdcolumsCost;
_this = this;
// this.girdcolumsCost = DsTruck.GetGridPanel(USERID, this.formname + 'Cost', this.girdcolumsCost, 1); //使用者id表名中间column数组跳过一开始的几列
//明细表表格
this.gridListCheckBoxModelCost = Ext.create('Ext.selection.CheckboxModel');
this.gridListCostBody = new Ext.grid.GridPanel({
store: this.storeBodyCostList,
enableHdMenu: false,
region: 'center',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
selModel: this.gridListCheckBoxModelCost,
columns: this.girdcolumsCost,
tbar: [{
text: '引入运价',
tooltip: '引入运价',
id: "btnadddetail",
iconCls: "btnadddetail",
handler: function (button, event) {
this.addDetail();
},
scope: this
}, '-', {
text: "保存列表样式",
menu: [
{
text: "保存",
handler: function (button, event) {
this.girdcolumsCost = DsTruck.SaveGridPanel(USERID, _this.formname + 'Cost', _this.gridListCostBody.columns, _this.girdcolumsCost, 1, true);
}
}, {
text: "初始化",
handler: function (menu, event) {
_this.InitGrid(_this.initgirdcolums);
_this.girdcolumsCost = DsTruck.SaveGridPanel(USERID, _this.formname + 'Cost', _this.gridListCostBody.columns, _this.initgirdcolumsCost, 1, true);
}
}],
scope: this
}]
});
this.storeBodyCostSum = Ext.create('Ext.data.Store', {
model: 'MsOpCtnApplyCostItems',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/MvcContainer/MsOpCtnApply/GetCtnApplyCostSum',
reader: {
id: 'GID',
root: 'data',
totalProperty: 'totalCount'
}
}
});
this.gridListCostSum = new Ext.grid.GridPanel({
store: this.storeBodyCostSum,
enableHdMenu: false,
region: 'east',
width: 240,
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
selType: 'cellmodel',
tbar: [{
xtype: 'label', text: '费用合计',
style: 'font-size:18px',
labelColor: '#000',
//style:'background-color: #4b9bf5',
x: '5%',
y: '5%'
}],
columns: [{
sortable: false,
dataIndex: 'CURRENCY',
header: '币别',
width: 100
}, {
sortable: false,
dataIndex: 'AMOUNT',
header: '金额',
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) { try { var lsValue = usMoney(value, 2, '', false); if (lsValue != "NaN") { value = lsValue; if (parseFloat(lsValue) < 0) { return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>'; } } else { return value; } } catch (e) { return value; } return value; },
align: 'right',
width: 110
}]
});
this.panelCostBody = new Ext.Panel({
title: '成本核算明细',
layout: "border",
region: 'south',
height:450,
animate: true,
// autoScroll: true,
// containerScroll: true,
frame: false,
items: [this.gridListCostBody, this.gridListCostSum]
});
//#endregion
//#endregion
Ext.apply(this, {
items: [this.panelTop, this.gridList, this.panelCostBody]
});
this.storeList.on('beforeload', function (store) {
Ext.apply(store.proxy.extraParams, { condition: _this.sqlcontext });
}, this);
this.storeBodyCostList.on('beforeload', function (store) {
var acondition = this.costsql
Ext.apply(store.proxy.extraParams, { condition: acondition });
}, this);
this.storeBodyCostSum.on('beforeload', function (store) {
var acondition = this.costsql
Ext.apply(store.proxy.extraParams, { condition: acondition });
}, this);
var isloadfee = true;
this.gridList.getSelectionModel().on('select', function (model, record, index) {
var acondition = " LINKGID='" + record.data.GID + "' and (isnull(PROJECTGID,'')='' or (PROJECTGID not in (select GID FROM op_price_items WHERE ISNULL(ISSTOP,'')='1')))";
this.costsql = acondition;
this.storeBodyCostList.load({ params: { condition: acondition } });
this.storeBodyCostSum.load({ params: { condition: acondition } });
}, this);
_this = this;
this.sqlcontext = '';
this.parentWin = window.parent.opener._this;
if (this.parentWin) {
this.MstoreBodyCostList = this.parentWin.storeBodyCostList;
this.MainEditRecord = this.parentWin.editRecord;
this.formSearch.getForm().findField('GOODSNAME').setValue(this.MainEditRecord.get('GOODSNAME'));
this.formSearch.getForm().findField('PORTLOAD').setValue(this.MainEditRecord.get('PORTLOAD'));
this.formSearch.getForm().findField('PORTDISCHARGE').setValue(this.MainEditRecord.get('PORTDISCHARGE'));
}
this.gridList.reconfigure(this.storeList, this.girdcolums);
this.onRefreshClick();
// this.InitGrid(this.girdcolums,this.sqlcontext);
}, //end initUIComponents
onRefreshClick: function (button, event) {
var sql = this.getCondition();
this.sqlcontext = sql;
this.storeList.load({
params: { start: 0, limit: this.PageSize, sort: '', condition: _this.sqlcontext },
waitMsg: "正在查询数据...",
scope: this
});
},
onDsQuery: function () {
var sql = this.sqlcontext;
this.storeList.load({
params: { start: 0, limit: this.PageSize, sort: '', condition: sql },
waitMsg: "正在查询数据...",
scope: this
});
},
onAuditPassClick: function (type) {
var selections = this.gridList.getSelectionModel().getSelection();
if (selections.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择单据!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var record = selections[0];
Ext.MessageBox.confirm('提示', '确定审核通过该记录吗?', function (btn) {
if (btn == 'yes') {
var bodyAddDatas = [];
for (var i = 0; i < selections.length; i++) {
var rec = selections[i];
bodyAddDatas.push(rec);
}
var jsonbodyAddDatas = ConvertRecordsToJsonAll(bodyAddDatas);
Ext.Msg.wait('正在处理数据...');
Ext.Ajax.request({
waitMsg: '正在处理数据...',
url: '/MvcContainer/MsOpCtnApply/ShenModifyAudit',
params: {
data: jsonbodyAddDatas,
type: type
},
callback: function (options, success, response) {
if (success) {
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
this.onRefreshClick();
Ext.Msg.show({ title: '提示', msg: jsonresult.Message, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
}
else {
Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
}
}
},
failure: function (response, options) {
Ext.Msg.show({ title: '警告', msg: '服务器响应出错,请重试', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
},
success: function (response, options) {
},
scope: this
}); //end Ext.Ajax.request
}
}, this);
}, //onDeleteClick
addDetail: function () {
var selectedRecords = [];
var storeadd = null;
selectedRecords = this.gridListCheckBoxModelCost.selected.items;
if (selectedRecords.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择要添加的费用明细!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
for (var i = 0; i < selectedRecords.length; i++) {
var memberyf = selectedRecords[i];
var newsort = this.MstoreBodyCostList.getCount() + 1;
if (memberyf.data.CTNSTATUS == '重箱') {
if (memberyf.data.FREEDAY != 0)
this.parentWin.setHeadCostFieldValue('FULL_CTN_FREE_STORAGE_DAY', memberyf.data.FREEDAY);
if (memberyf.data.FEENAME == '堆存费') {
this.parentWin.setHeadCostFieldValue('FULL_CTN_OVER_STORAGE_RATE', memberyf.data.UNITPRICE);
}
}
if (memberyf.data.CTNSTATUS == '清洗空箱') {
if (memberyf.data.FREEDAY != 0)
this.parentWin.setHeadCostFieldValue('CLEAR_CTN_FREE_STORAGE_DAY', memberyf.data.FREEDAY);
if (memberyf.data.FEENAME == '堆存费') {
this.parentWin.setHeadCostFieldValue('CLEAR_CTN_OVER_STORAGE_RATE', memberyf.data.UNITPRICE);
}
}
if (memberyf.data.CTNSTATUS == '不清洗空箱') {
if (memberyf.data.FREEDAY != 0)
this.parentWin.setHeadCostFieldValue('NO_CLEAR_CTN_FREE_STORAGE_DAY', memberyf.data.FREEDAY);
if (memberyf.data.FEENAME == '堆存费') {
this.parentWin.setHeadCostFieldValue('NO_CLEAR_CTN_OVER_STORAGE_RATE', memberyf.data.UNITPRICE);
}
}
var QUANTITY = 1;
var AMOUNT = memberyf.data.UNITPRICE;
if (this.MainEditRecord.get('CTNALL') == memberyf.data.UNIT) {
QUANTITY = this.MainEditRecord.get('CTNNUM');
AMOUNT = Mul(memberyf.data.UNITPRICE, QUANTITY);
}
var exchange = this.parentWin.calExchange(memberyf.data.CURRENCY);
var record = Ext.create('MsOpCtnApplyCostItems', {
GID: NewGuid(),
LINKGID: '*',
PRICETYPE: '4',
ITEMSNO: newsort,
FEENAME: memberyf.data.FEENAME,
CUSTOMERNAME: memberyf.data.CUSTOMERNAME,
UNIT: memberyf.data.UNIT,
UNITPRICE: memberyf.data.UNITPRICE,
QUANTITY: QUANTITY,
AMOUNT: AMOUNT,
CURRENCY: memberyf.data.CURRENCY,
GOODSNAME: memberyf.data.GOODSNAME,
PRICECLASS: memberyf.data.PRICECLASS,
EXCHANGERATE: exchange,
REMARKS: memberyf.data.REMARKS
});
record.id = NewGuid();
record.internalId = NewGuid();
this.MstoreBodyCostList.add(record);
};
window.closeAction = 'destroy';
window.close();
},
getCondition: function () {
var form = this.formSearch.getForm();
if (!form.isValid()) {
Ext.Msg.alert('提示', '查询条件赋值错误,请检查。');
return '';
}
var sql = " (b.BSSTATUS in ('批准成本修改','成本审核通过','配箱完成','总经理审核通过')) ";
var MblNo = form.findField('MblNo').getValue();
sql = sql + getAndConSql(sql, MblNo, "b.BsNo like '%" + MblNo + "%' ");
var CTNNO = form.findField('CTNNO').getValue();
sql = sql + getAndConSql(sql, CTNNO, "b.GID IN (SELECT LINKGID FROM op_ctnapplyctnitems where CTNNO like'%" + CTNNO + "%') ");
var CUSTNO = form.findField('CUSTNO').getValue();
sql = sql + getAndConSql(sql, CUSTNO, "b.BSNO IN (SELECT APPLYNO FROM op_ctnbscard where CUSTNO like'%" + CTNNO + "%') ");
var CUSTOMERNAME = form.findField('CUSTOMERNAME').getValue();
sql = sql + getAndConSql(sql, CUSTOMERNAME, "b.CUSTOMERNAME='" + CUSTOMERNAME + "'");
var PORTLOAD = form.findField('PORTLOAD').getValue();
sql = sql + getAndConSql(sql, PORTLOAD, "b.PORTLOAD='" + PORTLOAD + "'");
var PORTDISCHARGE = form.findField('PORTDISCHARGE').getValue();
sql = sql + getAndConSql(sql, PORTDISCHARGE, "b.PORTDISCHARGE='" + PORTDISCHARGE + "'");
var GOODSNAME = form.findField('GOODSNAME').getValue();
sql = sql + getAndConSql(sql, GOODSNAME, "b.GOODSNAME='" + GOODSNAME + "'");
var AGENTNAME = form.findField('AGENTNAME').getValue();
sql = sql + getAndConSql(sql, AGENTNAME, "b.AGENTNAME='" + AGENTNAME + "'");
var DESTPORT_STATOIN = form.findField('DESTPORT_STATOIN').getValue();
sql = sql + getAndConSql(sql, DESTPORT_STATOIN, "b.DESTPORT_STATOIN='" + DESTPORT_STATOIN + "'");
//var expDateBgn = form.findField('ETDbgn').getRawValue();
//sql = sql + getAndConSql(sql, expDateBgn, "b.INPUTTIME >='" + expDateBgn + "'");
//var expDateEnd = form.findField('ETDend').getRawValue();
//sql = sql + getAndConSql(sql, expDateEnd, "b.INPUTTIME <='" + expDateEnd + " 23:59:59'");
return sql;
},
OprationSwap: function () {
var ret = new Array();
ret[0] = this.OprationStatus;
ret[1] = this.storeList;
ret[2] = this.SelectedRecord;
return ret;
},
Print: function () {
_this = this;
if (this.storeList.getCount() == 0) {
return;
}
var bsno = '11111';
var selections = this.gridList.getSelectionModel().getSelection();
if (selections.length != 0) {
var record = selections[0];
bsno = record.data.GID;
}
var sortstr = '';
if (this.sortfield != '' && this.sortdire != '') {
sortstr = this.sortfield + ' ' + this.sortdire;
}
Ext.Msg.wait('正在组织数据, 请稍侯..');
Ext.Ajax.request({
waitMsg: '正在组织数据...',
url: '/MvcContainer/MsOpCtnApply/GetDataListStr',
scope: this,
params: {
condition: _this.sqlcontext,
printstr: 'true',
pricetype: PRICETYPE,
sort: sortstr
},
callback: function (options, success, response) {
if (success) {
Ext.MessageBox.hide();
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
var returnstr = jsonresult.data;
var printType = 'MSOPCTNAPPLY';
var sql1 = returnstr;
var sql2 = "select * from op_ctnapply where GID='" + bsno + "'";
var sql3 = "";
var sql4 = "";
var sql5 = "";
var sql6 = "";
PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6);
} 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
});
}
}
});
},
PrintSelect: function () {
_this = this;
if (this.storeList.getCount() == 0) {
return;
}
var selectedRecords = [];
var storeadd = null;
selectedRecords = this.GridCheckBoxModel.selected.items;
if (selectedRecords.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择要打印的业务!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var sortstr = 'BSNO';
if (this.sortfield != '' && this.sortdire != '') {
sortstr = this.sortfield + ' ' + this.sortdire;
}
var feeGidSql = '';
for (var i = 0; i < selectedRecords.length; i++) {
var record = selectedRecords[i];
var feeGId = "'" + record.get('GID') + "'";
if (feeGidSql == '') {
feeGidSql = feeGId;
} else {
feeGidSql = feeGidSql + "," + feeGId;
}
};
var bsno = '11111';
var selections = this.gridList.getSelectionModel().getSelection();
if (selections.length != 0) {
var record = selections[0];
bsno = record.data.GID;
}
var printType = 'MSOPCTNAPPLYCOSTINDEX';
var sql1 = " select bs.GID,bs.BSNO 业务编号,bs.BSDATE 业务日期 ,bs.SALE 揽货人 ,bs.OP 操作员,bs.CUSTOMERNAME 委托单位,bs.GOODSNAME 品名,bs.GOODTYPE 货物类别,bs.PORTLOAD 装货港 ";
var sql1 = sql1 + ",bs.PORTDISCHARGE 目的港,bs.ISOWNERBOOKING 是否我司订舱,bs.CTNALL 箱型, bs.CTNNUM 箱量,bs.PLANCTNDATE 计划用箱日期";
var sql1 = sql1 + ",bs.FACTORYNAME 工厂名称,bs.FACTORYADDR 工厂地址,bs.BSSTATUS 申请状态";
var sql1 = sql1 + ",bs.LOAD_FREE_USECTNE_DAY 起运港免箱使天数 ,bs.LOAD_OVER_USECTNE_RATE 起运港超期箱使费,bs.DEST_FREE_USECTNE_DAY 目的港免箱使天数,bs.DEST_OVER_USECTNE_RATE 目的港超期箱使费";
var sql1 = sql1 + ",bs.INPUTTIME 录入日期,bs.REMARKS 备注";
var sql1 = sql1 + ",bs.ISGOODSNAMESAME 货物是否与MSDS一致,bs.PRODUCTGOODSNAME 工厂其他产品";
var sql1 = sql1 + ",msds.PH,msds.DENSITY 密度,msds.UNNO,msds.MELTINGPOINTB 熔点低,msds.MELTINGPOINTE 熔点高,msds.BOILINGPOINTB 沸点低,msds.BOILINGPOINTE 沸点高,msds.FLASHPOINTB 闪点低,msds.FLASHPOINTE 闪点高,msds.ISPOLLUTEOCEAN 是否海洋污染物";
var sql1 = sql1 + ",bs.AUDITSTATUS 适货审核状态 ,bs.AUDITTIME 适货审核时间";
var sql1 = sql1 + ",bs.AGENTINPUTBY 代理维护人 ,bs.CYCLEDAYS 周期,bs.CHANGERATE 超期箱使费佣金比例";
var sql1 = sql1 + ",bs.FULL_CTN_FREE_STORAGE_DAY 重箱免堆天数, FULL_CTN_OVER_STORAGE_RATE 重箱超期堆存费";
var sql1 = sql1 + ",bs.CLEAR_CTN_FREE_STORAGE_DAY 清洗免堆天数, CLEAR_CTN_OVER_STORAGE_RATE 清洗超期堆存费";
var sql1 = sql1 + ",bs.NO_CLEAR_CTN_FREE_STORAGE_DAY 不清洗免堆天数, NO_CLEAR_CTN_OVER_STORAGE_RATE 不清洗超期堆存费";
var sql1 = sql1 + ",bs.COSTAUDITSTATUS 成本审核状态,bs.COSTAUDITTIME 成本审核时间";
var sql1 = sql1 + ",bs.CTN_INCOME 内部租金收入 ,bs.LOAD_FREE_USECTNE_DAY 起运港免箱使天数,bs.LOAD_OVER_USECTNE_RATE 起运港超期箱使费";
var sql1 = sql1 + ",(select ShowName from [user] where GID=bs.INPUTBY) as 录入人";
var sql1 = sql1 + ",(select ShowName from [user] where GID=bs.AUDITBY) as 适货审核人";
var sql1 = sql1 + ",(select ShowName from [user] where GID=bs.COSTAUDITBY) as 成本审核人";
var sql1 = sql1 + " from op_ctnapply bs ";
var sql1 = sql1 + " Left join code_msds msds on bs.GOODSNAME=msds.CHEMICALCGOODSNAME ";
var sql1 = sql1 + " WHERE bs.GID IN (" + feeGidSql + ") order by " + sortstr;
var sql2 = "select * from op_ctnapply where GID='" + bsno + "'";
var sql3 = "";
var sql4 = "";
var sql5 = "";
var sql6 = "";
PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6);
}
,
onOpenClick: function (button, event) {
var selections = this.gridList.getSelectionModel().getSelection();
if (selections.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择单据!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
record = selections[0];
this.OpenEditWin(record);
}
, OpenEditWin: function (record) {
this.SelectedRecord = record;
this.OprationStatus = 'edit';
var openSet = "height=650, width=1024, toolbar=no, menubar=no,scrollbars=1, resizable=1,location=no, status=no,Top= " + (screen.height - 500) / 2 + ",Left= " + (screen.width - 600) / 2;
var openType = record.data.GID;
var openUrl = "/MvcContainer/MsOpCtnApply/GoodsAuditEdit";
if (PRICETYPE == "2")
openUrl = "/MvcContainer/MsOpCtnApply/GoodsAuditEdit";
window.open(openUrl, openType, openSet);
}
});