84 lines
2.5 KiB
JavaScript
84 lines
2.5 KiB
JavaScript
const XLSX = require('xlsx');
|
|
|
|
|
|
|
|
|
|
|
|
if ( process.argv.length < 3 ) {
|
|
console.log("没有传递目录")
|
|
process.exit(-1)
|
|
}
|
|
|
|
|
|
|
|
let path = process.argv[2]
|
|
console.log("工作于 " + path)
|
|
|
|
|
|
|
|
const workbook4 = (function () {
|
|
const workbook = XLSX.readFile(path + '/金额.xlsx');
|
|
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
|
|
const jsonData = XLSX.utils.sheet_to_json(worksheet);
|
|
let map = {}
|
|
for ( let record of jsonData ) {
|
|
map[`${record["TEAM号"]}-${record["关键词"]}费用-${record["类别"]}`] = record["金额"]
|
|
}
|
|
return map;
|
|
})()
|
|
|
|
const workbook = XLSX.readFile(path + '/1.团队开票申请表.xlsx');
|
|
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
|
|
const jsonData = XLSX.utils.sheet_to_json(worksheet);
|
|
for (let record of jsonData) {
|
|
console.log("---------------------")
|
|
console.table(record)
|
|
// console.log(`序号 ${record['序号']}, 结算明细 ${record['结算明细']}`)
|
|
switch ( record['结算明细'] ) {
|
|
case "国际票":
|
|
case "机票行程单":
|
|
case "附加项":
|
|
console.log("账单总金额 = 行程单金额")
|
|
record[' 账单总金额 '] = record[' 行程单金额 ']
|
|
break;
|
|
|
|
case "酒店费用":
|
|
case "国际酒店费用":
|
|
|
|
// 房费
|
|
let key = `${record['结算账户']}-${record["结算明细"]}-房费`;
|
|
let fang = workbook4[key];
|
|
record[' 房费 '] = fang ? fang : 0
|
|
|
|
// 商旅服务费
|
|
key = `${record['结算账户']}-${record["结算明细"]}-服务费`;
|
|
let fuwu = workbook4[key];
|
|
record[' 商旅服务费 '] = fuwu ? fuwu : 0
|
|
|
|
record[' 账单总金额 '] = fang + fuwu
|
|
break;
|
|
|
|
case "火车票":
|
|
console.log("账单总金额 = 火车票 ")
|
|
record[' 账单总金额 '] = record[' 火车票 ']
|
|
break;
|
|
|
|
case "服务费":
|
|
console.log("账单总金额 = 商旅服务费 ")
|
|
record[' 账单总金额 '] = record[' 商旅服务费 ']
|
|
break;
|
|
|
|
default :
|
|
console.error("不支持的类型: " + record['结算明细'])
|
|
|
|
}
|
|
console.log("+++++++++++++++++")
|
|
console.log(record)
|
|
}
|
|
|
|
|
|
|
|
const worksheetout = XLSX.utils.json_to_sheet(jsonData);
|
|
const workbookout = XLSX.utils.book_new();
|
|
XLSX.utils.book_append_sheet(workbookout, worksheetout, 'Sheet1');
|
|
XLSX.writeFile(workbookout, path + '/1.团队开票申请表.done.xlsx'); |