そんな折、「FMEasy在庫 R1.0(開発版)」のユーザ様から、倉庫間移動に関するご質問を頂戴しましたので、今回はその手法をご紹介します。
商品の倉庫間移動
まず、下図の青色で囲った部分をご覧ください。
出庫画面に移動先を入力するための[移動先ID]フィールドを配置しています。
倉庫間移動が発生する場合、ユーザは移動先のIDを入力した後、“倉庫移動”ボタンをクリックします。すると、出庫画面で入力した出庫明細と同内容のデータが入庫にも作成されるという流れになります。
倉庫間移動が発生する場合、ユーザは移動先のIDを入力した後、“倉庫移動”ボタンをクリックします。すると、出庫画面で入力した出庫明細と同内容のデータが入庫にも作成されるという流れになります。
下準備
取引先マスタに「倉庫間移動」という管理項目を登録しておきます。
このとき、倉庫間移動の[取引先ID]は「41」であったと仮定してみます。
倉庫移動スクリプト
倉庫移動ボタンに割り当てるスクリプト仕様はおおまかに以下のとおりです。
- $moveTo 変数に移動先IDをコピー。
- 出庫明細(ポータル)内のすべての商品ID/出庫数を $prodArrayに変数配列として格納。
- 新規ウインドウで入庫レイアウトを開き、新規レコードを作成。
- [入庫場所ID]フィールドには変数1、[仕入先ID]フィールドには「41」を入力。同時に[入庫日]、[担当ID]、[伝票区分]にも適切な値を入力。
- $prodArray 変数に格納した出庫明細の要素を、入庫明細の商品ID/入庫数に展開。同時に各[在庫場所ID]には $moveTo 変数に保持されている値を設定。
- 入庫レコード確定。
このスクリプトの実行結果は下図のようになります。
注:
- 入庫明細作成時、場所別在庫テーブルに座間倉庫用の商品が登録されているかチェックし、無ければ登録する。 ここをミスると、商品がシステム上から消失してしまうので、要注意。
- 入庫画面の[備考2]に移動元のIDと[場所名](倉庫名)を記録するとわかりやすい。
- 取引先テーブルに各倉庫名を登録、さらに在庫場所テーブルに[取引先ID]フィールドを新設し、そこに各在庫場所に対応する[取引先ID]値を記録し、[仕入先ID]には上記「41」の代わりに、その倉庫の[取引先ID]を入力するのも良い。
- 社内倉庫間の移動であるから、[仕入単価]は適切に処理 ― 例えば0を入力― する。
- 倉庫が隣接しておらず、日単位のタイムラグが発生する場合、“倉庫移動”実行タイミングや[入庫日]の値を考慮すること。