UNPKG

ttk-app-core

Version:
297 lines (269 loc) 11.1 kB
import { Map, fromJS } from 'immutable' let beijingZzsjmssbmxbjsxmGridlbVO = [ { bqfse: "0.00", bqsjdjse: "0.00", bqydjse: "0.00", ewbhxh: "1", hmc: "合计", jmbhmc: "合计", qcye: "0.00", qmye: "0.00", swsxDm: "" },{ ewbhxh: "2", hmc: '', qcye: '0', bqfse: '0', bqydjse: '0', bqsjdjse: '0', qmye: '0' },{ ewbhxh: "3", hmc: '', qcye: '0', bqfse: '0', bqydjse: '0', bqsjdjse: '0', qmye: '0' },{ ewbhxh: "4", hmc: '', qcye: '0', bqfse: '0', bqydjse: '0', bqsjdjse: '0', qmye: '0' },{ ewbhxh: "5", hmc: '', qcye: '0', bqfse: '0', bqydjse: '0', bqsjdjse: '0', qmye: '0' } ] function personaliseRenderTableName( SS , activeTabKey ) { let tableName switch(SS) { case '11': tableName = beijingRenderTableName( SS , activeTabKey ); break; default: tableName = defaultRenderTableName( SS , activeTabKey ); } return tableName } function defaultRenderTableName( SS , activeTabKey ) { let tableName if( activeTabKey == 'zzsjmssbmxb' ) { tableName = `ttk-tax-app-zzsjmssbmxb` } else { tableName = `ttk-tax-app-${activeTabKey}` } return tableName } function beijingRenderTableName( SS , activeTabKey ) { let tableName if( activeTabKey == 'zzsjmssbmxb' ) { tableName = `ttk-tax-app-zzsjmssbmxb-beijing` } else { tableName = `ttk-tax-app-${activeTabKey}` } return tableName } function personaliseFormatData( SS , VOData ) { let tableName switch(SS) { case '11': VOData = beijingFormatData( SS , VOData ); break; } return VOData } function beijingFormatData( SS , VOData ) { if( !VOData.zzsjmssbmxb ) return VOData let zzsjmssbmxbjsxmGridlbVO = VOData.zzsjmssbmxb && VOData.zzsjmssbmxb.zzsjmssbmxbjsxmGrid ? VOData.zzsjmssbmxb.zzsjmssbmxbjsxmGrid.zzsjmssbmxbjsxmGridlbVO : [], cloneArr = JSON.parse(JSON.stringify(beijingZzsjmssbmxbjsxmGridlbVO)) if(zzsjmssbmxbjsxmGridlbVO.length < 5 ) { zzsjmssbmxbjsxmGridlbVO.map( item => { cloneArr[ item.ewbhxh-1 ] = item }) zzsjmssbmxbjsxmGridlbVO = cloneArr } VOData.zzsjmssbmxb.zzsjmssbmxbjsxmGrid.zzsjmssbmxbjsxmGridlbVO = zzsjmssbmxbjsxmGridlbVO return VOData } function personaliseShowTable( SS, gdslx, treeLeft ) { if( SS != '11') treeLeft = notBeijingShowTable( treeLeft ); switch(SS) { case '52'://贵州 treeLeft = guizhouShowTable( gdslx, treeLeft ); break; default: treeLeft = defaultShowTable( treeLeft ); } return treeLeft } function guizhouShowTable( gdslx, treeLeft ) { treeLeft = treeLeft.map( item => { if( item.key == 'zzsxgmfjssb' ) { item.isShow = gdslx == 1 ? true : false } return item }) return treeLeft } function notBeijingShowTable( treeLeft ) { treeLeft = treeLeft.map( item => { if( item.key == 'zzsxgmxsbdcqkb' || item.key == 'zzsxgmkcxmqd' ) { item.isShow = false } return item }) return treeLeft } function defaultShowTable( treeLeft ) { treeLeft = treeLeft.map( item => { if( item.key == 'zzsxgmfjssb' ) { item.isShow = false } return item }) return treeLeft } function personaliseCalc( SS, otherData, zzssyyxgmnsrySbSbbdxxVO ) { switch(SS) { case '52'://贵州 zzssyyxgmnsrySbSbbdxxVO = guizhouCalc( otherData, zzssyyxgmnsrySbSbbdxxVO ); break; default: zzssyyxgmnsrySbSbbdxxVO = defaultCalc( zzssyyxgmnsrySbSbbdxxVO ); } return zzssyyxgmnsrySbSbbdxxVO } function guizhouCalc( otherData, zzssyyxgmnsrySbSbbdxxVO ) { // i. 如果附表没有数据,取“货物及劳务”列下及“服务、不动产和无形资产”列下的行1+行4+行7+行9+行13本期数之和; // ii. 如果附表栏次5有数据,取“货物及劳务”列下的行1+行7+行9+行13本期数+附表栏次5÷1.03+ “服务、不动产和无形资产”列下的行4+行9+行13本期数之和。 // iii. 如果附表栏次13有数据,取“货物及劳务”列下的行1+行7+行9+行13本期数+附表栏次13÷1.05+“服务、不动产和无形资产”列下的行1+行9+行13本期数之和。 // iv. 如果附表栏次5与栏次13都有数据,取“货物及劳务”列下的行1+行7+行9+行13本期数+附表栏次5÷1.03+附表栏次13÷1.05+“服务、不动产和无形资产”列下的行9+行13本期数之和。 if( otherData.gdslx == 1 ) { let jsyj = mathRound( (zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[0].ynsehj-0||0) + (zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[1].ynsehj-0||0) ), xgmfjsxxGridlb = zzssyyxgmnsrySbSbbdxxVO.zzsxgmfjssb.xgmfjsxxGrid.xgmfjsxxGridlb, xse, fwbdcC1 = formatNum( zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[1].yzzzsbhsxse ), fwbdcC4 = formatNum( zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[1].xsczbdcbhsxse ) if( zzssyyxgmnsrySbSbbdxxVO.zzsxgmflzl.flzlForm.ysfwxsqbhssr > 0 ) { fwbdcC1 = mathRound( formatNum( zzssyyxgmnsrySbSbbdxxVO.zzsxgmflzl.flzlForm.ysfwxsqbhssr )/1.03 ) } if( zzssyyxgmnsrySbSbbdxxVO.zzsxgmflzl.flzlForm.ysfwxsqbhssr5 > 0 ) { fwbdcC4 = mathRound( formatNum( zzssyyxgmnsrySbSbbdxxVO.zzsxgmflzl.flzlForm.ysfwxsqbhssr5 )/1.05 ) } xse = formatNum( zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[0].yzzzsbhsxse ) + formatNum( zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[0].xsczbdcbhsxse ) + formatNum( zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[0].xssygdysgdzcbhsxse ) + formatNum( zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[0].msxse ) + formatNum( zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[0].ckmsxse ) + fwbdcC1 + fwbdcC4 + formatNum( zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[1].xssygdysgdzcbhsxse ) + formatNum( zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[1].msxse ) + formatNum( zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[1].ckmsxse ) let zspmDmList = xgmfjsxxGridlb.map( item => { return item.zspmDm }) xgmfjsxxGridlb.map( ( item, index ) => { if( zspmDmList.indexOf( item.zspmDm ) == index && zspmDmList.indexOf( item.zspmDm , index+1 ) < 0 ) {//是第一个值,且后面没值 //不用拆分 item.jsyj = mathRound( jsyj ) } else if( zspmDmList.indexOf( item.zspmDm ) == index && zspmDmList.indexOf( item.zspmDm , index+1 ) > 0 ) {//是第一个值,且后面有值 //拆分货物及劳务 item.jsyj = mathRound( (zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[0].ynsehj-0||0) ) } else if( zspmDmList.indexOf( item.zspmDm ) < index ) {//前面有值,当前值是后面的值 //拆分服务、不动产和无形资产 item.jsyj = mathRound( (zzssyyxgmnsrySbSbbdxxVO.zzssyyxgmnsr.zzsxgmGrid.zzsxgmGridlb[1].ynsehj-0||0) ) } // item.jsyj = mathRound( jsyj ) item.ynse = mathRound( item.jsyj * item.sl1 ) if( xse <= 100000 * otherData.during && ( item.jsyj > 0 ) ) { item.ssjmxzDmMc = '其他' // item.ssjmxzDm = item.zsxmDmMc.indexOf('地方教育附加') >=0 ? '0099129999' : '0061129999' if(item.zsxmDm == "30216") { item.ssjmxzDm = "0099129999" }else if(item.zsxmDm == "30203") { //教育附加 item.ssjmxzDm = "0061129999" } item.jmse = item.ynse item.ybtse = 0 } else { item.ssjmxzDmMc = "" item.ssjmxzDm = "" item.jmse = 0 item.ybtse = item.ynse } }) } return zzssyyxgmnsrySbSbbdxxVO } function defaultCalc( zzssyyxgmnsrySbSbbdxxVO ) { return zzssyyxgmnsrySbSbbdxxVO } function mathRound( num , digit = 2 ) {//数字,精确位数 默认 num = isNaN(parseFloat(num)) ? 0: num-0 return Math.round(num * (Math.pow(10 , digit)) ) / (Math.pow(10 , digit)) } function formatNum(num) { num = isNaN(parseFloat(num))? 0 : num-0 return num } function personalDelEmptyRow( SS , list, listName ) { switch(SS) { case '11': list = beijingDelEmptyRow( SS , list, listName ); break; default: list = defaultDelEmptyRow( SS , list, listName ); } return list } function defaultDelEmptyRow( SS , list, listName ) { if( listName == 'zzsjmssbmxbjsxmGridlbVO' ) { list = list.filter(item => item.ewbhxh ) } return list } function beijingDelEmptyRow( SS , list, listName ) { if( listName == 'zzsjmssbmxbjsxmGridlbVO' ) { list = list.filter(item =>{ return (item.hmc=="合计") || (item.hmc || (item.qcye-0) || (item.bqfse-0) || (item.bqydjse-0) || (item.bqsjdjse-0) || (item.qmye-0) ) } ) } return list } function personalCancatCheckList( SS , checkList , sumRowCheckList , changeData ) { switch(SS) { case '11': checkList = beijingCancatCheckList( SS , checkList , sumRowCheckList , changeData ); break; } return checkList } function beijingCancatCheckList( SS , checkList , sumRowCheckList , changeData ) { let addCheckList = [] sumRowCheckList.map( item => { if( changeData[item.needHaveName] ) { addCheckList.push( item ) } }) checkList = checkList.concat( addCheckList ) return checkList } export default { personaliseRenderTableName,//不同地区表格名称不一样 personaliseFormatData,//减免税数据固定5行,行数不够的补齐 personaliseShowTable,//部分地区加可以展示的表格 personaliseCalc,//特殊计算 personalDelEmptyRow,//去除空行 personalCancatCheckList//个性化加校验提示 }