数が合わない原因の一つに、人があります。
「在庫の受払/入庫出庫は伝票を介する」このルールを守れない企業が少なからずあります。
倉庫担当者を配置していても、役員が、「これをもっていくぞ」と言って商品を持ち出そうとしたとき、阻止できないそうです。まして、倉庫管理者がいないときは尚更です。 役員の親しい人から来店した際は、「土産にこれを持つ帰って」と商品を勝手に渡すこともあるそうです。従業員は"土産出荷"と称してましたっけ。
これなどは、極例ですが、運用ルールの無視が原因なんですが、システム的には阻止できません。倉庫から勝手に持ち出したり、持ち込んだり、モラル頼みです。
経理の金だと使込になるので犯罪意識が働いて抑制されるでしょうが、なぜか倉庫だと罪悪感が働かないみたいです。このへんも心理の綾で面白い現象なのかも知れません。
扱い難い商品に液体物があります。 例として、エンジンオイルを想定します。(一杯飲み屋の量り売りでもいいです)
カーディーラーは顧客に販売するとき 1cc単位で販売します。 1cc単位属性の商品コードを設定しています。
仕入は, 1リッター缶の時や, 18リッター缶のとき, 180リットルのドラム缶の場合があり各々商品コードがことなります。オイルメーカーのキャンペーンの関係で時点の1cc当たりの安価な組み合わせで購入します。
一般的な販売管理システムで安直に,商品設定すると。仕入商品と販売商品が別物になってしまいます。
仕入れ時の商品コードと販売時の商品コードが異って設定される事になります。同じコードにすると違う問題が派生します。
当然仕入時のコードは在庫が増える一方で,販売品は減る一方。仕入増加がないのでマイナス在庫になります。
その結果,棚卸時に困ったことになり,換算補正を作成し、補正することになったりします。
回避するために, 仕入れ処理で, 販売側の商品コードに換算するのも策ですが、そうすると、仕入れた物との対応が崩れます。 1リッター缶 5本, 18リッター缶 30本 といった単位で棚卸ができなくなります。
缶が開封したか否かの判定をしたいときがあり、単純にコードの一本化では対処できません。
他の要素として,仕入れ単価も各々で異なるので個別原価が入ってくるとなおさら厄介です。
一つの解決策としては, 商品マスターの商品コード欄を複数設定し,換算元,換算先コードを関係付けし、システム的には単一コードで処理するのも案でしょう。
且つ、個々缶をObjectとして個別管理するという手法も。
返品になっても,在庫に戻せない性質のものなので、液体商品の在庫数管理は厄介なものになります。
以前、ディーゼルエンジン車に乗っていたころ、ガソリンスタンドで間違えてガソリンを給油されたことがありました。
その際は、ガソリンを全部抜いて再給油になりました。
そのときの伝票をみると, ガソリン出荷=>赤伝=>軽油出荷 となってました。 入れ直したたガソリン代はサービスしてくれました。(只になったのだが,都合, 3時間双方の時間経費損失なので経費損としては大きいと思う)
当然抜いたガソリンは再販できず、破棄されるようです。 後日、聞いたところ, 担当者(バイトさん)が弁償したそうです(軽油代とガソリン代)、その上に辞めていた。....そうと知ってたらガソリン代は払ったほうがよかったなと少し悔やむ。
弁償処理するのだったら、赤伝処理しちゃダメな気がするのだが....一顧客なのでなんとも言えないが。
この辺りは、例外処理として扱うのだろうな。どういう例外処理にするのか知りたかったが、担当者では不明だろうな。
この処理だと経理的にも,在庫量的にも辻褄があうのですが、個人責任にするのはなんか釈然としない。
ヒューマンが絡むシステムだと尚更難しい。