diff --git a/.github/README.md b/.github/README.md
new file mode 100644
index 00000000..6c3f28d1
--- /dev/null
+++ b/.github/README.md
@@ -0,0 +1,129 @@
+# Continuous integration
+
+## Global picture
+
+Hosts are available through sftp (sftp is using ssh). The
+authentication is the SSH one through a private key on the github side
+(managed in github secrets) and accessible through
+`secrets.sftp_private_key` in the yaml workflow definition.
+
+All content of the workdir is sent to the hosts (ideally mirrored and
+only difference should be sent), but this is not yet the case for
+`lftp` limitation over using `sftp` and setting dates
+correctly. `rclone` should be able to handle this better but is not
+yet used. A simple git push could be studied also.
+
+To trigger the restart of odoo on the host, we set up a inotify
+watcher through `incron`.
+
+## Host setup
+
+### odoo
+
+To add `odoo` services to a compose read host, add this section to
+your `compose.yml`:
+
+```yaml
+odoo:
+ charm: odoo-tecnativa
+ docker-compose:
+ command:
+ - "--dev=xml,qweb,werkzeug"
+ - "--log-level=debug"
+ - "--limit-time-cpu=500"
+ - "--limit-time-real=500"
+ - "--limit-memory-soft=25273917440"
+ - "--limit-memory-hard=25273917440"
+ - "--addons-path=/opt/odoo/auto/lokavaluto,/opt/odoo/auto/addons"
+ volumes:
+ - /srv/datastore/data/odoo/opt/odoo/auto/lokavaluto:/opt/odoo/auto/lokavaluto:rw
+ image: docker.0k.io/mirror/odoo:rc_12.0-MYC-INIT-3.7
+ options:
+ workers: 4
+ modules:
+ - lcc_lokavaluto_app_connection
+ - lcc_comchain_base
+ - lcc_cyclos_base
+ relations:
+ web-proxy:
+ frontend:
+ domain: odoo.mydomain.org
+```
+
+Notice:
+
+- the `--addons` path correlates with the `volumes` section.
+- the `modules` section list the current modules
+
+### sftp
+
+To add `sftp` services to a compose ready host, add this section to
+your `compose.yml`:
+
+```yaml
+sftp:
+ docker-compose:
+ ports:
+ - "10322:22"
+ volumes:
+ - /srv/datastore/data/odoo/opt/odoo/auto/lokavaluto:/home/monujo/lokavaluto-addons:rw
+ options:
+ users:
+ monujo:
+ groups:
+ - monujo-rw:3000
+ password: yLzTieeTwJmMlFZG
+ keys:
+ - "ssh-rsa AAAAB3N...PUBLICKEYGOESHERE... odoo@example.org"
+```
+
+The volumes section allows to `publish` and give access to the place
+where odoo reads the module's code.
+
+The public key is the public key part corresponding to the private key
+that needs to be sent by the client (in github secrets).
+
+Note that group `monujo-rw` is important. You should give the right of
+all files that are to be modified the group `3000` from the host:
+
+```
+chown 1000:3000 /srv/datastore/data/odoo/opt/odoo/auto/lokavaluto -R
+```
+
+### incron
+
+Incron is the tool used for the github deployement to signal the end
+of the upload of the new files. It should trigger a restart of the
+odoo docker.
+
+Directory that allows triggering the event must be created and
+permissions should be set so sftp user can write in it:
+
+```bash
+mkdir -p /srv/datastore/data/sftp/home/monujo/lokavaluto-addons.updated
+cd /srv/datastore/data/sftp/home/monujo/lokavaluto-addons.updated
+chown 1000:3000 -R .
+```
+
+To install `incron`:
+
+```bash
+apt-get install incron
+echo "root" > /etc/incron.allow
+```
+
+To edit:
+
+```bash
+EDITOR=vim incrontab -e
+```
+
+Line to create in current installation
+
+```
+/srv/datastore/data/sftp/home/monujo/lokavaluto-addons.updated IN_CREATE,IN_MODIFY docker restart myc_odoo_1
+```
+
+It is expected that the client will delete and add a file in folder:
+`lokavaluto-addons.updated` to trigger the reload.
+
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 00000000..c309004a
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,54 @@
+name: "🚀 deploy CI"
+on:
+ push:
+ branches:
+ - demo
+ - test
+ - dev1
+ - dev2
+ - dev3
+ paths-ignore:
+ - 'README*'
+
+jobs:
+ deploy:
+ name: Deploy
+ runs-on: ubuntu-latest
+ steps:
+ - name: 🚚 Get code
+ uses: actions/checkout@v2
+
+ ## XXXvlab: contrary two what was expected from ltfp in mirror
+ ## mode, this setup is highly inefficient: because through sftp,
+ ## lftp is not able to set correctly dates so it just delete and
+ ## rewrite everything on the other end. We need to change that
+ ## with ``rclone`` solution I guess if we don't want to change
+ ## ``sftp`` protocol.
+ - name: "📂 SFTP Sync files"
+ uses: swillner/sftp-sync-action@v1.0
+ with:
+ server: ${{ github.ref_name }}.lokavaluto.fr
+ port: 10322
+ user: monujo
+ user_private_key: ${{ secrets.sftp_private_key }}
+ host_public_key:
+ local: ./
+ remote: /lokavaluto-addons
+ mirror_options: "--exclude-glob=.git*/ --verbose"
+ ## This part is to ensure that we can trigger actions after
+ ## the sync occured on the destination host.
+ - name: 🔨 Prepare last-updated
+ run: |
+ mkdir last-updated
+ date > last-updated/done
+ - name: "📂 SFTP Send last-updated"
+ uses: swillner/sftp-sync-action@v1.0
+ with:
+ server: ${{ github.ref_name }}.lokavaluto.fr
+ port: 10322
+ user: monujo
+ user_private_key: ${{ secrets.sftp_private_key }}
+ host_public_key:
+ local: ./last-updated
+ remote: /lokavaluto-addons.updated
+ mirror_options: "--verbose"
diff --git a/lcc_comchain_base/__manifest__.py b/lcc_comchain_base/__manifest__.py
index c1c9cd82..c3aea28a 100644
--- a/lcc_comchain_base/__manifest__.py
+++ b/lcc_comchain_base/__manifest__.py
@@ -17,7 +17,7 @@
"data": [
"security/ir_rule.xml",
"views/res_config_settings_view.xml",
- "views/lcc_backend.xml",
+ "views/wallet.xml",
"data/comchain_data.xml",
],
# only loaded in demonstration mode
diff --git a/lcc_comchain_base/i18n/fr.po b/lcc_comchain_base/i18n/fr.po
index 2112b47b..6f683a43 100644
--- a/lcc_comchain_base/i18n/fr.po
+++ b/lcc_comchain_base/i18n/fr.po
@@ -1,37 +1,57 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * lcc_comchain_base
+# * lcc_comchain_base
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-11 21:24+0000\n"
-"PO-Revision-Date: 2023-12-11 21:24+0000\n"
-"Last-Translator: <>\n"
+"POT-Creation-Date: 2024-06-27 08:59+0000\n"
+"PO-Revision-Date: 2024-06-27 08:59+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: lcc_comchain_base
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
+msgid "Comchain Last block checked "
+msgstr "Dernier bloc Comchain vérifié "
+
+#. module: lcc_comchain_base
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
+msgid "Comchain Odoo wallet "
+msgstr "PPortefeuille Comchain Odoo "
+
+#. module: lcc_comchain_base
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
+msgid "Comchain Safe wallet "
+msgstr "Portefeuille Comchain Coffre-Fort "
+
#. module: lcc_comchain_base
#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
msgid "Comchain currency name "
msgstr "Nom de la monnaie Comchain "
+#. module: lcc_comchain_base
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
+msgid "Comchain top-up messages "
+msgstr "Messages de recharge Comchain "
+
#. module: lcc_comchain_base
#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_id
msgid "Address"
msgstr "Adresse"
#. module: lcc_comchain_base
-#: selection:res.partner.backend,comchain_type:0
+#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__2
msgid "Admin"
msgstr ""
#. module: lcc_comchain_base
-#: selection:res.partner.backend,type:0
+#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__type__comchain
msgid "Comchain"
msgstr ""
@@ -46,7 +66,7 @@ msgid "Comchain service configuration"
msgstr "Configuration de Comchain"
#. module: lcc_comchain_base
-#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.lcc_backend_comchain_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.wallet_comchain_form_view
msgid "Comchain specific"
msgstr "Spécifique Comchain"
@@ -56,14 +76,14 @@ msgid "Companies"
msgstr "Sociétés"
#. module: lcc_comchain_base
-#: selection:res.partner.backend,comchain_type:0
+#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__1
msgid "Company"
msgstr "Société"
#. module: lcc_comchain_base
#: model:ir.model,name:lcc_comchain_base.model_res_config_settings
msgid "Config Settings"
-msgstr "Paramètres de config"
+msgstr "Paramètres de configuration"
#. module: lcc_comchain_base
#: model:ir.model,name:lcc_comchain_base.model_res_partner
@@ -86,27 +106,39 @@ msgid "Currency name"
msgstr "Nom de la monnaie"
#. module: lcc_comchain_base
-#: model:ir.model,name:lcc_comchain_base.model_account_invoice
-msgid "Invoice"
-msgstr "Facture"
+#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_company__last_block_checked_nb
+#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_config_settings__last_block_checked_nb
+msgid "Last Block Checked Nb"
+msgstr "Nb dernier bloc vérifié"
#. module: lcc_comchain_base
#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_credit_max
msgid "Max Credit limit"
msgstr "Crédit max"
+#. module: lcc_comchain_base
+#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_company__message_from
+#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_config_settings__message_from
+msgid "Message from"
+msgstr "Message de"
+
#. module: lcc_comchain_base
#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_message_key
msgid "Message keys"
msgstr "Clés de message"
+#. module: lcc_comchain_base
+#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_company__message_to
+#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_config_settings__message_to
+msgid "Message to"
+msgstr "Message à "
+
#. module: lcc_comchain_base
#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_credit_min
msgid "Min Credit limit"
msgstr "Crédit min"
#. module: lcc_comchain_base
-#: model:product.product,name:lcc_comchain_base.product_product_comchain
#: model:product.template,name:lcc_comchain_base.product_product_comchain_product_template
msgid "Numeric LCC (comchain)"
msgstr "MLC Numérique (comchain)"
@@ -124,7 +156,7 @@ msgid "Odoo wallet password"
msgstr "Mot de pass du portefeuille Odoo"
#. module: lcc_comchain_base
-#: selection:res.partner.backend,comchain_type:0
+#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__0
msgid "Personal"
msgstr "Personnel"
@@ -146,38 +178,30 @@ msgstr "Sélectionner le contact lié au portefeuille Coffre-fort"
#. module: lcc_comchain_base
#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
-msgid "Select the partners linked to the Safe and Odoo wallets. The\n"
-" name of these partners will be displayed as the sender of the\n"
-" top-up."
-msgstr "Sélectionner les contacts liés aux portefeuilles Coffre-fort et Odoo. Les\n"
-" noms de ces contacts seront affichés comme source des\n"
-" chargements."
-
-#. module: lcc_comchain_base
-#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_type
-#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__type
-msgid "Type"
+msgid ""
+"Select the partner linked to the Safe wallet.\n"
+" This wallet will be used for top up and reconversion\n"
+" processes."
msgstr ""
+"Sélectionner le contact lié au portefeuille Coffre-Fort.\n"
+" Ce porteeuille sera utilisé pour les chargements et les reconversions."
#. module: lcc_comchain_base
-#: model:product.product,uom_name:lcc_comchain_base.product_product_comchain
-#: model:product.template,uom_name:lcc_comchain_base.product_product_comchain_product_template
-msgid "Unit(s)"
-msgstr "Unité(s)"
-
-#. module: lcc_comchain_base
-#: model:product.category,name:lcc_comchain_base.product_category_comchain
-msgid "comchain"
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
+msgid ""
+"Select the partners linked to the Odoo wallet, that has the\n"
+" delegation to perform top-ups from the safe wallet."
msgstr ""
+"Sélectionner le contact lié au portefeuille de Odoo, qui a la\n"
+" procuration pour réaliser des chargements depuis le portefeuille Coffre-fort."
#. module: lcc_comchain_base
-#: model:product.product,weight_uom_name:lcc_comchain_base.product_product_comchain
-#: model:product.template,weight_uom_name:lcc_comchain_base.product_product_comchain_product_template
-msgid "kg"
+#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_type
+#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__type
+msgid "Type"
msgstr ""
#. module: lcc_comchain_base
#: model:ir.model,name:lcc_comchain_base.model_res_partner_backend
msgid "res.partner.backend"
msgstr ""
-
diff --git a/lcc_comchain_base/i18n/lcc_comchain_base.pot b/lcc_comchain_base/i18n/lcc_comchain_base.pot
index 360db9fe..1258f40a 100644
--- a/lcc_comchain_base/i18n/lcc_comchain_base.pot
+++ b/lcc_comchain_base/i18n/lcc_comchain_base.pot
@@ -1,37 +1,57 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * lcc_comchain_base
+# * lcc_comchain_base
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-11 21:23+0000\n"
-"PO-Revision-Date: 2023-12-11 21:23+0000\n"
-"Last-Translator: <>\n"
+"POT-Creation-Date: 2024-06-27 08:56+0000\n"
+"PO-Revision-Date: 2024-06-27 08:56+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: lcc_comchain_base
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
+msgid "Comchain Last block checked "
+msgstr ""
+
+#. module: lcc_comchain_base
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
+msgid "Comchain Odoo wallet "
+msgstr ""
+
+#. module: lcc_comchain_base
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
+msgid "Comchain Safe wallet "
+msgstr ""
+
#. module: lcc_comchain_base
#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
msgid "Comchain currency name "
msgstr ""
+#. module: lcc_comchain_base
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
+msgid "Comchain top-up messages "
+msgstr ""
+
#. module: lcc_comchain_base
#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_partner_backend__comchain_id
msgid "Address"
msgstr ""
#. module: lcc_comchain_base
-#: selection:res.partner.backend,comchain_type:0
+#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__2
msgid "Admin"
msgstr ""
#. module: lcc_comchain_base
-#: selection:res.partner.backend,type:0
+#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__type__comchain
msgid "Comchain"
msgstr ""
@@ -46,7 +66,7 @@ msgid "Comchain service configuration"
msgstr ""
#. module: lcc_comchain_base
-#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.lcc_backend_comchain_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.wallet_comchain_form_view
msgid "Comchain specific"
msgstr ""
@@ -56,7 +76,7 @@ msgid "Companies"
msgstr ""
#. module: lcc_comchain_base
-#: selection:res.partner.backend,comchain_type:0
+#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__1
msgid "Company"
msgstr ""
@@ -86,8 +106,9 @@ msgid "Currency name"
msgstr ""
#. module: lcc_comchain_base
-#: model:ir.model,name:lcc_comchain_base.model_account_invoice
-msgid "Invoice"
+#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_company__last_block_checked_nb
+#: model:ir.model.fields,field_description:lcc_comchain_base.field_res_config_settings__last_block_checked_nb
+msgid "Last Block Checked Nb"
msgstr ""
#. module: lcc_comchain_base
@@ -118,7 +139,6 @@ msgid "Min Credit limit"
msgstr ""
#. module: lcc_comchain_base
-#: model:product.product,name:lcc_comchain_base.product_product_comchain
#: model:product.template,name:lcc_comchain_base.product_product_comchain_product_template
msgid "Numeric LCC (comchain)"
msgstr ""
@@ -136,7 +156,7 @@ msgid "Odoo wallet password"
msgstr ""
#. module: lcc_comchain_base
-#: selection:res.partner.backend,comchain_type:0
+#: model:ir.model.fields.selection,name:lcc_comchain_base.selection__res_partner_backend__comchain_type__0
msgid "Personal"
msgstr ""
@@ -147,25 +167,28 @@ msgid "Safe Wallet Partner"
msgstr ""
#. module: lcc_comchain_base
-#: model:ir.model,name:lcc_comchain_base.model_sale_order
-msgid "Sale Order"
+#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
+msgid "Select partner linked to Odoo wallet."
msgstr ""
#. module: lcc_comchain_base
#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
-msgid "Select partner linked to Odoo wallet."
+msgid "Select partner linked to safe wallet."
msgstr ""
#. module: lcc_comchain_base
#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
-msgid "Select partner linked to safe wallet."
+msgid ""
+"Select the partner linked to the Safe wallet.\n"
+" This wallet will be used for top up and reconversion\n"
+" processes."
msgstr ""
#. module: lcc_comchain_base
#: model_terms:ir.ui.view,arch_db:lcc_comchain_base.res_config_settings_view_form_comchain
-msgid "Select the partners linked to the Safe and Odoo wallets. The\n"
-" name of these partners will be displayed as the sender of the\n"
-" top-up."
+msgid ""
+"Select the partners linked to the Odoo wallet, that has the\n"
+" delegation to perform top-ups from the safe wallet."
msgstr ""
#. module: lcc_comchain_base
@@ -174,25 +197,7 @@ msgstr ""
msgid "Type"
msgstr ""
-#. module: lcc_comchain_base
-#: model:product.product,uom_name:lcc_comchain_base.product_product_comchain
-#: model:product.template,uom_name:lcc_comchain_base.product_product_comchain_product_template
-msgid "Unit(s)"
-msgstr ""
-
-#. module: lcc_comchain_base
-#: model:product.category,name:lcc_comchain_base.product_category_comchain
-msgid "comchain"
-msgstr ""
-
-#. module: lcc_comchain_base
-#: model:product.product,weight_uom_name:lcc_comchain_base.product_product_comchain
-#: model:product.template,weight_uom_name:lcc_comchain_base.product_product_comchain_product_template
-msgid "kg"
-msgstr ""
-
#. module: lcc_comchain_base
#: model:ir.model,name:lcc_comchain_base.model_res_partner_backend
msgid "res.partner.backend"
msgstr ""
-
diff --git a/lcc_comchain_base/models/__init__.py b/lcc_comchain_base/models/__init__.py
index 69f67cf3..94132149 100644
--- a/lcc_comchain_base/models/__init__.py
+++ b/lcc_comchain_base/models/__init__.py
@@ -1,4 +1,4 @@
from . import res_config_settings
from . import company
from . import res_partner
-from . import res_partner_backend
+from . import wallet
diff --git a/lcc_comchain_base/models/company.py b/lcc_comchain_base/models/company.py
index 62694cd2..6c81a3d9 100644
--- a/lcc_comchain_base/models/company.py
+++ b/lcc_comchain_base/models/company.py
@@ -1,4 +1,11 @@
+import logging
+from datetime import datetime
from odoo import models, fields, api
+from odoo.addons.lcc_lokavaluto_app_connection import tools
+from pyc3l import Pyc3l
+
+pyc3l = Pyc3l()
+_logger = logging.getLogger(__name__)
class Company(models.Model):
@@ -19,3 +26,54 @@ def _default_messages(self):
comchain_odoo_wallet_password = fields.Char(string="Odoo wallet password")
message_from = fields.Char("Message from", default=_default_messages)
message_to = fields.Char("Message to", default=_default_messages)
+
+ last_block_checked_nb = fields.Integer('Last Block Checked Nb')
+
+ def _retrieve_last_debit_transactions(self):
+ """A list of transactions (dictionnary) is expected, with the following data:
+ - sender: the Odoo name of the wallet concerned by the debit request,
+ - amount: the amount debited from the wallet,
+ - tx_id: the transaction ID in the digital currency backend
+ - tx_timestamp: the timestamp of the transaction
+ """
+ res = super(Company, self)._retrieve_last_debit_transactions()
+
+ # Retrieve all the debit transactions from the newly created blocks
+ company_id = self.env.user.company_id
+ try:
+ # Get the ID of the last blockchain block built
+ last_block_id = pyc3l.getBlockNumber()
+ # Loop on all the blocks created since the last check
+ _logger.info("Start reconversion check on Comchain from block %s to block %s" % (company_id.last_block_checked_nb, last_block_id) )
+ for block_nb in range(company_id.last_block_checked_nb + 1, last_block_id + 1):
+ _logger.info("Get Debit Transactions - read block %s" % block_nb)
+ # Get the block transactions
+ block_txs = pyc3l.BlockByNumber(block_nb).bc_txs
+ for tx in block_txs:
+ if not tx.currency:
+ continue # this transaction is not linked with a currency
+ if not tx.currency.name.lower() == company_id.comchain_currency_name.lower():
+ continue # this transaction is about another smart contract
+ full_tx = tx.full_tx
+ if not full_tx.is_cc_transaction:
+ continue # this transaction is not a digital currency transfer
+ if not full_tx.direction == 1:
+ continue # this transaction is not a reconversion
+ _logger.info("Transactions %s retrieved" % tx.hash)
+ sender_adress = full_tx.add2.lstrip("0x")
+ matched_wallet = self.env["res.partner.backend"].search([("comchain_id", "ilike", sender_adress)])
+ if len(matched_wallet) == 0:
+ continue # this transactions comes from a wallet no registered in current Odoo database
+ string_amount = str(full_tx.sent)
+ res.append({
+ "sender": "comchain:%s" % sender_adress,
+ "amount": f"{string_amount[0:-2]}.{string_amount[-2:]}",
+ "tx_id": tx.hash,
+ "tx_timestamp": datetime.fromtimestamp(int(full_tx.receivedat["value"])),
+ })
+
+ company_id.last_block_checked_nb = last_block_id
+ except Exception as e:
+ _logger.error(tools.format_last_exception())
+
+ return res
\ No newline at end of file
diff --git a/lcc_comchain_base/models/res_config_settings.py b/lcc_comchain_base/models/res_config_settings.py
index 7b28656e..a2eaba19 100644
--- a/lcc_comchain_base/models/res_config_settings.py
+++ b/lcc_comchain_base/models/res_config_settings.py
@@ -33,3 +33,5 @@ class ResConfigSettings(models.TransientModel):
message_to = fields.Char(
related="company_id.message_to", readonly=False, string="Message to"
)
+
+ last_block_checked_nb = fields.Integer(related="company_id.last_block_checked_nb", readonly=False, string='Last Block Checked Nb')
diff --git a/lcc_comchain_base/models/res_partner_backend.py b/lcc_comchain_base/models/wallet.py
similarity index 99%
rename from lcc_comchain_base/models/res_partner_backend.py
rename to lcc_comchain_base/models/wallet.py
index 0158a17d..bbac97e4 100644
--- a/lcc_comchain_base/models/res_partner_backend.py
+++ b/lcc_comchain_base/models/wallet.py
@@ -77,6 +77,7 @@ def comchain_backend_accounts_data(self):
"wallet": wallet,
"message_key": self.comchain_message_key,
"active": self.status == "active",
+ "reconversion": self.is_reconversion_allowed,
}
)
diff --git a/lcc_comchain_base/views/res_config_settings_view.xml b/lcc_comchain_base/views/res_config_settings_view.xml
index 5caf6e4d..ced7f648 100644
--- a/lcc_comchain_base/views/res_config_settings_view.xml
+++ b/lcc_comchain_base/views/res_config_settings_view.xml
@@ -19,40 +19,66 @@
-
+
-
-
-
-
-
-
-
+
Comchain Last block checked
+
+
+
+
+
+
+
+
Comchain Safe wallet
- Select the partners linked to the Safe and Odoo wallets. The
- name of these partners will be displayed as the sender of the
- top-up.
+ Select the partner linked to the Safe wallet.
+ This wallet will be used for top up and reconversion
+ processes.
-
+
+
+
+
+
+
Comchain Odoo wallet
+
+ Select the partners linked to the Odoo wallet, that has the
+ delegation to perform top-ups from the safe wallet.
+
-
+
+
+
+
+
Comchain top-up messages
+
+
+
+
+
+
+
+
+
+
diff --git a/lcc_comchain_base/views/lcc_backend.xml b/lcc_comchain_base/views/wallet.xml
similarity index 85%
rename from lcc_comchain_base/views/lcc_backend.xml
rename to lcc_comchain_base/views/wallet.xml
index 8a80e62a..6e6ee598 100644
--- a/lcc_comchain_base/views/lcc_backend.xml
+++ b/lcc_comchain_base/views/wallet.xml
@@ -1,10 +1,10 @@
-
- lcc.backend.comchain.form.view
+
+ wallet.comchain.form.view
res.partner.backend
-
+
0
diff --git a/lcc_cyclos_base/__manifest__.py b/lcc_cyclos_base/__manifest__.py
index ca4c278d..db1ed079 100644
--- a/lcc_cyclos_base/__manifest__.py
+++ b/lcc_cyclos_base/__manifest__.py
@@ -19,7 +19,7 @@
"security/ir_rule.xml",
"views/res_config_settings_view.xml",
"views/res_partner_view.xml",
- "views/lcc_backend.xml",
+ "views/wallet.xml",
"data/cyclos_data.xml",
],
'assets': {
diff --git a/lcc_cyclos_base/data/cyclos_data.xml b/lcc_cyclos_base/data/cyclos_data.xml
index 9bbeca41..24b14b8c 100644
--- a/lcc_cyclos_base/data/cyclos_data.xml
+++ b/lcc_cyclos_base/data/cyclos_data.xml
@@ -2,19 +2,31 @@
-
+
Cyclos
1.0
1.0
-
-
+
+
Numeric LCC (Cyclos)
-
-
+
+
consu
-
-
+
+
+ Cyclos Debit Wallet
+
+
+ cyclos:system
+ cyclos
+
+ active
+ system
+
+
+
+
\ No newline at end of file
diff --git a/lcc_cyclos_base/i18n/fr.po b/lcc_cyclos_base/i18n/fr.po
index 03a78326..1772a9bc 100644
--- a/lcc_cyclos_base/i18n/fr.po
+++ b/lcc_cyclos_base/i18n/fr.po
@@ -1,20 +1,25 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * lcc_cyclos_base
+# * lcc_cyclos_base
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-11 21:22+0000\n"
-"PO-Revision-Date: 2023-12-11 21:22+0000\n"
-"Last-Translator: <>\n"
+"POT-Creation-Date: 2024-06-27 08:21+0000\n"
+"PO-Revision-Date: 2024-06-27 08:21+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: lcc_cyclos_base
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos
+msgid "
Cyclos Debit Wallet Partner "
+msgstr "
Contact du portefeuille de débit Cyclos "
+
#. module: lcc_cyclos_base
#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos
msgid "
Cyclos server Login "
@@ -31,12 +36,17 @@ msgid "
Cyclos server URL "
msgstr "
URL Cyclos serveur "
#. module: lcc_cyclos_base
-#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos
+msgid "
Date of last reconversion check "
+msgstr "
Date de la dernière vérification des reconversions "
+
+#. module: lcc_cyclos_base
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view
msgid "Activate Cyclos Wallet"
msgstr "Activer le portefeuille"
#. module: lcc_cyclos_base
-#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view
msgid "Block Cyclos Wallet"
msgstr "Bloquer le portefeuille"
@@ -53,7 +63,7 @@ msgstr "Sociétés"
#. module: lcc_cyclos_base
#: model:ir.model,name:lcc_cyclos_base.model_res_config_settings
msgid "Config Settings"
-msgstr "Paramètres de config"
+msgstr "Paramètres de configuration"
#. module: lcc_cyclos_base
#: model:ir.model,name:lcc_cyclos_base.model_res_partner
@@ -66,11 +76,16 @@ msgid "Create new Cyclos Wallet"
msgstr "Créer un portefeuille Cyclos"
#. module: lcc_cyclos_base
-#: model:product.category,name:lcc_cyclos_base.product_category_cyclos
-#: selection:res.partner.backend,type:0
+#: model:ir.model.fields.selection,name:lcc_cyclos_base.selection__res_partner_backend__type__cyclos
msgid "Cyclos"
msgstr ""
+#. module: lcc_cyclos_base
+#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_debit_wallet_partner
+#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_config_settings__cyclos_debit_wallet_partner
+msgid "Cyclos Debit Wallet Partner"
+msgstr "Contact portefeuille de débit Cyclos"
+
#. module: lcc_cyclos_base
#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_partner_backend__cyclos_status
msgid "Cyclos Status"
@@ -92,19 +107,20 @@ msgid "Cyclos service configuration"
msgstr "Configuration de Cyclos"
#. module: lcc_cyclos_base
-#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view
msgid "Cyclos specific"
msgstr "Spécifique Cyclos"
#. module: lcc_cyclos_base
-#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view
msgid "Disable Cyclos Wallet"
msgstr "Désactiver le portefeuille"
#. module: lcc_cyclos_base
-#: model:ir.model,name:lcc_cyclos_base.model_account_invoice
-msgid "Invoice"
-msgstr "Facture"
+#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_date_last_reconversion_check
+#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_config_settings__cyclos_date_last_reconversion_check
+msgid "Last reconversion date on Cyclos"
+msgstr "Dernière date de reconversion sur Cyclos"
#. module: lcc_cyclos_base
#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_server_login
@@ -113,7 +129,6 @@ msgid "Login for cyclos server"
msgstr "Login pour le serveur Cyclos"
#. module: lcc_cyclos_base
-#: model:product.product,name:lcc_cyclos_base.product_product_cyclos
#: model:product.template,name:lcc_cyclos_base.product_product_cyclos_product_template
msgid "Numeric LCC (Cyclos)"
msgstr "MLC Numérique (Cyclos)"
@@ -125,28 +140,20 @@ msgid "Password for cyclos server"
msgstr "Mot de passe pour le serveur Cyclos"
#. module: lcc_cyclos_base
-#: code:addons/lcc_cyclos_base/models/res_users.py:26
-#: code:addons/lcc_cyclos_base/models/res_users.py:37
+#. odoo-python
+#: code:addons/lcc_cyclos_base/models/res_users.py:0
+#: code:addons/lcc_cyclos_base/models/res_users.py:0
+#: code:addons/lcc_cyclos_base/models/res_users.py:0
+#: code:addons/lcc_cyclos_base/models/res_users.py:0
#, python-format
msgid "Password must contain only the following characters: %s"
msgstr "Le mot de passe doit contenir seulement les caractères suivants : %s"
-#. module: lcc_cyclos_base
-#: model:ir.model,name:lcc_cyclos_base.model_sale_order
-msgid "Sale Order"
-msgstr "Bon de commande"
-
#. module: lcc_cyclos_base
#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_partner_backend__type
msgid "Type"
msgstr ""
-#. module: lcc_cyclos_base
-#: model:product.product,uom_name:lcc_cyclos_base.product_product_cyclos
-#: model:product.template,uom_name:lcc_cyclos_base.product_product_cyclos_product_template
-msgid "Unit(s)"
-msgstr "Unité(s)"
-
#. module: lcc_cyclos_base
#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_server_url
msgid "Url for cyclos server"
@@ -159,22 +166,15 @@ msgstr "URL pour le serveur Cyclos"
#. module: lcc_cyclos_base
#: model:ir.model,name:lcc_cyclos_base.model_res_users
-msgid "Users"
-msgstr "Utilisateurs"
+msgid "User"
+msgstr "Utilisateur"
#. module: lcc_cyclos_base
-#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view
msgid "Validate Cyclos Wallet"
msgstr "Activer le portefeuille"
-#. module: lcc_cyclos_base
-#: model:product.product,weight_uom_name:lcc_cyclos_base.product_product_cyclos
-#: model:product.template,weight_uom_name:lcc_cyclos_base.product_product_cyclos_product_template
-msgid "kg"
-msgstr ""
-
#. module: lcc_cyclos_base
#: model:ir.model,name:lcc_cyclos_base.model_res_partner_backend
msgid "res.partner.backend"
msgstr ""
-
diff --git a/lcc_cyclos_base/i18n/lcc_cyclos_base.pot b/lcc_cyclos_base/i18n/lcc_cyclos_base.pot
index dbabb07c..9ded3104 100644
--- a/lcc_cyclos_base/i18n/lcc_cyclos_base.pot
+++ b/lcc_cyclos_base/i18n/lcc_cyclos_base.pot
@@ -1,20 +1,25 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * lcc_cyclos_base
+# * lcc_cyclos_base
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-11 21:20+0000\n"
-"PO-Revision-Date: 2023-12-11 21:20+0000\n"
-"Last-Translator: <>\n"
+"POT-Creation-Date: 2024-06-27 08:20+0000\n"
+"PO-Revision-Date: 2024-06-27 08:20+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: lcc_cyclos_base
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos
+msgid "
Cyclos Debit Wallet Partner "
+msgstr ""
+
#. module: lcc_cyclos_base
#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos
msgid "
Cyclos server Login "
@@ -31,12 +36,17 @@ msgid "
Cyclos server URL "
msgstr ""
#. module: lcc_cyclos_base
-#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.res_config_settings_view_form_cyclos
+msgid "
Date of last reconversion check "
+msgstr ""
+
+#. module: lcc_cyclos_base
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view
msgid "Activate Cyclos Wallet"
msgstr ""
#. module: lcc_cyclos_base
-#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view
msgid "Block Cyclos Wallet"
msgstr ""
@@ -66,11 +76,16 @@ msgid "Create new Cyclos Wallet"
msgstr ""
#. module: lcc_cyclos_base
-#: model:product.category,name:lcc_cyclos_base.product_category_cyclos
-#: selection:res.partner.backend,type:0
+#: model:ir.model.fields.selection,name:lcc_cyclos_base.selection__res_partner_backend__type__cyclos
msgid "Cyclos"
msgstr ""
+#. module: lcc_cyclos_base
+#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_debit_wallet_partner
+#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_config_settings__cyclos_debit_wallet_partner
+msgid "Cyclos Debit Wallet Partner"
+msgstr ""
+
#. module: lcc_cyclos_base
#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_partner_backend__cyclos_status
msgid "Cyclos Status"
@@ -92,18 +107,19 @@ msgid "Cyclos service configuration"
msgstr ""
#. module: lcc_cyclos_base
-#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view
msgid "Cyclos specific"
msgstr ""
#. module: lcc_cyclos_base
-#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view
msgid "Disable Cyclos Wallet"
msgstr ""
#. module: lcc_cyclos_base
-#: model:ir.model,name:lcc_cyclos_base.model_account_invoice
-msgid "Invoice"
+#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_date_last_reconversion_check
+#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_config_settings__cyclos_date_last_reconversion_check
+msgid "Last reconversion date on Cyclos"
msgstr ""
#. module: lcc_cyclos_base
@@ -113,7 +129,6 @@ msgid "Login for cyclos server"
msgstr ""
#. module: lcc_cyclos_base
-#: model:product.product,name:lcc_cyclos_base.product_product_cyclos
#: model:product.template,name:lcc_cyclos_base.product_product_cyclos_product_template
msgid "Numeric LCC (Cyclos)"
msgstr ""
@@ -125,28 +140,20 @@ msgid "Password for cyclos server"
msgstr ""
#. module: lcc_cyclos_base
-#: code:addons/lcc_cyclos_base/models/res_users.py:26
-#: code:addons/lcc_cyclos_base/models/res_users.py:37
+#. odoo-python
+#: code:addons/lcc_cyclos_base/models/res_users.py:0
+#: code:addons/lcc_cyclos_base/models/res_users.py:0
+#: code:addons/lcc_cyclos_base/models/res_users.py:0
+#: code:addons/lcc_cyclos_base/models/res_users.py:0
#, python-format
msgid "Password must contain only the following characters: %s"
msgstr ""
-#. module: lcc_cyclos_base
-#: model:ir.model,name:lcc_cyclos_base.model_sale_order
-msgid "Sale Order"
-msgstr ""
-
#. module: lcc_cyclos_base
#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_partner_backend__type
msgid "Type"
msgstr ""
-#. module: lcc_cyclos_base
-#: model:product.product,uom_name:lcc_cyclos_base.product_product_cyclos
-#: model:product.template,uom_name:lcc_cyclos_base.product_product_cyclos_product_template
-msgid "Unit(s)"
-msgstr ""
-
#. module: lcc_cyclos_base
#: model:ir.model.fields,field_description:lcc_cyclos_base.field_res_company__cyclos_server_url
msgid "Url for cyclos server"
@@ -159,22 +166,15 @@ msgstr ""
#. module: lcc_cyclos_base
#: model:ir.model,name:lcc_cyclos_base.model_res_users
-msgid "Users"
+msgid "User"
msgstr ""
#. module: lcc_cyclos_base
-#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.lcc_backend_cyclos_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_cyclos_base.wallet_cyclos_form_view
msgid "Validate Cyclos Wallet"
msgstr ""
-#. module: lcc_cyclos_base
-#: model:product.product,weight_uom_name:lcc_cyclos_base.product_product_cyclos
-#: model:product.template,weight_uom_name:lcc_cyclos_base.product_product_cyclos_product_template
-msgid "kg"
-msgstr ""
-
#. module: lcc_cyclos_base
#: model:ir.model,name:lcc_cyclos_base.model_res_partner_backend
msgid "res.partner.backend"
msgstr ""
-
diff --git a/lcc_cyclos_base/models/__init__.py b/lcc_cyclos_base/models/__init__.py
index d4f6f86a..07d26c60 100644
--- a/lcc_cyclos_base/models/__init__.py
+++ b/lcc_cyclos_base/models/__init__.py
@@ -1,5 +1,5 @@
from . import res_config_settings
from . import company
from . import res_partner
-from . import res_partner_backend
+from . import wallet
from . import res_users
diff --git a/lcc_cyclos_base/models/company.py b/lcc_cyclos_base/models/company.py
index 16a90dcd..9c76e043 100644
--- a/lcc_cyclos_base/models/company.py
+++ b/lcc_cyclos_base/models/company.py
@@ -1,8 +1,16 @@
+import json
import re
-from urllib.parse import urlparse
+import requests
+from datetime import datetime, timedelta
+from requests.auth import HTTPBasicAuth
+from urllib.parse import urlparse, quote
from werkzeug.exceptions import NotFound
from odoo import models, fields
+from odoo.addons.lcc_lokavaluto_app_connection import tools
+import logging
+
+_logger = logging.getLogger(__name__)
class Company(models.Model):
_inherit = "res.company"
@@ -14,6 +22,12 @@ class Company(models.Model):
cyclos_server_password = fields.Char(string="Password for cyclos server")
+ cyclos_debit_wallet_partner = fields.Many2one(
+ "res.partner", string="Cyclos Debit Wallet Partner"
+ )
+
+ cyclos_date_last_reconversion_check = fields.Datetime('Last reconversion date on Cyclos')
+
def get_cyclos_server_domain(self):
self.ensure_one()
url = self.cyclos_server_url
@@ -31,3 +45,98 @@ def get_cyclos_server_domain(self):
% (parsed_uri.netloc, url)
)
return parsed_uri.netloc
+
+
+ def cyclos_rest_call(
+ self, method, entrypoint, data={}, api_login=False, api_password=False
+ ):
+ self.ensure_one()
+ headers = {"Content-type": "application/json", "Accept": "text/plain"}
+ requests.packages.urllib3.disable_warnings()
+ if not api_login:
+ api_login = self.cyclos_server_login
+ if not api_password:
+ api_password = self.cyclos_server_password
+ api_url = "%s%s" % (self.cyclos_server_url, entrypoint)
+ res = requests.request(
+ method.lower(),
+ api_url,
+ auth=HTTPBasicAuth(api_login, api_password),
+ verify=False,
+ data=json.dumps(data),
+ headers=headers,
+ )
+ try:
+ res.raise_for_status()
+ except requests.exceptions.HTTPError as e:
+ if e.response.status_code == 404:
+ raise Exception("404 when trying to reach cyclos on %s" % api_url)
+ try:
+ json_output = e.response.json()
+ _logger.debug(e.response.json())
+ except ValueError as e:
+ _logger.debug(e.response.text)
+ raise Exception("Non-json output from cyclos on %s" % api_url)
+
+ if e.response.status_code == 422:
+ msg = self.build_cyclos_error_message(e)
+ if msg != "":
+ raise ValueError(
+ "Cyclos serveur complained about:\n%s" % "\n".join(msg),
+ e.response,
+ )
+ raise
+ return res
+
+ def build_cyclos_error_message(self, e):
+ json_error = e.response.json()
+ msg = ""
+ if json_error.get("code") == "validation":
+ if json_error.get("propertyErrors"):
+ error = json_error.get("propertyErrors")
+ elif json_error.get("generalErrors"):
+ error = json_error.get("generalErrors")
+ msg = [" - %s: %s" % (k, ", ".join(v)) for k, v in error.items()]
+ return msg
+
+ # def format_datetime_to_milliseconds(date_str):
+ # dt = datetime.fromisoformat(date_str)
+ # return dt.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3]
+
+ def _retrieve_last_debit_transactions(self):
+ """A list of transactions (dictionnary) is expected, with the following data:
+ - sender: the Odoo name of the wallet concerned by the debit request,
+ - amount: the amount debited from the wallet,
+ - tx_id: the transaction ID in the digital currency backend
+ - tx_timestamp: the timestamp of the transaction
+ """
+ res = super(Company, self)._retrieve_last_debit_transactions()
+
+ # Retrieve all the debit transactions since the last check minus 1 min
+ company_id = self.env.user.company_id
+ # we need a date on ISO8601 format "1970-01-01T00:00:00.000", then encoded to be in an URL
+ if not company_id.cyclos_date_last_reconversion_check:
+ date = "1970-01-01T00:00:00.000"
+ else:
+ date=(company_id.cyclos_date_last_reconversion_check - timedelta(minutes=1)).strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3]
+ encoded_date = quote(date, safe='')
+
+ # Set all the search criteria in the REST request entrypoint
+ entrypoint = "/transfers?datePeriod=%s&orderBy=dateDesc&toAccountTypes=debit" % encoded_date
+
+ # Get the transactions from Cyclos
+ response = company_id.cyclos_rest_call("GET", entrypoint)
+ transactions = json.loads(response.text)
+ for tx in transactions:
+ try:
+ res.append({
+ "sender": "cyclos:%s" % tx["from"]["user"]["id"],
+ "amount": tx["amount"],
+ "tx_id": tx["id"],
+ "tx_timestamp": datetime.fromisoformat(tx["date"]).replace(tzinfo=None),
+ })
+ except Exception as e:
+ _logger.error(tools.format_last_exception())
+ if transactions:
+ company_id.cyclos_date_last_reconversion_check = datetime.fromisoformat(transactions[0]["date"]).replace(tzinfo=None)
+ return res
\ No newline at end of file
diff --git a/lcc_cyclos_base/models/res_config_settings.py b/lcc_cyclos_base/models/res_config_settings.py
index a79db842..f5c7f64b 100644
--- a/lcc_cyclos_base/models/res_config_settings.py
+++ b/lcc_cyclos_base/models/res_config_settings.py
@@ -21,3 +21,16 @@ class ResConfigSettings(models.TransientModel):
readonly=False,
string="Password for cyclos server",
)
+
+ cyclos_debit_wallet_partner = fields.Many2one(
+ "res.partner",
+ related="company_id.cyclos_debit_wallet_partner",
+ readonly=False,
+ string="Cyclos Debit Wallet Partner"
+ )
+
+ cyclos_date_last_reconversion_check = fields.Datetime(
+ related="company_id.cyclos_date_last_reconversion_check",
+ readonly=False,
+ string='Last reconversion date on Cyclos'
+ )
diff --git a/lcc_cyclos_base/models/res_partner.py b/lcc_cyclos_base/models/res_partner.py
index 5ae55641..738d1050 100644
--- a/lcc_cyclos_base/models/res_partner.py
+++ b/lcc_cyclos_base/models/res_partner.py
@@ -69,10 +69,10 @@ def cyclos_add_user(self):
],
}
try:
- res = backend_obj._cyclos_rest_call("POST", "/users", data=data)
+ res = self.env.user.company_id.cyclos_rest_call("POST", "/users", data=data)
except requests.exceptions.HTTPError as e:
if e.response.status_code == 422:
- msg = backend_obj._build_cyclos_error_message(e)
+ msg = self.env.user.company_id.build_cyclos_error_message(e)
if msg != "":
raise ValueError(
"Cyclos serveur complained about:\n%s" % "\n".join(msg),
diff --git a/lcc_cyclos_base/models/res_partner_backend.py b/lcc_cyclos_base/models/wallet.py
similarity index 74%
rename from lcc_cyclos_base/models/res_partner_backend.py
rename to lcc_cyclos_base/models/wallet.py
index a3318be9..906a090e 100644
--- a/lcc_cyclos_base/models/res_partner_backend.py
+++ b/lcc_cyclos_base/models/wallet.py
@@ -1,7 +1,5 @@
import requests
import json
-from urllib.parse import urlparse
-from requests.auth import HTTPBasicAuth
from odoo import models, fields, api
from odoo.addons.lcc_lokavaluto_app_connection import tools
import logging
@@ -32,10 +30,10 @@ def _update_search_data(self, backend_keys):
@property
def cyclos_backend_json_data(self):
"""Return normalized backend account's data"""
- cyclos_server_url = self.env.user.company_id.get_cyclos_server_domain()
+ backend_key = "%s:%s" % ("cyclos", self.env.user.company_id.get_cyclos_server_domain())
cyclos_product = self.env.ref("lcc_cyclos_base.product_product_cyclos").sudo()
data = {
- "type": "%s:%s" % ("cyclos", cyclos_server_url),
+ "type": backend_key,
"accounts": [],
"min_credit_amount": getattr(cyclos_product, "sale_min_qty", 0),
"max_credit_amount": getattr(cyclos_product, "sale_max_qty", 0),
@@ -46,8 +44,35 @@ def cyclos_backend_json_data(self):
"owner_id": self.cyclos_id,
"url": self.env.user.company_id.cyclos_server_url,
"active": self.status == "active",
+ "reconversion": self.is_reconversion_allowed,
}
)
+
+ company = self.partner_id.company_id
+ safe_wallet_partner = company.cyclos_debit_wallet_partner
+
+ if safe_wallet_partner:
+
+ safe_wallet_profile_info = safe_wallet_partner.lcc_profile_info()
+ if safe_wallet_profile_info:
+ if len(safe_wallet_profile_info) > 1:
+ raise ValueError("Safe partner has more than one public profile")
+
+ ## Safe wallet is configured and has a public profile
+ data["safe_wallet_recipient"] = safe_wallet_profile_info[0]
+
+ monujo_backends = safe_wallet_partner.lcc_backend_ids._update_search_data(
+ [backend_key]
+ )
+ if len(monujo_backends) > 1:
+ raise ValueError("Safe partner has more than one wallet")
+ data["safe_wallet_recipient"]["monujo_backends"] = monujo_backends
+
+ else:
+ _logger.error(
+ "Safe wallet %s has no public profile",
+ safe_wallet_partner.name,
+ )
return [data]
@api.depends("name", "type", "cyclos_status")
@@ -66,61 +91,11 @@ def _compute_status(self):
else:
rec.status = ""
- def _build_cyclos_error_message(self, e):
- json_error = e.response.json()
- msg = ""
- if json_error.get("code") == "validation":
- if json_error.get("propertyErrors"):
- error = json_error.get("propertyErrors")
- elif json_error.get("generalErrors"):
- error = json_error.get("generalErrors")
- msg = [" - %s: %s" % (k, ", ".join(v)) for k, v in error.items()]
- return msg
-
- def _cyclos_rest_call(
- self, method, entrypoint, data={}, api_login=False, api_password=False
- ):
- headers = {"Content-type": "application/json", "Accept": "text/plain"}
- requests.packages.urllib3.disable_warnings()
- if not api_login:
- api_login = self.env.user.company_id.cyclos_server_login
- if not api_password:
- api_password = self.env.user.company_id.cyclos_server_password
- api_url = "%s%s" % (self.env.user.company_id.cyclos_server_url, entrypoint)
- res = requests.request(
- method.lower(),
- api_url,
- auth=HTTPBasicAuth(api_login, api_password),
- verify=False,
- data=json.dumps(data),
- headers=headers,
- )
- try:
- res.raise_for_status()
- except requests.exceptions.HTTPError as e:
- if e.response.status_code == 404:
- raise Exception("404 when trying to reach cyclos on %s" % api_url)
- try:
- json_output = e.response.json()
- _logger.debug(e.response.json())
- except ValueError as e:
- raise Exception("Non-json output from cyclos on %s" % api_url)
- _logger.debug(e.response.text)
-
- if e.response.status_code == 422:
- msg = self._build_cyclos_error_message(e)
- if msg != "":
- raise ValueError(
- "Cyclos serveur complained about:\n%s" % "\n".join(msg),
- e.response,
- )
- raise
- return res
-
def cyclos_validate_user(self):
+ company_id = self.env.user.company_id
for record in self:
if record.cyclos_status == "pending":
- res = record._cyclos_rest_call(
+ res = company_id.cyclos_rest_call(
"POST", "/%s/registration/validate" % record.cyclos_id
)
_logger.debug("res: %s" % res.text)
@@ -134,13 +109,14 @@ def cyclos_validate_user(self):
)
def cyclos_activate_user(self):
+ company_id = self.env.user.company_id
for record in self:
if record.cyclos_status != "active":
data = {"status": "active", "comment": "Activated by Odoo"}
- record._cyclos_rest_call(
+ company_id.cyclos_rest_call(
"POST", "/%s/status" % record.cyclos_id, data=data
)
- res = record._cyclos_rest_call("GET", "/%s/status" % record.cyclos_id)
+ res = company_id.cyclos_rest_call("GET", "/%s/status" % record.cyclos_id)
_logger.debug("res: %s" % res)
data_res = json.loads(res.text)
record.write(
@@ -150,13 +126,14 @@ def cyclos_activate_user(self):
)
def cyclos_block_user(self):
+ company_id = self.env.user.company_id
for record in self:
if record.cyclos_status != "blocked":
data = {"status": "blocked", "comment": "Blocked by Odoo"}
- record._cyclos_rest_call(
+ company_id.cyclos_rest_call(
"POST", "/%s/status" % record.cyclos_id, data=data
)
- res = record._cyclos_rest_call("GET", "/%s/status" % record.cyclos_id)
+ res = company_id.cyclos_rest_call("GET", "/%s/status" % record.cyclos_id)
_logger.debug("res: %s" % res)
data_res = json.loads(res.text)
record.write(
@@ -166,13 +143,14 @@ def cyclos_block_user(self):
)
def cyclos_disable_user(self):
+ company_id = self.env.user.company_id
for record in self:
if record.cyclos_status != "disabled":
data = {"status": "disabled", "comment": "Disabled by Odoo"}
- record._cyclos_rest_call(
+ company_id.cyclos_rest_call(
"POST", "/%s/status" % record.cyclos_id, data=data
)
- res = record._cyclos_rest_call("GET", "/%s/status" % record.cyclos_id)
+ res = company_id.cyclos_rest_call("GET", "/%s/status" % record.cyclos_id)
_logger.debug("res: %s" % res)
data_res = json.loads(res.text)
record.write(
@@ -182,6 +160,7 @@ def cyclos_disable_user(self):
)
def force_cyclos_password(self, password):
+ company_id = self.env.user.company_id
for record in self:
# TODO: need to stock password type id from cyclos API and replace -4307382460900696903
data = {
@@ -191,7 +170,7 @@ def force_cyclos_password(self, password):
"forceChange": False,
}
try:
- record._cyclos_rest_call(
+ company_id.cyclos_rest_call(
"POST",
"/%s/passwords/%s/change"
% (record.cyclos_id, "-4307382460900696903"),
@@ -209,8 +188,9 @@ def force_cyclos_password(self, password):
def cyclos_create_user_token(self, api_login, api_password):
self.ensure_one()
+ company_id = self.env.user.company_id
for record in self:
- res = record._cyclos_rest_call(
+ res = company_id.cyclos_rest_call(
"POST",
"/auth/session",
data={"timeoutInSeconds": 90000},
@@ -222,8 +202,9 @@ def cyclos_create_user_token(self, api_login, api_password):
return data.get("sessionToken", False)
def cyclos_remove_user_token(self, api_login, api_password):
+ company_id = self.env.user.company_id
for record in self:
- res = record._cyclos_rest_call(
+ res = company_id.cyclos_rest_call(
"DELETE",
"/auth/session",
api_login=api_login,
@@ -245,7 +226,7 @@ def credit_wallet(self, amount=0):
"type": "debit.toPro" if self.partner_id.is_company else "debit.toUser",
}
_logger.debug("data: %s" % data)
- response = self._cyclos_rest_call("POST", "/system/payments", data=data)
+ response = self.env.user.company_id.cyclos_rest_call("POST", "/system/payments", data=data)
_logger.debug("response: %s" % response)
# TODO: need to check response
res = {"success": True, "response": response}
diff --git a/lcc_cyclos_base/views/lcc_backend.xml b/lcc_cyclos_base/views/lcc_backend.xml
deleted file mode 100644
index bba0fe61..00000000
--- a/lcc_cyclos_base/views/lcc_backend.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- lcc.backend.cyclos.form.view
- res.partner.backend
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/lcc_cyclos_base/views/res_config_settings_view.xml b/lcc_cyclos_base/views/res_config_settings_view.xml
index d16ee9a1..bb7c6171 100644
--- a/lcc_cyclos_base/views/res_config_settings_view.xml
+++ b/lcc_cyclos_base/views/res_config_settings_view.xml
@@ -37,6 +37,24 @@
+
+
+
+
Cyclos Debit Wallet Partner
+
+
+
+
+
+
+
+
+
Date of last reconversion check
+
+
+
+
+
diff --git a/lcc_cyclos_base/views/wallet.xml b/lcc_cyclos_base/views/wallet.xml
new file mode 100644
index 00000000..38febff2
--- /dev/null
+++ b/lcc_cyclos_base/views/wallet.xml
@@ -0,0 +1,36 @@
+
+
+
+
+ wallet.cyclos.form.view
+ res.partner.backend
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lcc_lokavaluto_app_connection/README.rst b/lcc_lokavaluto_app_connection/README.rst
index 35ef0f62..155e253c 100644
--- a/lcc_lokavaluto_app_connection/README.rst
+++ b/lcc_lokavaluto_app_connection/README.rst
@@ -12,6 +12,12 @@ Installation
Just install lcc_lokavaluto_app_connection, all dependencies
will be installed by default.
+Utilisation
+============
+
+You can choose to allow sending allocation to individuals or not
+Go to "Settings">"Digital Currency">"allow credit request only to company"
+
Known issues / Roadmap
======================
diff --git a/lcc_lokavaluto_app_connection/__manifest__.py b/lcc_lokavaluto_app_connection/__manifest__.py
index e48e97fe..e19fbc79 100644
--- a/lcc_lokavaluto_app_connection/__manifest__.py
+++ b/lcc_lokavaluto_app_connection/__manifest__.py
@@ -4,7 +4,7 @@
"author": "Lokavaluto",
"website": "https://lokavaluto.fr",
"category": "Website",
- "version": "16.0.1.0.0",
+ "version": "16.0.1.0.1",
# any module necessary for this one to work correctly
"depends": [
"auth_api_key",
@@ -14,7 +14,6 @@
"base_rest_datamodel",
"jsonifier",
"lcc_members",
- "membership",
"onchange_helper",
"partner_favorite",
"partner_profiles_portal",
@@ -28,12 +27,16 @@
"views/account_invoice.xml",
"views/res_partner.xml",
"views/sale_order.xml",
- "views/lcc_backend.xml",
+ "views/wallet.xml",
"views/credit_request.xml",
+ "views/debit_request.xml",
+ "views/commission_rule.xml",
+ "views/reconversion_rule.xml",
"views/menu.xml",
"views/portal_my_home.xml",
"views/res_config_settings_view.xml",
"data/numeric_data.xml",
+ "data/res_company_data.xml",
],
# only loaded in demonstration mode
"demo": [],
diff --git a/lcc_lokavaluto_app_connection/data/numeric_data.xml b/lcc_lokavaluto_app_connection/data/numeric_data.xml
index 3e298acd..432e71f2 100644
--- a/lcc_lokavaluto_app_connection/data/numeric_data.xml
+++ b/lcc_lokavaluto_app_connection/data/numeric_data.xml
@@ -15,5 +15,15 @@
consu
+
+
+ 1.0
+ 1.0
+
+
+ Digital Currency Reconversion Commission
+
+ consu
+
\ No newline at end of file
diff --git a/lcc_lokavaluto_app_connection/data/res_company_data.xml b/lcc_lokavaluto_app_connection/data/res_company_data.xml
new file mode 100644
index 00000000..41da6b48
--- /dev/null
+++ b/lcc_lokavaluto_app_connection/data/res_company_data.xml
@@ -0,0 +1,14 @@
+
+
+
+ Company: import new digital currency debit requests
+
+ code
+ model._cron_import_new_digital_currency_debit_requests()
+ 15
+ minutes
+ -1
+ 0
+
+
+
\ No newline at end of file
diff --git a/lcc_lokavaluto_app_connection/datamodel/partner_info.py b/lcc_lokavaluto_app_connection/datamodel/partner_info.py
index f9943538..a4927f35 100644
--- a/lcc_lokavaluto_app_connection/datamodel/partner_info.py
+++ b/lcc_lokavaluto_app_connection/datamodel/partner_info.py
@@ -8,6 +8,10 @@ class PartnerCreditRequestsGetParam(Datamodel):
backend_keys = fields.List(fields.String())
+class PartnerReconversions(Datamodel):
+ _name = "partner.reconversions"
+
+ transactions = fields.List(fields.String())
class PartnerSearchInfo(Datamodel):
_name = "partner.search.info"
diff --git a/lcc_lokavaluto_app_connection/i18n/fr.po b/lcc_lokavaluto_app_connection/i18n/fr.po
index 5e7f4171..db9018f6 100644
--- a/lcc_lokavaluto_app_connection/i18n/fr.po
+++ b/lcc_lokavaluto_app_connection/i18n/fr.po
@@ -1,14 +1,14 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * lcc_lokavaluto_app_connection
+# * lcc_lokavaluto_app_connection
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-11 20:43+0000\n"
-"PO-Revision-Date: 2023-12-11 20:43+0000\n"
-"Last-Translator: <>\n"
+"POT-Creation-Date: 2024-06-27 07:08+0000\n"
+"PO-Revision-Date: 2024-06-27 07:08+0000\n"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -23,17 +23,20 @@ msgstr "."
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app
-msgid ". For any maintenance action\n"
+msgid ""
+". For any maintenance action\n"
" concerning these wallets, please contact your currency manager."
msgstr ". Pour une action de maintenance\n"
" concernant ces portefeuilles, veuillez contacter votre gestionnaire de portefeuille.""
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_my_home_monujo_menu
-msgid " \n"
+msgid ""
+" \n"
" Applications mobiles: \n"
" "
-msgstr " \n"
+msgstr ""
+" \n"
" Applications mobiles: \n"
" "
@@ -42,6 +45,11 @@ msgstr " \n"
msgid "Android app download URL "
msgstr "URL de téléchargement Android "
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency
+msgid "Commission Product "
+msgstr "Article de Commission à la reconversion "
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency
msgid "Web application URL "
@@ -54,11 +62,13 @@ msgstr "Url de téléchargement IOS "
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form
-msgid "An error status doesn't always mean the credit request\n"
+msgid ""
+"An error status doesn't always mean the credit request\n"
" failed. Before trying again to credit the wallet,\n"
" please check on the transactions database that the request\n"
" has not successed. "
-msgstr "Le statut Erreur ne signifie pas toujours que la demande de chargement\n"
+msgstr ""
+"Le statut Erreur ne signifie pas toujours que la demande de chargement\n"
" a échoué. Avant d'essayer à nouveau de recharger le portefeuille,\n"
" veuillez vérifier dans la base de données de transactions que la requête\n"
" a bien échoué. "
@@ -85,57 +95,129 @@ msgid "Activate top up on Comchain without Admin validation."
msgstr "Activer le rechargement Comchain sans la validation d'un administrateur."
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__active
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__active
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__active
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__active
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
-#: selection:res.partner.backend,status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__active
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Active"
msgstr "Actif"
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__amount
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__amount
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__amount
msgid "Amount"
msgstr "Montant"
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search
+msgid "Archived"
+msgstr "Archivé"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form
+msgid "Authorisation"
+msgstr "Autorisation"
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency
msgid "Automatic Top Up"
msgstr "Rechargement automatique"
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
-#: selection:res.partner.backend,status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__blocked
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Blocked"
msgstr "Bloqué"
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__calculation_rule
+msgid "Calculation Rule"
+msgstr "Règle de calcul"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form
+msgid "Calculation process"
+msgstr "PRocessus de calcul"
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.create_credit_request_wizard_view_form
msgid "Cancel"
msgstr "Annuler"
#. module: lcc_lokavaluto_app_connection
-#: selection:res.partner.backend,type:0
-msgid "Comchain"
-msgstr ""
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__cancelled
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__cancelled
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__cancelled
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Cancelled"
+msgstr "Annulé"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__commission_move_id
+msgid "Commission Invoice"
+msgstr "Facture de commission"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__commission_move_state
+msgid "Commission Invoice State"
+msgstr "État Facture de commission"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_company__commission_product_id
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_config_settings__commission_product_id
+msgid "Commission Product"
+msgstr "Article de commission à la reconversion"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form
+msgid "Commission Rule"
+msgstr "Règle de commission"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_commission_rule
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.commission_rule_menu
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_tree
+msgid "Commission Rules"
+msgstr "Règles de commission"
#. module: lcc_lokavaluto_app_connection
#: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_company
msgid "Companies"
msgstr "Sociétés"
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.actions.server,name:lcc_lokavaluto_app_connection.ir_cron_import_new_digital_currency_debit_requests_ir_actions_server
+#: model:ir.cron,cron_name:lcc_lokavaluto_app_connection.ir_cron_import_new_digital_currency_debit_requests
+msgid "Company: import new digital currency debit requests"
+msgstr "Société : importer les nouvelles demandes de reconversion"
+
#. module: lcc_lokavaluto_app_connection
#: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_config_settings
msgid "Config Settings"
-msgstr "Paramètres de config"
+msgstr "Paramètres de configuration"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.menu_config_digital_currency
+msgid "Configuration"
+msgstr "Configuration"
#. module: lcc_lokavaluto_app_connection
#: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_partner
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Contact"
msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form
msgid "Content"
msgstr "Contenu"
@@ -149,21 +231,57 @@ msgstr "Créer"
msgid "Create Credit Request"
msgstr "Créer une demande de chargement"
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form
+msgid "Create Invoices"
+msgstr "Créer les factures"
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.create_credit_request_wizard_view_form
msgid "Create a credit request"
msgstr "Créer une demande de chargement"
#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_commission_rule
+msgid "Create a new commission rule."
+msgstr "Créer une nouvelle règle de commission à la reconversion."
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_credit_request
+msgid "Create a new credit request."
+msgstr "Créer une nouvelle demande de chargement."
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_debit_request
+msgid "Create a new debit request."
+msgstr "Créer une nouvelle demande de reconversion."
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_reconversion_rule
+msgid "Create a new reconversion rule."
+msgstr "Créer une nouvelle règle de reconversion."
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_wallet_view
+msgid "Create a new wallet."
+msgstr "Créer un nouveau portefeuille"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__create_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__create_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__create_uid
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__create_uid
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__create_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__create_uid
msgid "Created by"
msgstr "Créé par"
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__create_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__create_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__create_date
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__create_date
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__create_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__create_date
msgid "Created on"
msgstr "Créé le"
@@ -177,22 +295,60 @@ msgstr "Demande de chargement"
#. module: lcc_lokavaluto_app_connection
#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_credit_request
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__credit_request_ids
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__credit_request_ids
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__credit_request_ids
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__credit_request_ids
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__credit_request_ids
-#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.credit_request_tree_menu
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.credit_requests_menu
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_tree
msgid "Credit Requests"
msgstr "Demandes de chargement"
#. module: lcc_lokavaluto_app_connection
-#: selection:res.partner.backend,type:0
-msgid "Cyclos"
-msgstr ""
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__debit_move_id
+msgid "Debit Invoice"
+msgstr "Facture de reconversion"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__debit_move_state
+msgid "Debit Invoice State"
+msgstr "État facture de reconversion"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form
+msgid "Debit Request"
+msgstr "Demande de reconversion"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_debit_request
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__debit_request_ids
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__debit_request_ids
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__debit_request_ids
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.debit_requests_menu
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_tree
+msgid "Debit Requests"
+msgstr "Demandes de reconversion"
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency
msgid "Digital Currency"
-msgstr "Monnaie numérique"
+msgstr "Monnaie Numérique"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:product.template,name:lcc_lokavaluto_app_connection.product_product_reconversion_commission_product_template
+msgid "Digital Currency Reconversion Commission"
+msgstr "Commission à la reconversion Monnaie Numérique"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_tree
+msgid "Digital Currency Wallet"
+msgstr "Portefeuille de Monnaie Numérique"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.menu_digital_currencies
+msgid "Digital currencies"
+msgstr "Monnaies numériques"
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency
@@ -200,22 +356,33 @@ msgid "Digital currency application configuration"
msgstr "Configuration des applications de monnaie numérique"
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__display_name
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__display_name
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__display_name
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__display_name
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__display_name
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__display_name
msgid "Display Name"
msgstr "Nom affiché"
#. module: lcc_lokavaluto_app_connection
-#: selection:account.invoice,global_credit_status:0
-#: selection:credit.request,state:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__done
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__done
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__done
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search
-#: selection:sale.order,global_credit_status:0
msgid "Done"
msgstr "Terminé"
#. module: lcc_lokavaluto_app_connection
-#: selection:credit.request,state:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__draft
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__draft
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__draft
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Draft"
+msgstr "Brouillon"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__error
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search
msgid "Error"
msgstr "Erreur"
@@ -228,114 +395,129 @@ msgstr "Message d'erreur"
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency
msgid "Financial backend general configuration"
-msgstr "Configuration générale du moteur de transactions"
+msgstr "Configuration générale du moteur de transaction"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__commission_rule__calculation_rule__fix
+msgid "Fix amount"
+msgstr "Montant fixe"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search
+msgid "Fix rules"
+msgstr "Montants fixes"
#. module: lcc_lokavaluto_app_connection
-#: model:product.product,name:lcc_lokavaluto_app_connection.product_product_numeric_lcc
#: model:product.template,name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template
msgid "Generic Numeric LCC"
msgstr "MLC Numérique générique"
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_credit_status
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_credit_status
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_credit_status
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_credit_status
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_credit_status
msgid "Global Credit Status"
msgstr "État général des chargements"
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__has_numeric_lcc_products
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__has_numeric_lcc_products
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__has_numeric_lcc_products
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__has_numeric_lcc_products
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__has_numeric_lcc_products
msgid "Has lcc numeric products"
msgstr "A des produits de monnaie numérique"
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__id
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__id
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__id
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__id
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__id
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__id
msgid "ID"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: code:addons/lcc_lokavaluto_app_connection/controllers/portal.py:49
-#, python-format
-msgid "If we store your payment information on our server, subscription payments will be made automatically."
-msgstr "Si nous stockons vos informations de paiement sur notre serveur, les paiements d'adhésion seront fait automatiquement."
-
-#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
-#: selection:res.partner.backend,status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__inactive
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Inactive"
msgstr "Inactif"
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_invoice
-msgid "Invoice"
-msgstr "Facture"
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__invoiced
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Invoiced"
+msgstr "Facturé"
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_invoice_line
-msgid "Invoice Line"
-msgstr "Ligne de facture"
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__is_reconversion_allowed
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__is_reconversion_allowed
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__is_reconversion_allowed
+msgid "Is Reconversion Allowed?"
+msgstr "Reconversion autorisée ?"
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__key
-msgid "Key"
-msgstr "Clé"
+#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_move
+msgid "Journal Entry"
+msgstr "Pièce comptable"
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_form_view
-msgid "LCC Backend"
-msgstr "Portefeuilles numériques"
+#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_move_line
+msgid "Journal Item"
+msgstr "Écriture comptable"
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_tree
-msgid "LCC Backends"
-msgstr "Moteurs de transactions"
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__key
+msgid "Key"
+msgstr "Clef"
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_lcc_amount_credited
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_lcc_amount_credited
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_lcc_amount_credited
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_lcc_amount_credited
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_lcc_amount_credited
msgid "LCC amount credited"
msgstr "Montant crédité"
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_lcc_amount_to_credit
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_lcc_amount_to_credit
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_lcc_amount_to_credit
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_lcc_amount_to_credit
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_lcc_amount_to_credit
msgid "LCC amount to credit"
msgstr "Montant à créditer"
#. module: lcc_lokavaluto_app_connection
-#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_lcc_backends_tree_view
-#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.lcc_backends_tree_menu
-msgid "LCC backends"
-msgstr "Portefeuilles numériques"
-
-#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule____last_update
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request____last_update
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request____last_update
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request____last_update
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule____last_update
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend____last_update
msgid "Last Modified on"
msgstr "Dernière modification le"
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__write_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__write_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__write_uid
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__write_uid
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__write_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__write_uid
msgid "Last Updated by"
msgstr "Dernière modification par"
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__write_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__write_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__write_date
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__write_date
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__write_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
-#. module: lcc_lokavaluto_app_connection
-#: model:ir.model,name:lcc_lokavaluto_app_connection.model_crm_lead
-msgid "Lead/Opportunity"
-msgstr "Piste/opportunité"
-
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__invoice_id
msgid "Linked Invoice"
@@ -348,6 +530,7 @@ msgstr "Bon de commande lié"
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form
msgid "Linked documents"
msgstr "Documents liés"
@@ -362,7 +545,7 @@ msgstr "Portefeuilles numériques"
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_company__monujo_android_app_url
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_config_settings__monujo_android_app_url
msgid "Monujo Android app URL"
-msgstr ""
+msgstr "URL de l'application Monujo pour Android"
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_company__monujo_ios_app_url
@@ -374,12 +557,14 @@ msgstr "URL de l'application Monujo pour iOS"
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_company__monujo_web_app_url
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_config_settings__monujo_web_app_url
msgid "Monujo web app URL"
-msgstr "URL de l'application Monujo pour web"
+msgstr "URL de l'application Monujo Web"
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__name
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__name
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__name
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__name
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Name"
msgstr "Nom"
@@ -408,38 +593,41 @@ msgid "Nb Wallets to confirm"
msgstr "Nb portefeuilles à confirmer"
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view
msgid "New Credit Request"
msgstr "Nouvelle demande de chargement"
#. module: lcc_lokavaluto_app_connection
-#: code:addons/lcc_lokavaluto_app_connection/services/partner_images_services.py:38
-#, python-format
-msgid "No image found for partner %s"
-msgstr "Pas d'image trouvée pour le partenaire %s"
-
-#. module: lcc_lokavaluto_app_connection
-#: model:product.category,name:lcc_lokavaluto_app_connection.product_category_numeric_lcc
-msgid "Numeric LCC"
-msgstr "MLC numérique"
+#: model:ir.module.category,name:lcc_lokavaluto_app_connection.module_category_administration_wallets
+msgid "Numeric Wallets"
+msgstr "Portefeuilles numériques"
#. module: lcc_lokavaluto_app_connection
-#: selection:account.invoice,global_credit_status:0
-#: selection:sale.order,global_credit_status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__ongoing
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__ongoing
msgid "On going"
msgstr "En cours"
#. module: lcc_lokavaluto_app_connection
-#: selection:credit.request,state:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__open
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search
msgid "Open"
msgstr "Ouvert"
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__paid
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__paid
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__paid
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Paid"
+msgstr "Payé"
+
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__partner_id
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__partner_id
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__partner_id
msgid "Partner"
-msgstr "Partenaire"
+msgstr "Contact"
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__partner_public_name
@@ -447,34 +635,77 @@ msgid "Partner Public Name"
msgstr "Nom public du contact"
#. module: lcc_lokavaluto_app_connection
-#: code:addons/lcc_lokavaluto_app_connection/controllers/portal.py:46
-#, python-format
-msgid "Pay & Confirm"
-msgstr "Payer & Confirmer"
-
-#. module: lcc_lokavaluto_app_connection
-#: selection:credit.request,state:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__pending
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search
msgid "Pending"
msgstr "En attente"
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__commission_rule__calculation_rule__percentage
+msgid "Percentage"
+msgstr "Pourcentage"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search
+msgid "Percentage rules"
+msgstr "Pourcentage"
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_my_home_monujo_menu
msgid "Portefeuille numérique"
msgstr "Portefeuille numérique"
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_organization_registration_wallet
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_private_registration_wallet
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.website_organization_registration_wallet
-msgid "Refuse numeric wallet creation"
-msgstr "Refuser la création d'un portefeuille numérique"
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__posted
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__posted
+msgid "Posted"
+msgstr "Envoyé"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__received
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Received"
+msgstr "Reçu"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search
+msgid "Reconversion OFF"
+msgstr "Reconversion OFF"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search
+msgid "Reconversion ON"
+msgstr "Reconversion ON"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form
+msgid "Reconversion Rule"
+msgstr "Règle de reconversion"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_reconversion_rule
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.reconversion_rule_menu
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_tree
+msgid "Reconversion Rules"
+msgstr "Règles de reconversion"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form
+msgid ""
+"Reconversion rules indicate that reconversions are presumed NOT ALLOWED on\n"
+" the selected wallet."
+msgstr "Les règles sur les reconversions indiques que celles-ci sont en théorie NON autorisée sur\n"
+" le portefeuille sélectionné."
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view
+msgid "Reconversions are NOT allowed on this wallet."
+msgstr "Les reconversions ne sont PAS autorisées sur ce portefeuille."
#. module: lcc_lokavaluto_app_connection
-#: code:addons/lcc_lokavaluto_app_connection/models/crm_lead.py:11
-#, python-format
-msgid "Refuse the creation of a numeric wallet."
-msgstr "Refuser la création d'un portefeuille numérique."
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view
+msgid "Reconversions are allowed on this wallet."
+msgstr "Les reconversions sont autorisées sur ce portefeuille."
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form
@@ -483,8 +714,13 @@ msgstr "Réponse"
#. module: lcc_lokavaluto_app_connection
#: model:ir.model,name:lcc_lokavaluto_app_connection.model_sale_order
-msgid "Sale Order"
-msgstr "Bon de commande"
+msgid "Sales Order"
+msgstr "Bons de commande"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search
+msgid "Search commission rules"
+msgstr "Chercher de règles de commission"
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search
@@ -492,12 +728,23 @@ msgid "Search credit requests"
msgstr "Chercher le demandes de chargement"
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Search debit requests"
+msgstr "Chercher les demandes de reconversion"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search
+msgid "Search reconversion rules"
+msgstr "Chercher les règles de reconversion"
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Search wallets"
msgstr "Chercher les portefeuilles"
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__state
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__state
msgid "State"
msgstr "État"
@@ -508,31 +755,49 @@ msgstr "État"
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,help:lcc_lokavaluto_app_connection.field_auth_api_key__key
-msgid "The API key. Keep the default value in this field if it is\n"
+msgid ""
+"The API key. Enter a dummy value in this field if it is\n"
" obtained from the server environment configuration."
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: selection:res.partner.backend,status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__to_confirm
msgid "To Confirm"
-msgstr "A confirmer"
+msgstr "À confirmer"
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "To confirm"
-msgstr "A confirmer"
+msgstr "À confirmer"
#. module: lcc_lokavaluto_app_connection
-#: selection:account.invoice,global_credit_status:0
-#: selection:sale.order,global_credit_status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__todo
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__todo
msgid "To do"
-msgstr "A faire"
+msgstr "À faire"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__transaction_id
+msgid "Transaction ID"
+msgstr "ID de la transaction"
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.constraint,message:lcc_lokavaluto_app_connection.constraint_debit_request_transaction_id_uniq
+msgid ""
+"Transaction ID must be unique, a request already exists with this "
+"transaction ID!"
+msgstr "L'ID de la transaction doit être unique, une demande existe déjà avec cet ID de transaction."
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__transaction_data
msgid "Transaction Message"
msgstr "Message de transaction"
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__transaction_timestamp
+msgid "Transaction Timestamp"
+msgstr "Horodatage de la transaction"
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form
msgid "Try again"
@@ -540,22 +805,30 @@ msgstr "Ré-essayer"
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__type
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Type"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:product.product,uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc
-#: model:product.template,uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template
-msgid "Unit(s)"
-msgstr "Unité(s)"
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__calculation_value
+msgid "Value"
+msgstr "Valeur"
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__wallet_id
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__wallet_id
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__wallet_id
msgid "Wallet"
msgstr "Portefeuille"
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__wallet_domain
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__wallet_domain
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form
+msgid "Wallet Domain"
+msgstr "Domaine des portefeuilles"
+
#. module: lcc_lokavaluto_app_connection
#: model:res.groups,name:lcc_lokavaluto_app_connection.group_wallet_accounts_manager
msgid "Wallet accounts manager"
@@ -563,14 +836,25 @@ msgstr "Gestionnaire de portefeuille"
#. module: lcc_lokavaluto_app_connection
#: model:res.groups,name:lcc_lokavaluto_app_connection.group_wallet_full_manager
-msgid "Wallet_full_manager"
+msgid "Wallet full manager"
msgstr "Gestionnaire du moteur de transaction"
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_wallet_view
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.wallets_menu
+msgid "Wallets"
+msgstr "Portefeuilles"
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app
msgid "blocked wallet(s)"
msgstr "portfeuille(s) bloqué(s)"
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model,name:lcc_lokavaluto_app_connection.model_commission_rule
+msgid "commission.rule"
+msgstr "règle de commissin"
+
#. module: lcc_lokavaluto_app_connection
#: model:ir.model,name:lcc_lokavaluto_app_connection.model_create_credit_request
msgid "create Credit Request"
@@ -581,6 +865,11 @@ msgstr "créer un demande de chargement"
msgid "credit.request"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model,name:lcc_lokavaluto_app_connection.model_debit_request
+msgid "debit.request"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app
msgid "has"
@@ -591,19 +880,20 @@ msgstr "a"
msgid "inactive wallet(s)."
msgstr "portefeuille(s) inactif(s)"
-#. module: lcc_lokavaluto_app_connection
-#: model:product.product,weight_uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc
-#: model:product.template,weight_uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template
-msgid "kg"
-msgstr ""
-
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app
-msgid "pending for\n"
+msgid ""
+"pending for\n"
" activation."
-msgstr "En attente\n"
+msgstr ""
+"en attente \n"
" d'activation."
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model,name:lcc_lokavaluto_app_connection.model_reconversion_rule
+msgid "reconversion.rule"
+msgstr "règle de reconversion"
+
#. module: lcc_lokavaluto_app_connection
#: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_partner_backend
msgid "res.partner.backend"
@@ -612,17 +902,22 @@ msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_account_invoice_customer_lcc_form
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_order_lcc_form
-msgid "units have been\n"
+msgid ""
+"units have been\n"
" credited on"
-msgstr "unités ont été\n"
+msgstr ""
+"unités ont été\n"
" créditée"
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_account_invoice_customer_lcc_form
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_order_lcc_form
-msgid "unités encore à \n"
-" créditer"
+msgid ""
+"units still to\n"
+" credit on"
msgstr ""
+"unités encore\n"
+" à créditer"
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app
diff --git a/lcc_lokavaluto_app_connection/i18n/lcc_lokavaluto_app_connection.pot b/lcc_lokavaluto_app_connection/i18n/lcc_lokavaluto_app_connection.pot
index d3dd4931..38c60adf 100644
--- a/lcc_lokavaluto_app_connection/i18n/lcc_lokavaluto_app_connection.pot
+++ b/lcc_lokavaluto_app_connection/i18n/lcc_lokavaluto_app_connection.pot
@@ -1,14 +1,14 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * lcc_lokavaluto_app_connection
+# * lcc_lokavaluto_app_connection
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-11 20:41+0000\n"
-"PO-Revision-Date: 2023-12-11 20:41+0000\n"
-"Last-Translator: <>\n"
+"POT-Creation-Date: 2024-06-27 07:04+0000\n"
+"PO-Revision-Date: 2024-06-27 07:04+0000\n"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -23,13 +23,15 @@ msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app
-msgid ". For any maintenance action\n"
+msgid ""
+". For any maintenance action\n"
" concerning these wallets, please contact your currency manager."
msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_my_home_monujo_menu
-msgid " \n"
+msgid ""
+" \n"
" Applications mobiles: \n"
" "
msgstr ""
@@ -39,6 +41,11 @@ msgstr ""
msgid "Android app download URL "
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency
+msgid "Commission Product "
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency
msgid "Web application URL "
@@ -51,7 +58,8 @@ msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form
-msgid "An error status doesn't always mean the credit request\n"
+msgid ""
+"An error status doesn't always mean the credit request\n"
" failed. Before trying again to credit the wallet,\n"
" please check on the transactions database that the request\n"
" has not successed. "
@@ -79,37 +87,97 @@ msgid "Activate top up on Comchain without Admin validation."
msgstr ""
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__active
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__active
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__active
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__active
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
-#: selection:res.partner.backend,status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__active
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Active"
msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__amount
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__amount
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__amount
msgid "Amount"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search
+msgid "Archived"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form
+msgid "Authorisation"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency
msgid "Automatic Top Up"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
-#: selection:res.partner.backend,status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__blocked
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Blocked"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__calculation_rule
+msgid "Calculation Rule"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form
+msgid "Calculation process"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.create_credit_request_wizard_view_form
msgid "Cancel"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: selection:res.partner.backend,type:0
-msgid "Comchain"
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__cancelled
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__cancelled
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__cancelled
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Cancelled"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__commission_move_id
+msgid "Commission Invoice"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__commission_move_state
+msgid "Commission Invoice State"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_company__commission_product_id
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_config_settings__commission_product_id
+msgid "Commission Product"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form
+msgid "Commission Rule"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_commission_rule
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.commission_rule_menu
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_tree
+msgid "Commission Rules"
msgstr ""
#. module: lcc_lokavaluto_app_connection
@@ -117,19 +185,31 @@ msgstr ""
msgid "Companies"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.actions.server,name:lcc_lokavaluto_app_connection.ir_cron_import_new_digital_currency_debit_requests_ir_actions_server
+#: model:ir.cron,cron_name:lcc_lokavaluto_app_connection.ir_cron_import_new_digital_currency_debit_requests
+msgid "Company: import new digital currency debit requests"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_config_settings
msgid "Config Settings"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.menu_config_digital_currency
+msgid "Configuration"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model:ir.model,name:lcc_lokavaluto_app_connection.model_res_partner
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Contact"
msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form
msgid "Content"
msgstr ""
@@ -143,21 +223,57 @@ msgstr ""
msgid "Create Credit Request"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form
+msgid "Create Invoices"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.create_credit_request_wizard_view_form
msgid "Create a credit request"
msgstr ""
#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_commission_rule
+msgid "Create a new commission rule."
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_credit_request
+msgid "Create a new credit request."
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_debit_request
+msgid "Create a new debit request."
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_reconversion_rule
+msgid "Create a new reconversion rule."
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.actions.act_window,help:lcc_lokavaluto_app_connection.action_wallet_view
+msgid "Create a new wallets."
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__create_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__create_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__create_uid
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__create_uid
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__create_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__create_uid
msgid "Created by"
msgstr ""
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__create_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__create_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__create_date
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__create_date
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__create_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__create_date
msgid "Created on"
msgstr ""
@@ -171,16 +287,38 @@ msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_credit_request
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__credit_request_ids
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__credit_request_ids
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__credit_request_ids
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__credit_request_ids
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__credit_request_ids
-#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.credit_request_tree_menu
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.credit_requests_menu
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_tree
msgid "Credit Requests"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: selection:res.partner.backend,type:0
-msgid "Cyclos"
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__debit_move_id
+msgid "Debit Invoice"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__debit_move_state
+msgid "Debit Invoice State"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form
+msgid "Debit Request"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_debit_request
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__debit_request_ids
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__debit_request_ids
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__debit_request_ids
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.debit_requests_menu
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_tree
+msgid "Debit Requests"
msgstr ""
#. module: lcc_lokavaluto_app_connection
@@ -188,28 +326,60 @@ msgstr ""
msgid "Digital Currency"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model:product.template,name:lcc_lokavaluto_app_connection.product_product_reconversion_product_template
+msgid "Digital Currency Reconversion"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:product.template,name:lcc_lokavaluto_app_connection.product_product_reconversion_commission_product_template
+msgid "Digital Currency Reconversion Commission"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_tree
+msgid "Digital Currency Wallet"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.menu_digital_currencies
+msgid "Digital currencies"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.res_config_settings_view_form_digital_currency
msgid "Digital currency application configuration"
msgstr ""
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__display_name
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__display_name
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__display_name
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__display_name
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__display_name
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__display_name
msgid "Display Name"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: selection:account.invoice,global_credit_status:0
-#: selection:credit.request,state:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__done
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__done
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__done
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search
-#: selection:sale.order,global_credit_status:0
msgid "Done"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: selection:credit.request,state:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__draft
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__draft
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__draft
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Draft"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__error
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search
msgid "Error"
msgstr ""
@@ -225,111 +395,126 @@ msgid "Financial backend general configuration"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:product.product,name:lcc_lokavaluto_app_connection.product_product_numeric_lcc
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__commission_rule__calculation_rule__fix
+msgid "Fix amount"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search
+msgid "Fix rules"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
#: model:product.template,name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template
msgid "Generic Numeric LCC"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_credit_status
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_credit_status
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_credit_status
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_credit_status
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_credit_status
msgid "Global Credit Status"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__has_numeric_lcc_products
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__has_numeric_lcc_products
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__has_numeric_lcc_products
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__has_numeric_lcc_products
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__has_numeric_lcc_products
msgid "Has lcc numeric products"
msgstr ""
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__id
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__id
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__id
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__id
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__id
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__id
msgid "ID"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: code:addons/lcc_lokavaluto_app_connection/controllers/portal.py:49
-#, python-format
-msgid "If we store your payment information on our server, subscription payments will be made automatically."
-msgstr ""
-
-#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
-#: selection:res.partner.backend,status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__inactive
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Inactive"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_invoice
-msgid "Invoice"
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__invoiced
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Invoiced"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_invoice_line
-msgid "Invoice Line"
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__is_reconversion_allowed
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__is_reconversion_allowed
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__is_reconversion_allowed
+msgid "Is Reconversion Allowed?"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__key
-msgid "Key"
+#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_move
+msgid "Journal Entry"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_form_view
-msgid "LCC Backend"
+#: model:ir.model,name:lcc_lokavaluto_app_connection.model_account_move_line
+msgid "Journal Item"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_tree
-msgid "LCC Backends"
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__key
+msgid "Key"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_lcc_amount_credited
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_lcc_amount_credited
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_lcc_amount_credited
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_lcc_amount_credited
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_lcc_amount_credited
msgid "LCC amount credited"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_invoice__global_lcc_amount_to_credit
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_bank_statement_line__global_lcc_amount_to_credit
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_move__global_lcc_amount_to_credit
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_account_payment__global_lcc_amount_to_credit
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_sale_order__global_lcc_amount_to_credit
msgid "LCC amount to credit"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_lcc_backends_tree_view
-#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.lcc_backends_tree_menu
-msgid "LCC backends"
-msgstr ""
-
-#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule____last_update
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request____last_update
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request____last_update
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request____last_update
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule____last_update
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend____last_update
msgid "Last Modified on"
msgstr ""
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__write_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__write_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__write_uid
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__write_uid
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__write_uid
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__write_uid
msgid "Last Updated by"
msgstr ""
#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__write_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__write_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__write_date
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__write_date
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__write_date
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__write_date
msgid "Last Updated on"
msgstr ""
-#. module: lcc_lokavaluto_app_connection
-#: model:ir.model,name:lcc_lokavaluto_app_connection.model_crm_lead
-msgid "Lead/Opportunity"
-msgstr ""
-
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__invoice_id
msgid "Linked Invoice"
@@ -342,6 +527,7 @@ msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form
msgid "Linked documents"
msgstr ""
@@ -372,8 +558,10 @@ msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_auth_api_key__name
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__name
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__name
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__name
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Name"
msgstr ""
@@ -402,35 +590,38 @@ msgid "Nb Wallets to confirm"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_form_view
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view
msgid "New Credit Request"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: code:addons/lcc_lokavaluto_app_connection/services/partner_images_services.py:38
-#, python-format
-msgid "No image found for partner %s"
-msgstr ""
-
-#. module: lcc_lokavaluto_app_connection
-#: model:product.category,name:lcc_lokavaluto_app_connection.product_category_numeric_lcc
-msgid "Numeric LCC"
+#: model:ir.module.category,name:lcc_lokavaluto_app_connection.module_category_administration_wallets
+msgid "Numeric Wallets"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: selection:account.invoice,global_credit_status:0
-#: selection:sale.order,global_credit_status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__ongoing
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__ongoing
msgid "On going"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: selection:credit.request,state:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__open
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search
msgid "Open"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__paid
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__paid
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__paid
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Paid"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__partner_id
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__partner_id
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__partner_id
msgid "Partner"
msgstr ""
@@ -441,15 +632,19 @@ msgid "Partner Public Name"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: code:addons/lcc_lokavaluto_app_connection/controllers/portal.py:46
-#, python-format
-msgid "Pay & Confirm"
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__credit_request__state__pending
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search
+msgid "Pending"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: selection:credit.request,state:0
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_search
-msgid "Pending"
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__commission_rule__calculation_rule__percentage
+msgid "Percentage"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search
+msgid "Percentage rules"
msgstr ""
#. module: lcc_lokavaluto_app_connection
@@ -458,21 +653,54 @@ msgid "Portefeuille numérique"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_organization_registration_wallet
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.portal_private_registration_wallet
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.website_organization_registration_wallet
-msgid "Refuse numeric wallet creation"
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__commission_move_state__posted
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__debit_move_state__posted
+msgid "Posted"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__debit_request__state__received
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Received"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search
+msgid "Reconversion OFF"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search
+msgid "Reconversion ON"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form
+msgid "Reconversion Rule"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_reconversion_rule
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.reconversion_rule_menu
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_tree
+msgid "Reconversion Rules"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_form
+msgid ""
+"Reconversion rules indicate that reconversions are presumed NOT ALLOWED on\n"
+" the selected wallet."
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: code:addons/lcc_lokavaluto_app_connection/models/crm_lead.py:11
-#, python-format
-msgid "Refuse the creation of a numeric wallet."
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view
+msgid "Reconversions are NOT allowed on this wallet."
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_crm_lead__refuse_numeric_wallet_creation
-msgid "Refuser la création d'un portefeuille numérique."
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_form_view
+msgid "Reconversions are allowed on this wallet."
msgstr ""
#. module: lcc_lokavaluto_app_connection
@@ -482,7 +710,12 @@ msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model:ir.model,name:lcc_lokavaluto_app_connection.model_sale_order
-msgid "Sale Order"
+msgid "Sales Order"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_search
+msgid "Search commission rules"
msgstr ""
#. module: lcc_lokavaluto_app_connection
@@ -491,12 +724,23 @@ msgid "Search credit requests"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.debit_request_view_search
+msgid "Search debit requests"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_search
+msgid "Search reconversion rules"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Search wallets"
msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__state
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__state
msgid "State"
msgstr ""
@@ -507,31 +751,49 @@ msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,help:lcc_lokavaluto_app_connection.field_auth_api_key__key
-msgid "The API key. Keep the default value in this field if it is\n"
+msgid ""
+"The API key. Enter a dummy value in this field if it is\n"
" obtained from the server environment configuration."
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: selection:res.partner.backend,status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__res_partner_backend__status__to_confirm
msgid "To Confirm"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "To confirm"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: selection:account.invoice,global_credit_status:0
-#: selection:sale.order,global_credit_status:0
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__account_move__global_credit_status__todo
+#: model:ir.model.fields.selection,name:lcc_lokavaluto_app_connection.selection__sale_order__global_credit_status__todo
msgid "To do"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__transaction_id
+msgid "Transaction ID"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.constraint,message:lcc_lokavaluto_app_connection.constraint_debit_request_transaction_id_uniq
+msgid ""
+"Transaction ID must be unique, a request already exists with this "
+"transaction ID!"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__transaction_data
msgid "Transaction Message"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__transaction_timestamp
+msgid "Transaction Timestamp"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.credit_request_view_form
msgid "Try again"
@@ -539,22 +801,30 @@ msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_res_partner_backend__type
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_backend_view_search
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.wallet_view_search
msgid "Type"
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:product.product,uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc
-#: model:product.template,uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template
-msgid "Unit(s)"
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__calculation_value
+msgid "Value"
msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_create_credit_request__wallet_id
#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_credit_request__wallet_id
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_debit_request__wallet_id
msgid "Wallet"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_commission_rule__wallet_domain
+#: model:ir.model.fields,field_description:lcc_lokavaluto_app_connection.field_reconversion_rule__wallet_domain
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.commission_rule_view_form
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.reconversion_rule_view_form
+msgid "Wallet Domain"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model:res.groups,name:lcc_lokavaluto_app_connection.group_wallet_accounts_manager
msgid "Wallet accounts manager"
@@ -562,7 +832,13 @@ msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model:res.groups,name:lcc_lokavaluto_app_connection.group_wallet_full_manager
-msgid "Wallet_full_manager"
+msgid "Wallet full manager"
+msgstr ""
+
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.actions.act_window,name:lcc_lokavaluto_app_connection.action_wallet_view
+#: model:ir.ui.menu,name:lcc_lokavaluto_app_connection.wallets_menu
+msgid "Wallets"
msgstr ""
#. module: lcc_lokavaluto_app_connection
@@ -570,6 +846,11 @@ msgstr ""
msgid "blocked wallet(s)"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model,name:lcc_lokavaluto_app_connection.model_commission_rule
+msgid "commission.rule"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model:ir.model,name:lcc_lokavaluto_app_connection.model_create_credit_request
msgid "create Credit Request"
@@ -580,6 +861,11 @@ msgstr ""
msgid "credit.request"
msgstr ""
+#. module: lcc_lokavaluto_app_connection
+#: model:ir.model,name:lcc_lokavaluto_app_connection.model_debit_request
+msgid "debit.request"
+msgstr ""
+
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app
msgid "has"
@@ -591,15 +877,15 @@ msgid "inactive wallet(s)."
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model:product.product,weight_uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc
-#: model:product.template,weight_uom_name:lcc_lokavaluto_app_connection.product_product_numeric_lcc_product_template
-msgid "kg"
+#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app
+msgid ""
+"pending for\n"
+" activation."
msgstr ""
#. module: lcc_lokavaluto_app_connection
-#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app
-msgid "pending for\n"
-" activation."
+#: model:ir.model,name:lcc_lokavaluto_app_connection.model_reconversion_rule
+msgid "reconversion.rule"
msgstr ""
#. module: lcc_lokavaluto_app_connection
@@ -610,14 +896,16 @@ msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_account_invoice_customer_lcc_form
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_order_lcc_form
-msgid "units have been\n"
+msgid ""
+"units have been\n"
" credited on"
msgstr ""
#. module: lcc_lokavaluto_app_connection
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_account_invoice_customer_lcc_form
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.view_order_lcc_form
-msgid "units still to\n"
+msgid ""
+"units still to\n"
" credit on"
msgstr ""
@@ -625,4 +913,3 @@ msgstr ""
#: model_terms:ir.ui.view,arch_db:lcc_lokavaluto_app_connection.lcc_partner_app
msgid "wallet(s)"
msgstr ""
-
diff --git a/lcc_lokavaluto_app_connection/models/__init__.py b/lcc_lokavaluto_app_connection/models/__init__.py
index 2b4506cd..cb631d22 100644
--- a/lcc_lokavaluto_app_connection/models/__init__.py
+++ b/lcc_lokavaluto_app_connection/models/__init__.py
@@ -1,8 +1,11 @@
from . import sale_order
-from . import res_partner_backend
+from . import wallet
from . import res_partner
from . import auth_api_key
from . import account_invoice
from . import company
from . import res_config_settings
from . import credit_request
+from . import debit_request
+from . import commission_rule
+from . import reconversion_rule
diff --git a/lcc_lokavaluto_app_connection/models/account_invoice.py b/lcc_lokavaluto_app_connection/models/account_invoice.py
index 8fed0815..7584c77a 100644
--- a/lcc_lokavaluto_app_connection/models/account_invoice.py
+++ b/lcc_lokavaluto_app_connection/models/account_invoice.py
@@ -13,6 +13,9 @@ class AccountInvoice(models.Model):
credit_request_ids = fields.One2many(
"credit.request", "invoice_id", string="Credit Requests"
)
+ debit_request_ids = fields.Many2many(
+ "debit.request", compute="_compute_debit_request_ids", string="Debit Requests"
+ )
global_credit_status = fields.Selection(
[
("todo", "To do"),
@@ -29,6 +32,12 @@ class AccountInvoice(models.Model):
global_lcc_amount_to_credit = fields.Float(
string="LCC amount to credit", compute="_compute_global_lcc_amounts"
)
+ digital_currency_invoice_type = fields.Selection([
+ ('none', 'None'),
+ ('credit', 'Credit'),
+ ('debit', 'Debit')
+ ], string='Digital Currency Invoice Type', compute="_compute_digital_currency_invoice_type"
+ )
@api.depends("credit_request_ids")
def _compute_global_credit_status(self):
@@ -60,15 +69,56 @@ def _compute_has_numeric_lcc_products(self):
if lcc_numeric_products:
self.has_numeric_lcc_products = True
+ def _compute_debit_request_ids(self):
+ for move in self:
+ move.debit_request_ids = self.env["debit.request"].search(["|", ("debit_move_id", "=", move.id), ("commission_move_id", "=", move.id)])
+
+ @api.depends("debit_request_ids", "credit_request_ids")
+ def _compute_digital_currency_invoice_type(self):
+ if self.debit_request_ids:
+ self.digital_currency_invoice_type = "debit"
+ elif self.credit_request_ids:
+ self.digital_currency_invoice_type = "credit"
+ else:
+ self.digital_currency_invoice_type = "none"
+
def _invoice_paid_hook(self):
res = super(AccountInvoice, self)._invoice_paid_hook()
- for invoice in self.filtered(lambda move: move.is_invoice() and move.is_sale_document() and move.has_numeric_lcc_products):
+ for invoice in self:
+ if not invoice.is_invoice():
+ continue
+
for request in invoice.credit_request_ids:
# Only the opened request are concerned
if request.state != "open":
continue
# Set the state in "pending" to launch the top up process
request.write({"state": "pending"})
+
+ for request in invoice.debit_request_ids:
+ # Set the state in "paid" and update the global request status
+ if invoice.is_sale_document():
+ state_value = {"commission_move_state": "paid"}
+ if invoice.is_purchase_document():
+ state_value = {"debit_move_state": "paid"}
+ request.write(state_value)
+ request.compute_state()
+ return res
+
+ def action_post(self):
+ # OVERRIDE
+ res = super(AccountInvoice, self).action_post()
+ for invoice in self:
+ if not invoice.is_invoice():
+ continue
+
+ for request in invoice.debit_request_ids:
+ if invoice.is_sale_document():
+ state_value = {"commission_move_state": "posted"}
+ if invoice.is_purchase_document():
+ state_value = {"debit_move_state": "posted"}
+ request.write(state_value)
+ request.compute_state()
return res
diff --git a/lcc_lokavaluto_app_connection/models/commission_rule.py b/lcc_lokavaluto_app_connection/models/commission_rule.py
new file mode 100644
index 00000000..a88a1c2c
--- /dev/null
+++ b/lcc_lokavaluto_app_connection/models/commission_rule.py
@@ -0,0 +1,27 @@
+from odoo import models, fields
+
+class CommissionRule(models.Model):
+ """A commission rule defines the way to calculate the reconversion
+ commission amount for digital currencies."""
+
+ _name = "commission.rule"
+
+ name = fields.Char('Name')
+ active = fields.Boolean(default=True)
+ wallet_domain = fields.Char('Wallet Domain')
+
+ calculation_rule = fields.Selection([
+ ('fix', 'Fix amount'),
+ ('percentage', 'Percentage'),
+ ], string='Calculation Rule')
+
+ calculation_value = fields.Float("Value")
+
+
+ def calculate_commission_amount(self, debit_amount):
+ self.ensure_one()
+ if self.calculation_rule == "fix":
+ return self.calculation_value
+ elif self.calculation_rule == "percentage":
+ return debit_amount * self.calculation_value / 100
+
diff --git a/lcc_lokavaluto_app_connection/models/company.py b/lcc_lokavaluto_app_connection/models/company.py
index 86615171..3759f86d 100644
--- a/lcc_lokavaluto_app_connection/models/company.py
+++ b/lcc_lokavaluto_app_connection/models/company.py
@@ -1,5 +1,7 @@
-from odoo import models, fields
+from odoo import models, fields, api
+import logging
+_logger = logging.getLogger(__name__)
class Company(models.Model):
_inherit = "res.company"
@@ -8,3 +10,58 @@ class Company(models.Model):
monujo_android_app_url = fields.Char(string="Monujo Android app URL")
monujo_ios_app_url = fields.Char(string="Monujo iOS app URL")
activate_automatic_topup = fields.Boolean("Activate Automatic Topup")
+ commission_product_id = fields.Many2one("product.product", string="Commission Product")
+ allow_payments_only_to_companies = fields.Boolean(string="Allow payments only to companies")
+
+ def _cron_import_new_digital_currency_debit_requests(self):
+ """Create the debit requests in Odoo for all the debit
+ transactions performed since the last check."""
+
+ # Extract last transactions received in the Safe Wallet
+ transactions = self._retrieve_last_debit_transactions()
+
+ # For each transaction received:
+ # - retrieve the transaction id
+ # - check if any debit request exists with this transaction id
+ # - if yes, do nothing
+ # - if no, create a new debit request
+ for transaction in transactions:
+ tx_id = transaction.get("tx_id", "")
+ debit_requests = self.env["debit.request"].search([("transaction_id", "=", tx_id)])
+ if len(debit_requests) > 0:
+ _logger.info("Debit request already exists for transaction %s" % transaction.get("tx_id"))
+ continue
+ values = self._build_debit_request_values(transaction)
+ if not values:
+ continue
+ request = self.env["debit.request"].create(values)
+ _logger.info("Debit request created for wallet %s on transaction %s" % (request.wallet_id,transaction.get("tx_id")))
+
+
+ def _retrieve_last_debit_transactions(self):
+ """TO OVERIDE in digital currency backend dedicated add-ons
+ A list of transactions (dictionnary) is expected, with the following data:
+ - sender: the Odoo name of the wallet concerned by the debit request,
+ - amount: the amount debited from the wallet,
+ - tx_id: the transaction ID in the digital currency backend
+ - tx_timestamp: the timestamp of the transaction
+ """
+ return []
+
+
+ def _build_debit_request_values(self, transaction):
+ wallet_ids = self.env["res.partner.backend"].search([("name", "=", transaction.get("sender"))])
+ if len(wallet_ids) == 0:
+ _logger.error("No wallet found for debit transaction %s, debit request creation CANCELLED" % transaction.get("tx_id"))
+ return {}
+ elif len(wallet_ids) > 1:
+ _logger.error("Too many wallets found for debit transaction %s, debit request creation CANCELLED" % transaction.get("tx_id"))
+ return {}
+ values = {
+ "active" : True,
+ "wallet_id" : wallet_ids[0].id,
+ "amount" : transaction.get("amount"),
+ "transaction_id" : transaction.get("tx_id"),
+ "transaction_timestamp": transaction.get("tx_timestamp"),
+ }
+ return values
\ No newline at end of file
diff --git a/lcc_lokavaluto_app_connection/models/credit_request.py b/lcc_lokavaluto_app_connection/models/credit_request.py
index 3a6e6fc5..b2daca49 100644
--- a/lcc_lokavaluto_app_connection/models/credit_request.py
+++ b/lcc_lokavaluto_app_connection/models/credit_request.py
@@ -58,7 +58,7 @@ def write(self, vals):
for request in self:
if request.state == "pending":
# The top up has been paid, the credit process can start
- if request.partner_id.company_id.activate_automatic_topup:
+ if self.env.user.company_id.activate_automatic_topup:
request.credit_wallet()
return res
diff --git a/lcc_lokavaluto_app_connection/models/debit_request.py b/lcc_lokavaluto_app_connection/models/debit_request.py
new file mode 100644
index 00000000..941cf6d0
--- /dev/null
+++ b/lcc_lokavaluto_app_connection/models/debit_request.py
@@ -0,0 +1,203 @@
+from odoo import models, fields, api
+from odoo.exceptions import UserError
+
+
+class DebitRequest(models.Model):
+ """Debit request to follow the reconversion process for wallet users"""
+
+ _sql_constraints = [
+ ('transaction_id_uniq', 'unique(transaction_id)', 'Transaction ID must be unique, a request already exists with this transaction ID!'),
+ ]
+
+ _name = "debit.request"
+
+ active = fields.Boolean(default=True, tracking=True)
+ amount = fields.Float("Amount", required=True)
+ wallet_id = fields.Many2one("res.partner.backend", string="Wallet", required=True)
+ partner_id = fields.Many2one(
+ "res.partner", related="wallet_id.partner_id", readonly=True
+ )
+ state = fields.Selection(
+ [
+ ("draft", "Draft"), # request created, some fields values still missing
+ ("received", "Received"), # all transaction data received, draft invoiced created
+ ("invoiced", "Invoiced"), # invoiced validated/sent
+ ("paid", "Paid"), # all invoices have been paid
+ ("cancelled", "Cancelled"), # debit request cancelled
+ ],
+ required=True,
+ string="State",
+ default='draft',
+ )
+ transaction_id = fields.Char('Transaction ID')
+ transaction_timestamp = fields.Datetime('Transaction Timestamp')
+ debit_move_id = fields.Many2one("account.move", string="Debit Invoice")
+ debit_move_state = fields.Selection(
+ [
+ ('draft', 'Draft'),
+ ('posted', 'Posted'),
+ ('paid', 'Paid'),
+ ('cancelled', 'Cancelled'),
+ ],
+ string='Debit Invoice State',
+ default="draft",
+ )
+ commission_move_id = fields.Many2one("account.move", string="Commission Invoice")
+ commission_move_state = fields.Selection(
+ [
+ ('draft', 'Draft'),
+ ('posted', 'Posted'),
+ ('paid', 'Paid'),
+ ('cancelled', 'Cancelled'),
+ ],
+ string='Commission Invoice State',
+ default="draft",
+ )
+
+ is_reconversion_allowed = fields.Boolean(related="wallet_id.is_reconversion_allowed", readonly=True)
+
+ @api.model
+ def create(self, vals):
+ res = super(DebitRequest, self).create(vals)
+ for request in res:
+ if request.is_ready_to_invoice():
+ request.create_invoices()
+ return res
+
+ def unlink(self):
+ for request in self:
+ if request.state == "invoiced" or (
+ request.debit_move_id and request.debit_move_id.state != "draft"
+ ):
+ raise UserError(
+ "You can't delete a debit request linked with a posted or paid invoice."
+ )
+ elif request.state == "cancelled":
+ raise UserError(
+ "You can't delete a cancelled debit request. Please archive it instead."
+ )
+ elif request.state == "paid":
+ raise UserError(
+ "You can't delete a paid debit request. Please archive it instead."
+ )
+
+ if request.debit_move_id and request.debit_move_id.state == "draft":
+ request.debit_move_id.unlink()
+ return super(DebitRequest, self).unlink()
+
+ def compute_state(self):
+ for request in self:
+ if not request.debit_move_id:
+ request.state = "draft"
+ continue
+
+ if not request.commission_move_id:
+ # If there is no commission invoice, the debit invoice status defines the request status.
+ request.state = self._convert_status(request.debit_move_state)
+ continue
+
+ if request.debit_move_state == "cancelled":
+ # Debit move cancellation means there is no debit to perform, then all the process is cancelled.
+ request.state = "cancelled"
+ continue
+
+ if request.commission_move_state == "cancelled":
+ # If the commission invoice is cancelled, we do not consider it anymore for the request status.
+ request.state = self._convert_status(request.debit_move_state)
+ continue
+
+ if request.debit_move_state == "draft" or request.commission_move_state == "draft":
+ # If any of the invoices is in Draft, the request is still considered as "received"
+ request.state = self._convert_status("draft")
+ continue
+
+ if request.debit_move_state == "posted" or request.commission_move_state == "posted":
+ request.state = self._convert_status("posted")
+ continue
+
+ if request.debit_move_state == "paid" or request.commission_move_state == "paid":
+ request.state = self._convert_status("paid")
+
+
+ def _convert_status(self, status):
+ if status == "draft":
+ return "received"
+ if status == "posted":
+ return "invoiced"
+ if status == "paid":
+ return "paid"
+
+ def is_ready_to_invoice(self, raise_error=False):
+ self.ensure_one()
+ if self.amount <= 0 and raise_error:
+ raise UserError("Amount must be superior to zero.")
+ if not self.wallet_id and raise_error:
+ raise UserError("The wallet is missing.")
+ if not self.transaction_id and raise_error:
+ raise UserError("The transaction ID is missing.")
+ return (self.amount > 0) and self.wallet_id and self.transaction_id
+
+ #############################
+ ## INVOICE CREATION PROCESSES
+ #############################
+
+ def create_invoices(self):
+ self.create_debit_invoices()
+ self.create_commission_invoices()
+ self.compute_state()
+
+ def create_debit_invoices(self):
+ for request in self:
+ self.is_ready_to_invoice(raise_error=True)
+ # get invoices data
+ debit_invoice_data = request._get_debit_invoice_data()
+ # create invoices
+ invoice = self.env['account.move'].create(debit_invoice_data)
+ request.debit_move_id = invoice.id
+
+ def _get_debit_invoice_data(self):
+ self.ensure_one()
+ return {
+ 'move_type': "in_invoice",
+ 'partner_id': self.partner_id.id,
+ 'invoice_line_ids': [(0, 0, self._get_debit_invoice_line_values())]
+ }
+
+ def _get_debit_invoice_line_values(self):
+ self.ensure_one()
+ product_id = self.wallet_id.get_lcc_product()
+ invoice_line_values = {
+ 'product_id': product_id.id,
+ 'quantity': self.amount,
+ 'price_unit': product_id.standard_price,
+ }
+ return invoice_line_values
+
+ def create_commission_invoices(self):
+ for request in self:
+ self.is_ready_to_invoice(raise_error=True)
+ # get invoices data
+ commission_invoice_data = request._get_commission_invoice_data()
+ # create invoices
+ invoice = self.env['account.move'].create(commission_invoice_data)
+ request.commission_move_id = invoice.id
+
+ def _get_commission_invoice_data(self):
+ self.ensure_one()
+ return {
+ 'move_type': "out_invoice",
+ 'partner_id': self.partner_id.id,
+ 'invoice_line_ids': [(0, 0, self._get_commission_invoice_line_values())]
+ }
+
+ def _get_commission_invoice_line_values(self):
+ self.ensure_one()
+ product_id = self.env.user.company_id.commission_product_id
+ rule = self.wallet_id.get_wallet_commission_rule()
+ commission_amount = rule.calculate_commission_amount(self.amount)
+ invoice_line_values = {
+ 'product_id': product_id.id,
+ 'quantity': 1,
+ 'price_unit': commission_amount,
+ }
+ return invoice_line_values
\ No newline at end of file
diff --git a/lcc_lokavaluto_app_connection/models/reconversion_rule.py b/lcc_lokavaluto_app_connection/models/reconversion_rule.py
new file mode 100644
index 00000000..7d615ee9
--- /dev/null
+++ b/lcc_lokavaluto_app_connection/models/reconversion_rule.py
@@ -0,0 +1,12 @@
+from odoo import models, fields
+
+class ReconversionRule(models.Model):
+ """A recommission rule defines if a wallet can use the reconversion process."""
+
+ _name = "reconversion.rule"
+
+ name = fields.Char('Name')
+ active = fields.Boolean(default=True)
+ wallet_domain = fields.Char('Wallet Domain')
+
+ is_reconversion_allowed = fields.Boolean('Is Reconversion Allowed?')
diff --git a/lcc_lokavaluto_app_connection/models/res_config_settings.py b/lcc_lokavaluto_app_connection/models/res_config_settings.py
index 40718a9c..3bdeac51 100644
--- a/lcc_lokavaluto_app_connection/models/res_config_settings.py
+++ b/lcc_lokavaluto_app_connection/models/res_config_settings.py
@@ -27,3 +27,15 @@ class ResConfigSettings(models.TransientModel):
readonly=False,
string="Activate Automatic Topup",
)
+
+ commission_product_id = fields.Many2one(
+ "product.product",
+ related="company_id.commission_product_id",
+ readonly=False,
+ string="Commission Product")
+
+ allow_payments_only_to_companies = fields.Boolean(
+ related="company_id.allow_payments_only_to_companies",
+ readonly=False,
+ string="Allow payments only to companies",
+ )
diff --git a/lcc_lokavaluto_app_connection/models/res_partner_backend.py b/lcc_lokavaluto_app_connection/models/wallet.py
similarity index 65%
rename from lcc_lokavaluto_app_connection/models/res_partner_backend.py
rename to lcc_lokavaluto_app_connection/models/wallet.py
index bce29a80..e9bfe54f 100644
--- a/lcc_lokavaluto_app_connection/models/res_partner_backend.py
+++ b/lcc_lokavaluto_app_connection/models/wallet.py
@@ -1,8 +1,10 @@
from odoo import models, fields, api
from odoo.exceptions import UserError
-
+from odoo.tools.safe_eval import safe_eval
import logging
+
+
_logger = logging.getLogger(__name__)
@@ -32,6 +34,7 @@ class ResPartnerBackend(models.Model):
tracking=True,
)
partner_id = fields.Many2one("res.partner", string="Partner", required=True)
+ is_reconversion_allowed = fields.Boolean('Is Reconversion Allowed?', readonly=True, compute="_compute_is_reconversion_allowed")
def _update_search_data(self, backend_keys):
return {}
@@ -62,6 +65,7 @@ def translate_backend_key_in_wallet_name(self, backend_key):
def get_wallets(self, backend_keys):
"""Returns wallet objects list matching the backend_keys contents"""
Wallet = self.env["res.partner.backend"]
+
return Wallet.search(
[
(
@@ -95,4 +99,31 @@ def get_wallet_balance(self):
"success": False,
"response": "No data - Please install financial backend Odoo add-on."
}
- return res
\ No newline at end of file
+ return res
+
+ def get_wallet_commission_rule(self):
+ self.ensure_one()
+ rules = self.env["commission.rule"].search([("active", "=", True)])
+ for rule in rules:
+ # Get all the wallet matching the rule
+ wallets = self.search(safe_eval(rule.wallet_domain))
+ # Check if current wallet (self) is in the matching wallets
+ if wallets.filtered(lambda x: x.id == self.id):
+ # First rule matched is returned
+ return rule
+ return None
+
+ def _compute_is_reconversion_allowed(self):
+ for record in self:
+ all_rules = self.env["reconversion.rule"].search([("active", "=", True)])
+ # For now the reconversions are not allowed for this wallet
+ record.is_reconversion_allowed = False
+ for rule in all_rules:
+ # Get all the wallet matching the rule
+ wallets = self.search(safe_eval(rule.wallet_domain))
+ # Check if current wallet (self) is in the matching wallets
+ if wallets.filtered(lambda x: x.id == record.id):
+ # As soon as one rule allows the reconversion, we don't need to check the others.
+ if rule.is_reconversion_allowed:
+ record.is_reconversion_allowed = True
+ break
\ No newline at end of file
diff --git a/lcc_lokavaluto_app_connection/security/ir.model.access.csv b/lcc_lokavaluto_app_connection/security/ir.model.access.csv
index 46af3670..50bbee0d 100644
--- a/lcc_lokavaluto_app_connection/security/ir.model.access.csv
+++ b/lcc_lokavaluto_app_connection/security/ir.model.access.csv
@@ -3,4 +3,11 @@ access_lcc_partner_numeric,lcc_lokavaluto_app_connection.lcc_partner_numeric,bas
access_lcc_partner_backend.user,lcc_lokavaluto_app_connection.lcc_partner_backend.user,lcc_lokavaluto_app_connection.model_res_partner_backend,,1,0,0,0
access_lcc_partner_backend.account.manager,lcc_lokavaluto_app_connection.lcc_partner_backend.account_manager,lcc_lokavaluto_app_connection.model_res_partner_backend,lcc_lokavaluto_app_connection.group_wallet_accounts_manager,1,1,1,1
access_credit_request.user,lcc_lokavaluto_app_connection.credit_request.user,lcc_lokavaluto_app_connection.model_credit_request,,1,0,0,0
-access_credit_request.full_manager,lcc_lokavaluto_app_connection.credit_request.full_manager,lcc_lokavaluto_app_connection.model_credit_request,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1
\ No newline at end of file
+access_credit_request.full_manager,lcc_lokavaluto_app_connection.credit_request.full_manager,lcc_lokavaluto_app_connection.model_credit_request,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1
+access_debit_request.user,lcc_lokavaluto_app_connection.debit_request.user,lcc_lokavaluto_app_connection.model_debit_request,,1,0,0,0
+access_debit_request.full_manager,lcc_lokavaluto_app_connection.debit_request.full_manager,lcc_lokavaluto_app_connection.model_debit_request,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1
+access_commission_rule.user,lcc_lokavaluto_app_connection.commission_rule.user,lcc_lokavaluto_app_connection.model_commission_rule,,1,0,0,0
+access_commission_rule.full_manager,lcc_lokavaluto_app_connection.commission_rule.full_manager,lcc_lokavaluto_app_connection.model_commission_rule,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1
+access_reconversion_rule.user,lcc_lokavaluto_app_connection.reconversion_rule.user,lcc_lokavaluto_app_connection.model_reconversion_rule,,1,0,0,0
+access_reconversion_rule.full_manager,lcc_lokavaluto_app_connection.reconversion_rule.full_manager,lcc_lokavaluto_app_connection.model_reconversion_rule,lcc_lokavaluto_app_connection.group_wallet_full_manager,1,1,1,1
+access_create_credit_request_wizard,lcc_lokavaluto_app_connection.create_credit_request_wizard.access,lcc_lokavaluto_app_connection.model_create_credit_request,lcc_lokavaluto_app_connection.group_wallet_accounts_manager,1,1,1,0
\ No newline at end of file
diff --git a/lcc_lokavaluto_app_connection/services/partner_services.py b/lcc_lokavaluto_app_connection/services/partner_services.py
index ee87038f..fdc71580 100644
--- a/lcc_lokavaluto_app_connection/services/partner_services.py
+++ b/lcc_lokavaluto_app_connection/services/partner_services.py
@@ -119,6 +119,26 @@ def validate_credit_requests(self, partner_credit_requests_get_param):
requests.validate()
return True
+ @restapi.method(
+ [(["/reconversions"], "POST")],
+ input_param=Datamodel("partner.reconversions"),
+ )
+ def reconversions(self, params):
+ """Return the reconversions status for transactions matching Odoo debit requests.
+ Possible values in the dictionnary: the matching debit_request state
+ If no debit request matching the transactions (too many or no requests found), the transaction is not returned.
+ """
+ txs_list = params.transactions
+ res = {}
+ DebitRequest = self.env["debit.request"]
+ for tx_id in txs_list:
+ debit_requests = DebitRequest.search(["transaction_id", '=', tx_id])
+ if len(debit_requests) != 1:
+ _logger.error("Impossible to match a debit request for transaction %s: %s requests found" % (tx_id, len(debit_requests)))
+ continue
+ res[tx_id] = debit_requests[0].state
+ return res
+
@restapi.method(
[(["//get", "/"], "GET")],
)
@@ -172,6 +192,10 @@ def search_recipients(self, recipients_search_info):
)
order = _recipient_order_normalize(order)
website_url = recipients_search_info.website_url
+
+ if self.env.company.allow_payments_only_to_companies == True:
+ domain.extend([('partner_id.is_company','=',True)])
+
if value:
domain.extend(
[
@@ -256,7 +280,7 @@ def search_recipients(self, recipients_search_info):
if not lcc_profile_info:
continue
row = lcc_profile_info[0]
- row["monujo_backends"] = partner.lcc_backends_ids._update_search_data(
+ row["monujo_backends"] = partner.lcc_backend_ids._update_search_data(
[k for k in backend_keys if k.startswith("%s:" % recipient.type)],
)
rows.append(row)
diff --git a/lcc_lokavaluto_app_connection/views/account_invoice.xml b/lcc_lokavaluto_app_connection/views/account_invoice.xml
index bf25069d..6e2a00f5 100644
--- a/lcc_lokavaluto_app_connection/views/account_invoice.xml
+++ b/lcc_lokavaluto_app_connection/views/account_invoice.xml
@@ -6,9 +6,9 @@
-
+
+ attrs="{'invisible': [('digital_currency_invoice_type', '!=', 'credit')]}">
units have been
@@ -27,6 +27,18 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/lcc_lokavaluto_app_connection/views/commission_rule.xml b/lcc_lokavaluto_app_connection/views/commission_rule.xml
new file mode 100644
index 00000000..a68a56a3
--- /dev/null
+++ b/lcc_lokavaluto_app_connection/views/commission_rule.xml
@@ -0,0 +1,63 @@
+
+
+
+
+ commission.rule.view.tree
+ commission.rule
+
+
+
+
+
+
+
+
+
+
+
+ commission.rule.view.form
+ commission.rule
+
+
+
+
+
+
+ commission.rule.view.search
+ commission.rule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lcc_lokavaluto_app_connection/views/debit_request.xml b/lcc_lokavaluto_app_connection/views/debit_request.xml
new file mode 100644
index 00000000..c97fa7c6
--- /dev/null
+++ b/lcc_lokavaluto_app_connection/views/debit_request.xml
@@ -0,0 +1,71 @@
+
+
+
+
+ debit.request.view.tree
+ debit.request
+
+
+
+
+
+
+
+
+
+
+
+
+ debit.request.view.form
+ debit.request
+
+
+
+
+
+
+ debit.request.view.search
+ debit.request
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lcc_lokavaluto_app_connection/views/menu.xml b/lcc_lokavaluto_app_connection/views/menu.xml
index 823f98e5..5fd8123c 100644
--- a/lcc_lokavaluto_app_connection/views/menu.xml
+++ b/lcc_lokavaluto_app_connection/views/menu.xml
@@ -1,14 +1,16 @@
-
- LCC backends
+
+ Wallets
ir.actions.act_window
res.partner.backend
tree,form
-
+
+ Create a new wallet.
+
@@ -25,18 +27,81 @@
+
+ Debit Requests
+ ir.actions.act_window
+ debit.request
+ tree,form
+
+
+ Create a new debit request.
+
+
+
+
+
+ Reconversion Rules
+ ir.actions.act_window
+ reconversion.rule
+ tree,form
+
+
+ Create a new reconversion rule.
+
+
+
+
+
+ Commission Rules
+ ir.actions.act_window
+ commission.rule
+ tree,form
+
+
+ Create a new commission rule.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ action="action_reconversion_rule" />
+ action="action_commission_rule" />
\ No newline at end of file
diff --git a/lcc_lokavaluto_app_connection/views/reconversion_rule.xml b/lcc_lokavaluto_app_connection/views/reconversion_rule.xml
new file mode 100644
index 00000000..9fdc4528
--- /dev/null
+++ b/lcc_lokavaluto_app_connection/views/reconversion_rule.xml
@@ -0,0 +1,61 @@
+
+
+
+
+ reconversion.rule.view.tree
+ reconversion.rule
+
+
+
+
+
+
+
+
+
+
+ reconversion.rule.view.form
+ reconversion.rule
+
+
+
+
+
+
+ reconversion.rule.view.search
+ reconversion.rule
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lcc_lokavaluto_app_connection/views/res_config_settings_view.xml b/lcc_lokavaluto_app_connection/views/res_config_settings_view.xml
index 0b030f7f..404f228c 100644
--- a/lcc_lokavaluto_app_connection/views/res_config_settings_view.xml
+++ b/lcc_lokavaluto_app_connection/views/res_config_settings_view.xml
@@ -54,6 +54,28 @@
+
+
+
+
Commission Product
+
+
+
+
+
+
+
+
+
+
+
+
+ Allow payments only to companies
+
+
+
diff --git a/lcc_lokavaluto_app_connection/views/lcc_backend.xml b/lcc_lokavaluto_app_connection/views/wallet.xml
similarity index 65%
rename from lcc_lokavaluto_app_connection/views/lcc_backend.xml
rename to lcc_lokavaluto_app_connection/views/wallet.xml
index 6da6b730..e144efb5 100644
--- a/lcc_lokavaluto_app_connection/views/lcc_backend.xml
+++ b/lcc_lokavaluto_app_connection/views/wallet.xml
@@ -1,17 +1,20 @@
-
- lcc.backend.form.view
+
+ wallet.form.view
res.partner.backend
0
-
-
- lcc.backend.view.tree
+
+ wallet.view.tree
res.partner.backend
-
+
@@ -38,8 +47,8 @@
-
- lcc.backend.view.search
+
+ wallet.view.search
res.partner.backend
diff --git a/lcc_members/__manifest__.py b/lcc_members/__manifest__.py
index 9fc96159..aec05da4 100644
--- a/lcc_members/__manifest__.py
+++ b/lcc_members/__manifest__.py
@@ -53,7 +53,6 @@
"views/portal_my_home.xml",
"views/portal_structure_profile.xml",
"views/res_partner_view.xml",
- "views/res_users_views.xml",
"views/website_partner_view.xml",
"wizard/membership_invoice_views.xml",
],
diff --git a/lcc_members/views/res_users_views.xml b/lcc_members/views/res_users_views.xml
deleted file mode 100644
index 0ac2302b..00000000
--- a/lcc_members/views/res_users_views.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- res.users.groups
- res.users
-
- 99
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/lcc_wallet_qr/__manifest__.py b/lcc_wallet_qr/__manifest__.py
index 7e2ad8f9..b21348a7 100644
--- a/lcc_wallet_qr/__manifest__.py
+++ b/lcc_wallet_qr/__manifest__.py
@@ -12,7 +12,7 @@
],
# always loaded
"data": [
- "views/lcc_backend.xml",
+ "views/wallet.xml",
"data/res_partner_backend_data.xml",
],
# only loaded in demonstration mode
diff --git a/lcc_wallet_qr/models/__init__.py b/lcc_wallet_qr/models/__init__.py
index 508a71c3..c21f7b2d 100644
--- a/lcc_wallet_qr/models/__init__.py
+++ b/lcc_wallet_qr/models/__init__.py
@@ -1 +1 @@
-from . import res_partner_backend
+from . import wallet
diff --git a/lcc_wallet_qr/models/res_partner_backend.py b/lcc_wallet_qr/models/wallet.py
similarity index 100%
rename from lcc_wallet_qr/models/res_partner_backend.py
rename to lcc_wallet_qr/models/wallet.py
diff --git a/lcc_wallet_qr/views/lcc_backend.xml b/lcc_wallet_qr/views/wallet.xml
similarity index 71%
rename from lcc_wallet_qr/views/lcc_backend.xml
rename to lcc_wallet_qr/views/wallet.xml
index 4076ec45..cf5ef6a1 100644
--- a/lcc_wallet_qr/views/lcc_backend.xml
+++ b/lcc_wallet_qr/views/wallet.xml
@@ -1,11 +1,11 @@
-
- lcc.backend.qr.form.view
+
+ wallet.qr.form.view
res.partner.backend
-
+
-
+
Generate new QR