(function() {
"use strict";
var autoNo;
var orderNo;
var sort = function(table, orderBy, isDesc) {
table.sort(function(a, b) {
var v1 = a.value[orderBy].value;
var v2 = b.value[orderBy].value;
var pos = isDesc ? -1 : 1;
if (v1 > v2) {
return pos;
}
if (v1 < v2) {
return pos * -1;
}
});
return table;
};
// 伝票番号アプリ保存時
kintone.events.on(['app.record.create.submit.success', 'app.record.edit.submit.success'], function(event) {
var record = event.record;
var clientRecordId = record.FG顧客キーコード.value;
var orderPath = record.FG受注経路.value;
var relatedAppId = kintone.app.getRelatedRecordsTargetAppId('FG注文一覧');
var query = 'FGキーコード = "' + clientRecordId + '" and FG受注経路 in ("' + orderPath + '") and FG受注No = "" order by FG注文番号 asc';
var outputFields = ['FG商品一覧テーブル'
,'FG注文番号'
,"FG顧客ランク"
,"FG顧客コード"
,"FG家族コード"
,"FG受注日時"
,"FG注文者姓名"
,"FG注文者セイメイ"
,"FG注文者部署名"
,"FG注文者担当者名"
,"FG注文者担当者カナ"
,"FG注文者電話番号"
,"FG注文者FAX番号"
,"FG注文者郵便番号"
,"FG注文者住所1"
,"FG注文者住所2"
,"FG注文者住所カナ1"
,"FG注文者住所カナ2"
,"FG注文者売掛可否"
,"FG注文者備考"
,"FG配送先コード"
,"FG受注届先No"
,"FG配送先姓名"
,"FG配送先セイメイ"
,"FG配送先部署名"
,"FG配送先担当者名"
,"FG配送先担当者名カナ"
,"FG配送先電話番号"
,"FG配送先FAX番号"
,"FG配送先郵便番号"
,"FG配送先住所1"
,"FG配送先住所2"
,"FG配送先住所カナ1"
,"FG配送先住所カナ2"
,"FG配送先法人個人区分"
,"FG配送指定日"
,"FG配送指定時間"
,"FG配送指定月"
,"FG配送指定旬"
,"FG表書き"
,"FG名入れ_1行目"
,"FG名入れ_2行目"
,"FG名入れ_3行目"
,"FG名入れ_4行目"];
var appUrl = kintone.api.url('/k/v1/records', true);
var params = {
"app": 73,
"query": 'order by FG伝票番号 desc limit 1'
};
kintone.api(appUrl, 'GET', params).then(function(resp) {
autoNo = resp.records[0].FG伝票番号.value;
// 伝票番号が入っている場合はその値を利用する
if (autoNo) {
// 対象レコードがあった場合
if (resp.records.length > 0) {
autoNo = parseInt(autoNo, 10) + 1;
autoNo = '00000' + autoNo;
autoNo = autoNo.substring(autoNo.length - 6);
}
// 対象レコードがなかった場合
} else {
autoNo = '000001';
}
});
params = {
'app': relatedAppId,
'query':query,
'fields': outputFields
};
// 注文管理アプリからの情報取得
kintone.api(appUrl, 'GET', params).then(function(resp) {
var postRecords = [];
var a2 = '';
var a3 = '';
var a4 = '';
var a5 = '';
var a6 = '';
var a7 = '';
var a8 = '';
var a9 = '';
var a10 = '';
var a11 = '';
var a12 = '';
var a13 = '';
var a14 = '';
var a15 = '';
var a16 = '';
var a17 = '';
var a18 = '';
var a19 = '';
var b1= '';
var b2= '';
var b3= '';
var b4= '';
var b5= '';
var b6= '';
var b7= '';
var b8= '';
var b9= '';
var b10 = '';
var b11 = '';
var b12 = '';
var b13 = '';
var b14 = '';
var b15 = '';
var c1 = '';
var c2 = '';
var c3 = '';
var c4 = '';
var c5 = '';
var c6 = '';
var c7 = '';
var c8 = '';
var c9 = '';
orderNo = resp.records[0].FG注文番号.value;
// 取得したレコード分ループ
resp.records.forEach(function(eachRecord) {
var subTable = eachRecord.FG商品一覧テーブル.value;
a2 = eachRecord.FG顧客ランク.value;
a3 = eachRecord.FG顧客コード.value;
a4 = eachRecord.FG家族コード.value;
a5 = eachRecord.FG受注日時.value;
a6 = eachRecord.FG注文者姓名.value;
/*a7 = eachRecord.FG注文者セイメイ.value;
a8 = eachRecord.FG注文者部署名.value;
a9 = eachRecord.FG注文者担当者名.value;
a10 = eachRecord.FG注文者担当者名カナ.value;
a11 = eachRecord.FG注文者電話番号.value;
a12 = eachRecord.FG注文者FAX番号.value;
a13 = eachRecord.FG注文者郵便番号.value;
a14 = eachRecord.FG注文者住所1.value;
a15 = eachRecord.FG注文者住所2.value;
a16 = eachRecord.FG注文者住所カナ.value;
a17 = eachRecord.FG注文者住所カナ.value;
a18 = eachRecord.FG注文者売掛可.value;
a19 = eachRecord.FG注文者備考.value;
b1 = eachRecord.FG配送先コード.value;*/
b2 = eachRecord.FG受注届先No.value;
/*b3 = eachRecord.FG配送先姓名.value;
b4 = eachRecord.FG配送先セイメイ.value;
b5 = eachRecord.FG配送先部署名.value;
b6 = eachRecord.FG配送先担当者名.value;
b7 = eachRecord.FG配送先担当者名カナ.value;
b8 = eachRecord.FG配送先電話番.value;
b9 = eachRecord.FG配送先FAX番号.value;
b10 = eachRecord.FG配送先郵便番号.value;
b11 = eachRecord.FG配送先住所1.value;
b12 = eachRecord.FG配送先住所2.value;
b13 = eachRecord.FG配送先住所カナ.value;
b14 = eachRecord.FG配送先住所カナ.value;
b15 = eachRecord.FG配送先法人個人区分.value;*/
c1 = eachRecord.FG配送指定日.value;
c2 = eachRecord.FG配送指定時間.value;
c3 = eachRecord.FG配送指定月.value;
c4 = eachRecord.FG配送指定旬.value;
c5 = eachRecord.FG表書き.value;
c6 = eachRecord.FG名入れ_1行目.value;
c7 = eachRecord.FG名入れ_2行目.value;
c8 = eachRecord.FG名入れ_3行目.value;
c9 = eachRecord.FG名入れ_4行目.value;
// サブテーブル分ループ
subTable.forEach(function(eachRow) {
if (eachRow.value.FG商品_送料フラグ.value === '商品') {
postRecords.push({
value: {
"FG商品コード": { "value": eachRow.value.FG商品コード.value },
"FG数量": { "value": eachRow.value.FG数量.value },
"FG配送区分": { "value": eachRow.value.FG配送区分.value },
"FG配送元区分": { "value": eachRow.value.FG配送元区分.value },
"FG税区分": { "value": eachRow.value.FG税区分.value }
}
});
}
});
});
postRecords = sort(postRecords, 'FG商品コード', false);
postRecords = sort(postRecords, 'FG税区分', false);
postRecords = sort(postRecords, 'FG配送元区分', false);
postRecords = sort(postRecords, 'FG配送区分', false);
var records = [];
var record = {
'FG商品一覧テーブル': { value: [] },
"FG受注No": { "value":event.record.FG受注No.value },
//注文管理アプリから取得した項目
"FG顧客ランク": { "value": a2 },
"FG顧客コード": { "value": a3 },
"FG家族コード": { "value": a4 },
"FG受注日時": { "value": a5 },
"FG注文者姓名": { "value": a6 },
/*"FG注文者セイメイ": { "value": a7 },
"FG注文者部署名": { "value": a8 },
"FG注文者担当者名": { "value": a9 },
"FG注文者担当者カナ": { "value": a10 },
"FG注文者電話番号": { "value": a11 },
"FG注文者FAX番号": { "value": a12 },
"FG注文者郵便番号": { "value": a13 },
"FG注文者住所1": { "value": a14 },
"FG注文者住所2": { "value": a15 },
"FG注文者住所カナ1": { "value": a16 },
"FG注文者住所カナ2": { "value": a17 },
"FG注文者売掛可否": { "value": a18 },
"FG注文者備考": { "value": a19},
"FG配送先コード": { "value": b1 },*/
"FG受注届先No": { "value": b2 },
/*"FG配送先姓名": { "value": b3 },
"FG配送先セイメイ": { "value": b4 },
"FG配送先部署名": { "value": b5 },
"FG配送先担当者名": { "value": b6 },
"FG配送先担当者カナ": { "value": b7 },
"FG配送先電話番号": { "value": b8 },
"FG配送先FAX番号": { "value": b9 },
"FG配送先郵便番号": { "value": b10 },
"FG配送先住所1": { "value": b11 },
"FG配送先住所2": { "value": b12 },
"FG配送先住所カナ1": { "value": b13 },
"FG配送先住所カナ2": { "value": b14 },
"FG配送先個人法人区分": { "value": b15 },*/
"FG配送指定日": { "value": c1 },
"FG配送指定時間": { "value": c2 },
"FG配送指定月": { "value": c3 },
"FG配送指定旬": { "value": c4 },
"FG表書き": { "value": c5 },
"FG名入れ_1行目": { "value": c6 },
"FG名入れ_2行目": { "value": c7 },
"FG名入れ_3行目": { "value": c8 },
"FG名入れ_4行目": { "value": c9 },
//支払管理アプリの項目
"FG支払方法": { "value":event.record.FG支払方法.value },
"FG売掛方法": { "value":event.record.FG売掛方法.value },
"FGカード会社": { "value":event.record.FGカード会社.value },
"FG請求先区分": { "value":event.record.FG請求先区分.value },
"FG請求先電話番号": { "value":event.record.FG請求先電話番号.value },
"FG請求先セイメイ": { "value":event.record.FG請求先セイメイ.value },
"FG請求先姓名": { "value":event.record.FG請求先姓名.value },
"FG請求先郵便番号": { "value":event.record.FG請求先郵便番号.value },
"FG請求先住所カナ1": { "value":event.record.FG請求先住所カナ1.value },
"FG請求先住所カナ2": { "value":event.record.FG請求先住所カナ2.value },
"FG請求先住所1": { "value":event.record.FG請求先住所1.value },
"FG請求先住所2": { "value":event.record.FG請求先住所2.value },
"FG請求先FAX番号": { "value":event.record.FG請求先FAX番号.value },
"FG請求先個人法人区分": { "value":event.record.FG請求先法人個人区分.value },
"FG請求先部署名": { "value":event.record.FG請求先部署名.value },
"FG請求先担当者名カナ": { "value":event.record.FG請求先担当者名カナ.value },
"FG請求先担当者名": { "value":event.record.FG請求先担当者名.value },
"FG伝票番号": { "value": autoNo },
};
var prevRecord = null;
postRecords.forEach(function(postRecord) {
if (record.FG商品一覧テーブル.value.length >= 6) {
records.push(record);
record = {
'FG商品一覧テーブル': {
value: []
}
};
}
if (prevRecord == null ||
(postRecord.value.FG配送区分.value == prevRecord.value.FG配送区分.value
&& postRecord.value.FG配送元区分.value == prevRecord.value.FG配送元区分.value
&& postRecord.value.FG税区分.value == prevRecord.value.FG税区分.value)) {
record.FG商品一覧テーブル.value.push({
value: {
"FG商品コード": { "value": postRecord.value.FG商品コード.value },
"FG数量": { "value": postRecord.value.FG数量.value },
}
});
} else {
if (record.FG商品一覧テーブル.value.length !== 0) {
records.push(record);
record = {
'FG商品一覧テーブル': {
value: []
}
};
}
record.FG商品一覧テーブル.value.push({
value: {
"FG商品コード": { "value": postRecord.value.FG商品コード.value },
"FG数量": { "value": postRecord.value.FG数量.value },
}
});
}
prevRecord = postRecord;
});
records.push(record);
var postParams = {
app: 73,
records: records
};
kintone.api(appUrl, 'POST', postParams).then(function(){
alert('登録完了');
}).catch(function(error) {
var errmsg = 'レコード更新に失敗しました';
if (error.message !== undefined) {
errmsg += '' + error.message;
}
alert(errmsg);
});
}).catch(function(error) {
var errmsg = 'レコードの取得に失敗しました';
if (error.message !== undefined) {
errmsg += '' + error.message;
}
alert(errmsg);
});
params = {
"app": 73,
"query": 'FG注文番号 = "' + orderNo + '" order by FG注文番号 asc'
};
kintone.api(appUrl, 'GET', params).then(function(resp) {
});
return event;
});
})();