|
@@ -517,6 +517,7 @@ let repositoryGljObj = {
|
|
|
else {
|
|
|
rObj.ID = me.currentGlj.ID;
|
|
|
rObj.gljClass = me.currentGlj.gljClass;
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
@@ -524,6 +525,7 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
},
|
|
|
onCellEditEnd: function(sender, args) {
|
|
|
+ console.log(args);
|
|
|
let me = repositoryGljObj, that = gljComponentOprObj,
|
|
|
rObj = sheetsOprObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row, me),
|
|
|
updateArr = [], addArr = [], updateBasePrcArr = [];
|
|
@@ -533,16 +535,53 @@ let repositoryGljObj = {
|
|
|
if (me.currentEditingGlj["ID"] && me.currentGlj) {
|
|
|
rObj["ID"] = me.currentEditingGlj["ID"];
|
|
|
rObj.gljClass = me.currentEditingGlj.gljClass;
|
|
|
- if(me.currentEditingGlj[me.setting.header[args.col].dataCode] !== rObj[me.setting.header[args.col].dataCode]){
|
|
|
- if(rObj[me.setting.header[0].dataCode] && rObj[me.setting.header[1].dataCode] && rObj[me.setting.header[5].dataCode] &&
|
|
|
- rObj[me.setting.header[0].dataCode].toString().trim().length !== 0 && rObj[me.setting.header[1].dataCode].toString().trim().length !== 0 && rObj[me.setting.header[5].dataCode].toString().trim().length !== 0){
|
|
|
- if(rObj.gljType !== me.currentEditingGlj.gljType){//修改了工料机类型
|
|
|
+ if(me.currentEditingGlj[me.setting.header[args.col].dataCode] !== rObj[me.setting.header[args.col].dataCode]){
|
|
|
+ if(rObj[me.setting.header[0].dataCode] && rObj[me.setting.header[1].dataCode] && rObj[me.setting.header[5].dataCode] &&
|
|
|
+ rObj[me.setting.header[0].dataCode].toString().trim().length !== 0 && rObj[me.setting.header[1].dataCode].toString().trim().length !== 0 && rObj[me.setting.header[5].dataCode].toString().trim().length !== 0){
|
|
|
+ /* if(rObj.gljType !== me.currentEditingGlj.gljType){//修改了工料机类型
|
|
|
+ if(me.currentGlj){
|
|
|
+ me.currentGlj.component = [];
|
|
|
+ }
|
|
|
+ /!*if(me.allowComponent.indexOf(rObj.gljType) !== -1){//更改成可添加组成物的类型,则将定额价设成零
|
|
|
+ rObj.basePrice = 0;
|
|
|
+ }*!/
|
|
|
+ //调整系数,工料机类型为人工和机上人工时,可输入整数
|
|
|
+ if((me.currentEditingGlj.gljType === 1 || me.currentEditingGlj.gljType === 303) && !(rObj.gljType === 1 || rObj.gljType === 303)){
|
|
|
+ rObj.adjCoe = null;
|
|
|
+ }
|
|
|
+ //工料机类型不为机械台班时,清空机型
|
|
|
+ if(me.currentEditingGlj.gljType === 301 && rObj.gljType !== 301 && me.currentEditingGlj.model){
|
|
|
+ rObj.model = null;
|
|
|
+ }
|
|
|
+ if(componentType.includes(me.currentEditingGlj.gljType)&&
|
|
|
+ !(machineComponent.includes(me.currentEditingGlj.gljType) && machineComponent.includes(rObj.gljType)) &&
|
|
|
+ !(materialComponent.includes(me.currentEditingGlj.gljType) && materialComponent.includes(rObj.gljType))){//修改了原本是组成物的工料机
|
|
|
+ //寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
|
|
|
+ let updateGljs = me.getUpdateGljs(rObj, true);
|
|
|
+ if(updateGljs.updateArr.length > 0 || updateGljs.updateBasePrcArr.length > 0){
|
|
|
+ for(let i = 0; i < updateGljs.updateArr.length; i++){
|
|
|
+ updateArr.push(updateGljs.updateArr[i]);
|
|
|
+ }
|
|
|
+ for(let i = 0; i < updateGljs.updateBasePrcArr.length; i++){
|
|
|
+ updateArr.push(updateGljs.updateBasePrcArr[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sheetCommonObj.cleanData(that.workBook.getSheet(0), that.setting, 5);
|
|
|
+ }*/
|
|
|
+ if(rObj.gljType !== me.currentEditingGlj.gljType){//修改了工料机类型
|
|
|
+ if(!$('#typeAlert').is(':visible')){
|
|
|
+ $('#typeAlert').modal('show');
|
|
|
+ }
|
|
|
+ $('#typeConfirm').unbind('click');
|
|
|
+ $('#typeConfirm').bind('click', function () {
|
|
|
+ $('#typeAlert').modal('hide');
|
|
|
if(me.currentGlj){
|
|
|
me.currentGlj.component = [];
|
|
|
}
|
|
|
/*if(me.allowComponent.indexOf(rObj.gljType) !== -1){//更改成可添加组成物的类型,则将定额价设成零
|
|
|
- rObj.basePrice = 0;
|
|
|
- }*/
|
|
|
+ rObj.basePrice = 0;
|
|
|
+ }*/
|
|
|
//调整系数,工料机类型为人工和机上人工时,可输入整数
|
|
|
if((me.currentEditingGlj.gljType === 1 || me.currentEditingGlj.gljType === 303) && !(rObj.gljType === 1 || rObj.gljType === 303)){
|
|
|
rObj.adjCoe = null;
|
|
@@ -554,7 +593,7 @@ let repositoryGljObj = {
|
|
|
if(componentType.includes(me.currentEditingGlj.gljType)&&
|
|
|
!(machineComponent.includes(me.currentEditingGlj.gljType) && machineComponent.includes(rObj.gljType)) &&
|
|
|
!(materialComponent.includes(me.currentEditingGlj.gljType) && materialComponent.includes(rObj.gljType))){//修改了原本是组成物的工料机
|
|
|
- //寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
|
|
|
+ //寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
|
|
|
let updateGljs = me.getUpdateGljs(rObj, true);
|
|
|
if(updateGljs.updateArr.length > 0 || updateGljs.updateBasePrcArr.length > 0){
|
|
|
for(let i = 0; i < updateGljs.updateArr.length; i++){
|
|
@@ -566,54 +605,68 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
}
|
|
|
sheetCommonObj.cleanData(that.workBook.getSheet(0), that.setting, 5);
|
|
|
- }
|
|
|
- else if(rObj.adjCoe !== me.currentEditingGlj.adjCoe){//修改调整系数,整数控制
|
|
|
- if(isNaN(rObj.adjCoe) || rObj.adjCoe % 1 !== 0){
|
|
|
- args.sheet.setValue(args.row, args.col, me.currentEditingGlj.adjCoe ? me.currentEditingGlj.adjCoe : '');
|
|
|
- alert('调整系数只能输入整数!');
|
|
|
- return;
|
|
|
+ rObj.component = me.currentGlj.component;
|
|
|
+ updateArr.push(rObj);
|
|
|
+ me.mixUpdateRequest(updateArr, [], []);
|
|
|
+ let gljTypeObj = {gljId: me.currentEditingGlj.ID, gljType: rObj.gljType, basePrice: rObj.basePrice};
|
|
|
+ updateBasePrcArr.push(gljTypeObj);
|
|
|
+ if(me.rationLibs.length > 0){
|
|
|
+ me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
}
|
|
|
+ });
|
|
|
+ $('.typeClose').unbind('click');
|
|
|
+ $('.typeClose').bind('click', function () {
|
|
|
+ args.sheet.setValue(args.row, args.col, _.find(me.distTypeTree.comboDatas, {value: me.currentGlj.gljType}).text);
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else if(rObj.adjCoe !== me.currentEditingGlj.adjCoe){//修改调整系数,整数控制
|
|
|
+ if(isNaN(rObj.adjCoe) || rObj.adjCoe % 1 !== 0){
|
|
|
+ args.sheet.setValue(args.row, args.col, me.currentEditingGlj.adjCoe ? me.currentEditingGlj.adjCoe : '');
|
|
|
+ alert('调整系数只能输入整数!');
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
+ else if(rObj.materialCoe !== me.currentEditingGlj.materialCoe){
|
|
|
+ if(isNaN(rObj.materialCoe)){
|
|
|
+ args.sheet.setValue(args.row, args.col, me.currentEditingGlj.materialCoe ? me.currentEditingGlj.materialCoe : '');
|
|
|
+ alert('三材系数只能输入数值!');
|
|
|
+ return;
|
|
|
}
|
|
|
- else if(rObj.materialCoe !== me.currentEditingGlj.materialCoe){
|
|
|
- if(isNaN(rObj.materialCoe)){
|
|
|
- args.sheet.setValue(args.row, args.col, me.currentEditingGlj.materialCoe ? me.currentEditingGlj.materialCoe : '');
|
|
|
- alert('三材系数只能输入数值!');
|
|
|
- return;
|
|
|
- }
|
|
|
- rObj.materialCoe = scMathUtil.roundTo(parseFloat(rObj.materialCoe), -5);
|
|
|
+ rObj.materialCoe = scMathUtil.roundTo(parseFloat(rObj.materialCoe), -5);
|
|
|
+ }
|
|
|
+ else if(rObj.basePrice !== me.currentEditingGlj.basePrice){//修改了单价,可修改单价的必为可成为组成物的
|
|
|
+ //寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
|
|
|
+ if(isNaN(parseFloat(rObj.basePrice))){
|
|
|
+ alert('单价只能输入数值!');
|
|
|
+ args.sheet.setValue(args.row, args.col, me.currentEditingGlj.basePrice ? me.currentEditingGlj.basePrice : 0);
|
|
|
+ return;
|
|
|
}
|
|
|
- else if(rObj.basePrice !== me.currentEditingGlj.basePrice){//修改了单价,可修改单价的必为可成为组成物的
|
|
|
- //寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
|
|
|
- if(isNaN(parseFloat(rObj.basePrice))){
|
|
|
- alert('单价只能输入数值!');
|
|
|
- args.sheet.setValue(args.row, args.col, me.currentEditingGlj.basePrice ? me.currentEditingGlj.basePrice : 0);
|
|
|
- return;
|
|
|
+ rObj.basePrice = !isNaN(parseFloat(rObj.basePrice))? scMathUtil.roundTo(parseFloat(rObj.basePrice), -2) : me.currentEditingGlj.basePrice;
|
|
|
+ let updateGljs = me.getUpdateGljs(rObj);
|
|
|
+ if(updateGljs.updateArr.length > 0 || updateGljs.updateBasePrcArr.length > 0){
|
|
|
+ for(let i = 0; i < updateGljs.updateArr.length; i++){
|
|
|
+ updateArr.push(updateGljs.updateArr[i]);
|
|
|
}
|
|
|
- rObj.basePrice = !isNaN(parseFloat(rObj.basePrice))? scMathUtil.roundTo(parseFloat(rObj.basePrice), -2) : me.currentEditingGlj.basePrice;
|
|
|
- let updateGljs = me.getUpdateGljs(rObj);
|
|
|
- if(updateGljs.updateArr.length > 0 || updateGljs.updateBasePrcArr.length > 0){
|
|
|
- for(let i = 0; i < updateGljs.updateArr.length; i++){
|
|
|
- updateArr.push(updateGljs.updateArr[i]);
|
|
|
- }
|
|
|
- for(let i = 0; i < updateGljs.updateBasePrcArr.length; i++){
|
|
|
- updateArr.push(updateGljs.updateBasePrcArr[i]);
|
|
|
- }
|
|
|
+ for(let i = 0; i < updateGljs.updateBasePrcArr.length; i++){
|
|
|
+ updateArr.push(updateGljs.updateBasePrcArr[i]);
|
|
|
}
|
|
|
}
|
|
|
- rObj.component = me.currentGlj.component;
|
|
|
- updateArr.push(rObj);
|
|
|
+ }
|
|
|
+ rObj.component = me.currentGlj.component;
|
|
|
+ updateArr.push(rObj);
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if(me.setting.header[args.col].dataCode === 'gljType'){
|
|
|
+ let distTypeVal = me.distTypeTree.distTypes[me.distTypeTree.prefix + me.currentEditingGlj[me.setting.header[args.col].dataCode]].data.fullName;
|
|
|
+ args.sheet.setValue(args.row, args.col, distTypeVal);
|
|
|
}
|
|
|
else{
|
|
|
- if(me.setting.header[args.col].dataCode === 'gljType'){
|
|
|
- let distTypeVal = me.distTypeTree.distTypes[me.distTypeTree.prefix + me.currentEditingGlj[me.setting.header[args.col].dataCode]].data.fullName;
|
|
|
- args.sheet.setValue(args.row, args.col, distTypeVal);
|
|
|
- }
|
|
|
- else{
|
|
|
- args.sheet.setValue(args.row, args.col, me.currentEditingGlj[me.setting.header[args.col].dataCode]);
|
|
|
- }
|
|
|
+ args.sheet.setValue(args.row, args.col, me.currentEditingGlj[me.setting.header[args.col].dataCode]);
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
if(me.currentEditingGlj.basePrice !== rObj.basePrice){
|
|
|
//update basePrice of ration when editting basePrice of glj
|
|
|
let gljType = -1;
|
|
@@ -633,14 +686,14 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
}
|
|
|
//update basePrice of ration when editting gljType of glj
|
|
|
- if(me.currentEditingGlj.gljType !== rObj.gljType){
|
|
|
+ /* if(me.currentEditingGlj.gljType !== rObj.gljType){
|
|
|
|
|
|
let gljTypeObj = {gljId: me.currentEditingGlj.ID, gljType: rObj.gljType, basePrice: rObj.basePrice};
|
|
|
updateBasePrcArr.push(gljTypeObj);
|
|
|
if(me.rationLibs.length > 0){
|
|
|
me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
//新增
|
|
|
else {
|
|
@@ -655,8 +708,8 @@ let repositoryGljObj = {
|
|
|
rObj.component = [];
|
|
|
//如果类型为混凝土、砂浆、配合比、机械台班时,添加时填写的单价清空
|
|
|
/*if(me.allowComponent.indexOf(rObj.gljType) !== -1){
|
|
|
- rObj.basePrice = 0;
|
|
|
- }*/
|
|
|
+ rObj.basePrice = 0;
|
|
|
+ }*/
|
|
|
rObj.basePrice = !isNaN(parseFloat(rObj.basePrice)) && (rObj.basePrice && typeof rObj.basePrice !== 'undefined') ? scMathUtil.roundTo(parseFloat(rObj.basePrice), -2) : 0;
|
|
|
addArr.push(rObj);
|
|
|
}
|
|
@@ -676,8 +729,7 @@ let repositoryGljObj = {
|
|
|
me.workBook.commandManager().register('repositoryGljDel', function () {
|
|
|
let sheet = me.workBook.getSheet(0),
|
|
|
updateArr = [], removeArr = [],
|
|
|
- tempRemoveArr= [],
|
|
|
- refGljCodes = [], //已被引用的工料机
|
|
|
+ removeNames = [],
|
|
|
updateBasePrcArr = [],//删除基价单位后重新计算
|
|
|
sels = sheet.getSelections(),
|
|
|
canUpdate = false,
|
|
@@ -698,6 +750,7 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
}
|
|
|
removeArr.push(cacheSection[sels[i].row + j].ID);
|
|
|
+ removeNames.push(cacheSection[sels[i].row + j].name);
|
|
|
//tempRemoveArr.push({ID: cacheSection[sels[i].row + j].ID, code: cacheSection[sels[i].row + j].code});
|
|
|
//删除后重新计算引用了此工料机的定额单价
|
|
|
updateBasePrcArr.push({gljId: cacheSection[sels[i].row + j].ID, gljType: cacheSection[sels[i].row + j].gljType, basePrice: 0, delete: 1});
|
|
@@ -743,7 +796,7 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if(removeArr.length > 0 || updateArr.length > 0){
|
|
|
+ /* if(removeArr.length > 0 || updateArr.length > 0){
|
|
|
//删除警告
|
|
|
let upAlertText = removeArr.length > 0 ? '可能已有定额引用了当前人材机,导致定额查找不到此人材机。确定要删除吗?' : '确认删除选中字段?';
|
|
|
$('#alertGljTxt').text(upAlertText);
|
|
@@ -756,6 +809,58 @@ let repositoryGljObj = {
|
|
|
}
|
|
|
$('#aleConfBtn').unbind('click');
|
|
|
});
|
|
|
+ }*/
|
|
|
+ if(updateArr.length > 0){
|
|
|
+ //删除警告
|
|
|
+ let upAlertText = '确认删除选中字段?';
|
|
|
+ $('#alertGljTxt').text(upAlertText);
|
|
|
+ $('#gljAlert').modal('show');
|
|
|
+ //确认
|
|
|
+ $('#aleConfBtn').bind('click', function () {
|
|
|
+ me.mixUpdateRequest(updateArr, [], []);
|
|
|
+ if(updateBasePrcArr.length > 0 && me.rationLibs.length > 0){
|
|
|
+ me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
+ }
|
|
|
+ $('#aleConfBtn').unbind('click');
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(removeArr.length > 0){
|
|
|
+ $.bootstrapLoading.start();
|
|
|
+ CommonAjax.post('/stdGljRepository/api/isUsed', {gljIds: removeArr}, function (rstData) {
|
|
|
+ $.bootstrapLoading.end();
|
|
|
+ //存在被引用的人材机(标准/补充定额库)
|
|
|
+ if(rstData.isUsed){
|
|
|
+ $('#gljAlert').find('.modal-body h5').text('已有定额引用了当前人材机,不可删除。');
|
|
|
+ $('#gljAlert').modal('show');
|
|
|
+ $('#aleConfBtn').unbind('click');
|
|
|
+ $('#aleConfBtn').bind('click', function () {
|
|
|
+ $('#gljAlert').modal('hide');
|
|
|
+ me.workBook.focus(true)
|
|
|
+ });
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ $('#gljAlert').find('.modal-body h5').text(`确定要删除人材机 “${removeNames.join(',')}” 吗? `);
|
|
|
+ $('#gljAlert').modal('show');
|
|
|
+ //确认
|
|
|
+ $('#aleConfBtn').unbind('click');
|
|
|
+ $('#aleConfBtn').bind('click', function () {
|
|
|
+ me.mixUpdateRequest([], [], removeArr);
|
|
|
+ if(updateBasePrcArr.length > 0 && me.rationLibs.length > 0){
|
|
|
+ me.updateRationBasePrcRq(updateBasePrcArr);
|
|
|
+ me.workBook.focus(true);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }, function () {
|
|
|
+ $.bootstrapLoading.end();
|
|
|
+ $('#gljAlert').find('.modal-body h5').text('查询引用错误,不可删除。');
|
|
|
+ $('#gljAlert').modal('show');
|
|
|
+ $('#aleConfBtn').bind('click', function () {
|
|
|
+ $('#gljAlert').modal('hide');
|
|
|
+ $('#aleConfBtn').unbind('click');
|
|
|
+ me.workBook.focus(true);
|
|
|
+ });
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
});
|