6.2 【設問】受発注~入出荷

6.2 【設問】受発注~入出荷

6.2.5 在庫エンティティの分析

在庫も数の管理とカネの管理をする必要があります。
在庫は、受注された商品を納期どおりに出荷するために、ある程度の手もち在庫を確保しておく必要があります。
しかし、一方で不必要に大量在庫をもつと、場所を確保するための費用がかさみ、短期的には財務状況を悪化させる要因にもなります。

在庫管理を行うためには、一般的に次のような情報を管理します。

  • 商品ごとの期首(会計期間の最初)の在庫数
  • 期間内の入庫数
  • 期間内の出庫数
  • 現在庫数(現在庫数=期首在庫数+総入庫数―総出庫数)

売上原価について

在庫商品の単価を在庫評価額と呼び、これが売上原価と同じ意味をもちます。
仕入値は、業態によっては時の経過とともに変化する場合があり、その変化に応じて売上原価を適切に算出する必要があります。
この算出方法は企業ごとに決めることができますが、大きく3とおりの方法があります。

  1. 原価法:
    仕入時の商品単価を基礎として算出式を決め、算出した結果を売上原価とします
    算出式の代表的なものを後で紹介します
  2. 時価法:
    会計上の締め処理を行う時点の時価で評価する方法です
  3. 低価法:
    「原価法」と「時価法」の両方の基準で評価した上で、金頗の小さい方を採用します

よく使用されるのは1.の原価法ですが、その計算方法のうち代表的なものを次に紹介します。

  • 移動平均法:
    現在庫金額を現在庫数で割った値を売上原価とします
    比較的合理的な単価が与えられ、コンピュータによる計算は随時簡単に処理できることから、よく使われています
  • 最終仕入原価法:
    最終仕入時の単価を売上原価とします
    計算方法が簡単という理由もあってよく使われますが、場合によっては不合理な在庫金額になります
  • 総平均法:
    月初在庫金額と月間仕入全額の合計を、月初在庫数と月間仕入数の合計で割り、その値を翌月の売上原価とします
    手計算の場合には便利な計算方法ですが、コンピュータ化された現在、日々の平均単価は容易に計算できるため、あまり意味があると思えません
  • 先入先出法:
    仕入日ごとに仕入単価と数量を管理し、仕入日の古いものの順に出庫し、その際には仕入時の仕入単価を売上原価とする方法です
    同一のタイミングで異なる単価の同一商品が入庫することもある場合、管理はたいへん難しくなるため、現在ではあまり使われていません。

在庫の確認という意味では、どんな企業も最低1年に一回、決算期には、全商品数をカウントする一斉棚卸という作業を行い、会社の期末資産を表す必要があります。
在庫数には、その棚卸の際に確認された実在庫数と、帳簿上の入出庫によって管理される帳簿在庫(論理在庫)があり、この差異をきちんと管理する必要があります。

また、在庫管理は数の管理だけではなく、在庫金額を管理し、決算の際に「棚卸資産」として貸借対照表に示したり、損益計算書上の「売上原価」を計算する必要があります。

翼商事では、これまで商品受払い帳を使って、手処理による先入先出法を使っていましたが、システム化によって移動平均法を採用する、という提案が採用されています。

在庫を管理する理由として、受注を受けたときに、それに応えられるだけの十分な在庫数を確保することによって、販売機会の損失を極力少なくする、というものがあります。
受注を受けたときに、その商品を倉庫に確保しておき、他の受注によって勝手に出荷されてしまわないよう、引当処理を行います。
ところが、この引当処理を行うには、出荷日に合わせて該当商品が倉庫にどれだけ存在するか、を管理しておく必要があることがわかります。

問題

上記のような要件を満たすために、在庫エンティティを見直してください。

ヒント

在庫は、過去からの累積情報(期首在庫情報)を考慮する必要があります。
期首在庫数に、今期の入出庫情報を加味した値が管理できるようにしてください。

帳簿上の論理的な商品在庫数は、前の単元で作成した「入出庫予実績」エンティティで管理されている情報と連携をとることで、管理できると考えられます。
倉庫ごと、商品ごと、ロットごとの引当可能在庫数、実在庫数は、導出項目として、各倉庫ごと商品ごとの「在庫」エンティティで管理します。
その際、在庫の数と同時に在庫金額も管理できるようにします。
ロット単位で、先入先出法による在庫管理を行うのであれば、ロットが管理されている棚の位置も合わせて管理する必要があります。

在庫管理では、在庫区分という属性を管理する場合が多いです。
在庫区分とは、たとえば「0:自社在庫」か「1:預かり在庫」かという違いを管理します。
翼商事の場合、「預かり在庫」とは、「入庫はしたけれども、まだ入荷確認をしていない」=「仕入計上していない」という状態を指します。

今回のケースとは異なりますが、たとえば、商品が届いて入庫はしたけれど、請求書が届くまで仕入計上されない場合は、その間の在庫状態は「預かり在庫」になります。
「預かり在庫」は棚卸チェックの対象となりますが、在庫金額には計上しません。

在庫管理では、良品区分という属性も管理します。
良品区分とは、たとえば「0:良品」、「1:不良品」のほかに、検品前の「2:未検品」という区分が考えられます。
たとえば、客先から返品された商品をとりあえず「2:未検品」としておき、検品後に、倉庫担当者が「0:良品」か「1:不良品」に振り替えるという具合に使用します。

解答

在庫
* 倉庫コード (FK1)(FK3)  
* 商品コード (FK2)  
* ロット番号    
* 在庫区分   1.
* 良品区分   2.
* 棚番号 (FK3)  
* 基準日日付   3.
  期首在庫数量 (固定) 4.
  前日末実在庫数量 (0=前日に値が計算される:その後固定)  
  基準日引当総数量 (基準日の引当処理が行われるたびに増加)  
  前日末の予定入庫合計数量 (期首からの予定入庫数量累計値:発注のたびに増加)  
  前日末の予定出庫合計数量 (期首からの予定出庫数量累計値:受注のたびに増加)  
  当日予定入庫数量 (発注による入庫) 5.
  当日実入庫数量 (発注による実際の入庫数量、0=入庫確認後増加) 5.
  当日予定出庫数量   6.
  基準日引当総数量 (受注による出庫)  
  当日実出庫数量 (受注による実際の出庫数量、0=出庫確認後増加) 6.
  現在庫数量 (導出)
(0=前日末実在庫数量=
前日末実在庫数量+当日実入庫数量-当日実出庫数量)
 
  基準日引当可能数量 (導出)
(前日末引当可能数量+当日入庫数量-当日出庫数量)
7.
  売上原価 (仕入れ単価が変更されるごとに再計算) 8.
棚番
* 倉庫コード    
* 棚番号    
  区画番号EW    
  区画番号NS    
  棚段    
  ブロック番号    

解説
(注:番号は解答中の番号と対応します。番号が記載されていない解説は、全体に当てはまります)

  1. ヒント参照
  2. ヒント参照
  3. 基準日とは、在庫を確認したい対象の日付のことです
    その日の在庫状況を他の属性で管理します
  4. 期首在庫数量は、会計年度の最初の在庫数量を管理します
    在庫は累積個数を管理するため、この値を管理する必要があります
  5. この2つの属性は、属性を作成するのではなく、日付と倉庫コード、商品コードを指定し、入庫予実績管理を参照して獲得します
    ここでは、何を属性として管理したいかをわかりやすくするために記述しました
  6. この2つの属性は、属性を作成するのではなく、日付と倉庫コード、商品コードを指定し、出庫予実績管理を参照して獲得します
    ここでは、何を属性として管理したいかをわかりやすくするために記述しました
  • 引当可能数量は、基準日が当日の場合と将来の場合で計算方法が異なります
    基準日が将来の場合、実在庫数が確定していないため、計算しようとしている日付の実在庫数に、その日以降の入出庫予定数を積み上げて計算します
    一方、基準日当日の場合は、実在庫数が確定しているため、実数量を使用して計算します

基準日を将来とした場合の引当可能数量計算

前日未引当可能数量=前日末の予定在庫合計数量(*)- 基準日引当総数量

(*)前日末の予定在庫合計数量=計算日の実在庫数
                     +Σ計算日から前日末までの予定入庫数量
                     -Σ計算日から前日末の予定出庫数量

基準日の0時時点での引当可能数量計算

前日末引当可能数量=基準日引当可能数量=前日未実在庫数一基準日引当総数量

商品ごとの引当可能数量を迅速に照会できるようにするために、この後、論理設計フェーズで在庫関係のエンティティを見直す必要があります。
この作業は、在庫の引き当てを行う担当者が必要としている情報が何であるか(ロットまで必要とするか等)、画面設計と連動して、良好なパフォーマンスが維持できるように行う必要があります。

< 前へ | 6.2 【設問】受発注~入出荷 | 次へ >

解説トレーナー

Oracle / 上流工程 担当 中村 才千代

データベース設計、システム構築の上流~下流工程全般のインストラクターです。SE時代の経験を生かし「業務を知るエンジニアこそDB設計に関わるべき」「DB設計に携わるエンジニアは業務を知る人に知恵を貸してもらう」ことを伝えたいと思っています。

■認定・受賞

2000年 Oracle University「Best Instructor of the Year」受賞
2002年 Oracle University「Best Instructor of the Year」受賞

Page Top