以下に、本発明に係る業務支援装置、分割金額出力方法および分割金額出力プログラムの実施形態を、図面に基づいて詳細に説明する。なお、本実施形態により本発明が限定されるものではない。
[1.概要]
工事業、不動産業および建設業等においては、発注時に支払の内容等を決定する。戸建業界等においては、図1の「戸建デベロッパーの業務フローの概要」および「発注の業務フロー」に示すように、発注時に「発注書、請書および請求書(後日、その請求書が送られてくる)」を発注先の工事会社に渡すことが多い。その際に、請求書の金額を分割した内容で請求書を発行したいという、戸建工事業界において多い要望がある。分割する際の支払の仕方は、取引先である工事会社毎に決まることが多く、例えば、初回いくら、竣工特にいくらの2回払い等である。分割する際の金額は、例えば、定額金額や按分率に基づき算出した金額である。
ここで、従来においては、エクセルにより発注書等を作成することが多く、担当者が請求書の金額を手作業で分割していたため、作業が煩雑であるという問題があった。
そこで、本実施形態においては、例えば、システムにより分割の定義を設定することによって、自動的に初期分割を行い、ユーザの作業負担を減らすことができる。また、本実施形態においては、例えば、発注先への支払金額を自動的に按分し、請求書に印字することもできる。以下、具体的な構成および動作について説明する。
[2.構成]
本実施形態に係る業務支援装置の構成の一例について、図2等を参照して説明する。図2は、業務支援装置の構成の一例を示すブロック図である。
業務支援装置100は、市販のデスクトップ型パーソナルコンピュータである。なお、業務支援装置100は、デスクトップ型パーソナルコンピュータのような据置型情報処理装置に限らず、市販されているノート型パーソナルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、タブレット型パーソナルコンピュータなどの携帯型情報処理装置であってもよい。
業務支援装置100は、制御部102と通信インターフェース部104と記憶部106と入出力インターフェース部108と、を備えている。業務支援装置100が備えている各部は、任意の通信路を介して通信可能に接続されている。
通信インターフェース部104は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、業務支援装置100をネットワーク300に通信可能に接続する。通信インターフェース部104は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク300は、業務支援装置100とサーバ200とを相互に通信可能に接続する機能を有し、例えばインターネットやLAN(Local Area Network)等である。なお、後述する各種マスタ等のデータは、例えばサーバ200に格納されてもよい。
入出力インターフェース部108には、入力装置112および出力装置114が接続されている。出力装置114には、モニタ(家庭用テレビを含む)の他、スピーカやプリンタを用いることができる。入力装置112には、キーボード、マウス、及びマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置114を、表示部としてのモニタ114とし、入力装置112をキーボード112またはマウス112として記載する場合がある。
記憶部106には、各種のデータベース、テーブルおよびファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部106として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、および光ディスク等を用いることができる。
記憶部106には、例えば、発注依頼データ106aと、発注明細ワーク106bと、発注依頼カーソル106cと、分割規則集合としての取引先発注時査定分割方法マスタ106d(以下、単に「査定分割マスタ106d」ということがある。)と、取引先発注時査定分割カーソル106e(以下、単に「査定分割カーソル106e」ということがある。)と、査定分割ワーク106fと、請求書データ106gと、書類データ106hと、等が格納されている。
ここで、本実施形態に係る業務支援装置100によれば、分割の元となる元金額を分割して複数の分割金額を出力することができる。
前記元金額は、例えば、デベロッパーが工事会社に発注した戸建住宅の建設工事に係る発注金額である。当該発注金額は、例えば、発注税込金額と発注税抜金額のどちらであってもよい。
前記分割金額は、例えば、前記工事会社が前記デベロッパーに請求する前記建設工事に係る請求金額であって、前記デベロッパーが前記発注のときに前記工事会社に送る請求書に記載されるものである。当該請求金額は、例えば、請求税込金額と請求税抜金額のどちらであってもよい。
発注依頼データ106aは、例えば、工事の発注依頼明細を含むデータである。前記発注依頼明細は、図4および図5に一部を示すように、例えば、工事の大分類、工事の中分類、発注番号、発注先コード、発注先名、発注日、工事のプロジェクトコード、工事のプロジェクト名、工事のプロジェクト枝番、工事番号、工事区分、工事細目コード、工事細目名、税込区分、消費税率区分、工事の数量、工事の単価、工事の税込金額、工事の税抜金額、工事の消費税額、工事の完了予定日、明細備考、取引担当者コードおよび取引担当者名等を含む。
発注明細ワーク106bは、例えば、前記発注依頼明細のうち、発注確定処理により発注が確定した明細である発注確定明細を含むデータである。前記発注確定明細は、図22に一部を示すように、例えば、分割コード、発注依頼Guid、発注依頼明細Guid、前記発注番号、前記発注先コード、前記発注日、前記工事のプロジェクトコード、前記工事のプロジェクト枝番、前記工事番号、前記工事区分、前記工事細目コード、前記工事細目名、前記税込区分、前記消費税率区分、前記工事の数量、前記工事の単価、前記工事の税込金額、前記工事の税抜金額、前記工事の消費税額、前記工事の完了予定日、前記明細備考および前記取引担当者コード等を含む。
発注依頼カーソル106cは、例えば、前記発注確定明細のうち、前記分割コード、前記発注先コード、前記発注日、前記プロジェクトコード、前記プロジェクト枝番、前記工事番号および前記工事区分の組み合わせが同じであるものを集約した集約明細を含むデータである。前記集約明細は、集約された前記発注確定明細に含まれる前記工事の税込金額、前記工事の税抜金額および前記工事の消費税額それぞれの合計額を含む。例えば、図24の発注明細ワーク106bに含まれる3つの発注確定明細のうち、1~2行目の発注確定明細は前記組み合わせが同じであるため、図24の発注依頼カーソル106cの1行目に示す集約明細に集約される。そして、当該集約明細は、図24の発注依頼カーソル106cの1行目の集約明細に示すように、前記1行目の発注確定明細に含まれる税込金額140,400円と前記2行目の発注確定明細に含まれる税込金額54,000円との合計額である発注税込金額(税込金額合計値)194,400円と、前記1行目の発注確定明細に含まれる税抜金額130,000円と前記2行目の発注確定明細に含まれる税抜金額50,000円との合計額である発注税抜金額(税抜金額合計値)180,000円と、前記1行目の発注確定明細に含まれる消費税額10,400円と前記2行目の発注確定明細に含まれる消費税額4,000円との合計額である発注消費税額(消費税額合計値)14,400円と、を含む。前記集約明細は、図24の発注依頼カーソル106cに示すように、例えば、前記分割コード、前記発注先コード、前記発注日、前記プロジェクトコード、前記プロジェクト枝番、前記工事番号、前記工事区分、前記発注税込金額、前記発注税抜金額および前記発注消費税額等を含む。
分割規則集合としての査定分割マスタ106dは、金額を分割してよいか否かを判断するための条件や金額の分割の仕方等を定義するためのマスタである。査定分割マスタ106dは、複数の分割規則を含む。当該分割規則は、図3に示すように、例えば、当該分割規則の取得順である発生順、残金区分(本発明の「金額区分」に相当)、金額条件と金額条件区分の組み合わせ(当該組み合わせは、本発明の「金額条件」に相当)、発生金額区分(本発明の「出力区分」に相当)、金額端数単位および端数区分等を含む。
前記残金区分としては、図3に示すように、例えば、「0:全体」(本発明の「元金額区分」に相当)および「1:残金」(本発明の「残金額区分」に相当)等が存在する。「0:全体」の残金区分は、元金額変数の値を取得することを意味する区分である。「1:残金」の残金区分は、残金額変数の値を取得することを意味する区分である。
前記金額条件は、例えば、分割基準金額(すなわち、分割してよいか否かを判断する際の基準となる金額)である。前記金額条件区分としては、図3に一部を示すように、例えば、「0:未満」、「1:以下」、「2:以上」、「3:超」および「9:無し」等が存在する。前記金額条件と前記金額条件区分の組み合わせが、分割条件となる。
ここで、金額を分割してよいか否かを前記残金区分、前記金額条件および前記金額条件区分を参照して判断する方法について、図3を用いて具体的に説明する。図3の査定分割マスタ106dの1行目および2行目のレコードにおいては、残金区分が「0:全体」であり、金額条件が「100,000」であり、金額条件区分が「0:未満」である。この場合、取得した元金額変数の値が100,000円未満である場合に、当該取得した元金額変数の値を分割してよいと判断される。また、図3の査定分割マスタ106dの3行目のレコードにおいては、残金区分が「1:残金」であり、金額条件が「100,000」であり、金額条件区分が「9:無し」である。この場合、取得した残金額変数の値に関わらず、当該取得した残金額変数の値を分割してよいと判断される。
前記発生金額区分としては、図3に一部を示すように、例えば、「0:金額全額」(本発明の「全額出力区分」に相当)、「1:定額金額」(本発明の「所定額出力区分」に相当)および「2:%」(本発明の「比率基準額出力区分」に相当)等が存在する。「0:金額全額」の発生金額区分は、取得した前記元金額変数の値または取得した前記残金額変数の値を前記分割金額として出力することを意味する区分である。「1:定額金額」の発生金額区分は、発生金額(本発明の「所定金額」に相当)を前記分割金額として出力することを意味する区分である。「2:%」は、取得した前記元金額変数の値または取得した前記残金額変数の値と按分率(本発明の「所定比率」に相当)の積を前記分割金額として出力することを意味する区分である。
前記発生金額区分が「1:定額金額」の場合には、前記分割規則として、前記発生金額を設定することができる。なお、前記発生金額としては、小数点以下の値を設定することはできない。前記発生金額区分が「2:%」の場合には、前記分割規則として、前記按分率を設定することができる。なお、前記按分率としては、小数点以下4桁の値までが有効である。
ここで、前記残金区分および前記発生金額区分を参照して金額の分割を行う方法について、前記元金額変数の値が194,400円であると仮定して、図3を用いて具体的に説明する。図3の査定分割マスタ106dの1行目のレコードにおいては、残金区分が「0:全体」であり、前記発生金額区分が「2:%」であり、按分率が30%である。この場合、分割金額は、前記元金額変数の値194,400円×30/100=58,320円となる。また、図3の査定分割マスタ106dの2行目のレコードにおいては、残金区分が「0:全体」であり、前記発生金額区分が「2:%」であり、按分率が40%である。この場合、分割金額は、前記元金額変数の値194,400円×40/100=77,760円となる。そして、図3の査定分割マスタ106dの3行目のレコードにおいては、残金区分が「1:残金」であり、前記発生金額区分が「0:金額全額」である。この場合、分割金額は、「前記元金額変数の値194,400円-分割金額58,320円-分割金額77,760円=残金額変数の値58,320円」の全額である58,320円となる。
前記金額端数単位は、前記発生金額区分が「2:%」の場合に設定可能な項目であり、按分結果の丸めの単位である。例えば、前記金額端数単位を「500」と登録すると、500円単位で支払金額を分割することができる。
前記端数区分は、前記発生金額区分が「2:%」の場合に設定可能な項目であり、按分結果の丸めである。前記端数区分としては、例えば、「0:切捨て」、「1:四捨五入」および「2:切上げ」等が存在する。
査定分割マスタ106dは、図3には示さないが、例えば更に、支払方法を含んでいてもよい。前記支払方法として、支払方法コードを設定することができる。なお、支払方法マスタにおけるシステム支払区分が「99:振替支払」の支払方法コードを設定することはできない。
査定分割カーソル106eは、査定分割マスタ106dに含まれる情報の格納先である。査定分割カーソル106eは、例えば、前記分割規則を含む。
査定分割ワーク106fは、例えば、前記分割元金額を分割した結果である分割金額(分割できない場合には、前記分割元金額)の格納先である。査定分割ワーク106fは、図22に示すように、例えば、前記分割コード、請求番号、前記発注番号、前記発注先コード、前記発注日、前記プロジェクトコード、前記プロジェクト枝番、前記工事番号、前記工事区分、請求書分割番号、請求税込金額、請求税抜金額および請求消費税額等を含む。なお、前記請求書分割番号とは、後に請求番号を採番する際のキーとなる項目であり、前記請求書分割番号ごとに、請求番号が採番される。
請求書データ106gは、図9~図14に示すように、例えば、前記請求番号、前記請求税込金額および前記消費税額等を含む。
書類データ106hは、図7に示すように、例えば、前記発注書、前記請書および前記請求書の書類データである。
制御部102は、業務支援装置100を統括的に制御するCPU等である。制御部102は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。
制御部102は、機能概念的に、発注依頼の入力を受け付ける発注依頼入力手段としての発注依頼入力部102aと、発注の確定処理を行う発注確定処理手段としての発注確定処理部102bと、分割の元となる元金額を分割して複数の分割金額を出力する分割金額出力手段としての分割金額出力部102cと、前記発注書、前記請書および前記請求書の書類データを作成する書類データ作成手段としての書類データ作成部102dと、仕入内容の入力を受け付ける仕入入力手段としての仕入入力部102eと、を備えている。なお、各部が実行する処理の内容については、以下の[3.処理概要]および[4.処理詳細]で説明する。
分割金額出力部102cは、前記元金額を元金額変数および残金額変数に代入する初期値設定手段としての初期値設定部102c1と、複数の分割規則を含む分割規則集合から前記分割規則を取得する規則取得手段としての規則取得部102c2と、前記規則取得手段で取得した前記分割規則に含まれる、前記元金額変数の値を取得することを意味する元金額区分および前記残金額変数の値を取得することを意味する残金額区分のうちのいずれかの金額区分に従って、前記元金額変数の値または前記残金額変数の本処理実行時の値を取得する値取得手段としての値取得部102c3と、前記値取得手段で取得した前記値が前記規則取得手段で取得した前記分割規則に含まれる金額条件を満たしているかを判断する判断手段としての判断部102c4と、前記判断手段で前記金額条件が満たされていると判断された場合、前記規則取得手段で取得した前記分割規則に含まれる、所定金額を前記分割金額として出力することを意味する所定額出力区分および前記所定金額の組み合わせ、前記値取得手段で取得した前記値と所定比率の積を前記分割金額として出力することを意味する比率基準額出力区分および前記所定比率の組み合わせならびに前記値取得手段で取得した前記値を前記分割金額として出力することを意味する全額出力区分のうちのいずれかの情報に含まれる出力区分に従って、前記出力区分と対応する前記分割金額を、前記情報または前記値取得手段で取得した前記値を基に算出する算出手段としての算出部102c5と、前記残金額変数の本処理実行時の値から前記算出手段で算出した前記分割金額を差し引いた値を前記残金額変数に代入する更新手段としての更新部102c6と、を備えている。なお、各部が実行する処理の内容については、以下の[3.処理概要]および[4.処理詳細]で説明する。
[3.処理概要]
本項目では、業務支援装置100で実行される処理の概要について、図15~図21のフローチャートを参照して説明する。
[3-1.発注依頼入力処理]
まず、発注依頼入力部102aは、図4に示す発注依頼入力画面における発注依頼の入力を受け付ける。これにより、発注依頼明細が作成される。
[3-2.発注確定処理]
次に、図5に示す発注確定画面において、前記作成された発注依頼明細が呼び出されて表示される。そして、発注確定処理部102bは、表示された前記発注依頼明細のうちチェックされたものについての発注の確定処理を行う。発注が確定した発注依頼明細は、発注確定明細として発注明細ワーク106bに追加される(図15のS1)。
[3-3.分割金額出力処理]
次に、分割金額出力部102cは、前記元金額を分割して前記複数の分割金額を出力する。なお、分割金額出力部102cは、モニタ114に表示されている、前記発注の内容を確定するための所定画面(例えば、図5に示す発注確定画面)に[3-2]で説明したように前記元金額が設定されてから動作し始めてもよい。
まず、発注明細ワーク106bから、前記分割コード、前記発注先コード、前記発注日、前記プロジェクトコード、前記プロジェクト枝番、前記工事番号および前記工事区分の組み合わせが同じである前記発注確定明細において、前記発注税込金額、前記発注税抜金額および前記発注消費税額がそれぞれ集約される。そして、前記組み合わせおよび集約後の金額を含む集約明細が、発注依頼カーソル106cに格納される(図15のS2)。
次に、発注依頼カーソル106cの1行目の集約明細から呼び出される(図15のS3)。
[3-3-1.初期値設定処理]
次に、初期値設定部102c1は、前記呼び出された集約明細における発注金額等を変数に格納(代入)する。具体的には、初期値設定部102c1は、前記呼び出された集約明細における前記発注税込金額(本発明の「元金額」に相当)を分割元金額(本発明の「元金額変数」に相当)に代入し、前記呼び出された集約明細における前記発注消費税額を分割元消費税額に代入し、前記分割元金額を分割残金額(本発明の「残金額変数」に相当)に代入し、前記分割元消費税額を分割残消費税額に代入し、請求書分割番号に「1」をセットする(図15のS4)。
[3-3-2.規則取得処理]
次に、規則取得部102c2は、査定分割マスタ106d(本発明の「複数の分割規則を含む分割規則集合」に相当)から査定分割条件(本発明の「分割規則」に相当)を取得する(図15のS5)。
前記査定分割条件の取得件数が0である場合(図15のS6:Yes)、査定分割ワーク106fに情報が1行追加される(図15のS7)。具体的には、前記分割元金額を1請求とした明細が作成される(図15のS7)。
これにより、発注依頼カーソル106cの前記1行目の明細についての処理は終了する。そして、図15のS3に戻り、発注依頼カーソル106cにおける2行目以降の明細についてもこれまでの説明と同様の処理が行われ、すべての明細の呼出が完了すると、処理が終了する(図15のS3:処理終了)。
一方で、前記査定分割条件の取得件数が0ではない場合(図15のS6:No)、当該取得した査定分割条件を含む査定分割マスタ106dにおけるレコードが、査定分割カーソル106eに格納される(図15のS8)。
次に、査定分割カーソル106eの1行目のレコードから呼び出される(図15のS9)。
査定分割カーソル106eのレコードの取得件数が1である場合(図15のS10:取得件数=1)、分割金額にS4の前記分割残金額が代入され、分割消費税額にS4の前記分割残消費税額が代入され、前記分割残金額に0が代入され、分割パターンフラグに0が代入される(図15のS11)。そして、図16(A)に進む。
図16(A)に進むと、前記分割パターンフラグが-1以外の場合には、査定分割ワーク106fに請求明細が1行追加される(図16のS12)。すなわち、S11の前記分割金額を1請求として査定分割ワーク106fが作成される(図16のS12)。そして、図15(A)に戻る。
[3-3-3.値取得処理および判断処理]
一方で、図15のS10に戻り、査定分割カーソル106eのレコードの取得件数が1より大きい場合(図15のS10:取得件数>1)、査定分割カーソル106eの1行目のレコードにおける前記残金区分が「0:全体」であるか否かがチェックされる(図15のS13)。そして、前記残金区分が0である場合(図15のS13:Yes)、図17(A)に進み、前記残金区分が0ではない場合(図15のS13:No)、図19(A)に進む。
[3-3-3A.残金区分が0である場合]
図17(A)に進むと、査定分割カーソル106eの1行目のレコードにおける前記金額条件区分が「0:未満」であるか否かがチェックされる(図17のS14)。
前記金額条件区分が0である場合(図17のS14:Yes)、「S4で説明した前記分割元金額<査定分割カーソル106eの1行目のレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図17のS15)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる残金区分0(本発明の「元金額区分」に相当)の金額区分に従って、S4で説明した前記分割元金額の値(本発明の「元金額変数の値」に相当)を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割元金額の値(本発明の「前記値」に相当)が規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記金額条件と前記金額条件区分の組み合わせ(本発明の「金額条件」に相当)を満たしているかを判断する。
判断部102c4で満たされていると判断された場合(図17のS15:Yes)、査定分割カーソル106eの1行目のレコードにおける発生金額区分に従って、分割パターンフラグが以下のようにして決定される(図17のS16)。すなわち、発生金額区分が0の場合、前記分割パターンフラグは1となり、発生金額区分が1の場合、前記分割パターンフラグは2となり、発生金額区分が2の場合、前記分割パターンフラグは3となる。そして、図21(A)に進む。
一方で、判断部102c4で満たされていないと判断された場合(図17のS15:No)、図16(A)に進む。
図17のS14に戻り、前記金額条件区分が0ではない場合(図17のS14:No)、査定分割カーソル106eの1行目のレコードにおける前記金額条件区分が「1:以下」であるか否かがチェックされる(図17のS17)。
前記金額条件区分が1である場合(図17のS17:Yes)、「S4で説明した前記分割元金額≦査定分割カーソル106eの1行目のレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図17のS18)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる残金区分0(本発明の「元金額区分」に相当)の金額区分に従って、S4で説明した前記分割元金額の値(本発明の「元金額変数の値」に相当)を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割元金額の値(本発明の「前記値」に相当)が規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記金額条件と前記金額条件区分の組み合わせ(本発明の「金額条件」に相当)を満たしているかを判断する。
判断部102c4で満たされていると判断された場合(図17のS18:Yes)、査定分割カーソル106eの1行目のレコードにおける発生金額区分に従って、分割パターンフラグが以下のようにして決定される(図17のS19)。すなわち、発生金額区分が0の場合、前記分割パターンフラグは1となり、発生金額区分が1の場合、前記分割パターンフラグは2となり、発生金額区分が2の場合、前記分割パターンフラグは3となる。そして、図21(A)に進む。
一方で、判断部102c4で満たされていないと判断された場合(図17のS18:No)、図16(A)に進む。
図17のS17に戻り、前記金額条件区分が1ではない場合(図17のS17:No)、査定分割カーソル106eの1行目のレコードにおける前記金額条件区分が「2:以上」であるか否かがチェックされる(図17のS20)。
前記金額条件区分が2である場合(図17のS20:Yes)、「S4で説明した前記分割元金額≧査定分割カーソル106eの1行目のレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図17のS21)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる残金区分0(本発明の「元金額区分」に相当)の金額区分に従って、S4で説明した前記分割元金額の値(本発明の「元金額変数の値」に相当)を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割元金額の値(本発明の「前記値」に相当)が規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記金額条件と前記金額条件区分の組み合わせ(本発明の「金額条件」に相当)を満たしているかを判断する。
判断部102c4で満たされていると判断された場合(図17のS21:Yes)、査定分割カーソル106eの1行目のレコードにおける発生金額区分に従って、分割パターンフラグが以下のようにして決定される(図17のS22)。すなわち、発生金額区分が0の場合、前記分割パターンフラグは1となり、発生金額区分が1の場合、前記分割パターンフラグは2となり、発生金額区分が2の場合、前記分割パターンフラグは3となる。そして、図21(A)に進む。
一方で、判断部102c4で満たされていないと判断された場合(図17のS21:No)、図16(A)に進む。
図17のS20に戻り、前記金額条件区分が2ではない場合(図17のS20:No)、図18(A)に進む。
図18(A)に進むと、査定分割カーソル106eの1行目のレコードにおける前記金額条件区分が「3:超」であるか否かがチェックされる(図18のS23)。
前記金額条件区分が3である場合(図18のS23:Yes)、「S4で説明した前記分割元金額>査定分割カーソル106eの1行目のレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図18のS24)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる残金区分0(本発明の「元金額区分」に相当)の金額区分に従って、S4で説明した前記分割元金額の値(本発明の「元金額変数の値」に相当)を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割元金額の値(本発明の「前記値」に相当)が規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記金額条件と前記金額条件区分の組み合わせ(本発明の「金額条件」に相当)を満たしているかを判断する。
判断部102c4で満たされていると判断された場合(図18のS24:Yes)、査定分割カーソル106eの1行目のレコードにおける発生金額区分に従って、分割パターンフラグが以下のようにして決定される(図18のS25)。すなわち、発生金額区分が0の場合、前記分割パターンフラグは1となり、発生金額区分が1の場合、前記分割パターンフラグは2となり、発生金額区分が2の場合、前記分割パターンフラグは3となる。そして、図17(B)に進む。
一方で、判断部102c4で満たされていないと判断された場合(図18のS24:No)、図17(C)に進む。
図18のS23に戻り、前記金額条件区分が3ではない場合(図18のS23:No)、査定分割カーソル106eの1行目のレコードにおける前記金額条件区分が「9:無し」であるか否かがチェックされる(図18のS26)。
前記金額条件区分が9である場合(図18のS26:Yes)、査定分割カーソル106eの1行目のレコードにおける発生金額区分に従って、分割パターンフラグが以下のようにして決定される(図18のS27)。すなわち、発生金額区分が0の場合、前記分割パターンフラグは1となり、発生金額区分が1の場合、前記分割パターンフラグは2となり、発生金額区分が2の場合、前記分割パターンフラグは3となる。そして、図17(D)に進む。
一方で、判断部102c4で満たされていないと判断された場合(図18のS26:No)、図17(E)に進む。
[3-3-3B.残金区分が0ではない場合]
図15のS13に戻り、前記残金区分が0ではない場合(図15のS13:No)、図19(A)に進む。
図19(A)に進むと、査定分割カーソル106eの1行目のレコードにおける前記金額条件区分が「0:未満」であるか否かがチェックされる(図19のS28)。
前記金額条件区分が0である場合(図19のS28:Yes)、「S4で説明した分割残金額<査定分割カーソル106eの1行目のレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図19のS29)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる残金区分1(本発明の「残金額区分」に相当)の金額区分に従って、S4で説明した前記分割残金額の値取得処理実行時の値(本発明の「残金額変数の本処理実行時の値」に相当)を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割残金額の値取得処理実行時の値(本発明の「前記値」に相当)が規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記金額条件と前記金額条件区分の組み合わせ(本発明の「金額条件」に相当)を満たしているかを判断する。
判断部102c4で満たされていると判断された場合(図19のS29:Yes)、査定分割カーソル106eの1行目のレコードにおける発生金額区分に従って、分割パターンフラグが以下のようにして決定される(図19のS30)。すなわち、発生金額区分が0の場合、前記分割パターンフラグは1となり、発生金額区分が1の場合、前記分割パターンフラグは2となり、発生金額区分が2の場合、前記分割パターンフラグは3となる。そして、図21(A)に進む。
一方で、判断部102c4で満たされていないと判断された場合(図19のS29:No)、図16(A)に進む。
図19のS28に戻り、前記金額条件区分が0ではない場合(図19のS28:No)、査定分割カーソル106eのレコードにおける前記金額条件区分が「1:以下」であるか否かがチェックされる(図19のS31)。
前記金額条件区分が1である場合(図19のS31:Yes)、「S4で説明した前記分割残金額≦査定分割カーソル106eの1行目のレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図19のS32)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる残金区分1(本発明の「残金額区分」に相当)の金額区分に従って、S4で説明した前記分割残金額の値取得処理実行時の値(本発明の「残金額変数の本処理実行時の値」に相当)を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割残金額の値取得処理実行時の値(本発明の「前記値」に相当)が規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記金額条件と前記金額条件区分の組み合わせ(本発明の「金額条件」に相当)を満たしているかを判断する。
判断部102c4で満たされていると判断された場合(図19のS32:Yes)、査定分割カーソル106eの1行目のレコードにおける発生金額区分に従って、分割パターンフラグが以下のようにして決定される(図19のS33)。すなわち、発生金額区分が0の場合、前記分割パターンフラグは1となり、発生金額区分が1の場合、前記分割パターンフラグは2となり、発生金額区分が2の場合、前記分割パターンフラグは3となる。そして、図21(A)に進む。
一方で、判断部102c4で満たされていないと判断された場合(図19のS32:No)、図16(A)に進む。
図19のS31に戻り、前記金額条件区分が1ではない場合(図19のS31:No)、査定分割カーソル106eの1行目のレコードにおける前記金額条件区分が「2:以上」であるか否かがチェックされる(図19のS34)。
前記金額条件区分が2である場合(図19のS34:Yes)、「S4で説明した前記分割残金額≧査定分割カーソル106eのレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図19のS35)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる残金区分1(本発明の「残金額区分」に相当)の金額区分に従って、S4で説明した前記分割残金額の値取得処理実行時の値(本発明の「残金額変数の本処理実行時の値」に相当)を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割残金額の値取得処理実行時の値(本発明の「前記値」に相当)が規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記金額条件と前記金額条件区分の組み合わせ(本発明の「金額条件」に相当)を満たしているかを判断する。
判断部102c4で満たされていると判断された場合(図19のS35:Yes)、査定分割カーソル106eの1行目のレコードにおける発生金額区分に従って、分割パターンフラグが以下のようにして決定される(図19のS36)。すなわち、発生金額区分が0の場合、前記分割パターンフラグは1となり、発生金額区分が1の場合、前記分割パターンフラグは2となり、発生金額区分が2の場合、前記分割パターンフラグは3となる。そして、図21(A)に進む。
一方で、判断部102c4で満たされていないと判断された場合(図19のS35:No)、図16(A)に進む。
図19のS34に戻り、前記金額条件区分が2ではない場合(図19のS34:No)、図20(A)に進む。
図20(A)に進むと、査定分割カーソル106eの1行目のレコードにおける前記金額条件区分が「3:超」であるか否かがチェックされる(図20のS37)。
前記金額条件区分が3である場合(図20のS37:Yes)、「S4で説明した前記分割残金額>査定分割カーソル106eの1行目のレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図20のS38)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる残金区分1(本発明の「残金額区分」に相当)の金額区分に従って、S4で説明した前記分割残金額の値取得処理実行時の値(本発明の「残金額変数の本処理実行時の値」に相当)を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割残金額の値取得処理実行時の値(本発明の「前記値」に相当)が規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記金額条件と前記金額条件区分の組み合わせ(本発明の「金額条件」に相当)を満たしているかを判断する。
判断部102c4で満たされていると判断された場合(図20のS38:Yes)、査定分割カーソル106eの1行目のレコードにおける発生金額区分に従って、分割パターンフラグが以下のようにして決定される(図20のS39)。すなわち、発生金額区分が0の場合、前記分割パターンフラグは1となり、発生金額区分が1の場合、前記分割パターンフラグは2となり、発生金額区分が2の場合、前記分割パターンフラグは3となる。そして、図19(B)に進む。
一方で、判断部102c4で満たされていないと判断された場合(図20のS38:No)、図19(C)に進む。
図20のS37に戻り、前記金額条件区分が3ではない場合(図20のS37:No)、査定分割カーソル106eのレコードにおける前記金額条件区分が「9:無し」であるか否かがチェックされる(図20のS40)。
前記金額条件区分が9である場合(図20のS40:Yes)、査定分割カーソル106eの1行目のレコードにおける発生金額区分に従って、分割パターンフラグが以下のようにして決定される(図20のS41)。すなわち、発生金額区分が0の場合、前記分割パターンフラグは1となり、発生金額区分が1の場合、前記分割パターンフラグは2となり、発生金額区分が2の場合、前記分割パターンフラグは3となる。そして、図19(D)に進む。
一方で、前記金額条件区分が9ではない場合(図20のS40:No)、図19(E)に進む。
[3-3-4.算出処理および更新処理]
図21(A)に進むと、前記分割パターンフラグが1であるか否かがチェックされる(図21のS42)。
[3-3-4A.分割パターンフラグが1(発生金額区分が0)である場合]
前記分割パターンフラグが1である場合(図21のS42:Yes)、以下のようにして、分割金額および分割残金額に値がセット(代入される)。まず、算出部102c5は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記発生金額区分0(本発明の「全額出力区分」に相当)の情報に含まれる出力区分に従って、前記出力区分と対応する分割金額を、前記情報または値取得部102c3で取得した前記値を基に算出する。具体的には、算出部102c5は、前記分割残金額の値を、分割金額に代入する(図21のS43)。次に、更新部102c6は、前記分割残金額(本発明の「残金額変数」に相当)の更新処理実行時の値から算出部102c5で算出した前記分割金額を差し引いた値を前記分割残金額(本発明の「残金額変数」に相当)に代入することにより、前記分割残金額を更新する。具体的には、前記分割残金額の値から算出部102c5で算出した前記分割金額を差し引いた値を、前記分割残金額に代入することにより、前記分割残金額を更新する(図21のS43)。
一方で、前記分割パターンフラグが1ではない場合(図21のS42:No)、前記分割パターンフラグが2であるか否かがチェックされる(図21のS44)。
[3-3-4B.分割パターンフラグが2(発生金額区分が1)である場合]
前記分割パターンフラグが2である場合(図21のS44:Yes)、「S4で説明した前記分割残金額≧査定分割カーソル106eの1行目のレコードにおける発生金額」という条件が満たされるか否かがチェックされる(図21のS45)。
前記条件が満たされる場合(図21のS45:Yes)、以下のようにして、分割金額および分割残金額に値がセット(代入)される。まず、算出部102c5は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記発生金額区分1(本発明の「所定額出力区分」に相当)および前記発生金額(本発明の「所定金額」に相当)の組み合わせの情報に含まれる出力区分に従って、前記出力区分と対応する分割金額を、前記情報または値取得部102c3で取得した前記値を基に算出する。具体的には、算出部102c5は、査定分割カーソル106eの1行目のレコードにおける発生金額を、分割金額に代入する(図21のS46)。次に、更新部102c6は、前記分割残金額(本発明の「残金額変数」に相当)の更新処理実行時の値から算出部102c5で算出した前記分割金額を差し引いた値を前記分割残金額(本発明の「残金額変数」に相当)に代入することにより、前記分割残金額を更新する。具体的には、前記分割残金額の値から算出部102c5で算出した前記分割金額を差し引いた値を、分割残金額に代入することにより、前記分割残金額を更新する(図21のS48)。そして、図16(A)に進む。
一方で、前記条件が満たされない場合(図21のS45:No)、以下のようにして、分割金額および分割残金額に値がセット(代入)される。まず、算出部102c5は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記発生金額区分1(本発明の「所定額出力区分」に相当)および前記発生金額(本発明の「所定金額」に相当)の組み合わせの情報に含まれる出力区分に従って、前記出力区分と対応する分割金額を、前記情報または値取得部102c3で取得した前記値を基に算出する。具体的には、算出部102c5は、具体的には、前記分割残金額の値から分割金額を差し引いた値を、分割金額に代入する(図21のS47)。次に、更新部102c6は、前記分割残金額(本発明の「残金額変数」に相当)の更新処理実行時の値から算出部102c5で算出した前記分割金額を差し引いた値を前記分割残金額(本発明の「残金額変数」に相当)に代入することにより、前記分割残金額を更新する。具体的には、前記分割残金額の値から算出部102c5で算出した前記分割金額を差し引いた値を、前記分割残金額に代入することにより、前記分割残金額を更新する(図21のS48)。そして、図16(A)に進む。
[3-3-4C.分割パターンフラグが3(発生金額区分が2)である場合]
図21のS44に戻り、前記分割パターンフラグが2ではない場合(図21のS44:No)、前記分割パターンフラグが3であるか否かがチェックされる(図21のS49)。
分割パターンフラグが3である場合(図21のS49:Yes)、査定分割カーソル106eの1行目のレコードにおける前記残金区分が「0:全体」であるか否かがチェックされる(図21のS50)。
前記残金区分が0である場合(図21のS50:Yes)、以下のようにして、判断金額に値がセット(代入)される。すなわち、算出部102c5は、S4で説明した前記分割元金額×(査定分割カーソル106eの1行目のレコードにおける前記発生金額/100)を、判断金額に代入する(図21のS51)。
一方で、前記残金区分が0ではない場合(図21のS50:No)、以下のようにして、判断金額に値がセット(代入)される。すなわち、算出部102c5は、S4で説明した前記分割残金額×(査定分割カーソル106eの1行目のレコードにおける前記発生金額/100)の値を、判断金額に代入する(図21のS52)。
次に、端数が0であるか否かがチェックされる(図21のS53)。なお、査定分割カーソル106eのレコードにおける前記金額端数単位が0である場合、前記端数は1となる。一方で、これ以外の場合(査定分割カーソル106eのレコードにおける前記金額端数単位が0ではない場合)、前記端数は当該金額端数単位となる。
前記端数が0である場合(図21のS53:Yes)、算出部102c5は、判断倍数に1をセット(代入)する(図21のS54)。
一方で、前記端数が0ではない場合(図21のS53:No)、以下のようにして、値がセット(代入)される。すなわち、算出部102c5は、FLOOR((前記判断金額/前記端数)×10)/10の値を、判断倍数に代入し、更に、当該判断倍数を査定分割カーソル106eのレコードにおける前記端数区分により端数処理することにより、判断倍数を算出する(図21のS55)。
次に、以下のようにして、分割金額に計算結果がセット(代入)される。すなわち、算出部102c5は、規則取得部102c2で取得した前記査定分割条件(本発明の「分割規則」に相当)に含まれる前記発生金額区分2(本発明の「比率基準額出力区分」に相当)および前記按分率(本発明の「所定比率」に相当)の組み合わせの情報に含まれる出力区分に従って、前記出力区分と対応する分割金額を、前記情報または値取得部102c3で取得した前記値を基に算出する。具体的には、算出部102c5は、前記端数×前記判断倍数の計算結果を、分割金額に代入する(図21のS56)。
次に、「S4で説明した前記分割元金額<S56で説明した前記分割金額」という条件が満たされるか否かがチェックされる(図21のS57)。なお、当該チェックは、査定分割マスタ106dに登録されている按分率が100%を超えている等の不正な設定がされていないかのチェックである。
前記条件が満たされて不正な設定がされている場合(図21のS57:Yes)、以下のようにして、前記分割金額に計算結果がセット(代入)される。すなわち、算出部102c5は、前記端数×(前記判断倍数-1)の計算結果を、前記分割金額に代入する(図21のS58)。
前記条件が満たされず不正な設定がされていない場合(図21のS57:No)、または、図21のS58の完了後、「前記分割残金額<S56で説明した前記分割金額」という条件が満たされるか否かがチェックされる(図21のS59)。なお、当該チェックは、査定分割マスタ106dに登録されている按分率が100%を超えている等の不正な設定がされていないかのチェックである。
前記条件が満たされて不正な設定がされている場合(図21のS59:Yes)、以下のようにして、前記分割金額に計算結果がセット(代入)される。すなわち、算出部102c5は、前記分割残金額を、前記分割金額に代入する(図21のS60)。
前記条件が満たされず不正な設定がされていない場合(図21のS59:No)、または、図21のS60の完了後、以下のようにして、前記分割残金額、前記分割消費税額および前記分割残消費税額に計算結果がセット(代入)される。すなわち、更新部102c6は、前記分割残金額(本発明の「残金額変数」に相当)の更新処理実行時の値から算出部102c5で算出した前記分割金額を差し引いた値を前記分割残金額(本発明の「残金額変数」に相当)に代入することにより、前記分割残金額を更新する。具体的には、算出部102c5は、前記分割残金額から前記分割金額を差し引いた計算結果を、前記分割残金額に代入することにより、前記分割残金額を更新する(図21のS61)。また、更新部102c6は、前記分割元消費税額×(前記分割金額/前記分割元金額)の計算結果を、前記分割消費税額に代入し、前記分割残消費税額から前記分割消費税額を差し引いた計算結果を、前記分割残消費税額に代入することにより、前記分割消費税額および前記分割残消費税額を更新する(図21のS61)。そして、図16(A)に進む。
[3-3-5.分割金額出力処理の終了]
図16(A)に進むと、前記分割パターンフラグが-1以外の場合には、査定分割ワーク106fに請求明細が1行追加される(図16のS12)。すなわち、S11の前記分割金額を1請求として査定分割ワーク106fが作成される(図16のS12)。そして、図15(A)に戻る。
図15(A)に戻り、査定分割カーソル106eにおける2行目以降のレコードについてもこれまでの説明と同様の処理が行われ、すべてのレコードの呼出が完了すると、査定分割カーソル106eの処理を抜ける(図15のS9:処理終了 次の明細の処理を開始)。そして、図15のS3に戻る。
図15のS3に戻り、発注依頼カーソル106cにおける2行目以降の明細についてもこれまでの説明と同様の処理が行われ、すべての明細の呼出が完了すると、処理が終了する(図15のS3:処理終了)。
以上のようにして、分割金額出力部102cは、規則取得部102c2、値取得部102c3、判断部102c4、算出部102c5および更新部102c6を複数回動作させることにより、複数の分割金額を出力することができる。なお、前記分割金額出力処理は、図6に示す査定分割入力画面を通して行うことができる。
そして、前記複数の分割金額を請求税込金額として含む査定分割ワーク106fが更新され、更新された査定分割ワーク106fを基にして請求データ106gが作成される。
[3-4.書類データ作成処理]
次に、書類データ作成部102dは、前記発注書、前記請書および前記請求書の書類データを作成する。当該書類データの一例を、図7に示す。前記請求書の前記書類データについては、査定分割の分だけ作成することができる。また、前記請求書の前記書類データは、それぞれ、図7の(1)~(3)に示すように、[3-3]で算出部102c5が算出した前記分割金額を請求金額として含む。
[3-5.仕入入力処理]
そして、仕入入力時に、図8に示す仕入入力画面から請求番号をキーとして、[3-3]で作成された請求データ106gが呼び出されて、仕入内容となる。仕入入力部102eは、当該仕入内容の入力を受け付ける。
[4.処理詳細]
本項目では、業務支援装置100で実行される処理の詳細について説明する。
[4-1.査定分割マスタ106dの設定がない場合]
査定分割マスタ106dの設定がない場合には、全額の請求が1明細作成される。概要としては、査定分割マスタ106dの設定がない場合には、図9に示すように、発注税込金額の合計額194,400円の全額を請求税込金額とする請求明細を含む請求データ106gが作成される。詳細な処理を以下で説明する。
まず、発注依頼入力部102aは、発注依頼の入力を受け付ける。次に、発注確定処理部102bは、図24の(画面項目)に示す発注依頼明細のうちチェックされた3つの明細についての発注の確定処理を行う。これにより、当該3つの明細が発注確定明細として発注明細ワーク106bに追加されて、発注明細ワーク106bが更新される(図15のS1)。更新された発注明細ワーク106bを、図24に示す。
次に、更新された発注明細ワーク106bから、前記分割コード、前記発注先コード、前記発注日、前記プロジェクトコード、前記プロジェクト枝番、前記工事番号および前記工事区分の組み合わせが同じである1~2行目の発注確定明細が集約されて、図24の発注依頼カーソル106cの1行目に格納される(図15のS2)。また、更新された発注明細ワーク106bにおける3行目の発注確定明細は、前記組み合わせが同じである発注確定明細が他に存在しないため、図24の発注依頼カーソル106cの2行目に格納される(図15のS2)。
次に、図25に示すように、発注依頼カーソル106cの1行目の集約明細が呼び出される(図15のS3)。
次に、初期値設定部102c1は、前記呼び出された1行目の集約明細における発注税込金額194,400円を分割元金額に代入し、前記呼び出された1行目の集約明細における発注消費税額14,400円を分割元消費税額に代入し、前記分割元金額194,400円を分割残金額に代入し、前記分割元消費税額14,400円を分割残消費税額に代入し、請求書分割番号に「1」をセットする(図15のS4)。
次に、規則取得部102c2は、査定分割マスタ106dから査定分割条件を取得する(図15のS5)。
ここで、本項目[4-1]においては、図23に示すように、発注先コード0000000001についての査定分割マスタ106dの内容は設定されていないため、規則取得部102c2は、前記査定分割条件を取得することができない。すなわち、前記査定分割条件の取得件数が0である(図15のS6:Yes)。
この場合、図26に示すように、前記分割元金額194,400円を1請求とする(すなわち、前記分割元金額の分割がされていない)請求明細を含む査定分割ワーク106fが更新される(図15のS7)。そして、図26に示す査定分割ワーク106fを元にして、図9に示す請求データ106gが作成される。
続けて、図15のS3に戻り、図24に示す発注依頼カーソル106cの2行目の集約明細について、同様の処理が行われる。
すなわち、まず、図27に示すように、発注依頼カーソル106cの2行目の集約明細が呼び出される(図15のS3)。
次に、初期値設定部102c1は、前記呼び出された2行目の集約明細における発注税込金額200,000円を分割元金額に代入し、前記呼び出された2行目の集約明細における発注消費税額0円を分割元消費税額に代入し、前記分割元金額200,000円を分割残金額に代入し、前記分割元消費税額0円を分割残消費税額に代入し、請求書分割番号に「1」をセットする(図15のS4)。
次に、規則取得部102c2は、査定分割マスタ106dから査定分割条件を取得する(図15のS5)。
ここで、本項目[4-1]においては、図23に示すように、発注先コード0000000002についての査定分割マスタ106dの内容は設定されていないため、規則取得部102c2は、前記査定分割条件を取得することができない。すなわち、前記査定分割条件の取得件数が0である(図15のS6:Yes)。
この場合、図28に示すように、前記分割元金額200,000円を1請求とする請求明細を含む査定分割ワーク106fが更新される(図15のS7)。
以上の処理により、発注依頼カーソル106cに残データはなくなったため(発注依頼カーソル106cにおけるすべての明細の呼出が完了したため)、処理が終了する(図15のS3:処理終了)。
[4-2.査定分割条件に当てはまらない場合]
査定分割条件に当てはまらない場合には、全額の請求が1明細作成される。概要としては、査定分割条件に当てはまらない場合には、図10に示すように、発注税込金額の合計額194,400円の全額を請求税込金額とする請求明細を含む請求データ106gが作成される。詳細な処理を以下で説明する。
まず、発注依頼入力部102aは、発注依頼の入力を受け付ける。次に、発注確定処理部102bは、図30の(画面項目)に示す発注依頼明細のうちチェックされた2つの明細についての発注の確定処理を行う。これにより、当該2つの明細が発注確定明細として発注明細ワーク106bに追加されて、発注明細ワーク106bが更新される(図15のS1)。更新された発注明細ワーク106bを、図30に示す。
次に、更新された発注明細ワーク106bから、前記分割コード、前記発注先コード、前記発注日、前記プロジェクトコード、前記プロジェクト枝番、前記工事番号および前記工事区分の組み合わせが同じである1~2行目の発注確定明細が集約されて、図30の発注依頼カーソル106cの1行目に格納される(図15のS2)。
次に、図31に示すように、発注依頼カーソル106cの1行目の集約明細が呼び出される(図15のS3)。
次に、初期値設定部102c1は、前記呼び出された1行目の集約明細における発注税込金額194,400円を分割元金額に代入し、前記呼び出された1行目の集約明細における発注消費税額14,400円を分割元消費税額に代入し、前記分割元金額194,400円を分割残金額に代入し、前記分割元消費税額14,400円を分割残消費税額に代入し、請求書分割番号に「1」をセットする(図15のS4)。
次に、規則取得部102c2は、査定分割マスタ106dから査定分割条件を取得する(図15のS5)。
ここで、本項目[4-2]においては、図29に示すように、査定分割マスタ106dに1つの査定分割条件が設定されているため、規則取得部102c2は、前記査定分割条件を取得することができる。すなわち、前記査定分割条件の取得件数が0ではない(図15のS6:No)。
この場合、図32に示すように、図29の査定分割マスタ106dにおけるレコードが、査定分割カーソル106eに格納される(図15のS8)。
次に、図33に示すように、査定分割カーソル106eの1行目のレコードから呼び出される(図15のS9)。また、本例においては、図32に示すように、査定分割カーソル106eのレコードの取得件数が1である(図15のS10:取得件数=1)。
ここで、査定分割カーソル106eの1行目のレコードにおける残金区分は、図33に示すように、「0:全体」であるため、「0:全体」の金額区分に従って、前記分割元金額194,400円が取得される。
一方で、規則取得部102c2で取得した前記査定分割条件に含まれる金額条件および金額条件区分は、図33に示すように、それぞれ、「100,000円」および「0:未満」である。
この場合、前記分割元金額194,400円が規則取得部102c2で取得した条件である「100,000円未満」を満たしていないと判断される。
前記条件が満たされていないと判断された場合、分割金額にS4の分割残金額194,400円が分割されずに代入され、分割消費税額にS4の前記分割残消費税額14,400円が代入され、分割残金額に0が代入され、分割パターンフラグに0が代入される(図15のS11)。そして、図16(A)に進む。
図16(A)に進むと、図33に示すように、S11の前記分割金額194,400を1請求とする請求明細を含む査定分割ワーク106fが更新される(図16のS12)。これにより、図33に示す査定分割ワーク106fを元にして、図10に示す請求データ106gが作成される。そして、図15(A)に戻る。
以上の処理により、査定分割カーソル106eの残明細がなくなったため(査定分割カーソル106eにおけるすべてのレコードの呼出が完了したため)、査定分割カーソル106eの処理を抜ける(図15のS9:処理終了 次の明細の処理を開始)。そして、発注依頼カーソル106cの残明細はなくなったため(発注依頼カーソル106cにおけるすべての明細の呼出しが完了したため)、発注依頼カーソル106cの処理を抜け、全処理が終了する(図15のS3:処理終了)。
[4-3.金額全額に基づく分割をする場合]
金額全額に基づく分割をする場合の概要としては、図11に示すように、発注税込金額の合計額194,400円の全額である194,400円を請求税込金額とする請求明細を含む請求データ106gが作成される。詳細な処理を以下で説明する。
まず、発注依頼入力部102aは、発注依頼の入力を受け付ける。次に、発注確定処理部102bは、図35の(画面項目)に示す発注依頼明細のうちチェックされた2つの明細についての発注の確定処理を行う。これにより、当該2つの明細が発注確定明細として発注明細ワーク106bに追加されて、発注明細ワーク106bが更新される(図15のS1)。更新された発注明細ワーク106bを、図35に示す。
次に、更新された発注明細ワーク106bから、前記分割コード、前記発注先コード、前記発注日、前記プロジェクトコード、前記プロジェクト枝番、前記工事番号および前記工事区分の組み合わせが同じである1~2行目の発注確定明細が集約されて、図35の発注依頼カーソル106cの1行目に格納される(図15のS2)。
次に、図36に示すように、発注依頼カーソル106cの1行目の集約明細が呼び出される(図15のS3)。
次に、初期値設定部102c1は、前記呼び出された1行目の集約明細における発注税込金額194,400円を分割元金額に代入し、前記呼び出された1行目の集約明細における発注消費税額14,400円を分割元消費税額に代入し、前記分割元金額194,400円を分割残金額に代入し、前記分割元消費税額14,400円を分割残消費税額に代入し、請求書分割番号に「1」をセットする(図15のS4)。
次に、規則取得部102c2は、査定分割マスタ106dから査定分割条件を取得する(図15のS5)。
ここで、本項目[4-3]においては、図34に示すように、査定分割マスタ106dに1つの査定分割条件が設定されているため、規則取得部102c2は、前記査定分割条件を取得することができる。すなわち、前記査定分割条件の取得件数が0ではない(図15のS6:No)。
この場合、図37に示すように、図34の査定分割マスタ106dにおけるレコードが、査定分割カーソル106eに格納される(図15のS8)。
次に、図38に示すように、査定分割カーソル106eの1行目のレコードから呼び出される(図15のS9)。また、本例においては、図37に示すように、査定分割カーソル106eのレコードの取得件数が1である(図15のS10:取得件数=1)。
ここで、査定分割カーソル106eの1行目のレコードにおける残金区分は、図38に示すように、「0:全体」であるため、「0:全体」の金額区分に従って、前記分割元金額194,400円が取得される。
ここで、規則取得部102c2で取得した前記査定分割条件に含まれる金額条件および金額条件区分は、図38に示すように、それぞれ、「200,000円」および「0:未満」である。
一方で、規則取得部102c2で取得した前記査定分割条件に含まれる金額条件および金額条件区分は、図33に示すように、それぞれ、「200,000円」および「0:未満」である。
この場合、前記分割元金額194,400円が規則取得部102c2で取得した条件である「200,000円未満」を満たしていると判断される。
前記条件が満たされていると判断された場合、図38の査定分割カーソル106eの1行目のレコードに含まれる発生金額区分「0:金額全額」に従って、前記取得された前記分割元金額194,400円全額が分割金額に代入される(図15のS11)。なお、当該194,400円は、S4の前記分割残金額194,400円と同じ値であるため、S4の前記分割残金額194,400円が分割金額に代入されると言いかえることもできる。また、分割消費税額にS4の前記分割残消費税額14,400円が代入され、分割残金額に0が代入され、分割パターンフラグに0が代入される(図15のS11)。そして、図16(A)に進む。
図16(A)に進むと、図38に示すように、S11の前記分割金額194,400円を請求税込金額とする査定分割ワーク106fが更新される(図16のS12)。これにより、図38に示す査定分割ワーク106fを元にして、図11に示す請求データ106gが作成される。そして、図15(A)に戻る。
以上の処理により、査定分割カーソル106eの残明細がなくなったため(査定分割カーソル106eにおけるすべてのレコードの呼出が完了したため)、査定分割カーソル106eの処理を抜ける(図15のS9:処理終了 次の明細の処理を開始)。そして、発注依頼カーソル106cの残明細はなくなったため(発注依頼カーソル106cにおけるすべての明細の呼出しが完了したため)、発注依頼カーソル106cの処理を抜け、全処理が終了する(図15のS3:処理終了)。
[4-4.定額金額および残金全額に基づく分割をする場合]
定額金額および残金全額に基づく分割をする場合の概要としては、図12に示すように、定額金額である100,000円を請求税込金額とする請求明細と、発注税込金額の合計額194,400円から前記請求税込金額100,000円を差し引いた残額944,00円の全額944,00円を請求税込金額とする請求明細と、を含む請求データ106gが作成される。詳細な処理を以下で説明する。
まず、発注依頼入力部102aは、発注依頼の入力を受け付ける。次に、発注確定処理部102bは、図40の(画面項目)に示す発注依頼明細のうちチェックされた2つの明細についての発注の確定処理を行う。これにより、当該2つの明細が発注確定明細として発注明細ワーク106bに追加されて、発注明細ワーク106bが更新される(図15のS1)。更新された発注明細ワーク106bを、図40に示す。
次に、更新された発注明細ワーク106bから、前記分割コード、前記発注先コード、前記発注日、前記プロジェクトコード、前記プロジェクト枝番、前記工事番号および前記工事区分の組み合わせが同じである1~2行目の発注確定明細が集約されて、図40の発注依頼カーソル106cの1行目に格納される(図15のS2)。
次に、図41に示すように、発注依頼カーソルの1行目の集約明細が呼び出される(図15のS3)。
次に、初期値設定部102c1は、前記呼び出された1行目の集約明細における発注税込金額194,400円を分割元金額に代入し、前記呼び出された1行目の集約明細における発注消費税額14,400円を分割元消費税額に代入し、前記分割元金額194,400円を分割残金額に代入し、前記分割元消費税額14,400円を分割残消費税額に代入し、請求書分割番号に「1」をセットする(図15のS4)。
次に、規則取得部102c2は、査定分割マスタ106dから査定分割条件を取得する(図15のS5)。
ここで、本項目[4-4]においては、図39に示すように、査定分割マスタ106dに2つの査定分割条件が設定されているため、規則取得部102c2は、前記査定分割条件を取得することができる。すなわち、前記査定分割条件の取得件数が0ではない(図15のS6:No)。
この場合、図42に示すように、図39の査定分割マスタ106dにおけるレコードが、査定分割カーソル106eに格納される(図15のS8)。
[4-4-1.査定分割カーソル106eの1行目のレコードについての処理]
次に、図43に示すように、査定分割カーソル106eの1行目のレコードから呼び出される(図15のS9)。そして、呼び出された当該1行目のレコードについて、以下で説明する処理が行われる。
本例においては、査定分割カーソル106eのレコードの取得件数が1より大きい(図15のS10:取得件数>1)。また、本例においては、前記1行目のレコードにおける前記残金区分は、「0:全体」である(図15のS13:YES)。そして、本例においては、前記1行目のレコードにおける前記金額条件区分は、「0:未満」ではなく(図17のS14:No)、「1:以下」でもなく(図17のS17:No)、「2:以上」である(図17のS20:YES)。
この場合、「S4で説明した前記分割元金額≧査定分割カーソル106eの1行目のレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図17のS21)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件に含まれる残金区分0の金額区分に従って、S4で説明した前記分割元金額194,400円を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割元金額194,400円が、規則取得部102c2で取得した前記査定分割条件に含まれる前記金額条件および前記金額条件区分の組み合わせ「100,000円以上」を満たしているかを判断する。
前記分割元金額194,400円は100,000円以上であるため(図17のS21:Yes)、図17のS22に進む。本例においては、前記1行目のレコードにおける前記発生金額区分1に従って、前記分割パターンフラグは2となる(図17のS22)。そして、図21(A)に進む。
本例においては、前段落で説明したとおり、前記分割パターンフラグは1ではなく(図21のS42:No)、2である(図21のS44:Yes)。
次に、S4で説明した前記分割残金額194,400円は、査定分割カーソル106eの1行目のレコードにおける発生金額100,000円以上であるため(図21のS45:Yes)、算出部102c5は、図43の査定分割カーソル106eの1行目のレコードに含まれる発生金額区分「1:定額金額」に従って、当該発生金額区分と対応する分割金額を算出する。すなわち、発生金額区分が「1:定額金額」である場合には、前記査定分割条件に含まれる前記発生金額が分割金額として出力されるため、算出部102c5は、前記発生金額100,000円を分割金額に代入する(図21のS46)。
更に、更新部102c6は、S4で説明した前記分割残金額194,400円から算出部102c5で算出した前記分割金額100,000円を差し引いた値である94,400円を前記分割残金額に代入することにより、前記分割残金額を更新する(図21のS48)。そして、図16(A)に進む。
図16(A)に進むと、図43に示すように、S46で算出した前記分割金額100,000円を請求税込金額とする請求明細を含む査定分割ワーク106fが更新される(図16のS12)。そして、図43に示す査定分割ワーク106fを元にして、図12に示す請求データ106gにおける1行目の明細(請求番号000000000001の明細)が作成される。そして、図15(A)に戻る。
[4-4-2.査定分割カーソル106eの2行目のレコードについての処理]
図15(A)に戻ると、図44に示すように、査定分割カーソル106eの2行目のレコードが呼び出される(図15のS9)。そして、呼び出された当該2行目のレコードについて、以下で説明する処理が行われる。
本例においては、査定分割カーソル106eのレコードの取得件数が1より大きい(図15のS10:取得件数>1)。また、本例においては、前記2行目のレコードにおける前記残金区分は、「0:全体」ではない(図15のS13:No)。そして、本例においては、前記2行目のレコードにおける前記金額条件区分は、「0:未満」ではなく(図19のS28:No)、「1:以下」でもなく(図19のS31:No)、「2:以上」でもなく(図19のS34:No)、「3:超」でもなく(図20のS37:No)、「9:無し」である(図20のS40:Yes)。
ここで、値取得部102c3は、図44に示す前記査定分割条件に含まれる残金区分1の金額区分に従って、[4-4-1]で更新した前記分割残金額94,400円を取得する。
前記2行目のレコードにおける前記金額条件区分は「9:無し」であるため、当該取得した分割残金額94,400円が満たすべき条件はない。このため、図20のS41に進み、前記2行目のレコードにおける前記発生金額区分0に従って、前記分割パターンフラグは1となる。そして、図19(D)に進み、更に、図21(A)に進む。
本例においては、前段落で説明したとおり、前記分割パターンフラグは1である(図21のS42:Yes)。
次に、算出部102c5は、図44の査定分割カーソル106eの2行目のレコードに含まれる発生金額区分「0:金額全額」に従って、当該発生金額区分と対応する分割金額を算出する。すなわち、発生金額区分が「0:金額全額」である場合には、値取得部102c3で取得した値が分割金額として出力されるため、算出部102c5は、値取得部102c3で取得した前記分割残金額944,00円を前記分割金額に代入する(図21のS43)。次に、更新部102c6は、[4-4-1]で更新した分割残金額94,400円から算出部102c5で算出した分割金額94,400円を差し引いた値である0円を前記分割残金額に代入することにより、前記分割残金額を更新する(図21のS43)。そして、図16(A)に進む。
図16(A)に進むと、図44に示すように、S43で算出した前記分割金額94,400円を請求税込金額とする請求明細を含む査定分割ワーク106fが更新される(図16のS12)。そして、図44に示す査定分割ワーク106fを元にして、図12に示す請求データ106gにおける2行目の明細(請求番号000000000002の明細)が作成される。続けて、図15(A)に進む。
[4-4-3.処理の終了]
以上、[4-4-1]および[4-4-2]で説明した処理により、査定分割カーソル106eの残明細がなくなったため(査定分割カーソル106eにおけるすべてのレコードの呼出が完了したため)、査定分割カーソル106eの処理を抜ける(図15のS9:処理終了 次の明細の処理を開始)。そして、発注依頼カーソル106cの残明細はなくなったため(発注依頼カーソル106cにおけるすべての明細の呼出しが完了したため)、発注依頼カーソル106cの処理を抜け(図15のS3:処理終了)、全処理が終了する。
[4-5.按分率および残金全額に基づく分割をする場合]
按分率および残金全額に基づく分割をする場合の概要としては、図13に示すように、発注税込金額の合計額194,400円を按分率30%で按分した金額58,320円を請求税込金額とする請求明細と、発注税込金額の合計額194,400円を按分率50%で按分した金額97,200円を請求税込金額とする請求明細と、発注税込金額の合計額194,400円から前記金額58,320円および前記金額97,200円を差し引いた残額38,880円の全額38,880円を請求税込金額とする請求明細と、を含む請求データ106gが作成される。詳細な処理を以下で説明する。
まず、発注依頼入力部102aは、発注依頼の入力を受け付ける。次に、発注確定処理部102bは、図46の(画面項目)に示す発注依頼明細のうちチェックされた2つの明細についての発注の確定処理を行う。これにより、当該2つの明細が発注確定明細として発注明細ワーク106bに追加されて、発注明細ワーク106bが更新される(図15のS1)。更新された発注明細ワーク106bを、図46に示す。
次に、更新された発注明細ワーク106bから、前記分割コード、前記発注先コード、前記発注日、前記プロジェクトコード、前記プロジェクト枝番、前記工事番号および前記工事区分の組み合わせが同じである1~2行目の発注確定明細が集約されて、図46の発注依頼カーソル106cの1行目に格納される(図15のS2)。
次に、図47に示すように、発注依頼カーソルの1行目の集約明細が呼び出される(図15のS3)。
次に、初期値設定部102c1は、前記呼び出された1行目の集約明細における発注税込金額194,400円を分割元金額に代入し、前記呼び出された1行目の集約明細における発注消費税額14,400円を分割元消費税額に代入し、前記分割元金額194,400円を分割残金額に代入し、前記分割元消費税額14,400円を分割残消費税額に代入し、請求書分割番号に「1」をセットする(図15のS4)。
次に、規則取得部102c2は、査定分割マスタ106dから査定分割条件を取得する(図15のS5)。
ここで、本項目[4-5]においては、図45に示すように、査定分割マスタ106dに3つの査定分割条件が設定されているため、規則取得部102c2は、前記査定分割条件を取得することができる。すなわち、前記査定分割条件の取得件数が0ではない(図15のS6:No)。
この場合、図48に示すように、図45の査定分割マスタ106dにおけるレコードが、査定分割カーソル106eに格納される(図15のS8)。
[4-5-1.査定分割カーソル106eの1行目のレコードについての処理]
次に、図49に示すように、査定分割カーソル106eの1行目のレコードから呼び出される(図15のS9)。そして、呼び出された当該1行目のレコードについて、以下で説明する処理が行われる。
本例においては、査定分割カーソル106eのレコードの取得件数が1より大きい(図15のS10:取得件数>1)。また、本例においては、前記1行目のレコードにおける前記残金区分は、「0:全体」である(図15のS13:YES)。そして、本例においては、前記1行目のレコードにおける前記金額条件区分は、「0:未満」ではなく(図17のS14:No)、「1:以下」でもなく(図17のS17:No)、「2:以上」である(図17のS20:YES)。
この場合、「S4で説明した前記分割元金額≧査定分割カーソル106eの1行目のレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図17のS21)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件に含まれる残金区分0の金額区分に従って、S4で説明した前記分割元金額194,400円を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割元金額194,400円が、規則取得部102c2で取得した前記査定分割条件に含まれる前記金額条件および前記金額条件区分の組み合わせ「100,000円以上」を満たしているかを判断する。
前記分割元金額194,400円は100,000円以上であるため(図17のS21:Yes)、図17のS22に進む。本例においては、前記1行目のレコードにおける前記発生金額区分2に従って、前記分割パターンフラグは3となる(図17のS22)。そして、図21(A)に進む。
本例においては、前段落で説明したとおり、前記分割パターンフラグは1ではなく(図21のS42:No)、2でもなく(図21のS44:No)、3である(図21のS49:Yes)。
次に、本例においては、前記1行目のレコードにおける前記残金区分は、「0:全体」であるため(図21のS50:Yes)、算出部102c5は、S4で説明した前記分割元金額194,400円×(前記1行目のレコードにおける按分率30%/100)=58,320円を、判断金額に代入する(図21のS51)。
次に、本例においては、前記1行目のレコードにおける金額端数単位は0であるため、前記端数は1である(図21のS53:No)。この場合、算出部102c5は、FLOOR((前記判断金額58,320円/前記端数1)×10)/10=58,320円を、判断倍数に代入し、更に、当該判断倍数58,320円を前記1行目のレコードにおける前記端数区分により切捨することにより、判断倍数58,320円を算出する(図21のS55)。
次に、算出部102c5は、前記端数1×前記判断倍数58,320円=58,320円を、分割金額に代入する(図21のS56)。
次に、本例においては、「S4で説明した前記分割元金額194,400円<S56で説明した前記分割金額58,320円」が満たされずおらず(図21のS57:No)、不正な設定はされていない。また、本例においては、「S4で説明した前記分割残金額194,400円<S56で説明した前記分割金額58,320円」が満たされておらず(図21のS59:No)、不正な設定はされていない。
次に、更新部102c6は、S4で説明した前記分割残金額194,400円からS56で説明した前記分割金額58,320円を差し引いた計算結果である136,080円を前記分割残金額に代入することにより前記分割残金額を更新する(図21のS61)。また、算出部102c5は、S4で説明した前記分割元消費税額14,400円×(S56で説明した前記分割金額58,320円/S4で説明した前記分割元金額194,400円)の計算結果である4,320円を分割消費税額に代入する(図21のS61)。そして、更新部102c6は、S4で説明した前記分割残消費税額14,400円から本段落で説明した前記分割消費税額4,320円を差し引いた値である10,080円を前記分割残消費税額に代入することにより前記分割残消費税額を更新する(図21のS61)。そして、図16(A)に進む。
図16(A)に進むと、図49に示すように、S56で算出した前記分割金額58,320円を請求税込金額とする請求明細を含む査定分割ワーク106fが更新される(図16のS12)。そして、図49に示す査定分割ワーク106fを元にして、図13に示す請求データ106gにおける1行目の明細(請求番号000000000001の明細)が作成される。続けて、図15(A)に戻る。
[4-5-2.査定分割カーソル106eの2行目のレコードについての処理]
図15(A)に戻ると、図50に示すように、査定分割カーソル106eの2行目のレコードが呼び出される(図15のS9)。ここで、査定分割カーソル106eの2行目のレコードは、按分率が50%である以外は、査定分割カーソル106eの1行目のレコードと同じ情報を含む。このため、[4-5-1]で説明した処理と同様の処理が行われるため、前記2行目のレコードに関して算出部102c5および更新部102c6が行う計算についてのみ以下で説明する。
算出部102c5は、S4で説明した前記分割元金額194,400円×(前記2行目のレコードにおける按分率50%/100)=97,200円を、判断金額に代入する(図21のS51)。続いて、算出部102c5は、FLOOR((前記判断金額97,200円/前記端数1)×10)/10=97,200円を、判断倍数に代入し、更に、当該判断倍数97,200円を前記2行目のレコードにおける前記端数区分により切捨することにより、判断倍数97,200円を算出する(図21のS55)。続けて、算出部102c5は、前記端数1×前記判断倍数97,200円=97,200円を、分割金額に代入する(図21のS56)。
次に、更新部102c6は、[4-5-1]のS61で更新した前記分割残金額136,080円からS56で説明した前記分割金額97,200円を差し引いた計算結果である38,800円を前記分割残金額に代入することにより前記分割残金額を更新する(図21のS61)。また、算出部102c5は、S4で説明した前記分割元消費税額14,400円×(S56で説明した前記分割金額97,200円/S4で説明した前記分割元金額194,400円)の計算結果である7,200円を前記分割消費税額に代入する(図21のS61)。そして、更新部102c6は、[4-5-1]のS61で更新した分割残消費税額10,080円から本段落で説明した前記分割消費税額7,200円を差し引いた値である2,880円を前記分割残消費税額に代入することにより前記分割残消費税額を更新する(図21のS61)。そして、図16(A)に進む。
図16(A)に進むと、図50に示すように、S56で算出した前記分割金額97,200円を請求税込金額とする請求明細を含む査定分割ワーク106fが更新される(図16のS12)。そして、図50に示す査定分割ワーク106fを元にして、図13に示す請求データ106gにおける2行目の明細(請求番号000000000002の明細)が作成される。続けて、図15(A)に戻る。
[4-5-3.査定分割カーソル106eの3行目のレコードについての処理]
図15(A)に戻ると、図51に示すように、査定分割カーソル106eの3行目のレコードが呼び出される(図15のS9)。そして、呼び出された当該3行目のレコードについて、以下で説明する処理が行われる。
本例においては、査定分割カーソル106eのレコードの取得件数が1より大きい(図15のS10:取得件数>1)。また、本例においては、前記3行目のレコードにおける前記残金区分は、「1:残金」である(図15のS13:No)。そして、本例においては、前記3行目のレコードにおける前記金額条件区分は、「0:未満」ではなく(図19のS28:No)、「1:以下」でもなく(図19のS31:No)、「2:以上」でもなく(図19のS34:No)、「3:超」でもなく(図20のS37:No)、「9:無し」である(図20のS40:Yes)。
ここで、値取得部102c3は、図51に示す前記査定分割条件に含まれる残金区分1の金額区分に従って、[4-5-2]で更新した前記分割残金額38,800円を取得する。
前記3行目のレコードにおける前記金額条件区分は「9:無し」であるため、当該取得した分割残金額38,800円が満たすべき条件はない。このため、図20のS41に進み、前記3行目のレコードにおける前記発生金額区分0に従って、前記分割パターンフラグは1となる。そして、図19(D)に進み、更に、図21(A)に進む。
本例においては、前段落で説明したとおり、前記分割パターンフラグは1である(図21のS42:Yes)。
次に、算出部102c5は、図51の査定分割カーソル106eの3行目のレコードに含まれる発生金額区分「0:金額全額」に従って、当該発生金額区分と対応する分割金額を算出する。すなわち、発生金額区分が「0:金額全額」である場合には、値取得部102c3で取得した値が分割金額として出力されるため、算出部102c5は、値取得部102c3で取得した前記分割残金額38,800円を前記分割金額に代入する(図21のS43)。次に、更新部102c6は、[4-5-2]で更新した前記分割残金額38,800円から算出部102c5で算出した前記分割金額38,800円を差し引いた値である0円を前記分割残金額に代入することにより、前記分割残金額を更新する(図21のS43)。そして、図16(A)に進む。
図16(A)に進むと、図51に示すように、S43で算出した前記分割金額38,800円を請求税込金額とする請求明細を含む査定分割ワーク106fが更新される(図16のS12)。そして、図51に示す査定分割ワーク106fを元にして、図13に示す請求データ106gにおける3行目の明細(請求番号000000000003の明細)が作成される。続けて、図15(A)に進む。
[4-5-4.処理の終了]
以上、[4-5-1]~[4-5-3]で説明した処理により、査定分割カーソル106eの残明細がなくなったため(査定分割カーソル106eにおけるすべてのレコードの呼出が完了したため)、査定分割カーソル106eの処理を抜ける(図15のS9:処理終了 次の明細の処理を開始)。そして、発注依頼カーソル106cの残明細はなくなったため(発注依頼カーソル106cにおけるすべての明細の呼出しが完了したため)、発注依頼カーソル106cの処理を抜け(図15のS3:処理終了)、全処理が終了する。
[4-6.按分率および残金全額に基づく多少複雑な分割をする場合]
按分率および残金全額に基づく多少複雑な分割をする場合の概要としては、図14に示すように、発注税込金額の合計額194,400円を按分率50%で按分した金額97,200円を請求税込金額とする請求明細と、発注税込金額の合計額194,400円から前記按分した金額97,200円を差し引いた残額97,200円を按分率30%で按分した金額29,160円を請求税込金額とする請求明細と、前記残額97,200円から前記按分した金額29,160円を差し引いた残額68,040円を按分率50%で按分した金額34,020円を請求税込金額とする請求明細と、前記残額68,040円から前記按分した金額34,020円を差し引いた残額34,020円の全額34,020円を請求税込金額とする請求明細と、を含む請求データ106gが作成される。詳細な処理を以下で説明する。
まず、発注依頼入力部102aは、発注依頼の入力を受け付ける。次に、発注確定処理部102bは、図53の(画面項目)に示す発注依頼明細のうちチェックされた2つの明細についての発注の確定処理を行う。これにより、当該2つの明細が発注確定明細として発注明細ワーク106bに追加されて、発注明細ワーク106bが更新される(図15のS1)。更新された発注明細ワーク106bを、図53に示す。
次に、更新された発注明細ワーク106bから、前記分割コード、前記発注先コード、前記発注日、前記プロジェクトコード、前記プロジェクト枝番、前記工事番号および前記工事区分の組み合わせが同じである1~2行目の発注確定明細が集約されて、図53の発注依頼カーソル106cの1行目に格納される(図15のS2)。
次に、図54に示すように、発注依頼カーソルの1行目の集約明細が呼び出される(図15のS3)。
次に、初期値設定部102c1は、前記呼び出された1行目の集約明細における発注税込金額194,400円を分割元金額に代入し、前記呼び出された1行目の集約明細における発注消費税額14,400円を分割元消費税額に代入し、前記分割元金額194,400円を分割残金額に代入し、前記分割元消費税額14,400円を分割残消費税額に代入し、請求書分割番号に「1」をセットする(図15のS4)。
次に、規則取得部102c2は、査定分割マスタ106dから査定分割条件を取得する(図15のS5)。
ここで、本項目[4-6]においては、図52に示すように、査定分割マスタ106dに5つの査定分割条件が設定されているため、規則取得部102c2は、前記査定分割条件を取得することができる。すなわち、前記査定分割条件の取得件数が0ではない(図15のS6:No)。
この場合、図55に示すように、図52の査定分割マスタ106dにおけるレコードが、査定分割カーソル106eに格納される(図15のS8)。
[4-6-1.査定分割カーソル106eの1行目のレコードについての処理]
次に、図56に示すように、査定分割カーソル106eの1行目のレコードから呼び出される(図15のS9)。ここで、本項目[4-6]の査定分割カーソル106eの1行目のレコードは、按分率が50%である以外は、[4-5]の査定分割カーソル106eの1行目のレコードと同じ情報を含む。このため、[4-5-1]で説明した処理と同様の処理が行われるため、図56の査定分割カーソル106eの1行目のレコードに関して算出部102c5および更新部102c6が行う計算についてのみ以下で説明する。
算出部102c5は、S4で説明した前記分割元金額194,400円×(前記1行目のレコードにおける按分率50%/100)=97,200円を、判断金額に代入する(図21のS51)。続いて、算出部102c5は、FLOOR((前記判断金額97,200円/前記端数1)×10)/10=97,200円を、判断倍数に代入し、更に、当該判断倍数97,200円を前記1行目のレコードにおける前記端数区分により切捨することにより、判断倍数97,200円を算出する(図21のS55)。続けて、算出部102c5は、前記端数1×前記判断倍数97,200円=97,200円を、分割金額に代入する(図21のS56)。
次に、更新部102c6は、S4で説明した前記分割残金額194,400円からS56で説明した前記分割金額97,200円を差し引いた計算結果である97,200円を前記分割残金額に代入することにより前記分割残金額を更新する(図21のS61)。また、算出部102c5は、S4で説明した前記分割元消費税額14,400円×(S56で説明した前記分割金額97,200円/S4で説明した前記分割元金額194,400円)の計算結果である7,200円を分割消費税額に代入する(図21のS61)。そして、更新部102c6は、S4で説明した前記分割残消費税額14,400円から本段落で説明した前記分割消費税額7,200円を差し引いた値である7,200円を前記分割残消費税額に代入することにより前記分割残消費税額を更新する(図21のS61)。そして、図16(A)に進む。
図16(A)に進むと、図56に示すように、S56で算出した前記分割金額97,200円を請求税込金額とする請求明細を含む査定分割ワーク106fが更新される(図16のS12)。そして、図56に示す査定分割ワーク106fを元にして、図14に示す請求データ106gにおける1行目の明細(請求番号000000000001の明細)が作成される。続けて、図15(A)に戻る。
[4-6-2.査定分割カーソル106eの2行目のレコードについての処理]
図15(A)に戻ると、図57に示すように、査定分割カーソル106eの2行目のレコードが呼び出される(図15のS9)。そして、呼び出された当該2行目のレコードについて、以下で説明する処理が行われる。
本例においては、査定分割カーソル106eのレコードの取得件数が1より大きい(図15のS10:取得件数>1)。また、本例においては、前記2行目のレコードにおける前記残金区分は、「1:残金」である(図15のS13:No)。そして、本例においては、前記2行目のレコードにおける前記金額条件区分は、「0:未満」である(図19のS28:Yes)。
この場合、「[4-6-1]のS61で更新した前記分割残金額<査定分割カーソル106eの2行目のレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図19のS29)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件に含まれる残金区分1の金額区分に従って、[4-6-1]のS61で更新した前記分割残金額97,200円を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割残金額97,200円が、規則取得部102c2で取得した前記査定分割条件に含まれる前記金額条件および前記金額条件区分の組み合わせ「50,000円未満」を満たしているかを判断する。
前記分割残金額97,200円は50,000未満ではないため(図19のS29:No)、図16(A)に進む。本例においては、分割金額の算出は行われていないため、図16のS12において、査定分割ワーク106fの更新は行われない。続けて、図15(A)に戻る。
[4-6-3.査定分割カーソル106eの3行目のレコードについての処理]
図15(A)に戻ると、図58に示すように、査定分割カーソル106eの3行目のレコードが呼び出される(図15のS9)。そして、呼び出された当該3行目のレコードについて、以下で説明する処理が行われる。
本例においては、査定分割カーソル106eのレコードの取得件数が1より大きい(図15のS10:取得件数>1)。また、本例においては、前記3行目のレコードにおける前記残金区分は、「1:残金」である(図15のS13:No)。そして、本例においては、前記3行目のレコードにおける前記金額条件区分は、「0:未満」ではなく(図19のS28:No)、「1:以下」でもなく(図19のS31:No)、「2:以上」である(図19のS34:YES)。
この場合、「[4-6-1]のS61で更新した前記分割残金額≧査定分割カーソル106eの3行目のレコードにおける金額条件」という条件が満たされるか否かが、以下のようにしてチェックされる(図19のS35)。まず、値取得部102c3は、規則取得部102c2で取得した前記査定分割条件に含まれる残金区分1の金額区分に従って、[4-6-1]のS61で更新した前記分割残金額97,200円を取得する。そして、判断部102c4は、値取得部102c3で取得した前記分割残金額97,200円が、規則取得部102c2で取得した前記査定分割条件に含まれる前記金額条件および前記金額条件区分の組み合わせ「50,000円以上」を満たしているかを判断する。
前記分割残金額97,200円は50,000円以上であるため(図19のS35:Yes)、図19のS36に進む。本例においては、前記3行目のレコードにおける前記金額発生区分2に従って、前記分割パターンフラグは3となる。そして、図21(A)に進む。
本例においては、前段落で説明したとおり、前記分割パターンフラグは1ではなく(図21のS42:No)、2でもなく(図21のS44:No)、3である(図21のS49:Yes)。
次に、本例においては、前記3行目のレコードにおける前記残金区分は、「1:残金」であるため(図21のS50:No)、算出部102c5は、[4-6-1]のS61で更新した前記分割残金額97,200円×(前記3行目のレコードにおける按分率30%/100)=29,160円を、判断金額に代入する(図21のS52)。
次に、本例においては、前記3行目のレコードにおける金額端数単位は0であるため、前記端数は1である(図21のS53:No)。この場合、算出部102c5は、FLOOR((前記判断金額29,160円/前記端数1)×10)/10=29,160円を、判断倍数に代入し、更に、当該判断倍数29,160円を前記3行目のレコードにおける前記端数区分により切捨することにより、判断倍数29,160円を算出する(図21のS55)。
次に、算出部102c5は、前記端数1×前記判断倍数29,160円=29,160円を、分割金額に代入する(図21のS56)。
次に、本例においては、「S4で説明した前記分割元金額194,400円<S56で説明した前記分割金額29,160円」という条件が満たされておらず(図21のS57:No)、不正な設定がされていない。また、本例においては、「[4-6-1]のS61で更新した前記分割残金額97,200円<S56で説明した前記分割金額29,160円」という条件が満たされず(図21のS59:No)、不正な設定がされていない。
次に、更新部102c6は、[4-6-1]のS61で更新した前記分割残金額97,200円からS56で説明した前記分割金額29,160円を差し引いた計算結果である68,040円を前記分割残金額に代入することにより前記分割残金額を更新する(図21のS61)。また、算出部102c5は、S4で説明した前記分割元消費税額14,400円×(S56で説明した前記分割金額29,160円/S4で説明した前記分割元金額194,400円)の計算結果である2,160円を分割消費税額に代入する(図21のS61)。そして、更新部102c6は、[4-6-1]のS61で更新した分割残消費税額7,200円から本段落で説明した前記分割消費税額2,160円を差し引いた値である5,040円を前記分割残消費税額に代入することにより前記分割残消費税額を更新する(図21のS61)。そして、図16(A)に進む。
図16(A)に進むと、図58に示すように、S56で算出した前記分割金額29,160円を請求税込金額とする請求明細を含む査定分割ワーク106fが更新される(図16のS12)。そして、図58に示す査定分割ワーク106fを元にして、図14に示す請求データ106gにおける2行目の明細(請求番号000000000002の明細)が作成される。続けて、図15(A)に戻る。
[4-6-4.査定分割カーソル106eの4行目のレコードについての処理]
図15(A)に戻ると、図59に示すように、査定分割カーソル106eの4行目のレコードが呼び出される(図15のS9)。ここで、査定分割カーソル106eの4行目のレコードは、按分率が50%である以外は、査定分割カーソル106eの3行目のレコードと同じ情報を含む。このため、[4-6-3]で説明した処理と同様の処理が行われるため、前記4行目のレコードに関して算出部102c5および更新部102c6が行う計算についてのみ以下で説明する。
算出部102c5は、[4-6-3]のS61で更新した前記分割残金額68,040円×(前記4行目のレコードにおける按分率50%/100)=34,020円を、判断金額に代入する(図21のS51)。続いて、算出部102c5は、FLOOR((前記判断金額34,020円/前記端数1)×10)/10=34,020円を、判断倍数に代入し、更に、当該判断倍数34,020円を前記4行目のレコードにおける前記端数区分により切捨することにより、判断倍数34,020円を算出する(図21のS55)。続けて、算出部102c5は、前記端数1×前記判断倍数34,020円=34,020円を、分割金額に代入する(図21のS56)。
次に、更新部102c6は、[4-6-3]のS61で更新した前記分割残金額68,040円からS56で説明した前記分割金額34,020円を差し引いた計算結果である34,020円を前記分割残金額に代入することにより前記分割残金額を更新する(図21のS61)。また、算出部102c5は、S4で説明した前記分割元消費税額14,400円×(S56で説明した前記分割金額34,020円/S4で説明した前記分割元金額194,400円)の計算結果である2,520円を分割消費税額に代入する(図21のS61)。そして、更新部102c6は、[4-6-3]のS61で更新した分割残消費税額5,040円から本段落で説明した前記分割消費税額2,520円を差し引いた値である2,520円を前記分割残消費税額に代入することにより前記分割残消費税額を更新する(図21のS61)。そして、図16(A)に進む。
図16(A)に進むと、図59に示すように、S56で算出した前記分割金額34,020円を請求税込金額とする請求明細を含む査定分割ワーク106fが更新される(図16のS12)。そして、図59に示す査定分割ワーク106fを元にして、図14に示す請求データ106gにおける3行目の明細(請求番号000000000003の明細)が作成される。続けて、図15(A)に戻る。
[4-6-5.査定分割カーソル106eの5行目のレコードについての処理]
図15(A)に戻ると、図60に示すように、査定分割カーソル106eの5行目のレコードが呼び出される(図15のS9)。そして、呼び出された当該5行目のレコードについて、以下で説明する処理が行われる。
本例においては、査定分割カーソル106eのレコードの取得件数が1より大きい(図15のS10:取得件数>1)。また、本例においては、前記5行目のレコードにおける前記残金区分は、「1:残金」である(図15のS13:No)。そして、本例においては、前記5行目のレコードにおける前記金額条件区分は、「0:未満」ではなく(図19のS28:No)、「1:以下」でもなく(図19のS31:No)、「2:以上」でもなく(図19のS34:No)、「3:超」でもなく(図20のS37:No)、「9:無し」である(図20のS40:Yes)。
ここで、値取得部102c3は、図60に示す前記査定分割条件に含まれる残金区分1の金額区分に従って、[4-6-4]で更新した前記分割残金額34,020円を取得する。
前記5行目のレコードにおける前記金額条件区分は「9:無し」であるため、当該取得した分割残金額34,020円が満たすべき条件はない。このため、図20のS41に進み、前記5行目のレコードにおける前記発生金額区分0に従って、前記分割パターンフラグは1となる。そして、図19(D)に進み、更に、図21(A)に進む。
本例においては、前段落で説明したとおり、前記分割パターンフラグは1である(図21のS42:Yes)。
次に、算出部102c5は、図60の査定分割カーソル106eの5行目のレコードに含まれる発生金額区分「0:金額全額」に従って、当該発生金額区分と対応する分割金額を算出する。すなわち、発生金額区分が「0:金額全額」である場合には、値取得部102c3で取得した値が分割金額として出力されるため、算出部102c5は、値取得部102c3で取得した前記分割残金額34,020円を前記分割金額に代入する(図21のS43)。次に、更新部102c6は、[4-6-4]で更新した前記分割残金額34,020円から算出部102c5で算出した前記分割金額34,020円を差し引いた値である0円を前記分割残金額に代入することにより、前記分割残金額を更新する(図21のS43)。そして、図16(A)に進む。
図16(A)に進むと、図60に示すように、S43で算出した前記分割金額34,020円を請求税込金額とする請求明細を含む査定分割ワーク106fが更新される(図16のS12)。そして、図60に示す査定分割ワーク106fを元にして、図14に示す請求データ106gにおける4行目の明細(請求番号000000000004の明細)が作成される。続けて、図15(A)に進む。
[4-6-6.処理の終了]
以上、[4-6-1]~[4-6-5]で説明した処理により、査定分割カーソル106eの残明細がなくなったため(査定分割カーソル106eにおけるすべてのレコードの呼出が完了したため)、査定分割カーソル106eの処理を抜ける(図15のS9:処理終了 次の明細の処理を開始)。そして、発注依頼カーソル106cの残明細はなくなったため(発注依頼カーソル106cにおけるすべての明細の呼出しが完了したため)、発注依頼カーソル106cの処理を抜け(図15のS3:処理終了)、全処理が終了する。
[4-7.まとめ]
以上、[4-1]~[4-6]で説明したように、本実施形態に係る業務支援装置100によれば、分割の元となる元金額を分割して複数の分割金額を出力することができる。これにより、請求書の金額の分割作業に従来要していた負担を大幅に軽減することができる。
[5.他の実施形態]
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
また、業務支援装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
例えば、業務支援装置100が備える処理機能、特に制御部にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じて業務支援装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
また、このコンピュータプログラムは、業務支援装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、フレキシブルディスク、光磁気ディスク、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable and Programmable Read Only Memory)、CD-ROM(Compact Disk Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、および、Blu-ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
記憶部に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
また、業務支援装置100は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、業務支援装置100は、当該装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。