123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398 |
- /**
- * Created by CSL on 2018/11/12. 江西计算程序、基数 等覆盖。
- */
- let isJX2017 = true;
- // 一般计税取不含税市场价、不含税定额价。简易计税取含税市场价、含税定额价。打开项目时,4个价格根据计税类型只载入其二,所以这里可不作区分。
- function overwriteRationCalcBases (taxType){
- if (typeof rationCalcBases == 'undefined') return;
- for (let key in rationCalcBases) delete rationCalcBases[key];
- // let isJY = taxType == '2';
- rationCalcBases['人工费'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptMarketPrice, isTender);
- };
- rationCalcBases['定额人工费'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptBasePrice, isTender);
- };
- rationCalcBases['材料费'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptMarketPrice, isTender);
- };
- rationCalcBases['机械费'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptMarketPrice, isTender);
- };
- rationCalcBases['定额机械费'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptBasePrice, isTender);
- };
- rationCalcBases['主材费'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptMarketPrice, isTender);
- };
- rationCalcBases['设备费'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender);
- };
- rationCalcBases['人工费价差'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptDiffPrice, isTender);
- };
- rationCalcBases['材料费价差'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptDiffPrice, isTender);
- };
- rationCalcBases['机械费价差'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptDiffPrice, isTender);
- };
- rationCalcBases['主材费价差'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptDiffPrice, isTender);
- };
- rationCalcBases['设备费价差'] = function (node, isTender) {
- return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptDiffPrice, isTender);
- };
- rationCalcBases['人工工日'] = function (node, isTender) {
- return calcTools.labourDays(node, isTender);
- };
- rationCalcBases['甲供人工费'] = function (node, isTender) {
- return calcTools.partASupplyFee(node, '甲供人工费', isTender, false);
- };
- rationCalcBases['甲供材料费'] = function (node, isTender) {
- return calcTools.partASupplyFee(node, '甲供材料费', isTender, false);
- };
- rationCalcBases['甲供机械费'] = function (node, isTender) {
- return calcTools.partASupplyFee(node, '甲供机械费', isTender, false);
- };
- rationCalcBases['甲供主材费'] = function (node, isTender) {
- return calcTools.partASupplyFee(node, '甲供主材费', isTender, false);
- };
- rationCalcBases['甲供设备费'] = function (node, isTender) {
- return calcTools.partASupplyFee(node, '甲供设备费', isTender, false);
- };
- rationCalcBases['甲定人工费'] = function (node, isTender) {
- return calcTools.partASupplyFee(node, '甲定人工费', isTender, false);
- };
- rationCalcBases['甲定材料费'] = function (node, isTender) {
- return calcTools.partASupplyFee(node, '甲定材料费', isTender, false);
- };
- rationCalcBases['甲定机械费'] = function (node, isTender) {
- return calcTools.partASupplyFee(node, '甲定机械费', isTender, false);
- };
- rationCalcBases['甲定主材费'] = function (node, isTender) {
- return calcTools.partASupplyFee(node, '甲定主材费', isTender, false);
- };
- rationCalcBases['甲定设备费'] = function (node, isTender) {
- return calcTools.partASupplyFee(node, '甲定设备费', isTender, false);
- };
- rationCalcBases['暂估材料费'] = function (node, isTender) {
- return calcTools.estimateFee(node, true, isTender);
- };
- rationCalcBases['分包人工费'] = function (node, isTender) {
- if (node.data.isSubcontract)
- return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptMarketPrice, isTender)
- else
- return 0;
- };
- rationCalcBases['分包材料费'] = function (node, isTender) {
- if (node.data.isSubcontract)
- return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptMarketPrice, isTender)
- else
- return 0;
- };
- rationCalcBases['分包机械费'] = function (node, isTender) {
- if (node.data.isSubcontract)
- return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptMarketPrice, isTender)
- else
- return 0;
- };
- rationCalcBases['分包主材费'] = function (node, isTender) {
- if (node.data.isSubcontract)
- return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptMarketPrice, isTender)
- else
- return 0;
- };
- rationCalcBases['分包设备费'] = function (node, isTender) {
- if (node.data.isSubcontract)
- return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender)
- else
- return 0;
- };
- rationCalcBases['分包人工工日'] = function (node, isTender) {
- if (node.data.isSubcontract)
- return calcTools.labourDays(node, isTender)
- else
- return 0;
- };
- };
- (function overwriteFeeTypes() {
- if (typeof cpFeeTypes == 'undefined') return;
- cpFeeTypes = [
- // {type: 'direct', name: '直接费'},
- {type: 'labour', name: '人工费'},
- {type: 'marketLabour', name: '市场价人工费'},
- {type: 'marketMaterial', name: '市场价材料费'},
- {type: 'machine', name: '机械费'},
- {type: 'marketMachine', name: '市场价机械费'},
- {type: 'mainMaterial', name: '主材费'},
- {type: 'equipment', name: '设备费'},
- {type: 'manage', name: '企业管理费'},
- {type: 'surtax', name: '附加税费'},
- {type: 'profit', name: '利润'},
- {type: 'safeMeasures', name: '安全文明施工措施费'},
- {type: 'environment', name: '安全文明环保费'},
- {type: 'tempFacility', name: '临时设施费'},
- {type: 'otherTotalMeasures', name: '其他总价措施费'},
- {type: 'dirtMeasures', name: '扬尘治理措施费'},
- {type: 'forceFee', name: '规费'},
- {type: 'tax', name: '税金'},
- {type: 'common', name: '工程造价'}
- ];
- })();
- //清单计算基数相关
- if(typeof baseFigureMap !== 'undefined'){
- baseFigureMap = {
- //与清单直接关联=======
- '分部分项工程费': {base: 'FBFXGCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
- //'分部分项直接费': {base: 'FBFXZJF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
- '分部分项定额人工费': {base: 'FBFXDEJJRGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
- '分部分项人工费': {base: 'FBFXRGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
- '分部分项材料费': {base: 'FBFXCLF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
- '分部分项定额机械费': {base: 'FBFXDEJJJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
- '分部分项机械费': {base: 'FBFXJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
- '分部分项主材费': {base: 'FBFXZCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
- '分部分项设备费': {base: 'FBFXSBF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
- '分部分项人工工日': {base: 'FBFXRGGR', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
- '措施项目费': {base: 'CSXMF', fixedFlag: fixedFlag.MEASURE, class: 'CSXM'},
- '组织措施项目费': {base: 'ZZCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
- '组织措施项目人工费': {base: 'ZZCSXMRGF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
- '组织措施项目材料费': {base: 'ZZCSXMCLF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
- '组织措施项目机械费': {base: 'ZZCSXMJXF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
- '技术措施项目费': {base: 'JSCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
- '技术措施项目定额人工费': {base: 'JSCSXMDEJJRGF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
- '技术措施项目人工费': {base: 'JSCSXMRGF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
- '技术措施项目材料费': {base: 'JSCSXMCLF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
- '技术措施项目定额机械费': {base: 'JSCSXMDEJJJXF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
- '技术措施项目机械费': {base: 'JSCSXMJXF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
- '技术措施项目主材费': {base: 'JSCSXMZCF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
- '技术措施项目设备费': {base: 'JSCSXMSBF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
- '技术措施项目人工工日': {base: 'JSCSXMRGGR', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
- '其他项目费': {base: 'QTXMF', fixedFlag: fixedFlag.OTHER, class: 'QTXM'},
- '规费': {base: 'GF', fixedFlag: fixedFlag.CHARGE, class: 'GF'},
- '税金': {base: 'SJ', fixedFlag: fixedFlag.TAX, class: 'SJ'},
- //不于清单直接关联==========
- '建筑面积': {base: 'JZMJ', class: 'FBFX'},
- '人材机价差': {base: 'RCJJC', class: 'RCJ'},
- '人工价差': {base: 'RGJC', class: 'RCJ'},
- '材料价差': {base: 'CLJC', class: 'RCJ'},
- '机械价差': {base: 'JXJC', class: 'RCJ'},
- '甲供人工费': {base: 'JGRGF', class: 'RCJ'},
- '甲供材料费': {base: 'JGCLF', class: 'RCJ'},
- '甲供机械费': {base: 'JGJXF', class: 'RCJ'},
- '甲供主材费': {base: 'JGZCF', class: 'RCJ'},
- '甲供设备费': {base: 'JGSBF', class: 'RCJ'},
- '甲定人工费': {base: 'JDRGF', class: 'RCJ'},
- '甲定材料费': {base: 'JDCLF', class: 'RCJ'},
- '甲定机械费': {base: 'JDJXF', class: 'RCJ'},
- '甲定主材费': {base: 'JDZCF', class: 'RCJ'},
- '甲定设备费': {base: 'JDSBF', class: 'RCJ'},
- '暂估材料费(从子目汇总)': {base: 'ZGCLFFZM', class: 'RCJ'},
- '分包费': {base: 'FBF', class: 'FBF'},
- '分包人工费': {base: 'FBRGF', class: 'FBF'},
- '分包材料费': {base: 'FBCLF', class: 'FBF'},
- '分包机械费': {base: 'FBJXF', class: 'FBF'},
- '分包主材费': {base: 'FBZCF', class: 'FBF'},
- '分包设备费': {base: 'FBSBF', class: 'FBF'},
- '分包人工工日': {base: 'FBRGGR', class: 'FBF'},
- '估价项目定额人工费': {base: 'GJXMDERGF', class: 'GJXM'},
- '估价项目定额机械费': {base: 'GJXMDEJXF', class: 'GJXM'},
- //'估价项目直接费': {base: 'GJXMZJF', class: 'GJXM'},
- '估价项目人工费': {base: 'GJXMRGF', class: 'GJXM'},
- '估价项目材料费': {base: 'GJXMCLF', class: 'GJXM'},
- '估价项目机械费': {base: 'GJXMJXF', class: 'GJXM'},
- '估价项目主材费': {base: 'GJXMZCF', class: 'GJXM'},
- '估价项目工日': {base: 'GJXMGR', class: 'GJXM'},
- };
- }
- if(typeof baseFigureTemplate !== 'undefined'){
- baseFigureTemplate['FBFXRGF'] = function (tender) {//分部分项人工费(市场人工费)
- let feeField = 'marketLabour',
- subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
- return cbTools.getBillsFee(fixedFlag.SUB_ENGINERRING, feeField, subFeeField);
- };
- baseFigureTemplate['FBFXCLF'] = function (tender) {//分部分项材料费(市场材料费)
- let feeField = 'marketMaterial',
- subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
- return cbTools.getBillsFee(fixedFlag.SUB_ENGINERRING, feeField, subFeeField);
- };
- baseFigureTemplate['FBFXJXF'] = function (tender) {//分部分项机械费(市场机械费)
- let feeField = 'marketMachine',
- subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
- return cbTools.getBillsFee(fixedFlag.SUB_ENGINERRING, feeField, subFeeField);
- };
- baseFigureTemplate['ZZCSXMRGF'] = function (tender) {//组织措施项目人工费(市场人工费)
- let feeField = 'marketLabour',
- subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
- return cbTools.getBillsFee(fixedFlag.CONSTRUCTION_ORGANIZATION, feeField, subFeeField);
- };
- baseFigureTemplate['ZZCSXMCLF'] = function (tender) {//组织措施项目材料费(市场材料费)
- let feeField = 'marketMaterial',
- subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
- return cbTools.getBillsFee(fixedFlag.CONSTRUCTION_ORGANIZATION, feeField, subFeeField);
- };
- baseFigureTemplate['ZZCSXMJXF'] = function (tender) {//组织措施项目机械费(市场机械费)
- let feeField = 'marketMachine',
- subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
- return cbTools.getBillsFee(fixedFlag.CONSTRUCTION_ORGANIZATION, feeField, subFeeField);
- };
- baseFigureTemplate['JSCSXMRGF'] = function (tender) {//技术措施项目人工费(市场人工费)
- let feeField = 'marketLabour',
- subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
- return cbTools.getBillsFee(fixedFlag.CONSTRUCTION_TECH, feeField, subFeeField);
- };
- baseFigureTemplate['JSCSXMCLF'] = function (tender) {//技术措施项目材料费(市场材料费)
- let feeField = 'marketMaterial',
- subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
- return cbTools.getBillsFee(fixedFlag.CONSTRUCTION_TECH, feeField, subFeeField);
- };
- baseFigureTemplate['JSCSXMJXF'] = function (tender) {//技术措施项目机械费(市场机械费)
- let feeField = 'marketMachine',
- subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
- return cbTools.getBillsFee(fixedFlag.CONSTRUCTION_TECH, feeField, subFeeField);
- };
- baseFigureTemplate['FBRGF'] = function (tender) {//分包人工费(市场人工费)
- const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
- let rst = 0;
- let rations = calcBase.project.Ration.datas;
- for(let ration of rations){
- if(ration.isSubcontract && ration.feesIndex && ration.feesIndex.marketLabour){
- rst = parseFloat(rst + ration.feesIndex.marketLabour[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
- }
- }
- return rst;
- };
- baseFigureTemplate['FBCLF'] = function (tender) {//分包材料费(市场材料费)
- const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
- let rst = 0;
- let rations = calcBase.project.Ration.datas;
- for(let ration of rations){
- if(ration.isSubcontract && ration.feesIndex && ration.feesIndex.marketMaterial){
- rst = parseFloat(rst + ration.feesIndex.marketMaterial[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
- }
- }
- return rst;
- };
- baseFigureTemplate['FBJXF'] = function (tender) {//分包机械费(市场机械费)
- const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
- let rst = 0;
- let rations = calcBase.project.Ration.datas;
- for(let ration of rations){
- if(ration.isSubcontract && ration.feesIndex && ration.feesIndex.marketMachine){
- rst = parseFloat(rst + ration.feesIndex.marketMachine[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
- }
- }
- return rst;
- };
- baseFigureTemplate['GJXMDERGF'] = function (tender) {//估计项目定额人工费
- const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
- let rst = 0;
- let rations = calcBase.project.Ration.datas;
- for(let ration of rations){
- if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.labour){
- rst = parseFloat(rst + ration.feesIndex.labour[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
- }
- }
- return rst;
- };
- baseFigureTemplate['GJXMDEJXF'] = function (tender) {//估计项目定额机械费
- const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
- let rst = 0;
- let rations = calcBase.project.Ration.datas;
- for(let ration of rations){
- if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.machine){
- rst = parseFloat(rst + ration.feesIndex.machine[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
- }
- }
- return rst;
- };
- baseFigureTemplate['GJXMRGF'] = function (tender) {//估计项目人工费(市场人工费)
- const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
- let rst = 0;
- let rations = calcBase.project.Ration.datas;
- for(let ration of rations){
- if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.marketLabour){
- rst = parseFloat(rst + ration.feesIndex.marketLabour[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
- }
- }
- return rst;
- };
- baseFigureTemplate['GJXMCLF'] = function (tender) {//估计项目材料费(市场材料费)
- const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
- let rst = 0;
- let rations = calcBase.project.Ration.datas;
- for(let ration of rations){
- if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.marketMaterial){
- rst = parseFloat(rst + ration.feesIndex.marketMaterial[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
- }
- }
- return rst;
- };
- baseFigureTemplate['GJXMJXF'] = function (tender) {//估计项目机械费(市场机械费)
- const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
- let rst = 0;
- let rations = calcBase.project.Ration.datas;
- for(let ration of rations){
- if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.marketMachine){
- rst = parseFloat(rst + ration.feesIndex.marketMachine[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
- }
- }
- return rst;
- };
- baseFigureTemplate['GJXMZCF'] = function (tender) {//估计项目主材费
- const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
- let rst = 0;
- let rations = calcBase.project.Ration.datas;
- for(let ration of rations){
- if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.mainMaterial){
- rst = parseFloat(rst + ration.feesIndex.mainMaterial[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
- }
- }
- return rst;
- };
- baseFigureTemplate['GJXMGR'] = function (tender) {//估计项目工日
- const quantityType = tender ? 'tenderQuantity' : 'quantity';
- let rst = 0;
- let rations = calcBase.project.Ration.datas;
- let rationGljs = calcBase.project.ration_glj.datas;
- for (let ration of rations) {
- if (ration.evaluationProject && ration.type === rationType.ration) {
- for(let glj of rationGljs){
- if(ration.ID === glj.rationID && glj.type === gljType.LABOUR){
- rst = parseFloat(rst + parseFloat(glj[quantityType] * ration[quantityType]).toDecimal(decimalObj.glj.quantity)).toDecimal(decimalObj.glj.quantity);
- }
- }
- }
- }
- return rst;
- };
- }
- //增加清单基数分类估价项目、去除分类税前工程造价
- if(typeof $ !== 'undefined' && $('#cbClassList')){
- $('#cbClassList').find('li:eq(8)').remove();
- let $li = $('<li class="py-1"><a id="cb_GJXM" href="javascript:void(0);">估价项目</a></li>');
- $li.insertAfter($('#cbClassList').find('li:eq(4)'));
- }
- if (typeof calcBaseView !== 'undefined') {
- calcBaseView.billsCBClass = {ALL: [], FBFX: [], CSXM: [], QTXM: [], FBF: [], RCJ: [], GF: [], SJ: [], GJXM: []};
- }
- // (江西)项目属性-关于计算中的取费方式默认勾选子目单价取费(反算)方式。
- // 根据重写去给项目的billsCalcMode赋值比这种形式麻烦
- if (typeof leafBillGetFeeType !== 'undefined') {
- leafBillGetFeeType = {
- rationPriceConverse: 0,
- rationContent: 1,
- rationPrice: 2,
- billsPrice: 3
- };
- }
|