// 割振りデータ仕様(Google SpreadSheet)
// - A列:順番
// 1
// 2
// 3
// - B列:メールアドレス,割振フラグ
// yamadas@puestetra.com,0
// yamamoto@puestetra.com,1
// kato@puestetra.com,0
// ※現在割り振られているのは、"yamamoto@puestetra.com"
const orders = engine.findDataByVarName("q_allocation_data_A");
const allocations = engine.findDataByVarName("q_previousAllocationFlags");
main();
function main(){
// ローカルデータ項目
let orders_arry;
let allocations_arry;
let count;
let targetRowNumber = "not";
let previousRowNumber;
let targetMailAddress;
let targetRow = "";
let previousRow = "";
// データチェック:インプットデータ確認
if ((orders == null)||(orders == "")||(allocations == "")||(allocations == null)){
engine.log("インプットデータ不正:空のデータ有");
return;
}
// 改行区切りでデータ分割(配列化)
orders_arry = new String(orders).split("\n");
allocations_arry = new String(allocations).split("\n");
// データチェック:インプットデータ確認
if (orders_arry.length != allocations_arry.length){
engine.log("インプットデータ不正:メアドか割り振りフラグの数が合わない\n");
engine.log("orders_arry.lenght: " + orders_arry.lenght + " allocations_arry.lenght: " + allocations_arry.length);
return;
}
count = orders_arry.length;
// 前回割り振り対象者検索・割り振り対象者の配列要素取得
for (var i=0; i < count; i++){
engine.log("allocations_arry[i]: " + allocations_arry[i]);
var arry = new String(allocations_arry[i]).split(",");
var mail = arry[0];
var flag = arry[1];
if (flag === "1"){
engine.log("i: " + i);
previousRowNumber = i;
targetRowNumber = i + 1;
break;
}
}
// データチェック:割り振りデータ妥当性
if (targetRowNumber === "not"){
engine.log("インプットデータ不正:前回割り振り者が存在しない\n");
return;
}
// データ最後尾の場合、割り振り者を先頭にセット
if (targetRowNumber === count){
targetRowNumber = 0;
}
// 割り振りデータ更新
targetRow = orders_arry[targetRowNumber] + "\t" + allocations_arry[targetRowNumber].replace("0","1");
previousRow = orders_arry[previousRowNumber] + "\t" + allocations_arry[previousRowNumber].replace("1","0");
// 各データ項目更新
engine.log("targetRowNumber: " + targetRowNumber);
engine.log("targetRow: " + targetRow);
engine.log("previousRow: " + previousRow);
var array = new String(allocations_arry[targetRowNumber]).split(",");
targetMailAddress = array[0];
engine.log("targetMailAddress: " + targetMailAddress);
engine.setDataByVarName("q_Handler",quserDao.findByEmail(targetMailAddress));
engine.setDataByVarName("q_updateDataCurrentAllocation",targetRow);
engine.setDataByVarName("q_updatedDataForPreviousAllocation",previousRow);
return;
}// ****main()ここまで****