例えば「見積書」(前回記事)であれば、大まかなに、(1)上司承認、(2)客先提出、(3)受注確認、といったステップになるだろう。その設計において、
- 税務や会計などの「専門知識」
- 他システム連携やデータ加工といった「システム知識」
- 月次決算の迅速化といった外部圧力やそれに対する使命感
- 会計記帳と財務出納の分離といった相互牽制(内部統制)の工夫
しかし一方で「請求書」の場合は、その下流工程に「売掛金の記帳」「入金の確認」「証憑としての保管」といった重要な作業が続く。実際、業種業態や会計方針、そして導入済みの他システムによって各社様々だ。業務プロセスの始点(開始ポイント)や終点(終了ポイント)ですら、その「あるべき姿」は各社違う。
以下のワークフローは、「請求書の発行後」にフォーカスされた業務プロセスだ。経理部門に閉じた業務プロセスではあるが、「会計ソフト/会計クラウドへの入力を軽減させる」などの工夫がある。
[請求書発行から会計記帳まで]
[請求書発行から会計記帳まで:「1.請求データ確認」画面]
この業務プロセスは、「前受金」の発生頻度が高い会社で、かつ、決済手段や業務クラウド基盤などの環境変化が激しい会社(恒久的な基幹システムを導入しづらい会社)が想定されている。
※「前受金とは何か?」の詳細は税理士に譲るとして、大まかに言えば、「消費税や法人税の課税判定にせよ、売上の集計にせよ、『資産の引渡しやサ-ビスの提供があった時』を基準にしなければならない」、というハナシだ。
具体的には、請求データが流し込まれた後、(1)請求書PDFの生成、(2)メールや郵送で送付、(3)会計データの登録、(4)入金確認、が続く。
特筆すべきは、会計システム側に入力しやすいデータに加工されている(会計システムにあわせたフォーマットで出力している)点だ。すなわち、
- 「前受金」の入金を予定する「入金伝票」と、
- 「前受金」を「売上」に変える「振替伝票」
★[発行日書式処理]の設定画面
★[件名セット]の設定画面
★[for bookkeeping] の設定画面
★[for bookkeeping] のスクリプト例
// == 参照 / Retrieving == //mytable : com.questetra.bpms.core.model.formdata.ListArray; var mytable = data.get("13"); // テーブル型データを取得 //startDay : com.questetra.bpms.util.AddableDate; var startDay = data.get("8"); //請求発行日(date) var charged = data.get("21"); // 総額を取得 var company = data.get("4"); // 請求先会社名を取得 var companyabst = company + " " + mytable.get(0, 0) + ""; // 社名+摘要 // == 演算 / Calculating == var months = mytable.get(0, 1); var remainder = charged % months; // 総額を申込月数(1行目2列目)で割った余り var monthlyCharge = Math.floor( charged / months ); // 総額を申込月数(1行目2列目)で割る var monthlyCharge2 = monthlyCharge + 1; // == 代入 / Updating == var formatter1 = new java.text.SimpleDateFormat("yyyy-MM-dd"); var formatter2 = new java.text.SimpleDateFormat("GGGGyyyy年MM月分", new java.util.Locale("ja", "JP", "JP")); var bookkeepingText = ""; // 「2015-04-01, 売上高, 株式会社 京都大学 ホームページ運用, 10000, 0」 // 「2015-04-01, 入金, 株式会社 京都大学 ホームページ運用, 10000, 0」 // // 「2015-04-30, 売掛金, 株式会社 京都大学 ホームページ運用, 10000, 0」 // 「2015-05-31, 入金, 株式会社 京都大学 ホームページ運用, 10000, 0」 bookkeepingText += formatter1.format(startDay); bookkeepingText += ", 売上高, " + companyabst + ", " + charged + ", 0 \n"; bookkeepingText += formatter1.format(startDay); bookkeepingText += ", 入金, " + companyabst + ", " + charged + ", 0 \n\n"; bookkeepingText += formatter1.format(startDay.getLastDateInMonth()); bookkeepingText += ", 売掛金, " + companyabst + ", " + charged + ", 0 \n"; bookkeepingText += formatter1.format(startDay.addMonths(1).getLastDateInMonth()); bookkeepingText += ", 入金, " + companyabst + ", " + charged + ", 0 \n"; retVal.put("27", bookkeepingText ); // ●一括売上● 日付, 勘定科目, 摘要, 入金, 出金 bookkeepingText = ""; // 「2015-04-01, 前受金, 株式会社 京都大学 ホームページ運用, 10000, 0」 // 「2015-04-01, 前受金, 株式会社 京都大学 ホームページ運用 2015年4月分, 0, 3334」 // 「2015-04-01, 売上高, 株式会社 京都大学 ホームページ運用 2015年4月分, 3334, 0」 // 「2015-05-01, 前受金, 株式会社 京都大学 ホームページ運用 2015年5月分, 0, 3333」 // 「2015-05-01, 売上高, 株式会社 京都大学 ホームページ運用 2015年5月分, 3333, 0」 // 「2015-06-01, 前受金, 株式会社 京都大学 ホームページ運用 2015年6月分, 0, 3333」 // 「2015-06-01, 売上高, 株式会社 京都大学 ホームページ運用 2015年6月分, 3333, 0」 bookkeepingText += formatter1.format(startDay); bookkeepingText += ", 前受金, " + companyabst + ", " + charged + ", 0 \n"; var i=0; for (i=0; i<months; i++){ if (i<remainder){ bookkeepingText += formatter1.format(startDay.addMonths(i).getLastDateInMonth()); bookkeepingText += ", 前受金, " + companyabst + " "; bookkeepingText += formatter2.format(startDay.addMonths(i)); bookkeepingText += ", 0, " + monthlyCharge2 + " \n"; bookkeepingText += formatter1.format(startDay.addMonths(i).getLastDateInMonth()); bookkeepingText += ", 売上高, " + companyabst + " "; bookkeepingText += formatter2.format(startDay.addMonths(i)); bookkeepingText += ", " + monthlyCharge2 + ",0 \n"; }else{ bookkeepingText += formatter1.format(startDay.addMonths(i).getLastDateInMonth()); bookkeepingText += ", 前受金, " + companyabst + " "; bookkeepingText += formatter2.format(startDay.addMonths(i)); bookkeepingText += ", 0, " + monthlyCharge + " \n"; bookkeepingText += formatter1.format(startDay.addMonths(i).getLastDateInMonth()); bookkeepingText += ", 売上高, " + companyabst + " "; bookkeepingText += formatter2.format(startDay.addMonths(i)); bookkeepingText += ", " + monthlyCharge + ",0 \n"; } } retVal.put("28", bookkeepingText ); // ●前受処理● 日付, 勘定科目, 摘要, 借方, 貸方
<データ項目一覧画面>
[雛形ダウンロード (無料)]
- 業務テンプレート:請求書発行から会計記帳まで
- 未入金の発生! 自動的にエスカレーション! (2014-11-10)
- 自動処理スクリプトで、案件タイトルをセット (2014-07-22)
- 顧客名を入力する上流工程、そのテンプレート (2014-07-14)
- M227 自動工程: 業務データの結合や四則演算が自動実行されるように設定する (使い方)
- M230 自動工程: 業務データの複雑なデータ加工が自動実行されるように設定する(ECMAスクリプト) (使い方)
- M221 自動開始: 特定URIにHTTPリクエストがあった時に自動的に開始されるように設定する (使い方)
「[英文記事(English Entry)]」
0 件のコメント :
コメントを投稿