| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512 | 
							- /**
 
-  * 进度台账相关js
 
-  *
 
-  * @author Ellisran
 
-  * @date 2020/11/6
 
-  * @version
 
-  */
 
- function getTenderId() {
 
-     return window.location.pathname.split('/')[2];
 
- }
 
- $(function () {
 
-     autoFlashHeight();
 
-     if(schedule && !schedule.mode) {
 
-         $('#mode').modal('show');
 
-     }
 
-     // 初始化台账
 
-     const ledgerSpread = SpreadJsObj.createNewSpread($('#ledger-spread')[0]);
 
-     const treeSetting = {
 
-         id: 'ledger_id',
 
-         pid: 'ledger_pid',
 
-         order: 'order',
 
-         level: 'level',
 
-         rootId: -1,
 
-         fullPath: 'full_path',
 
-         //treeCacheKey: 'ledger_bills_fold' + '_' + getTenderId(),
 
-         // markFoldKey: 'bills-fold',
 
-         // markFoldSubKey: window.location.pathname.split('/')[2],
 
-     };
 
-     const ledgerTree = createNewPathTree('filter', treeSetting);
 
-     const static_cols = [
 
-         {title: '编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', readOnly: true, cellType: 'tree'},
 
-         {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', readOnly: true},
 
-         {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', readOnly: true},
 
-         {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
 
-         {title: '总设计|工程量', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 70, type: 'Number', readOnly: true},
 
-         {title: '|金额(万元)', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 70, type: 'Number', readOnly: true},
 
-     ];
 
-     const ledgerSpreadSetting = {
 
-         emptyRows: 0,
 
-         headRows: 2,
 
-         headRowHeight: [25, 25],
 
-         defaultRowHeight: 21,
 
-         headerFont: '12px 微软雅黑',
 
-         font: '12px 微软雅黑',
 
-         // readOnly: true,
 
-         localCache: {
 
-             key: 'ledger-bills',
 
-             colWidth: true,
 
-         }
 
-     };
 
-     const monthsCols = [];
 
-     if(scheduleMonth.length > 0) {
 
-         for (const sm of scheduleMonth) {
 
-             const readOnly = sm.stage_used !== 0;
 
-             const yearmonth = sm.yearmonth.split('-')[0] + '年' + parseInt(sm.yearmonth.split('-')[1]) + '月';
 
-             const cols = {title: yearmonth + '|计划工程量', colSpan: '2|1', rowSpan: '1|1', field: sm.yearmonth+'_gcl', hAlign: 2, width: 90, type: 'Number', readOnly: readOnly ? readOnly : 'readOnly.gcl'};
 
-             const cols2 = {title: '|计划金额(万元)', colSpan: '|1', rowSpan: '|1', field: sm.yearmonth+'_tp', hAlign: 2, width: 90, type: 'Number', readOnly: readOnly ? readOnly : 'readOnly.tp'};
 
-             monthsCols.push(cols);
 
-             monthsCols.push(cols2);
 
-         }
 
-     }
 
-     const spreadHeaderCols = static_cols.concat(monthsCols);
 
-     ledgerSpreadSetting.cols = spreadHeaderCols;
 
-     const ledgerCol = {
 
-         readOnly: {
 
-             tp: function (data) {
 
-                 let flag = data.is_leaf;
 
-                 if (data.is_leaf) {
 
-                     flag = schedule && schedule.mode === mode.tp;
 
-                 }
 
-                 return !flag;
 
-             },
 
-             gcl: function (data) {
 
-                 let flag = data.is_leaf;
 
-                 if (data.is_leaf) {
 
-                     flag = schedule && schedule.mode === mode.gcl;
 
-                 }
 
-                 return !flag;
 
-             },
 
-         },
 
-     };
 
-     sjsSettingObj.setFxTreeStyle(ledgerSpreadSetting, sjsSettingObj.FxTreeStyle.jz);
 
-     if (thousandth) sjsSettingObj.setTpThousandthFormat(ledgerSpreadSetting);
 
-     SpreadJsObj.initSpreadSettingEvents(ledgerSpreadSetting, ledgerCol);
 
-     SpreadJsObj.initSheet(ledgerSpread.getActiveSheet(), ledgerSpreadSetting);
 
-     SpreadJsObj.selChangedRefreshBackColor(ledgerSpread.getActiveSheet());
 
-     postData('/tender/' + getTenderId() + '/schedule/ledger/load', {}, function (data) {
 
-         // let treeData = [];
 
-         // for(const sl of selectedLedgerList) {
 
-         //     const one = _.find(data, { 'ledger_id' : sl });
 
-         //     treeData.push(one);
 
-         // }
 
-         // treeData = setLeafData(treeData);
 
-         // console.log(treeData);
 
-         // let treeData = data;
 
-         const calcList = ['total_price'];
 
-         const showList = ['ledger_id', 'ledger_pid', 'order', 'level', 'tender_id', 'full_path',
 
-             'code', 'name', 'unit', 'dgn_qty1', 'dgn_qty2', 'dgn_price', 'quantity', 'total_price'];
 
-         for (const m of monthList) {
 
-             showList.push(m + '_tp');
 
-             showList.push(m + '_gcl');
 
-             // calcList.push(m + '_tp');
 
-             // calcList.push(m + '_gcl');
 
-         }
 
-         const baseLedgerTree = createNewPathTree('base', {
 
-             id: 'ledger_id',
 
-             pid: 'ledger_pid',
 
-             order: 'order',
 
-             level: 'level',
 
-             rootId: -1,
 
-             fullPath: 'full_path',
 
-             calcFields: calcList,
 
-             calcFun: function (node) {
 
-                 node.dgn_price = ZhCalc.round(ZhCalc.div(node.total_price, node.dgn_qty1), 2);
 
-             }
 
-         });
 
-         const newLedgerList = setMonthToLedger(data.bills, data.slm);
 
-         baseLedgerTree.loadDatas(newLedgerList);
 
-         treeCalc.calculateAll(baseLedgerTree);
 
-         console.log(baseLedgerTree);
 
-         for (const d of baseLedgerTree.nodes) {
 
-             if (!d.b_code) {
 
-                 const one = _.find(selectedLedgerList, function (item) {
 
-                     return item === d.ledger_id;
 
-                 });
 
-                 if(one) {
 
-                     ledgerTree.addData(d, showList);
 
-                 }
 
-             }
 
-         }
 
-         console.log(ledgerTree);
 
-         ledgerTree.sortTreeNode(true);
 
-         // console.log(ledgerTree);
 
-         SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), SpreadJsObj.DataType.Tree, ledgerTree);
 
-     }, null, true);
 
-     const ledgerSpreadObj = {
 
-         refreshTree: function (sheet, data) {
 
-             SpreadJsObj.massOperationSheet(sheet, function () {
 
-                 const tree = sheet.zh_tree;
 
-                 // 处理删除
 
-                 if (data.delete) {
 
-                     data.delete.sort(function (x, y) {
 
-                         return y.deleteIndex - x.deleteIndex;
 
-                     });
 
-                     for (const d of data.delete) {
 
-                         sheet.deleteRows(d.deleteIndex, 1);
 
-                     }
 
-                 }
 
-                 // 处理新增
 
-                 if (data.create) {
 
-                     const newNodes = data.create;
 
-                     if (newNodes) {
 
-                         newNodes.sort(function (a, b) {
 
-                             return a.index - b.index;
 
-                         });
 
-                         for (const node of newNodes) {
 
-                             sheet.addRows(node.index, 1);
 
-                             SpreadJsObj.reLoadRowData(sheet, tree.nodes.indexOf(node), 1);
 
-                         }
 
-                     }
 
-                 }
 
-                 // 处理更新
 
-                 if (data.update) {
 
-                     const rows = [];
 
-                     for (const u of data.update) {
 
-                         rows.push(tree.nodes.indexOf(u));
 
-                     }
 
-                     SpreadJsObj.reLoadRowsData(sheet, rows);
 
-                 }
 
-                 // 处理展开
 
-                 if (data.expand) {
 
-                     const expanded = [];
 
-                     for (const e of data.expand) {
 
-                         if (expanded.indexOf(e) === -1) {
 
-                             const posterity = tree.getPosterity(e);
 
-                             for (const p of posterity) {
 
-                                 sheet.setRowVisible(tree.nodes.indexOf(p), p.visible);
 
-                                 expanded.push(p);
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-             });
 
-         },
 
-         editEnded: function (e, info) {
 
-             if (info.sheet.zh_setting) {
 
-                 const select = SpreadJsObj.getSelectObject(info.sheet);
 
-                 const col = info.sheet.zh_setting.cols[info.col];
 
-                 const validText = is_numeric(info.editingText) ? parseFloat(info.editingText) : (info.editingText ? trimInvalidChar(info.editingText) : null);
 
-                 const orgValue = select[col.field];
 
-                 if (orgValue == validText || ((!orgValue || orgValue === '') && (validText === ''))) {
 
-                     SpreadJsObj.reLoadRowData(info.sheet, info.row);
 
-                     return;
 
-                 }
 
-                 if (isNaN(validText)) {
 
-                     toastr.error('不能输入其它非数字类型字符');
 
-                     SpreadJsObj.reLoadRowData(info.sheet, info.row);
 
-                     return;
 
-                 }
 
-                 const yearmonth = col.field.split('_')[0];
 
-                 const mode = col.field.split('_')[1];
 
-                 let plan_gcl = 0;
 
-                 let plan_tp = 0;
 
-                 // 判断输入位数,提示
 
-                 if (mode === 'tp') {
 
-                     const reg = new RegExp('^([-]?)\\d+(\\.\\d{0,'+ parseInt(tenderInfo.decimal.tp) +'})?$');
 
-                     if (validText !== null && (!reg.test(validText))) {
 
-                         toastr.error('输入金额小数位数不能大于' + tenderInfo.decimal.tp + '位');
 
-                         SpreadJsObj.reLoadRowData(info.sheet, info.row);
 
-                         return;
 
-                     }
 
-                     plan_gcl = select.dgn_price && select.dgn_price !== 0 ? ZhCalc.round(ZhCalc.div(validText, select.dgn_price), tenderInfo.decimal.up) : 0;
 
-                     plan_tp = validText;
 
-                 } else {
 
-                     const reg = new RegExp('^([-]?)\\d+(\\.\\d{0,'+ parseInt(tenderInfo.decimal.up) +'})?$');
 
-                     if (validText !== null && (!reg.test(validText))) {
 
-                         toastr.error('输入工程量小数位数不能大于' + tenderInfo.decimal.up + '位');
 
-                         SpreadJsObj.reLoadRowData(info.sheet, info.row);
 
-                         return;
 
-                     }
 
-                     plan_gcl = validText;
 
-                     plan_tp = select.dgn_price && select.dgn_price !== 0 ? ZhCalc.round(ZhCalc.mul(validText, select.dgn_price), tenderInfo.decimal.tp) : 0;
 
-                 }
 
-                 select[col.field] = validText;
 
-                 const updateData = {
 
-                     lid: select.ledger_id,
 
-                     yearmonth,
 
-                     plan_gcl,
 
-                     plan_tp,
 
-                 };
 
-                 console.log(updateData);
 
-                 postData(window.location.pathname + '/save', {type: 'ledger_edit', postData: updateData}, function (result) {
 
-                     if (mode === 'tp') {
 
-                         select[yearmonth + '_gcl'] = plan_gcl;
 
-                     } else {
 
-                         select[yearmonth + '_tp'] = plan_tp;
 
-                     }
 
-                     SpreadJsObj.reLoadRowData(info.sheet, info.row);
 
-                 },function () {
 
-                     select[col.field] = orgValue;
 
-                     SpreadJsObj.reLoadRowData(info.sheet, info.row);
 
-                 })
 
-             }
 
-         },
 
-         deletePress: function (sheet) {
 
-             return;
 
-         },
 
-         clipboardPasted(e, info) {
 
-             const hint = {
 
-                 cellError: {type: 'error', msg: '粘贴内容超出了表格范围'},
 
-                 numberExpr: {type: 'error', msg: '不能粘贴其它非数字类型字符'},
 
-             };
 
-             const range = info.cellRange;
 
-             if (range.rowCount > 1 || range.colCount > 1) {
 
-                 toastMessageUniq(hint.cellError);
 
-                 SpreadJsObj.reLoadSheetHeader(ledgerSpread.getActiveSheet());
 
-                 SpreadJsObj.reLoadSheetData(ledgerSpread.getActiveSheet());
 
-                 return;
 
-             }
 
-             const select = SpreadJsObj.getSelectObject(info.sheet);
 
-             const col = info.sheet.zh_setting.cols[range.col];
 
-             const validText = is_numeric(info.pasteData.text) ? parseFloat(info.pasteData.text) : (info.pasteData.text ? trimInvalidChar(info.pasteData.text) : null);
 
-             const orgValue = select[col.field];
 
-             if (orgValue == validText || ((!orgValue || orgValue === '') && (validText === ''))) {
 
-                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
 
-                 return;
 
-             }
 
-             if (isNaN(validText)) {
 
-                 toastr.error('不能粘贴其它非数字类型字符');
 
-                 SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
 
-                 return;
 
-             }
 
-             const yearmonth = col.field.split('_')[0];
 
-             const mode = col.field.split('_')[1];
 
-             let plan_gcl = 0;
 
-             let plan_tp = 0;
 
-             // 判断输入位数,提示
 
-             if (mode === 'tp') {
 
-                 const reg = new RegExp('^([-]?)\\d+(\\.\\d{0,'+ parseInt(tenderInfo.decimal.tp) +'})?$');
 
-                 if (validText !== null && (!reg.test(validText))) {
 
-                     toastr.error('粘贴的金额小数位数不能大于' + tenderInfo.decimal.tp + '位');
 
-                     SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
 
-                     return;
 
-                 }
 
-                 plan_gcl = select.dgn_price && select.dgn_price !== 0 ? ZhCalc.round(ZhCalc.div(validText, select.dgn_price), tenderInfo.decimal.up) : 0;
 
-                 plan_tp = validText;
 
-             } else {
 
-                 const reg = new RegExp('^([-]?)\\d+(\\.\\d{0,'+ parseInt(tenderInfo.decimal.up) +'})?$');
 
-                 if (validText !== null && (!reg.test(validText))) {
 
-                     toastr.error('粘贴的工程量小数位数不能大于' + tenderInfo.decimal.up + '位');
 
-                     SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
 
-                     return;
 
-                 }
 
-                 plan_gcl = validText;
 
-                 plan_tp = select.dgn_price && select.dgn_price !== 0 ? ZhCalc.round(ZhCalc.mul(validText, select.dgn_price), tenderInfo.decimal.tp) : 0;
 
-             }
 
-             select[col.field] = validText;
 
-             const updateData = {
 
-                 lid: select.ledger_id,
 
-                 yearmonth,
 
-                 plan_gcl,
 
-                 plan_tp,
 
-             };
 
-             postData(window.location.pathname + '/save', {type: 'ledger_edit', postData: updateData}, function (result) {
 
-                 if (mode === 'tp') {
 
-                     select[yearmonth + '_gcl'] = plan_gcl;
 
-                 } else {
 
-                     select[yearmonth + '_tp'] = plan_tp;
 
-                 }
 
-                 SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
 
-             },function () {
 
-                 select[col.field] = orgValue;
 
-                 SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
 
-             })
 
-         },
 
-     };
 
-     ledgerSpread.bind(spreadNS.Events.EditEnded, ledgerSpreadObj.editEnded);
 
-     SpreadJsObj.addDeleteBind(ledgerSpread, ledgerSpreadObj.deletePress);
 
-     ledgerSpread.bind(spreadNS.Events.ClipboardPasted, ledgerSpreadObj.clipboardPasted);
 
-     // 进度计算方式选择
 
-     $('.mode-select').on('click', function () {
 
-         const _self = $(this);
 
-         postData(window.location.pathname + '/save', {type: 'mode', postData: $(this).data('mode')}, function (result) {
 
-             _self.addClass('disabled').attr('disabled', true);
 
-             _self.parents('.col-6').siblings('.col-6').find('button').removeClass('disabled').removeAttr('disabled');
 
-             $('#mode-tips').show();
 
-             $('#mode-cancel').show();
 
-             $('#mode').modal('hide');
 
-             schedule.mode = _self.data('mode');
 
-             SpreadJsObj.reLoadSheetData(ledgerSpread.getActiveSheet());
 
-         })
 
-     });
 
-     // 月份添加
 
-     $('#add-month').click(function () {
 
-         const range = $('#month-range').val();
 
-         if(range === '') {
 
-             toastr.error('请选择计划周期时间');
 
-             return;
 
-         }
 
-         const addMonthList = [];
 
-         const cycle = range.split(' ~ ');
 
-         if(cycle.length === 1) {
 
-             addMonthList.push(cycle[0]);
 
-         } else {
 
-             // 多个月份
 
-             const back_year = parseInt(cycle[1].split('-')[0]);
 
-             const back_month = parseInt(cycle[1].split('-')[1]);
 
-             const front_year = parseInt(cycle[0].split('-')[0]);
 
-             const front_month = parseInt(cycle[0].split('-')[1]);
 
-             if(back_year > front_year) {
 
-                 const num = getDistanceMonth(cycle[0], cycle[1]);
 
-                 let j = 1;
 
-                 for (let i = 0; i <= num; i++) {
 
-                     if(front_month + i > 12*j) {
 
-                         j = j + 1;
 
-                     }
 
-                     const m = (front_month + i)%12 === 0 ? 12 : (front_month + i)%12;
 
-                     addMonthList.push((front_year + (j-1)) + '-' + (m < 10 ? '0' + m : m));
 
-                 }
 
-             } else if (back_year === front_year) {
 
-                 // 小于1年并没有跨年
 
-                 for (let i = front_month; i <= back_month; i++) {
 
-                     addMonthList.push(back_year + '-' + (i < 10 ? '0' + i : i));
 
-                 }
 
-             }
 
-         }
 
-         // 判断是否已添加本月份
 
-         if (addMonthList.length > 0) {
 
-             const hadmonth = [];
 
-             for (const m of addMonthList) {
 
-                 const one = _.find(scheduleMonth, { yearmonth: m });
 
-                 console.log(one, m);
 
-                 if (one) {
 
-                     hadmonth.push(m);
 
-                 }
 
-             }
 
-             if (hadmonth.length > 0) {
 
-                 let html = '';
 
-                 for (const hm of hadmonth) {
 
-                     html += `<div class="alert alert-danger">${hm} 已创建</div>`;
 
-                 }
 
-                 $('#add-month-error-list').html(html);
 
-                 $('#add-month-error-list').show();
 
-                 return;
 
-             }
 
-         } else {
 
-             toastr.error('请选择计划周期时间');
 
-             return;
 
-         }
 
-         $('#add-month-error-list').html('');
 
-         $('#add-month-error-list').hide();
 
-         const _self = $(this);
 
-         postData(window.location.pathname + '/save', {type: 'addmonth', postData: addMonthList}, function (result) {
 
-             _self.addClass('disabled').attr('disabled', true);
 
-             toastr.success('新增成功');
 
-             setTimeout(function () {
 
-                 window.location.reload();
 
-             }, 500)
 
-         })
 
-     });
 
-     $('#month-table input[type="checkbox"]').click(function () {
 
-         const selectedMonth = [];
 
-         $('#month-table input:checkbox:checked').each(function () {
 
-             selectedMonth.push('「' + $(this).parents('td').siblings('td').text() + '」');
 
-         });
 
-         if(selectedMonth.length > 0) {
 
-             $('#del-month-list').text(selectedMonth.join(''));
 
-             $('#del-month-list').parent().show();
 
-             $('#del-month').removeAttr('disabled');
 
-         } else {
 
-             $('#del-month-list').parent().hide();
 
-             $('#del-month').attr('disabled', true);
 
-         }
 
-     });
 
-     $('#del-month').click(function () {
 
-         const selectedMonth = [];
 
-         $('#month-table input:checkbox:checked').each(function () {
 
-             selectedMonth.push($(this).parents('td').siblings().text());
 
-         });
 
-         if (selectedMonth.length === 0) {
 
-             toastr.error('请选择删除的计划周期');
 
-             return;
 
-         }
 
-         const _self = $(this);
 
-         postData(window.location.pathname + '/save', {type: 'delmonth', postData: selectedMonth}, function (result) {
 
-             _self.addClass('disabled').attr('disabled', true);
 
-             toastr.success('删除成功');
 
-             setTimeout(function () {
 
-                 window.location.reload();
 
-             }, 500)
 
-         })
 
-     });
 
-     $.subMenu({
 
-         menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',
 
-         toMenu: '#to-menu', toMiniMenu: '#to-mini-menu',
 
-         key: 'menu.1.0.0',
 
-         miniHint: '#sub-mini-hint', hintKey: 'menu.hint.1.0.1',
 
-         callback: function (info) {
 
-             if (info.mini) {
 
-                 $('.panel-title').addClass('fluid');
 
-                 $('#sub-menu').removeClass('panel-sidebar');
 
-             } else {
 
-                 $('.panel-title').removeClass('fluid');
 
-                 $('#sub-menu').addClass('panel-sidebar');
 
-             }
 
-             ledgerSpread.refresh();
 
-             autoFlashHeight();
 
-         }
 
-     });
 
- });
 
- // 月份间隔
 
- function getDistanceMonth(startTime,endTime){
 
-     startTime = new Date(startTime);
 
-     endTime = new Date(endTime);
 
-     var dateToMonth = 0;
 
-     var startDate=startTime.getDate() + startTime.getHours()/24 + startTime.getMinutes()/24/60;
 
-     var endDate=endTime.getDate()  +endTime.getHours()/24 + endTime.getMinutes()/24/60;
 
-     if(endDate >= startDate){
 
-         dateToMonth = 0;
 
-     }else{
 
-         dateToMonth = -1;
 
-     }
 
-     let yearToMonth = (endTime.getYear() - startTime.getYear()) * 12;
 
-     let monthToMonth = endTime.getMonth() - startTime.getMonth();
 
-     return yearToMonth + monthToMonth + dateToMonth;
 
- }
 
- function setLeafData(tree) {
 
-     const newtree = [];
 
-     for (const t of tree) {
 
-         const child = _.find(tree, { 'ledger_pid': t.ledger_id });
 
-         if (!child && !t.is_leaf) {
 
-             t.is_leaf = true;
 
-         }
 
-         newtree.push(t);
 
-     }
 
-     return newtree;
 
- }
 
- function setMonthToLedger(ledgerList, slm) {
 
-     if (slm.length > 0) {
 
-         for(const s of slm) {
 
-             const index = _.findIndex(ledgerList, { 'ledger_id': s.lid });
 
-             if (index && index !== -1) {
 
-                 ledgerList[index][s.yearmonth + '_tp'] = s.plan_tp;
 
-                 ledgerList[index][s.yearmonth + '_gcl'] = s.plan_gcl;
 
-             }
 
-         }
 
-     }
 
-     return ledgerList;
 
- }
 
- const is_numeric = (value) => {
 
-     if (typeof(value) === 'object') {
 
-         return false;
 
-     } else {
 
-         return !Number.isNaN(Number(value)) && value.toString().trim() !== '';
 
-     }
 
- };
 
 
  |