昨日の軽減税率の値引きで税率が混在した後の合計値引きですが
出来ました!
トイレでヒントが浮かびました。 おそるべし!
あれです。そう、
構成比
いわゆる
商品ごとの金額(単価じゃないよ)の構成比を算出し、それぞれの比率を合計値引きに当て嵌めれば公平な値引き分配ができます。ポイントカードやクーポン、なんでも応用できますね
図は、エクセルで試したものですが、これはデータベースにも該当できますね
合計の値引きを入力すれば、自動的に各明細の値引き金額が構成比によって
算出され、税込値引き、税抜値引きに当てはめればいいだけ。
2015年10月23日金曜日
2015年10月22日木曜日
軽減税率の値引き、割引、クーポン、お米券などの対応
ブログの前回、なんちゃってインボイスで、軽減税率は簡単に処理できるような事を大イバりで書きましたが、値引やクーポンなど合計金額に対して10%の割引など、スーパーや飲食店でよくある事例に対応するのが困難であることが分かりました。
凄くごめんなさい!
POSレジを実際に作ってみたところ、明細ごとに税率や消費税を計算させることは、問題ないのですが、合計に対しての値引き、割引ができないんですね~
明細の税率が均等でないので分配ができないのです。
エクセルでたとえてみます
1、値引き、割引は今までのような合計に対して処理するのは難しい
500円クーポン券、合計の10%割引など、軽減税率対象の明細があると
2、 500円を引く場合、明細数5で割ったとしても、単価が100円に満たないケースもある
3、単純に税込4,199円から500円を引いて3,699円としても、その内税が計算できない
1、値引き、割引は今までのような合計に対して処理するのは難しい
500円クーポン券、合計の10%割引など、軽減税率対象の明細があると
今までのように合計から値引きが出来ない
2、 500円を引く場合、明細数5で割ったとしても、単価が100円に満たないケースもある
3、単純に税込4,199円から500円を引いて3,699円としても、その内税が計算できない
なので、明細ごとに値引・割引処理をしないと軽減税率には対応できない。
百貨店などはポイントや顧客ランク(外商さん)など特典が違ったりするけど
合計金額に対しての処理が難しくなるわけ。
そうなるとさ、レシートは1項目2行表示しないと
商品名、フラグ、単価、個数、税率、消費税、金額、値引・割引は表示できないでしょう。
たとえば明細ごとに割引したとして、
そこには優先順位が無いので、気分や任意、お客様の合意で
消費税の高い10%の明細から割引するのではないか、そんな安易な方法では
軽減税率の意味をなさないのではないか、、などなど
軽減税率対象商品と、それ以外を分けて会計する方法もあるけど、
お客様を待たせ、実務的に難しいのではないかと予想できる。
海外ではどうなのか分からないけど、既に商品ごとに幾らOFFと
値札が付いている事が多く、合計に対しての値引きは、見ていない。
日本ではお米券など他の商品と交換できるものもあるが、扱いが変わると思われる
この問題、解決したので、こっちも見てね!
百貨店などはポイントや顧客ランク(外商さん)など特典が違ったりするけど
合計金額に対しての処理が難しくなるわけ。
そうなるとさ、レシートは1項目2行表示しないと
商品名、フラグ、単価、個数、税率、消費税、金額、値引・割引は表示できないでしょう。
たとえば明細ごとに割引したとして、
そこには優先順位が無いので、気分や任意、お客様の合意で
消費税の高い10%の明細から割引するのではないか、そんな安易な方法では
軽減税率の意味をなさないのではないか、、などなど
軽減税率対象商品と、それ以外を分けて会計する方法もあるけど、
お客様を待たせ、実務的に難しいのではないかと予想できる。
海外ではどうなのか分からないけど、既に商品ごとに幾らOFFと
値札が付いている事が多く、合計に対しての値引きは、見ていない。
日本ではお米券など他の商品と交換できるものもあるが、扱いが変わると思われる
この問題、解決したので、こっちも見てね!
9
2015年10月17日土曜日
FileMaker でデータベースを作る
僕的には、データベースは自由に作っていいと思います。
けっこうマジで言ってます。
デベロッパの方はそれじゃ困りますが、一般のユーザーなら自由でいいと思います。
たぶん、満足のいくものでなくても最後まで作り上げて、動かしてみたら
感動するんじゃないかなぁ・・・
最後まで作り上げたら、処理をもう少し早く出来ないかとか、誤入力を防ぎたいとか
もっと実用的な検索にしたいとか要求が起こるわけで、始めっから完璧な設計で
開発しようなんて、逆に面白くない
スクリプトにしても長くたっていいじゃないですか、
他のテーブル、レコードやフィールドに影響を与えなければいいんです。
邪道でもちゃんと動けば邪道ではなくなる。
計算式だって、関数が分からなければ、フィールド増やして足し算、引き算、掛け算、割り算すれば大抵の事はできます。 いいんですよ、最初なんだから・・
昔の話なんて良くないのですが、変数もなければグローバルフィールドもなく、ポータルもリレーションも無い時、なぜか関連レコード移動とルックアップはあって、正規化は出来ないにしても見積もりや売上・請求システムなど凝った皆さんは難なく作られてました。凄いですよね・・・
商品マスタのウィンドウからコピー、貼り付けですが(笑)
エクセルもワードもアクセスも売ってない時代(ジビ・カルク、マルチプランはあったかな・・・)に、僕はクラリスFileMakerProⅡの「プレビュー」という聞いたことの無かった機能にあこがれて購入したんです。分厚いマニュアル付の青いフロッピー4枚だったかな・・・
プレビューなんて単語それまで聞いたことありませんでしたから・・・
たぶんね、他にプレビューって機能付いたソフトは無かったと思います(未確認)
当時、農協の指定伝票、これで作れるぞ!って開発部がこぞって導入しましたから
バックもフロントも気にせずにデータベースが開発できるなんて、なんて凄いんだろうと、たぶん今のバージョンアップより感動したと思います。
(当時4th DimensionというMac用のデータベースソフトもありました)
誰が作ってもそれなりに動くのがFileMakerですし、まぁ、それも少し問題もあるのですが
必ず次の対策があるわけなので、修正した方が良ければ修正すればいいだけです。
正しいか誤りかより、とにかく作り上げてみることって大事だと思いますねー。
世界でたった一つのデータベースができるわけですから
面白くなるための始まりは否定より自分を肯定したほうがいいのではないかと感じたわけです。
Macが自由な発想のユーザビリティを重視し続けるっていいですよ。
けっこうマジで言ってます。
デベロッパの方はそれじゃ困りますが、一般のユーザーなら自由でいいと思います。
たぶん、満足のいくものでなくても最後まで作り上げて、動かしてみたら
感動するんじゃないかなぁ・・・
最後まで作り上げたら、処理をもう少し早く出来ないかとか、誤入力を防ぎたいとか
もっと実用的な検索にしたいとか要求が起こるわけで、始めっから完璧な設計で
開発しようなんて、逆に面白くない
スクリプトにしても長くたっていいじゃないですか、
他のテーブル、レコードやフィールドに影響を与えなければいいんです。
邪道でもちゃんと動けば邪道ではなくなる。
計算式だって、関数が分からなければ、フィールド増やして足し算、引き算、掛け算、割り算すれば大抵の事はできます。 いいんですよ、最初なんだから・・
昔の話なんて良くないのですが、変数もなければグローバルフィールドもなく、ポータルもリレーションも無い時、なぜか関連レコード移動とルックアップはあって、正規化は出来ないにしても見積もりや売上・請求システムなど凝った皆さんは難なく作られてました。凄いですよね・・・
商品マスタのウィンドウからコピー、貼り付けですが(笑)
エクセルもワードもアクセスも売ってない時代(ジビ・カルク、マルチプランはあったかな・・・)に、僕はクラリスFileMakerProⅡの「プレビュー」という聞いたことの無かった機能にあこがれて購入したんです。分厚いマニュアル付の青いフロッピー4枚だったかな・・・
プレビューなんて単語それまで聞いたことありませんでしたから・・・
たぶんね、他にプレビューって機能付いたソフトは無かったと思います(未確認)
当時、農協の指定伝票、これで作れるぞ!って開発部がこぞって導入しましたから
バックもフロントも気にせずにデータベースが開発できるなんて、なんて凄いんだろうと、たぶん今のバージョンアップより感動したと思います。
(当時4th DimensionというMac用のデータベースソフトもありました)
誰が作ってもそれなりに動くのがFileMakerですし、まぁ、それも少し問題もあるのですが
必ず次の対策があるわけなので、修正した方が良ければ修正すればいいだけです。
正しいか誤りかより、とにかく作り上げてみることって大事だと思いますねー。
世界でたった一つのデータベースができるわけですから
面白くなるための始まりは否定より自分を肯定したほうがいいのではないかと感じたわけです。
Macが自由な発想のユーザビリティを重視し続けるっていいですよ。
2015年10月1日木曜日
FileMakerPro14のスクリプト・ワークスペースが ちょっと・・・
環境 Win8.1 FileMakerPro Advanced 14.0.2
CPU i5 4460 メモリ16G
<スクリプトワークスペース>
・スクリプトの位置を変更するときドラッグの反応が悪い
13とは比較にならないほど反応が悪い (Macはどうなのかな?)
・置いていかれる(ラグのような感じ)
・左のスクリプト一覧から選んで名称変更しても、タブに表示されるスクリプトに連動されていない
スクリプト名はタブ上で変更しなければいけないのか
・前回スクリプトを10個作って、一度閉じて、再び開くと、なぜか前回作ったスクリプトがタブに複数現れる。とても親切心とは思えないのでせめて任意設定で表示させないことを希望
CPU i5 4460 メモリ16G
<スクリプトワークスペース>
・スクリプトの位置を変更するときドラッグの反応が悪い
13とは比較にならないほど反応が悪い (Macはどうなのかな?)
・置いていかれる(ラグのような感じ)
・左のスクリプト一覧から選んで名称変更しても、タブに表示されるスクリプトに連動されていない
スクリプト名はタブ上で変更しなければいけないのか
・前回スクリプトを10個作って、一度閉じて、再び開くと、なぜか前回作ったスクリプトがタブに複数現れる。とても親切心とは思えないのでせめて任意設定で表示させないことを希望
確定とか作ってみる
そんで、新規でスクリプトを追加してみる
左のスクリプト一覧から名前を変更しても保存されず、上のタブ名称も変わらない
気を取り直してファイルを閉じ、再び開き、スクリプトを開くと、さっき作ったスクリプトがタブ上に全部ならんでいる・・・
しかも最初に作ったスクリプトがアクティブになっている
たぶん、「気を付けるように・・」もしくは慣れたら、、という問題ではないかと思う。
タブ上でしか、スクリプト名称を設定できないのに、過去に作成したスクリプトを全部並べていたのでは、当然ながらミスを誘発してしまう作りになっているとしか思えない。
うちの場合は、まだ13で開発して、14で新機能追加といった感じかな
14の新機能としては良いよ。
2015年8月11日火曜日
シリアルNOの初期値化と欠番
いろんな局面でシリアルコードが使われていますが
特に入力と明細など親子関係を持つ伝票NOや、病院などの外来で日によって詳細が増えるもの、弁護士さんなら案件Noなどが対象かと思うのですが、コード番号をKeyにしてデータベースを処理される事が多いかと思います。
(顧客マスタや商品マスタなど、日々増えるものでなければデフォルトのオプションで十分)
レコードを増やせば001+1(増分)
はオプションで設定できますが、翌日は001から始めたい
などの場合は自己リレーションと計算式を用いれば可能になります。
これは日付で初期化し、001から始める方法ですが、月によって001にしたり桁を増やして0001にしたりも出来ます。コード番号が整理されて帳票なんかも見やすくなります。
サンプルがダウンロードできますので見ていただければ分かるのですが、
シリアルコードを作るのに、それに関係するフィールドが増えちゃうのが難点でもありますが、覚えて損はないかと思います。デフォルト装備のオプション設定では、001に戻すために都度、管理者権限のデータベースの管理でオプションを変更する、なんて面倒な事したくないですし・・・。
日や月によって001に戻ってくれたり、レコードを全部削除しても、新規レコードで001から始まってくれるのは便利です。
<欠番>
しかし、このコード、親子関係にあればKey設定をしますので、レコードを削除した時に欠番をどうするか考えなくてはいけません。
今回は欠番が発生したらそのままにする方法と欠番以降を詰めて連番にさせてしまう方法の2種類をサンプルにしました。
いろんなサイトでシリアルについての注釈が掲載されていますが、僕的には欠番を詰めて連番にさせる方法は好ましくないと考えています。
リレーションで親子関係にあれば、欠番が詰まって連番化されたことで、子の側のデータもズレて(書き換わる)しまうからです。これでは整合性が保てません。ですので、レコードを削除して欠番が発生したときは、そのまま放置をお奨めします。
では、欠番なしとは、どういうケースで使用するか、ですが
伝票などのトランザクション(親子関係)ではなく、呼び出しだけに使用するマスタ等であれば、Noを詰めても良いと考えます。ただし、商品マスタなど後に商品別の分析をするのであれば、危険です。担当者や人事などでも定年や退職などで欠番が出ますが、欠番なしになると欠番以降の関連データが飛んでしまいます。
僕の場合は、欠番なしという手法で開発を手掛けたことはありません。
ダウンロード(FM13以上)
特に入力と明細など親子関係を持つ伝票NOや、病院などの外来で日によって詳細が増えるもの、弁護士さんなら案件Noなどが対象かと思うのですが、コード番号をKeyにしてデータベースを処理される事が多いかと思います。
(顧客マスタや商品マスタなど、日々増えるものでなければデフォルトのオプションで十分)
レコードを増やせば001+1(増分)
はオプションで設定できますが、翌日は001から始めたい
などの場合は自己リレーションと計算式を用いれば可能になります。
これは日付で初期化し、001から始める方法ですが、月によって001にしたり桁を増やして0001にしたりも出来ます。コード番号が整理されて帳票なんかも見やすくなります。
サンプルがダウンロードできますので見ていただければ分かるのですが、
シリアルコードを作るのに、それに関係するフィールドが増えちゃうのが難点でもありますが、覚えて損はないかと思います。デフォルト装備のオプション設定では、001に戻すために都度、管理者権限のデータベースの管理でオプションを変更する、なんて面倒な事したくないですし・・・。
日や月によって001に戻ってくれたり、レコードを全部削除しても、新規レコードで001から始まってくれるのは便利です。
<欠番>
しかし、このコード、親子関係にあればKey設定をしますので、レコードを削除した時に欠番をどうするか考えなくてはいけません。
今回は欠番が発生したらそのままにする方法と欠番以降を詰めて連番にさせてしまう方法の2種類をサンプルにしました。
いろんなサイトでシリアルについての注釈が掲載されていますが、僕的には欠番を詰めて連番にさせる方法は好ましくないと考えています。
リレーションで親子関係にあれば、欠番が詰まって連番化されたことで、子の側のデータもズレて(書き換わる)しまうからです。これでは整合性が保てません。ですので、レコードを削除して欠番が発生したときは、そのまま放置をお奨めします。
では、欠番なしとは、どういうケースで使用するか、ですが
伝票などのトランザクション(親子関係)ではなく、呼び出しだけに使用するマスタ等であれば、Noを詰めても良いと考えます。ただし、商品マスタなど後に商品別の分析をするのであれば、危険です。担当者や人事などでも定年や退職などで欠番が出ますが、欠番なしになると欠番以降の関連データが飛んでしまいます。
僕の場合は、欠番なしという手法で開発を手掛けたことはありません。
ダウンロード(FM13以上)
2015年7月10日金曜日
マウスホイールでレコードが変わる(画面が変わる)
マウスホイールでレコードが変わる(画面が変わる)
これは、
スクリプトの
ツールバーの表示切替[ロック:隠す]
で動かなくなります。
ロック解除のスクリプトと併用させると、けっこう使えます。
明細の入力時など、マウスホイールは危険ですね~
これは、
スクリプトの
ツールバーの表示切替[ロック:隠す]
で動かなくなります。
ロック解除のスクリプトと併用させると、けっこう使えます。
明細の入力時など、マウスホイールは危険ですね~
値一覧をポータルにして絞り込む (中分類、小分類)
前回のファイルを利用して
値一覧をポータルで表示させて
絞り込んでいくもの。
値一覧のドロップダウン表示がどうも好きでない方向けです。
ダウンロードできますので中身をみてください。
苦肉ですが、画面はすっきりw
中分類を選択すると小分類に
小分類を選択すると商品マスタに
商品マスタを選択すると元の中分類に
前回のファイルに中分類のTO「中分類フロントP」を追加してポータルにしました。
13ならではのオブジェクトを重ねて、スクリプトのフィールド設定で隠してます。
ダウンロード(FM13以上)
値一覧をポータルで表示させて
絞り込んでいくもの。
値一覧のドロップダウン表示がどうも好きでない方向けです。
ダウンロードできますので中身をみてください。
苦肉ですが、画面はすっきりw
中分類を選択すると小分類に
小分類を選択すると商品マスタに
前回のファイルに中分類のTO「中分類フロントP」を追加してポータルにしました。
13ならではのオブジェクトを重ねて、スクリプトのフィールド設定で隠してます。
ダウンロード(FM13以上)
登録:
投稿 (Atom)
Associatron (アソシアトロン)連想記憶
なぜか、僕のブログの研究所側ではなく、FileMaker側にヒットするので アソシアトロン Associatron研究 リンクを貼っておきます。 研究と実験詳細 https://cside-associatron.blogspot.com/ 公開実験(JavaScriptのみ...
-
少し忙しくてPOSレジ方が遅れてます 今回は会計の画面ですね~ 入力画面も少し変更しています。自由にカスタマイズしてくださいね。 今回作ってて思ったのですが、 ●軽減税率と標準税率を分ける ●端数処理(ポータル明細内の各行と、受注側(3カ所の消費税計算) ...
-
その前に。。 シリアルNOの初期値化と欠番 のダウンロードを再開しました。 が、注意が必要です。 SerialIncrement ( "001" ; Max ( シリアル初期化_自己リレ::シリアル )) のように自己リレをして計算...
-
前回の API_OpenWeatherMapをFileMakerに取り込む際、 1、改行テキストに変換 2、配列をグローバル変数に格納 3、GetValue関数を使ってLOOP処理でFMのデータ化させる という流れでした。 OpenWeatherMapは項目とデ...




