注目キーワード
  1. 予実管理

分割請求書を作成する

570-70 | 請求管理


本シナリオは、こちらの記事で公開している内容を詳しく解説したものです。

このフローでは、請求を複数回に分けて行う場合のデータ作成について解説します。
契約アプリに入力する請求情報を元に請求データを自動作成します。

なお、この演習は下記の請求シチュエーションを前提に構成されています。

  • 末日にスケジュール実行し自動で請求データを作成
  • 請求方式は都度請求ではなく締め請求方式
  • 末日締め
  • 当月請求対象の請求がある場合にのみ請求データを自動作成

入力アプリのフィールド構成

契約管理アプリ

  • 契約商品、金額、支払回数をはじめとする契約情報が登録されている
  • 各請求回の請求金額や請求日をテーブル内に登録する
    入力したデータを元に請求データを作成するため、正しく入力することが必須

入金管理アプリ

  • 各顧客の入金情報が登録されている

請求管理アプリ

  • 各顧客の月ごとの請求情報が登録されている
  • 契約管理アプリに登録した請求情報(テーブル)の数分だけ請求月にレコード作成する
  • 全請求情報をテーブルに記載する

1.当月の請求に必要な基本情報を設定する

  1. 入力アプリコマンドを追加し、アプリの選択で「570-70 契約管理」を選択する
  2. フィールドの選択で次のフィールドを選択する
    ・契約番号 ・顧客番号 ・顧客名 ・受注日 ・商品番号 ・商品名 ・金額 ・支払回数 ・請求情報

プレビューはこちらです。契約管理アプリでは、請求情報をテーブルに登録しています。

テーブルに登録した支払い一覧を展開する

契約管理アプリのテーブルに入力した請求情報をレコードに展開します。

  1. テーブル展開コマンドを追加する
  2. 次のように設定する
    レコードに変換するテーブル:請求情報
    レコードに保持するフィールド:請求回、日付、請求額
    ※日付はフィールド名を「請求予定日」に変更する

プレビューで確認するとこのような状態です。

請求予定日を基準に年月を抽出する

請求予定日から年月を抽出します。ここで抽出する年月は、次のステップで今回請求データに絞り込むために作成します。

  1. データ編集コマンドを追加する
  2. 次のように設定する
    結果を保存するフィールド:「年月」という新しいフィールドを作成する
  3. 編集方法で「数式」を選択して、下記の数式を設定する
    =YEAR(日付)&MONTH(日付)

今回請求対象のレコードに絞り込む

  1. フィルタコマンドを追加する
  2. 次のように数式を設定し、絞り込む
    年月=YEAR(TODAY())&MONTH(TODAY())+1

請求日を設定する

  1. データ編集コマンドを追加する
  2. 次のように設定する
    結果を保存するフィールド:「請求日」という新しいフィールドを作成する
  3. 編集方法で「数式」を選択して、下記の数式を設定する
    DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)

プレビューはこのような状態です。

2.請求回数を計算する

請求管理アプリのデータと突き合せて、過去の請求回数と今回が何回目の請求であるか計算します。

  1. 入力アプリコマンドを追加し、アプリの選択で「570-70 請求管理」を選択する
  2. フィールドの選択で次のフィールドを選択する
    ・請求日 ・顧客番号 ・顧客名 ・契約番号 ・商品番号 ・商品名 ・今回請求回 ・今回請求額 ・残額 ・ご請求回数残数

過去の請求回数を計算する

請求管理アプリに登録されている過去の請求回数を計算します。これは、今回が何回目の設定であるかを把握するために行います。

  1. グループ化コマンドを追加する
  2. 次のように設定する
    グループ化するフィールド:顧客番号、顧客名、契約番号、商品番号、商品名
    集計する値が保存されているフィールド:契約番号
    集計した値を保存するフィールド:過去の請求回数
    集計方法:個数

今回の請求回数を算出する (今回が2回目以降の請求の場合)

1つ前のステップで抽出した過去の請求回数を元に、今回が何回目の請求回であるか計算します。

  1. データ編集コマンドを追加する
  2. 次のように設定する
    結果を保存するフィールド:「今回請求回_抽出用」という新しいフィールドを作成する
  3. 編集方法で「数式」を選択して、下記の数式を設定する
    過去の請求回数+1

フィールドタイプを変更する

  1. フィールドタイプ設定コマンドを追加する
  2. 次のように設定する
    変更するフィールド:今回請求回_抽出用
    新しいフィールド名:今回請求回_抽出用
    新しいフィールドタイプ:数値

請求情報と契約情報を突き合わせる

  1. アプリ結合コマンドを追加する
  2. 元になるアプリに「請求日を設定」、結合するアプリに「フィールドタイプ設定」を選択する
  3. 結合方法で「左外部結合」を選択する
  4. 条件フィールドに「契約番号」を選択する

今回の請求回数を設定する (今回が初回請求の場合)

1つ前のステップで2つのアプリを結合した結果「今回請求回_抽出用」が空になるレコードは、今回が初回請求になります。初回請求の場合は、「今回請求回_抽出用」に「1」を設定します。

  1. データ編集コマンドを追加する
  2. 次のように設定する
    結果を保存するフィールド:「今回請求回_抽出用」という既存フィールドを選択する
  3. 編集方法で「数式」を選択して、下記の数式を設定する
    IF(今回請求回_抽出用=””,”1″,今回請求回_抽出用)

必要なフィールドに絞り込む

  1. フィールド選択コマンドを追加し、次のフィールドを選択する
    ・契約番号 ・顧客番号 ・顧客名 ・受注日 ・商品番号 ・商品名 ・金額 ・支払回数
    ・請求回 ・請求額 ・過去の請求回数 ・今回請求回_抽出用 ・請求日

請求残回数を計算する

  1. データ編集コマンドを追加する
  2. 次のように設定する
    結果を保存するフィールド:「残数」という新しいフィールドを作成する
  3. 編集方法で「数式」を選択して、下記の数式を設定する
    IF(支払回数>1,支払回数-今回請求回_抽出用,””)

※ この設定は支払い回数が2回以上の場合にのみ適用されます

3.支払い残額を計算する

入金管理アプリのデータと突き合わせ、残額を計算します

  1. 入力アプリコマンドを追加し、アプリの選択で「570-70 入金管理」を選択する
  2. フィールドの選択で次のフィールドを選択する
    ・顧客番号 ・顧客名 ・入金日 ・入金額

過去の入金額を計算する

  1. グループ化コマンドを追加する
  2. 次のように設定する
    グループ化する項目:顧客番号、顧客名
    集計する値が保存されているフィールド:入金額
    集計した値を保存するフィールド:入金額合計
    集計方法:合計

入金額と請求情報を突き合わせる

  1. アプリ結合コマンドを追加する
  2. 元になるアプリに「請求回数を算出する」、結合するアプリに「過去の入金額を計算」を選択する
  3. 結合方法で「左外部結合」を選択する
  4. 条件フィールドに「顧客番号」を選択する

残額を計算する

  1. データ編集コマンドを追加する
  2. 次のように設定する
    結果を保存するフィールド:「残額」という新しいフィールドを作成する
  3. 編集方法で「数式」を選択して、下記の数式を設定する
    IF(入金額合計<>””,金額-入金額合計,金額)

※ この設定は入金履歴がある場合にのみ適用されます

必要なフィールドに絞り込む

  1. フィールド選択コマンドを追加し、次のフィールドを選択する
    ・契約番号 ・顧客番号 ・顧客名 ・受注日 ・商品番号 ・商品名 ・金額 ・支払回数
    ・請求回 ・請求額 ・過去の請求回数 ・今回請求回_抽出用 ・請求日
    ・残額 ・残数 ・入金額合計 ・請求日

4.全請求情報を明細として結合する

全請求情報が参照できる帳票を作成するため、契約管理アプリで入力した請求情報のデータを結合します。

  1. 入力アプリコマンドを追加し、アプリの選択で「570-70 契約管理」を選択する
  2. フィールドの選択で次のフィールドを選択する
    ・契約番号 ・顧客番号 ・顧客名 ・商品番号 ・商品名 ・金額 ・支払回数 ・請求情報

テーブルに登録した請求情報をレコードに展開する

  1. テーブル展開コマンドを追加する
  2. 次のように設定する
    レコードに変換するテーブル:請求情報
    レコードに保持するフィールド:請求回、日付、請求額

請求データと結合する

  1. アプリ結合コマンドを追加する
  2. 元になるアプリに「フィールド選択(3)」、結合するアプリに「テーブル展開」を選択する
  3. 結合方法で「左外部結合」を選択する
  4. 条件フィールドに「契約番号」を選択する

全請求情報をテーブルに格納する

  1. テーブル作成コマンドを追加する
  2. 次のように設定する
    レコードの保持するフィールド:
    ・契約番号 ・顧客番号 ・顧客名 ・商品番号 ・商品名 ・金額 ・支払回数 ・今回請求回_抽出用
    ・残数 ・残額・請求日 ・請求額
    新しいテーブル名:請求情報
    テーブルに保持するフィールド:日付、請求回_1、請求額_1

5.出力アプリを設定する

  1. 出力アプリコマンドを追加して、アプリの選択で「請求管理」アプリを選択する
  2. 出力方式に「更新」を選択し、「更新または追加」オプションを有効にする
  3. データ編集フローのフィールドで、アプリのフィールドと対になるデータ編集フローのフィールドを選択する
    ※請求管理アプリの「請求回」には「今回請求回_抽出用」を設定する
  4. 更新キーで「請求日」「契約番号」を有効にする

テーブルに出力するデータも下記の通り、同様に設定する
請求回:請求回_1
請求日:日付
請求額:請求額_1

6.出力結果を確認する

「請求管理」アプリに請求データを自動で出力できるようになりました。

サンプルファイルのダウンロードはこちら
https://download.krew.mescius.jp/study/krewdata-drill/pratical/dt570-70installments-invoice.zip

演習をお客様のkintone環境で試す

krewDataのはじめ方
実際の動作を確認できるテンプレートを公開しています。
こちらの記事でご紹介した内容をご自身の環境で試したい方はダウンロードしてご利用ください。