みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
売上テーブル(取引先,日付,商品名,個数,金額 など一般的なフィールド)に売上を入力しています
これをもとに、日付と取引先で抽出して請求書を作る場合、下記のような仕組みにしたらよいでしょうか?
請求書テーブル(取引先,請求日,合計請求金額,請求書番号 など)と
売上から期間や取引先で抽出するレイアウトをつくり、
確定ボタンを押したら売上テーブルの請求書番号フィールドに最新の請求書番号を付与する
請求書レイアウトには請求書番号でリレーションされた売上がリストアップされるので、それを印刷
といった流れでしょうか?
間違っていたり、もっと効率的な方法があったらアドバイスお願いします
請求書関係はこのコミュニティ内で検索すると色々有益な情報がヒットすると思いますが、
一般的な商取引(月締めで、同じ月内に複数回の取引がある)のスタンダードなやり方としては
請求書レコードを発行する(一般的には月替わりのタイミングとかになると思います。)
請求書レコードには顧客ID,請求日フィールドがありますので、
この顧客IDと請求日で売上テーブルとリレーションすれば、その月の特定顧客の請求データが得られます。
ということで、後は売上テーブル側に請求日フィールドがあれば良くて、売上レコードの作成が先、請求書レコードの作成は後という順番になります。
この請求日は20日締めや月末締めなど得意先ごとに違うでしょうから、得意先マスターに請求日区分を持たせておいて、非保存の計算フィールド(タイプは日付)で請求日フィールドを作成し、常に今現在の締日が入るようにしておきます。請求書レコード・売上レコードを作成する度に当月の請求日をこの得意先マスターから引っ張ってくればいいと思います。
基本的なテーブル構成は
得意先マスターテーブル
商品マスターテーブル
売上テーブル
売上明細テーブル(売上IDでリレーション)
請求書テーブル
というのがミニマルな構成で、印刷の柔軟性を考慮すると、正規化は崩れますが、売上明細テーブルに得意先IDと請求日をルックアップで持たせておくと印刷が楽です。
これで
請求書テーブル ===> 売上テーブル
請求書テーブル ===> 売上明細テーブル
とアクセスできますので得意先別・請求日別で集計できます。
印刷する場合は売上明細レコードをリスト表示させれば複数ページでも柔軟に表示できます。請求書テーブルのポータルで売上明細を表示して印刷をやろうとすると、複数ページに分けて表示するのは面倒になりますので、設計は楽ではありますが印刷の柔軟性は落ちます。
この構成の利点はリレーショナルデータベースの基本を習得できる事です。なので請求書以外の様々なパターンへの応用が効きます。データベースの解説本などに請求書作成のサンプルが多いのは、RDBの基本をほぼ網羅しているためです。
請求書は業種・業界により様々なので一概には言えませんが、よくある定番パターンはこんな感じかと思います。ただ、取引形態によっては先に請求書を作成して、その請求IDを売上レコード側に持たせるのもありだと思います。決して間違ってはいないと思います。
Offline
請求書レコードを発行する(一般的には月替わりのタイミングとかになると思います。)
に関してはどのように処理するのでしょうか?
ファイルを開いたときの日をみてスクリプトを走られるなら
たまたま請求がないと0円の請求書ができてしまいませんか?
こいいったシステムを使ったことがほぼないので
見当違いでしたらもうわけないです
納品書と請求書の伝票No
見積書を作成への質問
などのスレッドや、その中のサンプルが参考になるでしょう。
明細レコードで、売上日から締日と請求日を計算(取引先ごとに計算できる簡単な計算式がありますので、サンプルを参照)させておきます。売上明細が作られた時点で得意先と締日を通して請求テーブルに関連レコードが作られているかどうかを確認します。レコードが無ければレコードを作り、規則に従って請求書番号を与えておきます。(請求テーブルは、この番号を管理するためだけに存在)
請求日になれば、請求日の売り上げ明細を抽出して、請求先ごとに集計して、印刷します。ですから、明細がない請求先への伝票は印刷されません。
Last edited by Shin (2023-04-07 13:53:24)
Offline
請求書レコードを発行する(一般的には月替わりのタイミングとかになると思います。)
に関してはどのように処理するのでしょうか?
これは月替わりでなくても別に構わないのですが、月末に駆け込みで新たな得意先ができたりしたら、その得意先の請求書発行を忘れたりするので、意識的に月初に先月分の請求書をまとめて発行するケースを例示しました。月初に得意先を全てループして売上データの存在を確認→請求書発行という手順を取っているためです。
ここはどのタイミングでもいいですが、請求日を売上明細の請求日と一致させるため、例えば4月頭に3月末締分の請求書を発行する場合、リレーションを一致させるために請求レコードには2023/03/31という締日(請求日)を持たせる必要があります。なので、その計算式(先月末が自動的に入ったり、当月末が自動的に入ったり)の設定を楽にするために発行時期を決めておいた方がいいかと思います。
ダイアログで先月分とか当月分とかで選択させてもいいですし。
上でshinさんがおっしゃっているように売上があった時点で自動的に発行されるようにするのが楽で一番いいのですが、ケースによっては請求書の発行のタイミングで別のチェックも同時に走らせる事もあるかと思います。私は請求書発行と同時に複数の処理を走らせていますので毎月同じタイミングで行っています。
Offline
> 売上があった時点で自動的に発行されるようにする
上のスレッドのサンプルをみてもらえばわかりますが、その動きとはちょっと違います。
売上げがあった耳点で、該当月の請求が立ちます(内容は確定していませんが)。その時点で請求番号を発行することが確定しますので、請求テーブルにレコードを作成します。
実際の請求書の発行は、締日を過ぎてから請求日までのタイミングで、明細の中の直近の締日のレコードを抽出し、集計して印刷します。請求に伴う別処理が必要でしたら、そのタイミングで同時に行えばいいです。
月末締、翌月中旬請求がおおいでしょうが、締日と請求日が特殊なところもあるので、それに対応できる処理です。
Last edited by Shin (2023-04-07 17:17:34)
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 580.75 KiB (Peak: 586 KiB) ]