|
|
@@ -283,57 +283,78 @@ ProjectGLJ.prototype.getPriceDecimal = function (glj) {//价格的小数位数
|
|
|
}
|
|
|
|
|
|
};
|
|
|
-ProjectGLJ.prototype.updateCalcMaterial =async function (projectGLJ,updateField,value,ext) {//只有添加、删除走这个方法
|
|
|
- let glj = _.find(this.datas.gljList,{'id':projectGLJ.id});
|
|
|
- if (glj) {
|
|
|
- if(glj.unit_price[updateField] == value){
|
|
|
- return;
|
|
|
- }
|
|
|
- if(updateField == 'calcMaterial'){
|
|
|
- ext=ext?ext:{};
|
|
|
- if(value == 1){//添加材料计算操作,把单位毛重/采购保管费率等数据复制一份
|
|
|
- ext['grossWeightCoe_n'] = glj.unit_price.grossWeightCoe;
|
|
|
- ext['purchaseStorageRate_n'] = glj.unit_price.purchaseStorageRate;
|
|
|
- ext['offSiteTransportLossRate_n'] = glj.unit_price.offSiteTransportLossRate;
|
|
|
- ext['handlingLossRate_n'] = glj.unit_price.handlingLossRate;
|
|
|
- ext['totalLoadingTimes'] = '1';
|
|
|
- }else if(value == 0){//删除操作,恢复单位毛重/采购保管费率等数据
|
|
|
- ext['supplyLocation'] = '';
|
|
|
- ext['originalPrice'] = '0';
|
|
|
- ext['unitFreight']='0';
|
|
|
- ext['totalLoadingTimes']='0';
|
|
|
- ext['offSiteTransportLoss']='0';
|
|
|
- ext['purchaseStorage']='0';
|
|
|
- ext['packageRecoverValue']='0';
|
|
|
- }
|
|
|
- }
|
|
|
- let data = {id: glj.unit_price.id,updateField:updateField ,value: value,unit_price_file_id:glj.unit_price.unit_price_file_id,ext:ext};
|
|
|
- $.bootstrapLoading.start();
|
|
|
- try {
|
|
|
- let result = await ajaxPost('/glj/updateCalcMaterial',data);
|
|
|
- glj.unit_price[updateField] = value;
|
|
|
- if(ext){
|
|
|
- for(let key in ext){
|
|
|
- glj.unit_price[key] = ext[key];
|
|
|
- }
|
|
|
- }
|
|
|
- if(updateField == 'calcMaterial' && value ==0){///标记为0即删除材料计算标记,要删除其下挂的原价计算,运费计算,定额计算,消耗量重新计算
|
|
|
- let connect_key = gljUtil.getIndex(glj);
|
|
|
- _.remove(this.datas.originalList,{'connect_key':connect_key});
|
|
|
- _.remove(this.datas.freightList,{'connect_key':connect_key});
|
|
|
- this.calcQuantity();
|
|
|
- // to do 删除定额计算
|
|
|
|
|
|
- }
|
|
|
- projectGljObject.refreshDataSheet();
|
|
|
- materialCalcObj.showDatas();
|
|
|
- }catch (e){
|
|
|
- console.log(e)
|
|
|
- }finally {
|
|
|
- $.bootstrapLoading.end();
|
|
|
- }
|
|
|
+ProjectGLJ.prototype.getCalcMaterialUpdateData = function(projectGLJ,updateField,value,ext){//只有添加、删除走这个方法
|
|
|
+ let glj = _.find(this.datas.gljList,{'id':projectGLJ.id});
|
|
|
+ if(!glj) return null;
|
|
|
+
|
|
|
+ if(glj.unit_price[updateField] == value){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ if(updateField == 'calcMaterial'){
|
|
|
+ ext=ext?ext:{};
|
|
|
+ if(value == 1){//添加材料计算操作,把单位毛重/采购保管费率等数据复制一份
|
|
|
+ ext['grossWeightCoe_n'] = glj.unit_price.grossWeightCoe;
|
|
|
+ ext['purchaseStorageRate_n'] = glj.unit_price.purchaseStorageRate;
|
|
|
+ ext['offSiteTransportLossRate_n'] = glj.unit_price.offSiteTransportLossRate;
|
|
|
+ ext['handlingLossRate_n'] = glj.unit_price.handlingLossRate;
|
|
|
+ ext['totalLoadingTimes'] = '1';
|
|
|
+ }else if(value == 0){//删除操作,恢复单位毛重/采购保管费率等数据
|
|
|
+ ext['supplyLocation'] = '';
|
|
|
+ ext['originalPrice'] = '0';
|
|
|
+ ext['unitFreight']='0';
|
|
|
+ ext['totalLoadingTimes']='0';
|
|
|
+ ext['offSiteTransportLoss']='0';
|
|
|
+ ext['purchaseStorage']='0';
|
|
|
+ ext['packageRecoverValue']='0';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let data = {id: glj.unit_price.id,updateField:updateField ,value: value,unit_price_file_id:glj.unit_price.unit_price_file_id,ext:ext};
|
|
|
+ return {data:data,glj:glj}
|
|
|
+}
|
|
|
|
|
|
+ProjectGLJ.prototype.updateCalcMaterials = async function(projectGLJs,value) {//只有添加、删除走这个方法
|
|
|
+ let updateField = 'calcMaterial';
|
|
|
+ let datas = [];
|
|
|
+ let dataMaps = [];
|
|
|
+ for(let p of projectGLJs){
|
|
|
+ let map = this.getCalcMaterialUpdateData(p,updateField,value);
|
|
|
+ if(map){
|
|
|
+ datas.push(map.data);
|
|
|
+ dataMaps.push(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(datas.length == 0) return;
|
|
|
+ $.bootstrapLoading.start();
|
|
|
+ try {
|
|
|
+ let result = await ajaxPost('/glj/updateCalcMaterial',datas);
|
|
|
+ let calcQ = false;
|
|
|
+ for(let dm of dataMaps){
|
|
|
+ let glj = dm.glj;
|
|
|
+ glj.unit_price[updateField] = value;
|
|
|
+ if(dm.data.ext) gljUtil.setProperty(glj.unit_price,);
|
|
|
+ if(updateField == 'calcMaterial' && value ==0){///标记为0即删除材料计算标记,要删除其下挂的原价计算,运费计算,定额计算,消耗量重新计算
|
|
|
+ calcQ = true;
|
|
|
+ let connect_key = gljUtil.getIndex(glj);
|
|
|
+ _.remove(this.datas.originalList,{'connect_key':connect_key});
|
|
|
+ _.remove(this.datas.freightList,{'connect_key':connect_key});
|
|
|
+ }
|
|
|
}
|
|
|
+ if(calcQ) this.calcQuantity();
|
|
|
+ projectGljObject.refreshDataSheet();
|
|
|
+ materialCalcObj.showDatas();
|
|
|
+
|
|
|
+ } catch (e){
|
|
|
+ console.log(e)
|
|
|
+ }finally {
|
|
|
+ $.bootstrapLoading.end();
|
|
|
+ }
|
|
|
+
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+ProjectGLJ.prototype.updateCalcMaterial =async function (projectGLJ,value) {//只有添加、删除走这个方法
|
|
|
+ this.updateCalcMaterials([projectGLJ],value);
|
|
|
};
|
|
|
|
|
|
ProjectGLJ.prototype.calcAllMaterial = function (unitPriecs,needReCalc) {//当材料发生改变时重算所有计算材料的价格
|