フライト、ホテル、車などの予約に使用される旅行ウェブサイトを開発しています。これは製品ベースのソフトウェアです。クライアント (当社のソフトウェアを購入する人) が「主な代理店」になります。彼の総取引額は INR (インドルピー通貨) になります。また、フライト、ホテル、または車の予約はすべて「INR」でのみ行われます。
現在、彼は「サブエージェンシー」を作成する許可を得ています。サブエージェンシーの通貨は USD または INR などです。これは、「メイン エージェンシー」が世界中にサブエージェンシーを持つ可能性があることを意味します。これで、「サブエージェンシー」がログインするたびに、彼の取引レポートは彼の通貨で表示されるはずです。彼の通貨が「AUD」の場合、合計トランザクションは「AUD」のみである必要があります。サブエージェンシーを作成する際に、彼が USD、AUD、または AED などに属しているかどうかにかかわらず、彼の通貨を修正します。それは固定されています。
「サブエージェンシー」が (AUD で) チケットを生成すると、このトランザクションはメインのエージェンシートランザクションレポートにも表示されます。ここで、実際の問題が発生しています。「サブエージェンシー」のレポートは「AUD」で、メインエージェンシーのレポートは「INR」である必要があります。主な代理店は、通貨換算の利益/損失を負担する準備ができています。しかし、「サブエージェンシー」は損得してはいけません。
「サブエージェンシー」のデポジットを「メインエージェンシー」の通貨 (USD/AUD) で保存しています。彼がログインすると、運賃が USD/AUD で表示されます。予約後、その金額を彼の利用可能な残高から差し引いています。しかし、レポートに関しては、これらのトランザクションを 2 つの方法で表示する必要があります。主な代理店の場合は INR である必要があり、副代理店の場合は通貨 (USD/INR) である必要があります。
解決策はほとんどありませんが、それらは私の開発を複雑にします。より良い解決策を期待しています。
私の解決策の 1 つは、トランザクションを保存するときに、通貨換算レートも「INR」とともに保存することです。これを、その通貨換算レートで「INR」に変換します。それは良い解決策ですか?
例: サブエージェンシーは「2.00 USD」の取引を行います。保存する際に、通貨換算レートも列としてテーブルに追加します。たとえば、「1 USD = 55 INR」です。表示中に 2*55 を計算し、主な代理店レポートで 110 INR として表示します。
これに対するより良い解決策を提案してください。