kddi_invoice_multifunctionprinter 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.txt +4 -0
- data/README.md +92 -0
- data/lib/kddi_invoice_multifunctionprinter/version.rb +5 -0
- data/lib/kddi_invoice_multifunctionprinter.rb +6 -0
- metadata +49 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2b508af5bda3607a38a9b73c1dbd27cdf3f3e985f45229f89ec0223b5f3f950e
|
4
|
+
data.tar.gz: aa3d06d10cb9a49841fea9591606d0505f2178905546cf6b50569ce4c13edfb5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fe8a0f644171266480150a144a770e0811aba3a781d76b5c0e41876200f0da6a6b924ee9c44bb67ef4fdb0ae4d9a29c4af9e83d86a8b5e2cfd4f3fbc8afcad12
|
7
|
+
data.tar.gz: 266496e26de4ae347aaaa38eb66bfd9b2d197c8ea9d65d1327ae1ca6af8d978fe543aa891f5ac1d24fd88625df5ea7ebd5d82c092321aedcefd2254b9c9113d1
|
data/LICENSE.txt
ADDED
data/README.md
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
|
2
|
+
> 社内専用 gem:KDDI 請求書の「グループ別集計表」を抽出・整形し、レポートを生成します。
|
3
|
+
|
4
|
+
## 概要
|
5
|
+
|
6
|
+
この gem は、KDDI株式会社から発行された請求書ファイル(PDF/CSV)に含まれる「グループ別集計表」(③) のみを対象に、以下の手順でデータを抽出・整形します。
|
7
|
+
|
8
|
+
1. **テーブル化**: グループ番号/対象院/費用項目/金額 を表形式でまとめる
|
9
|
+
2. **ソート**: 費用項目別に並び替えたテーブルを作成する
|
10
|
+
3. **集計**: 費用項目ごとの行数と合計金額、および全費用項目の合計金額を算出する
|
11
|
+
|
12
|
+
> ⚠️ KDDI株式会社以外の請求書が入力された場合は、その旨を返して処理を終了します。
|
13
|
+
|
14
|
+
## 特徴
|
15
|
+
|
16
|
+
- KDDI 以外の請求書は自動判定してスキップ
|
17
|
+
- テーブルは内部で `Array<Hash>` として表現し、必要に応じて CSV などにエクスポート可能
|
18
|
+
- 社内運用に最適化されたシンプル設計
|
19
|
+
|
20
|
+
## インストール
|
21
|
+
|
22
|
+
社内 gem サーバーからインストール:
|
23
|
+
|
24
|
+
```
|
25
|
+
gem install kddi_invoice_multifunctionprinter --source https://gems.internal.example.com
|
26
|
+
```
|
27
|
+
|
28
|
+
または、ローカル開発用:
|
29
|
+
```
|
30
|
+
gem build kddi_invoice_multifunctionprinter.gemspec
|
31
|
+
gem install ./kddi_invoice_multifunctionprinter-0.1.0.gem
|
32
|
+
```
|
33
|
+
|
34
|
+
## 使い方
|
35
|
+
請求書ファイルを指定して実行するだけで、3つのアウトプットを得られます。
|
36
|
+
```
|
37
|
+
require 'kddi_invoice_multifunctionprinter'
|
38
|
+
|
39
|
+
# Extractor を初期化
|
40
|
+
extractor = KddiInvoiceMultifunctionprinter::Extractor.new(
|
41
|
+
input_path: 'path/to/invoice.pdf',
|
42
|
+
output_dir: 'path/to/output_dir'
|
43
|
+
)
|
44
|
+
|
45
|
+
# 抽出&レポート生成
|
46
|
+
result = extractor.extract!
|
47
|
+
|
48
|
+
# result には以下の構造を持つハッシュが返ります
|
49
|
+
# {
|
50
|
+
# raw_table: [ { group: '1', office: '本社', item: 'リース料', amount: 10000 }, … ],
|
51
|
+
# sorted_table: [ { group: '1', office: '本社', item: 'カウンター料金', amount: 5000 }, … ],
|
52
|
+
# summary: { 'カウンター料金' => { count: 2, total: 10000 }, … },
|
53
|
+
# grand_total: 30000
|
54
|
+
# }
|
55
|
+
|
56
|
+
puts "Raw Table:"
|
57
|
+
puts result[:raw_table].to_csv
|
58
|
+
|
59
|
+
puts "Sorted by 費用項目:"
|
60
|
+
puts result[:sorted_table].to_csv
|
61
|
+
|
62
|
+
puts "Summary per 費用項目:"
|
63
|
+
result[:summary].each do |item, stats|
|
64
|
+
puts "#{item}: #{stats[:count]} 行, 合計 ¥#{stats[:total]}"
|
65
|
+
end
|
66
|
+
|
67
|
+
puts "全費用項目合計: ¥#{result[:grand_total]}"
|
68
|
+
```
|
69
|
+
|
70
|
+
### 抽出ロジック詳細
|
71
|
+
- 対象範囲: PDF/CSV 内の「③グループ別集計表」のみをパース
|
72
|
+
- グループ番号: 青背景の行にある「●グループ:<番号>」
|
73
|
+
- 対象院: 同じく青背景で示される院名(省略禁止)
|
74
|
+
- 費用項目: 行頭に「▼」が付き、「カウンター料金」「保守オプション」「リース料」のいずれか("まとめてオフィス/" は除外)
|
75
|
+
- 金額: 項目に続く数字。末尾の "U" は除外して整数化
|
76
|
+
|
77
|
+
## 開発/テスト
|
78
|
+
```
|
79
|
+
# クローン
|
80
|
+
git clone git@internal.example.com:tkucho/kddi_invoice_multifunctionprinter.git
|
81
|
+
cd kddi_invoice_multifunctionprinter
|
82
|
+
|
83
|
+
# 依存インストール
|
84
|
+
bundle install
|
85
|
+
|
86
|
+
# テスト実行
|
87
|
+
bundle exec rspec
|
88
|
+
```
|
89
|
+
|
90
|
+
## ライセンス
|
91
|
+
社内専用プロプライエタリソフトウェア
|
92
|
+
All rights reserved.
|
metadata
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: kddi_invoice_multifunctionprinter
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- tkucho
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-07-23 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: 'KDDIの複合機に関する請求書の内訳を抽出し、支払申請の費用負担部署入力を補助します。実際にターゲットするのは、「グループ別集計表」でここにある明細を忠実にpickupし、費用項目毎の並び替えに加え、合計金額の算出も実施します。
|
14
|
+
|
15
|
+
'
|
16
|
+
email:
|
17
|
+
- t.kucho@virginiaclass.jp
|
18
|
+
executables: []
|
19
|
+
extensions: []
|
20
|
+
extra_rdoc_files: []
|
21
|
+
files:
|
22
|
+
- LICENSE.txt
|
23
|
+
- README.md
|
24
|
+
- lib/kddi_invoice_multifunctionprinter.rb
|
25
|
+
- lib/kddi_invoice_multifunctionprinter/version.rb
|
26
|
+
homepage: https://rubygems.org/gems/kddi_invoice_multifunctionprinter
|
27
|
+
licenses:
|
28
|
+
- Nonstandard
|
29
|
+
metadata: {}
|
30
|
+
post_install_message:
|
31
|
+
rdoc_options: []
|
32
|
+
require_paths:
|
33
|
+
- lib
|
34
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
requirements: []
|
45
|
+
rubygems_version: 3.0.3.1
|
46
|
+
signing_key:
|
47
|
+
specification_version: 4
|
48
|
+
summary: KDDI請求書内訳を抽出
|
49
|
+
test_files: []
|