2012年03月23日

小規模事業用の見積・納品・請求書類発行システム

はじめに
前回のエントリUbuntuで販売伝票作成管理で書いたように、この3月、私の営む翻訳事務所で使うための見積・納品・請求の3点の書類を発行するためのファイルを作成した。これは、フリー(オープンソース)のOffice統合ソフトであるOpenOffice(LibreOffice)の表計算ソフトCalc上で動作するマクロと表のテンプレートである。私の事業のためにカスタマイズしているので汎用にはならないと思うが、私の事業と似たような特徴をもっている事業、つまり、
  • 年間の売上がそれほど多くない(概ね1000万円以下)
  • 平均受注金額がある程度高い(概ね数万円程度以上)
  • 受注に応じて仕入れを立てる(在庫販売ではない)
  • 1明細について仕入先が1件に決まる(複数の仕入れを加工して商品にするのではない)
  • 見積の受注率が比較的高い(数割以上)
といった事業なら、ある程度使えるのではないだろうか。
上記の売上と受注金額については、つまりは年間数百件以上のデータを扱わないほうがいいだろうということである。スプレッドシートの特徴として数万件ものデータを扱うと処理速度が大幅に低下することが予想される(今回のシートで確認したわけではないが、たぶんそうなると思う)。通常、データは数年分は保管したいので、最大二千件程度までのデータを格納するとしたら年間数百件程度が妥当な処理範囲だろうというわけだ。だから、単価の高い仕事を扱うのであれば売上の高い事業でも使えるし、逆に単価が低ければ売上の制限はもっと厳しくなる。複数の原料を仕入れてひとつの商品を組み上げるタイプの業態に向かないのは、1明細につき一つの仕入先を想定しているからだ。翻訳エージェントの場合、この仕入先はつまりその文書を担当する翻訳者ということになる。また、このシステムは見積書で入力したデータを納品書、請求書と使いまわしていくようになっているため、見積書不要の業態や受注の如何にかかわらず大量の見積書を発行する業態には向いていない。見積→受注→納品→請求→売上集計と流れていく事務処理をスムーズに行うためのものである。

ダウンロードとライセンス
ダウンロードはこちらのサイトにある、invoices.odsという名称のファイルをローカルに置いて使う。

あるいは、こちらをクリックするとダウンロードに導かれる。

単なるテンプレートなので特に使用許諾等に堅苦しいことをいうつもりはないが、マクロのほとんどは複数のサイトに掲載されたサンプルコードからの改変なので、それらサイトの作者に対する敬意を払ってほしい(参考にしたサイトは別記事に記載の予定)。それらサンプルコードに関して特に著作権上の制約は設けられていなかったようであるが、私の権利範囲に関してはその精神を尊重してGPL準拠としたい。

要件
開発はUbuntu上のLibreOfficeで行なっており、それ以外の環境での詳しい動作確認は行っていない。ただし、このLibreOfficeはUbuntuのリポジトリに含まれているものではなく、本家サイトからダウンロードしてインストールしたものを使っている。Ubuntu12.04のリポジトリにあるLibreOfficeではエラーが発生して動作しないことを確認している。一方、Windows上のOpenOfficeでは、少なくとも一定の環境では動作するようである。この場合、フォントの設定が反映されないので、別途Takaoフォントを導入する必要があるだろう。

初期設定
ダウンロードしたファイルをOpenOffice(もしくはLibreOffice)から開いたら、使用前に初期設定を行う必要がある。初期設定は2種類ある。その他、OpenOfficeの設定を変更する必要があるかもしれない。
OpenOffice(LibreOffice)は、初期設定でマクロが無効になっている。本ファイルはマクロを使用するので、まずOpenOffice(LibreOffice)を起動して、オプションのセキュリティ→マクロのセキュリティの「信頼されたファイル位置」に本ファイルを設置した場所へのパスを追加しておく。
そのうえで本ファイルを起動し、まず第一の設定を行う。これは、出力ファイルのパスの変更で、ツール→マクロ→マクロの管理→LibreOffice Basicと進んでinvoices.odsのStandardに含まれるモジュールquote、statement、invoiceの3つの中のExport_to_PDFという名前のついたサブルーチンに含まれる出力パスを書き換える。デフォルトで"file:///home/user/Document/"が指定されているので、これを適切なパスに書き換える。ファイルの保存先に指定したいフォルダを開いてそこにあるファイルをコピーし、テキストエディタに貼りつければ、そのフォルダまでのパスが容易に得られるだろう。見積・納品・請求の各書類を紙ベースで扱い、PDFが不要である場合には、この処理は必要がない。その代わり、PDF出力ボタンを印刷ボタンに置き換える必要があるだろう。
初期設定の第二は、トップページ(トップページが表示されていないときは下端のタブから「Top」をクリックする)に表示されている「初回使用時に設定をする」ボタンをクリックして行う。ここでは使用者の事業所名や所在地、振込先情報などの入力を求められるので、ダイアログに従って入力する。
さらに、必要に応じて、仕入先データベースを記入しておく。これは、トップページの「仕入先データベースを編集する」をクリックして適宜データを入力する。仕入先の住所その他は必須ではない。
以上で初期設定は終了であるが、データベースには2件のダミーデータが入っているので、必要に応じてこれらを削除する。この削除は、トップページにある「データベースを直接編集する」ボタンをクリックして行う。
続きを読む
posted by 松本 at 22:22| Comment(0) | TrackBack(0) | Ubuntuのアプリケーション | このブログの読者になる | 更新情報をチェックする

Ubuntuで販売伝票作成管理

Linuxには、経理関係のソフトが大きく欠けている。英語環境ならいくらかあるようだけれど、日本語環境だとぐっと少なくなる。それでも、妻が愛用しているExcel BというソフトはOpenOffice上でも稼働するテンプレートなので、Ubuntu 上でも動作する。これは小規模事業所の経理に強い味方だろう。この辺りの詳細は、こちらの記事に書いた。

ただ、ビジネスまわりのソフトが少ないのは無理もないのかなあと最近気がついた。というのは、多くの事業がそれぞれなりにユニークなので、実は汎用のパッケージソフトというのは案外と使いにくい。それでも法律上の要件がかっちりしている企業会計なんかはパッケージソフトが非常に役立つわけだけれど、商品管理や原価管理、伝票類の作成に関しては、それぞれの事業のそれぞれの特性に合わせてカスタマイズしなければならない部分が多くなる。となると、パッケージソフトよりも「エクセルで作っといてよ」という世界になりがちで、使えるソフトが少ないのはなにもLinuxの世界だけではないのかもしれない。

実際、世の中に見積書や請求書のエクセルテンプレートはあふれかえっているが、実用的なものは案外少ない。ひとつの理由はそれが必ずしも自分のニーズにぴったりあった書式ではないからだ。明細の書き方や単価の書き方など、それぞれの事業にはそれぞれの癖がある。汎用のものがうまくあてはまるとは限らない。

もうひとつの理由は、たいていのテンプレートがデータ間のリレーションを想定していないことだ。見積書に単価と数量を記入すると確かに請求金額や消費税を自動で計算してくれる。けれど、その数値は納品書や請求書には反映されない。まして、請求書の数値を積算して月間の売上を計算してくれるようなことはしない。それはスプレッドシートの役割ではなく、データベースの役割だからだ。そして、データベース型のアプリケーションは基本的には事業ごとに開発すべきものであって、テンプレートが転がっているようなものではない。

それはそうなのだけれど、データベースを利用した伝票処理システムの開発はたいへんだ。だから、私のところのような小規模な個人事業ではおいそれと手を出せるものではない。ということで、開業から5年ばかりは、エクセル上の手作業でこれら伝票発行の管理を行っていた。ただし、派遣でいろんな事業所での経験が豊富な妻が巧妙な運用形態を考案してくれていたので、プロジェクトの管理を専用のシートで行って納品書・請求書はそこからデータをコピー&ペーストして作成する方式になっていた。この方法だと明細や単価をいちいち個別に入力する必要がないので、誤りも発生せず、手間もそれほどかからない。そして売上の管理は元台帳の集計で確実に行える。小さな事業にはこんな方式が確かに似合っているのかもしれない。

けれど、本来こういった処理はデータベース的に行うべきだというのは明らかだ。本格的な開発でなくとも、たとえばアクセスやファイルメーカーのような簡単なパッケージソフトを導入して素人が構築するレベルでも、相当に使いやすいものができる。それはまだWindowsが3.1だった頃にAccessを使った経験や、その後、Macのバンドルで付いてきたFileMakerで会社の経理を組んだ経験から確実にいえることだった。だから、機会があれば少なくとも見積・納品・請求の3点の書類に関しては一括して管理できるデータベースを組みたいとずっと考えてきた。たまたま去年は受注があまりとれず、その分だけ仕事が暇だったので(笑い事ではないが)、このあたりのデータベース化にとりくんだ。このときの覚書は、過去記事の「LibreOfficeのBaseで販売管理」にメモしてある。

それから1年近くこのデータベースを使ってきたのだけれど、いろいろと不便なところが目立つようになってきた。たまたま今年のはじめにデータベースをいじる機会があって、その際にSQL文の基礎なんかも少しはわかるようになって、どこを改訂すればいいのかようやく見当がつくようになった。そこで3月になってから大規模な改訂をやったのだけれど、だんだん形ができてくると同時に、OpenOffice(LibreOffice)のBaseそのものに内在する欠点が障害になり始めた。続きを読む
posted by 松本 at 14:45| Comment(0) | TrackBack(0) | Ubuntuのアプリケーション | このブログの読者になる | 更新情報をチェックする

2012年03月22日

Inspiron mini 12にPrecise Pangolinをインストールしてみた

もう10日ほど前になるのだけれど、次期Ubuntu 12.04のPrecise Pangolinをリタイア中のDell Inspiron mini 12にインストールしてみた。このマシン、1年ほど前に友人に引きとってもらう約束をしていたのだけれど、去年は本当にいろいろあった年で、結局その約束はキャンセルになってしまった。そこで、間もなく小学校4年生になる息子に初めてのPCとして渡そうかと計画し、クリーンインストールを試みたわけだ。

Ubuntu を使うことはほぼ既定ではあったのだけれど、どのバージョンにするかは実のところちょっと悩んだ。このマシン、ハードディスクが死んでいるので、外付けのUSBメモリにインストールすることになる。去年の5月に4GのUSBメモリにインストールしたときには(「Inspiron mini 12をUSBメモリで復活」)、10.04で成功した。言い換えれば、その段階での最新バージョンである11.04ではうまくいかなかった。さて、こんどはどうするかということだ。

ここで参考になるのが、Ubuntu 公式のPoulsboドライバのページだ。かつてPSBドライバを苦労して導入した頃とはうって変わって、GMA500には、EMGD driver、PSB-GFX driver、PSB driver、IEGD driverという4つの選択肢が用意されている。ただ、厄介なのは、それぞれのドライバによって対応できるバージョンが変わってくることだ。私が知っている伝統的なPSBドライバは、ネイティブでは10.10までしか対応しない。カーネルのダウングレードでどうにか11.04が対応するという時代遅れの代物になりつつある。IEGDドライバはさらに時代遅れで9.10のみの対応。EMGDドライバは2D、3Dだけでなくビデオアクセラレーションも使えるという優れものだけれど、ネイティブで対応するのは10.10のみで、それ以後はカーネルのダウングレードが必要になる。将来性を考えれば12.04がネイティブで対応するPSB-GFXドライバなのだけれど、これは2D機能しか対応しない。

ここはかなり悩んだ。悩んだけれど、結局は将来性にかけることにした。EMGDドライバなら、追加インストールせず、ドライバが12.04にもともと組み込まれているという。ということで、Ubuntu のバージョンも12.04 Precise Pangolinに決定。ちょうど最新版を追いかけるのいいタイミング、ベータ版が出たばかりということでもあった。
続きを読む
posted by 松本 at 20:22| Comment(0) | TrackBack(0) | 総記・雑記 | このブログの読者になる | 更新情報をチェックする