お世話になっております。kotsujiです。在庫管理アプリの※注文処理の実装が終わり、次に入荷処理を実装しようと色々と調べたのですが良い方法が思いつかなく困っています。
※注文処理は注文テーブルと注文明細テーブルという至って普通の親子関係のテーブル構成を採用しています。
1度に入荷される商品の数は、必ずしも注文時に指定した数と同じとは限らず、注文先の在庫状況によって1度で全て入荷される場合もあれば、2回以上に分けて入荷されることもあります。例えば以下のようなイメージです。
注文1回目 2020/12/26
・商品A x 50 注文
・商品B x 30 注文
注文2回目 2020/12/27
・商品A x 10 追加注文
入荷1回目 2020/12/30
・商品A x 60 入荷 (12/26と12/27の注文分がまとめて入荷)
・商品B x 20 入荷 (12/26に注文した30のうち20だけ入荷)
入荷2回目 2020/12/31
・商品B x 10 入荷 (12/30に入荷されなかった残り10が入荷)
担当者がこれを手動で入荷処理するのは不便です。例えば商品Aが入荷されたら、商品Aを含む注文(上記例のように複数ある可能性あり)を探して、見つかった注文の中から一番古い注文に対して、入荷した数を優先的に振り分けないといけないからです。出来れば入荷担当者には注文単位や注文順を意識させたくありません(注文IDを選択して紐づく商品に対して1つずつ入荷数を入力することは避けたい)なので一連の流れを自動化したいです。
実現出来たらよいこと
1.担当者は入荷があった場合、画面に表示された入荷待ち商品リストの中から入荷した商品を選択する
2.担当者は選択した商品の入荷日と入荷数を入力して登録ボタンを押す
3.システムは登録ボタンをトリガーに、選択された商品の注文日が最も古いものから順に、入力された入荷数が無くなるまで振り分けていく。(上の例では、12/30に商品Aが60個入荷されたので、この60個のうち、まず12/26の注文に50個振り、12/27の注文に10個振る)
こういった処理は実現可能でしょうか?
入庫の情報を別テーブルで管理し、注文の情報とリンク・関連付けて管理する方法、もしくは、注文テーブルの中のカラムで入庫情報を管理する手法、大きく2つのアプローチが考えられますが、入荷してきた商品が何の注文に紐づくかの情報を持たせて管理することが理想的です。
ただし、ここでは、入荷時に注文情報との紐づけはアプリユーザーには行わせないということであれば、その紐づけ業務は別の在庫管理ユーザーの業務として、マニュアルでの紐づけを行う方法です。
ただし、その場合においてもアプリユーザーが入力してくれる出庫データについて、アプリのデータからどの注文情報に紐づけすべきか?これを判断することは現実的な問題として難しいことが想定されるため、入荷時のデータエントリーの際、何からの方法でその注文idなどが追跡できる仕組みを考えるべきです。(アップシート以前の業務フローの見直しをお勧めします)
ありがとうございます。入荷の際の作業は簡単に済ませたいので、最初に教えて頂いた、入荷テーブルを別で用意するアプローチで考えてみたいと思います!あれから色々調べていたら、looping actionという記事がありました。条件が真になるまでアクションをループできるような?こちらも含めて検討していきます。