Skip to content

Commit

Permalink
[IMP] sale_input_barcode: add settings for sol management
Browse files Browse the repository at this point in the history
  • Loading branch information
SylweKra committed Jan 23, 2025
1 parent 8938809 commit 6a04e00
Show file tree
Hide file tree
Showing 8 changed files with 68 additions and 8 deletions.
6 changes: 6 additions & 0 deletions sale_input_barcode/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,12 @@ a new line with that product will be added to the Sales Order.
If a product is already inside the sale order lines,
the quantity will be updated.

To disable the feature that increases the quantity of a product for multiple barcode scans of the same product:
#. Go to the Sales Settings section.
#. Locate the option labeled "Increase quantity instead of creating a new line".
#. Check the box to activate this option and save to apply the changes.
Once disabled this option for each scan will be created a new line.

Bug Tracker
===========

Expand Down
4 changes: 1 addition & 3 deletions sale_input_barcode/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
"sale_management",
"barcode_action",
],
"data": [
"views/sale.xml",
],
"data": ["views/sale.xml", "views/sale_input_settings_view.xml"],
"demo": [],
}
1 change: 1 addition & 0 deletions sale_input_barcode/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
from . import product_barcode_line_mixin
from . import sale_order
from . import res_config_settings
12 changes: 12 additions & 0 deletions sale_input_barcode/models/res_config_settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from odoo import fields, models


class ResConfigSettings(models.TransientModel):

_inherit = "res.config.settings"

sale_barcode_update_existing_line = fields.Boolean(
string="Increase quantity instead of creating a new line",
config_parameter="sale_input_barcode.sale_barcode_update_existing_line",
default=False,
)
11 changes: 10 additions & 1 deletion sale_input_barcode/models/sale_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,16 @@ def process_barcode(self, barcode):
product_order_line = self.order_line.filtered(
lambda x: x.product_id.id == line_vals.get("product_id")
)[:1]
if product_order_line:

sale_barcode_update_existing_line = (
self.env["ir.config_parameter"]
.sudo()
.get_param(
"sale_input_barcode.sale_barcode_update_existing_line",
)
)

if product_order_line and sale_barcode_update_existing_line:
product_order_line.product_uom_qty += 1

Check warning on line 44 in sale_input_barcode/models/sale_order.py

View check run for this annotation

Codecov / codecov/patch

sale_input_barcode/models/sale_order.py#L44

Added line #L44 was not covered by tests
else:
product_order_line = self.env["sale.order.line"].new(line_vals)
Expand Down
6 changes: 6 additions & 0 deletions sale_input_barcode/readme/USAGE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,9 @@ a new line with that product will be added to the Sales Order.

If a product is already inside the sale order lines,
the quantity will be updated.

To disable the feature that increases the quantity of a product for multiple barcode scans of the same product:
#. Go to the Sales Settings section.
#. Locate the option labeled "Increase quantity instead of creating a new line".
#. Check the box to activate this option and save to apply the changes.
Once disabled this option for each scan will be created a new line.
16 changes: 12 additions & 4 deletions sale_input_barcode/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@

/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
Expand Down Expand Up @@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }

pre.code .ln { color: grey; } /* line numbers */
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
Expand All @@ -300,7 +301,7 @@
span.pre {
white-space: pre }

span.problematic {
span.problematic, pre.problematic {
color: red }

span.section-subtitle {
Expand Down Expand Up @@ -402,6 +403,11 @@ <h1><a class="toc-backref" href="#toc-entry-2">Usage</a></h1>
a new line with that product will be added to the Sales Order.</p>
<p>If a product is already inside the sale order lines,
the quantity will be updated.</p>
<p>To disable the feature that increases the quantity of a product for multiple barcode scans of the same product:
#. Go to the Sales Settings section.
#. Locate the option labeled “Increase quantity instead of creating a new line”.
#. Check the box to activate this option and save to apply the changes.
Once disabled this option for each scan will be created a new line.</p>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h1>
Expand All @@ -422,7 +428,9 @@ <h2><a class="toc-backref" href="#toc-entry-5">Authors</a></h2>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-6">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
Expand Down
20 changes: 20 additions & 0 deletions sale_input_barcode/views/sale_input_settings_view.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<odoo>
<record id="view_res_config_settings_sale_input_barcode" model="ir.ui.view">
<field name="name">res.config.settings.sale.input.barcode</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="sale.res_config_settings_view_form" />
<field name="arch" type="xml">
<xpath expr="//div[@id='no_edit_order']" position="inside">
<div class="o_setting_left_pane">
<field name="sale_barcode_update_existing_line" />
</div>
<div class="o_setting_right_pane">
<label for="sale_barcode_update_existing_line" />
<div class="text-muted">
Instead of creating a new sale order line it increases the quantity for each barcode scan
</div>
</div>
</xpath>
</field>
</record>
</odoo>

0 comments on commit 6a04e00

Please sign in to comment.