Skip to content

Commit

Permalink
Merge PR #793 into 14.0
Browse files Browse the repository at this point in the history
Signed-off-by rousseldenis
  • Loading branch information
OCA-git-bot committed Sep 20, 2021
2 parents 8f8c057 + 71308b3 commit 5b09cac
Show file tree
Hide file tree
Showing 17 changed files with 746 additions and 0 deletions.
86 changes: 86 additions & 0 deletions delivery_package_default_shipping_weight/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
========================================
Delivery Package Default Shipping Weight
========================================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/stock-logistics-workflow/tree/14.0/delivery_package_default_shipping_weight
:alt: OCA/stock-logistics-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/stock-logistics-workflow-14-0/stock-logistics-workflow-14-0-delivery_package_default_shipping_weight
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/154/14.0
:alt: Try me on Runbot

|badge1| |badge2| |badge3| |badge4| |badge5|

This module allows to define a Default shipping weight on Delivery packages
(`product.packaging`) in order to set automatically the Shipping weight on the
packages (`stock.quant.package`) using this Package type.

**Table of contents**

.. contents::
:local:

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-workflow/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/stock-logistics-workflow/issues/new?body=module:%20delivery_package_default_shipping_weight%0Aversion:%2014.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.

Credits
=======

Authors
~~~~~~~

* Camptocamp

Contributors
~~~~~~~~~~~~

* Akim Juillerat <akim.juillerat@camptocamp.com>

Trobz

* Dung Tran <dungtd@trobz.com>

Other credits
~~~~~~~~~~~~~

The development of this module has been financially supported by:

* Camptocamp

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

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.

This module is part of the `OCA/stock-logistics-workflow <https://github.com/OCA/stock-logistics-workflow/tree/14.0/delivery_package_default_shipping_weight>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions delivery_package_default_shipping_weight/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
16 changes: 16 additions & 0 deletions delivery_package_default_shipping_weight/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright 2020 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
{
"name": "Delivery Package Default Shipping Weight",
"summary": "Set default package shipping weight according to packaging",
"version": "14.0.1.0.0",
"development_status": "Production/Stable",
"category": "Inventory",
"website": "https://github.com/OCA/stock-logistics-workflow",
"author": "Camptocamp, Odoo Community Association (OCA)",
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["delivery"],
"data": ["views/product_packaging.xml"],
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * delivery_package_default_shipping_weight
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: delivery_package_default_shipping_weight
#: model:ir.model.fields,field_description:delivery_package_default_shipping_weight.field_product_packaging__package_default_shipping_weight
msgid "Default shipping weight"
msgstr ""

#. module: delivery_package_default_shipping_weight
#: code:addons/delivery_package_default_shipping_weight/models/product_packaging.py:0
#, python-format
msgid "Default shipping weight must be a positive or null value."
msgstr ""

#. module: delivery_package_default_shipping_weight
#: model:ir.model.fields,help:delivery_package_default_shipping_weight.field_product_packaging__package_default_shipping_weight
msgid ""
"If set, this weight will be used as default value for Shipping weight, when "
"this Package Type is selected on a Package."
msgstr ""

#. module: delivery_package_default_shipping_weight
#: model:ir.model,name:delivery_package_default_shipping_weight.model_stock_quant_package
msgid "Packages"
msgstr ""

#. module: delivery_package_default_shipping_weight
#: model:ir.model,name:delivery_package_default_shipping_weight.model_product_packaging
msgid "Product Packaging"
msgstr ""
2 changes: 2 additions & 0 deletions delivery_package_default_shipping_weight/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import product_packaging
from . import stock_quant_package
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Copyright 2020 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
from odoo.tools import float_compare


class ProductPackaging(models.Model):
_inherit = "product.packaging"

package_default_shipping_weight = fields.Float(
string="Default shipping weight",
digits="Stock Weight",
help="If set, this weight will be used as default value for Shipping "
"weight, when this Package Type is selected on a Package.",
)

@api.constrains("package_default_shipping_weight")
def _check_package_default_shipping_weight(self):
weight_uom = self.env[
"product.template"
]._get_weight_uom_id_from_ir_config_parameter()
for packaging in self:
if (
float_compare(
packaging.package_default_shipping_weight,
0,
precision_rounding=weight_uom.rounding,
)
< 0
):
raise ValidationError(
_("Default shipping weight must be a positive or null value.")
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright 2020 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
from odoo import api, models


class StockQuantPackage(models.Model):
_inherit = "stock.quant.package"

@api.onchange("packaging_id")
def _onchange_packaging_id(self):
if self.packaging_id and self.packaging_id.package_default_shipping_weight:
self.shipping_weight = self.packaging_id.package_default_shipping_weight

@api.model
def _update_vals_for_shipping_weight(self, vals):
package_type_id = vals.get("packaging_id")
if package_type_id and not vals.get("shipping_weight"):
packaging = self.env["product.packaging"].browse(package_type_id)
if packaging.package_default_shipping_weight:
vals["shipping_weight"] = packaging.package_default_shipping_weight
return vals

@api.model
def create(self, vals):
vals = self._update_vals_for_shipping_weight(vals)
return super().create(vals)

def write(self, vals):
vals = self._update_vals_for_shipping_weight(vals)
return super().write(vals)
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
* Akim Juillerat <akim.juillerat@camptocamp.com>

Trobz

* Dung Tran <dungtd@trobz.com>
3 changes: 3 additions & 0 deletions delivery_package_default_shipping_weight/readme/CREDITS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
The development of this module has been financially supported by:

* Camptocamp
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
This module allows to define a Default shipping weight on Delivery packages
(`product.packaging`) in order to set automatically the Shipping weight on the
packages (`stock.quant.package`) using this Package type.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 5b09cac

Please sign in to comment.