zhangweicheng 6 سال پیش
والد
کامیت
ff3cb6264f

+ 3 - 3
modules/glj/facade/glj_facade.js

@@ -160,10 +160,10 @@ async function handleVvTaxForChang(unitFileID,newVvTaxFileID) {//切换车船税
 async function addMixRatioForNew(projectID,unitFileId,engineerID,ext){
 /*    1050001机械工	工日	机上人工/ 3003001	重油	kg	普通材料/ 3003002 汽油	93号	kg	普通材料
     3003003	柴油	0号,-10号,-20号	kg	普通材料/  3003004	丙烷	kg	普通材料/ 3005001	煤	t	普通材料
-    3005002	电	kW·h	普通材料/  3005004	水	m3	普通材料/ 3005005	液化天然气	m3	普通材料
+    3005002	电	kW·h   267 电 kW·h (浙江2005编号不同)	   普通材料/  3005004	水	m3	普通材料/ 3005005	液化天然气	m3	普通材料
      02JXF	折旧费	元	机械组成物/ 03WHF	检修费	元	机械组成物/    04ACFZF	维护费	元	机械组成物
   05QT	安拆辅助费	元	机械组成物/ 80CCS	车船税	元	机械组成物*/
-    let mixCodes = ['1051001','3003001','3003002','3003003','3003004','3005001','3005002','3005004','3005005','02JXF','03WHF','04ACFZF','05QT','80CCS'];
+    let mixCodes = ['1051001','3003001','3003002','3003003','3003004','3005001','3005002','3005004','3005005','02JXF','03WHF','04ACFZF','05QT','80CCS','267'];
     let libID = await ration_glj.getGLJLibByEngineerID(engineerID);
     let stdGljs = await std_glj_lib_gljList_model.find({'repositoryId':libID,'code':{'$in':mixCodes}});
     let projectGljModel = new GLJListModel();
@@ -256,7 +256,7 @@ async function updateMaterialCalcTasks(data) {
             genTasks(pu,priceTasks);
         }
     }
-
+    console.log(priceTasks)
     if(freightTasks.length > 0) await freight_calc_model.bulkWrite(freightTasks);
     if(priceTasks.length > 0) await original_calc_model.bulkWrite(priceTasks);
     if(data["unitPrice"]) await updateUnitPrice(data["unitPrice"]);

+ 17 - 20
public/web/gljUtil.js

@@ -30,7 +30,7 @@ let gljUtil = {
             let result = this.getQuantityPerGLJ(gljGroup,rations,rationMap,pglj,billIDs,tech_billIDS,q_decimal,_,scMathUtil,isTender);
             pglj[qField] = result.quantity;
             quantityMap[pg_index] = pglj;
-            if(pglj.code == '3005002' && pglj.name == '电' && pglj.unit == "kW·h") elecIndex = pg_index;
+            if(pglj.code == gljUtil.getElecCode() && pglj.name == '电' && pglj.unit == "kW·h") elecIndex = pg_index;
             if(com_electrovalence) quanitytIDMap[pglj.id] = pglj;
         }
         //计算做为组成物的消耗量
@@ -77,13 +77,13 @@ let gljUtil = {
                     let tquantity = 0;
                     let w = parseInt(cg.name);
                     if(w) tquantity = scMathUtil.roundForObj(eq/w,6);
-                    tquantity = scMathUtil.roundForObj(tquantity * gljUtil.k,q_decimal);
+                    tquantity = scMathUtil.roundForObj(tquantity * this.getElecCoe(),q_decimal);
                     quanitytIDMap[cg.projectGLJID][qField] = tquantity;
                     //计算机械台班下的组成物的消耗量
-                    let ckey = gljUtil.getIndex(quanitytIDMap[cg.projectGLJID]);
+                    let ckey = this.getIndex(quanitytIDMap[cg.projectGLJID]);
                     if(mixRatioMap[ckey]){
                         for(let m of mixRatioMap[ckey]){
-                            let cmkey = gljUtil.getIndex(m);
+                            let cmkey = this.getIndex(m);
                             if(quantityMap[cmkey] && tquantity > 0){//混凝土、砂浆、配合比组成物的消耗量在定额下已经有体现了,不用再计算进去
                                 let c_m_quantity = scMathUtil.roundForObj(tquantity * parseFloat(m.consumption),6);
                                 quantityMap[cmkey][qField] =  scMathUtil.roundForObj(parseFloat(quantityMap[cmkey][qField])+c_m_quantity,q_decimal);
@@ -92,13 +92,7 @@ let gljUtil = {
                     }
                 }
             }
-
-
-
         }
-
-
-
         //计算经过场外运输损耗后的总消耗量
         for(let pglj of project_gljs ){
             let offSiteTransportLossRate = this.getOffSiteTransportLossRate(pglj);
@@ -420,7 +414,7 @@ let gljUtil = {
     },
     //是否从混凝土改成商品混凝土,并且混凝土的定额消耗量不为空,则原混凝土的自定义消耗改成0,插入一条新的商品混凝土自定义消耗量为原自定义或定额消耗
     isAddCommercialForReplace:function (oldType,newType,rationItemQuantity) {
-        return gljUtil.isConcreteToCommercialConcrete(oldType,newType)&&rationItemQuantity&&rationItemQuantity!='0';
+        return this.isConcreteToCommercialConcrete(oldType,newType)&&rationItemQuantity&&rationItemQuantity!='0';
     },
     isMaterialType:function (type) {
        let materialType = [gljType.GENERAL_MATERIAL,gljType.GREEN_SEEDLING,gljType.PURCHASE_COMPONENT,gljType.COMMERCIAL_CONCRETE,gljType.COMMERCIAL_MORTAR];//可以添加材料计算的类型普通材料”、“绿化苗木”、“外购砼构件”、“商品混凝土”、“商品砂浆”
@@ -431,9 +425,9 @@ let gljUtil = {
     },
     hasComposition:function (ration_glj,isRationType) {//判断是否有组成物,有则返回true   现在主材类型的工料机也有可能有组成物。
         let type = isRationType==true? ration_glj.subType:ration_glj.type;
-        if(gljUtil.notEditType.indexOf(type)!=-1||type==gljType.MAIN_MATERIAL){
+        if(this.notEditType.indexOf(type)!=-1||type==gljType.MAIN_MATERIAL){
             let keyArray = isRationType==true? rationKeyArray:gljKeyArray;
-            let con_key = gljUtil.getIndex(ration_glj,keyArray);
+            let con_key = this.getIndex(ration_glj,keyArray);
             var mixRatioMap = projectObj.project.projectGLJ.datas.mixRatioMap;
             if(mixRatioMap[con_key]&&mixRatioMap[con_key].length>0){
                 return true;
@@ -475,16 +469,16 @@ let gljUtil = {
         let directFee = 0;//直接费
         let rationQuantity = scMathUtil.roundForObj(ration.quantity,ration_quantity_decimal);
         for(let g of ration_gljs){
-            let result = gljUtil.getGLJPrice(pMap[g.projectGLJID],projectGLJDatas,calcOptions,labourCoeDatas,decimalObj,false,_,scMathUtil);
+            let result = this.getGLJPrice(pMap[g.projectGLJID],projectGLJDatas,calcOptions,labourCoeDatas,decimalObj,false,_,scMathUtil);
             g.marketPrice = result.marketPrice;
             g.basePrice = result.basePrice;
             let quantity = scMathUtil.roundForObj(g.quantity,glj_quantity_decimal);
             let t = scMathUtil.roundForObj(quantity * g.marketPrice * rationQuantity,process_decimal);//市场价
             let rt = scMathUtil.roundForObj(quantity * g.basePrice * rationQuantity,process_decimal);//定额价
-            if(g.type == gljUtil.gljType.LABOUR){
+            if(g.type == this.gljType.LABOUR){
                 rationLaberFee = scMathUtil.roundForObj(rationLaberFee+t,process_decimal);
                 rationLaberFee_b = scMathUtil.roundForObj(rationLaberFee_b+rt,process_decimal);
-            }else if(gljUtil.getMainType(g.type) == 3){
+            }else if(this.getMainType(g.type) == 3){
                 rationMachineFee = scMathUtil.roundForObj(rationMachineFee+t,process_decimal);
                 rationMachineFee_b = scMathUtil.roundForObj(rationMachineFee_b+rt,process_decimal);
             }
@@ -498,8 +492,12 @@ let gljUtil = {
         //let hs = scMathUtil.roundForObj(tt*hightFeeRate,process_decimal);//(人工定额消耗量*定额价*定额工程量+机械定额消耗量*定额价*定额工程量)*高原取费类别费率
 
     },
-
-
+    getElecCoe:function () {
+        return 0.15;
+    },
+    getElecCode:function () {
+        return '3005002';
+    },
     fixedFlag : {
         // 分部分项工程
         SUB_ENGINERRING: 1,
@@ -552,6 +550,5 @@ let gljUtil = {
     },
     hasCompMaterial:[202, 203, 204],//有组成物的材料
     hasCompMachine:[301],//有组成物的机械
-    machineComposition:[302,303],//可以做为机械组成物的类型
-    k:0.15//电计算公式中的系数
+    machineComposition:[302,303]//可以做为机械组成物的类型
 }

+ 10 - 9
web/building_saas/main/js/models/project_glj.js

@@ -631,14 +631,6 @@ ProjectGLJ.prototype.updateMaterialCalc = async function (datas) {
 
 };
 
-ProjectGLJ.prototype.updateFreightCalc = async function (datas,pgljID){
-    let updateMap = {};
-    for(let d of datas){
-        updateMap[d.ID] = d.doc;
-    }
-    await this.updateMaterialCalcTasks(pgljID,updateMap,"update","freight");
-};
-
 ProjectGLJ.prototype.updateMaterialCalcTasks =async function(pgljID,dataMap,actionType,model){
     //为了统一接口, 参数dataMap 在添加操作时是一个数组,在修改的时候是一个ID - doc 映射表;
     try {
@@ -777,6 +769,15 @@ ProjectGLJ.prototype.addFreightCalc = async function (datas,pgljID) {
     await this.updateMaterialCalcTasks(pgljID,datas,"add","freight");
 };
 
+ProjectGLJ.prototype.updateFreightCalc = async function (datas,pgljID){
+    let updateMap = {};
+    for(let d of datas){
+        updateMap[d.ID] = d.doc;
+    }
+    await this.updateMaterialCalcTasks(pgljID,updateMap,"update","freight");
+};
+
+
 ProjectGLJ.prototype.addMaterialRation = async function (code,type,parentID,connect_key){
         let libIDs = rationLibObj.getStdRationLibIDs();
         let defaultLibID = rationLibObj.getDefaultStdRationLibID();
@@ -1020,7 +1021,7 @@ ProjectGLJ.prototype.calcMaterialRation = function(ID,type){//计算带定额的
 ProjectGLJ.prototype.deletePriceCalc = async function (ID,pgljID) {
     let map = {};
     map[ID] = true;
-    await this.updateMaterialCalcTasks(pgljID,ID,"delete","price");
+    await this.updateMaterialCalcTasks(pgljID,map,"delete","price");
 };
 
 ProjectGLJ.prototype.deleteFreightCalc = async function (ID,pgljID) {

+ 2 - 3
web/building_saas/main/js/views/electrovalence_view.js

@@ -101,7 +101,7 @@ let electrovalenceObj = {
                 let w = parseInt(d.name);
                 if(!w) continue;
                 let t = scMathUtil.roundForObj(d.marketPrice/w,getDecimal("process"));
-                d.electPrice = scMathUtil.roundForObj(t * gljUtil.k,getDecimal("glj.unitPriceHasMix"));
+                d.electPrice = scMathUtil.roundForObj(t * gljUtil.getElecCoe(),getDecimal("glj.unitPriceHasMix"));
             }
             let et = scMathUtil.roundForObj(d.electPrice * d.coe,getDecimal("process"));
             total = scMathUtil.roundForObj(et + total,getDecimal("process"));
@@ -163,7 +163,6 @@ let electrovalenceObj = {
                 tem.ID = uuid.v1();
                 $.bootstrapLoading.start();
                 let result =  await ajaxPost('/glj/insertElectrovalence',tem);
-                console.log(result);
                 //插入项目工料机列表
                 projectObj.project.projectGLJ.loadNewProjectGLJToCache(result.projetcGLJData);
                 //加入综合电价显示列表缓存
@@ -227,7 +226,7 @@ let electrovalenceObj = {
                     unitPrices.push(t_unitPrice);
                 }
             }
-            if(g.code == "3005002" && g.name == "电" && g.unit == "kW·h"){//更新电价
+            if(g.code == gljUtil.getElecCode() && g.name == "电" && g.unit == "kW·h"){//更新电价
                 if(g.unit_price.market_price != this.total+''){
                     let  d_unitPrice = {projectGLJID:g.id,id:g.unit_price.id,'unit_price_file_id':g.unit_price.unit_price_file_id,doc:{'market_price':this.total+''}};
                     unitPrices.push(d_unitPrice);

+ 134 - 79
web/building_saas/main/js/views/material_calc_view.js

@@ -128,6 +128,7 @@ materialCalcObj = {
         this.freightSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onFreightValueChange);
         this.freightSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onFreightSelectionChange);
         this.freightSheet.bind(GC.Spread.Sheets.Events.EditStarting,this.onFreightEditStarting);
+        this.freightSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onFreightPriceRangeChange);
         this.freightSheet.name('freight_calc');
         if(projectReadOnly){
             disableSpread(this.freightSpread);
@@ -172,6 +173,7 @@ materialCalcObj = {
         sheetCommonObj.spreadDefaultStyle(this.priceSpread);
         this.priceSheet = this.priceSpread.getSheet(0);
         sheetCommonObj.initSheet(this.priceSheet, this.priceSetting, 30);
+        this.priceSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onFreightPriceRangeChange);
         this.priceSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onPriceValueChange);
         this.priceSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onPriceSelectionChange);
         this.priceSheet.bind(GC.Spread.Sheets.Events.EditStarting,this.onPriceEditStarting);
@@ -471,69 +473,100 @@ materialCalcObj = {
         }
         return t;
     },
+    onFreightPriceRangeChange:function (sender,args) {
+        let me = materialCalcObj;
+        let dataMap={};
+        let sheetName = args.sheet.name();
+        for(let c of args.changedCells){
+            let info = {row:c.row,col:c.col,cancel:false};
+            sheetName == 'price_calc'?me.onPriceEditStarting(sender,info): me.onFreightEditStarting(sender,info);
+            if(info.cancel) return me.showDatas();
+            let value=  args.sheet.getCell(c.row, c.col).text();
+            if(dataMap[c.row]){
+                dataMap[c.row][c.col]=value;
+            }else{
+                dataMap[c.row] ={};
+                dataMap[c.row][c.col] = value;
+            }
+        }
+        sheetName == 'price_calc'?me.addOrUpdatePriceCalc(dataMap):me.addOrUpdateFreightCalc(dataMap);
+    },
     onFreightValueChange:function (sender,args) {
         let me = materialCalcObj;
-        let dataCode = me.freightSetting.header[args.col].dataCode;
-        let value = args.newValue;
+        let dataMap = {};
+        dataMap[args.row]={};
+        dataMap[args.row][args.col] = args.newValue;
+        me.addOrUpdateFreightCalc(dataMap);
+    },
+    addOrUpdateFreightCalc:function (dataMap) {//{2:{col:value}}
+        let me = materialCalcObj;
         let material = me.getMaterialSelected();
-        if (value&&!sheetCommonObj.checkData(args.col,me.freightSetting,value)) {
-            alert('输入的数据类型不对,请重新输入!');
-            me.showDatas();
-            return;
-        }
-        if(dataCode != 'start'&&dataCode != 'conveyance'&&dataCode != 'calcType'&&dataCode != 'materialType'){
-            value = value?scMathUtil.roundForObj(value,getDecimal("glj.unitPrice"))+'':'0'//4舍五入加默认为0
-        }
-        if(args.row >= me.freightDatas.length){//新增
+        let addDatas=[],updateDatas=[];
+        for(let row in dataMap) {
+            let t = dataMap[row];
             let newData = {};
-            let tempFreight = null;
-            if(dataCode == "start"){
-                tempFreight = me.getSavedFreight(value,material);
-            }
-            if(tempFreight){
-                newData = tempFreight;
-            }else {
-                newData = me.getNewFreightData(material);
-                newData[dataCode] = value;
-            }
-            projectObj.project.projectGLJ.addFreightCalc([newData],material.id);
-        }else {//修改
-            let recode = me.freightDatas[args.row];
-            if(recode[dataCode] == value) return;
             let doc = {};
-            doc[dataCode] = value;
-            if(dataCode == "conveyance"){//如果运输方式从自办运输切换成其它的东西时,要把底下挂的定额和定额工料机都清空
-                if(args.oldValue == "自办运输"){
-                    doc["rations"] = [];
-                    doc["ration_gljs"] = [];
+            let recode = me.freightDatas[row];
+            for (let col in t) {
+                let value = t[col];
+                let dataCode = me.freightSetting.header[col].dataCode;
+                if (value && !sheetCommonObj.checkData(col, me.freightSetting, value)) {
+                    alert('输入的数据类型不对,请重新输入!');
+                    return me.showDatas();
                 }
-                if(value == "自办运输"){//当运输工具下拉选择“自办运输”时,“Km运距”、“装卸费单价”、“装卸次数”、“运价增加率(%)”列数据归0,且灰选不可编辑
-                    doc["kmDistance"] = '0';
-                    doc["unitLoadingFee"] ='0';
-                    doc["loadingTimes"] = '0';
-                    doc["freightIncreaseRate"] = '0';
+                if (dataCode != 'start' && dataCode != 'conveyance' && dataCode != 'calcType' && dataCode != 'materialType') {
+                    value = value ? scMathUtil.roundForObj(value, getDecimal("glj.unitPrice")) + '' : '0'//4舍五入加默认为0
                 }
-                if(args.oldValue =="汽车") doc["materialType"] = "";//当运输方式从汽车切换成其它方式时,清空材料类型
+                if (parseInt(row) >= me.freightDatas.length) {//新增
+                    let tempFreight = null;
+                    if (dataCode == "start") {
+                        tempFreight = me.getSavedFreight(value, material);
+                    }
+                    if (tempFreight) {
+                        newData = tempFreight;
+                    } else {
+                        if(_.isEmpty(newData)) newData = me.getNewFreightData(material);
+                        newData[dataCode] = value;
+                    }
+                } else {//修改
+                    if (recode[dataCode] == value) continue;
+                    doc[dataCode] = value;
+                    if (dataCode == "conveyance") {//如果运输方式从自办运输切换成其它的东西时,要把底下挂的定额和定额工料机都清空
+                        if (recode[dataCode] == "自办运输") {//没改之前的值
+                            doc["rations"] = [];
+                            doc["ration_gljs"] = [];
+                        }
+                        if (value == "自办运输") {//当运输工具下拉选择“自办运输”时,“Km运距”、“装卸费单价”、“装卸次数”、“运价增加率(%)”列数据归0,且灰选不可编辑
+                            doc["kmDistance"] = '0';
+                            doc["unitLoadingFee"] = '0';
+                            doc["loadingTimes"] = '0';
+                            doc["freightIncreaseRate"] = '0';
+                        }
+                        if (recode[dataCode] == "汽车") doc["materialType"] = "";//当运输方式从汽车切换成其它方式时,清空材料类型
 
-            }
-          /*  if(dataCode == "calcType"){
-                if(value == "全国") doc["materialType"] = "";
-                if(value == "内蒙古"){
-                    doc["materialType"] = "地方材料";
-                    doc["unitFreight"] = me.calcNeiMengUnitFreight(recode.kmDistance,"地方材料");
-                }
-            }*/
+                    }
 
-            if(dataCode == "materialType" && value!="") doc["unitFreight"] = me.calcNeiMengUnitFreight(recode.kmDistance,value);
-            if(dataCode == "kmDistance" && gljUtil.isDef(recode.materialType)&&recode.materialType!="") doc["unitFreight"] = me.calcNeiMengUnitFreight(value,recode.materialType);
+                    if (dataCode == "materialType" && value != "") doc["unitFreight"] = me.calcNeiMengUnitFreight(recode.kmDistance, value);
+                    if (dataCode == "kmDistance" && gljUtil.isDef(recode.materialType) && recode.materialType != "") doc["unitFreight"] = me.calcNeiMengUnitFreight(value, recode.materialType);
 
-            if(dataCode == "start"){
-               let t_f = me.getSavedFreight(value,material);
-               if(t_f) doc = t_f;
+                    if (dataCode == "start") {
+                        let t_f = me.getSavedFreight(value, material);
+                        if (t_f) doc = t_f;
+                    }
 
+                }
             }
-            projectObj.project.projectGLJ.updateFreightCalc([{ID:recode.ID,doc:doc}],material.id);
+            if (!_.isEmpty(newData)) addDatas.push(newData);
+            if (!_.isEmpty(doc)) updateDatas.push({ID:recode.ID,doc:doc});
         }
+        if(addDatas.length > 0 && updateDatas.length > 0) {
+            alert("不能同时增加和更新操作");
+            return me.showDatas();
+        }
+        if(addDatas.length > 0)  projectObj.project.projectGLJ.addFreightCalc(addDatas,material.id);
+        if(updateDatas.length > 0)  projectObj.project.projectGLJ.updateFreightCalc(updateDatas,material.id);
+
+
     },
     calcNeiMengUnitFreight:function (tkmDistance,tmaterialType) {
         if(!tkmDistance||tkmDistance == '0') return "0";
@@ -633,39 +666,61 @@ materialCalcObj = {
         }
 
     },
-    onPriceValueChange:function(sender,args){
+    addOrUpdatePriceCalc:function (dataMap) {
         let me = materialCalcObj;
-        let dataCode = me.priceSetting.header[args.col].dataCode;
-        let value = args.newValue;
         let material = me.getMaterialSelected();
-        //输入有效性判断, to do
-        if (value&&!sheetCommonObj.checkData(args.col,me.priceSetting,value)) {
-            alert('输入的数据类型不对,请重新输入!');
-            me.showDatas();
-            return;
-        }
-        if(dataCode == 'coe'||dataCode == 'supplyPrice'){
-            let decimal = dataCode == 'supplyPrice'?getDecimal("glj.unitPriceHasMix"):getDecimal("glj.unitPrice");
-            value = value?scMathUtil.roundForObj(value,decimal)+'':'0'//4舍五入加默认为0
-        }
-        if(args.row >= me.priceDatas.length){//新增
-            let newData = {
-                ID:uuid.v1(),
-                supplyLocation:"",
-                supplyPrice:'0',
-                coe:'1',
-                connect_key:gljUtil.getIndex(material),
-                unit_price_file_id:material.unit_price.unit_price_file_id
-            };
-            newData[dataCode] = value;
-            projectObj.project.projectGLJ.addPriceCalc([newData],material.id);
-        }else {//修改
-            let recode = me.priceDatas[args.row];
-            if(recode[dataCode] == value) return;
+        let addDatas=[],updateDatas=[];
+        for(let row in dataMap) {
+            let t = dataMap[row];
             let doc = {};
-            doc[dataCode] = value;
-            projectObj.project.projectGLJ.updatePriceCalc([{ID:recode.ID,doc:doc}],material.id);
+            let recode = me.priceDatas[row];
+            let newData = {};
+            for (let col in t) {
+                let value = t[col];
+                let dataCode =  me.priceSetting.header[col].dataCode;;
+                if (value && !sheetCommonObj.checkData(col, me.priceSetting, value)) {
+                    alert('输入的数据类型不对,请重新输入!');
+                    return me.showDatas();
+                }
+                if(dataCode == 'coe'||dataCode == 'supplyPrice'){
+                    let decimal = dataCode == 'supplyPrice'?getDecimal("glj.unitPriceHasMix"):getDecimal("glj.unitPrice");
+                    value = value?scMathUtil.roundForObj(value,decimal)+'':'0'//4舍五入加默认为0
+                }
+                if(parseInt(row) >= me.priceDatas.length){//新增
+                    if(_.isEmpty(newData)) newData = me.getNewPriceData(material);
+                    newData[dataCode] = value;
+                }else {//修改
+                    if(recode[dataCode] == value) continue;
+                    doc[dataCode] = value;
+                }
+            }
+            if (!_.isEmpty(newData)) addDatas.push(newData);
+            if (!_.isEmpty(doc)) updateDatas.push({ID:recode.ID,doc:doc});
         }
+        if(addDatas.length > 0 && updateDatas.length > 0) {
+            alert("不能同时增加和更新操作");
+            return me.showDatas();
+        }
+        if(addDatas.length > 0)  projectObj.project.projectGLJ.addPriceCalc(addDatas,material.id);
+        if(updateDatas.length > 0)  projectObj.project.projectGLJ.updatePriceCalc(updateDatas,material.id);
+    },
+    getNewPriceData:function (material) {
+        let newData = {
+            ID:uuid.v1(),
+            supplyLocation:"",
+            supplyPrice:'0',
+            coe:'1',
+            connect_key:gljUtil.getIndex(material),
+            unit_price_file_id:material.unit_price.unit_price_file_id
+        };
+        return newData;
+    },
+    onPriceValueChange:function(sender,args){
+        let me = materialCalcObj;
+        let dataMap = {};
+        dataMap[args.row]={};
+        dataMap[args.row][args.col] = args.newValue;
+        me.addOrUpdatePriceCalc(dataMap);
     },
     deleteMaterialCal:function (row) {
         let record = this.materialDatas[row];//修改材料计算标记的同时还要删除原价计算,运费计算等

+ 2 - 0
web/common/html/dataStatistics.html

@@ -0,0 +1,2 @@
+
+<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1278513339'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "v1.cnzz.com/stat.php%3Fid%3D1278513339%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));</script>

+ 4 - 0
web/common/html/header.html

@@ -266,6 +266,10 @@
         </div>
     </div>
 </div>
+<div style="display: none">
+    <%include dataStatistics.html %>
+</div>
+
 <!-- inject:js -->
 <script src="/lib/jquery/jquery-3.2.1.min.js"></script>
 <script type="text/javascript" src="/lib/jquery-ui/jquery-ui.min.js"></script>

+ 25 - 1
web/over_write/js/zhejiang_2005.js

@@ -188,7 +188,31 @@ if (typeof gljOprObj !== 'undefined') {
 }
 
 if(typeof gljUtil !== 'undefined'){
-    gljUtil.getCodeSortMath = getCodeSortMath
+    gljUtil.getCodeSortMath = getCodeSortMath;
+    gljUtil.getElecCoe = function () {
+        return 0.24;
+    }
+    gljUtil.getElecCode = function () {
+        return "267";
+    }
+}
+
+
+if(typeof electrovalenceObj !== 'undefined'){
+    electrovalenceObj.options = [
+        {code:"270",name:"电网电",specs:"",unit:"kW·h",type:"201"},
+        {code:"905",name:"5kW以内柴油发电机组",specs:"",unit:"台班",type:"301"},
+        {code:"906",name:"15kW以内柴油发电机组",specs:"",unit:"台班",type:"301"},
+        {code:"907",name:"30kW以内柴油发电机组",specs:"",unit:"台班",type:"301"},
+        {code:"908",name:"50kW以内柴油发电机组",specs:"",unit:"台班",type:"301"},
+        {code:"909",name:"75kW以内柴油发电机组",specs:"",unit:"台班",type:"301"},
+        {code:"910",name:"100kW以内柴油发电机组",specs:"",unit:"台班",type:"301"},
+        {code:"911",name:"120kW以内柴油发电机组",specs:"",unit:"台班",type:"301"},
+        {code:"912",name:"160kW以内柴油发电机组",specs:"",unit:"台班",type:"301"},
+        {code:"913",name:"200kW以内柴油发电机组",specs:"",unit:"台班",type:"301"},
+        {code:"914",name:"250kW以内柴油发电机组",specs:"",unit:"台班",type:"301"},
+        {code:"915",name:"320kW以内柴油发电机组",specs:"",unit:"台班",type:"301"}
+    ]
 }
 
 if(typeof materialCalcObj !== 'undefined'){

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 1
web/users/html/login.html