[130] nfu_ecommerce: advanced credit handling
* [IMP] apply pre-commits and small fixes * [imp] nfu_ecommerce: add avoid_depts * [IMP] nfu_ecommerce: use warning level in checkout * [IMP] nfu_ecommerce: add translation --------- Co-authored-by: Niels Göttsch <ng@ife.de>
This commit is contained in:
parent
1c89538b2d
commit
fee5016550
14 changed files with 196 additions and 69 deletions
|
|
@ -22,10 +22,17 @@ NFU eCommerce
|
||||||
|
|
||||||
|badge1| |badge2| |badge3|
|
|badge1| |badge2| |badge3|
|
||||||
|
|
||||||
This module adds a maximum order quantity field to Website Sale Orders. It also adds
|
This module adds
|
||||||
an ordered qantitiy field to store the original ordered quantity in case a manager
|
|
||||||
adjustes the uom quantitiy. In webshop checkout it adds the customer balance to before
|
- a maximum order quantity field to Website Sale Orders
|
||||||
and after the current order.
|
- ordered qantitiy field to store the original ordered quantity in case a manager
|
||||||
|
adjustes the uom quantitiy
|
||||||
|
|
||||||
|
In webshop checkout it adds
|
||||||
|
|
||||||
|
- the customer balance to before and after the current order
|
||||||
|
- a configuration to warn when credit is low
|
||||||
|
- a possibility to only use credit for ordering
|
||||||
|
|
||||||
**Table of contents**
|
**Table of contents**
|
||||||
|
|
||||||
|
|
@ -44,6 +51,7 @@ Changelog
|
||||||
:1.3.0: Adapt new Open Packages format and add indicators
|
:1.3.0: Adapt new Open Packages format and add indicators
|
||||||
:1.3.1: Remove Max Qty from first page
|
:1.3.1: Remove Max Qty from first page
|
||||||
:1.3.2: Add decimal to ribbon
|
:1.3.2: Add decimal to ribbon
|
||||||
|
:1.4.0: Add credit warning and avoid debts option
|
||||||
|
|
||||||
Bug Tracker
|
Bug Tracker
|
||||||
===========
|
===========
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
"author": "BAKEUP",
|
"author": "BAKEUP",
|
||||||
"website": "https://www.bakeup.org",
|
"website": "https://www.bakeup.org",
|
||||||
"category": "website",
|
"category": "website",
|
||||||
"version": "16.0.1.3.2",
|
"version": "16.0.1.4.0",
|
||||||
"depends": [
|
"depends": [
|
||||||
"sale_product_configurator",
|
"sale_product_configurator",
|
||||||
"website_sale",
|
"website_sale",
|
||||||
|
|
@ -12,11 +12,14 @@
|
||||||
"website_decimal_quantity",
|
"website_decimal_quantity",
|
||||||
"nfu_product_bnn_attributes",
|
"nfu_product_bnn_attributes",
|
||||||
],
|
],
|
||||||
"data": ["views/product_template_views.xml", "views/templates.xml"],
|
"data": [
|
||||||
|
"views/res_config_settings_views.xml",
|
||||||
|
"views/product_template_views.xml",
|
||||||
|
"views/templates.xml",
|
||||||
|
],
|
||||||
"assets": {
|
"assets": {
|
||||||
"web.assets_frontend": [
|
"web.assets_frontend": [
|
||||||
"nfu_ecommerce/static/src/js/website_sale.js",
|
"nfu_ecommerce/static/src/js/*.js",
|
||||||
"nfu_ecommerce/static/src/js/sale_product_configurator.js",
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"license": "LGPL-3",
|
"license": "LGPL-3",
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Odoo Server 16.0\n"
|
"Project-Id-Version: Odoo Server 16.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-10-04 19:54+0000\n"
|
"POT-Creation-Date: 2025-07-24 18:34+0000\n"
|
||||||
"PO-Revision-Date: 2024-10-04 19:54+0000\n"
|
"PO-Revision-Date: 2025-07-24 18:34+0000\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
|
@ -22,6 +22,7 @@ msgstr "<span>Max Menge</span>"
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
#. module: nfu_ecommerce
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_lines_packaging
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_lines_packaging
|
||||||
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.product_max_quantity_config
|
||||||
msgid "Add one"
|
msgid "Add one"
|
||||||
msgstr "Einen hinzufügen"
|
msgstr "Einen hinzufügen"
|
||||||
|
|
||||||
|
|
@ -31,6 +32,12 @@ msgstr "Einen hinzufügen"
|
||||||
msgid "All Products"
|
msgid "All Products"
|
||||||
msgstr "Alle Produkte"
|
msgstr "Alle Produkte"
|
||||||
|
|
||||||
|
#. module: nfu_ecommerce
|
||||||
|
#: model:ir.model.fields,field_description:nfu_ecommerce.field_res_config_settings__website_avoid_depts
|
||||||
|
#: model:ir.model.fields,field_description:nfu_ecommerce.field_website__avoid_depts
|
||||||
|
msgid "Avoid depths"
|
||||||
|
msgstr "Schulden verhindern"
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
#. module: nfu_ecommerce
|
||||||
#: model:ir.model.fields,field_description:nfu_ecommerce.field_sale_order__balance
|
#: model:ir.model.fields,field_description:nfu_ecommerce.field_sale_order__balance
|
||||||
msgid "Balance"
|
msgid "Balance"
|
||||||
|
|
@ -42,10 +49,22 @@ msgid "Balance:"
|
||||||
msgstr "Aktuelles Guthaben:"
|
msgstr "Aktuelles Guthaben:"
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
#. module: nfu_ecommerce
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_lines_packaging
|
#: model:ir.model,name:nfu_ecommerce.model_res_config_settings
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_summary_packaging
|
msgid "Config Settings"
|
||||||
msgid "Max Ordered Quantity:"
|
msgstr "Konfigurationseinstellungen"
|
||||||
msgstr "Max Menge"
|
|
||||||
|
#. module: nfu_ecommerce
|
||||||
|
#: model:ir.model.fields,field_description:nfu_ecommerce.field_res_config_settings__website_credit_warning_level
|
||||||
|
#: model:ir.model.fields,field_description:nfu_ecommerce.field_website__credit_warning_level
|
||||||
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.res_config_settings_view_form
|
||||||
|
msgid "Credit Warning"
|
||||||
|
msgstr "Guthabenwarnung"
|
||||||
|
|
||||||
|
#. module: nfu_ecommerce
|
||||||
|
#: model:ir.model.fields,field_description:nfu_ecommerce.field_product_product__is_published
|
||||||
|
#: model:ir.model.fields,field_description:nfu_ecommerce.field_product_template__is_published
|
||||||
|
msgid "Is Published"
|
||||||
|
msgstr "Ist veröffentlicht"
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
#. module: nfu_ecommerce
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_summary_packaging
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_summary_packaging
|
||||||
|
|
@ -57,17 +76,6 @@ msgstr "Max Menge:"
|
||||||
msgid "New balance:"
|
msgid "New balance:"
|
||||||
msgstr "Neues Guthaben:"
|
msgstr "Neues Guthaben:"
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_lines_packaging
|
|
||||||
msgid "No open package available"
|
|
||||||
msgstr "Keine offenen Gebinde"
|
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_lines_packaging
|
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_summary_packaging
|
|
||||||
msgid "Open Package:"
|
|
||||||
msgstr "Offenes Gebinde:"
|
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
#. module: nfu_ecommerce
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.o_wsale_offcanvas
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.o_wsale_offcanvas
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.products_open_packaging
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.products_open_packaging
|
||||||
|
|
@ -75,9 +83,14 @@ msgid "Open Packagings"
|
||||||
msgstr "Offene Gebinde"
|
msgstr "Offene Gebinde"
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
#. module: nfu_ecommerce
|
||||||
#: model:ir.model.fields,field_description:nfu_ecommerce.field_sale_order_line__open_qty
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_lines_packaging
|
||||||
msgid "Open Qty"
|
msgid "Packaging Size:"
|
||||||
msgstr "Offene Menge"
|
msgstr "Verpackungsgröße:"
|
||||||
|
|
||||||
|
#. module: nfu_ecommerce
|
||||||
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.res_config_settings_view_form
|
||||||
|
msgid "Prevent Customers from Ordering more than their Credit."
|
||||||
|
msgstr "Verhindere das Kunden mehr Kaufen als mit ihrem Guthaben möglich"
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
#. module: nfu_ecommerce
|
||||||
#: model:ir.model,name:nfu_ecommerce.model_product_template
|
#: model:ir.model,name:nfu_ecommerce.model_product_template
|
||||||
|
|
@ -91,19 +104,20 @@ msgstr "Veröffentlichen"
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
#. module: nfu_ecommerce
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_lines_packaging
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_lines_packaging
|
||||||
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.product_max_quantity_config
|
||||||
msgid "Remove one"
|
msgid "Remove one"
|
||||||
msgstr "Eins entfernen"
|
msgstr "Eins entfernen"
|
||||||
|
|
||||||
|
#. module: nfu_ecommerce
|
||||||
|
#: model:ir.model,name:nfu_ecommerce.model_sale_order_batch_product
|
||||||
|
msgid "Sale Order Batch Product"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
#. module: nfu_ecommerce
|
||||||
#: model:ir.model,name:nfu_ecommerce.model_sale_order
|
#: model:ir.model,name:nfu_ecommerce.model_sale_order
|
||||||
msgid "Sales Order"
|
msgid "Sales Order"
|
||||||
msgstr "Verkaufsauftrag"
|
msgstr "Verkaufsauftrag"
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
|
||||||
#: model:ir.model,name:nfu_ecommerce.model_sale_order_line
|
|
||||||
msgid "Sales Order Line"
|
|
||||||
msgstr "Verkaufsauftragszeile"
|
|
||||||
|
|
||||||
#. module: nfu_ecommerce
|
#. module: nfu_ecommerce
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.product_template_tree_view
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.product_template_tree_view
|
||||||
msgid "Unpublish on Website"
|
msgid "Unpublish on Website"
|
||||||
|
|
@ -118,3 +132,25 @@ msgstr "Zukünftiges Guthaben"
|
||||||
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_lines_packaging
|
#: model_terms:ir.ui.view,arch_db:nfu_ecommerce.cart_lines_packaging
|
||||||
msgid "Warning"
|
msgid "Warning"
|
||||||
msgstr "Warnung"
|
msgstr "Warnung"
|
||||||
|
|
||||||
|
#. module: nfu_ecommerce
|
||||||
|
#: model:ir.model,name:nfu_ecommerce.model_website
|
||||||
|
msgid "Website"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: nfu_ecommerce
|
||||||
|
#: model:ir.model.fields,help:nfu_ecommerce.field_res_config_settings__website_credit_warning_level
|
||||||
|
#: model:ir.model.fields,help:nfu_ecommerce.field_website__credit_warning_level
|
||||||
|
msgid ""
|
||||||
|
"When the credit of a customer is lower than the warning level the credit is "
|
||||||
|
"shown in red on the website."
|
||||||
|
msgstr ""
|
||||||
|
"Wenn das Guthaben niedriger ist als die Guthabenswarnung wird das Guthaben "
|
||||||
|
"auf der website in rot angezeigt."
|
||||||
|
|
||||||
|
#. module: nfu_ecommerce
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/nfu_ecommerce/models/sale_order.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "You don't have enough credit."
|
||||||
|
msgstr "Du hast nicht genug Guthaben."
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
from . import product_template
|
from . import product_template
|
||||||
|
from . import res_config_settings
|
||||||
from . import sale_order
|
from . import sale_order
|
||||||
from . import sale_order_batch_product
|
from . import sale_order_batch_product
|
||||||
|
from . import website
|
||||||
|
|
|
||||||
12
nfu_ecommerce/models/res_config_settings.py
Normal file
12
nfu_ecommerce/models/res_config_settings.py
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
from odoo import fields, models
|
||||||
|
|
||||||
|
|
||||||
|
class ResConfigSettings(models.TransientModel):
|
||||||
|
_inherit = "res.config.settings"
|
||||||
|
|
||||||
|
website_credit_warning_level = fields.Monetary(
|
||||||
|
related="website_id.credit_warning_level", readonly=False
|
||||||
|
)
|
||||||
|
website_avoid_depts = fields.Boolean(
|
||||||
|
related="website_id.avoid_depts", readonly=False
|
||||||
|
)
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
from odoo import api, fields, models
|
from odoo import _, api, fields, models
|
||||||
|
from odoo.exceptions import ValidationError
|
||||||
|
|
||||||
|
|
||||||
class SaleOrder(models.Model):
|
class SaleOrder(models.Model):
|
||||||
|
|
@ -18,6 +19,14 @@ class SaleOrder(models.Model):
|
||||||
order.amount_total / order.currency_rate
|
order.amount_total / order.currency_rate
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@api.constrains("amount_total")
|
||||||
|
def _check_amount_total(self):
|
||||||
|
for order in self:
|
||||||
|
if order.state != "draft" or not order.website_id:
|
||||||
|
continue
|
||||||
|
if order.website_id.avoid_depts and order.updated_balance < 0:
|
||||||
|
raise ValidationError(_("You don't have enough credit."))
|
||||||
|
|
||||||
def _prepare_order_line_values(
|
def _prepare_order_line_values(
|
||||||
self,
|
self,
|
||||||
product_id,
|
product_id,
|
||||||
|
|
|
||||||
12
nfu_ecommerce/models/website.py
Normal file
12
nfu_ecommerce/models/website.py
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
from odoo import fields, models
|
||||||
|
|
||||||
|
|
||||||
|
class Website(models.Model):
|
||||||
|
_inherit = "website"
|
||||||
|
|
||||||
|
credit_warning_level = fields.Monetary(
|
||||||
|
string="Credit Warning",
|
||||||
|
readonly=False,
|
||||||
|
help="When the credit of a customer is lower than the warning level the credit is shown in red on the website.",
|
||||||
|
)
|
||||||
|
avoid_depts = fields.Boolean(string="Avoid depths")
|
||||||
|
|
@ -1,4 +1,11 @@
|
||||||
This module adds a maximum order quantity field to Website Sale Orders. It also adds
|
This module adds
|
||||||
an ordered qantitiy field to store the original ordered quantity in case a manager
|
|
||||||
adjustes the uom quantitiy. In webshop checkout it adds the customer balance to before
|
- a maximum order quantity field to Website Sale Orders
|
||||||
and after the current order.
|
- ordered qantitiy field to store the original ordered quantity in case a manager
|
||||||
|
adjustes the uom quantitiy
|
||||||
|
|
||||||
|
In webshop checkout it adds
|
||||||
|
|
||||||
|
- the customer balance to before and after the current order
|
||||||
|
- a configuration to warn when credit is low
|
||||||
|
- a possibility to only use credit for ordering
|
||||||
|
|
@ -7,3 +7,4 @@
|
||||||
:1.3.0: Adapt new Open Packages format and add indicators
|
:1.3.0: Adapt new Open Packages format and add indicators
|
||||||
:1.3.1: Remove Max Qty from first page
|
:1.3.1: Remove Max Qty from first page
|
||||||
:1.3.2: Add decimal to ribbon
|
:1.3.2: Add decimal to ribbon
|
||||||
|
:1.4.0: Add credit warning and avoid debts option
|
||||||
|
|
@ -370,10 +370,18 @@ ul.auto-toc {
|
||||||
!! source digest: sha256:4dfaea54e4d01502b433eb5c0dcca409a5fbe2c3f175e29382a19230343183c9
|
!! source digest: sha256:4dfaea54e4d01502b433eb5c0dcca409a5fbe2c3f175e29382a19230343183c9
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||||
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/bruecksen/nfu/tree/16.0/nfu_ecommerce"><img alt="bruecksen/nfu" src="https://img.shields.io/badge/github-bruecksen%2Fnfu-lightgray.png?logo=github" /></a></p>
|
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/bruecksen/nfu/tree/16.0/nfu_ecommerce"><img alt="bruecksen/nfu" src="https://img.shields.io/badge/github-bruecksen%2Fnfu-lightgray.png?logo=github" /></a></p>
|
||||||
<p>This module adds a maximum order quantity field to Website Sale Orders. It also adds
|
<p>This module adds</p>
|
||||||
an ordered qantitiy field to store the original ordered quantity in case a manager
|
<ul class="simple">
|
||||||
adjustes the uom quantitiy. In webshop checkout it adds the customer balance to before
|
<li>a maximum order quantity field to Website Sale Orders</li>
|
||||||
and after the current order.</p>
|
<li>ordered qantitiy field to store the original ordered quantity in case a manager
|
||||||
|
adjustes the uom quantitiy</li>
|
||||||
|
</ul>
|
||||||
|
<p>In webshop checkout it adds</p>
|
||||||
|
<ul class="simple">
|
||||||
|
<li>the customer balance to before and after the current order</li>
|
||||||
|
<li>a configuration to warn when credit is low</li>
|
||||||
|
<li>a possibility to only use credit for ordering</li>
|
||||||
|
</ul>
|
||||||
<p><strong>Table of contents</strong></p>
|
<p><strong>Table of contents</strong></p>
|
||||||
<div class="contents local topic" id="contents">
|
<div class="contents local topic" id="contents">
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
|
|
@ -411,6 +419,8 @@ and after the current order.</p>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="field"><th class="field-name">1.3.2:</th><td class="field-body">Add decimal to ribbon</td>
|
<tr class="field"><th class="field-name">1.3.2:</th><td class="field-body">Add decimal to ribbon</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr class="field"><th class="field-name">1.4.0:</th><td class="field-body">Add credit warning and avoid debts option</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
37
nfu_ecommerce/views/res_config_settings_views.xml
Normal file
37
nfu_ecommerce/views/res_config_settings_views.xml
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<record id="res_config_settings_view_form" model="ir.ui.view">
|
||||||
|
<field name="name">res.config.settings.view.form.inherit.nfu.eccommerce</field>
|
||||||
|
<field name="model">res.config.settings</field>
|
||||||
|
<field name="inherit_id" ref="website_sale.res_config_settings_view_form"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<div id="website_shop_checkout" position="inside">
|
||||||
|
<div class="col-12 col-lg-6 o_setting_box">
|
||||||
|
<div class="o_setting_right_pane">
|
||||||
|
<div class="content-group">
|
||||||
|
<div class="row mt16">
|
||||||
|
<label
|
||||||
|
class="o_light_label col-lg-3"
|
||||||
|
string="Credit Warning"
|
||||||
|
for="website_credit_warning_level"
|
||||||
|
/>
|
||||||
|
<field name="website_credit_warning_level"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-lg-6 o_setting_box">
|
||||||
|
<div class="o_setting_left_pane">
|
||||||
|
<field name="website_avoid_depts"/>
|
||||||
|
</div>
|
||||||
|
<div class="o_setting_right_pane">
|
||||||
|
<label for="website_avoid_depts"/>
|
||||||
|
<div class="text-muted">
|
||||||
|
Prevent Customers from Ordering more than their Credit.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
</odoo>
|
||||||
|
|
@ -264,7 +264,7 @@
|
||||||
<td class="text-xl-end border-0">
|
<td class="text-xl-end border-0">
|
||||||
<span
|
<span
|
||||||
t-field="website_sale_order.balance"
|
t-field="website_sale_order.balance"
|
||||||
class="monetary_field"
|
t-att-class="'monetary_field' + (' text-danger' if website_sale_order.balance < website.credit_warning_level else '')"
|
||||||
style="white-space: nowrap;"
|
style="white-space: nowrap;"
|
||||||
t-options="{'widget': 'monetary', 'display_currency': website_sale_order.currency_id}"
|
t-options="{'widget': 'monetary', 'display_currency': website_sale_order.currency_id}"
|
||||||
/>
|
/>
|
||||||
|
|
@ -275,22 +275,12 @@
|
||||||
<tr id="updated_balance">
|
<tr id="updated_balance">
|
||||||
<td class="text-end border-0">New balance:</td>
|
<td class="text-end border-0">New balance:</td>
|
||||||
<td class="text-xl-end border-0">
|
<td class="text-xl-end border-0">
|
||||||
<t t-if="website_sale_order.updated_balance < 0">
|
<span
|
||||||
<span
|
t-field="website_sale_order.updated_balance"
|
||||||
t-field="website_sale_order.updated_balance"
|
t-att-class="'monetary_field' + (' text-danger' if website_sale_order.updated_balance < website.credit_warning_level else '')"
|
||||||
class="monetary_field text-danger"
|
style="white-space: nowrap;"
|
||||||
style="white-space: nowrap;"
|
t-options="{'widget': 'monetary', 'display_currency': website_sale_order.currency_id}"
|
||||||
t-options="{'widget': 'monetary', 'display_currency': website_sale_order.currency_id}"
|
/>
|
||||||
/>
|
|
||||||
</t>
|
|
||||||
<t t-else="">
|
|
||||||
<span
|
|
||||||
t-field="website_sale_order.updated_balance"
|
|
||||||
t-att-class="monetary_field"
|
|
||||||
style="white-space: nowrap;"
|
|
||||||
t-options="{'widget': 'monetary', 'display_currency': website_sale_order.currency_id}"
|
|
||||||
/>
|
|
||||||
</t>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,9 @@ Website Decimal Quantity
|
||||||
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
|
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
|
||||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||||
:alt: License: AGPL-3
|
:alt: License: AGPL-3
|
||||||
.. |badge3| image:: https://img.shields.io/badge/github-bruecksen%2Fife_nfu-lightgray.png?logo=github
|
.. |badge3| image:: https://img.shields.io/badge/github-bruecksen%2Fnfu-lightgray.png?logo=github
|
||||||
:target: https://github.com/bruecksen/ife_nfu/tree/16.0/website_decimal_quantity
|
:target: https://github.com/bruecksen/nfu/tree/16.0/website_decimal_quantity
|
||||||
:alt: bruecksen/ife_nfu
|
:alt: bruecksen/nfu
|
||||||
|
|
||||||
|badge1| |badge2| |badge3|
|
|badge1| |badge2| |badge3|
|
||||||
|
|
||||||
|
|
@ -39,10 +39,10 @@ Changelog
|
||||||
Bug Tracker
|
Bug Tracker
|
||||||
===========
|
===========
|
||||||
|
|
||||||
Bugs are tracked on `GitHub Issues <https://github.com/bruecksen/ife_nfu/issues>`_.
|
Bugs are tracked on `GitHub Issues <https://github.com/bruecksen/nfu/issues>`_.
|
||||||
In case of trouble, please check there if your issue has already been reported.
|
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
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
||||||
`feedback <https://github.com/bruecksen/ife_nfu/issues/new?body=module:%20website_decimal_quantity%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
`feedback <https://github.com/bruecksen/nfu/issues/new?body=module:%20website_decimal_quantity%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||||
|
|
||||||
Do not contact contributors directly about support or help with technical issues.
|
Do not contact contributors directly about support or help with technical issues.
|
||||||
|
|
||||||
|
|
@ -64,6 +64,6 @@ Contributors
|
||||||
Maintainers
|
Maintainers
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
|
|
||||||
This module is part of the `bruecksen/ife_nfu <https://github.com/bruecksen/ife_nfu/tree/16.0/website_decimal_quantity>`_ project on GitHub.
|
This module is part of the `bruecksen/nfu <https://github.com/bruecksen/nfu/tree/16.0/website_decimal_quantity>`_ project on GitHub.
|
||||||
|
|
||||||
You are welcome to contribute.
|
You are welcome to contribute.
|
||||||
|
|
|
||||||
|
|
@ -89,12 +89,12 @@ class SaleOrder(models.Model):
|
||||||
set_qty = 0
|
set_qty = 0
|
||||||
quantity = 0
|
quantity = 0
|
||||||
if set_qty:
|
if set_qty:
|
||||||
quantity = set_qty
|
quantity = int(set_qty)
|
||||||
elif add_qty is not None:
|
elif add_qty is not None:
|
||||||
if order_line:
|
if order_line:
|
||||||
quantity = order_line.product_uom_qty + (add_qty or 0)
|
quantity = order_line.product_uom_qty + (int(add_qty) or 0)
|
||||||
else:
|
else:
|
||||||
quantity = add_qty or 0
|
quantity = int(add_qty) or 0
|
||||||
if quantity > 0:
|
if quantity > 0:
|
||||||
quantity, warning = self._verify_updated_quantity(
|
quantity, warning = self._verify_updated_quantity(
|
||||||
order_line, product_id, quantity, **kwargs
|
order_line, product_id, quantity, **kwargs
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue