カスタムレポート¶
Odooには、強力で使いやすいレポーティングフレームワークが付属しています。このエンジンを使用すると、税レポートや、特定のグルーピングとレイアウトを持つ貸借対照表および損益計算書などの新しいレポートを作成できます。
重要
会計レポート作成インターフェースにアクセスするには、開発者モードを有効にします。
ルートレポート¶
ルートレポートは、一般的で中立的な会計レポートとみなすことができます。ルートレポートは、ローカル会計バージョンを構築するためのモデルとして機能します。レポートにルートレポートがない場合、それ自体がルートレポートであると見なされます。
Example
ベルギーとアメリカの税レポートは、同じ一般的なバージョンをベースにして、それぞれの国内規制に合わせることになります。
新しいルートレポートを作成する際には、そのためのメニュー項目を作成する必要があります。そのためには、レポートを開き、そのレポート上で(施策)アイコンをクリックし、メニュー項目を作成を選択します。ページを更新すると、レポートがで対応可能になります。
注釈
新しいルートレポートを作成する必要があるケースは、その国の税務当局が新しい特定のタイプのレポートを要求する場合など、稀です。
バリアント¶
バリアントはルートレポートの国別バージョンであるため、常にルートレポートを参照します。バリアントを作成するには、新しいレポートを作成する際に ルートレポート フィールドで汎用(ルート)レポートを選択して下さい。
ルートレポートが会計アプリのメインメニューの1つから開かれると、そのすべてのバリアントがビューの右上隅のバリアントセレクターに表示されます。
Example
次の画像では、VAT Report (BE)がルートGeneric Tax reportのバリアントです。
レポート明細行¶
レポート(ルートまたはバリアント)を作成したら、レポート行を入力する必要があります。行を追加をクリックして新しい行を作成するか、既存のレポート行をクリックして変更できます。すべてのレポート行には名称が*必須*であり、数式でその値を使用したい場合は任意のコードを追加することもできます。
式¶
各レポート行には、1つまたは複数の式を含めることができます。式は、レポート行に必要なサブ変数とみなすことができます。式を作成するには、レポート行内の行を追加をクリックします。
式を作成する際は、その式を参照するために使用するラベルを割り当てる必要があります。そのため、各行の式の中で**一意**である必要があります。また、計算エンジンと計算式の両方を指定する必要があります。**エンジン**は、**計算式**および**サブ計算式**がどのように解釈されるかを定義します。必要に応じて、同じ行内で異なる計算エンジンを使用する式を混在させることも可能です。
注釈
エンジンによっては、サブ式 も必要な場合があります。
'Odooドメイン' エンジン¶
このエンジンでは、数式は Odooドメイン と解釈され、account.move.line オブジェクトを対象とします。
このサブ計算式によって、ドメインに一致する仕訳明細をどのように使って式の値を計算するかを定義することができます:
sum一致した仕訳明細の全残高の合計です。
sum_if_pos一致した仕訳明細の残高の合計です。そうでなければ
0です。sum_if_neg金額が負であれば、結果は一致した仕訳明細の残高の合計となります。そうでなければ
0です。
また、サブ計算式の先頭に - 記号を付けると、結果の符号を 反転 させることができます。
'その他の計算式の集計'エンジン¶
他の式で取得した金額に対して算術演算を実行する必要がある場合は、このエンジンを使用します。ここでの計算式は、4つの基本算術演算子(加算 +、減算 -、除算 /、乗算 *)のいずれかで区切られた式への参照で構成されます。式を参照するには、そのレポート行の**コード**の後にピリオド . と式の**ラベル**を入力します(例: code.label)。
サブ式 は以下の1つであることが可能です:
if_above(CUR(amount))算術式の値は、指定された境界よりも大きい場合にのみ返されます。そうでなければ、結果は
0となります。if_below(CUR(amount))算術式の値は、指定された境界よりも小さい場合にのみ返されます。そうでなければ、結果は
0となります。if_between(CUR1(amount1), CUR2(amount2))算術式の値は、指定された境界の間に厳密に入っている場合のみ返される。そうでない場合は、最も近い境界に戻されます。
if_other_expr_above(LINE_CODE.EXPRESSION_LABEL, CUR(amount))算術式の値は、指定された行コードと数式ラベルで示される式の値が、指定された境界よりも大きい場合にのみ返されます。そうでなければ、結果は
0となります。if_other_expr_below(LINE_CODE.EXPRESSION_LABEL, CUR(amount))算術式の値は、指定された明細コードと式ラベルで示される式の値が、指定された境界よりも小さい場合にのみ返されます。そうでなければ、結果は
0となります。
CUR`は大文字の通貨コードで、`金額`はその通貨で表示された限界額です。
cross_report(xml_id | report_id[, force_date_scope])xml_idまたはレポートID自体で指定された別のレポートの式を照合します。
force_date_scope`が追加された場合、式に定義された:guilabel:`日付範囲が、計算式で使用されるすべての式を計算するために使用されます。
'勘定コードのプレフィックス'エンジン¶
このエンジンは、勘定科目コードのプレフィックスを算術式の変数として使用し、勘定科目の金額を照合するために使用されます。
Example
21Example
21 + 10 - 521 と 10 で始まる勘定科目の仕訳明細の残高を加算し、プレフィクスが 5 の勘定科目の仕訳明細の残高を減算します。サブプレフィックスの選択を無視することも可能です。
Example
21 + 10\(101, 102) - 5\(57)102、57 は無視されます。C と D のサフィックスを使って**貸方と借方**に 'サブフィルタ' を適用することができます。この場合、勘定はプレフィクスが一致し、かつ この勘定で行われた仕訳明細の合計残高が 貸方/借方 である場合のみ考慮されます。
Example
勘定科目 210001 の残高は -42 で、勘定科目 210002 の残高は25です。数式 21D は勘定科目 210002 にのみマッチし、したがって25を返します。210001 は残高が 貸方 であるため、参照されません。
プレフィクスの除外はサフィックスの C や D と混ぜることができます。
Example
21D + 10\(101, 102)C - 5\(57)D)の 場合 は 21、貸方(C)の 場合 は 10 で始まる勘定科目の残高を足し合わせますが、プレフィックス 101、102 は無視し、プレフィックス 57 は無視してプレフィックス 5 で始まる勘定科目の残高を引きます。プレフィクスの C または D に一致し、サフィックスとして使用しない場合は、空の除外文字 () を使用します。
Example
21D\()21D で始まる勘定科目に一致します。コードプレフィクスを使って勘定科目を含めるだけでなく、勘定科目タグ で一致させることもできます。これは、例えば、あなたの国に標準化された勘定科目表がなく、同じプレフィクスが企業間で異なる目的で使用される可能性がある場合に特に便利です。
Example
tag(25)参照するタグがデータファイルで定義されている場合は、idの代わりにxmlidを使うことができます。
Example
tag(my_module.my_tag)また、タグに算術式を使うこともでき、プレフィクス選択と組合わせることもできます。
Example
tag(my_module.my_tag) + tag(42) + 1010 の勘定科目の残高と合計されます。`C`と`D`のサフィックスもタグと同じように使うことができます。
Example
tag(my_module.my_tag)Cプレフィクスの除外はタグでも機能します。
Example
tag(my_module.my_tag)\(10)10 で始まらないコードを持つ勘定科目に一致します。'外部値' エンジン¶
'外部値' エンジンは、手動値 および 繰越値 を参照するために使用されます。これらの値は account.move.line ではなく、account.report.external.value で保存されます。これらのオブジェクトはそれぞれ、それが影響を与える式を直接指しているので、ここで選択することはあまりありません。
式 は以下のいずれかになります:
sumその結果が、その期間内の全ての外部値の合計でなければならない場合。
most_recentその結果が、その期間の最新の外部値の値でなければならない場合。
さらに、サブ計算式 は2つの方法で使用することができます:
rounding=XXを数字に置き換えると、X桁に丸めることを指示します。editableこの式を手動で編集できることを示し、レポートにアイコンを表示して、ユーザがこの操作を実行できるようにします。
注釈
手動値は、現在レポートで選択されている date_to で作成されます。
どちらのサブ計算式も ; で区切ることで混在させることができます。
Example
editable;rounding=2「カスタム Python 関数」エンジン¶
このエンジンは、開発者がケースバイケースで式のカスタム計算を導入するための手段です。数式は呼び出すPython 関数の名前であり、サブ数式はこの関数が返す辞書から取得するキーです。独自のカスタムモジュールを作成する場合にのみ使用してください。
日付フィルタリング¶
デフォルトでは、各式で計算される値は、レポートで選択された期間内に厳密に含まれる仕訳明細に限定されます。この動作を変更するには、式の日付範囲フィールドを変更します。
カラム¶
レポートには、不明な数 の列が表示される場合があります。各列は 行 で明示された 式 から値を得ます。列の expression_label フィールドは、値が表示される式のラベルを表示します。そのフィールドに 式 がない行がある場合、この列には何も表示されません。 複数の列が必要な場合は、異なる 式 ラベルを使用する必要があります。
会計レポートの オプション タブにある 期間比較 機能を使用すると、全ての列が各期間で繰返されます。
行のグループ化¶
非標準のグループ化は、*仕訳明細*モデルに既存のフィールドを追加または使用することで可能ですが、フィールドが関連フィールドであり、非保存である必要があります。
注釈
行をグループ化するには、レポートに編集可能な明示的なレポート行が必要です。たとえば、繰延レポートは、生成される動的行を使用するため、行のグループ化をサポートしていません。
仕訳明細に新しいフィールドを作成¶
*仕訳明細*モデルに非保存の関連フィールドを作成するには、まずに移動し、(bug)アイコンをクリックしてから、Fieldsをクリックします。Newをクリックして新しいフィールドを作成し、次のフィールドを入力します:
Field Name:フィールドの技術名
Field Label:フィールドに表示されるラベル
Field Type:この関連フィールドが指す必要があるフィールドのタイプ
Stored:非保存フィールドのみが行のグループ化に使用できるため、このフィールドはチェックを外したままにします。
Related Model:フィールドタイプがone2many、many2many、またはmany2oneの場合、グループ化する元のフィールドのモデルを選択します。
Related Field Definition:グループ化するフィールドへの技術パス
Example
商業パートナーの販売チームでグループ化するには、関連フィールド定義を
move_id.team_idに設定します。
行のグループ化¶
行をグループ化するには、目的のレポートの行タブに移動し、グループ化する行をクリックして、グループ化フィールドを編集します。グループ化キーとして使用するフィールドの技術名(フィールド名)を入力してください。
ちなみに
モデルのすべてのフィールドとその技術名のリストを表示するには、に移動し、(bug)アイコンをクリックしてから、Fieldsをクリックします。各フィールドの技術名は、Field Name列に表示されます。
カスタム税レポートの設定¶
レポート設定¶
ちなみに
Odoo のレポートエンジンのすべての技術用語と関数は、このページの前のセクションで説明されています。カスタム税レポートを設定する前に、これらのセクションを読むことを強くお勧めします。
カスタム税レポートを作成するには、会計アプリを開き、に移動して、新規をクリックします:
レポートの名前を入力します。
ルートレポートを選択します。
利用可能条件フィールドの下で、Country Matchesを選択し、次に会社に一致するCountryを選択します。
次に、明細追加をクリックしてレポート行を作成します。作成したら、そのレポート行をクリックして設定します:
再度明細追加をクリックして式を作成し、名前を付けます。
Definitionタブで、次のシナリオに応じてその式のComputation Engineを選択します:
このシナリオでは、会社が税グリッドを使用します:
計算エンジンとしてTax Tagsを選択します。Odoo はこのフィールドを使用して、レポート行を税にリンクします。
数式フィールドに、短いグリッド識別子を入力します(例:
vat_sales_base)。Odoo は自動的にこのタグの+と-のバリアントを生成するため、内でマッピングできます。Subformulaフィールドに、課税標準を報告するには
base、または徴収/支払った実際の税額を報告するにはtaxのいずれかを入力します。
必要に応じてこのプロセスを繰り返します。次に、保存して閉じるをクリックします。
または、次の方法もあります:
他の数式を集計を計算エンジンとして選択します。Odooはこのフィールドを使用して、生の打刻データをスキャンするのではなく、レポートに既に存在する行で計算を実行します。
数式フィールドで、行コードを参照する基本的な代数を使用します(例:
LINE_10 - LINE_20)。
必要に応じてこのプロセスを繰り返します。次に、保存して閉じるをクリックします。
このシナリオでは、会社は税グリッドを使用しません。代わりに、総勘定元帳アカウント経由ですべてを厳密に追跡します:
勘定科目コードのプレフィックスを計算エンジンとして選択します:Odooは財務合計を取得する必要がある行にこれを使用します。打刻データタグを検索する代わりに、Odooは勘定科目表から直接ライブ残高を取得します。
数式フィールドに、追跡したいアカウントの開始桁を入力します(例:
40は400000、401000などで始まるすべての収益アカウントの合計を取得します)。
必要に応じてこのプロセスを繰り返します。次に、保存して閉じるをクリックします。
または、次の方法もあります:
他の数式を集計を計算エンジンとして選択します。Odooはこれを使用して、他のレポート行を加算または減算することで小計、純税額、または総計を計算します。
数式フィールドで、行コードを参照する基本的な代数を使用します(例:
LINE_10 - LINE_20)。
必要に応じてこのプロセスを繰り返します。次に、保存して閉じるをクリックします。
このシナリオでは、標準のタグや勘定科目プレフィックスでは処理できない高度なフィルタリング、手動のユーザ上書き、または複雑なアルゴリズムロジックが必要です:
Odooドメインを計算エンジンとして選択します:Odooはこれを使用して税タグを完全にバイパスし、標準のOdoo検索構文を使用して生の仕訳項目(
account.move.line)をフィルタリングします。数式フィールドに、特定のパートナーカテゴリの免税打刻データを分離するために角括弧で始まる有効なドメインを入力します。
または、次の方法もあります:
外部値を計算エンジンとして選択します。Odooはこれを使用して、手動の上書きまたは過去の繰越値をログに記録します。
数式フィールドに、`sum`(複数期間レポートですべての手動値を合計する)または`most_recent`(最新の値のみを表示する)のいずれかを入力します。
サブ数式フィールドに、
editableと入力してライブレポートに編集アイコンを表示し、ユーザが値を手動で変更できるようにします。さらに、rounding=xと入力して数値を丸めることができます。
または、次の方法もあります:
カスタムPython関数を計算エンジンとして選択します。Odooはこれを実行エンジンとして使用し、ルールに累進ブラケット、ループ、または多段階しきい値が含まれる場合にバックエンドコーディングを通じて特定の計算を実行します。
数式フィールドに、カスタムローカライゼーションモジュールで定義されたPythonメソッドの正確な技術名を入力します。
必要に応じてこのプロセスを繰り返します。次に、保存して閉じるをクリックします。
式のオプションタブで、繰越先フィールドに数式を入力して、常に残高を繰り越すか、付与数が負の場合にのみ繰り越すようにします。この機能を使用しない場合は、このフィールドを空白のままにします。
Example
if_below(EUR(0))税設定¶
次に、に移動し、新規をクリックして、カスタム税レポート用の新しい税を作成および設定します。販売および購入の税を作成し、以前に作成した一致する税グリッドを使用して、すべての税の税グリッドに入力します。最後に、各税について税の未払勘定と税の未収勘定の両方を指定してください。
Example
締め仕訳¶
税を締めるには、カスタム税レポートで使用される各税に税グループを指定する必要があります。これを行うには、会計アプリを開き、に移動し、税グループが必要な税を開き、詳細オプションタブをクリックして、税グループフィールドでグループを選択します。割り当てたら、(右矢印)アイコンをクリックし、税の未払勘定と税の未収勘定の両方を設定します。
ちなみに
すべてが設定されたら、そのレポート固有の税を使用して請求書、仕入先請求書、クレジットメモを作成し、レポートをテストしてください。最後に、締め仕訳自体をテストします。
税の締め仕訳で特定のアカウントを非表示にする場合は、に移動し、税を選択して、(設定調整)アイコンをクリックします。そこから、税の締め仕訳ボックスをチェックして、公開設定を調整します。
参照