From ea14289e8091a6564f6b8fa6bacc82ed2078054b Mon Sep 17 00:00:00 2001 From: Morita Shinnosuke Date: Mon, 29 Jun 2026 04:37:30 +0000 Subject: [PATCH] [ADD] partner_billing_policy --- partner_billing_policy/README.rst | 61 +++ partner_billing_policy/__init__.py | 1 + partner_billing_policy/__manifest__.py | 17 + partner_billing_policy/i18n/ja.po | 91 ++++ partner_billing_policy/models/__init__.py | 1 + partner_billing_policy/models/res_partner.py | 33 ++ partner_billing_policy/pyproject.toml | 3 + partner_billing_policy/readme/DESCRIPTION.md | 2 + .../static/description/index.html | 414 ++++++++++++++++++ .../views/res_partner_views.xml | 26 ++ 10 files changed, 649 insertions(+) create mode 100644 partner_billing_policy/README.rst create mode 100644 partner_billing_policy/__init__.py create mode 100644 partner_billing_policy/__manifest__.py create mode 100644 partner_billing_policy/i18n/ja.po create mode 100644 partner_billing_policy/models/__init__.py create mode 100644 partner_billing_policy/models/res_partner.py create mode 100644 partner_billing_policy/pyproject.toml create mode 100644 partner_billing_policy/readme/DESCRIPTION.md create mode 100644 partner_billing_policy/static/description/index.html create mode 100644 partner_billing_policy/views/res_partner_views.xml diff --git a/partner_billing_policy/README.rst b/partner_billing_policy/README.rst new file mode 100644 index 0000000..2b98ffb --- /dev/null +++ b/partner_billing_policy/README.rst @@ -0,0 +1,61 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +====================== +Partner Billing Policy +====================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:a50cd47aef077b347f9201bc75230af1ae5473d0389d36f88dadc6dcd4e82e38 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-qrtl%2FOCJ Custom-lightgray.png?logo=github + :target: https://github.com/qrtl/OCJ Custom/tree/19.0/partner_billing_policy + :alt: qrtl/OCJ Custom + +|badge1| |badge2| |badge3| + +This module adds customer-level billing-policy default fields to +partners. The values are intended to be read by billing logic as +defaults. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Quartile + +Maintainers +----------- + +This module is part of the `qrtl/OCJ Custom `_ project on GitHub. + +You are welcome to contribute. diff --git a/partner_billing_policy/__init__.py b/partner_billing_policy/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/partner_billing_policy/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/partner_billing_policy/__manifest__.py b/partner_billing_policy/__manifest__.py new file mode 100644 index 0000000..30dcd76 --- /dev/null +++ b/partner_billing_policy/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2026 Quartile (https://www.quartile.co) +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). +{ + "name": "Partner Billing Policy", + "version": "19.0.1.0.0", + "category": "Accounting/Accounting", + "website": "https://www.quartile.co", + "author": "Quartile", + "maintainer": "Quartile", + "license": "LGPL-3", + "summary": "Customer-level billing-policy defaults on partners", + "installable": True, + "depends": ["account"], + "data": [ + "views/res_partner_views.xml", + ], +} diff --git a/partner_billing_policy/i18n/ja.po b/partner_billing_policy/i18n/ja.po new file mode 100644 index 0000000..52feaff --- /dev/null +++ b/partner_billing_policy/i18n/ja.po @@ -0,0 +1,91 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_billing_policy +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 19.0+e\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: partner_billing_policy +#: model:ir.model.fields.selection,name:partner_billing_policy.selection__res_partner__revenue_timing__acceptance_date +msgid "Acceptance Date" +msgstr "検収日" + +#. module: partner_billing_policy +#: model:ir.model.fields,field_description:partner_billing_policy.field_res_partner__bill_on_loss +msgid "Bill on Loss" +msgstr "紛失時請求" + +#. module: partner_billing_policy +#: model_terms:ir.ui.view,arch_db:partner_billing_policy.view_partner_form +msgid "Billing Policy" +msgstr "請求方針" + +#. module: partner_billing_policy +#: model:ir.model.fields,field_description:partner_billing_policy.field_res_partner__billing_scope +msgid "Billing Scope" +msgstr "請求範囲" + +#. module: partner_billing_policy +#: model:ir.model.fields.selection,name:partner_billing_policy.selection__res_partner__revenue_timing__delivery_date +msgid "Delivery Date" +msgstr "納品日" + +#. module: partner_billing_policy +#: model:ir.model.fields.selection,name:partner_billing_policy.selection__res_partner__billing_scope__full +msgid "Full Billing" +msgstr "全請求" + +#. module: partner_billing_policy +#: model:ir.model.fields.selection,name:partner_billing_policy.selection__res_partner__revenue_timing__invoice_date +msgid "Invoice Date" +msgstr "請求日" + +#. module: partner_billing_policy +#: model:ir.model.fields.selection,name:partner_billing_policy.selection__res_partner__billing_scope__partial +msgid "Partial Billing" +msgstr "部分請求" + +#. module: partner_billing_policy +#: model:ir.model.fields.selection,name:partner_billing_policy.selection__res_partner__revenue_timing__period_end +msgid "Period End" +msgstr "期末" + +#. module: partner_billing_policy +#: model:ir.model.fields,field_description:partner_billing_policy.field_res_partner__prorated_billing +msgid "Prorated Billing" +msgstr "日割り請求" + +#. module: partner_billing_policy +#: model:ir.model.fields,field_description:partner_billing_policy.field_res_partner__revenue_timing +msgid "Revenue Recognition Timing" +msgstr "売上計上タイミング" + +#. module: partner_billing_policy +#: model:ir.model.fields,help:partner_billing_policy.field_res_partner__bill_on_loss +msgid "Whether lost goods may be billed to the customer." +msgstr "紛失した物品を顧客に請求してよいか。" + +#. module: partner_billing_policy +#: model:ir.model.fields,help:partner_billing_policy.field_res_partner__billing_scope +msgid "Whether the whole engagement or only part of it is billed." +msgstr "全体を請求するか、一部のみを請求するか。" + +#. module: partner_billing_policy +#: model:ir.model.fields,help:partner_billing_policy.field_res_partner__prorated_billing +msgid "" +"Whether amounts are prorated by usage days on mid-period start/cancellation." +msgstr "期中の開始・解約時に利用日数で日割り計算するか。" + +#. module: partner_billing_policy +#: model:ir.model.fields,help:partner_billing_policy.field_res_partner__revenue_timing +msgid "Point in time at which revenue is recognized." +msgstr "売上を計上する時点。" diff --git a/partner_billing_policy/models/__init__.py b/partner_billing_policy/models/__init__.py new file mode 100644 index 0000000..91fed54 --- /dev/null +++ b/partner_billing_policy/models/__init__.py @@ -0,0 +1 @@ +from . import res_partner diff --git a/partner_billing_policy/models/res_partner.py b/partner_billing_policy/models/res_partner.py new file mode 100644 index 0000000..c2a71e5 --- /dev/null +++ b/partner_billing_policy/models/res_partner.py @@ -0,0 +1,33 @@ +# Copyright 2026 Quartile (https://www.quartile.co) +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from odoo import fields, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + billing_scope = fields.Selection( + selection=[ + ("full", "Full Billing"), + ("partial", "Partial Billing"), + ], + help="Whether the whole engagement or only part of it is billed.", + ) + prorated_billing = fields.Boolean( + help="Whether amounts are prorated by usage days on mid-period " + "start/cancellation.", + ) + revenue_timing = fields.Selection( + selection=[ + ("invoice_date", "Invoice Date"), + ("delivery_date", "Delivery Date"), + ("acceptance_date", "Acceptance Date"), + ("period_end", "Period End"), + ], + string="Revenue Recognition Timing", + help="Point in time at which revenue is recognized.", + ) + bill_on_loss = fields.Boolean( + help="Whether lost goods may be billed to the customer.", + ) diff --git a/partner_billing_policy/pyproject.toml b/partner_billing_policy/pyproject.toml new file mode 100644 index 0000000..d4d3226 --- /dev/null +++ b/partner_billing_policy/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.api" diff --git a/partner_billing_policy/readme/DESCRIPTION.md b/partner_billing_policy/readme/DESCRIPTION.md new file mode 100644 index 0000000..d155611 --- /dev/null +++ b/partner_billing_policy/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module adds customer-level billing-policy default fields to partners. +The values are intended to be read by billing logic as defaults. diff --git a/partner_billing_policy/static/description/index.html b/partner_billing_policy/static/description/index.html new file mode 100644 index 0000000..338b294 --- /dev/null +++ b/partner_billing_policy/static/description/index.html @@ -0,0 +1,414 @@ + + + + + +README.rst + + + +
+ + +Odoo Community Association +
+

Partner Billing Policy

+ +

Beta License: LGPL-3 qrtl/OCJ Custom

+

This module adds customer-level billing-policy default fields to +partners. The values are intended to be read by billing logic as +defaults.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Quartile
  • +
+
+
+

Maintainers

+

This module is part of the qrtl/OCJ Custom project on GitHub.

+

You are welcome to contribute.

+
+
+
+
+ + diff --git a/partner_billing_policy/views/res_partner_views.xml b/partner_billing_policy/views/res_partner_views.xml new file mode 100644 index 0000000..00cc915 --- /dev/null +++ b/partner_billing_policy/views/res_partner_views.xml @@ -0,0 +1,26 @@ + + + + + res.partner.form.billing.policy + res.partner + + + + + + + + + + + + + + + + + + +