旅行はNotionで、割り勘はspreadsheetで

2022/08/18に公開

はじめに

旅程表をNotionでつくるようにしました。この前友達の分も旅程表作成したりしたんですけど、そこで割り勘があるっていうことで、作成したツールのご紹介になります。
聞くと複数人で1次支払いをして、それを請求し合うらしいんですね(私は計算が嫌なのでたいてい私がすべて1次支払いにして、それを参加人数で割って請求してます)。双方向の請求ってなかなか面倒くさくてnotionだけでは(きれいに)解決できなかったので、spreadsheetとGASで割り勘集計ツールを作成してみました。

Notionのテンプレート

https://speckle-booth-2d9.notion.site/template-dc307a11013246a3a15e7f8028e5dd0b

spreadsheet

https://docs.google.com/spreadsheets/d/1NeLVtfU32fsKmLEuf-PuvAUzVkEXHg1Rsh60Mievhhc/edit?usp=sharing

事前準備

Notionのインテグレーションを用意しておく。
権限情報はこちら。このうちupdate系の権限は不要です。

使い方

1. Notionを自分のワークスペースにコピーする

以下参照
https://www.notion.so/ja-jp/help/duplicate-public-pages

テンプレートはこちら
https://speckle-booth-2d9.notion.site/template-dc307a11013246a3a15e7f8028e5dd0b

2. Notionに旅程表を作成する

項目 詳細 計算に必要か?
date 日付 不要
tag 種類 不要
title タイトル 不要
amount 金額 必要
payer 実際に払った人(建て替えた人) 必要
pay_for 誰のために払ったか? 必要

3. spreadsheetをコピーして、項目を記入する

https://www.appsupport.jp/docs/doc-copy/#:~:text=1. コピーしたいファイルを,がコピーされました。

https://docs.google.com/spreadsheets/d/1NeLVtfU32fsKmLEuf-PuvAUzVkEXHg1Rsh60Mievhhc/edit?usp=sharing

configシートの以下項目を記入

  • token
    • インテグレーションのtoken
  • DB_id
    • DBのid

4. 概要シートのボタンを押す

仕様

  • pay_forにユーザー情報があるデータが対象となります
  • payerに情報がなければエラーとなります
  • amountに情報がなければエラーとなります

FAQ

返金がある場合はどうする?

返金がある場合は支払いの逆として入力してください。

AがB,Cに合計10,000円払ったものを返金する場合

  • Bがpayer、Aがpay_forの5,000円の行を作成
  • Cがpayer、Aがpay_forの5,000円の行を作成

ソース

https://github.com/nag8/travelSettlement/blob/main/src/main.js
https://github.com/nag8/travelSettlement/blob/main/src/notion.js
https://github.com/nag8/travelSettlement/blob/main/src/sheet.js
https://github.com/nag8/travelSettlement/blob/main/src/class/Debt.js
https://github.com/nag8/travelSettlement/blob/main/src/class/Debtor.js

enhancement

  • 割り勘を相殺する
  • エラー通知とか あんまりやる気ない
  • 他あればいい機能教えて下さい!

Discussion