Skip to content

Commit

Permalink
[MIG] purchase_allowed_product: Refine migration
Browse files Browse the repository at this point in the history
  • Loading branch information
pedrobaeza committed Aug 11, 2020
1 parent 9fede1d commit 84bf208
Show file tree
Hide file tree
Showing 9 changed files with 528 additions and 62 deletions.
78 changes: 50 additions & 28 deletions purchase_allowed_product/README.rst
Original file line number Diff line number Diff line change
@@ -1,63 +1,85 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: https://www.gnu.org/licenses/agpl
:alt: License: AGPL-3

====================================
Purchase and Invoice Allowed Product
====================================

This module adds a restriction in purchase and supplier invoices that has the mark "Order and invoice only supplied products" checked for allowing to select only products that can be supplied by the this supplier.
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! 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%2Fpurchase--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/purchase-workflow/tree/12.0/purchase_allowed_product
:alt: OCA/purchase-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/purchase-workflow-12-0/purchase-workflow-12-0-purchase_allowed_product
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/142/12.0
:alt: Try me on Runbot

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

This module adds a restriction in purchase and supplier invoices that has the
mark "Order and invoice only supplied products" checked for allowing to select
only products that can be supplied by the defined vendor.

The restriction can be set by default for each partner, and it's propagated
to their supplier invoices and purchase, but it can be change for each invoice and purchase if you want.

Installation
============
to their supplier invoices and purchases, but it can be changed for each
invoice and purchase order if you want.

To install this module, you need to:
**Table of contents**

* clone the branch 12.0 of the repository https://github.com/OCA/purchase-workflow
* add the path to this repository in your configuration (addons-path)
* update the module list
* search for "Account Invoice Allowed Product" in your addons
* install the module
.. contents::
:local:

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

Bugs are tracked on `GitHub Issues
<https://github.com/OCA/purchase-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.
Bugs are tracked on `GitHub Issues <https://github.com/OCA/purchase-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/purchase-workflow/issues/new?body=module:%20purchase_allowed_product%0Aversion:%2012.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
~~~~~~~

* Akretion

Contributors
------------
~~~~~~~~~~~~

* Chafique Delli <[email protected]>
* Mourad EL HADJ MIMOUNE <[email protected]>
* Hieu, Vo Minh Bao <[email protected]>

`Tecnativa <https://www.tecnativa.com>`__:
* `Tecnativa <https://www.tecnativa.com>`__:

* Manuel Calero
* Pedro M. Baeza

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

Maintainer
----------
This module is maintained by the OCA.

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

This module is maintained by the OCA.

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.

To contribute to this module, please visit https://odoo-community.org.
This module is part of the `OCA/purchase-workflow <https://github.com/OCA/purchase-workflow/tree/12.0/purchase_allowed_product>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 2 additions & 2 deletions purchase_allowed_product/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
# 2020 Manuel Calero - Tecnativa
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'Account Invoice Allowed Product',
'name': 'Purchase and Invoice Allowed Product',
'summary': 'This module allows to select only products that can be '
'supplied by the supplier',
'supplied by the vendor',
'version': '12.0.1.0.0',
'category': 'Accounting & Finance',
'website': 'https://github.com/OCA/purchase-workflow',
Expand Down
19 changes: 11 additions & 8 deletions purchase_allowed_product/i18n/es.po
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-01 02:48+0000\n"
"PO-Revision-Date: 2017-06-01 02:48+0000\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2020-08-11 15:49+0200\n"
"Last-Translator: OCA Transbot <[email protected]>, 2017\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.3\n"

#. module: purchase_allowed_product
#: model:ir.model,name:purchase_allowed_product.model_res_partner
Expand All @@ -41,16 +42,18 @@ msgid ""
"supplied by this supplier when creating a supplier invoice or purchase for "
"it. This value can be changed by invoice or purchase."
msgstr ""
"Si está marcada, de forma predeterminada solo podrá seleccionar productos que "
"este proveedor puede suministrar al crear una factura o pedido. Este valor "
"puede modificarse en la factura o en el pedido.""
"Si está marcada, de forma predeterminada solo podrá seleccionar productos "
"que este proveedor puede suministrar al crear una factura o pedido. Este "
"valor puede modificarse en la factura o en el pedido."

#. module: purchase_allowed_product
#: model:ir.model.fields,help:purchase_allowed_product.field_account_invoice_use_only_supplied_product
#: model:ir.model.fields,help:purchase_allowed_product.field_purchase_order_use_only_supplied_product
#: model:ir.model.fields,help:purchase_allowed_product.field_supplied_product_mixin_use_only_supplied_product
msgid "If checked, only the products provided by this supplier will be shown."
msgstr "Si se marca, solo se mostrarán los productos proporcionados por este proveedor"
msgstr ""
"Si se marca, solo se mostrarán los productos proporcionados por este "
"proveedor."

#. module: purchase_allowed_product
#: model:ir.model,name:purchase_allowed_product.model_product_supplierinfo
Expand Down Expand Up @@ -93,4 +96,4 @@ msgstr "Usar solo los productos permitidos"
#. module: purchase_allowed_product
#: model:ir.model,name:purchase_allowed_product.model_supplied_product_mixin
msgid "supplied.product.mixin"
msgstr ""
msgstr "supplied.product.mixin"
30 changes: 11 additions & 19 deletions purchase_allowed_product/models/product.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# © 2017 Today Mourad EL HADJ MIMOUNE @ Akretion
# 2020 Manuel Calero - Tecnativa
# Copyright 2017 Today Mourad EL HADJ MIMOUNE @ Akretion
# Copyright 2020 Tecnativa - Manuel Calero
# Copyright 2020 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import api, models
Expand All @@ -9,32 +10,23 @@ class ProductProduct(models.Model):
_inherit = "product.product"

@api.model
def search(self, args, offset=0, limit=None, order=None, count=False):
def _search(self, args, offset=0, limit=None, order=None, count=False,
access_rights_uid=None):
use_only_supplied_product = self.env.context.get(
'use_only_supplied_product')
if use_only_supplied_product:
restrict_supplier_id = self.env.context.get('restrict_supplier_id')
seller = self.env['res.partner'].browse(restrict_supplier_id)
seller = seller.commercial_partner_id \
if seller.commercial_partner_id else seller
seller = seller.commercial_partner_id
supplierinfos = self.env['product.supplierinfo'].search(
[('name', '=', seller.id)])
args += [
'|',
('product_tmpl_id', 'in',
[x.product_tmpl_id.id for x in supplierinfos]),
supplierinfos.mapped('product_tmpl_id').ids),
('id', 'in',
[x.product_id.id for x in supplierinfos])]

return super(ProductProduct, self).search(
args, offset=offset, limit=limit, order=order, count=count)

@api.model
def name_search(self, name, args=None, operator='ilike', limit=100):
args = args or []
if name:
args += [
('name', operator, name)
supplierinfos.mapped('product_id').ids)
]
tasks = self.search(args, limit=limit)
return tasks.name_get()
return super()._search(
args, offset=offset, limit=limit, order=order, count=count,
access_rights_uid=access_rights_uid)
1 change: 1 addition & 0 deletions purchase_allowed_product/models/supplied_product_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

class SuppliedProductMixin(models.AbstractModel):
_name = 'supplied.product.mixin'
_description = "Mixin for documents that want to restrict products"

use_only_supplied_product = fields.Boolean(
string="Use only allowed products",
Expand Down
7 changes: 7 additions & 0 deletions purchase_allowed_product/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
* Chafique Delli <[email protected]>
* Mourad EL HADJ MIMOUNE <[email protected]>
* Hieu, Vo Minh Bao <[email protected]>
* `Tecnativa <https://www.tecnativa.com>`__:

* Manuel Calero
* Pedro M. Baeza
7 changes: 7 additions & 0 deletions purchase_allowed_product/readme/DESCRIPTION.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
This module adds a restriction in purchase and supplier invoices that has the
mark "Order and invoice only supplied products" checked for allowing to select
only products that can be supplied by the defined vendor.

The restriction can be set by default for each partner, and it's propagated
to their supplier invoices and purchases, but it can be changed for each
invoice and purchase order if you want.
Loading

0 comments on commit 84bf208

Please sign in to comment.