お世話になります。
コピー機のカウンタ枚数の先月分と今月分の差分を最終的に出したいのですが、
先月のデータがあるとしてのお話ですが
顧客ID customer_id
今回値モノクロ current_monochrome_count
今回値カラー current_color_count
前回値モノクロ prev_monochrome_count
前回値カラー prev_color_count
今回検針日 current_inspection_date
前回検針日 prev_inspection_date
のフィールドを設けます。
先月のデータは例えば
顧客ID001、今回値モノクロ:1000、今回値カラー:2000、今回検診日:2024/7/30
と入っているとします。
今月のデータを新規として
顧客ID:001、今回値モノクロ:2000、今回値カラー:2500、今回検診日:2024/8/30
となるcsvを取り込みます。
取込後、一覧画面のボタンを表示させ
ボタンを押すと先月のデータが各前回値のフィールドに入る
(反映後顧客ID:001、前回値モノクロ:1000、前回値値カラー:2000、前回検診日:2024/7/30(ここは日付+1日にしたい意向です))
ようにしたいと考えています。
ボタンは反応しているのですが
データが反映されないので何か根本的に違うところがあれば
ご指南いただけますでしょうか?
恐れ入りますが、宜しくお願い致します。
(function() {
‘use strict’;
// 一覧ビューにボタンを追加
kintone.events.on('app.record.index.show', function(event) {
if (document.getElementById('updatePrevValuesBtn') !== null) {
return;
}
var myButton = document.createElement('button');
myButton.id = 'updatePrevValuesBtn';
myButton.innerHTML = '前回値を更新';
// ボタンがクリックされた時の処理
myButton.onclick = async function() {
var records = event.records;
for (var i = 0; i < records.length; i++) {
var customerId = records[i].customer_id.value;
var currentDate = new Date(records[i].current_inspection_date.value);
// 前月のレコードを取得
var query = 'customer_id = "' + customerId + '" and current_inspection_date < "' + currentDate.toISOString() + '" order by current_inspection_date desc limit 1';
var prevRecord = await kintone.api(kintone.api.url('/k/v1/records', true), 'GET', {
app: kintone.app.getId(),
query: query
});
if (prevRecord.records.length > 0) {
var prevData = prevRecord.records[0];
var recordId = records[i].$id.value;
// フィールドを更新
var updateRecord = {
app: kintone.app.getId(),
id: recordId,
record: {
prev_monochrome_count: {
value: prevData.current_monochrome_count.value
},
prev_color_count: {
value: prevData.current_color_count.value
},
prev_inspection_date: {
value: new Date(currentDate.setDate(1)).toISOString().split('T')[0]
}
}
};
await kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', updateRecord);
}
}
alert('前回値の更新が完了しました');
location.reload(); // 更新後にページをリロード
};
kintone.app.getHeaderMenuSpaceElement().appendChild(myButton);
});
})();