diff --git a/delivery_partner/README.rst b/delivery_partner/README.rst new file mode 100644 index 00000000..e527d2bc --- /dev/null +++ b/delivery_partner/README.rst @@ -0,0 +1,29 @@ +********************************* +Hibou - Partner Shipping Accounts +********************************* + +Records shipping account numbers on partners. + +For more information and add-ons, visit `Hibou.io `_. + + +============= +Main Features +============= + +* New model: Customer Shipping Account +* Includes manager-level access permissions. + +.. image:: https://user-images.githubusercontent.com/15882954/41176601-e40f8558-6b15-11e8-998e-6a7ee5709c0f.png + :alt: 'Register Payment Detail' + :width: 988 + :align: left + + +======= +License +======= + +Please see `LICENSE `_. + +Copyright Hibou Corp. 2018 diff --git a/delivery_partner/__init__.py b/delivery_partner/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/delivery_partner/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/delivery_partner/__manifest__.py b/delivery_partner/__manifest__.py new file mode 100755 index 00000000..ad7795be --- /dev/null +++ b/delivery_partner/__manifest__.py @@ -0,0 +1,24 @@ +{ + 'name': 'Partner Shipping Accounts', + 'author': 'Hibou Corp.', + 'version': '17.0.1.0.0', + 'category': 'Stock', + 'sequence': 95, + 'summary': 'Record shipping account numbers on partners.', + 'description': """ +Record shipping account numbers on partners. + +* Customer Shipping Account Model + """, + 'website': 'https://hibou.io/', + 'depends': [ + 'delivery', + 'contacts', + ], + 'data': [ + 'security/ir.model.access.csv', + 'views/delivery_views.xml', + ], + 'installable': True, + 'application': False, +} diff --git a/delivery_partner/i18n/es.po b/delivery_partner/i18n/es.po new file mode 100644 index 00000000..19989003 --- /dev/null +++ b/delivery_partner/i18n/es.po @@ -0,0 +1,135 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * delivery_partner +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-10-12 01:08+0000\n" +"PO-Revision-Date: 2021-10-12 01:08+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: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account__name +msgid "Account Num." +msgstr "Número de Cuenta" + +#. module: delivery_partner +#: model_terms:ir.ui.view,arch_db:delivery_partner.partner_shipping_account_view_form +msgid "Any additional notes..." +msgstr "Notas adicionales..." + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account__delivery_type +msgid "Carrier" +msgstr "Transportista" + +#. module: delivery_partner +#: model:ir.model,name:delivery_partner.model_res_partner +msgid "Contact" +msgstr "Contacto" + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account__description +msgid "Description" +msgstr "Descripción" + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account__display_name +msgid "Display Name" +msgstr "Nombre para mostrar" + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account__id +msgid "ID" +msgstr "ID" + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account__note +msgid "Internal Note" +msgstr "Nota Interna" + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account____last_update +msgid "Last Modified on" +msgstr "Última Modificación el" + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account__write_uid +msgid "Last Updated by" +msgstr "Última Actualización por" + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account__write_date +msgid "Last Updated on" +msgstr "Última Actualización el" + +#. module: delivery_partner +#: model:ir.model.fields,help:delivery_partner.field_partner_shipping_account__partner_id +msgid "Leave blank to allow as a generic 3rd party shipper." +msgstr "Déjelo en blanco para permitirlo como una Transportista genérica de terceros" + +#. module: delivery_partner +#: model_terms:ir.actions.act_window,help:delivery_partner.partner_shipping_account_action_main +msgid "No accounts" +msgstr "Sin Cuentas" + +#. module: delivery_partner +#: model:ir.model.fields.selection,name:delivery_partner.selection__partner_shipping_account__delivery_type__other +msgid "Other" +msgstr "Otro" + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_partner_shipping_account__partner_id +msgid "Partner" +msgstr "Socio" + +#. module: delivery_partner +#: model:ir.model,name:delivery_partner.model_partner_shipping_account +msgid "Partner Shipping Account" +msgstr "Cuenta de Envío del Socio" + +#. module: delivery_partner +#: model:ir.ui.menu,name:delivery_partner.partner_shipping_account_menu_main +msgid "Partner Shipping Accounts" +msgstr "Cuentas de Envío del Socio" + +#. module: delivery_partner +#: model:ir.model,name:delivery_partner.model_sale_order +msgid "Sales Order" +msgstr "Pedido de venta" + +#. module: delivery_partner +#: model:ir.model.fields,field_description:delivery_partner.field_sale_order__shipping_account_id +#: model_terms:ir.ui.view,arch_db:delivery_partner.partner_shipping_account_view_form +msgid "Shipping Account" +msgstr "Cuenta de Envío" + +#. module: delivery_partner +#: model_terms:ir.ui.view,arch_db:delivery_partner.partner_shipping_account_view_search +msgid "Shipping Account Search" +msgstr "Busqueda de Cuenta de Envío" + +#. module: delivery_partner +#: model:ir.actions.act_window,name:delivery_partner.partner_shipping_account_action_main +#: model:ir.model.fields,field_description:delivery_partner.field_res_partner__shipping_account_ids +#: model:ir.model.fields,field_description:delivery_partner.field_res_users__shipping_account_ids +#: model_terms:ir.ui.view,arch_db:delivery_partner.partner_shipping_account_view_tree +msgid "Shipping Accounts" +msgstr "Cuentas de Envío" diff --git a/delivery_partner/models/__init__.py b/delivery_partner/models/__init__.py new file mode 100644 index 00000000..be8cabd6 --- /dev/null +++ b/delivery_partner/models/__init__.py @@ -0,0 +1 @@ +from . import delivery diff --git a/delivery_partner/models/delivery.py b/delivery_partner/models/delivery.py new file mode 100644 index 00000000..4bac5907 --- /dev/null +++ b/delivery_partner/models/delivery.py @@ -0,0 +1,47 @@ +from odoo import api, fields, models + + +class Partner(models.Model): + _inherit = 'res.partner' + + shipping_account_ids = fields.One2many('partner.shipping.account', 'partner_id', string='Shipping Accounts') + + +class SaleOrder(models.Model): + _inherit = 'sale.order' + + shipping_account_id = fields.Many2one('partner.shipping.account', string='Shipping Account') + + +class PartnerShippingAccount(models.Model): + _name = 'partner.shipping.account' + + name = fields.Char(string='Account Num.', required=True) + description = fields.Char(string='Description') + partner_id = fields.Many2one('res.partner', string='Partner', help='Leave blank to allow as a generic 3rd party shipper.') + delivery_type = fields.Selection([ + ('other', 'Other'), + ], string='Carrier', required=True, default='other') + note = fields.Text(string='Internal Note') + + def name_get(self): + delivery_types = self._fields['delivery_type']._description_selection(self.env) + + def get_name(value): + name = [n for v, n in delivery_types if v == value] + return name[0] if name else 'Undefined' + + res = [] + for acc in self: + if acc.description: + res.append((acc.id, acc.description)) + else: + res.append((acc.id, '%s: %s' % (get_name(acc.delivery_type), acc.name))) + return res + + @api.constrains('name', 'delivery_type') + def _check_validity(self): + for acc in self: + check = getattr(acc, acc.delivery_type + '_check_validity', None) + if check: + return check() diff --git a/delivery_partner/security/ir.model.access.csv b/delivery_partner/security/ir.model.access.csv new file mode 100644 index 00000000..3db88333 --- /dev/null +++ b/delivery_partner/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_partner_shipping_account,partner.shipping.account,model_partner_shipping_account,base.group_partner_manager,1,1,1,1 diff --git a/delivery_partner/views/delivery_views.xml b/delivery_partner/views/delivery_views.xml new file mode 100644 index 00000000..4850c4a9 --- /dev/null +++ b/delivery_partner/views/delivery_views.xml @@ -0,0 +1,93 @@ + + + + partner.shipping.account.tree + partner.shipping.account + + + + + + + + + + + + partner.shipping.account.form + partner.shipping.account + +
+ + + + + + + + + + + + +
+
+
+ + + partner.shipping.account.search + partner.shipping.account + + + + + + + + + + + + Shipping Accounts + partner.shipping.account + tree,form + +

+ No accounts +

+
+
+ + + + + + res.partner.carrier.property.form.inherit + res.partner + + + + + + + + + + + + + + + + sale.order.form.inherit + sale.order + + + + + + + +