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.
DS7/DSWeb/Areas/Account/Viewsjs/Chfee_invoice_HangXin/ChInvoiceAppEdit.js

6220 lines
238 KiB
JavaScript

This file contains ambiguous Unicode characters!

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

Ext.namespace('Shipping');
Shipping.MsChInvoiceAppEdit = function (config) {
Ext.applyIf(this, config);
this.initUIComponents();
window.Shipping.MsChInvoiceAppEdit.superclass.constructor.call(this);
};
Ext.extend(Shipping.MsChInvoiceAppEdit, Ext.Panel, {
ParentWin: null,
OpStatus: 'add',
StoreList: null,
EditRecord: null,
addstore: false,
PageSize: 30,
initUIComponents: function () {
this.serialNo = 0;
this.workSerialNo = 0;
this.bodyDel = [];
this.FeeSql = '';
this.BillSql = '';
this.DuiBillSql = '';
this.IsDebit = '0';
this.canedit = false;
this.AddMblNo = 1;
this.firsttemplate = 1;
this.sqlcontext = '';
this.formname = "MsChInvoiceAppEdit"; //页面名称
var baseflex = 1;
var labelwidth_sale = 70;
var labelwidth_top1 = 65;
//绑定查询窗体
this.ParentWin = window.parent.opener;
mainWin = getMainForm(this.ParentWin);
//#region store
this.StoreLockOp = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsFeeOP',
proxy: {
url: '/MvcShipping/MsBaseInfo/GetOpIDRang'
}
});
this.StoreLockOp.load({
params: {
optype: "modInvLock"
}
});
this.StoreUnLockOp = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsFeeOP',
proxy: {
url: '/MvcShipping/MsBaseInfo/GetOpIDRang'
}
});
this.StoreUnLockOp.load({
params: {
optype: "modInvUnLock"
}
});
this.storeMustBe = Ext.create('Ext.data.Store', {
model: 'DsShipping.ux.OpDefValue',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/MvcShipping/MsCodeOpMustField/GetDataList',
reader: {
id: 'GID',
root: 'data',
totalProperty: 'totalCount'
}
}
});
Ext.define('DsShipping.ux.MsClientGroup', {
extend: 'Ext.data.Model',
fields: [{
name: 'SHORTNAME',
type: 'string'
},
{
name: 'PCORPNAME',
type: 'string'
},
{
name: 'CODENAME',
type: 'string'
}]
});
this.StoreClientGroup = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.MsClientGroup',
proxy: {
url: '/MvcShipping/MsInfoClient/GetClientGroupList'
}
});
this.StoreClientGroup.load({
params: {
condition: "PCORPNAME<>'' "
}
});
this.storecustbank = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsInfoClientBankModel',
async:false,
proxy: {
url: '/MvcShipping/MsInfoClient/GetBankList'
}
});
this.comboxCustBank = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '开户行及账号',
store: this.storecustbank,
// forceSelection: true,
name: 'CUSTBANK',
valueField: 'BANKNAME_ACCOUNT',
displayField: 'BANKNAME_ACCOUNT'
});
this.StoreCodeGoodInv = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsCodeGoodInv',
proxy: {
url: '/MvcShipping/MsCodeGoodInv/GetDataList'
}
});
this.StoreCodeGoodInv.load({
params: {
condition: ""
}
});
this.comboxCodeGoodInv = Ext.create('DsExt.ux.RefTableCombox', {
store: this.StoreCodeGoodInv,
forceSelection: true,
valueField: 'GID',
displayField: 'GOODCODENAME',
matchFieldWidth: false,
listeners: {
beforequery: function (e) {
return FilterCombox(e); //在beforequery使用此方法
},
scope: this
}
});
this.storeOpCode = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.UserRefModel',
proxy: { url: '/CommMng/BasicDataRef/GetUserLinkRefListRm' }
});
this.storeOpCode.load();
this.storeOpCode2 = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.UserRefModel',
proxy: { url: '/CommMng/BasicDataRef/GetUserLinkRefListRm' }
});
this.storeOpCode3 = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.UserRefModel',
proxy: { url: '/CommMng/BasicDataRef/GetUserLinkRefListRm' }
});
this.storeOpCode.on('load', function (store, records) {
if (store.getCount() > 0) {
this.storeOpCode2.add(records);
this.storeOpCode3.add(records);
}
}, this);
this.comboxOPERATOR = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '开票人', //'客服',
matchFieldWidth: false,
store: this.storeOpCode,
forceSelection: true,
//queryMode: 'remote',
flex: 0.5,
labelWidth: labelwidth_top1,
minChars: 0,
//queryParam: 'CODENAME',
name: 'OPERATOR',
valueField: 'GID',
displayField: 'UserName',
enableKeyEvents: true
});
this.comboxPAYEE = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '收款人', //'客服',
matchFieldWidth: false,
store: this.storeOpCode3,
//forceSelection: true,
//queryMode: 'remote',
flex: 0.5,
labelWidth: labelwidth_top1,
minChars: 0,
//queryParam: 'CODENAME',
name: 'PAYEE',
valueField: 'UserName',
displayField: 'UserName',
enableKeyEvents: true
});
this.comboxCHECKER = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '复核人', //'客服',
matchFieldWidth: false,
store: this.storeOpCode2,
//forceSelection: true,
//queryMode: 'remote',
flex: 0.5,
labelWidth: labelwidth_top1,
minChars: 0,
//queryParam: 'CODENAME',
name: 'CHECKER',
valueField: 'UserName',
displayField: 'UserName',
enableKeyEvents: true
});
//#endregion
//#region 编辑form
//#region 枚举参照相关 (编辑form)
this.comboxPTORRED = getEnumcombox({
LABEL: '开票类型',
NAME: 'PTORRED',
FLEX: baseflex * 0.5,
enumTypeId: 80001,
ALLOWBLANK: false,
value:'正票',
readOnly: true
});
this.comboxPUSHMODE = getEnumcombox({
LABEL: '开票通知推送',
NAME: 'PUSHMODE',
FLEX: 1,
enumTypeId: 80002
});
this.storeINVOICELINE = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsExtEnumModel',
proxy: { url: '/CommMng/PubSys/GetEnumValueList' }
});
this.storeINVOICELINE.load({ params: { enumTypeId: 80003 } });
this.comboxINVOICELINE = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '发票种类',
store: this.storeINVOICELINE,
flex: 0.65,
forceSelection: true,
name: 'INVOICELINE',
valueField: 'EnumValueId',
displayField: 'EnumValueName',
listeners: {
scope: this,
'select': function (combo, records, eOpts) {
if (records.length > 0) {
_this.setInvTile(records[0].data.EnumValueName);
}
}
}
});
//this.comboxINVOICELINE = getEnumcombox({
// LABEL: '发票种类',
// NAME: 'INVOICELINE',
// FLEX: 0.65,
// enumTypeId: 80003,
// listeners: {
// scope: this,
// 'select': function (combo, records, eOpts) {
// if (records.length > 0) {
// _this.setInvTile(records[0].data.EnumValueName);
// }
// }
// }
//});
this.storeInfoClientMailTel = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.InfoClientContactModel',
proxy: { url: '/CommMng/BasicDataRef/GetInfoClientMailTel' }
});
this.comboxInfoClientMailTel = Ext.create('DsExt.ux.RefTableCombox', {
labelWidth: 55,
fieldLabel: '推送邮箱',
flex: 1.4,
store: this.storeInfoClientMailTel,
forceSelection: false,
name: 'PUSHEMAIL',
valueField: 'EMAIL',
displayField: 'NAMEANDEMAIL',
listeners: {
focus: function (field, newValue, oldValue) {
//在focus时 如果记录数为1 则载入
var CUSTOMERNAME = this.formEdit.getForm().findField('CUSTOMERNAME').getValue();
_this = this;
var currmail = this.formEdit.getForm().findField('PUSHEMAIL').getValue();
if (!isNullorEmpty(CUSTOMERNAME))
this.storeInfoClientMailTel.load({
params: { CUSTOMERNAME: CUSTOMERNAME }
,
callback: function (r, options, success) {
if (!isNullorEmpty(currmail)) {
Data_pushmail = { EMAIL: currmail, NAMEANDEMAIL: currmail };
_this.storeInfoClientMailTel.add(Data_pushmail);
_this.formEdit.getForm().findField('PUSHEMAIL').setValue(currmail);
}
},
scope: this
});
},
scope: this
}
});
this.comboxINVOICELINE.labelWidth = labelwidth_top1;
//#endregion
//#region 表参照相关(编辑form)
this.storeCurrExrate = Ext.create('Ext.data.Store', {
fields: ['CURR', 'EXRATE']
});
this.storeCustInfo = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.CustomInvRefModel',
proxy: {
url: '/CommMng/BasicDataRef/GetCustomInvRefList'
}
});
this.storeCustCode = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.CustomInvRefModel',
proxy: {
url: '/CommMng/BasicDataRef/GetCustomInvRefList'
}
});
this.storeCustCode.load({ params: { condition: "" } });
//this.storeCustCode.load({
// params: {
// condition: ""
// }
//});
// this.storeCustCode.loadData(mainWin.GetPubStore("INFOCLIENT_INV").data.items);
this.comboxCustCode = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '系统客户',
matchFieldWidth: false,
store: this.storeCustCode,
//allowBlank: false,
flex: 1.5,
labelWidth: labelwidth_sale,
forceSelection: true,
name: 'CUSTOMERNAME',
valueField: 'CustName',
displayField: 'CodeAndName',
//matchFieldWidth: false,
listeners: {
scope: this,
'beforequery': function (e) {
return FilterCombox(e); //在beforequery使用此方法
},
'select': function (combo, records, eOpts) {
if (records.length > 0) {
//如果有代开客户的话 不做进一步处理
ACTUALCUSTOMERNAME = this.formEdit.getForm().findField('ACTUALCUSTOMERNAME');
if (!isNullorEmpty(ACTUALCUSTOMERNAME.getValue())) {
return;
}
selectCustName = records[0].data.CustName;
var recs = DsStoreQueryBy(this.storeCustInfo, 'CustName', selectCustName);
var INVOICECUSTNAME = this.formEdit.getForm().findField('INVOICECUSTNAME');
var CUSTRATENO = this.formEdit.getForm().findField('CUSTRATENO');
var CUSTADDRTEL = this.formEdit.getForm().findField('CUSTADDRTEL');
var CUSTADDR = this.formEdit.getForm().findField('CUSTADDR');
var CUSTTEL = this.formEdit.getForm().findField('CUSTTEL');
var CUSTBANK = this.formEdit.getForm().findField('CUSTBANK');
var CURR = this.formEdit.getForm().findField('RECVCURR').getValue();
if (recs.getCount() > 0) {
var data = recs.getAt(0).data;
INVOICECUSTNAME.setValue(data.BillRises1);
CUSTRATENO.setValue(data.TaxNo);
CUSTADDRTEL.setValue(data.INVADDRTEL);
CUSTTEL.setValue(getEndTel(data.INVADDRTEL));
CUSTADDR.setValue(data.INVADDRTEL.replace(getEndTel(data.INVADDRTEL), ""));
this.setCustBank(selectCustName, CURR);
// CUSTADDRTEL.setValue(data.Addr + ' ' + data.Tel);
} else {
INVOICECUSTNAME.setValue('');
CUSTRATENO.setValue('');
CUSTADDRTEL.setValue('');
CUSTBANK.setValue('');
CUSTADDR.setValue('');
CUSTTEL.setValue('');
}
var CUSTOMERNAME = this.formEdit.getForm().findField('CUSTOMERNAME');
if (CUSTOMERNAME == '') return;
var CUSTNAME = this.formSearch.getForm().findField('CustName');
var tmpcust = CUSTNAME.getValue();
if (tmpcust == '' || tmpcust == null || tmpcust == undefined) {
CUSTNAME.setValue(CUSTOMERNAME);
}
}
}
}
});
this.storeInvCustCode = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.CustomInvRefModel',
proxy: {
url: '/CommMng/BasicDataRef/GetCustomInvRefList'
}
});
this.storeInvCustCode.load({ params: { condition: "" } });
//this.storeInvCustCode.load({
// params: {
// condition: ""
// }
//});
// this.storeInvCustCode.loadData(mainWin.GetPubStore("INFOCLIENT_INV").data.items);
this.comboxInvCustCode = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '代开客户',
labelWidth: labelwidth_sale,
flex: 1.5,
store: this.storeInvCustCode,
forceSelection: true,
name: 'ACTUALCUSTOMERNAME',
matchFieldWidth: false,
valueField: 'CustName',
displayField: 'CodeAndName',
listeners: {
scope: this,
'beforequery': function (e) {
return FilterCombox(e); //在beforequery使用此方法
},
'select': function (combo, records, eOpts) {
if (records.length > 0) {
var recs = DsStoreQueryBy(this.storeInvCustCode, 'CustName', records[0].data.CustName);
var INVOICECUSTNAME = this.formEdit.getForm().findField('INVOICECUSTNAME');
var CUSTRATENO = this.formEdit.getForm().findField('CUSTRATENO');
var CUSTADDRTEL = this.formEdit.getForm().findField('CUSTADDRTEL');
var CUSTADDR = this.formEdit.getForm().findField('CUSTADDR');
var CUSTTEL = this.formEdit.getForm().findField('CUSTTEL');
var CUSTBANK = this.formEdit.getForm().findField('CUSTBANK');
var CURRFIELD = this.formEdit.getForm().findField('RECVCURR');
var CURR = CURRFIELD.getValue();
if (recs.getCount() > 0) {
var data = recs.getAt(0).data;
INVOICECUSTNAME.setValue(data.BillRises1);
CUSTRATENO.setValue(data.TaxNo);
CUSTADDRTEL.setValue(data.INVADDRTEL);
CUSTTEL.setValue(getEndTel(data.INVADDRTEL));
CUSTADDR.setValue(data.INVADDRTEL.replace(getEndTel(data.INVADDRTEL), ""));
custname = data.CustName;
this.setCustBank(custname, CURR);
} else {
INVOICECUSTNAME.setValue('');
CUSTRATENO.setValue('');
CUSTADDRTEL.setValue('');
CUSTBANK.setValue('');
CUSTADDR.setValue('');
CUSTTEL.setValue('');
}
}
}
}
});
this.StoreOpRange = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsOP',
proxy: {
url: '/MvcShipping/MsBaseInfo/GetOpRang'
}
});
this.StoreCurr = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsFeeCurr',
proxy: {
url: '/MvcShipping/MsChFee/GetFeeCurrList'
}
});
this.StoreCurr.load({
params: {
condition: ""
}
});
this.StoreDateCurr = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsFeeCurr',
proxy: {
url: '/MvcShipping/MsChFee/GetFeeNowInvCurrList'
}
});
this.StoreDateCurr.load({
params: {
condition: ""
}
});
//20191024 改为币别固定为RMB
//this.comboxCurr = Ext.create('DsExt.ux.RefTableCombox', {
// fieldLabel: '币别',
// store: this.StoreCurr,
// forceSelection: true,
// allowBlank: false,
// labelWidth: 60,
// name: 'CURRENCY',
// valueField: 'CURR',
// displayField: 'CURR'
//});
this.StoreCurr2 = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsFeeCurr',
proxy: {
url: '/MvcShipping/MsChFee/GetFeeCurrList'
}
});
this.StoreCurr2.load({
params: {
condition: ""
}
});
this.comboxCurr2 = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '发票币别',
store: this.StoreCurr2,
forceSelection: true,
labelWidth: 60,
flex: 1,
name: 'RECVCURR',
valueField: 'CURR',
displayField: 'CURR',
listeners: {
scope: this,
'select': function (combo, records, eOpts) {
if (records.length > 0) {
ACTUALCUSTOMERNAME_Field = this.formEdit.getForm().findField('ACTUALCUSTOMERNAME');
CUSTOMERNAME_Field = this.formEdit.getForm().findField('CUSTOMERNAME');
ACTUALCUSTOMERNAME = ACTUALCUSTOMERNAME_Field.getValue();
CUSTOMERNAME = CUSTOMERNAME_Field.getValue();
custname = "";
if (!isNullorEmpty(ACTUALCUSTOMERNAME)) {
custname = ACTUALCUSTOMERNAME;
} else {
custname = CUSTOMERNAME;
}
if (isNullorEmpty(custname)) return;
var CURR = records[0].data.RECVCURR;
this.setCustBank(custname, CURR);
this.setBank(CURR);
}
}
}
});
this.storeInvCategory = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsExtEnumModel',
proxy: {
url: '/CommMng/PubSys/GetEnumValueList'
}
});
this.storeInvCategory.load({
params: {
enumTypeId: 97008
}
});
this.comboxInvCategory = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '类型',
labelWidth: labelwidth_sale,
flex: 1,
store: this.storeInvCategory,
forceSelection: true,
name: 'INVOICECATEGORY',
valueField: 'EnumValueId',
displayField: 'EnumValueName'
});
this.StoreInvNo = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsChInvoiceNo',
proxy: {
url: '/Account/Chfee_invoice_HangXin/GetInvoiceNo'
}
});
///航信接口不能指定发票号
//this.comboxInvNo = Ext.create('DsExt.ux.RefTableCombox', {
// store: this.StoreInvNo,
// fieldLabel: '发票号',
// flex: 1.5,
// name: 'INVOICENO',
// valueField: 'INVNO',
// displayField: 'INVNO'
//});
this.storeSaleCompany = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsCompanysEntity',
proxy: {
url: '/MvcShipping/MsCompanys/GetNoPicDataList'
}
});
this.storeSaleCompany.load({
params: {
condition: ""
}
});
this.comboxSaleCompany = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '收款单位',
//'委托分公司',
tooltip: '注意,销售方信息将使用这里选择的分公司信息',
store: this.storeSaleCompany,
forceSelection: true,
name: 'SALECORPID',
labelWidth: labelwidth_sale,
flex: 1,
id: 'PAYCOMPANYID',
valueField: 'GID',
displayField: 'NAME',
listeners: {
scope: this,
'beforequery': function (e) {
return FilterCombox(e); //在beforequery使用此方法
},
'select': function (combo, records, eOpts) {
if (records.length > 0) {
var companyid = records[0].data.GID;
var CURR = this.formEdit.getForm().findField('RECVCURR').getValue();
this.formEdit.getForm().findField('ACCOUNT').setValue('');
this.StoreBANK.load({
params: { condition: " LINKID='" + companyid + "'" },
callback: function (r, options, success) {
if (success) {
if (this.StoreBANK.getCount() > 0) {
for (var i = 0; i < this.StoreBANK.getCount(); i += 1) {
var member = this.StoreBANK.getAt(i);
if (member.data.CURRENCY == CURR && member.data.ISDEF == 'True') {
this.formEdit.getForm().findField('ACCOUNT').setValue(member.data.BANKACCOUNT);
}
}
}
}
},
scope: this
});
}
}
}
});
this.StoreBANK = Ext.create('DsExt.ux.RefTableStore', {
model: 'BANK',
proxy: {
url: '/MvcShipping/MsBaseInfo/GetAllBANKList'
}
});
this.StoreBANK.load({
params: {
condition: ""
}
});
this.comboxBANK = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '银行及账号',
store: this.StoreBANK,
flex: 2,
labelWidth: labelwidth_sale,
// forceSelection: true,
name: 'ACCOUNT',
valueField: 'BANKACCOUNT',
displayField: 'BANKACCOUNT'
});
//#endregion
//编辑form
this.formEdit = Ext.widget('form', {
region: 'center',
frame: true,
bodyPadding: 3,
trackResetOnLoad: true,
// autoScroll: true,
fieldDefaults: {
margins: '4 0 0 0',
labelAlign: 'right',
flex: 1,
labelWidth: 77,
msgTarget: 'qtip'
},
items: [{ //fieldset 1
xtype: 'fieldset',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [
{
//第一大格第一行
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
margins: '4 0 0 4',
items: [{
fieldLabel: 'GID',
name: 'GID',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'BILLSTATUS',
name: 'BILLSTATUS',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'DZSTATUS',
name: 'DZSTATUS',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'VOUCHERNO',
name: 'VOUCHERNO',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'INVITERFACE',
name: 'INVITERFACE',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'VOUNO',
name: 'VOUNO',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'APPLICANT',
name: 'APPLICANT',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'OPERATORNAME',
name: 'OPERATORNAME',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'CREATEUSER',
name: 'CREATEUSER',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'CREATETIME',
name: 'CREATETIME',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'COMPANYID',
name: 'COMPANYID',
flex: 0,
hidden: true,
margins: '0'
},
{
fieldLabel: 'INVOICETYPE',
value: '1',
name: 'INVOICETYPE',
flex: 0,
hidden: true,
margins: '0'
},
//{
// fieldLabel: 'REMARK',
// name: 'REMARK',
// flex: 0,
// hidden: true,
// margins: '0'
//},
{
fieldLabel: '编号',
readOnly: true,
hidden: true,
flex: 1,
name: 'BILLNO'
},
{
fieldLabel: '发票类别',
readOnly: true,
flex: 0.5,
name: 'INVOICETYPEREF'
},
{
fieldLabel: '开票日期',
labelWidth: labelwidth_top1,
tooltip: '记录“开出发票”的时间',
flex: 0.5,
format: 'Y-m-d',
xtype: 'datefield',
name: 'INVOICEMAKETIME'
},
this.comboxOPERATOR ,
this.comboxPAYEE,
this.comboxCHECKER,
{
fieldLabel: '是否锁定',
labelWidth: labelwidth_top1,
flex: 0.5,
readOnly: true,
name: 'BILLSTATUSREF'
},
{
fieldLabel: '是否打印',
labelWidth: labelwidth_top1,
flex: 0.5,
readOnly: true,
name: 'ISNEEDPRINT'
},
{
fieldLabel: '是否结算',
labelWidth: labelwidth_top1,
flex: 0.5,
readOnly: true,
name: 'ISNEEDFEE'
},
{
fieldLabel: '是否作废',
labelWidth: labelwidth_top1,
flex: 0.5,
readOnly: true,
name: 'ISDELETE'
},
{
fieldLabel: '被冲红',
labelWidth: labelwidth_top1,
flex: 0.5,
readOnly: true,
name: 'SETRED'
},
{
xtype: 'hiddenfield',
flex: 0
}]
},
{
//第一大格第二行
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
margins: '4 0 0 4',
items: [this.comboxPTORRED, this.comboxINVOICELINE,
{
fieldLabel: 'EINVOICESTATE',
hidden: true,
flex: 1,
name: 'EINVOICESTATE'
},
{
fieldLabel: '发票号',
readOnly: true,
labelWidth: labelwidth_top1,
flex: 0.85,
name: 'INVOICENO',
listeners: {
// 鼠标移动到文本框显示悬浮框
render: function (p) {
p.getEl().on('mouseover',
function (p1) {
updateTip(p, '目前纸票和电票的票号都不可以指定\r\n\n纸票需要开出后自动生成发票号\n然后根据这个发票号放置相应票号的空白发票进行打印');
});
}
}
},
{
fieldLabel: '发票代码',
labelWidth: labelwidth_top1,
readOnly: true,
flex: 1,
name: 'INVOICECODE'
},
{
fieldLabel: '发票流水号',
labelWidth: labelwidth_top1,
readOnly: true,
flex: 1,
name: 'INVOICESERIALNUM'
},
{
fieldLabel: '开票状态',
labelWidth: labelwidth_top1,
flex: 1,
readOnly: true,
name: 'EINVOICESTATEREF'
},
{
fieldLabel: '发票详情页',
hidden: true,
flex: 1,
readOnly: true,
name: 'INVOICEINFOURL'
},
{
fieldLabel: '发票PDF地址',
hidden: true,
flex: 1,
readOnly: true,
name: 'INVOICEPDFURL'
}
//,
//{
// xtype:'hiddenfield',flex:0.01
//}
]
}
] //end items(fieldset 1)
},
//end fieldset 1
{
xtype: 'container',
//fieldset外侧带框线
defaultType: 'textfield',
layout: 'hbox',
defaults: {
anchor: '100%'
},
items: [{
xtype: 'container',
layout: 'anchor',
flex: 2.5,
defaultType: 'textfield',
margins: '2 0 0 4',
items: [{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
xtype: 'label',
flex: 0.5,
text: '',
}, {
xtype: 'label',
id: 'INVTITLE',
flex: 1,
text: '增值税普通发票',
style: {
width: '95%',
align: 'center',
marginBottom: '10px',
color: '#9c5223',
fontSize: '30px'
}
}]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '发票抬头',
name: 'INVOICECUSTNAME'
},{
fieldLabel: '纳税人识别号',
name: 'CUSTRATENO'
}]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '地址、电话',
hidden: true,
name: 'CUSTADDRTEL'
},
{
fieldLabel: '电话',
flex: 0.8,
name: 'CUSTTEL'
},
{
fieldLabel: '地址',
flex: 1.2,
labelWidth: 30,
name: 'CUSTADDR'
}]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [this.comboxCustBank]
},
{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [this.comboxPUSHMODE, {
labelWidth: 60,
fieldLabel: '*推送手机',
flex: 1.1,
name: 'PUSHMOBILE'
},
//{
// labelWidth: 55,
// fieldLabel: '推送邮箱',
// flex: 1.4,
// name: 'PUSHEMAIL'
// }
this.comboxInfoClientMailTel
]
}]
},
{
xtype: 'fieldset',
defaultType: 'textfield',
flex: 5,
layout: 'anchor',
margins: '4 0 0 4',
defaults: {
anchor: '100%'
},
items: [{
xtype: 'container',
layout: 'hbox',
flex: 1,
defaultType: 'textfield',
items: [
//this.comboxCurr,//币别固定为rmb
{
fieldLabel: '币别',
labelWidth: 60,
name: 'CURRENCY',
hidden: true
},
this.comboxInvCategory, this.comboxCurr2,
{
fieldLabel: '实际金额',
labelWidth: labelwidth_sale,
flex: 1,
name: 'AMOUNT',
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue;
if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
} else {
return value;
}
} catch (e) {
return value;
}
return value;
}
},
{
fieldLabel: '开票金额',
labelWidth: labelwidth_sale,
flex: 1,
name: 'INVAMOUNT',
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue;
if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
} else {
return value;
}
} catch (e) {
return value;
}
return value;
}
},
{
fieldLabel: '开票税率',
labelWidth: labelwidth_sale,
flex: 1,
name: 'EXCHANGERATE',
listeners: {
scope: this,
blur: function (field, The, eOpts) {
_this.ChangeInvRate(field.value);
}
}
},
{
fieldLabel: '外币金额',
labelWidth: labelwidth_sale,
flex: 1,
name: 'OTCURRAMOUNT',
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue;
if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
} else {
return value;
}
} catch (e) {
return value;
}
return value;
}
}
]
},
{
xtype: 'container',
layout: 'hbox',
flex: 1,
defaultType: 'textfield',
items: [
this.comboxSaleCompany //所属分部
, this.comboxBANK //银行账户
, this.comboxCustCode
, this.comboxInvCustCode
]
},
{
xtype: 'container',
layout: 'hbox',
flex: 1,
defaultType: 'textfield',
items: [
{
xtype: 'textareafield',
grow: true,
name: 'REMARK',
height: 61,
fieldLabel: '备注',
anchor: '100%'
}
, {
xtype: 'fieldset',
defaultType: 'textfield',
layout: 'anchor',
region: 'east',
width: 160,
defaults: {
anchor: '100%'
},
items: [
//this.comboxBANK
//,
{
xtype: 'container',
layout: 'hbox',
//flex: 1,
defaultType: 'textfield',
items: [{
xtype: 'button',
text: "提取备注",
handler: function (button, event) {
this.ImportRemarks();
},
scope: this
}]
}, {
xtype: 'container',
layout: 'hbox',
//flex: 1,
defaultType: 'textfield',
items: [{
xtype: 'button',
text: "模板设置",
handler: function (button, event) {
this.SetRemarksTemplate();
},
scope: this
}]
}]
},
//////
{
fieldLabel: '船名航次', hidden: true,
labelWidth: 60,
flex: 1,
name: 'VESSELVOYAGE'
},
{
fieldLabel: '提单号', hidden: true,
labelWidth: 60,
name: 'MBLNO',
enableKeyEvents: true,
//激活键盘事件
listeners: {
scope: this,
'render': function (_field, eOpts) { //自定义函数,定义双击事件
var _this = this;
_field.getEl().on('dblclick',
function (e, t, eOpts) {
var mblno = _this.formEdit.getForm().findField('MBLNO').getValue();
_this.formSearch.getForm().findField('CustomNo').setValue(mblno);
_this.onRefreshClick();
});
}
}
},
{
fieldLabel: '委托编号', hidden: true,
labelWidth: 60,
name: 'BSNO',
enableKeyEvents: true,
//激活键盘事件
listeners: {
scope: this,
'render': function (_field, eOpts) { //自定义函数,定义双击事件
var _this = this;
_field.getEl().on('dblclick',
function (e, t, eOpts) {
var mblno = _this.formEdit.getForm().findField('BSNO').getValue();
_this.formSearch.getForm().findField('CustomNo').setValue(mblno);
_this.onRefreshClick();
});
}
}
},
{
fieldLabel: '起运港', hidden: true,
labelWidth: 60,
name: 'POL'
}
]
},
{
xtype: 'container',
layout: 'hbox',
flex: 1,
defaultType: 'textfield',
items: [{
fieldLabel: '卸货港', hidden: true,
labelWidth: 60,
name: 'POD'
},
{
fieldLabel: 'ETD', hidden: true,
labelWidth: 60,
name: 'ETD'
}
]
}
]
}] //end items(fieldset 2)
}
] //end root items
}); //end this.formEdit
//#endregion
//#region 按钮Toolbar
this.panelBtn = new Ext.Panel({
region: "north",
tbar: [{
id: 'btnEPrev',
text: "上一票",
//"上一票",
// iconCls: "btnsave",
handler: function (button, event) {
this.PrevRecord();
},
scope: this
},
{
id: 'btnENext',
text: "下一票",
//"下一票",
// iconCls: "btnsave",
handler: function (button, event) {
this.NextRecord();
},
scope: this
},
{
id: 'btnESave',
text: "保存",
iconCls: "btnsave",
handler: function (button, event) {
this.Save('0');
},
scope: this
},
'-', {
id: 'btnESaveAndClose',
text: "保存并关闭",
handler: function (button, event) {
this.Save('1');
},
scope: this
},
'-', {
id: 'btnESaveAndNew',
text: "保存并新建",
handler: function (button, event) {
this.Save('2');
this.GetEditStatus();
},
scope: this
},
'-', {
id: 'btnENew',
text: "新建",
handler: function (button, event) {
this.LoadData('add', '*');
},
scope: this
},
{
id: 'btnECopyNew',
text: "复制新建",
handler: function (button, event) {
var basicForm = this.formEdit.getForm();
this.opStatus = 'add';
basicForm.findField('GID').setDisabled(false);
var field = basicForm.findField('GID');
var BSNO = NewGuid();
field.setValue(BSNO);
basicForm.findField('GID').setDisabled(true);
field = basicForm.findField('VOUCHERNO');
field.setValue('');
field = basicForm.findField('VOUNO');
field.setValue('');
field = basicForm.findField('INVOICENO');
field.setValue('');
field = basicForm.findField('INVOICECODE');
field.setValue('');
field = basicForm.findField('EINVOICESTATE');
field.setValue('');
field = basicForm.findField('BILLNO');
field.setValue('');
field = basicForm.findField('BILLSTATUS');
field.setValue('0');
field = basicForm.findField('BILLSTATUSREF');
field.setValue('未锁定');
field = basicForm.findField('ISNEEDPRINT');
field.setValue('');
field = basicForm.findField('ISNEEDFEE');
field.setValue('');
field = basicForm.findField('ISDELETE');
field.setValue('');
field = basicForm.findField('OPERATOR');
field.setValue(USERID);
field = basicForm.findField('OPERATORNAME');
field.setValue(SHOWNAME);
field = basicForm.findField('APPLICANT');
field.setValue('');
field = basicForm.findField('AMOUNT');
field.setValue(0);
field = basicForm.findField('INVAMOUNT');
field.setValue(0);
//清空流水号
field = basicForm.findField('INVOICESERIALNUM');
field.setValue("");
//正票
field = basicForm.findField('PTORRED');
field.setValue("1");
//被冲红设置为false
field = basicForm.findField('SETRED');
field.setValue("False");
//清空流水号
field = basicForm.findField('INVOICEINFOURL');
field.setValue("");
//清空流水号
field = basicForm.findField('INVOICEPDFURL');
field.setValue("");
var myDate = new Date();
var mydatestr = Ext.util.Format.date(myDate, 'Y-m-d');
field = basicForm.findField('INVOICEMAKETIME');
field.setValue(mydatestr);
this.storeBodyList.removeAll();
this.storeBodySum.removeAll();
this.storeDetailList.removeAll();
this.GetEditStatus();
},
scope: this
},
'-', {
text: '锁定',
tooltip: '锁定',
id: 'btnSubmitAudit',
handler: function (button, event) {
this.onSubmitAuditClick();
},
scope: this
},
'-', {
text: '撤销锁定',
tooltip: '撤销锁定',
id: 'btnSubmitAuditBack',
handler: function (button, event) {
this.onSubmitAuditBackClick();
},
scope: this
},
'-', {
text: '开票',
id: "btn_KP",
tooltip: '通过诺诺(瑞宏)开放平台开出发票',
handler: function (button, event) {
this.onNNMakeInvClick();
},
scope: this
},
{
text: '邮件转发',
id: "btn_Invinfo",
iconCls: 'btn-mail',
tooltip: '打开诺诺(瑞宏)平台中的发票详细信息并保存,小窗下方"获取发票"内有邮件转发pdf的选项已有流水号但开票状态不是开出成功或开出失败的发票可以通过这个按钮获取发票详细信息。',
handler: function (button, event) {
this.onNNReadInvClick();
},
scope: this
},
{
text: '查看发票',
id: "btn_Pdf",
tooltip: '打开诺诺(瑞宏)开放平台中的发票PDF文件并保存发票详细信息已有流水号但开票状态不是开出成功或开出失败的发票可以通过这个按钮获取发票详细信息。',
handler: function (button, event) {
this.onNNReadInvPDFClick();
},
scope: this
},
'-', {
text: '作废',
id: "btn_Void",
tooltip: '实际操作成功后才修改发票状态。注意:电票不可作废,纸票月内作废,月外冲红',
handler: function (button, event) {
this.onNNVoidInvClick();
},
scope: this
},
'-', {
text: '冲红',
id: "btn_Setred",
hidden: true,
tooltip: '注意,未冲红、未作废的发票才能进行此操作',
handler: function (button, event) {
this.onNNSetRedClick();
},
scope: this
},
//'-',
{
text: "打印",
handler: function (button, event) {
this.Print();
},
scope: this
}]
}); //end 按钮Toolbar
//#endregion
//#region 发票明细
this.StoreCodeGoodInv = Ext.create('DsExt.ux.RefTableStore', {
model: 'MsCodeGoodInv',
proxy: { url: '/MvcShipping/MsCodeGoodInv/GetDataList' }
});
this.StoreCodeGoodInv.load({
params: { condition: "" }
});
this.comboxCodeGoodInv = Ext.create('DsExt.ux.RefTableCombox', {
store: this.StoreCodeGoodInv,
forceSelection: true,
valueField: 'GID',
displayField: 'GOODCODENAME'
});
this.GridDetailCheckBoxModel = Ext.create('Ext.selection.CheckboxModel');
//明细表-数据集
this.storeDetailList = Ext.create('Ext.data.Store', {
model: 'MsChInvoiceDetail',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/Account/Chfee_invoice_HangXin/GetDetailList',
reader: {
id: 'GID',
root: 'data',
totalProperty: 'totalCount'
}
}
});
//明细表表格
this.gridDetailCellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
this.gridDetailList = new Ext.grid.GridPanel({
store: this.storeDetailList,
enableHdMenu: false,
region: 'center',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
// columnLines: true,
selModel: this.GridDetailCheckBoxModel,
plugins: [this.gridDetailCellEditing],
features: [{
ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性
}],
tbar: [{
text: '添加发票明细',
tooltip: '添加发票明细',
id: 'btnAddInvdetail',
iconCls: "btnadddetail",
handler: function (button, event) {
this.onAddInvDetailClick();
},
scope: this
}, {
text: '删除发票明细',
tooltip: '删除发票明细',
id: 'btndelInvdetail',
iconCls: "btndeletedetail",
handler: function (button, event) {
this.onDelInvDetailClick();
},
scope: this
}],
columns: [{
sortable: true,
dataIndex: 'GID',
header: 'GID',
hidden: true,
width: 100
}, {
sortable: true,
dataIndex: 'PID',
header: 'PID',
hidden: true,
width: 100
}, {
sortable: true,
dataIndex: 'SERIALNO',
header: 'SERIALNO',
hidden: true,
width: 100
}, {
sortable: false,
dataIndex: 'GOODSNAME',
header: '货物或应税劳务名称',
editor: this.comboxCodeGoodInv,
renderer: function (value, p, record) {
return record.data.GOODSNAMEREF;
},
summaryType: 'count',
width: 120
}, {
sortable: false,
dataIndex: 'SPEC',
header: '规格型号',
editor: {
xtype: 'textfield',
allowBlank: false,
selectOnFocus: true
},
width: 100
}, {
sortable: false,
dataIndex: 'UNIT',
header: '单位',
editor: {
xtype: 'textfield',
allowBlank: false,
selectOnFocus: true
},
width: 100
}, {
sortable: false,
dataIndex: 'PKGS',
header: '数量',
editor: {
xtype: 'numberfield',
allowBlank: false,
selectOnFocus: true
},
width: 80
}, {
sortable: false,
dataIndex: 'TAXPRICE',
header: '含税单价',
editor: {
xtype: 'numberfield',
allowBlank: false,
selectOnFocus: true
},
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
},
width: 80
}, {
sortable: false,
dataIndex: 'PRICE',
header: '单价',
editor: {
xtype: 'numberfield',
allowBlank: false,
selectOnFocus: true
},
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
},
width: 80
}, {
sortable: false,
dataIndex: 'AMOUNT',
editor: {
xtype: 'numberfield',
allowBlank: false,
selectOnFocus: true
},
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
},
summaryType: 'sum',
summaryRenderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
value = usMoney(value, 2, '', true);
return value;
},
header: '金额',
width: 80
}, {
sortable: false,
dataIndex: 'TAXRATE',
editor: {
xtype: 'numberfield',
allowBlank: false,
selectOnFocus: true
},
header: '税率',
width: 80
}, {
sortable: false,
dataIndex: 'TAX',
header: '税额',
editor: {
xtype: 'numberfield',
allowBlank: false,
selectOnFocus: true
},
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
},
summaryType: 'sum',
summaryRenderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
value = usMoney(value, 2, '', true);
return value;
},
width: 80
}
,
{
sortable: false,
dataIndex: 'ISUSEPREF',
header: '是否享受优惠政策',
width: 100,
renderer: function (value, p, record) {
if (value == '1')
return '是';
return '否';
}
},
{
sortable: false,
dataIndex: 'DEFREMARK',
header: '增值税特殊管理',
width: 100
},
{
sortable: false,
dataIndex: 'ZTAXTYPE',
header: '零税率标识',
width: 80,
renderer: function (value, p, record) {
if (value == '')
return '非零税率';
else if (value == '0')
return '出口退税';
else if (value == '1')
return '免征';
else if (value == '2')
return '不征收';
else if (value == '3')
return '普通零税率';
}
}
]
});
this.gridDetailList.on('edit', function (editor, e, eOpts) {
this.gridListDetailAfterEdit(editor, e, eOpts);
}, this);
//#endregion
this.formAMT = Ext.widget('form', {
region: 'south',
frame: false,
bodyPadding: 0,
height: 38,
trackResetOnLoad: true,
fieldDefaults: {
margins: '2 2 0 0',
labelAlign: 'right',
flex: 1,
labelWidth: 90,
msgTarget: 'qtip'
},
items: [{ //fieldset 1
xtype: 'fieldset',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '金额合计(大写)',
readOnly: true, flex: 3,
name: 'AMOUNTCAPITAL'
}, {
fieldLabel: '被冲红发票号码',
readOnly: true, flex: 1,
name: 'REDNUM'
}, {
fieldLabel: '被冲红发票代码',
readOnly: true, flex: 1,
name: 'REDCODE'
}] //end items(fieldset 1)
} //end fieldset 1
] //end root items
}]
}); //end this.formEdit
//#region 明细表
//明细表表格相关
//明细表-数据集
this.storeBodyList = Ext.create('Ext.data.Store', {
model: 'Chfee_do_detail',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/Account/Chfee_invoice_HangXin/GetBillList',
reader: {
id: 'BSNO,FEEDOID',
root: 'data',
totalProperty: 'totalCount'
}
}
});
this.gridList = new Ext.grid.GridPanel({
store: this.storeBodyList,
enableHdMenu: false,
region: 'center',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
viewConfig: {
enableTextSelection: true
},
columns: [{
sortable: true,
dataIndex: 'BILLNO',
header: 'BILL',
hidden: true,
width: 100
}, {
sortable: true,
dataIndex: 'BSNO',
header: 'BSNO',
hidden: true,
width: 100
}, {
sortable: true,
dataIndex: 'FEEDOID',
header: 'FEEDOID',
hidden: true,
width: 100
}, {
sortable: true,
dataIndex: 'CUSTNO',
header: '委托编号',
width: 120
}, {
sortable: true,
dataIndex: 'MBLNO',
header: '主提单号',
width: 120
}, {
sortable: true,
dataIndex: 'CUSTOMERNAME',
header: '委托单位',
width: 100
}, {
sortable: true,
dataIndex: 'ETD',
header: '开船日期',
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
width: 100
}, {
sortable: true,
dataIndex: 'BSSOURCE',
header: '业务来源',
width: 80
}, {
sortable: true,
dataIndex: 'FEENAME',
header: '费用名称',
width: 80
}, {
sortable: true,
dataIndex: 'FEETYPEREF',
header: '收付',
width: 40
}, {
sortable: true,
dataIndex: 'AMOUNT',
header: '申请金额',
width: 80,
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
}
}, {
sortable: true,
dataIndex: 'ORIGCURRENCY',
header: '原始币别',
width: 80
}, {
sortable: true,
dataIndex: 'ORIGEXCHANGERATE',
header: '原始汇率',
width: 80
}, {
sortable: true,
dataIndex: 'EXCHANGERATE',
header: '折算汇率',
width: 80
}, {
sortable: true,
dataIndex: 'ORIGAMOUNT',
header: '原始金额',
width: 80,
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
}
}, {
sortable: true,
dataIndex: 'SALE',
header: '揽货人',
width: 80
}, {
sortable: true,
dataIndex: 'VESSEL',
header: '船名航次',
width: 150,
renderer: function (value, p, record) {
return record.data.VESSEL + '/' + record.data.VOYNO;
}
}, {
sortable: true,
dataIndex: 'PORTLOAD',
header: '装货港',
width: 120
}, {
sortable: true,
dataIndex: 'PORTDISCHARGE',
header: '卸货港',
width: 120
}
]
});
this.gridList.addListener('itemdblclick', function (dataview, record, item, index, e, b) {
//this.SelectedRecord = record;
//var openSet = "height=700, width=1024, toolbar=no, menubar=no,scrollbars=1, resizable=1,location=no, status=no,Top= " + (screen.height - 750) / 2 + ",Left= " + (screen.width - 1100) / 2
//var openType = "_blank";
//var openUrl = "";
//openUrl = "../../MvcShipping/MsOpBill/MsOpFeeView?handle=check&bsno=" + record.data.BSNO;
//window.open(openUrl, openType, openSet);
}, this);
this.storeBodySum = Ext.create('Ext.data.Store', {
model: 'Chfee_do_sum',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/Account/Chfee_invoice_HangXin/GetBillSum',
reader: {
root: 'data',
totalProperty: 'totalCount'
}
}
});
this.gridSum = new Ext.grid.GridPanel({
store: this.storeBodySum,
enableHdMenu: false,
region: 'center',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
tbar: [{
xtype: 'label',
width: 120,
height: 22,
text: '开票金额合计'
}],
columns: [{
sortable: true,
dataIndex: 'FEETYPEREF',
header: '收付',
width: 40
}, {
sortable: true,
dataIndex: 'CURRENCY',
header: '币 别',
width: 80
}, {
sortable: true,
dataIndex: 'AMOUNT',
header: '金额',
width: 80,
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
}
}
]
});
//明细表表格相关
this.GridCheckBoxAppModel = Ext.create('Ext.selection.CheckboxModel');
//明细表-数据集
this.storeBodyAppList = Ext.create('Ext.data.Store', {
model: 'MsChInvoiceapplication',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/Account/Chfee_invoiceapplication/GetDataList',
reader: {
id: 'BILLNO',
root: 'data',
totalProperty: 'totalCount'
}
}
});
this.gridAppList = new Ext.grid.GridPanel({
store: this.storeBodyAppList,
enableHdMenu: false,
region: 'center',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
selModel: this.GridCheckBoxAppModel,
viewConfig: {
enableTextSelection: true
},
//tbar: [{
// text: '删除申请明细',
// tooltip: '删除申请明细',
// iconCls: "btndeletedetail",
// id: "btndeldetail",
// handler: function (button, event) {
// this.onDeleteClick(button, event);
// },
// scope: this
//}],
columns: [{
sortable: false,
dataIndex: 'BILLNO',
header: '申请单号',
width: 120
}, {
sortable: false,
dataIndex: 'BILLSTATUSREF',
header: '状态',
width: 80
}, {
sortable: true,
dataIndex: 'INVTYPE',
header: '开票方式',
width: 60
}, {
sortable: true,
dataIndex: 'APPLYAMOUNT',
header: '人民币金额',
align: 'right',
width: 100,
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
}
}, {
sortable: true,
dataIndex: 'OTCURRAMOUNT',
header: '美元金额',
align: 'right',
width: 100,
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
}
}, {
sortable: true,
dataIndex: 'CURRENCY',
header: '开票币别',
width: 60
}, {
sortable: true,
dataIndex: 'AMOUNT',
header: '折合金额',
align: 'right',
width: 100,
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
}
}, {
sortable: true,
dataIndex: 'INVAMOUNT',
header: '开票金额',
align: 'right',
width: 100,
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 2, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
}
}, {
sortable: false,
dataIndex: 'APPLYTIME',
header: '申请日期',
width: 100
}, {
sortable: false,
dataIndex: 'APPLICANTNAME',
header: '申请人',
width: 100
}, {
sortable: false,
dataIndex: 'INVOICENO',
header: '发票号',
width: 120
}, {
sortable: false,
dataIndex: 'INVOICECUSTNAME',
header: '发票抬头',
width: 160
}, {
sortable: false,
dataIndex: 'REMARK',
header: '备注',
width: 260
}
]
});
_this = this;
//#endregion
this.panelInvDetail = new Ext.Panel({
layout: "border",
title: "发票明细",
// height: 220,
region: 'west',
width: 830,
margin: '2 2',
split: true,
items: [this.gridDetailList]
});
this.panelAppDetail = new Ext.Panel({
layout: "border",
title: "申请明细",
region: "center",
margin: '2 2',
items: [this.gridAppList]
});
this.panelInvApp = new Ext.Panel({
layout: "border",
// height: 220,
region: "center",
margin: '2 2',
items: [this.panelInvDetail, this.panelAppDetail, this.formAMT]
});
this.panelService = new Ext.Panel({
layout: "border",
region: 'center',
margin: '2 2',
items: [this.gridList]
});
this.panelSum = new Ext.Panel({
layout: "border",
region: 'east',
width: 260,
split: true,
margin: '2 2',
items: [this.gridSum]
});
this.paneldetail = new Ext.Panel({
title: '费用明细',
layout: "border",
height: 220,
region: "north",
items: [
this.panelService, this.panelSum
]
});
this.panelAddBodyService = new Ext.Panel({
layout: "border",
title: '发票申请明细',
region: 'east',
width: 380,
split: true,
margin: '2 2',
items: [this.gridAddBodyList]
});
//this.panelAddService = new Ext.Panel({
// layout: "border",
// region: 'center',
// margin: '2 2',
// items: [this.gridAddFeeList, this.panelAddBodyService]
//});
//this.paneladd = new Ext.Panel({
// title: '添加发票申请明细',
// layout: "border",
// // region: 'south',
// region: "center",
// // height: 420,
// items: [
// this.formSearch, this.panelAddService
// ]
//});
//#endregion 明细表
//#region 布局
//控件布局
this.panelTop = new Ext.Panel({
layout: "border",
region: "north",
height: 285,
items: [this.panelBtn, this.formEdit]
});
this.panelBody = new Ext.Panel({
title: "费用明细",
layout: "border",
region: "center",
items: [this.paneldetail]
});
this.panelInv = new Ext.Panel({
title: "发票详细内容",
layout: "border",
region: "center",
// height: 220,
items: [this.panelInvApp]
});
this.tabpanel = new Ext.TabPanel
({
activeTab: 0,
autoWidth: true,
border: false,
frame: false,
//height: 280,
region: 'center',
id: "TabPanelID",
enableTabScroll: true,
split: true,
items:
[
this.panelInv,
this.panelBody
]
});
Ext.apply(this, {
items: [this.panelTop, this.tabpanel]
});
//#endregion
//初始化数据
this.InitData();
//绑定事件
var billno = '*';
if (this.opStatus == 'edit') {
billno = this.editRecord.get('BILLNO');
};
this.storeBodyList.on('beforeload', function (store) {
var sql = " BILLNO='" + billno + "'";
Ext.apply(store.proxy.extraParams, { condition: sql });
}, this);
this.storeBodyList.on('load', function (store, records) {
if (store.getCount() > 0) {
//this.gridList.getSelectionModel().select(0);
}
}, this);
_this = this;
this.storeBodySum.on('beforeload', function (store) {
billno = this.editRecord.get('BILLNO');
var sql = " BILLNO='" + billno + "'";
Ext.apply(store.proxy.extraParams, { condition: sql });
}, this);
var isloadfee = true;
//this.gridAddFeeList.getSelectionModel().on('select', function (model, record, index) {
// if (!isloadfee) return;
// var bsno = record.data.BILLNO;
// var sql = "";
// sql = " BILLNO='" + bsno + "'";
// isloadfee = false;
// this.storeAddBodyList.load({
// params: { condition: sql },
// callback: function (r, options, success) {
// if (success) {
// isloadfee = true;
// }
// }
// });
//}, this);
//#region 下载窗体
this.formDownloadShow = Ext.widget('form', {
frame: true,
region: 'center',
height: 100,
bodyPadding: 5,
fieldDefaults: {
margins: '2 2 2 2',
labelAlign: 'right',
flex: 1,
labelWidth: 90,
msgTarget: 'qtip'
},
items: [
{//fieldset 1
xtype: 'container',
defaultType: 'textfield',
layout: 'anchor',
id: 'downloadfile',
defaults: {
anchor: '100%'
},
items: [{
xtype: 'label',
html: '',
width: 120,
text: ''
}
]//end items(fieldset 1)
}//end fieldset 1
]//end root items
});
me = this;
this.winDownloadShow = Ext.create('Ext.window.Window', {
title: "下载文件",
width: 450,
height: 120,
//plain : true,
iconCls: "addicon",
resizable: false,
// 是否可以拖动
// draggable:false,
collapsible: true, // 允许缩放条
closeAction: 'close',
closable: true,
modal: 'true',
buttonAlign: "center",
bodyStyle: "padding:0 0 0 0",
items: [this.formDownloadShow],
buttons: [{
text: "关闭",
minWidth: 70,
handler: function () {
me.winDownloadShow.close();
}
}]
});
//#endregion
Ext.Ajax.request({
waitMsg: '',
url: '/MvcShipping/MsSysParamSet/GetData',
params: {
condition: "PARAMNAME='INVADDMBL'"
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (result.Success != true) {
} else {
var data = result.data;
if (data.PARAMVALUE == '1' || data.PARAMVALUE == 1)
_this.AddMblNo = 1;
else _this.AddMblNo = 0;
}
} else {
}
},
scope: this
});
this.storeModuleEnable = Ext.create('Ext.data.Store', {
model: 'DsShipping.ux.ModuleModel',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/MvcShipping/MsBaseInfo/GetUserModuleEnableList',
reader: {
id: 'id',
root: 'data',
totalProperty: 'totalCount'
}
}
});
this.storeModuleEnable.load({
params: { condition: "sys_module.[NAME]='modInvoiceSetRed'" },
callback: function (r, options, success) {
if (success) {
if (this.storeModuleEnable.getCount() > 0) {
for (var j = 0; j < this.storeModuleEnable.getCount(); j += 1) {
var member = this.storeModuleEnable.getAt(j);
var btnEdit = Ext.getCmp('btn_Setred');
btnEdit.setVisible(true);
};
} else {
}
}
},
scope: this
});
}, //end initUIComponents
InitData: function () {
this.opStatus = 'add';
var condition = '';
if (this.ParentWin) {
var ret = this.ParentWin.OprationSwap();
this.opStatus = ret[0];
this.StoreList = ret[1];
this.editRecord = ret[2];
this.storeCustInfo = ret[3];
}
if (this.opStatus == 'edit' || this.opStatus == 'copyadd')
condition = " BILLNO='" + this.editRecord.get('BILLNO') + "'";
this.LoadData(this.opStatus, condition);
this.LoadMustBe();
}, //end InitData
LoadData: function (opstatus, condition) {
this.serialNo = 0;
this.workSerialNo = 0;
this.bodyDel = [];
this.opStatus = opstatus;
_this = this;
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Account/Chfee_invoice_HangXin/GetData',
params: {
handle: opstatus,
condition: condition,
isapp: true
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
return;
}
var data = result.data;
// _this.formEdit.getForm().findField('BILLSTATUS').setDisabled(false);
this.storecustbank.removeAll();
if (!isNullorEmpty(data.CUSTOMERNAME)) {
this.storecustbank.load({
params: {
condition: " CURRENCY='RMB' AND LINKID=(SELECT TOP 1 GID FROM INFO_CLIENT WHERE SHORTNAME='" + data.CUSTOMERNAME + "')"
},
callback: function (r, options, success) {
if (success) {
if (r.length != 0 && isNullorEmpty(data.CUSTBANK)) {
data.CUSTBANK = this.storecustbank.data.items[0].data.BANKNAME_ACCOUNT;
}
}
},
scope: this
});
}
_this.formEdit.getForm().reset();
_this.formAMT.getForm().reset();
_this.formEdit.getForm().setValues(data);
_this.formAMT.getForm().setValues(data);
_this.setInvTile(data.INVOICELINE);
if (this.opStatus == 'copyadd')
this.CopyNewData();
var companyid = data.SALECORPID;
this.StoreBANK.load({
params: { condition: " LINKID='" + companyid + "'" }
, callback: function (r, options, success) {
if (_this.opStatus == 'add')
_this.setBank('RMB');
}
});
Data_pushmail = { EMAIL: data.PUSHEMAIL, NAMEANDEMAIL: data.PUSHEMAIL };
this.storeInfoClientMailTel.removeAll();
this.storeInfoClientMailTel.add(Data_pushmail);
_this.GetEditStatus();
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
var billno = '*';
var GID = '*';
if (this.opStatus == 'edit') {
billno = this.editRecord.get('BILLNO');
GID = this.editRecord.get('GID');
};
this.storeBodyList.load({
params: { condition: " BILLNO='" + billno + "'" },
callback: function (r, options, success) {
if (success) {
if (this.storeBodyList.getCount() > 0) {
//this.comboxCurr.setReadOnly(true);
this.comboxCustCode.setReadOnly(true);
}
else {
//this.comboxCurr.setReadOnly(false);
this.comboxCustCode.setReadOnly(false);
}
}
},
scope: this
});
this.storeBodySum.load({ params: { condition: " BILLNO='" + billno + "'" } });
this.storeDetailList.load({ params: { condition: " PID='" + GID + "'" } });
this.storeBodyAppList.load({ params: { condition: " BILLNO IN (SELECT DISTINCT PAYBILLNO FROM ch_fee_do_payapplication WHERE BILLNO='" + billno + "')" } });
}, // end LoadDate
Save: function (type) {
var basicForm = this.formEdit.getForm();
if (!basicForm.isValid()) {
return;
}
this.formEdit.getForm().findField('GID').setDisabled(false);
// this.formEdit.getForm().findField('BILLSTATUS').setDisabled(false);
this.formEdit.getForm().findField('COMPANYID').setDisabled(false);
//save时算一遍数字 防止差异值产生
this.calcDetailTotal();
var data = basicForm.getValues();
var GID = this.formEdit.getForm().findField('GID').getValue();
// this.formEdit.getForm().findField('BILLSTATUS').setDisabled(true);
this.formEdit.getForm().findField('COMPANYID').setDisabled(true);
this.formEdit.getForm().findField('GID').setDisabled(true);
var bodydatas = [];
for (var i = 0; i < this.storeDetailList.getCount(); i += 1) {
var member = this.storeDetailList.getAt(i);
bodydatas.push(member);
}
var jsonBody = ConvertRecordsToJsonAll(bodydatas);
Ext.Msg.wait('正在保存数据, 请稍侯..');
Ext.Ajax.request({
waitMsg: '正在保存数据...',
url: '/Account/Chfee_invoice_HangXin/Save',
scope: this,
params: {
opstatus: this.opStatus,
data: Ext.JSON.encode(data),
body: jsonBody
},
callback: function (options, success, response) {
if (success) {
Ext.MessageBox.hide();
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
var returnData = jsonresult.Data;
this.formEdit.getForm().setValues(returnData);
this.formAMT.getForm().setValues(returnData);
if (this.opStatus == 'add') {
var arrNewRecords = this.StoreList.insert(0, returnData);
this.editRecord = this.StoreList.getAt(0);
}
else if (this.opStatus == 'edit') {
var editp = Ext.create('MsChInvoice', returnData);
this.editRecord.fields.each(function (field) {
if (field.persist) {
name = field.name;
if (name != 'id')
this.editRecord.set(name, editp.get(name));
}
}, this);
this.editRecord.commit();
}
if (type == '0') {
this.opStatus = 'edit';
this.storeDetailList.load({ params: { condition: " PID='" + GID + "'" } });
} else if (type == '1') {
window.close();
} else if (type == '2') {
this.LoadData('add', '');
} else if (type == "MakeInv") {
this.DoMakeNNInv();
}
} else {
Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
}
} else {
Ext.Msg.show({
title: '请重试',
msg: '服务器响应出错',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
}
}
});
}, //end save
CopyNewData: function () {
var basicForm = this.formEdit.getForm();
this.opStatus = 'add';
basicForm.findField('GID').setDisabled(false);
var field = basicForm.findField('GID');
var BSNO = NewGuid();
field.setValue(BSNO);
basicForm.findField('GID').setDisabled(true);
field = basicForm.findField('VOUCHERNO');
field.setValue('');
field = basicForm.findField('VOUNO');
field.setValue('');
field = basicForm.findField('INVOICENO');
field.setValue('');
field = basicForm.findField('BILLNO');
field.setValue('');
field = basicForm.findField('BILLSTATUS');
field.setValue('0');
field = basicForm.findField('BILLSTATUSREF');
field.setValue('未锁定');
field = basicForm.findField('ISNEEDPRINT');
field.setValue('');
field = basicForm.findField('ISNEEDFEE');
field.setValue('');
field = basicForm.findField('ISDELETE');
field.setValue('');
field = basicForm.findField('OPERATOR');
field.setValue(USERID);
field = basicForm.findField('OPERATORNAME');
field.setValue(SHOWNAME);
field = basicForm.findField('APPLICANT');
field.setValue('');
field = basicForm.findField('AMOUNT');
field.setValue(0);
field = basicForm.findField('INVAMOUNT');
field.setValue(0);
field = basicForm.findField('OTCURRAMOUNT');
field.setValue(0);
field = basicForm.findField('REMARK');
field.setValue('');
this.formAMT.getForm().findField('AMOUNTCAPITAL').setValue('');
//清空流水号
field = basicForm.findField('INVOICESERIALNUM');
field.setValue("");
//正票
field = basicForm.findField('PTORRED');
field.setValue("1");
//被冲红设置为false
field = basicForm.findField('SETRED');
field.setValue("False");
//清空流水号
field = basicForm.findField('INVOICEINFOURL');
field.setValue("");
//清空流水号
field = basicForm.findField('INVOICEPDFURL');
field.setValue("");
var myDate = new Date();
var mydatestr = Ext.util.Format.date(myDate, 'Y-m-d');
field = basicForm.findField('INVOICEMAKETIME');
field.setValue(mydatestr);
this.storeBodyList.removeAll();
this.storeBodySum.removeAll();
this.storeDetailList.removeAll();
},
onAddDetailClick: function (button, event) {
this.addstore = true;
this.IsAddDetail();
}, //end onAddDetailClick
onDelDetailClick: function (button, event, type) {
this.deleteDetail();
}, //onDelDetailClick
//onAddClick: function (button, event) {
// this.addstore = true;
// this.addBill();
//}, //end onAddDetailClick
onDeleteClick: function (button, event) {
this.deleteBill();
}, //end onAddDetailClick
gridListDetailAfterEdit: function (editor, e, eOpts) {
if (e.value == e.originalValue) return;
if (e.field == 'PKGS' || e.field == 'PRICE') {
var unitPrice = e.record.data['PRICE'];
var quantity = e.record.data['PKGS'];
var taxrate = e.record.data['TAXRATE'];
if (taxrate != null) {
var taxrateb = parseFloat(1 + parseFloat(taxrate / 100));
var TaxUnitPrice = (unitPrice.mul(taxrateb)).toFixed(2);
e.record.set('TAXPRICE', TaxUnitPrice);
}
var amount = (unitPrice.mul(quantity)).toFixed(2);
e.record.set('AMOUNT', amount);
taxrate = parseFloat(taxrate) / 100;
var tax = (parseFloat(amount).mul(taxrate)).toFixed(2);
e.record.set('TAX', tax);
this.calcDetailTotal();
} else if (e.field == 'TAXPRICE') {
var TaxUnitPrice = e.record.data['TAXPRICE'];
if (e.value != 0) {
var quantity = e.record.data['PKGS'];
var taxrate = e.record.data['TAXRATE'];
var taxrateb = parseFloat(1 + parseFloat(taxrate / 100));
var unitPrice = (parseFloat(TaxUnitPrice).div(parseFloat(taxrateb))).toFixed(2);
e.record.set('PRICE', unitPrice);
if (quantity != null) {
var amount = (parseFloat(unitPrice).mul(quantity)).toFixed(2);
e.record.set('AMOUNT', amount);
taxrate = parseFloat(taxrate) / 100;
var tax = (parseFloat(amount).mul(taxrate)).toFixed(2);
e.record.set('TAX', tax);
}
this.calcDetailTotal();
}
} else if (e.field == 'TAXRATE') {
var taxrate = e.record.data['TAXRATE'];
var TaxUnitPrice = e.record.data['TAXPRICE'];
if (TaxUnitPrice != 0) {
var quantity = e.record.data['PKGS'];
var taxrate = e.record.data['TAXRATE'];
var taxrateb = parseFloat(1 + parseFloat(taxrate / 100));
var unitPrice = (parseFloat(TaxUnitPrice).div(parseFloat(taxrateb))).toFixed(2);
e.record.set('PRICE', unitPrice);
if (quantity != null) {
var amount = (parseFloat(unitPrice).mul(quantity)).toFixed(2);
e.record.set('AMOUNT', amount);
taxrate = parseFloat(taxrate) / 100;
var tax = (parseFloat(amount).mul(taxrate)).toFixed(2);
e.record.set('TAX', tax);
}
this.calcDetailTotal();
}
/*
if (unitPrice != null) {
var taxrateb = parseFloat(1 + parseFloat(taxrate / 100));
var TaxUnitPrice = (parseFloat(unitPrice).mul(taxrateb)).toFixed(2);
e.record.set('TAXPRICE', TaxUnitPrice);
}
var notaxamount = e.record.data['AMOUNT'];
taxrate = parseFloat(taxrate) / 100;
var tax = (parseFloat(notaxamount).mul(taxrate)).toFixed(2);
e.record.set('TAX', tax);
this.calcDetailTotal();
*/
} else if (e.field == 'AMOUNT' || e.field == 'TAX') {
this.calcDetailTotal();
} else if (e.field == 'GOODSNAME') {
var selectrecords = DsStoreQueryBy(this.StoreCodeGoodInv, 'GID', e.value);
if (selectrecords.getCount() > 0) {
var selectdata = selectrecords.getAt(0).data;
e.record.set('GOODSNAMEREF', selectdata.GOODNAME);
e.record.set('GOODCODE', selectdata.GOODCODE);
e.record.set('TAXRATE', selectdata.TAXRATE);
e.record.set('SPEC', selectdata.SPEC);
e.record.set('UNIT', selectdata.UNIT);
var taxrate = e.record.data['TAXRATE'];
var unitPrice = e.record.data['PRICE'];
var quantity = e.record.data['PKGS'];
var TaxUnitPrice = e.record.data['TAXPRICE'];
if (TaxUnitPrice != 0) {
var quantity = e.record.data['PKGS'];
var taxrate = e.record.data['TAXRATE'];
var taxrateb = parseFloat(1 + parseFloat(taxrate / 100));
var unitPrice = (parseFloat(TaxUnitPrice).div(parseFloat(taxrateb))).toFixed(2);
e.record.set('PRICE', unitPrice);
if (quantity != null) {
var amount = (parseFloat(unitPrice).mul(quantity)).toFixed(2);
e.record.set('AMOUNT', amount);
taxrate = parseFloat(taxrate) / 100;
var tax = (parseFloat(amount).mul(taxrate)).toFixed(2);
e.record.set('TAX', tax);
}
this.calcDetailTotal();
}
} else {
e.record.set('GOODSNAMEREF', '');
e.record.set('GOODCODE', '');
e.record.set('SPEC', '');
e.record.set('UNIT', '');
e.record.set('TAXRATE', 0);
}
}
},
ChangeInvRate: function (InvRate) {
for (var i = 0; i < this.storeDetailList.getCount(); i += 1) {
var memberbody = this.storeDetailList.getAt(i);
memberbody.set("TAXRATE", InvRate);
var TaxUnitPrice = memberbody.data.TAXPRICE;
if (TaxUnitPrice != 0) {
var quantity = memberbody.data.PKGS;
var taxrate = InvRate;
var taxrateb = parseFloat(1 + parseFloat(taxrate / 100));
var unitPrice = (parseFloat(TaxUnitPrice).div(parseFloat(taxrateb))).toFixed(2);
memberbody.set("PRICE", unitPrice);
if (quantity != null) {
var amount = (parseFloat(unitPrice).mul(quantity)).toFixed(2);
memberbody.set("AMOUNT", amount);
taxrate = parseFloat(taxrate) / 100;
var tax = (parseFloat(amount).mul(taxrate)).toFixed(2);
memberbody.set("TAX", tax);
}
}
memberbody.commit();
}
this.calcDetailTotal();
},
calcDetailTotal: function () {
var ttlamt = 0;
for (var i = 0; i < this.storeDetailList.getCount(); i += 1) {
var member = this.storeDetailList.getAt(i);
var value = member.get('AMOUNT');
var tax = member.get('TAX');
ttlamt = ttlamt.add(parseFloat(value));
ttlamt = ttlamt.add(parseFloat(tax));
}
this.setHeadFieldValue('INVAMOUNT', Ext.util.Format.number(parseFloat(ttlamt), '00.00'));
var amtc = this.numtoc(parseFloat(ttlamt).toFixed(2));
var field = this.formAMT.getForm().findField('AMOUNTCAPITAL');
field.setValue(amtc);
},
setHeadFieldValue: function (fieldName, value) {
var field = this.formEdit.getForm().findField(fieldName);
field.setValue(value);
},
gridAddFeeListAfterEdit: function (editor, e, eOpts) {
//需要自己实现里面的事件
if (e.value == e.originalValue) return;
if (e.field == 'StlAmount') {
var BalAmount = e.record.data['BalAmount'];
var StlAmount = e.record.data['StlAmount'];
if (BalAmount >= 0) {
if (StlAmount > BalAmount) {
e.record.set('StlAmount', BalAmount);
Ext.Msg.show({ title: '提示', msg: '申请金额不能大于未申金额!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
}
} else {
if (StlAmount < BalAmount) {
e.record.set('StlAmount', BalAmount);
Ext.Msg.show({ title: '提示', msg: '申请金额不能大于未申金额!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
}
}
}
},
onNextKeyClick: function (col) {
var rows = this.gridAddFeeList.getSelectionModel().getSelection();
var row = rows[rows.length - 1];
var s = this.gridAddFeeList.getStore();
var number = s.indexOf(row) + 1;
this.cellEditingFee.startEditByPosition({ row: number, column: col });
},
onUpKeyClick: function (col) {
var rows = this.gridAddFeeList.getSelectionModel().getSelection();
var row = rows[rows.length - 1];
var s = this.gridAddFeeList.getStore();
var number = s.indexOf(row) - 1;
if (number < 0) number = 0;
this.cellEditingFee.startEditByPosition({ row: number, column: col });
},
onAddInvDetailClick: function () {
var BILLNO = this.formEdit.getForm().findField('BILLNO').getValue();
var ISDELETE = this.formEdit.getForm().findField('ISDELETE').getValue();
var ISNEEDPRINT = this.formEdit.getForm().findField('ISNEEDPRINT').getValue();
var ISNEEDFEE = this.formEdit.getForm().findField('ISNEEDFEE').getValue();
var VOUCHERNO = this.formEdit.getForm().findField('VOUCHERNO').getValue();
var VOUNO = this.formEdit.getForm().findField('VOUNO').getValue();
if (ISNEEDPRINT == 'true') {
Ext.Msg.show({ title: '提示', msg: '已打印无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (VOUCHERNO != '') {
Ext.Msg.show({ title: '提示', msg: '已生成接口凭证无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (VOUNO != '') {
Ext.Msg.show({ title: '提示', msg: '已生成总账凭证无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (ISDELETE == 'true') {
Ext.Msg.show({ title: '提示', msg: '此发票已作废无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
this.formEdit.getForm().findField('GID').setDisabled(false);
var GID = this.formEdit.getForm().findField('GID').getValue();
this.formEdit.getForm().findField('GID').setDisabled(true);
var billtaxrate = this.formEdit.getForm().findField('EXCHANGERATE').getValue();
if (BILLNO == '*') {
Ext.Msg.show({ title: '注意', msg: '请先保存业务信息再添加运输明细!', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
return;
}
var newSerialno = DsGetNewSerialNo(this.storeDetailList, 0);
var record = Ext.create('MsChInvoiceDetail', {
GID: '',
PID: '*',
SERIALNO: newSerialno,
GOODSNAME: '',
SPEC: '',
UNIT: '',
PKGS: 1,
TAXPRICE: 0,
PRICE: 0,
TAXRATE: billtaxrate,
AMOUNT: 0,
TAX: 0,
REMARK: ''
});
this.storeDetailList.add(record);
var n = this.storeDetailList.getCount();
this.gridDetailCellEditing.startEditByPosition({ row: n - 1, column: 1 });
},
onDelInvDetailClick: function () {
var selectedRecords = this.GridDetailCheckBoxModel.selected.items;
var GID = this.formEdit.getForm().findField('GID').getValue();
var ISDELETE = this.formEdit.getForm().findField('ISDELETE').getValue();
var ISNEEDPRINT = this.formEdit.getForm().findField('ISNEEDPRINT').getValue();
var ISNEEDFEE = this.formEdit.getForm().findField('ISNEEDFEE').getValue();
var VOUCHERNO = this.formEdit.getForm().findField('VOUCHERNO').getValue();
var VOUNO = this.formEdit.getForm().findField('VOUNO').getValue();
if (ISNEEDPRINT == 'true') {
Ext.Msg.show({ title: '提示', msg: '已打印无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (VOUCHERNO != '') {
Ext.Msg.show({ title: '提示', msg: '已生成接口凭证无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (VOUNO != '') {
Ext.Msg.show({ title: '提示', msg: '已生成总账凭证无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (ISDELETE == 'true') {
Ext.Msg.show({ title: '提示', msg: '此发票已作废无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
Ext.MessageBox.confirm('提示', '确定要删除选中的明细吗?', function (btn) {
if (btn == 'yes') {
var bodyDatas = [];
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
if (rec.GID == "" || rec.PID == "*") //如果是新增但没有保存的数据,没有必要提交到后台
{
this.storeDetailList.remove(selectedRecords[i]);
} else {
bodyDatas.push(rec);
}
}
var jsonBody = ConvertRecordsToJsonAll(bodyDatas);
_this = this;
Ext.Msg.wait('正在删除数据...');
Ext.Ajax.request({
waitMsg: '正在删除数据...',
url: '/Account/Chfee_invoice_HangXin/DelInvDetail',
params: {
bsno: GID,
body: jsonBody
},
callback: function (options, success, response) {
if (success) {
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
for (var i = 0; i < selectedRecords.length; i++) {
this.storeDetailList.remove(selectedRecords[i]);
}
// this.gridList.getView().refresh();
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);
},
IsAddDetail: function () {
var selectedRecords = this.gridAddFeeList.selModel.getSelection();
if (selectedRecords.length > 0) {
var bodyDatas = [];
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
bodyDatas.push(rec);
}
var jsonBody = ConvertRecordsToJsonAll(bodyDatas);
Ext.Ajax.request({
waitMsg: '',
url: '/Account/Chfee_invoiceapplication/GetIsAdd',
params: {
data: jsonBody
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (result.Success) {
_this.addDetail();
} else {
var sql = this.BillSql;
this.storeAddFeeList.load({ params: { start: 0, limit: _this.PageSize, sort: '', condition: sql } });
Ext.Msg.show({ title: '提示', msg: '已生成发票,没有需要添加的发票申请!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
} else {
var sql = this.BillSql;
this.storeAddFeeList.load({ params: { start: 0, limit: _this.PageSize, sort: '', condition: sql } });
Ext.Msg.show({ title: '提示', msg: '已生成发票,没有需要添加的发票申请!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
},
scope: this
});
} else {
Ext.Msg.show({ title: '提示', msg: '请选择需要添加的发票申请!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
},
addDetail: function () {
var basicForm = this.formEdit.getForm();
var btnEAddDetail = Ext.getCmp('btnadddetail');
btnEAddDetail.disable();
var Duino = this.formEdit.getForm().findField('BILLNO').getValue();
_this = this;
/* //如果已有开票单位 则不重新载入storecustbank
*/
var CUSTOMERNAME = this.formEdit.getForm().findField('CUSTOMERNAME').getValue();
var CURR = this.formEdit.getForm().findField('CURRENCY').getValue();
var INVOICENO = this.formEdit.getForm().findField('INVOICENO').getValue();
if ((CUSTOMERNAME == '') || (CUSTOMERNAME == null) || (CURR == '') || (CURR == null)) {
var selectedRecords = this.gridAddFeeList.selModel.getSelection();
if (selectedRecords.length > 0) {
var rec = selectedRecords[0];
var cust = rec.data.CUSTOMERNAME;
var curr = rec.data.CURRENCY;
var rate = rec.data.RATE;
var RECVCURR = rec.data.RECVCURR;
this.formEdit.getForm().findField('RECVCURR').setValue(RECVCURR);
//var aINVOICECUSTNAME = rec.data.INVOICECUSTNAME;
var ACTUALCUSTOMERNAME_str = rec.data.ACTUALCUSTOMERNAME;
if ((CUSTOMERNAME == '') || (CUSTOMERNAME == null))
this.formEdit.getForm().findField('CUSTOMERNAME').setValue(cust);//设定购方单位
var INVOICECUSTNAME = this.formEdit.getForm().findField('INVOICECUSTNAME');
var CUSTRATENO = this.formEdit.getForm().findField('CUSTRATENO');
var CUSTADDRTEL = this.formEdit.getForm().findField('CUSTADDRTEL');
var CUSTADDR = this.formEdit.getForm().findField('CUSTADDR');
var CUSTTEL = this.formEdit.getForm().findField('CUSTTEL');
var CUSTBANK = this.formEdit.getForm().findField('CUSTBANK');
var CURRFIELD = this.formEdit.getForm().findField('CURRENCY');
var RECVCURR = this.formEdit.getForm().findField('RECVCURR').getValue();
var INVOICECATEGORY = this.formEdit.getForm().findField('INVOICECATEGORY');
var ACTUALCUSTOMERNAME = this.formEdit.getForm().findField('INVOICECATEGORY');
this.formEdit.getForm().findField('PUSHMODE').setValue(rec.data.PUSHMODE);
this.formEdit.getForm().findField('PUSHMOBILE').setValue(rec.data.PUSHMOBILE);
this.formEdit.getForm().findField('PUSHEMAIL').setValue(rec.data.PUSHEMAIL);
if ((CURR == '') || (CURR == null)) {
this.formEdit.getForm().findField('CURRENCY').setValue(curr);
}
this.formEdit.getForm().findField('EXCHANGERATE').setValue(rate);
this.setBank(RECVCURR);
INVOICECATEGORY.setValue(rec.data.INVOICECATEGORY);
var recs = DsStoreQueryBy(this.storeINVOICELINE, 'EnumValueName', rec.data.INVOICECATEGORYREF);
if (recs.getCount() > 0) {
var data = recs.getAt(0).data;
var INVOICELINE = this.formEdit.getForm().findField('INVOICELINE');
INVOICELINE.setValue(data.EnumValueId);
}
if (isNullorEmpty(ACTUALCUSTOMERNAME_str)) {
//如果没有代开客户
var recs = DsStoreQueryBy(this.storeCustCode, 'CustName', cust);
ACTUALCUSTOMERNAME.setValue("");
var CURR = CURRFIELD.getValue();
if (recs.getCount() > 0) {
var data = recs.getAt(0).data;
//20191203 如果已填写了抬头等信息 优先使用填写的信息
appdata = rec.data;
if (!isNullorEmpty(appdata.INVOICECUSTNAME))
INVOICECUSTNAME.setValue(appdata.INVOICECUSTNAME);
else {
INVOICECUSTNAME.setValue(data.BillRises1);
}
if (!isNullorEmpty(appdata.CUSTRATENO))
CUSTRATENO.setValue(appdata.CUSTRATENO);
else {
CUSTRATENO.setValue(data.TaxNo);
}
if (!isNullorEmpty(appdata.CUSTADDRTEL))
CUSTADDRTEL.setValue(appdata.CUSTADDRTEL);
else {
CUSTADDRTEL.setValue(data.INVADDRTEL);
}
if (!isNullorEmpty(getEndTel(appdata.CUSTADDRTEL)))
CUSTTEL.setValue(getEndTel(appdata.CUSTADDRTEL));
else {
CUSTTEL.setValue(getEndTel(data.INVADDRTEL));
}
if (!isNullorEmpty(appdata.CUSTADDRTEL.replace(getEndTel(appdata.CUSTADDRTEL), "")))
CUSTADDR.setValue(appdata.CUSTADDRTEL.replace(getEndTel(appdata.CUSTADDRTEL), ""));
else {
CUSTADDR.setValue(data.INVADDRTEL.replace(getEndTel(data.INVADDRTEL), ""));
}
if (!isNullorEmpty(appdata.CUSTBANK)) {
CUSTBANK.setValue(appdata.CUSTBANK);
_this.addsave();
} else {
this.storecustbank.load({
params: {
condition: " CURRENCY='" + RECVCURR + "' AND LINKID=(SELECT TOP 1 GID FROM INFO_CLIENT WHERE SHORTNAME='" + cust + "')"
},
callback: function (r, options, success) {
if (r.length != 0) {
CUSTBANK.setValue(this.storecustbank.data.items[0].data.BANKNAME_ACCOUNT);
_this.addsave();
} else {
Ext.Msg.show({
title: '缺少购方财务信息',
msg: '请先维护 往来单位【' + cust + '】的财务信息',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
}
},
scope: this
});
}
} else {
INVOICECUSTNAME.setValue('');
CUSTRATENO.setValue('');
CUSTADDRTEL.setValue('');
CUSTBANK.setValue('');
CUSTADDR.setValue('');
CUSTTEL.setValue('');
_this.addsave();
}
}
else {
//如果有代开客户
ACTUALCUSTOMERNAME.setValue(rec.data.ACTUALCUSTOMERNAME);
INVOICECUSTNAME.setValue(rec.data.INVOICECUSTNAME);
CUSTRATENO.setValue(rec.data.CUSTRATENO);
CUSTADDRTEL.setValue(rec.data.CUSTADDRTEL);
CUSTBANK.setValue(rec.data.CUSTBANK);
INVOICECATEGORY.setValue(rec.data.INVOICECATEGORY);
var recs = DsStoreQueryBy(this.storeINVOICELINE, 'EnumValueName', rec.data.INVOICECATEGORY);
if (recs.getCount() > 0) {
var data = recs.getAt(0).data;
var INVOICELINE = this.formEdit.getForm().findField('INVOICELINE');
INVOICELINE.setValue(data.EnumValueId);
}
CUSTTEL.setValue(getEndTel(rec.data.CUSTADDRTEL));
CUSTADDR.setValue(rec.data.CUSTADDRTEL.replace(getEndTel(rec.data.CUSTADDRTEL), ""));
_this.addsave();
}
}
}
else {
//如果不完全是一票新业务 CUSTOMERNAME 有数据 则
//1 = 1;
_this.addsave();
}
if (this.AddMblNo == 1) {
if (this.storeAddBodyList.getCount() > 0) {
var rec2 = this.storeAddBodyList.getAt(0);
var mblno = rec2.data.MBLNO;
var REMARK = this.formEdit.getForm().findField('REMARK').getValue();
if (REMARK == '')
this.formEdit.getForm().findField('REMARK').setValue(mblno);
}
}
if (!basicForm.isValid()) {
btnEAddDetail.enable();
return;
}
var type = 0;
var PAYCOMPANYID = Ext.getCmp('PAYCOMPANYID').getValue();
if ((PAYCOMPANYID == '') || (PAYCOMPANYID == null)) {
var selectedRecords = this.gridAddFeeList.selModel.getSelection();
if (selectedRecords.length > 0) {
var rec = selectedRecords[0];
var PAYCOMPANYID = rec.data.PAYCOMPANYID;
Ext.getCmp('PAYCOMPANYID').setValue(PAYCOMPANYID);
}
}
//}
//else
//{
// 旧有发票业务 选择添加申请时也需要保存一次
// this.addDetailfn();
//}
}, //end save
addsave: function () {
var basicForm = this.formEdit.getForm();
this.formEdit.getForm().findField('GID').setDisabled(false);
// this.formEdit.getForm().findField('BILLSTATUS').setDisabled(false);
this.formEdit.getForm().findField('COMPANYID').setDisabled(false);
var data = basicForm.getValues();
var GID = this.formEdit.getForm().findField('GID').getValue();
// this.formEdit.getForm().findField('BILLSTATUS').setDisabled(true);
this.formEdit.getForm().findField('COMPANYID').setDisabled(true);
this.formEdit.getForm().findField('GID').setDisabled(true);
var bodydatas = [];
for (var i = 0; i < this.storeDetailList.getCount(); i += 1) {
var member = this.storeDetailList.getAt(i);
bodydatas.push(member);
}
var btnEAddDetail = Ext.getCmp('btnadddetail');
var jsonBody = ConvertRecordsToJsonAll(bodydatas);
Ext.Msg.wait('正在保存数据, 请稍侯..');
Ext.Ajax.request({
waitMsg: '正在保存数据...',
url: '/Account/Chfee_invoice_HangXin/Save',
scope: this,
params: {
opstatus: this.opStatus,
data: Ext.JSON.encode(data),
body: jsonBody
},
callback: function (options, success, response) {
if (success) {
Ext.MessageBox.hide();
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
var returnData = jsonresult.Data;
this.formEdit.getForm().setValues(returnData);
this.formAMT.getForm().setValues(data);
if (this.opStatus == 'add') {
var arrNewRecords = this.StoreList.insert(0, returnData);
this.editRecord = this.StoreList.getAt(0);
}
else if (this.opStatus == 'edit') {
var editp = Ext.create('MsChInvoice', returnData);
this.editRecord.fields.each(function (field) {
if (field.persist) {
name = field.name;
if (name != 'id')
this.editRecord.set(name, editp.get(name));
}
}, this);
this.editRecord.commit();
}
this.opStatus = 'edit';
this.storeDetailList.load({ params: { condition: " PID='" + GID + "'" } });
_this.addDetailfn();
} else {
btnEAddDetail.enable();
Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
}
} else {
btnEAddDetail.enable();
Ext.Msg.show({
title: '请重试',
msg: '服务器响应出错',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
}
}
});
},
addDetailfn: function () {
if (this.addstore) {
this.storeCurrExrate.removeAll();
this.addstore = false;
}
var btnEAddDetail = Ext.getCmp('btnadddetail');
var Duino = this.formEdit.getForm().findField('BILLNO').getValue();
var inviceno = this.formEdit.getForm().findField('INVOICENO').getValue();
var GID = this.formEdit.getForm().findField('GID').getValue();
var ISDELETE = this.formEdit.getForm().findField('ISDELETE').getValue();
var ISNEEDPRINT = this.formEdit.getForm().findField('ISNEEDPRINT').getValue();
var ISNEEDFEE = this.formEdit.getForm().findField('ISNEEDFEE').getValue();
var VOUCHERNO = this.formEdit.getForm().findField('VOUCHERNO').getValue();
var VOUNO = this.formEdit.getForm().findField('VOUNO').getValue();
var EINVOICESTATEREF = this.formEdit.getForm().findField('EINVOICESTATEREF').getValue();
if (EINVOICESTATEREF != '未开票' && EINVOICESTATEREF != '' && EINVOICESTATEREF != null) {
btnEAddDetail.enable();
Ext.Msg.show({
title: '提示',
msg: '当前开票状态不能修改此发票,只能作废!',
icon: Ext.Msg.INFO,
buttons: Ext.Msg.OK
});
return;
}
if (ISNEEDPRINT == 'true') {
btnEAddDetail.enable();
Ext.Msg.show({ title: '提示', msg: '已打印无法修改此发票,只能作废!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (VOUCHERNO != '' && VOUCHERNO != null) {
btnEAddDetail.enable();
Ext.Msg.show({ title: '提示', msg: '已生成接口凭证无法修改此发票,只能作废!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (VOUNO != '' && VOUNO != null) {
btnEAddDetail.enable();
Ext.Msg.show({ title: '提示', msg: '已生成总账凭证无法修改此发票,只能作废!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (ISDELETE == 'true') {
btnEAddDetail.enable();
Ext.Msg.show({ title: '提示', msg: '此发票已作废无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var basicForm = this.formEdit.getForm();
var billcust = this.editRecord.data.CUSTOMERNAME;
var billno = this.editRecord.data.BILLNO;
var billcurr = this.editRecord.data.CURRENCY;
var billtaxrate = this.editRecord.data.EXCHANGERATE;
var selectedRecords = this.gridAddFeeList.selModel.getSelection();
var bodyAddDatas = [];
_this = this;
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
var cust = rec.data.CUSTOMERNAME;
var curr = rec.data.CURRENCY;
var acctaxrate = rec.data.RATE;
if (cust == billcust) {
if (billtaxrate == acctaxrate) {
if (billcurr == curr) {
bodyAddDatas.push(rec);
} else {
alert('币别与发票申请币别不一致,不能添加此费用明细!');
}
} else {
alert('进项税率与发票申请税率不一致,不能添加此费用明细!');
}
} else {
alert('费用对象与开票客户不一致,不能添加此费用明细!');
}
}
if (bodyAddDatas.length == 0) {
btnEAddDetail.enable();
Ext.Msg.show({ title: '提示', msg: '没有要添加的费用明细!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
};
var jsonbodyAddDatas = ConvertRecordsToJsonAll(bodyAddDatas);
Ext.Ajax.request({
waitMsg: '正在添加数据...',
url: '/Account/Chfee_invoice_HangXin/AddAppDetail',
params: {
bill: billno,
data: jsonbodyAddDatas,
inviceno: inviceno,
GID: GID
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
btnEAddDetail.enable();
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
return;
} else {
var sql = this.BillSql;
// this.storeAddFeeList.load({ params: { start: 0, limit: _this.PageSize, sort: '', condition: sql } });
this.storeAddFeeList.reload();
_this.storeBodyList.load({
params: { condition: " BILLNO='" + billno + "'" },
callback: function (r, options, success) {
if (success) {
if (_this.storeBodyList.getCount() > 0) {
//_this.comboxCurr.setReadOnly(true);
_this.comboxCustCode.setReadOnly(true);
}
else {
//_this.comboxCurr.setReadOnly(false);
_this.comboxCustCode.setReadOnly(false);
_this.setInvInfoBlank();
}
}
},
scope: this
});
this.storeDetailList.load({ params: { condition: " PID='" + GID + "'" } });
this.storeBodyAppList.load({ params: { condition: " BILLNO IN (SELECT DISTINCT PAYBILLNO FROM ch_fee_do_payapplication WHERE BILLNO='" + billno + "')" } });
this.storeBodySum.load({ params: { condition: " BILLNO='" + billno + "'" } });
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Account/Chfee_invoice_HangXin/GetData',
params: {
handle: 'edit',
condition: " BILLNO='" + billno + "'",
isapp: true
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
return;
}
var data = result.data;
this.formEdit.getForm().reset();
this.formEdit.getForm().setValues(data);
this.formAMT.getForm().setValues(data);
var editp = Ext.create('MsChInvoice', data);
this.editRecord.fields.each(function (field) {
if (field.persist) {
name = field.name;
if (name != 'id')
this.editRecord.set(name, editp.get(name));
}
}, this);
this.editRecord.commit();
} else {
btnEAddDetail.enable();
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
} else {
btnEAddDetail.enable();
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
},
setInvInfoBlank: function () {
var INVOICECUSTNAME = this.formEdit.getForm().findField('INVOICECUSTNAME');
var CUSTRATENO = this.formEdit.getForm().findField('CUSTRATENO');
var CUSTADDRTEL = this.formEdit.getForm().findField('CUSTADDRTEL');
var CUSTADDR = this.formEdit.getForm().findField('CUSTADDR');
var CUSTTEL = this.formEdit.getForm().findField('CUSTTEL');
var CUSTBANK = this.formEdit.getForm().findField('CUSTBANK');
var CUSTOMERNAME = this.formEdit.getForm().findField('CUSTOMERNAME');
INVOICECUSTNAME.setValue("");
CUSTRATENO.setValue("");
CUSTADDRTEL.setValue("");
CUSTADDR.setValue("");
CUSTTEL.setValue("");
CUSTBANK.setValue("");
CUSTOMERNAME.setValue("");
cb = this.getCustBank();
CUSTBANK.setValue(cb);
},
deleteBill: function (type) {
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
var GID = this.formEdit.getForm().findField('GID').getValue();
var selectedRecords = this.gridAppList.selModel.getSelection();
if (selectedRecords.length == 0) {
Ext.Msg.show({ title: '提示', msg: '没有要删除的费用明细!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
};
var ISDELETE = this.formEdit.getForm().findField('ISDELETE').getValue();
var ISNEEDPRINT = this.formEdit.getForm().findField('ISNEEDPRINT').getValue();
var ISNEEDFEE = this.formEdit.getForm().findField('ISNEEDFEE').getValue();
var VOUCHERNO = this.formEdit.getForm().findField('VOUCHERNO').getValue();
var VOUNO = this.formEdit.getForm().findField('VOUNO').getValue();
if (ISNEEDPRINT == 'true') {
Ext.Msg.show({ title: '提示', msg: '已打印无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (VOUCHERNO != '') {
Ext.Msg.show({ title: '提示', msg: '已生成接口凭证无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (VOUNO != '') {
Ext.Msg.show({ title: '提示', msg: '已生成总账凭证无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (ISDELETE == 'true') {
Ext.Msg.show({ title: '提示', msg: '此发票已作废无法修改此发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var bodyAddDatas = [];
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
bodyAddDatas.push(rec);
}
var jsonbodyAddDatas = ConvertRecordsToJsonAll(bodyAddDatas);
var sql = this.BillSql;
Ext.Ajax.request({
waitMsg: '正在删除数据...',
url: '/Account/Chfee_invoice_HangXin/DelAppBill',
params: {
data: jsonbodyAddDatas,
billno: billno,
GID: GID
},
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;
} else {
var sql = this.BillSql;
this.storeAddFeeList.load({ params: { start: 0, limit: _this.PageSize, sort: '', condition: sql } });
_this.storeBodyList.load({
params: { condition: " BILLNO='" + billno + "'" },
async:false,
callback: function (r, options, success) {
if (success) {
if (_this.storeBodyList.getCount() > 0) {
//_this.comboxCurr.setReadOnly(true);
_this.comboxCustCode.setReadOnly(true);
}
else {
//_this.comboxCurr.setReadOnly(false);
_this.comboxCustCode.setReadOnly(false);
_this.setInvInfoBlank();
}
}
},
scope: this
});
this.storeBodySum.load({ params: { condition: " BILLNO='" + billno + "'" } });
this.storeBodyAppList.load({ params: { condition: " BILLNO IN (SELECT DISTINCT PAYBILLNO FROM ch_fee_do_payapplication WHERE BILLNO='" + billno + "')" } });
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Account/Chfee_invoice_HangXin/GetData',
params: {
handle: 'edit',
condition: " BILLNO='" + billno + "'",
isapp: true
},
async: false,
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
return;
}
var data = result.data;
this.formEdit.getForm().reset();
this.formEdit.getForm().setValues(data);
this.formAMT.getForm().setValues(data);
var editp = Ext.create('MsChInvoice', data);
if (_this.storeBodyList.getCount() > 0) {
//_this.comboxCurr.setReadOnly(true);
_this.comboxCustCode.setReadOnly(true);
}
else {
//_this.comboxCurr.setReadOnly(false);
_this.comboxCustCode.setReadOnly(false);
_this.setInvInfoBlank();
}
this.editRecord.fields.each(function (field) {
if (field.persist) {
name = field.name;
if (name != 'id')
this.editRecord.set(name, editp.get(name));
}
}, this);
this.editRecord.commit();
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
},
onSubmitAuditClick: function () {
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
var GID = this.formEdit.getForm().findField('GID').getValue();
var billstatus = this.formEdit.getForm().findField('BILLSTATUS').getValue();
var Duino = this.formEdit.getForm().findField('BILLNO').getValue();
if (Duino == '*') {
Ext.Msg.show({ title: '提示', msg: '请先保存发票,然后才能锁定!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
};
if ((billstatus != 0)) {
Ext.Msg.show({ title: '提示', msg: '当前状态无法锁定!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
_this = this;
Ext.Ajax.request({
waitMsg: '正在添加数据...',
url: '/Account/Chfee_invoice_HangXin/Lock',
params: {
bill: Duino
},
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;
} else {
var sql = this.BillSql;
this.storeAddFeeList.load({ params: { start: 0, limit: _this.PageSize, sort: '', condition: sql } });
//this.storeAddBodySum.load({ params: { condition: sql } });
_this.storeBodyList.load({
params: { condition: " BILLNO='" + billno + "'" },
callback: function (r, options, success) {
if (success) {
if (_this.storeBodyList.getCount() > 0) {
//_this.comboxCurr.setReadOnly(true);
_this.comboxCustCode.setReadOnly(true);
}
else {
//_this.comboxCurr.setReadOnly(false);
_this.comboxCustCode.setReadOnly(false);
_this.setInvInfoBlank();
}
}
},
scope: this
});
this.storeBodySum.load({ params: { condition: " BILLNO='" + billno + "'" } });
this.storeDetailList.load({ params: { condition: " PID='" + GID + "'" } });
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Account/Chfee_invoice_HangXin/GetData',
params: {
handle: 'edit',
condition: " BILLNO='" + billno + "'",
isapp: false
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
return;
}
var data = result.data;
this.formEdit.getForm().reset();
this.formEdit.getForm().setValues(data);
this.formAMT.getForm().setValues(data);
var editp = Ext.create('MsChInvoice', data);
this.editRecord.fields.each(function (field) {
if (field.persist) {
name = field.name;
if (name != 'id')
this.editRecord.set(name, editp.get(name));
}
}, this);
this.editRecord.commit();
this.GetEditStatus();
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
},
onSubmitAuditBackClick: function () {
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
var GID = this.formEdit.getForm().findField('GID').getValue();
var Duino = this.formEdit.getForm().findField('BILLNO').getValue();
var billstatus = this.formEdit.getForm().findField('BILLSTATUS').getValue();
var VOUCHERNO = this.formEdit.getForm().findField('VOUCHERNO').getValue();
var VOUNO = this.formEdit.getForm().findField('VOUNO').getValue();
if (Duino == '*') {
Ext.Msg.show({ title: '提示', msg: '请先保存,然后才能撤销锁定!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
};
if (billstatus != 1) {
Ext.Msg.show({ title: '提示', msg: '当前状态无法撤销锁定!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (VOUCHERNO != '') {
Ext.Msg.show({ title: '提示', msg: '已生成接口凭证无法撤销锁定!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
if (VOUNO != '') {
Ext.Msg.show({ title: '提示', msg: '已生成总账凭证无法撤销锁定!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
_this = this;
Ext.Ajax.request({
waitMsg: '正在添加数据...',
url: '/Account/Chfee_invoice_HangXin/UnLock',
params: {
bill: Duino
},
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;
} else {
var sql = this.BillSql;
this.storeAddFeeList.load({ params: { start: 0, limit: _this.PageSize, sort: '', condition: sql } });
//this.storeAddBodySum.load({ params: { condition: sql } });
_this.storeBodyList.load({
params: { condition: " BILLNO='" + billno + "'" },
callback: function (r, options, success) {
if (success) {
if (_this.storeBodyList.getCount() > 0) {
//_this.comboxCurr.setReadOnly(true);
_this.comboxCustCode.setReadOnly(true);
}
else {
//_this.comboxCurr.setReadOnly(false);
_this.comboxCustCode.setReadOnly(false);
_this.setInvInfoBlank();
}
}
},
scope: this
});
this.storeBodySum.load({ params: { condition: " BILLNO='" + billno + "'" } });
this.storeDetailList.load({ params: { condition: " PID='" + GID + "'" } });
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Account/Chfee_invoice_HangXin/GetData',
params: {
handle: 'edit',
condition: " BILLNO='" + billno + "'",
isapp: false
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
return;
}
var data = result.data;
this.formEdit.getForm().reset();
this.formEdit.getForm().setValues(data);
this.formAMT.getForm().setValues(data);
var editp = Ext.create('MsChInvoice', data);
this.editRecord.fields.each(function (field) {
if (field.persist) {
name = field.name;
if (name != 'id')
this.editRecord.set(name, editp.get(name));
}
}, this);
this.editRecord.commit();
this.GetEditStatus();
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
},
onExpInvClick: function () {
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
var GID = this.formEdit.getForm().findField('GID').getValue();
var billstatus = this.formEdit.getForm().findField('BILLSTATUS').getValue();
var Duino = this.formEdit.getForm().findField('BILLNO').getValue();
if (Duino == '*') {
Ext.Msg.show({ title: '提示', msg: '请先保存发票,然后才能锁定!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
};
_this = this;
Ext.Ajax.request({
waitMsg: '正在添加数据...',
url: '/Account/Chfee_invoice_HangXin/ExpInvForm',
params: {
bill: Duino
},
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;
} else {
// var downloadfile = Ext.getCmp('downloadfile');
// var children = downloadfile.items;
// if (children) {
// for (var i = 0, len = children.length; i < len; i++) {
// downloadfile.remove(children.items[i], true);
// }
// }
// var downloadfiles = '<a href="' + result.Data + '" style=' + '"text-decoration:none"' + '>' + result.Message + '</a>';
// var htmla = Ext.widget('label', {
// html: downloadfiles,
// width: 120,
// text: ''
// });
// downloadfile.items.add(htmla);
// this.winDownloadShow.show();
// return;
this.LoadData('edit', "BILLNO='" + billno + "'");
var openSet = "height=300, width=600, toolbar=no, menubar=no,scrollbars=no, resizable=no,location=no, status=no,Top=" + (screen.height - 200) / 2 + ",Left=" + (screen.width - 200) / 2;
var openType = "_blank";
var openUrl = "../../Reports/FileExport.aspx?filename=" + result.Data;
window.open(openUrl, openType, openSet);
}
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
},
onExpDZInvClick: function () {
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
var GID = this.formEdit.getForm().findField('GID').getValue();
var cust = this.formEdit.getForm().findField('CUSTOMERNAME').getValue();
var DZSTATUS = this.formEdit.getForm().findField('DZSTATUS').getValue();
if (DZSTATUS == '已开票') {
Ext.Msg.show({ title: '提示', msg: '已开电子发票!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
this.formDZInvShow = Ext.widget('form', {
frame: true,
title: '电子开票',
region: 'center',
bodyPadding: 5,
fieldDefaults: {
margins: '2 2 2 2',
labelAlign: 'right',
flex: 1,
labelWidth: 90,
msgTarget: 'qtip'
},
items: [
{//fieldset 1
xtype: 'container',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [
{
fieldLabel: '客户邮箱', //'编号',
name: 'email',
labelWidth: 60,
enableKeyEvents: true
}
]
}
]//end root items
});
var selectrecords = DsStoreQueryBy(this.storeCustCodefee, 'CustName', cust);
if (selectrecords.getCount() > 0) {
var selectdata = selectrecords.getAt(0).data;
this.formDZInvShow.getForm().findField('email').setValue(selectdata.EMAIL);
}
this.winDZInvShow = Ext.create('Ext.window.Window', {
title: "",
// closeAction: 'hide',
width: 400,
height: 150,
layout: 'border',
resizable: true,
modal: true,
closeAction: 'close',
closable: true,
items: [this.formDZInvShow],
buttons: [{
text: "确定",
minWidth: 70,
handler: function () {
// var remarkstr = formRemarkShow.getForm().findField('INVREMARK').getValue();
// var cgFILEROLE = Ext.getCmp('hjFILEROLEGet');
// var FILEROLE = cgFILEROLE.getValue();
var email = _this.formDZInvShow.getForm().findField('email').getValue();
Ext.Ajax.request({
waitMsg: '正在添加数据...',
url: '/Account/Chfee_invoice_HangXin/ExpDZInv',
params: {
gid: GID,
email: email
},
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;
} else {
_this.winDZInvShow.close();
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Account/Chfee_invoice_HangXin/GetData',
params: {
handle: 'edit',
condition: " BILLNO='" + billno + "'",
isapp: false
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
return;
}
var data = result.data;
this.formEdit.getForm().reset();
this.formEdit.getForm().setValues(data);
this.formAMT.getForm().setValues(data);
var editp = Ext.create('MsChInvoice', data);
this.editRecord.fields.each(function (field) {
if (field.persist) {
name = field.name;
if (name != 'id')
this.editRecord.set(name, editp.get(name));
}
}, this);
this.editRecord.commit();
this.GetEditStatus();
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
}, {
text: "关闭",
minWidth: 70,
handler: function () {
_this.winDZInvShow.close();
}
}]
});
_this.winDZInvShow.show();
},
getformvalue: function (fieldname) {
return this.formEdit.getForm().findField(fieldname).getValue();
},
fieldisnull: function (fieldname) {
if (isNullorEmpty(this.getformvalue(fieldname))) return true;
else return false;
},
dealReturnData: function (returnData) {
//var returnData = jsonresult.Data;
this.formEdit.getForm().setValues(returnData);
this.formAMT.getForm().setValues(returnData);
if (this.opStatus == 'add') {
var arrNewRecords = this.StoreList.insert(0, returnData);
this.editRecord = this.StoreList.getAt(0);
} else if (this.opStatus == 'edit') {
var editp = Ext.create('MsChInvoice', returnData);
this.editRecord.fields.each(function (field) {
if (field.persist) {
name = field.name;
if (name != 'id') this.editRecord.set(name, editp.get(name));
}
},
this);
this.editRecord.commit();
}
GID = this.editRecord.get('GID');
this.GetEditStatus();
},
onNNMakeInvClick: function () {
var btn_KP = Ext.getCmp("btn_KP");
btn_KP.disable();
_this = this;
setTimeout(function () { _this.setInvoiceButtonStatus() }, 5000);
this.Save("MakeInv");
//_this.setInvoiceButtonStatus()
},
DoMakeNNInv: function () {
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
var GID = this.formEdit.getForm().findField('GID').getValue();
var billstatus = this.formEdit.getForm().findField('BILLSTATUS').getValue();
var Duino = this.formEdit.getForm().findField('BILLNO').getValue();
if (Duino == '*') {
Ext.Msg.show({
title: '提示',
msg: '请先保存发票,然后才能锁定和开出!',
icon: Ext.Msg.INFO,
buttons: Ext.Msg.OK
});
return;
};
var EINVOICESTATEREF = this.formEdit.getForm().findField('EINVOICESTATEREF').getValue();
if (EINVOICESTATEREF == '开票中') {
Ext.Msg.show({
title: '提示',
msg: '已经在开票中,不允许重复开票!',
icon: Ext.Msg.INFO,
buttons: Ext.Msg.OK
});
return;
}
errormsg = this.checkPost();
if (isNullorEmpty(errormsg)) {
this.doPostInv();
}
else
Ext.MessageBox.confirm('提示', errormsg + ' 确定要进行开票吗?',
function (btn) {
if (btn == 'yes') {
_this.doPostInv();
}
});
},
checkPost: function () {
errormsg = "";
if (this.fieldisnull('INVOICECUSTNAME')) errormsg = errormsg + "未选择购方信息;";
if (this.fieldisnull('CUSTRATENO')) errormsg = errormsg + "未填写购方税号;";
if (this.fieldisnull('CUSTTEL')) errormsg = errormsg + "未填写购方电话;";
if (this.fieldisnull('CUSTADDR')) errormsg = errormsg + "未填写购方地址;";
if (this.fieldisnull('CUSTBANK')) errormsg = errormsg + "未填写购方银行账号;";
if (this.fieldisnull('ACCOUNT')) errormsg = errormsg + "未选择销方银行和账户;";
if (this.fieldisnull('PAYEE')) errormsg = errormsg + "未选择收款人;";
if (this.fieldisnull('CHECKER')) errormsg = errormsg + "未选择复核人;";
if (this.fieldisnull('CHECKER')) errormsg = errormsg + "未选择复核人;";
return errormsg;
},
doPostInv: function () {
_this = this;
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
Ext.Ajax.request({
waitMsg: '正在提交开票信息...',
url: '/Account/Chfee_invoice_HangXin/NNMakeInv',
params: {
bill: billno,
redirecturl: GetHangXinRedirectUrl()
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
this.ShowTokenPage(result);
} else {
var pageurl = result.Data.INVOICEINFOURL;
_this.dealReturnData(result.Data);
//开票成功 直接显示返回的发票详情页地址
if (isNullorEmpty(pageurl)) {
if (!isNullorEmpty(result.Message)) {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
} else if (!isNullorEmpty(result.Data.INVOICESERIALNUM)) {
Ext.Msg.show({
title: '提示',
msg: "开票信息发送成功,请稍后点击【查看发票】或【邮件转发】。",
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
} else {
alert("未知错误");
}
var condition = " BILLNO='" + _this.editRecord.get('BILLNO') + "'";
_this.LoadData('edit', condition);
} else {
var url = result.Data.INVOICEINFOURL.replace("http://", "").replace("https://", "").replace("https//", "");
DsOpenEditWin_FullUrl(url, "发票信息", 600, 800, 300, 300);
}
}
} else {
//如果返回错误的内容是无法获取token 那就需要打开诺诺平台的税号/密码窗口
//使用返回值内的url直接打开
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
},
onNNReadInvClick: function () {
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
if (billno == '*' || billno == '') {
Ext.Msg.show({
title: '提示',
msg: '请先保存发票,然后才能进行其他操作!',
icon: Ext.Msg.INFO,
buttons: Ext.Msg.OK
});
return;
};
_this = this;
Ext.Ajax.request({
waitMsg: '正在读取开票信息...',
url: '/Account/Chfee_invoice_HangXin/NNReadInv',
params: {
BILLNO: billno,
redirecturl: GetHangXinRedirectUrl()
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
this.ShowTokenPage(result);
} else {
_this.dealReturnData(result.Data);
var pageurl = result.Data.INVOICEINFOURL;
if (isNullorEmpty(pageurl))
pageurl = result.Data.INVOICEPDFURL;
if (isNullorEmpty(pageurl)) {
if (!isNullorEmpty(result.Message)) {
if (result.Message.indexOf("保存成功")>=0) {
} else {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
}
} else if (!isNullorEmpty(result.Data.INVOICESERIALNUM)) {
Ext.Msg.show({
title: '提示',
msg: "开票信息发送成功,但还未正确开出,请检查诺诺(瑞宏)客户端的运行情况,或稍后再次执行'查看发票'。",
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
} else {
alert("未知错误");
}
} else {
var url = result.Data.INVOICEINFOURL.replace("http://", "").replace("https://", "").replace("https//", "");
DsOpenEditWin_FullUrl(url, "发票信息", 600, 800, 300, 300);
}
}
} else {
//如果返回错误的内容是无法获取token 那就需要打开诺诺平台的税号/密码窗口
//使用返回值内的url直接打开
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
},
onNNVoidInvClick: function () {
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
if (billno == '*' || billno == '') {
Ext.Msg.show({
title: '提示',
msg: '请先保存发票,然后才能进行其他操作!',
icon: Ext.Msg.INFO,
buttons: Ext.Msg.OK
});
return;
};
_this = this;
Ext.Ajax.request({
waitMsg: '正在发送开票信息...',
url: '/Account/Chfee_invoice_HangXin/NNVoidInv',
params: {
BILLNO: billno,
redirecturl: GetHangXinRedirectUrl()
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
this.ShowTokenPage(result);
} else {
var pageurl = result.Data.INVOICEINFOURL;
if (isNullorEmpty(pageurl))
pageurl = result.Data.INVOICEPDFURL;
if (isNullorEmpty(pageurl)) {
if (!isNullorEmpty(result.Message)) {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
} else if (!isNullorEmpty(result.Data.INVOICESERIALNUM)) {
Ext.Msg.show({
title: '提示',
msg: "发票作废信息发送成功,但还未完成处理,请检查诺诺客户端的运行情况,或稍后再次执行'查看发票'。",
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
} else {
alert("未知错误");
}
} else {
var url = result.Data.INVOICEINFOURL.replace("http://", "").replace("https://", "").replace("https//", "");
DsOpenEditWin_FullUrl(url, "发票信息", 600, 800, 300, 300);
}
}
} else {
//如果返回错误的内容是无法获取token 那就需要打开诺诺平台的税号/密码窗口
//使用返回值内的url直接打开
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
},
onNNSetRedClick: function () {
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
if (billno == '*' || billno == '') {
Ext.Msg.show({
title: '提示',
msg: '请先保存发票,然后才能进行其他操作!',
icon: Ext.Msg.INFO,
buttons: Ext.Msg.OK
});
return;
};
_this = this;
Ext.Ajax.request({
waitMsg: '正在发送开票信息...',
url: '/Account/Chfee_invoice_HangXin/NNSetRed',
params: {
bill: billno,
redirecturl: GetHangXinRedirectUrl()
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
this.ShowTokenPage(result);
} else {
_this.dealReturnData(result.Data);
var pageurl = result.Data.INVOICEINFOURL;
if (isNullorEmpty(pageurl))
pageurl = result.Data.INVOICEPDFURL;
if (isNullorEmpty(pageurl)) {
if (!isNullorEmpty(result.Message)) {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
} else if (!isNullorEmpty(result.Data.INVOICESERIALNUM)) {
Ext.Msg.show({
title: '提示',
msg: "开票信息发送成功,但还未正确开出,请检查诺诺客户端的运行情况,或稍后再次执行'查看发票'。",
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
} else {
alert("未知错误");
}
} else {
var url = result.Data.INVOICEINFOURL.replace("http://", "").replace("https://", "").replace("https//", "");
DsOpenEditWin_FullUrl(url, "发票信息", 600, 800, 300, 300);
}
}
} else {
//如果返回错误的内容是无法获取token 那就需要打开诺诺平台的税号/密码窗口
//使用返回值内的url直接打开
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
},
ShowTokenPage: function (result) {
if (result.Message == "需要认证诺诺用户名和密码") {
DsOpenEditWin_NoUrl(result.Data, "平台开票信息认证", 600, 400, 300, 300);
} else Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
},
onNNReadInvPDFClick: function (result) {
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
if (billno == '*' || billno == '') {
Ext.Msg.show({
title: '提示',
msg: '请先保存发票,然后才能进行其他操作!',
icon: Ext.Msg.INFO,
buttons: Ext.Msg.OK
});
return;
};
_this = this;
Ext.Ajax.request({
waitMsg: '正在读取开票信息...',
url: '/Account/Chfee_invoice_HangXin/NNReadInv',
params: {
BILLNO: billno,
redirecturl: GetHangXinRedirectUrl()
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
this.ShowTokenPage(result);
} else {
_this.dealReturnData(result.Data);
var pageurl = result.Data.INVOICEPDFURL;
if (isNullorEmpty(pageurl)) {
if (!isNullorEmpty(result.Message)) {
if (result.Message.indexOf("保存成功") >= 0) {
} else {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
}
} else if (!isNullorEmpty(result.Data.INVOICESERIALNUM)) {
Ext.Msg.show({
title: '提示',
msg: "开票信息发送成功,但还未正确开出,请检查诺诺客户端的运行情况,或稍后再次执行'查看发票'。",
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
} else {
alert("未知错误");
}
} else {
DsOpenEditWin_FullUrl(pageurl.replace("http://", "").replace("https://", "").replace("https//", ""), "发票信息", 600, 800, 300, 300);
}
}
} else {
//如果返回错误的内容是无法获取token 那就需要打开诺诺平台的税号/密码窗口
//使用返回值内的url直接打开
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
},
ImportRemarks: function () {
var billno = this.formEdit.getForm().findField('BILLNO').getValue();
if (billno == '*') {
Ext.Msg.show({ title: '提示', msg: '请先保存,然后才能撤销锁定!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
};
this.formRemarkShowGet = Ext.widget('form', {
frame: true,
title: '提取发票备注',
region: 'center',
bodyPadding: 5,
fieldDefaults: {
margins: '2 2 2 2',
labelAlign: 'right',
flex: 1,
labelWidth: 90,
msgTarget: 'qtip'
},
items: [
{
xtype: 'radiogroup',
fieldLabel: "模板名称", //'文件功能',
name: 'TemplateName',
defaults: { flex: 1 },
layout: 'hbox',
items: [{
boxLabel: '模板1', //'原始',
name: 'TemplateName',
// id: 'TemplateName1',
inputValue: '发票备注',
checked: true
}, {
boxLabel: '模板2', //'更新',
name: 'TemplateName',
inputValue: '发票备注2'
}, {
boxLabel: '模板3', //'更新',
name: 'TemplateName',
inputValue: '发票备注3'
}]
}, {
fieldLabel: '是否追加', //'是否改签',
inputValue: true,
xtype: 'checkboxfield',
name: 'ISZHUIJIA',
checked: true
}
]//end root items
});
this.winCustomDataShowGet = Ext.create('Ext.window.Window', {
title: "",
// closeAction: 'hide',
width: 400,
height: 150,
layout: 'border',
resizable: true,
modal: true,
closeAction: 'close',
closable: true,
items: [this.formRemarkShowGet],
buttons: [{
text: "确定",
minWidth: 70,
handler: function () {
// var remarkstr = formRemarkShow.getForm().findField('INVREMARK').getValue();
// var cgFILEROLE = Ext.getCmp('hjFILEROLEGet');
// var FILEROLE = cgFILEROLE.getValue();
var templatename = _this.formRemarkShowGet.getForm().findField('TemplateName').getValue();
var ISZHUIJIA = _this.formRemarkShowGet.getForm().findField('ISZHUIJIA').getValue();
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Account/Chfee_invoice_HangXin/GetRemarksData',
params: {
billno: billno,
TemplateName: templatename
},
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;
var REMARK = _this.formEdit.getForm().findField('REMARK').getValue();
if (ISZHUIJIA)
_this.formEdit.getForm().findField('REMARK').setValue(REMARK + ' ' + data);
else _this.formEdit.getForm().findField('REMARK').setValue(data);
_this.winCustomDataShowGet.close();
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
}, {
text: "关闭",
minWidth: 70,
handler: function () {
_this.winCustomDataShowGet.close();
}
}]
});
_this.winCustomDataShowGet.show();
},
SetRemarksTemplate: function () {
var StoreFieldName = Ext.create('Ext.data.Store', {
fields: ['OPLBNAME']
});
StoreFieldName.add({ "OPLBNAME": "委托编号" });
StoreFieldName.add({ "OPLBNAME": "主提单号" });
StoreFieldName.add({ "OPLBNAME": "委托单位" });
StoreFieldName.add({ "OPLBNAME": "船名" });
StoreFieldName.add({ "OPLBNAME": "航次" });
StoreFieldName.add({ "OPLBNAME": "开船日期" });
StoreFieldName.add({ "OPLBNAME": "装货港" });
StoreFieldName.add({ "OPLBNAME": "卸货港" });
StoreFieldName.add({ "OPLBNAME": "外币金额" });
StoreFieldName.add({ "OPLBNAME": "人民币金额" });
StoreFieldName.add({ "OPLBNAME": "折算汇率" });
StoreFieldName.add({ "OPLBNAME": "目的港" });
StoreFieldName.add({ "OPLBNAME": "集装箱" });
StoreFieldName.add({ "OPLBNAME": "外币金额(总计)" });
StoreFieldName.add({ "OPLBNAME": "人民币金额(总计)" });
StoreFieldName.add({ "OPLBNAME": "折算汇率(总计)" });
var gridField = new Ext.grid.GridPanel({
store: StoreFieldName,
enableHdMenu: false,
region: 'center',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
columns: [{
sortable: true,
dataIndex: 'OPLBNAME',
header: '字段',
width: 80
}
]
});
gridField.addListener('itemdblclick', function (dataview, record, item, index, e, b) {
var remarkstr = formRemarkShow.getForm().findField('INVREMARK').getValue();
remarkstr = remarkstr + '[' + record.data.OPLBNAME + ']';
formRemarkShow.getForm().findField('INVREMARK').setValue(remarkstr);
}, this);
var panelBs = new Ext.Panel({
title: '字段列表',
layout: "border",
region: 'west',
width: 120,
frame: true,
split: true,
collapsed: false,
collapsible: true,
trackResetOnLoad: true,
items: [gridField]
});
var formRemarkShow = Ext.widget('form', {
frame: true,
title: '模板内容',
region: 'center',
bodyPadding: 5,
fieldDefaults: {
margins: '2 2 2 2',
labelAlign: 'right',
flex: 1,
labelWidth: 90,
msgTarget: 'qtip'
},
items: [
{//fieldset 1
xtype: 'container',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [{
xtype: 'textareafield',
grow: true,
height: 300,
id: 'dREMARK',
name: 'INVREMARK',
anchor: '100%'
}, {
xtype: 'radiogroup',
fieldLabel: "模板名称", //'文件功能',
id: 'hjFILEROLE',
defaults: { flex: 1 },
layout: 'hbox',
items: [{
boxLabel: '模板1', //'原始',
name: 'TemplateName',
// id: 'TemplateName1',
inputValue: '发票备注',
checked: true
}, {
boxLabel: '模板2', //'更新',
name: 'TemplateName',
inputValue: '发票备注2'
}, {
boxLabel: '模板3', //'更新',
name: 'TemplateName',
inputValue: '发票备注3'
}],
listeners: {
change: function (rd, newValue, oldValue, eOpts) {
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Account/Chfee_invoice_HangXin/GetRemarksTemplate',
params: {
TemplateName: newValue.TemplateName.toString()
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
data = result.Data;
formRemarkShow.getForm().findField('INVREMARK').setValue(data);
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
}
}
]//end items(fieldset 1)
}//end fieldset 1
]//end root items
});
winCustomDataShow = Ext.create('Ext.window.Window', {
title: "",
// closeAction: 'hide',
width: 600,
height: 500,
layout: 'border',
resizable: true,
modal: true,
closeAction: 'close',
closable: true,
items: [panelBs, formRemarkShow],
// listeners: {
// scope: this,
// 'beforeshow': function (thewin, eOpts) {
// var cgFILEROLE = Ext.getCmp('hjFILEROLE');
// var FILEROLE = cgFILEROLE.getValue();
// }
// },
buttons: [{
text: "保存",
minWidth: 70,
handler: function () {
var remarkstr = formRemarkShow.getForm().findField('INVREMARK').getValue();
var cgFILEROLE = Ext.getCmp('hjFILEROLE');
var FILEROLE = cgFILEROLE.getValue();
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Account/Chfee_invoice_HangXin/SaveRemarksTemplate',
params: {
Template: remarkstr,
TemplateName: FILEROLE.TemplateName
},
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;
}
// winCustomDataShow.close();
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
}, {
text: "关闭",
minWidth: 70,
handler: function () {
winCustomDataShow.close();
}
}]
});
winCustomDataShow.show();
if (this.firsttemplate == 1) {
this.firsttemplate = 0;
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Account/Chfee_invoice_HangXin/GetRemarksTemplate',
params: {
TemplateName: ""
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
data = result.Data;
formRemarkShow.getForm().findField('INVREMARK').setValue(data);
// Ext.getCmp('TemplateName1').checked = true;
// formRemarkShow.getForm().findField('TemplateName').setValue('发票备注');
// var cgFILEROLE = Ext.getCmp('hjFILEROLE');
// var FILEROLE = cgFILEROLE.setValue('发票备注');
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
},
onRefreshClick: function (button, event) {
var sql = this.getCondition();
this.sqlcontext = sql;
this.storeAddFeeList.load({ params: { start: 0, limit: this.PageSize, sort: '', condition: sql } });
},
onDsQuery: function (button, event) {
var sql = this.sqlcontex;
this.storeAddFeeList.load({ params: { start: 0, limit: this.PageSize, sort: '', condition: sql } });
},
onClearSql: function () {
var form = this.formSearch.getForm();
form.reset();
},
getCondition: function () {
var form = this.formSearch.getForm();
if (!form.isValid()) {
Ext.Msg.alert('提示', '查询条件赋值错误,请检查。');
return '';
}
var sql = " BILLSTATUS=0 ";
var APPLICANT = form.findField('APPLICANT').getValue();
sql = sql + getAndConSql(sql, APPLICANT, "APPLICANT='" + APPLICANT + "'");
var INVOICECATEGORY = form.findField('INVOICECATEGORY').getValue();
sql = sql + getAndConSql(sql, INVOICECATEGORY, "INVOICECATEGORY='" + INVOICECATEGORY + "'");
var custName = form.findField('CustName').getValue();
sql = sql + getAndConSql(sql, custName, "CUSTOMERNAME like '%" + custName + "%'");
var expDateBgn = form.findField('ExpDateBgn').getRawValue();
sql = sql + getAndConSql(sql, expDateBgn, "APPLYTIME >='" + expDateBgn + "'");
var expDateEnd = form.findField('ExpDateEnd').getRawValue();
sql = sql + getAndConSql(sql, expDateEnd, "APPLYTIME <='" + expDateEnd + "'");
var customNo = form.findField('BsNo').getValue();
sql = sql + getAndConSql(sql, customNo, "BILLNO like '%" + customNo + "%'");
var MblNo = form.findField('MblNo').getValue();
sql = sql + getAndConSql(sql, MblNo, " EXISTS(select 1 from ch_fee_do where BILLNO=cm.BILLNO and EXISTS(select 1 from v_op_bs where bsno=ch_fee_do.BSNO and (CUSTNO like '%" + MblNo + "%' or MBLNO like '%" + MblNo + "%' or HBLNO like '%" + MblNo + "%') ))");
this.BillSql = sql;
return sql;
},
ExrateConversion: function (bfcurr, afcurr, fntype) {
var EXRATE = 0;
var achange = true;
var bchange = true;
formExrateConversion = Ext.widget('form', {
frame: true,
region: 'center',
bodyPadding: 5,
fieldDefaults: {
margins: '2 2 2 2',
labelAlign: 'right',
flex: 1,
labelWidth: 90,
msgTarget: 'qtip'
},
items: [
{//fieldset 1
xtype: 'container',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '1' + bfcurr + '=',
xtype: 'numberfield',
name: 'bfcurr',
decimalPrecision: 6,
value: 0,
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 6, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
},
listeners: {
change: function () {
if (bchange) {
var bfcurr = formExrateConversion.getForm().findField('bfcurr').getValue();
var field = formExrateConversion.getForm().findField('afcurr');
if (bfcurr == 0) { field.setValue(0); } else {
var taxrate = (parseFloat(1).div(parseFloat(bfcurr))).toFixed(6);
achange = false;
field.setValue(taxrate);
}
}
achange = true;
}
}
}, {
xtype: 'label',
width: 120,
text: afcurr,
name: 'bfcurr2'
}
]
}, {
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
fieldLabel: '1' + afcurr + '=',
xtype: 'numberfield',
name: 'afcurr',
decimalPrecision: 6,
value: 0,
renderer: function (value, cellmeta, record, rowIndex, columnIndex, store) {
try {
var lsValue = usMoney(value, 6, '', false);
if (lsValue != "NaN") {
value = lsValue; if (parseFloat(lsValue) < 0) {
return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>';
}
}
else {
return value;
}
}
catch (e) {
return value;
}
return value;
},
listeners: {
change: function () {
if (achange) {
var afcurr = formExrateConversion.getForm().findField('afcurr').getValue();
var field = formExrateConversion.getForm().findField('bfcurr');
if (afcurr == 0) { field.setValue(0); } else {
var taxrate = (parseFloat(1).div(parseFloat(afcurr))).toFixed(6);
bchange = false;
field.setValue(taxrate);
}
}
bchange = true;
}
}
}, {
xtype: 'label',
width: 120,
text: bfcurr,
name: 'afcurr2'
}
]
}
]//end items(fieldset 1)
}//end fieldset 1
]//end root items
});
me = this;
winExrateShow = Ext.create('Ext.window.Window', {
title: "币别汇率折算",
width: 450,
//height : 120,
//plain : true,
iconCls: "addicon",
resizable: false,
// 是否可以拖动
// draggable:false,
collapsible: true, // 允许缩放条
closeAction: 'close',
closable: true,
modal: 'true',
buttonAlign: "center",
bodyStyle: "padding:0 0 0 0",
items: [formExrateConversion],
buttons: [{
text: "确定",
minWidth: 70,
handler: function () {
var form = formExrateConversion.getForm();
var UsdExrate = form.findField('bfcurr').getValue();
if (UsdExrate == '' || UsdExrate == null || UsdExrate == undefined) {
Ext.Msg.show({ title: '提示', msg: '必须填折算汇率!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
};
var recs = DsStoreQueryBy(me.storeCurrExrate, 'CURR', bfcurr);
if (recs.getCount() > 0) {
// var dfdata = DFrecords.getAt(0).data;
// dfdata.EXRATE = UsdExrate;
for (var i = 0; i < me.storeCurrExrate.getCount(); i += 1) {
var member = me.storeCurrExrate.getAt(i);
if (member.data.CURR == bfcurr) {
// member.EXRATE = UsdExrate;
member.set('EXRATE', UsdExrate);
member.commit();
}
}
} else {
me.storeCurrExrate.add({ "CURR": bfcurr, "EXRATE": UsdExrate })
}
winExrateShow.close();
if (fntype == 'detail') {
me.addDetail();
}
//if (fntype == 'bill') {
// me.addBill();
//}
return;
}
}, {
text: "关闭",
minWidth: 70,
handler: function () {
winExrateShow.close();
return;
}
}]
});
if (bfcurr == 'RMB') {
var DFrecords = DsStoreQueryBy(this.StoreCurr, 'CURR', afcurr);
if (DFrecords.getCount() > 0) {
var dfdata = DFrecords.getAt(0).data;
var DEFRATE = dfdata.DEFRATE;
} else {
var DEFRATE = 0;
}
var field = formExrateConversion.getForm().findField('afcurr');
achange = true;
field.setValue(DEFRATE);
} else {
var DFrecords = DsStoreQueryBy(this.StoreCurr, 'CURR', bfcurr);
if (DFrecords.getCount() > 0) {
var dfdata = DFrecords.getAt(0).data;
var DEFRATE = dfdata.DEFRATE;
} else {
var DEFRATE = 0;
}
var field = formExrateConversion.getForm().findField('bfcurr');
bchange = true;
field.setValue(DEFRATE);
}
winExrateShow.show();
// S=setInterval(function () {
// if (EXRATE != 0) {
// alert(EXRATE);
// clearInterval(S);
// }
// }, 500)
},
numtoc: function (numberValue) {
numberValue = parseFloat(numberValue).toFixed(2);
var numberValue = new String(Math.round(numberValue * 100)); // 数字金额
var chineseValue = ""; // 转换后的汉字金额
var String1 = "零壹贰叁肆伍陆柒捌玖"; // 汉字数字
var String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; // 对应单位
var len = numberValue.length; // numberValue 的字符串长度
var Ch1; // 数字的汉语读法
var Ch2; // 数字位的汉字读法
var nZero = 0; // 用来计算连续的零值的个数
var String3; // 指定位置的数值
if (len > 15) {
alert("超出计算范围");
return "";
}
if (numberValue == 0) {
chineseValue = "零元整";
return chineseValue;
}
String2 = String2.substr(String2.length - len, len); // 取出对应位数的STRING2的值
for (var i = 0; i < len; i++) {
String3 = parseInt(numberValue.substr(i, 1), 10); // 取出需转换的某一位的值
if (i != (len - 3) && i != (len - 7) && i != (len - 11) && i != (len - 15)) {
if (String3 == 0) {
Ch1 = "";
Ch2 = "";
nZero = nZero + 1;
}
else if (String3 != 0 && nZero != 0) {
Ch1 = "零" + String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
else {
Ch1 = String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
}
else { // 该位是万亿,亿,万,元位等关键位
if (String3 != 0 && nZero != 0) {
Ch1 = "零" + String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
else if (String3 != 0 && nZero == 0) {
Ch1 = String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
else if (String3 == 0 && nZero >= 3) {
Ch1 = "";
Ch2 = "";
nZero = nZero + 1;
}
else {
Ch1 = "";
Ch2 = String2.substr(i, 1);
nZero = nZero + 1;
}
if (i == (len - 11) || i == (len - 3)) { // 如果该位是亿位或元位,则必须写上
Ch2 = String2.substr(i, 1);
}
}
chineseValue = chineseValue + Ch1 + Ch2;
}
if (String3 == 0) { // 最后一位为0时加上“整”
chineseValue = chineseValue + "整";
}
return chineseValue;
},
//#region 必填字段
LoadMustBe: function () {
this.storeMustBe.load({
params: { condition: "BSTYPE='发票开出'" },
callback: function (r, options, success) {
if (success) {
if (this.storeMustBe.getCount() > 0) {
for (var j = 0; j < this.storeMustBe.getCount(); j += 1) {
var member = this.storeMustBe.getAt(j);
var headfield = this.formEdit.getForm().findField(member.data.FIELDNAME);
if (headfield != NaN && headfield != null) {
if (member.data.ISMUST == "1")
headfield.allowBlank = false;
if (member.data.ISCOLOR == "1")
headfield.setFieldStyle({ background: '#ffc' });
}
};
} else {
}
}
},
scope: this
});
},
//#endregion
setInvTile: function (invline) {
var INVTITLE = Ext.getCmp('INVTITLE');
if (invline.indexOf('专用') != -1) {
INVTITLE.setText('增值税专用发票', false);
} else if (invline.indexOf('电') != -1) {
INVTITLE.setText('增值税电子普通发票', false);
} else {
INVTITLE.setText('增值税普通发票', false);
}
},
// #region 根据权限和状态判断是否允许修改
GetIsEdit: function () {
var ISDELETE = this.formEdit.getForm().findField('ISDELETE').getValue();
var ISNEEDPRINT = this.formEdit.getForm().findField('ISNEEDPRINT').getValue();
var ISNEEDFEE = this.formEdit.getForm().findField('ISNEEDFEE').getValue();
var VOUCHERNO = this.formEdit.getForm().findField('VOUCHERNO').getValue();
var VOUNO = this.formEdit.getForm().findField('VOUNO').getValue();
var BILLSTATUS = this.formEdit.getForm().findField('BILLSTATUS').getValue();
if ((ISDELETE == 'true') || (ISNEEDPRINT == 'true') || (VOUCHERNO != '') || (VOUNO != '') || (BILLSTATUS != 0)) return false;
else return true;
},
GetEditStatus: function () {
var canedit = false;
var op = this.formEdit.getForm().findField('OPERATORNAME').getValue();
var billstatus = this.formEdit.getForm().findField('BILLSTATUS').getValue();
_this = this;
var isEdit = this.GetIsEdit();
if (isEdit == false) {
canedit = false;
this.setSaveBtnStatus(canedit);
} else {
this.StoreOpRange.load({
params: { optype: "modInvoiceManagement" },
callback: function (r, options, success) {
if (success) {
if (r.length != 0) {
var records = DsStoreQueryBy(_this.StoreOpRange, 'OPID', op);
if (records.getCount() > 0) {
canedit = true;
} else {
canedit = false;
}
_this.setSaveBtnStatus(canedit);
}
}
}
});
}
var btnESubmitAudit = Ext.getCmp('btnSubmitAudit');
var btnESubmitAuditBack = Ext.getCmp('btnSubmitAuditBack');
var opid = this.formEdit.getForm().findField('OPERATOR').getValue();
var records = DsStoreQueryBy(this.StoreLockOp, 'OPID', opid);
if (records.getCount() > 0) {
if (billstatus == 1) {
btnESubmitAudit.disable();
} else {
btnESubmitAudit.enable();
}
} else {
btnESubmitAudit.disable();
}
var records = DsStoreQueryBy(this.StoreUnLockOp, 'OPID', opid);
if (records.getCount() > 0) {
if (billstatus == 1) {
btnESubmitAuditBack.enable();
} else {
btnESubmitAuditBack.disable();
}
} else {
btnESubmitAuditBack.disable();
}
},
setSaveBtnStatus: function (enable) {
var btnESave = Ext.getCmp('btnESave');
var btnESaveAndClose = Ext.getCmp('btnESaveAndClose');
var btnESaveAndNew = Ext.getCmp('btnESaveAndNew');
//var btnEAddDetail = Ext.getCmp('btnadddetail');
//var btnEDeleteDetail = Ext.getCmp('btndeldetail');
var btnEAddInvDetail = Ext.getCmp('btnAddInvdetail');
var btnEDeleteInvDetail = Ext.getCmp('btndelInvdetail');
var btn_KP = Ext.getCmp("btn_KP");
var btn_Void = Ext.getCmp("btn_Void");
var btn_Setred = Ext.getCmp("btn_Setred");
this.canedit = enable;
this.setInvoiceButtonStatus();
if (enable) {
btnESave.enable();
btnESaveAndClose.enable();
btnESaveAndNew.enable();
//btnEAddDetail.enable();
//btnEDeleteDetail.enable();
btnEAddInvDetail.enable();
btnEDeleteInvDetail.enable();
} else {
btnESave.disable();
btnESaveAndClose.disable();
btnESaveAndNew.disable();
//btnEAddDetail.disable();
//btnEDeleteDetail.disable();
btnEAddInvDetail.disable();
btnEDeleteInvDetail.disable();
btn_KP.disable();
//btn_Void.disable();
//btn_Setred.disable();
}
},
setInvoiceButtonStatus: function (enable) {
var INVOICESERIALNUM = this.formEdit.getForm().findField('INVOICESERIALNUM').getValue();
var INVOICENO = this.formEdit.getForm().findField('INVOICENO').getValue();
var billstatus = this.formEdit.getForm().findField('BILLSTATUS').getValue();//1已锁定 0未锁定
var ISDELETE = this.formEdit.getForm().findField('ISDELETE').getValue();//true false
var SETRED = this.formEdit.getForm().findField('SETRED').getValue();//true false
var PTORRED = this.formEdit.getForm().findField('PTORRED').getValue();//true false
var btn_KP = Ext.getCmp("btn_KP");
var btn_Invinfo = Ext.getCmp("btn_Invinfo");
var btn_Pdf = Ext.getCmp("btn_Pdf");
var btn_Void = Ext.getCmp("btn_Void");
var btn_Setred = Ext.getCmp("btn_Setred");
///1.如果流水号没有 同时未锁定 才能点开票
if (isNullorEmpty(INVOICESERIALNUM) && billstatus == 0 && ISDELETE != "True") {
btn_KP.enable();
}
else {
btn_KP.disable();
}
///2.如果流水号没有 不能点读取
if (isNullorEmpty(INVOICESERIALNUM)) {
btn_Invinfo.disable();
btn_Pdf.disable();
}
else {
btn_Invinfo.enable();
btn_Pdf.enable();
}
///3.如果同时有了发票号和发票流水号 才能点冲红和作废
if (!isNullorEmpty(INVOICENO) && !isNullorEmpty(INVOICESERIALNUM)) {
//如果已经作废 或已被冲红 则作废不可点
if (ISDELETE == "True" || SETRED == "True") {
btn_Void.disable();
} else {
btn_Void.enable();
}
//如果已经被作废 或者是红票 或者已经被冲红 则冲红不可点
if (ISDELETE == "True" || PTORRED == "2" || SETRED =="True") {
btn_Setred.disable();
} else {
btn_Setred.enable();
}
} else {
btn_Void.disable();
btn_Setred.disable();
}
},
// #endregion
PrevRecord: function () {
// var modifystr = this.getIsModify();
// if (modifystr != "") {
// Ext.Msg.show({ title: '警告', msg: modifystr + '未保存,如果离开此页,将丢失未保存的更改 ', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
// return;
// }
var j = this.StoreList.indexOf(this.editRecord);
if (j == 0) {//警告', msg: '已是最前一票'
Ext.Msg.show({ title: '警告', msg: '已是最前一票', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
return;
}
if (j == this.StoreList.count) {//警告', msg: '已是最后一票'
Ext.Msg.show({ title: '警告', msg: '已是最后一票', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
return;
}
j = j - 1;
this.editRecord = this.StoreList.getAt(j);
if (this.opStatus == 'edit')
condition = " BILLNO='" + this.editRecord.get('BILLNO') + "'";
this.LoadData(this.opStatus, condition);
},
NextRecord: function () {
// var modifystr = this.getIsModify();
// if (modifystr != "") {
// Ext.Msg.show({ title: Zi.LAN.Caveat, msg: modifystr + '未保存,如果离开此页,将丢失未保存的更改 ', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
// return;
// }
var j = this.StoreList.indexOf(this.editRecord);
if (j == (this.StoreList.data.length - 1)) {//警告', msg: '已是最后一票
Ext.Msg.show({ title: '警告', msg: '已是最后一票', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
return;
}
j = j + 1;
this.editRecord = this.StoreList.getAt(j);
if (this.opStatus == 'edit')
condition = " BILLNO='" + this.editRecord.get('BILLNO') + "'";
this.LoadData(this.opStatus, condition);
},
getCustBank() {
if (this.storecustbank.count > 0) {
return this.storecustbank.data.items[0].data.BANKNAME_ACCOUNT;
} else return "";
},
setCustBank(CUSTNAME, CURR) {
var CUSTBANK = this.formEdit.getForm().findField('CUSTBANK');
if (CURR == 'RMB') {
this.storecustbank.load({
params: {
condition: " CURRENCY='RMB' AND LINKID=(SELECT TOP 1 GID FROM INFO_CLIENT WHERE SHORTNAME='" + CUSTNAME + "')"
},
callback: function (r, options, success) {
if (success) {
if (r.length != 0) {
CUSTBANK.setValue(this.storecustbank.data.items[0].data.BANKNAME_ACCOUNT);
}
}
},
scope: this
});
} else if (CURR == 'USD') {
this.storecustbank.load({
params: {
condition: " CURRENCY='USD' AND LINKID=(SELECT TOP 1 GID FROM INFO_CLIENT WHERE SHORTNAME='" + CUSTNAME + "')"
},
callback: function (r, options, success) {
if (success) {
if (r.length != 0) {
CUSTBANK.setValue(this.storecustbank.data.items[0].data.BANKNAME_ACCOUNT);
}
}
},
scope: this
});
}
},
setBank(CURR) {
var BANK = this.formEdit.getForm().findField('ACCOUNT');
var recs = DsStoreQueryBy2(this.StoreBANK, 'CURRENCY', CURR, 'ISDEF','True');
if (recs.getCount() > 0) {
var data = recs.getAt(0).data;
BANK.setValue(data.BANKACCOUNT);
} else {
var recs = DsStoreQueryBy(this.StoreBANK, 'CURRENCY',CURR);
if (recs.getCount() > 0) {
var data = recs.getAt(0).data;
BANK.setValue(data.BANKACCOUNT);
}
}
},
Print: function () {
var basicForm = this.formEdit.getForm();
var billNo = basicForm.findField('BILLNO').value;
var Gid = basicForm.findField('GID').value;
if (billNo == '*' || billNo == '') {
Ext.Msg.show({ title: '错误', msg: '单据还没有保存,请保存后再打印', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
return;
}
var printType = 'MSCHFEEINVOICE';
var sql1 = "SELECT *,(select TOP 1 DESCRIPTION from info_client where SHORTNAME=ch_fee_invoice.CUSTOMERNAME) CUSTFULLNAME FROM ch_fee_invoice WHERE GID='" + Gid + "'";
var sql2 = "SELECT c.GID,c.BSNO,c.FEEID,c.FEENAME,c.CURRENCY,c.AMOUNT,c.DOAMOUNT,c.ORIGCURRENCY,c.ORIGAMOUNT,c.EXCHANGERATE ";
sql2 = sql2 + ",b.CUSTOMERNAME,b.VESSEL,b.VOYNO,b.ETD,b.PORTLOAD";
sql2 = sql2 + " ,b.PORTDISCHARGE,b.INPUTBY,b.OP,b.CUSTSERVICE,b.DOC,b.SALE,b.mblno,b.CUSTNO ";
sql2 = sql2 + " FROM ch_fee_do c left join v_op_bill b on (b.bsno=c.bsno)";
sql2 = sql2 + " WHERE C.BILLNO='" + billNo + "' order by c.FEENAME,c.CREATETIME,b.ETD,b.MBLNO ";
var sql3 = "SELECT * FROM CH_FEE_INVOICEDETAIL WHERE PID='" + Gid + "'";
var sql4 = "";
var sql5 = "";
var sql6 = "";
PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6);
Ext.Ajax.request({
waitMsg: '正在查询数据...',
url: '/Account/Chfee_invoice_HangXin/UpdatePrint',
async: false,
params: {
billno: billNo
},
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;
} else {
Ext.Ajax.request({
waitMsg: '正在查询主表数据...',
url: '/Account/Chfee_invoice_HangXin/GetData',
params: {
handle: 'edit',
condition: " BILLNO='" + billno + "'",
isapp: true
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
Ext.Msg.show({
title: '提示',
msg: result.Message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
return;
}
var data = result.data;
this.formEdit.getForm().reset();
this.formEdit.getForm().setValues(data);
this.formAMT.getForm().setValues(data);
var editp = Ext.create('MsChInvoice', data);
this.editRecord.fields.each(function (field) {
if (field.persist) {
name = field.name;
if (name != 'id')
this.editRecord.set(name, editp.get(name));
}
}, this);
this.editRecord.commit();
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
} else {
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
}
},
scope: this
});
}
});