レコードの詳細画面に再計算ボタンを作成し、ボタンが押されたら別のアプリからデータを取得してサブテーブル内のデータを取得したデータで再度更新するプログラムを作成していますが、うまくいきません。
サブテーブルが1行の場合は動作しますが、複数行になると行が削除されて1行になってしまいます。consoleを見ている限り行IDも問題なく取得出来ています。
何が悪いのでしょうか?
よろしくお願いします。
tbrec = 開いている詳細レコードのサブテーブルのデータ
resp = 別アプリから取得した更新データ
rec = 開いている詳細レコードのサブテーブルを除いたデータ
for( var i = 0; i < tbrec.length; i++ ){
for( var j = 0; j < resp.records.length; j++ ){
if( (tbrec[i].value.伝票No.value == "No." + resp.records[j].レコード番号.value) || (tbrec[i].value.伝票No.value == resp.records[j].レコード番号.value) ){
for( var k = 0; k < resp.records[j].売上.value.length; k++ ){
if( (tbrec[i].value.商品コード.value == resp.records[j].売上.value[k].value.商品コード.value) && ( tbrec[i].value.商品コード.value != "" ) ){
/* サブテーブル内の更新 */
var update = {
"app":11,
"id":rec.record.レコード番号.value,
"record":{
"請求":{
"value":[
{
"id":tbrec[i].id,
"value":{
"商品コード":{
"value":resp.records[j].売上.value[k].value.商品コード.value
},
"日付":{
"value":resp.records[j].納品日.value
},
"伝票No":{
"value":resp.records[j].レコード番号.value
},
"商品名":{
"value":resp.records[j].売上.value[k].value.商品名.value
},
"数量":{
"value":resp.records[j].売上.value[k].value.数量.value
},
"入数":{
"value":resp.records[j].売上.value[k].value.入数.value
},
"ケース":{
"value":resp.records[j].売上.value[k].value.ケース.value
},
"単価":{
"value":resp.records[j].売上.value[k].value.単価.value
},
"単位":{
"value":resp.records[j].売上.value[k].value.単位.value
},
"金額税抜":{
"value":resp.records[j].売上.value[k].value.金額税抜.value
},
"消費税区分":{
"value":resp.records[j].売上.value[k].value.消費税区分.value
},
"金額税込":{
"value":resp.records[j].売上.value[k].value.金額税込.value
},
}
}
]
}
}
}
/* 税抜き・税込み計算 */
t += Number(resp.records[j].売上.value[k].value.金額税抜.value);
t2 += Number(resp.records[j].売上.value[k].value.金額税込.value);
/* 消費税取得 */
s8 += parseInt(resp.records[j].消費税8.value);
s10 += parseInt(resp.records[j].消費税10.value);
}
}
}
if( tbrec[i].value.商品名.value.indexOf('小計') != -1 ){
var update = {
"app":11,
"id":rec.record.レコード番号.value,
"record":{
"請求":{
"value":[
{
"id":tbrec[i].id,
"value":{
"商品名":{
"value":" 小計"+String(resp.records[j].合計税抜.value).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,' )
},
}
}
]
}
}
}
cnt++;
} else if( tbrec[i].value.商品名.value.indexOf('消費税') != -1 ){
var update = {
"app":11,
"id":rec.record.レコード番号.value,
"record":{
"請求":{
"value":[
{
"id":tbrec[i].id,
"value":{
"商品名":{
"value":" 消費税(8%)"+String(resp.records[j].消費税8.value).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,' )+"円"+" 消費税(10%)"+String(resp.records[j].消費税10.value).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,' )+"円"
},
}
}
]
}
}
}
}
}
kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', update, function(up) {
console.log(up);
}, function(error) {
console.log(error);
});
}