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.

4614 lines
164 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.

///<reference path="../../../../Views/../TruckMng/Scripts/vswd-ext_2.0.2.js" />
Ext.namespace('DsTruck');
var APPUsing=0;
DsTruck.XXHEdit = function (config) {
Ext.applyIf(this, config);
this.initUIComponents();
window.DsTruck.XXHEdit.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 agentid = '';
var agentname = '';
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 CargoDirty=DsTruck.GetDirty(panelEdit.storeCargo,panelEdit.CargoDel);
var ReceiptDirty=DsTruck.GetDirty(panelEdit.storeReceipt,panelEdit.bodyDel);
var KCDirty=DsTruck.GetDirty(panelEdit.storeKC,panelEdit.KCDel);
var ChfeeDirty=DsTruck.GetDirty(panelEdit.storeBodyChFee,panelEdit.feeBodyDel);
var Chfee_YFDirty=DsTruck.GetDirty(panelEdit.storeBodyChFee_YF,panelEdit.feeBodyDel);
if (panelEdit.formEdit.getForm().isDirty()== true || CargoDirty==true|| ReceiptDirty==true|| KCDirty==true|| ChfeeDirty==true)
{
return true;
}
else return false;
}
Ext.extend(DsTruck.XXHEdit, Ext.Panel, {
parentWin: null,
OpStatus: 'edit',
StoreList: null,
editRecord: null,
// parentfunction: null,
_First: true,
initUIComponents: function () {
this.bodyDel = [];
this.CargoDel = [];
this.AppstateDel = [];
this.KCDel = [];
this.feeSerialNo = 0;
this.feeBodyDel = [];
this.StoreDrOpRange = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsFeeOP',
proxy: { url: '/MvcShipping/MsChFee/GetFeeOpRang' }
});
this.StoreCrOpRange = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsFeeOP',
proxy: { url: '/MvcShipping/MsChFee/GetFeeOpRang' }
});
this.StoreDrOpRange.load({ params: { optype: "modImport_Fee"} });
this.StoreCrOpRange.load({ params: { optype: "modImport_Fee"} });
//#region 枚举参照相关(编辑form)
this.storeMainstate = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeMainstate.load({ params: { enumTypeId: 3} });
this.comboxMainstate = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '合同状态',
forceSelection: true,
store: this.storeMainstate,
name: 'Mainstate', readOnly: true
});
this.storePrinted = Ext.create('DsExt.ux.RefEnumStore', {});
this.storePrinted.load({ params: { enumTypeId: 0} });
this.comboxPrinted = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '发票打印完成',
forceSelection: true,
store: this.storePrinted,
name: 'Printed', readOnly: true
});
this.storeWriteoffs = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeWriteoffs.load({ params: { enumTypeId: 0} });
this.comboxWriteoffs = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '核销完成',
forceSelection: true,
store: this.storeWriteoffs,
name: 'Writeoffs', readOnly: true
});
this.storeCIQ_canbesearch = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeCIQ_canbesearch.load({ params: { enumTypeId: 0} });
this.comboxCIQ_canbesearch = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '卫生证是否可查',
forceSelection: true,
store: this.storeCIQ_canbesearch,
name: 'CIQ_canbesearch', readOnly: true
});
this.storeAutoAPP = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeAutoAPP.load({ params: { enumTypeId: 0} });
this.comboxAutoAPP = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '自动证',
forceSelection: true,
store: this.storeAutoAPP,
name: 'AutoAPP', readOnly: true
});
this.storeBillType = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeBillType.load({ params: { enumTypeId: 6} });
this.comboxBillType = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '提单提交方式',
forceSelection: true,
store: this.storeBillType,
name: 'BillType', flex: 1
});
this.storeShipCompany = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeShipCompany.load({ params: { enumTypeId: 5} });
this.comboxShipCompany = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '船公司',
forceSelection: true,
store: this.storeShipCompany,
name: 'ShipCompany_id', readOnly: true
});
this.storeSecurityDeposit = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeSecurityDeposit.load({ params: { enumTypeId: 0} });
this.comboxSecurityDeposit = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '是否已交保证金',
forceSelection: true,
store: this.storeSecurityDeposit,
name: 'SecurityDeposit', readOnly: true
});
this.storePaymentMethods = Ext.create('DsExt.ux.RefEnumStore', {});
this.storePaymentMethods.load({ params: { enumTypeId: 4} });
this.comboxPaymentMethods = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '付款方式',
forceSelection: true,
store: this.storePaymentMethods,
name: 'PaymentMethods', flex: 1, readOnly: true
});
this.storeTransactionMethod = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeTransactionMethod.load({ params: { enumTypeId: 1} });
this.comboxTransactionMethod = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '成交方式', readOnly: true,
forceSelection: true,
store: this.storeTransactionMethod,
name: 'TransactionMethod',
valueField: 'EnumValueId',
displayField: 'EnumValueName',
triggerAction: 'all',
selectOnFocus: true,
flex: 1, readOnly: true
});
this.storeport = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeport.load({ params: { enumTypeId: 10} });
this.comboxport = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '目的港',
forceSelection: true,
store: this.storeport,
name: 'port', readOnly: true
});
//表参照相关
this.storeCountry = Ext.create('DsExt.ux.RefTableStore', {
model: 'ConutryRef',
proxy: { url: '/CommMng/BasicDataRef/GetCountryRefList' }
});
this.storeTradeCountry = Ext.create('DsExt.ux.RefTableStore', {
model: 'ConutryRef',
proxy: { url: '/CommMng/BasicDataRef/GetCountryRefList' }
});
_this = this;
this.storeCountry.load({ params: { condition: "" }
,
callback: function (r, options, success) {
if (success) {
_this.storeTradeCountry.removeAll();
_this.storeTradeCountry.add(r);
}
},
scope: this
});
this.comboxCountry = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '进口国',
//forceSelection: true,
flex: 1,
store: this.storeCountry,
name: 'countryid',
valueField: 'countryid',
displayField: 'country_idandname'
});
this.comboxTradeCountry = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '贸易国', //readOnly:true,
//forceSelection: true,
flex: 1,
store: this.storeTradeCountry,
name: 'TRADECOUNTRY',
valueField: 'countryid',
displayField: 'country_idandname'
});
this.storeSeller = Ext.create('DsExt.ux.RefTableStore', {
model: 'Tradermb',
proxy: { url: '/CommMng/BasicDataRef/GetTrader' }
});
this.storeSeller.load({ params: { condition: " isagent=1"} });
this.comboxSeller = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '贸易商',
forceSelection: true,
store: this.storeSeller,
name: 'seller',
valueField: 'name',
displayField: 'codename', readOnly: true
});
this.storeBuyer = Ext.create('DsExt.ux.RefTableStore', {
model: 'Tradermb',
proxy: { url: '/CommMng/BasicDataRef/GetTrader' }
});
this.storeBuyer.load({ params: { condition: " isagentcn=1"} });
this.comboxBuyer = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '客户(购货方)',
forceSelection: true,
store: this.storeBuyer,
name: 'buyer',
valueField: 'name',
displayField: 'codename', readOnly: true
});
this.storeTRADINGAGENCY = Ext.create('DsExt.ux.RefTableStore', {
model: 'Tradermb',
proxy: { url: '/CommMng/BasicDataRef/GetTrader' }
});
this.storeTRADINGAGENCY.load({ params: { condition: " ISTRADINGAGENCY=1"} });
this.comboxTRADINGAGENCY = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '订货方(中间商)',
forceSelection: true,
store: this.storeTRADINGAGENCY,
name: 'TRADINGAGENCY',
valueField: 'name',
displayField: 'codename',
flex: 1, readOnly: true
});
//this.comboxSeller,this.comboxBuyer
this.comboxCountry.addListener('select',
function (combo, record, index) {
var s = " countryid='" + combo.value + "'";
this.storeCargoinfo.load({ params: { condition: s} });
},
this);
this.storeUser = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsTruckMng.ux.UserRefModel',
proxy: { url: '/CommMng/BasicDataRef/GetUserRefList' }
});
this.storeUser.load({ params: { condition: ""} });
this.comboxCreator = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '接单人',
forceSelection: true,
store: this.storeUser,
name: 'creator',
valueField: 'UserCode',
displayField: 'CodeAndName', readOnly: true
});
this.comboxAuditor = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '审单人',
forceSelection: true,
store: this.storeUser,
name: 'Auditor',
valueField: 'UserCode',
displayField: 'CodeAndName', readOnly: true
});
this.storeCompany = Ext.create('DsExt.ux.RefTableStore', {
model: 'companymb', proxy: { url: '/CommMng/BasicDataRef/GetcompanyList' }
});
this.storeCompany.load({ params: { condition: ""} });
this.comboxCompany = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '用证公司',
forceSelection: true,
store: this.storeCompany,
name: 'company',
valueField: 'gid',
displayField: 'name', readOnly: true
});
this.storeFStatus = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeFStatus.load({ params: { enumTypeId: 16} });
this.comboxFStatus = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '融资状态',
forceSelection: true,
store: this.storeFStatus,
name: 'FinanceStatus', readOnly: true
});
this.storeSampling_need = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeSampling_need.load({ params: { enumTypeId: 0} });
this.comboxSampling_need = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '海关是否验货',
forceSelection: true,
store: this.storeSampling_need,
name: 'Sampling_need'
});
this.storeInspection_Storage = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeInspection_Storage.load({ params: { enumTypeId: 0} });
this.comboxInspection_Storage = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '是否商检慢检',
forceSelection: true,
store: this.storeInspection_Storage,
name: 'Inspection_Storage'
});
this.storeReceiptStatus = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeReceiptStatus.load({ params: { enumTypeId: 0} });
this.comboxReceiptStatus = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '单据是否完备',
forceSelection: true,
store: this.storeReceiptStatus,
name: 'ReceiptStatus',
flex: 1, readOnly: true
});
this.storeRCVMode = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeRCVMode.load({ params: { enumTypeId: 23} });
this.comboxRCVMode = Ext.create('DsExt.ux.RefEnumCombox', {
labelwidth: 50,
fieldLabel: '收单据模式',
forceSelection: true,
store: this.storeRCVMode, flex: 2,
name: 'RCVMode', readOnly: true
});
this.storeContainerType = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsTruckMng.ux.CtnRefModel',
proxy: { url: '/CommMng/BasicDataRef/GetCtnDispList' }
});
this.storeContainerType.load({ params: { condition: ""} });
this.comboxContainerType = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '箱型',
store: this.storeContainerType,
name: 'CTN',
valueField: 'CtnName',
flex: 1,
displayField: 'CtnName'
});
this.storeagent = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.CustomRefModel',
proxy: { url: '/CommMng/BasicDataRef/GetCustomRefList' }
});
this.storeagent.load({ params: { condition: ""} }); //国内代理 代理商
this.storeCompany = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsCompanysEntity',
proxy: { url: '/MvcShipping/MsCompanys/GetNoPicDataList' }
});
this.storeCompany.load({ params: { condition: ""} });
this.storeCompany2 = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsCompanysEntity',
proxy: { url: '/MvcShipping/MsCompanys/GetNoPicDataList' }
});
this.storeCompany2.load({ params: { condition: " isDelegate = 1 "} });
this.comboxAgent = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '代理公司',
flex: 1,
store: this.storeCompany2,
forceSelection: true,
name: 'Agent', id: "Agent",
valueField: 'GID',
displayField: 'NAME',
readOnly: true
});
this.comboxAgent2 = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '代理公司2', flex: 1,
store: this.storeagent,
forceSelection: true,
name: 'Agent2', id: "Agent2",
valueField: 'CustName',
displayField: 'CodeAndName'
});
this.comboxAgent3 = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '代理公司3', flex: 1,
store: this.storeagent,
forceSelection: true,
name: 'Agent3', id: "Agent3",
valueField: 'CustName',
displayField: 'CodeAndName'
});
//#endregion
//编辑form:formEdit
this.formEdit = Ext.widget('form', {
// layout: "border",
region: 'center', id: "formEdit",
frame: true,
bodyPadding: 2,
trackResetOnLoad: true,
fieldDefaults: {
margins: '1 1 1 1',
labelAlign: 'right',
flex: 5,
//labelWidth: 90,//label标签宽度
msgTarget: 'qtip',
sourcelabelWidth: '100'
//,split:true
},
items: [{ //fieldset 1
xtype: 'fieldset',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [{ //container_1
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '合同序列号',
hidden: true,
disabled: true,
name: 'ContractNo'
}, {
fieldLabel: '代理公司ID',
hidden: true,
disabled: true,
name: 'AgentId'
}, {
fieldLabel: '合同号',
// allowBlank: false,
name: 'HTH', readOnly: true
}, {
fieldLabel: '合同日期',
format: 'Y-m-d',
xtype: 'datefield',
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
//flex: 1,
name: 'HTDATE'
}, this.comboxCreator, {
fieldLabel: '接单时间',
format: 'Y-m-d',
xtype: 'datefield',
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
name: 'creattime', readOnly: true
}, this.comboxAuditor, {
fieldLabel: '审单时间',
format: 'Y-m-d',
xtype: 'datefield',
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
name: 'Audittime', readOnly: true
},
/**/
{
fieldLabel: 'id',
name: 'id',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'cgid',
name: 'cgid',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: '时间戳',
name: 'TimeMark',
flex: 0,
hidden: true,
margins: '0'
}]
},
//container_1 end
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [
this.comboxSeller,
this.comboxBuyer,
this.comboxCompany, {
fieldLabel: '双抬头',
name: 'STT'
}, {
fieldLabel: '分公司 接单日期',
format: 'Y-m-d H:i:s',
xtype: 'datefield',
name: 'CreateTime_2'
}]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [this.comboxCountry, //进口国
{
fieldLabel: '提单号', flex: 1,
name: 'BillNo', readOnly: true
}, {
fieldLabel: '箱号', flex: 1,
name: 'ContainerNo', readOnly: true
},
{
fieldLabel: '铅封号', flex: 1,
name: 'SealNo', readOnly: true
}, {
fieldLabel: '分公司转单日期', flex: 1,
format: 'Y-m-d H:i:s',
xtype: 'datefield',
name: 'ResendTime'
}//, this.comboxContainerType
]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [
{
fieldLabel: '代理公司',
name: 'Agent',
flex: 1,
readOnly: true
}
, {
fieldLabel: '代理公司2',
name: 'Agent2',
flex: 1,
readOnly: true
}
, {
fieldLabel: '代理公司3',
name: 'Agent3',
flex: 1,
readOnly: true
}
, this.comboxTradeCountry
,
{
fieldLabel: '国外寄单快递号',
name: 'BILLTRANCNO', flex: 1
}
]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [this.comboxport,
this.comboxShipCompany, {
fieldLabel: '免箱期',
name: 'Freetime', readOnly: true
}, {
fieldLabel: '船名',
name: 'Vessel'
},
{
fieldLabel: '航次',
name: 'Voyage'
}]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '预计开船日',
format: 'Y-m-d',
xtype: 'datefield',
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
flex: 1,
name: 'Ex_sailingdate', readOnly: true
}, {
fieldLabel: '开船日期',
format: 'Y-m-d',
xtype: 'datefield',
name: 'Sailingdate', flex: 1, readOnly: true
},
{
fieldLabel: '到港日期',
format: 'Y-m-d',
xtype: 'datefield',
name: 'ArrivalDate', flex: 1
}, this.comboxPaymentMethods
, this.comboxTransactionMethod
]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [
{
fieldLabel: '付货款时间(预付)',
format: 'Y-m-d',
xtype: 'datefield',
name: 'Prepaydate', readOnly: true
}, {
fieldLabel: '电放时间',
format: 'Y-m-d',
xtype: 'datefield',
name: 'E_Billtime'
}, {
fieldLabel: '正本时间',
format: 'Y-m-d',
xtype: 'datefield',
name: 'BillTime'
}, {
fieldLabel: '换单时间',
format: 'Y-m-d',
xtype: 'datefield',
name: 'HDtime'
}, this.comboxFStatus]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '付货款时间(尾款)',
format: 'Y-m-d',
xtype: 'datefield',
name: 'Paydate', flex: 1
},
this.comboxBillType,
this.comboxReceiptStatus,
this.comboxRCVMode]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '寄单情况',
name: 'Receiptremark',
flex: 4
}, this.comboxTRADINGAGENCY]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '____备注1',
name: 'remark', flex: 4
}, {
fieldLabel: '自贸区',
readOnly: true,
name: 'ZMQ', flex: 1
}]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [this.comboxMainstate,
this.comboxCIQ_canbesearch,
{
fieldLabel: '卫生许可证(ciq)',
name: 'CIQ_licence'
},
this.comboxPrinted
]
}, {
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '放单时间',
format: 'Y-m-d H:i:s',
xtype: 'datefield',
name: 'OPBillTime'
}, {
fieldLabel: '靠泊码头',
name: 'Dock'
}, {
fieldLabel: '报关行',
name: 'Customs_broker'
}, {
fieldLabel: '报检行',
name: 'inspection_broker'
}]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '报检日期',
format: 'Y-m-d H:i:s',
xtype: 'datefield',
name: 'inspection_Signup_date'
}, {
fieldLabel: '报检号',
name: 'inspection_no'
}, this.comboxWriteoffs
, this.comboxAutoAPP
]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '__备注2(报检备注)',
name: 'remark_2', readOnly: true
}]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '出税日期',
format: 'Y-m-d H:i:s',
xtype: 'datefield',
name: 'tax_date'
},
{
fieldLabel: '付税日期',
format: 'Y-m-d H:i:s',
xtype: 'datefield',
name: 'tax_paydate'
}, this.comboxSampling_need,
this.comboxSecurityDeposit,
{
fieldLabel: '报关单号',
name: 'DeclareNumber'
}
]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '海关确定抽检',
format: 'Y-m-d',
xtype: 'datefield',
name: 'SamplingDate_Plan'
},
{
fieldLabel: '海关实际验货',
format: 'Y-m-d',
xtype: 'datefield',
name: 'SamplingDate_Act'
}, {
fieldLabel: '海关放行日期',
format: 'Y-m-d',
xtype: 'datefield',
name: 'CustomsReleaseDate'
}, {
fieldLabel: '回空日期',
format: 'Y-m-d',
xtype: 'datefield',
name: 'RecDate',
listeners: {
//添加日期选择事件
"select": function () {
var form = Ext.getCmp("formEdit");
var startdate = form.getForm().findField('ArrivalDate').getRawValue();
var enddate = form.getForm().findField('RecDate').getRawValue();
var _e = Ext.util.Format.date(startdate); //格式化日期控件值
var _s = Ext.util.Format.date(enddate); //格式化日期控件值
var end = new Date(_s);
var start = new Date(_e);
var elapsed = Math.round((end.getTime() - start.getTime()) / (86400000)) + 1; // 计算间隔日数
//e.record.set('text',_s);
form.getForm().findField('PortDays').setValue(elapsed);
}
}
},
{
fieldLabel: '港口天数',
name: 'PortDays',
readOnly: true
}]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [
/*{
hidden:true,
fieldLabel: '____备注3',
name: 'remark_3'
}*/]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '商检验货日期',
format: 'Y-m-d',
xtype: 'datefield',
name: 'inspection_date'
}, this.comboxInspection_Storage,
{
fieldLabel: '送货日',
format: 'Y-m-d',
xtype: 'datefield',
name: 'DeliveryDate'
}, {
fieldLabel: '送货地址',
name: 'DeliveryAddress'
}
]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '联系人',
name: 'Contacter',
flex: 1
}, {
fieldLabel: '电话',
name: 'Tel', flex: 1
}, {
fieldLabel: '溢短装',
name: 'Overfilled', flex: 2
}]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [/*{
hidden: true,
fieldLabel: '备注4',
name: 'remark_4'
}*/]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
xtype: 'checkbox', flex: 1,
fieldLabel: '库存清空',
name: 'KCClear'
}, /*{
xtype : 'checkbox',flex:1,
fieldLabel: '财务锁定',
name: 'ContractStatus'
},*/
{
fieldLabel: 'MZBZ',
name: 'MZBZ', hidden: true
}
]
}]
}]
}); //end this.formEdit
//////////////////////////////////
//#region 明细 <<<< 商品 >>>>
//#region 相关
this.storeCargoinfo = Ext.create('DsExt.ux.RefTableStore', {
model: 'CargoTax',
proxy: { url: '/CommMng/BasicDataRef/GetCargoTax' }
});
// this.storeCargoinfo.load({ params: { condition: ""} });
this.comboxCargoinfo = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storeCargoinfo,
name: 'Cargoinfo_id',
valueField: 'id',
displayField: 'codeandname'
//HS代码
});
this.storeCargociq = Ext.create('DsExt.ux.RefTableStore', {
model: 'CargociqRef',
proxy: { url: '/CommMng/BasicDataRef/GetCargociqRefList' }
});
this.storeCargociq.load({ params: { condition: ""} });
this.comboxCargociq = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storeCargociq,
name: 'Cargociq_id',
valueField: 'id',
displayField: 'codeandname'
//ciq代码
});
this.storecurr = Ext.create('DsExt.ux.RefTableStore', {
model: 'currRef',
proxy: { url: '/CommMng/BasicDataRef/GetcurrRefList' }
});
this.storecurr.load({ params: { condition: ""} });
this.comboxcurr = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storecurr,
name: 'currid',
valueField: 'gid',
displayField: 'codename'
//币别
});
this.comboxcurr_2 = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storecurr,
name: 'Currency',
valueField: 'codename',
displayField: 'codename'
//币别
});
//枚举参照
this.storeUnit = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeUnit.load({ params: { enumTypeId: 11} });
this.comboxUnit = Ext.create('DsExt.ux.RefEnumCombox', {
store: this.storeUnit,
name: 'Unit'
});
this.storepaypart = Ext.create('DsExt.ux.RefEnumStore', {});
this.storepaypart.load({ params: { enumTypeId: 12} });
this.comboxpaypart = Ext.create('DsExt.ux.RefEnumCombox', {
store: this.storepaypart,
name: 'paypart'
});
this.storeSPECIFICATIONS = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeSPECIFICATIONS.load({ params: { enumTypeId: 34} });
this.comboxSPECIFICATIONS = Ext.create('DsExt.ux.RefEnumCombox', {
store: this.storeSPECIFICATIONS,
forceSelection: true,
name: 'SPECIFICATIONS',
valueField: 'EnumValueName',
displayField: 'EnumValueName'
});
//#endregion
//数据集
this.storeCargo = Ext.create('Ext.data.Store', {
model: 'Cargomb',
remoteSort: false,
proxy: {
type: 'ajax',
url: '/Import/XXH/GetCargoList',
reader: {
id: 'id,ContractNo',
root: 'data',
totalProperty: 'totalCount'
}
}
});
//表格
this.cellEditingCargo = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
this.cargoCheckBoxModel = Ext.create('Ext.selection.CheckboxModel');
this.formCargo = new Ext.grid.GridPanel({
store: this.storeCargo,
enableHdMenu: false,
region: 'north',
collapsed: false,
collapsible: true,
title: '商品信息',
autoscroll: true,
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
plugins: [this.cellEditingCargo],
selModel: this.cargoCheckBoxModel,
selType: 'cellmodel',
tbar: [],
columns: [{
dataIndex: 'id',
header: '自增序列号',
width: 80,
hidden: true,
editor: {
xtype: 'textfield'
}
},
{
dataIndex: 'ContractNo',
header: '合同号',
width: 80,
hidden: true,
editor: {
xtype: 'textfield'
}
},
{
dataIndex: 'cargoinfo_id',
header: 'HS代码',
renderer: function (value, p, record) {
if (value == null || value == '') return '';
else return record.data.cicodeandname;
},
//editor: this.comboxCargoinfo,
width: 140
},
{
dataIndex: 'cargociq_id',
header: 'CIQ代码',
renderer: function (value, p, record) {
if (value == null || value == '') return '';
else return record.data.ciqcodeandname;
},
//editor: this.comboxCargociq,
width: 140
},
{
dataIndex: 'name',
header: '货名',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
}, {
dataIndex: 'Ename',
header: '英文品名',
width: 100
}, {
dataIndex: 'SPECIFICATIONS',
header: '商品规格',
width: 60,
editor: this.comboxSPECIFICATIONS
},
{
dataIndex: 'Unit',
header: '重量单位',
renderer: function (value, p, record) {
if (value == null || value == '') return '';
else return record.data.UnitRef;
},
editor: this.comboxUnit,
width: 60
},
{
dataIndex: 'currid',
header: '币别',
renderer: function (value, p, record) {
if (value == null || value == '') return '';
else return record.data.codename;
},
editor: this.comboxcurr,
width: 50
},
{
dataIndex: 'Exchangerate',
header: '汇率_商务',
width: 75,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
}, {
dataIndex: 'Exchangerate_Customs',
header: '汇率_海关',
width: 75,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'U_PRICE',
header: '单价(重量单位)',
width: 80,
//hidden: true,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'U_weight',
header: '净重(重量单位)',
width: 80,
editor: {
xtype: 'numberfield',
allowDecimals: true,
decimalPrecision: 6,
selectOnFocus: true
}
},
{
dataIndex: 'price',
header: '单价(币别/kg)',
width: 80,
allowBlank: false,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'weight',
header: '净重(kg)',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'm_weight',
header: '毛重',
width: 50,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'BoxCount',
header: '箱/件数',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'BoxWeight',
header: '规格',
width: 50,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'price_agio',
header: '单价(差价价格)',
width: 50,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'price_limit',
header: '海关估价',
width: 60,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'pay_Amount',
header: '合同金额',
width: 120,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'tax_Amount',
header: '完税价格(外币)',
width: 87,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'tax_Amount_RMB',
header: '完税价格(RMB)',
width: 87
},
{
dataIndex: 'baolv',
header: '保率',
width: 55
},
{
dataIndex: 'Amount',
header: '合同金额(对客户)',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'PreProportion',
header: '预付比例%',
width: 80,
//hidden: true,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'prepayments',
header: '预付款',
width: 60,
//hidden: true,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'balance',
header: '尾款',
width: 60,
//hidden: true,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'Paypart',
header: '付款方式',
renderer: function (value, p, record) {
if (value == null || value == '') return '';
else return record.data.paypartRef;
},
editor: this.comboxpaypart,
width: 50
},
{
dataIndex: 'tariff',
header: '关税类型',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'tax',
header: '关税税率',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'tax_zz',
header: '增值税税率',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
}, {
dataIndex: 'tax_1',
header: '关税(应收)',
width: 80
},
{
dataIndex: 'tax_zz_1',
header: '增值税(应收)',
width: 80
}, {
dataIndex: 'tax_2',
header: '关税(应付)',
width: 80
},
{
dataIndex: 'tax_zz_2',
header: '增值税(应付)',
width: 80
},
{
dataIndex: 'Exporter',
header: '出口商',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'FactoryNo',
header: '厂号',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'Productiondate',
header: '生产日期',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'Declarenumber',
header: '报关单号',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'AMOUNT_WRITEOFFS',
header: '申证金额',
width: 80
}]
});
this.formCargo.addListener('cellclick', function (view, cell, cellIdx, record, row, rowIdx, eOpts) {
if (cellIdx === 4) {
//alert(record.get('cargoinfo_id'));
//if (!record.get('cargoinfo_id')>=0) return;
var s = " cargoinfoid=" + record.get('cargoinfo_id');
//alert(s);
this.storeCargociq.load({ params: { condition: s} });
}
}, this);
/* listeners: {
beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts){
if(cellIdx === 1){
alert("dfd");
}
}
} */
//////////////////////////////////////////////明细<<<< 商品 >>>>结束
//#endregion
//////////////////////////////////
//明细 <<<< 库存管理 >>>>
//#region
//枚举参照 库存流程
this.storeczstate = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeczstate.load({ params: { enumTypeId: 8} });
this.comboxczstate = Ext.create('DsExt.ux.RefEnumCombox', {
forceSelection: true,
store: this.storeczstate,
name: 'czstate'
});
/*
this.storekfstate = Ext.create('DsExt.ux.RefEnumStore', {});
this.storekfstate.load({ params: { enumTypeId: 9} });
this.comboxkfstate = Ext.create('DsExt.ux.RefEnumCombox', {
store: this.storekfstate,
name: 'kfstate'
});*/
this.storekfstate = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsTruckMng.ux.CustomRefModel',
proxy: { url: '/CommMng/BasicDataRef/GetCustomRefList' }
});
this.storekfstate.load({ params: { condition: " ISWAREHOUSE=1"} });
this.comboxkfstate = Ext.create('DsExt.ux.RefTableCombox', {
forceSelection: true,
store: this.storekfstate,
name: 'kfstate',
valueField: 'CustName',
displayField: 'KFCodename'
});
this.comboxCargo = Ext.create('DsExt.ux.RefTableCombox', {
forceSelection: true,
store: this.storeCargo,
name: 'cargo_id',
valueField: 'name',
displayField: 'name'
});
this.storeKCFeeName = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsTruckMng.ux.FeeTypeRefModel',
proxy: { url: '/CommMng/BasicDataRef/GetFeeTypeRefList' }
});
this.storeKCFeeName.load({ params: { condition: ""} });
this.comboxKCFeeName = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storeKCFeeName,
forceSelection: true,
name: 'FeeName',
valueField: 'Name',
displayField: 'CodeAndName'
});
this.storeSended = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeSended.load({ params: { enumTypeId: 0} });
this.comboxSended = Ext.create('DsExt.ux.RefEnumCombox', {
//fieldLabel: '是否已生成费用',
store: this.storeSended,
name: 'Sended'
});
//结果集
this.storeKC = Ext.create('Ext.data.Store', {
model: 'KCmb',
remoteSort: false,
proxy: {
type: 'ajax',
url: '/Import/XXH/GetKC',
reader: {
id: 'id',
root: 'data',
totalProperty: 'totalCount'
}
}
});
//表格
this.cellEditingKC = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
this.KCModel = Ext.create('Ext.selection.CheckboxModel');
this.formKC = new Ext.grid.GridPanel({
store: this.storeKC,
enableHdMenu: false,
region: 'north',
title: '库存 (注意,商品信息保存后才能选择使用许可证和商品)',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
plugins: [this.cellEditingKC],
selType: 'cellmodel',
selModel: this.KCModel,
tbar: [{
text: '增加明细',
tooltip: '增加明细',
iconCls: "btnadddetail",
handler: function (button, event) {
this.onAddKCClick(button, event);
},
scope: this
}, {
text: '删除明细',
tooltip: '删除明细',
iconCls: "btndeletedetail",
handler: function (button, event) {
this.onDelKCClick(button, event);
},
scope: this
}, '-', {
text: '生成选定应付费用',
tooltip: '生成选定应付费用', id: "ApplicationAdd",
iconCls: "ApplicationAdd",
handler: function (button, event) {
this.onKCFeeClick(button, event);
},
scope: this
}],
columns: [
{ hidden: true, dataIndex: 'id', header: 'id', width: 80 },
{ hidden: true, dataIndex: 'ContractNo', header: 'ContractNo', width: 80 },
{
dataIndex: 'cargo_id',
header: '货名',
allowBlank: false,
renderer: function (value, p, record) {
if (value == null || value == '')
return '';
else
return record.data.cargoname;
},
editor: this.comboxCargo,
width: 80
},
{
dataIndex: 'czstate',
header: '操作状态',
renderer: function (value, p, record) {
if (value == null || value == '')
return '';
else
return record.data.czref;
},
editor: this.comboxczstate,
width: 80
},
{
dataIndex: 'innum',
header: '入库数量(箱件数)',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'outnum',
header: '出库数量(箱件数)',
width: 80,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'kfstate',
header: '库房',
renderer: function (value, p, record) {
if (value == null || value == '')
return '';
else
return record.data.kfstate;
},
editor: this.comboxkfstate,
width: 120
},
{
dataIndex: 'czdate',
header: '操作时间',
width: 90,
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
editor: {
xtype: 'datefield',
selectOnFocus: true
}
}, {
dataIndex: 'days',
header: '天数',
width: 45,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
}, {
sortable: true,
dataIndex: 'FeeName',
header: '费用名称',
editor: this.comboxKCFeeName,
width: 80
}, {
dataIndex: 'UnitPrice',
header: '单价',
width: 45,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
}, {
dataIndex: 'Quantity',
header: '数量(吨)',
width: 65,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
}, {
dataIndex: 'Amount',
header: '金额',
width: 45,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
}, {
dataIndex: 'Sended',
header: '已生成费用',
renderer: function (value, p, record) {
if (value == null || value == '')
return '';
else
return record.data.Sended;
},
editor: this.comboxSended,
width: 80
},
{
dataIndex: 'text',
header: '备注',
width: 200,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
}
]
});
//end--------------------------------------------------//明细<<<< 库存管理 >>>>结束
//#endregion
////////////////////////////////////////////////
//明细<<<< 单据表 >>>>
//单据表表格相关
//单据表用 枚举参照
this.storePaymentMethods = Ext.create('DsExt.ux.RefEnumStore', {});
this.storePaymentMethods.load({ params: { enumTypeId: 4} });
this.comboxPaymentMethods = Ext.create('DsExt.ux.RefEnumCombox', {
fieldLabel: '付款方式',
forceSelection: true,
store: this.storePaymentMethods,
name: 'PaymentMethods'
});
this.storeReceiptid = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeReceiptid.load({ params: { enumTypeId: 2} });
this.comboxReceiptid = Ext.create('DsExt.ux.RefEnumCombox', {
store: this.storeReceiptid,
name: 'Receiptid'
});
this.storeReceiptstate = Ext.create('DsExt.ux.RefEnumStore', {});
this.storeReceiptstate.load({ params: { enumTypeId: 7} });
this.comboxReceiptstate = Ext.create('DsExt.ux.RefEnumCombox', {
store: this.storeReceiptstate,
name: 'state'
});
//单据表-数据集
this.storeReceipt = Ext.create('Ext.data.Store', {
model: 'Receiptmb',
remoteSort: false,
proxy: {
type: 'ajax',
url: '/Import/XXH/GetReceiptList',
reader: {
id: 'id,ContractNo',
root: 'data',
totalProperty: 'totalCount'
}
}
});
//单据表表格
this.cellEditingReceipt = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
// this.ReceiptGridCheckBoxModel = Ext.create('Ext.selection.CheckboxModel');
this.gridListReceipt = new Ext.grid.GridPanel({
store: this.storeReceipt,
enableHdMenu: false,
region: 'center',
title: "往来单据",
collapsed: true,
collapsible: true,
autoscroll: true,
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
plugins: [this.cellEditingReceipt],
selType: 'cellmodel',
tbar: [{
text: '增加明细',
tooltip: '增加明细',
iconCls: "btnadddetail",
handler: function (button, event) {
this.onAddReceiptClick(button, event);
},
scope: this
}, '-', {
text: '删除明细',
tooltip: '删除明细',
iconCls: "btndeletedetail",
handler: function (button, event) {
this.onDelReceiptClick(button, event);
},
scope: this
}/*, {
text: 'AA',
tooltip: 'AA',
handler: function (button, event) {
var selectedRecords = this.gridListReceipt.selModel.getSelection();
// alert(selectedRecords.length);
},
scope: this
}*/],
columns: [
{
sortable: true,
hidden: true,
dataIndex: 'id',
header: 'id',
width: 80
},
{
sortable: true,
hidden: true,
dataIndex: 'ContractNo',
header: 'ContractNo',
width: 80
},
{
sortable: true,
dataIndex: 'Receiptid',
header: '单据类型/名称',
renderer: function (value, p, record) {
if (value == null || value == '')
return '';
else
return record.data.ReceiptName;
},
editor: this.comboxReceiptid,
width: 80
},
{
sortable: true,
dataIndex: 'ReceiptNo',
header: '单据编号',
width: 100,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
sortable: true,
dataIndex: 'state',
header: '收发状态',
renderer: function (value, p, record) {
if (value == null || value == '')
return '';
else
return record.data.statename;
},
editor: this.comboxReceiptstate,
width: 80
},
{
sortable: true,
dataIndex: 'Send_date',
header: '发出时间',
width: 80,
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
editor: {
format: 'Y-m-d',
xtype: 'datefield',
selectOnFocus: true
}
},
{
sortable: true,
dataIndex: 'receive_date',
header: '收到时间',
editor: {
xtype: 'datefield',
format: 'Y-m-d',
selectOnFocus: true
},
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
width: 80
},
{
sortable: true,
dataIndex: 'repeat_date',
header: '回复时间',
width: 80,
renderer: Ext.util.Format.dateRenderer('Y-n-j'),
editor: {
format: 'Y-n-j',
xtype: 'datefield'
}
},
{
sortable: true,
dataIndex: 'trancer',
header: '快递公司',
width: 80,
editor: {
xtype: 'textfield'
}
},
{
sortable: true,
dataIndex: 'trancNo',
header: '快递号',
width: 80,
editor: {
xtype: 'textfield'
}
},
{
sortable: true,
dataIndex: 'remark',
header: '备注',
width: 120,
editor: {
xtype: 'textfield'
}
}
]
});
//#endregion
///////---------------------------------/明细 <<<< 单据表 >>>> over
///////明细表<<<应收应付/费用表>>>
//明细表表格相关
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: ""} });
this.comboxFeeNameRef = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storeFeeNameRef,
forceSelection: true,
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,
forceSelection: true,
allowBlank: false,
name: 'CustomerName',
valueField: 'CustName',
displayField: 'CodeAndName'
});
//明细表-数据集
this.storeBodyChFee = Ext.create('Ext.data.Store', {
model: 'MsChFee',
remoteSort: false,
proxy: {
type: 'ajax',
url: '/Import/XXH/GetFeeList',
reader: {
id: 'GId',
root: 'data',
totalProperty: 'totalCount'
}
}
});
this.storeBodyChFee_YF = Ext.create('Ext.data.Store', {
model: 'MsChFee',
remoteSort: false,
proxy: {
type: 'ajax',
url: '/Import/XXH/GetFeeList',
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: [{ xtype: 'label', id: 'label1', text: "应收费用" }, '-', {
text: '增加明细',
tooltip: '增加明细', id: "addChfee",
iconCls: "btnadddetail",
handler: function (button, event) {
this.onAddDetailClick(button, event, '1');
},
scope: this
}, {
text: '删除明细',
tooltip: '删除明细', id: "delChfee",
iconCls: "btndeletedetail",
handler: function (button, event) {
this.onDelDetailClick(button, event, '1');
},
scope: this
}, '-', {
text: '提交审核',
tooltip: '提交审核',
iconCls: 'btnsubmitaudit',
handler: function (button, event) {
this.onSubmitAuditClick(button, event, "1");
},
scope: this
}, {
text: '撤回提交',
tooltip: '撤回提交',
iconCls: 'btncomm',
handler: function (button, event) {
this.onRetractClick(button, event, "1");
},
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: 80
}, /*{
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: 'textfield', //numberfield
selectOnFocus: true
},
width: 120
}, {
sortable: true,
dataIndex: 'Quantity',
header: '数量',
editor: {
xtype: 'textfield',
selectOnFocus: true
},
width: 60
}, {
sortable: true,
dataIndex: 'Amount',
header: '金额',
width: 120
}, {
sortable: true,
dataIndex: 'Currency',
header: '币别',
editor: this.comboxcurr_2,
width: 50
}, {
sortable: true,
dataIndex: 'ExChangerate',
header: '汇率',
//hidden: true,
editor: {
xtype: 'textfield',
selectOnFocus: true
},
width: 60
}, {
sortable: true,
dataIndex: 'EnterDate',
header: '时间',
width: 80,
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
editor: {
format: 'Y-m-d',
xtype: 'datefield',
selectOnFocus: true
}
}, {
sortable: true,
dataIndex: 'Remark',
header: '备注',
editor: {
xtype: 'textfield',
selectOnFocus: true
},
width: 250
}
]
});
this.cellEditingChFee_YF = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
this.feeGridCheckBoxModel_YF = Ext.create('Ext.selection.CheckboxModel');
this.gridListChFee_YF = new Ext.grid.GridPanel({
store: this.storeBodyChFee_YF,
enableHdMenu: false,
region: 'center',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
plugins: [this.cellEditingChFee_YF],
selModel: this.feeGridCheckBoxModel_YF,
selType: 'cellmodel',
viewConfig: {
autoFill: true,
getRowClass: function (record, rowIndex, rowParams, store) {
var feeStatus = record.get('FeeStatus');
return DsTruck.MsChFeeGetRowClass(feeStatus);
}
},
tbar: [{ xtype: 'label', id: 'label2', text: "应付费用" }, '-', {
text: '增加明细',
tooltip: '增加明细', id: "addChfee_YF",
iconCls: "btnadddetail",
handler: function (button, event) {
this.onAddDetailClick(button, event, '2');
},
scope: this
}, '-', {
text: '删除明细',
tooltip: '删除明细', id: "delChfee_YF",
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, "2");
},
scope: this
}, {
text: '撤回提交',
tooltip: '撤回提交',
iconCls: 'btncomm',
handler: function (button, event) {
this.onRetractClick(button, event, "2");
},
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: 80
}, /*{
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: 'textfield', //xtype: 'numberfield',
selectOnFocus: true
},
width: 120
}, {
sortable: true,
dataIndex: 'Quantity',
header: '数量',
editor: {
xtype: 'textfield', //xtype: 'numberfield',
selectOnFocus: true
},
width: 60
}, {
sortable: true,
dataIndex: 'Amount',
header: '金额',
width: 120
}, {
sortable: true,
dataIndex: 'Currency',
header: '币别',
editor: this.comboxcurr_2,
width: 50
}, {
sortable: true,
dataIndex: 'ExChangerate',
header: '汇率',
//hidden: true,
editor: {
xtype: 'textfield',
selectOnFocus: true
},
width: 60
}, {
sortable: true,
dataIndex: 'EnterDate',
header: '时间',
width: 80,
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
editor: {
format: 'Y-m-d',
xtype: 'datefield',
selectOnFocus: true
}
}, {
sortable: true,
dataIndex: 'Remark',
header: '备注',
editor: {
xtype: 'textfield',
selectOnFocus: true
},
width: 250
}
]
});
/////////---------------------明细表<<<应收应付/费用>>> over
////////--------显示毛利 begin
this.formML = Ext.widget('form', { // layout: "border",
region: 'center',
frame: true,
bodyPadding: 2,
fieldDefaults: {
margins: '1 1 1 1',
labelAlign: 'right',
flex: 5,
//labelWidth: 90,//label标签宽度
msgTarget: 'qtip',
sourcelabelWidth: '100' //,split:true
},
items: [
{ //fieldset 1
xtype: 'fieldset',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [{ //1
//container_1
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{//0
fieldLabel: '人民币应收',
// allowBlank: false,
readOnly: true,
name: 'RMBYS'
}, {
fieldLabel: '人民币应付',
// allowBlank: false,
readOnly: true,
name: 'RMBYF'
}, {
fieldLabel: '人民币毛利',
// allowBlank: false,
readOnly: true,
name: 'RMBML'
}]//0
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '美元应收',
// allowBlank: false,
readOnly: true,
name: 'USDYS'
}, {
fieldLabel: '美元应付',
// allowBlank: false,
readOnly: true,
name: 'USDYF'
}, {
fieldLabel: '美元毛利',
// allowBlank: false,
readOnly: true,
name: 'USDML'
}]
}, {
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '毛利',
// allowBlank: false,
readOnly: true,
name: 'ML'
}]
}
]//container_1 //1
}//fieldset 1
]
}); //end this.formEdit
////////--------显示毛利 end
//公共按钮Toolbar:panelBtn
this.panelBtn = new Ext.Panel({
region: "north",
tbar: [
{
// id: "saveandclose",
text: "保存", disabled: true, id: "SAVE1",
handler: function (button, event) {
this.Save('0');
},
scope: this
}, {
// id: "saveandclose",
text: "保存并关闭", disabled: true, id: "SAVE2",
handler: function (button, event) {
this.Save('1');
},
scope: this
}, '-',
{
// id: "saveandclose",
text: "关闭",
handler: function (button, event) {
window.close();
},
scope: this
}, '-',
{
// id: "saveandclose",
text: "打印",
handler: function (button, event) {
this.DoPrint();
},
scope: this
}
]
}); //end 按钮Toolbar
//布局
this.panelTop = new Ext.Panel({
layout: "border",
region: "north",
height: 32,
items: [this.panelBtn]//, this.formEdit]
});
this.panelYS = new Ext.Panel({
layout: "border",
region: "north",
height: 255,
split: true,
items: [this.gridListChFee]
});
this.panelYF = new Ext.Panel({
layout: "border",
region: "north",
height: 255,
split: true,
items: [this.gridListChFee_YF]
});
this.panelML = new Ext.Panel({
layout: "border",
region: 'south',
height: 90,
margin: '1 2',
split: true,
items: [this.formML]
});
/*
this.panelEdit = new Ext.Panel({
//title: '业务信息',
//layout: "border",
region: 'center',
split: true,
border: true,
margin: '0 0',
//width:700,
items: [this.formEdit]
}); */
/*
this.panelBodyReceipt = new Ext.Panel({
title: '票据管理',
layout: "border",
region: 'south',
margin: '0 0',
collapsed: true,
collapsible: true,
hight:400,
width:400,
items: [this.gridListReceipt]
});*/
/*
this.panelE_R = new Ext.Panel({
layout: "border",
region: 'north',
margin: '0 0',
height:485,
items: [this.panelEdit
//,this.panelBodyReceipt
]
});*/
this.panelCargoandApp = new Ext.Panel({
// title: '货物信息和许可证使用',
//layout: "border",
region: 'center',
margin: '3 3',
//height: 450,
//autoScroll: true,
items: [this.formCargo, this.gridListReceipt]
});
this.page_1 = new Ext.Panel({
title: "合同基础信息",
autoScroll: true,
items: [this.formEdit, this.panelCargoandApp]
});
this.page_2 = new Ext.Panel({
id: "page_2",
title: "库存管理",
items: [this.formKC]
}); /*
this.page_3 = new Ext.Panel({
id:"page_3",
title: "票据管理",
items: [//this.gridListReceipt
]
});*/
this.page_4 = new Ext.Panel({
id: "page_4", split: true,
title: "应收应付录入",
items: [this.panelYS, this.panelYF//, this.panelML
]
});
/*
this.page_5 = new Ext.Panel({
id:"page_5",
title: "更改单",
items: [this.gridAmendList,this.gridListAmendChFee,this.gridListAmendChFee_YF
]
});*/
this.panelReceipt = new Ext.Panel({
layout: "border",
region: "center",
items: [this.panelBodyReceipt]
});
this.MainTab = new Ext.tab.Panel({
layout: "border",
region: "center", split: true,
items: [this.page_1, this.page_2, this.page_3, this.page_4//,this.page_5
]
});
Ext.apply(this, {
items: [this.panelTop, this.MainTab]
});
parentWin = window.parent.opener;
this.InitData();
//集中绑定 事件
this.gridListReceipt.on('edit', function (editor, e, eOpts) {
this.ReceiptAfterEdit(editor, e, eOpts);
}, this);
this.formCargo.on('edit', function (editor, e, eOpts) {
this.CargoAfterEdit(editor, e, eOpts);
}, this);
this.cellEditingCargo.on('beforeedit', function (editor, e) {
return this.CargoBeforeEdit(editor, e);
}, this);
/*
this.formAppstate.on('edit', function (editor, e, eOpts) {
this.AppstateAfterEdit(editor, e, eOpts);
}, this);*/
this.formKC.on('edit', function (editor, e, eOpts) {
this.KCAfterEdit(editor, e, eOpts);
}, this);
this.gridListChFee.on('edit', function (editor, e, eOpts) {
this.gridListChFeeAfterEdit(editor, e, eOpts);
}, this);
this.gridListChFee_YF.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);
this.cellEditingChFee_YF.on('beforeedit', function (editor, e) {
return this.cellEditingChFeeBeforeEdit(editor, e);
}, this);
}, //end initUIComponents
////////<<<商品>>>明细表相关方法
onAddCargoClick: function (button, event) {
var TransactionMethod = this.formEdit.getForm().findField('TransactionMethod').getRawValue();
var baolv = '1.000';
if (TransactionMethod == 'CFR') {
baolv = '1.003';
}
var record = Ext.create('Cargomb', {
'id': '',
'ContractNo': '',
'cargoinfo_id': '',
'name': '',
'price': '0',
'price_agio': '0',
'price_limit': '0',
'amount': '0',
'BoxCount': '0',
'BoxWeight': '0',
'Exporter': '',
'FactoryNo': '',
'Productiondate': '',
'baolv': '1.000',
'tax': '0.0',
'tax_zz': '0.0',
'Unit': '0',
'currid': '740DF21C-BDE4-4C3E-A258-683A183AD3B4',
'UnitRef': 'KG',
'codename': 'USD'
});
this.storeCargo.add(record);
var n = this.storeCargo.getCount();
this.cellEditingCargo.startEditByPosition({ row: n - 1, column: 2 });
},
onDelCargoClick: function (button, event) {
var selectedRecords = this.formCargo.selModel.getSelection();
Ext.MessageBox.confirm('提示', '确定删除记录吗?', function (btn) {
if (btn == 'yes') {
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
if (rec.ContractNo != "" || rec.ContractNo != "*") //如果是新增但没有保存的数据,没有必要提交到后台
{
this.CargoDel.push(rec);
}
this.storeCargo.remove(selectedRecords[i]);
}
}
}, this);
},
onKCStartClick: function (button, event) {//初始化库存,
Ext.MessageBox.confirm('提示', '这将会清空该货物的所有库存重新开始记录。确定初始化库存吗?', function (btn) {
if (btn == 'yes') {
var selectedRecords = this.formCargo.selModel.getSelection();
if (selectedRecords.length == 0) {
alert('请选择至少一条商品记录');
return;
}
var cargoidlist = '';
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
if (i == 0) {
cargoidlist = rec.get('id');
}
else {
cargoidlist = cargoidlist + ',' + rec.get('id');
}
}
Ext.Ajax.request({//
waitMsg: '正在初始化库存数据...',
url: '/Import/XXH/KCStart',
params: {
cargo_id: cargoidlist
},
callback: function (_count) {
//alert('初始化完成');
//重新load库存表的store
//this.storeKC.load({ params: { condition: this.editRecord.get('ContractNo')} });
this.storeKC.load({ params: { condition: "K.ContractNo = '" + this.editRecord.get('ContractNo') + "' and K.corpid='" + COMPANYID + "'"} });
},
scope: this
}); //request over
}
}, this); //确认窗口over
},
onbtnCWStartClick: function (button, event) { //初始化应收应付,
Ext.MessageBox.confirm('提示', '这将会在应收应付列表增加一些内容,如不保存就不会真正增加。确定吗?',
function (btn) {
if (btn == 'yes') {
/* var selectedRecords = this.formCargo.selModel.getSelection();
Ext.MessageBox.confirm('提示', '确定删除记录吗?',
function(btn) {
if (btn == 'yes') {
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
alert(rec.ContractNo);
if (rec.ContractNo != "" || rec.ContractNo != "*") //如果是新增但没有保存的数据,没有必要提交到后台
{
this.CargoDel.push(rec);
}
this.storeCargo.remove(selectedRecords[i]);
}
}
},
this);*/
var selectedRecords = this.formCargo.selModel.getSelection();
var prepayments_1 = 0;
var prepayments_2 = 0; var preRemark = '';
var balance_1 = 0;
var balance_2 = 0; var balanceRemark = '';
var taxAmount = 0;
var tax = 0; var taxRemark = '';
var tax_zz = 0; var tax_zzRemark = '';
var weight = 0;
var Paytax = 0; var Gettax = 0;
var Paytax_zz = 0; var Gettax_zz = 0;
var Exchangerate = 0;
var taxprice = 0; var sellprice = 0; var payprice = 0;
var usd_tax_1 = 0; var usd_tax_zz_1 = 0;
var usd_tax_2 = 0; var usd_tax_zz_2 = 0;
var isChicken = false;
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
if (rec.get('cicode') == '0207142100' || rec.get('cicode') == '0207142200' || rec.get('cicode') == '0207142900') {
isChicken = true;
}
} //判断参与生成的货物中是否有鸡制品。如有则关税增值税用RMB表示否则用美元表示。
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
weight = weight + parseFloat(rec.get('weight'));
taxAmount = rec.get('tax_Amount');
Amount = rec.get('Amount');
preRemark = preRemark + rec.get('prepayments') + ' ';
prepayments_1 = prepayments_1 + parseFloat(rec.get('prepayments'));
if (parseFloat(rec.get('price_agio')) == 0) {
//有差价时,预付收付金额相同,尾款收付金额不相同
prepayments_2 = prepayments_2 + parseFloat(rec.get('prepayments'));
} else {
//有差价时,预付与尾款同比例的算法
prepayments_2 = prepayments_2 + round2(parseFloat(rec.get('pay_Amount')) * parseFloat(rec.get('PreProportion')) / 100, 2);
}
Exchangerate = parseFloat(rec.get('Exchangerate'));
Exchangerate_customs = parseFloat(rec.get('Exchangerate_Customs'));
balance_1 = balance_1 + parseFloat(rec.get('balance'));
if (parseFloat(rec.get('price_agio')) == 0) {
//有差价时,预付收付金额相同,尾款收付金额不相同
balance_2 = balance_2 + parseFloat(rec.get('pay_Amount')) - parseFloat(rec.get('prepayments'));
} else
//预付与尾款有差价时同比例的算法
{ balance_2 = balance_2 + parseFloat(rec.get('pay_Amount')) - (round2(parseFloat(rec.get('pay_Amount')) * parseFloat(rec.get('PreProportion')) / 100, 2)); }
if (parseFloat(rec.get('price_agid')) > 0) {
balanceRemark = balanceRemark + '差价' + rec.get('price_agio') + ' ';
}
tax = parseFloat(rec.get('tax'));
tax_zz = parseFloat(rec.get('tax_zz'));
//alert(rec.get('cicode'));
var HS = rec.get('cicode');
/*鸡翅 800/吨 HS编码 0207142100
鸡爪 1000/吨 HS编码 0207142200
鸡胗 1300/吨 HS编码 0207142900*/
var tax_weight = parseFloat(rec.get('weight'));
Paytax = Paytax + parseFloat(rec.get('tax_2'));
Paytax_zz = Paytax_zz + parseFloat(rec.get('tax_zz_2'));
Gettax = Gettax + parseFloat(rec.get('tax_1'));
Gettax_zz = Gettax_zz + parseFloat(rec.get('tax_zz_1'));
//if (taxAmount>Amount){
usd_tax_1 = usd_tax_1 + round2(taxAmount * tax, 2);
usd_tax_zz_1 = usd_tax_zz_1 + round2(taxAmount * (1 + tax) * tax_zz, 2);
/*}else
{
usd_tax_1=usd_tax_1+ round2(Amount*tax,2);
usd_tax_zz_1=usd_tax_zz_1+ round2(Amount*(1+tax)*tax_zz,2);
} */
usd_tax_2 = usd_tax_2 + round2(taxAmount * tax, 2);
usd_tax_zz_2 = usd_tax_zz_2 + round2(taxAmount * (1 + tax) * tax_zz, 2);
}
this.addChFee(1, 'RMB', 1, '预付款', round2(prepayments_1 * Exchangerate, 2), 1, prepayments_1 + rec.get('codename') + ' 其中:' + preRemark);
this.addChFee(1, 'RMB', 1, '尾款', round2(balance_1 * Exchangerate, 2), 1, balance_1 + rec.get('codename'));
this.addChFee(2, rec.get('codename'), Exchangerate, '预付款', round2(prepayments_2, 2), 1, prepayments_2 + rec.get('codename'));
this.addChFee(2, rec.get('codename'), Exchangerate, '尾款', round2(balance_2, 2), 1, round2(balance_2, 2) + rec.get('codename') + " " + balanceRemark);
if (isChicken) {
this.addChFee(2, 'RMB', 1, '关税', round2(Paytax, 2), 1, '');
this.addChFee(2, 'RMB', 1, '增值税', round2(Paytax_zz, 2), 1, '');
this.addChFee(1, 'RMB', 1, '关税', round2(Gettax, 2), 1, '');
this.addChFee(1, 'RMB', 1, '增值税', round2(Gettax_zz, 2), 1, '');
} else {
this.addChFee(2, 'RMB', 1, '关税', round2(Paytax, 2), 1, usd_tax_2 + ' USD');
this.addChFee(2, 'RMB', 1, '增值税', round2(Paytax_zz, 2), 1, usd_tax_zz_2 + ' USD');
this.addChFee(1, 'RMB', 1, '关税', round2(Gettax, 2), 1, usd_tax_1 + ' USD');
this.addChFee(1, 'RMB', 1, '增值税', round2(Gettax_zz, 2), 1, usd_tax_zz_1 + ' USD');
}
this.addChFee(1, 'RMB', 1, '代理费', 300, (weight / 1000).toFixed(4));
this.addChFee(1, 'RMB', 1, 'THC', 1360, 1);
this.addChFee(1, 'RMB', 1, '拖车费', 700, 1);
//this.addChFee(1,'RMB',1,'验货费',620,1);
this.addChFee(1, 'RMB', 1, '电汇费', 150, 1, '尾款电汇费');
this.addChFee(1, 'RMB', 1, '手续费', round2((balance_1 * Exchangerate) / 1000, 2), 1, '尾款手续费');
this.addChFee(1, 'RMB', 1, '电汇费', 150, 1, '预付款电汇费');
this.addChFee(1, 'RMB', 1, '手续费', round2((prepayments_1 * Exchangerate) / 1000, 2), 1, '预付款手续费');
/*
//alert(this.editRecord.get('ContractNo'))
Ext.Ajax.request({ //
waitMsg: '正在初始化应收应付...',
url: '/Import/XXH/CWStart',
params: {
ContractNo: this.editRecord.get('ContractNo')
},
callback: function(_count) {
//alert('初始化完成');
//重新load库存表的store
this.storeBodyChFee.load({
params: {
billno: this.editRecord.get('ContractNo')
}
});
},
scope: this
}); //request over
*/
}
},
this); //确认窗口over
},
onKCFeeClick: function (button, event) { //初始化应收应付,
Ext.MessageBox.confirm('提示', '这将会在应收应付列表增加一些内容,如不保存就不会真正增加。确定吗?',
function (btn) {
if (btn == 'yes') {
var selectedRecords = this.formKC.selModel.getSelection();
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
var FeeName = rec.get('FeeName');
var Amount = rec.get('Amount');
var UnitPrice = rec.get('UnitPrice');
var Quantity = rec.get('Quantity');
var days = rec.get('days');
if (FeeName == '出入库费') {
//this.addChFee(1, 'RMB', 1, '出入库费', round2(Amount, 2), 1, '', rec.get('id'));
this.addChFee(2, 'RMB', 1, '出入库费', round2(Amount, 2), 1, '', rec.get('id'));
} else {
//this.addChFee(1, 'RMB', 1, FeeName, parseFloat(UnitPrice) * parseFloat(Quantity), parseFloat(days), '', rec.get('id'));
this.addChFee(2, 'RMB', 1, FeeName, parseFloat(UnitPrice) * parseFloat(Quantity), parseFloat(days), '', rec.get('id'));
}
}
}
},
this); //确认窗口over
},
addChFee: function (FeeType, Currency, Exchangerate, FeeName, price, Quantity, Remark, FeeDescription) {
var _CustomerName = '';
if (FeeType == 1) {
var _FeeType = 1;
var _FeeType_Ref = '应收';
_CustomerName = this.getCustName();
}
else {
var _FeeType = 2;
var _FeeType_Ref = '应付';
_CustomerName = this.getSellerName();
if (FeeName == '关税' || FeeName == '增值税') { _CustomerName = ''; }
if (FeeName == '冷藏费' || FeeName == '仓储费' || FeeName == '出入库费' || FeeName == '超期制冷费') { _CustomerName = ''; }
//CustomerName: this.formEdit.getForm().findField('seller');
};
var Sort = "0";
if (FeeName == '购货款') {
Sort = "1";
} else
if (FeeName == '预付款') {
Sort = "2";
} else
if (FeeName == '尾款') {
Sort = "3";
} else
if (FeeName == '关税') {
Sort = "4";
} else
if (FeeName == '增值税') {
Sort = "5";
} else
if (FeeName == '电汇费') {
Sort = "6";
} else
if (FeeName == '手续费') {
Sort = "7";
} else
if (FeeName == '代理费') {
Sort = "8";
} else
if (FeeName == '拖车费') {
Sort = "9";
} else
if (FeeName == '商检验货费') {
Sort = "10";
} else
if (FeeName == '出入库费') {
Sort = "11";
} else
if (FeeName == '冷藏费') {
Sort = "12";
} else
if (FeeName == '超期制冷费') {
Sort = "13";
} else
if (FeeName == '看货费') {
Sort = "14";
} else {
Sort = "999";
}
//var _Amount=price*Quantity;
var _Amount = 0;
record = Ext.create('MsChFee', {
GId: NewGuid(),
BsNo: '*',
FeeStatus: 1,
FeeStatus_Ref: '录入状态',
FeeType: _FeeType,
FeeType_Ref: _FeeType_Ref,
FeeName: FeeName,
FeeName_Ref: '',
FeeDescription: FeeDescription,
CustomerType: '',
CustomerName: _CustomerName,
//this.formEdit.getForm().findField('buyer');
CustomerName_Ref: '',
Unit: '',
price: 0,
UnitPrice: price,
Quantity: Quantity,
Amount: _Amount,
Currency: Currency,
ExChangerate: Exchangerate,
Reason: '',
Remark: Remark,
Commissionrate: 0,
Settlement: 0,
Invoice: 0,
OrderAmount: 0,
OrderInvoice: 0,
SubmitDate: null,
Auditoperator: '',
AuditDate: null,
EnteroPerator: USERID,
OpName: "",
EnterDate: null,
DebitNo: '',
IsDebit: "0",
IsOpen: "0",
IsAdvancedpay: "0",
Sort: Sort,
IsInvoice: "0",
FeeFrt: 'PP',
IsCrmOrderFee: "0",
AuditStatus: 0,
InvoiceNum: '',
ChequeNum: '',
WmsOutBsNo: ''
});
if (FeeType == 1) {
this.storeBodyChFee.add(record);
}
else {
this.storeBodyChFee_YF.add(record);
}
},
CargoBeforeEdit: function (editor, e) {
//var cargo_id = e.record.get('id');
var canedit = false;
return canedit;
},
CargoAfterEdit: function (editor, e, eOpts) {
if (e.value == e.originalValue) { return; }
function decimal(str, length) {
var _r = round2(str, length);
return (_r);
} /*
function decimal(str){
var _r=DsTruck.round2(str,3);
var _r2=DsTruck.round2(_r,2);
return _r2;
}*/
if (e.field == 'weight') {
var cargo_id = e.record.get('id');
APPUsing = 0;
Ext.Ajax.request({
waitMsg: '正在查询数据...',
url: '/Import/UseApproval/Getused',
scope: this,
async: false,
params: { cargo_id: cargo_id },
waitMsg: "正在查询数据...",
callback: function (options, success, response) {
if (success) {
var jsonresult = Ext.JSON.decode(response.responseText);
var returnData = jsonresult.data;
//alert(returnData.Count);
this.APPUsing = parseFloat(returnData.Count);
} else {
Ext.Msg.show({ title: '请重试',
msg: '服务器响应出错',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
return;
}
}
});
//var a1=Cut(parseFloat(e.value),1000);
//var a2=parseFloat(e.value);
// alert(a1+','+a2);
if (Div(parseFloat(e.value), 1000, 6) > this.APPUsing && this.APPUsing > 0) {//
alert("重量大于许可证用证重量:" + this.APPUsing);
e.record.set('weight', e.originalValue);
return;
}
}
if (e.field == 'cargoinfo_id') {
var Cargoinforecords = DsStoreQueryBy(this.storeCargoinfo, 'id', e.value);
if (Cargoinforecords.getCount() > 0) {
var Cargoinfodata = Cargoinforecords.getAt(0).data;
e.record.set('cicodeandname', Cargoinfodata.codeandname);
//20131017 以下改变前台显示的税率
e.record.set('tariff', Cargoinfodata.tariff);
e.record.set('tax', Cargoinfodata.tax);
e.record.set('tax_zz', Cargoinfodata.tax_zz);
} else {
e.record.set('cicodeandname', '');
}
}
if (e.field == 'cargociq_id') {
var Cargociqrecords = DsStoreQueryBy(this.storeCargociq, 'id', e.value);
if (Cargociqrecords.getCount() > 0) {
var Cargociqdata = Cargociqrecords.getAt(0).data;
e.record.set('ciqcodeandname', Cargociqdata.codeandname);
} else {
e.record.set('ciqcodeandname', '');
}
}
if (e.field == 'Exchangerate' && e.record.get('Exchangerate_Customs') == 0) {
e.record.set('Exchangerate_Customs', parseFloat(e.record.get('Exchangerate')))
}
if (e.field == 'Unit') {
var U_weight = parseFloat(e.record.get('U_weight'));
var Unitrecords = DsStoreQueryBy(this.storeUnit, 'EnumValueId', e.value);
if (Unitrecords.getCount() > 0) {
var Unitdata = Unitrecords.getAt(0).data;
e.record.set('UnitRef', Unitdata.EnumValueName);
if (Unitdata.EnumValueName == '磅') {
e.record.set('UnitRate', '0.4535970244035199');
var weight = Mul(U_weight, 0.4535970244035199);
}
if (Unitdata.EnumValueName == '吨') {
e.record.set('UnitRate', '1000');
var weight = Mul(U_weight, 1000);
e.record.set('weight', weight);
}
if (Unitdata.EnumValueName == 'KG') {
e.record.set('UnitRate', '1');
var weight = Mul(U_weight, 1);
e.record.set('weight', weight);
}
var price = parseFloat(e.record.get('price'));
var price_agio = parseFloat(e.record.get('price_agio'));
var price_limit = parseFloat(e.record.get('price_limit'));
var baolv = parseFloat(e.record.get('baolv'));
var amount = Mul(weight, price);
if (price_limit != 0 && price_limit > price_agio) {
var tax_amount = Mul(price_limit, weight, baolv, 2);
} else {
var tax_amount = Mul(price_agio, weight, baolv, 2);
}
var pay_amount = Mul(price_limit, weight);
e.record.set('Amount', amount);
e.record.set('tax_Amount', tax_amount);
e.record.set('pay_Amount', pay_amount);
} else {
e.record.set('UnitRef', '');
e.record.set('UnitRate', '1');
}
}
if (e.field == 'U_weight' || e.field == 'U_PRICE') {
var U_weight = parseFloat(e.record.get('U_weight'));
var U_PRICE = parseFloat(e.record.get('U_PRICE'));
var UnitRate = parseFloat(e.record.get('UnitRate'));
if (e.record.get('Unit') != '1') {//不是磅
var weight = Mul(U_weight, UnitRate);
//decimal(U_weight * UnitRate, 2);
e.record.set('weight', weight);
}
var price = decimal(U_PRICE / UnitRate, 4);
e.record.set('price', price);
var price_agio = parseFloat(e.record.get('price_agio'));
var price_limit = parseFloat(e.record.get('price_limit'));
var baolv = parseFloat(e.record.get('baolv'));
var amount = Mul(U_weight, U_PRICE);
//decimal(U_weight * U_PRICE, 2);
var UNIT = e.record.get('UnitRef');
if ((UNIT == '磅') && (price_agio == 0)) {
if (price_limit != 0 && price_limit > (price)) {
var tax_amount = Mul3(price_limit, weight, baolv, 2);
//decimal(price_limit * weight * baolv, 2);
} else {
var tax_amount = Mul3(U_weight, U_PRICE, baolv, 2);
//decimal(U_weight * U_PRICE * baolv, 2);
}
var pay_amount = Mul(U_weight, U_PRICE);
} else {
if (price_limit != 0 && price_limit > (price - price_agio)) {
var tax_amount = Mul3(price_limit, weight, baolv, 2);
//decimal(price_limit * weight * baolv, 2);
} else {
var tax_amount = Mul3((price - price_agio), weight, baolv, 2);
//decimal((price - price_agio) * weight * baolv, 2);
}
var pay_amount = Mul((price - price_agio), weight);
//decimal((price - price_agio) * weight, 2);
}
e.record.set('Amount', amount);
e.record.set('tax_Amount', tax_amount);
e.record.set('pay_Amount', pay_amount);
}
if (e.field == 'currid') {
//alert(e.field);
var currrecords = DsStoreQueryBy(this.storecurr, 'gid', e.value);
if (currrecords.getCount() > 0) {
var currdata = currrecords.getAt(0).data;
e.record.set('codename', currdata.codename);
} else {
e.record.set('codename', '');
}
}
//price price_agio price_limit weight baolv
//单价 差价 估价 净重 保率
//amount tax_amount pax_amount
//合同金额 完税价格 购货价
if (e.field == 'price' || e.field == 'price_agio' || e.field == 'price_limit' || e.field == 'baolv'
|| e.field == 'weight' || e.field == 'Exchangerate' || e.field == 'Exchangerate_Customs' || e.field == 'tax' || e.field == 'tax_zz') {
var UNIT = e.record.get('UnitRef');
if (UNIT != '磅') {
var price = parseFloat(e.record.get('price'));
var price_agio = parseFloat(e.record.get('price_agio'));
var price_limit = parseFloat(e.record.get('price_limit'));
var baolv = parseFloat(e.record.get('baolv'));
var weight = parseFloat(e.record.get('weight'));
if (price_agio == 0) {
var amount = Mul(weight, price);
} //Mul(price_limit,weight,baolv,2)
else { amount = Mul(weight, price_agio); } //amount=对国内客户的合同金额
//get_tax_amount 用于向客户收税金的完税价格
//tax_amount 用于向海关交税金的完税价格
if (price_limit != 0 && price_limit > price) {
var tax_amount = Mul3(price_limit, weight, baolv, 2);
if (price_agio != 0 && price_limit > price_agio) {//海关限价最高
var get_tax_amount = tax_amount;
} else { var get_tax_amount = Mul3(price_agio, weight, baolv, 2); } //差价(对国内客户)高于限价
} else {
var tax_amount = Mul3(price, weight, baolv, 2);
if (price_agio != 0) {
var get_tax_amount = Mul3(price_agio, weight, baolv, 2);
} else { var get_tax_amount = tax_amount; } //差价(对国内客户)高于限价
}
var pay_amount = Mul(weight, price); //贸易商价格x重量x单价
e.record.set('Amount', amount);
e.record.set('tax_Amount', tax_amount);
e.record.set('pay_Amount', pay_amount);
} else {
var U_weight = parseFloat(e.record.get('U_weight'));
var U_PRICE = parseFloat(e.record.get('U_PRICE'));
var UnitRate = parseFloat(e.record.get('UnitRate'));
var weight = parseFloat(e.record.get('weight'));
//e.record.set('weight', weight);
var price = parseFloat(e.record.get('price'));
//e.record.set('price', price);
var price_agio = parseFloat(e.record.get('price_agio'));
var price_limit = parseFloat(e.record.get('price_limit'));
var baolv = parseFloat(e.record.get('baolv'));
var amount = Mul(U_weight, U_PRICE);
var amount_writeoffs = Mul(weight, price);
var UNIT = e.record.get('UnitRef');
if ((UNIT == '磅') && (price_agio == 0)) {
if (price_limit != 0 && price_limit > (price)) {
var tax_amount = Mul3(price_limit, weight, baolv, 2);
} else {
var tax_amount = Mul3(U_weight, U_PRICE, baolv, 2);
}
var pay_amount = Mul(U_weight, U_PRICE);
} else {
if (price_limit != 0 && price_limit > price_agio) {
var tax_amount = Mul3(price_limit, weight, baolv, 2);
} else {
var tax_amount = Mul3(price_agio, weight, baolv, 2);
}
var pay_amount = Mul(weight, price_agio);
}
e.record.set('Amount', amount);
e.record.set('AMOUNT_WRITEOFFS', amount_writeoffs);
e.record.set('tax_Amount', tax_amount);
e.record.set('pay_Amount', pay_amount);
amount = parseFloat(e.record.get('Amount'));
tax_amount = parseFloat(e.record.get('tax_Amount'));
pay_amount = parseFloat(e.record.get('pay_Amount'));
}
//if (amount>tax_amount){tax_amount=amount;}//确保tax_amount为给客户显示并使用的完税价格
var tax = parseFloat(e.record.get('tax')); //关税税率
var tax_zz = parseFloat(e.record.get('tax_zz')); //增值税税率
var Exchangerate_Customs = e.record.get('Exchangerate_Customs'); //海关汇率
var HS = e.record.get('cicode');
var isChicken = false;
var ChickenTax = parseFloat('0.0');
if (HS == '0207142100' || HS == '0207142200' || HS == '0207142900' || HS == '02071200') {
isChicken = true;
if (HS == '0207142100') {
ChickenTax = parseFloat('0.8');
} else if (HS == '0207142200') {
ChickenTax = parseFloat('1.0');
} else if (HS == '0207142900' || HS == '02071200') {
ChickenTax = parseFloat('1.3');
}
}
if (isChicken) {
//Mul(weight,price);
var priceandtax = Mul(tax_amount, Exchangerate_Customs) + Mul(weight, ChickenTax);
var tax_1 = Mul(weight, ChickenTax);
var tax_zz_1 = Mul(priceandtax, tax_zz);
var tax_2 = tax_1;
var tax_zz_2 = tax_zz_1;
} else {
var priceandtax = Mul(tax_amount, (1.0 + tax)); //完税价格x(1+关税税率)=含关税价格
//应付的
var tax_2 = Mul3(tax_amount, tax, Exchangerate_Customs, 2); //关税
var tax_zz_2 = Mul4(tax_amount, (1.0 + tax), tax_zz, Exchangerate_Customs); //decimal(tax_amount * (1.0 + tax) * tax_zz * Exchangerate_Customs,2); //增值税
//向客户收取的
var weight = parseFloat(e.record.get('weight'));
var price_agio = parseFloat(e.record.get('price_agio'));
if (price_agio != 0 && price_agio > price_limit) {//如果“差价(对国内客户价格)”不为零而且高于限价 关税的完税价格依据差价价格计算
var tax_1 = Mul3(Mul3(weight, price_agio, baolv), tax, Exchangerate_Customs);
//decimal(weight * price_agio*baolv * tax * Exchangerate_Customs,2); //关税
var tax_zz_1 = Mul4(Mul3(weight, price_agio, baolv), (1.0 + tax), tax_zz, Exchangerate_Customs);
//decimal(weight * price_agio *baolv* (1.0 + tax) * tax_zz * Exchangerate_Customs,2); //增值税
} else {
//if (tax_amount > amount) {
var tax_1 = tax_2;
//decimal(tax_amount * tax * Exchangerate_Customs,2); //关税
var tax_zz_1 = tax_zz_2;
//decimal(tax_amount * (1.0 + tax) * tax_zz * Exchangerate_Customs,2); //增值税
/*} else {
var tax_1 = Mul3(amount,tax,Exchangerate_Customs,2);
//decimal(amount * tax * Exchangerate_Customs,2); //关税
var tax_zz_1 = Mul(Mul(amount,(1.0 + tax)),Mul(tax_zz,Exchangerate_Customs));
//decimal(amount * (1.0 + tax) * tax_zz * Exchangerate_Customs,2); //增值税
}*/
}
}
e.record.set('tax_1', tax_1);
e.record.set('tax_zz_1', tax_zz_1);
e.record.set('tax_2', tax_2);
e.record.set('tax_zz_2', tax_zz_2);
var prepayments = parseFloat(parseFloat(e.record.get('prepayments')).toFixed(2));
var balance = Cut(amount, prepayments);
e.record.set('balance', balance);
}
if (e.field == 'prepayments' || e.field == 'Amount') {
//alert(e.field);
var prepayments = e.record.get('prepayments');
var Amount = e.record.get('Amount');
var balance = Cut(Amount, prepayments);
e.record.set('balance', balance);
}
if (e.field == 'PreProportion') {
//alert(e.field);
var Amount = parseFloat(e.record.get('Amount'));
var prepayments = Mul3(Amount, e.record.get('PreProportion'), 0.01, 2);
//decimal(Amount*parseFloat(e.record.get('PreProportion'))*0.01,2);
var balance = Cut(Amount, prepayments);
e.record.set('prepayments', prepayments);
e.record.set('balance', balance);
}
},
/////////////明细表<<<商品>>>的相关方法
////////<<<许可证使用>>>明细表相关方法
onAddAppstateClick: function (button, event) {
var record = Ext.create('Appstatemb', {
'id': '',
'appno': '',
'cargoinfo_id': '',
'app_id': '',
'name': ' ',
'cargo_id': ' ',
'cargoname': ' ',
'appweight': '0 ',
'appremain': ' ',
'country': ' ',
'ValidDate': '',
'weight': '',
'info': ''
});
this.storeAppstate.add(record);
var n = this.storeAppstate.getCount();
this.cellEditingAppstate.startEditByPosition({ row: n - 1, column: 2 });
},
onDelAppstateClick: function (button, event) {
var selectedRecords = this.formAppstate.selModel.getSelection();
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
// alert(rec.ContractNo);
if (rec.ContractNo != "" || rec.ContractNo != "*") //如果是新增但没有保存的数据,没有必要提交到后台
{
this.AppstateDel.push(rec);
}
//alert(i);
this.storeAppstate.remove(selectedRecords[i]);
}
},
AppstateAfterEdit: function (editor, e, eOpts) {
//需要自己实现里面的事件
if (e.field == 'app_id') {
var apprecords = DsStoreQueryBy(this.storeApp, 'app_id', e.value);
if (apprecords.getCount() > 0) {
var appdata = apprecords.getAt(0).data;
e.record.set('app_id', appdata.app_id);
e.record.set('appno', appdata.appno);
e.record.set('name', appdata.name);
e.record.set('appweight', appdata.appweight);
e.record.set('appremain', appdata.appremain);
e.record.set('country', appdata.country);
e.record.set('ValidDate', appdata.ValidDate);
} else {
e.record.set('name', ' ');
e.record.set('appweight', ' ');
e.record.set('appremain', ' ');
e.record.set('country', ' ');
e.record.set('ValidDate', ' ');
}
}
if (e.field == 'cargo_id') {
var cargo = DsStoreQueryBy(this.storeCargo, 'id', e.value);
if (cargo.getCount() > 0) {
var cargodata = cargo.getAt(0).data;
e.record.set('cargo_id', cargodata.name);
e.record.set('cargoname', cargodata.name);
//alert(e.record.get('cargo_id'));
} else {
//alert(cargodata.name);
e.record.set('cargoname', ' ');
}
}
},
//-------------明细表<<<许可证使用>>>的相关方法 over
////////<<<库存记录>>>明细表相关方法
onAddKCClick: function (button, event) {
var record = Ext.create('KCmb', {
'id': '',
'ContractNo': '',
'cargo_id': '',
'name': '',
'czstate': ' ',
'innum': '0',
'outnum': '0',
'kfstate': ' ',
'czdate': ' ',
'text': ' ',
'czref': ' ',
'kfref': ' ',
'CORPID': COMPANYID,
'ENTEROPERATOR': USERID
});
this.storeKC.add(record);
var n = this.storeKC.getCount();
this.cellEditingKC.startEditByPosition({ row: n - 1, column: 2 });
},
onDelKCClick: function (button, event) {
var selectedRecords = this.formKC.selModel.getSelection();
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
// alert(rec.ContractNo);
if (rec.ContractNo != "" || rec.ContractNo != "*") //如果是新增但没有保存的数据,没有必要提交到后台
{
this.KCDel.push(rec);
}
//alert(i);
this.storeKC.remove(selectedRecords[i]);
}
},
KCAfterEdit: function (editor, e, eOpts) {
if (e.field == 'czstate') {
var czstaterecords = DsStoreQueryBy(this.storeczstate, 'EnumValueId', e.value);
if (czstaterecords.getCount() > 0) {
var czstatedata = czstaterecords.getAt(0).data;
e.record.set('czref', czstatedata.EnumValueName);
} else {
e.record.set('czref', '');
}
}
if (e.field == 'kfstate') {
var kfstaterecords = DsStoreQueryBy(this.storekfstate, 'CustName', e.value);
if (kfstaterecords.getCount() > 0) {
var kfstatedata = kfstaterecords.getAt(0).data;
e.record.set('kfstate', kfstatedata.CustName);
} else {
e.record.set('kfstate', '');
}
//将单价更新到单价里
if (parseFloat(e.record.get('UnitPrice')) <= 0) {
e.record.set('UnitPrice', kfstatedata.UNITPRICE);
}
}
if (e.field == 'cargo_id') {
var cargo = DsStoreQueryBy(this.storeCargo, 'id', e.value);
if (cargo.getCount() > 0) {
var cargodata = cargo.getAt(0).data;
e.record.set('cargo_id', cargodata.id);
e.record.set('cargoname', cargodata.name);
//alert(e.record.get('cargo_id'));
} else {
//alert(cargodata.name);
e.record.set('cargoname', ' ');
}
}
if (e.field == 'czstate' || e.field == 'czdate') {
if (!e.record.get('czdate')) {
alert("操作时间不应为空");
} else
if (e.record.get('czstate') == "3" || e.record.get('czstate') == "6") {//出库或结费
//获取此条出库之前最近的一条入库操作时间,
var ContractNo = this.editRecord.get('ContractNo');
var LastCZDate = "";
var LastCZState = "";
Ext.Ajax.request({
waitMsg: '正在查询数据...',
url: '/Import/XXH/GetLastCZ',
scope: this,
async: false,
params: { condition: ContractNo, id: e.record.get('id') },
waitMsg: "正在查询数据...",
callback: function (options, success, response) {
if (success) {
var jsonresult = Ext.JSON.decode(response.responseText);
var returnData = jsonresult.data;
//alert(returnData.CZDate);
LastCZDate = returnData.CZDate;
LastCZState = returnData.CZstate;
var _e = Ext.util.Format.date(e.record.get('czdate'), 'Y-m-d'); //格式化日期控件值
var _s = Ext.util.Format.date(LastCZDate, 'Y-m-d'); //格式化日期控件值
var arr = _s.split("-");
var LastCZ = new Date(Number(arr[0]), Number(arr[1]) - 1, Number(arr[2]) + 1);
var nextday = LastCZ.getFullYear() + "-" + (LastCZ.getMonth() + 1) + "-" + LastCZ.getDate();
var end = new Date(_e);
var start = new Date(_s);
if (LastCZState == "1") {
var elapsed = Math.round((end.getTime() - start.getTime()) / (86400000)) + 1; // 计算间隔日数
//alert(nextday);
e.record.set('text', _s);
} else
var elapsed = Math.round((end.getTime() - start.getTime()) / (86400000)); // 计算间隔日数
//alert(_s);
e.record.set('days', elapsed);
e.record.set('text', nextday);
} else {
Ext.Msg.show({ title: '请重试',
msg: '服务器响应出错',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
return;
}
}
});
}
}
if (e.field == 'days' || e.field == 'UnitPrice' || e.field == 'Quantity') {
var days = parseFloat(e.record.get('days'));
var UnitPrice = parseFloat(e.record.get('UnitPrice'));
var Quantity = parseFloat(e.record.get('Quantity'));
e.record.set('Amount', days * UnitPrice * Quantity);
}
},
///-------------明细表<<<库存记录>>>的相关方法 over
//单据表 明细表相关方法
onAddReceiptClick: function (button, event) {
this.addDetail();
}, //end onAddDetailClick
onDelReceiptClick: function (button, event) {
this.deleteDetail();
}, //onDelDetailClick
ReceiptAfterEdit: function (editor, e, eOpts) {
//需要自己实现里面的事件
if (e.field == 'Receiptid') {
var Receiptrecords = DsStoreQueryBy(this.storeReceiptid, 'EnumValueId', e.value);
if (Receiptrecords.getCount() > 0) {
var Receiptdata = Receiptrecords.getAt(0).data;
e.record.set('ReceiptName', Receiptdata.EnumValueName);
} else {
e.record.set('ReceiptName', '');
}
}
if (e.field == 'state') {
var staterecords = DsStoreQueryBy(this.storeReceiptstate, 'EnumValueId', e.value);
if (staterecords.getCount() > 0) {
var statedata = staterecords.getAt(0).data;
e.record.set('statename', statedata.EnumValueName);
} else {
e.record.set('statename', '');
}
}
},
addDetail: function () {
// var newSerialno = DsGetNewSerialNo(this.storeBodyList, this.serialNo);
// this.serialNo = newSerialno;
var record = Ext.create('Receiptmb', {
'id': '',
'ContractNo': '',
'Receiptid': '0',
'ReceiptName': '',
'ReceiptNo': '',
'state': '0',
'Send_date': '',
'receive_date': '',
'repeat_date': '',
'trancer': '',
'trancNo': ''
});
this.storeReceipt.add(record);
var n = this.storeReceipt.getCount();
this.cellEditingReceipt.startEditByPosition({ row: n - 1, column: 2 });
},
deleteDetail: function () {
var selectedRecords = this.gridListReceipt.selModel.getSelection();
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
// alert(rec.ContractNo);
if (rec.ContractNo != "" || rec.ContractNo != "*") //如果是新增但没有保存的数据,没有必要提交到后台
{
this.bodyDel.push(rec);
}
//alert(i);
this.storeReceipt.remove(selectedRecords[i]);
}
},
//end 单据表 明细表相关方法
// 明细表 <<<<<<<<<<<<<费用表相关方法
cellEditingChFeeBeforeEdit: function (editor, e) {
var chfeefeeStatus = e.record.get('FeeStatus');
var canedit = chfeefeeStatus == 1 || chfeefeeStatus == 6;
if (canedit == true) {
var me = this;
Ext.Ajax.request({
waitMsg: '正在查询用户权限...',
url: '/CommMng/BasicDataRef/GetAuthorityRange',
params: {
modName: "modImport_Fee",
USERID: USERID
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
rec = result.data;
//alert(rec.VISIBLERANGE);
//alert(rec.OPERATERANGE);
//可操作为0则全都可见3为个人,2为部门1为分公司
//this.VISIBLERANGE = rec.VISIBLERANGE;
this.OPERATERANGE = rec.OPERATERANGE;
var type = e.record.get('FeeType');
var op = e.record.get('EnteroPerator');
var opname = e.record.get('OpName');
if (type == 1) {
var records = DsStoreQueryBy(this.StoreDrOpRange, 'OPID', op);
if (records.getCount() > 0) {
} else {
Ext.Msg.show({ title: '提示', msg: '你没有权限修改' + opname + '录入的费用!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
canedit = false;
}
} else if (type == 2) {
var records = DsStoreQueryBy(this.StoreCrOpRange, 'OPID', op);
if (records.getCount() > 0) {
} else {
Ext.Msg.show({ title: '提示', msg: '你没有权限修改' + opname + '录入的费用!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
canedit = false;
}
}
}
else
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
},
scope: this
}); //request over
}
return canedit;
},
onAddDetailClick: function (button, event, type) {
var allow = this.getAllowOperationDetail();
if (allow == false) {
return;
}
var store = null;
if (type == 1) {
store = this.storeBodyChFee;
} else if (type == 2) {
store = this.storeBodyChFee_YF;
} else {
alert('函数(onAddDetailClick)的参数type类型设置的不对');
return;
}
var newSerialno = this.GetHandleSerialNo(store, type);
var record = null;
record = Ext.create('MsChFee', {
GId: NewGuid(),
BsNo: '*',
FeeStatus: 1,
FeeStatus_Ref: '录入状态',
FeeType: type,
FeeType_Ref: '',
FeeName: '',
FeeName_Ref: '',
FeeDescription: '',
CustomerType: '',
CustomerName: this.getCustName(),
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: USERID,
EnterDate: null,
DebitNo: '',
IsDebit: "0",
IsOpen: "0",
IsAdvancedpay: "0",
Sort: "0",
IsInvoice: "0",
FeeFrt: 'pp',
IsCrmOrderFee: "0",
AuditStatus: 0,
InvoiceNum: '',
ChequeNum: '',
WmsOutBsNo: ''
});
store.add(record);
var editColumnIndex = 0;
var cellediting = null;
if (type == 1) {
cellediting = this.cellEditingChFee;
editColumnIndex = 2;
} else if (type == 2) {
cellediting = this.cellEditingChFee_YF;
editColumnIndex = 4;
}
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;
}
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;
}
return result;
},
onDelDetailClick: function (button, event, type) {
var allow = this.getAllowOperationDetail();
if (allow == false) {
return;
}
var store = null;
if (type == 1) {
store = this.storeBodyChFee;
} else if (type == 2) {
store = this.storeBodyChFee_YF;
} else {
alert('函数(onAddDetailClick)的参数type类型设置的不对');
return;
}
var result = 0;
if (type == '1') {
result = this.feeSerialNo;
} else if (type == '2') {
result = this.feeSerialNo;
}
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.feeSerialNo = result;
} else if (type == '2') {
this.feeSerialNo = result;
}
var selectedRecords = [];
if (type == '1') {
selectedRecords = this.gridListChFee.selModel.getSelection();
var candelete = DsTruck.CheckChFeeDelete(selectedRecords, this.StoreDrOpRange);
if (candelete == false)
return;
} else if (type == '2') {
selectedRecords = this.gridListChFee_YF.selModel.getSelection();
var candelete = DsTruck.CheckChFeeDelete(selectedRecords, this.StoreCrOpRange);
if (candelete == false)
return;
}
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.feeBodyDel.push(rec);
} else if (type == '2') {
this.feeBodyDel.push(rec);
}
}
if (type == '1') {
this.storeBodyChFee.remove(selectedRecords[i]);
} else if (type == '2') {
this.storeBodyChFee_YF.remove(selectedRecords[i]);
}
}
}
},
onSubmitAuditClick: function (button, event, type) {
if (type == '1') {
var records = this.feeGridCheckBoxModel.selected.items;
} else if (type == '2') {
var records = this.feeGridCheckBoxModel_YF.selected.items;
}
DsTruck.MsChFeeAudit(records, 2, '正在提交审核数据, 请稍侯..', USERID);
},
onRetractClick: function (button, event, type) {
var records = [];
if (type == '1') {
var selectedRecords = this.feeGridCheckBoxModel.selected.items;
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
if (rec.get('FeeStatus') == "2") {
records.push(rec);
}
}
} else if (type == '2') {
var selectedRecords = this.feeGridCheckBoxModel_YF.selected.items;
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
if (rec.get('FeeStatus') == "2") {
records.push(rec);
}
}
}
if (records.length > 0) {
DsTruck.MsChFeeAudit(records, 6, '正在提交审核数据, 请稍侯..');
}
},
getCustName: function () {
var custName = this.formEdit.getForm().findField('buyer');
return custName.getValue();
},
getSellerName: function () {
var custName = this.formEdit.getForm().findField('seller');
return custName.getValue();
},
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;
}*/
//var data = this.formEdit.getForm().getValues();
//if data.ContractStatus=="1"
// return true;
},
/* getFeeStatus: function () {
//var basicForm = this.formEdit.getForm();
//var feeStatus = basicForm.findField('FeeStatus').value;
//return feeStatus;
return 0;
},
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;*/
// return true;
//},*/
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' || e.field == 'ExChangerate') {
var unitPrice = e.record.data['UnitPrice'];
var quantity = e.record.data['Quantity'];
//var ExChangerate= e.record.data['ExChangerate'];
e.record.set('Amount', (unitPrice * quantity).toFixed(2));
}
if (e.field == 'Currency') {
//var ExChangerate = parseFloat(e.record.get('ExChangerate'));
if (e.record.get('Currency') == 'RMB') {
e.record.set('ExChangerate', '1');
}
}
if (e.field == 'FeeName') {
var FeeName = e.record.get('FeeName');
if (FeeName == '购货款') {
e.record.set('Sort', '1');
} else
if (FeeName == '预付款') {
e.record.set('Sort', '2');
} else
if (FeeName == '尾款') {
e.record.set('Sort', '3');
} else
if (FeeName == '关税') {
e.record.set('Sort', '4');
} else
if (FeeName == '增值税') {
e.record.set('Sort', '5');
} else
if (FeeName == '电汇费') {
e.record.set('Sort', '6');
} else
if (FeeName == '手续费') {
e.record.set('Sort', '7');
} else
if (FeeName == '代理费') {
e.record.set('Sort', '8');
} else
if (FeeName == '拖车费') {
e.record.set('Sort', '9');
} else
if (FeeName == '商检验货费') {
e.record.set('Sort', '10');
} else
if (FeeName == '出入库费') {
e.record.set('Sort', '11');
} else
if (FeeName == '冷藏费') {
e.record.set('Sort', '12');
} else
if (FeeName == '超期制冷费') {
e.record.set('Sort', '13');
} else
if (FeeName == '看货费') {
e.record.set('Sort', '14');
} else {
e.record.set('Sort', '999');
}
}
},
// 明细表 费用表相关方法 end
//--------更改单相关方法
onAddAmendClick: function (button, event) {
var store = this.storeAmendBill;
var newbsno = NewGuid();
this.strAmendBSNO = newbsno;
var ContractNo = this.editRecord.get('ContractNo');
var record = null;
record = Ext.create('MsOpFeeAmend', {
GID: DsTruck.newID(),
BSNO: '',
PARENTID: ContractNo,
FEESTATUS: "false",
FEESTATUSREF: '未锁定',
ACCDATE: '',
REASON: '',
REMARKS: '',
CREATETIME: currdate.format('yyyy-MM-dd hh:mm:ss'),
CREATEUSER: SHOWNAME
});
store.add(record);
var editColumnIndex = 4;
cellediting = this.cellEditingAmend;
var n = store.getCount();
cellediting.startEditByPosition({ row: n - 1, column: editColumnIndex });
},
onDeleteAmendClick: function (button, event) {
var selections = this.gridAmendList.getSelectionModel().getSelection();
if (selections.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择业务!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var record = selections[0];
if (record.data.FEESTATUS == '1') {
Ext.Msg.show({ title: '警告', msg: '费用已锁定,不允许删除!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK });
return;
}
if (this.storeAmendChFee.getCount() > 0) {
Ext.Msg.show({ title: '警告', msg: '存在费用信息,不允许删除,请先删除费用信息!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK });
return;
}
Ext.MessageBox.confirm('提示', '确定删除该记录吗?', function (btn) {
if (btn == 'yes') {
Ext.Msg.wait('正在删除数据...');
Ext.Ajax.request({
waitMsg: '正在删除数据...',
url: '/MvcShipping/MsChFee/DeleteAmend',
params: {
data: Ext.JSON.encode(record.data)
},
callback: function (options, success, response) {
if (success) {
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
this.storeAmendBill.remove(record);
Ext.Msg.show({ title: '提示', msg: jsonresult.Message, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
}
else {
Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
}
}
},
failure: function (response, options) {
Ext.Msg.show({ title: '警告', msg: '服务器响应出错,请重试', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
},
success: function (response, options) {
},
scope: this
}); //end Ext.Ajax.request
}
}, this);
},
//--------
parentfunction: function (button, event) {
var ret1 = window.parent.opener.OprationSwap();
// alert(this.First);
ret1[3]();
},
setBaolv: function (field, newValue, oldValue) {
//alert(field+'__'+newValue+'__'+oldValue);
if (newValue == 0) {
this.storeCargo.each(function (record) {
//alert(record.get('baolv'));
record.set('baolv', 1.003);
});
} else {
this.storeCargo.each(function (record) {
//alert(record.get('baolv'));
record.set('baolv', 1.000);
});
}
},
InitData: function () {
this.opStatus = 'edit';
var condition = '';
if (this.ParentPanel) {
var ret = this.ParentPanel.OprationSwap();
this.opStatus = ret[0];
this.StoreList = ret[1];
this.editRecord = ret[2];
this.RefBillNo = ret[3];
}
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 = " m.id='" + this.editRecord.get('id') + "'";
this.LoadData(this.opStatus, condition);
}, //end InitData
//载入数据
LoadData: function (opstatus, condition) {
this.opStatus = opstatus;
var data = '';
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Import/XXH_single/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;
}
data = result.data;
agentid = data.AgentId;
agentname = data.Agent;
// this.formEdit.getForm().reset();
if (data.KCClear == 'True') {
data.KCClear = '1';
} else { data.KCClear = '0' };
if (data.ContractStatus == 'True') {
data.ContractStatus = '1';
} else { data.ContractStatus = '0' };
if (data.AllowOpenMark2 == '0') {
data.remark_2 = '';
}
this.formEdit.getForm().setValues(data);
Ext.getCmp("SAVE1").enable();
Ext.getCmp("SAVE2").enable();
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
}); //request over
if (this.opStatus == 'edit') {
this.formEdit.getForm().findField('ContractNo').setDisabled(false);
var ContractNo = this.editRecord.get('ContractNo');
//alert(this.editRecord.get('ContractNo'));
this.storeReceipt.load({ params: { condition: ContractNo} });
this.storeCargo.load({ params: { condition: ContractNo} });
//this.storeApp.load({ params: { condition: ContractNo} });
//this.storeAppstate.load({ params: { condition: ContractNo} });
//this.storeKC.load({ params: { condition: ContractNo} });
this.storeKC.load({ params: { condition: "K.ContractNo = '" + ContractNo + "' and K.corpid='" + COMPANYID + "'"} });
this.storeBodyChFee.load({ params: { billno: ContractNo, Feetype: '1'} });
this.storeBodyChFee_YF.load({ params: { billno: ContractNo, Feetype: '2'} });
//this.storeAmendBill.load({ params: { billno: ContractNo} });
var s = " countryid='" + this.editRecord.get('countryid') + "'";
//alert(s);
this.storeCargoinfo.load({ params: { condition: s} });
//this.storeCargoinfo.load({ params: { condition: ""} });
this.formEdit.getForm().findField('ContractNo').setDisabled(true);
var ContractStatus = this.editRecord.get('ContractStatus');
if (ContractStatus == "True") {
Ext.getCmp("KCStart").disable();
Ext.getCmp("CWStart").disable();
Ext.getCmp("addChfee").disable();
Ext.getCmp("delChfee").disable();
Ext.getCmp("addChfee_YF").disable();
Ext.getCmp("delChfee_YF").disable();
Ext.getCmp("ApplicationAdd").disable();
}
Ext.Ajax.request({
waitMsg: '正在查询毛利数据...',
url: '/Import/XXH/GetML',
params: {
contractno: ContractNo
},
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.formML.getForm().setValues(data);
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
}); //request over
}
}, // end LoadDate
checkedit: function () {
if (this.storeBodyChFee.getCount() == 0) { return true; }
else {
for (var i = 0; i < this.storeBodyChFee.getCount(); i += 1) {
var member = this.storeBodyChFee.getAt(i).data;
if (member.FeeName == "") {
alert("请填写费用名称");
return false;
} else { return true; }
}
}
},
Save: function (type) {
//alert(this.opStatus);
if (!this.checkedit()) {
return;
}
var basicForm = this.formEdit.getForm();
if (!basicForm.isValid()) {
return;
}
if (!validateEditorGridPanel(this.gridListReceipt)) {
return;
}
// alert('save');
basicForm.findField('ContractNo').setDisabled(false);
var data = this.formEdit.getForm().getValues();
data.Agent = agentid;
basicForm.findField('ContractNo').setDisabled(true);
var bodydatas = [];
for (var i = 0; i < this.storeReceipt.getCount(); i += 1) {
var member = this.storeReceipt.getAt(i);
bodydatas.push(member);
}
var Cargodatas = [];
for (var i = 0; i < this.storeCargo.getCount(); i += 1) {
var member = this.storeCargo.getAt(i);
Cargodatas.push(member);
} /*
var Appstatedatas = [];
for (var i = 0; i < this.storeAppstate.getCount(); i += 1) {
var member = this.storeAppstate.getAt(i);
Appstatedatas.push(member);
}*/
var KCdatas = [];
for (var i = 0; i < this.storeKC.getCount(); i += 1) {
var member = this.storeKC.getAt(i);
KCdatas.push(member);
}
//票据明细用
var jsonBody = ConvertRecordsToJson(bodydatas);
var jsonDelBody = ConvertRecordsToJsonAll(this.bodyDel);
//商品明细
//var CargoBody = ConvertRecordsToJson(Cargodatas);
//var CargoDelBody = ConvertRecordsToJsonAll(this.CargoDel);
//许可证使用
//var AppstateBody = ConvertRecordsToJson(Appstatedatas);
//var AppstateDelBody = ConvertRecordsToJsonAll(this.AppstateDel);
//库存记录
var KCBody = ConvertRecordsToJson(KCdatas);
var KCDelBody = ConvertRecordsToJsonAll(this.KCDel);
//费用
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;
var CustomerName = memberyf.data.CustomerName;
if (amount == 0) {
Ext.Msg.show({ title: '警告',
msg: '费用的金额不允许为0请修改后再保存',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
return;
}
if (CustomerName == '') {
Ext.Msg.show({ title: '警告',
msg: '结算对象不能为空,请修改后再保存',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
return;
}
};
for (i = 0; i < this.storeBodyChFee_YF.getCount(); i += 1) {
var memberyf = this.storeBodyChFee_YF.getAt(i);
bodyChFeeDatas.push(memberyf);
var amount = memberyf.data.Amount;
var CustomerName = memberyf.data.CustomerName;
if (amount == 0) {
Ext.Msg.show({ title: '警告',
msg: '费用的金额不允许为0请修改后再保存',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
return;
}
if (CustomerName == '') {
Ext.Msg.show({ title: '警告',
msg: '结算对象不能为空,请修改后再保存',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
return;
}
};
var jsonChFeeBody = ConvertRecordsToJson(bodyChFeeDatas);
var jsonChFeeDelBody = ConvertRecordsToJsonAll(this.feeBodyDel);
data.KCClear = this.formEdit.getForm().findField('KCClear').getValue() ? 1 : 0;
Ext.Msg.wait('正在保存数据, 请稍侯..');
Ext.Ajax.request({
waitMsg: '正在保存数据...',
url: '/Import/XXH_single/Save',
scope: this,
params: {
opstatus: this.opStatus,
data: Ext.JSON.encode(data),
Receiptbody: jsonBody,
Receiptdelbody: jsonDelBody,
KCBody: KCBody,
KCDelBody: KCDelBody,
chfeebody: jsonChFeeBody,
chfeedelbody: jsonChFeeDelBody
},
callback: function (options, success, response) {
if (success) {
Ext.MessageBox.hide();
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
//this.storeCargo.commitChanges();
this.storeReceipt.commitChanges();
//this.storeAppstate.commitChanges();
this.storeKC.commitChanges();
this.storeBodyChFee.commitChanges();
this.storeBodyChFee_YF.commitChanges();
var returnData = jsonresult.Data;
if (returnData.KCClear == 'True') {
returnData.KCClear = '1';
} else { returnData.KCClear = '0' };
if (returnData.ContractStatus == 'True') {
returnData.ContractStatus = '1';
} else { returnData.ContractStatus = '0' };
returnData.Agent = agentname;
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('XXHmb', returnData);
this.editRecord.fields.each(function (field) {
if (field.persist) {
name = field.name;
//alert(name + ' -- ' + editp.get(name));
if (name != 'id')
this.editRecord.set(name, editp.get(name));
}
}, this);
this.editRecord.commit();
}
if (type == '0') {
this.opStatus = 'edit';
basicForm.findField('ContractNo').setDisabled(false);
//this.storeApp.load({ params: { condition: this.editRecord.get('ContractNo')} });
this.storeCargo.load({ params: { condition: this.editRecord.get('ContractNo')} });
//this.storeKC.load({ params: { condition: this.editRecord.get('ContractNo')} });
this.storeKC.load({ params: { condition: "K.ContractNo = '" + this.editRecord.get('ContractNo') + "' and K.corpid='" + COMPANYID + "'"} });
this.storeReceipt.load({ params: { condition: this.editRecord.get('ContractNo')} });
this.storeBodyChFee.load({ params: { billno: this.editRecord.get('ContractNo'), Feetype: '1'} });
this.storeBodyChFee_YF.load({ params: { billno: this.editRecord.get('ContractNo'), Feetype: '2'} });
basicForm.findField('ContractNo').setDisabled(true);
} else if (type == '1') {//保存并关闭
window.close();
} else if (type == '2') {//保存并全部新建
this.opStatus = 'add';
this.formEdit.getForm().reset();
//this.LoadData('add', '');
basicForm.findField('ContractNo').setDisabled(false);
this.storeCargo.removeAll();
//this.storeApp.removeAll();
//this.storeAppstate.removeAll();
this.storeKC.removeAll();
this.storeReceipt.removeAll();
} else if (type == '3') {//保存并新建,同时保留合同基础信息、货物信息、许可证使用信息
this.formEdit.getForm().setValues({ ContractNo: '' });
this.opStatus = 'add';
//this.LoadData('add', '');
this.formEdit.getForm().findField('ContractNo').setDisabled(true);
this.storeKC.removeAll();
this.storeReceipt.removeAll();
var Cargodatas = [];
for (var i = 0; i < this.storeCargo.getCount(); i += 1) {
this.storeCargo.getAt(i).set("ContractNo", "");
}
var Appstatedatas = [];
for (var i = 0; i < this.storeAppstate.getCount(); i += 1) {
var member = this.storeAppstate.getAt(i).set("ContractNo", "");
}
alert('注意,提单号、箱号、铅封号等信息不要重复');
}
} 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
Print: function () {
var selectedRecords = this.gridListChFee.selModel.getSelection();
var chfeeList = "";
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
if (chfeeList == "") {
chfeeList = "'" + rec.get('GId') + "'";
}
else {
chfeeList = chfeeList + ",'" + rec.get('GId') + "'";
}
}
var selectedRecords = this.gridListChFee_YF.selModel.getSelection();
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
if (chfeeList == "") {
chfeeList = "'" + rec.get('GId') + "'";
}
else {
chfeeList = chfeeList + ",'" + rec.get('GId') + "'";
}
}
if (chfeeList == "") {
Ext.Msg.show({ title: '错误', msg: '至少选择一项费用', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
return;
}
var basicForm = this.formEdit.getForm();
var ContractNo = this.editRecord.get('ContractNo')
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 printType = 'XXH_Port_KHDZ'; //单笔客户对账
//
var sql1 = " select *, ";
var sql1 = sql1 + "(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=10 and EnumValueID=M.port) as portRef, ";
var sql1 = sql1 + " dbo.f_str(m.contractno) cargoname,dbo.F_FactoryNo(M.contractno) from import_main m where contractno='" + ContractNo + "' ";
var sql2 = " select feename,unitprice,quantity,currency,exchangerate, ";
var sql2 = sql2 + " case feetype when '1' then amount else 0-amount end Amount,remark ";
var sql2 = sql2 + " from ch_fee where gid in( ";
var sql2 = sql2 + chfeeList + " ) order by sort";
var sql3 = "select * from [user] where codename='" + usercode + "'";
var sql4 = "select '" + needdate + "' needdate,'" + printdate + "' printdate";
var sql5 = "select prtheadxml3 name,prtheadxml4 ZH,prtheadxml5 YH from company where gid=(select company from import_main where contractno='" + ContractNo + "')";
var sql6 = "select dbo.f_str('" + ContractNo + "'),sum(weight) [weight] from import_cargo where contractno='" + ContractNo + "'";
PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6);
}
,
PrintOut: function () {
var selectedRecords = this.formKC.selModel.getSelection();
var KCList = "";
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
if (KCList == "") {
KCList = rec.get('id');
}
else {
KCList = KCList + "," + rec.get('id');
}
}
if (KCList == "") {
Ext.Msg.show({ title: '错误', msg: '至少选择一条库存记录', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
return;
}
var basicForm = this.formEdit.getForm();
var ContractNo = this.editRecord.get('ContractNo')
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 printType = 'XXH_TJCK'; //天津出库
//
var sql1 = " select m.hth 合同号,k.outnum 出库数量,k.Weight 出库重量,k.kfstate 库房,k.czdate 出库日期 ";
sql1 = sql1 + " ,m.inspection_no 报检号,m.BillNo 提单号,m.ContainerNo 箱号,k.cargo_id 商品名称 ";
sql1 = sql1 + " ,(select top 1 isnull(name,'') from import_cargo where convert(varchar,id)=k.cargo_id) 商品名称_原 ";
sql1 = sql1 + " ,m.Buyer 客户名称,(select enumvaluename from tSysEnumValue where enumtypeid=8 and enumvalueid=k.czstate ) 作业内容 ";
sql1 = sql1 + " ,k.czdate 作业时间,substring((select top 1 country from code_country where countryid= m.countryid),0,(charindex('(',(select top 1 country from code_country where countryid= m.countryid))) ) 进口国 ";
sql1 = sql1 + " ,m.sealno 铅封号,M.Contacter 联系人,M.Tel 联系电话,K.remark 备注,M.op 操作人 ";
sql1 = sql1 + " from import_kc k ";
sql1 = sql1 + " left join import_main m on m.contractno=k.contractno where k.id in(" + KCList + ")";
var sql2 = "SELECT [id],[ContractNo],[cargo_id],[CZState],[InNum],[OutNum],[KFstate],dbo.trimdate(CZdate) czdate ";
var sql2 = sql2 + ",[text],[days],[FeeName],[UnitPrice],[Quantity],[Amount],[Sended],[Weight] FROM [Shippingweb].[dbo].[Import_KC] ";
var sql2 = sql2 + " where id in( " + KCList + " ) order by czdate";
var sql3 = "select * from [user] where codename='" + usercode + "'";
var sql4 = "select '" + needdate + "' needdate,'" + printdate + "' printdate";
var sql5 = "select prtheadxml3 name,prtheadxml4 ZH,prtheadxml5 YH from company where gid=(select company from import_main where contractno='" + ContractNo + "')";
var sql6 = "";
PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6);
}
, DoPrint: function () {
var _p = this.MainTab.getActiveTab().id;
if (_p == "page_2") {
//打印仓储费对账单
this.PrintOut();
}
if (_p == "page_4") {
//打印应收应付
this.Print();
}
} /*,
CheckChFeeDelete: function (records, type) {
for (var i = 0; i < records.length; i++) {
var rec = records[i];
var feeStatus = rec.data.FeeStatus;
var canDelete = feeStatus == 1 || feeStatus == 6;
if (canDelete == false) {
Ext.Msg.show({ title: '提示',
msg: '只能删除费用状态为[录入状态]和[驳回提交]的费用,请重新选择',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
return false;
}
if (canDelete == true) {
var op = rec.data.EnteroPerator;
var opname = rec.data.OpName;
if (type == "1") {
var recop = DsStoreQueryBy(this.StoreDrOpRange, 'OPID', op);
if (recop.getCount() > 0) {
} else {
Ext.Msg.show({ title: '提示', msg: '你没有权限删除' + opname + '录入的费用!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
canDelete = false;
}
} else if (type == "2") {
var recop = DsStoreQueryBy(this.StoreCrOpRange, 'OPID', op);
if (recop.getCount() > 0) {
} else {
Ext.Msg.show({ title: '提示', msg: '你没有权限删除' + opname + '录入的费用!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
canDelete = false;
}
}
}
}
return true;
}*/
});