Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][MIG] stock_package_autoload: Migration to 16.0 #2218

Open
wants to merge 3 commits into
base: 16.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions setup/stock_package_autoload/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import setuptools

setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
86 changes: 86 additions & 0 deletions stock_package_autoload/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
======================
Stock Package Autoload
======================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:69b0a48bbc64d618505cdad031811c2a8e87a47821b73c1d6b6113126f8d26ae
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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--warehouse-lightgray.png?logo=github
:target: https://github.com/OCA/stock-logistics-warehouse/tree/16.0/stock_package_autoload
:alt: OCA/stock-logistics-warehouse
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/stock-logistics-warehouse-16-0/stock-logistics-warehouse-16-0-stock_package_autoload
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/stock-logistics-warehouse&target_branch=16.0
:alt: Try me on Runboat

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

This module allows to automatically add the content of a package to each Transfer line.

**Table of contents**

.. contents::
:local:

Usage
=====

On a Transfer in "ready" state, click on the 'Detailed Operations' button on one of the lines.

You can select a package and automatically add its content to the transfer.
Lots with the same serial cannot be added more than once

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-warehouse/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 <https://github.com/OCA/stock-logistics-warehouse/issues/new?body=module:%20stock_package_autoload%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.

Credits
=======

Authors
~~~~~~~

* PyTech SRL

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

* `PyTech-SRL <info@pytech.it>`_:

* Sebastiano Picchi <sebastiano.picchi@pytech.it>

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-warehouse <https://github.com/OCA/stock-logistics-warehouse/tree/16.0/stock_package_autoload>`_ 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 stock_package_autoload/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
20 changes: 20 additions & 0 deletions stock_package_autoload/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "Stock Package Autoload",
"summary": """
Select a package to add its content to a transfer line
""",
"version": "16.0.1.0.0",
"author": "PyTech SRL, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/stock-logistics-warehouse",
"category": "Warehouse Management",
"depends": [
"stock",
],
"data": [
"views/stock_move_view.xml",
],
"demo": [],
"license": "AGPL-3",
"installable": True,
"application": False,
}
1 change: 1 addition & 0 deletions stock_package_autoload/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import stock_move
69 changes: 69 additions & 0 deletions stock_package_autoload/models/stock_move.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
from odoo import api, fields, models


class StockMove(models.Model):
_inherit = "stock.move"

package_domain = fields.Binary(
compute="_compute_package_domain",
readonly=True,
store=False,
)
load_products_from_package_id = fields.Many2one(
"stock.quant.package",
string="Add package contents",
help="Autoresets after use",
)

def _package_domain(self):
self.ensure_one()
to_return = (
[("quant_ids.product_id", "=", self.product_id.id)]
if self.product_id
else []
)
return to_return

def _compute_package_domain(self):
"""
There's no need to compute this field if the current user doesn't have the
necessary group
"""
if not self.env.user.has_group("stock.group_tracking_lot"):
self.write({"package_domain": "[]"})
return
for sm in self:
sm.package_domain = sm._package_domain()

@api.onchange("load_products_from_package_id")
def _onchange_load_products_from_package_id(self):
"""Automatically load all items contained in the selected package.
Once the items have been added, the package is deleted.
The same serials cannot be selected more than once.
"""
current_lots = self.move_line_ids.mapped("lot_id")
product_quants = self.load_products_from_package_id.quant_ids.filtered(
lambda q, lots=current_lots: q.lot_id not in lots
)
common_line_data = {
"move_id": self.id,
"tracking": self.has_tracking,
"product_id": self.product_id.id,
"package_id": self.load_products_from_package_id.id,
"location_id": self.location_id.id,
"location_dest_id": self.location_dest_id.id,
"company_id": self.company_id.id,
}
data_list = []
for quant in product_quants:
data = common_line_data.copy()
data.update(
{
"qty_done": quant.quantity,
"product_uom_id": quant.product_uom_id.id,
"lot_id": quant.lot_id.id,
}
)
data_list.append(data)
self.env["stock.move.line"].create(data_list)
self.load_products_from_package_id = False
3 changes: 3 additions & 0 deletions stock_package_autoload/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* `PyTech-SRL <info@pytech.it>`_:

* Sebastiano Picchi <sebastiano.picchi@pytech.it>
1 change: 1 addition & 0 deletions stock_package_autoload/readme/DESCRIPTION.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This module allows to automatically add the content of a package to each Transfer line.
4 changes: 4 additions & 0 deletions stock_package_autoload/readme/USAGE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
On a Transfer in "ready" state, click on the 'Detailed Operations' button on one of the lines.

You can select a package and automatically add its content to the transfer.
Lots with the same serial cannot be added more than once
Loading
Loading