Merge PR #759 into 14.0

Signed-off-by pedrobaeza
This commit is contained in:
OCA-git-bot
2021-04-02 07:13:16 +00:00
29 changed files with 1356 additions and 0 deletions

View File

@@ -0,0 +1,93 @@
====================
Account Payment Sale
====================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! 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%2Fbank--payment-lightgray.png?logo=github
:target: https://github.com/OCA/bank-payment/tree/13.0/account_payment_sale
:alt: OCA/bank-payment
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/bank-payment-13-0/bank-payment-13-0-account_payment_sale
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/173/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
This modules adds one field on sale orders: *Payment Mode*.
This field is copied from customer to sale order and then from sale order to
customer invoice.
This module is similar to the *sale_payment* module; the main difference is
that it doesn't depend on the *account_payment_extension* module (it's not the
only module to conflict with *account_payment_extension*; all the SEPA
modules in the banking addons conflict with *account_payment_extension*.
**Table of contents**
.. contents::
:local:
Usage
=====
You are able to add a payment mode directly on a partner.
This payment mode is automatically associated to the sale order, then on related invoice.
This default value can be changed in a draft sale order or draft invoice.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/bank-payment/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/bank-payment/issues/new?body=module:%20account_payment_sale%0Aversion:%2013.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
* Tecnativa
Contributors
~~~~~~~~~~~~
* Pedro M. Baeza
* Alexis de Lattre <alexis.delattre@akretion.com>
* Alexandre Fayolle
* Danimar Ribeiro
* Raphaël Valyi
* Raf Ven <raf.ven@dynapps.be>
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
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.
This module is part of the `OCA/bank-payment <https://github.com/OCA/bank-payment/tree/13.0/account_payment_sale>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -0,0 +1,3 @@
from . import models
from . import wizard
from . import tests

View File

@@ -0,0 +1,16 @@
# Copyright 2014-2016 Akretion (http://www.akretion.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# @author Alexis de Lattre <alexis.delattre@akretion.com>
{
"name": "Account Payment Sale",
"version": "14.0.1.0.0",
"category": "Banking addons",
"license": "AGPL-3",
"summary": "Adds payment mode on sale orders",
"author": "Akretion, " "Tecnativa, " "Odoo Community Association (OCA)",
"website": "https://github.com/OCA/bank-payment",
"depends": ["sale", "account_payment_partner"],
"data": ["views/sale_order_view.xml", "views/sale_report_templates.xml"],
"auto_install": True,
}

View File

@@ -0,0 +1,39 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \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: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr ""
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr ""
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr ""
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr ""
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
msgid "Sales Order"
msgstr ""

View File

@@ -0,0 +1,46 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: bank-payment (10.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 00:42+0000\n"
"PO-Revision-Date: 2019-10-07 09:24+0000\n"
"Last-Translator: Jaume Planas <jaume.planas@minorisa.net>\n"
"Language-Team: Catalan (http://www.transifex.com/oca/OCA-bank-payment-10-0/"
"language/ca/)\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.8\n"
#. module: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr "<strong>Mode de pagament:</strong>"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr ""
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr "Mode de pagament"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr "Factura d'avançament de venda"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
#, fuzzy
msgid "Sales Order"
msgstr "Comanda"

View File

@@ -0,0 +1,44 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: bank-payment (10.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 00:42+0000\n"
"PO-Revision-Date: 2016-10-19 23:47+0000\n"
"Last-Translator: <>\n"
"Language-Team: Danish (Denmark) (http://www.transifex.com/oca/OCA-bank-"
"payment-10-0/language/da_DK/)\n"
"Language: da_DK\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr ""
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr ""
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr "Betalingsform"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr ""
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
msgid "Sales Order"
msgstr ""

View File

@@ -0,0 +1,44 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 03:43+0000\n"
"PO-Revision-Date: 2018-02-02 03:43+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2018\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr "<strong>Zahlungsmethode:</strong>"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr ""
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr "Zahlungsmodus"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr "Verkaufsanzahlungsrechnung"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
msgid "Sales Order"
msgstr ""

View File

@@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 03:43+0000\n"
"PO-Revision-Date: 2018-07-13 09:23+0000\n"
"Last-Translator: Enric Tobella <etobella@creublanca.es>\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"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.0.1\n"
#. module: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr "<strong>Modo de pago:</strong>"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr ""
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr "Modo de pago"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr "Ventas. Anticipo pago factura"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
msgid "Sales Order"
msgstr ""
#~ msgid "Quotation"
#~ msgstr "Presupuesto"

View File

@@ -0,0 +1,42 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-08-22 01:59+0000\n"
"Last-Translator: Ignacio Buioli <ibuioli@gmail.com>\n"
"Language-Team: none\n"
"Language: es_AR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10\n"
#. module: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr "<strong>Modo de Pago:</strong>"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr "Asientos Contables"
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr "Modo de Pago"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr "Factura de Anticipo de Ventas"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
msgid "Sales Order"
msgstr "Pedido de Ventas"

View File

@@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2018
# Quentin THEURET <odoo@kerpeo.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-03 02:12+0000\n"
"PO-Revision-Date: 2018-02-03 02:12+0000\n"
"Last-Translator: Quentin THEURET <odoo@kerpeo.com>, 2018\n"
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr "<strong>Mode de paiement :</strong>"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr ""
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr "Mode de paiement"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr "Facture de paiement anticipé des ventes"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
msgid "Sales Order"
msgstr ""
#~ msgid "Quotation"
#~ msgstr "Devis"

View File

@@ -0,0 +1,44 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 03:43+0000\n"
"PO-Revision-Date: 2018-02-02 03:43+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2018\n"
"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr "<strong>Betaalmode:</strong>"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr ""
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr "Betaalwijze"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr "Verkoop Incassofactuur"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
msgid "Sales Order"
msgstr ""

View File

@@ -0,0 +1,46 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
# Translators:
# Peter Hageman <hageman.p@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: bank-payment (10.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-18 00:42+0000\n"
"PO-Revision-Date: 2017-11-20 14:01+0000\n"
"Last-Translator: Peter Hageman <hageman.p@gmail.com>\n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/oca/OCA-bank-"
"payment-10-0/language/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr ""
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr ""
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr ""
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr ""
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
#, fuzzy
msgid "Sales Order"
msgstr "Verkooporder"

View File

@@ -0,0 +1,46 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 03:43+0000\n"
"PO-Revision-Date: 2020-08-12 18:59+0000\n"
"Last-Translator: Rodrigo Macedo <rmsolucoeseminformatic4@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/"
"23907/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.10\n"
#. module: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr "<strong>Modo de Pagamento:</strong>"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr "Entradas diárias"
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr "Modo de Pagamento"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr "Fatura de pagamento antecipado de vendas"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
msgid "Sales Order"
msgstr "Pedido de Venda"

View File

@@ -0,0 +1,45 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 03:43+0000\n"
"PO-Revision-Date: 2018-02-02 03:43+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2018\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
#. module: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr ""
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr ""
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr "Metoda plačila"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr ""
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
msgid "Sales Order"
msgstr ""

View File

@@ -0,0 +1,43 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_payment_sale
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2019-09-04 04:23+0000\n"
"Last-Translator: 黎伟杰 <674416404@qq.com>\n"
"Language-Team: none\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.8\n"
#. module: account_payment_sale
#: model_terms:ir.ui.view,arch_db:account_payment_sale.report_sale_payment_mode
msgid "<strong>Payment Mode:</strong>"
msgstr "<strong>付款方式:</strong>"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_account_move
msgid "Journal Entries"
msgstr ""
#. module: account_payment_sale
#: model:ir.model.fields,field_description:account_payment_sale.field_sale_order__payment_mode_id
msgid "Payment Mode"
msgstr "付款方式"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr "销售预付款发票"
#. module: account_payment_sale
#: model:ir.model,name:account_payment_sale.model_sale_order
#, fuzzy
msgid "Sales Order"
msgstr "销售订单"

View File

@@ -0,0 +1 @@
from . import sale_order

View File

@@ -0,0 +1,42 @@
# Copyright 2014-2020 Akretion - Alexis de Lattre
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class SaleOrder(models.Model):
_inherit = "sale.order"
payment_mode_id = fields.Many2one(
comodel_name="account.payment.mode",
compute="_compute_payment_mode",
store=True,
readonly=False,
check_company=True,
domain="[('payment_type', '=', 'inbound'), ('company_id', '=', company_id)]",
)
@api.depends("partner_id")
def _compute_payment_mode(self):
for order in self:
if order.partner_id:
order.payment_mode_id = order.partner_id.customer_payment_mode_id
else:
order.payment_mode_id = False
def _get_payment_mode_vals(self, vals):
if self.payment_mode_id:
vals["payment_mode_id"] = self.payment_mode_id.id
if (
self.payment_mode_id.bank_account_link == "fixed"
and self.payment_mode_id.payment_method_id.code == "manual"
):
vals[
"partner_bank_id"
] = self.payment_mode_id.fixed_journal_id.bank_account_id.id
def _prepare_invoice(self):
"""Copy bank partner from sale order to invoice"""
vals = super()._prepare_invoice()
self._get_payment_mode_vals(vals)
return vals

View File

@@ -0,0 +1,6 @@
* Pedro M. Baeza
* Alexis de Lattre <alexis.delattre@akretion.com>
* Alexandre Fayolle
* Danimar Ribeiro
* Raphaël Valyi
* Raf Ven <raf.ven@dynapps.be>

View File

@@ -0,0 +1,3 @@
This modules adds one field on sale orders: *Payment Mode*.
This field is copied from customer to sale order and then from sale order to
customer invoice.

View File

@@ -0,0 +1,3 @@
You are able to add a payment mode directly on a partner.
This payment mode is automatically associated to the sale order, then copied to the related invoice.
This default value can be changed sale orders or on draft invoices.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,438 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
<title>Account Payment Sale</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="account-payment-sale">
<h1 class="title">Account Payment Sale</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/bank-payment/tree/13.0/account_payment_sale"><img alt="OCA/bank-payment" src="https://img.shields.io/badge/github-OCA%2Fbank--payment-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/bank-payment-13-0/bank-payment-13-0-account_payment_sale"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/173/13.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>This modules adds one field on sale orders: <em>Payment Mode</em>.
This field is copied from customer to sale order and then from sale order to
customer invoice.</p>
<p>This module is similar to the <em>sale_payment</em> module; the main difference is
that it doesnt depend on the <em>account_payment_extension</em> module (its not the
only module to conflict with <em>account_payment_extension</em>; all the SEPA
modules in the banking addons conflict with <em>account_payment_extension</em>.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#usage" id="id1">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id5">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id6">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#id1">Usage</a></h1>
<p>You are able to add a payment mode directly on a partner.
This payment mode is automatically associated to the sale order, then on related invoice.
This default value can be changed in a draft sale order or draft invoice.</p>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/bank-payment/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/bank-payment/issues/new?body=module:%20account_payment_sale%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#id3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id4">Authors</a></h2>
<ul class="simple">
<li>Akretion</li>
<li>Tecnativa</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id5">Contributors</a></h2>
<ul class="simple">
<li>Pedro M. Baeza</li>
<li>Alexis de Lattre &lt;<a class="reference external" href="mailto:alexis.delattre&#64;akretion.com">alexis.delattre&#64;akretion.com</a>&gt;</li>
<li>Alexandre Fayolle</li>
<li>Danimar Ribeiro</li>
<li>Raphaël Valyi</li>
<li>Raf Ven &lt;<a class="reference external" href="mailto:raf.ven&#64;dynapps.be">raf.ven&#64;dynapps.be</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id6">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>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.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/bank-payment/tree/13.0/account_payment_sale">OCA/bank-payment</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,2 @@
from . import common
from . import test_sale_order

View File

@@ -0,0 +1,70 @@
# Copyright 2018 Camptocamp
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tests.common import SavepointCase
class CommonTestCase(SavepointCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.bank = cls.env["res.partner.bank"].create(
{"acc_number": "test", "partner_id": cls.env.user.company_id.partner_id.id}
)
cls.journal = cls.env["account.journal"].create(
{
"name": "test journal",
"code": "123",
"type": "bank",
"company_id": cls.env.ref("base.main_company").id,
"bank_account_id": cls.bank.id,
}
)
cls.payment_mode = cls.env["account.payment.mode"].create(
{
"name": "test_mode",
"active": True,
"payment_method_id": cls.env.ref(
"account.account_payment_method_manual_in"
).id,
"bank_account_link": "fixed",
"fixed_journal_id": cls.journal.id,
}
)
cls.payment_mode_2 = cls.env["account.payment.mode"].create(
{
"name": "test_mode_2",
"active": True,
"payment_method_id": cls.env.ref(
"account.account_payment_method_manual_in"
).id,
"bank_account_link": "fixed",
"fixed_journal_id": cls.journal.id,
}
)
cls.base_partner = cls.env["res.partner"].create(
{
"name": "Dummy",
"email": "dummy@example.com",
"customer_payment_mode_id": cls.payment_mode.id,
}
)
cls.products = {
"prod_order": cls.env.ref("product.product_order_01"),
"prod_del": cls.env.ref("product.product_delivery_01"),
"serv_order": cls.env["product.product"].create(
{
"name": "Test service product order",
"type": "service",
"invoice_policy": "order",
}
),
"serv_del": cls.env["product.product"].create(
{
"name": "Test service product delivery",
"type": "service",
"invoice_policy": "delivery",
}
),
}

View File

@@ -0,0 +1,98 @@
# Copyright 2018 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tests import Form
from .common import CommonTestCase
class TestSaleOrder(CommonTestCase):
def create_sale_order(self, payment_mode=None):
with Form(self.env["sale.order"]) as sale_form:
sale_form.partner_id = self.base_partner
sale_form.partner_invoice_id = self.base_partner
sale_form.partner_shipping_id = self.base_partner
sale_form.pricelist_id = self.env.ref("product.list0")
for (_, p) in self.products.items():
with sale_form.order_line.new() as order_line:
order_line.product_id = p
order_line.name = p.name
order_line.product_uom_qty = 2
order_line.product_uom = p.uom_id
order_line.price_unit = p.list_price
sale = sale_form.save()
self.assertEqual(
sale.payment_mode_id, self.base_partner.customer_payment_mode_id
)
sale_form = Form(sale)
# force payment mode
if payment_mode:
sale_form.payment_mode_id = payment_mode
return sale_form.save()
def create_invoice_and_check(
self, order, expected_payment_mode, expected_partner_bank
):
order.action_confirm()
order._create_invoices()
invoice = order.invoice_ids
self.assertEqual(len(invoice), 1)
self.assertEqual(invoice.payment_mode_id, expected_payment_mode)
self.assertEqual(invoice.partner_bank_id, expected_partner_bank)
def test_sale_to_invoice_payment_mode(self):
"""
Data:
A partner with a specific payment_mode
A sale order created with the payment_mode of the partner
Test case:
Create the invoice from the sale order
Expected result:
The invoice must be created with the payment_mode of the partner
"""
order = self.create_sale_order()
self.create_invoice_and_check(order, self.payment_mode, self.bank)
def test_sale_to_invoice_payment_mode_2(self):
"""
Data:
A partner with a specific payment_mode
A sale order created with an other payment_mode
Test case:
Create the invoice from the sale order
Expected result:
The invoice must be created with the specific payment_mode
"""
order = self.create_sale_order(payment_mode=self.payment_mode_2)
self.create_invoice_and_check(order, self.payment_mode_2, self.bank)
def test_sale_to_invoice_payment_mode_via_payment(self):
"""
Data:
A partner with a specific payment_mode
A sale order created with an other payment_mode
Test case:
Create the invoice from sale.advance.payment.inv
Expected result:
The invoice must be created with the specific payment_mode
"""
order = self.create_sale_order(payment_mode=self.payment_mode_2)
context = {
"active_model": "sale.order",
"active_ids": [order.id],
"active_id": order.id,
}
order.action_confirm()
payment = self.env["sale.advance.payment.inv"].create(
{
"advance_payment_method": "fixed",
"fixed_amount": 5,
"product_id": self.env.ref("sale.advance_product_0").id,
}
)
payment.with_context(context).create_invoices()
invoice = order.invoice_ids
self.assertEqual(len(invoice), 1)
self.assertEqual(invoice.payment_mode_id, self.payment_mode_2)
self.assertEqual(invoice.partner_bank_id, self.bank)

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2014-2020 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="view_order_form" model="ir.ui.view">
<field name="name">account_payment_sale.sale_order.form</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form" />
<field name="arch" type="xml">
<field name="payment_term_id" position="after">
<field
name="payment_mode_id"
options="{'no_open': True, 'no_create': True}"
/>
</field>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="report_sale_payment_mode" inherit_id="sale.report_saleorder_document">
<xpath expr="//p[@t-if='doc.payment_term_id.note']" position="after">
<p t-if="doc.payment_mode_id.note" id="payment_mode_note">
<strong>Payment Mode:</strong>
<span t-field="doc.payment_mode_id.note" />
</p>
</xpath>
</template>
</odoo>

View File

@@ -0,0 +1 @@
from . import sale_make_invoice_advance

View File

@@ -0,0 +1,14 @@
# Copyright 2016-2020 Akretion - Alexis de Lattre
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models
class SaleAdvancePaymentInv(models.TransientModel):
_inherit = "sale.advance.payment.inv"
def _prepare_invoice_values(self, order, name, amount, so_line):
"""Copy payment mode from sale order to invoice"""
vals = super()._prepare_invoice_values(order, name, amount, so_line)
order._get_payment_mode_vals(vals)
return vals