ブラウザでの画面表示と印刷の描画差異に関する実践的考察
おごちゃん
前弊社の閉業の話を見た複数のところから、「会計システムはどうなったか」という問い合わせをもらいました。
内心、「そーゆーことはもっと早く言ってくれたら、また色々状況は変わってたのになぁ」とか思いながら、今も元気にやってる旨をお伝えし、「何かあればよろしくお願いします」というような話となりました。
そんなわけで、気にかけて下さっている方がいることがわかったので、現状報告をしておきたいと思います。
現状
リポジトリ
現状、前弊社のGitHubに置いてあります。 会社がなくなったわけなので、リポジトリも畳んでしまえばいいと思うのですが、少数ながらも☆がついてますし、それなりに知られているURLを廃止するのもナニなので、そのままにしてあります。
とは言え、いつまでもそうしておくのも良くないと思うので、適当にキリのいい時に弊社のアカウントを作って、そこに置くようにしたいと思っています。 多分、手元のブランチをmainにmergeした時くらいにやるんじゃないかと思っています。
コード
機能のことは後に書くとして、コードについてです。コードはかなり更新しました。
まず、webpackを使うことをやめました。何をしたかは、ゆいちゃんのエントリのように、Viteを使うようになりました。
webpackに恨みがあるわけではないですが、どうもwebpackチームの開発力が落ちてるんじゃないかって話が流れて来たのと、ライブラリによってはうまく処理してくれなくて、無理やりwebpack.config.js
に小細工して通しているものが増えてしまったので、見捨てることにしました。
そこで色々試してもらって、Viteを使うこととしました。
それに合わせて、今までバックエンドはCommonJSをベースにしていたものを、ESMにすることにしました。
前々からESMにしたかったのですが、Sequelizeの対応がイマイチであることと、ESMのためにはnodeの起動パラメータにオプションが必要であるということで敬遠していたのですが、viteがCommonJSのファイルを読み込むことがお嫌いで、バックエンドとフロントエンドで共有するライブラリが書き辛いということで、全部ESMにしてしまいました。起動パラメータについては、package.json
に
"type": "module"
と書いておけばいいだけですし。
それに合わせて、SequelizeをやめてPrismaを使おうとかなり頑張ったのですが(移行ドキュメントまで作ったのに)、「時刻のない日付型」の扱いがダメ過ぎて断念しました。90%くらい移行してたのですが、ここはどうしても譲れないので、2週間分くらいrollbackしてしまいました。
そんなわけで、レガシーの元になりそうな部分はだいたい最新にしたと思います。
TypeScriptにするという話もあるのですが、今のところは特に必要を感じてないのでやってません。 実質一人で開発しているので、あまり必要性を感じることがないのですね。 トランスパイラは面倒が増えますから、Node.jsがnative実装した頃でいいんじゃないかとか思っていたり。
機能
初期セットアップ
新しく会計を始めたので、初期セットアップからしています。 そうしたら、結構細かいバグを見つけてしまいました。 そもそも、私自身が使うことのなかった機能ですから、何かあっても気がつかない… 以前に、実はそんな機能があるなんて知らなかったとゆー(mayumiが作りました)。
一番バグで酷かったのは、会計科目を初期設定するために元データをcsvで持っていて、必要ならそれをExcelとかでいじってもらうということにしていたのですが、その初期科目のテーブルの「科目クラス」の名前を間違えていて、残高試算表とか決算書がうまく出ないことになっていました。
印つけたところが間違ってました。これは正しいものです。
プログラムそのものに間違いはなかったのですが、テーブルが間違っていて処理ができないという残念なことに。 手元のブランチでは直っているので、そのうちmainブランチにも反映させたいと思います。
推移表
「推移表」が見れるようになりました。
これは汎用の推移表で、特定の科目を月単位で集計して、残高や取引高の推移がグラフで出せるようにして、前年同月比較ができるようにしたものです。 融資を申し込む時に売上推移を出せとか言われるのはよくあることですから。
残高試算表
残高試算表は通期だけではなくて、期首から指定した月末までの集計が出せるようにしました。
融資を申し込む時に「残高試算表出せ」と言う政府系金融機関(婉曲表現)があってですね… 新設法人の残高試算表に何の意味があるのかわかりませんが、とりあえず出せと言うので作りました。 年度途中でも通期で計算… でも良かったのですが、「ここまではちゃんと整理した」という区切りをした部分でないと、あまりにあんまりなデータになってしまいますから。
ワークフロー
かなり長いこと、会計は私一人でやって来たのですが、伝票を入れることくらいは誰でも入れられてもいいだろうと、「伝票を入力できる資格」を付与したアカウントが作れるようにしました。
これはいずれ「経費精算」とかした時にスムーズにデータが流れるようにするためでもあります。 「経費精算フォーム」を完成させたら、会計に反映して欲しいですよね。
ところが、それを勝手にされても困りますから、ここで「伝票を承認する資格」を持った人が承認するというプロセスが欲しくなります。
実はこの機能はちょっと前に実装していた(mainブランチではなくて)のですが、そういった伝票が大量にあった場合は一々探すのが面倒ですし、承認を待っている人は状態がわからないという問題があったので、ホーム画面に承認待ちの伝票の一覧を表示するようにしました。 承認資格を持っている人は全ての承認待ちが、承認資格のない人は自分の書いた伝票のうち承認待ちになっているものが表示されます。
構想中の機能
それ以外のことについては、前弊社のブログに書いたとおりです。
また、直接会計とは関係ないのですが、「在庫管理」と「売上管理」を追加する予定です。 と言うか、これがちょっと高い優先度を持っています。 直接的には「しまぱん.com」の事務の合理化のためですが、実験や試作で使う部品の管理とか、社内の消耗品の管理とか、早いうちにシステム化してしまいたいという希望があるもので。
給与計算や請求業務も載せたいところですが、給与計算はExcelでもできますし請求書は手書きでも何とかなりますけど、在庫や売上はなかなかそれも手作業は厳しくなりつつありますので。
何にせよ、弊社のバックオフィスを全部載せられるようにと開発しているところです。
方針の変更
お問い合わせから、このシステムは某システムのようなことができるかも知れないという可能性が出て来ました。
もちろん私にしても弊社にしても、「この分野は素人です」し、弊社の思っている本業とバックオフィスシステムは直接はリンクしないのですが、士業の会社の方々と連携を取るようなことが現実味を帯びて来ました。弊社と士業(税理士に限りません)とは業務が競合することもありませんので、安心してお付き合いできます。
また、弊社の本来のビジネスを考える時にも、
この箱で中小零細企業やスタートアップのバックオフィスが全部揃います
という箱の存在は、とても魅力的なものに見えて来ます。
また、もっと情報を発信しなきゃダメだなぁとも感じたので、プロジェクトページを作って行こうと考えています。 今までビジネスとして力を入れるつもりがなかったので、「欲しい人はどうぞ」でしかなかったのを反省しています。
まとめ
ということで、この方面のお問い合わせを歓迎します。
それとは関係なしに、プロジェクトページは作って行くつもりです。