データはすべて架空
PROPOSALOPENINGNIGHT

販売管理 › 売上報告書

いつものフォルダのまま、見て分かる画面に。

書類をフォルダで管理する、いまの仕事の進め方に合わせて、直感的に操作・確認できる画面を作っています。最初は「売上報告書」から改善しています。

01

人が確かめるのは、入口と出口だけ

THE IDEA

途中はプログラムが全部確かめ、人には本当に必要なものだけを出します。

人 IN ・ 入口 原本を
フォルダに置く
届いた売上報告書を、取引先のフォルダへそのまま置くだけ。
販売管理
売上報告書
Dビデオ
2026年9月分.xlsx
プログラム AUTO ・ 途中 全部の行を
プログラムが確かめる
読み取り・合計・行数・対象の月を、全部の行で確かめる。人に出すのは次の3つだけ。
判定の1行重要な数字例外の印
人 OUT ・ 出口 つながった表で
まとめて照らす
入力したものが全部つながった表を1か所から書き出し、原本とまとめて照らす。
12架空のシリーズ1DVD312,000
13架空のシリーズ1配信148,500
14架空のシリーズ2DVD96,000
操作の画面には、必要な要件だけを置く。全部の行の一覧は、ふだんは閉じておく
02

途中で人に出すのは、この3つ

WHAT YOU SEE

例:Dビデオの売上報告書(2026年9月分)を置いたとき。

判定の1行
!要確認 2
合計が合わない作品が見つからない

書類1通に1行。付く札は、人が見るべき例外だけ。

問題が無ければ、これだけ:

✓問題なし
重要な数字
原本に書かれた合計650,000
明細を足した額649,000
差1,000
行数6

合計・差・行数だけ。差が0でなければ登録しない。

例外の印
行原本読み取った値
13架空のシリーズ1 ・ 配信 ・ 148,500
14架空のシリース2 ・ DVD ・ 96,000この作品名が見つからない
15架空のシリーズ2 ・ 配信 ・ 61,200
18合計 650,000明細の和は 649,000(差 1,000)

原本の該当箇所に印を付け、右に読み取った値を出す。

03

出口:入力したものが全部つながった表

THE EXPORT

データベースで結合した結果を、1か所から CSV・Excel で書き出す。原本の行番号が付いている。

原本の行取引先作品商品対象月計上月金額(円)
12Dビデオ架空のシリーズ1DVD2026-082026-09312,000
13Dビデオ架空のシリーズ1配信2026-082026-09148,500
14Dビデオ架空のシリーズ2DVD2026-082026-0996,000
15Dビデオ架空のシリーズ2配信2026-082026-0961,200
16Dビデオ架空の短編A配信2026-082026-0923,400
17Dビデオ架空の短編ADVD2026-082026-098,900
合計 = 原本の合計と一致 ✓650,000
人はここだけ原本と照らす取引先・作品・商品・計上月が横に並ぶので、原本の行と1対1で見比べられる
04

正しさの測り方

HOW WE CHECK

人が全部の行を見比べなくても正しいと言えるように、4つの方法で確かめる。

01
1円でも違えば止まる
原本の合計と登録する合計が1円でも違えば、登録しない。行数と対象の月も同じように合わせる。
650,000≠649,000止める
02
答えが分かっている見本で毎回試す
正解が分かっている見本の書類で、プログラムを直すたびに試す。1つでも外れたら使わない。
✓✓✓✓✓
03
原本の形に戻して照らす
書き出した表を原本の形に戻して、1行ずつ照らす。行き(原本→表)と帰り(表→原本)が一致すれば合格。
原本→表→原本の形=元の原本
04
人の確認を少しずつ減らす
人が直す必要のない回が30通続いた書類の形から、毎回の確認を抜き取りに変える。直しが出なければ、さらに減らす。
全部
見る
10通に
1通
20通に
1通
30通に
1通まで
05

段取りと、使うプログラム

STEPS & TOOLS
①表を作るDBの制約単体試験済み・確認中
③受け取って判定する検査単体試験これから
④登録を取り消せるようにするDBの制約これから・並行
⑤フォルダの画面E2Eこれから・並行
⑥例外と数字の画面E2Eこれから
⑦通しで確かめるE2ECursorこれから

どこで、どんなプログラムを使うか

どこで使うものいま
原本の読み取り(表計算)Python表計算を読むライブラリ(openpyxl など)使っている
原本の読み取り(PDF・紙の写し)OCR(Indra OCR)手元の CPU だけで動き、原本を外へ送らない。架空の契約書と売上報告書で試し、文字の98〜99%・金額は全部正しく読めた。表の行がくっつくことがあり、合計の照合で止める試した
決まった形の照合プログラムの検査合計・件数・対象の期間を自動で照らす②で作る
書き方の誤りを機械で止めるlintESLint など。書いた時点で決まりに外れた書き方を止めるこれから
部品を1つずつ試す単体試験node:test。計算や判定の部品ごとに答えを確かめる使っている
画面を人と同じ手順で動かして確かめるE2EPlaywright。ブラウザを自動で操作し、押す・置く・見るを通しで試す使っている
データベースの約束を守らせるデータベースの制約・トリガー原本は書き換え・削除できない、などを DB 自身が止める使っている
もう1つの AI で確かめるCursor作った AI とは別の AI が、出来上がりを点検する使っている
06

決めたこと

DECIDED
  1. 人が確かめるのは、入口(原本を置く)と出口(書き出した表を照らす)だけ
  2. 途中は、本当に必要なものだけを出す判定の1行・重要な数字・例外の印
  3. 操作の画面には、必要な要件だけを置く
  4. 最初は販売管理の売上報告書からいまの画面とデータベースはそのまま残し、フォルダの入口を足す
  5. 書き出しは CSV(Excel も)
  6. 画像だけの PDF は置けるが、まだ読み取らない人が読む。手元で動く OCR を試している(上の表)
まだやらないことAI による読み取り実際のデータでの利用本番での公開ほかの書類・フォルダ