「園児別出欠簿入力」教育日数計算式の修正
This commit is contained in:
12
src/utils.js
12
src/utils.js
@@ -222,6 +222,18 @@ function convertToWesternYear(year, era) {
|
|||||||
return warekiStartYear[era] + year - 1;
|
return warekiStartYear[era] + year - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getYearRange() {
|
||||||
|
const today = new Date();
|
||||||
|
let year = today.getFullYear();
|
||||||
|
if (today.getMonth() + 1 < 4) {
|
||||||
|
year -= 1;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
'start': getFormatDateString(year, 4, 1),
|
||||||
|
'end': getFormatDateString(year + 1, 3, 31)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getFormatDateString(dateObjOrYear, month, date) {
|
function getFormatDateString(dateObjOrYear, month, date) {
|
||||||
let year = dateObjOrYear;
|
let year = dateObjOrYear;
|
||||||
if (typeof dateObjOrYear === "object" && !month && !date) {
|
if (typeof dateObjOrYear === "object" && !month && !date) {
|
||||||
|
|||||||
@@ -108,9 +108,13 @@ class ExtractHandler {
|
|||||||
try {
|
try {
|
||||||
const data = await api.record.getAllRecordsWithId({
|
const data = await api.record.getAllRecordsWithId({
|
||||||
app: env["保育・教育日数マスタ"].appId,
|
app: env["保育・教育日数マスタ"].appId,
|
||||||
fields: ['教育日数' + month, '保育日数' + month],
|
fields: ['教育日数' + month, '保育日数' + month, '休日_' + month + '月'],
|
||||||
condition: `年度 = "${year}"`
|
condition: `年度 = "${year}"`
|
||||||
});
|
});
|
||||||
|
if (!data || !data[0]) {
|
||||||
|
showError(true, '保育・教育日数マスタのデータが存在しません。');
|
||||||
|
return;
|
||||||
|
}
|
||||||
return data && data[0];
|
return data && data[0];
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
showError(true, '保育・教育日数マスタのデータ読み取りエラー\n - ' + e);
|
showError(true, '保育・教育日数マスタのデータ読み取りエラー\n - ' + e);
|
||||||
@@ -124,16 +128,23 @@ class ExtractHandler {
|
|||||||
fields: ['担任'],
|
fields: ['担任'],
|
||||||
condition: `学年 in ("${term}")`
|
condition: `学年 in ("${term}")`
|
||||||
});
|
});
|
||||||
return data && data[0] && data[0]['担任']?.value.map((x)=>x.name).join('、') || '';
|
return data && data[0] && data[0]['担任']?.value.map((x) => x.name).join('、') || '';
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
showError(true, '担任マスタのデータ読み取りエラー\n - ' + e);
|
showError(true, '担任マスタのデータ読み取りエラー\n - ' + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
toHolidaySet = (str) => {
|
||||||
|
if (!str) {
|
||||||
|
return new Set();
|
||||||
|
}
|
||||||
|
return new Set(str.split(','))
|
||||||
|
}
|
||||||
|
|
||||||
writeExcel = ({ records, recordMap, childMaster, dayMaster, termTeacher }, term, { era, year, westernYear, month }) => {
|
writeExcel = ({ records, recordMap, childMaster, dayMaster, termTeacher }, term, { era, year, westernYear, month }) => {
|
||||||
const teachDays = Number(dayMaster['教育日数' + month].value);
|
const teachDays = Number(dayMaster['教育日数' + month].value);
|
||||||
const careDays = Number(dayMaster['保育日数' + month].value);
|
const careDays = Number(dayMaster['保育日数' + month].value);
|
||||||
|
const holidaySet = this.toHolidaySet(dayMaster['休日_' + month + '月'].value);
|
||||||
return async (api, worksheet) => {
|
return async (api, worksheet) => {
|
||||||
const baseCells = findCellsInfo(worksheet, ['13', '16', '19', '25', '(担 任)', '1', '番号']);
|
const baseCells = findCellsInfo(worksheet, ['13', '16', '19', '25', '(担 任)', '1', '番号']);
|
||||||
|
|
||||||
@@ -216,6 +227,7 @@ class ExtractHandler {
|
|||||||
'出席停止': 0,
|
'出席停止': 0,
|
||||||
'病欠': 0,
|
'病欠': 0,
|
||||||
'自欠': 0,
|
'自欠': 0,
|
||||||
|
'休日欠席': 0
|
||||||
}
|
}
|
||||||
// 日
|
// 日
|
||||||
recordWrapper.list.forEach((record, i) => {
|
recordWrapper.list.forEach((record, i) => {
|
||||||
@@ -224,10 +236,18 @@ class ExtractHandler {
|
|||||||
if (res === '出席') {
|
if (res === '出席') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (res === '出席停止' && record["出席停止理由"].value) {
|
if (res === '出席停止') {
|
||||||
reasons.push(record["出席停止理由"].value);
|
if (record["出席停止理由"].value) {
|
||||||
|
reasons.push(record["出席停止理由"].value);
|
||||||
|
}
|
||||||
|
updateCell(row, { base, right: 2 + i }, '×');
|
||||||
|
return
|
||||||
}
|
}
|
||||||
updateCell(row, { base, right: 2 + i }, res === '出席停止' ? '×' : '/');
|
// 欠席
|
||||||
|
if (holidaySet.has(record['登園日'].value)) {
|
||||||
|
sum['休日欠席']++;
|
||||||
|
}
|
||||||
|
updateCell(row, { base, right: 2 + i }, '/');
|
||||||
})
|
})
|
||||||
|
|
||||||
// 出 席
|
// 出 席
|
||||||
@@ -238,7 +258,7 @@ class ExtractHandler {
|
|||||||
updateCell(row, { base, right: 36 }, sum['自欠']);
|
updateCell(row, { base, right: 36 }, sum['自欠']);
|
||||||
// 教育日数
|
// 教育日数
|
||||||
// updateCell(row, { base, right: 37 }, sum['出席'] + sum['出席停止'] - sum['病欠'] - sum['自欠']);
|
// updateCell(row, { base, right: 37 }, sum['出席'] + sum['出席停止'] - sum['病欠'] - sum['自欠']);
|
||||||
updateCell(row, { base, right: 37 }, teachDays - sum['病欠'] - sum['自欠']);
|
updateCell(row, { base, right: 37 }, teachDays - sum['病欠'] - sum['自欠'] + sum['休日欠席']);
|
||||||
|
|
||||||
// 備考
|
// 備考
|
||||||
updateCell(row, { base, right: 38 }, reasons.join("\n"));
|
updateCell(row, { base, right: 38 }, reasons.join("\n"));
|
||||||
|
|||||||
Reference in New Issue
Block a user