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 : 300 ,
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 . storeOpCode . on ( 'load' , function ( store , records ) {
if ( store . getCount ( ) > 0 ) {
this . storeOpCode2 . add ( records ) ;
}
} , this ) ;
this . comboxPAYEE = 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 : '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 ,
readOnly : true
} ) ;
this . comboxPUSHMODE = getEnumcombox ( {
LABEL : '开票通知推送' ,
NAME : 'PUSHMODE' ,
FLEX : 1 ,
enumTypeId : 80002
} ) ;
this . comboxINVOICELINE = getEnumcombox ( {
LABEL : '发票种类' ,
NAME : 'INVOICELINE' ,
FLEX : 0.65 ,
enumTypeId : 80003
} ) ;
this . storeInfoClientMailTel = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'DsTruckMng.ux.GeneralValue' ,
proxy : { url : '/CommMng/BasicDataRef/GeneralSelect' }
} ) ;
_this = this ;
this . storeInfoClientMailTel . load ( {
params : {
condition : "select distinct PUSHEMAIL as GVALUE,'' as GID from ch_fee_invoice where OPERATETIME>=dateadd(DAY,-30,getdate())"
} ,
callback : function ( r , options , success ) {
if ( success ) {
var _blank = Ext . create ( 'DsTruckMng.ux.GeneralValue' , {
'GID' : '' ,
'GVALUE' : ''
} ) ;
_this . storeInfoClientMailTel . add ( _blank ) ;
}
}
} ) ;
this . comboxInfoClientMailTel = Ext . create ( 'DsExt.ux.RefTableCombox' , {
labelWidth : 55 ,
fieldLabel : '推送邮箱' ,
matchFieldWidth : false ,
flex : 1.4 ,
store : this . storeInfoClientMailTel ,
forceSelection : false ,
name : 'PUSHEMAIL' ,
valueField : 'GVALUE' ,
displayField : 'GVALUE'
} ) ;
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 . 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 : '代开客户' , hidden : true ,
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 . CURR ;
this . setCustBank ( custname , 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 : '类型' , hidden : true ,
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'
}
} ) ;
Ext . define ( 'MsCompanysEntity' , {
extend : 'Ext.data.Model' ,
idProperty : 'GID' ,
fields : [
{ name : 'GID' , type : 'string' } , //GID
{ name : 'CODENAME' , type : 'string' } , //CODENAME
{ name : 'NAME' , type : 'string' } , //NAME
{ name : 'FULLNAME' , type : 'string' } , //FULLNAME
{ name : 'ENNAME' , type : 'string' } , //公司英文名称
{ name : 'ADDRESS' , type : 'string' } , //ADDRESS
{ name : 'ENADDRESS' , type : 'string' } , //公司英文地址
{ name : 'POSTCODE' , type : 'string' } , //POSTCODE
{ name : 'OFFICEPHONE' , type : 'string' } , //OFFICEPHONE
{ name : 'FAX' , type : 'string' } , //FAX
{ name : 'EMAIL' , type : 'string' } , //EMAIL
{ name : 'WEBSITEURL' , type : 'string' } , //WEBSITEURL
{ name : 'LICENSECODE' , type : 'string' } , //LICENSECODE
{ name : 'TAXCODE' , type : 'string' } , //TAXCODE
//{name: 'LOGO', type: 'byte[]' }, //徽标
{ name : 'CREATEUSER' , type : 'string' } , //CREATEUSER
{ name : 'CREATETIME' , type : 'DateTime' } , //CREATETIME
{ name : 'MODIFIEDUSER' , type : 'string' } , //更新人gid
{ name : 'MODIFIEDTIME' , type : 'DateTime' } , //更新时间
{ name : 'ISDELETED' , type : 'bool' } , //ISDELETED
{ name : 'ISDISABLE' , type : 'bool' } , //ISDISABLE
{ name : 'PARENTID' , type : 'string' } , //PARENTID
{ name : 'BILLRISES' , type : 'string' } , //发票抬头
{ name : 'CHEQUEPAYABLE' , type : 'string' } , //支票抬头
{ name : 'PRTHEADXML1' , type : 'string' } , //打印抬头1
{ name : 'PRTHEADXML2' , type : 'string' } , //打印抬头2
{ name : 'PRTHEADXML3' , type : 'string' } , //打印抬头3
{ name : 'PRTHEADXML4' , type : 'string' } , //打印抬头4
{ name : 'PRTHEADXML5' , type : 'string' } , //打印抬头5
{ name : 'BANKSHEAD' , type : 'string' } , //BANKSHEAD
{ name : 'LOCALCURR' , type : 'string' } , //本地货币
{ name : 'WORKFLOWMSG' , type : 'string' } , //是否启用消息提示
{ name : 'GPSUSER' , type : 'string' } , //GPSUser
{ name : 'GPSPASSWORD' , type : 'string' } , //GPSPassWord
{ name : 'ORGANIZATIONCODE' , type : 'string' } ,
{ name : 'MODIFIEDUSERNAME' , type : 'string' } ,
{ name : 'DBNAME' , type : 'string' } ,
{ name : 'LOGOURL' , type : 'string' }
]
} ) ;
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 ;
this . StoreBANK . load ( { params : { condition : " LINKID='" + companyid + "'" } } ) ;
}
}
}
} ) ;
this . StoreBANK = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'BANK' ,
proxy : {
url : '/MvcShipping/MsBaseInfo/GetAllBANKList'
}
} ) ;
_this = this ;
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 : 'OPERATOR' ,
name : 'OPERATOR' ,
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 : 1 ,
name : 'INVOICETYPEREF'
} ,
{
fieldLabel : '开票日期' ,
labelWidth : labelwidth _top1 ,
tooltip : '记录“开出发票”的时间' ,
flex : 1 ,
format : 'Y-m-d' ,
xtype : 'datefield' ,
name : 'INVOICEMAKETIME'
} ,
{
fieldLabel : '开票人' ,
labelWidth : labelwidth _top1 ,
flex : 0.5 ,
readOnly : true ,
name : 'OPERATORNAME'
} ,
this . comboxPAYEE ,
this . comboxCHECKER ,
{
fieldLabel : '是否锁定' ,
labelWidth : labelwidth _top1 ,
flex : 0.5 ,
readOnly : true ,
name : 'BILLSTATUSREF'
} ,
{
fieldLabel : '是否打印' , hidden : true ,
labelWidth : labelwidth _top1 ,
flex : 0.5 ,
readOnly : true ,
name : 'ISNEEDPRINT'
} ,
{
fieldLabel : '是否结算' , hidden : true ,
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 : [ {
fieldLabel : '发票抬头' ,
name : 'INVOICECUSTNAME'
} ]
} ,
{
xtype : 'container' ,
layout : 'hbox' ,
defaultType : 'textfield' ,
items : [ {
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
{
fieldLabel : '开户行及账号' ,
//flex: 1.2,
//labelWidth: 30,
name : 'CUSTBANK'
}
]
} ,
{
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 //银行账户
, {
fieldLabel : '开票单位' ,
name : 'CUSTOMERNAME' , hidden : true ,
readOnly : true
} //CUSTOMERNAME
, this . comboxInvCustCode
]
} ,
{
xtype : 'container' ,
layout : 'hbox' ,
flex : 1 ,
defaultType : 'textfield' ,
items : [
{
xtype : 'textareafield' ,
grow : true ,
labelWidth : labelwidth _sale ,
name : 'REMARK' ,
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
} ,
//'-',
{
text : "打印" , hidden : true ,
handler : function ( button , event ) {
this . Print ( ) ;
} ,
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' , hidden : true ,
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" ) ;
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 : '冲红' , hidden : true ,
id : "btn_Setred" ,
tooltip : '注意,未冲红、未作废的发票才能进行此操作' ,
handler : function ( button , event ) {
this . onNNSetRedClick ( ) ;
} ,
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 , hidden : true ,
dataIndex : 'BILLNO' ,
header : '发票业务编号' ,
width : 120
} , {
sortable : true , hidden : true ,
dataIndex : 'INVOICENO' ,
header : '发票号' ,
width : 120
} , {
sortable : true ,
dataIndex : 'CUSTOMERNAME' ,
header : '开票单位' ,
width : 120
} , {
sortable : true ,
dataIndex : 'INVOICECUSTNAME' ,
header : '发票抬头' ,
width : 160
} , {
sortable : true ,
dataIndex : 'CUSTRATENO' ,
header : '纳税人识别号' ,
width : 160
} , {
sortable : true ,
dataIndex : 'CURRENCY' ,
header : '币别' ,
width : 60
} , {
sortable : true , hidden : true ,
dataIndex : 'INVAMOUNT' ,
header : '原币金额' ,
align : 'right' ,
width : 100
} , {
sortable : true ,
dataIndex : 'AMOUNT' ,
header : '申请金额' ,
align : 'right' ,
width : 100
} , {
sortable : true ,
dataIndex : 'CUSTADDRTEL' ,
header : '地址电话' ,
align : 'right' ,
width : 100
} , {
sortable : true ,
dataIndex : 'CUSTBANK' ,
header : '开户行及账号' ,
align : 'right' ,
width : 100
} , {
sortable : true , hidden : true ,
dataIndex : 'RECVCURR' ,
header : '实收币别' ,
width : 60
} , {
sortable : true ,
dataIndex : 'FEEAMOUNT' ,
header : '本币金额' ,
width : 120 ,
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 : 'INVOICEMAKETIME' ,
header : '开票日期' ,
width : 100
} , {
sortable : true ,
dataIndex : 'OPERATORNAME' ,
header : '开票人' ,
width : 100
} , {
sortable : true ,
dataIndex : 'APPLICANT' ,
header : '申请人' ,
width : 100
} , {
sortable : true ,
dataIndex : 'SALECORP' ,
header : '所属分部' ,
width : 100
} , {
sortable : true ,
dataIndex : 'REMARK' ,
header : '备注' ,
width : 160
} , {
sortable : true ,
dataIndex : 'ISDELETE' ,
header : '是否作废' ,
width : 80
} , {
sortable : true ,
dataIndex : 'DZSTATUS' ,
header : '电子发票' ,
width : 80
} , {
sortable : true ,
dataIndex : 'DELOPERATORNAME' ,
header : '作废人' ,
width : 100
} , {
sortable : true ,
dataIndex : 'DELETETIME' ,
header : '作废时间' ,
width : 100
} , {
sortable : true ,
dataIndex : 'VOUCHERNO' ,
header : '接口凭证' ,
width : 0
} , {
sortable : true ,
dataIndex : 'VOUNO' ,
header : '总账凭证' ,
width : 0
} , {
sortable : true ,
dataIndex : 'CUSTTEL' ,
header : '购方电话' ,
width : 80
} ,
{
sortable : true ,
dataIndex : 'CUSTADDR' ,
header : '购方地址' ,
width : 80
} ,
{
sortable : true , hidden : true ,
dataIndex : 'PTORRED' ,
header : 'PTORRED' ,
width : 80
} ,
{
sortable : true , tooltip : '只有冲红发票具备这类信息' ,
dataIndex : 'REDCODE' ,
header : '对应蓝票代码' ,
width : 80
} ,
{
sortable : true , tooltip : '只有冲红发票具备这类信息' ,
dataIndex : 'REDNUM' ,
header : '对应蓝票号码' ,
width : 80
} ,
{
sortable : true , hidden : true ,
dataIndex : 'PUSHMODE' ,
header : 'PUSHMODE' ,
width : 80
} ,
{
sortable : true ,
dataIndex : 'PUSHMOBILE' ,
header : '通知手机' ,
width : 80
} ,
{
sortable : true ,
dataIndex : 'PUSHEMAIL' ,
header : '通知邮箱' ,
width : 80
} ,
{
sortable : true , hidden : true ,
dataIndex : 'INVOICELINE' ,
header : 'INVOICELINE' ,
width : 80
} ,
{
sortable : true , hidden : true ,
dataIndex : 'EINVOICESTATE' ,
header : 'EINVOICESTATE' ,
width : 80
} ,
{
sortable : true ,
dataIndex : 'INVOICEINFOURL' ,
header : '发票详情' ,
width : 80 ,
renderer : function ( value , p , record ) {
if ( value == '' || typeof ( value ) == "undefined" ) {
//return '<input type="button" value="上传" onClick="javascript:this.UpLoadFile('+record.data.BillNo+')"';
return '' ;
} else
return '<a href="http://' + value + '" style=' + '"text-decoration:none" target="_blank"' + ' > 查看 </a>' ;
}
} , {
xtype : 'actioncolumn' ,
width : 80 ,
align : 'center' ,
text : "发票PDF" ,
items : [ {
icon : '/images/icons/btnSearch.gif' , // Use a URL in the icon config
tooltip : '图片预览' ,
handler : function ( grid , rowIndex , colIndex ) {
var rec = grid . getStore ( ) . getAt ( rowIndex ) ;
var filePath = rec . get ( 'INVOICEPDFURL' ) ;
DsOpenEditWin _FullUrl ( filePath . replace ( "http://" , "" ) . replace ( "https://" , "" ) , "发票信息" , 600 , 800 , 300 , 300 ) ;
}
} ]
}
,
{
sortable : true ,
dataIndex : 'PTORREDREF' ,
header : '开票类型(正票/红票)' ,
width : 80
} ,
{
sortable : true ,
dataIndex : 'SETRED' ,
header : '被冲红' ,
width : 80
} ,
{
sortable : true , tooltip : '实际为只推送手机/同时推送手机和邮箱' ,
dataIndex : 'PUSHMODEREF' ,
header : '通知推送方式' ,
width : 80
} ,
{
sortable : true ,
dataIndex : 'INVOICELINEREF' ,
header : '发票种类' ,
width : 80
} ,
{
sortable : true ,
dataIndex : 'EINVOICESTATEREF' ,
header : '开票状态' ,
align : 'center' ,
width : 80
}
]
} ) ;
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 : false ,
dataIndex : 'CURRENCY' ,
header : '币别' ,
width : 60
} , {
sortable : false ,
dataIndex : 'APPLYAMOUNT' ,
header : '申请金额' ,
renderer : function ( value , cellmeta , record , rowIndex , columnIndex , store ) { try { var lsValue = usMoney ( value , 2 , '' , false ) ; if ( lsValue != "NaN" ) { value = lsValue ; if ( parseFloat ( lsValue ) < 0 ) { return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>' ; } } else { return value ; } } catch ( e ) { return value ; } return value ; } ,
align : 'right' ,
width : 100 ,
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 : 'INVAMOUNT' ,
header : '开票金额' ,
renderer : function ( value , cellmeta , record , rowIndex , columnIndex , store ) { try { var lsValue = usMoney ( value , 2 , '' , false ) ; if ( lsValue != "NaN" ) { value = lsValue ; if ( parseFloat ( lsValue ) < 0 ) { return '<SPAN style="COLOR: red">' + lsValue + '</SPAN>' ; } } else { return value ; } } catch ( e ) { return value ; } return value ; } ,
align : 'right' ,
width : 100 ,
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 . storeAddFeeList = Ext . create ( 'Ext.data.Store' , {
pageSize : this . PageSize ,
model : 'MsChInvoice_P2' ,
remoteSort : true ,
proxy : {
type : 'ajax' ,
url : '/Account/Chfee_invoice_HangXin/GetP2Invoice' ,
reader : {
id : 'BILLNO' ,
root : 'data' ,
totalProperty : 'totalCount'
}
}
} ) ;
this . AddFeeGridCheckBoxModel = Ext . create ( 'Ext.selection.CheckboxModel' ) ;
this . cellEditingFee = Ext . create ( 'Ext.grid.plugin.CellEditing' , {
clicksToEdit : 1 ,
listeners : {
'edit' : function ( editor , e ) {
}
}
} ) ;
_this = this ;
//发票申请明细 P2发票明细
this . initgirdbilladdcolums = [
{
sortable : true , hidden : true ,
dataIndex : 'GID' ,
header : 'GID' ,
width : 120
} , {
sortable : true , hidden : true ,
dataIndex : 'BSNO' ,
header : 'BSNO' ,
width : 120
} , {
sortable : true , hidden : true ,
dataIndex : 'BILLSTATUSREF' ,
header : '状态' ,
width : 80
} , {
sortable : true ,
dataIndex : 'CUSTOMERNAME' ,
header : '开票单位' ,
width : 120
} , {
sortable : true ,
dataIndex : 'INVOICECUSTNAME' ,
header : '发票抬头' ,
width : 160
} , {
sortable : true ,
dataIndex : 'CURRENCY' ,
header : '币别' ,
width : 60
} , {
sortable : true , hidden : true ,
dataIndex : 'APPLYAMOUNT' ,
header : '申请金额' ,
align : 'right' ,
width : 100
} , {
sortable : true ,
dataIndex : 'PRICE' ,
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 : '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 : true ,
dataIndex : 'RATE' ,
header : '税率' ,
width : 50
} , {
sortable : true ,
dataIndex : 'MBLNO' ,
header : '主提单号' ,
width : 80
} , {
sortable : true ,
dataIndex : 'VESSEL' ,
header : '船名' ,
width : 80
} , {
sortable : true ,
dataIndex : 'VOYAGE' ,
header : '航次' ,
width : 80
} , {
sortable : true ,
dataIndex : 'ETD' ,
header : 'ETD' ,
width : 80
} , {
sortable : true ,
dataIndex : 'POL' ,
header : '起运港' ,
width : 80
} , {
sortable : true ,
dataIndex : 'POD' ,
header : '目的港' ,
width : 80
} , {
sortable : true ,
dataIndex : 'APPLYTIME' ,
header : '申请日期' ,
width : 100
} , {
sortable : true ,
dataIndex : 'APPLICANTNAME' ,
header : '申请人' ,
width : 100
} , {
sortable : true , hidden : true ,
dataIndex : 'INVOICENO' ,
header : '发票号' ,
width : 120
} , {
sortable : true ,
dataIndex : 'REMARK' ,
header : '备注' ,
width : 160
} , {
sortable : true , hidden : true ,
dataIndex : 'PUSHMODEREF' ,
header : '通知推送类型' ,
width : 120
} , {
sortable : true , hidden : true ,
dataIndex : 'PUSHMOBILE' ,
header : '推送手机' ,
width : 120
} , {
sortable : true , hidden : true ,
dataIndex : 'PUSHEMAIL' ,
header : '推送邮箱' ,
width : 120
}
] ;
this . girdbilladdcolums = this . initgirdbilladdcolums ; //使用者id, 表名, 中间column数组, 跳过一开始的几列
this . gridAddFeeList = new Ext . grid . GridPanel ( {
store : this . storeAddFeeList ,
enableHdMenu : false ,
region : 'center' ,
loadMask : { msg : "数据加载中,请稍等..." } ,
trackMouseOver : true ,
disableSelection : false ,
plugins : [ this . cellEditingFee ] ,
selModel : this . AddFeeGridCheckBoxModel ,
selType : 'cellmodel' ,
tbar : [ {
text : '添加申请明细' ,
tooltip : '添加申请明细' ,
iconCls : "btnadddetail" ,
id : "btnadddetail" ,
handler : function ( button , event ) {
this . onAddDetailClick ( button , event ) ;
} ,
scope : this
} , '-' , {
text : "保存列表样式" ,
id : "btntest" ,
menu : [
{
text : "保存" ,
handler : function ( button , event ) {
_this . girdbilladdcolums = DsTruck . SaveGridPanel ( USERID , _this . formname + 'billadd' , _this . gridAddFeeList . columns , _this . girdbilladdcolums , 1 , true ) ;
}
} , {
text : "初始化" ,
handler : function ( menu , event ) {
_this . girdbilladdcolums = DsTruck . SaveGridPanel ( USERID , _this . formname + 'billadd' , _this . gridAddFeeList . columns , _this . initgirdbilladdcolums , 1 , true ) ;
}
} ] ,
scope : this
} ] ,
columns : this . girdbilladdcolums ,
// paging bar on the bottom
bbar : Ext . create ( 'Ext.PagingToolbar' , {
store : this . storeAddFeeList ,
displayInfo : true ,
displayMsg : '当前显示 {0} - {1}条记录 /共 {2}条记录' ,
emptyMsg : "没有数据"
} )
} ) ;
this . girdbilladdcolums = DsTruck . GetGridPanel ( USERID , this . formname + 'billadd' , this . girdbilladdcolums , 1 ) ; //使用者id, 表名, 中间column数组, 跳过一开始的几列
this . girdbilladdcolums . unshift ( new Ext . grid . RowNumberer ( ) ) ;
this . gridAddFeeList . reconfigure ( this . storeAddFeeList , this . girdbilladdcolums ) ;
//#region 右下方 远端的费用明细
this . storeFeeList = Ext . create ( 'Ext.data.Store' , {
pageSize : this . PageSize ,
model : 'MsChInvoice_FEE_P2' ,
remoteSort : true ,
proxy : {
type : 'ajax' ,
url : '/Account/Chfee_invoice_HangXin/GetP2Invoice_Fee' ,
reader : {
id : 'GID' ,
root : 'data' ,
totalProperty : 'totalCount'
}
}
} ) ;
this . gridFeeList = new Ext . grid . GridPanel ( {
store : this . storeFeeList ,
enableHdMenu : false ,
region : 'center' ,
loadMask : { msg : "数据加载中,请稍等..." } ,
trackMouseOver : true ,
disableSelection : false ,
columns : [ {
sortable : true ,
dataIndex : 'GID' ,
header : 'GID' ,
hidden : true ,
width : 100
} , {
sortable : true ,
dataIndex : 'CURRENCY' ,
header : '原币币别' ,
width : 60
} , {
sortable : true ,
dataIndex : 'FEENAME' ,
header : '费用名称' ,
width : 100
} , {
sortable : true ,
dataIndex : 'NUM' ,
header : '数量' , align : 'right' ,
width : 50
} , {
sortable : true ,
dataIndex : 'PRICE' ,
header : '本币单价' ,
width : 100 , align : 'right' ,
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 : 'AMOUNT' ,
header : '原币金额' ,
width : 100 , align : 'right' ,
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 : 'AMOUNT_RMB' ,
header : '本币金额' ,
width : 100 , align : 'right' ,
renderer : function ( value , cellmeta , record , rowIndex , columnIndex , store ) {
try {
var _data = record . data ;
var lsValue = 0 ;
if ( _data . CURRENCY == "RMB" ) {
lsValue = _data . AMOUNT ;
} else {
lsValue = usMoney ( _data . PRICE * _data . NUM , 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 : 'RATE' ,
header : '税率'
} ]
} ) ;
//#endregion
//明细表-数据集
this . storeAddBodyList = Ext . create ( 'Ext.data.Store' , {
model : 'Chfee_do_detail' ,
remoteSort : true ,
proxy : {
type : 'ajax' ,
url : '/Account/Chfee_invoiceapplication/GetBillList' ,
reader : {
id : 'BSNO,FEEDOID' ,
root : 'data' ,
totalProperty : 'totalCount'
}
}
} ) ;
//明细表表格
this . gridAddBodyList = new Ext . grid . GridPanel ( {
store : this . storeAddBodyList ,
enableHdMenu : false ,
region : 'center' ,
loadMask : { msg : "数据加载中,请稍等..." } ,
trackMouseOver : true ,
disableSelection : false ,
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 : '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 : 'EXCHANGERATE' ,
header : '折算汇率' ,
width : 80
} , {
sortable : true ,
dataIndex : 'AUDITDATE' ,
header : '审核日期' ,
width : 80
} , {
sortable : true ,
dataIndex : 'SALE' ,
header : '揽货人' ,
width : 80
}
]
} ) ;
_this = this ;
//#endregion
//#region formSearch
this . storeOpCode = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'DsShipping.ux.UserRefModel' ,
proxy : { url : '/CommMng/BasicDataRef/GetUserRefList' }
} ) ;
this . storeOpCode . load ( ) ;
//客服
this . storeInvCategory = Ext . create ( 'DsExt.ux.RefEnumStore' , { } ) ;
this . storeInvCategory . load ( { params : { enumTypeId : 97008 } } ) ;
this . comboxInvCategory = Ext . create ( 'DsExt.ux.RefTableCombox' , {
fieldLabel : '发票类型' , //申请类型
store : this . storeInvCategory ,
labelWidth : 60 ,
forceSelection : true ,
name : 'INVOICECATEGORY' ,
valueField : 'EnumValueId' ,
displayField : 'EnumValueName'
} ) ;
//#region P2数据的下拉框
this . storeP2 _Cust = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'CUST_P2' ,
proxy : { url : '/Account/Chfee_invoice_HangXin/GetP2_CUST' }
} ) ;
this . storeP2 _Cust . load ( ) ;
this . storeP2 _CURRENCY = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'CURRENCY_P2' ,
proxy : { url : '/Account/Chfee_invoice_HangXin/GetP2_CURRENCY' }
} ) ;
this . storeP2 _CURRENCY . load ( ) ;
this . storeP2 _CREATOR = Ext . create ( 'DsExt.ux.RefTableStore' , {
model : 'CREATOR_P2' ,
proxy : { url : '/Account/Chfee_invoice_HangXin/GetP2_CREATOR' }
} ) ;
this . storeP2 _CREATOR . load ( ) ;
this . comboxP2 _Cust = Ext . create ( 'DsExt.ux.RefTableCombox' , {
fieldLabel : '购方公司' ,
store : this . storeP2 _Cust ,
labelWidth : 60 ,
name : 'CUSTCODE' ,
valueField : 'CUSTCODE' ,
displayField : 'CUSTCODE' ,
matchFieldWidth : false ,
listeners : {
beforequery : function ( e ) {
return FilterCombox ( e ) ; //在beforequery使用此方法
} ,
scope : this
}
} ) ;
this . comboxP2 _CURRENCY = Ext . create ( 'DsExt.ux.RefTableCombox' , {
fieldLabel : '币别' ,
store : this . storeP2 _CURRENCY ,
labelWidth : 60 ,
name : 'CURRENCY' ,
valueField : 'CURRENCY' ,
displayField : 'CURRENCY' ,
listeners : {
beforequery : function ( e ) {
return FilterCombox ( e ) ; //在beforequery使用此方法
} ,
scope : this
}
} ) ;
this . comboxAPPLICANT = Ext . create ( 'DsExt.ux.RefTableCombox' , {
fieldLabel : '申请人' ,
store : this . storeP2 _CREATOR ,
forceSelection : true ,
name : 'APPLICANT' ,
valueField : 'CREATOR' ,
displayField : 'CREATOR'
} ) ;
//#endregion
this . formSearch = Ext . widget ( 'form' , {
frame : true ,
region : 'north' ,
bodyPadding : 5 ,
fieldDefaults : {
margins : '2 2 2 2' ,
labelAlign : 'right' ,
flex : 1 ,
labelWidth : 70 ,
msgTarget : 'qtip'
} ,
items : [
{ //fieldset 1
xtype : 'container' ,
defaultType : 'textfield' ,
layout : 'anchor' ,
defaults : {
anchor : '100%'
} ,
items : [ {
xtype : 'container' ,
layout : 'hbox' ,
defaultType : 'textfield' ,
items : [ {
fieldLabel : '提单号' ,
name : 'MblNo'
} , this . comboxP2 _Cust , {
fieldLabel : '从申请日期' ,
format : 'Y-m-d' ,
labelWidth : 80 ,
xtype : 'datefield' ,
name : 'ExpDateBgn'
} , {
fieldLabel : '到申请日期' ,
format : 'Y-m-d' ,
labelWidth : 80 ,
xtype : 'datefield' ,
name : 'ExpDateEnd'
} , this . comboxAPPLICANT
, this . comboxP2 _CURRENCY
, {
xtype : 'button' ,
width : 60 ,
text : "查询" ,
iconCls : "btnrefresh" ,
handler : function ( button , event ) {
this . onRefreshClick ( button , event ) ;
} ,
scope : this
} , {
xtype : 'button' ,
width : 45 ,
text : "" ,
iconCls : "btnmore" ,
handler : function ( button , event ) {
var sql = this . getCondition ( ) ;
var winAccess = new Shipping . DsQuery ( {
} ) ;
winAccess . StoreList = this . storeList ;
winAccess . formname = this . formname ;
winAccess . condition = sql ;
winAccess . show ( ) ;
return ;
} ,
scope : this
}
]
}
] //end items(fieldset 1)
} //end fieldset 1
] //end root items
} ) ;
//#endregion formSearch
this . panelInvDetail = new Ext . Panel ( {
layout : "border" ,
title : "发票明细" ,
// height: 220,
region : 'center' ,
//width: 830,
margin : '2 2' ,
split : true ,
items : [ this . gridDetailList ]
} ) ;
this . panelAppDetail = new Ext . Panel ( {
layout : "border" , hidden : true ,
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 : 420 ,
split : true ,
margin : '2 2' ,
items : [ this . gridFeeList ] //
} ) ;
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 : 260 ,
items : [ this . panelBtn , this . formEdit ]
} ) ;
this . panelBody = new Ext . Panel ( {
title : "费用明细" , hidden : true ,
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 : 'north' ,
id : "TabPanelID" ,
enableTabScroll : true ,
split : true ,
items :
[
this . panelInv ,
this . panelBody
]
} ) ;
Ext . apply ( this , {
items : [ this . panelTop , this . tabpanel , this . paneladd ]
} ) ;
//#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 . storeAddFeeList . on ( 'load' , function ( store , records ) {
if ( store . getCount ( ) > 0 ) {
this . gridAddFeeList . getSelectionModel ( ) . select ( 0 ) ;
var btnEAddDetail = Ext . getCmp ( 'btnadddetail' ) ;
btnEAddDetail . enable ( ) ;
}
} , this ) ;
_this = this ;
this . storeAddFeeList . on ( 'beforeload' , function ( store ) {
var sql = this . getCondition ( ) ;
Ext . apply ( store . proxy . extraParams , { condition : this . BillSql } ) ;
} , 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 ) {
var INVOICE _ID = record . data . BSNO ;
this . storeFeeList . load ( {
params : {
INVOICE _ID : INVOICE _ID
} ,
callback : function ( r , options , success ) {
if ( success ) {
}
} ,
scope : this
} ) ;
} , 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
} ) ;
} , //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
} ) ;
}
if ( ! isNullorEmpty ( data . CUSTADDRTEL ) ) {
if ( isNullorEmpty ( data . CUSTTEL ) ) {
data . CUSTTEL = getEndTel ( data . CUSTADDRTEL ) ;
if ( isNullorEmpty ( data . CUSTADDR ) ) {
data . CUSTADDR = data . CUSTADDRTEL . replace ( data . CUSTTEL , "" ) ;
}
} else
if ( isNullorEmpty ( data . CUSTADDR ) ) {
data . CUSTADDR = data . CUSTADDRTEL . replace ( getEndTel ( data . CUSTADDRTEL ) , "" ) ;
}
}
_this . formEdit . getForm ( ) . reset ( ) ;
_this . formAMT . getForm ( ) . reset ( ) ;
_this . formEdit . getForm ( ) . setValues ( data ) ;
_this . formAMT . getForm ( ) . setValues ( data ) ;
if ( this . opStatus == 'copyadd' )
this . CopyNewData ( ) ;
Data _pushmail = { EMAIL : data . PUSHEMAIL , NAMEANDEMAIL : data . PUSHEMAIL } ;
needinsert = true ;
this . storeInfoClientMailTel . each ( function ( record ) {
if ( record . get ( 'PUSHEMAIL' ) == data . PUSHEMAIL ) {
needinsert = false ;
return false ;
}
} ) ;
if ( needinsert ) {
this . storeInfoClientMailTel . add ( Data _pushmail ) ;
}
if ( isNullorEmpty ( data . ACCOUNT ) ) {
this . comboxBANK . select ( this . StoreBANK . getAt ( 1 ) ) ;
}
_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 : "INVBILLNO='" + billno + "'" } } ) ;
this . onRefreshClick ( ) ;
} , // 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 AMTForm = this . formAMT . getForm ( ) ;
var AMTdata = AMTForm . getValues ( ) ;
data . AMOUNTCAPITAL = AMTdata . AMOUNTCAPITAL ;
data . REDNUM = AMTdata . REDNUM ;
data . REDCODE = AMTdata . REDCODE ;
//AMOUNTCAPITAL
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 ( 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 ( ) ;
}
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 ( '' ) ;
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 ) ;
} ,
getHeadData : function ( ) {
var basicForm = this . formEdit . getForm ( ) ;
var data = basicForm . getValues ( ) ;
return data ;
} ,
setHeadData : function ( headdata ) {
var basicForm = this . formEdit . getForm ( ) ;
} ,
IsAddDetail : function ( ) {
//首先 如果上方有流水号 则返回错误 结束
headdata = this . getHeadData ( ) ;
if ( ! ( isNullorEmpty ( headdata . INVOICESERIALNUM ) && headdata . BILLSTATUS == 0 ) ) {
Ext . Msg . show ( {
title : '不能取新的发票信息' ,
msg : '已有流水号,或已锁定的发票,不可再获取其他发票信息' ,
icon : Ext . Msg . ERROR , buttons : Ext . Msg . OK
} ) ;
return ;
}
var selectedRecords = this . gridAddFeeList . selModel . getSelection ( ) ;
if ( selectedRecords . length == 0 ) {
Ext . Msg . show ( {
title : '' ,
msg : '请先选择一个未开发票' ,
icon : Ext . Msg . ERROR , buttons : Ext . Msg . OK
} ) ;
return ;
}
var rec = selectedRecords [ 0 ] . data ;
var basicForm = this . formEdit . getForm ( ) ;
if ( ! basicForm . isValid ( ) ) {
return ;
}
this . formEdit . getForm ( ) . findField ( 'GID' ) . 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 ( 'COMPANYID' ) . setDisabled ( true ) ;
this . formEdit . getForm ( ) . findField ( 'GID' ) . setDisabled ( true ) ;
//将联力P2的发票信息存入Ds7
Ext . Msg . wait ( '正在保存数据, 请稍侯..' ) ;
Ext . Ajax . request ( {
waitMsg : '正在保存数据...' ,
url : '/Account/Chfee_invoice_HangXin/SaveNewP2' ,
scope : this ,
params : {
opstatus : this . opStatus ,
data : Ext . JSON . encode ( rec ) ,
GID : this . getformvalue ( "GID" ) ,
localdata : Ext . JSON . encode ( data )
} ,
callback : function ( options , success , response ) {
if ( success ) {
Ext . MessageBox . hide ( ) ;
var jsonresult = Ext . JSON . decode ( response . responseText ) ;
if ( jsonresult . Success ) {
var returnData = jsonresult . Data ;
returnData . CUSTTEL = getEndTel ( returnData . CUSTADDRTEL ) ;
returnData . CUSTADDR = returnData . CUSTADDRTEL . replace ( returnData . CUSTTEL , "" ) ;
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 ( ) ;
}
this . opStatus = 'edit' ;
GID = returnData . GID ;
this . storeDetailList . load ( { params : { condition : " PID='" + GID + "'" } } ) ;
//20200604 如未选择银行账户 则选择第一个
} 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
} ) ;
}
}
} ) ;
} ,
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 ) ;
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 ) , "" ) ) ;
}
this . storecustbank . load ( {
params : {
condition : " CURRENCY='RMB' AND LINKID=(SELECT TOP 1 GID FROM INFO_CLIENT WHERE SHORTNAME='" + cust + "')"
} ,
callback : function ( r , options , success ) {
cb = r [ 0 ] . data . BANKNAME _ACCOUNT ;
if ( ! isNullorEmpty ( cb ) ) {
CUSTBANK . setValue ( cb ) ;
_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 ( '' ) ;
}
}
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 ) ;
CUSTTEL . setValue ( getEndTel ( rec . data . CUSTADDRTEL ) ) ;
CUSTADDR . setValue ( rec . data . CUSTADDRTEL . replace ( getEndTel ( rec . data . CUSTADDRTEL ) , "" ) ) ;
_this . addsave ( ) ;
}
}
}
else {
//如果不完全是一票新业务 CUSTOMERNAME 有数据 则
//1 = 1;
}
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 ( ) {
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 ( ) ;
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 . 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 : "INVBILLNO='" + 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 : "INVBILLNO='" + 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 ;
} ;
errormsg = this . checkPost ( ) ;
_this = this ;
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 ( "未知错误" ) ;
}
} else {
var url = result . Data . INVOICEINFOURL . 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 ( "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_P2' ,
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 ( "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 ( "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_P2' ,
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://" , "" ) , "发票信息" , 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'
} ]
}
] //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 ( ) ;
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 ( ) ;
_this . formEdit . getForm ( ) . findField ( 'REMARK' ) . setValue ( REMARK + ' ' + 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 = " isnull(INVOICE_NO,'')='' " ;
var MblNo = form . findField ( 'MblNo' ) . getValue ( ) ;
sql = sql + getAndConSql ( sql , MblNo , " BL_NO like '%" + MblNo + "%' " ) ;
var APPLICANT = form . findField ( 'APPLICANT' ) . getValue ( ) ;
sql = sql + getAndConSql ( sql , APPLICANT , "CREATE_BY='" + APPLICANT + "'" ) ;
var CUSTCODE = form . findField ( 'CUSTCODE' ) . getValue ( ) ;
sql = sql + getAndConSql ( sql , CUSTCODE , " COMPANY_CODE = '" + CUSTCODE + "'" ) ;
var ISSUE _DATEBgn = form . findField ( 'ExpDateBgn' ) . getRawValue ( ) ;
sql = sql + getAndConSql ( sql , ISSUE _DATEBgn , "ISSUE_DATE >='" + ISSUE _DATEBgn + "'" ) ;
var ISSUE _DATEEnd = form . findField ( 'ExpDateEnd' ) . getRawValue ( ) ;
sql = sql + getAndConSql ( sql , ISSUE _DATEEnd , "ISSUE_DATE <='" + ISSUE _DATEEnd + "'" ) ;
var CURRENCY = form . findField ( 'CURRENCY' ) . getRawValue ( ) ;
sql = sql + getAndConSql ( sql , CURRENCY , "CURR_TYPE ='" + CURRENCY + "'" ) ;
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
// #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
} ) ;
}
} ,
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 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.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
} ) ;
}
} ) ;