現在、受注アプリに登録されているレコードの内、請求アプリの一覧画面で指定した請求日のレコードを一括で請求アプリに登録する機能を改修しています。
改修の内容としては前回請求額と前回入金額を顧客コードでクエリ検索し、配列の0番目を取得して前回請求額と前回入金額を一括登録する際にフィールドに設定したいと思っています。
コールバックの中では問題なく欲しい情報が取れているのですが、同期処理の書き方が悪いのかbill1とbill2の中身が更新されず0のままでうまく動いてくれません。
そもそもkintone.promiseの書き方であっているのかどうかも定かじゃなく、間違っている箇所を教えていただきたいです。
list[l]の配列の中に得意先コードが入っているので上の方で別の処理をしながらforでtar.push(t2)まで回しています。
// 得意先コード取得
let cl_cd = list[l];
// 請求書値格納変数
let bill1 = 0; // 前回請求額
let bill2 = 0; // 前回入金額
// クエリ作成
let param = {
"app":11,
"query":"得意先コード = \"" + cl_cd + "\""
};
// クエリ実行
return new kintone.Promise(function(resolve, reject) {
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', param, function(resp){
if( resp.records.length != 0 ){
bill1 = resp.records[0].御売上額.value;
bill2 = resp.records[0].入金合計.value;
}
resolve(event);
},function(error){
console.log(error);
alert("エラーが発生しました。");
reject(event);
});
d.push({
"得意先コード":{
"value":list[l]
},
"請求":{
"value":ar
},
"合計税抜":{
"value":Math.floor(t)
},
"合計税込":{
"value":Math.floor(t2)
},
"消費税":{
"value":Math.floor(Number(t2)-Number(t))
},
"消費税8":{
"value":s8
},
"消費税10":{
"value":s10
},
// 行数フィールドへ値を入れる 2021-03-05 add
"行数":{
"value":ar.length
},
"請求日":{
"value":date
},
"支払期日":{
"value":datelim
},
"前回請求額":{
"value":bill1
},
"前回入金額":{
"value":bill2
},
"入金":{
"value":[
{
"value":
{
"入金額":{
"value":0
},
"区分":{
"value":"入金"
}
}
}
]
}
});
if(list[l]=="0000000"){
d[l].得意先コード.value = "";
}
tar.push(t2);
});
var body2 = {
"app":11,
"records":d
};