納品先や店舗(得意先)が異なる場合でも、親会社や特定の「請求先」ごとに受注データを1つの請求データ(請求書)にまとめて作成・集約することができます。
「顧客マスタ」と「請求先マスタ」を分けて管理し、自動処理の「レコード検索パーツ」「条件分岐パーツ」「レコード登録/更新パーツ」を組み合わせることで、集計・転記の手間やミスを防止できます。
本運用を実現するために、以下のDB構造およびリレーション(DBリンク)を用意します。
| DB名 | 役割・概要 | 主な保持項目 | DBリンク設定 |
|---|---|---|---|
| 請求先マスタ | 請求書の発行先・入金元となる会社情報を管理 | 請求先コード、請求先名、締め日 など | ― |
| 顧客マスタ(得意先) | 実際の受注先・納品先(店舗や事業所など)を管理 | 顧客コード、顧客名、住所 など | 請求先マスタ へのDBリンクを設定 |
| 受注DB | 日々の受注伝票・明細データを登録 | 受注No、受注日、金額、顧客ID、請求先ID など | 顧客マスタ へのDBリンクを設定 (従属項目で「請求先ID」を自動セット) |
| 請求DB | まとめられた請求データを管理(集約先) | 請求No、請求先ID、請求月、合計金額、ステータス など | 請求先マスタ へのDBリンクを設定 |
受注DBから実行し、「同じ請求先・同じ請求月」の請求が既に存在すれば合算(更新)し、存在しなければ新規作成する自動処理を作成します。
【自動処理の基本情報】
集約先である「請求DB」に、処理対象と同じ請求先・請求月のデータが既に存在するか検索します。
請求DB:請求先ID = 【選択レコード】[受注DB]:請求先ID(と等しい)請求DB:請求月 = 【選択レコード】[受注DB]:請求月(と等しい)請求DB:ステータス = 請求前(と等しい)既に同月・同請求先の請求レコードが存在するため、そのレコードの金額を更新(加算)します。
【検索レコード(ステップ1)】[請求DB]【元の値】+【選択レコード】[受注DB]:受注金額該当する請求データがまだ存在しないため、新しく請求を作成します。
【選択レコード】[受注DB]:請求先ID【選択レコード】[受注DB]:請求月【選択レコード】[受注DB]:受注金額請求前二重処理を防止するため、処理が完了した受注レコードのステータスを更新します。
【選択レコード】[受注DB]処理済請求処理ステータス=未処理)から対象レコードを一括選択し、サブメニューから自動処理を一括実行することで手間を削減できます。(記事ID:2975)