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] product_supplierinfo_unique: Migration to 16.0 #505

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
66 changes: 66 additions & 0 deletions product_supplierinfo_unique/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
===========================
Product Supplierinfo Unique
===========================

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

.. |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-nuobit%2Fodoo--addons-lightgray.png?logo=github
:target: https://github.com/nuobit/odoo-addons/tree/16.0/product_supplierinfo_unique
:alt: nuobit/odoo-addons

|badge1| |badge2| |badge3|

This module create constrains in supplierinfo to ensure that there is
only one supplierinfo with vendor-product_code-min_qty per product

**Table of contents**

.. contents::
:local:

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

Bugs are tracked on `GitHub Issues <https://github.com/nuobit/odoo-addons/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/nuobit/odoo-addons/issues/new?body=module:%20product_supplierinfo_unique%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
-------

* NuoBiT Solutions SL
* Kilian Niubo

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

- `NuoBiT <https://www.nuobit.com>`__:

- Eric Antones eantones@nuobit.com
- Kilian Niubo kniubo@nuobit.com
- Bijaya Kumal bkumal@nuobit.com

Maintainers
-----------

This module is part of the `nuobit/odoo-addons <https://github.com/nuobit/odoo-addons/tree/16.0/product_supplierinfo_unique>`_ project on GitHub.

You are welcome to contribute.
1 change: 1 addition & 0 deletions product_supplierinfo_unique/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
16 changes: 16 additions & 0 deletions product_supplierinfo_unique/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright NuoBiT Solutions - Kilian Niubo <kniubo@nuobit.com>
# Copyright NuoBiT 2025 - Bijaya Kumal <bkumal@nuobit.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)

{
"name": "Product Supplierinfo Unique",
"version": "16.0.1.0.0",
"author": "NuoBiT Solutions SL, Kilian Niubo",
"license": "AGPL-3",
"category": "Purchase",
"website": "https://github.com/nuobit/odoo-addons",
"summary": "This module create constrains in supplierinfo to ensure that there is "
"only one supplierinfo with vendor-product_code-min_qty per product",
"depends": ["product"],
"installable": True,
}
1 change: 1 addition & 0 deletions product_supplierinfo_unique/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import product_supplierinfo
51 changes: 51 additions & 0 deletions product_supplierinfo_unique/models/product_supplierinfo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Copyright NuoBiT - Kilian Niubo <kniubo@nuobit.com>
# Copyright NuoBiT - Eric Antones <eantones@nuobit.com>
# Copyright NuoBiT 2025 - Bijaya Kumal <bkumal@nuobit.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)

from odoo import _, api, models
from odoo.exceptions import ValidationError


class ProductSupplierinfo(models.Model):
_inherit = "product.supplierinfo"

@api.constrains("partner_id", "product_code", "product_tmpl_id", "min_qty")
def _check_unique_supplierinfo(self):
for rec in self:
domain = [
("id", "!=", rec.id),
("partner_id", "=", rec.partner_id.id),
("product_code", "!=", False),
]
others = self.env["product.supplierinfo"].search(
[
*domain,
("product_code", "=", rec.product_code),
("product_tmpl_id", "!=", rec.product_tmpl_id.id),
]
)
if others:
raise ValidationError(
_(
"The product %(product_code)s of the %(vendor)s already exists"
"on other products %(products)s with other barcodes %(barcodes)s"
)
% {
"product_code": rec.product_code,
"vendor": rec.partner_id.display_name,
"products": others.mapped("product_tmpl_id.id"),
"barcodes": others.mapped("product_tmpl_id.barcode"),
}
)
others = self.env["product.supplierinfo"].search(
[
*domain,
("product_code", "!=", rec.product_code),
("product_tmpl_id", "=", rec.product_tmpl_id.id),
]
)
if others:
raise ValidationError(
_("Only one product code is allowed for the same vendor")
)
4 changes: 4 additions & 0 deletions product_supplierinfo_unique/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- [NuoBiT](https://www.nuobit.com):
- Eric Antones <eantones@nuobit.com>
- Kilian Niubo <kniubo@nuobit.com>
- Bijaya Kumal <bkumal@nuobit.com>
2 changes: 2 additions & 0 deletions product_supplierinfo_unique/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
This module create constrains in supplierinfo to ensure that there is
only one supplierinfo with vendor-product_code-min_qty per product
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading