Skip to content

Commit

Permalink
[ADD] pos_payment_method_cashdro: New module
Browse files Browse the repository at this point in the history
This module allows to make payments with a Cashdro (https://www.cashdro.com) terminal
on the Point of Sale frontend.

TT29224
  • Loading branch information
chienandalu committed Feb 29, 2024
1 parent 8768b1a commit ab4449f
Show file tree
Hide file tree
Showing 20 changed files with 1,082 additions and 0 deletions.
122 changes: 122 additions & 0 deletions pos_payment_method_cashdro/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
==========================
PoS Payment Method CashDro
==========================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! 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%2Fpos-lightgray.png?logo=github
:target: https://github.com/OCA/pos/tree/12.0/pos_payment_method_cashdro
:alt: OCA/pos
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/pos-12-0/pos-12-0-pos_payment_method_cashdro
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/184/12.0
:alt: Try me on Runbot

|badge1| |badge2| |badge3| |badge4| |badge5|

This module allows to make payments with a Cashdro (https://www.cashdro.com) terminal
on the Point of Sale frontend.

**Table of contents**

.. contents::
:local:

Configuration
=============

To configure this module, you need to:

#. Go to a Point of Sale cash payment method or create a new one.
#. In the Point of Sale tab, set *Cashdro Payment Terminal* on.
#. Configure the Cashdro terminal hostname and credentials.
#. Configure the desired, Cashdro terminal in the proper PoS configurations.

Note that if a single payment method was used for cash in different stores, it should
be splitted in as many phisical stores there are.

Usage
=====

With the proper configuration made:

#. Make a new PoS order and choose the cash payment method configured with the Cashdro
settings.
#. In the payment line, tap on the Cashdro request button (the one with a bill icon).
#. The request is sent to the Cashdro terminal that will ask the customer for the amount
to pay.
#. In this moment, a button with a ban icon will appear. It allows the cashier to cancel
the request before the payment is made.
#. When the customer pays the sale amount in the terminal, the Cashdro reports the
amount received and change delivered back.
#. The Point of Sale reflects it in the payment line and thus the order can be validated
now.

Known issues / Roadmap
======================

* Cashdro terminals are designed to communicate in the local network, so they can't
receive or transmit any request to a remote Odoo server. So in order to implement
further features, la cash control or cash ins/outs it would be necessary to either:

- Prepare the Cashdro terminal for a remote use (VPN, dns, etc.) and implement the
corresponding backend methods.
- Develope PoS frontend modules that allow to perform such operations and extend this
one making use of them.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/pos/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/pos/issues/new?body=module:%20pos_payment_method_cashdro%0Aversion:%2012.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
~~~~~~~

* Tecnativa

Contributors
~~~~~~~~~~~~

* `Acysos S.L. <https://www.acysos.com>`_:

* Ignacio Ibeas

* `Tecnativa <https://www.tecnativa.com>`_

* David Vidal

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/pos <https://github.com/OCA/pos/tree/12.0/pos_payment_method_cashdro>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions pos_payment_method_cashdro/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
20 changes: 20 additions & 0 deletions pos_payment_method_cashdro/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2021 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "PoS Payment Method CashDro",
"summary": "Allows to pay with CashDro Terminals on the Point of Sale",
"version": "12.0.1.0.0",
"category": "Point Of Sale",
"website": "https://github.com/OCA/pos",
"author": "Tecnativa, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": [
"point_of_sale",
],
"data": [
"views/assets.xml",
"views/account_journal.xml",
],
"qweb": ["static/src/xml/pos_cashdro_terminal.xml"],
"installable": True,
}
85 changes: 85 additions & 0 deletions pos_payment_method_cashdro/i18n/pos_payment_method_cashdro.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_payment_method_cashdro
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.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: pos_payment_method_cashdro
#. openerp-web
#: code:addons/pos_payment_method_cashdro/static/src/xml/pos_cashdro_terminal.xml:16
#, python-format
msgid "Cancel transaction"
msgstr ""

#. module: pos_payment_method_cashdro
#. openerp-web
#: code:addons/pos_payment_method_cashdro/static/src/js/screens.js:206
#, python-format
msgid "CashDro Error"
msgstr ""

#. module: pos_payment_method_cashdro
#: model:ir.model.fields,field_description:pos_payment_method_cashdro.field_account_bank_statement_import_journal_creation__cashdro_password
#: model:ir.model.fields,field_description:pos_payment_method_cashdro.field_account_journal__cashdro_password
msgid "Cashdro Password"
msgstr ""

#. module: pos_payment_method_cashdro
#: model:ir.model.fields,field_description:pos_payment_method_cashdro.field_account_bank_statement_import_journal_creation__cashdro_payment_terminal
#: model:ir.model.fields,field_description:pos_payment_method_cashdro.field_account_journal__cashdro_payment_terminal
msgid "Cashdro Payment Terminal"
msgstr ""

#. module: pos_payment_method_cashdro
#: model:ir.model.fields,field_description:pos_payment_method_cashdro.field_account_bank_statement_import_journal_creation__cashdro_host
#: model:ir.model.fields,field_description:pos_payment_method_cashdro.field_account_journal__cashdro_host
msgid "Cashdro Terminal Host Name or IP address"
msgstr ""

#. module: pos_payment_method_cashdro
#: model:ir.model.fields,field_description:pos_payment_method_cashdro.field_account_bank_statement_import_journal_creation__cashdro_user
#: model:ir.model.fields,field_description:pos_payment_method_cashdro.field_account_journal__cashdro_user
msgid "Cashdro User"
msgstr ""

#. module: pos_payment_method_cashdro
#: model:ir.model.fields,help:pos_payment_method_cashdro.field_account_bank_statement_import_journal_creation__cashdro_host
#: model:ir.model.fields,help:pos_payment_method_cashdro.field_account_journal__cashdro_host
msgid "It must be reachable by the PoS in the store"
msgstr ""

#. module: pos_payment_method_cashdro
#: model:ir.model,name:pos_payment_method_cashdro.model_account_journal
msgid "Journal"
msgstr ""

#. module: pos_payment_method_cashdro
#. openerp-web
#: code:addons/pos_payment_method_cashdro/static/src/xml/pos_cashdro_terminal.xml:21
#, python-format
msgid "Start transaction"
msgstr ""

#. module: pos_payment_method_cashdro
#. openerp-web
#: code:addons/pos_payment_method_cashdro/static/src/js/screens.js:231
#, python-format
msgid "There is a transaction in progress, would you like to cancel it?"
msgstr ""

#. module: pos_payment_method_cashdro
#. openerp-web
#: code:addons/pos_payment_method_cashdro/static/src/js/screens.js:230
#, python-format
msgid "Transaction ongoing"
msgstr ""

1 change: 1 addition & 0 deletions pos_payment_method_cashdro/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import account_journal
17 changes: 17 additions & 0 deletions pos_payment_method_cashdro/models/account_journal.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Copyright 2021 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models


class AccountJournal(models.Model):
_inherit = "account.journal"
# TODO: In 13.0 this fields should be moved to `pos.payment.method`
# and be addod to the payment terminal selection

cashdro_payment_terminal = fields.Boolean()
cashdro_host = fields.Char(
string="Cashdro Terminal Host Name or IP address",
help="It must be reachable by the PoS in the store",
)
cashdro_user = fields.Char(string="Cashdro User")
cashdro_password = fields.Char(string="Cashdro Password")
9 changes: 9 additions & 0 deletions pos_payment_method_cashdro/readme/CONFIGURE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
To configure this module, you need to:

#. Go to a Point of Sale cash payment method or create a new one.
#. In the Point of Sale tab, set *Cashdro Payment Terminal* on.
#. Configure the Cashdro terminal hostname and credentials.
#. Configure the desired, Cashdro terminal in the proper PoS configurations.

Note that if a single payment method was used for cash in different stores, it should
be splitted in as many phisical stores there are.
7 changes: 7 additions & 0 deletions pos_payment_method_cashdro/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
* `Acysos S.L. <https://www.acysos.com>`_:

* Ignacio Ibeas

* `Tecnativa <https://www.tecnativa.com>`_

* David Vidal
2 changes: 2 additions & 0 deletions pos_payment_method_cashdro/readme/DESCRIPTION.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
This module allows to make payments with a Cashdro (https://www.cashdro.com) terminal
on the Point of Sale frontend.
8 changes: 8 additions & 0 deletions pos_payment_method_cashdro/readme/ROADMAP.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
* Cashdro terminals are designed to communicate in the local network, so they can't
receive or transmit any request to a remote Odoo server. So in order to implement
further features, la cash control or cash ins/outs it would be necessary to either:

- Prepare the Cashdro terminal for a remote use (VPN, dns, etc.) and implement the
corresponding backend methods.
- Develope PoS frontend modules that allow to perform such operations and extend this
one making use of them.
13 changes: 13 additions & 0 deletions pos_payment_method_cashdro/readme/USAGE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
With the proper configuration made:

#. Make a new PoS order and choose the cash payment method configured with the Cashdro
settings.
#. In the payment line, tap on the Cashdro request button (the one with a bill icon).
#. The request is sent to the Cashdro terminal that will ask the customer for the amount
to pay.
#. In this moment, a button with a ban icon will appear. It allows the cashier to cancel
the request before the payment is made.
#. When the customer pays the sale amount in the terminal, the Cashdro reports the
amount received and change delivered back.
#. The Point of Sale reflects it in the payment line and thus the order can be validated
now.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit ab4449f

Please sign in to comment.