# ERPシステム 財務管理モジュール 論理データモデル

以下に、ERPシステムの財務管理モジュールに必要な論理データモデルをmermaidで示します。

```mermaid
erDiagram
    %% 基本マスタ
    顧客マスタ ||--o{ 請求条件マスタ : "設定する"
    顧客マスタ ||--o{ 売上データ : "関連付く"
    顧客マスタ ||--o{ 請求書 : "宛先となる"
    顧客マスタ ||--o{ 債権情報 : "所有する"
    
    銀行口座マスタ ||--o{ 銀行データ : "記録する"
    銀行口座マスタ ||--o{ 振込データ : "使用する"
    
    請求書テンプレート ||--o{ 電子請求書 : "適用する"
    
    %% 売上・請求関連
    売上データ ||--o{ 請求書 : "元となる"
    売上データ {
        string 売上ID PK
        string 顧客ID FK
        date 売上日
        decimal 売上金額
        string 売上内容
        string 取引条件
        string 検証ステータス "検証済/未検証/エラー"
        date 取込日時
        string 外部システム参照ID
    }
    
    請求書 ||--o{ 請求明細 : "含む"
    請求書 ||--o{ 電子請求書 : "生成する"
    請求書 ||--o{ 請求書発行記録 : "記録する"
    請求書 ||--o{ 債権情報 : "生成する"
    請求書 {
        string 請求書ID PK
        string 顧客ID FK
        date 請求日
        date 支払期限
        decimal 請求金額合計
        string 請求ステータス "未発行/発行済/入金済"
        string 請求条件
        string 通貨コード
        string 備考
    }
    
    請求明細 {
        string 請求明細ID PK
        string 請求書ID FK
        string 売上ID FK
        string 明細内容
        decimal 金額
        decimal 税率
        decimal 税額
    }
    
    電子請求書 {
        string 電子請求書ID PK
        string 請求書ID FK
        string テンプレートID FK
        string ファイルパス
        string ファイル形式 "PDF/XML"
        boolean 電子署名付与済
        date 生成日時
    }
    
    請求書発行記録 {
        string 発行記録ID PK
        string 請求書ID FK
        date 発行日時
        string 配信方法 "メール/ポータル/EDI"
        string 配信先
        boolean 既読フラグ
        date 既読日時
    }
    
    請求条件マスタ {
        string 請求条件ID PK
        string 顧客ID FK
        integer 請求サイクル "月次/週次/日次"
        integer 支払期限日数
        string 請求方法 "電子/紙/EDI"
        string 請求書送付先メール
        string 集計方法 "月締め/都度"
        string 通貨コード
        string 備考
    }
    
    %% 債権管理関連
    債権情報 ||--o{ 未入金情報 : "検出する"
    債権情報 ||--o{ 消込 : "消し込まれる"
    債権情報 {
        string 債権ID PK
        string 顧客ID FK
        string 請求書ID FK
        date 発生日
        date 支払期限
        decimal 債権額
        decimal 消込済金額
        decimal 残高
        string 債権ステータス "未入金/一部入金/入金済"
        integer 経過日数
    }
    
    未入金情報 ||--o{ 催促 : "対象となる"
    未入金情報 {
        string 未入金ID PK
        string 債権ID FK
        string 顧客ID FK
        string 請求書ID FK
        date 支払期限
        decimal 未入金額
        integer 期日超過日数
        date 抽出日
        string 処理ステータス "未処理/処理中/処理済"
    }
    
    催促 {
        string 催促ID PK
        string 未入金ID FK
        date 催促日時
        string 催促方法 "メール/電話/書面"
        string 催促内容
        string 担当者ID
        string 顧客対応内容
        date 入金予定日
    }
    
    催促ルールマスタ {
        string ルールID PK
        integer 期日超過日数
        string テンプレートID
        string 催促方法
        integer 送信頻度
        boolean 自動送信フラグ
    }
    
    %% 入金管理関連
    銀行データ ||--o{ 消込 : "照合する"
    銀行データ {
        string 銀行データID PK
        string 銀行口座ID FK
        date 取引日
        time 取引時間
        decimal 入金額
        string 振込名義
        string 取引内容
        string 取引区分 "入金/出金"
        boolean 消込済フラグ
        date 取得日時
    }
    
    消込 {
        string 消込ID PK
        string 銀行データID FK
        string 債権ID FK
        decimal 消込金額
        date 消込日
        string 消込タイプ "自動/AI/手動"
        string 処理者ID
        string 備考
    }
    
    AI学習データ {
        string 学習データID PK
        string 振込名義
        string 顧客ID FK
        string パターン
        date 登録日
        integer 使用回数
        decimal 信頼度
    }
    
    仕訳データ ||--o{ 総勘定元帳 : "転記する"
    仕訳データ ||--o{ 補助元帳 : "転記する"
    仕訳データ {
        string 仕訳ID PK
        date 仕訳日
        string 取引内容
        decimal 金額
        string 借方勘定科目
        string 借方補助科目
        string 貸方勘定科目
        string 貸方補助科目
        string 承認ステータス "未承認/承認済/差戻"
        string 承認者ID
        date 承認日
        string 仕訳区分 "通常/決算整理"
        string 消込ID FK
    }
    
    %% 資金管理関連
    銀行残高 {
        string 残高ID PK
        string 銀行口座ID FK
        date 日付
        decimal 残高
        decimal 前日比増減
    }
    
    資金繰り計画 {
        string 計画ID PK
        string 計画種別 "日次/週次/月次"
        date 開始日
        date 終了日
        decimal 期首残高
        decimal 期末残高予測
        string 承認ステータス
        string 承認者ID
        date 作成日
    }
    
    資金繰り計画明細 {
        string 明細ID PK
        string 計画ID FK
        date 日付
        string 区分 "入金/出金"
        string 内容
        decimal 金額
        string 確度 "確定/高/中/低"
    }
    
    %% 帳簿管理関連
    総勘定元帳 {
        string 総勘定元帳ID PK
        string 勘定科目コード
        date 仕訳日
        string 仕訳ID FK
        decimal 借方金額
        decimal 貸方金額
        decimal 残高
        string 摘要
    }
    
    補助元帳 {
        string 補助元帳ID PK
        string 勘定科目コード
        string 補助科目コード
        date 仕訳日
        string 仕訳ID FK
        decimal 借方金額
        decimal 貸方金額
        decimal 残高
        string 摘要
    }
    
    %% 支払管理関連
    支払依頼 {
        string 支払依頼ID PK
        string 依頼部門ID
        string 依頼者ID
        date 依頼日
        date 支払予定日
        decimal 支払金額
        string 支払先ID
        string 支払内容
        string 承認ステータス
        string 承認者ID
        date 承認日
    }
    
    支払予定 {
        string 支払予定ID PK
        string 支払依頼ID FK
        date 支払予定日
        decimal 支払予定額
        string 支払方法
        string 銀行口座ID FK
        string 支払ステータス "未処理/処理中/完了"
    }
    
    振込データ {
        string 振込データID PK
        string 支払予定ID FK
        string 銀行口座ID FK
        date 振込日
        decimal 振込金額
        string 振込先銀行名
        string 振込先支店名
        string 振込先口座種別
        string 振込先口座番号
        string 振込先名義
        string 処理ステータス
        date 送信日時
    }
    
    支払完了記録 {
        string 記録ID PK
        string 振込データID FK
        date 完了日時
        string 処理結果
        string 処理者ID
    }
    
    %% レポート関連
    財務諸表 {
        string 財務諸表ID PK
        string 種類 "貸借対照表/損益計算書/キャッシュフロー計算書"
        date 対象年月日
        string 承認ステータス
        string 承認者ID
        date 作成日
        date 承認日
    }
    
    財務諸表明細 {
        string 明細ID PK
        string 財務諸表ID FK
        string 項目名
        decimal 金額
        integer 表示順
        string 親項目ID
    }
    
    %% ユーザー管理関連
    ユーザーマスタ {
        string ユーザーID PK
        string 氏名
        string 役職
        string 部門ID
        string メールアドレス
        string 権限グループ
        boolean アクティブフラグ
    }
    
    %% 監査・内部統制関連
    監査証跡 {
        string 証跡ID PK
        date 操作日時
        string ユーザーID
        string 操作内容
        string 対象エンティティ
        string 対象ID
        string 変更前データ
        string 変更後データ
        string IPアドレス
    }
```

## エンティティの説明

### 基本マスタ

1. **顧客マスタ**
   - 取引先企業の基本情報を管理するエンティティ
   - 顧客ID、企業名、住所、連絡先、取引条件などの情報を保持
   - 請求書発行や債権管理の基本となる情報

2. **銀行口座マスタ**
   - 自社が保有する銀行口座情報を管理するエンティティ
   - 銀行名、支店名、口座種別、口座番号、残高などの情報を保持
   - 入金管理や支払処理の基盤となる情報

3. **請求書テンプレート**
   - 電子請求書生成に使用するテンプレート情報を管理するエンティティ
   - レイアウト、ロゴ、固定文言などの情報を保持
   - 顧客ごとにカスタマイズ可能なテンプレート管理を可能にする

### 売上・請求関連

4. **売上データ**
   - 外部システムから取得した売上情報を管理するエンティティ
   - 売上日、金額、内容、取引条件などの情報を保持
   - 請求書生成の基礎となるデータ

5. **請求書**
   - 顧客に対する請求情報を管理するエンティティ
   - 請求日、支払期限、請求金額合計などの情報を保持
   - 売上データから自動生成され、債権情報の基礎となる

6. **請求明細**
   - 請求書の明細項目を管理するエンティティ
   - 明細内容、金額、税率、税額などの情報を保持
   - 請求書と売上データを紐づける中間テーブルの役割も果たす

7. **電子請求書**
   - 生成された電子請求書の情報を管理するエンティティ
   - ファイルパス、ファイル形式、電子署名情報などを保持
   - 請求書テンプレートを適用して生成される

8. **請求書発行記録**
   - 請求書の発行・送信履歴を管理するエンティティ
   - 発行日時、配信方法、配信先、既読状況などの情報を保持
   - 請求書の配信状況追跡に使用

9. **請求条件マスタ**
   - 顧客ごとの請求条件を管理するエンティティ
   - 請求サイクル、支払期限日数、請求方法などの情報を保持
   - 請求書自動生成の条件設定として使用

### 債権管理関連

10. **債権情報**
    - 顧客に対する債権情報を管理するエンティティ
    - 発生日、支払期限、債権額、残高などの情報を保持
    - 請求書発行時に自動生成され、入金によって消し込まれる

11. **未入金情報**
    - 期日を過ぎた未入金案件を管理するエンティティ
    - 支払期限、未入金額、期日超過日数などの情報を保持
    - 債権情報から自動抽出され、催促の対象となる

12. **催促**
    - 未入金案件に対する催促履歴を管理するエンティティ
    - 催促日時、催促方法、催促内容などの情報を保持
    - 未入金情報に対する対応記録として使用

13. **催促ルールマスタ**
    - 自動催促の条件設定を管理するエンティティ
    - 期日超過日数、テンプレートID、催促方法などの情報を保持
    - 自動催促メール送信の基準として使用

### 入金管理関連

14. **銀行データ**
    - 銀行システムから取得した入出金データを管理するエンティティ
    - 取引日、金額、振込名義、取引内容などの情報を保持
    - 消込処理の対象となるデータ

15. **消込**
    - 入金データと債権情報の消込結果を管理するエンティティ
    - 消込金額、消込日、消込タイプなどの情報を保持
    - 債権管理の状態更新と仕訳データ生成の基礎となる

16. **AI学習データ**
    - AI照合のための学習データを管理するエンティティ
    - 振込名義、顧客ID、パターン情報などを保持
    - 入金データの自動消込精度向上のために使用

17. **仕訳データ**
    - 会計処理のための仕訳情報を管理するエンティティ
    - 仕訳日、取引内容、金額、勘定科目などの情報を保持
    - 消込結果から自動生成され、総勘定元帳・補助元帳に転記される

### 資金管理関連

18. **銀行残高**
    - 銀行口座ごとの残高情報を管理するエンティティ
    - 日付、残高、前日比増減などの情報を保持
    - 日次資金管理の基礎データとして使用

19. **資金繰り計画**
    - 資金繰り計画の基本情報を管理するエンティティ
    - 計画種別、期間、期首残高、期末残高予測などの情報を保持
    - 日次/週次/月次の資金繰り管理に使用

20. **資金繰り計画明細**
    - 資金繰り計画の明細項目を管理するエンティティ
    - 日付、区分、内容、金額、確度などの情報を保持
    - 将来の入出金予測の詳細情報として使用

### 帳簿管理関連

21. **総勘定元帳**
    - 勘定科目ごとの取引履歴を管理するエンティティ
    - 勘定科目、仕訳日、金額、残高などの情報を保持
    - 財務諸表作成の基礎データとして使用

22. **補助元帳**
    - 補助科目ごとの取引履歴を管理するエンティティ
    - 勘定科目、補助科目、仕訳日、金額、残高などの情報を保持
    - 詳細な会計情報の管理に使用

### 支払管理関連

23. **支払依頼**
    - 各部門からの支払依頼情報を管理するエンティティ
    - 依頼部門、依頼者、支払予定日、金額などの情報を保持
    - 承認ワークフローの起点となるデータ

24. **支払予定**
    - 承認された支払情報を管理するエンティティ
    - 支払予定日、支払予定額、支払方法などの情報を保持
    - 支払スケジュール管理に使用

25. **振込データ**
    - 銀行への振込データを管理するエンティティ
    - 振込先情報、振込金額、振込日などの情報を保持
    - 銀行システムへの送信データとして使用

26. **支払完了記録**
    - 支払処理の完了記録を管理するエンティティ
    - 完了日時、処理結果などの情報を保持
    - 支払状況の追跡に使用

### レポート関連

27. **財務諸表**
    - 財務諸表の基本情報を管理するエンティティ
    - 種類、対象年月日、承認状況などの情報を保持
    - 決算処理の最終成果物として使用

28. **財務諸表明細**
    - 財務諸表の明細項目を管理するエンティティ
    - 項目名、金額、表示順などの情報を保持
    - 財務諸表の詳細情報として使用

### ユーザー管理関連

29. **ユーザーマスタ**
    - システムユーザー情報を管理するエンティティ
    - 氏名、役職、部門、権限などの情報を保持
    - 各種操作の権限管理や監査証跡の記録に使用

### 監査・内部統制関連

30. **監査証跡**
    - システム操作の履歴を管理するエンティティ
    - 操作日時、ユーザー、操作内容などの情報を保持
    - 内部統制やコンプライアンス対応のために使用

このデータモデルは、ERPシステムの財務管理モジュールにおける売上データの取得から請求書発行、債権管理、入金消込、資金管理、会計処理、支払管理、財務報告に至るまでの一連のプロセスをカバーしています。AI照合機能や自動催促機能などの高度な機能もサポートする設計となっています。