Skip to content

Commit

Permalink
[16.0][ADD] stock_picking_batch_package_usability: Buton to create pa…
Browse files Browse the repository at this point in the history
…ckage in batch.
  • Loading branch information
Tu Nombre committed Oct 10, 2024
1 parent c0d99a4 commit 9244f56
Show file tree
Hide file tree
Showing 12 changed files with 262 additions and 0 deletions.
6 changes: 6 additions & 0 deletions setup/stock_picking_batch_package_usability/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,
)
29 changes: 29 additions & 0 deletions stock_picking_batch_package_usability/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3

=====================================
Stock Picking Batch Package Usability
=====================================

* One to many from batch to package.
* In batch, button to generate indicated packages.

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

Bugs are tracked on `GitHub Issues
<https://github.com/avanzosc/odoo-addons/issues>`_. In case of trouble,
please check there if your issue has already been reported. If you spotted
it first, help us smash it by providing detailed and welcomed feedback.

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

Credits
=======

Contributors
------------

* Berezi Amubieta <bereziamubieta@avanzosc.es>
* Ana Juaristi <anajuaristi@avanzosc.es>
1 change: 1 addition & 0 deletions stock_picking_batch_package_usability/__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_picking_batch_package_usability/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2024 Berezi Amubieta - AvanzOSC
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": "Stock Picking Batch Package Usability",
"version": "16.0.1.1.0",
"author": "Avanzosc",
"category": "Inventory",
"website": "https://github.com/avanzosc/odoo-addons",
"depends": [
"stock_picking_batch",
"stock_picking_package_usability",
"stock_picking_batch_package",
],
"data": [
"views/stock_quant_package_view.xml",
"views/stock_picking_batch_view.xml",
],
"license": "AGPL-3",
"installable": True,
}
51 changes: 51 additions & 0 deletions stock_picking_batch_package_usability/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_picking_batch_package_usability
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-10 14:46+0000\n"
"PO-Revision-Date: 2024-10-10 14:46+0000\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: stock_picking_batch_package_usability
#: model:ir.model.fields,field_description:stock_picking_batch_package_usability.field_stock_quant_package__batch_id
msgid "Batch"
msgstr "Agrupación de albaranes"

#. module: stock_picking_batch_package_usability
#: model:ir.model,name:stock_picking_batch_package_usability.model_stock_picking_batch
msgid "Batch Transfer"
msgstr "Agrupación de albarán"

#. module: stock_picking_batch_package_usability
#: model_terms:ir.ui.view,arch_db:stock_picking_batch_package_usability.stock_picking_batch_form
msgid "Create Packs"
msgstr "Crear paquetes"

#. module: stock_picking_batch_package_usability
#: model:ir.model.fields,field_description:stock_picking_batch_package_usability.field_stock_picking_batch__qty_packages
msgid "Number of Packages"
msgstr "Cantidad de paquetes"

#. module: stock_picking_batch_package_usability
#. odoo-python
#: code:addons/stock_picking_batch_package_usability/models/stock_picking_batch.py:0
#: model:ir.model,name:stock_picking_batch_package_usability.model_stock_quant_package
#: model:ir.model.fields,field_description:stock_picking_batch_package_usability.field_stock_picking_batch__quant_package_ids
#: model_terms:ir.ui.view,arch_db:stock_picking_batch_package_usability.stock_picking_batch_form
#, python-format
msgid "Packages"
msgstr "Paquetes"

#. module: stock_picking_batch_package_usability
#: model:ir.model.fields,field_description:stock_picking_batch_package_usability.field_stock_picking_batch__packages_qty
msgid "Packages Quantity"
msgstr "Cantidad de paquetes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_picking_batch_package_usability
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-10 14:45+0000\n"
"PO-Revision-Date: 2024-10-10 14:45+0000\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: stock_picking_batch_package_usability
#: model:ir.model.fields,field_description:stock_picking_batch_package_usability.field_stock_quant_package__batch_id
msgid "Batch"
msgstr ""

#. module: stock_picking_batch_package_usability
#: model:ir.model,name:stock_picking_batch_package_usability.model_stock_picking_batch
msgid "Batch Transfer"
msgstr ""

#. module: stock_picking_batch_package_usability
#: model_terms:ir.ui.view,arch_db:stock_picking_batch_package_usability.stock_picking_batch_form
msgid "Create Packs"
msgstr ""

#. module: stock_picking_batch_package_usability
#: model:ir.model.fields,field_description:stock_picking_batch_package_usability.field_stock_picking_batch__qty_packages
msgid "Number of Packages"
msgstr ""

#. module: stock_picking_batch_package_usability
#. odoo-python
#: code:addons/stock_picking_batch_package_usability/models/stock_picking_batch.py:0
#: model:ir.model,name:stock_picking_batch_package_usability.model_stock_quant_package
#: model:ir.model.fields,field_description:stock_picking_batch_package_usability.field_stock_picking_batch__quant_package_ids
#: model_terms:ir.ui.view,arch_db:stock_picking_batch_package_usability.stock_picking_batch_form
#, python-format
msgid "Packages"
msgstr ""

#. module: stock_picking_batch_package_usability
#: model:ir.model.fields,field_description:stock_picking_batch_package_usability.field_stock_picking_batch__packages_qty
msgid "Packages Quantity"
msgstr ""
2 changes: 2 additions & 0 deletions stock_picking_batch_package_usability/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import stock_picking_batch
from . import stock_quant_package
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Copyright 2024 Berezi Amubieta - AvanzOSC
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import _, api, fields, models


class StockPickingBatch(models.Model):
_inherit = "stock.picking.batch"

@api.depends("quant_package_ids")
def _compute_packages_qty(self):
for picking in self:
picking.packages_qty = len(picking.quant_package_ids)

quant_package_ids = fields.One2many(
string="Packages", comodel_name="stock.quant.package", inverse_name="batch_id"
)
qty_packages = fields.Integer(string="Number of Packages")
packages_qty = fields.Integer(
string="Packages Quantity", compute="_compute_packages_qty", store=True
)

def action_view_package(self):
context = self.env.context.copy()
context.update({"default_batch_id": self.id})
return {
"name": _("Packages"),
"view_mode": "tree",
"res_model": "stock.quant.package",
"domain": [("id", "in", self.quant_package_ids.ids)],
"type": "ir.actions.act_window",
"view_id": self.env.ref(
"stock_picking_package_usability.stock_quant_package_view_tree"
).id,
"context": context,
}

def action_create_package(self):
self.ensure_one()
pack_vals = {"batch_id": self.id}
for i in range(1, self.qty_packages + 1):
name = "{} {} {:0>3}".format(self.name, "-", i)
pack_vals.update({"name": name})
self.env["stock.quant.package"].create(pack_vals)
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Copyright 2024 Berezi Amubieta - AvanzOSC
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models


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

batch_id = fields.Many2one(string="Batch", comodel_name="stock.picking.batch")

@api.model
def create(self, vals):
line = super().create(vals)
line.name = "{} {} {:0>3}".format(
line.batch_id.name, "-", len(line.batch_id.quant_package_ids)
)
return line
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="stock_picking_batch_form" model="ir.ui.view">
<field name="model">stock.picking.batch</field>
<field name="inherit_id" ref="stock_picking_batch.stock_picking_batch_form" />
<field name="arch" type="xml">
<div class="oe_button_box" name="button_box">
<button
class="oe_stat_button"
icon="fa-cubes"
type="object"
name="action_view_package"
>
<field name="packages_qty" string="Packages" />
</button>
</div>
<field name="picking_type_id" position="after">
<field name="qty_packages" />
<button
name="action_create_package"
type="object"
string="Create Packs"
attrs="{'invisible': [('state', 'in', ('done', 'cancel'))]}"
/>
</field>
</field>
</record>

</odoo>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_quant_package_form" model="ir.ui.view">
<field name="model">stock.quant.package</field>
<field name="inherit_id" ref="stock.view_quant_package_form" />
<field name="arch" type="xml">
<field name="location_id" position="after">
<field name="batch_id" />
</field>
</field>
</record>
</odoo>

0 comments on commit 9244f56

Please sign in to comment.