Ivàn Todorovich
4 years ago
13 changed files with 669 additions and 0 deletions
-
1pos_report_order_payment/__init__.py
-
21pos_report_order_payment/__manifest__.py
-
192pos_report_order_payment/i18n/fr.po
-
192pos_report_order_payment/i18n/pos_report_order_payment.pot
-
5pos_report_order_payment/readme/CONTRIBUTORS.rst
-
5pos_report_order_payment/readme/DESCRIPTION.rst
-
1pos_report_order_payment/readme/USAGE.rst
-
1pos_report_order_payment/report/__init__.py
-
182pos_report_order_payment/report/pos_order_payment_report.py
-
67pos_report_order_payment/report/pos_order_payment_report.xml
-
2pos_report_order_payment/security/ir.model.access.csv
-
BINpos_report_order_payment/static/description/graph.png
-
BINpos_report_order_payment/static/description/pivot.png
@ -0,0 +1 @@ |
|||||
|
from . import report |
@ -0,0 +1,21 @@ |
|||||
|
# Copyright 2020 Iván Todorovich <ivan.todorovich@gmail.com> |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
||||
|
|
||||
|
{ |
||||
|
'name': 'Point of Sale Payment Report', |
||||
|
'summary': 'Analyze point of sale payments', |
||||
|
'category': 'Point of Sale', |
||||
|
'version': '12.0.1.0.0', |
||||
|
'author': 'Druidoo, ' |
||||
|
'Moka Tourisme, ' |
||||
|
'Odoo Community Association (OCA)', |
||||
|
'license': 'AGPL-3', |
||||
|
'website': 'https://github.com/OCA/pos', |
||||
|
'depends': [ |
||||
|
'point_of_sale', |
||||
|
], |
||||
|
'data': [ |
||||
|
'security/ir.model.access.csv', |
||||
|
'report/pos_order_payment_report.xml', |
||||
|
], |
||||
|
} |
@ -0,0 +1,192 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * pos_report_order_payment |
||||
|
# |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 12.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2020-09-04 15:28+0000\n" |
||||
|
"PO-Revision-Date: 2020-09-04 15:28+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: pos_report_order_payment |
||||
|
#: selection:report.pos.order.payment,state:0 |
||||
|
msgid "Cancelled" |
||||
|
msgstr "Annulé" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__company_id |
||||
|
msgid "Company" |
||||
|
msgstr "Société" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__partner_id |
||||
|
msgid "Customer" |
||||
|
msgstr "Client" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__display_name |
||||
|
msgid "Display Name" |
||||
|
msgstr "Nom affiché" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Group By" |
||||
|
msgstr "Regrouper par" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__id |
||||
|
msgid "ID" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__invoiced |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
#: selection:report.pos.order.payment,state:0 |
||||
|
msgid "Invoiced" |
||||
|
msgstr "Facturé" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__journal_id |
||||
|
msgid "Journal" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment____last_update |
||||
|
msgid "Last Modified on" |
||||
|
msgstr "Dernière modification le" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__location_id |
||||
|
msgid "Location" |
||||
|
msgstr "Lieu" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "My Sales" |
||||
|
msgstr "Mes ventes" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: selection:report.pos.order.payment,state:0 |
||||
|
msgid "New" |
||||
|
msgstr "Nouveau" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Not Invoiced" |
||||
|
msgstr "Non facturée" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__order_id |
||||
|
msgid "Order" |
||||
|
msgstr "Commande" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__date |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Order Date" |
||||
|
msgstr "Date de la commande" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.ui.menu,name:pos_report_order_payment.menu_report_pos_order_payment |
||||
|
msgid "Order Payments" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.actions.act_window,name:pos_report_order_payment.action_report_pos_order_payment |
||||
|
msgid "Order Payments Analysis" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: selection:report.pos.order.payment,state:0 |
||||
|
msgid "Paid" |
||||
|
msgstr "Payé" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__payment_amount |
||||
|
msgid "Payment Amount" |
||||
|
msgstr "Montant du paiement" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__payment_journal_id |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Payment Journal" |
||||
|
msgstr "Journal des Paiements" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__pos_categ_id |
||||
|
msgid "PoS Category" |
||||
|
msgstr "Catégorie du PdV" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__config_id |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Point of Sale" |
||||
|
msgstr "Point de vente" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model,name:pos_report_order_payment.model_report_pos_order_payment |
||||
|
msgid "Point of Sale Order Payments Report" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model,name:pos_report_order_payment.model_report_pos_order |
||||
|
msgid "Point of Sale Orders Report" |
||||
|
msgstr "Rapport sur les commandes au point de vente" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_graph |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_pivot |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Point of Sale Payment Analysis" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: selection:report.pos.order.payment,state:0 |
||||
|
msgid "Posted" |
||||
|
msgstr "Comptabilisé" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__pricelist_id |
||||
|
msgid "Pricelist" |
||||
|
msgstr "Liste de prix" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__product_id |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Product" |
||||
|
msgstr "Article" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__product_categ_id |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Product Category" |
||||
|
msgstr "Catégorie d'article" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__product_tmpl_id |
||||
|
msgid "Product Template" |
||||
|
msgstr "Modèle d'article" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__user_id |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Salesperson" |
||||
|
msgstr "Vendeur" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__session_id |
||||
|
msgid "Session" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__state |
||||
|
msgid "Status" |
||||
|
msgstr "Statut" |
||||
|
|
@ -0,0 +1,192 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * pos_report_order_payment |
||||
|
# |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 12.0\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2020-09-04 15:27+0000\n" |
||||
|
"PO-Revision-Date: 2020-09-04 15:27+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: pos_report_order_payment |
||||
|
#: selection:report.pos.order.payment,state:0 |
||||
|
msgid "Cancelled" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__company_id |
||||
|
msgid "Company" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__partner_id |
||||
|
msgid "Customer" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__display_name |
||||
|
msgid "Display Name" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Group By" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__id |
||||
|
msgid "ID" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__invoiced |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
#: selection:report.pos.order.payment,state:0 |
||||
|
msgid "Invoiced" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__journal_id |
||||
|
msgid "Journal" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment____last_update |
||||
|
msgid "Last Modified on" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__location_id |
||||
|
msgid "Location" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "My Sales" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: selection:report.pos.order.payment,state:0 |
||||
|
msgid "New" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Not Invoiced" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__order_id |
||||
|
msgid "Order" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__date |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Order Date" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.ui.menu,name:pos_report_order_payment.menu_report_pos_order_payment |
||||
|
msgid "Order Payments" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.actions.act_window,name:pos_report_order_payment.action_report_pos_order_payment |
||||
|
msgid "Order Payments Analysis" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: selection:report.pos.order.payment,state:0 |
||||
|
msgid "Paid" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__payment_amount |
||||
|
msgid "Payment Amount" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__payment_journal_id |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Payment Journal" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__pos_categ_id |
||||
|
msgid "PoS Category" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__config_id |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Point of Sale" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model,name:pos_report_order_payment.model_report_pos_order_payment |
||||
|
msgid "Point of Sale Order Payments Report" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model,name:pos_report_order_payment.model_report_pos_order |
||||
|
msgid "Point of Sale Orders Report" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_graph |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_pivot |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Point of Sale Payment Analysis" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: selection:report.pos.order.payment,state:0 |
||||
|
msgid "Posted" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__pricelist_id |
||||
|
msgid "Pricelist" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__product_id |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Product" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__product_categ_id |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Product Category" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__product_tmpl_id |
||||
|
msgid "Product Template" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__user_id |
||||
|
#: model_terms:ir.ui.view,arch_db:pos_report_order_payment.view_report_pos_order_payment_search |
||||
|
msgid "Salesperson" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__session_id |
||||
|
msgid "Session" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: pos_report_order_payment |
||||
|
#: model:ir.model.fields,field_description:pos_report_order_payment.field_report_pos_order_payment__state |
||||
|
msgid "Status" |
||||
|
msgstr "" |
||||
|
|
@ -0,0 +1,5 @@ |
|||||
|
* `Druidoo <https://www.druidoo.io>`_: |
||||
|
* Iván Todorovich <ivan.todorovich@gmail.com> |
||||
|
|
||||
|
* `Moka Tourisme <https://www.mokatourisme.fr>`_: |
||||
|
* Grégory Schreiner |
@ -0,0 +1,5 @@ |
|||||
|
Adds views to analyze point of sale payments |
||||
|
|
||||
|
.. figure:: ../static/description/graph.png |
||||
|
|
||||
|
.. figure:: ../static/description/pivot.png |
@ -0,0 +1 @@ |
|||||
|
Go to Point of Sale > Analysis > Order Payments |
@ -0,0 +1 @@ |
|||||
|
from . import pos_order_payment_report |
@ -0,0 +1,182 @@ |
|||||
|
# Copyright 2020 Iván Todorovich <ivan.todorovich@gmail.com> |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
||||
|
|
||||
|
from odoo import api, models, fields, tools |
||||
|
|
||||
|
|
||||
|
class PosOrderPaymentReport(models.Model): |
||||
|
_name = 'report.pos.order.payment' |
||||
|
_description = "Point of Sale Order Payments Report" |
||||
|
_auto = False |
||||
|
_order = 'date desc' |
||||
|
|
||||
|
date = fields.Datetime( |
||||
|
string='Order Date', |
||||
|
readonly=True, |
||||
|
) |
||||
|
state = fields.Selection( |
||||
|
[ |
||||
|
('draft', 'New'), |
||||
|
('paid', 'Paid'), |
||||
|
('done', 'Posted'), |
||||
|
('invoiced', 'Invoiced'), |
||||
|
('cancel', 'Cancelled'), |
||||
|
], |
||||
|
string='Status', |
||||
|
readonly=True, |
||||
|
) |
||||
|
order_id = fields.Many2one( |
||||
|
'pos.order', |
||||
|
string='Order', |
||||
|
readonly=True, |
||||
|
) |
||||
|
session_id = fields.Many2one( |
||||
|
'pos.session', |
||||
|
string='Session', |
||||
|
readonly=True, |
||||
|
) |
||||
|
partner_id = fields.Many2one( |
||||
|
'res.partner', |
||||
|
string='Customer', |
||||
|
readonly=True, |
||||
|
) |
||||
|
pricelist_id = fields.Many2one( |
||||
|
'product.pricelist', |
||||
|
string='Pricelist', |
||||
|
readonly=True, |
||||
|
) |
||||
|
user_id = fields.Many2one( |
||||
|
'res.users', |
||||
|
string='Salesperson', |
||||
|
readonly=True, |
||||
|
) |
||||
|
location_id = fields.Many2one( |
||||
|
'stock.location', |
||||
|
string='Location', |
||||
|
readonly=True, |
||||
|
) |
||||
|
company_id = fields.Many2one( |
||||
|
'res.company', |
||||
|
string='Company', |
||||
|
readonly=True, |
||||
|
) |
||||
|
journal_id = fields.Many2one( |
||||
|
'account.journal', |
||||
|
string='Journal', |
||||
|
readonly=True, |
||||
|
) |
||||
|
config_id = fields.Many2one( |
||||
|
'pos.config', |
||||
|
string='Point of Sale', |
||||
|
readonly=True, |
||||
|
) |
||||
|
pos_categ_id = fields.Many2one( |
||||
|
'pos.category', |
||||
|
string='PoS Category', |
||||
|
readonly=True, |
||||
|
) |
||||
|
product_id = fields.Many2one( |
||||
|
'product.product', |
||||
|
string='Product', |
||||
|
readonly=True, |
||||
|
) |
||||
|
product_tmpl_id = fields.Many2one( |
||||
|
'product.template', |
||||
|
string='Product Template', |
||||
|
readonly=True, |
||||
|
) |
||||
|
product_categ_id = fields.Many2one( |
||||
|
'product.category', |
||||
|
string='Product Category', |
||||
|
readonly=True, |
||||
|
) |
||||
|
payment_journal_id = fields.Many2one( |
||||
|
"account.journal", |
||||
|
string="Payment Journal", |
||||
|
readonly=True, |
||||
|
) |
||||
|
payment_amount = fields.Float( |
||||
|
string="Paid Amount", |
||||
|
readonly=True, |
||||
|
) |
||||
|
invoiced = fields.Boolean( |
||||
|
readonly=True, |
||||
|
) |
||||
|
|
||||
|
def _select(self): |
||||
|
return """ |
||||
|
SELECT |
||||
|
ROW_NUMBER() OVER() AS id, |
||||
|
s.date_order AS date, |
||||
|
s.id as order_id, |
||||
|
s.partner_id AS partner_id, |
||||
|
s.state AS state, |
||||
|
s.user_id AS user_id, |
||||
|
s.location_id AS location_id, |
||||
|
s.company_id AS company_id, |
||||
|
s.sale_journal AS journal_id, |
||||
|
l.product_id AS product_id, |
||||
|
pt.categ_id AS product_categ_id, |
||||
|
p.product_tmpl_id, |
||||
|
ps.config_id, |
||||
|
pt.pos_categ_id, |
||||
|
s.pricelist_id, |
||||
|
s.session_id, |
||||
|
s.invoice_id IS NOT NULL AS invoiced, |
||||
|
st.journal_id AS payment_journal_id, |
||||
|
st.amount AS payment_amount |
||||
|
""" |
||||
|
|
||||
|
def _from(self): |
||||
|
return """ |
||||
|
FROM pos_order_line AS l |
||||
|
LEFT JOIN pos_order s ON (s.id = l.order_id) |
||||
|
LEFT JOIN product_product p ON (l.product_id = p.id) |
||||
|
LEFT JOIN product_template pt ON (p.product_tmpl_id = pt.id) |
||||
|
LEFT JOIN uom_uom u ON (u.id = pt.uom_id) |
||||
|
LEFT JOIN pos_session ps ON (s.session_id = ps.id) |
||||
|
INNER JOIN (%s) st ON (st.pos_line_id = l.id) |
||||
|
""" % (self._payment_query()) |
||||
|
|
||||
|
def _payment_query(self): |
||||
|
""" |
||||
|
Returns a query that distributes the pos.order payments |
||||
|
among the pos.order.lines |
||||
|
""" |
||||
|
return """ |
||||
|
SELECT |
||||
|
pol.id AS pos_line_id, |
||||
|
sl.id AS statement_line_id, |
||||
|
st.journal_id AS journal_id, |
||||
|
( |
||||
|
sl.amount / po.amount_total * pol.price_subtotal_incl |
||||
|
) AS amount |
||||
|
FROM pos_order_line AS pol |
||||
|
INNER JOIN pos_order AS po |
||||
|
ON pol.order_id = po.id |
||||
|
INNER JOIN account_bank_statement_line AS sl |
||||
|
ON pol.order_id = sl.pos_statement_id |
||||
|
INNER JOIN account_bank_statement AS st |
||||
|
ON st.id = sl.statement_id |
||||
|
""" |
||||
|
|
||||
|
def _group_by(self): |
||||
|
return "" |
||||
|
|
||||
|
def _having(self): |
||||
|
return "" |
||||
|
|
||||
|
@api.model_cr |
||||
|
def init(self): |
||||
|
tools.drop_view_if_exists(self._cr, self._table) |
||||
|
self._cr.execute(""" |
||||
|
CREATE OR REPLACE VIEW %s AS ( |
||||
|
%s |
||||
|
%s |
||||
|
%s |
||||
|
%s |
||||
|
) |
||||
|
""" % ( |
||||
|
self._table, |
||||
|
self._select(), self._from(), self._group_by(), self._having(), |
||||
|
)) |
@ -0,0 +1,67 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
|
||||
|
<record id="view_report_pos_order_payment_pivot" model="ir.ui.view"> |
||||
|
<field name="model">report.pos.order.payment</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<pivot string="Point of Sale Payment Analysis" disable_linking="True"> |
||||
|
<field name="config_id" type="row"/> |
||||
|
<field name="payment_journal_id" type="col"/> |
||||
|
<field name="payment_amount" type="measure"/> |
||||
|
</pivot> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="view_report_pos_order_payment_graph" model="ir.ui.view"> |
||||
|
<field name="model">report.pos.order.payment</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<graph string="Point of Sale Payment Analysis"> |
||||
|
<field name="payment_journal_id" type="row"/> |
||||
|
<field name="payment_amount" type="measure"/> |
||||
|
</graph> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="view_report_pos_order_payment_search" model="ir.ui.view"> |
||||
|
<field name="model">report.pos.order.payment</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<search string="Point of Sale Payment Analysis"> |
||||
|
<field name="date"/> |
||||
|
<filter string="My Sales" name="my_sales" help="My Sales" domain="[('user_id', '=', uid)]"/> |
||||
|
<separator/> |
||||
|
<filter string="Invoiced" name="invoiced" domain="[('state', '=', 'invoiced')]"/> |
||||
|
<filter string="Not Invoiced" name="not_invoiced" domain="[('state', '=', 'paid')]"/> |
||||
|
<field name="config_id"/> |
||||
|
<field name="partner_id"/> |
||||
|
<field name="user_id"/> |
||||
|
<field name="product_id"/> |
||||
|
<field name="product_categ_id"/> |
||||
|
<group expand="1" string="Group By"> |
||||
|
<filter string="Salesperson" name="User" context="{'group_by': 'user_id'}"/> |
||||
|
<filter string="Point of Sale" name="pos" context="{'group_by': 'config_id'}"/> |
||||
|
<filter string="Product" name="product" context="{'group_by': 'product_id'}"/> |
||||
|
<filter string="Product Category" name="product_category" context="{'group_by': 'product_categ_id'}"/> |
||||
|
<filter string="Payment Journal" name="payment_journal" context="{'group_by': 'payment_journal_id'}"/> |
||||
|
<separator/> |
||||
|
<filter string="Order Date" name="order_month" context="{'group_by': 'date:month'}"/> |
||||
|
</group> |
||||
|
</search> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="action_report_pos_order_payment" model="ir.actions.act_window"> |
||||
|
<field name="name">Order Payments Analysis</field> |
||||
|
<field name="res_model">report.pos.order.payment</field> |
||||
|
<field name="view_type">form</field> |
||||
|
<field name="view_mode">graph,pivot</field> |
||||
|
<field name="context">{'group_by_no_leaf': 1, 'group_by': []}</field> |
||||
|
</record> |
||||
|
|
||||
|
<menuitem |
||||
|
id="menu_report_pos_order_payment" |
||||
|
name="Order Payments" |
||||
|
action="action_report_pos_order_payment" |
||||
|
parent="point_of_sale.menu_point_rep" |
||||
|
sequence="3"/> |
||||
|
|
||||
|
</odoo> |
@ -0,0 +1,2 @@ |
|||||
|
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink |
||||
|
access_report_pos_order_payment,report.pos.order.payment,model_report_pos_order_payment,point_of_sale.group_pos_user,1,1,1,1 |
After Width: 1920 | Height: 947 | Size: 34 KiB |
After Width: 721 | Height: 608 | Size: 84 KiB |
Write
Preview
Loading…
Cancel
Save
Reference in new issue