ラベル 見積書、消費税 の投稿を表示しています。 すべての投稿を表示
ラベル 見積書、消費税 の投稿を表示しています。 すべての投稿を表示

2016年11月21日月曜日

第28回弁護士向けソフト  まずは、30分で見積システムを作ってみます。

前回も書きましたが、弁護士さん向けのソフト開発を最初から作っていきますので
よろしくお願いします。



事件管理ソフトの前に、簡単な見積システムなんかを作ってみます。
データベースの構造を知る上で、てっとり早く簡単に理解がしやすいからです。


まずはFileMakerの無料評価版をダウンロードします。
買うのなら、ちょっと高いけどFileMaker Pro Advancedをお勧めします。
理由はスクリプトデバッガとデータビューアがついてるからです。
テーブルインポート、カスタム関数が使えるのもいいですね。

僕は14のAdvancedで作ります。


データベース(以下DB)は、通常SQLとPHPなど、データベースとアプリを分離して開発しますが、FileMakerは、何も考えずに、これひとつで開発できますので、プロじゃなくても非常に早く簡単に目的にたどり着けます。分離開発は、FileMakerにもExecuteSQL関数がありますので、やってやれないこともないのですが、開発の仕方を間違えると、遅く、使えないシステムになってしまうこともありますので、素直にそのまま使用する事をお勧めします。





---- それでは始めますね ---


新規ソリューションから ファイル名「Test1」を作り

テーブルを作っていきます。
・見積
・見積明細
・商品マスタ
・得意先


日本語ですよ。
日本人なら日本語がいいに決まってるじゃないですか。





































テーブルを作ったら、各テーブル毎にデータを入れるためのフィールドを設定していきます。



見積(テーブル)には

・伝票No(テキスト)
・得意先No(テキスト)
・日付 (日付)

































同じく

見積明細(テーブル)

・伝票No(テキスト)
・商品No(テキスト)
・商品名(テキスト)
・単価(数字)
・数量(数字)
・金額(計算) =単価×金額



商品マスタ(テーブル)

・商品No(テキスト)
・商品名(テキスト)
・単価(数字)


得意先(テーブル)

・得意先No(テキスト)
・得意先名(テキスト)


を作ります。
ファイルを作った時に勝手にできたTest1のテーブルは放置してください。































次はリレーションです。

得意先(テーブル)の得意先Noから
見積(テーブル)の得意先Noをドラッグして線で繋げます。



見積(テーブル)の伝票Noから、見積明細(テーブル)の伝票Noまでドラッグして
線で繋げ、レコードの作成許可と、一緒に削除の2か所にチェックを入れます。



見積明細(テーブル)の商品Noから、商品マスタ(テーブル)の商品NOまで
ドラッグして線で繋げます。



テーブルは文字通り仕事の机と同じで、
田中さんの机と、佐藤さんの机を、あるKeyで結び同時に仕事をする事と似ています。
このとき、田中さんが作ったデータと、佐藤さんが作ったデータは、合わさって見えるのですが、データはしっかりと別々の机で保管されています。この関係をリレーション(関係)と呼び、
これができるデータベースをリレーショナル・データベースと呼びます。

primary key (主キー)や外部キーについては、今回は省きます。
































見積明細(テーブル)の商品名フィールドと単価フィールドを商品マスタ(テーブル)の同じ名称のフィールドからルックアップさせてデータを保管させます。


データの正規化と冗長性については後程説明します。



































見積(テーブル)の伝票Noをオプションでシリアル番号を設定します。
1+1でも、0001+1でも、自由でいいです。


同じように、日付フィールドを作成日にチェックします。



































得意先(テーブル)の得意先Noもシリアル設定をします。


































商品マスタ(テーブル)の商品Noもシリアル設定します。


※ 見積(テーブル)と見積明細(テーブル)は伝票Noで照合されていますが、
見積明細(テーブル)側の伝票Noはシリアル設定をしてはいけません。
見積明細(テーブル)の伝票No以外のデータが入力され確定された時点で
自動的に見積(テーブル)側の伝票Noが生成されます。


































見積(テーブル)のレイアウト画面を開き、見積明細(テーブル)のポータルを作ります。

田中さんの机の上で、佐藤さんの机が見えるような状態(不思議ですね~)
































ポータルにフィールドを追加します。
このとき、明細の伝票Noは省いて結構です。



































こんな感じになりますが、全部同じ幅だと変ですので、フィールドの幅と書式を設定します。































数字フィールドは右寄せ、小数点以下、3桁区切りなどを設定します。































見積(テーブル)に得意先(テーブル)の得意先名フィールドを置きます。

あれ?と思うでしょう。
見積(テーブル)側に得意先名フィールドを作って、さっきと同じようにルックアップさせて
データを保管させなくてもよいのかと・・・・。

それでもOKなんです。

でも、あえて、見積(テーブル)とキーで結んだ得意先(テーブル)から得意先名を参照させることにしました。


実は、なぜ見積システムを作るのかは、これを説明したかったからなんです。


先程の見積明細(テーブル)の商品名や単価もルックアップさせずに、キーによって参照させることによってデータを表示させることが可能です。(これが正規化です)

なぜ、そうしなかったのか・・・


一つには、参照させて表示させる事は、この見積(テーブル)画面で、マスタ側のデータも変更できてしまう!ということです。
そこに不具合が生じるか否かを、使用者側の用途によって決定させなくてはいけません。
例えば、見積もりの場合、明細(テーブル)ポータル上で商品マスタにある名称や単価が操作(参照して表示)できれば、まるで学習機能かのようで便利ではありますが、過去の取引データの変化が取得できません。


8月15日 りんご 100
9月11日 りんご 101円

という単価の変化を明細で取得したいのに、正規化したいがために、商品マスタを参照させ過去のデータまで


8月15日 りんご 101
9月11日 りんご 101円

に上書きされてしまったら、取引の変化が分かりません。




見積もりや売上請求、仕入・買掛など、相手と取引する業務では、「過去と現在に変化があって当然」と決定されれば、ルックアップさせて、データを保管させ、あえて冗長させる手段をとります。


いやいや、過去データよりも、どんどんマスタ・データを参照させて上書き(正規化)させれば、データも更新され「楽なんだ」と考える場合は、過去の明細単価まで一斉に変わってしまいます。


もう、これは開発者より、使用者が決めなくてはいけません。


見積書という概念で考えると、得意先名が伝票入力時に変更される事は考えられないので正規化でいいのだと考えます。一方、明細内の商品単価は、原料の値上げや、諸事情などで今回の取引上の単価が変わるなど日常起こりうることです。
マスタ側のデータはそのままで、明細上で単価変更が出来き、過去の取引金額の変化が分かった方が良いでしょう。
見積ならまだしも売上請求で過去の明細データが変わってしまったら、ソフトウエアとは言えないものになってしまいます。



リレーションといっても、なんでもかんでも正規化すると、実際の業務に支障をきたす場合がありますので、現場実務を考慮して判断しなくてはいけません。
また、メンテナンスなど、ファイルが壊れ、NOと名称を合わせるのが大変な場合、ルックアップされてデータが保管されていれば、「0003番はリンゴ」というデータが確認できますが、正規化された場合は、NOがなんの商品なのか分からなくなる可能性もあります。

(だからといって、なんでもルックアップも止めましょう)
































さてさて、見積(テーブル)の合計フィールドをSum関数を使って、
見積明細(テーブル)の金額を指定します。




































まぁ、見栄えの問題でもありますが、ポータルをクリックし、代替の行状態にチェックを入れます。

































インスペクタで、各フィールドの入力しなくてよいものを選び、ブラウズモードを外します。



































入力するフィールドに色を付けてみます。






























レイアウトモードにして、レイアウトメニューからタブ順の設定を行います。

キーボード操作で次のフィールドに移れるのは便利ですね。2分でできます。


(最近クラウドを使ったWebでの業務アプリが増えてきましたが、FileMakerでは、このタブ順でキーボード操作を設定するのは便利ですよね、Webソフトでは下手するとEnterキーを押すたびに送信したりして使い物にならなくないですか?最近ではjqueryのイベントなど使ってコードを書けるようにはなりましたが、何日もかかりますし、開発が嫌になります。実際、現場実務でのWebソフトは、まだちょっと処理も遅く駄目っすね~)



必要のない箇所の番号は削除します。

































TabキーとEnterキーで次のフィールドに移るように設定します。



これで、非常に簡単で簡易的な見積システムが完成です。
得意先(テーブル)と商品マスタ(テーブル)にデータを入れて
実際に操作してみましょう。




























消費税の設定やデータのコミット(確定)は後日、説明します。
今回はスクリプトを一切使っておりません。









ダウンロード
(今回の分)










2016年1月30日土曜日

第26回弁護士向けソフト UPしてあったファイルを修正

昨年の1月2日にアップしていたファイルの修正(一年ぶり)

第25回 自分で作ろう! 弁護士向けソフト 請求確認と消込入金、ダイレクト入金

で、少しスクリプトがおかしいのと、カスタマイズするための理屈が分かりずらいので修正しました。
今までダウンロードしてくださった方ありがとうございます。



なんちゃって請求・消込入金画面



↑見積から売上画面  
   
不親切ですがデフォルトのメニューから請求入金に行ってください、、、




↑なんちゃって請求書


公開して沢山の方からリレーションがわかりずらいという声を頂きました(笑)
すみませんです。
普通はこんなにリレーションを張らないと思うのですが、過去のデータを追跡させるために、前々回まで遡れるものを作りましたので、気持ちが悪いのかと思います(詫び)


簡単なものを複雑にする気はないのですが
変数や関数を極力使わず、データをフィールドに保管し、足算、引算、掛算、割算で
請求書や入金処理をしちゃいましょうというものです。
ただ、集計は使っていません。
(関数も最小限、エラー処理もダイアログも作っていませんが・・・)

前回締日とか今回締日とか、リレーションとポータルフィルタで強引に帳尻を合わせたせいで、非常に複雑になっているのだと思います。

カスタマイズするのであれば
例えば、売上や入金日付と締日計算で照合せずに、今回締日開始、今回締日終了という計算式を作って範囲で照合するとポータルフィルタは最小限で済むかと思います。
ポータルフィルタはポータルに表示させるだけの機能で、SUM( )のような計算をすると全て計算されますから、何処かで帳尻合わせが必要になり、より複雑にしてしまいます。
何処に何が隠れているのか、探すのも大変ですから。。。。

前回は請求書までは作らなかったのですが、今回はなんちゃって請求書を作りました。

普通は、ポータル表示で請求書印刷はしません。一得意先で何枚にも渡る可能性があるからリスト形式で作ります。しかし、一得意先の締め単位の売上伝票が少ないのであれば、やっていけないわけではありません。

請求書を発行する前に、締日で検索できるリストがあると便利だと思います。
さらに、今回請求のある得意先にフラグを立てリレーションで照合すれば、もっと楽です。
前回請求+今回売上-今回入金で残があれば未収入金ですから、そういうリストも作れるのかと思います。

締めの一覧表は締日ごとで、月に一度売掛残高一覧表も作れるのかと思います。

ではでは。。。。




(もう、12がないので13か14で開けてください)






2014年11月4日火曜日

第24回 自分で作ろう! 弁護士向けソフト 見積書と売上と消費税 その3

前回の続き~


見積書のレイアウト




今までの様なNavレイアウトじゃない理由は、そこまで、マジでやったら製品になっちゃうから、あえてFileMakerPro11のクラシックなレイアウトを使用して作っています。
まぁ、お時間があれば、Nav(事件管理)と合体させてください。


関係者を選択したら、タブのオブジェクト名を設定しておいて移動するスクリプトを組んで自動的に商品マスタのガイド開けるようにすると親切ですね。(関係者は一人なので、それが可能)



レイアウトは好きなように作り替えてください。
自社マスタとか作って、右上に会社名や住所を表示させた
ほうがいいかもしれません。


見積もりなのでパートで小計とかしていません。



前回作った見積書に印刷のレイアウトと一覧を付けました。
それと、今回は、見積書データを売上伝票に移行処理。
ダイレクトに売上入力もできますし、見積もりから移行処理かけてもOKです。

商品マスタと税率マスタを照合させて、明細別に消費税(課税、非課税)ってのもカスタマイズできます。とにかく、今回は基本形ですので、やってません。



売上は、一覧表関係、沢山作れますよ。
商品順位表、分類別集計表とか、順位表とかいっぱい!



弁護士さんは数量とか表示しないんでしたっけ?
後日、やり方だけ載せてみます。

  予のう金、着手金、報酬、手数料、諸経費、時間別、日当とか・・・
  たぶんですが、計算式が沢山あるんですよね、
  印紙とか諸経費の非課税があれば、明細での税率設定が必要。
  (ここでいう商品マスタと税率マスタを照合)


  細かい明細の他に、大まかな分類名を着手金とか報酬にして
  その明細(細かい明細の合計値)を作ればいいんだと思います。
  上の明細の分類合計明細です
  提示するのは、数量も無く、単価も無い

  ● 着手金  200,000円
  ● 手数料   20,000円 備考とか・・・

  明細に戻れば、6行くらいの細かな計算がされているとか・・・
  細かい明細は、計算の根拠として残しておけば良いのかと思います。
  どうしてもくれ!と言われれば出せるものが良いでしょう。
  


売上の消費税は、前回と同じ設定で、TO(テーブルオカレンス)を使用しています。


商店の場合、
売上伝票の連続打ち(溜め打ち)は、ボタンを設置して 前の関係者を呼び出すスクリプトでいいです。トリガ仕掛けると、見積からデータが貼り付けられた後に反応してしまいます。
最終タブ順位の空フィールドにトリガ仕掛けるって手もありますが・・・


請求書は
相手側の締日。それと請求書締日=請求書到着期限(発送して到着させる期限)、すなわち、遅くとも3日前には、締て、請求書を発送する。そして支払日(入金予定日)
この3つの情報が必要ですね。


それと、未収入金、月末に集計される売掛残高、繰越請求。

今のままですと、売上伝票分は全て売掛になってしまいます。
さかのぼって、閲覧できて回収できるような仕組みじゃないと、駄目ですね。


入金は、明細の消し込み式じゃなくてもいいのかな・・
基本のやつでやってみます。





今回の
ダウンロード





2014年10月29日水曜日

第23回 自分で作ろう! 弁護士向けソフト 見積書と消費税 その2

消費税の考え方(使用者が自由に設定できるもの)

前回、今回は、デザイン重視にしていないので、クラシックレイアウトで・・・

前回の見積もりにガイド機能と税率マスタを付けた



消費税が変わるたびに、ソフト屋を呼んで修復しなければいけない理由は、自分で設定できるように作られていないからです。いつ政策によって変わるか分からないものなら、使用者が変えられるようにする。これが道理と考えています。

税率の問題は、請求明細などの期間またぎで、20締のお客様は321日~331日までは5%、41日~420日までは8%の明細を出力しなければいけませんでした。
しかし、元のシステムで8%と打ち込むと、3月の分まで8%に上書きされてしまう現象が起きてしまうわけです。
今回の修正分で、来年の10%分まで計算式に入れたソフト会社は多くありますが、ユーザーが自由に変更できるものは多くはありません。

自分で設定できるからくり


リレーションで税率を反映させる



いつから、いつまで 税率


「いつから」「いつまで」税率が「何%」になるのか、これを別テーブルに設定し、リレーションを組んで、見積や売上、請求に反映させる。使用者は誰でも、変化する消費税に対応できる様にするということです。

見積日を変更すると、税率が変わる


今回は掲載しませんが、万が一、商材によって税率が変わる様な政策になった場合は、
商品に分類をつけ、その分類による税率設定を出来る様にします。
例えば、米や生きて行くために必要とされる食料品は、減税されAという分類。
通常の商材はBなど、税率マスタもそれぞれ、AB、自由に設定できる分類があり、それぞれに「いつから」「いつまで」、「税率」を使用者が自由に設定できる。そこまでの予測ができれば対応は可能だと云えるでしょう。

スーパーのPOSレジにしても消費税が変わるたびに数千万もコストをかけるわけですが、
(実際、フィールドを計算式にして消費税を設定すると、いじる箇所は莫大)
開発者は、もう、誰にでも出来る仕組みである消費税変更など、そういう繋ぎの収入源を絶ってもよいのではないかと思うわけですヨ。



見積書の印刷などは次回・・・に続く


ダウンロード

FileMakerPro11以上が必要です
12、13は変換して使用してください。

無料評価版ダウンロード




第22回 自分で作ろう! 弁護士向けソフト 見積書と消費税 その1

今回は、見積書を作ってみます。


普段使っていなかったFilemaker Pro 11 Advancedで作ってみます。
(特に意味はありません)

練習なので今まで作ったものとは、別に作ります。
12を持ってる方は、下からダウンロードして変換すれば使えます。
クラシックな画面ですが、12でもクラシックを選択すれば同じような画面で作成することが出来ます。


独特の計算式やフォーマットがあるかとは思いますが、最初は弁護士さん用というのではなく、簡単な基本構成のものを作り、後々、段階を追ってカスタマイズしていきましょう。
作った見積もりから後に作る売上、請求にデータを移行させ、各締日に合わせて一括で請求書を発行したり、入金と、幅が拡がります。

まずテーブルを作ります。



・見積
・見積明細
・商品
・関係者

これが基本構成です。
今回はこれに
いつ変更されても対応できる「税率」を追加し5つのテーブルを作ります。


テーブルが出来たら、各フィールドを設定していきます。

「見積」テーブル
  見積id(数字)オプションのシリアル設定で1増設定
  見積日(日付)
  関係者id(数字)
  タイトル(テキスト)

「見積明細」テーブル
  見積id(数字)
  見積日(日付)ルックアップ
  商品id(数字)
  商品名(テキスト)ルックアップ
  単価(数字)ルックアップ
  数量(数字)
  金額(計算)単価*数量 非保存

「商品」テーブル
  商品id(数字)オプションのシリアル設定で1増設定
  商品名(テキスト)
  単価(数字)

「関係者」テーブル
  関係者id(数字)オプションのシリアル設定で1増設定
  関係者名(テキスト)

「税率」テーブル
  税率id(計算)=1(後で説明)
  いつから(日付)
  いつまで(日付)
  税率

とりあえず、こんなとこ。あとで必要に応じてフィールド追加していきます。弁護士さんは商品テーブルという名称にはならないでしょうが、今回はデータの流れを重視するので、商品でいきます。
税率はいつ変わるかわからない、上がるか下がるか止めになるかもしれない。
後々、請求時に相手の締日によって税率が期日をまたぐ事がありますので、あえて今回は載せています。(321日~420)となると5%の明細も8%の明細も含まれる事が考えられたわけです。ダイレクトに日付計算するのではなく、今回はテーブルのリレーションによって、税率対応しましょう。という試みです。



idkeyにしてリレーションを組んでいきます。
税率テーブルは今は放置。
次にルックアップを設定していきましょう。


ルックアップは
見積明細テーブルに見積テーブルのidを照合して日付をルックアップ、商品からidを照合して商品名と単価を、それぞれルックアップさせます。


このルックアップという機能はKeyによって照合させたテーブルの指定するフィールドを保存することが出来る優れものです。エクセルがこの世に無かった頃、まだリレーションが出来なかったFileMakerでもこの機能のおかげで、沢山の業務ソフト開発ができました。
正規化されず冗長されて膨れ上がりましたが、それでも今に引継がれる素晴らしい機能です。


次に、見積と見積明細の照合を開き、レコード作製許可にチェック、削除にもチェックを入れます。(ゆくゆく過去の取引条件を閲覧する目的で削除にチェックをしない場合もあります)
で、ここまで出来たら、見積もりは60%完成です。



見積のレイアウトを作りましょう。
あ、その前に、関係者と、商品データーを5つくらい入れておいてください。




見積日はオプションの入力日ではなく、インスペクタでドロップカレンダーに設定しましょう。


次に見積テーブルの中に見積明細のポータルを置きます。とりあえず、フィールドは全て入れて、要らないものを消して下さい。


見積idと日付を消しました。



関係者idの後ろに、関係者名のフィールドを持って来ましょう。
明細テーブルに保存する必要が無ければ、リレーション先の関係者フィールドを置きます。
保存する必要があれば、明細テーブルにフィールド関係者名を追加し、ルックアップさせます。
ポータルの上に各フィールドのラベル名称を置きます。



あらかじめ入力した関係者idと商品idにデータを入力してみてください。
ほら、なんだか見積書みたいになりましたね。

すごいすごい!

ん?なにか足りない?
消費税と合計ですね。
さて、これはどのテーブルに置きますか?

見積テーブルでしょぅ



見積テーブルにフィールドを追加していきます。
小計=計算式でSum関数を使って見積明細の金額の合計を出します。
消費税は、とりあえず今は数字のままにしておいてください。
後で、税率マスタと連携させます。
合計=小計+消費税






ほら、できたー!簡単ですよね
スクリプトはひとつも作っていません。

これが見積書の基本です。
これが出来たらいろんな応用ができます。関係者のガイドを出して選んで入力とか、商品ガイドとか、明細別に消費税を設定して課税、非課税を判定させたり、商品に分類を付けて、分類の見積もりとか・・・

今回は印刷レイアウトを作っていないので、次回はリストにしての見積印刷なんかも・・


続きは次回。




(FileMakerPro11以上が必要です)
12,13は変換して使用してください。


Associatron (アソシアトロン)連想記憶

  なぜか、僕のブログの研究所側ではなく、FileMaker側にヒットするので アソシアトロン Associatron研究 リンクを貼っておきます。 研究と実験詳細 https://cside-associatron.blogspot.com/ 公開実験(JavaScriptのみ...