diff --git a/network_partner/__manifest__.py b/network_partner/__manifest__.py index 208c8d6..0a736fd 100644 --- a/network_partner/__manifest__.py +++ b/network_partner/__manifest__.py @@ -18,7 +18,7 @@ No proporciona funcionalidad por sí mismo, se usará luego en otros módulos. 'category': 'Contacts', 'version': '12.0.1.0', 'license': 'AGPL-3', - 'depends': ['base'], + 'depends': ['base','stock'], 'data': [ 'views/res_partner_views.xml', 'views/partner_node_views.xml', diff --git a/network_partner/models/partner_network.py b/network_partner/models/partner_network.py index 7e03a9f..adda645 100644 --- a/network_partner/models/partner_network.py +++ b/network_partner/models/partner_network.py @@ -11,9 +11,5 @@ class PartnerNetwork(models.Model): _description = 'A network of nodes.' name = fields.Char(string="Nombre", help="El nombre de la red.") - #Fields - #network_partner_id = fields.Many2one('res.partner', required=True, ondelete='restrict') - #'groups_id': fields.many2many('res.groups', 'res_groups_users_rel', 'uid', 'gid', 'Groups'), - #member_id = fields.Many2many('res.partner', 'res_partner_network_rel', 'uid', 'nid', "Partners" ) - + nodes_ids = fields.One2many('partner.node', 'network_id', string="Nodos de la red", help="Los nodos de usuarios finales que conforman la red") diff --git a/network_partner/models/partner_node.py b/network_partner/models/partner_node.py index fd52655..f5f578e 100644 --- a/network_partner/models/partner_node.py +++ b/network_partner/models/partner_node.py @@ -8,72 +8,9 @@ from odoo import models, fields, api class PartnerNode(models.Model): _name = 'partner.node' - _inherit = 'res.partner' _description = 'A node of partners in a network' - network_id = fields.Many2one('network.partner', string="Red", help="La red a la que pertenece el nodo.") + name = fields.Char(string="Nombre", help="Cómo se denomina el nodo.") + network_id = fields.Many2one('partner.network', string="Red", help="La red a la que pertenece el nodo.") partner_ids = fields.One2many('res.partner', 'node_id', string='Contactos del nodo', help='Los contactos asociados a éste nodo.') - - """ - name = fields.Char(related='partner_id.name', string='Node Name', required=True, store=True, readonly=False) - partner_id = fields.Many2one('res.partner', - string="Contacto asociado", - help="El contacto asociado del nodo con sus datos como la dirección", - required=True - ) - #street = fields.Char(compute='_compute_address', inverse='_inverse_street') - #street2 = fields.Char(compute='_compute_address', inverse='_inverse_street2') - #zip = fields.Char(compute='_compute_address', inverse='_inverse_zip') - #city = fields.Char(compute='_compute_address', inverse='_inverse_city') - #state_id = fields.Many2one('res.country.state', compute='_compute_address', inverse='_inverse_state', string="Fed. State") - #country_id = fields.Many2one('res.country', compute='_compute_address', inverse='_inverse_country', string="Country") - street = fields.Char(related='partner_id.street', store=True, readonly=False) - street2 = fields.Char(related='partner_id.street2', store=True, readonly=False) - zip = fields.Char(related='partner_id.zip', store=True, readonly=False) - city = fields.Char(related='partner_id.city', store=True, readonly=False) - #state_id = fields.Char(related='partner_id.state_id', store=True, readonly=False) - #country_id = fields.Char(related='partner_id.country_id', store=True, readonly=False) - email = fields.Char(related='partner_id.email', store=True, readonly=False) - phone = fields.Char(related='partner_id.phone', store=True, readonly=False) - - def _get_company_address_fields(self, partner): - return { - 'street' : partner.street, - 'street2' : partner.street2, - 'city' : partner.city, - 'zip' : partner.zip, - 'state_id' : partner.state_id, - 'country_id' : partner.country_id, - } - - def _compute_address(self): - for node in self.filtered(lambda node: node.partner_id): - address_data = node.partner_id.sudo().address_get(adr_pref=['contact']) - if address_data['contact']: - partner = node.partner_id.browse(address_data['contact']).sudo() - node.update(node._get_company_address_fields(partner)) - def _inverse_street(self): - for company in self: - company.partner_id.street = company.street - - def _inverse_street2(self): - for company in self: - company.partner_id.street2 = company.street2 - - def _inverse_zip(self): - for company in self: - company.partner_id.zip = company.zip - - def _inverse_city(self): - for company in self: - company.partner_id.city = company.city - - def _inverse_state(self): - for company in self: - company.partner_id.state_id = company.state_id - - def _inverse_country(self): - for company in self: - company.partner_id.country_id = company.country_id - """ diff --git a/ir.ui.menu-244-web_icon_data.png b/network_partner/static/description/icon.png similarity index 100% rename from ir.ui.menu-244-web_icon_data.png rename to network_partner/static/description/icon.png diff --git a/network_partner/views/menus.xml b/network_partner/views/menus.xml index 20f1e49..24c451d 100644 --- a/network_partner/views/menus.xml +++ b/network_partner/views/menus.xml @@ -4,8 +4,9 @@ + @@ -21,6 +22,7 @@ + diff --git a/network_partner/views/partner_node_views.xml b/network_partner/views/partner_node_views.xml index d1291a8..a44ed34 100644 --- a/network_partner/views/partner_node_views.xml +++ b/network_partner/views/partner_node_views.xml @@ -14,8 +14,8 @@ - - + + @@ -29,8 +29,8 @@ - - + + diff --git a/purchase_collective/__manifest__.py b/purchase_collective/__manifest__.py index 7139362..64d287a 100644 --- a/purchase_collective/__manifest__.py +++ b/purchase_collective/__manifest__.py @@ -12,8 +12,9 @@ El Usuario que crea la orden es el encargado de distribuir los productos al rest - cuando se recibe el cargamente del proveedor, una acción permite crear albaranes de entrega a los almacenes dde los nodo --> ¿poner en un módulo aparte y quitar la dependencia a network_partner? - nueva secuencia para collective order purchase -- workflow propio, por añadir los estados de entrega en subalmacén y entrega ala cliente. -- reglas de seguridad y grupos +- workflow propio, por añadir los estados de entrega en subalmacén y entrega al cliente. +- reglas de seguridad y grupos. +- extiende partner.network añadiendo un nuevo almacén que hace posible el flujo. """, 'author': "Criptomart", 'website': "https://criptomart.net", @@ -29,6 +30,7 @@ El Usuario que crea la orden es el encargado de distribuir los productos al rest 'views/sale_order.xml', 'views/actions.xml', 'views/menus.xml', + 'views/partner_node_views.xml', ], 'demo': [], 'installable': True, diff --git a/purchase_collective/models/__init__.py b/purchase_collective/models/__init__.py index e45f3e3..ffc4025 100644 --- a/purchase_collective/models/__init__.py +++ b/purchase_collective/models/__init__.py @@ -1,3 +1,3 @@ from . import purchase_collective from . import sale_order - +from . import partner_node diff --git a/purchase_collective/models/partner_node.py b/purchase_collective/models/partner_node.py new file mode 100644 index 0000000..2988213 --- /dev/null +++ b/purchase_collective/models/partner_node.py @@ -0,0 +1,25 @@ +# Copyright (C) 2022: Criptomart () +# @author: Criptomart () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +#import logging + +from odoo import models, fields, api +from odoo.exceptions import ValidationError, Warning + +#_logger = logging.getLogger(__name__) + +class PartnerNode(models.Model): + _inherit = 'partner.node' + + wh_id = fields.Many2one('stock.warehouse', string="Almacén asociado", help='El almacén donde recibe productos el nodo y los manda a los socios finales.') + + @api.model + def create(self, vals): + if vals.get('wh_id', False) == False: + vals['wh_id'] = self.env['stock.warehouse'].create({ + 'name': vals.get('name'), + 'code': vals.get('name')[4:] + }).id + return super().create(vals) + diff --git a/purchase_collective/views/menus.xml b/purchase_collective/views/menus.xml index f15e215..c4c2221 100644 --- a/purchase_collective/views/menus.xml +++ b/purchase_collective/views/menus.xml @@ -1,16 +1,10 @@ - - - + + + + + + partner.node.form.wh.view + partner.node + + + + + + + + + + partner.node.tree.wh.view + partner.node + + + + + + + + + +