Merge pull request #120 from Noviat/18.0

Syncing from upstream Noviat/account_ebics (18.0)
This commit is contained in:
braintec authored and GitHub committed 2026-10-27 06:29:24 +01:00
commit a6742bcf80
60 files changed
+968 -326

No files matched your search

+2 -1
View File
@@ -1,5 +1,5 @@
# Do NOT update manually; changes here will be overwritten by Copier
_commit: v5.0
_commit: v8.0.2
_src_path: git@github.com:Noviat-CI/addons-repo-template.git
ci_disable_autoinstall_modules: account_asset
odoo_test_flavor: Both
@@ -9,4 +9,5 @@ rebel_module_groups: []
repo_name: Modules dedicated to manage the EBICS protocol
repo_slug: account_ebics
repo_type: customer
weblate_project_name: ''
+29
View File
@@ -0,0 +1,29 @@
name: Check module version bump
on:
pull_request:
branches:
- "18.0*"
jobs:
check-version-bump:
runs-on: ubuntu-latest
name: Check module version bump
steps:
- uses: actions/checkout@v7
with:
# HEAD is the PR merge commit, HEAD^1 the tip of the base branch
fetch-depth: 2
persist-credentials: false
- name: Configure git authentication
# Header instead of URL credentials, see test.yml
env:
TOKEN: ${{ secrets.PRIVATE_TOKEN }}
run: |
git config --global http.https://github.com/.extraheader "AUTHORIZATION: basic $(printf 'x-access-token:%s' "$TOKEN" | base64 -w0)"
- name: Add Noviat CI Tools to PATH
run: |
git clone https://github.com/Noviat-CI/noviat-ci-tools.git /opt/noviat-ci-tools
echo "/opt/noviat-ci-tools" >> $GITHUB_PATH
- name: Check module version bump
run: check_module_version_bump
+10 -4
View File
@@ -8,17 +8,23 @@ on:
branches:
- "18.0"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
pre-commit:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: "3.11"
cache: 'pip'
cache-dependency-path: '.pre-commit-config.yaml'
- name: Get python version
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
- uses: actions/cache@v4
- uses: actions/cache@v6
with:
path: ~/.cache/pre-commit
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
+42 -13
View File
@@ -8,18 +8,23 @@ on:
branches:
- "18.0"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
unreleased-deps:
runs-on: ubuntu-latest
name: Detect unreleased dependencies
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
- run: |
for reqfile in requirements.txt test-requirements.txt ; do
if [ -f ${reqfile} ] ; then
result=0
# reject non-comment lines that contain a / (i.e. URLs, relative paths)
grep "^[^#].*/" ${reqfile} || result=$?
# unless they have a "# SKIP TEST" comment
grep "^[^#].*/" ${reqfile} | grep -v "# SKIP TEST" || result=$?
if [ $result -eq 0 ] ; then
echo "Unreleased dependencies found in ${reqfile}."
exit 1
@@ -27,7 +32,7 @@ jobs:
fi
done
test:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
container: ${{ matrix.container }}
name: ${{ matrix.name }}
permissions:
@@ -49,7 +54,7 @@ jobs:
makepot: "true"
services:
postgres:
image: postgres:12.0
image: postgres:12
env:
POSTGRES_USER: odoo
POSTGRES_PASSWORD: odoo
@@ -60,20 +65,34 @@ jobs:
INSTALL_ADDONS_DIR: "/tmp/addons-merged"
ADDITIONAL_ADDONS_DIR: "/tmp/additional-addons"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
with:
persist-credentials: false
- name: Configure git authentication
env:
TOKEN: ${{ secrets.PRIVATE_TOKEN }}
run: |
git config --global http.https://github.com/.extraheader "AUTHORIZATION: basic $(printf 'x-access-token:%s' "$TOKEN" | base64 -w0)"
- name: Set pip constraints (pyOpenSSL / cryptography)
run: |
cat > /tmp/constraints.txt <<'EOF'
pyOpenSSL == 22.1.0
cryptography == 38.0.4
EOF
echo "PIP_CONSTRAINT=/tmp/constraints.txt" >> $GITHUB_ENV
- name: Upgrade pip in container
run: python -m pip install --upgrade pip
- name: Install Odoo upgrade util
run: python -m pip install git+https://github.com/odoo/upgrade-util@master
- name: Add Noviat CI Tools to PATH
run: |
git clone https://${{ secrets.PRIVATE_TOKEN }}@github.com/Noviat-CI/noviat-ci-tools.git /opt/noviat-ci-tools
git clone https://github.com/Noviat-CI/noviat-ci-tools.git /opt/noviat-ci-tools
echo "/opt/noviat-ci-tools" >> $GITHUB_PATH
- name: Clone Odoo Enterprise
if: ${{ matrix.odoo_enterprise == 1 }}
run : |
git clone https://${{ secrets.PRIVATE_TOKEN }}@github.com/odoo/enterprise.git --depth 1 -b 18.0 /opt/enterprise
git clone https://github.com/odoo/enterprise.git --depth 1 -b 18.0 /opt/enterprise
- name: Clone Noviat Dependencies
env:
PRIVATE_TOKEN: ${{ secrets.PRIVATE_TOKEN }}
run: clone_oca_dependencies_by_noviat
- name: Create addons path
run: |
@@ -97,21 +116,30 @@ jobs:
run: |
echo "server_wide_modules = web,module_change_auto_install" >> ${ODOO_RC}
echo "ODOO_MODULES_AUTO_INSTALL_DISABLED=${{ matrix.EXCLUDE_MODULES }}" >> $GITHUB_ENV
- name: Inject GitHub token for Noviat orgs in test-requirements.txt
run: |
sed -i -E "s#https://github.com/(Noviat-(Projects|Generic|ARP|Internal))#https://${{ secrets.PRIVATE_TOKEN }}@github.com/\1#g" test-requirements.txt
- name: Install addons and dependencies
run: |
(ADDONS_PATH=${ADDONS_PATH} ADDONS_DIR=${INSTALL_ADDONS_DIR} oca_install_addons)
- name: Install external dependencies of core addons (not in Odoo requirements.txt)
run: |
(ADDONS_DIR=${INSTALL_ADDONS_DIR} noviat_install_odoo_external_dependencies)
- name: Initialize test db
run: oca_init_test_database
- name: Run tests
run: oca_run_tests
- name: Generate coverage files
id: coverage
run: |
# oca_run_tests exits early without coverage data when there is no
# addon to test (e.g. a freshly scaffolded version branch).
if [ -z "$(oca_list_addons_to_test)" ]; then
echo "No addon to test, skipping coverage report."
exit 0
fi
coverage report -m
coverage xml -o coverage.xml
echo "report=true" >> "$GITHUB_OUTPUT"
- name: Code Coverage Summary Report
if: steps.coverage.outputs.report == 'true'
uses: irongut/CodeCoverageSummary@v1.3.0
with:
filename: 'coverage.xml'
@@ -120,7 +148,8 @@ jobs:
output: 'both'
hide_complexity: true
- name: Write to Job Summary
if: steps.coverage.outputs.report == 'true'
run: cat code-coverage-results.md >> $GITHUB_STEP_SUMMARY
- name: Update .pot files
run: noviat_export_and_push_pot https://x-access-token:${{ secrets.PRIVATE_TOKEN }}@github.com/${{ github.repository }}
run: noviat_export_and_push_pot https://github.com/${{ github.repository }}
if: ${{ matrix.makepot == 'true' && github.event_name == 'push' }}
+42
View File
@@ -0,0 +1,42 @@
name: Update addons table after merge
on:
push:
branches:
- "18.0"
paths-ignore:
- "README.md"
permissions:
contents: write
jobs:
gen-addons-table:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
fetch-depth: 0
- uses: actions/setup-python@v7
with:
python-version: "3.11"
- name: Install pre-commit
run: pip install pre-commit
- name: Run the manual hook to (re)generate the addons table
run: pre-commit run -a --hook-stage manual oca-gen-addons-table
continue-on-error: true
- name: Commit & push if changed
env:
TOKEN: ${{ secrets.PRIVATE_TOKEN }}
run: |
if ! git diff --quiet; then
git config user.name "noviat-ci-bot"
git config user.email "bot+ci@noviat.com"
git add -A
git commit -m "update addons table"
# Header instead of URL credentials, see test.yml
git config http.https://github.com/.extraheader "AUTHORIZATION: basic $(printf 'x-access-token:%s' "$TOKEN" | base64 -w0)"
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git push origin HEAD:18.0
fi
+35 -14
View File
@@ -22,7 +22,7 @@ exclude: |
(LICENSE.*|COPYING.*)
default_language_version:
python: python3
node: "22.9.0"
node: "22.23.3"
repos:
- repo: local
hooks:
@@ -39,25 +39,38 @@ repos:
language: fail
files: '[a-zA-Z0-9_]*/i18n/en\.po$'
- repo: https://github.com/sbidoul/whool
rev: v1.2
rev: v1.3
hooks:
- id: whool-init
additional_dependencies:
# force a fresh pre-commit env: up-to-date core addons lists and
# Odoo 20 support (since v1.16.0)
- manifestoo-core>=1.16.1
- repo: https://github.com/oca/maintainer-tools
rev: b89f767503be6ab2b11e4f50a7557cb20066e667
rev: b8311a95009805a6e5593f0390f52c0fa350117f
hooks:
# update the NOT INSTALLABLE ADDONS section above
- id: oca-update-pre-commit-excluded-addons
- id: oca-fix-manifest-website
args: ["https://www.noviat.com/"]
- id: oca-gen-external-dependencies
additional_dependencies:
# an outdated manifestoo-core ignores recent core addons, and wipes
# requirements.txt on an Odoo series it does not know
- manifestoo-core>=1.16.1
- id: oca-gen-addons-table
stages: [manual]
- repo: https://github.com/OCA/odoo-pre-commit-hooks
rev: v0.0.33
rev: v0.2.27
hooks:
- id: oca-checks-odoo-module
- id: oca-checks-odoo-module-fixit
args:
- --disable=use-header-comments
- id: oca-checks-po
args:
- --disable=po-pretty-format
- --fix
- repo: local
hooks:
- id: prettier
@@ -71,8 +84,8 @@ repos:
files: \.(css|htm|html|js|json|jsx|less|md|scss|toml|ts|xml|yaml|yml)$
language: node
additional_dependencies:
- "prettier@3.3.3"
- "@prettier/plugin-xml@3.4.1"
- "prettier@3.9.9"
- "@prettier/plugin-xml@3.4.2"
- repo: local
hooks:
- id: eslint
@@ -85,10 +98,11 @@ repos:
types: [javascript]
language: node
additional_dependencies:
- "eslint@9.12.0"
- "eslint-plugin-jsdoc@50.3.1"
- "eslint@10.11.0"
- "eslint-plugin-jsdoc@65.0.0"
- "globals@17.12.0"
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
rev: v6.0.0
hooks:
- id: trailing-whitespace
# exclude autogenerated files
@@ -97,8 +111,6 @@ repos:
# exclude autogenerated files
exclude: /README\.rst$|\.pot?$
- id: debug-statements
- id: fix-encoding-pragma
args: ["--remove"]
- id: check-case-conflict
- id: check-docstring-first
- id: check-executables-have-shebangs
@@ -109,21 +121,30 @@ repos:
- id: check-xml
- id: mixed-line-ending
args: ["--fix=lf"]
- repo: https://github.com/asottile/pyupgrade
rev: v3.21.2
hooks:
- id: pyupgrade
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.6.8
rev: v0.16.9
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
- id: ruff-format
# markdown is prettier's job (ruff >= 0.16 also formats its code blocks)
types_or: [python, pyi, jupyter]
- repo: https://github.com/OCA/pylint-odoo
rev: v9.1.3
rev: v10.0.11
hooks:
- id: pylint_odoo
name: pylint with optional checks
name: pylint (optional, core only)
args:
- --rcfile=.pylintrc
- --exit-zero
verbose: true
- id: pylint_odoo
name: pylint-odoo (mandatory, blocking)
args:
- --disable=missing-readme
- --rcfile=.pylintrc-mandatory
verbose: true
+42 -47
View File
@@ -1,9 +1,11 @@
[MASTER]
ignore-patterns=["^.*/TODO/.*$"]
load-plugins=pylint_odoo
score=n
[IMPORTS]
deprecated-modules=pdb,pudb,ipdb,bs4
[ODOOLINT]
#readme-template-url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst"
manifest-required-authors=Noviat
@@ -22,22 +24,15 @@ disable=all
# .pylintrc-mandatory containing only mandatory checks is used the pre-commit
# config as a blocking check.
enable=anomalous-backslash-in-string,
api-one-deprecated,
api-one-multi-together,
enable =
anomalous-backslash-in-string,
assignment-from-none,
attribute-deprecated,
class-camelcase,
dangerous-default-value,
dangerous-view-replace-wo-priority,
deprecated-module,
development-status-allowed,
duplicate-id-csv,
duplicate-key,
duplicate-xml-fields,
duplicate-xml-record-id,
eval-referenced,
eval-used,
incoherent-interpreter-exec-perm,
license-allowed,
manifest-author-string,
manifest-deprecated-key,
@@ -48,73 +43,73 @@ enable=anomalous-backslash-in-string,
method-inverse,
method-required-super,
method-search,
openerp-exception-warning,
pointless-statement,
pointless-string-statement,
print-used,
redundant-keyword-arg,
redundant-modulename-xml,
reimported,
relative-import,
return-in-init,
rst-syntax-error,
sql-injection,
too-few-format-args,
translation-field,
translation-required,
unreachable,
use-vim-comment,
wrong-tabs-instead-of-spaces,
xml-syntax-error,
# >= 15
attribute-string-redundant,
character-not-valid-in-resource-link,
consider-merging-classes-inherited,
context-overridden,
create-user-wo-reset-password,
dangerous-filter-wo-user,
dangerous-qweb-replace-wo-priority,
deprecated-data-xml-node,
deprecated-openerp-xml-node,
duplicate-po-message-definition,
except-pass,
file-not-used,
invalid-commit,
manifest-external-assets,
manifest-maintainers-list,
missing-newline-extrafiles,
# missing-readme,
missing-readme,
missing-return,
odoo-addons-relative-import,
old-api7-method-defined,
po-msgstr-variables,
po-syntax-error,
odoo-exception-warning,
renamed-field-parameter,
resource-not-exist,
str-format-used,
test-folder-imported,
translation-contains-variable,
translation-positional-used,
unnecessary-utf8-coding-comment,
website-manifest-key-not-valid-uri,
xml-attribute-translatable,
xml-deprecated-qweb-directive,
xml-deprecated-tree-attribute,
# >= 16
external-request-timeout,
# >= 19
bad-builtin-groupby,
category-allowed,
deprecated-name-get,
deprecated-odoo-model-method,
deprecated-self-cr,
inheritable-method-lambda,
inheritable-method-string,
invalid-email,
manifest-behind-migrations,
manifest-data-duplicated,
missing-odoo-file,
no-raise-unlink,
no-search-all,
no-wizard-in-models,
prohibited-method-override,
prefer-env-translation,
translation-format-interpolation,
translation-format-truncated,
translation-injection,
translation-fstring-interpolation,
translation-not-lazy,
translation-too-few-args,
translation-too-many-args,
translation-unsupported-format,
no-write-in-compute,
odoolint,
# >= 20
manifest-summary-multiline,
# messages that do not cause the lint step to fail
consider-merging-classes-inherited,
create-user-wo-reset-password,
dangerous-filter-wo-user,
deprecated-module,
file-not-used,
invalid-commit,
missing-manifest-dependency,
missing-newline-extrafiles,
# missing-readme,
no-utf8-coding-comment,
missing-readme,
odoo-addons-relative-import,
old-api7-method-defined,
redefined-builtin,
too-complex,
unnecessary-utf8-coding-comment
redefined-builtin
[REPORTS]
+41 -35
View File
@@ -3,6 +3,9 @@ ignore-patterns=["^.*/TODO/.*$"]
load-plugins=pylint_odoo
score=n
[IMPORTS]
deprecated-modules=pdb,pudb,ipdb,bs4
[ODOOLINT]
#readme-template-url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst"
manifest-required-authors=Noviat
@@ -14,22 +17,15 @@ valid-odoo-versions=18.0
[MESSAGES CONTROL]
disable=all
enable=anomalous-backslash-in-string,
api-one-deprecated,
api-one-multi-together,
enable =
anomalous-backslash-in-string,
assignment-from-none,
attribute-deprecated,
class-camelcase,
dangerous-default-value,
dangerous-view-replace-wo-priority,
deprecated-module,
development-status-allowed,
duplicate-id-csv,
duplicate-key,
duplicate-xml-fields,
duplicate-xml-record-id,
eval-referenced,
eval-used,
incoherent-interpreter-exec-perm,
license-allowed,
manifest-author-string,
manifest-deprecated-key,
@@ -40,57 +36,67 @@ enable=anomalous-backslash-in-string,
method-inverse,
method-required-super,
method-search,
openerp-exception-warning,
pointless-statement,
pointless-string-statement,
print-used,
redundant-keyword-arg,
redundant-modulename-xml,
reimported,
relative-import,
return-in-init,
rst-syntax-error,
sql-injection,
too-few-format-args,
translation-field,
translation-required,
unreachable,
use-vim-comment,
wrong-tabs-instead-of-spaces,
xml-syntax-error,
# >= 15
attribute-string-redundant,
character-not-valid-in-resource-link,
consider-merging-classes-inherited,
context-overridden,
create-user-wo-reset-password,
dangerous-filter-wo-user,
dangerous-qweb-replace-wo-priority,
deprecated-data-xml-node,
deprecated-openerp-xml-node,
duplicate-po-message-definition,
except-pass,
file-not-used,
invalid-commit,
manifest-external-assets,
manifest-maintainers-list,
missing-newline-extrafiles,
# missing-readme,
missing-readme,
missing-return,
odoo-addons-relative-import,
old-api7-method-defined,
po-msgstr-variables,
po-syntax-error,
odoo-exception-warning,
renamed-field-parameter,
resource-not-exist,
str-format-used,
test-folder-imported,
translation-contains-variable,
translation-positional-used,
unnecessary-utf8-coding-comment,
website-manifest-key-not-valid-uri,
xml-attribute-translatable,
xml-deprecated-qweb-directive,
xml-deprecated-tree-attribute,
external-request-timeout
# >= 16
external-request-timeout,
# >= 19
bad-builtin-groupby,
category-allowed,
deprecated-name-get,
deprecated-odoo-model-method,
deprecated-self-cr,
inheritable-method-lambda,
inheritable-method-string,
invalid-email,
manifest-behind-migrations,
manifest-data-duplicated,
missing-odoo-file,
no-raise-unlink,
no-search-all,
no-wizard-in-models,
prohibited-method-override,
prefer-env-translation,
translation-format-interpolation,
translation-format-truncated,
translation-injection,
translation-fstring-interpolation,
translation-not-lazy,
translation-too-few-args,
translation-too-many-args,
translation-unsupported-format,
no-write-in-compute,
odoolint,
# >= 20
manifest-summary-multiline
[REPORTS]
msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg}
+8 -1
View File
@@ -3,7 +3,14 @@ target-version = "py310"
fix = true
[lint]
extend-select = [
# Explicit rule set: ruff >= 0.16 enables 413 rules by default, many of which go
# against Odoo idioms (naive UTC datetimes, `self = self.with_context()`, list
# `_inherit`). "E4", "E7", "E9" and "F" are the defaults of ruff < 0.16.
select = [
"E4",
"E7",
"E9",
"F",
"B",
"C90",
"E501", # line too long (default 88)
+6 -7
View File
@@ -1,6 +1,5 @@
[![Pre-commit Status](https://github.com/Noviat/account_ebics/actions/workflows/pre-commit.yml/badge.svg?branch=18.0)](https://github.com/Noviat/account_ebics/actions/workflows/pre-commit.yml?query=branch%3A18.0)
[![Build Status](https://github.com/Noviat/account_ebics/actions/workflows/test.yml/badge.svg?branch=18.0)](https://github.com/Noviat/account_ebics/actions/workflows/test.yml?query=branch%3A18.0)
<!-- /!\ do not modify above this line -->
# Modules dedicated to manage the EBICS protocol
@@ -15,12 +14,12 @@ Available addons
----------------
addon | version | maintainers | summary
--- | --- | --- | ---
[account_ebics](account_ebics/) | 18.0.1.2.2 | | Download bank statements and upload payment files directly from Odoo, using the European EBICS standard
[account_ebics_batch](account_ebics_batch/) | 18.0.1.0.1 | | Download and process your EBICS files automatically, on a schedule
[account_ebics_batch_payment](account_ebics_batch_payment/) | 18.0.1.2.0 | | Send an Odoo Enterprise batch payment to the bank over EBICS
[account_ebics_oca_statement_import](account_ebics_oca_statement_import/) | 18.0.1.0.1 | | Process EBICS statement files with the OCA bank statement import
[account_ebics_oe](account_ebics_oe/) | 18.0.1.0.0 | | Place the EBICS menus in the Odoo Enterprise accounting application
[account_ebics_payment_order](account_ebics_payment_order/) | 18.0.1.2.0 | | Send an OCA payment order to the bank over EBICS
[account_ebics](account_ebics/) | 18.0.1.3.0 | | Download bank statements and upload payment files directly from Odoo, using the European EBICS standard
[account_ebics_batch](account_ebics_batch/) | 18.0.1.0.2 | | Download and process your EBICS files automatically, on a schedule
[account_ebics_batch_payment](account_ebics_batch_payment/) | 18.0.1.3.0 | | Send an Odoo Enterprise batch payment to the bank over EBICS
[account_ebics_oca_statement_import](account_ebics_oca_statement_import/) | 18.0.1.0.2 | | Process EBICS statement files with the OCA bank statement import
[account_ebics_oe](account_ebics_oe/) | 18.0.1.0.1 | | Place the EBICS menus in the Odoo Enterprise accounting application
[account_ebics_payment_order](account_ebics_payment_order/) | 18.0.1.3.0 | | Send an OCA payment order to the bank over EBICS
[//]: # (end addons)
+22
View File
@@ -1,5 +1,8 @@
import functools
import logging
from odoo import api
_logger = logging.getLogger(__name__)
try:
@@ -7,3 +10,22 @@ try:
from . import wizards
except Exception:
_logger.warning("Import Error, check if fintech lib has been installed")
@functools.cached_property
def neutralized(self):
return bool(
self["ir.config_parameter"].sudo().get_param("database.is_neutralized")
or self["ir.ui.view"]
.sudo()
.search_count(
[
("key", "in", ("web.neutralize_banner", "website.neutralize_ribbon")),
("active", "=", True),
]
)
)
api.Environment.neutralized = neutralized
neutralized.__set_name__(api.Environment, "neutralized")
+1 -2
View File
@@ -7,7 +7,7 @@
"Download bank statements and upload payment files directly from Odoo, "
"using the European EBICS standard"
),
"version": "18.0.1.2.2",
"version": "18.0.1.3.0",
"license": "LGPL-3",
"author": "Noviat",
"website": "https://www.noviat.com/",
@@ -26,7 +26,6 @@
"wizards/ebics_admin_order.xml",
"views/menu.xml",
],
"installable": True,
"application": True,
"external_dependencies": {
"python": [
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo noupdate="1">
<!-- Download formats -->
+37 -15
View File
@@ -25,6 +25,13 @@ msgstr ""
msgid "%(st_cnt)s bank statement%(sp)s been imported: "
msgstr ""
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
msgid ""
"'%(filename)s' has been uploaded via EBICS (OrderID: %(order_number)s)."
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_file__date_from
msgid "'Date From' as entered in the download wizard."
@@ -368,6 +375,7 @@ msgstr ""
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_config__state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_userid__state__draft
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_file_view_search
@@ -420,6 +428,16 @@ msgstr ""
msgid "EBICS Administrative Orders"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_ids
msgid "EBICS Configs"
msgstr ""
#. module: account_ebics
#: model:ir.actions.act_window,name:account_ebics.ebics_config_action
#: model:ir.model,name:account_ebics.model_ebics_config
@@ -593,7 +611,7 @@ msgstr ""
#. odoo-python
#: code:addons/account_ebics/models/ebics_config.py:0
msgid ""
"EBICS Keys Root Directory %s is not available.\n"
"EBICS Keys Root Directory %(dir)s is not available.\n"
"Please contact your system administrator."
msgstr ""
@@ -608,9 +626,8 @@ msgid "EBICS Mark as Downloaded"
msgstr ""
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
msgid "EBICS OrderID: %s"
#: model:ir.model.fields,field_description:account_ebics.field_ebics_file__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics
@@ -794,16 +811,6 @@ msgstr ""
msgid "EBICS version mismatch."
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_id
msgid "Ebics Config"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_ids
msgid "Ebics Configs"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_userid__ebics_keys_fn
msgid "Ebics Keys Fn"
@@ -856,6 +863,11 @@ msgid ""
"statement."
msgstr ""
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__error
msgid "Error"
msgstr ""
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
@@ -1242,6 +1254,11 @@ msgstr ""
msgid "Origin: %s"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_file__pain_state
msgid "Pain State"
msgstr ""
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/models/ebics_userid.py:0
@@ -1645,6 +1662,11 @@ msgstr ""
msgid "Upload Only"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__uploaded
msgid "Uploaded"
msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_userid_view_form
msgid ""
@@ -1677,7 +1699,7 @@ msgstr ""
#. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_userid__user_ids
msgid "Users who are allowed to use this EBICS UserID for bank transactions."
msgid "Users who are allowed to use this EBICS UserID for bank transactions."
msgstr ""
#. module: account_ebics
+58 -19
View File
@@ -31,6 +31,12 @@ msgstr " wurde"
msgid "%(st_cnt)s bank statement%(sp)s been imported: "
msgstr "%(st_cnt)s Kontoauszug%(sp)s importiert: "
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
msgid "'%(filename)s' has been uploaded via EBICS (OrderID: %(order_number)s)."
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_file__date_from
msgid "'Date From' as entered in the download wizard."
@@ -391,6 +397,7 @@ msgstr "Download und Upload"
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_config__state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_userid__state__draft
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_file_view_search
@@ -456,6 +463,16 @@ msgstr "Ergebnis des EBICS-Verwaltungsauftrags"
msgid "EBICS Administrative Orders"
msgstr "EBICS-Verwaltungsaufträge"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_ids
msgid "EBICS Configs"
msgstr ""
#. module: account_ebics
#: model:ir.actions.act_window,name:account_ebics.ebics_config_action
#: model:ir.model,name:account_ebics.model_ebics_config
@@ -642,11 +659,9 @@ msgstr "EBICS-Schlüsselstammverzeichnis"
#. odoo-python
#: code:addons/account_ebics/models/ebics_config.py:0
msgid ""
"EBICS Keys Root Directory %s is not available.\n"
"EBICS Keys Root Directory %(dir)s is not available.\n"
"Please contact your system administrator."
msgstr ""
"Das Stammverzeichnis der EBICS-Schlüssel %s ist nicht verfügbar.\n"
"Bitte wenden Sie sich an Ihren Systemadministrator."
#. module: account_ebics
#: model:res.groups,name:account_ebics.group_ebics_manager
@@ -659,10 +674,9 @@ msgid "EBICS Mark as Downloaded"
msgstr "EBICS als heruntergeladen markieren"
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
msgid "EBICS OrderID: %s"
msgstr "EBICS-OrderID: %s"
#: model:ir.model.fields,field_description:account_ebics.field_ebics_file__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_config__ebics_partner
@@ -852,16 +866,6 @@ msgstr "EBICS-Version 3"
msgid "EBICS version mismatch."
msgstr "EBICS-Versionskonflikt."
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_id
msgid "Ebics Config"
msgstr "EBICS-Konfiguration"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_ids
msgid "Ebics Configs"
msgstr "EBICS-Konfigurationen"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_userid__ebics_keys_fn
msgid "Ebics Keys Fn"
@@ -917,6 +921,11 @@ msgstr ""
"Schaltfläche 'Verarbeiten'. Geben Sie z. B. camt.053 an, um eine camt.053-"
"Datei zu importieren und einen Kontoauszug zu erstellen."
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__error
msgid "Error"
msgstr ""
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
@@ -1332,6 +1341,11 @@ msgstr ""
msgid "Origin: %s"
msgstr "Herkunft: %s"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_file__pain_state
msgid "Pain State"
msgstr ""
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/models/ebics_userid.py:0
@@ -1791,6 +1805,11 @@ msgstr "Upload-Format"
msgid "Upload Only"
msgstr "Nur Upload"
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__uploaded
msgid "Uploaded"
msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_userid_view_form
msgid ""
@@ -1830,9 +1849,8 @@ msgstr "Benutzer"
#. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_userid__user_ids
msgid "Users who are allowed to use this EBICS UserID for bank transactions."
msgid "Users who are allowed to use this EBICS UserID for bank transactions."
msgstr ""
"Benutzer, die diese EBICS-UserID für Banktransaktionen verwenden dürfen."
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_userid__state__to_verify
@@ -1930,6 +1948,27 @@ msgstr ""
"urlopen-Fehler:\n"
" URL '%(url)s' - %(val)s"
#~ msgid ""
#~ "EBICS Keys Root Directory %s is not available.\n"
#~ "Please contact your system administrator."
#~ msgstr ""
#~ "Das Stammverzeichnis der EBICS-Schlüssel %s ist nicht verfügbar.\n"
#~ "Bitte wenden Sie sich an Ihren Systemadministrator."
#~ msgid "EBICS OrderID: %s"
#~ msgstr "EBICS-OrderID: %s"
#~ msgid "Ebics Config"
#~ msgstr "EBICS-Konfiguration"
#~ msgid "Ebics Configs"
#~ msgstr "EBICS-Konfigurationen"
#~ msgid ""
#~ "Users who are allowed to use this EBICS UserID for bank transactions."
#~ msgstr ""
#~ "Benutzer, die diese EBICS-UserID für Banktransaktionen verwenden dürfen."
#~ msgid "3SKey Certficate"
#~ msgstr "3SKey-Zertifikat"
+59 -20
View File
@@ -32,6 +32,12 @@ msgstr " a"
msgid "%(st_cnt)s bank statement%(sp)s been imported: "
msgstr "%(st_cnt)s relevé bancaire%(sp)s été importé : "
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
msgid "'%(filename)s' has been uploaded via EBICS (OrderID: %(order_number)s)."
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_file__date_from
msgid "'Date From' as entered in the download wizard."
@@ -392,6 +398,7 @@ msgstr "Téléchargement et envoi"
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_config__state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_userid__state__draft
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_file_view_search
@@ -457,6 +464,16 @@ msgstr "Résultat de l'ordre administratif EBICS"
msgid "EBICS Administrative Orders"
msgstr "Ordres administratifs EBICS"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_ids
msgid "EBICS Configs"
msgstr ""
#. module: account_ebics
#: model:ir.actions.act_window,name:account_ebics.ebics_config_action
#: model:ir.model,name:account_ebics.model_ebics_config
@@ -642,11 +659,9 @@ msgstr "Racine des clés EBICS"
#. odoo-python
#: code:addons/account_ebics/models/ebics_config.py:0
msgid ""
"EBICS Keys Root Directory %s is not available.\n"
"EBICS Keys Root Directory %(dir)s is not available.\n"
"Please contact your system administrator."
msgstr ""
"Le répertoire racine des clés EBICS %s n'est pas disponible.\n"
"Veuillez contacter votre administrateur système."
#. module: account_ebics
#: model:res.groups,name:account_ebics.group_ebics_manager
@@ -659,10 +674,9 @@ msgid "EBICS Mark as Downloaded"
msgstr "Marquer EBICS comme téléchargé"
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
msgid "EBICS OrderID: %s"
msgstr "ID de commande EBICS : %s"
#: model:ir.model.fields,field_description:account_ebics.field_ebics_file__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_config__ebics_partner
@@ -850,16 +864,6 @@ msgstr "EBICS version 3"
msgid "EBICS version mismatch."
msgstr "Incompatibilité de version EBICS."
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_id
msgid "Ebics Config"
msgstr "Configuration EBICS"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_ids
msgid "Ebics Configs"
msgstr "Configurations EBICS"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_userid__ebics_keys_fn
msgid "Ebics Keys Fn"
@@ -915,6 +919,11 @@ msgstr ""
"'Traiter'. Par exemple, spécifiez camt.053 pour importer un fichier camt.053 "
"et créer un relevé bancaire."
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__error
msgid "Error"
msgstr ""
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
@@ -1331,6 +1340,11 @@ msgstr ""
msgid "Origin: %s"
msgstr "Origine : %s"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_file__pain_state
msgid "Pain State"
msgstr ""
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/models/ebics_userid.py:0
@@ -1789,6 +1803,11 @@ msgstr "Format de téléversement"
msgid "Upload Only"
msgstr "Téléversement uniquement"
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__uploaded
msgid "Uploaded"
msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_userid_view_form
msgid ""
@@ -1826,10 +1845,8 @@ msgstr "Utilisateurs"
#. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_userid__user_ids
msgid "Users who are allowed to use this EBICS UserID for bank transactions."
msgid "Users who are allowed to use this EBICS UserID for bank transactions."
msgstr ""
"Utilisateurs autorisés à utiliser cet UserID EBICS pour les transactions "
"bancaires."
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_userid__state__to_verify
@@ -1928,6 +1945,28 @@ msgstr ""
"erreur urlopen :\n"
" url '%(url)s' - %(val)s"
#~ msgid ""
#~ "EBICS Keys Root Directory %s is not available.\n"
#~ "Please contact your system administrator."
#~ msgstr ""
#~ "Le répertoire racine des clés EBICS %s n'est pas disponible.\n"
#~ "Veuillez contacter votre administrateur système."
#~ msgid "EBICS OrderID: %s"
#~ msgstr "ID de commande EBICS : %s"
#~ msgid "Ebics Config"
#~ msgstr "Configuration EBICS"
#~ msgid "Ebics Configs"
#~ msgstr "Configurations EBICS"
#~ msgid ""
#~ "Users who are allowed to use this EBICS UserID for bank transactions."
#~ msgstr ""
#~ "Utilisateurs autorisés à utiliser cet UserID EBICS pour les transactions "
#~ "bancaires."
#~ msgid "3SKey Certficate"
#~ msgstr "Certificat 3SKey"
+58 -19
View File
@@ -32,6 +32,12 @@ msgstr " heeft"
msgid "%(st_cnt)s bank statement%(sp)s been imported: "
msgstr "%(st_cnt)s rekeninguittreksel%(sp)s geïmporteerd: "
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
msgid "'%(filename)s' has been uploaded via EBICS (OrderID: %(order_number)s)."
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_file__date_from
msgid "'Date From' as entered in the download wizard."
@@ -391,6 +397,7 @@ msgstr "Downloaden en uploaden"
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_config__state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__state__draft
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_userid__state__draft
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_file_view_search
@@ -456,6 +463,16 @@ msgstr "Resultaat EBICS administratieve order"
msgid "EBICS Administrative Orders"
msgstr "EBICS administratieve orders"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_ids
msgid "EBICS Configs"
msgstr ""
#. module: account_ebics
#: model:ir.actions.act_window,name:account_ebics.ebics_config_action
#: model:ir.model,name:account_ebics.model_ebics_config
@@ -641,11 +658,9 @@ msgstr "Hoofdmap EBICS-sleutels"
#. odoo-python
#: code:addons/account_ebics/models/ebics_config.py:0
msgid ""
"EBICS Keys Root Directory %s is not available.\n"
"EBICS Keys Root Directory %(dir)s is not available.\n"
"Please contact your system administrator."
msgstr ""
"De hoofdmap van de EBICS-sleutels %s is niet beschikbaar.\n"
"Neem contact op met uw systeembeheerder."
#. module: account_ebics
#: model:res.groups,name:account_ebics.group_ebics_manager
@@ -658,10 +673,9 @@ msgid "EBICS Mark as Downloaded"
msgstr "EBICS markeren als gedownload"
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
msgid "EBICS OrderID: %s"
msgstr "EBICS-order-ID: %s"
#: model:ir.model.fields,field_description:account_ebics.field_ebics_file__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_config__ebics_partner
@@ -850,16 +864,6 @@ msgstr "EBICS versie 3"
msgid "EBICS version mismatch."
msgstr "EBICS-versie komt niet overeen."
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_id
msgid "Ebics Config"
msgstr "EBICS-configuratie"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_account_journal__ebics_config_ids
msgid "Ebics Configs"
msgstr "EBICS-configuraties"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_userid__ebics_keys_fn
msgid "Ebics Keys Fn"
@@ -915,6 +919,11 @@ msgstr ""
"knop 'Verwerken'. Geef bijv. camt.053 op om een camt.053-bestand te "
"importeren en een rekeninguittreksel aan te maken."
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__error
msgid "Error"
msgstr ""
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/wizards/ebics_xfer.py:0
@@ -1331,6 +1340,11 @@ msgstr ""
msgid "Origin: %s"
msgstr "Oorsprong: %s"
#. module: account_ebics
#: model:ir.model.fields,field_description:account_ebics.field_ebics_file__pain_state
msgid "Pain State"
msgstr ""
#. module: account_ebics
#. odoo-python
#: code:addons/account_ebics/models/ebics_userid.py:0
@@ -1785,6 +1799,11 @@ msgstr "Uploadformaat"
msgid "Upload Only"
msgstr "Alleen uploaden"
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_file__pain_state__uploaded
msgid "Uploaded"
msgstr ""
#. module: account_ebics
#: model_terms:ir.ui.view,arch_db:account_ebics.ebics_userid_view_form
msgid ""
@@ -1821,9 +1840,8 @@ msgstr "Gebruikers"
#. module: account_ebics
#: model:ir.model.fields,help:account_ebics.field_ebics_userid__user_ids
msgid "Users who are allowed to use this EBICS UserID for bank transactions."
msgid "Users who are allowed to use this EBICS UserID for bank transactions."
msgstr ""
"Gebruikers die deze EBICS-UserID mogen gebruiken voor banktransacties."
#. module: account_ebics
#: model:ir.model.fields.selection,name:account_ebics.selection__ebics_userid__state__to_verify
@@ -1921,6 +1939,27 @@ msgstr ""
"urlopen-fout:\n"
" url '%(url)s' - %(val)s"
#~ msgid ""
#~ "EBICS Keys Root Directory %s is not available.\n"
#~ "Please contact your system administrator."
#~ msgstr ""
#~ "De hoofdmap van de EBICS-sleutels %s is niet beschikbaar.\n"
#~ "Neem contact op met uw systeembeheerder."
#~ msgid "EBICS OrderID: %s"
#~ msgstr "EBICS-order-ID: %s"
#~ msgid "Ebics Config"
#~ msgstr "EBICS-configuratie"
#~ msgid "Ebics Configs"
#~ msgstr "EBICS-configuraties"
#~ msgid ""
#~ "Users who are allowed to use this EBICS UserID for bank transactions."
#~ msgstr ""
#~ "Gebruikers die deze EBICS-UserID mogen gebruiken voor banktransacties."
#~ msgid "3SKey Certficate"
#~ msgstr "3SKey-certificaat"
@@ -3,7 +3,7 @@
import os
from openupgradelib import openupgrade # pylint: disable=W7936
from openupgradelib import openupgrade # pylint: disable=E0401
@openupgrade.migrate()
+2 -2
View File
@@ -11,13 +11,13 @@ class AccountJournal(models.Model):
comodel_name="ebics.config",
relation="account_journal_ebics_config_rel",
readonly=True,
string="Ebics Configs",
string="EBICS Configs",
)
ebics_config_id = fields.Many2one(
comodel_name="ebics.config",
compute="_compute_ebics_config_id",
compute_sudo=True,
string="Ebics Config",
string="EBICS Config",
)
@api.depends("ebics_config_ids")
+10 -11
View File
@@ -8,7 +8,7 @@ import re
from odoo import api, fields, models
from odoo.exceptions import UserError
_logger = logging.getLogger(__name__)
_logger = logging.getLogger(__name__) # lint-ignore=unused-logger
class EbicsConfig(models.Model):
@@ -160,13 +160,12 @@ class EbicsConfig(models.Model):
for rec in self:
rec.company_ids = rec.journal_ids.mapped("company_id")
def unlink(self):
for ebics_config in self:
if ebics_config.state == "active":
raise UserError(
self.env._("You cannot remove active EBICS configurations.")
)
return super().unlink()
@api.ondelete(at_uninstall=False)
def _unlink_except_active(self):
if any(rec.state == "active" for rec in self):
raise UserError(
self.env._("You cannot remove active EBICS configurations.")
)
def set_to_draft(self):
return self.write({"state": "draft"})
@@ -199,8 +198,8 @@ class EbicsConfig(models.Model):
if not os.path.exists(dirname):
raise UserError(
self.env._(
"EBICS Keys Root Directory %s is not available."
"\nPlease contact your system administrator."
"EBICS Keys Root Directory %(dir)s is not available."
"\nPlease contact your system administrator.",
dir=dirname,
)
% dirname
)
+18 -11
View File
@@ -9,12 +9,12 @@ from traceback import format_exception
from lxml import etree
from odoo import fields, models
from odoo import api, fields, models
from odoo.exceptions import UserError
from odoo.addons.base.models.res_bank import sanitize_account_number
_logger = logging.getLogger(__name__)
_logger = logging.getLogger(__name__) # lint-ignore=unused-logger
DUP_CHECK_FORMATS = ["cfonb120", "camt053"]
@@ -63,7 +63,6 @@ class EbicsFile(models.Model):
)
user_id = fields.Many2one(
comodel_name="res.users",
string="User",
default=lambda self: self.env.user,
readonly=True,
)
@@ -74,6 +73,12 @@ class EbicsFile(models.Model):
readonly=True,
)
note = fields.Text(string="Notes")
ebics_order_number = fields.Char(string="EBICS OrderID", readonly=True)
pain_state = fields.Selection(
[("draft", "Draft"), ("uploaded", "Uploaded"), ("error", "Error")],
default="draft",
readonly=True,
)
note_process = fields.Text(
string="Process Notes",
readonly=True,
@@ -85,13 +90,16 @@ class EbicsFile(models.Model):
help="Companies sharing this EBICS file.",
)
@api.ondelete(at_uninstall=False)
def _unlink_except_done(self):
if any(rec.state == "done" for rec in self):
raise UserError(
self.env._("You can only remove EBICS files in state 'Draft'.")
)
def unlink(self):
ff_methods = self._file_format_methods()
for ebics_file in self:
if ebics_file.state == "done":
raise UserError(
self.env._("You can only remove EBICS files in state 'Draft'.")
)
# execute format specific actions
ff = ebics_file.format_id.download_process_method
if ff in ff_methods:
@@ -379,8 +387,7 @@ class EbicsFile(models.Model):
file_data = base64.b64decode(self.data).replace(b"\n", b"").replace(b"\r", b"")
if len(file_data) % 120:
message = self.env._(
"Incorrect CFONB120 file:\n"
"the file is not divisible in 120 char lines"
"Incorrect CFONB120 file:\nthe file is not divisible in 120 char lines"
)
res["notifications"].append({"type": "error", "message": message})
return datas
@@ -644,7 +651,7 @@ class EbicsFile(models.Model):
self.env._(
"The current version of the 'account_ebics' module "
"has no support to automatically process EBICS files "
"with format %s."
"with format %s.",
self.format_id.name,
)
% self.format_id.name
)
+4 -6
View File
@@ -69,8 +69,7 @@ class EbicsUserID(models.Model):
string="Users",
required=True,
domain=[("share", "=", False)],
help="Users who are allowed to use this EBICS UserID for "
" bank transactions.",
help="Users who are allowed to use this EBICS UserID for bank transactions.",
)
signature_class = fields.Selection(
selection=[("E", "Single signature"), ("T", "Transport signature")],
@@ -149,7 +148,7 @@ class EbicsUserID(models.Model):
# create self-signed X.509 certificates
ebics_key_x509 = fields.Boolean(
string="X509 support",
help="Set this flag in order to work with " "self-signed X.509 certificates",
help="Set this flag in order to work with self-signed X.509 certificates",
)
ebics_key_x509_dn_cn = fields.Char(
string="Common Name [CN]",
@@ -417,7 +416,7 @@ class EbicsUserID(models.Model):
if not ebics_config_bank:
raise UserError(
self.env._(
"No bank defined for the financial journal " "of the EBICS Config"
"No bank defined for the financial journal of the EBICS Config"
)
)
try:
@@ -476,8 +475,7 @@ class EbicsUserID(models.Model):
if cc in ["FR", "DE"]:
lang = cc
else:
lang = self.env.user.lang or self.env["res.lang"].search([])[0].code
lang = lang[:2]
lang = self.env.user.lang[:2]
lang = lang.lower()
lang = lang if lang in INI_LETTER_LANGS else "en"
fn_date = fields.Date.today().isoformat()
+2 -2
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record model="res.groups" id="group_ebics_manager">
<record id="group_ebics_manager" model="res.groups">
<field name="name">EBICS Manager</field>
<field name="category_id" ref="base.module_category_hidden" />
</record>
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="ebics_config_view_list" model="ir.ui.view">
<field name="name">ebics.config.list</field>
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="ebics_file_format_view_search" model="ir.ui.view">
<field name="name">ebics.file.format.search</field>
+7 -3
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="ebics_file_view_search" model="ir.ui.view">
<field name="name">ebics.file.search</field>
@@ -81,7 +81,7 @@
<record id="ebics_file_view_form" model="ir.ui.view">
<field name="name">ebics.file.form</field>
<field name="model">ebics.file</field>
<field name="priority">1</field>
<field name="priority" eval="1" />
<field name="arch" type="xml">
<form create="false">
<header>
@@ -135,6 +135,10 @@
string="Upload Date"
invisible="context.get('ebics_mode') == 'down'"
/>
<field
name="ebics_order_number"
invisible="context.get('ebics_mode') != 'up'"
/>
<field name="user_id" />
<field name="ebics_userid_id" />
</group>
@@ -173,7 +177,7 @@
<record id="ebics_file_view_form_result" model="ir.ui.view">
<field name="name">ebics.file.process.result</field>
<field name="model">ebics.file</field>
<field name="priority">100</field>
<field name="priority" eval="100" />
<field name="arch" type="xml">
<form string="Process EBICS File">
<separator colspan="4" string="Results :" />
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="ebics_userid_view_list" model="ir.ui.view">
<field name="name">ebics.userid.list</field>
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<menuitem
id="ebics_processing_menu"
+3 -3
View File
@@ -37,9 +37,9 @@ class EbicsAdminOrder(models.TransientModel):
self.ensure_one()
client = self._setup_client()
if not client:
self.note += (
self.env._("EBICS client setup failed for connection '%s'")
% self.ebics_config_id.name
self.note += self.env._(
"EBICS client setup failed for connection '%s'",
self.ebics_config_id.name,
)
else:
try:
+3 -3
View File
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="ebics_admin_order_view_form" model="ir.ui.view">
<field name="name">EBICS Administrative Order</field>
<field name="model">ebics.admin.order</field>
<field name="inherit_id" ref="ebics_xfer_view_form_download" />
<field name="priority">1</field>
<field name="priority" eval="1" />
<field name="arch" type="xml">
<field name="date_from" position="attributes">
<attribute name="invisible">1</attribute>
@@ -31,7 +31,7 @@
<record id="ebics_admin_order_view_form_result" model="ir.ui.view">
<field name="name">EBICS Administrative Order result</field>
<field name="model">ebics.admin.order</field>
<field name="priority">2</field>
<field name="priority" eval="2" />
<field name="arch" type="xml">
<form string="EBICS Administrative Order result">
<separator colspan="4" string="Results :" />
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="ebics_change_passphrase_view_form" model="ir.ui.view">
<field name="name">EBICS Keys Change Passphrase</field>
<field name="model">ebics.change.passphrase</field>
<field name="priority">1</field>
<field name="priority" eval="1" />
<field name="arch" type="xml">
<form string="EBICS Keys Change Passphrase">
<group>
@@ -40,7 +40,7 @@
<record id="ebics_change_passphrase_view_form_result" model="ir.ui.view">
<field name="name">EBICS Keys Change Passphrase</field>
<field name="model">ebics.change.passphrase</field>
<field name="priority">2</field>
<field name="priority" eval="2" />
<field name="arch" type="xml">
<form string="EBICS Keys Change Passphrase">
<separator colspan="4" string="Results :" />
+36 -23
View File
@@ -224,9 +224,9 @@ class EbicsXfer(models.TransientModel):
client = self._setup_client()
if not client:
err_cnt += 1
self.note += (
self.env._("EBICS client setup failed for connection '%s'")
% self.ebics_config_id.name
self.note += self.env._(
"EBICS client setup failed for connection '%s'",
self.ebics_config_id.name,
)
else:
download_formats = (
@@ -336,11 +336,8 @@ class EbicsXfer(models.TransientModel):
if ebics_files:
self.note += "\n"
for f in ebics_files:
self.note += (
self.env._(
"EBICS File '%s' is available for further processing."
)
% f.name
self.note += self.env._(
"EBICS File '%s' is available for further processing.", f.name
)
self.note += "\n"
@@ -406,15 +403,12 @@ class EbicsXfer(models.TransientModel):
OrderID = client.upload(order_type, upload_data)
if OrderID:
self.note += "\n"
self.note += (
self.env._("EBICS File has been uploaded (OrderID %s).")
% OrderID
self.note += self.env._(
"EBICS File has been uploaded (OrderID %s).", OrderID
)
ef_note = self.env._("EBICS OrderID: %s") % OrderID
ef_note = ""
if self.env.context.get("origin"):
ef_note += (
"\n" + self.env._("Origin: %s") % self._context["origin"]
)
ef_note = self.env._("Origin: %s", self.env.context["origin"])
suffix = self.format_id.suffix
fn = self.upload_fname
if suffix and not fn.endswith(suffix):
@@ -434,6 +428,9 @@ class EbicsXfer(models.TransientModel):
}
self._update_ef_vals(ef_vals)
ebics_file = self.env["ebics.file"].create(ef_vals)
ebics_file.write(
{"ebics_order_number": OrderID, "pain_state": "uploaded"}
)
except EbicsFunctionalError:
e = exc_info()
@@ -462,16 +459,32 @@ class EbicsXfer(models.TransientModel):
OrderID = self.ebics_config_id._get_order_number()
self.ebics_config_id.sudo()._update_order_number(OrderID)
ebics_file and self._payment_order_postprocess(ebics_file)
ebics_file and self._payment_upload_postprocess(ebics_file)
return ebics_file
def _payment_order_postprocess(self, ebics_file):
active_model = self.env.context.get("model")
def _payment_upload_postprocess(self, ebics_file):
ctx = self.env.context
active_model = ctx.get("model")
active_id = ctx.get("id")
payment_doc = None
if active_model == "account.payment.order":
order = self.env["account.payment.order"].browse(
self.env.context["active_id"]
payment_doc = self.env["account.payment.order"].browse(active_id)
payment_doc.generated2uploaded()
elif active_model == "account.batch.payment":
payment_doc = self.env["account.batch.payment"].browse(active_id)
if payment_doc:
payment_doc.ebics_file_id = ebics_file
self._payment_upload_chatter_message(payment_doc, ebics_file)
def _payment_upload_chatter_message(self, payment_doc, ebics_file):
payment_doc.message_post(
body=self.env._(
"'%(filename)s' has been uploaded via EBICS"
" (OrderID: %(order_number)s).",
filename=ebics_file.name,
order_number=ebics_file.ebics_order_number,
)
order.generated2uploaded()
)
def _setup_client(self):
self.ebics_config_id._check_ebics_keys()
@@ -602,9 +615,9 @@ class EbicsXfer(models.TransientModel):
self.env._(
"EBICS File with name '%s' has already been downloaded."
"\nPlease check this file and rename in case there is "
"no risk on duplicate transactions."
"no risk on duplicate transactions.",
fn,
)
% fn
)
data = base64.encodebytes(data)
ef_vals = {
+5 -5
View File
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="ebics_xfer_view_form_download" model="ir.ui.view">
<field name="name">EBICS File Download</field>
<field name="model">ebics.xfer</field>
<field name="priority">1</field>
<field name="priority" eval="1" />
<field name="arch" type="xml">
<form string="EBICS File Download">
<group>
@@ -55,7 +55,7 @@
<record id="ebics_xfer_view_form_upload" model="ir.ui.view">
<field name="name">EBICS File Upload</field>
<field name="model">ebics.xfer</field>
<field name="priority">1</field>
<field name="priority" eval="1" />
<field name="arch" type="xml">
<form string="EBICS File Upload">
<group>
@@ -120,7 +120,7 @@
<record id="ebics_xfer_view_form_result" model="ir.ui.view">
<field name="name">EBICS File Transfer</field>
<field name="model">ebics.xfer</field>
<field name="priority">2</field>
<field name="priority" eval="2" />
<field name="arch" type="xml">
<form string="EBICS File Transfer">
<separator colspan="4" string="Results :" />
@@ -148,7 +148,7 @@
<record id="ebics_xfer_view_form_mark_as_downloaded" model="ir.ui.view">
<field name="name">Mark EBICS files as Downloaded</field>
<field name="model">ebics.xfer</field>
<field name="priority">1</field>
<field name="priority" eval="1" />
<field name="arch" type="xml">
<form string="EBICS Mark as Downloaded">
<div class="alert alert-warning" role="alert">
+1 -2
View File
@@ -3,7 +3,7 @@
{
"name": "EBICS - Scheduled File Import",
"version": "18.0.1.0.1",
"version": "18.0.1.0.2",
"license": "AGPL-3",
"author": "Noviat",
"website": "https://www.noviat.com/",
@@ -16,6 +16,5 @@
"views/ebics_batch_log_views.xml",
"views/menu.xml",
],
"installable": True,
"images": ["static/description/banner.png"],
}
+1 -1
View File
@@ -6,7 +6,7 @@
<field name="state">code</field>
<field name="code">model._batch_import()</field>
<field name="user_id" ref="base.user_root" />
<field name="interval_number">1</field>
<field name="interval_number" eval="1" />
<field name="interval_type">days</field>
<field name="active" eval="False" />
</record>
+8 -10
View File
@@ -46,13 +46,12 @@ class EbicsBatchLog(models.Model):
rec.has_draft_files = "draft" in rec.file_ids.mapped("state")
rec.file_count = len(rec.file_ids)
def unlink(self):
for log in self:
if log.state != "draft":
raise UserError(
self.env._("Only log objects in state 'draft' can be deleted !")
)
return super().unlink()
@api.ondelete(at_uninstall=False)
def _unlink_except_draft(self):
if any(log.state != "draft" for log in self):
raise UserError(
self.env._("Only log objects in state 'draft' can be deleted !")
)
def button_draft(self):
self.state = "draft"
@@ -93,9 +92,8 @@ class EbicsBatchLog(models.Model):
)
ebics_file_ids = []
for config in configs:
err_msg = (
self.env._("Error while processing EBICS connection '%s' :\n")
% config.name
err_msg = self.env._(
"Error while processing EBICS connection '%s' :\n", config.name
)
if config.state == "draft":
import_dict["errors"].append(
@@ -1,4 +1,4 @@
<?xml version="1.0" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="ebics_batch_log_view_search" model="ir.ui.view">
<field name="name">ebics.batch.log.search</field>
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<menuitem
id="ebics_batch_log_menu"
+1 -2
View File
@@ -4,7 +4,7 @@
{
"name": "EBICS - Batch Payments (Odoo Enterprise)",
"summary": "Send an Odoo Enterprise batch payment to the bank over EBICS",
"version": "18.0.1.2.0",
"version": "18.0.1.3.0",
"license": "LGPL-3",
"author": "Noviat",
"website": "https://www.noviat.com/",
@@ -14,6 +14,5 @@
"views/account_journal_views.xml",
"views/account_batch_payment_views.xml",
],
"installable": True,
"images": ["static/description/banner.png"],
}
@@ -21,12 +21,21 @@ msgid "Batch Payment"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_journal__ebics_file_format_ids
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_payment_method__ebics_file_format_id
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_payment_method_line__ebics_file_format_id
msgid "EBICS File Format"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics_batch_payment
#. odoo-python
#: code:addons/account_ebics_batch_payment/models/account_batch_payment.py:0
@@ -34,6 +43,16 @@ msgstr ""
msgid "EBICS Upload"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_file_id
msgid "EBICS Upload File"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_pain_state
msgid "EBICS Upload Status"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,help:account_ebics_batch_payment.field_account_payment_method__ebics_file_format_id
#: model:ir.model.fields,help:account_ebics_batch_payment.field_account_payment_method_line__ebics_file_format_id
@@ -42,6 +61,16 @@ msgid ""
"this payment method."
msgstr ""
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "EBICS upload info"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_journal__ebics_file_format_ids
msgid "Ebics File Format"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__hide_ebics_upload
msgid "Hide Ebics Upload"
@@ -63,3 +92,13 @@ msgstr ""
#: model:ir.model,name:account_ebics_batch_payment.model_account_payment_method_line
msgid "Payment Methods"
msgstr ""
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "Upload File"
msgstr ""
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "Upload Status"
msgstr ""
+40 -1
View File
@@ -27,12 +27,21 @@ msgid "Batch Payment"
msgstr "Sammelzahlung"
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_journal__ebics_file_format_ids
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_payment_method__ebics_file_format_id
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_payment_method_line__ebics_file_format_id
msgid "EBICS File Format"
msgstr "EBICS-Dateiformat"
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics_batch_payment
#. odoo-python
#: code:addons/account_ebics_batch_payment/models/account_batch_payment.py:0
@@ -40,6 +49,16 @@ msgstr "EBICS-Dateiformat"
msgid "EBICS Upload"
msgstr "EBICS-Upload"
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_file_id
msgid "EBICS Upload File"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_pain_state
msgid "EBICS Upload Status"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,help:account_ebics_batch_payment.field_account_payment_method__ebics_file_format_id
#: model:ir.model.fields,help:account_ebics_batch_payment.field_account_payment_method_line__ebics_file_format_id
@@ -50,6 +69,16 @@ msgstr ""
"EBICS-Dateiformat, das beim Hochladen einer Stapelzahlung mit dieser "
"Zahlungsmethode vorausgewählt wird."
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "EBICS upload info"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_journal__ebics_file_format_ids
msgid "Ebics File Format"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__hide_ebics_upload
msgid "Hide Ebics Upload"
@@ -71,3 +100,13 @@ msgstr "Keine aktive EBICS-Konfiguration für die ausgewählte Bank verfügbar."
#: model:ir.model,name:account_ebics_batch_payment.model_account_payment_method_line
msgid "Payment Methods"
msgstr "Zahlungsmethoden"
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "Upload File"
msgstr ""
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "Upload Status"
msgstr ""
+40 -1
View File
@@ -28,12 +28,21 @@ msgid "Batch Payment"
msgstr "Paiement par lot"
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_journal__ebics_file_format_ids
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_payment_method__ebics_file_format_id
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_payment_method_line__ebics_file_format_id
msgid "EBICS File Format"
msgstr "Format de fichier EBICS"
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics_batch_payment
#. odoo-python
#: code:addons/account_ebics_batch_payment/models/account_batch_payment.py:0
@@ -41,6 +50,16 @@ msgstr "Format de fichier EBICS"
msgid "EBICS Upload"
msgstr "Téléversement EBICS"
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_file_id
msgid "EBICS Upload File"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_pain_state
msgid "EBICS Upload Status"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,help:account_ebics_batch_payment.field_account_payment_method__ebics_file_format_id
#: model:ir.model.fields,help:account_ebics_batch_payment.field_account_payment_method_line__ebics_file_format_id
@@ -51,6 +70,16 @@ msgstr ""
"Format de fichier EBICS à présélectionner lors du téléversement d'un "
"paiement groupé utilisant ce mode de paiement."
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "EBICS upload info"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_journal__ebics_file_format_ids
msgid "Ebics File Format"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__hide_ebics_upload
msgid "Hide Ebics Upload"
@@ -73,3 +102,13 @@ msgstr ""
#: model:ir.model,name:account_ebics_batch_payment.model_account_payment_method_line
msgid "Payment Methods"
msgstr "Modes de paiement"
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "Upload File"
msgstr ""
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "Upload Status"
msgstr ""
+42 -3
View File
@@ -28,12 +28,21 @@ msgid "Batch Payment"
msgstr "Batchbetaling"
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_journal__ebics_file_format_ids
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_payment_method__ebics_file_format_id
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_payment_method_line__ebics_file_format_id
msgid "EBICS File Format"
msgstr "EBICS-bestandsformaat"
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics_batch_payment
#. odoo-python
#: code:addons/account_ebics_batch_payment/models/account_batch_payment.py:0
@@ -41,6 +50,16 @@ msgstr "EBICS-bestandsformaat"
msgid "EBICS Upload"
msgstr "EBICS-upload"
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_file_id
msgid "EBICS Upload File"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__ebics_pain_state
msgid "EBICS Upload Status"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,help:account_ebics_batch_payment.field_account_payment_method__ebics_file_format_id
#: model:ir.model.fields,help:account_ebics_batch_payment.field_account_payment_method_line__ebics_file_format_id
@@ -48,8 +67,18 @@ msgid ""
"EBICS file format to pre-select when uploading a batch payment that uses "
"this payment method."
msgstr ""
"EBICS-bestandsformaat dat vooraf wordt geselecteerd bij het uploaden van een"
" batchbetaling die deze betaalmethode gebruikt."
"EBICS-bestandsformaat dat vooraf wordt geselecteerd bij het uploaden van een "
"batchbetaling die deze betaalmethode gebruikt."
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "EBICS upload info"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_journal__ebics_file_format_ids
msgid "Ebics File Format"
msgstr ""
#. module: account_ebics_batch_payment
#: model:ir.model.fields,field_description:account_ebics_batch_payment.field_account_batch_payment__hide_ebics_upload
@@ -73,3 +102,13 @@ msgstr ""
#: model:ir.model,name:account_ebics_batch_payment.model_account_payment_method_line
msgid "Payment Methods"
msgstr "Betaalmethodes"
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "Upload File"
msgstr ""
#. module: account_ebics_batch_payment
#: model_terms:ir.ui.view,arch_db:account_ebics_batch_payment.view_batch_payment_form
msgid "Upload Status"
msgstr ""
@@ -8,19 +8,47 @@ from odoo.exceptions import UserError
class AccountBatchPayment(models.Model):
_inherit = "account.batch.payment"
ebics_config_id = fields.Many2one(
comodel_name="ebics.config",
related="journal_id.ebics_config_id",
)
ebics_file_id = fields.Many2one(
comodel_name="ebics.file",
string="EBICS Upload File",
readonly=True,
)
ebics_pain_state = fields.Selection(
related="ebics_file_id.pain_state",
string="EBICS Upload Status",
)
ebics_order_number = fields.Char(
related="ebics_file_id.ebics_order_number",
string="EBICS OrderID",
)
hide_ebics_upload = fields.Boolean(
compute="_compute_hide_ebics_upload", default=True
)
@api.depends("journal_id.ebics_config_id", "file_generation_enabled", "state")
@api.depends(
"journal_id.ebics_config_id",
"file_generation_enabled",
"state",
"ebics_file_id.pain_state",
)
def _compute_hide_ebics_upload(self):
for rec in self:
rec.hide_ebics_upload = (
not rec.journal_id.ebics_config_id
self.env.neutralized
or not rec.journal_id.ebics_config_id
or not rec.file_generation_enabled
or rec.state != "sent"
or rec.ebics_pain_state == "uploaded"
)
def export_batch_payment(self):
self.filtered("ebics_file_id").write({"ebics_file_id": False})
return super().export_batch_payment()
def ebics_upload(self):
self.ensure_one()
ctx = self.env.context.copy()
@@ -38,6 +66,8 @@ class AccountBatchPayment(models.Model):
"default_upload_data": self.export_file,
"default_upload_fname": self.export_filename,
"origin": origin,
"model": self._name,
"id": self.id,
}
)
@@ -1,7 +1,7 @@
# Copyright 2026 Noviat.
# License LGPL-3 or later (http://www.gnu.org/licenses/lgpl).
from odoo import fields, models
from odoo import api, fields, models
class AccountJournal(models.Model):
@@ -9,5 +9,11 @@ class AccountJournal(models.Model):
ebics_file_format_ids = fields.Many2many(
comodel_name="ebics.file.format",
related="ebics_config_id.ebics_file_format_ids",
compute="_compute_ebics_file_format_ids",
)
@api.depends("ebics_config_ids.ebics_file_format_ids", "ebics_config_ids.state")
def _compute_ebics_file_format_ids(self):
for rec in self:
config = rec.ebics_config_ids.filtered(lambda r: r.state == "confirm")[:1]
rec.ebics_file_format_ids = config.ebics_file_format_ids
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_batch_payment_form" model="ir.ui.view">
<field name="name">account.batch.payment.form</field>
@@ -14,6 +14,19 @@
class="oe_highlight"
/>
</button>
<notebook position="inside">
<page
string="EBICS upload info"
name="ebics"
invisible="not ebics_config_id"
>
<group name="ebics_info">
<field name="ebics_file_id" string="Upload File" />
<field name="ebics_pain_state" string="Upload Status" />
<field name="ebics_order_number" />
</group>
</page>
</notebook>
</field>
</record>
</odoo>
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_account_journal_form_ebics_payment_method" model="ir.ui.view">
<field name="name">account.journal.form.ebics.payment.method</field>
@@ -4,7 +4,7 @@
{
"name": "EBICS - Bank Statement Import (OCA)",
"summary": "Process EBICS statement files with the OCA bank statement import",
"version": "18.0.1.0.1",
"version": "18.0.1.0.2",
"author": "Noviat",
"website": "https://www.noviat.com/",
"category": "Hidden",
@@ -13,7 +13,6 @@
"account_ebics",
"account_statement_import_file",
],
"installable": True,
"auto_install": True,
"images": ["static/description/banner.png"],
}
@@ -4,7 +4,7 @@
import logging
from datetime import date, datetime
from odoo import _, models
from odoo import models
from odoo.addons.base.models.res_bank import sanitize_account_number
@@ -39,8 +39,7 @@ class AccountStatementImport(models.TransientModel):
sanitized_number = sanitize_account_number(account_number)
check_curr = sanitized_number[-3:]
if check_curr.isalpha():
all_currencies = self.env["res.currency"].search([])
if check_curr in all_currencies.mapped("name"):
if self.env["res.currency"].search([("name", "=", check_curr)], limit=1):
sanitized_number = sanitized_number[:-3]
return sanitized_number
@@ -49,7 +48,7 @@ class AccountStatementImport(models.TransientModel):
if self.env.context.get("active_model") == "ebics.file":
message = False
if len(stmts_vals) == 0:
message = _("This file doesn't contain any statement.")
message = self.env._("This file doesn't contain any statement.")
if not message:
no_st_line = True
for vals in stmts_vals:
@@ -57,10 +56,10 @@ class AccountStatementImport(models.TransientModel):
no_st_line = False
break
if no_st_line:
message = _("This file doesn't contain any transaction.")
message = self.env._("This file doesn't contain any transaction.")
if message:
log_msg = (
_("Error detected while processing an EBICS File")
self.env._("Error detected while processing an EBICS File")
+ ":\n"
+ message
)
@@ -99,7 +98,7 @@ class AccountStatementImport(models.TransientModel):
else:
st_date = st_vals["date"]
messages.append(
_(
self.env._(
"Statement %(st_name)s dated %(date)s "
"has already been imported.",
st_name=st_vals["name"],
@@ -108,7 +107,9 @@ class AccountStatementImport(models.TransientModel):
)
if not transactions:
messages.append(_("This file doesn't contain any transaction."))
messages.append(
self.env._("This file doesn't contain any transaction.")
)
if messages:
result["notifications"].append(
{"type": "warning", "message": "\n".join(messages)}
+1 -2
View File
@@ -4,7 +4,7 @@
{
"name": "EBICS - Odoo Enterprise Integration",
"summary": "Place the EBICS menus in the Odoo Enterprise accounting application",
"version": "18.0.1.0.0",
"version": "18.0.1.0.1",
"author": "Noviat",
"website": "https://www.noviat.com/",
"category": "Hidden",
@@ -14,7 +14,6 @@
"accountant",
],
"data": ["views/account_ebics_menu.xml"],
"installable": True,
"auto_install": True,
"images": ["static/description/banner.png"],
}
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="account_ebics.ebics_processing_menu" model="ir.ui.menu">
<field name="parent_id" eval="ref('accountant.menu_accounting')" />
+1 -2
View File
@@ -4,7 +4,7 @@
{
"name": "EBICS - Payment Orders (OCA)",
"summary": "Send an OCA payment order to the bank over EBICS",
"version": "18.0.1.2.0",
"version": "18.0.1.3.0",
"license": "LGPL-3",
"author": "Noviat",
"website": "https://www.noviat.com/",
@@ -15,5 +15,4 @@
"views/account_payment_mode_views.xml",
],
"images": ["static/description/banner.png"],
"installable": True,
}
@@ -13,11 +13,21 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_mode__ebics_format_id
msgid "EBICS File Format"
msgstr ""
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics_payment_order
#. odoo-python
#: code:addons/account_ebics_payment_order/models/account_payment_order.py:0
@@ -25,6 +35,16 @@ msgstr ""
msgid "EBICS Upload"
msgstr ""
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_file_id
msgid "EBICS Upload File"
msgstr ""
#. module: account_ebics_payment_order
#: model_terms:ir.ui.view,arch_db:account_ebics_payment_order.account_payment_order_form
msgid "EBICS upload info"
msgstr ""
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__hide_ebics_upload
msgid "Hide Ebics Upload"
@@ -74,3 +94,8 @@ msgid ""
"This payment order doesn't contain attachments.\n"
"Please generate first the Payment Order file."
msgstr ""
#. module: account_ebics_payment_order
#: model_terms:ir.ui.view,arch_db:account_ebics_payment_order.account_payment_order_form
msgid "Upload File"
msgstr ""
+25
View File
@@ -18,11 +18,21 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2026.9.1\n"
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_mode__ebics_format_id
msgid "EBICS File Format"
msgstr "EBICS-Dateiformat"
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics_payment_order
#. odoo-python
#: code:addons/account_ebics_payment_order/models/account_payment_order.py:0
@@ -30,6 +40,16 @@ msgstr "EBICS-Dateiformat"
msgid "EBICS Upload"
msgstr "EBICS-Upload"
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_file_id
msgid "EBICS Upload File"
msgstr ""
#. module: account_ebics_payment_order
#: model_terms:ir.ui.view,arch_db:account_ebics_payment_order.account_payment_order_form
msgid "EBICS upload info"
msgstr ""
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__hide_ebics_upload
msgid "Hide Ebics Upload"
@@ -86,6 +106,11 @@ msgstr ""
"Dieser Zahlungsauftrag enthält keine Anhänge.\n"
"Bitte erstellen Sie zuerst die Zahlungsauftragsdatei."
#. module: account_ebics_payment_order
#: model_terms:ir.ui.view,arch_db:account_ebics_payment_order.account_payment_order_form
msgid "Upload File"
msgstr ""
#~ msgid ""
#~ "This payment order doesn't contains attachments.\n"
#~ "Please generate first the Payment Order file."
+25
View File
@@ -19,11 +19,21 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 2026.9.1\n"
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_mode__ebics_format_id
msgid "EBICS File Format"
msgstr "Format de fichier EBICS"
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics_payment_order
#. odoo-python
#: code:addons/account_ebics_payment_order/models/account_payment_order.py:0
@@ -31,6 +41,16 @@ msgstr "Format de fichier EBICS"
msgid "EBICS Upload"
msgstr "Téléversement EBICS"
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_file_id
msgid "EBICS Upload File"
msgstr ""
#. module: account_ebics_payment_order
#: model_terms:ir.ui.view,arch_db:account_ebics_payment_order.account_payment_order_form
msgid "EBICS upload info"
msgstr ""
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__hide_ebics_upload
msgid "Hide Ebics Upload"
@@ -89,6 +109,11 @@ msgstr ""
"Cet ordre de paiement ne contient aucune pièce jointe.\n"
"Veuillez d'abord générer le fichier de l'ordre de paiement."
#. module: account_ebics_payment_order
#: model_terms:ir.ui.view,arch_db:account_ebics_payment_order.account_payment_order_form
msgid "Upload File"
msgstr ""
#~ msgid ""
#~ "This payment order doesn't contains attachments.\n"
#~ "Please generate first the Payment Order file."
+25
View File
@@ -19,11 +19,21 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2026.9.1\n"
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_config_id
msgid "EBICS Config"
msgstr ""
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_mode__ebics_format_id
msgid "EBICS File Format"
msgstr "EBICS-bestandsformaat"
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_order_number
msgid "EBICS OrderID"
msgstr ""
#. module: account_ebics_payment_order
#. odoo-python
#: code:addons/account_ebics_payment_order/models/account_payment_order.py:0
@@ -31,6 +41,16 @@ msgstr "EBICS-bestandsformaat"
msgid "EBICS Upload"
msgstr "EBICS-upload"
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__ebics_file_id
msgid "EBICS Upload File"
msgstr ""
#. module: account_ebics_payment_order
#: model_terms:ir.ui.view,arch_db:account_ebics_payment_order.account_payment_order_form
msgid "EBICS upload info"
msgstr ""
#. module: account_ebics_payment_order
#: model:ir.model.fields,field_description:account_ebics_payment_order.field_account_payment_order__hide_ebics_upload
msgid "Hide Ebics Upload"
@@ -88,6 +108,11 @@ msgstr ""
"Deze betalingsopdracht bevat geen bijlagen.\n"
"Genereer eerst het betalingsopdrachtbestand."
#. module: account_ebics_payment_order
#: model_terms:ir.ui.view,arch_db:account_ebics_payment_order.account_payment_order_form
msgid "Upload File"
msgstr ""
#~ msgid ""
#~ "This payment order doesn't contains attachments.\n"
#~ "Please generate first the Payment Order file."
@@ -8,6 +8,19 @@ from odoo.exceptions import UserError
class AccountPaymentOrder(models.Model):
_inherit = "account.payment.order"
ebics_config_id = fields.Many2one(
comodel_name="ebics.config",
related="journal_id.ebics_config_id",
)
ebics_file_id = fields.Many2one(
comodel_name="ebics.file",
string="EBICS Upload File",
readonly=True,
)
ebics_order_number = fields.Char(
related="ebics_file_id.ebics_order_number",
string="EBICS OrderID",
)
hide_ebics_upload = fields.Boolean(
compute="_compute_hide_ebics_upload", default=True
)
@@ -16,7 +29,9 @@ class AccountPaymentOrder(models.Model):
def _compute_hide_ebics_upload(self):
for rec in self:
rec.hide_ebics_upload = (
not rec.journal_id.ebics_config_id or rec.state != "generated"
self.env.neutralized
or not rec.journal_id.ebics_config_id
or rec.state != "generated"
)
def ebics_upload(self):
@@ -29,7 +44,8 @@ class AccountPaymentOrder(models.Model):
)
ctx.update(
{
"active_model": self._name,
"model": self._name,
"id": self.id,
"default_format_id": ebics_format_id.id,
}
)
@@ -57,8 +73,7 @@ class AccountPaymentOrder(models.Model):
if not self.journal_id.ebics_config_id:
raise UserError(
self.env._(
"No active EBICS configuration available "
"for the selected bank."
"No active EBICS configuration available for the selected bank."
)
)
ctx.update(
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="account_payment_mode_form" model="ir.ui.view">
<field name="name">account.payment.mode.form</field>
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="account_payment_order_form" model="ir.ui.view">
<field name="name">account.payment.order.form</field>
@@ -17,6 +17,18 @@
class="oe_highlight"
/>
</button>
<notebook position="inside">
<page
string="EBICS upload info"
name="ebics"
invisible="not ebics_config_id"
>
<group name="ebics_info">
<field name="ebics_file_id" string="Upload File" />
<field name="ebics_order_number" />
</group>
</page>
</notebook>
</field>
</record>
</odoo>
+1 -1
View File
@@ -1,3 +1,3 @@
odoo-addon-module_change_auto_install
openupgradelib
cryptography<37
lxml_html_clean