diff --git a/addons/payment_paypal/models/__init__.py b/addons/payment_paypal/models/__init__.py index 7af8e269d79..4729fc79543 100644 --- a/addons/payment_paypal/models/__init__.py +++ b/addons/payment_paypal/models/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +import account_invoice import paypal import res_company diff --git a/addons/payment_paypal/models/account_invoice.py b/addons/payment_paypal/models/account_invoice.py new file mode 100644 index 00000000000..7b7f3e377b7 --- /dev/null +++ b/addons/payment_paypal/models/account_invoice.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- + +from openerp import models, fields, api + +import werkzeug.urls + +class AccountInvoice(models.Model): + _inherit = 'account.invoice' + + paypal_url = fields.Char('Paypal Url', compute='_compute_paypal_url') + + @api.depends('type', 'number', 'company_id', 'currency_id') + def _compute_paypal_url(self): + for inv in self: + if inv.type == 'out_invoice' and inv.company_id.paypal_account: + params = { + "cmd": "_xclick", + "business": inv.company_id.paypal_account, + "item_name": "%s Invoice %s" % (inv.company_id.name, inv.number or ''), + "invoice": inv.number, + "amount": inv.residual, + "currency_code": inv.currency_id.name, + "button_subtype": "services", + "no_note": "1", + "bn": "Odoo_Invoice_PayNow_" + inv.currency_id.name, + } + inv.paypal_url = "https://www.paypal.com/cgi-bin/webscr?" + werkzeug.url_encode(params)