Skip to content

Ruby on Rails 7で実装された適格請求書対応の請求書管理システムです。

Notifications You must be signed in to change notification settings

LovelyThing707/Invoice-management-system

Repository files navigation

請求書管理システム

Ruby on Rails 7で実装された適格請求書対応の請求書管理システムです。

機能

  • 請求書の作成・編集・削除
  • 適格請求書チェック機能
  • PDF生成(Grover使用)
  • 権限管理(Pundit)
  • 監査ログ(PaperTrail + カスタムAuditLog)
  • 確定機能(確定後は編集不可)
  • 送付管理

技術スタック

  • Ruby 3.2.0
  • Rails 7.1
  • PostgreSQL
  • Devise(認証)
  • Pundit(権限管理)
  • Grover(PDF生成)
  • PaperTrail(監査ログ)
  • ActiveStorage(ファイル保存)

セットアップ

1. 依存関係のインストール

bundle install

2. データベースのセットアップ

rails db:create
rails db:migrate
rails db:seed

3. Groverの依存関係

GroverはPuppeteerを使用するため、Node.jsとChrome/Chromiumが必要です。

npm install -g puppeteer

または、システムにChrome/Chromiumがインストールされている必要があります。

4. サーバーの起動

rails server

デフォルトのログイン情報:

  • Email: admin@example.com
  • Password: password123

モデル構成

Issuer(発行者)

  • 自社情報を管理
  • 登録番号(T+13桁)を必須

Customer(請求先)

  • 請求先情報を管理
  • 登録番号は任意(設定されていない場合は警告)

Invoice(請求書)

  • 請求書の基本情報
  • ステータス: draft(下書き)/ final(確定)/ sent(送付済み)
  • 確定時に採番とPDF生成

InvoiceLineItem(明細)

  • 請求書の明細行
  • 税区分: standard(10%)/ reduced(8%)/ exempt(0%)

ドメインサービス

Invoices::Calculator

請求書の金額計算を行います。

Invoices::Validator

請求書のバリデーションを行い、エラーと警告を返します。

Invoices::Finalizer

請求書の確定処理を行います:

  • 請求書番号の採番
  • 金額のスナップショット保存
  • PDF生成と保存
  • ステータス更新

Invoices::PdfGenerator

請求書のPDFを生成します。

権限管理

  • admin: すべての操作が可能
  • accountant: 請求書の確定・送付が可能
  • user: 自分の請求書のみ編集可能

開発フェーズ

Phase 1(実装済み)

  • マスタ管理(Issuer/Customer)
  • 請求書CRUD + 明細
  • Calculator + Validator
  • PDFプレビュー・生成
  • 権限管理(Pundit)

Phase 2(今後実装)

  • CSV出力(会計連携)
  • 送付ログ詳細化

Phase 3(任意)

  • 受領請求書の登録番号実在チェック
  • 承認ワークフロー

ライセンス

MIT License

About

Ruby on Rails 7で実装された適格請求書対応の請求書管理システムです。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors