Compare commits
3 Commits
e6a70963d7
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 990c05c1d3 | |||
| 96315d5f8f | |||
| 7c31cd9b97 |
@@ -144,27 +144,7 @@
|
|||||||
// 管理者かどうかを取得
|
// 管理者かどうかを取得
|
||||||
isAdmin = groupCodes.indexOf(adminGroupCode) !== -1;
|
isAdmin = groupCodes.indexOf(adminGroupCode) !== -1;
|
||||||
|
|
||||||
var editUserCode = record.engineer_mechanic.value.length > 0 ? record.engineer_mechanic.value[0].code : "";
|
return fetchSystemControlAndUpdateFields(record, groupCodes);
|
||||||
return getSystemControlRecord(editUserCode).then(function (systemRecord) {
|
|
||||||
if (systemRecord != null) {
|
|
||||||
// サービスレポート承認者グループに所属するユーザーかどうかを取得
|
|
||||||
const serviceReportAuthorizerCodes =
|
|
||||||
systemRecord.サービスレポート承認者グループ.value.map(function (
|
|
||||||
group
|
|
||||||
) {
|
|
||||||
return group.code;
|
|
||||||
});
|
|
||||||
isServiceReportAuthorizer = serviceReportAuthorizerCodes.some(
|
|
||||||
function (serviceReportAuthorizerCode) {
|
|
||||||
return groupCodes.indexOf(serviceReportAuthorizerCode) !== -1;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
// システムコントロール情報の設定
|
|
||||||
setSystemControlField(systemRecord, record);
|
|
||||||
setSystemInfo(record);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
.then(function () {
|
.then(function () {
|
||||||
setHiddenField(isAdmin);
|
setHiddenField(isAdmin);
|
||||||
@@ -183,6 +163,41 @@
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 「engineer_mechanic」変更時の処理を行います。
|
||||||
|
*/
|
||||||
|
kintone.events.on(
|
||||||
|
[
|
||||||
|
"app.record.create.change.engineer_mechanic",
|
||||||
|
"app.record.edit.change.engineer_mechanic",
|
||||||
|
],
|
||||||
|
function (
|
||||||
|
/** @type {kintone.AppEvent__サービスレポート_出張経費精算入力} */
|
||||||
|
event
|
||||||
|
) {
|
||||||
|
const record = event.record;
|
||||||
|
|
||||||
|
if (record.engineer_mechanic.value.length > 0) {
|
||||||
|
pvc.util.ui.showSpinner();
|
||||||
|
getLoginUserGroupCodes()
|
||||||
|
.then(function (groupCodes) {
|
||||||
|
return fetchSystemControlAndUpdateFields(record, groupCodes);
|
||||||
|
})
|
||||||
|
.then(function () {
|
||||||
|
setDisabledField(record, isServiceReportAuthorizer);
|
||||||
|
kintone.app.record.set(event);
|
||||||
|
pvc.util.ui.hideSpinner();
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
pvc.util.ui.hideSpinner();
|
||||||
|
console.error(error);
|
||||||
|
alert("システムエラーが発生しました");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 「作業時間情報」変更時の処理を行います。
|
* 「作業時間情報」変更時の処理を行います。
|
||||||
*/
|
*/
|
||||||
@@ -987,6 +1002,36 @@
|
|||||||
return pvc.util.array.sum(includeTimeNumList);
|
return pvc.util.array.sum(includeTimeNumList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 指定されたユーザーコードのシステムコントロール情報を取得してフィールドに設定します。
|
||||||
|
* @param {kintone.AppRecord__サービスレポート_出張経費精算入力} record
|
||||||
|
* @param {string[]} groupCodes - ログインユーザーの所属グループコードリスト
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
function fetchSystemControlAndUpdateFields(record, groupCodes) {
|
||||||
|
var userCode = record.engineer_mechanic.value.length > 0 ? record.engineer_mechanic.value[0].code : "";
|
||||||
|
return getSystemControlRecord(userCode).then(function (systemRecord) {
|
||||||
|
if (systemRecord != null) {
|
||||||
|
// サービスレポート承認者グループに所属するユーザーかどうかを取得
|
||||||
|
const serviceReportAuthorizerCodes =
|
||||||
|
systemRecord.サービスレポート承認者グループ.value.map(function (
|
||||||
|
group
|
||||||
|
) {
|
||||||
|
return group.code;
|
||||||
|
});
|
||||||
|
isServiceReportAuthorizer = serviceReportAuthorizerCodes.some(
|
||||||
|
function (serviceReportAuthorizerCode) {
|
||||||
|
return groupCodes.indexOf(serviceReportAuthorizerCode) !== -1;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// システムコントロール情報の設定
|
||||||
|
setSystemControlField(systemRecord, record);
|
||||||
|
setSystemInfo(record);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* システムコントロールのレコードを取得します。
|
* システムコントロールのレコードを取得します。
|
||||||
* @param {string} userCode - ユーザーコード(engineer_mechanic.コード)
|
* @param {string} userCode - ユーザーコード(engineer_mechanic.コード)
|
||||||
@@ -53,15 +53,9 @@
|
|||||||
setHiddenTableRowButton();
|
setHiddenTableRowButton();
|
||||||
|
|
||||||
pvc.util.ui.showSpinner();
|
pvc.util.ui.showSpinner();
|
||||||
var userCode = record.氏名.value.length > 0 ? record.氏名.value[0].code : "";
|
return fetchAndSetSystemControlInfo(record)
|
||||||
return getSystemControlRecord(userCode)
|
.then(function () {
|
||||||
.then(function (systemRecord) {
|
|
||||||
pvc.util.ui.hideSpinner();
|
pvc.util.ui.hideSpinner();
|
||||||
if (systemRecord != null) {
|
|
||||||
setSystemControlField(systemRecord, record);
|
|
||||||
setSystemInfo(record);
|
|
||||||
}
|
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
})
|
})
|
||||||
.catch(function (error) {
|
.catch(function (error) {
|
||||||
@@ -90,39 +84,42 @@
|
|||||||
) {
|
) {
|
||||||
const record = event.record;
|
const record = event.record;
|
||||||
const sinseiNengetu = pvc.util.obj.toNumber(record.申請年月.value) || 0;
|
const sinseiNengetu = pvc.util.obj.toNumber(record.申請年月.value) || 0;
|
||||||
|
|
||||||
|
// 既存の申請年月変更時の処理を継続
|
||||||
if (isNengetuNum(sinseiNengetu) && record.氏名.value.length > 0) {
|
if (isNengetuNum(sinseiNengetu) && record.氏名.value.length > 0) {
|
||||||
kintone.Promise.resolve().then(function () {
|
pvc.util.ui.showSpinner();
|
||||||
pvc.util.ui.showSpinner();
|
// 「氏名」変更時にシステムコントロールの情報を取得
|
||||||
|
fetchAndSetSystemControlInfo(record)
|
||||||
|
.then(function () {
|
||||||
|
/** @type {{ record: kintone.AppRecord__勤怠申請入力_内勤者用 }} */
|
||||||
|
const r = kintone.app.record.get();
|
||||||
|
return existsDuplicateData(r.record)
|
||||||
|
.then(function (isExists) {
|
||||||
|
if (isExists) {
|
||||||
|
// 重複するデータが既に存在する場合
|
||||||
|
alert("既に登録済です。");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/** @type {{ record: kintone.AppRecord__勤怠申請入力_内勤者用 }} */
|
// 就業届テーブルにデータを作成
|
||||||
const r = kintone.app.record.get();
|
return setSyuugyouTodokeTable(r.record).then(function () {
|
||||||
return existsDuplicateData(r.record)
|
// 使用不可を設定
|
||||||
.then(function (isExists) {
|
setDisabledField(r.record);
|
||||||
if (isExists) {
|
|
||||||
// 重複するデータが既に存在する場合
|
|
||||||
alert("既に登録済です。");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 就業届テーブルにデータを作成
|
// レコードに値を設定
|
||||||
return setSyuugyouTodokeTable(r.record).then(function () {
|
kintone.app.record.set(r);
|
||||||
// 使用不可を設定
|
});
|
||||||
setDisabledField(r.record);
|
})
|
||||||
|
})
|
||||||
// レコードに値を設定
|
.then(function () {
|
||||||
kintone.app.record.set(r);
|
// スピナーを非表示
|
||||||
});
|
pvc.util.ui.hideSpinner();
|
||||||
})
|
})
|
||||||
.then(function () {
|
.catch(function (error) {
|
||||||
// スピナーを非表示
|
pvc.util.ui.hideSpinner();
|
||||||
pvc.util.ui.hideSpinner();
|
console.error(error);
|
||||||
})
|
alert("システムエラーが発生しました");
|
||||||
.catch(function (error) {
|
});
|
||||||
pvc.util.ui.hideSpinner();
|
|
||||||
console.error(error);
|
|
||||||
alert("システムエラーが発生しました");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
@@ -719,6 +716,21 @@
|
|||||||
return strValue.length === 6 && 1 <= mm && mm <= 12;
|
return strValue.length === 6 && 1 <= mm && mm <= 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 指定されたユーザーコードのシステムコントロール情報を取得してフィールドに設定します。
|
||||||
|
* @param {kintone.AppRecord__勤怠申請入力_内勤者用} record
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
function fetchAndSetSystemControlInfo(record) {
|
||||||
|
var userCode = record.氏名.value.length > 0 ? record.氏名.value[0].code : "";
|
||||||
|
return getSystemControlRecord(userCode).then(function (systemRecord) {
|
||||||
|
if (systemRecord != null) {
|
||||||
|
setSystemControlField(systemRecord, record);
|
||||||
|
setSystemInfo(record);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* システムコントロールのレコードを取得します。
|
* システムコントロールのレコードを取得します。
|
||||||
* @param {string} userCode - ユーザーコード(氏名.コード)
|
* @param {string} userCode - ユーザーコード(氏名.コード)
|
||||||
Reference in New Issue
Block a user