毎月20日が支払期日の取引先があるとします。その20日が日曜日だったとき、18日の金曜に前倒しするのか、21日の月曜にずらすのか。ルールが決まっていても、「今月の20日は何曜日か」を毎回カレンダーで数えるところは変わりません。
kintone の計算フィールドでも日付の足し算はできます。ただし計算フィールドは曜日を知りませんし、祝日も知りません。「翌月20日」までは出せても、「その日が休みなら前の営業日に」までは届かない。ここを埋めようとすると JavaScript を書くことになります。
この記事では、XenoX の日付計算プラグインを使って、請求管理アプリに次のルールを入れるところまで作ります。
- 締日を入れると、その翌月20日が支払期日に入る
- 20日が土日・祝日なら、前の営業日に繰り上がる
- 支払期日は手で触れない(編集不可)
作るアプリ
請求を1件1レコードで持つ、よくある構成です。フィールドは6つだけ。
- 会社名(文字列1行・必須)/担当者名(文字列1行)
- 件名(文字列1行)/請求金額(数値)
- 締日(基準日)(日付)… 計算のもとになる日
- 支払期日(日付)… ここに自動で入る
基準になる日付と、結果を入れる日付。この2つがあれば足ります。
ルールを作る
アプリの設定からプラグインを追加して、設定画面で「ルールを追加」を押します。1枚のカードに、計算の条件がすべて収まっています。
基準フィールドと計算方法
基準フィールドに「締日(基準日)」を選び、計算方法を決めます。選べるのは3種類です。
- 基準日の当月 … 当月の月初・月末・指定日
- 基準日からの日数 … 30日後、10日前など
- 基準日からの月数 … 1ヶ月後の20日、3ヶ月前の月末など
今回は「基準日からの月数」で 1ヶ月 後 の 指定日 20日。これで「翌月20日」になります。
休みのときにどちらへずらすか
「計算結果が休日(土日・祝日・会社休日)の場合は営業日に調整する」にチェックを入れると、翌営業日か前営業日かを選べます。
支払いは前倒しが安全なので、ここでは前営業日を選びます。納期のように後ろへずらしたい日付なら翌営業日です。ルールごとに別々に決められます。
手で書き換えられないようにする
「対象フィールドを編集不可にする」にチェックを入れると、支払期日の欄がグレーになって入力できなくなります。自動計算した値を誰かが上書きしてしまう事故を、そもそも起こさせません。
設定画面の下にはその場で計算結果が出ます。「基準日が 2026-11-01 のとき → 2026-12-18」のように、営業日調整まで反映した結果が保存前に見えるので、意図どおりか確かめてから保存できます。
動かしてみる
新規レコードの画面です。締日を入れる前は支払期日が空のままで、欄はすでにグレー。クリックしても入力できません。
ここで締日に 2027-01-31 を入れます。入力を確定した瞬間、支払期日に 2027-02-19 が入りました。保存ボタンを押す必要もありません。
2027年2月20日は土曜です。そのため前営業日の19日(金)に繰り上がりました。こちらはカレンダーを見ていません。
条件を変えて3件入れると、違いがはっきりします。
- 締日 2026-11-30 → 12/20が日曜 → 2026-12-18(金)
- 締日 2026-12-31 → 1/20が水曜 → 2027-01-20(そのまま)
- 締日 2027-08-31 → 9/20が敬老の日 → 2027-09-17(金)
3件目は祝日です。カレンダーを見ないと気づけないところですが、プラグイン側が祝日を持っているので、設定は何も足していません。
自社の休みを足す
設定画面の「休日設定」タブで、何を休みとみなすかを決められます。
土曜・日曜・祝日はチェックの付け外しで切り替えます。土曜出勤の会社なら土曜のチェックを外す、祝日も営業する小売なら祝日を外す、という形です。
そのうえで、
- 会社休日 … 年末年始・お盆・創立記念日など、自社だけの休み
- 会社営業日 … 土日祝でも出勤する日。こちらが最優先で営業日として扱われます
「原則は土日休みだが、月末の土曜だけは出勤する」といった運用も、会社営業日にその日を登録すれば表現できます。
設定にかかる時間
アプリを作るところから数えても10分ほどです。同じことを JavaScript でやるなら、祝日テーブルを自前で持ち、毎年更新し、月末やうるう年の境界を自分で検証することになります。そしてそのコードは、書いた人がいなくなった後も残ります。
日付計算プラグインの詳細はこちらをご覧ください。期日まわりの運用で困っていることがあれば、kintone の業務改善支援でもご相談を受けています。