|
@@ -21,10 +21,7 @@ $(function () {
|
|
|
level: 'level',
|
|
|
rootId: -1,
|
|
|
fullPath: 'full_path',
|
|
|
- calcFields: ['can_select'],
|
|
|
- //treeCacheKey: 'ledger_bills_fold' + '_' + getTenderId(),
|
|
|
- // markFoldKey: 'bills-fold',
|
|
|
- // markFoldSubKey: window.location.pathname.split('/')[2],
|
|
|
+ // calcFields: ['can_select'],
|
|
|
};
|
|
|
const ledgerTree = createNewPathTree('filter', treeSetting);
|
|
|
|
|
@@ -66,6 +63,23 @@ $(function () {
|
|
|
SpreadJsObj.selChangedRefreshBackColor(ledgerSpread.getActiveSheet());
|
|
|
|
|
|
postData(window.location.pathname + '/load', {}, function (data) {
|
|
|
+ const showList = ['is_select', 'can_select', 'ledger_id', 'ledger_pid', 'order', 'level', 'tender_id', 'full_path',
|
|
|
+ 'code', 'name', 'unit', 'dgn_qty1', 'dgn_qty2', 'dgn_price', 'quantity', 'total_price'];
|
|
|
+ const calcList = ['total_price'];
|
|
|
+ const fileds = [];
|
|
|
+ if (scheduleStage.length > 0) {
|
|
|
+ for (const ss of scheduleStage) {
|
|
|
+ // const pushTp = [ss.order + '_gather_tp', ss.order + '_contract_tp', ss.order + '_qc_tp'];
|
|
|
+ showList.push(ss.order + '_gather_tp');
|
|
|
+ showList.push(ss.order + '_contract_tp');
|
|
|
+ showList.push(ss.order + '_qc_tp');
|
|
|
+ calcList.push(ss.order + '_gather_tp');
|
|
|
+ calcList.push(ss.order + '_contract_tp');
|
|
|
+ calcList.push(ss.order + '_qc_tp');
|
|
|
+ fileds.push(ss.order + '_contract_tp');
|
|
|
+ fileds.push(ss.order + '_qc_tp');
|
|
|
+ }
|
|
|
+ }
|
|
|
const baseLedgerTree = createNewPathTree('base', {
|
|
|
id: 'ledger_id',
|
|
|
pid: 'ledger_pid',
|
|
@@ -73,22 +87,27 @@ $(function () {
|
|
|
level: 'level',
|
|
|
rootId: -1,
|
|
|
fullPath: 'full_path',
|
|
|
- calcFields: ['total_price'],
|
|
|
+ updateFields: fileds,
|
|
|
+ calcFields: calcList,
|
|
|
calcFun: function (node) {
|
|
|
node.dgn_price = ZhCalc.round(ZhCalc.div(node.total_price, node.dgn_qty1), 2);
|
|
|
+ if (scheduleStage.length > 0) {
|
|
|
+ for (const ss of scheduleStage) {
|
|
|
+ node[ss.order + '_gather_tp'] = ZhCalc.add(node[ss.order + '_contract_tp'], node[ss.order + '_qc_tp']);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
- // slh = _.map(data.slh, 'ledger_id');
|
|
|
slh = data.slh;
|
|
|
const datas = addIsSelect(data.bills);
|
|
|
baseLedgerTree.loadDatas(datas);
|
|
|
treeCalc.calculateAll(baseLedgerTree);
|
|
|
for (const d of baseLedgerTree.nodes) {
|
|
|
if (!d.b_code)
|
|
|
- ledgerTree.addData(d, ['is_select', 'can_select', 'ledger_id', 'ledger_pid', 'order', 'level', 'tender_id', 'full_path',
|
|
|
- 'code', 'name', 'unit', 'dgn_qty1', 'dgn_qty2', 'dgn_price', 'quantity', 'total_price']);
|
|
|
+ ledgerTree.addData(d, showList);
|
|
|
}
|
|
|
ledgerTree.sortTreeNode(true);
|
|
|
+ // treeCalc.calculateAll(ledgerTree);
|
|
|
console.log(ledgerTree);
|
|
|
|
|
|
SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), SpreadJsObj.DataType.Tree, ledgerTree);
|
|
@@ -201,7 +220,9 @@ $(function () {
|
|
|
}
|
|
|
$(this).attr('disabled', true);
|
|
|
const [under_ledger, parent_ledger] = getPAndULedger(select_ledger);
|
|
|
- postData(window.location.pathname + '/save', { select_ledger: _.map(select_ledger, 'ledger_id'), under_ledger, parent_ledger, type: 'sz' } , function (result) {
|
|
|
+ // 重新计算每一期计量进度金额并提交
|
|
|
+ const stageTpList = calcStageTp(under_ledger);
|
|
|
+ postData(window.location.pathname + '/save', { select_ledger: _.map(select_ledger, 'ledger_id'), under_ledger, parent_ledger, stageTpList, type: 'sz' } , function (result) {
|
|
|
toastr.success('设置成功');
|
|
|
setTimeout(function () {
|
|
|
window.location.reload();
|
|
@@ -231,7 +252,9 @@ $(function () {
|
|
|
}
|
|
|
$(this).attr('disabled', true);
|
|
|
const [under_ledger, parent_ledger] = getPAndULedger(select_ledger);
|
|
|
- postData(window.location.pathname + '/save', { select_ledger: _.map(select_ledger, 'ledger_id'), under_ledger, parent_ledger, type: 'xz' } , function (result) {
|
|
|
+ // 重新计算每一期计量进度金额并提交
|
|
|
+ const stageTpList = calcStageTp(under_ledger);
|
|
|
+ postData(window.location.pathname + '/save', { select_ledger: _.map(select_ledger, 'ledger_id'), under_ledger, parent_ledger, stageTpList, type: 'xz' } , function (result) {
|
|
|
toastr.success('进度台账数据修正成功');
|
|
|
setTimeout(function () {
|
|
|
window.location.reload();
|
|
@@ -245,7 +268,13 @@ $(function () {
|
|
|
for (const sl of select_ledger) {
|
|
|
const hadChild = _.find(select_ledger, { ledger_pid: sl.ledger_id });
|
|
|
if (!hadChild) {
|
|
|
- under_ledger.push({ ledger_id: sl.ledger_id, ledger_pid: sl.ledger_pid, gcl: sl.dgn_qty1, tp: sl.total_price });
|
|
|
+ const pushArray = { ledger_id: sl.ledger_id, ledger_pid: sl.ledger_pid, gcl: sl.dgn_qty1, tp: sl.total_price };
|
|
|
+ if (scheduleStage.length > 0) {
|
|
|
+ for (const ss of scheduleStage) {
|
|
|
+ pushArray[ss.order + '_gather_tp'] = sl[ss.order + '_gather_tp'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ under_ledger.push(pushArray);
|
|
|
}
|
|
|
}
|
|
|
// 从最底层找出之前的所有父节点,删除他们可能存在已填的值
|
|
@@ -313,6 +342,21 @@ $(function () {
|
|
|
// });
|
|
|
// })('a[name=showLevel]', ledgerSpread.getActiveSheet());
|
|
|
});
|
|
|
+
|
|
|
+function calcStageTp(list) {
|
|
|
+ if (scheduleStage.length > 0) {
|
|
|
+ const stageTp = [];
|
|
|
+ for (const ss of scheduleStage) {
|
|
|
+ let stage_price = 0;
|
|
|
+ for (const l of list) {
|
|
|
+ stage_price = ZhCalc.add(stage_price, l[ss.order + '_gather_tp']);
|
|
|
+ }
|
|
|
+ stageTp.push({ id: ss.id, tp: stage_price });
|
|
|
+ }
|
|
|
+ return stageTp;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+}
|
|
|
function addIsSelect(datas) {
|
|
|
// const newDatas = [];
|
|
|
for (const d of datas) {
|