在庫・受発注管理アプリ 仕様書(詳細版)¶
本書は「アプリ仕様(概要)」の詳細版です。各機能のデータ項目・計算ルール・処理の流れ・具体例・注意点まで、これ一つで確認できるようにまとめています。専門用語は言い換え・例を添えていますが、概要版より踏み込んだ内容です。
- 概要版: まず全体像をつかむ用
- 詳細版(本書): 数字のルールや各機能の中身まで確認する用(担当者・責任者向け)
読み方のコツ: 各章は「何をする → 使うデータ → ルール(式・判定)→ 具体例 → 注意点」の順で書いています。
1. システム構成(このアプリの作り)¶
| 部品 | 役割 | たとえると |
|---|---|---|
| AppSheet | 画面・操作(ノーコードの業務アプリ土台) | 入口・操作パネル |
| Googleスプレッドシート | データの保存場所(表) | 倉庫の帳簿 |
| GAS(プログラム) | 複雑な計算・自動処理 | 裏方の計算係 |
流れ: 担当者が AppSheetの画面で操作 → データが スプレッドシートに保存 → 在庫増減や書類作成など複雑な処理は GASが自動実行 → 結果がスプレッドシート/画面に反映。
なぜGASを使うか: 「発注の残数だけ在庫に足す」「分納後の一括納品で二重計上しない」など、画面の自動処理(Bot)だけでは崩れやすい計算を、確実に一括処理するためです。
2. アプリのメニュー構成(画面ごとに何ができるか)¶
アプリの左メニューは次の構成です。各メニューで「何ができるか」を示します(各機能の詳しいルールは第4章以降を参照)。
2-1. 業務データ(日々の入力・確認)¶
| メニュー | 何ができるか |
|---|---|
| 発注データ | メーカーへの発注を登録・確認し、納品処理(一括/個別/分納)を行う(→第4・5章) |
| 出荷データ | お客様への出荷を登録・確認(移動中対応)(→第7章) |
| 倉庫間移動データ | 倉庫から倉庫への在庫移動を登録・確認(→第8章) |
| 在庫一覧 | 商品×倉庫ごとの在庫(現在庫・有効在庫・移動中)を確認。棚卸調整もここから(→第6・9章) |
| 入出庫一覧 | すべての入出庫の履歴(入庫/出庫/返品/棚卸調整)を確認 |
| 棚卸データ | 棚卸の記録を確認 |
2-2. マスタ一覧(台帳)¶
「マスタ一覧」から各台帳を開いて登録・編集できます。
| マスタ | 何のため |
|---|---|
| 商品マスタ | 取り扱う全商品(名前・JANコード・入数・価格・サイズ・素材など) |
| 発注先情報マスタ | 仕入先(メーカー)と支払条件(前払/通常・支払サイト) |
| 発注元マスタ | 自社側の発注窓口 |
| 得意先情報マスタ | 売る相手(お客様) |
| 出荷先情報マスタ | 送り先(「移動中対象」の判定を含む) |
| 倉庫情報マスタ | 商品を置く倉庫 |
| 従業員マスタ | 担当者(処理者の記録に使用) |
| 金種マスタ | 金額・通貨関連の区分 |
| (原材料マスタ) | 素材の日本語↔英語対応。貿易書類の自動英訳に内部利用(メニュー非表示) |
2-3. 各集計データ一覧¶
「各集計データ一覧」から、目的別の集計・確認画面を開けます。
| 集計データ | 何ができるか |
|---|---|
| 発注集計データ(月別) | 発注明細を発注月別に一覧。仕入先別・総合計の月次発注金額を出力(毎月20日に担当者へメール通知) |
| 納品予定データ(月別) | 発注明細を納品予定で月別集計。入荷スケジュールの把握(予定日があれば予定日を優先) |
| 請求照合データ(月別) | 発注先別に各月の納品合計件数と仕切金額(税別/税込)を集計。仕入先の請求金額との照合に使用 |
| 納品前商品データ一覧 | 「納品前」「一部納品」の明細を一覧。納品処理の対象を確認 |
| 出荷前商品データ一覧 | 「出荷前」「一部出荷」の出荷明細を一覧。出荷処理の対象を確認 |
| 移動中在庫データ一覧 | 輸送中(所有権移転前)の在庫を一覧。期末の「各倉庫資産=現在庫数+移動中数」確認に使用 |
| 棚卸データ一覧(月別) | 倉庫別の在庫評価を月別に出力(在庫評価額を月末時点で記録) |
| 取扱商品履歴(発注先別) | 発注先別の過去取扱商品履歴(発注実績・在庫直接入力の両方。期間・メーカーで絞込) |
2-4. 各帳票出力¶
「各帳票出力」から、必要な書類・データを作成できます(ボタンを押すとGASが生成し、スプレッドシート/PDFのURLを返します)。
| 帳票 | 何ができるか |
|---|---|
| 受注表作成 | 受注内容の確認表を作成 |
| 発注書作成 | メーカーへの発注書を作成 |
| 納品書作成 | 納品書を作成 |
| 請求書作成 | 請求書を作成 |
| 発注集計表作成 | 月次の発注集計を出力 |
| 納品予定表作成 | 納品予定の集計を出力 |
| 支払予定表作成 | 支払予定額を出力(→第12章) |
| 在庫集計表作成 | 現在庫の集計を出力 |
| 棚卸集計表作成 | 棚卸の集計を出力 |
| 貿易資料抽出データ作成 | 貿易書類用の在庫データ(16項目・倉庫別)を出力(→第14章) |
インボイス・パッキングリスト(PL)は、出荷データ(PL編集)から作成します。
2-5. 外部アプリ・その他¶
| メニュー | 何ができるか |
|---|---|
| 外部アプリ > 納品書・請求書OCR照合 | PDFをアップロードしてAIで照合(→第11章) |
| 外部アプリ > 操作マニュアル | 画面つきの操作マニュアル(別サイト) |
| アプリ情報/フィードバック | アプリの情報表示/要望の送信 |
3. データ構成(何を記録しているか)¶
データは3種類に分かれます。
3-1. 台帳(マスタ)=くり返し使う基本情報¶
| 台帳 | 主キー | 主な項目 |
|---|---|---|
| 商品マスタ | 商品ID | 商品名(日/英)・JANコード・総入数・袋入数・上代・仕切・仕切@CT・発売年月・サイズ・重量・原材料・カテゴリー・NG国・対象年齢 |
| 発注先情報マスタ | 発注先ID | 企業名・コード・連絡先・支払区分(前払/通常)・支払サイト(翌月末/翌々月末/当月末) |
| 発注元マスタ | 発注元ID | 発注元名 |
| 得意先情報マスタ | 得意先ID | 得意先名・連絡先 |
| 出荷先情報マスタ | 出荷先ID | 送り先名・移動中対象フラグ |
| 倉庫情報マスタ | 倉庫ID | 倉庫名・企業名 |
| 従業員マスタ | 従業員ID | 氏名・メール |
| 原材料マスタ | 原材料ID | 日本語名・英語表記 |
3-2. 日々の記録(トランザクション)=取引のたびに増える¶
| テーブル | 主キー | 役割 |
|---|---|---|
| 発注管理データ(親) | 発注ID | 1件の発注(ステータス・発注日・納品予定月・発注点数/納品点数) |
| 明細テーブル(子) | 明細ID | 発注の商品ごとの行(数量・金額・納品数・納品完了・納品日) |
| 出荷管理テーブル(親) | 出荷ID | 1件の出荷(注文日・出荷日・出荷点数) |
| 出荷明細テーブル(子) | 出荷明細ID | 出荷の商品ごとの行(出荷数・出荷完了・在庫反映済み) |
| 在庫移動管理/明細 | 移動ID/移動明細ID | 倉庫間の移動(出荷→入荷) |
| 在庫管理テーブル | 在庫ID | 在庫のコア(現在庫数・出荷予定数・有効在庫数・移動中数・在庫評価額) |
| 入出庫テーブル | 入出庫ID | すべての入出庫の履歴ログ(入庫/出庫/返品/棚卸調整) |
| 棚卸/棚卸履歴 | 棚卸ID | 棚卸の記録 |
3-3. 集計・管理テーブル¶
帳票作成や進捗管理の「作業台」。例:支払予定管理テーブル・帳票出力管理テーブル・各種集計管理。ボタンを押すとGASが対象データを集計し、結果のスプレッドシートを作ってURLを書き戻す、という使い方をします。
3-4. テーブルの関係(親子・参照)¶
発注管理データ(親) 1 ─── N 明細テーブル(子) ── 参照 → 商品マスタ / 発注先 / 倉庫 …
出荷管理テーブル(親) 1 ── N 出荷明細テーブル(子) ── 参照 → 在庫管理 / 出荷先 …
在庫管理テーブル ←── 納品・出荷・返品・棚卸で増減 ──→ 入出庫テーブル(履歴)
4. 発注(メーカーへ注文する)¶
- 何をする: メーカー(発注先)へ、商品ごとに数量(カートン)を注文。発注書を出力。
- 使うデータ: 発注管理データ(親)+明細テーブル(子)。
- ルール:
- 親のステータス = 納品前 / 一部納品 / 納品完了(納品の進み具合で自動遷移)。
- 一覧では「納品前」と「一部納品」を1グループにまとめて表示(表示用ステータスという表示専用の列)。
- 発注点数 = 明細件数、納品点数 = 完了した明細数。
- 具体例: 「ピーナッツクラブ 5月発注」の中に「お風呂大好き 2箱」「耳ワンこ 2箱」…。
- 注意点: 発注先IDは正しいIDに変換してから取り込む。名前のまま取り込むと、金額集計でメーカー名が空欄になる等の不具合(過去に発生・恒久対応済み)。
5. 納品・入荷(商品が届く → 在庫が増える)¶
- 何をする: 届いた商品を在庫に反映(在庫が増える)。3モード(一括/個別/分納)。
- 使うデータ: 明細テーブル(納品数・納品完了・納品日)/在庫管理テーブル(現在庫数)/入出庫テーブル(入庫履歴)。
- ルール(自動計算):
- 対象: 一括=発注の未完了の全明細/個別・分納=指定した1明細。
- 残数 = 発注数 −(キャンセル分)−(納品済み数)。この残数を超える納品はできない(過剰入荷を構造的に防止)。
- 納品する数: 一括・個別=残数全部/分納=入力した一部(残数でクランプ)。
- 在庫増 = 納品カートン数 × 総入数(個)。
- 納品完了判定: その明細の納品数が「発注数 − キャンセル」に達したら「完了」、途中なら「一部納品」。
- 納品日 = 実際に届いた日。優先順: 明細に既に入っていればそれを保持 →(一括のみ)発注ヘッダで入力した納品日 → 納品予定日 → 本日。
- 入庫履歴(入出庫テーブル)を1件追加(区分=入庫)。担当者も記録。
- 具体例: 発注2箱のうち先に1箱届いた→分納で1箱納品(在庫+150個、明細=一部納品)。残り1箱が後日→完了。
- 注意点(重要): 納品日が実際とズレると支払予定額の支払月がズレます(第12章)。以前は「処理日」が自動で入る不具合がありましたが、実納品日を入力・保持するよう修正済み。
- 入荷取込: ハートランド社等の入荷情報(Excel)を取り込んで在庫反映する仕組みもあり。
6. 在庫管理(在庫のコア)¶
- 何をする: 在庫数を「商品 × 倉庫 × 発売年月 × 発注元」の組合せごとに管理。
- 主な数字:
| 数字 | 意味 | 計算・増減 |
|---|---|---|
| 現在庫数 | 今ある数 | 納品で増、出荷・メーカー返品・棚卸減で減 |
| 出荷予定数 | 出す予定の数 | 受注で積む |
| 有効在庫数 | 自由に使える数 | 現在庫数 − 出荷予定数 |
| 移動中数 | 送っている途中の数 | 海外出荷で +、入庫完了で − |
| 在庫評価額 | 金額換算 | 現在庫数 × 仕切 |
- ルール: 有効在庫数はGASが在庫更新のたびに明示的に計算し直します(プログラムが直接書き込むと自動計算式が働かないため)。
- 注意点: 同じ商品でも倉庫が違えば別在庫として数えます。期末の自社資産 = 現在庫数 + 移動中数。
7. 出荷(お客様へ送る)¶
- 何をする: 受注→出荷。登録すると在庫が減る。
- 使うデータ: 出荷管理(親)+出荷明細(子)/在庫管理(現在庫数・移動中数)/入出庫(出庫履歴)。
- ルール:
- 単位: ケース/袋/個から選択。在庫増減は「個」ベース(総入数・袋入数で換算)。
- 通常出荷: 現在庫数 −X。
- 移動中対象(海外法人など・出荷先マスタのフラグで判定): 出荷時に 現在庫数 −X/移動中数 +X、入庫完了で 移動中数 −X(送り先は在庫管理外)。
- 在庫反映済み フラグで二重反映を防止。取消(未完了へ戻す)は出荷明細IDで出庫を正確に削除。
- 具体例: たまてこ韓国へ100個出荷→現在庫−100・移動中+100。到着(入庫完了)→移動中−100。
- 注意点: 在庫がマイナスになる出荷はエラーで停止。
8. 倉庫間移動¶
- 国内⇄海外など、倉庫から倉庫へ在庫を移す処理(移動管理+明細)。
- 移動元から出て(出荷)、移動先に入る(入荷)まで、途中経過を管理。数量はケース/個で扱う。
9. 棚卸調整(実数に合わせる)¶
- 何をする: 実際に数えた在庫(実在数)にアプリを合わせる。返品でもキャンセルでもない補正。
- ルール: 差分 = 実在数 − 現在庫数。
- 差分 > 0 → 現在庫数を増やし「棚卸調整入庫」を履歴に記録。
- 差分 < 0 → 現在庫数を減らし「棚卸調整出庫」を記録。
- 差分 = 0 → 何もしない。
- 有効在庫数も再計算。担当者・理由を記録。単位はカートン/袋/個(自動換算)。
- 具体例: 現在庫300・実在数250 → 差−50 →「棚卸調整出庫50個」・現在庫250。
- 注意点: 担当者は必須(誰が調整したかを残す)。
10. 返品・キャンセル¶
- 何をする: 返品・取消を記録し在庫を調整。仕入数・返品数の内訳を保持(例: 仕入100 − 返品10 = 正味90)。
- 6パターン:
| 種類 | 個別/一括 | 在庫 | 履歴 |
|---|---|---|---|
| メーカー返品 | 両方 | 減る | 返品出庫 |
| 販売先返品 | 両方 | 増える | 返品入庫 |
| 発注キャンセル | 両方 | 動かない(数量減) | なし |
- 一括処理はまとめて実行し、結果(成功/エラー)を行に書き戻して可視化。在庫不足時は事前検証で全体中止(安全弁)。
- 注意点: 海外(在庫管理外への販売)の返品は別要件で対応。移動中/入庫完了の販売先返品は非対応(ボタンが出ない)。
11. 納品書・請求書 OCR照合¶
- 何をする: 紙・PDFの納品書/請求書を読み取り、アプリの発注データと突き合わせて正しさを確認。
- 仕組み:
- 読み取り(OCR): PDFをアップロード → AIが日付・商品・数量・金額などを構造化して抽出。1PDFに複数伝票があれば自動分離。受領書セクションは自動除外。
- 候補マッチング: 抽出伝票に対し、発注先・日付・金額の近さをスコア化して対応する発注候補を提示。手動検索での追加も可。
- 照合ステータス(3段階): 明細ごとに 未照合/部分照合/照合済。分納は残数量ベースで累計。
- 複数発注にまたがる納品書にも対応(候補の複数選択・明細統合)。
- 支払突合: 納品書↔請求書の2者を、取引先ごと・全体合計で差異表示。請求書は1PDF=1レコードで管理。
- 書き戻し: 照合結果を発注データへ反映。履歴の読み取り専用ビューで確認、一括やり直しも可能。
- 注意点: 先方アカウントでも動くよう認証方式を調整済み。運用は「1PDF=1仕入先」でスキャン。
12. 支払予定額(いつ・いくら払うか)¶
- 何をする: ある支払月に、メーカーへ合計いくら払う見込みかを算出。
- ルール(3区分):
| 区分 | 対象 | 支払月の基準 |
|---|---|---|
| 確定済み | 納品完了の明細 | 実際の納品日 + 支払サイト |
| 納品前予定 | 納品前の明細 | 納品予定 + 支払サイト |
| 前払 | 前払い取引先 | 発注月(サイト無視) |
- 支払サイトのずれ: 当月末=0 / 翌月末=+1か月 / 翌々月末=+2か月。支払月 = 基準月 + ずれ。
- 仕切未入力の明細は金額0で埋もれないよう「要確認」として件数可視化。
- キャンセル明細は対象外。
- 具体例: 5月納品完了・翌月末 → 6月末支払。前払い先を6月発注 → 6月支払。
- 注意点(最重要): 計算は「納品日」を使う。納品日が実際とズレると支払月がズレる。
- 実例: 5月出荷の商品を、アプリの納品処理を6/6に行うと納品日=6/6となり、本来6月末払いが7月末払いに見えた(不具合として発見)。対策として実納品日を保持する修正+確認用リストを用意済み。
13. 前払い(先払い)照合¶
- 前払い取引先(発注先マスタの支払区分=前払)は、在庫に波及させず、発注月に支払い計上。
- 前払い請求書は商品内訳ありの様式で照合(通常の納品書と同形式)。商品が実際に届いたら通常の納品処理で在庫計上。
14. 帳票(書類の出力)¶
| 書類 | 入力 | 出力の主な内容 |
|---|---|---|
| 受注表 | 受注データ | 注文内容の確認表 |
| 発注書 | 発注データ | メーカーへの発注書 |
| 納品書・請求書 | 出荷・受注 | 取引の証憑 |
| インボイス・パッキングリスト | 出荷・商品 | 貿易書類(原材料を自動英訳) |
| 貿易資料(現在在庫) | 有効在庫>0の在庫 | 商品名(英)・素材(英)・カテゴリー・ケース入数・販売価格・箱サイズ・重量・発売予定月・納品日・メーカー・上代・袋入数・現在庫(箱/袋)・仕入価格・輸出禁止国(16項目・倉庫別タブ) |
| 現在庫集計 | 在庫 | 今の在庫一覧 |
| メーカー別 取扱商品履歴 | 明細+在庫 | メーカーごとの過去取扱全商品(26項目・個別/複数/一括・期間絞込) |
| 支払予定額 | 明細+支払条件 | 3区分の集計(第12章) |
15. 数量・単位の仕組み¶
- カートン(箱/C/S)=仕入れ基本単位/総入数=1カートンの個数/袋=1カートンの袋数。
- 換算: 個 = カートン × 総入数、袋 → 個 = 袋数 × 袋入数。
- 例: 150個入りを2カートン → 300個。
- 在庫増減・照合は「個」基準。入力はカートン/袋/個のいずれでも可。
16. 業務ルール・安全設計・主な修正履歴¶
業務ルール(要点) - 有効在庫数 = 現在庫数 − 出荷予定数。 - 納品日は「実際に届いた日」を入れる(支払予定額が依存)。 - 在庫は「商品 × 倉庫 × 発売年月 × 発注元」ごと。 - 発注先IDは正しいIDに変換してから取り込む。 - 海外向けは「移動中」で所有権移転を管理。前払いは在庫波及なし・発注月計上。
安全設計 - 在庫がマイナスになる操作(返品・出荷)はエラーで停止。 - 一括処理は在庫不足なら全体中止+結果を可視化。 - 納品は残数でクランプ(過剰入荷を防止)。二重反映はフラグで防止。
主な修正履歴(品質改善の記録) - 発注ステータスが「一部納品」で止まる不具合を修正。 - 分納後に一括納品すると過剰計上する不具合を修正。 - 納品日が「処理日」で上書きされ支払月がズレる不具合を修正(実納品日を保持)。 - 貿易資料の対象年齢が全て「x」になる不具合を修正(項目を削除)。 - 発注先IDが日本語のまま取り込まれる不具合の恒久対応。
17. やさしい用語辞典¶
| 言葉 | 言い換え |
|---|---|
| マスタ | くり返し使う情報の台帳 |
| トランザクション | 日々の取引の記録 |
| 明細 | 注文・出荷の中の商品ごとの行 |
| 発注先/得意先/出荷先 | 仕入先/売る相手/送り先 |
| 現在庫数/有効在庫数 | 今ある数/自由に使える数(今ある数−出荷予定) |
| 出荷予定数/移動中 | 出す予定の数/送っている途中 |
| 納品・入荷/出荷 | 届く(在庫増)/送り出す(在庫減) |
| 分納 | 注文の一部だけ先に届くこと |
| 棚卸 | 実数を数え直して合わせること |
| 照合(OCR照合) | 納品書・請求書を読み取り正しいか突き合わせる |
| 支払サイト | 支払いの期日ルール(翌月末など) |
| 上代/仕切/仕切@CT | 定価/卸値/1箱あたりの卸値 |
| 総入数/袋入数 | 1箱の個数/1袋の個数 |
| JANコード | 商品のバーコード番号 |
| GAS/AppSheet | 裏側の自動計算プログラム/アプリの土台 |
付録:関連資料¶
- 操作マニュアル(画面つき): 別サイトの操作マニュアル(返品・キャンセル/納品書・請求書OCR照合/棚卸・在庫調整)をご覧ください。
- 各機能の技術的な設計資料(データベース設計・各改修の詳細など)は、開発担当が社内で管理しています。本仕様書で業務上必要な内容は網羅していますので、通常はこちらをご参照ください。より深い技術情報が必要な場合は開発担当までご依頼ください。